~ubuntu-branches/ubuntu/wily/zanshin/wily-proposed

« back to all changes in this revision

Viewing changes to src/actionlistmodel.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2009-08-13 23:19:32 UTC
  • Revision ID: james.westby@ubuntu.com-20090813231932-lewqphiry1qs7w80
Tags: upstream-0.1+svn1006410
ImportĀ upstreamĀ versionĀ 0.1+svn1006410

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* This file is part of Zanshin Todo.
 
2
 
 
3
   Copyright 2008 Kevin Ottens <ervin@kde.org>
 
4
 
 
5
   This program is free software; you can redistribute it and/or
 
6
   modify it under the terms of the GNU General Public License as
 
7
   published by the Free Software Foundation; either version 2 of
 
8
   the License or (at your option) version 3 or any later version
 
9
   accepted by the membership of KDE e.V. (or its successor approved
 
10
   by the membership of KDE e.V.), which shall act as a proxy
 
11
   defined in Section 14 of version 3 of the license.
 
12
 
 
13
   This program is distributed in the hope that it will be useful,
 
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
16
   GNU General Public License for more details.
 
17
 
 
18
   You should have received a copy of the GNU General Public License
 
19
   along with this program; if not, write to the Free Software
 
20
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 
21
   USA.
 
22
*/
 
23
 
 
24
#ifndef ZANSHIN_ACTIONLISTMODEL_H
 
25
#define ZANSHIN_ACTIONLISTMODEL_H
 
26
 
 
27
#include <QtGui/QSortFilterProxyModel>
 
28
 
 
29
namespace Akonadi
 
30
{
 
31
    class Item;
 
32
}
 
33
 
 
34
class ActionListModel : public QSortFilterProxyModel
 
35
{
 
36
    Q_OBJECT
 
37
 
 
38
public:
 
39
    enum Mode {
 
40
        StandardMode = 0,
 
41
        ProjectMode,
 
42
        ContextMode,
 
43
        NoProjectMode,
 
44
        NoContextMode
 
45
    };
 
46
 
 
47
    ActionListModel(QObject *parent = 0);
 
48
    virtual ~ActionListModel();
 
49
 
 
50
    Akonadi::Item itemForIndex(const QModelIndex &index) const;
 
51
 
 
52
    virtual Qt::ItemFlags flags(const QModelIndex &index) const;
 
53
 
 
54
    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
 
55
    virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
 
56
 
 
57
    void setMode(Mode mode);
 
58
    Mode mode() const;
 
59
 
 
60
    void setSourceFocusIndex(const QModelIndex &sourceIndex);
 
61
    QModelIndex sourceFocusIndex() const;
 
62
 
 
63
    bool isInFocus(const QModelIndex &index) const;
 
64
 
 
65
protected:
 
66
    virtual bool filterAcceptsColumn(int sourceColumn, const QModelIndex &sourceParent) const;
 
67
    virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
 
68
    virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
 
69
 
 
70
private:
 
71
    QPersistentModelIndex m_sourceFocusIndex;
 
72
    Mode m_mode;
 
73
};
 
74
 
 
75
#endif
 
76