blob: 4afca2837eb25a5855e43f2176de99fe07c9880c [file] [log] [blame]
Robert Bieber61b5f0c2010-06-08 21:30:28 +00001/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2010 Robert Bieber
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22#ifndef PROJECTMODEL_H
23#define PROJECTMODEL_H
24
Robert Bieber046832c2010-06-14 06:20:07 +000025#include <QAbstractListModel>
26#include <QMap>
Robert Bieber61b5f0c2010-06-08 21:30:28 +000027
Robert Bieberfc94a922010-06-09 21:37:15 +000028class EditorWindow;
Robert Bieber61b5f0c2010-06-08 21:30:28 +000029
Robert Bieber046832c2010-06-14 06:20:07 +000030class ProjectModel : public QAbstractListModel
Robert Bieber61b5f0c2010-06-08 21:30:28 +000031{
32Q_OBJECT
33public:
Robert Bieberc3a698e2010-06-10 07:51:21 +000034 static const int numColumns = 2;
Robert Bieber61b5f0c2010-06-08 21:30:28 +000035
Robert Bieberceddd2f2010-06-09 07:51:22 +000036 static QString fileFilter()
37 {
Robert Bieber7c522842010-07-21 07:45:29 +000038 return QObject::tr("Project Files (*.cfg);;All Files (*)");
Robert Bieberceddd2f2010-06-09 07:51:22 +000039 }
40
Robert Bieberfc94a922010-06-09 21:37:15 +000041 ProjectModel(QString config, EditorWindow* mainWindow, QObject *parent = 0);
Robert Bieber61b5f0c2010-06-08 21:30:28 +000042 virtual ~ProjectModel();
43
Robert Bieber046832c2010-06-14 06:20:07 +000044 int rowCount(const QModelIndex& parent) const;
Robert Bieber61b5f0c2010-06-08 21:30:28 +000045 QVariant data(const QModelIndex &index, int role) const;
Robert Bieber61b5f0c2010-06-08 21:30:28 +000046
Robert Bieber75560842010-06-17 06:59:46 +000047 QString getSetting(QString key, QString fallback = "")
48 {
49 return settings.value(key, fallback);
50 }
Robert Bieber2e320f62010-06-15 06:54:58 +000051
Robert Biebere1d8a3d2010-06-21 20:11:58 +000052 const QMap<QString, QString>& getSettings() const{ return settings; }
53
Robert Bieber61b5f0c2010-06-08 21:30:28 +000054signals:
55
56public slots:
Robert Bieberfc94a922010-06-09 21:37:15 +000057 void activated(const QModelIndex& index);
Robert Bieber61b5f0c2010-06-08 21:30:28 +000058
59private:
Robert Bieberfc94a922010-06-09 21:37:15 +000060 EditorWindow* mainWindow;
Robert Bieber046832c2010-06-14 06:20:07 +000061 QMap<QString, QString> settings;
62 QList<QString> files;
Robert Bieber61b5f0c2010-06-08 21:30:28 +000063};
64
Robert Bieber61b5f0c2010-06-08 21:30:28 +000065#endif // PROJECTMODEL_H