mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat(dock): add visualization window
This commit is contained in:
parent
d6339d1183
commit
dc3e3e0b6a
@ -196,14 +196,24 @@ const QRect DockSettings::windowRect(const Position position, const bool hide) c
|
||||
|
||||
QPoint p(0, 0);
|
||||
switch (position) {
|
||||
case Top:
|
||||
p = QPoint(offsetX, 0); break;
|
||||
case Top: {
|
||||
if (m_displayMode == Dock::Efficient)
|
||||
p = QPoint(offsetX, 0);
|
||||
else
|
||||
p = QPoint(offsetX, 10);
|
||||
}
|
||||
break;
|
||||
case Left:
|
||||
p = QPoint(0, offsetY); break;
|
||||
case Right:
|
||||
p = QPoint(primaryRect.width() - size.width(), offsetY); break;
|
||||
case Bottom:
|
||||
p = QPoint(offsetX, primaryRect.height() - size.height()); break;
|
||||
case Bottom: {
|
||||
if (m_displayMode == Dock::Efficient)
|
||||
p = QPoint(offsetX, primaryRect.height() - size.height());
|
||||
else
|
||||
p = QPoint(offsetX, primaryRect.height() - size.height() - 10);
|
||||
}
|
||||
break;
|
||||
default: Q_UNREACHABLE();
|
||||
}
|
||||
|
||||
@ -571,7 +581,7 @@ void DockSettings::calculateWindowConfig()
|
||||
case Top:
|
||||
case Bottom: {
|
||||
m_mainWindowSize.setHeight(defaultHeight + PANEL_BORDER);
|
||||
m_mainWindowSize.setWidth(calcWidth);
|
||||
m_mainWindowSize.setWidth(primaryRect.width() - 20);
|
||||
m_isMaxSize = (calcWidth == maxWidth);
|
||||
break;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ const QPoint scaledPos(const QPoint &rawXPos)
|
||||
}
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QWidget(parent),
|
||||
: DBlurEffectWidget(parent),
|
||||
|
||||
m_launched(false),
|
||||
m_updatePanelVisible(false),
|
||||
@ -320,7 +320,7 @@ void MainWindow::compositeChanged()
|
||||
m_panelShowAni->setDuration(duration);
|
||||
m_panelHideAni->setDuration(duration);
|
||||
|
||||
// m_mainPanel->setComposite(composite);
|
||||
setComposite(composite);
|
||||
|
||||
m_shadowMaskOptimizeTimer->start();
|
||||
m_positionUpdateTimer->start();
|
||||
@ -377,6 +377,7 @@ void MainWindow::initConnections()
|
||||
connect(m_settings, &DockSettings::windowHideModeChanged, m_leaveDelayTimer, static_cast<void (QTimer::*)()>(&QTimer::start));
|
||||
connect(m_settings, &DockSettings::windowVisibleChanged, this, &MainWindow::updatePanelVisible, Qt::QueuedConnection);
|
||||
connect(m_settings, &DockSettings::displayModeChanegd, m_positionUpdateTimer, static_cast<void (QTimer::*)()>(&QTimer::start));
|
||||
connect(&DockSettings::Instance(), &DockSettings::opacityChanged, this, &MainWindow::setMaskAlpha);
|
||||
|
||||
// connect(m_mainPanel, &MainPanelControl::requestRefershWindowVisible, this, &MainWindow::updatePanelVisible, Qt::QueuedConnection);
|
||||
// connect(m_mainPanel, &MainPanelControl::requestWindowAutoHide, m_settings, &DockSettings::setAutoHide);
|
||||
@ -736,7 +737,7 @@ void MainWindow::adjustShadowMask()
|
||||
const bool composite = m_wmHelper->hasComposite();
|
||||
const bool isFasion = m_settings->displayMode() == Fashion;
|
||||
|
||||
m_platformWindowHandle.setWindowRadius(composite && isFasion ? 5 : 0);
|
||||
m_platformWindowHandle.setWindowRadius(composite && isFasion ? 10 : 0);
|
||||
}
|
||||
|
||||
void MainWindow::positionCheck()
|
||||
@ -767,3 +768,20 @@ void MainWindow::onDbusNameOwnerChanged(const QString &name, const QString &oldO
|
||||
m_sniWatcher->RegisterStatusNotifierHost(m_sniHostService);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::setEffectEnabled(const bool enabled)
|
||||
{
|
||||
if (enabled)
|
||||
setMaskColor(DarkColor);
|
||||
else
|
||||
setMaskColor(QColor(55, 63, 71));
|
||||
|
||||
setMaskAlpha(DockSettings::Instance().Opacity());
|
||||
}
|
||||
|
||||
void MainWindow::setComposite(const bool hasComposite)
|
||||
{
|
||||
setEffectEnabled(hasComposite);
|
||||
|
||||
m_sizeChangeAni->setDuration(hasComposite ? 300 : 0);
|
||||
}
|
||||
|
@ -34,17 +34,22 @@
|
||||
|
||||
#include <DPlatformWindowHandle>
|
||||
#include <DWindowManagerHelper>
|
||||
#include <DBlurEffectWidget>
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
class MainPanel;
|
||||
class MainPanelControl;
|
||||
class DBusDockAdaptors;
|
||||
class MainWindow : public QWidget
|
||||
class MainWindow : public DBlurEffectWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = 0);
|
||||
~MainWindow();
|
||||
void setEffectEnabled(const bool enabled);
|
||||
void setComposite(const bool hasComposite);
|
||||
|
||||
friend class MainPanel;
|
||||
friend class MainPanelControl;
|
||||
|
Loading…
x
Reference in New Issue
Block a user