Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Fixed issue where remove search setting appears after searching.
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Wed, 24 Feb 2016 16:05:01 +0000 (16:05 +0000)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Wed, 24 Feb 2016 16:05:01 +0000 (16:05 +0000)
This is appears after searching with one search setting where the remove
search setting button appears. The user can remove this setting, however
would not have been able to add a setting until the user had hit the
Reset button.

This has been fixed and now checks if only one setting is being used
after searching.

source/search/frmSearch.cpp

index 23b32b6..56ae1ed 100644 (file)
@@ -26,6 +26,8 @@
 
 #include <thread>
 
+#define SEARCHSETTINGS_MAX 15
+
 DEFINE_EVENT_TYPE(SE_ADDSEARCHSETTING);
 DEFINE_EVENT_TYPE(SE_REMOVESEARCHSETTING);
 DEFINE_EVENT_TYPE(SE_RELOADACCOUNTS);
@@ -261,13 +263,13 @@ void frmSearch::AddSearchSetting( wxCommandEvent& event )
        SearchFrames.insert(std::make_pair(ScrollGen, NewPanel));
        ScrollGen++;
        
-       // Check if number of search settings is 15 (or over).
+       // Check if number of search settings is SEARCHSETTINGS_MAX (or over).
        // If it is, disable the option of adding extra settings
        // for all frames until one is removed.
 
        XABSearchPanel *XABSPPtr;
        
-       if (SearchFrames.size() >= 15){
+       if (SearchFrames.size() >= SEARCHSETTINGS_MAX){
        
                for (std::map<int,void*>::iterator iter = SearchFrames.begin(); 
                iter != SearchFrames.end(); ++iter){
@@ -321,7 +323,7 @@ void frmSearch::RemoveSearchSetting( wxCommandEvent& event )
        
        //szrSearch->Fit(tabSearch);
        
-       if (SearchFrames.size() < 15 && SearchFrames.size() > 1){
+       if (SearchFrames.size() < SEARCHSETTINGS_MAX && SearchFrames.size() > 1){
        
                for (std::map<int,void*>::iterator iter = SearchFrames.begin(); 
                iter != SearchFrames.end(); ++iter){
@@ -379,6 +381,19 @@ void frmSearch::SearchFinished( wxCommandEvent& event ){
 
 void frmSearch::DisableAllSearchSettings(bool Enable){
 
+       // Check if there is only one search value. If there is, only enable
+       // the add button.
+       
+       if (SearchFrames.size() == 1){
+       
+               XABSearchPanel *XABSPPtr = static_cast<XABSearchPanel*>(SearchFrames.begin()->second);
+               XABSPPtr->EnableButtons(TRUE, FALSE);
+               return;
+               
+       }
+       
+       // More than one control, so process them.
+       
        for (std::map<int, void*>::iterator siter = SearchFrames.begin();
                siter != SearchFrames.end(); siter++){
        
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy