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

List:       kde-devel
Subject:    [PATCH] kdeutils/kcalc UI Inconsistency OK APPLY buttons
From:       Willy De la Court <Willy.DelaCourt () pandora ! be>
Date:       2003-04-01 14:33:20
[Download RAW message or body]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Patch comments
- ------------------------------------------------------
UI Inconsistency OK APPLY buttons
Apply diabled when nothing is changed
Ok only saves when something is changed
with using Kate some trailing spaces removed
- ------------------------------------------------------

I'll wait 2 days for comments on this before commiting.
- -- 
Simple things make people happy.
Willy De la Court
PGP Public Key at http://www.linux-lovers.be/download/public_key.asc
PGP Key fingerprint = 784E E18F 7F85 9C7C AC1A D5FB FE08 686C 37C7 A689
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+iaMw/ghobDfHpokRAoSzAKDnmJcJkkcCNGLEriBxtfA4rMA+pwCeK+yp
my7UESUTRQXe18hM/aZcRX8=
=dwxo
-----END PGP SIGNATURE-----

["kdeutils_kcalc.applyok.patch" (text/x-diff)]

Index: optiondialog.cpp
===================================================================
RCS file: /home/kde/kdeutils/kcalc/optiondialog.cpp,v
retrieving revision 1.22
diff -u -p -r1.22 optiondialog.cpp
--- optiondialog.cpp	19 Mar 2003 01:35:11 -0000	1.22
+++ optiondialog.cpp	1 Apr 2003 14:28:10 -0000
@@ -82,13 +82,15 @@ void ConfigureDialog::setState(const Def
 	mBeepCheck->setChecked(mState.beep);
 	mCaptionResult->setChecked(mState.capres);
 	mTrigRadio->setChecked(mState.style == 0);
-	mStatRadio->setChecked(mState.style == 1);  
+	mStatRadio->setChecked(mState.style == 1);
 	mFontChooser->setFont(mState.font);
 
     kdDebug() << "mState.font.weight(): " << mState.font.weight() << endl;
     kdDebug() << "mFontChooser->font().weight(): " << mFontChooser->font().weight() << endl;
 
     fixCheckToggled( mState.fixed );
+	enableButton( Apply, false );
+	dataChanged = false;
 }
 
 //-------------------------------------------------------------------------
@@ -122,7 +124,8 @@ DefStruct ConfigureDialog::state()
 //-------------------------------------------------------------------------
 void ConfigureDialog::slotOk()
 {
-	slotApply();
+	if( dataChanged )
+		slotApply();
 	accept();
 }
 
@@ -133,6 +136,8 @@ void ConfigureDialog::slotApply()
 {
 	mState = state();
 	emit valueChanged(mState);
+	enableButton( Apply, false );
+	dataChanged = false;
 }
 
 //-------------------------------------------------------------------------
@@ -146,6 +151,15 @@ void ConfigureDialog::slotCancel()
 }
 
 //-------------------------------------------------------------------------
+// Name: slotChanged()
+//-------------------------------------------------------------------------
+void ConfigureDialog::slotChanged()
+{
+	enableButton( Apply, true );
+	dataChanged = true;
+}
+
+//-------------------------------------------------------------------------
 // Name: setupSettingPage()
 //-------------------------------------------------------------------------
 void ConfigureDialog::setupSettingPage()
@@ -155,13 +169,13 @@ void ConfigureDialog::setupSettingPage()
     if(!page)
         return;
 
-#ifdef HAVE_LONG_DOUBLE 
-    int maxprec = 16;	
-#else 
+#ifdef HAVE_LONG_DOUBLE
+    int maxprec = 16;
+#else
     int maxprec = 12 ;
-#endif 
+#endif
 
-    QVBoxLayout* Form1Layout = new QVBoxLayout( page, 0, spacingHint() ); 
+    QVBoxLayout* Form1Layout = new QVBoxLayout( page, 0, spacingHint() );
 
     QGroupBox* GroupBox2 = new QGroupBox( page, "GroupBox2" );
     GroupBox2->setTitle( i18n( "Precision" ) );
@@ -169,16 +183,18 @@ void ConfigureDialog::setupSettingPage()
     QGridLayout* GroupBox2Layout = new QGridLayout( GroupBox2->layout(),
             3, 4, spacingHint() );
 
