feat: option for set window startup size

This commit is contained in:
Gary Wang
2022-03-11 16:21:56 +08:00
parent 5674230c4c
commit 432266a6f0
9 changed files with 94 additions and 6 deletions

View File

@ -21,20 +21,27 @@ bool Settings::stayOnTop()
return m_qsettings->value("stay_on_top", true).toBool();
}
DoubleClickBehavior Settings::doubleClickBehavior()
DoubleClickBehavior Settings::doubleClickBehavior() const
{
QString result = m_qsettings->value("double_click_behavior", "close").toString().toLower();
return stringToDoubleClickBehavior(result);
}
MouseWheelBehavior Settings::mouseWheelBehavior()
MouseWheelBehavior Settings::mouseWheelBehavior() const
{
QString result = m_qsettings->value("mouse_wheel_behavior", "close").toString().toLower();
return stringToMouseWheelBehavior(result);
}
WindowSizeBehavior Settings::initWindowSizeBehavior() const
{
QString result = m_qsettings->value("init_window_size_behavior", "auto").toString().toLower();
return stringToWindowSizeBehavior(result);
}
void Settings::setStayOnTop(bool on)
{
m_qsettings->setValue("stay_on_top", on);
@ -53,6 +60,12 @@ void Settings::setMouseWheelBehavior(MouseWheelBehavior mwb)
m_qsettings->sync();
}
void Settings::setInitWindowSizeBehavior(WindowSizeBehavior wsb)
{
m_qsettings->setValue("init_window_size_behavior", windowSizeBehaviorToString(wsb));
m_qsettings->sync();
}
QString Settings::doubleClickBehaviorToString(DoubleClickBehavior dcb)
{
static QMap<DoubleClickBehavior, QString> _map {
@ -74,6 +87,16 @@ QString Settings::mouseWheelBehaviorToString(MouseWheelBehavior mwb)
return _map.value(mwb, "zoom");
}
QString Settings::windowSizeBehaviorToString(WindowSizeBehavior wsb)
{
static QMap<WindowSizeBehavior, QString> _map {
{ActionAutoSize, "auto"},
{ActionMaximize, "maximized"}
};
return _map.value(wsb, "zoom");
}
DoubleClickBehavior Settings::stringToDoubleClickBehavior(QString str)
{
static QMap<QString, DoubleClickBehavior> _map {
@ -95,6 +118,16 @@ MouseWheelBehavior Settings::stringToMouseWheelBehavior(QString str)
return _map.value(str, ActionZoomImage);
}
WindowSizeBehavior Settings::stringToWindowSizeBehavior(QString str)
{
static QMap<QString, WindowSizeBehavior> _map {
{"auto", ActionAutoSize},
{"maximized", ActionMaximize}
};
return _map.value(str, ActionAutoSize);
}
Settings::Settings()
: QObject(qApp)
{