SVN commit 1126843 by bcooksley:

Seperate workspace style from application style, and place them in the 
appropriate system settings categories.
CCMAIL: plasma-devel@kde.org

 A             desktopstyle (directory)  
 A             desktopstyle/CMakeLists.txt   style/CMakeLists.txt#1126618
 A             desktopstyle/Messages.sh   style/Messages.sh#1126618
 A             desktopstyle/desktopstyle.desktop   style/style.desktop#1126618 
[TRAILING SPACE]
 A             desktopstyle/kcmstyle.cpp   style/kcmstyle.cpp#1126618 [License: 
GPL (v2)]
 A             desktopstyle/kcmstyle.h   style/kcmstyle.h#1126618 [License: GPL 
(v2)]
 A             desktopstyle/theme.ui   style/theme.ui#1126618
 M  +2 -2      style/CMakeLists.txt  
 M  +1 -264    style/kcmstyle.cpp  
 M  +2 -16     style/kcmstyle.h  
 D             style/theme.ui  


--- trunk/KDE/kdebase/workspace/kcontrol/style/CMakeLists.txt #1126842:1126843
@@ -8,11 +8,11 @@
 set(kcm_style_PART_SRCS ../krdb/krdb.cpp styleconfdialog.cpp kcmstyle.cpp)
 
 
-kde4_add_ui_files(kcm_style_PART_SRCS stylepreview.ui theme.ui finetuning.ui)
+kde4_add_ui_files(kcm_style_PART_SRCS stylepreview.ui finetuning.ui)
 
 kde4_add_plugin(kcm_style ${kcm_style_PART_SRCS})
 
-target_link_libraries(kcm_style ${KDE4_KIO_LIBS} ${QIMAGEBLITZ_LIBRARIES} 
${X11_LIBRARIES} ${KDE4_PLASMA_LIBS} ${KDE4_KNEWSTUFF3_LIBS})
+target_link_libraries(kcm_style ${KDE4_KIO_LIBS} ${QIMAGEBLITZ_LIBRARIES} 
${X11_LIBRARIES})
 
 install(TARGETS kcm_style  DESTINATION ${PLUGIN_INSTALL_DIR})
 
--- trunk/KDE/kdebase/workspace/kcontrol/style/kcmstyle.cpp #1126842:1126843
@@ -44,11 +44,7 @@
 #include <KDebug>
 #include <KColorScheme>
 #include <KStandardDirs>
-#include <knewstuff3/downloaddialog.h>
 
-#include <Plasma/FrameSvg>
-#include <Plasma/Theme>
-
 #include <QtCore/QFile>
 #include <QtCore/QSettings>
 #include <QtGui/QAbstractItemView>
@@ -121,181 +117,6 @@
     }
 }
 
