summaryrefslogtreecommitdiff
path: root/noncore/apps/tableviewer/tableviewer.h
blob: f56a460a405dd11aa74710e545966c64edb00335 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/**********************************************************************
** Copyright (C) 2000 Trolltech AS.  All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef Tableviewer_H
#define Tableviewer_H

#include <qmainwindow.h>
#include "db/common.h"
#include <qpe/fileselector.h>

/* Forward class declarations */
class QWidgetStack;
class QDialog;
class QMenuBar;

class TVListView;
class TVBrowseView;
class TVFilterView;
class TVEditView;

class DBStore;

class TableViewerWindow: public QMainWindow
{
    Q_OBJECT
public:
    static QString appName() { return QString::fromLatin1("tableviewer"); }
    TableViewerWindow( QWidget *parent = 0, 
                        const char *name = 0, WFlags f = 0 );
    ~TableViewerWindow();

public slots:
    void selectDocument();

    void newDocument();
    void saveDocument();
    void setDocument(const QString &);
    void openDocument(const DocLnk &);

    void firstItem();
    void lastItem();
    void nextItem();
    void previousItem();

    void listViewSlot();
    void browseViewSlot();
    void filterViewSlot();

    void editItemSlot();
    void newItemSlot();
    void deleteItemSlot();

    void editKeysSlot();

    /* reveiw the sig. for this function TODO */
    void searchOnKey(int, TVVariant);
    void setPrimaryKey(int);

/* TODO add new event */
protected:

/* TODO add new slots */
private slots:

/* TODO add other widgets used here */
private:
    bool dirty;

    QMenuBar *menu;
    QToolBar *navigation;

    TVListView *listView;
    TVBrowseView *browseView;
    TVFilterView *filterView;
    TVEditView *editView;
    FileSelector *fileSelector;

    DocLnk doc;

    QWidgetStack *cw;
    DBStore *ds;
    TableState ts; /* not a pointer.. this class keeps the state */

    enum UserState {
        BrowseState = 0,
        ListState,
        FilterState,
        EditState,
  FileState,
    };

    UserState current_view;

    void applyFilter();
};

#endif