From cc6437046ade53814f106335af4e75af8da5c988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=8D=9A=E6=96=87?= Date: Tue, 21 Jun 2016 10:12:43 +0800 Subject: [PATCH] add settings enum Change-Id: I9d3461dc84d6692c87388183c773d3aba5d9341f --- frame/dbus/dbusdock.h | 18 +++++++++--------- frame/dbus/dbusdockentry.h | 9 +++++---- frame/item/appitem.cpp | 9 +++++---- frame/item/dockitem.cpp | 4 ++-- frame/item/dockitem.h | 6 ++++-- frame/panel/mainpanel.cpp | 10 +++++----- frame/panel/mainpanel.h | 2 +- frame/util/docksettings.cpp | 9 ++++++--- frame/util/docksettings.h | 18 ++++++++++++++---- frame/window/mainwindow.cpp | 10 +++++----- interfaces/constants.h | 37 ++++++++++++++++++++++++++++++++----- 11 files changed, 88 insertions(+), 44 deletions(-) diff --git a/frame/dbus/dbusdock.h b/frame/dbus/dbusdock.h index ac05ac213..528a2f29b 100644 --- a/frame/dbus/dbusdock.h +++ b/frame/dbus/dbusdock.h @@ -59,16 +59,16 @@ public: inline uint activeWindow() const { return qvariant_cast< uint >(property("ActiveWindow")); } - Q_PROPERTY(int DisplayMode READ displayMode WRITE setDisplayMode NOTIFY DisplayModeChanged) - inline int displayMode() const - { return qvariant_cast< int >(property("DisplayMode")); } - inline void setDisplayMode(int value) - { setProperty("DisplayMode", QVariant::fromValue(value)); } - Q_PROPERTY(QList Entries READ entries NOTIFY EntriesChanged) inline QList entries() const { return qvariant_cast< QList >(property("Entries")); } + Q_PROPERTY(int DisplayMode READ displayMode WRITE setDisplayMode NOTIFY DisplayModeChanged) + inline int displayMode() const + { return int(qvariant_cast< int >(property("DisplayMode"))); } + inline void setDisplayMode(int value) + { setProperty("DisplayMode", QVariant::fromValue(int(value))); } + Q_PROPERTY(int HideMode READ hideMode WRITE setHideMode NOTIFY HideModeChanged) inline int hideMode() const { return qvariant_cast< int >(property("HideMode")); } @@ -77,13 +77,13 @@ public: Q_PROPERTY(int HideState READ hideState NOTIFY HideStateChanged) inline int hideState() const - { return qvariant_cast< int >(property("HideState")); } + { return int(qvariant_cast< int >(property("HideState"))); } Q_PROPERTY(int Position READ position WRITE setPosition NOTIFY PositionChanged) inline int position() const - { return qvariant_cast< int >(property("Position")); } + { return int(qvariant_cast< int >(property("Position"))); } inline void setPosition(int value) - { setProperty("Position", QVariant::fromValue(value)); } + { setProperty("Position", QVariant::fromValue(int(value))); } public Q_SLOTS: // METHODS inline QDBusPendingReply<> ActivateWindow(uint in0) diff --git a/frame/dbus/dbusdockentry.h b/frame/dbus/dbusdockentry.h index e1048d898..4272452dc 100644 --- a/frame/dbus/dbusdockentry.h +++ b/frame/dbus/dbusdockentry.h @@ -69,10 +69,6 @@ public: inline QString id() const { return qvariant_cast< QString >(property("Id")); } - Q_PROPERTY(QString Title READ title NOTIFY TitleChanged) - inline QString title() const - { return qvariant_cast< QString >(property("Title")); } - Q_PROPERTY(QString Icon READ icon NOTIFY IconChanged) inline QString icon() const { return qvariant_cast< QString >(property("Icon")); } @@ -88,6 +84,11 @@ public Q_SLOTS: // METHODS return asyncCallWithArgumentList(QStringLiteral("Activate"), argumentList); } + inline QDBusPendingReply<> HandleMenuItem(const QString &item) + { + return asyncCall(QStringLiteral("HandleMenuItem"), item); + } + inline QDBusPendingReply<> RequestDock() { return asyncCall(QStringLiteral("RequestDock")); diff --git a/frame/item/appitem.cpp b/frame/item/appitem.cpp index 634b00ad2..9fb66b28c 100644 --- a/frame/item/appitem.cpp +++ b/frame/item/appitem.cpp @@ -63,8 +63,8 @@ void AppItem::paintEvent(QPaintEvent *e) painter.drawPixmap(rect().center() - m_icon.rect().center(), m_icon); // draw text - painter.setPen(Qt::red); - painter.drawText(rect(), m_itemEntry->title()); +// painter.setPen(Qt::red); +// painter.drawText(rect(), m_itemEntry->title()); } void AppItem::mouseReleaseEvent(QMouseEvent *e) @@ -109,8 +109,9 @@ void AppItem::resizeEvent(QResizeEvent *e) void AppItem::invokedMenuItem(const QString &itemId, const bool checked) { - Q_UNUSED(itemId) - Q_UNUSED(checked) + Q_UNUSED(checked); + + m_itemEntry->HandleMenuItem(itemId); } const QString AppItem::contextMenu() const diff --git a/frame/item/dockitem.cpp b/frame/item/dockitem.cpp index 6c5a11bd6..efc3effa5 100644 --- a/frame/item/dockitem.cpp +++ b/frame/item/dockitem.cpp @@ -8,14 +8,14 @@ DockItem::DockItem(const ItemType type, QWidget *parent) : QWidget(parent), - m_side(DockSide::Top), + m_side(Position::Top), m_type(type), m_menuManagerInter(new DBusMenuManager(this)) { } -void DockItem::setDockSide(const DockSide side) +void DockItem::setDockSide(const Position side) { m_side = side; diff --git a/frame/item/dockitem.h b/frame/item/dockitem.h index c3c5e24e7..f536601eb 100644 --- a/frame/item/dockitem.h +++ b/frame/item/dockitem.h @@ -5,6 +5,8 @@ #include +using namespace Dock; + class DBusMenuManager; class DockItem : public QWidget { @@ -20,7 +22,7 @@ public: public: explicit DockItem(const ItemType type, QWidget *parent = nullptr); - void setDockSide(const DockSide side); + void setDockSide(const Position side); ItemType itemType() const; @@ -36,7 +38,7 @@ protected: virtual const QString contextMenu() const; protected: - DockSide m_side; + Position m_side; ItemType m_type; DBusMenuManager *m_menuManagerInter; diff --git a/frame/panel/mainpanel.cpp b/frame/panel/mainpanel.cpp index 9ea1bd7cd..58b92adb2 100644 --- a/frame/panel/mainpanel.cpp +++ b/frame/panel/mainpanel.cpp @@ -35,14 +35,14 @@ MainPanel::MainPanel(QWidget *parent) setLayout(m_itemLayout); } -void MainPanel::updateDockSide(const DockSide dockSide) +void MainPanel::updateDockSide(const Position dockSide) { switch (dockSide) { - case DockSide::Top: - case DockSide::Bottom: m_itemLayout->setDirection(QBoxLayout::LeftToRight); break; - case DockSide::Left: - case DockSide::Right: m_itemLayout->setDirection(QBoxLayout::TopToBottom); break; + case Position::Top: + case Position::Bottom: m_itemLayout->setDirection(QBoxLayout::LeftToRight); break; + case Position::Left: + case Position::Right: m_itemLayout->setDirection(QBoxLayout::TopToBottom); break; } } diff --git a/frame/panel/mainpanel.h b/frame/panel/mainpanel.h index cda7dccae..5b366d22c 100644 --- a/frame/panel/mainpanel.h +++ b/frame/panel/mainpanel.h @@ -14,7 +14,7 @@ class MainPanel : public QFrame public: explicit MainPanel(QWidget *parent = 0); - void updateDockSide(const DockSide dockSide); + void updateDockSide(const Position dockSide); private: void resizeEvent(QResizeEvent *e); diff --git a/frame/util/docksettings.cpp b/frame/util/docksettings.cpp index 2d79f65a5..31bc8105c 100644 --- a/frame/util/docksettings.cpp +++ b/frame/util/docksettings.cpp @@ -3,13 +3,16 @@ #include DockSettings::DockSettings(QObject *parent) - : QObject(parent) + : QObject(parent), + m_dockInter(new DBusDock(this)), + m_itemController(DockItemController::instance(this)) { + m_position = Dock::Position(m_dockInter->position()); } -DockSide DockSettings::side() const +Position DockSettings::position() const { - return Bottom; + return m_position; } const QSize DockSettings::mainWindowSize() const diff --git a/frame/util/docksettings.h b/frame/util/docksettings.h index 71cec8906..55253c986 100644 --- a/frame/util/docksettings.h +++ b/frame/util/docksettings.h @@ -2,10 +2,14 @@ #define DOCKSETTINGS_H #include "constants.h" +#include "dbus/dbusdock.h" +#include "controller/dockitemcontroller.h" #include #include +using namespace Dock; + class DockSettings : public QObject { Q_OBJECT @@ -13,17 +17,23 @@ class DockSettings : public QObject public: explicit DockSettings(QObject *parent = 0); - DockSide side() const; + Position position() const; const QSize mainWindowSize() const; -public slots: - void updateGeometry(); - signals: void dataChanged() const; +public slots: + void updateGeometry(); + +private slots: + private: + Position m_position; QSize m_mainWindowSize; + + DBusDock *m_dockInter; + DockItemController *m_itemController; }; #endif // DOCKSETTINGS_H diff --git a/frame/window/mainwindow.cpp b/frame/window/mainwindow.cpp index a9ee24ae2..02a6f6009 100644 --- a/frame/window/mainwindow.cpp +++ b/frame/window/mainwindow.cpp @@ -87,7 +87,7 @@ void MainWindow::setStrutPartial() // first, clear old strut partial clearStrutPartial(); - const DockSide side = m_settings->side(); + const Position side = m_settings->position(); const int maxScreenHeight = m_displayInter->screenHeight(); XcbMisc::Orientation orientation; @@ -99,25 +99,25 @@ void MainWindow::setStrutPartial() const QRect r = rect(); switch (side) { - case DockSide::Top: + case Position::Top: orientation = XcbMisc::OrientationTop; strut = r.bottom(); strutStart = r.left(); strutEnd = r.right(); break; - case DockSide::Bottom: + case Position::Bottom: orientation = XcbMisc::OrientationBottom; strut = maxScreenHeight - p.y(); strutStart = r.left(); strutEnd = r.right(); break; - case DockSide::Left: + case Position::Left: orientation = XcbMisc::OrientationLeft; strut = r.width(); strutStart = r.top(); strutEnd = r.bottom(); break; - case DockSide::Right: + case Position::Right: orientation = XcbMisc::OrientationRight; strut = r.width(); strutStart = r.top(); diff --git a/interfaces/constants.h b/interfaces/constants.h index a1b812837..d15503362 100644 --- a/interfaces/constants.h +++ b/interfaces/constants.h @@ -1,11 +1,38 @@ #ifndef CONSTANTS_H #define CONSTANTS_H -enum DockSide { - Top, - Bottom, - Left, - Right, +namespace Dock { + +enum DisplayMode +{ + Fashion = 0, + Efficient = 1, + // deprecreated +// Classic = 2, }; +enum HideMode +{ + KeepShowing = 0, + KeepHidden = 1, + SmartHide = 3, +}; + +enum Position +{ + Top = 0, + Right = 1, + Bottom = 2, + Left = 3, +}; + +enum HideState +{ + Unknown = 0, + Show = 1, + Hide = 2, +}; + +} + #endif // CONSTANTS_H