-class ThemeInfo
-{
-public:
-    QString package;
-    Plasma::FrameSvg *svg;
-};
-
-class ThemeModel : public QAbstractListModel
-{
-public:
-    enum { PackageNameRole = Qt::UserRole,
-           SvgRole = Qt::UserRole + 1
-         };
-
-    ThemeModel(QObject *parent = 0);
-    virtual ~ThemeModel();
-
-    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    virtual QVariant data(const QModelIndex &index, int role = 
Qt::DisplayRole) const;
-    QModelIndex indexOf(const QString &path) const;
-    void reload();
-private:
-    QMap<QString, ThemeInfo> m_themes;
-};
-
-ThemeModel::ThemeModel( QObject *parent )
-    : QAbstractListModel( parent )
-{
-}
-
-ThemeModel::~ThemeModel()
-{
-}
-
-void ThemeModel::reload()
-{
-    reset();
-    foreach (const ThemeInfo &info, m_themes) {
-        delete info.svg;
-    }
-    m_themes.clear();
-
-    // get all desktop themes
-    KPluginInfo::List themeInfos = Plasma::Theme::listThemeInfo();
-
-    foreach (const KPluginInfo &themeInfo, themeInfos) {
-        kDebug() << themeInfo.name() << themeInfo.pluginName();
-        QString name = themeInfo.name();
-        if (name.isEmpty()) {
-            name = themeInfo.pluginName();
-        }
-
-        Plasma::Theme *theme = new Plasma::Theme(themeInfo.pluginName(), this);
-        Plasma::FrameSvg *svg = new Plasma::FrameSvg(theme);
-        svg->setUsingRenderingCache(false);
-        svg->setTheme(theme);
-        svg->setImagePath("widgets/background");
-        svg->setEnabledBorders(Plasma::FrameSvg::AllBorders);
-
-        ThemeInfo info;
-        info.package = themeInfo.pluginName();
-        info.svg = svg;
-        m_themes[name] = info;
-    }
-
-    beginInsertRows(QModelIndex(), 0, m_themes.size());
-    endInsertRows();
-}
-
-int ThemeModel::rowCount(const QModelIndex &) const
-{
-    return m_themes.size();
-}
-
-QVariant ThemeModel::data(const QModelIndex &index, int role) const
-{
-    if (!index.isValid()) {
-        return QVariant();
-    }
-
-    if (index.row() >= m_themes.size()) {
-        return QVariant();
-    }
-
-    QMap<QString, ThemeInfo>::const_iterator it = m_themes.constBegin();
-    for (int i = 0; i < index.row(); ++i) {
-        ++it;
-    }
-
-    switch (role) {
-        case Qt::DisplayRole:
-            return it.key();
-        case PackageNameRole:
-            return (*it).package;
-        case SvgRole:
-            return qVariantFromValue((void*)(*it).svg);
-        default:
-            return QVariant();
-    }
-}
-
-QModelIndex ThemeModel::indexOf(const QString &name) const
-{
-    QMapIterator<QString, ThemeInfo> it(m_themes);
-    int i = -1;
-    while (it.hasNext()) {
-        ++i;
-        if (it.next().value().package == name) {
-            return index(i, 0);
-        }
-    }
-
-    return QModelIndex();
-}
-
-
-class ThemeDelegate : public QAbstractItemDelegate
-{
-public:
-    ThemeDelegate(QObject * parent = 0);
-
-    virtual void paint(QPainter *painter,
-                       const QStyleOptionViewItem &option,
-                       const QModelIndex &index) const;
-    virtual QSize sizeHint(const QStyleOptionViewItem &option,
-                           const QModelIndex &index) const;
-private:
-    static const int MARGIN = 5;
-};
-
-ThemeDelegate::ThemeDelegate(QObject* parent)
-: QAbstractItemDelegate(parent)
-{
-}
-
-void ThemeDelegate::paint(QPainter *painter,
-                          const QStyleOptionViewItem &option,
-                          const QModelIndex &index) const
-{
-    QString title = index.model()->data(index, Qt::DisplayRole).toString();
-    QString package = index.model()->data(index, 
ThemeModel::PackageNameRole).toString();
-
-    // highlight selected item
-    QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &option, 
painter);
-
-    // draw image
-    Plasma::FrameSvg *svg = static_cast<Plasma::FrameSvg *>(
-            index.model()->data(index, ThemeModel::SvgRole).value<void *>());
-    svg->resizeFrame(QSize(option.rect.width() - (2 * MARGIN), 100 - (2 * 
MARGIN)));
-    QRect imgRect = QRect(option.rect.topLeft(),
-            QSize(option.rect.width() - (2 * MARGIN), 100 - (2 * MARGIN)))
-            .translated(MARGIN, MARGIN);
-    svg->paintFrame(painter, QPoint(option.rect.left() + MARGIN, 
option.rect.top() + MARGIN));
-
-    // draw text
-    painter->save();
-    QFont font = painter->font();
-    font.setWeight(QFont::Bold);
-    QString colorFile = KStandardDirs::locate("data", "desktoptheme/" + 
package + "/colors");
-    if (!colorFile.isEmpty()) {
-        KSharedConfigPtr colors = KSharedConfig::openConfig(colorFile);
-        KColorScheme colorScheme(QPalette::Active, KColorScheme::Window, 
colors);
-        
painter->setPen(colorScheme.foreground(KColorScheme::NormalText).color());
-    }
-    painter->setFont(font);
-    painter->drawText(option.rect, Qt::AlignCenter | Qt::TextWordWrap, title);
-    painter->restore();
-}
-
-
-QSize ThemeDelegate::sizeHint(const QStyleOptionViewItem &, const QModelIndex 
&) const
-{
-    return QSize(200, 100);
-}
-
 class StylePreview : public QWidget, public Ui::StylePreview
 {
 public:
@@ -345,14 +166,9 @@
                        "of user interface elements, such as the widget style "
                        "and effects."));
 
