mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-10-22 07:21:21 +00:00
GUI: add preference for staying on top of other windows
Implements #2967.
This commit is contained in:
parent
b6cb2e40cd
commit
5fcf946cd6
2
NEWS.md
2
NEWS.md
@ -9,6 +9,8 @@
|
||||
file names selected for saving on platforms that don't add one itself
|
||||
(e.g. GNOME). For example, when saving multiplexer settings the extension
|
||||
`.mtxcfg` will be added. Implements #2983.
|
||||
* MKVToolNix GUI: added an option to the preferences for the window to stay on
|
||||
top of other windows. Implements #2967.
|
||||
|
||||
## Bug fixes
|
||||
|
||||
|
@ -133,6 +133,13 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbGuiStayOnTop">
|
||||
<property name="text">
|
||||
<string>Stay on top of other &windows</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbGuiDisableHighDPIScaling">
|
||||
<property name="text">
|
||||
@ -2158,6 +2165,7 @@
|
||||
<tabstop>cbGuiInterfaceLanguage</tabstop>
|
||||
<tabstop>fcbGuiFontFamily</tabstop>
|
||||
<tabstop>sbGuiFontPointSize</tabstop>
|
||||
<tabstop>cbGuiStayOnTop</tabstop>
|
||||
<tabstop>cbGuiDisableHighDPIScaling</tabstop>
|
||||
<tabstop>cbGuiDisableDarkStyleSheet</tabstop>
|
||||
<tabstop>cbGuiDisableToolTips</tabstop>
|
||||
|
@ -86,6 +86,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
p->ui->setupUi(this);
|
||||
|
||||
setToolSelectorVisibility();
|
||||
setStayOnTopStatus();
|
||||
setupAuxiliaryWidgets();
|
||||
setupToolSelector();
|
||||
setupHelpURLs();
|
||||
@ -225,6 +226,7 @@ MainWindow::setupConnections() {
|
||||
|
||||
// Auxiliary actions:
|
||||
connect(this, &MainWindow::preferencesChanged, this, &MainWindow::setToolSelectorVisibility);
|
||||
connect(this, &MainWindow::preferencesChanged, this, &MainWindow::setStayOnTopStatus);
|
||||
connect(this, &MainWindow::preferencesChanged, app, &App::reinitializeLanguageLists);
|
||||
connect(this, &MainWindow::preferencesChanged, app, &App::setupAppearance);
|
||||
|
||||
@ -630,6 +632,19 @@ MainWindow::setToolSelectorVisibility() {
|
||||
p->ui->tool->tabBar()->setVisible(Util::Settings::get().m_showToolSelector);
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::setStayOnTopStatus() {
|
||||
auto oldFlags = windowFlags();
|
||||
auto newFlags = Util::Settings::get().m_uiStayOnTop ? oldFlags | Qt::WindowStaysOnTopHint
|
||||
: oldFlags & ~Qt::WindowStaysOnTopHint;
|
||||
|
||||
if (oldFlags == newFlags)
|
||||
return;
|
||||
|
||||
setWindowFlags(newFlags);
|
||||
show();
|
||||
}
|
||||
|
||||
std::optional<bool>
|
||||
MainWindow::filterWheelEventForStrongFocus(QObject *watched,
|
||||
QEvent *event) {
|
||||
|
@ -83,6 +83,7 @@ public Q_SLOTS:
|
||||
virtual void showCodeOfConduct();
|
||||
virtual void showSystemInformation();
|
||||
virtual void setToolSelectorVisibility();
|
||||
virtual void setStayOnTopStatus();
|
||||
virtual void raiseAndActivate();
|
||||
|
||||
#if defined(HAVE_UPDATE_CHECK)
|
||||
|
@ -853,6 +853,8 @@ PreferencesDialog::setupFontAndScaling() {
|
||||
#if !defined(SYS_WINDOWS)
|
||||
ui->cbGuiDisableDarkStyleSheet->setVisible(false);
|
||||
#endif
|
||||
|
||||
ui->cbGuiStayOnTop->setChecked(m_cfg.m_uiStayOnTop);
|
||||
}
|
||||
|
||||
void
|
||||
@ -863,6 +865,7 @@ PreferencesDialog::save() {
|
||||
m_cfg.m_bcp47LanguageEditingMode = static_cast<Util::Settings::BCP47LanguageEditingMode>(ui->cbGuiBCP47LanguageEditingMode->currentData().toInt());
|
||||
m_cfg.m_uiFontFamily = ui->fcbGuiFontFamily->currentFont().family();
|
||||
m_cfg.m_uiFontPointSize = ui->sbGuiFontPointSize->value();
|
||||
m_cfg.m_uiStayOnTop = ui->cbGuiStayOnTop->isChecked();
|
||||
m_cfg.m_uiDisableHighDPIScaling = ui->cbGuiDisableHighDPIScaling->isChecked();
|
||||
m_cfg.m_uiDisableDarkStyleSheet = ui->cbGuiDisableDarkStyleSheet->isChecked();
|
||||
m_cfg.m_uiDisableToolTips = ui->cbGuiDisableToolTips->isChecked();
|
||||
|
@ -409,6 +409,7 @@ Settings::load() {
|
||||
m_uiDisableToolTips = reg.value(s_valUiDisableToolTips).toBool();
|
||||
m_uiFontFamily = reg.value(s_valUiFontFamily, defaultFont.family()).toString();
|
||||
m_uiFontPointSize = reg.value(s_valUiFontPointSize, defaultFont.pointSize()).toInt();
|
||||
m_uiStayOnTop = reg.value(s_valUiStayOnTop, false).toBool();
|
||||
|
||||
reg.beginGroup(s_grpUpdates);
|
||||
m_checkForUpdates = reg.value(s_valCheckForUpdates, true).toBool();
|
||||
@ -761,6 +762,7 @@ Settings::save()
|
||||
reg.setValue(s_valUiDisableToolTips, m_uiDisableToolTips);
|
||||
reg.setValue(s_valUiFontFamily, m_uiFontFamily);
|
||||
reg.setValue(s_valUiFontPointSize, m_uiFontPointSize);
|
||||
reg.setValue(s_valUiStayOnTop, m_uiStayOnTop);
|
||||
|
||||
reg.setValue(s_valMediaInfoExe, m_mediaInfoExe);
|
||||
|
||||
|
@ -194,6 +194,7 @@ public:
|
||||
bool m_showToolSelector, m_warnBeforeClosingModifiedTabs, m_warnBeforeAbortingJobs, m_warnBeforeOverwriting, m_showMoveUpDownButtons;
|
||||
QString m_uiLocale, m_uiFontFamily;
|
||||
int m_uiFontPointSize;
|
||||
bool m_uiStayOnTop;
|
||||
|
||||
bool m_enableMuxingTracksByLanguage, m_enableMuxingAllVideoTracks, m_enableMuxingAllAudioTracks, m_enableMuxingAllSubtitleTracks;
|
||||
QStringList m_enableMuxingTracksByTheseLanguages;
|
||||
|
@ -118,6 +118,7 @@ char const * const s_valUiDisableHighDPIScaling = "uiDisableHighDPIS
|
||||
char const * const s_valUiDisableToolTips = "uiDisableToolTips";
|
||||
char const * const s_valUiFontFamily = "uiFontFamily";
|
||||
char const * const s_valUiFontPointSize = "uiFontPointSize";
|
||||
char const * const s_valUiStayOnTop = "uiStayOnTop";
|
||||
char const * const s_valUiLocale = "uiLocale";
|
||||
char const * const s_valUniqueOutputFileNames = "uniqueOutputFileNames";
|
||||
char const * const s_valUseDefaultJobDescription = "useDefaultJobDescription";
|
||||
|
Loading…
Reference in New Issue
Block a user