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

List:       kde-commits
Subject:    KDE/kdesdk/cervisia
From:       Christian Loose <christian.loose () hamburg ! de>
Date:       2005-07-11 17:31:35
Message-ID: 1121103095.791524.26308.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 433744 by cloose:

fix bug #104852:

enable/disable buttons in log dialog based on the number of selected versions.

BUG: 104852

 M  +33 -0     logdlg.cpp  
 M  +1 -0      logdlg.h  


--- trunk/KDE/kdesdk/cervisia/logdlg.cpp #433743:433744
@@ -202,6 +202,8 @@
 
     KConfigGroupSaver cs(&partConfig, "LogDialog");
     tabWidget->setCurrentPage(partConfig.readNumEntry("ShowTab", 0));
+
+    updateButtons();
 }
 
 
@@ -541,6 +543,8 @@
 
                 tree->setSelectedPair(selectionA, selectionB);
                 list->setSelectedPair(selectionA, selectionB);
+
+                updateButtons();
                 return;
             }
     kdDebug(8050) << "Internal error: Revision not found " << rev << "." << endl;
@@ -556,6 +560,35 @@
 }
 
 
+void LogDialog::updateButtons()
+{
+    // no versions selected?
+    if( selectionA.isEmpty() && selectionB.isEmpty() )
+    {
+        enableButton(User1, true);  // annotate
+        enableButton(User2, false); // diff
+        enableButtonOK(false);      // view
+        enableButtonApply(false);   // create patch
+    }
+    // both versions selected?
+    else if( !selectionA.isEmpty() && !selectionB.isEmpty() )
+    {
+        enableButton(User1, false); // annotate
+        enableButton(User2, true);  // diff
+        enableButtonOK(false);      // view
+        enableButtonApply(true);    // create patch
+    }
+    // only single version selected?
+    else
+    {
+        enableButton(User1, true);  // annotate
+        enableButton(User2, true);  // diff
+        enableButtonOK(true);       // view
+        enableButtonApply(true);    // create patch
+    }
+}
+
+
 void LogDialog::tagASelected(int n)
 {
     if (n)
--- trunk/KDE/kdesdk/cervisia/logdlg.h #433743:433744
@@ -75,6 +75,7 @@
 
 private:
     void tagSelected(LogDialogTagInfo* tag, bool rmb);
+    void updateButtons();
 
     QString filename;
     QPtrList<Cervisia::LogInfo> items;
[prev in list] [next in list] [prev in thread] [next in thread] 

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