-rw-r--r-- | noncore/styles/theme/othemebase.cpp | 2 | ||||
-rw-r--r-- | noncore/styles/theme/themeset.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/noncore/styles/theme/othemebase.cpp b/noncore/styles/theme/othemebase.cpp index d2226e6..4275dd6 100644 --- a/noncore/styles/theme/othemebase.cpp +++ b/noncore/styles/theme/othemebase.cpp @@ -213,193 +213,193 @@ void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames, pixmaps[ destID ] = NULL; images[ destID ] = NULL; if ( !pixnames[ destID ].isEmpty() ) { if ( scaleHints[ sourceID ] == TileScale && blends[ sourceID ] == 0.0 ) { pixmaps[ destID ] = pixmaps[ sourceID ]; duplicate[ destID ] = true; } if ( !duplicate[ destID ] ) { pixmaps[ destID ] = loadPixmap( pixnames[ destID ] ); if ( scaleHints[ destID ] == TileScale && blends[ destID ] == 0.0 ) images[ destID ] = NULL; else images[ destID ] = loadImage( pixnames[ destID ] ); } } // border pixmap pbDuplicate[ destID ] = false; pbPixmaps[ destID ] = NULL; pbWidth[ destID ] = pbWidth[ sourceID ]; brdnames[ destID ] = brdnames[ sourceID ]; if ( !brdnames[ destID ].isEmpty() ) { pbPixmaps[ destID ] = pbPixmaps[ sourceID ]; pbDuplicate[ destID ] = true; } if ( sourceID == ActiveTab && destID == InactiveTab ) aTabLine = iTabLine; else if ( sourceID == InactiveTab && destID == ActiveTab ) iTabLine = aTabLine; } void OThemeBase::readConfig( Qt::GUIStyle /*style*/ ) { #define PREBLEND_ITEMS 12 static WidgetType preBlend[] = {Slider, IndicatorOn, IndicatorOff, ExIndicatorOn, ExIndicatorOff, HScrollDeco, VScrollDeco, HScrollDecoDown, VScrollDecoDown, ComboDeco, ComboDecoDown, CheckMark}; int i; QString tmpStr; QString copyfrom[ WIDGETS ]; QString pixnames[ WIDGETS ]; // used for duplicate check QString brdnames[ WIDGETS ]; bool loaded[ WIDGETS ]; // used for preloading for CopyWidget if ( configFileName.isEmpty() ) { Config cfg ( "qpe" ); cfg. setGroup ( "Appearance" ); configFileName = cfg. readEntry ( "Theme", "default" ); } Config config( configFilePath + "/themes/" + configFileName + ".themerc" , Config::File ); // Are we initalized? applyMiscResourceGroup( &config ); for ( i = 0; i < INHERIT_ITEMS; ++i ) { applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); } for ( ; i < INHERIT_ITEMS*2; ++i ) { if ( config.hasGroup( QString( widgetEntries[ i ] ) ) ) { applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); } else { copyfrom [ i ] = widgetEntries[ i - INHERIT_ITEMS ]; } } for ( ; i < WIDGETS; ++i ) { applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); } // initalize defaults that may not be read for ( i = 0; i < WIDGETS; ++i ) loaded[ i ] = false; btnXShift = btnYShift = focus3DOffset = 0; aTabLine = iTabLine = true; roundedButton = roundedCombo = roundedSlider = focus3D = false; splitterWidth = 10; for ( i = 0; i < WIDGETS; ++i ) { readResourceGroup( i, copyfrom, pixnames, brdnames, loaded ); } // misc items readMiscResourceGroup(); // Handle preblend items for ( i = 0; i < PREBLEND_ITEMS; ++i ) { if ( pixmaps[ preBlend[ i ] ] != NULL && blends[ preBlend[ i ] ] != 0.0 ) blend( preBlend[ i ] ); } } OThemeBase::OThemeBase( const QString & configFile ) : QWindowsStyle() { - configFilePath = QPEApplication::qpeDir ( ) + "/plugins/styles/"; + configFilePath = QPEApplication::qpeDir ( ) + "plugins/styles/"; configFileName = configFile; readConfig( Qt::WindowsStyle ); cache = new OThemeCache( cacheSize ); } void OThemeBase::applyConfigFile( const QString &/*file*/ ) { #if 0 // handle std color scheme Config inConfig( file, Config::File ); Config globalConfig ( "qpe" ); globalConfig. setGroup ( "Apperance" ); inConfig. setGroup( "General" ); if ( inConfig.hasKey( "foreground" ) ) globalConfig.writeEntry( "Text", inConfig.readEntry( "foreground", " " ) ); if ( inConfig.hasKey( "background" ) ) globalConfig.writeEntry( "Background", inConfig.readEntry( "background", " " ) ); if ( inConfig.hasKey( "selectForeground" ) ) globalConfig.writeEntry( "HighlightedText", inConfig.readEntry( "selectForeground", " " ) ); if ( inConfig.hasKey( "selectBackground" ) ) globalConfig.writeEntry( "Highlight", inConfig.readEntry( "selectBackground", " " ) ); if ( inConfig.hasKey( "windowForeground" ) ) globalConfig.writeEntry( "Text", inConfig.readEntry( "windowForeground", " " ) ); if ( inConfig.hasKey( "windowBackground" ) ) globalConfig.writeEntry( "Base", inConfig.readEntry( "windowBackground", " " ) ); // Keep track of the current theme so that we can select the right one // in the KControl module. globalConfig.writeEntry ( "CurrentTheme", file ); globalConfig.write(); #endif } OThemeBase::~OThemeBase() { int i; for ( i = 0; i < WIDGETS; ++i ) { if ( !duplicate[ i ] ) { if ( images[ i ] ) delete images[ i ]; if ( pixmaps[ i ] ) delete pixmaps[ i ]; } if ( !pbDuplicate[ i ] && pbPixmaps[ i ] ) delete pbPixmaps[ i ]; if ( colors[ i ] ) delete( colors[ i ] ); if ( grLowColors[ i ] ) delete( grLowColors[ i ] ); if ( grHighColors[ i ] ) delete( grHighColors[ i ] ); } delete cache; } QImage* OThemeBase::loadImage( QString &name ) { QImage * image = new QImage; QString path = configFilePath + "/pixmaps/" + name; image->load( path ); if ( !image->isNull() ) return ( image ); odebug << "OThemeBase: Unable to load image " << name.ascii ( ) << oendl; delete image; return ( NULL ); } OThemePixmap* OThemeBase::loadPixmap( QString &name ) { OThemePixmap * pixmap = new OThemePixmap( false ); QString path = configFilePath + "/pixmaps/" + name; pixmap->load( path ); if ( !pixmap->isNull() ) return pixmap; odebug << "OThemeBase: Unable to load pixmap " << name.ascii() << oendl; delete pixmap; return ( NULL ); } OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget ) { if ( scaleHints[ widget ] == FullScale ) { if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || pixmaps[ widget ] ->height() != h ) { OThemePixmap * cachePix = cache->pixmap( w, h, widget ); if ( cachePix ) { cachePix = new OThemePixmap( *cachePix ); if ( pixmaps[ widget ] ) cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); else odebug << "We would have inserted a null pixmap!\n" << oendl; diff --git a/noncore/styles/theme/themeset.cpp b/noncore/styles/theme/themeset.cpp index d4005bc..3205106 100644 --- a/noncore/styles/theme/themeset.cpp +++ b/noncore/styles/theme/themeset.cpp @@ -1,124 +1,124 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include "themeset.h" #include <qpe/qpeapplication.h> #include <qpe/global.h> #include <qlabel.h> #include <qlayout.h> #include <qlistview.h> #include <qdir.h> #include <qpe/config.h> class MyConfig : public Config { public: MyConfig ( const QString &f, Domain d ) : Config ( f, d ) { } bool hasGroup ( const QString &gname ) const { QMap< QString, ConfigGroup>::ConstIterator it = groups. find ( gname ); return ( it != groups.end() ); } }; class MyItem : public QListViewItem { public: MyItem ( QListView *lv, QListViewItem *after, const QString &name, const QString &comm, const QString &theme ) : QListViewItem ( lv, after, name, comm ) { m_theme = theme; } QString m_theme; }; ThemeSettings::ThemeSettings ( QWidget* parent, const char *name, WFlags fl ) : QWidget ( parent, name, fl ) { setCaption ( tr( "Theme Style" ) ); Config config ( "qpe" ); config. setGroup ( "Appearance" ); QString active = config. readEntry ( "Theme", "default" ); QVBoxLayout *vbox = new QVBoxLayout ( this ); vbox-> setSpacing ( 3 ); vbox-> setMargin ( 6 ); vbox-> addWidget ( new QLabel ( tr( "Select the theme to be used" ), this )); m_list = new QListView ( this ); m_list-> addColumn ( tr( "Name" )); m_list-> addColumn ( tr( "Description" )); m_list-> setSelectionMode ( QListView::Single ); m_list-> setAllColumnsShowFocus ( true ); m_list-> setSorting ( -1 ); vbox-> addWidget ( m_list, 10 ); QListViewItem *item = new MyItem ( m_list, 0, tr( "[No theme]" ), "", "" ); m_list-> setSelected ( item, true ); - QString path = QPEApplication::qpeDir() + "/plugins/styles/themes"; + QString path = QPEApplication::qpeDir() + "plugins/styles/themes"; QStringList list = QDir ( path, "*.themerc" ). entryList ( ); for ( QStringList::Iterator it = list. begin(); it != list. end ( ); ++it ) { MyConfig cfg ( path + "/" + *it, Config::File ); if ( cfg. hasGroup ( "Misc" )) { cfg. setGroup ( "Misc" ); QString name = cfg. readEntry ( "Name" ); QString comm = cfg. readEntry ( "Comment" ); if ( !name. isEmpty ( )) { QString fname = (*it). left ((*it). length ( ) - 8 ); item = new MyItem ( m_list, item, name, comm, fname ); if ( active == fname ) { m_list-> setSelected ( item, true ); } } } } } bool ThemeSettings::writeConfig ( ) { Config config ( "qpe" ); config. setGroup ( "Appearance" ); MyItem *it = (MyItem *) m_list-> selectedItem ( ); config. writeEntry ( "Theme", it ? it-> m_theme : QString ( "" )); config. write ( ); return true; } |