Avoid the style change crash. This is a temp.workaround until we know how to avoid it, but the usability impact can be neglected

Changing the style takes very long anyway and is a bit fault even if it works.
This commit is contained in:
Klaus Basan
2019-04-11 14:35:41 +02:00
committed by Mat Sutcliffe
parent 563a69e3f5
commit 42af7e4e9f
2 changed files with 10 additions and 1 deletions

View File

@@ -100,10 +100,18 @@ namespace BlackGui
const CGeneralGuiSettings settings = m_guiSettings.getThreadLocal(); const CGeneralGuiSettings settings = m_guiSettings.getThreadLocal();
if (!settings.isDifferentValidWidgetStyle(widgetStyle)) { return; } if (!settings.isDifferentValidWidgetStyle(widgetStyle)) { return; }
/** because of crash (chnage style crashes UI) we require restart
const int ret = QMessageBox::information(this, const int ret = QMessageBox::information(this,
tr("Change style?"), tr("Change style?"),
tr("Changing style is slow.\nThe GUI will hang for some seconds.\nDo you want to save your changes?"), tr("Changing style is slow.\nThe GUI will hang for some seconds.\nDo you want to save your changes?"),
QMessageBox::Ok | QMessageBox::Cancel); QMessageBox::Ok | QMessageBox::Cancel);
**/
const int ret = QMessageBox::information(this,
tr("Change style?"),
tr("Changing style requires a restart.\nChanges will be visible a the next start.\nDo you want to save your changes?"),
QMessageBox::Ok | QMessageBox::Cancel);
if (ret != QMessageBox::Ok) if (ret != QMessageBox::Ok)
{ {
ui->cb_SettingsGuiWidgetStyle->setCurrentText(settings.getWidgetStyle()); ui->cb_SettingsGuiWidgetStyle->setCurrentText(settings.getWidgetStyle());

View File

@@ -1095,7 +1095,8 @@ namespace BlackGui
{ {
// QStyle *style = QApplication::setStyle(widgetStyle); // QStyle *style = QApplication::setStyle(widgetStyle);
QStyle *style = QStyleFactory::create(widgetStyle); QStyle *style = QStyleFactory::create(widgetStyle);
QApplication::setStyle(style); // subject of crash // Disaabled because of crash
// QApplication::setStyle(style); // subject of crash
if (style) if (style)
{ {
CLogMessage(this).info(u"Changed style to '%1', req.: '%2'") << style->objectName() << widgetStyle; CLogMessage(this).info(u"Changed style to '%1', req.: '%2'") << style->objectName() << widgetStyle;