mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +00:00
feat(dock): change frame for mode changed
This commit is contained in:
parent
c8b30c3fe4
commit
0a5fd622db
@ -48,10 +48,14 @@ MainPanelControl::MainPanelControl(QWidget *parent)
|
||||
, m_position(Qt::TopEdge)
|
||||
, m_placeholderItem(nullptr)
|
||||
, m_appDragWidget(nullptr)
|
||||
, m_dislayMode(Efficient)
|
||||
{
|
||||
init();
|
||||
updateMainPanelLayout();
|
||||
updateDisplayMode();
|
||||
setAcceptDrops(true);
|
||||
|
||||
connect(this, SIGNAL(displayModeChanged()), this, SLOT(onDisplayModeChanged()));
|
||||
}
|
||||
|
||||
MainPanelControl::~MainPanelControl()
|
||||
@ -84,15 +88,12 @@ void MainPanelControl::init()
|
||||
m_pluginLayout->setSpacing(0);
|
||||
}
|
||||
|
||||
void MainPanelControl::updateDisplayMode(DisplayMode m_displayMode)
|
||||
void MainPanelControl::setDisplayMode(const DisplayMode mode)
|
||||
{
|
||||
DAnchorsBase::clearAnchors(m_appAreaSonWidget);
|
||||
DAnchors<QWidget> anchors(m_appAreaSonWidget);
|
||||
if (m_displayMode == Dock::DisplayMode::Fashion) {
|
||||
anchors.setAnchor(Qt::AnchorHorizontalCenter, this, Qt::AnchorHorizontalCenter);
|
||||
} else {
|
||||
anchors.setAnchor(Qt::AnchorLeft, m_appAreaWidget, Qt::AnchorLeft);
|
||||
}
|
||||
if (mode == m_dislayMode)
|
||||
return;
|
||||
m_dislayMode = mode;
|
||||
emit displayModeChanged();
|
||||
}
|
||||
|
||||
void MainPanelControl::updateMainPanelLayout()
|
||||
@ -573,3 +574,20 @@ DockItem *MainPanelControl::dropTargetItem(DockItem *sourceItem, QPoint point)
|
||||
}
|
||||
return targetItem;
|
||||
}
|
||||
|
||||
|
||||
void MainPanelControl::updateDisplayMode()
|
||||
{
|
||||
DAnchorsBase::clearAnchors(m_appAreaSonWidget);
|
||||
DAnchors<QWidget> anchors(m_appAreaSonWidget);
|
||||
if (m_dislayMode == Dock::DisplayMode::Fashion) {
|
||||
anchors.setAnchor(Qt::AnchorHorizontalCenter, this, Qt::AnchorHorizontalCenter);
|
||||
} else {
|
||||
anchors.setAnchor(Qt::AnchorLeft, m_appAreaWidget, Qt::AnchorLeft);
|
||||
}
|
||||
}
|
||||
|
||||
void MainPanelControl::onDisplayModeChanged()
|
||||
{
|
||||
updateDisplayMode();
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public:
|
||||
void removeTrayAreaItem(QWidget *wdg);
|
||||
void removePluginAreaItem(QWidget *wdg);
|
||||
void setPositonValue(const Qt::Edge val);
|
||||
void updateDisplayMode(DisplayMode m_displayMode);
|
||||
void setDisplayMode(const DisplayMode m_displayMode);
|
||||
|
||||
MainPanelDelegate *delegate() const;
|
||||
void setDelegate(MainPanelDelegate *delegate);
|
||||
@ -62,6 +62,7 @@ public:
|
||||
signals:
|
||||
void itemMoved(DockItem *sourceItem, DockItem *targetItem);
|
||||
void itemAdded(const QString &appDesktop, int idx);
|
||||
void displayModeChanged();
|
||||
|
||||
private:
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
@ -69,6 +70,7 @@ private:
|
||||
void init();
|
||||
void updateAppAreaSonWidgetSize();
|
||||
void updateMainPanelLayout();
|
||||
void updateDisplayMode();
|
||||
|
||||
void dragMoveEvent(QDragMoveEvent *e) override;
|
||||
void dragEnterEvent(QDragEnterEvent *e) override;
|
||||
@ -84,6 +86,7 @@ private:
|
||||
public slots:
|
||||
void insertItem(const int index, DockItem *item);
|
||||
void removeItem(DockItem *item);
|
||||
void onDisplayModeChanged();
|
||||
|
||||
private:
|
||||
QBoxLayout *m_mainPanelLayout;
|
||||
@ -101,6 +104,7 @@ private:
|
||||
MainPanelDelegate *m_delegate;
|
||||
QString m_draggingMimeKey;
|
||||
AppDragWidget *m_appDragWidget;
|
||||
DisplayMode m_dislayMode;
|
||||
};
|
||||
|
||||
#endif // MAINPANELCONTROL_H
|
||||
|
@ -34,6 +34,7 @@
|
||||
#define ICON_SIZE_MEDIUM 36
|
||||
#define ICON_SIZE_SMALL 30
|
||||
#define FASHION_MODE_PADDING 30
|
||||
#define MAINWINDOW_MARGIN 10
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
@ -583,13 +584,13 @@ void DockSettings::calculateWindowConfig()
|
||||
case Top:
|
||||
case Bottom: {
|
||||
m_mainWindowSize.setHeight(defaultHeight + PANEL_BORDER);
|
||||
m_mainWindowSize.setWidth(primaryRect.width() - 20);
|
||||
m_mainWindowSize.setWidth(primaryRect.width() - MAINWINDOW_MARGIN * 2);
|
||||
m_isMaxSize = (calcWidth == maxWidth);
|
||||
break;
|
||||
}
|
||||
case Left:
|
||||
case Right: {
|
||||
m_mainWindowSize.setHeight(primaryRect.height() - 20);
|
||||
m_mainWindowSize.setHeight(primaryRect.height() - MAINWINDOW_MARGIN * 2);
|
||||
m_mainWindowSize.setWidth(defaultWidth + PANEL_BORDER);
|
||||
m_isMaxSize = (calcHeight == maxHeight);
|
||||
break;
|
||||
|
@ -72,6 +72,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
m_launched(false),
|
||||
m_updatePanelVisible(false),
|
||||
|
||||
m_mainPanel(new MainPanelControl(this)),
|
||||
|
||||
m_platformWindowHandle(this),
|
||||
m_wmHelper(DWindowManagerHelper::instance()),
|
||||
|
||||
@ -105,8 +107,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
m_settings = &DockSettings::Instance();
|
||||
m_xcbMisc->set_window_type(winId(), XcbMisc::Dock);
|
||||
m_size = m_settings->m_mainWindowSize;
|
||||
m_mainPanel = new MainPanelControl(this);
|
||||
m_mainPanel->updateDisplayMode(m_settings->displayMode());
|
||||
m_mainPanel->setDisplayMode(m_settings->displayMode());
|
||||
initSNIHost();
|
||||
initComponents();
|
||||
initConnections();
|
||||
@ -935,5 +936,5 @@ void MainWindow::resizeMainPanelWindow()
|
||||
|
||||
void MainWindow::updateDisplayMode()
|
||||
{
|
||||
m_mainPanel->updateDisplayMode(m_settings->displayMode());
|
||||
m_mainPanel->setDisplayMode(m_settings->displayMode());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user