From 61424d335349e0611f1c017d0079553231f1c433 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Wed, 4 Feb 2015 13:39:38 +0900 Subject: Added support to remember search/replace strings used in TDEFileReplace. This resolves bug 2334. Signed-off-by: Michele Calgaro --- tdefilereplace/configurationclasses.cpp | 2 + tdefilereplace/configurationclasses.h | 4 ++ tdefilereplace/knewprojectdlg.cpp | 75 ++++++++++++++++++++++----------- tdefilereplace/knewprojectdlg.h | 4 +- tdefilereplace/knewprojectdlgs.ui | 74 +++++++++++++++++++++++++++----- tdefilereplace/tdefilereplacepart.cpp | 45 +++++++++++--------- tdefilereplace/tdefilereplacepart.h | 4 +- 7 files changed, 149 insertions(+), 59 deletions(-) diff --git a/tdefilereplace/configurationclasses.cpp b/tdefilereplace/configurationclasses.cpp index 356d8c4..afc3d85 100644 --- a/tdefilereplace/configurationclasses.cpp +++ b/tdefilereplace/configurationclasses.cpp @@ -36,6 +36,8 @@ RCOptions& RCOptions::operator=(const RCOptions& ci) { //m_callResetActions = ci.m_callResetActions; + m_searchStrings = ci.m_searchStrings; + m_replaceStrings = ci.m_replaceStrings; m_directories = ci.m_directories; m_filters = ci.m_filters; m_currentDirectory = ci.m_currentDirectory; diff --git a/tdefilereplace/configurationclasses.h b/tdefilereplace/configurationclasses.h index b42bb17..beaa275 100644 --- a/tdefilereplace/configurationclasses.h +++ b/tdefilereplace/configurationclasses.h @@ -26,6 +26,8 @@ typedef TQMap KeyValueMap; // entry strings in the tdefilereplacerc file +const TQString rcSearchStringsList = "Search strings list"; +const TQString rcReplaceStringsList = "Replace strings list"; const TQString rcDirectoriesList = "Directories list"; const TQString rcFiltersList = "Filters list"; const TQString rcRecentFiles = "Recent files"; @@ -86,6 +88,8 @@ class RCOptions bool m_askConfirmReplace, m_dontAskAgain; + TQStringList m_searchStrings; + TQStringList m_replaceStrings; TQStringList m_directories; TQStringList m_filters; TQString m_currentDirectory; diff --git a/tdefilereplace/knewprojectdlg.cpp b/tdefilereplace/knewprojectdlg.cpp index 372ba18..9ba6bbc 100644 --- a/tdefilereplace/knewprojectdlg.cpp +++ b/tdefilereplace/knewprojectdlg.cpp @@ -64,7 +64,7 @@ KNewProjectDlg::KNewProjectDlg(RCOptions* info, TQWidget *parent, const char *na connect(m_pbCancel, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotReject())); connect(m_pbSearchNow, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotSearchNow())); connect(m_pbSearchLater, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotSearchLater())); - connect(m_leSearch, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(slotSearchLineEdit(const TQString&))); + connect(m_cbSearch, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(slotSearchLineEdit(const TQString&))); connect(m_chbSizeMin, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotEnableSpinboxSizeMin(bool))); connect(m_chbSizeMax, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotEnableSpinboxSizeMax(bool))); connect(m_chbDateMin, TQT_SIGNAL(toggled(bool)), m_dedDateMin, TQT_SLOT(setEnabled(bool))); @@ -89,7 +89,7 @@ void KNewProjectDlg::saveRCOptions() saveFileSizeOptions(); saveDateAccessOptions(); saveOwnerOptions(); - saveLocationsList(); + saveCBLists(); saveFiltersList(); saveBackupExtensionOptions(); } @@ -104,19 +104,17 @@ void KNewProjectDlg::slotDir() void KNewProjectDlg::slotOK() { // Check that Search text and Filter are not empty - m_option->m_directories = m_cbLocation->currentText(); - m_option->m_filters = m_cbFilter->currentText(); - if(!m_leSearch->text().isEmpty()) + if(!m_cbSearch->currentText().isEmpty()) { - if(m_leReplace->text().isEmpty()) + if(m_cbReplace->currentText().isEmpty()) m_option->m_searchingOnlyMode = true; else m_option->m_searchingOnlyMode = false; } - m_option->m_quickSearchString = m_searchNowFlag + m_leSearch->text(); - m_option->m_quickReplaceString = m_searchNowFlag + m_leReplace->text(); + m_option->m_quickSearchString = m_searchNowFlag + m_cbSearch->currentText(); + m_option->m_quickReplaceString = m_searchNowFlag + m_cbReplace->currentText(); - if (m_option->m_directories.isEmpty() || m_option->m_filters.isEmpty()) + if (m_cbLocation->currentText().isEmpty() || m_cbFilter->currentText().isEmpty()) { KMessageBox::error(this, i18n("You must fill the combo boxes (location and filter) before continuing.")); return; @@ -166,6 +164,7 @@ void KNewProjectDlg::slotSearchLater() void KNewProjectDlg::slotSearchLineEdit(const TQString& t) { m_pbSearchNow->setEnabled(!t.isEmpty()); + m_pbSearchLater->setEnabled(!t.isEmpty()); } void KNewProjectDlg::slotEnableSpinboxSizeMin(bool b) @@ -225,16 +224,17 @@ void KNewProjectDlg::initGUI() m_pbLocation->setFixedSize(pixMap.width() + 8, pixMap.height() + 8); m_pbSearchNow->setEnabled(false); + m_pbSearchLater->setEnabled(false); loadOptions(); loadFileSizeOptions(); loadDateAccessOptions(); loadOwnerOptions(); loadBackupExtensionOptions(); - loadLocationsList(); + loadCBLists(); loadFiltersList(); - m_leSearch->setFocus(); + m_cbSearch->setFocus(); } void KNewProjectDlg::loadOptions() @@ -363,8 +363,10 @@ void KNewProjectDlg::loadOwnerOptions() m_edOwnerGroup->setText(m_option->m_ownerGroupValue); } -void KNewProjectDlg::loadLocationsList() +void KNewProjectDlg::loadCBLists() { + m_cbSearch->insertStringList(m_option->m_searchStrings); + m_cbReplace->insertStringList(m_option->m_replaceStrings); m_cbLocation->insertStringList(m_option->m_directories); } @@ -467,20 +469,43 @@ void KNewProjectDlg::saveOwnerOptions() } } -void KNewProjectDlg::saveLocationsList() +void KNewProjectDlg::saveCBLists() { - TQString current = m_cbLocation->currentText(); - TQStringList list = current; - - int count = m_cbLocation->listBox()->count(), - i; - for(i = 0; i < count; i++) + // Search list + TQString current = m_cbSearch->currentText(); + m_option->m_searchStrings.clear(); + m_option->m_searchStrings.append(current); + int count = m_cbSearch->listBox()->count(); + for (int i = 0; i < count; ++i) { - TQString text = m_cbLocation->listBox()->item(i)->text(); - if(text != current) - list.append(text); + TQString text = m_cbSearch->listBox()->item(i)->text(); + if (text != "" && text != current) + m_option->m_searchStrings.append(text); + } + + // Replace list + current = m_cbReplace->currentText(); + m_option->m_replaceStrings.clear(); + m_option->m_replaceStrings.append(current); + count = m_cbReplace->listBox()->count(); + for (int i = 0; i < count; ++i) + { + TQString text = m_cbReplace->listBox()->item(i)->text(); + if (text != "" && text != current) + m_option->m_replaceStrings.append(text); + } + + // Location list + current = m_cbLocation->currentText(); + m_option->m_directories.clear(); + m_option->m_directories.append(current); + count = m_cbLocation->listBox()->count(); + for (int i = 0; i < count; ++i) + { + TQString text = m_cbLocation->listBox()->item(i)->text(); + if (text != "" && text != current) + m_option->m_directories.append(text); } - m_option->m_directories = list; } void KNewProjectDlg::saveFiltersList() @@ -549,8 +574,8 @@ void KNewProjectDlg::whatsThis() TQWhatsThis::add(m_chbCaseSensitive, chbCaseSensitiveWhatthis); TQWhatsThis::add(m_chbBackup, chbBackupWhatthis); TQWhatsThis::add(m_leBackup, chbBackupWhatthis); - TQWhatsThis::add(m_leSearch, leSearchWhatthis); - TQWhatsThis::add(m_leReplace, leReplaceWhatthis); + TQWhatsThis::add(m_cbSearch, leSearchWhatthis); + TQWhatsThis::add(m_cbReplace, leReplaceWhatthis); } #include "knewprojectdlg.moc" diff --git a/tdefilereplace/knewprojectdlg.h b/tdefilereplace/knewprojectdlg.h index 82e08ad..82d2212 100644 --- a/tdefilereplace/knewprojectdlg.h +++ b/tdefilereplace/knewprojectdlg.h @@ -67,7 +67,7 @@ class KNewProjectDlg : public KNewProjectDlgS void loadFileSizeOptions(); void loadDateAccessOptions(); void loadOwnerOptions(); - void loadLocationsList(); + void loadCBLists(); void loadFiltersList(); void loadBackupExtensionOptions(); @@ -75,7 +75,7 @@ class KNewProjectDlg : public KNewProjectDlgS void saveFileSizeOptions(); void saveDateAccessOptions(); void saveOwnerOptions(); - void saveLocationsList(); + void saveCBLists(); void saveFiltersList(); void saveBackupExtensionOptions(); diff --git a/tdefilereplace/knewprojectdlgs.ui b/tdefilereplace/knewprojectdlgs.ui index 3f32b6f..d292814 100644 --- a/tdefilereplace/knewprojectdlgs.ui +++ b/tdefilereplace/knewprojectdlgs.ui @@ -200,7 +200,7 @@ 20 - 10 + 20 AtTop @@ -319,15 +319,67 @@ unnamed - - - m_leSearch - + + + m_cbSearch + + + + 3 + 0 + 0 + 0 + + + + true + + + 20 + + + 20 + + + AtTop + + + false + + + Insert a search string here. + - - - m_leReplace - + + + m_cbReplace + + + + 3 + 0 + 0 + 0 + + + + true + + + 20 + + + 20 + + + AtTop + + + false + + + Insert a search string here. + @@ -901,8 +953,8 @@ tabWidget2 - m_leSearch - m_leReplace + m_cbSearch + m_cbReplace m_cbLocation m_pbLocation m_cbFilter diff --git a/tdefilereplace/tdefilereplacepart.cpp b/tdefilereplace/tdefilereplacepart.cpp index f9aec23..69aee28 100644 --- a/tdefilereplace/tdefilereplacepart.cpp +++ b/tdefilereplace/tdefilereplacepart.cpp @@ -679,7 +679,7 @@ void TDEFileReplacePart::loadOptionsFromRC() loadFileSizeOptions(); loadDateAccessOptions(); loadOwnerOptions(); - loadLocationsList(); + loadCBLists(); loadFiltersList(); loadBackupExtensionOptions(); } @@ -764,20 +764,21 @@ void TDEFileReplacePart::loadOwnerOptions() m_option->m_ownerGroupValue = ownerList[3]; } -void TDEFileReplacePart::loadLocationsList() +void TDEFileReplacePart::loadCBLists() { + // Search list + m_config->setGroup("Search strings"); + m_option->m_searchStrings = m_config->readPathListEntry(rcSearchStringsList); + + // Replace list + m_config->setGroup("Replace strings"); + m_option->m_replaceStrings = m_config->readPathListEntry(rcReplaceStringsList); + + // Location list m_config->setGroup("Directories"); - TQStringList locationsEntryList; - #if KDE_IS_VERSION(3,1,3) - locationsEntryList = m_config->readPathListEntry(rcDirectoriesList); - #else - locationsEntryList = m_config->readListEntry(rcDirectoriesList); - #endif - - if(locationsEntryList.isEmpty()) - locationsEntryList.append(TQDir::current().path()); - - m_option->m_directories = locationsEntryList; + m_option->m_directories = m_config->readPathListEntry(rcDirectoriesList); + if (m_option->m_directories.isEmpty()) + m_option->m_directories.append(TQDir::current().path()); } void TDEFileReplacePart::loadFiltersList() @@ -817,7 +818,7 @@ void TDEFileReplacePart::saveOptionsToRC() saveFileSizeOptions(); saveDateAccessOptions(); saveOwnerOptions(); - saveLocationsList(); + saveCBLists(); saveFiltersList(); saveBackupExtensionOptions(); } @@ -909,14 +910,20 @@ void TDEFileReplacePart::saveOwnerOptions() m_config->sync(); } -void TDEFileReplacePart::saveLocationsList() +void TDEFileReplacePart::saveCBLists() { + // Search list + m_config->setGroup("Search strings"); + m_config->writePathEntry(rcSearchStringsList, m_option->m_searchStrings); + + // Replace list + m_config->setGroup("Replace strings"); + m_config->writePathEntry(rcReplaceStringsList, m_option->m_replaceStrings); + + // Location list m_config->setGroup("Directories"); - #if KDE_IS_VERSION(3,1,3) m_config->writePathEntry(rcDirectoriesList, m_option->m_directories); - #else - m_config->writeEntry(rcDirectoriesList, m_option->m_directories); - #endif + m_config->sync(); } diff --git a/tdefilereplace/tdefilereplacepart.h b/tdefilereplace/tdefilereplacepart.h index 27ad916..45064f7 100644 --- a/tdefilereplace/tdefilereplacepart.h +++ b/tdefilereplace/tdefilereplacepart.h @@ -114,7 +114,7 @@ class TDEFileReplacePart: public KParts::ReadOnlyPart void loadFileSizeOptions(); void loadDateAccessOptions(); void loadOwnerOptions(); - void loadLocationsList(); + void loadCBLists(); void loadFiltersList(); void loadBackupExtensionOptions(); @@ -126,7 +126,7 @@ class TDEFileReplacePart: public KParts::ReadOnlyPart void saveFileSizeOptions(); void saveDateAccessOptions(); void saveOwnerOptions(); - void saveLocationsList(); + void saveCBLists(); void saveFiltersList(); void saveBackupExtensionOptions(); -- cgit v1.2.1