KDialogBase

Holger Freyther freyther at gmx.net
Sat Apr 12 17:57:23 BST 2003


On Saturday 12 April 2003 19:17, Benjamin Meyer wrote:
> On Saturday 12 April 2003 5:55 am, Stephan Kulow wrote:
> > Am Saturday 12 April 2003 06:32 schrieb Benjamin Meyer:
> > > Can I add the following comment to KDialogBase so that develoers can
> > > overrider the default wflags post kde4?
> > >
> > > /**
> > >  * In KDE4 add paramater wflags=WStyle_DialogBorder
> > >  */
> >
> > You can do that for 3.2 too. Add a new method with that parameter (and no
> > default argument) and make the old method calling the new one with
> > WStyle_DialogBorder. And then you can add a comment to merge them
> > in KDE4.
> >
> > Greetings, Stephan
>
> Ok I have added a new function with the given ability along with comments
> in the old function.  How does this look:
>
> -Benjamin Meyer
>
> Index: kdialogbase.cpp
> ===================================================================
> RCS file: /home/kde/kdelibs/kdeui/kdialogbase.cpp,v
> retrieving revision 1.80
> diff -u -3 -p -r1.80 kdialogbase.cpp
> --- kdialogbase.cpp     6 Mar 2003 18:02:08 -0000       1.80
> +++ kdialogbase.cpp     12 Apr 2003 16:14:11 -0000
> @@ -147,6 +147,35 @@ KDialogBase::KDialogBase( int dialogFace
>    setupLayout();
>  }
>
> +KDialogBase::KDialogBase( int dialogFace, const QString &caption,
> +                         int buttonMask, ButtonCode defaultButton,
> +                         QWidget *parent, const char *name, bool modal,
> WFlags f,
> +                         bool separator, const KGuiItem &user1,
> +                         const KGuiItem &user2, const KGuiItem &user3 )
> +  :KDialog( parent, name, modal, f ),
> +   mTopLayout(0), mMainWidget(0), mUrlHelp(0), mJanus(0), mActionSep(0),
> +   mIsActivated(false), mShowTile(false), mMessageBoxMode(false),
> +   mButtonOrientation(Horizontal)
> +{
> +  d = new KDialogBasePrivate;
> +  setCaption( caption );
> +
> +  makeRelay();
> +  connect( this, SIGNAL(layoutHintChanged()), this, SLOT(updateGeometry())
> ); +
> +  mJanus = new KJanusWidget( this, "janus", dialogFace );
> +  connect(mJanus, SIGNAL(aboutToShowPage(QWidget *)),
> +          this, SIGNAL(aboutToShowPage(QWidget *)));
> +
> +  if( mJanus == 0 || mJanus->isValid() == false ) { return; }
> +
> +  enableButtonSeparator( separator );
> +  makeButtonBox( buttonMask, defaultButton, user1, user2, user3 );
> +
> +  mIsActivated = true;
> +  setupLayout();
> +}
> +
>  KDialogBase::KDialogBase( const QString &caption, int buttonMask,
>                           ButtonCode defaultButton, ButtonCode
> escapeButton, QWidget *parent, const char *name, bool modal, Index:
> kdialogbase.h
> ===================================================================
> RCS file: /home/kde/kdelibs/kdeui/kdialogbase.h,v
> retrieving revision 1.83
> diff -u -3 -p -r1.83 kdialogbase.h
> --- kdialogbase.h       11 Feb 2003 19:00:27 -0000      1.83
> +++ kdialogbase.h       12 Apr 2003 16:14:11 -0000
> @@ -291,6 +291,10 @@ class KDialogBase : public KDialog
>                  const KGuiItem &user3=KGuiItem() );
>
>      /**
> +     * @depriciated see next function which now has WFlags
> +     * remove this in KDE4 and give default values for parent, name model
> and f
> +     * in next function.  Also add WFlag to rest of the constructors.
> +     *
>       * Constructor for the predefined layout mode where you specify the
>       * kind of layout (face).
>       *
> @@ -317,6 +321,39 @@ class KDialogBase : public KDialog
>                  int buttonMask, ButtonCode defaultButton,
>                  QWidget *parent=0, const char *name=0, bool modal=true,
>                  bool separator=false,
> +                const KGuiItem &user1=KGuiItem(),
> +                const KGuiItem &user2=KGuiItem(),
> +                const KGuiItem &user3=KGuiItem() );
> +
> +
> +    /**
> +     * Constructor for the predefined layout mode where you specify the
> +     * kind of layout (face).
> +     *
> +     * @param dialogFace You can use TreeList, Tabbed, Plain, Swallow or
> +     *        IconList.
> +     * @param caption The dialog caption. Do not specify the application
> name +     *        here. The class will take care of that.
> +     * @param buttonMask Specifies which buttons will be visible. If zero
> +     *        (0) no button box will be made.
> +     * @param defaultButton Specifies which button will be marked as
> +     *        the default.
> +     * @param parent Parent of the dialog.
> +     * @param name Dialog name (for internal use only).
> +     * @param modal Controls dialog modality. If @p false, the rest of the
> +     *        program interface (example: other dialogs) is accessible
> while +     *        the dialog is open.
> +     * @param f widget flags, by default just set to WStyle_DialogBorder.

why don't you set it then as default argument?
> +     * @param separator If @p true, a separator line is drawn between the
> +     *        action buttons and the main widget.
> +     * @param user1 User button1 text item.
> +     * @param user2 User button2 text item.
> +     * @param user3 User button3 text item.
> +     */
> +    KDialogBase( int dialogFace, const QString &caption,
> +                int buttonMask, ButtonCode defaultButton,
> +                QWidget *parent, const char *name, bool modal, WFlags f,
WFlags f = WStyle_DialogBorder,
> +                bool separator=false,
>                  const KGuiItem &user1=KGuiItem(),
>                  const KGuiItem &user2=KGuiItem(),
>                  const KGuiItem &user3=KGuiItem() );

-- 
_____________________________________________
Holger 'zecke' Freyther
developer
Project OPIE- the Open Palmtop Integrated Environment
http://opie.handhelds.org | http://www.opie.info (german)
IRC: irc.freenode.net #opie #opie.de




More information about the kde-core-devel mailing list