Skip to content
Snippets Groups Projects
Commit fd6f1b69 authored by kh1's avatar kh1
Browse files

Show user defined filters only, some more of information about the filter.

Reviewed-by: ck
parent 1bcdb33f
No related branches found
No related tags found
No related merge requests found
...@@ -110,22 +110,24 @@ void FilterSettingsPage::updateFilterPage() ...@@ -110,22 +110,24 @@ void FilterSettingsPage::updateFilterPage()
manager->customValue(Help::Constants::PreviousFilterNameKey).toString(); manager->customValue(Help::Constants::PreviousFilterNameKey).toString();
} }
QSet<QString> attributes; Core::HelpManager::Filters filters = manager->userDefinedFilters();
const Core::HelpManager::Filters &filters = manager->filters();
Core::HelpManager::Filters::const_iterator it; Core::HelpManager::Filters::const_iterator it;
for (it = filters.constBegin(); it != filters.constEnd(); ++it) { for (it = filters.constBegin(); it != filters.constEnd(); ++it) {
const QString &filter = it.key(); const QString &filter = it.key();
if (filter == trUnfiltered || filter == lastTrUnfiltered) if (filter == trUnfiltered || filter == lastTrUnfiltered)
continue; continue;
attributes += it.value().toSet();
m_filterMapBackup.insert(filter, it.value()); m_filterMapBackup.insert(filter, it.value());
if (!m_filterMap.contains(filter)) if (!m_filterMap.contains(filter))
m_filterMap.insert(filter, it.value()); m_filterMap.insert(filter, it.value());
} }
m_ui.filterWidget->addItems(m_filterMap.keys()); m_ui.filterWidget->addItems(m_filterMap.keys());
QSet<QString> attributes;
filters = manager->filters();
for (it = filters.constBegin(); it != filters.constEnd(); ++it)
attributes += it.value().toSet();
foreach (const QString &attribute, attributes) foreach (const QString &attribute, attributes)
new QTreeWidgetItem(m_ui.attributeWidget, QStringList(attribute)); new QTreeWidgetItem(m_ui.attributeWidget, QStringList(attribute));
...@@ -148,6 +150,8 @@ void FilterSettingsPage::updateAttributes(QListWidgetItem *item) ...@@ -148,6 +150,8 @@ void FilterSettingsPage::updateAttributes(QListWidgetItem *item)
else else
itm->setCheckState(0, Qt::Unchecked); itm->setCheckState(0, Qt::Unchecked);
} }
updateFilterDescription(item ? item->text() : QString());
} }
void FilterSettingsPage::updateFilterMap() void FilterSettingsPage::updateFilterMap()
...@@ -166,6 +170,7 @@ void FilterSettingsPage::updateFilterMap() ...@@ -166,6 +170,7 @@ void FilterSettingsPage::updateFilterMap()
newAtts.append(itm->text(0)); newAtts.append(itm->text(0));
} }
m_filterMap[filter] = newAtts; m_filterMap[filter] = newAtts;
updateFilterDescription(filter);
} }
void FilterSettingsPage::addFilter() void FilterSettingsPage::addFilter()
...@@ -197,6 +202,9 @@ void FilterSettingsPage::removeFilter() ...@@ -197,6 +202,9 @@ void FilterSettingsPage::removeFilter()
delete item; delete item;
if (m_ui.filterWidget->count()) if (m_ui.filterWidget->count())
m_ui.filterWidget->setCurrentRow(0); m_ui.filterWidget->setCurrentRow(0);
item = m_ui.filterWidget->item(m_ui.filterWidget->currentRow());
updateFilterDescription(item ? item->text() : QString());
} }
void FilterSettingsPage::apply() void FilterSettingsPage::apply()
...@@ -243,3 +251,24 @@ bool FilterSettingsPage::matches(const QString &s) const ...@@ -243,3 +251,24 @@ bool FilterSettingsPage::matches(const QString &s) const
{ {
return m_searchKeywords.contains(s, Qt::CaseInsensitive); return m_searchKeywords.contains(s, Qt::CaseInsensitive);
} }
void FilterSettingsPage::updateFilterDescription(const QString &filter)
{
const QStringList &checkedList = m_filterMap.value(filter);
if (!m_filterMap.keys().isEmpty()) {
const QString prefix = tr("The filter \"%1\" will").arg(filter);
if (checkedList.isEmpty()) {
m_ui.label->setText(prefix + tr(" show every documentation file "
"available, as no attributes are specified."));
} else if (checkedList.count() == 1) {
m_ui.label->setText(prefix + tr(" only show documentation files that"
" have the attribute %2 specified.").arg(checkedList.first()));
} else {
m_ui.label->setText(prefix + tr(" only show documentation files that"
" have the attributes %2 specified.").arg(checkedList.join(", ")));
}
} else {
m_ui.label->setText(tr("No user defined filters available or no filter "
"selected."));
}
}
...@@ -65,6 +65,9 @@ private slots: ...@@ -65,6 +65,9 @@ private slots:
void addFilter(); void addFilter();
void removeFilter(); void removeFilter();
private:
void updateFilterDescription(const QString &filter);
private: private:
Ui::FilterSettingsPage m_ui; Ui::FilterSettingsPage m_ui;
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>400</width> <width>419</width>
<height>300</height> <height>313</height>
</rect> </rect>
</property> </property>
<property name="toolTip"> <property name="toolTip">
...@@ -27,6 +27,18 @@ Add, modify, and remove document filters, which determine the documentation set ...@@ -27,6 +27,18 @@ Add, modify, and remove document filters, which determine the documentation set
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<item> <item>
<widget class="QListWidget" name="filterWidget"> <widget class="QListWidget" name="filterWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>10</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>150</height>
</size>
</property>
<property name="uniformItemSizes"> <property name="uniformItemSizes">
<bool>true</bool> <bool>true</bool>
</property> </property>
...@@ -43,6 +55,18 @@ Add, modify, and remove document filters, which determine the documentation set ...@@ -43,6 +55,18 @@ Add, modify, and remove document filters, which determine the documentation set
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QTreeWidget" name="attributeWidget"> <widget class="QTreeWidget" name="attributeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>150</height>
</size>
</property>
<property name="showDropIndicator" stdset="0"> <property name="showDropIndicator" stdset="0">
<bool>false</bool> <bool>false</bool>
</property> </property>
...@@ -55,9 +79,6 @@ Add, modify, and remove document filters, which determine the documentation set ...@@ -55,9 +79,6 @@ Add, modify, and remove document filters, which determine the documentation set
<attribute name="headerVisible"> <attribute name="headerVisible">
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<column> <column>
<property name="text"> <property name="text">
<string>1</string> <string>1</string>
...@@ -70,6 +91,25 @@ Add, modify, and remove document filters, which determine the documentation set ...@@ -70,6 +91,25 @@ Add, modify, and remove document filters, which determine the documentation set
</item> </item>
</layout> </layout>
</item> </item>
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="text">
<string>No user defined filters available or no filter selected.</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment