3 Copyright (c) 2012 Jakob Leben & Tim Blechmann
4 http://www.audiosynth.com
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef SCIDE_WIDGETS_DOC_LIST_HPP_INCLUDED
22 #define SCIDE_WIDGETS_DOC_LIST_HPP_INCLUDED
24 #include "../core/doc_manager.hpp"
26 #include <QListWidget>
27 #include <QDockWidget>
28 #include <QSignalMapper>
32 class DocumentManager
;
35 class DocumentListWidget
: public QListWidget
41 DocumentListWidget(DocumentManager
*, QWidget
* parent
= 0);
45 void setCurrent( Document
* );
49 void clicked( Document
* );
53 void onOpen( Document
*, int );
54 void onClose( Document
* );
55 void onSaved( Document
* );
56 void onModificationChanged(QObject
*);
57 void onItemClicked(QListWidgetItem
*);
61 virtual QSize
sizeHint() const { return QSize(250,200); }
64 struct Item
: public QListWidgetItem
66 Item( Document
* doc
, QListWidget
* parent
= 0 ):
67 QListWidgetItem(parent
, QListWidgetItem::UserType
),
70 setText(doc
->title());
76 Item
*addItemFor( Document
* );
77 Item
*itemFor( Document
* );
78 Item
*itemFor( QListWidgetItem
* );
79 QSignalMapper mModificationMapper
;
80 QIcon mDocModifiedIcon
;
83 class DocumentsDock
: public QDockWidget
86 DocumentsDock(DocumentManager
*manager
, QWidget
* parent
= 0):
87 QDockWidget(tr("Documents"), parent
),
88 mDocList(new DocumentListWidget(manager
))
90 setAllowedAreas(Qt::LeftDockWidgetArea
| Qt::RightDockWidgetArea
);
91 setFeatures(DockWidgetFloatable
| DockWidgetMovable
| DockWidgetClosable
);
95 DocumentListWidget
*list() { return mDocList
; }
99 DocumentListWidget
*mDocList
;
104 #endif // SCIDE_WIDGETS_DOC_LIST_HPP_INCLUDED