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