/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXDE-Qt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2013 Razor team * Authors: * Kuzma Shapran * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef GLOBAL_ACTION_CONFIG__DEFAULT_MODEL__INCLUDED #define GLOBAL_ACTION_CONFIG__DEFAULT_MODEL__INCLUDED #include #include #include #include #include "../daemon/meta_types.h" class Actions; template class QOrderedSet : public QMap { public: typename QMap::iterator insert(const Key &akey) { return QMap::insert(akey, akey); } }; class DefaultModel : public QAbstractTableModel { Q_OBJECT public: explicit DefaultModel(Actions *actions, const QColor &grayedOutColour, const QFont &highlightedFont, const QFont &italicFont, const QFont &highlightedItalicFont, QObject *parent = 0); ~DefaultModel(); int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; Qt::ItemFlags flags(const QModelIndex &index) const; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); qulonglong id(const QModelIndex &index) const; public slots: void daemonDisappeared(); void daemonAppeared(); void actionAdded(qulonglong id); void actionEnabled(qulonglong id, bool enabled); void actionModified(qulonglong id); void actionsSwapped(qulonglong id1, qulonglong id2); void actionRemoved(qulonglong id); private: Actions *mActions; QMap mContent; QMap > mShortcuts; QColor mGrayedOutColour; QFont mHighlightedFont; QFont mItalicFont; QFont mHighlightedItalicFont; QMap mVerboseType; }; #endif // GLOBAL_ACTION_CONFIG__DEFAULT_MODEL__INCLUDED