-    QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Fixed, 
+    QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Fixed,
             QSizePolicy::Minimum );
     GroupBox2Layout->addItem( spacer, 2, 0 );
 
     mFixSpin = new QSpinBox(0, 10, 1, GroupBox2, "mFixSpin" );
     mFixSpin->setValue( 2 );
+    connect( mFixSpin, SIGNAL( valueChanged ( int ) ), this, SLOT( slotChanged() ) );
 
     GroupBox2Layout->addMultiCellWidget( mFixSpin, 2, 2, 2, 3 );
 
     mPrecSpin = new QSpinBox(0, maxprec, 1, GroupBox2, "mPrecSpin" );
+    connect( mPrecSpin, SIGNAL( valueChanged ( int ) ), this, SLOT( slotChanged() ) );
 
     GroupBox2Layout->addWidget( mPrecSpin, 0, 3 );
 
@@ -189,6 +205,7 @@ void ConfigureDialog::setupSettingPage()
 
     mFixCheck = new QCheckBox( GroupBox2, "mFixCheck" );
     mFixCheck->setText( i18n( "Set &decimal precision" ) );
+    connect( mFixCheck, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
 
     GroupBox2Layout->addMultiCellWidget( mFixCheck, 1, 1, 0, 2 );
 
@@ -196,7 +213,7 @@ void ConfigureDialog::setupSettingPage()
     TextLabel1->setText( i18n( "&Maximum number of digits:" ) );
 
     GroupBox2Layout->addMultiCellWidget( TextLabel1, 0, 0, 0, 2 );
-    QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, 
+    QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding,
             QSizePolicy::Minimum );
     GroupBox2Layout->addItem( spacer_2, 1, 4 );
     Form1Layout->addWidget( GroupBox2 );
@@ -213,11 +230,13 @@ void ConfigureDialog::setupSettingPage()
     mTrigRadio->setText( i18n( "&Trigonometric" ) );
     mTrigRadio->setChecked( TRUE );
     GroupBox1Layout->addWidget( mTrigRadio );
