fixed dpkg get packages

This commit is contained in:
Oguzhan INAN
2018-02-27 23:04:19 +03:00
parent 3b626b9738
commit 34bad95a9f
4 changed files with 154 additions and 149 deletions

View File

@@ -27,7 +27,8 @@ QStringList PackageTool::getDpkgPackages()
try {
packageList = CommandUtil::exec("bash", {"-c", "dpkg --get-selections 2> /dev/null"})
.trimmed()
.split("\n");
.split('\n')
.filter(QRegExp("\\s+install$"));
for (int i = 0; i < packageList.count(); ++i)
packageList[i] = packageList.at(i).split(QRegExp("\\s+")).first();
@@ -66,7 +67,7 @@ QStringList PackageTool::getRpmPackages()
try {
packageList = CommandUtil::exec("bash", {"-c", "rpm -qa 2> /dev/null"})
.trimmed()
.split("\n");
.split('\n');
} catch(QString &ex) {
qCritical() << ex;
@@ -126,7 +127,7 @@ QStringList PackageTool::getPacmanPackages()
try {
packageList = CommandUtil::exec("bash", {"-c", "pacman -Q 2> /dev/null"})
.trimmed()
.split("\n");
.split('\n');
for (int i = 0; i < packageList.count(); ++i)
packageList[i] = packageList.at(i).split(QRegExp("\\s+")).first();

View File

@@ -81,7 +81,7 @@ QFileInfoList ToolManager::getPackageCaches() const
void ToolManager::uninstallPackages(const QStringList &packages)
{
uninstallStarted();
emit uninstallStarted();
switch (PackageTool::currentPackageTool) {
case PackageTool::PackageTools::APT:
@@ -100,7 +100,7 @@ void ToolManager::uninstallPackages(const QStringList &packages)
break;
}
uninstallFinished();
emit uninstallFinished();
}
/******************

View File

@@ -28,20 +28,20 @@ void UninstallerPage::init()
QtConcurrent::run(this, &UninstallerPage::loadPackages);
connect(tm, &ToolManager::uninstallFinished, this, &UninstallerPage::loadPackages);
connect(tm, &ToolManager::uninstallStarted, this, &UninstallerPage::uninstallStarted);
connect(tm, &ToolManager::uninstallFinished, this, &UninstallerPage::loadPackages);
}
void UninstallerPage::loadPackages()
{
uninstallStarted();
emit uninstallStarted();
// clear items
ui->packagesList->clear();
QIcon icon(QString(":/static/themes/%1/img/package.svg").arg(AppManager::ins()->getThemeName()));
for (const QString &package : tm->getPackages())
{
QStringList packages = tm->getPackages();
for (const QString &package : packages) {
QListWidgetItem *item = new QListWidgetItem(QIcon::fromTheme(package, icon), QString(" %1").arg(package));
item->setCheckState(Qt::Unchecked);
@@ -52,7 +52,6 @@ void UninstallerPage::loadPackages()
ui->packagesList->setEnabled(true);
ui->packageSearch->setEnabled(true);
ui->uninstallBtn->show();
ui->packageSearch->clear();
ui->loading->hide();
@@ -65,6 +64,7 @@ void UninstallerPage::setAppCount()
ui->packagesTitle->setText(tr("System Installed Packages (%1)").arg(count));
ui->notFoundWidget->setVisible(! count);
ui->uninstallBtn->setVisible(count);
ui->packagesList->setVisible(count);
}
@@ -87,8 +87,7 @@ void UninstallerPage::on_uninstallBtn_clicked()
{
QStringList selectedPackages = getSelectedPackages();
if(! selectedPackages.isEmpty())
{
if(! selectedPackages.isEmpty()) {
QtConcurrent::run([selectedPackages]() -> void {
ToolManager::ins()->uninstallPackages(selectedPackages);
});

View File

@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>916</width>
<height>553</height>
<width>935</width>
<height>585</height>
</rect>
</property>
<property name="windowTitle">
@@ -31,6 +31,12 @@
</property>
<item>
<widget class="QWidget" name="verticalWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
@@ -50,46 +56,96 @@
<property name="spacing">
<number>5</number>
</property>
<item row="2" column="0" colspan="2">
<widget class="QListWidget" name="packagesList">
<property name="font">
<font>
<family>Ubuntu</family>
<pointsize>10</pointsize>
</font>
<item row="0" column="0" colspan="2" alignment="Qt::AlignTop">
<widget class="QWidget" name="horizontalWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>15</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>20</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="QLabel" name="packagesTitle">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Ubuntu</family>
<pointsize>11</pointsize>
<italic>false</italic>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>System Installed Packages</string>
</property>
</widget>
</item>
<item alignment="Qt::AlignRight|Qt::AlignTop">
<widget class="QLineEdit" name="packageSearch">
<property name="minimumSize">
<size>
<width>170</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>170</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="placeholderText">
<string>Search...</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="0" colspan="2" alignment="Qt::AlignHCenter">
<widget class="QLabel" name="loading">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="autoScrollMargin">
<number>10</number>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="iconSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="textElideMode">
<enum>Qt::ElideMiddle</enum>
</property>
<property name="spacing">
<number>4</number>
</property>
<property name="uniformItemSizes">
<bool>false</bool>
<property name="text">
<string/>
</property>
</widget>
</item>
@@ -133,7 +189,7 @@
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<item row="1" column="0" colspan="2" alignment="Qt::AlignTop">
<widget class="QWidget" name="notFoundWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
@@ -174,6 +230,12 @@
</property>
<item alignment="Qt::AlignHCenter|Qt::AlignBottom">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Not Found Installed Packages</string>
</property>
@@ -182,103 +244,46 @@
</layout>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QWidget" name="horizontalWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<item row="2" column="0" colspan="2">
<widget class="QListWidget" name="packagesList">
<property name="font">
<font>
<family>Ubuntu</family>
<pointsize>10</pointsize>
</font>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>15</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>20</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item alignment="Qt::AlignLeft">
<widget class="QLabel" name="packagesTitle">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Ubuntu</family>
<pointsize>11</pointsize>
<italic>false</italic>
</font>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>System Installed Packages</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item alignment="Qt::AlignRight|Qt::AlignVCenter">
<widget class="QLineEdit" name="packageSearch">
<property name="minimumSize">
<size>
<width>170</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>170</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="placeholderText">
<string>Search...</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="0" colspan="2" alignment="Qt::AlignHCenter">
<widget class="QLabel" name="loading">
<property name="text">
<string/>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="autoScrollMargin">
<number>10</number>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="iconSize">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
<property name="textElideMode">
<enum>Qt::ElideMiddle</enum>
</property>
<property name="spacing">
<number>4</number>
</property>
<property name="uniformItemSizes">
<bool>false</bool>
</property>
</widget>
</item>