diff --git a/0002-Optimize-the-interaction-strategy-with-the-taskbar.patch b/0002-Optimize-the-interaction-strategy-with-the-taskbar.patch new file mode 100644 index 0000000..0de2d91 --- /dev/null +++ b/0002-Optimize-the-interaction-strategy-with-the-taskbar.patch @@ -0,0 +1,1017 @@ +From 98c95850ccc70d0a1547f07808073a735318c5a8 Mon Sep 17 00:00:00 2001 +From: liuhao-startmenu +Date: Wed, 1 Apr 2020 11:59:53 +0800 +Subject: [PATCH 2/2] Optimize the interaction strategy with the taskbar + +--- + main.cpp | 16 +- + src/Interface/ukuimenuinterface.cpp | 10 +- + src/LetterWidget/fullletterwidget.cpp | 6 +- + src/LetterWidget/letterbuttonwidget.cpp | 6 +- + src/MainViewWidget/mainviewwidget.cpp | 12 +- + src/MainWindow/mainwindow.cpp | 98 ++++-------- + src/MainWindow/mainwindow.h | 2 +- + .../qtsingleapplication.cpp | 10 +- + src/RightClickMenu/rightclickmenu.cpp | 29 ++-- + src/RightClickMenu/rightclickmenu.h | 8 +- + src/SideBarWidget/sidebarwidget.cpp | 142 +----------------- + src/Style/style.cpp | 19 +-- + src/UtilityFunction/fullitemdelegate.cpp | 6 +- + src/UtilityFunction/fulllistview.cpp | 5 +- + .../functionclassifybutton.cpp | 36 ++--- + src/UtilityFunction/itemdelegate.cpp | 6 +- + src/UtilityFunction/listview.cpp | 7 +- + src/UtilityFunction/pushbutton.cpp | 6 +- + 18 files changed, 117 insertions(+), 307 deletions(-) + +diff --git a/main.cpp b/main.cpp +index 4b9761d..0975c73 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -40,6 +40,12 @@ int main(int argc, char *argv[]) + qss.open(QFile::ReadOnly); + qApp->setStyleSheet(qss.readAll()); + ++// QGSettings* setting=new QGSettings(QString("org.mate.interface").toLocal8Bit()); ++// QString value=setting->get("font-name").toString(); ++// QFont font; ++// font.setFamily(value); ++// qApp->setFont(font); ++ + QString locale = QLocale::system().name(); + QTranslator translator; + if (locale == "zh_CN"){ +@@ -57,13 +63,9 @@ int main(int argc, char *argv[]) + qApp->setStyleSheet(style); + + MainWindow w; +- QDBusInterface iface("com.ukui.panel.desktop", +- "/", +- "com.ukui.panel.desktop", +- QDBusConnection::sessionBus()); +- +- QDBusReply position=iface.call("GetPanelPosition",""); +- QDBusReply panelSize=iface.call("GetPanelSize",""); ++ QGSettings* gsetting=new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit()); ++ int position=gsetting->get("panelposition").toInt(); ++ int panelSize=gsetting->get("panelsize").toInt(); + if(position==0) + w.setGeometry(QRect(0,Style::heightavailable-590,376,590)); + else if(position==1) +diff --git a/src/Interface/ukuimenuinterface.cpp b/src/Interface/ukuimenuinterface.cpp +index c31893d..577873b 100644 +--- a/src/Interface/ukuimenuinterface.cpp ++++ b/src/Interface/ukuimenuinterface.cpp +@@ -126,7 +126,6 @@ QStringList UkuiMenuInterface::getDesktopFilePath() + recursiveSearchFile("/usr/share/applications/"); + + filePathList.removeAll("/usr/share/applications/peony-folder-handler.desktop"); +- filePathList.removeAll("/usr/share/applications/peony.desktop"); + filePathList.removeAll("/usr/share/applications/gnome-software-local-file.desktop"); + filePathList.removeAll("/usr/share/applications/org.gnome.Software.Editor.desktop"); + filePathList.removeAll("/usr/share/applications/apport-gtk.desktop"); +@@ -159,7 +158,6 @@ QStringList UkuiMenuInterface::getDesktopFilePath() + filePathList.removeAll("/usr/share/applications/remmina-gnome.desktop"); + filePathList.removeAll("/usr/share/applications/ukwm.desktop"); + filePathList.removeAll("/usr/share/applications/nm-applet.desktop"); +- filePathList.removeAll("/usr/share/applications/peony-home.desktop"); + filePathList.removeAll("/usr/share/applications/mate-user-guide.desktop"); + filePathList.removeAll("/usr/share/applications/nm-connection-editor.desktop"); + filePathList.removeAll("/usr/share/applications/pavucontrol-qt.desktop"); +@@ -203,7 +201,13 @@ QStringList UkuiMenuInterface::getDesktopFilePath() + filePathList.removeAll("/usr/share/applications/vim.desktop"); + filePathList.removeAll("/usr/share/applications/kwalletmanager5-kwalletd.desktop"); + filePathList.removeAll("/usr/share/applications/org.gnome.DejaDup.desktop"); +- ++ filePathList.removeAll("/usr/share/applications/redshift.desktop"); ++ filePathList.removeAll("/usr/share/applications/python3.8.desktop"); ++ filePathList.removeAll("/usr/share/applications/yelp.desktop"); ++ filePathList.removeAll("/usr/share/applications/peony-computer.desktop"); ++ filePathList.removeAll("/usr/share/applications/peony-home.desktop"); ++ filePathList.removeAll("/usr/share/applications/peony-trash.desktop"); ++ filePathList.removeAll("/usr/share/applications/peony.desktop"); + return filePathList; + } + +diff --git a/src/LetterWidget/fullletterwidget.cpp b/src/LetterWidget/fullletterwidget.cpp +index 987b1e8..9fc863c 100644 +--- a/src/LetterWidget/fullletterwidget.cpp ++++ b/src/LetterWidget/fullletterwidget.cpp +@@ -271,8 +271,8 @@ void FullLetterWidget::initLetterListScrollArea() + QToolButton:checked{background:transparent;color:#ffffff;border-radius:2px;}", + ClassifyBtnHoverBackground,ClassifyBtnHoverBackground); + +- QFont font; +- font.setPixelSize(Style::LeftFontSize); ++// QFont font; ++// font.setPixelSize(Style::LeftFontSize); + + QStringList letterbtnlist=this->letterbtnlist; + if(letterbtnlist.contains("&")) +@@ -284,7 +284,7 @@ void FullLetterWidget::initLetterListScrollArea() + letterbtn->setStyleSheet(btnstyle); + letterbtn->setFixedSize(Style::LeftBtnHeight,Style::LeftBtnHeight); + letterbtn->setCheckable(true); +- letterbtn->setFont(font); ++// letterbtn->setFont(font); + buttonList.append(letterbtn); + letterlistscrollareawidLayout->addWidget(letterbtn); + // connect(letterbtn,SIGNAL(clicked()),this,SLOT(letterBtnClickedSlot())); +diff --git a/src/LetterWidget/letterbuttonwidget.cpp b/src/LetterWidget/letterbuttonwidget.cpp +index 69a33c2..b5d5096 100644 +--- a/src/LetterWidget/letterbuttonwidget.cpp ++++ b/src/LetterWidget/letterbuttonwidget.cpp +@@ -66,8 +66,8 @@ void LetterButtonWidget::initWidget() + letterlist.append("&&"); + letterlist.append("#"); + +- QFont font; +- font.setPixelSize(Style::LeftFontSize); ++// QFont font; ++// font.setPixelSize(Style::LeftFontSize); + for(int row=0;row<6;row++) + { + for(int col=0;col<5;col++) +@@ -77,7 +77,7 @@ void LetterButtonWidget::initWidget() + QToolButton* btn=new QToolButton(this); + btn->setFixedSize(55,48); + btn->setStyleSheet(QString::fromLocal8Bit(btncolor)); +- btn->setFont(font); ++// btn->setFont(font); + btn->setText(letterlist.at(row*5+col)); + gridLayout->addWidget(btn,row,col); + connect(btn, SIGNAL(clicked()), this, SLOT(letterBtnClickedSlot())); +diff --git a/src/MainViewWidget/mainviewwidget.cpp b/src/MainViewWidget/mainviewwidget.cpp +index 19121cb..8a4f434 100644 +--- a/src/MainViewWidget/mainviewwidget.cpp ++++ b/src/MainViewWidget/mainviewwidget.cpp +@@ -178,10 +178,10 @@ void MainViewWidget::initQueryLineEdit() + pQueryIcon->setStyleSheet("background:transparent"); + pQueryIcon->setFixedSize(pixmap->size()); + pQueryIcon->setPixmap(*pixmap); +- QFont font; +- font.setPixelSize(Style::QueryLineEditFontSize); ++// QFont font; ++// font.setPixelSize(Style::QueryLineEditFontSize); + pQueryText=new QLabel(pIconTextWid); +- pQueryText->setFont(font); ++// pQueryText->setFont(font); + pQueryText->setText(tr("Search")); + pQueryText->setStyleSheet("background:transparent;color:#626c6e;"); + pQueryText->adjustSize(); +@@ -203,8 +203,8 @@ void MainViewWidget::initQueryLineEdit() + + bool MainViewWidget::eventFilter(QObject *watched, QEvent *event) + { +- QFont font; +- font.setPixelSize(Style::QueryLineEditFontSize); ++// QFont font; ++// font.setPixelSize(Style::QueryLineEditFontSize); + if(watched==querylineEdit) + { + if(event->type()==QEvent::FocusIn) +@@ -219,7 +219,7 @@ bool MainViewWidget::eventFilter(QObject *watched, QEvent *event) + QueryLineEditClickedBorder,QueryLineEditClickedBackground); + querylineEdit->setStyleSheet(style); + querylineEdit->setTextMargins(20,1,0,1); +- querylineEdit->setFont(font); ++// querylineEdit->setFont(font); + if(!querylineEdit->text().isEmpty()) + searchAppSlot(querylineEdit->text()); + } +diff --git a/src/MainWindow/mainwindow.cpp b/src/MainWindow/mainwindow.cpp +index 27dc2e9..0db0ffa 100644 +--- a/src/MainWindow/mainwindow.cpp ++++ b/src/MainWindow/mainwindow.cpp +@@ -74,22 +74,6 @@ MainWindow::MainWindow(QWidget *parent) : + setting->endGroup(); + + initMainWindow(); +- +-// pEnterAnimation=new QPropertyAnimation; +-// pEnterAnimation->setTargetObject(this); +-// pEnterAnimation->setPropertyName("size"); +-// pEnterAnimation->setDuration(500); +-// pEnterAnimation->setStartValue(QSize(390,532)); +-// pEnterAnimation->setEndValue(QSize(490,532)); +-// pEnterAnimation->setEasingCurve(QEasingCurve::Linear); +- +-// pLeaveAnimation=new QPropertyAnimation; +-// pLeaveAnimation->setTargetObject(this); +-// pLeaveAnimation->setPropertyName("size"); +-// pLeaveAnimation->setDuration(500); +-// pLeaveAnimation->setStartValue(QSize(490,532)); +-// pLeaveAnimation->setEndValue(QSize(390,532)); +-// pLeaveAnimation->setEasingCurve(QEasingCurve::Linear); + } + + MainWindow::~MainWindow() +@@ -111,6 +95,12 @@ void MainWindow::initMainWindow() + this->setAutoFillBackground(false); + this->setFocusPolicy(Qt::StrongFocus); + ++// QPainterPath path; ++// auto rect = this->rect(); ++// rect.adjust(1, 1, -1, -1); ++// path.addRoundedRect(rect, 6, 6); ++// setProperty("blurRegion", QRegion(path.toFillPolygon().toPolygon())); ++ + ui->mainToolBar->hide(); + ui->menuBar->hide(); + ui->statusBar->hide(); +@@ -121,7 +111,7 @@ void MainWindow::initMainWindow() + this->setContentsMargins(0,0,0,0); + + frame=new QFrame(this); +- sidebarwid=new SideBarWidget(this); ++ sidebarwid=new SideBarWidget(); + mainviewwid=new MainViewWidget(this); + + this->setCentralWidget(frame); +@@ -141,11 +131,8 @@ void MainWindow::initMainWindow() + mainlayout->setContentsMargins(0,0,0,0); + mainlayout->setSpacing(0); + centralWidget()->setLayout(mainlayout); +- QDBusInterface iface("com.ukui.panel.desktop", +- "/", +- "com.ukui.panel.desktop", +- QDBusConnection::sessionBus()); +- QDBusReply position=iface.call("GetPanelPosition",""); ++ QGSettings* gsetting=new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit()); ++ int position=gsetting->get("panelposition").toInt(); + char style[100]; + if(position==0) + sprintf(style, "border:0px;background-color:%s;border-top-right-radius:6px;",DefaultBackground); +@@ -173,6 +160,9 @@ void MainWindow::initMainWindow() + + connect(QApplication::primaryScreen(),SIGNAL(geometryChanged(QRect)), + this,SLOT(monitorResolutionChange(QRect))); ++ ++ connect(gsetting,SIGNAL(changed(QString)), ++ this,SLOT(panelShangedSlot(QString))); + } + + /** +@@ -250,25 +240,11 @@ void MainWindow::paintEvent(QPaintEvent *) + */ + void MainWindow::showFullScreenWidget() + { +-//// this->showMaximized(); +-// is_full=true; +-// classification_widget=arg; +-// sidebarwid->setVisible(false); +-// mainviewwid->setVisible(false); +-// char widgetcolor[100]; +-// sprintf(widgetcolor, "border:0px;background-color:%s;",MAINVIEWWIDGETCOLOR); +-// mainwidget->setStyleSheet(QString::fromLocal8Bit(widgetcolor)); +-// pAnimation->start(); +- + is_fullscreen=true; + this->setContentsMargins(0,0,0,0); +- QDBusInterface iface("com.ukui.panel.desktop", +- "/", +- "com.ukui.panel.desktop", +- QDBusConnection::sessionBus()); +- +- QDBusReply position=iface.call("GetPanelPosition",""); +- QDBusReply panelSize=iface.call("GetPanelSize",""); ++ QGSettings* gsetting=new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit()); ++ int position=gsetting->get("panelposition").toInt(); ++ int panelSize=gsetting->get("panelsize").toInt(); + if(position==0) + this->setGeometry(QRect(0,0,Style::widthavailable,Style::heightavailable)); + else if(position==1) +@@ -277,7 +253,6 @@ void MainWindow::showFullScreenWidget() + this->setGeometry(QRect(panelSize,0,Style::widthavailable,Style::heightavailable)); + else + this->setGeometry(QRect(0,0,Style::widthavailable,Style::heightavailable)); +-// this->setGeometry(QApplication::desktop()->availableGeometry()); + sidebarwid->loadMaxSidebar(); + mainviewwid->loadMaxMainView(); + //移除分割线 +@@ -295,25 +270,11 @@ void MainWindow::showFullScreenWidget() + */ + void MainWindow::showDefaultWidget() + { +-//// this->showNormal(); +-// is_full=false; +-// classification_widget=arg; +-// sidebarwid->setVisible(false); +-// mainviewwid->setVisible(false); +-// char widgetcolor[100]; +-// sprintf(widgetcolor, "border:0px;background-color:%s;",MAINVIEWWIDGETCOLOR); +-// mainwidget->setStyleSheet(QString::fromLocal8Bit(widgetcolor)); +-// pAnimation->start(); +- + is_fullscreen=false; + this->setContentsMargins(0,0,0,0); +- QDBusInterface iface("com.ukui.panel.desktop", +- "/", +- "com.ukui.panel.desktop", +- QDBusConnection::sessionBus()); +- +- QDBusReply position=iface.call("GetPanelPosition",""); +- QDBusReply panelSize=iface.call("GetPanelSize",""); ++ QGSettings* gsetting=new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit()); ++ int position=gsetting->get("panelposition").toInt(); ++ int panelSize=gsetting->get("panelsize").toInt(); + char style[100]; + if(position==0) + { +@@ -385,14 +346,6 @@ void MainWindow::mainWindowMakeZero() + sidebarwid->widgetMakeZero(); + } + +-//void MainWindow::recv_hover_signal_slot(bool is_hover) +-//{ +-// if(is_hover) +-// pEnterAnimation->start(); +-// else +-// pLeaveAnimation->start(); +-//} +- + void MainWindow::monitorResolutionChange(QRect rect) + { + Q_UNUSED(rect); +@@ -400,14 +353,17 @@ void MainWindow::monitorResolutionChange(QRect rect) + QProcess::startDetached(QString("/usr/bin/ukui-menu")); + } + +-void MainWindow::setFrameStyle() ++void MainWindow::panelShangedSlot(QString key) + { +- QDBusInterface iface("com.ukui.panel.desktop", +- "/", +- "com.ukui.panel.desktop", +- QDBusConnection::sessionBus()); ++ Q_UNUSED(key); ++ qApp->quit(); ++ QProcess::startDetached(QString("/usr/bin/ukui-menu")); ++} + +- QDBusReply position=iface.call("GetPanelPosition",""); ++void MainWindow::setFrameStyle() ++{ ++ QGSettings* gsetting=new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit()); ++ int position=gsetting->get("panelposition").toInt(); + char style[100]; + if(!is_fullscreen) + { +diff --git a/src/MainWindow/mainwindow.h b/src/MainWindow/mainwindow.h +index 28f9997..3c48c5b 100644 +--- a/src/MainWindow/mainwindow.h ++++ b/src/MainWindow/mainwindow.h +@@ -79,8 +79,8 @@ private Q_SLOTS: + void showFullScreenWidget();//加载全屏窗口 + void showDefaultWidget();//显示默认窗口 + void recvHideMainWindowSlot();//接收隐藏主窗口信号 +-// void recv_hover_signal_slot(bool is_hover); + void monitorResolutionChange(QRect rect);//监控屏幕分辨率 ++ void panelShangedSlot(QString key); + }; + + #endif // MAINWINDOW_H +diff --git a/src/QtSingleApplication/qtsingleapplication.cpp b/src/QtSingleApplication/qtsingleapplication.cpp +index 4a9294d..ae9271d 100644 +--- a/src/QtSingleApplication/qtsingleapplication.cpp ++++ b/src/QtSingleApplication/qtsingleapplication.cpp +@@ -333,13 +333,9 @@ void QtSingleApplication::activateWindow() + MainWindow* w=qobject_cast(actWin); + w->mainWindowMakeZero(); + w->setFrameStyle(); +- QDBusInterface iface("com.ukui.panel.desktop", +- "/", +- "com.ukui.panel.desktop", +- QDBusConnection::sessionBus()); +- +- QDBusReply position=iface.call("GetPanelPosition",""); +- QDBusReply panelSize=iface.call("GetPanelSize",""); ++ QGSettings* gsetting=new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit()); ++ int position=gsetting->get("panelposition").toInt(); ++ int panelSize=gsetting->get("panelsize").toInt(); + bool ret=w->checkIfFullScreen(); + if(ret) + { +diff --git a/src/RightClickMenu/rightclickmenu.cpp b/src/RightClickMenu/rightclickmenu.cpp +index 24ac63f..165a9d6 100644 +--- a/src/RightClickMenu/rightclickmenu.cpp ++++ b/src/RightClickMenu/rightclickmenu.cpp +@@ -172,7 +172,6 @@ RightClickMenu::~RightClickMenu() + void RightClickMenu::addCommonUseAppBtnAction() + { + setting->beginGroup("application"); +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QFileInfo fileInfo(desktopfp); + QString desktopfn=fileInfo.fileName(); + if(!setting->contains(desktopfn) || setting->value(desktopfn).toInt()>0) +@@ -290,7 +289,6 @@ void RightClickMenu::addAppBtnAction() + { + + setting->beginGroup("application"); +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QFileInfo fileInfo(desktopfp); + QString desktopfn=fileInfo.fileName(); + if(!setting->contains(desktopfn) || setting->value(desktopfn).toInt()>0) +@@ -413,13 +411,13 @@ void RightClickMenu::addShutdownAction() + //其它按钮右键菜单 + void RightClickMenu::addOtherAction() + { +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); ++// QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QDBusInterface iface("com.ukui.panel.desktop", + "/", + "com.ukui.panel.desktop", + QDBusConnection::sessionBus()); + +- QDBusReply ret=iface.call("CheckIfExist",desktopfp); ++ QDBusReply ret=iface.call("CheckIfExist",this->desktopfp); + if(!ret) + { + initWidgetAction(OtherFix2TaskBarWid,":/data/img/sidebarwidget/fixed.svg",tr("Pin to taskbar")); +@@ -499,7 +497,6 @@ void RightClickMenu::initWidgetAction(QWidget *wid, QString iconstr, QString tex + void RightClickMenu::fixToCommonUseActionTriggerSlot() + { + action_number=1; +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QFileInfo fileInfo(desktopfp); + QString desktopfn=fileInfo.fileName(); + setting->beginGroup("application"); +@@ -515,7 +512,6 @@ void RightClickMenu::fixToCommonUseActionTriggerSlot() + void RightClickMenu::unfixedFromCommonUseActionTriggerSlot() + { + action_number=2; +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QFileInfo fileInfo(desktopfp); + QString desktopfn=fileInfo.fileName(); + setting->beginGroup("application"); +@@ -532,7 +528,6 @@ void RightClickMenu::unfixedFromCommonUseActionTriggerSlot() + + void RightClickMenu::fixToTaskbarActionTriggerSlot() + { +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QDBusInterface iface("com.ukui.panel.desktop", + "/", + "com.ukui.panel.desktop", +@@ -544,7 +539,6 @@ void RightClickMenu::fixToTaskbarActionTriggerSlot() + + void RightClickMenu::unfixedFromTaskbarActionTriggerSlot() + { +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QDBusInterface iface("com.ukui.panel.desktop", + "/", + "com.ukui.panel.desktop", +@@ -555,7 +549,6 @@ void RightClickMenu::unfixedFromTaskbarActionTriggerSlot() + + void RightClickMenu::addToDesktopActionTriggerSlot() + { +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QString path=QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); + QFileInfo fileInfo(desktopfp); + QString desktopfn=fileInfo.fileName(); +@@ -575,7 +568,6 @@ void RightClickMenu::addToDesktopActionTriggerSlot() + void RightClickMenu::uninstallActionTriggerSlot() + { + // QString exec=pUkuiMenuInterface->getAppExec(pUkuiMenuInterface->getDesktopPathByAppName(appname)); +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + // QFileInfo fileInfo(exec.split(" ").at(0)); + // bool ret=fileInfo.isAbsolute(); + +@@ -618,7 +610,6 @@ void RightClickMenu::onReadOutput() + + void RightClickMenu::attributeActionTriggerSlot() + { +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + char command[100]; + sprintf(command,"ukui-menu-attr %s",desktopfp.toLocal8Bit().data()); + QProcess::startDetached(command); +@@ -628,7 +619,6 @@ void RightClickMenu::attributeActionTriggerSlot() + void RightClickMenu::commonUseDeleteActionTriggerSlot() + { + action_number=8; +- QString desktopfp=pUkuiMenuInterface->getDesktopPathByAppName(appname); + QFileInfo fileInfo(desktopfp); + QString desktopfn=fileInfo.fileName(); + setting->beginGroup("application"); +@@ -700,17 +690,19 @@ void RightClickMenu::otherListActionTriggerSlot() + qDebug()<<"---2---"; + } + +-int RightClickMenu::showCommonUseAppBtnMenu(QString appname) ++int RightClickMenu::showCommonUseAppBtnMenu(QString desktopfp) + { +- this->appname=appname; ++ this->desktopfp.clear(); ++ this->desktopfp=desktopfp; + addCommonUseAppBtnAction(); + cuappbtnmenu->exec(QCursor::pos()); + return action_number; + } + +-int RightClickMenu::showAppBtnMenu(QString appname) ++int RightClickMenu::showAppBtnMenu(QString desktopfp) + { +- this->appname=appname; ++ this->desktopfp.clear(); ++ this->desktopfp=desktopfp; + addAppBtnAction(); + appbtnmenu->exec(QCursor::pos()); + return action_number; +@@ -723,9 +715,10 @@ int RightClickMenu::showShutdownMenu() + + } + +-void RightClickMenu::showOtherMenu(QString appname) ++void RightClickMenu::showOtherMenu(QString desktopfp) + { +- this->appname=appname; ++ this->desktopfp.clear(); ++ this->desktopfp=desktopfp; + addOtherAction(); + othermenu->exec(QCursor::pos()); + } +diff --git a/src/RightClickMenu/rightclickmenu.h b/src/RightClickMenu/rightclickmenu.h +index 4b105a5..2e4c62b 100644 +--- a/src/RightClickMenu/rightclickmenu.h ++++ b/src/RightClickMenu/rightclickmenu.h +@@ -42,13 +42,13 @@ class RightClickMenu: public QWidget + public: + RightClickMenu(QWidget *parent); + virtual ~RightClickMenu(); +- int showCommonUseAppBtnMenu(QString appname); +- int showAppBtnMenu(QString appname); ++ int showCommonUseAppBtnMenu(QString desktopfp); ++ int showAppBtnMenu(QString desktopfp); + int showShutdownMenu(); +- void showOtherMenu(QString appname); ++ void showOtherMenu(QString desktopfp); + + private: +- QString appname; ++ QString desktopfp; + int action_number;//记录执行的action编号 + QSettings* setting=nullptr; + +diff --git a/src/SideBarWidget/sidebarwidget.cpp b/src/SideBarWidget/sidebarwidget.cpp +index 481b84d..ca69135 100644 +--- a/src/SideBarWidget/sidebarwidget.cpp ++++ b/src/SideBarWidget/sidebarwidget.cpp +@@ -360,16 +360,16 @@ void SideBarWidget::otherBtnRightClickSlot() + int index=otherButtonList.indexOf(btn); + QString desktopfp; + if(index==1) +- desktopfp=QString("/usr/share/applications/peony-qt.desktop"); ++ desktopfp=QString("/usr/share/applications/peony-computer.desktop"); + if(index==2) + desktopfp=QString("/usr/share/applications/ukui-control-center.desktop"); +- othermenu->showOtherMenu(pUkuiMenuInterface->getAppName(desktopfp)); ++ othermenu->showOtherMenu(desktopfp); + } + + void SideBarWidget::computerBtnClickedSlot() + { + Q_EMIT sendHideMainWindowSignal(); +- QProcess::startDetached(QString("peony computer:///")); ++ QProcess::startDetached(QString("/usr/bin/peony computer:///")); + } + + void SideBarWidget::controlBtnClickedSlot() +@@ -394,7 +394,7 @@ void SideBarWidget::shutdownBtnClickedSlot() + void SideBarWidget::userIconBtnClickedSlot() + { + Q_EMIT sendHideMainWindowSignal(); +- QProcess::startDetached(QString("ukui-control-center --u")); ++ QProcess::startDetached(QString("ukui-control-center -u")); + } + + void SideBarWidget::userAccountsChanged() +@@ -511,16 +511,6 @@ void SideBarWidget::setMinSidebarBtn(QPushButton* btn) + childwid->setParent(nullptr); + } + } +- +- +-// btn->setFixedSize(160,48); +-// QLayoutItem* item=btn->layout()->itemAt(1); +-// QWidget* wid=item->widget(); +-// QLabel* label=qobject_cast(wid); +-// int len=label->text().length(); +-//// btn->layout()->setContentsMargins(25,0,btn->width()-40-labelicon->width()-letterbtnname->width(),0); +-// btn->layout()->setContentsMargins(25,0,btn->width()-40-labelicon->width()-len*14,0); +-// btn->layout()->setSpacing(15); + } + + /** +@@ -587,137 +577,14 @@ void SideBarWidget::setMinBtn() + */ + void SideBarWidget::setMaxSidebarBtn(QPushButton *btn) + { +-// btn->setFixedSize(60,48); +-// btn->layout()->setContentsMargins(0,0,0,0); +-// btn->layout()->setSpacing(10); +- + btn->setFixedSize(Style::SideBarBtnWidth,Style::SideBarBtnHeight); +-// QLayoutItem* item=btn->layout()->itemAt(1); +-// QWidget* wid=item->widget(); +-// QLabel* label=qobject_cast(wid); +-// int len=label->text().length(); +-// qDebug()<layout()->setContentsMargins(15,0,btn->width()-40-labelicon->width()-letterbtnname->width(),0); + btn->layout()->setContentsMargins(Style::SideBarSpaceIconLeft, + 0, + 0, + 0); + btn->layout()->setSpacing(Style::SideBarSpaceIconText); +-// btn->setStyleSheet("border:1px solid #ff0000;"); +- + } + +-//void SideBarWidget::enterEvent(QEvent *e) +-//{ +-// this->is_hover=true; +-// Q_UNUSED(e); +-// if(!is_fullscreen) +-// { +-// } +-// else +-// { +-//// pEnterAnimation->start(); +-// } +-//} +- +-//void SideBarWidget::leaveEvent(QEvent *e) +-//{ +-// this->is_hover=false; +-// Q_UNUSED(e); +-// if(!is_fullscreen) +-// { +-// } +-// else +-// { +-//// pLeaveAnimation->start(); +-// } +-//} +- +-//void SideBarWidget::animation_finished_slot() +-//{ +-//} +- +-/** +- * 按钮焦点事件过滤 +- */ +-//bool SideBarWidget::eventFilter(QObject *watched, QEvent *event) +-//{ +-// char style[300]; +-// sprintf(style,"QToolButton{background-color:%s;border:0px;padding-left:0;}\ +-// QToolButton:hover{background-color:%s;}\ +-// QToolButton:pressed{background-color:%s;}", SIDEBARWIDGETCOLOR,SIDEBARBTNHOVER,SIDEBARBTNPRESSED); +- +-// char pressstyle[200]; +-// sprintf(pressstyle,"QToolButton{background-color:%s;border:0px;padding-left:0;}",MAINVIEWWIDGETCOLOR); +- +-// if(watched==commonusebtn) +-// { +-// if(event->type()==QEvent::FocusIn) +-// { +-// commonusebtn->setStyleSheet(QString::fromLocal8Bit(pressstyle)); +-// } +-// else if(event->type()==QEvent::FocusOut){ +-// commonusebtn->setStyleSheet(QString::fromLocal8Bit(style)); +- +-// } +-// } +-// else if(watched==letterbtn) +-// { +-// if(event->type()==QEvent::FocusIn) +-// { +-// letterbtn->setStyleSheet(QString::fromLocal8Bit(pressstyle)); +-// } +-// else if(event->type()==QEvent::FocusOut){ +-// letterbtn->setStyleSheet(QString::fromLocal8Bit(style)); +- +-// } +-// } +-// else if(watched==functionbtn) +-// { +-// if(event->type()==QEvent::FocusIn) +-// { +-// functionbtn->setStyleSheet(QString::fromLocal8Bit(pressstyle)); +-// } +-// else if(event->type()==QEvent::FocusOut){ +-// functionbtn->setStyleSheet(QString::fromLocal8Bit(style)); +- +-// } +- +-// } +-// //屏蔽按键 +-// if(event->type()==QEvent::KeyPress) +-// return true; +- +-// return QWidget::eventFilter(watched,event); +-//} +- +-//void SideBarWidget::mousePressEvent(QMouseEvent *e) +-//{ +-// if(e->button()==Qt::RightButton) +-// { +-// if(commonusebtn->hasFocus()) +-// { +-// if(is_fullscreen) +-// Q_EMIT send_fullscreen_commonusebtn_signal(); +-// else Q_EMIT sendCommonUseBtnSignal(); +- +-// } +-// else if(letterbtn->hasFocus()) +-// { +-// if(is_fullscreen) +-// Q_EMIT sendFullScreenLetterBtnSignal(); +-// else Q_EMIT sendLetterBtnSignal(); +-// } +-// else if(functionbtn->hasFocus()) +-// { +-// if(is_fullscreen) +-// Q_EMIT sendFullScreenFunctionBtnSignal(); +-// else Q_EMIT sendFunctionBtnSignal(); +-// } +- +-// } +-//} +- + void SideBarWidget::btnGroupClickedSlot(QAbstractButton *btn) + { + char btncolor[300]; +@@ -757,7 +624,6 @@ void SideBarWidget::btnGroupClickedSlot(QAbstractButton *btn) + } + } + else{ +-// button->setStyleSheet(QString::fromLocal8Bit(btncolor)); + button->setStyleSheet("background:transparent;"); + } + } +diff --git a/src/Style/style.cpp b/src/Style/style.cpp +index 4a8ae47..3569990 100644 +--- a/src/Style/style.cpp ++++ b/src/Style/style.cpp +@@ -83,13 +83,10 @@ void Style::initWidStyle() + QStringList valstr=value.split(" "); + int fontSize=valstr.at(valstr.count()-1).toInt(); + +- QDBusInterface iface("com.ukui.panel.desktop", +- "/", +- "com.ukui.panel.desktop", +- QDBusConnection::sessionBus()); ++ QGSettings* gsetting=new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit()); ++ int position=gsetting->get("panelposition").toInt(); ++ int panelSize=gsetting->get("panelsize").toInt(); + +- QDBusReply position=iface.call("GetPanelPosition",""); +- QDBusReply panelSize=iface.call("GetPanelSize",""); + if(position==0 || position==1) + { + widthavailable=QApplication::primaryScreen()->geometry().width(); +@@ -229,7 +226,7 @@ void Style::initWidStyle() + SideBarBtnWidth=110; + SideBarBtnHeight=43; + SideBarFontSize=fontSize; +- SideBarIconSize=16; ++ SideBarIconSize=19; + SideBarSpaceIconLeft=14; + SideBarSpaceIconText=6; + SideBarSpaceBetweenItem=16; +@@ -273,7 +270,7 @@ void Style::initWidStyle() + SideBarBtnWidth=110; + SideBarBtnHeight=43; + SideBarFontSize=fontSize; +- SideBarIconSize=16; ++ SideBarIconSize=19; + SideBarSpaceIconLeft=14; + SideBarSpaceIconText=6; + SideBarSpaceBetweenItem=16; +@@ -317,7 +314,7 @@ void Style::initWidStyle() + SideBarBtnWidth=110; + SideBarBtnHeight=43; + SideBarFontSize=fontSize; +- SideBarIconSize=16; ++ SideBarIconSize=19; + SideBarSpaceIconLeft=14; + SideBarSpaceIconText=6; + SideBarSpaceBetweenItem=16; +@@ -361,7 +358,7 @@ void Style::initWidStyle() + SideBarBtnWidth=110; + SideBarBtnHeight=43; + SideBarFontSize=fontSize; +- SideBarIconSize=16; ++ SideBarIconSize=19; + SideBarSpaceIconLeft=14; + SideBarSpaceIconText=6; + SideBarSpaceBetweenItem=16; +@@ -405,7 +402,7 @@ void Style::initWidStyle() + SideBarBtnWidth=110; + SideBarBtnHeight=43; + SideBarFontSize=fontSize; +- SideBarIconSize=16; ++ SideBarIconSize=19; + SideBarSpaceIconLeft=14; + SideBarSpaceIconText=6; + SideBarSpaceBetweenItem=16; +diff --git a/src/UtilityFunction/fullitemdelegate.cpp b/src/UtilityFunction/fullitemdelegate.cpp +index e118a93..29de925 100644 +--- a/src/UtilityFunction/fullitemdelegate.cpp ++++ b/src/UtilityFunction/fullitemdelegate.cpp +@@ -82,14 +82,14 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti + icon=QIcon::fromTheme(QString("application-x-desktop")); + QString appname=pUkuiMenuInterface->getAppName(desktopfp); + +- QFont font; ++// QFont font; + QRect iconRect; +- font.setPixelSize(Style::AppListFontSize); ++// font.setPixelSize(Style::AppListFontSize); + iconRect=QRect(rect.x()+Style::AppLeftSpace , + rect.y()+Style::AppTopSpace, + Style::AppListIconSize, + Style::AppListIconSize); +- painter->setFont(font); ++// painter->setFont(font); + icon.paint(painter,iconRect); + if(module==0) + { +diff --git a/src/UtilityFunction/fulllistview.cpp b/src/UtilityFunction/fulllistview.cpp +index acebac2..18b77c2 100644 +--- a/src/UtilityFunction/fulllistview.cpp ++++ b/src/UtilityFunction/fulllistview.cpp +@@ -120,11 +120,10 @@ void FullListView::rightClickedSlot() + QModelIndex index=this->currentIndex(); + QVariant var=listmodel->data(index, Qt::DisplayRole); + QString desktopfp=var.value(); +- QString appname=pUkuiMenuInterface->getAppName(desktopfp); + menu=new RightClickMenu(this); + if(module>0) + { +- int ret=menu->showAppBtnMenu(appname); ++ int ret=menu->showAppBtnMenu(desktopfp); + if(ret==1 || ret==2) + { + Q_EMIT sendFixedOrUnfixedSignal(); +@@ -135,7 +134,7 @@ void FullListView::rightClickedSlot() + Q_EMIT sendHideMainWindowSignal(); + } + else{ +- int ret=menu->showCommonUseAppBtnMenu(appname); ++ int ret=menu->showCommonUseAppBtnMenu(desktopfp); + if(ret==1 || ret==2) + { + this->setCurrentIndex(index); +diff --git a/src/UtilityFunction/functionclassifybutton.cpp b/src/UtilityFunction/functionclassifybutton.cpp +index 03090c1..0bec80a 100644 +--- a/src/UtilityFunction/functionclassifybutton.cpp ++++ b/src/UtilityFunction/functionclassifybutton.cpp +@@ -62,9 +62,9 @@ FunctionClassifyButton::FunctionClassifyButton(QWidget *parent, + + textlabel=new QLabel(this); + textlabel->setText(this->text); +- QFont font; +- font.setPixelSize(textSize); +- textlabel->setFont(font); ++// QFont font; ++// font.setPixelSize(textSize); ++// textlabel->setFont(font); + if(is_fullscreen) + textlabel->setStyleSheet("background:transparent; color:rgba(255, 255, 255, 50%);"); + else +@@ -105,9 +105,9 @@ void FunctionClassifyButton::enterEvent(QEvent *e) + svgRender->render(&p); + iconlabel->setPixmap(*pixmap); + iconlabel->setFixedSize(pixmap->size()); +- QFont font; +- font.setPixelSize(textSize); +- textlabel->setFont(font); ++// QFont font; ++// font.setPixelSize(textSize); ++// textlabel->setFont(font); + if(enabled) + textlabel->setStyleSheet("background:transparent;color:rgba(255, 255, 255);"); + textlabel->adjustSize(); +@@ -124,9 +124,9 @@ void FunctionClassifyButton::leaveEvent(QEvent *e) + this->setFixedSize(width,height); + svgRender->load(piconstr); + pixmap=new QPixmap(iconSize,iconSize); +- QFont font; +- font.setPixelSize(textSize); +- textlabel->setFont(font); ++// QFont font; ++// font.setPixelSize(textSize); ++// textlabel->setFont(font); + + } + else +@@ -134,9 +134,9 @@ void FunctionClassifyButton::leaveEvent(QEvent *e) + this->setFixedSize(width,height); + svgRender->load(iconstr); + pixmap=new QPixmap(iconSize,iconSize); +- QFont font; +- font.setPixelSize(textSize); +- textlabel->setFont(font); ++// QFont font; ++// font.setPixelSize(textSize); ++// textlabel->setFont(font); + + } + // pixmap=new QPixmap(iconSize,iconSize); +@@ -175,9 +175,9 @@ void FunctionClassifyButton::mousePressEvent(QMouseEvent *event) + svgRender->render(&p); + iconlabel->setPixmap(*pixmap); + iconlabel->setFixedSize(pixmap->size()); +- QFont font; +- font.setPixelSize(textSize); +- textlabel->setFont(font); ++// QFont font; ++// font.setPixelSize(textSize); ++// textlabel->setFont(font); + textlabel->setStyleSheet("background:transparent;color:#ffffff;"); + textlabel->adjustSize(); + is_pressed=true; +@@ -203,9 +203,9 @@ void FunctionClassifyButton::mouseReleaseEvent(QMouseEvent *event) + svgRender->render(&p); + iconlabel->setPixmap(*pixmap); + iconlabel->setFixedSize(pixmap->size()); +- QFont font; +- font.setPixelSize(textSize); +- textlabel->setFont(font); ++// QFont font; ++// font.setPixelSize(textSize); ++// textlabel->setFont(font); + textlabel->setStyleSheet("background:transparent;color:#ffffff;"); + textlabel->adjustSize(); + Q_EMIT buttonClicked(this); +diff --git a/src/UtilityFunction/itemdelegate.cpp b/src/UtilityFunction/itemdelegate.cpp +index 57d33b0..4f9f0d1 100644 +--- a/src/UtilityFunction/itemdelegate.cpp ++++ b/src/UtilityFunction/itemdelegate.cpp +@@ -59,11 +59,11 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, + path.quadTo(rect.topRight(), rect.topRight() + QPointF(-radius, -0)); + + +- QFont font; ++// QFont font; + // font.setFamily("Microsoft YaHei"); + +- font.setPixelSize(Style::AppListFontSize); +- painter->setFont(font); ++// font.setPixelSize(Style::AppListFontSize); ++// painter->setFont(font); + + // QIcon icon=index.model()->data(index,Qt::DecorationRole).value(); + QStringList strlist=index.model()->data(index,Qt::DisplayRole).toStringList(); +diff --git a/src/UtilityFunction/listview.cpp b/src/UtilityFunction/listview.cpp +index 0443d70..a0d4d1c 100644 +--- a/src/UtilityFunction/listview.cpp ++++ b/src/UtilityFunction/listview.cpp +@@ -117,8 +117,7 @@ void ListView::rightClickedSlot() + { + if(strlist.at(1).toInt()==1) + { +- QString appname=pUkuiMenuInterface->getAppName(strlist.at(0)); +- int ret=menu->showAppBtnMenu(appname); ++ int ret=menu->showAppBtnMenu(strlist.at(0)); + if(ret==1 || ret==2) + Q_EMIT sendFixedOrUnfixedSignal(); + if(ret==6) +@@ -128,8 +127,7 @@ void ListView::rightClickedSlot() + } + } + else{ +- QString appname=pUkuiMenuInterface->getAppName(strlist.at(0)); +- int ret=menu->showCommonUseAppBtnMenu(appname); ++ int ret=menu->showCommonUseAppBtnMenu(strlist.at(0)); + if(ret==1 || ret==2) + { + this->setCurrentIndex(index); +@@ -173,7 +171,6 @@ void ListView::rightClickedSlot() + + this->selectionModel()->clear(); + } +- + } + + void ListView::enterEvent(QEvent *e) +diff --git a/src/UtilityFunction/pushbutton.cpp b/src/UtilityFunction/pushbutton.cpp +index 3aff34b..464d729 100644 +--- a/src/UtilityFunction/pushbutton.cpp ++++ b/src/UtilityFunction/pushbutton.cpp +@@ -47,10 +47,10 @@ void PushButton::initAppBtn() + + char style[100]; + sprintf(style,"color:#ffffff;"); +- QFont font; +- font.setPixelSize(Style::LeftFontSize); ++// QFont font; ++// font.setPixelSize(Style::LeftFontSize); + QLabel* textlabel=new QLabel(this); +- textlabel->setFont(font); ++// textlabel->setFont(font); + textlabel->setAlignment(Qt::AlignCenter); + textlabel->setStyleSheet(style); + textlabel->setText(name); +-- +2.33.0 + diff --git a/ukui-menu.spec b/ukui-menu.spec index 083a35b..88f288a 100644 --- a/ukui-menu.spec +++ b/ukui-menu.spec @@ -2,12 +2,13 @@ Name: ukui-menu Version: 3.0.2 -Release: 8 +Release: 9 Summary: Advanced ukui menu License: GPL-3.0-or-later URL: http://www.ukui.org Source0: %{name}-%{version}.tar.gz Patch0: 0001-Fixed-size-problem-with-multiple-screens.patch +Patch1: 0002-Optimize-the-interaction-strategy-with-the-taskbar.patch BuildRequires: qt5-qtbase-devel BuildRequires: libqtxdg-devel @@ -41,6 +42,7 @@ Requires: accountsservice %prep %setup -q %patch0 -p1 +%patch1 -p1 %build mkdir build && cd build @@ -62,6 +64,9 @@ rm -rf $RPM_BUILD_ROOT ##%{_datadir}/ukui-menu/translations/ %changelog +* Wed Aug 8 2022 huayadong - 3.0.2-9 +- add optimize the interaction strategy with the taskbar + * Wed Jun 29 2022 huayadong - 3.0.2-8 - Fixed size problem with multiple screens