ukui-panel/0003-modify-close-ShowTaskview-no-replay.patch
2022-03-28 16:17:11 +08:00

111 lines
3.6 KiB
Diff

From fc05b2c7a20bdcd12fd64e84dbbc8911045e531e Mon Sep 17 00:00:00 2001
From: pei-jiankang <peijiankang@kylinos.cn>
Date: Mon, 28 Mar 2022 15:31:38 +0800
Subject: [PATCH] modify close ShowTaskview no replay
---
plugin-startbar/startbar.cpp | 40 +++++++++++++++++++++++++++++++-----
plugin-startbar/startbar.h | 1 +
2 files changed, 36 insertions(+), 5 deletions(-)
diff --git a/plugin-startbar/startbar.cpp b/plugin-startbar/startbar.cpp
index 47e1ac8..62078d7 100644
--- a/plugin-startbar/startbar.cpp
+++ b/plugin-startbar/startbar.cpp
@@ -27,13 +27,16 @@
#include "../panel/customstyle.h"
#define THEME_QT_SCHEMA "org.ukui.style"
#define THEME_Style_Name "styleName"
+#define UKUI_PANEL_SETTINGS "org.ukui.panel.settings"
+#define SHOW_TASKVIEW "showtaskview"
UKUIStartbarPlugin::UKUIStartbarPlugin(const IUKUIPanelPluginStartupInfo &startupInfo):
QObject(),
IUKUIPanelPlugin(startupInfo),
mWidget(new UKUIStartBarWidget(this))
{
-
+
+ mWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
}
@@ -57,11 +60,18 @@ UKUIStartBarWidget::UKUIStartBarWidget( IUKUIPanelPlugin *plugin, QWidget* paren
{
translator();
mStartMenuButton=new StartMenuButton(plugin,this);
- mTaskViewButton=new TaskViewButton(plugin,this);
mLayout=new UKUi::GridLayout(this);
mLayout->addWidget(mStartMenuButton);
- mLayout->addWidget(mTaskViewButton);
+ const QByteArray id(UKUI_PANEL_SETTINGS);
+ if(QGSettings::isSchemaInstalled(id)) {
+ m_gsettings = new QGSettings(id);
+ }
+ connect(m_gsettings, &QGSettings::changed, this, [=] (const QString &key){
+ if(key==SHOW_TASKVIEW)
+ realign();
+ });
+ realign();
}
void UKUIStartBarWidget::translator(){
@@ -77,19 +87,39 @@ void UKUIStartBarWidget::translator(){
UKUIStartBarWidget::~UKUIStartBarWidget()
{
+ mStartMenuButton->deleteLater();
+ mTaskViewButton->deleteLater();
}
/*plugin-startmenu refresh function*/
void UKUIStartBarWidget::realign()
{
+ if(m_gsettings->get(SHOW_TASKVIEW).toBool()){
+ if (!this->findChild<TaskViewButton *>("TaskViewButton")) {
+ mTaskViewButton=new TaskViewButton(mPlugin,this);
+ mTaskViewButton->setObjectName("TaskViewButton");
+ mLayout->addWidget(mTaskViewButton);
+ }
+ } else {
+ if (this->findChild<TaskViewButton *>("TaskViewButton")) {
+ if (mTaskViewButton != nullptr) {
+ mLayout->removeWidget(mTaskViewButton);
+ mTaskViewButton->deleteLater();
+ }
+ } else {
+ mStartMenuButton->realign();
+ return;
+ }
+ }
+
if (mPlugin->panel()->isHorizontal()){
mLayout->setColumnCount(mLayout->count());
mLayout->setRowCount(0);
- this->setFixedSize(mPlugin->panel()->panelSize()*2.3,mPlugin->panel()->panelSize());
+ // this->setFixedSize(mPlugin->panel()->panelSize()*2.3,mPlugin->panel()->panelSize());
}else{
mLayout->setRowCount(mLayout->count());
mLayout->setColumnCount(0);
- this->setFixedSize(mPlugin->panel()->panelSize(),mPlugin->panel()->panelSize()*2.3);
+ // this->setFixedSize(mPlugin->panel()->panelSize(),mPlugin->panel()->panelSize()*2.3);
}
mStartMenuButton->realign();
mTaskViewButton->realign();
diff --git a/plugin-startbar/startbar.h b/plugin-startbar/startbar.h
index e4c4292..368ff9a 100644
--- a/plugin-startbar/startbar.h
+++ b/plugin-startbar/startbar.h
@@ -92,6 +92,7 @@ private:
TaskViewButton *mTaskViewButton;
UKUi::GridLayout *mLayout;
QTranslator *m_translator;
+ QGSettings *m_gsettings;
private:
void translator();
--
2.33.0