Open DBus settings interface
This commit is contained in:
parent
68442e5280
commit
d747ca3f56
6 changed files with 39 additions and 45 deletions
|
@ -44,7 +44,6 @@ DockSettings::DockSettings(QObject *parent)
|
|||
, m_direction(Left)
|
||||
, m_visibility(AlwaysShow)
|
||||
, m_settings(new QSettings(QSettings::UserScope, "cutefishos", "dock"))
|
||||
, m_fileWatcher(new QFileSystemWatcher(this))
|
||||
{
|
||||
if (!m_settings->contains("IconSize"))
|
||||
m_settings->setValue("IconSize", 54);
|
||||
|
@ -61,9 +60,6 @@ DockSettings::DockSettings(QObject *parent)
|
|||
m_direction = static_cast<Direction>(m_settings->value("Direction").toInt());
|
||||
m_visibility = static_cast<Visibility>(m_settings->value("Visibility").toInt());
|
||||
m_roundedWindowEnabled = m_settings->value("RoundedWindow").toBool();
|
||||
|
||||
m_fileWatcher->addPath(m_settings->fileName());
|
||||
connect(m_fileWatcher, &QFileSystemWatcher::fileChanged, this, &DockSettings::onConfigFileChanged);
|
||||
}
|
||||
|
||||
int DockSettings::iconSize() const
|
||||
|
@ -73,8 +69,11 @@ int DockSettings::iconSize() const
|
|||
|
||||
void DockSettings::setIconSize(int iconSize)
|
||||
{
|
||||
m_iconSize = iconSize;
|
||||
emit iconSizeChanged();
|
||||
if (m_iconSize != iconSize) {
|
||||
m_iconSize = iconSize;
|
||||
m_settings->setValue("IconSize", iconSize);
|
||||
emit iconSizeChanged();
|
||||
}
|
||||
}
|
||||
|
||||
DockSettings::Direction DockSettings::direction() const
|
||||
|
@ -84,8 +83,11 @@ DockSettings::Direction DockSettings::direction() const
|
|||
|
||||
void DockSettings::setDirection(const Direction &direction)
|
||||
{
|
||||
m_direction = direction;
|
||||
emit directionChanged();
|
||||
if (m_direction != direction) {
|
||||
m_direction = direction;
|
||||
m_settings->setValue("Direction", direction);
|
||||
emit directionChanged();
|
||||
}
|
||||
}
|
||||
|
||||
DockSettings::Visibility DockSettings::visibility() const
|
||||
|
@ -97,6 +99,7 @@ void DockSettings::setVisibility(const DockSettings::Visibility &visibility)
|
|||
{
|
||||
if (m_visibility != visibility) {
|
||||
m_visibility = visibility;
|
||||
m_settings->setValue("Visibility", visibility);
|
||||
emit visibilityChanged();
|
||||
}
|
||||
}
|
||||
|
@ -123,30 +126,3 @@ void DockSettings::setRoundedWindowEnabled(bool enabled)
|
|||
emit roundedWindowEnabledChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void DockSettings::onConfigFileChanged()
|
||||
{
|
||||
if (!QFile(m_settings->fileName()).exists())
|
||||
return;
|
||||
|
||||
m_settings->sync();
|
||||
|
||||
int iconSize = m_settings->value("IconSize").toInt();
|
||||
Direction direction = static_cast<Direction>(m_settings->value("Direction").toInt());
|
||||
Visibility visibility = static_cast<Visibility>(m_settings->value("Visibility").toInt());
|
||||
bool roundedWindow = m_settings->value("RoundedWindow").toBool();
|
||||
|
||||
if (m_iconSize != iconSize)
|
||||
setIconSize(iconSize);
|
||||
|
||||
if (m_direction != direction)
|
||||
setDirection(direction);
|
||||
|
||||
if (m_visibility != visibility)
|
||||
setVisibility(visibility);
|
||||
|
||||
if (m_roundedWindowEnabled != roundedWindow)
|
||||
setRoundedWindowEnabled(roundedWindow);
|
||||
|
||||
m_fileWatcher->addPath(m_settings->fileName());
|
||||
}
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
#include <QObject>
|
||||
#include <QSettings>
|
||||
#include <QFileSystemWatcher>
|
||||
|
||||
class DockSettings : public QObject
|
||||
{
|
||||
|
@ -65,9 +64,6 @@ public:
|
|||
bool roundedWindowEnabled() const;
|
||||
void setRoundedWindowEnabled(bool enabled);
|
||||
|
||||
private slots:
|
||||
void onConfigFileChanged();
|
||||
|
||||
signals:
|
||||
void iconSizeChanged();
|
||||
void directionChanged();
|
||||
|
@ -81,7 +77,6 @@ private:
|
|||
Direction m_direction;
|
||||
Visibility m_visibility;
|
||||
QSettings *m_settings;
|
||||
QFileSystemWatcher *m_fileWatcher;
|
||||
};
|
||||
|
||||
#endif // DOCKSETTINGS_H
|
||||
|
|
|
@ -51,7 +51,7 @@ MainWindow::MainWindow(QQuickView *parent)
|
|||
setColor(Qt::transparent);
|
||||
|
||||
setFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus);
|
||||
KWindowSystem::setOnDesktop(winId(), NET::OnAllDesktops);
|
||||
// KWindowSystem::setOnDesktop(winId(), NET::OnAllDesktops);
|
||||
KWindowSystem::setType(winId(), NET::Dock);
|
||||
|
||||
engine()->rootContext()->setContextProperty("appModel", m_appModel);
|
||||
|
@ -61,6 +61,7 @@ MainWindow::MainWindow(QQuickView *parent)
|
|||
engine()->rootContext()->setContextProperty("trash", m_trashManager);
|
||||
|
||||
setSource(QUrl(QStringLiteral("qrc:/qml/main.qml")));
|
||||
setScreen(qApp->primaryScreen());
|
||||
setResizeMode(QQuickView::SizeRootObjectToView);
|
||||
initScreens();
|
||||
|
||||
|
@ -109,6 +110,21 @@ bool MainWindow::pinned(const QString &desktop)
|
|||
return m_appModel->isDesktopPinned(desktop);
|
||||
}
|
||||
|
||||
void MainWindow::setDirection(int direction)
|
||||
{
|
||||
DockSettings::self()->setDirection(static_cast<DockSettings::Direction>(direction));
|
||||
}
|
||||
|
||||
void MainWindow::setIconSize(int iconSize)
|
||||
{
|
||||
DockSettings::self()->setIconSize(iconSize);
|
||||
}
|
||||
|
||||
void MainWindow::setVisibility(int visibility)
|
||||
{
|
||||
DockSettings::self()->setVisibility(static_cast<DockSettings::Visibility>(visibility));
|
||||
}
|
||||
|
||||
void MainWindow::updateSize()
|
||||
{
|
||||
resizeWindow();
|
||||
|
|
|
@ -42,6 +42,10 @@ public:
|
|||
void remove(const QString &desktop);
|
||||
bool pinned(const QString &desktop);
|
||||
|
||||
void setDirection(int direction);
|
||||
void setIconSize(int iconSize);
|
||||
void setVisibility(int visibility);
|
||||
|
||||
Q_INVOKABLE void updateSize();
|
||||
|
||||
signals:
|
||||
|
|
|
@ -7,5 +7,9 @@
|
|||
<arg name="desktopFile" type="s" direction="in"/>
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
|
||||
<method name="setDirection"><arg name="direction" type="i" direction="in"/></method>
|
||||
<method name="setIconSize"><arg name="iconSize" type="i" direction="in"/></method>
|
||||
<method name="setVisibility"><arg name="visibility" type="i" direction="in"/></method>
|
||||
</interface>
|
||||
</node>
|
||||
|
|
|
@ -162,15 +162,14 @@ void XWindowInterface::setViewStruts(QWindow *view, DockSettings::Direction dire
|
|||
break;
|
||||
}
|
||||
case DockSettings::Bottom: {
|
||||
const int bottomOffset { wholeScreen.bottom() - currentScreen.bottom() };
|
||||
strut.bottom_width = rect.height() + bottomOffset + edgeMargins;
|
||||
strut.bottom_width = rect.height() + edgeMargins;
|
||||
strut.bottom_start = rect.x();
|
||||
strut.bottom_end = rect.x() + rect.width();
|
||||
break;
|
||||
}
|
||||
case DockSettings::Right: {
|
||||
const int rightOffset = {wholeScreen.right() - currentScreen.right()};
|
||||
strut.right_width = rect.width() + rightOffset + edgeMargins;
|
||||
// const int rightOffset = {wholeScreen.right() - currentScreen.right()};
|
||||
strut.right_width = rect.width() + edgeMargins;
|
||||
strut.right_start = rect.y();
|
||||
strut.right_end = rect.y() + rect.height() - 1;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue