add dock state setting

Change-Id: I0c186b29d7a97c1edd308908f82e42faf5413a64
This commit is contained in:
石博文 2016-06-27 16:36:51 +08:00 committed by Hualet Wang
parent 1351a8c135
commit 218ad40609
4 changed files with 18 additions and 11 deletions

View File

@ -2,12 +2,13 @@
#include "item/appitem.h"
#include <QDebug>
#include <QX11Info>
#define ICON_SIZE_LARGE 48
#define ICON_SIZE_MEDIUM 36
#define ICON_SIZE_SMALL 24
DockSettings::DockSettings(QObject *parent)
DockSettings::DockSettings(QWidget *parent)
: QObject(parent),
m_settingsMenu(this),
@ -28,9 +29,11 @@ DockSettings::DockSettings(QObject *parent)
m_dockInter(new DBusDock(this)),
m_itemController(DockItemController::instance(this))
{
m_dockInter->SetFrontendWindow(parent->winId());
m_primaryRect = m_displayInter->primaryRect();
m_position = Dock::Position(m_dockInter->position());
m_displayMode = Dock::DisplayMode(m_dockInter->displayMode());
m_hideMode = Dock::HideMode(m_dockInter->hideMode());
m_iconSize = m_dockInter->iconSize();
AppItem::setIconBaseSize(m_iconSize);
DockItem::setDockPosition(m_position);
@ -88,6 +91,7 @@ DockSettings::DockSettings(QObject *parent)
connect(m_dockInter, &DBusDock::PositionChanged, this, &DockSettings::positionChanged);
connect(m_dockInter, &DBusDock::IconSizeChanged, this, &DockSettings::iconSizeChanged);
connect(m_dockInter, &DBusDock::DisplayModeChanged, this, &DockSettings::displayModeChanged);
connect(m_dockInter, &DBusDock::HideModeChanged, this, &DockSettings::hideModeChanged);
connect(m_itemController, &DockItemController::itemInserted, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
connect(m_itemController, &DockItemController::itemRemoved, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
@ -208,6 +212,11 @@ void DockSettings::displayModeChanged()
emit dataChanged();
}
void DockSettings::hideModeChanged()
{
m_hideMode = Dock::HideMode(m_dockInter->hideMode());
}
void DockSettings::dockItemCountChanged()
{
if (m_displayMode == Dock::Efficient)

View File

@ -22,7 +22,7 @@ class DockSettings : public QObject
Q_OBJECT
public:
explicit DockSettings(QObject *parent = 0);
explicit DockSettings(QWidget *parent = 0);
DisplayMode displayMode() const;
Position position() const;
@ -44,6 +44,7 @@ private slots:
void positionChanged();
void iconSizeChanged();
void displayModeChanged();
void hideModeChanged();
void dockItemCountChanged();

View File

@ -7,18 +7,15 @@
MainWindow::MainWindow(QWidget *parent)
: QWidget(parent),
m_mainPanel(new MainPanel(this)),
m_settings(new DockSettings(this)),
m_xcbMisc(XcbMisc::instance()),
m_positionUpdateTimer(new QTimer(this)),
m_sizeChangeAni(new QPropertyAnimation(this, "size")),
m_posChangeAni(new QPropertyAnimation(this, "pos"))
m_posChangeAni(new QPropertyAnimation(this, "pos")),
m_xcbMisc(XcbMisc::instance())
{
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus);
setAttribute(Qt::WA_TranslucentBackground);
m_settings = new DockSettings(this);
m_xcbMisc->set_window_type(winId(), XcbMisc::Dock);
initComponents();

View File

@ -35,12 +35,12 @@ private slots:
private:
MainPanel *m_mainPanel;
DockSettings *m_settings;
XcbMisc *m_xcbMisc;
QTimer *m_positionUpdateTimer;
QPropertyAnimation *m_sizeChangeAni;
QPropertyAnimation *m_posChangeAni;
XcbMisc *m_xcbMisc;
DockSettings *m_settings;
};
#endif // MAINWINDOW_H