mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
add active state
Change-Id: Id2f96995b4ed8143ae5fbb639daeecfd8b0b4ce7
This commit is contained in:
parent
3e39f5f7c8
commit
687336c4b8
@ -2,11 +2,23 @@
|
|||||||
|
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
|
||||||
|
#define APP_STATUS_KEY "app-status"
|
||||||
|
#define APP_ICON_KEY "icon"
|
||||||
|
#define APP_MENU_KEY "menu"
|
||||||
|
#define APP_XIDS_KEY "app-xids"
|
||||||
|
|
||||||
|
#define APP_ACTIVE_STATUS "active"
|
||||||
|
#define APP_NORMAL_STATUS "normal"
|
||||||
|
|
||||||
AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
|
AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
|
||||||
: DockItem(App, parent),
|
: DockItem(App, parent),
|
||||||
m_itemEntry(new DBusDockEntry(entry.path(), this))
|
m_itemEntry(new DBusDockEntry(entry.path(), this))
|
||||||
{
|
{
|
||||||
qDebug() << m_itemEntry->data();
|
qDebug() << m_itemEntry->data();
|
||||||
|
|
||||||
|
m_data = m_itemEntry->data();
|
||||||
|
|
||||||
|
connect(m_itemEntry, static_cast<void (DBusDockEntry::*)(const QString&, const QString&)>(&DBusDockEntry::DataChanged), this, &AppItem::entryDataChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AppItem::paintEvent(QPaintEvent *e)
|
void AppItem::paintEvent(QPaintEvent *e)
|
||||||
@ -22,7 +34,37 @@ void AppItem::paintEvent(QPaintEvent *e)
|
|||||||
iconRect.moveTopLeft(itemRect.center() - iconRect.center());
|
iconRect.moveTopLeft(itemRect.center() - iconRect.center());
|
||||||
|
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
painter.fillRect(rect(), Qt::cyan);
|
|
||||||
|
// draw active background
|
||||||
|
if (m_data[APP_STATUS_KEY] == APP_ACTIVE_STATUS)
|
||||||
|
{
|
||||||
|
painter.fillRect(rect(), Qt::cyan);
|
||||||
|
} else {
|
||||||
|
painter.fillRect(rect(), Qt::gray);
|
||||||
|
}
|
||||||
|
|
||||||
|
// draw icon
|
||||||
painter.fillRect(iconRect, Qt::yellow);
|
painter.fillRect(iconRect, Qt::yellow);
|
||||||
|
|
||||||
|
// draw text
|
||||||
painter.drawText(rect(), m_itemEntry->id());
|
painter.drawText(rect(), m_itemEntry->id());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AppItem::mouseReleaseEvent(QMouseEvent *e)
|
||||||
|
{
|
||||||
|
Q_UNUSED(e);
|
||||||
|
|
||||||
|
// TODO: dbus signature changed
|
||||||
|
m_itemEntry->Activate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AppItem::entryDataChanged(const QString &key, const QString &value)
|
||||||
|
{
|
||||||
|
// update data
|
||||||
|
m_data[key] = value;
|
||||||
|
|
||||||
|
qDebug() << m_data;
|
||||||
|
|
||||||
|
if (key == APP_STATUS_KEY)
|
||||||
|
return update();
|
||||||
|
}
|
||||||
|
@ -13,9 +13,15 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void paintEvent(QPaintEvent *e);
|
void paintEvent(QPaintEvent *e);
|
||||||
|
void mouseReleaseEvent(QMouseEvent *e);
|
||||||
|
|
||||||
|
void entryDataChanged(const QString &key, const QString &value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DBusDockEntry *m_itemEntry;
|
DBusDockEntry *m_itemEntry;
|
||||||
|
|
||||||
|
QMap<QString, QString> m_data;
|
||||||
|
// QMap<uint, QString> m_windows;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // APPITEM_H
|
#endif // APPITEM_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user