Skip to content

Commit aed9f6e

Browse files
committed
- BugFix: The act of moving the mouse over the package list was
triggering many "pacman -Si" executions (thanks to RAZUMNO)
1 parent f481213 commit aed9f6e

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

CHANGELOG

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
0.17.1 (dev)
2+
BugFix: The act of moving the mouse over the package list was triggering many
3+
"pacman -Si" executions (thanks to RAZUMNO).
24
Updated translations.
35

46
0.17.0 (2025-02-18)

src/treeviewpackagesitemdelegate.cpp

+20-6
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
#include <iostream>
3131
#include <QtConcurrent/QtConcurrentRun>
3232

33+
#include <QDebug>
34+
3335
QPoint gPoint;
3436

3537
TreeViewPackagesItemDelegate::TreeViewPackagesItemDelegate(QObject *parent):
@@ -43,6 +45,8 @@ TreeViewPackagesItemDelegate::TreeViewPackagesItemDelegate(QObject *parent):
4345
bool TreeViewPackagesItemDelegate::helpEvent ( QHelpEvent *event, QAbstractItemView*,
4446
const QStyleOptionViewItem&, const QModelIndex &index )
4547
{
48+
static QString lastShownPackage;
49+
4650
if (this->parent()->objectName() == QLatin1String("tvPackages"))
4751
{
4852
QTreeView* tvPackages = qobject_cast<QTreeView*>(this->parent());
@@ -64,10 +68,18 @@ bool TreeViewPackagesItemDelegate::helpEvent ( QHelpEvent *event, QAbstractItemV
6468
pkgDesc.description = package->description;
6569
pkgDesc.isForeign = (package->status == ectn_FOREIGN || package->status == ectn_FOREIGN_OUTDATED);
6670

67-
disconnect(&g_fwToolTip, SIGNAL(finished()), this, SLOT(execToolTip()));
68-
f = QtConcurrent::run(showPackageDescriptionExt, pkgDesc);
69-
g_fwToolTip.setFuture(f);
70-
connect(&g_fwToolTip, SIGNAL(finished()), this, SLOT(execToolTip()));
71+
if (lastShownPackage != package->name)
72+
{
73+
//QDateTime now = QDateTime::currentDateTime();
74+
//qDebug() << now.time().toString(QLatin1String("hh:mm:ss.zzz")) << ": Tooltip for " << package->name;
75+
76+
disconnect(&g_fwToolTip, SIGNAL(finished()), this, SLOT(execToolTip()));
77+
f = QtConcurrent::run(showPackageDescriptionExt, pkgDesc);
78+
g_fwToolTip.setFuture(f);
79+
connect(&g_fwToolTip, SIGNAL(finished()), this, SLOT(execToolTip()));
80+
}
81+
82+
lastShownPackage = package->name;
7183
}
7284
else return false;
7385
}
@@ -100,10 +112,10 @@ bool TreeViewPackagesItemDelegate::helpEvent ( QHelpEvent *event, QAbstractItemV
100112
pkgDesc.description = package->description;
101113
pkgDesc.isForeign = (package->status == ectn_FOREIGN || package->status == ectn_FOREIGN_OUTDATED);
102114

103-
if (si->icon().pixmap(22, 22).toImage() ==
115+
if (lastShownPackage != package->name && (si->icon().pixmap(22, 22).toImage() ==
104116
IconHelper::getIconInstallItem().pixmap(22, 22).toImage() ||
105117
si->icon().pixmap(22, 22).toImage() ==
106-
IconHelper::getIconRemoveItem().pixmap(22, 22).toImage())
118+
IconHelper::getIconRemoveItem().pixmap(22, 22).toImage()))
107119
{
108120
gPoint = tvTransaction->mapToGlobal(event->pos());
109121
QFuture<QString> f;
@@ -116,6 +128,8 @@ bool TreeViewPackagesItemDelegate::helpEvent ( QHelpEvent *event, QAbstractItemV
116128
{
117129
QToolTip::hideText();
118130
}
131+
132+
lastShownPackage = package->name;
119133
}
120134
}
121135

0 commit comments

Comments
 (0)