[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    KDialogBase fix
From:       Carsten Pfeiffer <carpdjih () cetus ! zrz ! tu-berlin ! de>
Date:       2001-11-20 15:38:54
[Download RAW message or body]

Hi,

here's an attempt to fix the KDialogBase problems -- basically remove the 
duplicated code and constructors and always take a const KGuiItem& instead of 
just a const QString&. This adds some overhead, but it's just two or three 
items instead of 3 QStrings, and I don't see a way to do this in a better 
way.

The old code will still compile, as a KGuiItem can be automatically created 
with a const QString& constructor.

Cheers
Carsten Pfeiffer
["patch" (text/x-diff)]

Index: kdialogbase.cpp
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kdialogbase.cpp,v
retrieving revision 1.56
diff -u -p -B -w -r1.56 kdialogbase.cpp
--- kdialogbase.cpp	2001/11/19 17:29:03	1.56
+++ kdialogbase.cpp	2001/11/20 14:49:33
@@ -92,28 +92,6 @@ public:
 KDialogBase::KDialogBase( QWidget *parent, const char *name, bool modal,
 			  const QString &caption, int buttonMask,
 			  ButtonCode defaultButton, bool separator,
-			  const QString &user1, const QString &user2,
-			  const QString &user3 )
-  :KDialog( parent, name, modal, WStyle_DialogBorder ),
-   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()) );
-
-  enableButtonSeparator( separator );
-  makeButtonBox( buttonMask, defaultButton, user1, user2, user3 );
-
-  mIsActivated = true;
-  setupLayout();
-}
-KDialogBase::KDialogBase( QWidget *parent, bool showPixmap, const char *name, bool modal, 
-			  const QString &caption, int buttonMask,
-			  ButtonCode defaultButton, bool separator,
 			  const KGuiItem &user1, const KGuiItem &user2,
 			  const KGuiItem &user3 )
   :KDialog( parent, name, modal, WStyle_DialogBorder ),
@@ -137,32 +115,6 @@ KDialogBase::KDialogBase( QWidget *paren
 KDialogBase::KDialogBase( int dialogFace, const QString &caption,
 			  int buttonMask, ButtonCode defaultButton,
 			  QWidget *parent, const char *name, bool modal,
-			  bool separator, const QString &user1,
-			  const QString &user2, const QString &user3 )
-  :KDialog( parent, name, modal, WStyle_DialogBorder ),
-   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 );
-  if( mJanus == 0 || mJanus->isValid() == false ) { return; }
-
-  enableButtonSeparator( separator );
-  makeButtonBox( buttonMask, defaultButton, user1, user2, user3 );
-
-  mIsActivated = true;
-  setupLayout();
-}
-
-KDialogBase::KDialogBase( int dialogFace, const QString &caption, 
-			  int buttonMask, ButtonCode defaultButton, bool showPixmap,
-			  QWidget *parent, const char *name, bool modal,
 			  bool separator, const KGuiItem &user1,
 			  const KGuiItem &user2, const KGuiItem &user3 )
   :KDialog( parent, name, modal, WStyle_DialogBorder ),
