Hello community,

here is the log from the commit of package libyui-qt for openSUSE:Factory 
checked in at 2016-10-13 11:25:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui-qt (Old)
 and      /work/SRC/openSUSE:Factory/.libyui-qt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libyui-qt"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui-qt/libyui-qt.changes      2016-10-01 
23:50:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libyui-qt.new/libyui-qt.changes 2016-10-13 
11:25:23.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Oct 10 16:56:41 UTC 2016 - [email protected]
+
+- Fix high-contrast support (bsc#76811 and related to bsc#780621)
+- 2.46.27
+
+-------------------------------------------------------------------

Old:
----
  libyui-qt-2.46.26.tar.bz2

New:
----
  libyui-qt-2.46.27.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libyui-qt-doc.spec ++++++
--- /var/tmp/diff_new_pack.KMjNCL/_old  2016-10-13 11:25:24.000000000 +0200
+++ /var/tmp/diff_new_pack.KMjNCL/_new  2016-10-13 11:25:24.000000000 +0200
@@ -20,7 +20,7 @@
 %define so_version 7
 
 Name:           %{parent}-doc
-Version:        2.46.26
+Version:        2.46.27
 Release:        0
 Source:         %{parent}-%{version}.tar.bz2
 

++++++ libyui-qt.spec ++++++
--- /var/tmp/diff_new_pack.KMjNCL/_old  2016-10-13 11:25:24.000000000 +0200
+++ /var/tmp/diff_new_pack.KMjNCL/_new  2016-10-13 11:25:24.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           libyui-qt
-Version:        2.46.26
+Version:        2.46.27
 Release:        0
 Source:         %{name}-%{version}.tar.bz2
 

++++++ libyui-qt-2.46.26.tar.bz2 -> libyui-qt-2.46.27.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/VERSION.cmake 
new/libyui-qt-2.46.27/VERSION.cmake
--- old/libyui-qt-2.46.26/VERSION.cmake 2016-09-26 13:49:10.000000000 +0200
+++ new/libyui-qt-2.46.27/VERSION.cmake 2016-10-11 12:04:11.000000000 +0200
@@ -1,6 +1,6 @@
 SET(VERSION_MAJOR "2")
 SET(VERSION_MINOR "46")
-SET(VERSION_PATCH "26")
+SET(VERSION_PATCH "27")
 SET( VERSION 
"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${GIT_SHA1_VERSION}" )
 
 ##### This is need for the libyui core, ONLY.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/package/libyui-qt-doc.spec 
new/libyui-qt-2.46.27/package/libyui-qt-doc.spec
--- old/libyui-qt-2.46.26/package/libyui-qt-doc.spec    2016-09-26 
13:49:10.000000000 +0200
+++ new/libyui-qt-2.46.27/package/libyui-qt-doc.spec    2016-10-11 
12:04:11.000000000 +0200
@@ -20,7 +20,7 @@
 %define so_version 7
 
 Name:           %{parent}-doc
-Version:        2.46.26
+Version:        2.46.27
 Release:        0
 Source:         %{parent}-%{version}.tar.bz2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/package/libyui-qt.changes 
new/libyui-qt-2.46.27/package/libyui-qt.changes
--- old/libyui-qt-2.46.26/package/libyui-qt.changes     2016-09-26 
13:49:10.000000000 +0200
+++ new/libyui-qt-2.46.27/package/libyui-qt.changes     2016-10-11 
12:04:11.000000000 +0200
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Mon Oct 10 16:56:41 UTC 2016 - [email protected]
+
+- Fix high-contrast support (bsc#76811 and related to bsc#780621)
+- 2.46.27
+
+-------------------------------------------------------------------
 Sun Sep 25 18:49:32 CEST 2016 - [email protected]
 
 - Fix compilation with Qt 5.7 by using non-deprecated classes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/package/libyui-qt.spec 
new/libyui-qt-2.46.27/package/libyui-qt.spec
--- old/libyui-qt-2.46.26/package/libyui-qt.spec        2016-09-26 
13:49:10.000000000 +0200
+++ new/libyui-qt-2.46.27/package/libyui-qt.spec        2016-10-11 
12:04:11.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           libyui-qt
-Version:        2.46.26
+Version:        2.46.27
 Release:        0
 Source:         %{name}-%{version}.tar.bz2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/src/QY2Styler.cc 
new/libyui-qt-2.46.27/src/QY2Styler.cc
--- old/libyui-qt-2.46.26/src/QY2Styler.cc      2016-09-26 13:49:10.000000000 
+0200
+++ new/libyui-qt-2.46.27/src/QY2Styler.cc      2016-10-11 12:04:11.000000000 
+0200
@@ -40,6 +40,7 @@
 #include <QSvgRenderer>
 #include <iostream>
 #include <QPixmapCache>
+#include <QFileInfo>
 
 #define LOGGING_CAUSES_QT4_THREADING_PROBLEMS  1
 
@@ -50,11 +51,16 @@
 using namespace std;
 
 
-QY2Styler::QY2Styler( QObject * parent )
+QY2Styler::QY2Styler( QObject * parent,
+                      const QString & defaultStyleSheet,
+                      const QString & highContrastStyleSheet)
     : QObject( parent )
 {
     QPixmapCache::setCacheLimit( 5 * 1024 );
     yuiDebug() << "Styler created" << std::endl;
+    setDefaultStyleSheet(defaultStyleSheet);
+    setHighContrastStyleSheet(highContrastStyleSheet);
+    _currentStyleSheet = QString( "" );
 }
 
 
@@ -64,39 +70,75 @@
     static QY2Styler * styler = 0;
 
     if ( ! styler )
-    {
-       yuiDebug() << "Creating QY2Styler singleton" << std::endl;
+        {
+            yuiDebug() << "Creating QY2Styler singleton" << std::endl;
 
-       styler = new QY2Styler( qApp );
-       YUI_CHECK_NEW( styler );
+            QString y2style = getenv("Y2STYLE");
+            QString y2highcontrast = getenv("Y2HIGHCONTRAST");
+            styler = new QY2Styler( qApp, y2style, y2highcontrast );
+
+            YUI_CHECK_NEW( styler );
+            if (y2highcontrast.isEmpty())
+                styler->loadDefaultStyleSheet();
+            else
+                styler->loadHighContrastStyleSheet();
+        }
+    return styler;
+}
 
-       QString style = getenv("Y2STYLE");
+void QY2Styler::setDefaultStyleSheet(const QString & styleSheet)
+{
+    QFileInfo fileInfo(themeDir() + styleSheet);
 
-       if ( ! style.isEmpty() )
-           styler->loadStyleSheet( style );
-       else
-           styler->loadStyleSheet( "style.qss" );
+    if (fileInfo.isFile())
+    {
+        _defaultStyleSheet = styleSheet;
+        yuiDebug() << "Setting high-contrast style sheet to "
+                   << _defaultStyleSheet << std::endl;
     }
+}
 
-    return styler;
+void QY2Styler::setHighContrastStyleSheet(const QString & styleSheet)
+{
+    QFileInfo fileInfo(themeDir() + styleSheet);
+
+    if (fileInfo.isFile())
+    {
+        _highContrastStyleSheet = styleSheet;
+        yuiDebug() << "Setting default style sheet to "
+                   << _highContrastStyleSheet << std::endl;
+    }
 }
 
+void QY2Styler::loadDefaultStyleSheet()
+{
+    if (loadStyleSheet(_defaultStyleSheet))
+        _usingHighContrastStyleSheet = false;
+}
+
+void QY2Styler::loadHighContrastStyleSheet()
+{
+    if (loadStyleSheet(_highContrastStyleSheet))
+        _usingHighContrastStyleSheet = true;
+}
 
-void QY2Styler::loadStyleSheet( const QString & filename )
+bool QY2Styler::loadStyleSheet( const QString & filename )
 {
     QFile file( themeDir() + filename );
 
     if ( file.open( QIODevice::ReadOnly ) )
     {
-       yuiMilestone() << "Using style sheet \"" << file.fileName() << "\"" << 
std::endl;
-       QString text = file.readAll();
-       setStyleSheet( text );
+        yuiMilestone() << "Using style sheet \"" << file.fileName() << "\"" << 
std::endl;
+        QString text = file.readAll();
+        _currentStyleSheet = QString(filename);
+        setStyleSheet( text );
+        return true;
     }
     else
     {
         yuiMilestone() << "Couldn't open style sheet \"" << file.fileName() << 
"\"" << std::endl;
+        return false;
     }
-
 }
 
 void QY2Styler::setStyleSheet( const QString & text )
@@ -115,6 +157,13 @@
         registered_widget->setStyleSheet( _style );
 }
 
+void QY2Styler::toggleHighContrastStyleSheet()
+{
+    if (usingHighContrastStyleSheet())
+        loadDefaultStyleSheet();
+    else
+        loadHighContrastStyleSheet();
+}
 
 void QY2Styler::processUrls( QString & text )
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/src/QY2Styler.h 
new/libyui-qt-2.46.27/src/QY2Styler.h
--- old/libyui-qt-2.46.26/src/QY2Styler.h       2016-09-26 13:49:10.000000000 
+0200
+++ new/libyui-qt-2.46.27/src/QY2Styler.h       2016-10-11 12:04:11.000000000 
+0200
@@ -32,6 +32,8 @@
 #include <QImage>
 #include <QMap>
 
+#define HIGH_CONTRAST_STYLE_SHEET "highcontrast.qss"
+#define DEFAULT_STYLE_SHEET "style.qss"
 
 class QY2Styler : public QObject
 {
@@ -43,20 +45,100 @@
      * Constructor. Use the static styler() function instead to return the
      * singleton for this class.
      **/
-    QY2Styler( QObject * parent );
+    QY2Styler( QObject * parent,
+               const QString & defaultStyleSheet = "",
+               const QString & highContrastStyleSheet = "" );
 
 public:
 
     static QY2Styler * styler();
 
-    void loadStyleSheet( const QString &file );         // reads style sheet 
form a file
+    /**
+     * Loads and apply a style sheet from a file.
+     *
+     * \param file Filename. It should live in the themeDir() directory.
+     * \return true if the file was found (and applied); false otherwise.
+     */
+    bool loadStyleSheet( const QString &file );
+
+    /**
+     * Applies a style sheet from a string.
+     *
+     * \param text Style sheet content.
+     */
     void setStyleSheet( const QString & text );
+
+    /**
+     * Loads the default stylesheet.
+     *
+     * The default stylesheet is determined by the environment variable 
Y2STYLE.
+     * If this variable is not set, the DEFAULT_STYLE_SHEET style sheet will 
be used.
+     */
+    void loadDefaultStyleSheet();
+
+    /**
+     * Loads the high-contrast stylesheet.
+     */
+    void loadHighContrastStyleSheet();
+
+    /**
+     * Returns the path to the style sheets directory.
+     */
     QString themeDir() const;
+
+    /**
+     * Registers a widget and applies the style sheet
+     *
+     * \param widget Widget to register.
+     */
     void registerWidget( QWidget *widget );
+
+    /**
+     * Unregisters a widget.
+     *
+     * \param widget Widget to unregister.
+     */
     void unregisterWidget( QWidget *widget );
+
+
+    /**
+     * Registers a child widget.
+     *
+     * \param parent Parent widget.
+     * \param widget Widget to register.
+     */
     void registerChildWidget( QWidget *parent, QWidget *widget );
+
     QString textStyle() const { return _textStyle; }
 
+    /**
+     * Set style sheet for the default theme
+     *
+     * If the style sheet does not exists, it won't be changed.
+     *
+     * \param styleSheet Style sheet file name
+     */
+    void setDefaultStyleSheet(const QString & styleSheet);
+
+    /**
+     * Set style sheet for the high contrast theme
+     *
+     * If the style sheet does not exists, it won't be changed.
+     *
+     * \param styleSheet Style sheet file name
+     */
+    void setHighContrastStyleSheet(const QString & styleSheet);
+
+    /**
+     * Toggle between default/high-contrast style sheets.
+     */
+    void toggleHighContrastStyleSheet();
+
+    /**
+     * Determines if the high-contrast style is being used.
+     */
+    bool usingHighContrastStyleSheet() { return _usingHighContrastStyleSheet; }
+
     bool updateRendering( QWidget *wid );
 
 protected:
@@ -75,6 +157,10 @@
      **/
     bool eventFilter( QObject * obj, QEvent * ev );
 
+    QString _currentStyleSheet;
+    QString _defaultStyleSheet = DEFAULT_STYLE_SHEET;
+    QString _highContrastStyleSheet = HIGH_CONTRAST_STYLE_SHEET;
+    bool _usingHighContrastStyleSheet = false;
 
 private:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/src/YQDialog.cc 
new/libyui-qt-2.46.27/src/YQDialog.cc
--- old/libyui-qt-2.46.26/src/YQDialog.cc       2016-09-26 13:49:10.000000000 
+0200
+++ new/libyui-qt-2.46.27/src/YQDialog.cc       2016-10-11 12:04:11.000000000 
+0200
@@ -615,9 +615,9 @@
        else if ( event->key()       == Qt::Key_F4 &&   // Shift-F4: toggle 
colors for vision impaired users
                  event->modifiers() == Qt::ShiftModifier )
        {
-           YQUI::ui()->toggleVisionImpairedPalette();
+      QY2Styler::styler()->toggleHighContrastStyleSheet();
 
-           if ( YQUI::ui()->usingVisionImpairedPalette() )
+           if ( QY2Styler::styler()->usingHighContrastStyleSheet() )
            {
                QWidget* parent = 0;
                YDialog * currentDialog = YDialog::currentDialog( false );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/src/YQUI.cc 
new/libyui-qt-2.46.27/src/YQUI.cc
--- old/libyui-qt-2.46.26/src/YQUI.cc   2016-09-26 13:49:10.000000000 +0200
+++ new/libyui-qt-2.46.27/src/YQUI.cc   2016-10-11 12:04:11.000000000 +0200
@@ -103,7 +103,6 @@
     _uiInitialized             = false;
     _fatalError                        = false;
     _fullscreen                        = false;
-    _usingVisionImpairedPalette = false;
     _noborder                  = false;
     screenShotNameTemplate     = "";
     _blockedLevel              = 0;
@@ -158,7 +157,6 @@
     _busyCursorTimer = new QTimer( _signalReceiver );
     _busyCursorTimer->setSingleShot( true );
 
-    _normalPalette = qApp->palette();
     (void) QY2Styler::styler();        // Make sure QY2Styler singleton is 
created
 
     setButtonOrderFromEnvironment();
@@ -628,60 +626,6 @@
     _eventHandler.deletePendingEventsFor( widget );
 }
 
-
-void YQUI::toggleVisionImpairedPalette()
-{
-    if ( _usingVisionImpairedPalette )
-    {
-       qApp->setPalette( normalPalette());  // informWidgets
-
-       _usingVisionImpairedPalette = false;
-    }
-    else
-    {
-       qApp->setPalette( visionImpairedPalette() );  // informWidgets
-
-       _usingVisionImpairedPalette = true;
-    }
-}
-
-
-QPalette
-YQUI::visionImpairedPalette()
-{
-    const QColor dark  ( 0x20, 0x20, 0x20 );
-    QPalette pal;
-
-    // for the active window (the one with the keyboard focus)
-    pal.setColor( QPalette::Active, QPalette::Background,      Qt::black       
);
-    pal.setColor( QPalette::Active, QPalette::Foreground,      Qt::cyan        
);
-    pal.setColor( QPalette::Active, QPalette::Text,            Qt::cyan        
);
-    pal.setColor( QPalette::Active, QPalette::Base,            dark            
);
-    pal.setColor( QPalette::Active, QPalette::Button,          dark            
);
-    pal.setColor( QPalette::Active, QPalette::ButtonText,      Qt::green       
);
-    pal.setColor( QPalette::Active, QPalette::Highlight,       Qt::yellow      
);
-    pal.setColor( QPalette::Active, QPalette::HighlightedText, Qt::black       
);
-
-    // for other windows (those that don't have the keyboard focus)
-    pal.setColor( QPalette::Inactive, QPalette::Background,    Qt::black       
);
-    pal.setColor( QPalette::Inactive, QPalette::Foreground,    Qt::cyan        
);
-    pal.setColor( QPalette::Inactive, QPalette::Text,          Qt::cyan        
);
-    pal.setColor( QPalette::Inactive, QPalette::Base,          dark            
);
-    pal.setColor( QPalette::Inactive, QPalette::Button,                dark    
        );
-    pal.setColor( QPalette::Inactive, QPalette::ButtonText,    Qt::green       
);
-
-    // for disabled widgets
-    pal.setColor( QPalette::Disabled, QPalette::Background,    Qt::black       
);
-    pal.setColor( QPalette::Disabled, QPalette::Foreground,    Qt::gray        
);
-    pal.setColor( QPalette::Disabled, QPalette::Text,          Qt::gray        
);
-    pal.setColor( QPalette::Disabled, QPalette::Base,          dark            
);
-    pal.setColor( QPalette::Disabled, QPalette::Button,                dark    
        );
-    pal.setColor( QPalette::Disabled, QPalette::ButtonText,    Qt::gray        
);
-
-    return pal;
-}
-
-
 // FIXME: Does this still do anything now that YQUI is no longer a QObject?
 bool YQUI::close()
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-2.46.26/src/YQUI.h 
new/libyui-qt-2.46.27/src/YQUI.h
--- old/libyui-qt-2.46.26/src/YQUI.h    2016-09-26 13:49:10.000000000 +0200
+++ new/libyui-qt-2.46.27/src/YQUI.h    2016-10-11 12:04:11.000000000 +0200
@@ -28,7 +28,6 @@
 #include <qapplication.h>
 #include <QMap>
 #include <QTimer>
-#include <QPalette>
 #include <vector>
 #include <type_traits>
 
@@ -272,27 +271,6 @@
     static void setTextdomain( const char * domain );
 
     /**
-     * Returns a high-contrast color palette suitable for vision impaired 
users.
-     **/
-    static QPalette visionImpairedPalette();
-
-    /**
-     * Returns the normal color palette
-     **/
-    QPalette normalPalette() const { return _normalPalette; }
-
-    /**
-     * Toggle between the vision impaired and the normal color palette.
-     **/
-    void toggleVisionImpairedPalette();
-
-    /**
-     * Returns 'true' if high-contrast colors for vision impaired users is in 
use.
-     * This should be queried at other places before using custom colors.
-     **/
-    bool usingVisionImpairedPalette() const { return 
_usingVisionImpairedPalette; }
-
-    /**
      * Returns the application name for the window title (e.g. 
"YaST2@hostname")
      **/
     QString applicationTitle() { return _applicationTitle; }
@@ -369,9 +347,6 @@
     YSimpleEventHandler _eventHandler;
     int                _blockedLevel;
 
-    QPalette           _normalPalette;
-    bool               _usingVisionImpairedPalette;
-
     bool               _leftHandedMouse;
     bool               _askedForLeftHandedMouse;
 


Reply via email to