mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
add new preview container
Change-Id: I917776244ee98fced0cdbaa908d7da3653068007
This commit is contained in:
parent
3cd05fb290
commit
8022e96d40
Notes:
Deepin Code Review
2017-05-22 14:29:43 +08:00
Verified+1: Anonymous Coward #1000004 Code-Review+2: 石博文 <sbw@sbw.so> Submitted-by: 石博文 <sbw@sbw.so> Submitted-at: Mon, 22 May 2017 14:29:41 +0800 Reviewed-on: https://cr.deepin.io/23311 Project: dde/dde-dock Branch: refs/heads/master
@ -39,7 +39,8 @@ SOURCES += main.cpp \
|
||||
item/components/containerwidget.cpp \
|
||||
dbus/dbusdockadaptors.cpp \
|
||||
item/components/previewcontainer.cpp \
|
||||
item/components/previewwidget.cpp
|
||||
item/components/previewwidget.cpp \
|
||||
item/components/_previewcontainer.cpp
|
||||
|
||||
HEADERS += \
|
||||
window/mainwindow.h \
|
||||
@ -69,7 +70,8 @@ HEADERS += \
|
||||
item/components/containerwidget.h \
|
||||
dbus/dbusdockadaptors.h \
|
||||
item/components/previewcontainer.h \
|
||||
item/components/previewwidget.h
|
||||
item/components/previewwidget.h \
|
||||
item/components/_previewcontainer.h
|
||||
|
||||
dbus_service.files += com.deepin.dde.Dock.service
|
||||
dbus_service.path = /usr/share/dbus-1/services
|
||||
|
@ -23,7 +23,11 @@ QPoint AppItem::MousePressPos;
|
||||
AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
|
||||
: DockItem(parent),
|
||||
m_appNameTips(new QLabel(this)),
|
||||
#ifdef QT_DEBUG
|
||||
m_appPreviewTips(new _PreviewContainer(this)),
|
||||
#else
|
||||
m_appPreviewTips(new PreviewContainer(this)),
|
||||
#endif
|
||||
m_itemEntry(new DBusDockEntry(entry.path(), this)),
|
||||
|
||||
m_itemView(new QGraphicsView(this)),
|
||||
@ -77,10 +81,17 @@ AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
|
||||
|
||||
connect(m_updateIconGeometryTimer, &QTimer::timeout, this, &AppItem::updateWindowIconGeometries, Qt::QueuedConnection);
|
||||
|
||||
#ifdef QT_DEBUG
|
||||
connect(m_appPreviewTips, &_PreviewContainer::requestActivateWindow, this, &AppItem::requestActivateWindow, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &_PreviewContainer::requestPreviewWindow, this, &AppItem::requestPreviewWindow, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &_PreviewContainer::requestCancelPreview, this, &AppItem::requestCancelPreview, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &_PreviewContainer::requestHidePreview, this, &AppItem::hidePopup, Qt::QueuedConnection);
|
||||
#else
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestActivateWindow, this, &AppItem::requestActivateWindow, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestPreviewWindow, this, &AppItem::requestPreviewWindow, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCancelPreview, this, &AppItem::requestCancelPreview, Qt::QueuedConnection);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestHidePreview, this, &AppItem::hidePopup, Qt::QueuedConnection);
|
||||
#endif
|
||||
|
||||
updateTitle();
|
||||
refershIcon();
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include "dockitem.h"
|
||||
#include "components/previewcontainer.h"
|
||||
#include "components/_previewcontainer.h"
|
||||
#include "dbus/dbusdockentry.h"
|
||||
#include "dbus/dbusclientmanager.h"
|
||||
|
||||
@ -57,7 +58,11 @@ private slots:
|
||||
|
||||
private:
|
||||
QLabel *m_appNameTips;
|
||||
#ifdef QT_DEBUG
|
||||
_PreviewContainer *m_appPreviewTips;
|
||||
#else
|
||||
PreviewContainer *m_appPreviewTips;
|
||||
#endif
|
||||
DBusDockEntry *m_itemEntry;
|
||||
|
||||
QGraphicsView *m_itemView;
|
||||
|
26
frame/item/components/_previewcontainer.cpp
Normal file
26
frame/item/components/_previewcontainer.cpp
Normal file
@ -0,0 +1,26 @@
|
||||
#include "_previewcontainer.h"
|
||||
|
||||
_PreviewContainer::_PreviewContainer(QWidget *parent)
|
||||
: QWidget(parent),
|
||||
|
||||
m_wmHelper(DWindowManagerHelper::instance())
|
||||
{
|
||||
m_windowListLayout = new QVBoxLayout;
|
||||
m_windowListLayout->setSpacing(0);
|
||||
m_windowListLayout->setMargin(0);
|
||||
|
||||
setLayout(m_windowListLayout);
|
||||
}
|
||||
|
||||
void _PreviewContainer::setWindowInfos(const WindowDict &infos)
|
||||
{
|
||||
qDebug() << infos;
|
||||
}
|
||||
|
||||
void _PreviewContainer::updateLayoutDirection(const Dock::Position dockPos)
|
||||
{
|
||||
if (m_wmHelper->hasComposite() && (dockPos == Dock::Top || dockPos == Dock::Bottom))
|
||||
m_windowListLayout->setDirection(QBoxLayout::LeftToRight);
|
||||
else
|
||||
m_windowListLayout->setDirection(QBoxLayout::TopToBottom);
|
||||
}
|
42
frame/item/components/_previewcontainer.h
Normal file
42
frame/item/components/_previewcontainer.h
Normal file
@ -0,0 +1,42 @@
|
||||
#ifndef _PREVIEWCONTAINER_H
|
||||
#define _PREVIEWCONTAINER_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QBoxLayout>
|
||||
|
||||
#include "dbus/dbusdockentry.h"
|
||||
#include "constants.h"
|
||||
|
||||
#include <DWindowManagerHelper>
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
class _PreviewContainer : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit _PreviewContainer(QWidget *parent = 0);
|
||||
|
||||
signals:
|
||||
void requestActivateWindow(const WId wid) const;
|
||||
void requestPreviewWindow(const WId wid) const;
|
||||
void requestCancelPreview() const;
|
||||
void requestHidePreview() const;
|
||||
|
||||
public:
|
||||
void setWindowInfos(const WindowDict &infos);
|
||||
|
||||
public slots:
|
||||
void updateLayoutDirection(const Dock::Position dockPos);
|
||||
|
||||
private:
|
||||
QMap<WId, QWidget *> m_windows;
|
||||
|
||||
DWindowManagerHelper *m_wmHelper;
|
||||
|
||||
QBoxLayout *m_windowListLayout;
|
||||
|
||||
};
|
||||
|
||||
#endif // _PREVIEWCONTAINER_H
|
Loading…
x
Reference in New Issue
Block a user