knetpkg: link "required by" information to packages

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-04-24 13:33:34 +00:00
parent 4018c9d886
commit c73a5eef40
3 changed files with 44 additions and 29 deletions

View file

@ -25,6 +25,11 @@
#include "knetpkg.h"
static QByteArray pkgLink(const QByteArray &netpkg)
{
return QString::fromLatin1("<a href=\"%1\">%1</a>").arg(netpkg.constData()).toLatin1();
}
KNetPkg::KNetPkg(QWidget *parent)
: KMainWindow(parent)
{
@ -46,10 +51,10 @@ KNetPkg::KNetPkg(QWidget *parent)
const QList<QByteArray> requiredbylist = knetpkginfo.requiredby.split('\n');
for (int i = 0; i < requiredbylist.size(); i++) {
if (i == 0) {
knetpkginfo.requiredby = requiredbylist.at(i);
knetpkginfo.requiredby = pkgLink(requiredbylist.at(i));
} else {
knetpkginfo.requiredby.append(", ");
knetpkginfo.requiredby.append(requiredbylist.at(i));
knetpkginfo.requiredby.append(pkgLink(requiredbylist.at(i)));
}
}
} else {
@ -69,18 +74,25 @@ KNetPkg::KNetPkg(QWidget *parent)
}
m_ui.klistwidgetsearchline->setListWidget(m_ui.klistwidget);
connect(m_ui.klistwidget, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(slotItemChanged(QListWidgetItem*)));
connect(
m_ui.klistwidget, SIGNAL(currentTextChanged(QString)),
this, SLOT(slotCurrentTextChanged(QString))
);
connect(
m_ui.requiredbylabel, SIGNAL(linkActivated(QString)),
this, SLOT(slotLinkActivated(QString))
);
}
KNetPkg::~KNetPkg()
{
}
void KNetPkg::slotItemChanged(QListWidgetItem *knetpkgitem)
void KNetPkg::slotCurrentTextChanged(const QString &netpkg)
{
// qDebug() << Q_FUNC_INFO << knetpkgitem->text();
// qDebug() << Q_FUNC_INFO << netpkg;
foreach (const KNetPkgInfo &knetpkginfo, m_packages) {
if (knetpkginfo.name == knetpkgitem->text()) {
if (knetpkginfo.name == netpkg) {
m_ui.requiredbylabel->setText(knetpkginfo.requiredby);
m_ui.sizelabel->setText(KGlobal::locale()->formatByteSize(knetpkginfo.size.toDouble(), 1));
m_ui.descriptionwidget->setText(knetpkginfo.description);
@ -90,6 +102,17 @@ void KNetPkg::slotItemChanged(QListWidgetItem *knetpkgitem)
Q_ASSERT(false);
}
void KNetPkg::slotLinkActivated(const QString &link)
{
// qDebug() << Q_FUNC_INFO << link;
for (int i = 0; i < m_ui.klistwidget->count(); i++) {
if (m_ui.klistwidget->item(i)->text() == link) {
m_ui.klistwidget->setCurrentRow(i);
break;
}
}
}
int main(int argc, char **argv)
{
KAboutData aboutData("knetpkg", 0, ki18n("KNetPkg"),

View file

@ -38,7 +38,8 @@ public:
~KNetPkg();
public Q_SLOTS:
void slotItemChanged(QListWidgetItem *knetpkgitem);
void slotCurrentTextChanged(const QString &netpkg);
void slotLinkActivated(const QString &link);
private:
Ui_KNetPkgWindow m_ui;

View file

@ -20,10 +20,17 @@
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1" colspan="2">
<widget class="KListWidgetSearchLine" name="klistwidgetsearchline"/>
<item row="1" column="0" colspan="2">
<widget class="KListWidget" name="klistwidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="2">
<item row="0" column="2" rowspan="2">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
@ -97,26 +104,10 @@
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<item row="0" column="0" colspan="2">
<widget class="KListWidgetSearchLine" name="klistwidgetsearchline">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Search:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="KListWidget" name="klistwidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>