Skip to content

Commit

Permalink
feat: add compact mode
Browse files Browse the repository at this point in the history
  • Loading branch information
mhduiy committed Sep 12, 2024
1 parent 2eb4db6 commit 5e0be0b
Show file tree
Hide file tree
Showing 11 changed files with 112 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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<int>(m_AppearanceInter->property("DTKSizeMode"));
}
void PersonalizationDBusProxy::setDTKSizeMode(int value)
{
m_AppearanceInter->setProperty("DTKSizeMode", QVariant::fromValue(value));
}
// WMSwitcher
bool PersonalizationDBusProxy::AllowSwitch()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<int, double> opacity);
Expand All @@ -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;
Expand All @@ -66,5 +70,6 @@ class PersonalizationModel : public QObject
QString m_activeColor;
bool m_allowSwitch;
int m_windowRadius;
bool m_compactDisplay;
};
#endif // PERSONALIZATIONMODEL_H
Original file line number Diff line number Diff line change
Expand Up @@ -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") {
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -368,6 +375,11 @@ void PersonalizationWorker::setWindowRadius(int radius)
m_personalizationDBusProxy->setWindowRadius(radius);
}

void PersonalizationWorker::setCompactDisplay(bool value)
{
m_personalizationDBusProxy->setDTKSizeMode(int(value));
}

template<typename T>
T PersonalizationWorker::toSliderValue(std::vector<T> list, T value)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 <DSwitchButton>
#include <DSysInfo>
#include <DIconTheme>
#include <DTipLabel>

#include <QComboBox>

Expand Down Expand Up @@ -45,6 +48,41 @@ PersonalizationDesktopModule::PersonalizationDesktopModule(PersonalizationModel
this,
&PersonalizationDesktopModule::initMiniEffect);
group->appendChild(itemMinimizeEffect);


appendChild(new WidgetModule<SwitchWidget>(
"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<DTipLabel>(
"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",
Expand Down Expand Up @@ -189,4 +227,4 @@ QWidget *PersonalizationDesktopModule::initRoundEffect(ModuleObject *module)
m_work->setWindowRadius(val);
});
return winRoundSlider;
}
}
8 changes: 8 additions & 0 deletions dcc-old/translations/dde-control-center_zh_CN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2671,6 +2671,14 @@ UnionTech Software is committed to research and improve the security, accuracy a
<source>Window Minimize Effect</source>
<translation>最小化时效果</translation>
</message>
<message>
<source>Compact Display</source>
<translation>紧凑模式</translation>
</message>
<message>
<source>If enabled, more content is displayed in the window.</source>
<translation>开启后,窗口将显示更多内容</translation>
</message>
<message>
<source>Opacity</source>
<translation>不透明度调节</translation>
Expand Down
8 changes: 8 additions & 0 deletions dcc-old/translations/dde-control-center_zh_HK.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2700,6 +2700,14 @@ UnionTech Software is committed to research and improve the security, accuracy a
<source>Window Minimize Effect</source>
<translation>最小化時效果</translation>
</message>
<message>
<source>Compact Display</source>
<translation>緊湊模式</translation>
</message>
<message>
<source>If enabled, more content is displayed in the window.</source>
<translation>開啟後,視窗將顯示更多內容</translation>
</message>
<message>
<source>Transparency</source>
<translation>透明度調節</translation>
Expand Down
8 changes: 8 additions & 0 deletions dcc-old/translations/dde-control-center_zh_TW.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2700,6 +2700,14 @@ UnionTech Software is committed to research and improve the security, accuracy a
<source>Window Minimize Effect</source>
<translation>最小化時效果</translation>
</message>
<message>
<source>Compact Display</source>
<translation>緊湊模式</translation>
</message>
<message>
<source>If enabled, more content is displayed in the window.</source>
<translation>開啟後,視窗將顯示更多內容</translation>
</message>
<message>
<source>Transparency</source>
<translation>透明度調節</translation>
Expand Down
8 changes: 8 additions & 0 deletions translations/dde-control-center.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2729,6 +2729,14 @@ UnionTech Software is committed to research and improve the security, accuracy a
<source>Window Minimize Effect</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Compact Display</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If enabled, more content is displayed in the window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Transparency</source>
<translation type="unfinished"></translation>
Expand Down

0 comments on commit 5e0be0b

Please sign in to comment.