plasma-framework/appletbrowser/plasmaappletitemmodel_p.h
Aaron J. Seigo 3d3beac449 * setting the application in the ctor is really ugly. use an accessor for that.
* upon using the accessor i disocvered they didn't actually do anything except set the member variable; no changes actually took place in the dialogs.

eventually, we should probably consider moving the application name to a central location in libplasma, e.g. a Plasma::setMainComponent(KComponentData&) that initializes itself to the app's mainComponent()... there's too many of these app name things around

also, when the item model updates itself, the view in the dialog doesn't. i've added a hack in AppletBrowser::setApplication to re-set the item model on the view. maybe Ivan you could take a look at that sometime? it's not overly critical as it works for now due to the hack.

CCMAIL:lfranchi@gmail.com
CCMAIL:ivan.cukic+kde@gmail.com

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=733614
2007-11-06 21:10:11 +00:00

86 lines
2.5 KiB
C++

/*
* Copyright (C) 2007 Ivan Cukic <ivan.cukic+kde@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library/Lesser General Public License
* version 2, or (at your option) any later version, as published by the
* Free Software Foundation
*
* This program 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 Library/Lesser General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef PLASMAAPPLETSMODEL_H_
#define PLASMAAPPLETSMODEL_H_
#include <KPluginInfo>
#include <plasma/applet.h>
#include "kcategorizeditemsview_p.h"
class PlasmaAppletItemModel;
/**
* Implementation of the KCategorizedItemsViewModels::AbstractItem
*/
class PlasmaAppletItem : public KCategorizedItemsViewModels::AbstractItem,
QObject
{
public:
enum FilterFlag {NoFilter = 0,
Favorite = 1,
Used = 2};
Q_DECLARE_FLAGS(FilterFlags, FilterFlag)
PlasmaAppletItem(PlasmaAppletItemModel * model, const QMap<QString, QVariant>& info,
FilterFlags flags = NoFilter, QMap<QString, QVariant> * extraAttrs = NULL);
virtual QString name() const;
QString pluginName() const;
virtual QString description() const;
virtual void setFavorite(bool favorite);
virtual bool passesFiltering(
const KCategorizedItemsViewModels::Filter & filter) const;
virtual QVariantList arguments() const;
private:
PlasmaAppletItemModel * m_model;
};
class PlasmaAppletItemModel :
public KCategorizedItemsViewModels::DefaultItemModel
{
public:
PlasmaAppletItemModel(KConfigGroup configGroup, QObject * parent = 0);
QStringList mimeTypes() const;
QMimeData* mimeData(const QModelIndexList & indexes) const;
void setFavorite(QString plugin, bool favorite);
void setApplication(const QString& app);
QString& Application();
private:
QString m_application;
QStringList m_favorites;
QStringList m_used;
KConfigGroup m_configGroup;
void loadSuperKarambaThemes(const KPluginInfo &info);
void populateModel();
};
Q_DECLARE_OPERATORS_FOR_FLAGS(PlasmaAppletItem::FilterFlags)
#endif /*PLASMAAPPLETSMODEL_H_*/