Widgets that are disabled do not render themselves in the faded state

Bug #1430767 reported by Kishore
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
breeze-qt4 (Ubuntu)
New
Undecided
Unassigned

Bug Description

Pure Qt4 based applications only seem to be affected by this.

If a widget is disabled, the color scheme does not indicate this in the text color.

Reproducible: Always

Steps to Reproduce:
1. Open any pure qt4 based application (Take CuteCom as an example)
2. Look for any disabled widgets (The close button should be disabled initially in cutecom)
3. Unless you try clicking on the disabled widget, you never know that it is disabled to begin with.

Actual Results:
The disabled widget in indistinguishable.

Expected Results:
The disabled widget should be grayed out.

Please refer to https://bugs.kde.org/show_bug.cgi?id=343930

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: kde-style-breeze-qt4 4:5.2.1-0ubuntu1
ProcVersionSignature: Ubuntu 3.19.0-7.7-generic 3.19.0
Uname: Linux 3.19.0-7-generic x86_64
ApportVersion: 2.16.2-0ubuntu2
Architecture: amd64
CurrentDesktop: KDE
Date: Wed Mar 11 17:51:41 2015
InstallationDate: Installed on 2015-02-04 (34 days ago)
InstallationMedia: Kubuntu 15.04 "Vivid Vervet" - Alpha amd64 (20150204)
SourcePackage: breeze-qt4
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Kishore (kitts) wrote :
Revision history for this message
Kishore (kitts) wrote :

In my pure Qt application i added these lines of code
    qDebug() << qapp.style();
    qDebug() << qapp.palette().color(QPalette::Normal, QPalette::ButtonText) << qapp.palette().color(QPalette::Disabled, QPalette::ButtonText);
    qapp.setPalette(qapp.style()->standardPalette());
    qDebug() << qapp.palette().color(QPalette::Normal, QPalette::ButtonText) << qapp.palette().color(QPalette::Disabled, QPalette::ButtonText);

 After which the colors are messed up but disabled widgets are distinguisable. the terminal output of the above is:

Breeze::Style(0x8edd80, name = "breeze")
QColor(ARGB 1, 0.192157, 0.211765, 0.231373) QColor(ARGB 1, 0.192157, 0.211765, 0.231373)
QColor(ARGB 1, 0, 0, 0) QColor(ARGB 1, 0.415686, 0.407843, 0.392157)

As can be seen, in the first case, Normal and disabled have the same color.

Revision history for this message
Kishore (kitts) wrote :

Strangely, even this makes it work as expected

qDebug() << qapp.style();
qDebug() << qapp.palette().color(QPalette::Normal, QPalette::ButtonText) << qapp.palette().color(QPalette::Disabled, QPalette::ButtonText);
QPalette palette(qapp.palette().color(QPalette::Button));
qapp.setPalette(palette);
qDebug() << qapp.palette().color(QPalette::Normal, QPalette::ButtonText) << qapp.palette().color(QPalette::Disabled, QPalette::ButtonText);

But the output at the terminal is:

Breeze::Style(0x865d40, name = "breeze")
QColor(ARGB 1, 0.192157, 0.211765, 0.231373) QColor(ARGB 1, 0.192157, 0.211765, 0.231373)
QColor(ARGB 1, 0, 0, 0) QColor(ARGB 1, 0.46862, 0.470573, 0.472541)

Im not sure where the real problem. I can only imagine that wherever pure Qt apps read the palette information is not properly setup.

Revision history for this message
Kishore (kitts) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.