File: daresview.h

package info (click to toggle)
dares 0.6.5%2Brepack-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, forky, sid, trixie
  • size: 700 kB
  • sloc: ansic: 1,169; cpp: 955; makefile: 32
file content (140 lines) | stat: -rw-r--r-- 3,211 bytes parent folder | download | duplicates (5)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/* DaResView.h */
/* part of DAta REScue dares */

/* DAta REScue (C) 2002 Oliver Diedrich, odi@ct.heise.de */
/* (C) 2005 c't magazine for computer technology, Heise Zeitschriften Verlag */
/* This file may be redistributed under the terms of the */
/* GNU Public License (GPL), see www.gnu.org */

#ifndef __DARES_VIEW_H
#define __DARES_VIEW_H

#include <qsplitter.h>
#include <qstring.h>
#include <qobject.h>
#include <qdatetime.h>
#include <qptrlist.h>
#include <qlistview.h>
#include <qdict.h>

class QListView;
class QTextEdit;
class QLabel;
class QPainter;
class QColorGroup;
class QObjectList;
class QPopupMenu;


// -----------------------------------------------------------------

class RawFile
{
public:
  RawFile(QWidget* parent ) : mParent( parent ), mDaresFileInfo( 0 ){}

  RawFile( QWidget* parent, struct one_file *daresFileInfo, const QCString& daresTypeName )
    : mParent( parent ),
      mDaresFileInfo( daresFileInfo ),
      mDaresTypeName( daresTypeName ){}

  RawFile( const RawFile &m )
    : mParent(        m.mParent ),
      mDaresFileInfo( m.mDaresFileInfo ),
      mDaresTypeName( m.mDaresTypeName ),
      mSavedFileName( m.mSavedFileName ) {}

  QString content();
  QString info();
  bool hasFileInfo();
  bool saveToFile(bool bSilentOnSuccess);
  QCString daresTypeName();
  QCString savedFileName();
  struct one_file* daresFileInfo();

protected:
  QWidget* mParent;
  struct one_file* mDaresFileInfo;
  QCString mDaresTypeName;
  QCString mSavedFileName;
};


// -----------------------------------------------------------------

class Folder : public QObject
{
    Q_OBJECT

public:
    Folder( Folder *parent, const QString &name, const RawFile& rawFile );
    ~Folder() {}

    QString folderName() { return mFName; }

    RawFile& rawFile() { return mRawFile; }

protected:
    QString mFName;
    RawFile mRawFile;
};


// -----------------------------------------------------------------

class FolderListItem : public QListViewItem
{
public:
    FolderListItem( QListView *parent, Folder *f );
    FolderListItem( FolderListItem *parent, FolderListItem* prev, Folder *f );
    FolderListItem( FolderListItem *parent, Folder *f );

    void insertSubFolders( const QObjectList *lst );

    Folder *folder() { return myFolder; }

protected:
    Folder *myFolder;

};


// -----------------------------------------------------------------

class DaResView : public QSplitter
{
    Q_OBJECT

public:
    DaResView( QWidget *parent = 0, const char *name = 0, int found = 0 );
    ~DaResView() {}

protected:
    void initFolders();
    void setupFolders();

    QListView*  mFolders;
    QTextEdit*  mRawFileView;
    QLabel*     mRawFileLabel;
    QPopupMenu* mPopUpMenu;

    QPtrList<Folder> lstFolders;

protected slots:
    void slotFolderChanged( QListViewItem* );
    void slotRMB( QListViewItem*, const QPoint &, int );
    void updateRawFileView( FolderListItem *i );
    void viewCurrent();
    void saveCurrent();
    void saveAllSelected();

protected:
    bool saveItem( QListViewItem* _item, bool bSilentOnSuccess, bool restoreStatusLabel=true );
    bool hasFileInfo( QListViewItem *i );

private:
    int mFound;
    QDict<QString> programs;
};

#endif