-       m_bDesktopThemeDirty = false;
        m_bStyleDirty= false;
        m_bEffectsDirty = false;
 
-
-       KAutostart plasmaNetbookAutoStart("plasma-netbook");
-       m_isNetbook = plasmaNetbookAutoStart.autostarts();
-
        KGlobal::dirs()->addResourceType("themes", "data", "kstyle/themes");
 
        KAboutData *about =
@@ -373,23 +189,6 @@
        tabWidget  = new QTabWidget( this );
        mainLayout->addWidget( tabWidget );
 
-       // Add Page0 (Desktop Theme)
-       // -------------------
-       page0 = new QWidget;
-       themeUi.setupUi(page0);
-
-       themeUi.m_newThemeButton->setIcon(KIcon("get-hot-new-stuff"));
-       
-       m_themeModel = new ThemeModel(this);
-       themeUi.m_theme->setModel(m_themeModel);
-       themeUi.m_theme->setItemDelegate(new ThemeDelegate(themeUi.m_theme));
-       
themeUi.m_theme->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
-
-       connect(themeUi.m_theme->selectionModel(), 
SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, 
SLOT(setDesktopThemeDirty()));
-       connect(themeUi.m_newThemeButton, SIGNAL(clicked()), this, 
SLOT(getNewThemes()));
-
-       m_workspaceThemeTabActivated = false;
-  
        // Add Page1 (Applications Style)
        // -----------------
        //gbWidgetStyle = new QGroupBox( i18n("Widget Style"), page1 );
@@ -462,7 +261,6 @@
 
        // Insert the pages into the tabWidget
        tabWidget->addTab(page1, i18nc("@title:tab", "&Applications"));
-       tabWidget->addTab(page0, i18nc("@title:tab", "&Workspace"));
        tabWidget->addTab(page2, i18nc("@title:tab", "&Fine Tuning"));
 
        connect(tabWidget, SIGNAL(currentChanged(int)), this, 
SLOT(tabChanged(int)));
@@ -560,13 +358,9 @@
 {
        KConfig config( "kdeglobals", KConfig::FullConfig );
 
-       if (m_workspaceThemeTabActivated) {
-               loadDesktopTheme();
-       }
        loadStyle( config );
        loadEffects( config );
 
-       m_bDesktopThemeDirty = false;
        m_bStyleDirty= false;
        m_bEffectsDirty = false;
        //Enable/disable the button for the initial style
@@ -579,21 +373,9 @@
 void KCMStyle::save()
 {
        // Don't do anything if we don't need to.
-       if ( !( m_bDesktopThemeDirty | m_bStyleDirty | m_bEffectsDirty ) )
+       if ( !( m_bStyleDirty | m_bEffectsDirty ) )
                return;
 
-       //Desktop theme
-       if ( m_bDesktopThemeDirty )
-       {
-               QString theme = 
m_themeModel->data(themeUi.m_theme->currentIndex(), 
ThemeModel::PackageNameRole).toString();
-               if (m_isNetbook) {
-                       KConfigGroup cg(KSharedConfig::openConfig("plasmarc"), 
"Theme-plasma-netbook");
-                       cg.writeEntry("name", theme);
-               } else {
-                       Plasma::Theme::defaultTheme()->setThemeName(theme);
-               }
-       }
-
        // Save effects.
         KConfig      _config("kdeglobals", KConfig::NoGlobals);                
         KConfigGroup config(&_config, "KDE"); 
@@ -645,7 +427,6 @@
        }
 
        // Clean up
-       m_bDesktopThemeDirty    = false;
        m_bStyleDirty    = false;
        m_bEffectsDirty  = false;
        emit changed( false );
@@ -703,12 +484,6 @@
        emit changed(true);
 }
 
