diff --git a/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.cpp b/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.cpp index 4029909203..e0fa577ab1 100644 --- a/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.cpp +++ b/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.cpp @@ -189,6 +189,14 @@ bool PersonalizationDBusProxy::Thumbnail(const QString &ty, const QString &name, args << QVariant::fromValue(ty) << QVariant::fromValue(name); return m_AppearanceInter->callWithCallback(QStringLiteral("Thumbnail"), args, receiver, member, errorSlot); } +int PersonalizationDBusProxy::getDTKSizeMode() +{ + return qvariant_cast(m_AppearanceInter->property("DTKSizeMode")); +} +void PersonalizationDBusProxy::setDTKSizeMode(int value) +{ + m_AppearanceInter->setProperty("DTKSizeMode", QVariant::fromValue(value)); +} // WMSwitcher bool PersonalizationDBusProxy::AllowSwitch() { diff --git a/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.h b/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.h index 3a2f0f0ab9..25ece3c766 100644 --- a/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.h +++ b/dcc-old/src/plugin-personalization/operation/personalizationdbusproxy.h @@ -70,6 +70,10 @@ class PersonalizationDBusProxy : public QObject bool zoneEnabled(); void setZoneEnabled(bool value); + Q_PROPERTY(int DTKSizeMode READ getDTKSizeMode WRITE setDTKSizeMode NOTIFY DTKSizeModeChanged) + int getDTKSizeMode(); + void setDTKSizeMode(int value); + signals: // Appearance void Changed(const QString &in0, const QString &in1); @@ -97,6 +101,7 @@ class PersonalizationDBusProxy : public QObject void cursorSizeChanged(int value) const; // void CursorThemeChanged(const QString & value) const; void ZoneEnabledChanged(bool value) const; + void DTKSizeModeChanged(int value) const; public slots: // Appearance diff --git a/dcc-old/src/plugin-personalization/operation/personalizationmodel.cpp b/dcc-old/src/plugin-personalization/operation/personalizationmodel.cpp index 3156c545d3..12f0f00078 100644 --- a/dcc-old/src/plugin-personalization/operation/personalizationmodel.cpp +++ b/dcc-old/src/plugin-personalization/operation/personalizationmodel.cpp @@ -90,3 +90,12 @@ void PersonalizationModel::setCompositingAllowSwitch(bool value) Q_EMIT onCompositingAllowSwitch(value); } + +void PersonalizationModel::setCompactDisplay(bool value) +{ + if (m_compactDisplay == value) + return; + m_compactDisplay = value; + + Q_EMIT compactDisplayChanged(value); +} \ No newline at end of file diff --git a/dcc-old/src/plugin-personalization/operation/personalizationmodel.h b/dcc-old/src/plugin-personalization/operation/personalizationmodel.h index 64ae8ae077..efb1000732 100644 --- a/dcc-old/src/plugin-personalization/operation/personalizationmodel.h +++ b/dcc-old/src/plugin-personalization/operation/personalizationmodel.h @@ -43,6 +43,9 @@ class PersonalizationModel : public QObject inline bool getAllowSwitch() { return m_allowSwitch; } void setCompositingAllowSwitch(bool value); + inline bool getCompactDisplay() { return m_compactDisplay; } + void setCompactDisplay(bool value); + Q_SIGNALS: void wmChanged(const bool is3d); void onOpacityChanged(std::pair opacity); @@ -51,6 +54,7 @@ class PersonalizationModel : public QObject void onCompositingAllowSwitch(bool value); void onWindowRadiusChanged(int radius); void onSaveWindowRadiusChanged(int radius); + void compactDisplayChanged(bool value); private: ThemeModel *m_windowModel; @@ -66,5 +70,6 @@ class PersonalizationModel : public QObject QString m_activeColor; bool m_allowSwitch; int m_windowRadius; + bool m_compactDisplay; }; #endif // PERSONALIZATIONMODEL_H diff --git a/dcc-old/src/plugin-personalization/operation/personalizationworker.cpp b/dcc-old/src/plugin-personalization/operation/personalizationworker.cpp index 91564683c5..43edbb6936 100644 --- a/dcc-old/src/plugin-personalization/operation/personalizationworker.cpp +++ b/dcc-old/src/plugin-personalization/operation/personalizationworker.cpp @@ -52,6 +52,7 @@ PersonalizationWorker::PersonalizationWorker(PersonalizationModel *model, QObjec connect(m_personalizationDBusProxy, &PersonalizationDBusProxy::compositingAllowSwitchChanged, this, &PersonalizationWorker::onCompositingAllowSwitch); connect(m_personalizationDBusProxy, &PersonalizationDBusProxy::compositingEnabledChanged, this, &PersonalizationWorker::onWindowWM); connect(m_personalizationDBusProxy, &PersonalizationDBusProxy::WindowRadiusChanged, this, &PersonalizationWorker::onWindowRadiusChanged); + connect(m_personalizationDBusProxy, &PersonalizationDBusProxy::DTKSizeModeChanged, this, &PersonalizationWorker::onCompactDisplayChanged); connect(m_personalizationDBusProxy, &PersonalizationDBusProxy::Changed, this, [this](const QString &propertyName, const QString &value) { qCDebug(DdcPersonalWorker) << "ChangeProperty is " << propertyName << "; value is" << value; if (propertyName == "globaltheme") { @@ -84,6 +85,7 @@ void PersonalizationWorker::active() m_model->getMonoFontModel()->setFontName(m_personalizationDBusProxy->monospaceFont()); m_model->getStandFontModel()->setFontName(m_personalizationDBusProxy->standardFont()); m_model->setWindowRadius(m_personalizationDBusProxy->windowRadius()); + m_model->setCompactDisplay(m_personalizationDBusProxy->getDTKSizeMode()); } void PersonalizationWorker::deactive() @@ -202,6 +204,11 @@ void PersonalizationWorker::onCompositingAllowSwitch(bool value) m_model->setCompositingAllowSwitch(value); } +void PersonalizationWorker::onCompactDisplayChanged(int value) +{ + m_model->setCompactDisplay(value); +} + void PersonalizationWorker::setFontList(FontModel *model, const QString &type, const QString &list) { QJsonArray array = QJsonDocument::fromJson(list.toLocal8Bit().data()).array(); @@ -368,6 +375,11 @@ void PersonalizationWorker::setWindowRadius(int radius) m_personalizationDBusProxy->setWindowRadius(radius); } +void PersonalizationWorker::setCompactDisplay(bool value) +{ + m_personalizationDBusProxy->setDTKSizeMode(int(value)); +} + template T PersonalizationWorker::toSliderValue(std::vector list, T value) { diff --git a/dcc-old/src/plugin-personalization/operation/personalizationworker.h b/dcc-old/src/plugin-personalization/operation/personalizationworker.h index 6e99a6298e..c35756ad61 100644 --- a/dcc-old/src/plugin-personalization/operation/personalizationworker.h +++ b/dcc-old/src/plugin-personalization/operation/personalizationworker.h @@ -35,6 +35,7 @@ public Q_SLOTS: void setMiniEffect(int effect); void setActiveColor(const QString &hexColor); void setWindowRadius(int radius); + void setCompactDisplay(bool value); private Q_SLOTS: void FontSizeChanged(const double value) const; @@ -49,6 +50,7 @@ private Q_SLOTS: void onWindowWM(bool value); void onMiniEffectChanged(bool value); void onWindowRadiusChanged(int value); + void onCompactDisplayChanged(int value); private: int sizeToSliderValue(const double value) const; diff --git a/dcc-old/src/plugin-personalization/window/personalizationdesktopmodule.cpp b/dcc-old/src/plugin-personalization/window/personalizationdesktopmodule.cpp index ba41f54d85..15dbf71806 100644 --- a/dcc-old/src/plugin-personalization/window/personalizationdesktopmodule.cpp +++ b/dcc-old/src/plugin-personalization/window/personalizationdesktopmodule.cpp @@ -10,10 +10,13 @@ #include "widgets/horizontalmodule.h" #include "widgets/itemmodule.h" #include "widgets/settingsgroupmodule.h" +#include "widgets/widgetmodule.h" +#include "widgets/switchwidget.h" #include #include #include +#include #include @@ -45,6 +48,41 @@ PersonalizationDesktopModule::PersonalizationDesktopModule(PersonalizationModel this, &PersonalizationDesktopModule::initMiniEffect); group->appendChild(itemMinimizeEffect); + + + appendChild(new WidgetModule( + "compactDisplay", + tr("Compact Display"), + [this](SwitchWidget *switchButton) { + connect(m_model, + &PersonalizationModel::compactDisplayChanged, + switchButton, + [=](const bool status) { + switchButton->setChecked(status); + }); + connect(switchButton, + &SwitchWidget::checkedChanged, + this, + [this](const bool status){ + m_work->setCompactDisplay(status); + }); + + switchButton->setTitle(tr("Compact Display")); + switchButton->addBackground(); + switchButton->setChecked(m_model->getCompactDisplay()); + })); + + auto compactDisplayTipModule = new WidgetModule( + "compactDisplayTip", + tr(""), + [](DTipLabel *label) { + label->setWordWrap(true); + label->setAlignment(Qt::AlignLeft); + label->setContentsMargins(10, 0, 10, 0); + label->setText(tr("If enabled, more content is displayed in the window.")); + }); + appendChild(compactDisplayTipModule); + HorizontalModule *hor = new HorizontalModule(QString(), QString()); appendChild(hor); hor->appendChild(new ItemModule("transparencyEffect", @@ -189,4 +227,4 @@ QWidget *PersonalizationDesktopModule::initRoundEffect(ModuleObject *module) m_work->setWindowRadius(val); }); return winRoundSlider; -} +} \ No newline at end of file diff --git a/dcc-old/translations/dde-control-center_zh_CN.ts b/dcc-old/translations/dde-control-center_zh_CN.ts index fc10a3afac..22e92b6ed3 100644 --- a/dcc-old/translations/dde-control-center_zh_CN.ts +++ b/dcc-old/translations/dde-control-center_zh_CN.ts @@ -2671,6 +2671,14 @@ UnionTech Software is committed to research and improve the security, accuracy a Window Minimize Effect 最小化时效果 + + Compact Display + 紧凑模式 + + + If enabled, more content is displayed in the window. + 开启后,窗口将显示更多内容 + Opacity 不透明度调节 diff --git a/dcc-old/translations/dde-control-center_zh_HK.ts b/dcc-old/translations/dde-control-center_zh_HK.ts index 1d1e03f2a3..da03782ed5 100644 --- a/dcc-old/translations/dde-control-center_zh_HK.ts +++ b/dcc-old/translations/dde-control-center_zh_HK.ts @@ -2700,6 +2700,14 @@ UnionTech Software is committed to research and improve the security, accuracy a Window Minimize Effect 最小化時效果 + + Compact Display + 緊湊模式 + + + If enabled, more content is displayed in the window. + 開啟後,視窗將顯示更多內容 + Transparency 透明度調節 diff --git a/dcc-old/translations/dde-control-center_zh_TW.ts b/dcc-old/translations/dde-control-center_zh_TW.ts index 1c38432004..0756a213a5 100644 --- a/dcc-old/translations/dde-control-center_zh_TW.ts +++ b/dcc-old/translations/dde-control-center_zh_TW.ts @@ -2700,6 +2700,14 @@ UnionTech Software is committed to research and improve the security, accuracy a Window Minimize Effect 最小化時效果 + + Compact Display + 緊湊模式 + + + If enabled, more content is displayed in the window. + 開啟後,視窗將顯示更多內容 + Transparency 透明度調節 diff --git a/translations/dde-control-center.ts b/translations/dde-control-center.ts index a2b70ab552..1c8f692ade 100644 --- a/translations/dde-control-center.ts +++ b/translations/dde-control-center.ts @@ -2729,6 +2729,14 @@ UnionTech Software is committed to research and improve the security, accuracy a Window Minimize Effect + + Compact Display + + + + If enabled, more content is displayed in the window. + + Transparency