add more backported fixes
[alioth/musescore.git] / debian / patches / upstream / crash-fontname.diff
1 Origin: backport, commit:443ead70ac77c655095a67bfc0978145fda0c5de
2 Author: Matt McClinch <mattmcclinch@gmail.com>
3 Description: Fix #303619: MuseScore crashing when entering font name
4  Resolves: https://musescore.org/en/node/303619.
5  .
6  Passing an empty string to QWidget::setStyleSheet() causes the widget's
7  current style sheet to be removed, thus causing the widget's style to be
8  inherited from its parent. This creates a problem in QComboBox::showPopup(),
9  where it becomes possible that a pointer to a QStyle object could used after
10  the object itself has been destroyed. A style sheet of " " can be used to
11  override any previous style sheet without invalidating the current QStyle
12  object.
13
14 --- a/mscore/inspector/inspectorBase.cpp
15 +++ b/mscore/inspector/inspectorBase.cpp
16 @@ -278,8 +278,8 @@ void InspectorBase::checkDifferentValues
17                    }
18              QColor c(preferences.globalStyle == MuseScoreStyleType::DARK ? Qt::yellow : Qt::blue);
19  
20 -            // ii.w->setStyleSheet(valuesAreDifferent ? QString("* { color: %1 }").arg(MScore::selectColor[0].name()) : "");
21 -            ii.w->setStyleSheet(valuesAreDifferent ? QString("* { color: %1 }").arg(c.name()) : "");
22 +            // ii.w->setStyleSheet(valuesAreDifferent ? QString("* { color: %1 }").arg(MScore::selectColor[0].name()) : " ");
23 +            ii.w->setStyleSheet(valuesAreDifferent ? QString("* { color: %1 }").arg(c.name()) : " ");
24              }
25  
26        //deal with reset if only one element, or if values are the same
27 @@ -293,12 +293,12 @@ void InspectorBase::checkDifferentValues
28                    reset = false;
29                    }
30              else if (styledValue == PropertyStyle::UNSTYLED) {
31 -                  ii.w->setStyleSheet("");
32 +                  ii.w->setStyleSheet(" ");
33                    reset = true;
34                    }
35              else {
36                    reset = !isDefault(ii);
37 -                  ii.w->setStyleSheet("");
38 +                  ii.w->setStyleSheet(" ");
39                    }
40              if (ii.r)
41                    ii.r->setEnabled(reset);
42 @@ -306,7 +306,7 @@ void InspectorBase::checkDifferentValues
43        else {
44              if (ii.r)
45                    ii.r->setEnabled(true);
46 -            ii.w->setStyleSheet("");
47 +            ii.w->setStyleSheet(" ");
48              }
49        }
50