-rw-r--r-- | noncore/settings/appearance2/appearance.cpp | 2 | ||||
-rw-r--r-- | noncore/settings/appearance2/stylelistitem.h | 9 |
2 files changed, 5 insertions, 6 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp index 8cd54a2..4132b30 100644 --- a/noncore/settings/appearance2/appearance.cpp +++ b/noncore/settings/appearance2/appearance.cpp @@ -12,257 +12,257 @@ ._= =} : or (at your option) any later version. .%`+i> _;_. .i_,=:_. -<s. This file is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General ..}^=.= = ; Public License for more details. ++= -. .` .: : = ...= . :.=- You should have received a copy of the GNU -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "appearance.h" #include "editScheme.h" #include <opie/ofiledialog.h> #include <opie/otabwidget.h> #include <qpe/applnk.h> #include <qpe/config.h> #include <qpe/global.h> #include <qpe/resource.h> #include <qpe/qpeapplication.h> #if defined(Q_WS_QWS) && !defined(QT_NO_COP) #include <qpe/qcopenvelope_qws.h> #endif #include <qaction.h> #include <qbuttongroup.h> #include <qcheckbox.h> #include <qcombobox.h> #include <qdialog.h> #include <qdir.h> #include <qlabel.h> #include <qlayout.h> #include <qlineedit.h> #include <qlistbox.h> #include <qmessagebox.h> #include <qmultilineedit.h> #include <qpopupmenu.h> #include <qpushbutton.h> #include <qradiobutton.h> #if QT_VERSION >= 300 #include <qstylefactory.h> #else #include <qwindowsstyle.h> #include <qpe/qpestyle.h> #include <qpe/lightstyle.h> #include <qpe/qlibrary.h> #include <qpe/styleinterface.h> #endif #include <qtabwidget.h> #include <qtoolbutton.h> #include <qvgroupbox.h> #include <qwidget.h> #include "stylelistitem.h" #include "decolistitem.h" #include "colorlistitem.h" #include "sample.h" #include <opie/ofontselector.h> class DefaultWindowDecoration : public WindowDecorationInterface { public: DefaultWindowDecoration() : ref(0) {} QString name() const { return "Default"; } QPixmap icon() const { return QPixmap(); } QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { *iface = 0; if ( uuid == IID_QUnknown ) *iface = this; else if ( uuid == IID_WindowDecoration ) *iface = this; if ( *iface ) (*iface)->addRef(); return QS_OK; } Q_REFCOUNT private: ulong ref; }; void Appearance::loadStyles ( QListBox *list ) { #if QT_VERSION >= 300 list->insertStringList(QStyleFactory::styles()); #else list->insertItem( new StyleListItem ( "Windows", new QWindowsStyle ( ))); list->insertItem( new StyleListItem ( "Light", new LightStyle ( ))); #ifndef QT_NO_STYLE_MOTIF list->insertItem( new StyleListItem ( "Motif", new QMotifStyle ( ))); #endif #ifndef QT_NO_STYLE_MOTIFPLUS list->insertItem( new StyleListItem ( "MotifPlus", new QMotifPlusStyle ( ))); #endif #ifndef QT_NO_STYLE_PLATINUM list->insertItem( new StyleListItem ( "Platinum", new QPlatinumStyle ( ))); #endif #endif list->insertItem( new StyleListItem ( "QPE", new QPEStyle ( ))); #if QT_VERSION < 300 { QString path = QPEApplication::qpeDir() + "/plugins/styles/"; QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { QLibrary *lib = new QLibrary ( path + "/" + *it ); StyleInterface *iface; - if ( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) + if (( lib-> queryInterface ( IID_Style, (QUnknownInterface **) &iface ) == QS_OK ) && iface ) list-> insertItem ( new StyleListItem ( lib, iface )); else delete lib; } } #endif } void Appearance::loadDecos ( QListBox *list ) { list-> insertItem ( new DecoListItem ( "QPE" )); { QString path = QPEApplication::qpeDir() + "/plugins/decorations/"; QStringList sl = QDir ( path, "lib*.so" ). entryList ( ); for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { QLibrary *lib = new QLibrary ( path + "/" + *it ); WindowDecorationInterface *iface; if ( lib-> queryInterface ( IID_WindowDecoration, (QUnknownInterface **) &iface ) == QS_OK ) list-> insertItem ( new DecoListItem ( lib, iface )); else delete lib; } } } void Appearance::loadColors ( QListBox *list ) { list-> clear ( ); { Config config ( "qpe" ); config. setGroup ( "Appearance" ); list-> insertItem ( new ColorListItem ( tr( "Current scheme" ), config )); } QString path = QPEApplication::qpeDir ( ) + "/etc/colors/"; QStringList sl = QDir ( path ). entryList ( "*.scheme" ); for ( QStringList::Iterator it = sl. begin ( ); it != sl. end ( ); ++it ) { QString name = (*it). left ((*it). find ( ".scheme" )); Config config ( path + *it, Config::File ); config. setGroup ( "Colors" ); list-> insertItem ( new ColorListItem ( name, config )); } } QWidget *Appearance::createStyleTab ( QWidget *parent ) { Config config ( "qpe" ); config. setGroup ( "Appearance" ); QWidget* tab = new QWidget( parent, "StyleTab" ); QVBoxLayout* vertLayout = new QVBoxLayout( tab, 4, 4 ); m_style_list = new QListBox( tab, "m_style_list" ); vertLayout->addWidget( m_style_list ); m_style_settings = new QPushButton ( tr( "Settings..." ), tab ); connect ( m_style_settings, SIGNAL( clicked ( )), this, SLOT( styleSettingsClicked ( ))); vertLayout-> addWidget ( m_style_settings ); loadStyles ( m_style_list ); QString s = config. readEntry ( "Style", "Light" ); for ( uint i = 0; i < m_style_list-> count ( ); i++ ) { if (((StyleListItem *) m_style_list-> item ( i ))-> key ( ) == s ) { m_style_list-> setCurrentItem ( i ); break; } } m_original_style = m_style_list-> currentItem ( ); styleClicked ( m_original_style ); connect( m_style_list, SIGNAL( highlighted( int ) ), this, SLOT( styleClicked( int ) ) ); return tab; } QWidget *Appearance::createDecoTab ( QWidget *parent ) { Config config ( "qpe" ); config. setGroup ( "Appearance" ); QWidget* tab = new QWidget( parent, "DecoTab" ); QVBoxLayout* vertLayout = new QVBoxLayout( tab, 4, 4 ); m_deco_list = new QListBox( tab, "m_deco_list" ); vertLayout->addWidget( m_deco_list ); loadDecos ( m_deco_list ); QString s = config. readEntry ( "Decoration" ); for ( uint i = 0; i < m_deco_list-> count ( ); i++ ) { if (((DecoListItem *) m_deco_list-> item ( i ))-> key ( ) == s ) { m_deco_list-> setCurrentItem ( i ); break; } } m_original_deco = m_deco_list-> currentItem ( ); if ( m_deco_list-> currentItem ( ) < 0 ) m_deco_list-> setCurrentItem ( 0 ); decoClicked ( m_original_deco ); connect( m_deco_list, SIGNAL( highlighted( int ) ), this, SLOT( decoClicked( int ) ) ); return tab; } QWidget *Appearance::createFontTab ( QWidget *parent ) { Config config ( "qpe" ); config. setGroup ( "Appearance" ); QString familyStr = config.readEntry( "FontFamily", "Helvetica" ); QString styleStr = config.readEntry( "FontStyle", "Regular" ); int size = config.readNumEntry( "FontSize", 10 ); m_fontselect = new OFontSelector ( false, parent, "FontTab" ); diff --git a/noncore/settings/appearance2/stylelistitem.h b/noncore/settings/appearance2/stylelistitem.h index e261511..caefad8 100644 --- a/noncore/settings/appearance2/stylelistitem.h +++ b/noncore/settings/appearance2/stylelistitem.h @@ -1,113 +1,112 @@ /* =. This file is part of the OPIE Project .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> .>+-= _;:, .> :=|. This file is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; either version 2 of the License, ._= =} : or (at your option) any later version. .%`+i> _;_. .i_,=:_. -<s. This file is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General ..}^=.= = ; Public License for more details. ++= -. .` .: : = ...= . :.=- You should have received a copy of the GNU -. .:....=;==+<; General Public License along with this file; -_. . . )=. = see the file COPYING. If not, write to the -- :-=` Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef STYLELISTITEM_H #define STYLELISTITEM_H #include <qlistbox.h> #include <qpe/styleinterface.h> #include <stdio.h> class StyleListItem : public QListBoxText { public: StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t ) { m_lib = 0; m_style_if = 0; m_settings_if = 0; m_style = sty; } StyleListItem ( QLibrary *lib, StyleInterface *iface ) : QListBoxText ( iface-> name ( )) { m_lib = lib; m_style_if = iface; m_settings_if = 0; - m_style = iface-> create ( ); + m_style = iface-> style ( ); - iface-> queryInterface ( IID_StyleSettings, (QUnknownInterface **) &m_settings_if ); + iface-> queryInterface ( IID_StyleExtended, (QUnknownInterface **) &m_settings_if ); } virtual ~StyleListItem ( ) { delete m_style; if ( m_settings_if ) m_settings_if-> release ( ); if ( m_style_if ) m_style_if-> release ( ); delete m_lib; } bool hasSettings ( ) const { - return ( m_settings_if ); + return m_settings_if ? m_settings_if-> hasSettings ( ) : false; } QWidget *settings ( QWidget *parent ) { return m_settings_if ? m_settings_if-> create ( parent ) : 0; } bool setSettings ( bool accepted ) { if ( !m_settings_if ) return false; if ( accepted ) return m_settings_if-> accept ( ); else { m_settings_if-> reject ( ); return false; } } QString key ( ) { if ( m_lib ) return QFileInfo ( m_lib-> library ( )). fileName ( ); - //return QString ( m_style_if-> key ( )); else return text ( ); } QStyle *style ( ) { return m_style; } private: QLibrary *m_lib; QStyle *m_style; StyleInterface *m_style_if; - StyleSettingsInterface *m_settings_if; + StyleExtendedInterface *m_settings_if; }; #endif |