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