Check the min. window sizes

* on smaller screens makes sure the min.sizes are not exceeded
* normally not changing min.sizes
This commit is contained in:
Klaus Basan
2018-01-19 20:36:36 +01:00
parent 464f64367e
commit d5c9a29618
4 changed files with 24 additions and 1 deletions

View File

@@ -97,6 +97,7 @@ namespace BlackGui
this->setCurrentFontValues(); // most likely the default font and not any stylesheet font at this time
sGui = this;
connect(&m_styleSheetUtility, &CStyleSheetUtility::styleSheetsChanged, this, &CGuiApplication::onStyleSheetsChanged);
connect(this, &CGuiApplication::startUpCompleted, this, &CGuiApplication::superviseWindowMinSizes);
}
}
@@ -923,4 +924,9 @@ namespace BlackGui
m_fontFamily = font.family();
m_fontPointSize = font.pointSize();
}
void CGuiApplication::superviseWindowMinSizes()
{
CGuiUtility::superviseMainWindowMinSizes();
}
} // ns

View File

@@ -276,7 +276,7 @@ namespace BlackGui
int m_minHeightChars = -1; //!< min. height characters (based on current font metrics)
QCommandLineOption m_cmdWindowStateMinimized { "empty" }; //!< window state (minimized)
QCommandLineOption m_cmdWindowMode { "empty" }; //!< window mode (flags: frameless ...)
QCommandLineOption m_cmdWindowSizeReset {"empty"}; //!< window size resizing
QCommandLineOption m_cmdWindowSizeReset { "empty" }; //!< window size resizing
CStyleSheetUtility m_styleSheetUtility {{}, this}; //!< style sheet utility
bool m_uiSetupCompleted = false; //!< ui setup completed
bool m_saveMainWidgetState = true; //!< save/restore main widget's state
@@ -303,6 +303,9 @@ namespace BlackGui
//! Set current font values
void setCurrentFontValues();
//! \copydoc BlackGui::CGuiUtility::superviseMainWindowMinSizes
void superviseWindowMinSizes();
};
} // ns

View File

@@ -510,4 +510,15 @@ namespace BlackGui
if (!widget) { return; }
widget->setStyleSheet(widget->styleSheet());
}
void CGuiUtility::superviseMainWindowMinSizes(qreal wRatio, qreal hRatio)
{
QWidget *w = CGuiUtility::mainApplicationWidget();
if (!w) { return; }
const QSize s = CGuiUtility::desktopSize();
const int minW = wRatio * s.width();
const int minH = hRatio * s.height();
w->setMinimumWidth(qMin(minW, w->minimumWidth()));
w->setMinimumHeight(qMin(minH, w->minimumHeight()));
}
} // ns

View File

@@ -170,6 +170,9 @@ namespace BlackGui
//! Forces a stylesheet update
static void forceStyleSheetUpdate(QWidget *widget);
//! Make sure that the min.sizes to not exceed the screen resolution
static void superviseMainWindowMinSizes(qreal wRatio = 0.85, qreal hRatio = 0.85);
private:
//! Constructor, use static methods only
CGuiUtility() {}