Add shadow effects

Change-Id: I250d8e4ea11fb4636d54111505574466e847a0f8
This commit is contained in:
石博文 2017-03-21 15:40:52 +08:00 committed by Deepin Code Review
parent 81b874bf28
commit 9377aca219
Notes: Deepin Code Review 2017-03-24 16:28:15 +08:00
Verified+1: Anonymous Coward #1000004
Code-Review+2: 石博文 <sbw@sbw.so>
Submitted-by: 石博文 <sbw@sbw.so>
Submitted-at: Fri, 24 Mar 2017 16:28:15 +0800
Reviewed-on: https://cr.deepin.io/21621
Project: dde/dde-dock
Branch: refs/heads/master
3 changed files with 34 additions and 3 deletions

View File

@ -22,9 +22,9 @@ DockItem::DockItem(QWidget *parent)
if (!PopupWindow.get())
{
DockPopupWindow *arrowRectangle = new DockPopupWindow(nullptr);
arrowRectangle->setShadowBlurRadius(0);
// arrowRectangle->setShadowBlurRadius(0);
// arrowRectangle->setBorderWidth(0);
arrowRectangle->setShadowDistance(0);
// arrowRectangle->setShadowDistance(0);
arrowRectangle->setShadowYOffset(0);
arrowRectangle->setShadowXOffset(0);
arrowRectangle->setArrowWidth(18);

View File

@ -5,6 +5,7 @@
#include <QResizeEvent>
#include <QScreen>
#include <QGuiApplication>
#include <DPlatformWindowHandle>
MainWindow::MainWindow(QWidget *parent)
: QWidget(parent),
@ -12,6 +13,9 @@ MainWindow::MainWindow(QWidget *parent)
m_updatePanelVisible(true),
m_mainPanel(new MainPanel(this)),
// m_platformWindowHandle(this),
m_positionUpdateTimer(new QTimer(this)),
m_expandDelayTimer(new QTimer(this)),
m_sizeChangeAni(new QPropertyAnimation(this, "size")),
@ -25,6 +29,11 @@ MainWindow::MainWindow(QWidget *parent)
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus);
setAttribute(Qt::WA_TranslucentBackground);
// m_platformWindowHandle.setEnableBlurWindow(true);
// m_platformWindowHandle.setTranslucentBackground(true);
// m_platformWindowHandle.setWindowRadius(0);
// m_platformWindowHandle.setBorderWidth(0);
m_settings = new DockSettings(this);
m_xcbMisc->set_window_type(winId(), XcbMisc::Dock);
@ -35,6 +44,7 @@ MainWindow::MainWindow(QWidget *parent)
updatePanelVisible();
connect(m_mainPanel, &MainPanel::geometryChanged, this, &MainWindow::panelGeometryChanged);
// connect(&m_platformWindowHandle, &DPlatformWindowHandle::frameMarginsChanged, this, &MainWindow::adjustShadowMask);
}
MainWindow::~MainWindow()
@ -57,6 +67,8 @@ void MainWindow::moveEvent(QMoveEvent* e)
void MainWindow::resizeEvent(QResizeEvent *e)
{
QWidget::resizeEvent(e);
adjustShadowMask();
}
void MainWindow::mousePressEvent(QMouseEvent *e)
@ -465,3 +477,15 @@ void MainWindow::updatePanelVisible()
return expand();
}
void MainWindow::adjustShadowMask()
{
// qDebug() << m_platformWindowHandle.frameMargins();
// QRect r = rect();
// r.moveTop(m_platformWindowHandle.frameMargins().top());
// r.moveLeft(-60);
// r.setHeight(r.height() + m_platformWindowHandle.frameMargins().bottom());
// r.setWidth(r.width() + m_platformWindowHandle.frameMargins().right() + m_platformWindowHandle.frameMargins().left());
// m_platformWindowHandle.setFrameMask(QRegion(r));
}

View File

@ -3,12 +3,15 @@
#include "xcb/xcb_misc.h"
#include "dbus/dbusdisplay.h"
#include "dbus/dbusdockadaptors.h"
#include "util/docksettings.h"
#include <QWidget>
#include <QTimer>
#include <QRect>
#include "dbus/dbusdockadaptors.h"
#include <DPlatformWindowHandle>
class MainPanel;
class DBusDockAdaptors;
class MainWindow : public QWidget
@ -48,10 +51,14 @@ private slots:
void resetPanelEnvironment(const bool visible);
void updatePanelVisible();
void adjustShadowMask();
private:
bool m_updatePanelVisible;
MainPanel *m_mainPanel;
// DPlatformWindowHandle m_platformWindowHandle;
QTimer *m_positionUpdateTimer;
QTimer *m_expandDelayTimer;
QPropertyAnimation *m_sizeChangeAni;