mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +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;
|
m_centeralWidget = new DatetimeWidget;
|
||||||
|
|
||||||
|
connect(m_centeralWidget, &DatetimeWidget::requestContextMenu, [this] {m_proxyInter->requestContextMenu(this, QString());});
|
||||||
|
|
||||||
connect(m_refershTimer, &QTimer::timeout, this, &DatetimePlugin::updateCurrentTimeString);
|
connect(m_refershTimer, &QTimer::timeout, this, &DatetimePlugin::updateCurrentTimeString);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,6 +68,36 @@ const QString DatetimePlugin::itemCommand(const QString &itemKey)
|
|||||||
return "dde-calendar";
|
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()
|
void DatetimePlugin::updateCurrentTimeString()
|
||||||
{
|
{
|
||||||
const QDateTime currentDateTime = QDateTime::currentDateTime();
|
const QDateTime currentDateTime = QDateTime::currentDateTime();
|
||||||
|
@ -26,6 +26,9 @@ public:
|
|||||||
QWidget *itemTipsWidget(const QString &itemKey) override;
|
QWidget *itemTipsWidget(const QString &itemKey) override;
|
||||||
|
|
||||||
const QString itemCommand(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:
|
private slots:
|
||||||
void updateCurrentTimeString();
|
void updateCurrentTimeString();
|
||||||
|
@ -105,7 +105,10 @@ void DatetimeWidget::mousePressEvent(QMouseEvent *e)
|
|||||||
|
|
||||||
const QPoint p(e->pos() - rect().center());
|
const QPoint p(e->pos() - rect().center());
|
||||||
if (p.manhattanLength() < std::min(width(), height()) * 0.8 * 0.5)
|
if (p.manhattanLength() < std::min(width(), height()) * 0.8 * 0.5)
|
||||||
|
{
|
||||||
|
emit requestContextMenu();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QWidget::mousePressEvent(e);
|
QWidget::mousePressEvent(e);
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,9 @@ class DatetimeWidget : public QWidget
|
|||||||
public:
|
public:
|
||||||
explicit DatetimeWidget(QWidget *parent = 0);
|
explicit DatetimeWidget(QWidget *parent = 0);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void requestContextMenu() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSize sizeHint() const;
|
QSize sizeHint() const;
|
||||||
void resizeEvent(QResizeEvent *e);
|
void resizeEvent(QResizeEvent *e);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user