stifui/qt/src/frmmain.cpp
branchRCL_3
changeset 42 d40e813b23c0
parent 33 65b472535a0d
equal deleted inserted replaced
33:65b472535a0d 42:d40e813b23c0
   106     }
   106     }
   107 
   107 
   108 void FrmMain::setSetting()
   108 void FrmMain::setSetting()
   109     {
   109     {
   110     controller->SetShowOutput(uiSetting->ReadSetting(KShowOutput) == "true");    
   110     controller->SetShowOutput(uiSetting->ReadSetting(KShowOutput) == "true");    
       
   111     // Apply filter changes
       
   112     QString newFilter = uiSetting->ReadSetting(KFilter);
       
   113     QString newFilterCaseSens = uiSetting->ReadSetting(KFilterCaseSens); 
       
   114     if(currentFilter != newFilter || currentFilterCaseSens != newFilterCaseSens)
       
   115         {
       
   116         // Store new filter for further use
       
   117         currentFilter = newFilter;
       
   118         currentFilterCaseSens = newFilterCaseSens;
       
   119         
       
   120         // Create and setup regular expression for wildcard searching
       
   121         QRegExp filter;
       
   122         filter.setPattern((newFilter == "") ? ("*") : (tr("*") + newFilter + tr("*")));
       
   123         filter.setCaseSensitivity((newFilterCaseSens == "true") ? (Qt::CaseSensitive) : (Qt::CaseInsensitive));
       
   124         filter.setPatternSyntax(QRegExp::Wildcard);
       
   125 
       
   126         // Go through top level entries (modules)
       
   127         bool isAnythingHidden = false;
       
   128         for(int i = 0; i < treeModuleList->topLevelItemCount(); i++)
       
   129             {
       
   130             QTreeWidgetItem* top = treeModuleList->topLevelItem(i);
       
   131             // And through test cases for each module
       
   132             for(int j = 0; j < top->childCount(); j++)
       
   133                 {                
       
   134                 QTreeWidgetItem *child = top->child(j);
       
   135                 // Remove first three chars to get valid test case title
       
   136                 QString title = (child->text(0)).mid(3);
       
   137                 // Check if title is matching to filter and show or hide it
       
   138                 if(filter.exactMatch(title))
       
   139                     {
       
   140                     child->setHidden(false);
       
   141                     }
       
   142                 else
       
   143                     {
       
   144                     child->setHidden(true);
       
   145                     child->setText(0, child->text(0).replace(0, 3, UNSELECTITEMHEADER));
       
   146                     isAnythingHidden = true;
       
   147                     }
       
   148                 }
       
   149             }
       
   150 
       
   151         if(isAnythingHidden)
       
   152             treeModuleList->headerItem()->setText(0, tr("Module List (filtered)"));
       
   153         else
       
   154             treeModuleList->headerItem()->setText(0, tr("Module List"));
       
   155         }
   111     }
   156     }
   112 
   157 
   113 void FrmMain::OnGetMessage(const QString& aMessage)
   158 void FrmMain::OnGetMessage(const QString& aMessage)
   114     {
   159     {
   115     txtOutput->appendPlainText(aMessage);
   160     txtOutput->appendPlainText(aMessage);
   799     
   844     
   800     int index = 0;
   845     int index = 0;
   801     QTreeWidgetItem* item = treeModuleList->topLevelItem(index);
   846     QTreeWidgetItem* item = treeModuleList->topLevelItem(index);
   802     while (item != 0)
   847     while (item != 0)
   803         {
   848         {
   804         item->setText(0, item->text(0).replace(0,3, header));
   849         if(!item->isHidden())
       
   850             item->setText(0, item->text(0).replace(0,3, header));
   805         for (int i = 0; i < item->childCount(); i++)
   851         for (int i = 0; i < item->childCount(); i++)
   806             {
   852             {
   807             QTreeWidgetItem* child = item->child(i);
   853             QTreeWidgetItem* child = item->child(i);
   808             child->setText(0,child->text(0).replace(0,3,header));
   854             if(!child->isHidden())
       
   855                 child->setText(0,child->text(0).replace(0,3,header));
   809             }
   856             }
   810         index++;
   857         index++;
   811         item = treeModuleList->topLevelItem(index);
   858         item = treeModuleList->topLevelItem(index);
   812         }
   859         }
   813     }
   860     }
   842     }
   889     }
   843 
   890 
   844 void FrmMain::on_actSetting_triggered()
   891 void FrmMain::on_actSetting_triggered()
   845     {
   892     {
   846     DlgSetting dlgSet(uiSetting);
   893     DlgSetting dlgSet(uiSetting);
       
   894     currentFilter = uiSetting->ReadSetting(KFilter);
       
   895     currentFilterCaseSens = uiSetting->ReadSetting(KFilterCaseSens);
   847     int result = dlgSet.exec();
   896     int result = dlgSet.exec();
   848     if(result == QDialog::Accepted)
   897     if(result == QDialog::Accepted)
   849         {
   898         {
   850         setSetting();
   899         setSetting();
   851         }
   900         }
  1106 void FrmMain::on_actOutput_triggered()
  1155 void FrmMain::on_actOutput_triggered()
  1107     {
  1156     {
  1108     controller->SetShowOutput(true);
  1157     controller->SetShowOutput(true);
  1109     }
  1158     }
  1110 
  1159 
  1111 
  1160 // End of File