Branch: master

81515b6d 2014-03-08 23:13:10 Michele Calgaro
In KFindDialog/KReplaceDialog the option "use placeholders" only makes
sense and works when searching using regular expressions.
This resolves bug 1863.
M tdeutils/kfinddialog.cpp
M tdeutils/kfinddialog.h
diff --git a/tdeutils/kfinddialog.cpp b/tdeutils/kfinddialog.cpp
index 718fdca..974e259 100644
--- a/tdeutils/kfinddialog.cpp
+++ b/tdeutils/kfinddialog.cpp
@@ -149,8 +149,9 @@
     m_replace->setMaxCount(10);
     m_replace->setDuplicatesEnabled(false);
     m_backRef = new TQCheckBox(i18n("Use p&laceholders"), m_replaceGrp);
+    m_backRef->setEnabled(m_regExp->isChecked());
     m_backRefItem = new TQPushButton(i18n("Insert Place&holder"), m_replaceGrp);
-    m_backRefItem->setEnabled(false);
+    m_backRefItem->setEnabled(m_regExp->isChecked() && m_backRef->isChecked());
 
     m_replaceLayout->addWidget(m_replaceLabel, 0, 0);
     m_replaceLayout->addMultiCellWidget(m_replace, 1, 1, 0, 1);
@@ -193,8 +194,8 @@
 
     // signals and slots connections
     connect(m_selectedText, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotSelectedTextToggled(bool)));
-    connect(m_regExp, TQT_SIGNAL(toggled(bool)), m_regExpItem, TQT_SLOT(setEnabled(bool)));
-    connect(m_backRef, TQT_SIGNAL(toggled(bool)), m_backRefItem, TQT_SLOT(setEnabled(bool)));
+    connect(m_regExp, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotRegexCheckBoxToggled(bool)));
+    connect(m_backRef, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotPlaceholdersCheckBoxToggled(bool)));
     connect(m_regExpItem, TQT_SIGNAL(clicked()), this, TQT_SLOT(showPatterns()));
     connect(m_backRefItem, TQT_SIGNAL(clicked()), this, TQT_SLOT(showPlaceholders()));
 
@@ -276,11 +277,23 @@
             "Ask before replacing each match found.") );
 }
 
-void KFindDialog::textSearchChanged( const TQString & text)
+void KFindDialog::textSearchChanged(const TQString & text)
 {
     enableButtonOK( !text.isEmpty() );
 }
 
+void KFindDialog::slotRegexCheckBoxToggled(bool checked)
+{
+    m_regExpItem->setEnabled(checked);    
+    m_backRef->setEnabled(checked);
+    m_backRefItem->setEnabled(checked && m_backRef->isChecked());
+}
+
+void KFindDialog::slotPlaceholdersCheckBoxToggled(bool checked)
+{
+    m_backRefItem->setEnabled(checked && m_regExp->isChecked());
+}
+
 void KFindDialog::showEvent( TQShowEvent *e )
 {
     if ( !d->m_initialShowDone )
diff --git a/tdeutils/kfinddialog.h b/tdeutils/kfinddialog.h
index c616518..687939e 100644
--- a/tdeutils/kfinddialog.h
+++ b/tdeutils/kfinddialog.h
@@ -250,7 +250,9 @@
     void slotSelectedTextToggled(bool);
     void showPatterns();
     void showPlaceholders();
-    void textSearchChanged( const TQString &);
+    void textSearchChanged(const TQString &);
+    void slotRegexCheckBoxToggled(bool checked);
+    void slotPlaceholdersCheckBoxToggled(bool checked);
 
 protected:
     virtual void showEvent ( TQShowEvent * );