diff --git a/stacer-core/Tools/package_tool.cpp b/stacer-core/Tools/package_tool.cpp
index 1825a681..9876f46c 100644
--- a/stacer-core/Tools/package_tool.cpp
+++ b/stacer-core/Tools/package_tool.cpp
@@ -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();
diff --git a/stacer/Managers/tool_manager.cpp b/stacer/Managers/tool_manager.cpp
index ebf75b05..6860abcb 100644
--- a/stacer/Managers/tool_manager.cpp
+++ b/stacer/Managers/tool_manager.cpp
@@ -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();
}
/******************
diff --git a/stacer/Pages/Uninstaller/uninstaller_page.cpp b/stacer/Pages/Uninstaller/uninstaller_page.cpp
index 87c0a6d2..fea09adb 100644
--- a/stacer/Pages/Uninstaller/uninstaller_page.cpp
+++ b/stacer/Pages/Uninstaller/uninstaller_page.cpp
@@ -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);
});
diff --git a/stacer/Pages/Uninstaller/uninstallerpage.ui b/stacer/Pages/Uninstaller/uninstallerpage.ui
index 6de6d7d7..0b1cea40 100644
--- a/stacer/Pages/Uninstaller/uninstallerpage.ui
+++ b/stacer/Pages/Uninstaller/uninstallerpage.ui
@@ -6,8 +6,8 @@
0
0
- 916
- 553
+ 935
+ 585
@@ -31,6 +31,12 @@
-
+
+
+ 0
+ 0
+
+
@@ -50,46 +56,96 @@
5
-
-
-
-
-
- Ubuntu
- 10
-
+
-
+
+
+
+ 0
+ 0
+
-
- Qt::NoFocus
+
+
+ 5
+
+
+ 15
+
+
+ 0
+
+
+ 20
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ Ubuntu
+ 11
+ false
+
+
+
+
+
+
+ System Installed Packages
+
+
+
+ -
+
+
+
+ 170
+ 0
+
+
+
+
+ 170
+ 16777215
+
+
+
+
+ 10
+
+
+
+ Qt::StrongFocus
+
+
+
+
+
+ Search...
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
-
-
-
-
- 10
-
-
- QAbstractItemView::NoEditTriggers
-
-
- QAbstractItemView::NoSelection
-
-
- QAbstractItemView::SelectRows
-
-
-
- 20
- 20
-
-
-
- Qt::ElideMiddle
-
-
- 4
-
-
- false
+
+
@@ -133,7 +189,7 @@
- -
+
-
@@ -174,6 +230,12 @@
-
+
+
+ 0
+ 0
+
+
Not Found Installed Packages
@@ -182,103 +244,46 @@
- -
-
-
-
- 0
- 0
-
+
-
+
+
+
+ Ubuntu
+ 10
+
-
-
- 5
-
-
- 15
-
-
- 0
-
-
- 20
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- Ubuntu
- 11
- false
-
-
-
-
-
-
- System Installed Packages
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
- 170
- 0
-
-
-
-
- 170
- 16777215
-
-
-
-
- 10
-
-
-
- Qt::StrongFocus
-
-
-
-
-
- Search...
-
-
-
-
-
-
- -
-
-
-
+
+ Qt::NoFocus
+
+
+
+
+
+ 10
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ QAbstractItemView::NoSelection
+
+
+ QAbstractItemView::SelectRows
+
+
+
+ 20
+ 20
+
+
+
+ Qt::ElideMiddle
+
+
+ 4
+
+
+ false