-void KCMStyle::setDesktopThemeDirty()
-{
-       m_bDesktopThemeDirty = true;
-       emit changed(true);
-}
-
 void KCMStyle::setEffectsDirty()
 {
        m_bEffectsDirty = true;
@@ -721,45 +496,7 @@
        emit changed(true);
 }
 
-void KCMStyle::tabChanged(int index)
-{
-       if (index == 1 && !m_workspaceThemeTabActivated) { //Workspace theme 
tab (never loaded before)
-               m_workspaceThemeTabActivated = true;
-               QTimer::singleShot(100, this, SLOT(loadDesktopTheme()));
-       }
-}
-
 // ----------------------------------------------------------------
-// All the Desktop Theme stuff
-// ----------------------------------------------------------------
-
-void KCMStyle::getNewThemes()
-{
-    KNS3::DownloadDialog dialog("plasma-themes.knsrc", this);
-    dialog.exec();
-    KNS3::Entry::List entries = dialog.changedEntries();
-
-    if (entries.size() > 0) {
-        loadDesktopTheme();
-    }
-}
-
-void KCMStyle::loadDesktopTheme()
-{
-       QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-       m_themeModel->reload();
-       QString themeName;
-       if (m_isNetbook) {
-               KConfigGroup cg(KSharedConfig::openConfig("plasmarc"), 
"Theme-plasma-netbook");
-               themeName = cg.readEntry("name", "air-netbook");
-       } else {
-               themeName = Plasma::Theme::defaultTheme()->themeName();
-       }
-       themeUi.m_theme->setCurrentIndex(m_themeModel->indexOf(themeName));
-       QApplication::restoreOverrideCursor();
-}
-
-// ----------------------------------------------------------------
 // All the Style Switching / Preview stuff
 // ----------------------------------------------------------------
 
--- trunk/KDE/kdebase/workspace/kcontrol/style/kcmstyle.h #1126842:1126843
@@ -47,8 +47,6 @@
 class StylePreview;
 class QTabWidget;
 
-class ThemeModel;
-
 struct StyleEntry {
        QString name;
        QString desc;
@@ -80,40 +78,28 @@
        virtual void changeEvent( QEvent *event );
 
 protected Q_SLOTS:
-       void loadDesktopTheme();
-
        void styleSpecificConfig();
        void updateConfigButton();
 
-       void setDesktopThemeDirty();
        void setStyleDirty();
        void setEffectsDirty();
 
        void styleChanged();
        
-       void getNewThemes();
-
-       void tabChanged(int);
-
 private:
        QString currentStyle();
        static QString toolbarButtonText(int index);
        static int toolbarButtonIndex(const QString &text);
 
-       bool m_bDesktopThemeDirty, m_bStyleDirty, m_bEffectsDirty;
+       bool m_bStyleDirty, m_bEffectsDirty;
        QHash <QString,StyleEntry*> styleEntries;
        QMap  <QString,QString>     nameToStyleKey;
 
        QVBoxLayout* mainLayout;
        QTabWidget* tabWidget;
-       QWidget *page0, *page1, *page2;
+       QWidget *page1, *page2;
        QVBoxLayout* page1Layout;
 
-       //Page0
-       Ui::theme themeUi;
-       ThemeModel* m_themeModel;
-
-       
        // Page1 widgets
        QVBoxLayout* gbWidgetStyleLayout;
        QHBoxLayout* hbLayout;
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to