GUI: add option for disabling all tooltips

This commit is contained in:
Moritz Bunkus 2020-03-28 11:43:19 +01:00
parent bbfda03435
commit ec62a6d1c2
No known key found for this signature in database
GPG Key ID: 74AF00ADF2E32C85
14 changed files with 57 additions and 13 deletions

View File

@ -5,6 +5,7 @@
* MKVToolNix GUI: added an option in the preferences to turn on eliding text
on tab headers. If enabled, tab names will be shortened so that all tab
headers fit into the window's width. Implements #2768.
* MKVToolNix GUI: added an option in the preferences to disable all tooltips.
## Bug fixes

View File

@ -114,12 +114,15 @@ Tool::toolShown() {
void
Tool::retranslateUi() {
auto buttonToolTip = Util::Settings::get().m_uiDisableToolTips ? Q("") : App::translate("CloseButton", "Close Tab");
ui->retranslateUi(this);
for (auto idx = 0, numTabs = ui->editors->count(); idx < numTabs; ++idx) {
static_cast<Tab *>(ui->editors->widget(idx))->retranslateUi();
auto button = Util::tabWidgetCloseTabButton(*ui->editors, idx);
if (button)
button->setToolTip(App::translate("CloseButton", "Close Tab"));
button->setToolTip(buttonToolTip);
}
}

View File

@ -147,6 +147,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbGuiDisableToolTips">
<property name="text">
<string>Disable &amp;tooltips</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbGuiCheckForUpdates">
<property name="text">
@ -2052,6 +2059,12 @@
</layout>
</widget>
<customwidgets>
<customwidget>
<class>mtx::gui::Util::BasicTabWidget</class>
<extends>QTabWidget</extends>
<header>mkvtoolnix-gui/util/basic_tab_widget.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>mtx::gui::Util::LanguageComboBox</class>
<extends>QComboBox</extends>
@ -2073,12 +2086,6 @@
<extends>QComboBox</extends>
<header>mkvtoolnix-gui/util/country_combo_box.h</header>
</customwidget>
<customwidget>
<class>mtx::gui::Util::BasicTabWidget</class>
<extends>QTabWidget</extends>
<header>mkvtoolnix-gui/util/basic_tab_widget.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>mtx::gui::Info::JobSettingsWidget</class>
<extends>QWidget</extends>
@ -2099,6 +2106,7 @@
<tabstop>sbGuiFontPointSize</tabstop>
<tabstop>cbGuiDisableHighDPIScaling</tabstop>
<tabstop>cbGuiDisableDarkStyleSheet</tabstop>
<tabstop>cbGuiDisableToolTips</tabstop>
<tabstop>cbGuiCheckForUpdates</tabstop>
<tabstop>cbGuiTabPositions</tabstop>
<tabstop>cbGuiElideTabHeaderLabels</tabstop>

View File

@ -107,12 +107,15 @@ Tool::toolShown() {
void
Tool::retranslateUi() {
auto buttonToolTip = Util::Settings::get().m_uiDisableToolTips ? Q("") : App::translate("CloseButton", "Close Tab");
ui->retranslateUi(this);
for (auto idx = 0, numTabs = ui->editors->count(); idx < numTabs; ++idx) {
static_cast<Tab *>(ui->editors->widget(idx))->retranslateUi();
auto button = Util::tabWidgetCloseTabButton(*ui->editors, idx);
if (button)
button->setToolTip(App::translate("CloseButton", "Close Tab"));
button->setToolTip(buttonToolTip);
}
}

View File

@ -93,13 +93,15 @@ Tool::toolShown() {
void
Tool::retranslateUi() {
auto buttonToolTip = Util::Settings::get().m_uiDisableToolTips ? Q("") : App::translate("CloseButton", "Close Tab");
ui->retranslateUi(this);
for (auto idx = 0, numTabs = ui->infos->count(); idx < numTabs; ++idx) {
static_cast<Tab *>(ui->infos->widget(idx))->retranslateUi();
auto button = Util::tabWidgetCloseTabButton(*ui->infos, idx);
if (button)
button->setToolTip(App::translate("CloseButton", "Close Tab"));
button->setToolTip(buttonToolTip);
}
}

View File

@ -482,7 +482,7 @@ MainWindow::editPreferencesAndShowPage(PreferencesDialog::Page page) {
dlg.save();
if (dlg.uiLocaleChanged())
if (dlg.uiLocaleChanged() || dlg.disableToolTipsChanged())
App::instance()->initializeLocale();
if (dlg.uiLocaleChanged() || dlg.probeRangePercentageChanged())

View File

@ -36,6 +36,7 @@ PreferencesDialog::PreferencesDialog(QWidget *parent,
, ui{new Ui::PreferencesDialog}
, m_cfg(Util::Settings::get())
, m_previousUiLocale{m_cfg.m_uiLocale}
, m_previousDisableToolTips{m_cfg.m_uiDisableToolTips}
, m_previousProbeRangePercentage{m_cfg.m_probeRangePercentage}
, m_ignoreNextCurrentChange{}
{
@ -48,6 +49,7 @@ PreferencesDialog::PreferencesDialog(QWidget *parent,
Util::restoreWidgetGeometry(this);
// GUI page
ui->cbGuiDisableToolTips->setChecked(m_cfg.m_uiDisableToolTips);
ui->cbGuiCheckForUpdates->setChecked(m_cfg.m_checkForUpdates);
ui->cbGuiShowToolSelector->setChecked(m_cfg.m_showToolSelector);
ui->cbGuiShowMoveUpDownButtons->setChecked(m_cfg.m_showMoveUpDownButtons);
@ -136,6 +138,12 @@ PreferencesDialog::uiLocaleChanged()
return m_previousUiLocale != m_cfg.m_uiLocale;
}
bool
PreferencesDialog::disableToolTipsChanged()
const {
return m_previousDisableToolTips != m_cfg.m_uiDisableToolTips;
}
bool
PreferencesDialog::probeRangePercentageChanged()
const {
@ -221,12 +229,16 @@ PreferencesDialog::setupPageSelector(Page pageToShow) {
void
PreferencesDialog::setupToolTips() {
if (m_cfg.m_uiDisableToolTips)
return;
// GUI page
Util::setToolTip(ui->cbGuiDisableHighDPIScaling,
Q("%1 %2")
.arg(QY("If enabled, automatic scaling for high DPI displays will be disabled."))
.arg(QY("Changes to this option will only take effect the next time the application is started.")));
Util::setToolTip(ui->cbGuiDisableToolTips, QY("If checked, the GUI will not show helpful usage tips in popup windows while hovering over a control — such as this one."));
Util::setToolTip(ui->cbGuiDisableDarkStyleSheet,
Q("%1 %2")
.arg(QY("By default the GUI will start up with a dark color scheme if the color scheme in Windows is set to dark mode."))
@ -809,6 +821,7 @@ PreferencesDialog::save() {
m_cfg.m_uiFontPointSize = ui->sbGuiFontPointSize->value();
m_cfg.m_uiDisableHighDPIScaling = ui->cbGuiDisableHighDPIScaling->isChecked();
m_cfg.m_uiDisableDarkStyleSheet = ui->cbGuiDisableDarkStyleSheet->isChecked();
m_cfg.m_uiDisableToolTips = ui->cbGuiDisableToolTips->isChecked();
m_cfg.m_checkForUpdates = ui->cbGuiCheckForUpdates->isChecked();
m_cfg.m_showToolSelector = ui->cbGuiShowToolSelector->isChecked();
m_cfg.m_showMoveUpDownButtons = ui->cbGuiShowMoveUpDownButtons->isChecked();

View File

@ -43,6 +43,7 @@ protected:
std::unique_ptr<Ui::PreferencesDialog> ui;
Util::Settings &m_cfg;
QString const m_previousUiLocale;
bool const m_previousDisableToolTips;
double m_previousProbeRangePercentage;
QMap<Page, int> m_pageIndexes;
bool m_ignoreNextCurrentChange;
@ -53,6 +54,7 @@ public:
void save();
bool uiLocaleChanged() const;
bool disableToolTipsChanged() const;
bool probeRangePercentageChanged() const;
public slots:

View File

@ -133,13 +133,15 @@ Tool::toolShown() {
void
Tool::retranslateUi() {
auto buttonToolTip = Util::Settings::get().m_uiDisableToolTips ? Q("") : App::translate("CloseButton", "Close Tab");
ui->retranslateUi(this);
for (auto idx = 0, numTabs = ui->merges->count(); idx < numTabs; ++idx) {
static_cast<Tab *>(ui->merges->widget(idx))->retranslateUi();
auto button = Util::tabWidgetCloseTabButton(*ui->merges, idx);
if (button)
button->setToolTip(App::translate("CloseButton", "Close Tab"));
button->setToolTip(buttonToolTip);
}
}

View File

@ -365,6 +365,7 @@ Settings::load() {
#endif
m_uiDisableHighDPIScaling = reg.value(s_valUiDisableHighDPIScaling).toBool();
m_uiDisableDarkStyleSheet = reg.value(s_valUiDisableDarkStyleSheet).toBool();
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();
@ -705,6 +706,7 @@ Settings::save()
reg.setValue(s_valUiLocale, m_uiLocale);
reg.setValue(s_valUiDisableHighDPIScaling, m_uiDisableHighDPIScaling);
reg.setValue(s_valUiDisableDarkStyleSheet, m_uiDisableDarkStyleSheet);
reg.setValue(s_valUiDisableToolTips, m_uiDisableToolTips);
reg.setValue(s_valUiFontFamily, m_uiFontFamily);
reg.setValue(s_valUiFontPointSize, m_uiFontPointSize);

View File

@ -178,7 +178,7 @@ public:
bool m_useDefaultJobDescription, m_showOutputOfAllJobs, m_switchToJobOutputAfterStarting, m_resetJobWarningErrorCountersOnExit;
bool m_removeOutputFileOnJobFailure;
bool m_uiDisableHighDPIScaling, m_uiDisableDarkStyleSheet;
bool m_uiDisableHighDPIScaling, m_uiDisableDarkStyleSheet, m_uiDisableToolTips;
bool m_checkForUpdates;
QDateTime m_lastUpdateCheck;

View File

@ -109,6 +109,7 @@ char const * const s_valTrackInfo = "trackInfo";
char const * const s_valType = "type";
char const * const s_valUiDisableDarkStyleSheet = "uiDisableDarkStyleSheet";
char const * const s_valUiDisableHighDPIScaling = "uiDisableHighDPIScaling";
char const * const s_valUiDisableToolTips = "uiDisableToolTips";
char const * const s_valUiFontFamily = "uiFontFamily";
char const * const s_valUiFontPointSize = "uiFontPointSize";
char const * const s_valUiLocale = "uiLocale";

View File

@ -101,6 +101,11 @@ buttonForRole(QDialogButtonBox *box,
void
setToolTip(QWidget *widget,
QString const &toolTip) {
if (Util::Settings::get().m_uiDisableToolTips) {
widget->setToolTip({});
return;
}
// Qt up to and including 5.3 only word-wraps tool tips
// automatically if the format is recognized to be Rich Text. See
// http://doc.qt.io/qt-5/qstandarditem.html

View File

@ -66,6 +66,8 @@ Tool::setupActions() {
void
Tool::retranslateUi() {
auto buttonToolTip = Util::Settings::get().m_uiDisableToolTips ? Q("") : App::translate("CloseButton", "Close Tab");
ui->retranslateUi(this);
ui->widgets->setTabText(0, QY("Current job"));
@ -74,7 +76,7 @@ Tool::retranslateUi() {
for (auto idx = 0, numTabs = ui->widgets->count(); idx < numTabs; ++idx) {
auto button = Util::tabWidgetCloseTabButton(*ui->widgets, idx);
if (button)
button->setToolTip(App::translate("CloseButton", "Close Tab"));
button->setToolTip(buttonToolTip);
}
}