mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00

1. taskmanager used to identify which entry should map to window in x11 environmrnt, listen to xevent in anohter thread, and handle those event when window create, destory, changed. use some way to identify which entry(desktopfile) should mapped to changed window. in wayland, connected plsamawindow signal(window created destoried. 2. use taskmanager instead of dbus in old dock code log: as title
236 lines
6.2 KiB
C++
236 lines
6.2 KiB
C++
// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
|
|
//
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#include "dockdaemonadaptors.h"
|
|
#include "docksettings.h"
|
|
#include "taskmanager/taskmanager.h"
|
|
|
|
DockDaemonDBusAdaptor::DockDaemonDBusAdaptor(QObject *parent)
|
|
: QDBusAbstractAdaptor(parent)
|
|
{
|
|
// constructor
|
|
setAutoRelaySignals(true);
|
|
connect(TaskManager::instance(), &TaskManager::entryAdded, this, &DockDaemonDBusAdaptor::EntryAdded);
|
|
connect(TaskManager::instance(), &TaskManager::entryRemoved, this, &DockDaemonDBusAdaptor::EntryRemoved);
|
|
connect(TaskManager::instance(), &TaskManager::hideStateChanged, this, &DockDaemonDBusAdaptor::HideStateChanged);
|
|
connect(TaskManager::instance(), &TaskManager::frontendWindowRectChanged, this, &DockDaemonDBusAdaptor::FrontendWindowRectChanged);
|
|
connect(TaskManager::instance(), &TaskManager::showRecentChanged, this, &DockDaemonDBusAdaptor::showRecentChanged);
|
|
connect(TaskManager::instance(), &TaskManager::showMultiWindowChanged, this, &DockDaemonDBusAdaptor::ShowMultiWindowChanged);
|
|
}
|
|
|
|
DockDaemonDBusAdaptor::~DockDaemonDBusAdaptor()
|
|
{
|
|
// destructor
|
|
}
|
|
|
|
int DockDaemonDBusAdaptor::displayMode() const
|
|
{
|
|
return TaskManager::instance()->getDisplayMode();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setDisplayMode(int value)
|
|
{
|
|
if (displayMode() != value) {
|
|
TaskManager::instance()->setDisplayMode(value);
|
|
Q_EMIT DisplayModeChanged(value);
|
|
}
|
|
}
|
|
|
|
QStringList DockDaemonDBusAdaptor::dockedApps() const
|
|
{
|
|
return TaskManager::instance()->getDockedApps();
|
|
}
|
|
|
|
int DockDaemonDBusAdaptor::hideMode() const
|
|
{
|
|
return TaskManager::instance()->getHideMode();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setHideMode(int value)
|
|
{
|
|
if (hideMode() != value) {
|
|
TaskManager::instance()->setHideMode(static_cast<HideMode>(value));
|
|
Q_EMIT HideModeChanged(value);
|
|
}
|
|
}
|
|
|
|
int DockDaemonDBusAdaptor::hideState() const
|
|
{
|
|
return TaskManager::instance()->getHideState();
|
|
}
|
|
|
|
uint DockDaemonDBusAdaptor::hideTimeout() const
|
|
{
|
|
return TaskManager::instance()->getHideTimeout();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setHideTimeout(uint value)
|
|
{
|
|
if (hideTimeout() != value) {
|
|
TaskManager::instance()->setHideTimeout(value);
|
|
Q_EMIT HideTimeoutChanged(value);
|
|
}
|
|
}
|
|
|
|
uint DockDaemonDBusAdaptor::windowSizeEfficient() const
|
|
{
|
|
return TaskManager::instance()->getWindowSizeEfficient();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setWindowSizeEfficient(uint value)
|
|
{
|
|
if (windowSizeEfficient() != value) {
|
|
TaskManager::instance()->setWindowSizeEfficient(value);
|
|
Q_EMIT WindowSizeEfficientChanged(value);
|
|
}
|
|
}
|
|
|
|
uint DockDaemonDBusAdaptor::windowSizeFashion() const
|
|
{
|
|
return TaskManager::instance()->getWindowSizeFashion();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setWindowSizeFashion(uint value)
|
|
{
|
|
if (windowSizeFashion() != value) {
|
|
TaskManager::instance()->setWindowSizeFashion(value);
|
|
Q_EMIT WindowSizeFashionChanged(value);
|
|
}
|
|
}
|
|
|
|
QRect DockDaemonDBusAdaptor::frontendWindowRect() const
|
|
{
|
|
return TaskManager::instance()->getFrontendWindowRect();
|
|
}
|
|
|
|
uint DockDaemonDBusAdaptor::iconSize() const
|
|
{
|
|
return TaskManager::instance()->getIconSize();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setIconSize(uint value)
|
|
{
|
|
if (iconSize() != value) {
|
|
TaskManager::instance()->setIconSize(value);
|
|
Q_EMIT IconSizeChanged(value);
|
|
}
|
|
}
|
|
|
|
int DockDaemonDBusAdaptor::position() const
|
|
{
|
|
return TaskManager::instance()->getPosition();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setPosition(int value)
|
|
{
|
|
if (position() != value) {
|
|
TaskManager::instance()->setPosition(value);
|
|
Q_EMIT PositionChanged(value);
|
|
}
|
|
}
|
|
|
|
uint DockDaemonDBusAdaptor::showTimeout() const
|
|
{
|
|
return TaskManager::instance()->getShowTimeout();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::setShowTimeout(uint value)
|
|
{
|
|
if (showTimeout() != value) {
|
|
TaskManager::instance()->setShowTimeout(value);
|
|
Q_EMIT ShowTimeoutChanged(value);
|
|
}
|
|
}
|
|
|
|
bool DockDaemonDBusAdaptor::showRecent() const
|
|
{
|
|
return DockSettings::instance()->showRecent();
|
|
}
|
|
|
|
bool DockDaemonDBusAdaptor::showMultiWindow() const
|
|
{
|
|
return TaskManager::instance()->showMultiWindow();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::CloseWindow(uint win)
|
|
{
|
|
TaskManager::instance()->closeWindow(win);
|
|
}
|
|
|
|
// for debug
|
|
QStringList DockDaemonDBusAdaptor::GetEntryIDs()
|
|
{
|
|
return TaskManager::instance()->getEntryIDs();
|
|
}
|
|
|
|
bool DockDaemonDBusAdaptor::IsDocked(const QString &desktopFile)
|
|
{
|
|
return TaskManager::instance()->isDocked(desktopFile);
|
|
}
|
|
|
|
bool DockDaemonDBusAdaptor::IsOnDock(const QString &desktopFile)
|
|
{
|
|
return TaskManager::instance()->isOnDock(desktopFile);
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::MoveEntry(int index, int newIndex)
|
|
{
|
|
TaskManager::instance()->moveEntry(index, newIndex);
|
|
}
|
|
|
|
QString DockDaemonDBusAdaptor::QueryWindowIdentifyMethod(uint win)
|
|
{
|
|
return TaskManager::instance()->queryWindowIdentifyMethod(win);
|
|
}
|
|
|
|
QStringList DockDaemonDBusAdaptor::GetDockedAppsDesktopFiles()
|
|
{
|
|
return TaskManager::instance()->getDockedAppsDesktopFiles();
|
|
}
|
|
|
|
QString DockDaemonDBusAdaptor::GetPluginSettings()
|
|
{
|
|
return TaskManager::instance()->getPluginSettings();
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::SetPluginSettings(QString jsonStr)
|
|
{
|
|
TaskManager::instance()->setPluginSettings(jsonStr);
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::MergePluginSettings(QString jsonStr)
|
|
{
|
|
TaskManager::instance()->mergePluginSettings(jsonStr);
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::RemovePluginSettings(QString key1, QStringList key2List)
|
|
{
|
|
TaskManager::instance()->removePluginSettings(key1, key2List);
|
|
}
|
|
|
|
bool DockDaemonDBusAdaptor::RequestDock(const QString &desktopFile, int index)
|
|
{
|
|
return TaskManager::instance()->requestDock(desktopFile, index);
|
|
}
|
|
|
|
bool DockDaemonDBusAdaptor::RequestUndock(const QString &desktopFile)
|
|
{
|
|
return TaskManager::instance()->requestUndock(desktopFile);
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::SetShowRecent(bool visible)
|
|
{
|
|
DockSettings::instance()->setShowRecent(visible);
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::SetShowMultiWindow(bool showMultiWindow)
|
|
{
|
|
TaskManager::instance()->setShowMultiWindow(showMultiWindow);
|
|
}
|
|
|
|
void DockDaemonDBusAdaptor::SetFrontendWindowRect(int x, int y, uint width, uint height)
|
|
{
|
|
TaskManager::instance()->setFrontendWindowRect(x, y, width, height);
|
|
}
|