Locator: Add descriptions to "locator filters" filter's tooltip

Change-Id: Ib29cef34465e60a66cae6fb75765f1530b8b224a
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2021-03-23 13:13:52 +01:00
parent b2615c3f5e
commit aa98c02443
4 changed files with 15 additions and 7 deletions

View File

@@ -85,6 +85,8 @@ struct LocatorFilterEntry
QString displayName; QString displayName;
/* extra information displayed in light-gray in a second column (optional) */ /* extra information displayed in light-gray in a second column (optional) */
QString extraInfo; QString extraInfo;
/* additional tooltip */
QString toolTip;
/* can be used by the filter to save more information about the entry */ /* can be used by the filter to save more information about the entry */
QVariant internalData; QVariant internalData;
/* icon to display along with the entry */ /* icon to display along with the entry */

View File

@@ -51,6 +51,7 @@ void LocatorFiltersFilter::prepareSearch(const QString &entry)
{ {
m_filterShortcutStrings.clear(); m_filterShortcutStrings.clear();
m_filterDisplayNames.clear(); m_filterDisplayNames.clear();
m_filterDescriptions.clear();
if (!entry.isEmpty()) if (!entry.isEmpty())
return; return;
@@ -65,6 +66,7 @@ void LocatorFiltersFilter::prepareSearch(const QString &entry)
if (!filter->shortcutString().isEmpty() && !filter->isHidden() && filter->isEnabled()) { if (!filter->shortcutString().isEmpty() && !filter->isHidden() && filter->isEnabled()) {
m_filterShortcutStrings.append(filter->shortcutString()); m_filterShortcutStrings.append(filter->shortcutString());
m_filterDisplayNames.append(filter->displayName()); m_filterDisplayNames.append(filter->displayName());
m_filterDescriptions.append(filter->description());
} }
} }
} }
@@ -81,6 +83,7 @@ QList<LocatorFilterEntry> LocatorFiltersFilter::matchesFor(QFutureInterface<Loca
i, i,
m_icon); m_icon);
filterEntry.extraInfo = m_filterDisplayNames.at(i); filterEntry.extraInfo = m_filterDisplayNames.at(i);
filterEntry.toolTip = m_filterDescriptions.at(i);
entries.append(filterEntry); entries.append(filterEntry);
} }
return entries; return entries;

View File

@@ -55,6 +55,7 @@ public:
private: private:
QStringList m_filterShortcutStrings; QStringList m_filterShortcutStrings;
QStringList m_filterDisplayNames; QStringList m_filterDisplayNames;
QStringList m_filterDescriptions;
QIcon m_icon; QIcon m_icon;
}; };

View File

@@ -197,13 +197,15 @@ QVariant LocatorModel::data(const QModelIndex &index, int role) const
else if (index.column() == ExtraInfoColumn) else if (index.column() == ExtraInfoColumn)
return mEntries.at(index.row()).extraInfo; return mEntries.at(index.row()).extraInfo;
break; break;
case Qt::ToolTipRole: case Qt::ToolTipRole: {
if (mEntries.at(index.row()).extraInfo.isEmpty()) const LocatorFilterEntry &entry = mEntries.at(index.row());
return QVariant(mEntries.at(index.row()).displayName); QString toolTip = entry.displayName;
else if (!entry.extraInfo.isEmpty())
return QVariant(mEntries.at(index.row()).displayName toolTip += "\n\n" + entry.extraInfo;
+ "\n\n" + mEntries.at(index.row()).extraInfo); if (!entry.toolTip.isEmpty())
break; toolTip += "\n\n" + entry.toolTip;
return QVariant(toolTip);
}
case Qt::DecorationRole: case Qt::DecorationRole:
if (index.column() == DisplayNameColumn) { if (index.column() == DisplayNameColumn) {
LocatorFilterEntry &entry = mEntries[index.row()]; LocatorFilterEntry &entry = mEntries[index.row()];