+    connect( mTrigRadio, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
 
     mStatRadio = new QRadioButton( GroupBox1, "mStatRadio" );
     mStatRadio->setText( i18n( "&Statistical" ) );
     GroupBox1Layout->addWidget( mStatRadio );
     Form1Layout->addWidget( GroupBox1 );
+    connect( mStatRadio, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
 
     QGroupBox* GroupBox3 = new QGroupBox( page, "GroupBox3" );
     GroupBox3->setTitle( i18n( "Misc" ) );
@@ -229,17 +248,19 @@ void ConfigureDialog::setupSettingPage()
 
     mBeepCheck = new QCheckBox( GroupBox3, "mBeepCheck" );
     mBeepCheck->setText( i18n( "&Beep on error" ) );
+    connect( mBeepCheck, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
     GroupBox3Layout->addWidget( mBeepCheck );
     mCaptionResult = new QCheckBox( GroupBox3, "mCaptionResult" );
     mCaptionResult->setText( i18n( "Show &result in window title" ) );
+    connect( mCaptionResult, SIGNAL( toggled( bool ) ), this, SLOT( slotChanged() ) );
     GroupBox3Layout->addWidget( mCaptionResult );
     Form1Layout->addWidget( GroupBox3 );
-    QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, 
+    QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum,
             QSizePolicy::Expanding );
     Form1Layout->addItem( spacer_3 );
 
     // signals and slots connections
-    connect( mFixCheck, SIGNAL( toggled( bool ) ), 
+    connect( mFixCheck, SIGNAL( toggled( bool ) ),
             SLOT( fixCheckToggled( bool ) ) );
 
     // buddies
@@ -272,12 +293,14 @@ void ConfigureDialog::setupColorPage()
     colorLable->setBuddy(mColorFGround);
     displayGrid->addWidget(colorLable, 0, 0);
     displayGrid->addWidget(mColorFGround, 0, 1);
+    connect( mColorFGround, SIGNAL( changed( const QColor &) ), this, SLOT( slotChanged() ) );
 
     colorLable = new QLabel(i18n("&Background:"), displayGroup);
     mColorBGround = new KColorButton(displayGroup);
     colorLable->setBuddy(mColorBGround);
     displayGrid->addWidget(colorLable, 1, 0);
     displayGrid->addWidget(mColorBGround, 1, 1);
+    connect( mColorBGround, SIGNAL( changed( const QColor &) ), this, SLOT( slotChanged() ) );
 
     QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, 
             QSizePolicy::Minimum );
@@ -295,32 +318,37 @@ void ConfigureDialog::setupColorPage()
     colorLable->setBuddy(mColorFunctions);
     buttonGrid->addWidget(colorLable, 0, 0);
     buttonGrid->addWidget(mColorFunctions, 0, 1);
+    connect( mColorFunctions, SIGNAL( changed( const QColor &) ), this, SLOT( slotChanged() ) );
 
     colorLable = new QLabel(i18n("He&xadecimals:"), buttonGroup);
     mColorHexa = new KColorButton(buttonGroup);
     colorLable->setBuddy(mColorHexa);
     buttonGrid->addWidget(colorLable, 1, 0);
     buttonGrid->addWidget(mColorHexa, 1, 1);
+    connect( mColorHexa, SIGNAL( changed( const QColor &) ), this, SLOT( slotChanged() ) );
 
     colorLable = new QLabel(i18n("&Numbers:"), buttonGroup);
     mColorNumbers = new KColorButton(buttonGroup);
     colorLable->setBuddy(mColorNumbers);
     buttonGrid->addWidget(colorLable, 2, 0);
     buttonGrid->addWidget(mColorNumbers, 2, 1);
+    connect( mColorNumbers, SIGNAL( changed( const QColor &) ), this, SLOT( slotChanged() ) );
 
     colorLable = new QLabel(i18n("&Memory:"), buttonGroup);
     mColorMemory = new KColorButton(buttonGroup);
     colorLable->setBuddy(mColorMemory);
     buttonGrid->addWidget(colorLable, 3, 0);
     buttonGrid->addWidget(mColorMemory, 3, 1);
+    connect( mColorMemory, SIGNAL( changed( const QColor &) ), this, SLOT( slotChanged() ) );
 
     colorLable = new QLabel(i18n("O&perations:"), buttonGroup);
     mColorOperations = new KColorButton(buttonGroup);
     colorLable->setBuddy(mColorOperations);
     buttonGrid->addWidget(colorLable, 4, 0);
     buttonGrid->addWidget(mColorOperations, 4, 1);
+    connect( mColorOperations, SIGNAL( changed( const QColor &) ), this, SLOT( slotChanged() ) );
 
-    spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, 
+    spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding,
             QSizePolicy::Minimum );
     buttonGrid->addItem(spacer, 1, 2);
 
@@ -342,9 +370,9 @@ void ConfigureDialog::setupFontPage()
 	if( topLayout == 0 )
 		return;
 
-	mFontChooser = new KFontChooser(page, "fonts", 
+	mFontChooser = new KFontChooser(page, "fonts",
 		false, QStringList(), false, 6);
-		
+	connect( mFontChooser, SIGNAL( fontSelected( const QFont &) ), this, SLOT( slotChanged() ) );
 	topLayout->addWidget(mFontChooser);
 	topLayout->activate();
 }
Index: optiondialog.h
===================================================================
RCS file: /home/kde/kdeutils/kcalc/optiondialog.h,v
retrieving revision 1.8
diff -u -p -r1.8 optiondialog.h
--- optiondialog.h	19 Mar 2003 01:35:12 -0000	1.8
+++ optiondialog.h	1 Apr 2003 14:28:10 -0000
@@ -46,6 +46,7 @@ protected slots:
 	void slotApply(); 
 	void slotCancel(); 
     void fixCheckToggled( bool );
+	void slotChanged();
 
 private:
 	void setupSettingPage();
@@ -62,7 +63,7 @@ private:
 	QRadioButton *mStatRadio;
     QLabel       *TextLabel2;
 	KFontChooser *mFontChooser;
-	KColorButton *mColorFGround; 
+	KColorButton *mColorFGround;
     KColorButton *mColorBGround;
     KColorButton *mColorFunctions;
     KColorButton *mColorHexa;
@@ -71,6 +72,7 @@ private:
     KColorButton *mColorOperations;
 
 	DefStruct    mState;
+	bool dataChanged;
 
 signals:
 	void valueChanged(const DefStruct &state);

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

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

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