feat(dde-dock):change window size logic for task 11865

This commit is contained in:
wangxuwen 2019-11-15 13:39:50 +08:00
parent bb9d58096f
commit 71998ed9ac
2 changed files with 27 additions and 12 deletions

View File

@ -34,6 +34,8 @@
#define FASHION_DEFAULT_HEIGHT 72
#define EffICIENT_DEFAULT_HEIGHT 40
#define WINDOW_MAX_SIZE 100
#define WINDOW_MIN_SIZE 40
DWIDGET_USE_NAMESPACE
@ -63,7 +65,6 @@ DockSettings::DockSettings(QWidget *parent)
m_displayMode = Dock::DisplayMode(m_dockInter->displayMode());
m_hideMode = Dock::HideMode(m_dockInter->hideMode());
m_hideState = Dock::HideState(m_dockInter->hideState());
m_dockWindowSize = m_dockInter->windowSize();
DockItem::setDockPosition(m_position);
qApp->setProperty(PROP_POSITION, QVariant::fromValue(m_position));
DockItem::setDockDisplayMode(m_displayMode);
@ -117,7 +118,8 @@ DockSettings::DockSettings(QWidget *parent)
connect(m_dockInter, &DBusDock::HideStateChanged, this, &DockSettings::hideStateChanged);
connect(m_dockInter, &DBusDock::ServiceRestarted, this, &DockSettings::resetFrontendGeometry);
connect(m_dockInter, &DBusDock::OpacityChanged, this, &DockSettings::onOpacityChanged);
connect(m_dockInter, &DBusDock::WindowSizeChanged, this, &DockSettings::onWindowSizeChanged);
connect(m_dockInter, &DBusDock::WindowSizeEfficientChanged, this, &DockSettings::onWindowSizeChanged);
connect(m_dockInter, &DBusDock::WindowSizeFashionChanged, this, &DockSettings::onWindowSizeChanged);
connect(m_itemManager, &DockItemManager::itemInserted, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
connect(m_itemManager, &DockItemManager::itemRemoved, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
@ -489,14 +491,12 @@ void DockSettings::trayVisableCountChanged(const int &count)
void DockSettings::calculateWindowConfig()
{
m_dockWindowSize = m_dockInter->windowSize();
if (m_dockWindowSize == 0) {
if (m_displayMode == Dock::Efficient)
m_dockWindowSize = EffICIENT_DEFAULT_HEIGHT;
else
m_dockWindowSize = FASHION_DEFAULT_HEIGHT;
}
if (m_displayMode == Dock::Efficient) {
m_dockWindowSize = m_dockInter->windowSizeEfficient();
if (m_dockWindowSize > WINDOW_MAX_SIZE || m_dockWindowSize < WINDOW_MIN_SIZE) {
m_dockWindowSize = EffICIENT_DEFAULT_HEIGHT;
}
switch (m_position) {
case Top:
case Bottom:
@ -514,6 +514,11 @@ void DockSettings::calculateWindowConfig()
Q_ASSERT(false);
}
} else if (m_displayMode == Dock::Fashion) {
m_dockWindowSize = m_dockInter->windowSizeFashion();
if (m_dockWindowSize > WINDOW_MAX_SIZE || m_dockWindowSize < WINDOW_MIN_SIZE) {
m_dockWindowSize = FASHION_DEFAULT_HEIGHT;
}
switch (m_position) {
case Top:
case Bottom: {

View File

@ -983,12 +983,22 @@ void MainWindow::onDragFinished()
return;
m_size = m_settings->m_mainWindowSize;
if (Dock::Top == m_curDockPos || Dock::Bottom == m_curDockPos) {
m_settings->m_dockInter ->setWindowSize(m_settings->m_mainWindowSize.height());
if (m_settings->displayMode() == Fashion) {
if (Dock::Top == m_curDockPos || Dock::Bottom == m_curDockPos) {
m_settings->m_dockInter->setWindowSizeFashion(m_settings->m_mainWindowSize.height());
} else {
m_settings->m_dockInter->setWindowSizeFashion(m_settings->m_mainWindowSize.width());
}
} else {
m_settings->m_dockInter->setWindowSize(m_settings->m_mainWindowSize.width());
if (Dock::Top == m_curDockPos || Dock::Bottom == m_curDockPos) {
m_settings->m_dockInter->setWindowSizeEfficient(m_settings->m_mainWindowSize.height());
} else {
m_settings->m_dockInter->setWindowSizeEfficient(m_settings->m_mainWindowSize.width());
}
}
setStrutPartial();
}