@@ -189,50 +141,14 @@ KDialogBase::KDialogBase( int dialogFace
 KDialogBase::KDialogBase( const QString &caption, int buttonMask,
 			  ButtonCode defaultButton, ButtonCode escapeButton,
 			  QWidget *parent, const char *name, bool modal,
-			  bool separator, QString yes,
-			  QString no, QString cancel )
+			  bool separator, const KGuiItem &yes,
+			  const KGuiItem &no, const KGuiItem &cancel )
   :KDialog( parent, name, modal, WStyle_DialogBorder ),
    mTopLayout(0), mMainWidget(0), mUrlHelp(0), mJanus(0), mActionSep(0),
    mIsActivated(false), mShowTile(false), mMessageBoxMode(true),
    mButtonOrientation(Horizontal),mEscapeButton(escapeButton)
 {
   d = new KDialogBasePrivate;
-  if (yes.isEmpty())
-     yes = i18n("&Yes");
-  if (no.isEmpty())
-     no = i18n("&No");
-  if (cancel.isEmpty())
-     cancel = i18n("&Cancel");
-
-  setCaption( caption );
-
-  makeRelay();
-  connect( this, SIGNAL(layoutHintChanged()), this, SLOT(updateGeometry()) );
-
-  enableButtonSeparator( separator );
-
-  buttonMask &= Details|Yes|No|Cancel;
-
-  makeButtonBox( buttonMask, defaultButton, no, yes, QString::null );
-  setButtonCancelText( cancel );
-
-  mIsActivated = true;
-  setupLayout();
-}
-
-KDialogBase::KDialogBase( const QString &caption, int buttonMask,
-			  ButtonCode defaultButton, ButtonCode escapeButton,
-			  QWidget *parent, bool showPixmap, const char *name, bool modal,
-			  bool separator,KGuiItem yes,
-			  KGuiItem no, KGuiItem cancel )
-  :KDialog( parent, name, modal, WStyle_DialogBorder ),
-   mTopLayout(0), mMainWidget(0), mUrlHelp(0), mJanus(0), mActionSep(0),
-   mIsActivated(false), mShowTile(false), mMessageBoxMode(true),
-   mButtonOrientation(Horizontal),mEscapeButton(escapeButton)
-{
-  d = new KDialogBasePrivate;  if (yes.text().isEmpty())
-    if (cancel.text()!= i18n("&Cancel") )
-     cancel.setText( i18n("&Cancel"));
 
   setCaption( caption );
 
@@ -591,109 +507,6 @@ void KDialogBase::incInitialSize( const 
 
 
 void KDialogBase::makeButtonBox( int buttonMask, ButtonCode defaultButton,
-				 const QString &user1, const QString &user2,
-				 const QString &user3 )
-{
-  if( buttonMask == 0 )
-  {
-    d->mButton.box = 0;
-    return; // When we want no button box
-  }
-
-  if( buttonMask & Cancel ) { buttonMask &= ~Close; }
-  if( buttonMask & Apply ) { buttonMask &= ~Try; }
-  if( buttonMask & Details ) { buttonMask &= ~Default; }
-
-  if( mMessageBoxMode == false )
-  {
-    mEscapeButton = (buttonMask&Cancel) ? Cancel : Close;
-  }
-
-  d->mButton.box = new QWidget( this );
-
-  d->mButton.mask = buttonMask;
-  if( d->mButton.mask & Help )
-  {
-    QPushButton *pb = d->mButton.append( Help, i18n("&Help") );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotHelp()) );
-  }
-  if( d->mButton.mask & Default )
-  {
-    QPushButton *pb = d->mButton.append( Default, i18n("&Default") );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotDefault()) );
-  }
-  if( d->mButton.mask & Details )
-  {
-    QPushButton *pb = d->mButton.append( Details, QString::null );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotDetails()) );
-    setDetails(false);
-  }
-  if( d->mButton.mask & User3 )
-  {
-    QPushButton *pb = d->mButton.append( User3, user3 );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotUser3()) );
-  }
-  if( d->mButton.mask & User2 )
-  {
-    QPushButton *pb = d->mButton.append( User2, user2 );
-    if( mMessageBoxMode == true )
-    {
-      connect( pb, SIGNAL(clicked()), this, SLOT(slotYes()) );
-    }
-    else
-    {
-      connect( pb, SIGNAL(clicked()), this, SLOT(slotUser2()) );
-    }
-  }
-  if( d->mButton.mask & User1 )
-  {
-    QPushButton *pb = d->mButton.append( User1, user1 );
-    if( mMessageBoxMode == true )
-    {
-      connect( pb, SIGNAL(clicked()), this, SLOT(slotNo()) );
-    }
-    else
-    {
-      connect( pb, SIGNAL(clicked()), this, SLOT(slotUser1()) );
-    }
-  }
-  if( d->mButton.mask & Ok )
-  {
-    QPushButton *pb = d->mButton.append( Ok, i18n("&OK") );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotOk()) );
-  }
-  if( d->mButton.mask & Apply )
-  {
-    QPushButton *pb = d->mButton.append( Apply, i18n("&Apply") );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotApply()) );
-    connect( pb, SIGNAL(clicked()), this, SLOT(applyPressed()) );
-  }
-  if( d->mButton.mask & Try )
-  {
-    QPushButton *pb = d->mButton.append( Try, i18n("&Try") );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotTry()) );
-  }
-  if( d->mButton.mask & Cancel )
-  {
-    QPushButton *pb = d->mButton.append( Cancel, i18n("&Cancel") );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotCancel()) );
-  }
-  if( d->mButton.mask & Close )
-  {
-    QPushButton *pb = d->mButton.append( Close, i18n("&Close") );
-    connect( pb, SIGNAL(clicked()), this, SLOT(slotClose()) );
-  }
-
-  QPushButton *pb = actionButton( defaultButton );
-  if( pb != 0 )
-  {
-    setButtonFocus( pb, true, true );
-  }
-
-  setButtonStyle( ActionStyle0 );
-}
-
-void KDialogBase::makeButtonBox( int buttonMask, ButtonCode defaultButton,
 				 const KGuiItem &user1, const KGuiItem &user2,
 				 const KGuiItem &user3 )
 {
Index: kdialogbase.h
===================================================================
RCS file: /home/kde/kdelibs/kdeui/kdialogbase.h,v
retrieving revision 1.60
diff -u -p -B -w -r1.60 kdialogbase.h
--- kdialogbase.h	2001/11/19 17:38:43	1.60
+++ kdialogbase.h	2001/11/20 14:49:34
@@ -271,22 +271,14 @@ class KDialogBase : public KDialog
      *        the default.
      * @param separator If @p true, a separator line is drawn between the 
      *        action buttons and the main widget.
-     * @param user1 User button1 text.
-     * @param user2 User button2 text.
-     * @param user3 User button3 text.
+     * @param user1 User button1 item.
+     * @param user2 User button2 item.
+     * @param user3 User button3 item.
      */
     KDialogBase( QWidget *parent=0, const char *name=0, bool modal=true,
 		 const QString &caption=QString::null,
 		 int buttonMask=Ok|Apply|Cancel, ButtonCode defaultButton=Ok,
 		 bool separator=false, 
-		 const QString &user1=QString::null,
-		 const QString &user2=QString::null,
-		 const QString &user3=QString::null);
-
-    KDialogBase( QWidget *parent=0, bool showPixmap=false,const char *name=0, bool modal=true,
-		  const QString &caption=QString::null,
-		 int buttonMask=Ok|Apply|Cancel, ButtonCode defaultButton=Ok,
-		 bool separator=false, 
 		 const KGuiItem &user1=KGuiItem(),
 		 const KGuiItem &user2=KGuiItem(),
 		 const KGuiItem &user3=KGuiItem() );
@@ -310,22 +302,14 @@ class KDialogBase : public KDialog
      *        the dialog is open.
      * @param separator If @p true, a separator line is drawn between the 
      *        action buttons and the main widget.
-     * @param user1 User button1 text.
-     * @param user2 User button2 text.
-     * @param user3 User button3 text.
+     * @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=0, const char *name=0, bool modal=true, 
 		 bool separator=false,
-		 const QString &user1=QString::null,
-		 const QString &user2=QString::null,
-		 const QString &user3=QString::null);
-
-    KDialogBase( int dialogFace, const QString &caption, 
-		 int buttonMask, ButtonCode defaultButton, bool showPixmap=false, 
-		 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() );
@@ -362,21 +346,12 @@ class KDialogBase : public KDialog
      * @param user3 User button3 text.
      */
     KDialogBase( const QString &caption, int buttonMask=Yes|No|Cancel, 
-		 ButtonCode defaultButton=Yes, ButtonCode escapeButton=Cancel, 
-		 QWidget *parent=0, const char *name=0, bool modal=true, 
-		 bool separator=false,
-		 QString yes = QString::null, // i18n("&Yes")
-		 QString no = QString::null, // i18n("&No"),
-		 QString cancel = QString::null // i18n("&Cancel") 
-	       );
-
-    KDialogBase( const QString &caption, int buttonMask=Yes|No|Cancel, 
 		 ButtonCode defaultButton=Yes, ButtonCode escapeButton=Cancel, 
-		 QWidget *parent=0, bool showPixmap=false, const char *name=0, bool modal=true, 
-		 bool separator=false,
-		 KGuiItem yes = KStdGuiItem::yes(), // i18n("&Yes")
-		 KGuiItem no = KStdGuiItem::no(), // i18n("&No"),
-		 KGuiItem cancel = KStdGuiItem::cancel() // i18n("&Cancel") 
+		 QWidget *parent=0, const char *name=0,
+                 bool modal=true, bool separator=false,
+		 const KGuiItem &yes = KStdGuiItem::yes(), // i18n("&Yes")
+		 const KGuiItem &no = KStdGuiItem::no(), // i18n("&No"),
+		 const KGuiItem &cancel = KStdGuiItem::cancel() // i18n("&Cancel")
 	         );
 
     /**
@@ -1391,16 +1366,11 @@ class KDialogBase : public KDialog
      * @param buttonMask Specifies what buttons will be made.
      * @param defaultButton Specifies what button we be marked as the 
      * default.
-     * @param user1 User button1 text.
-     * @param user2 User button2 text.
-     * @param user2 User button3 text. 
+     * @param user1 User button1 item.
+     * @param user2 User button2 item.
+     * @param user2 User button3 item.
      */
     void makeButtonBox( int mask, ButtonCode defaultButton, 
-			const QString &user1 = QString::null,
-			const QString &user2 = QString::null,
-			const QString &user3 = QString::null );
-
-    void makeButtonBox( int mask, ButtonCode defaultButton, 
 			const KGuiItem &user1 = KGuiItem(),
 			const KGuiItem &user2 = KGuiItem(),
 			const KGuiItem &user3 = KGuiItem() );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic