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 } |