Author: coolo
Date: Tue Dec 4 12:20:33 2007
New Revision: 42648
URL: http://svn.opensuse.org/viewcvs/yast?rev=42648&view=rev
Log:
parse the stylesheet in an extra class
Added:
branches/tmp/coolo/qt4-port/src/QY2Styler.cc
branches/tmp/coolo/qt4-port/src/QY2Styler.h
Modified:
branches/tmp/coolo/qt4-port/src/CMakeLists.txt
branches/tmp/coolo/qt4-port/src/YQUI.h
branches/tmp/coolo/qt4-port/src/YQUI_core.cc
branches/tmp/coolo/qt4-port/theme/style.qss
Modified: branches/tmp/coolo/qt4-port/src/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/coolo/qt4-port/src/CMakeLists.txt?rev=42648&r1=42647&r2=42648&view=diff
==============================================================================
--- branches/tmp/coolo/qt4-port/src/CMakeLists.txt (original)
+++ branches/tmp/coolo/qt4-port/src/CMakeLists.txt Tue Dec 4 12:20:33 2007
@@ -26,7 +26,8 @@
YQRichText.cc YQSelectionBox.cc YQSignalBlocker.cc YQSlider.cc
YQSpacing.cc YQSquash.cc YQTable.cc YQTimeField.cc YQTree.cc
YQUI_builtins.cc YQUI_core.cc YQUI_widgets.cc YQUI_x11.cc
- YQWidgetCaption.cc YQWidgetFactory.cc YQWizardButton.cc YQWizard.cc
+ YQWidgetCaption.cc YQWidgetFactory.cc YQWizardButton.cc
+ YQWizard.cc QY2Styler.cc
)
QT4_AUTOMOC(${qt4_yast_plugin_SRCS})
Added: branches/tmp/coolo/qt4-port/src/QY2Styler.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/coolo/qt4-port/src/QY2Styler.cc?rev=42648&view=auto
==============================================================================
--- branches/tmp/coolo/qt4-port/src/QY2Styler.cc (added)
+++ branches/tmp/coolo/qt4-port/src/QY2Styler.cc Tue Dec 4 12:20:33 2007
@@ -0,0 +1,48 @@
+#include "QY2Styler.h"
+#include <QFile>
+#include <QString>
+#include <QStringList>
+#include <QApplication>
+
+QY2Styler::QY2Styler( QObject *parent )
+ : QObject( parent )
+{
+}
+
+void QY2Styler::setStyleSheet( const QString &filename )
+{
+ QFile file( themeDir() + filename );
+ if ( file.open( QIODevice::ReadOnly ) )
+ {
+ QString content = file.readAll();
+ processUrls( content );
+ qApp->setStyleSheet( content );
+ }
+}
+
+void QY2Styler::processUrls(QString &text) const
+{
+ QString result;
+ QStringList lines = text.split( '\n' );
+ QRegExp urlx( ": *url\\((.*)\\)" );
+ QRegExp backgroundx( "^ */\\* *Background: *([^ ]*) *([^ ]*) *\\*/$" );
+ for ( QStringList::const_iterator it = lines.begin(); it != lines.end(); ++it )
+ {
+ QString line = *it;
+ if ( urlx.indexIn( line ) >= 0 )
+ line.replace( urlx, ": url(" + themeDir() + urlx.cap( 1 ) + ")");
+
+ if ( backgroundx.exactMatch( line ) )
+ _backgrounds[backgroundx.cap( 1 )] = backgroundx.cap( 2 );
+
+ result += line;
+ }
+ text = result;
+}
+
+QString QY2Styler::themeDir() const
+{
+ return THEMEDIR "/openSUSE/wizard/";
+}
+
+#include "QY2Styler.moc"
Added: branches/tmp/coolo/qt4-port/src/QY2Styler.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/coolo/qt4-port/src/QY2Styler.h?rev=42648&view=auto
==============================================================================
--- branches/tmp/coolo/qt4-port/src/QY2Styler.h (added)
+++ branches/tmp/coolo/qt4-port/src/QY2Styler.h Tue Dec 4 12:20:33 2007
@@ -0,0 +1,25 @@
+#ifndef QY2STYLER_H
+#define QY2STYLER_H
+
+#include <QObject>
+#include <QHash>
+#include <QString>
+
+class QY2Styler : public QObject
+{
+ Q_OBJECT
+
+public:
+ QY2Styler( QObject *parent );
+
+ void setStyleSheet( const QString &file );
+ QString themeDir() const;
+
+protected:
+ void processUrls(QString &text) const;
+
+private:
+ QHash