panels/information: Add option to not show information for hovered item

BUG: 364956
BUG: 453211
This commit is contained in:
Oliver Beard 2023-02-05 20:34:50 +00:00
parent c87f4ce5b3
commit 278380bf17
2 changed files with 22 additions and 10 deletions

View file

@ -14,6 +14,10 @@
<label>Auto-Play media files</label>
<default>false</default>
</entry>
<entry name="showHovered" type="Bool">
<label>Show item on hover</label>
<default>true</default>
</entry>
<entry name="dateFormat" type="Enum">
<label>Date display format</label>
<choices>

View file

@ -62,13 +62,13 @@ void InformationPanel::setSelection(const KFileItemList &selection)
if ((count == 1) && !selection.first().url().isEmpty()) {
m_urlCandidate = selection.first().url();
}
m_infoTimer->start();
showItemInfo();
}
}
void InformationPanel::requestDelayedItemInfo(const KFileItem &item)
{
if (!isVisible()) {
if (!isVisible() || !InformationPanelSettings::showHovered()) {
return;
}
@ -160,6 +160,11 @@ void InformationPanel::showContextMenu(const QPoint &pos)
previewAutoPlayAction->setCheckable(true);
previewAutoPlayAction->setChecked(InformationPanelSettings::previewsAutoPlay());
QAction *showHoveredAction = popup.addAction(i18nc("@action:inmenu", "Show item on hover"));
showHoveredAction->setIcon(QIcon::fromTheme(QStringLiteral("followmouse")));
showHoveredAction->setCheckable(true);
showHoveredAction->setChecked(InformationPanelSettings::showHovered());
QAction *configureAction = popup.addAction(i18nc("@action:inmenu", "Configure..."));
configureAction->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
if (m_inConfigurationMode) {
@ -188,18 +193,23 @@ void InformationPanel::showContextMenu(const QPoint &pos)
if (action == previewAction) {
InformationPanelSettings::setPreviewsShown(isChecked);
m_content->refreshPreview();
} else if (action == previewAutoPlayAction) {
InformationPanelSettings::setPreviewsAutoPlay(isChecked);
m_content->setPreviewAutoPlay(isChecked);
} else if (action == showHoveredAction) {
InformationPanelSettings::setShowHovered(isChecked);
if (!isChecked) {
m_hoveredItem = KFileItem();
showItemInfo();
}
} else if (action == configureAction) {
m_inConfigurationMode = true;
m_content->configureShownProperties();
}
if (action == dateformatAction) {
} else if (action == dateformatAction) {
int dateFormat = static_cast<int>(isChecked ? Baloo::DateFormats::ShortFormat : Baloo::DateFormats::LongFormat);
InformationPanelSettings::setDateFormat(dateFormat);
m_content->refreshMetaData();
} else if (action == previewAutoPlayAction) {
InformationPanelSettings::setPreviewsAutoPlay(isChecked);
m_content->setPreviewAutoPlay(isChecked);
}
}
@ -218,7 +228,7 @@ void InformationPanel::showItemInfo()
} else {
// The information for exactly one item should be shown
KFileItem item;
if (!m_hoveredItem.isNull()) {
if (!m_hoveredItem.isNull() && InformationPanelSettings::showHovered()) {
item = m_hoveredItem;
} else if (!m_selection.isEmpty()) {
Q_ASSERT(m_selection.count() == 1);
@ -281,8 +291,6 @@ void InformationPanel::slotFileRenamed(const QString &source, const QString &des
// item is selected, as the name of the item is shown. If this should change
// in future: Before parsing the whole selection take care to test possible
// performance bottlenecks when renaming several hundreds of files.
} else {
m_hoveredItem = KFileItem(destUrl);
}
showItemInfo();