[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