From aab56952609151f90fd776248c3747d9a8464f7b Mon Sep 17 00:00:00 2001 From: keke <243768648@qq.com> Date: Wed, 4 May 2022 13:10:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=89=88=E6=9C=AC=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=92=8C=E6=9F=A5=E7=9C=8B=E5=90=AF=E5=8A=A8=E5=99=A8=E4=B8=AD?= =?UTF-8?q?=E6=89=80=E6=9C=89=E5=BA=94=E7=94=A8=E5=8C=85=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appmanagermodel.cpp | 4 +++ appmanagerwidget.cpp | 9 ++--- appmanagerwidget.h | 3 +- ccc-app-manager.svg | 28 +-------------- debian/control | 16 ++++----- main.cpp | 11 ++++-- mainwindow.cpp | 45 ++++++++++++++++++++++-- resources/icons.qrc | 3 ++ resources/icons/app-manager_bak_64px.svg | 27 ++++++++++++++ resources/icons/grid_48px.svg | 1 + resources/icons/rotate_48px.svg | 1 + 11 files changed, 101 insertions(+), 47 deletions(-) create mode 100644 resources/icons/app-manager_bak_64px.svg create mode 100644 resources/icons/grid_48px.svg create mode 100644 resources/icons/rotate_48px.svg diff --git a/appmanagermodel.cpp b/appmanagermodel.cpp index c15b535..2695326 100644 --- a/appmanagermodel.cpp +++ b/appmanagermodel.cpp @@ -191,6 +191,10 @@ bool AppManagerModel::extendPkgInfo(PkgInfo &pkgInfo) pkgInfo.description += infoLine; continue; } + if (infoLine.startsWith("Build-Depends: ")) { + isReadingDescription = false; + continue; + } } return true; diff --git a/appmanagerwidget.cpp b/appmanagerwidget.cpp index a78f1cc..ae112cb 100644 --- a/appmanagerwidget.cpp +++ b/appmanagerwidget.cpp @@ -1,6 +1,5 @@ #include "appmanagerwidget.h" #include "pkgdownloaddlg.h" -#include "appmanagermodel.h" #include #include @@ -30,9 +29,9 @@ using namespace AM; -AppManagerWidget::AppManagerWidget(QWidget *parent) +AppManagerWidget::AppManagerWidget(AppManagerModel *model, QWidget *parent) : QWidget(parent) - , m_model(nullptr) + , m_model(model) , m_waitingSpinner(nullptr) , m_contentWidget(nullptr) , m_searchLineEdit(nullptr) @@ -54,8 +53,6 @@ AppManagerWidget::AppManagerWidget(QWidget *parent) { setFocusPolicy(Qt::FocusPolicy::ClickFocus); - m_model = new AppManagerModel(this); - QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->setContentsMargins(0, 0, 0, 0); setLayout(mainLayout); @@ -92,7 +89,7 @@ AppManagerWidget::AppManagerWidget(QWidget *parent) QPushButton *reloadBtn = new QPushButton(this); reloadBtn->setFlat(true); reloadBtn->setToolTip("重载所有应用信息"); - reloadBtn->setIcon(QIcon::fromTheme("ukuu")); + reloadBtn->setIcon(QIcon::fromTheme("rotate")); reloadBtn->setIconSize(QSize(30, 30)); reloadBtn->setFixedSize(QSize(30, 30)); guideOperatingLayout->addWidget(reloadBtn); diff --git a/appmanagerwidget.h b/appmanagerwidget.h index dd08b53..d2ab21f 100644 --- a/appmanagerwidget.h +++ b/appmanagerwidget.h @@ -1,6 +1,7 @@ #pragma once #include "appmanagercommon.h" +#include "appmanagermodel.h" #include @@ -27,7 +28,7 @@ class AppManagerWidget : public QWidget { Q_OBJECT public: - AppManagerWidget(QWidget *parent = nullptr); + AppManagerWidget(AppManagerModel *model, QWidget *parent = nullptr); virtual ~AppManagerWidget() override; public Q_SLOTS: diff --git a/ccc-app-manager.svg b/ccc-app-manager.svg index 0a1c79c..34cf19c 100644 --- a/ccc-app-manager.svg +++ b/ccc-app-manager.svg @@ -1,27 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + Large Grid \ No newline at end of file diff --git a/debian/control b/debian/control index 9a2f348..ba79b56 100644 --- a/debian/control +++ b/debian/control @@ -2,15 +2,15 @@ Package: com.github.ccc-app-manager Priority: optional Section: unknown Installed-Size: 3985 -Maintainer: cloud8352 <243768648@qq.com> +Maintainer: keke <243768648@qq.com> Architecture: amd64 -Version: 0.0.2 -Depends: libc6 (>= 2.28), libgcc1 (>= 1:3.4), libgl1, libqt5core5a (>= 5.11.0~rc1), libqt5gui5 (>= 5.8.0), libqt5multimedia5 (>= 5.6.0~beta), libqt5network5 (>= 5.0.2), libqt5widgets5 (>= 5.0.2) +Version: 0.0.4 +Depends: libc6 (>= 2.28), libgcc1 (>= 1:3.4), libgl1, libqt5core5a (>= 5.11.0~rc1), libqt5gui5 (>= 5.8.0), libqt5network5 (>= 5.0.2), libqt5widgets5 (>= 5.0.2), libdtkcore5 (>= 5.4), libdtkgui5 (>= 5.4), libdtkwidget5 (>= 5.4) Build-Depends: debhelper (>= 11), libdtkwidget-dev, - libdtkgui-dev, - qtbase5-dev, - zlib -Description: A app manager. + libdtkgui-dev, + qtbase5-dev, + zlib1g-dev +Description: manage your applications. 应用管理器,可查看应用包信息,可卸载和打开应用,可在线或离线提取安装包。支持deepin、uos系统。 -Homepage: https://github.com/cloud8352/ccc-app-manager +Homepage: https://gitee.com/ct243768648/ccc-app-manager diff --git a/main.cpp b/main.cpp index 4551867..e0fe9ab 100644 --- a/main.cpp +++ b/main.cpp @@ -2,6 +2,7 @@ #include #include +#include #include @@ -13,14 +14,18 @@ int main(int argc, char *argv[]) a.setAttribute(Qt::AA_UseHighDpiPixmaps); a.setOrganizationName("ccc"); a.setApplicationName("ccc-app-manager"); - a.setApplicationVersion(DApplication::buildVersion("0.0.2")); //change version here + a.setApplicationVersion(DApplication::buildVersion("0.0.4")); //change version here a.loadTranslator(); a.setApplicationDisplayName(QObject::tr("App Manager")); a.setStyle("chameleon"); - a.setWindowIcon(QIcon::fromTheme("chromium-app-list")); - a.setProductIcon(QIcon::fromTheme("chromium-app-list")); + a.setWindowIcon(QIcon(":/icons/deepin/builtin/icons/grid_48px.svg")); + a.setProductIcon(QIcon(":/icons/deepin/builtin/icons/grid_48px.svg")); a.setApplicationDescription("ccc-app-manager是一款方便的第三方应用管理工具\n支持应用的安装,卸载,安装包提取等功能"); a.setQuitOnLastWindowClosed(true);//关闭主窗口后关闭关于 + + // 保存窗口主题设置 + DApplicationSettings settings; + MainWindow w; w.show(); diff --git a/mainwindow.cpp b/mainwindow.cpp index d4e4fe1..141e35e 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -6,6 +6,8 @@ #include #include #include +#include +#include #include #include @@ -20,11 +22,18 @@ MainWindow::MainWindow(QWidget *parent) setTitlebarShadowEnabled(false); setFocusPolicy(Qt::FocusPolicy::ClickFocus); - titlebar()->setIcon(QIcon::fromTheme("chromium-app-list")); + titlebar()->setIcon(QIcon(":/icons/deepin/builtin/icons/grid_48px.svg")); titlebar()->setTitle("应用管理器"); titlebar()->setFixedHeight(40); titlebar()->setBackgroundTransparent(true); + QMenu *menu = new QMenu(this); + titlebar()->setMenu(menu); + + QAction *watchGuiAppListAction = new QAction(this); + watchGuiAppListAction->setText("复制启动器中所有应用包名"); + menu->addAction(watchGuiAppListAction); + m_centralWidgetBlurBg = new DBlurEffectWidget(this); m_centralWidgetBlurBg->setBlendMode(DBlurEffectWidget::BlendMode::BehindWindowBlend); m_centralWidgetBlurBg->setMaskAlpha(100); @@ -45,9 +54,41 @@ MainWindow::MainWindow(QWidget *parent) mainLayout->setContentsMargins(0, 0, 0, 0); centralWidget->setLayout(mainLayout); - AppManagerWidget *appManagerWidget = new AppManagerWidget(this); + // 应用管理 + AppManagerModel *appManagerModel = new AppManagerModel(this); + AppManagerWidget *appManagerWidget = new AppManagerWidget(appManagerModel, this); mainLayout->addWidget(appManagerWidget); + // init connection + connect(watchGuiAppListAction, &QAction::triggered, this, [this, appManagerModel](bool checked) { + Q_UNUSED(checked); + QString uiAppPkgNameList; + for (const AM::AppInfo &info : appManagerModel->getAppInfosList()) { + if (info.desktopInfo.desktopPath.isEmpty()) { + continue; + } + uiAppPkgNameList.append(QString("%1 ").arg(info.pkgName)); + } + + QTextEdit *edit = new QTextEdit(this); + edit->setText(uiAppPkgNameList); + edit->setReadOnly(true); + QPalette pa = edit->palette(); + pa.setColor(QPalette::ColorRole::Base, Qt::transparent); + edit->setPalette(pa); + + DDialog *dlg = new DDialog(this); + dlg->setOnButtonClickedClose(true); + dlg->setTitle("启动器中所有应用包名"); + dlg->setMinimumWidth(800); + dlg->addContent(edit); + dlg->setWindowOpacity(0.7); + + + dlg->exec(); + dlg->deleteLater(); + }); + // post init if (m_isDeepin) { setAttribute(Qt::WA_TranslucentBackground, true); diff --git a/resources/icons.qrc b/resources/icons.qrc index 1b45e6d..2753d60 100644 --- a/resources/icons.qrc +++ b/resources/icons.qrc @@ -2,5 +2,8 @@ light/icons/am_filter_64px.svg dark/icons/am_filter_64px.svg + icons/grid_48px.svg + icons/app-manager_bak_64px.svg + icons/rotate_48px.svg diff --git a/resources/icons/app-manager_bak_64px.svg b/resources/icons/app-manager_bak_64px.svg new file mode 100644 index 0000000..0a1c79c --- /dev/null +++ b/resources/icons/app-manager_bak_64px.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/icons/grid_48px.svg b/resources/icons/grid_48px.svg new file mode 100644 index 0000000..34cf19c --- /dev/null +++ b/resources/icons/grid_48px.svg @@ -0,0 +1 @@ + Large Grid \ No newline at end of file diff --git a/resources/icons/rotate_48px.svg b/resources/icons/rotate_48px.svg new file mode 100644 index 0000000..1e5cd27 --- /dev/null +++ b/resources/icons/rotate_48px.svg @@ -0,0 +1 @@ + Rotate \ No newline at end of file -- Gitee