mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
feat(TipsWidget): use one qss file
- Using setstylesheet once will create new objects Change-Id: I8126113766f9b1881b2b3825dc1985c6eea9b854
This commit is contained in:
parent
eb9ea570ff
commit
052b6b29d2
Notes:
gerrit
2018-07-04 15:55:24 +08:00
Verified+1: <jenkins@deepin.com> Code-Review+2: 张丁元 <lxz@ilxz.me> Submitted-by: 张丁元 <lxz@ilxz.me> Submitted-at: Wed, 04 Jul 2018 15:55:24 +0800 Reviewed-on: https://cr.deepin.io/36275 Project: dde/dde-dock Branch: refs/heads/master
@ -20,7 +20,7 @@ pkg_check_modules(DFrameworkDBus REQUIRED dframeworkdbus)
|
|||||||
pkg_check_modules(QGSettings REQUIRED gsettings-qt)
|
pkg_check_modules(QGSettings REQUIRED gsettings-qt)
|
||||||
|
|
||||||
# driver-manager
|
# driver-manager
|
||||||
add_executable(${BIN_NAME} ${SRCS} ${INTERFACES} item/resources.qrc)
|
add_executable(${BIN_NAME} ${SRCS} ${INTERFACES} item/resources.qrc frame.qrc)
|
||||||
target_include_directories(${BIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS}
|
target_include_directories(${BIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS}
|
||||||
${XCB_EWMH_INCLUDE_DIRS}
|
${XCB_EWMH_INCLUDE_DIRS}
|
||||||
${DFrameworkDBus_INCLUDE_DIRS}
|
${DFrameworkDBus_INCLUDE_DIRS}
|
||||||
|
5
frame/frame.qrc
Normal file
5
frame/frame.qrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/">
|
||||||
|
<file>qss/frame.qss</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
@ -105,7 +105,7 @@ QPoint AppItem::MousePressPos;
|
|||||||
|
|
||||||
AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
|
AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
|
||||||
: DockItem(parent),
|
: DockItem(parent),
|
||||||
m_appNameTips(new QLabel(this)),
|
m_appNameTips(new TipsWidget(this)),
|
||||||
m_appPreviewTips(new PreviewContainer(this)),
|
m_appPreviewTips(new PreviewContainer(this)),
|
||||||
m_itemEntryInter(new DockEntryInter("com.deepin.dde.daemon.Dock", entry.path(), QDBusConnection::sessionBus(), this)),
|
m_itemEntryInter(new DockEntryInter("com.deepin.dde.daemon.Dock", entry.path(), QDBusConnection::sessionBus(), this)),
|
||||||
|
|
||||||
@ -149,11 +149,10 @@ AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
|
|||||||
m_id = m_itemEntryInter->id();
|
m_id = m_itemEntryInter->id();
|
||||||
m_active = m_itemEntryInter->isActive();
|
m_active = m_itemEntryInter->isActive();
|
||||||
|
|
||||||
m_appNameTips->setObjectName(m_itemEntryInter->name());
|
m_appNameTips->setObjectName("AppItemTips");
|
||||||
m_appNameTips->setAccessibleName(m_itemEntryInter->name() + "-tips");
|
m_appNameTips->setAccessibleName(m_itemEntryInter->name() + "-tips");
|
||||||
m_appNameTips->setVisible(false);
|
m_appNameTips->setVisible(false);
|
||||||
m_appNameTips->setStyleSheet("color:white;"
|
m_appNameTips->installEventFilter(this);
|
||||||
"padding:0px 3px;");
|
|
||||||
|
|
||||||
m_updateIconGeometryTimer->setInterval(500);
|
m_updateIconGeometryTimer->setInterval(500);
|
||||||
m_updateIconGeometryTimer->setSingleShot(true);
|
m_updateIconGeometryTimer->setSingleShot(true);
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "dockitem.h"
|
#include "dockitem.h"
|
||||||
#include "components/previewcontainer.h"
|
#include "components/previewcontainer.h"
|
||||||
#include "dbus/dbusclientmanager.h"
|
#include "dbus/dbusclientmanager.h"
|
||||||
|
#include "item/tipswidget.h"
|
||||||
|
|
||||||
#include <QGraphicsView>
|
#include <QGraphicsView>
|
||||||
#include <QGraphicsItem>
|
#include <QGraphicsItem>
|
||||||
@ -57,17 +58,17 @@ signals:
|
|||||||
void requestCancelPreview() const;
|
void requestCancelPreview() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void moveEvent(QMoveEvent *e);
|
void moveEvent(QMoveEvent *e) override;
|
||||||
void paintEvent(QPaintEvent *e);
|
void paintEvent(QPaintEvent *e) override;
|
||||||
void mouseReleaseEvent(QMouseEvent *e);
|
void mouseReleaseEvent(QMouseEvent *e) override;
|
||||||
void mousePressEvent(QMouseEvent *e);
|
void mousePressEvent(QMouseEvent *e) override;
|
||||||
void mouseMoveEvent(QMouseEvent *e);
|
void mouseMoveEvent(QMouseEvent *e) override;
|
||||||
void wheelEvent(QWheelEvent *e);
|
void wheelEvent(QWheelEvent *e) override;
|
||||||
void resizeEvent(QResizeEvent *e);
|
void resizeEvent(QResizeEvent *e) override;
|
||||||
void dragEnterEvent(QDragEnterEvent *e);
|
void dragEnterEvent(QDragEnterEvent *e) override;
|
||||||
void dragMoveEvent(QDragMoveEvent *e);
|
void dragMoveEvent(QDragMoveEvent *e) override;
|
||||||
void dropEvent(QDropEvent *e);
|
void dropEvent(QDropEvent *e) override;
|
||||||
void leaveEvent(QEvent *e);
|
void leaveEvent(QEvent *e) override;
|
||||||
void showEvent(QShowEvent *e) override;
|
void showEvent(QShowEvent *e) override;
|
||||||
|
|
||||||
void showHoverTips();
|
void showHoverTips();
|
||||||
@ -89,7 +90,7 @@ private slots:
|
|||||||
void checkAttentionEffect();
|
void checkAttentionEffect();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QLabel *m_appNameTips;
|
TipsWidget *m_appNameTips;
|
||||||
PreviewContainer *m_appPreviewTips;
|
PreviewContainer *m_appPreviewTips;
|
||||||
DockEntryInter *m_itemEntryInter;
|
DockEntryInter *m_itemEntryInter;
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ AppSnapshot::AppSnapshot(const WId wid, QWidget *parent)
|
|||||||
m_closeBtn->setHoverPic(":/icons/resources/close_round_hover.svg");
|
m_closeBtn->setHoverPic(":/icons/resources/close_round_hover.svg");
|
||||||
m_closeBtn->setPressPic(":/icons/resources/close_round_press.svg");
|
m_closeBtn->setPressPic(":/icons/resources/close_round_press.svg");
|
||||||
m_closeBtn->setVisible(false);
|
m_closeBtn->setVisible(false);
|
||||||
m_title->setStyleSheet("color: white;");
|
m_title->setObjectName("AppSnapshotTitle");
|
||||||
|
|
||||||
QHBoxLayout *centralLayout = new QHBoxLayout;
|
QHBoxLayout *centralLayout = new QHBoxLayout;
|
||||||
centralLayout->addWidget(m_title);
|
centralLayout->addWidget(m_title);
|
||||||
|
@ -32,10 +32,7 @@ ContainerItem::ContainerItem(QWidget *parent)
|
|||||||
m_containerWidget->setVisible(false);
|
m_containerWidget->setVisible(false);
|
||||||
m_popupTips->setText(tr("Click to display hidden icon"));
|
m_popupTips->setText(tr("Click to display hidden icon"));
|
||||||
m_popupTips->setVisible(false);
|
m_popupTips->setVisible(false);
|
||||||
m_popupTips->setStyleSheet("QLabel {"
|
m_popupTips->setObjectName("ContainerItem");
|
||||||
"color: white;"
|
|
||||||
"margin: 2px 4px;"
|
|
||||||
"}");
|
|
||||||
|
|
||||||
setAcceptDrops(true);
|
setAcceptDrops(true);
|
||||||
}
|
}
|
||||||
|
@ -33,14 +33,12 @@ DCORE_USE_NAMESPACE
|
|||||||
LauncherItem::LauncherItem(QWidget *parent)
|
LauncherItem::LauncherItem(QWidget *parent)
|
||||||
: DockItem(parent),
|
: DockItem(parent),
|
||||||
|
|
||||||
m_tips(new QLabel(this))
|
m_tips(new TipsWidget(this))
|
||||||
{
|
{
|
||||||
setAccessibleName("Launcher");
|
setAccessibleName("Launcher");
|
||||||
m_tips->setVisible(false);
|
m_tips->setVisible(false);
|
||||||
m_tips->setObjectName("launcher");
|
m_tips->setObjectName("launcher");
|
||||||
m_tips->setText(tr("Launcher"));
|
m_tips->setText(tr("Launcher"));
|
||||||
m_tips->setStyleSheet("color:white;"
|
|
||||||
"padding:0px 3px;");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LauncherItem::refershIcon()
|
void LauncherItem::refershIcon()
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#define LAUNCHERITEM_H
|
#define LAUNCHERITEM_H
|
||||||
|
|
||||||
#include "dockitem.h"
|
#include "dockitem.h"
|
||||||
|
#include "tipswidget.h"
|
||||||
|
|
||||||
class LauncherItem : public DockItem
|
class LauncherItem : public DockItem
|
||||||
{
|
{
|
||||||
@ -46,7 +47,7 @@ private:
|
|||||||
QPixmap m_smallIcon;
|
QPixmap m_smallIcon;
|
||||||
QPixmap m_largeIcon;
|
QPixmap m_largeIcon;
|
||||||
|
|
||||||
QLabel *m_tips;
|
TipsWidget *m_tips;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LAUNCHERITEM_H
|
#endif // LAUNCHERITEM_H
|
||||||
|
29
frame/item/tipswidget.cpp
Normal file
29
frame/item/tipswidget.cpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#include "tipswidget.h"
|
||||||
|
|
||||||
|
#include <QPainter>
|
||||||
|
|
||||||
|
TipsWidget::TipsWidget(QWidget *parent) : QFrame(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void TipsWidget::setText(const QString &text)
|
||||||
|
{
|
||||||
|
m_text = text;
|
||||||
|
|
||||||
|
setFixedSize(fontMetrics().width(text) + 6, fontMetrics().height());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TipsWidget::paintEvent(QPaintEvent *event)
|
||||||
|
{
|
||||||
|
QFrame::paintEvent(event);
|
||||||
|
|
||||||
|
QPainter painter(this);
|
||||||
|
|
||||||
|
QPen pen(Qt::white);
|
||||||
|
painter.setPen(pen);
|
||||||
|
|
||||||
|
QTextOption option;
|
||||||
|
option.setAlignment(Qt::AlignCenter);
|
||||||
|
painter.drawText(rect(), m_text, option);
|
||||||
|
}
|
21
frame/item/tipswidget.h
Normal file
21
frame/item/tipswidget.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef TIPSWIDGET_H
|
||||||
|
#define TIPSWIDGET_H
|
||||||
|
|
||||||
|
#include <QFrame>
|
||||||
|
|
||||||
|
class TipsWidget : public QFrame
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit TipsWidget(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
void setText(const QString &text);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void paintEvent(QPaintEvent *event) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_text;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // TIPSWIDGET_H
|
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
#include <QDragEnterEvent>
|
#include <QDragEnterEvent>
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
DockItem *MainPanel::DraggingItem = nullptr;
|
DockItem *MainPanel::DraggingItem = nullptr;
|
||||||
PlaceholderItem *MainPanel::RequestDockItem = nullptr;
|
PlaceholderItem *MainPanel::RequestDockItem = nullptr;
|
||||||
@ -49,28 +50,14 @@ MainPanel::MainPanel(QWidget *parent)
|
|||||||
setAcceptDrops(true);
|
setAcceptDrops(true);
|
||||||
setAccessibleName("dock-mainpanel");
|
setAccessibleName("dock-mainpanel");
|
||||||
setObjectName("MainPanel");
|
setObjectName("MainPanel");
|
||||||
setStyleSheet("QWidget #MainPanel {"
|
|
||||||
// "background-color:rgba(10, 10, 10, .6);"
|
QFile qssFile(":/qss/frame.qss");
|
||||||
"}"
|
|
||||||
// "QWidget #MainPanel[displayMode='1'] {"
|
qssFile.open(QFile::ReadOnly);
|
||||||
// "border:none;"
|
if(qssFile.isOpen()) {
|
||||||
// "}"
|
setStyleSheet(qssFile.readAll());
|
||||||
"QWidget #MainPanel[position='0'] {"
|
qssFile.close();
|
||||||
"padding:0 " xstr(PANEL_PADDING) "px;"
|
}
|
||||||
"border-top:none;"
|
|
||||||
"}"
|
|
||||||
"QWidget #MainPanel[position='1'] {"
|
|
||||||
"padding:" xstr(PANEL_PADDING) "px 0;"
|
|
||||||
"border-right:none;"
|
|
||||||
"}"
|
|
||||||
"QWidget #MainPanel[position='2'] {"
|
|
||||||
"padding:0 " xstr(PANEL_PADDING) "px;"
|
|
||||||
"border-bottom:none;"
|
|
||||||
"}"
|
|
||||||
"QWidget #MainPanel[position='3'] {"
|
|
||||||
"padding:" xstr(PANEL_PADDING) "px 0;"
|
|
||||||
"border-left:none;"
|
|
||||||
"}");
|
|
||||||
|
|
||||||
connect(m_itemController, &DockItemController::itemInserted, this, &MainPanel::itemInserted, Qt::DirectConnection);
|
connect(m_itemController, &DockItemController::itemInserted, this, &MainPanel::itemInserted, Qt::DirectConnection);
|
||||||
connect(m_itemController, &DockItemController::itemRemoved, this, &MainPanel::itemRemoved, Qt::DirectConnection);
|
connect(m_itemController, &DockItemController::itemRemoved, this, &MainPanel::itemRemoved, Qt::DirectConnection);
|
||||||
|
19
frame/qss/frame.qss
Normal file
19
frame/qss/frame.qss
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#MainPanel[position='0'] {
|
||||||
|
padding: 0 0px;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MainPanel[position='1'] {
|
||||||
|
padding: 0px 0;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MainPanel[position='2'] {
|
||||||
|
padding:0 0px;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#MainPanel[position='3'] {
|
||||||
|
padding: 0px 0;
|
||||||
|
border-left: none;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user