mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
add menu
Change-Id: I03343f5259c765d0437b2d4f193c35058d700787
This commit is contained in:
parent
aa56197885
commit
ca52556f5b
@ -77,6 +77,10 @@ public:
|
|||||||
inline QString icon() const
|
inline QString icon() const
|
||||||
{ return qvariant_cast< QString >(property("Icon")); }
|
{ return qvariant_cast< QString >(property("Icon")); }
|
||||||
|
|
||||||
|
Q_PROPERTY(QString Menu READ menu NOTIFY MenuChanged)
|
||||||
|
inline QString menu() const
|
||||||
|
{ return qvariant_cast< QString >(property("Menu")); }
|
||||||
|
|
||||||
public Q_SLOTS: // METHODS
|
public Q_SLOTS: // METHODS
|
||||||
inline QDBusPendingReply<> Activate()
|
inline QDBusPendingReply<> Activate()
|
||||||
{
|
{
|
||||||
@ -99,6 +103,7 @@ void DataChanged();
|
|||||||
void IdChanged();
|
void IdChanged();
|
||||||
void TitleChanged();
|
void TitleChanged();
|
||||||
void IconChanged();
|
void IconChanged();
|
||||||
|
void MenuChanged();
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace dde {
|
namespace dde {
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* This file was generated by qdbusxml2cpp version 0.8
|
* This file was generated by qdbusxml2cpp version 0.8
|
||||||
* Command line was: qdbusxml2cpp -c DBusMenuManager -p dbusmenumanager com.deepin.menu.Manager.xml
|
* Command line was: qdbusxml2cpp -c DBusMenu -p dbusmenu com.deepin.menu.Menu.xml
|
||||||
*
|
*
|
||||||
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
|
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
|
||||||
*
|
*
|
||||||
@ -21,15 +21,15 @@
|
|||||||
#include "dbusmenu.h"
|
#include "dbusmenu.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Implementation of interface class DBusMenuManager
|
* Implementation of interface class DBusMenu
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DBusMenuManager::DBusMenuManager(QObject *parent)
|
DBusMenu::DBusMenu(const QString &path, QObject *parent)
|
||||||
: QDBusAbstractInterface(staticServerPath(), staticInterfacePath(), staticInterfaceName(), QDBusConnection::sessionBus(), parent)
|
: QDBusAbstractInterface(staticServerPath(), path, staticInterfaceName(), QDBusConnection::sessionBus(), parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
DBusMenuManager::~DBusMenuManager()
|
DBusMenu::~DBusMenu()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* This file was generated by qdbusxml2cpp version 0.8
|
* This file was generated by qdbusxml2cpp version 0.8
|
||||||
* Command line was: qdbusxml2cpp -c DBusMenuManager -p dbusmenumanager com.deepin.menu.Manager.xml
|
* Command line was: qdbusxml2cpp -c DBusMenu -p dbusmenu com.deepin.menu.Menu.xml
|
||||||
*
|
*
|
||||||
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
|
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
|
||||||
*
|
*
|
||||||
@ -17,8 +17,8 @@
|
|||||||
* Do not edit! All changes made to it will be lost.
|
* Do not edit! All changes made to it will be lost.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef DBUSMENUMANAGER_H_1436158928
|
#ifndef DBUSMENU_H_1436158836
|
||||||
#define DBUSMENUMANAGER_H_1436158928
|
#define DBUSMENU_H_1436158836
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
#include <QtCore/QObject>
|
||||||
#include <QtCore/QByteArray>
|
#include <QtCore/QByteArray>
|
||||||
@ -30,45 +30,60 @@
|
|||||||
#include <QtDBus/QtDBus>
|
#include <QtDBus/QtDBus>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Proxy class for interface com.deepin.menu.Manager
|
* Proxy class for interface com.deepin.menu.Menu
|
||||||
*/
|
*/
|
||||||
class DBusMenuManager: public QDBusAbstractInterface
|
class DBusMenu: public QDBusAbstractInterface
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
static inline const char *staticServerPath()
|
static inline const char *staticServerPath()
|
||||||
{ return "com.deepin.menu"; }
|
{ return "com.deepin.menu"; }
|
||||||
static inline const char *staticInterfacePath()
|
|
||||||
{ return "/com/deepin/menu"; }
|
|
||||||
static inline const char *staticInterfaceName()
|
static inline const char *staticInterfaceName()
|
||||||
{ return "com.deepin.menu.Manager"; }
|
{ return "com.deepin.menu.Menu"; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit DBusMenuManager(QObject *parent = 0);
|
DBusMenu(const QString &path,QObject *parent = 0);
|
||||||
|
|
||||||
~DBusMenuManager();
|
~DBusMenu();
|
||||||
|
|
||||||
public Q_SLOTS: // METHODS
|
public Q_SLOTS: // METHODS
|
||||||
inline QDBusPendingReply<QDBusObjectPath> RegisterMenu()
|
inline QDBusPendingReply<> SetItemActivity(const QString &itemId, bool isActive)
|
||||||
{
|
{
|
||||||
QList<QVariant> argumentList;
|
QList<QVariant> argumentList;
|
||||||
return asyncCallWithArgumentList(QStringLiteral("RegisterMenu"), argumentList);
|
argumentList << QVariant::fromValue(itemId) << QVariant::fromValue(isActive);
|
||||||
|
return asyncCallWithArgumentList(QStringLiteral("SetItemActivity"), argumentList);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QDBusPendingReply<> UnregisterMenu(const QString &menuObjectPath)
|
inline QDBusPendingReply<> SetItemChecked(const QString &itemId, bool checked)
|
||||||
{
|
{
|
||||||
QList<QVariant> argumentList;
|
QList<QVariant> argumentList;
|
||||||
argumentList << QVariant::fromValue(menuObjectPath);
|
argumentList << QVariant::fromValue(itemId) << QVariant::fromValue(checked);
|
||||||
return asyncCallWithArgumentList(QStringLiteral("UnregisterMenu"), argumentList);
|
return asyncCallWithArgumentList(QStringLiteral("SetItemChecked"), argumentList);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline QDBusPendingReply<> SetItemText(const QString &itemId, const QString &text)
|
||||||
|
{
|
||||||
|
QList<QVariant> argumentList;
|
||||||
|
argumentList << QVariant::fromValue(itemId) << QVariant::fromValue(text);
|
||||||
|
return asyncCallWithArgumentList(QStringLiteral("SetItemText"), argumentList);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline QDBusPendingReply<> ShowMenu(const QString &menuJsonContent)
|
||||||
|
{
|
||||||
|
QList<QVariant> argumentList;
|
||||||
|
argumentList << QVariant::fromValue(menuJsonContent);
|
||||||
|
return asyncCallWithArgumentList(QStringLiteral("ShowMenu"), argumentList);
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_SIGNALS: // SIGNALS
|
Q_SIGNALS: // SIGNALS
|
||||||
|
void ItemInvoked(const QString &itemId, bool checked);
|
||||||
|
void MenuUnregistered();
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace com {
|
namespace com {
|
||||||
namespace deepin {
|
namespace deepin {
|
||||||
namespace menu {
|
namespace menu {
|
||||||
typedef ::DBusMenuManager Manager;
|
typedef ::DBusMenu Menu;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
35
dbus/dbusmenumanager.cpp
Normal file
35
dbus/dbusmenumanager.cpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2015 Deepin Technology Co., Ltd.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
**/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated by qdbusxml2cpp version 0.8
|
||||||
|
* Command line was: qdbusxml2cpp -c DBusMenuManager -p dbusmenumanager com.deepin.menu.Manager.xml
|
||||||
|
*
|
||||||
|
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
|
||||||
|
*
|
||||||
|
* This is an auto-generated file.
|
||||||
|
* This file may have been hand-edited. Look for HAND-EDIT comments
|
||||||
|
* before re-generating it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "dbusmenumanager.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Implementation of interface class DBusMenuManager
|
||||||
|
*/
|
||||||
|
|
||||||
|
DBusMenuManager::DBusMenuManager(QObject *parent)
|
||||||
|
: QDBusAbstractInterface(staticServerPath(), staticInterfacePath(), staticInterfaceName(), QDBusConnection::sessionBus(), parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
DBusMenuManager::~DBusMenuManager()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
75
dbus/dbusmenumanager.h
Normal file
75
dbus/dbusmenumanager.h
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (C) 2015 Deepin Technology Co., Ltd.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
**/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated by qdbusxml2cpp version 0.8
|
||||||
|
* Command line was: qdbusxml2cpp -c DBusMenuManager -p dbusmenumanager com.deepin.menu.Manager.xml
|
||||||
|
*
|
||||||
|
* qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies).
|
||||||
|
*
|
||||||
|
* This is an auto-generated file.
|
||||||
|
* Do not edit! All changes made to it will be lost.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUSMENUMANAGER_H_1436158928
|
||||||
|
#define DBUSMENUMANAGER_H_1436158928
|
||||||
|
|
||||||
|
#include <QtCore/QObject>
|
||||||
|
#include <QtCore/QByteArray>
|
||||||
|
#include <QtCore/QList>
|
||||||
|
#include <QtCore/QMap>
|
||||||
|
#include <QtCore/QString>
|
||||||
|
#include <QtCore/QStringList>
|
||||||
|
#include <QtCore/QVariant>
|
||||||
|
#include <QtDBus/QtDBus>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Proxy class for interface com.deepin.menu.Manager
|
||||||
|
*/
|
||||||
|
class DBusMenuManager: public QDBusAbstractInterface
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
static inline const char *staticServerPath()
|
||||||
|
{ return "com.deepin.menu"; }
|
||||||
|
static inline const char *staticInterfacePath()
|
||||||
|
{ return "/com/deepin/menu"; }
|
||||||
|
static inline const char *staticInterfaceName()
|
||||||
|
{ return "com.deepin.menu.Manager"; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit DBusMenuManager(QObject *parent = 0);
|
||||||
|
|
||||||
|
~DBusMenuManager();
|
||||||
|
|
||||||
|
public Q_SLOTS: // METHODS
|
||||||
|
inline QDBusPendingReply<QDBusObjectPath> RegisterMenu()
|
||||||
|
{
|
||||||
|
QList<QVariant> argumentList;
|
||||||
|
return asyncCallWithArgumentList(QStringLiteral("RegisterMenu"), argumentList);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline QDBusPendingReply<> UnregisterMenu(const QString &menuObjectPath)
|
||||||
|
{
|
||||||
|
QList<QVariant> argumentList;
|
||||||
|
argumentList << QVariant::fromValue(menuObjectPath);
|
||||||
|
return asyncCallWithArgumentList(QStringLiteral("UnregisterMenu"), argumentList);
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_SIGNALS: // SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace com {
|
||||||
|
namespace deepin {
|
||||||
|
namespace menu {
|
||||||
|
typedef ::DBusMenuManager Manager;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
10
dde-dock.pro
10
dde-dock.pro
@ -19,9 +19,10 @@ SOURCES += main.cpp \
|
|||||||
item/placeholderitem.cpp \
|
item/placeholderitem.cpp \
|
||||||
dbus/dbusclientmanager.cpp \
|
dbus/dbusclientmanager.cpp \
|
||||||
dbus/dbusdock.cpp \
|
dbus/dbusdock.cpp \
|
||||||
dbus/dbusmenu.cpp \
|
|
||||||
util/themeappicon.cpp \
|
util/themeappicon.cpp \
|
||||||
item/launcheritem.cpp
|
item/launcheritem.cpp \
|
||||||
|
dbus/dbusmenumanager.cpp \
|
||||||
|
dbus/dbusmenu.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
window/mainwindow.h \
|
window/mainwindow.h \
|
||||||
@ -36,6 +37,7 @@ HEADERS += \
|
|||||||
item/placeholderitem.h \
|
item/placeholderitem.h \
|
||||||
dbus/dbusclientmanager.h \
|
dbus/dbusclientmanager.h \
|
||||||
dbus/dbusdock.h \
|
dbus/dbusdock.h \
|
||||||
dbus/dbusmenu.h \
|
|
||||||
util/themeappicon.h \
|
util/themeappicon.h \
|
||||||
item/launcheritem.h
|
item/launcheritem.h \
|
||||||
|
dbus/dbusmenumanager.h \
|
||||||
|
dbus/dbusmenu.h
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#define APP_DRAG_THRESHOLD 20
|
#define APP_DRAG_THRESHOLD 20
|
||||||
|
|
||||||
|
QPoint AppItem::MousePressPos;
|
||||||
DBusClientManager *AppItem::ClientInter = nullptr;
|
DBusClientManager *AppItem::ClientInter = nullptr;
|
||||||
//uint AppItem::ActiveWindowId = 0;
|
//uint AppItem::ActiveWindowId = 0;
|
||||||
|
|
||||||
@ -80,7 +81,10 @@ void AppItem::mouseReleaseEvent(QMouseEvent *e)
|
|||||||
|
|
||||||
void AppItem::mousePressEvent(QMouseEvent *e)
|
void AppItem::mousePressEvent(QMouseEvent *e)
|
||||||
{
|
{
|
||||||
m_mousePressPos = e->pos();
|
DockItem::mousePressEvent(e);
|
||||||
|
|
||||||
|
if (e->button() == Qt::LeftButton)
|
||||||
|
MousePressPos = e->pos();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AppItem::mouseMoveEvent(QMouseEvent *e)
|
void AppItem::mouseMoveEvent(QMouseEvent *e)
|
||||||
@ -91,7 +95,7 @@ void AppItem::mouseMoveEvent(QMouseEvent *e)
|
|||||||
if (e->buttons() != Qt::LeftButton)
|
if (e->buttons() != Qt::LeftButton)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const QPoint distance = e->pos() - m_mousePressPos;
|
const QPoint distance = e->pos() - MousePressPos;
|
||||||
if (distance.manhattanLength() < APP_DRAG_THRESHOLD)
|
if (distance.manhattanLength() < APP_DRAG_THRESHOLD)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -105,6 +109,17 @@ void AppItem::resizeEvent(QResizeEvent *e)
|
|||||||
updateIcon();
|
updateIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AppItem::invokedMenuItem(const QString &itemId, const bool checked)
|
||||||
|
{
|
||||||
|
Q_UNUSED(itemId)
|
||||||
|
Q_UNUSED(checked)
|
||||||
|
}
|
||||||
|
|
||||||
|
const QString AppItem::contextMenu() const
|
||||||
|
{
|
||||||
|
return m_itemEntry->menu();
|
||||||
|
}
|
||||||
|
|
||||||
void AppItem::startDrag()
|
void AppItem::startDrag()
|
||||||
{
|
{
|
||||||
m_draging = true;
|
m_draging = true;
|
||||||
@ -147,7 +162,7 @@ void AppItem::updateTitle()
|
|||||||
void AppItem::updateIcon()
|
void AppItem::updateIcon()
|
||||||
{
|
{
|
||||||
const QString icon = m_itemEntry->icon();
|
const QString icon = m_itemEntry->icon();
|
||||||
const int iconSize = qMin(width(), height()) * 0.8;
|
const int iconSize = qMin(width(), height()) * 0.6;
|
||||||
|
|
||||||
m_icon = ThemeAppIcon::getIcon(icon, iconSize);
|
m_icon = ThemeAppIcon::getIcon(icon, iconSize);
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,9 @@ private:
|
|||||||
void mouseMoveEvent(QMouseEvent *e);
|
void mouseMoveEvent(QMouseEvent *e);
|
||||||
void resizeEvent(QResizeEvent *e);
|
void resizeEvent(QResizeEvent *e);
|
||||||
|
|
||||||
|
void invokedMenuItem(const QString &itemId, const bool checked);
|
||||||
|
const QString contextMenu() const;
|
||||||
|
|
||||||
void startDrag();
|
void startDrag();
|
||||||
void initClientManager();
|
void initClientManager();
|
||||||
|
|
||||||
@ -37,8 +40,7 @@ private:
|
|||||||
QString m_id;
|
QString m_id;
|
||||||
QPixmap m_icon;
|
QPixmap m_icon;
|
||||||
|
|
||||||
QPoint m_mousePressPos;
|
static QPoint MousePressPos;
|
||||||
|
|
||||||
static DBusClientManager *ClientInter;
|
static DBusClientManager *ClientInter;
|
||||||
// static uint ActiveWindowId;
|
// static uint ActiveWindowId;
|
||||||
};
|
};
|
||||||
|
@ -1,9 +1,16 @@
|
|||||||
|
|
||||||
#include "dockitem.h"
|
#include "dockitem.h"
|
||||||
|
#include "dbus/dbusmenu.h"
|
||||||
|
|
||||||
|
#include <QMouseEvent>
|
||||||
|
#include <QJsonObject>
|
||||||
|
|
||||||
DockItem::DockItem(const ItemType type, QWidget *parent)
|
DockItem::DockItem(const ItemType type, QWidget *parent)
|
||||||
: QWidget(parent),
|
: QWidget(parent),
|
||||||
m_side(DockSettings::Top),
|
m_side(DockSettings::Top),
|
||||||
m_type(type)
|
m_type(type),
|
||||||
|
|
||||||
|
m_menuManagerInter(new DBusMenuManager(this))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,3 +30,51 @@ void DockItem::paintEvent(QPaintEvent *e)
|
|||||||
{
|
{
|
||||||
QWidget::paintEvent(e);
|
QWidget::paintEvent(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DockItem::mousePressEvent(QMouseEvent *e)
|
||||||
|
{
|
||||||
|
if (e->button() == Qt::RightButton)
|
||||||
|
return showContextMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DockItem::showContextMenu()
|
||||||
|
{
|
||||||
|
const QString menuJson = contextMenu();
|
||||||
|
if (menuJson.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
QDBusPendingReply<QDBusObjectPath> result = m_menuManagerInter->RegisterMenu();
|
||||||
|
|
||||||
|
result.waitForFinished();
|
||||||
|
if (result.isError())
|
||||||
|
{
|
||||||
|
qWarning() << result.error();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QPoint p = mapToGlobal(pos());
|
||||||
|
QJsonObject menuObject;
|
||||||
|
menuObject.insert("x", QJsonValue(p.x() + width() / 2));
|
||||||
|
menuObject.insert("y", QJsonValue(p.y()));
|
||||||
|
menuObject.insert("isDockMenu", QJsonValue(true));
|
||||||
|
menuObject.insert("menuJsonContent", QJsonValue(menuJson));
|
||||||
|
|
||||||
|
const QDBusObjectPath path = result.argumentAt(0).value<QDBusObjectPath>();
|
||||||
|
DBusMenu *menuInter = new DBusMenu(path.path(), this);
|
||||||
|
|
||||||
|
connect(menuInter, &DBusMenu::ItemInvoked, this, &DockItem::invokedMenuItem);
|
||||||
|
connect(menuInter, &DBusMenu::MenuUnregistered, menuInter, &DBusMenu::deleteLater, Qt::QueuedConnection);
|
||||||
|
|
||||||
|
menuInter->ShowMenu(QString(QJsonDocument(menuObject).toJson()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void DockItem::invokedMenuItem(const QString &itemId, const bool checked)
|
||||||
|
{
|
||||||
|
Q_UNUSED(itemId)
|
||||||
|
Q_UNUSED(checked)
|
||||||
|
}
|
||||||
|
|
||||||
|
const QString DockItem::contextMenu() const
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
|
|
||||||
#include "util/docksettings.h"
|
#include "util/docksettings.h"
|
||||||
|
#include "dbus/dbusmenumanager.h"
|
||||||
|
|
||||||
class DockItem : public QWidget
|
class DockItem : public QWidget
|
||||||
{
|
{
|
||||||
@ -25,10 +26,17 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *e);
|
void paintEvent(QPaintEvent *e);
|
||||||
|
void mousePressEvent(QMouseEvent *e);
|
||||||
|
|
||||||
|
void showContextMenu();
|
||||||
|
virtual void invokedMenuItem(const QString &itemId, const bool checked);
|
||||||
|
virtual const QString contextMenu() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DockSettings::DockSide m_side;
|
DockSettings::DockSide m_side;
|
||||||
ItemType m_type;
|
ItemType m_type;
|
||||||
|
|
||||||
|
DBusMenuManager *m_menuManagerInter;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DOCKITEM_H
|
#endif // DOCKITEM_H
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
#include <QMouseEvent>
|
||||||
|
|
||||||
LauncherItem::LauncherItem(QWidget *parent)
|
LauncherItem::LauncherItem(QWidget *parent)
|
||||||
: DockItem(DockItem::Launcher, parent)
|
: DockItem(DockItem::Launcher, parent)
|
||||||
@ -26,7 +27,8 @@ void LauncherItem::resizeEvent(QResizeEvent *e)
|
|||||||
|
|
||||||
void LauncherItem::mousePressEvent(QMouseEvent *e)
|
void LauncherItem::mousePressEvent(QMouseEvent *e)
|
||||||
{
|
{
|
||||||
DockItem::mousePressEvent(e);
|
if (e->button() != Qt::LeftButton)
|
||||||
|
return;
|
||||||
|
|
||||||
QProcess *proc = new QProcess;
|
QProcess *proc = new QProcess;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user