mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
add time plugin context menu
Change-Id: I0b8705c03d00d678b6197aaed66fddddf8b7a79c
This commit is contained in:
parent
091d0e53cf
commit
0757d74f73
Notes:
Deepin Code Review
2016-09-21 10:54:07 +08:00
Verified+1: Anonymous Coward #1000004 Code-Review+2: 石博文 <sbw@sbw.so> Submitted-by: 石博文 <sbw@sbw.so> Submitted-at: Wed, 21 Sep 2016 10:54:07 +0800 Reviewed-on: https://cr.deepin.io/16216 Project: dde/dde-dock Branch: refs/heads/master
@ -18,6 +18,8 @@ DatetimePlugin::DatetimePlugin(QObject *parent)
|
||||
|
||||
m_centeralWidget = new DatetimeWidget;
|
||||
|
||||
connect(m_centeralWidget, &DatetimeWidget::requestContextMenu, [this] {m_proxyInter->requestContextMenu(this, QString());});
|
||||
|
||||
connect(m_refershTimer, &QTimer::timeout, this, &DatetimePlugin::updateCurrentTimeString);
|
||||
}
|
||||
|
||||
@ -66,6 +68,36 @@ const QString DatetimePlugin::itemCommand(const QString &itemKey)
|
||||
return "dde-calendar";
|
||||
}
|
||||
|
||||
const QString DatetimePlugin::itemContextMenu(const QString &itemKey)
|
||||
{
|
||||
Q_UNUSED(itemKey);
|
||||
|
||||
QList<QVariant> items;
|
||||
items.reserve(1);
|
||||
|
||||
QMap<QString, QVariant> open;
|
||||
open["itemId"] = "open";
|
||||
open["itemText"] = tr("Time Settings");
|
||||
open["isActive"] = true;
|
||||
items.push_back(open);
|
||||
|
||||
QMap<QString, QVariant> menu;
|
||||
menu["items"] = items;
|
||||
menu["checkableMenu"] = false;
|
||||
menu["singleCheck"] = false;
|
||||
|
||||
return QJsonDocument::fromVariant(menu).toJson();
|
||||
}
|
||||
|
||||
void DatetimePlugin::invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked)
|
||||
{
|
||||
Q_UNUSED(itemKey)
|
||||
Q_UNUSED(menuId)
|
||||
Q_UNUSED(checked)
|
||||
|
||||
QProcess::startDetached("dde-control-center", QStringList() << "datetime");
|
||||
}
|
||||
|
||||
void DatetimePlugin::updateCurrentTimeString()
|
||||
{
|
||||
const QDateTime currentDateTime = QDateTime::currentDateTime();
|
||||
|
@ -26,6 +26,9 @@ public:
|
||||
QWidget *itemTipsWidget(const QString &itemKey) override;
|
||||
|
||||
const QString itemCommand(const QString &itemKey) override;
|
||||
const QString itemContextMenu(const QString &itemKey) override;
|
||||
|
||||
void invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked);
|
||||
|
||||
private slots:
|
||||
void updateCurrentTimeString();
|
||||
|
@ -105,7 +105,10 @@ void DatetimeWidget::mousePressEvent(QMouseEvent *e)
|
||||
|
||||
const QPoint p(e->pos() - rect().center());
|
||||
if (p.manhattanLength() < std::min(width(), height()) * 0.8 * 0.5)
|
||||
{
|
||||
emit requestContextMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
QWidget::mousePressEvent(e);
|
||||
}
|
||||
|
@ -10,6 +10,9 @@ class DatetimeWidget : public QWidget
|
||||
public:
|
||||
explicit DatetimeWidget(QWidget *parent = 0);
|
||||
|
||||
signals:
|
||||
void requestContextMenu() const;
|
||||
|
||||
private:
|
||||
QSize sizeHint() const;
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
|
Loading…
x
Reference in New Issue
Block a user