mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +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)
|
||||
|
||||
# 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}
|
||||
${XCB_EWMH_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)
|
||||
: DockItem(parent),
|
||||
m_appNameTips(new QLabel(this)),
|
||||
m_appNameTips(new TipsWidget(this)),
|
||||
m_appPreviewTips(new PreviewContainer(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_active = m_itemEntryInter->isActive();
|
||||
|
||||
m_appNameTips->setObjectName(m_itemEntryInter->name());
|
||||
m_appNameTips->setObjectName("AppItemTips");
|
||||
m_appNameTips->setAccessibleName(m_itemEntryInter->name() + "-tips");
|
||||
m_appNameTips->setVisible(false);
|
||||
m_appNameTips->setStyleSheet("color:white;"
|
||||
"padding:0px 3px;");
|
||||
m_appNameTips->installEventFilter(this);
|
||||
|
||||
m_updateIconGeometryTimer->setInterval(500);
|
||||
m_updateIconGeometryTimer->setSingleShot(true);
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "dockitem.h"
|
||||
#include "components/previewcontainer.h"
|
||||
#include "dbus/dbusclientmanager.h"
|
||||
#include "item/tipswidget.h"
|
||||
|
||||
#include <QGraphicsView>
|
||||
#include <QGraphicsItem>
|
||||
@ -57,17 +58,17 @@ signals:
|
||||
void requestCancelPreview() const;
|
||||
|
||||
private:
|
||||
void moveEvent(QMoveEvent *e);
|
||||
void paintEvent(QPaintEvent *e);
|
||||
void mouseReleaseEvent(QMouseEvent *e);
|
||||
void mousePressEvent(QMouseEvent *e);
|
||||
void mouseMoveEvent(QMouseEvent *e);
|
||||
void wheelEvent(QWheelEvent *e);
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
void dragEnterEvent(QDragEnterEvent *e);
|
||||
void dragMoveEvent(QDragMoveEvent *e);
|
||||
void dropEvent(QDropEvent *e);
|
||||
void leaveEvent(QEvent *e);
|
||||
void moveEvent(QMoveEvent *e) override;
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
void mouseReleaseEvent(QMouseEvent *e) override;
|
||||
void mousePressEvent(QMouseEvent *e) override;
|
||||
void mouseMoveEvent(QMouseEvent *e) override;
|
||||
void wheelEvent(QWheelEvent *e) override;
|
||||
void resizeEvent(QResizeEvent *e) override;
|
||||
void dragEnterEvent(QDragEnterEvent *e) override;
|
||||
void dragMoveEvent(QDragMoveEvent *e) override;
|
||||
void dropEvent(QDropEvent *e) override;
|
||||
void leaveEvent(QEvent *e) override;
|
||||
void showEvent(QShowEvent *e) override;
|
||||
|
||||
void showHoverTips();
|
||||
@ -89,7 +90,7 @@ private slots:
|
||||
void checkAttentionEffect();
|
||||
|
||||
private:
|
||||
QLabel *m_appNameTips;
|
||||
TipsWidget *m_appNameTips;
|
||||
PreviewContainer *m_appPreviewTips;
|
||||
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->setPressPic(":/icons/resources/close_round_press.svg");
|
||||
m_closeBtn->setVisible(false);
|
||||
m_title->setStyleSheet("color: white;");
|
||||
m_title->setObjectName("AppSnapshotTitle");
|
||||
|
||||
QHBoxLayout *centralLayout = new QHBoxLayout;
|
||||
centralLayout->addWidget(m_title);
|
||||
|
@ -32,10 +32,7 @@ ContainerItem::ContainerItem(QWidget *parent)
|
||||
m_containerWidget->setVisible(false);
|
||||
m_popupTips->setText(tr("Click to display hidden icon"));
|
||||
m_popupTips->setVisible(false);
|
||||
m_popupTips->setStyleSheet("QLabel {"
|
||||
"color: white;"
|
||||
"margin: 2px 4px;"
|
||||
"}");
|
||||
m_popupTips->setObjectName("ContainerItem");
|
||||
|
||||
setAcceptDrops(true);
|
||||
}
|
||||
|
@ -33,14 +33,12 @@ DCORE_USE_NAMESPACE
|
||||
LauncherItem::LauncherItem(QWidget *parent)
|
||||
: DockItem(parent),
|
||||
|
||||
m_tips(new QLabel(this))
|
||||
m_tips(new TipsWidget(this))
|
||||
{
|
||||
setAccessibleName("Launcher");
|
||||
m_tips->setVisible(false);
|
||||
m_tips->setObjectName("launcher");
|
||||
m_tips->setText(tr("Launcher"));
|
||||
m_tips->setStyleSheet("color:white;"
|
||||
"padding:0px 3px;");
|
||||
}
|
||||
|
||||
void LauncherItem::refershIcon()
|
||||
|
@ -23,6 +23,7 @@
|
||||
#define LAUNCHERITEM_H
|
||||
|
||||
#include "dockitem.h"
|
||||
#include "tipswidget.h"
|
||||
|
||||
class LauncherItem : public DockItem
|
||||
{
|
||||
@ -46,7 +47,7 @@ private:
|
||||
QPixmap m_smallIcon;
|
||||
QPixmap m_largeIcon;
|
||||
|
||||
QLabel *m_tips;
|
||||
TipsWidget *m_tips;
|
||||
};
|
||||
|
||||
#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 <QDragEnterEvent>
|
||||
#include <QApplication>
|
||||
|
||||
DockItem *MainPanel::DraggingItem = nullptr;
|
||||
PlaceholderItem *MainPanel::RequestDockItem = nullptr;
|
||||
@ -49,28 +50,14 @@ MainPanel::MainPanel(QWidget *parent)
|
||||
setAcceptDrops(true);
|
||||
setAccessibleName("dock-mainpanel");
|
||||
setObjectName("MainPanel");
|
||||
setStyleSheet("QWidget #MainPanel {"
|
||||
// "background-color:rgba(10, 10, 10, .6);"
|
||||
"}"
|
||||
// "QWidget #MainPanel[displayMode='1'] {"
|
||||
// "border:none;"
|
||||
// "}"
|
||||
"QWidget #MainPanel[position='0'] {"
|
||||
"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;"
|
||||
"}");
|
||||
|
||||
QFile qssFile(":/qss/frame.qss");
|
||||
|
||||
qssFile.open(QFile::ReadOnly);
|
||||
if(qssFile.isOpen()) {
|
||||
setStyleSheet(qssFile.readAll());
|
||||
qssFile.close();
|
||||
}
|
||||
|
||||
connect(m_itemController, &DockItemController::itemInserted, this, &MainPanel::itemInserted, 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