Theme Editor: Fixed some compiler warnings and a segfault. Got some basic text rende...
[kugel-rb.git] / utils / themeeditor / gui / configdocument.h
blob0057ac15c48306ac35b83a442182cae6c5508fe8
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2010 Robert Bieber
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.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #ifndef CONFIGDOCUMENT_H
23 #define CONFIGDOCUMENT_H
25 #include <QHBoxLayout>
26 #include <QLineEdit>
27 #include <QComboBox>
28 #include <QPushButton>
29 #include <QWidget>
30 #include <QLabel>
31 #include <QMap>
32 #include <QWheelEvent>
34 #include "tabcontent.h"
36 namespace Ui {
37 class ConfigDocument;
40 class NoScrollCombo: public QComboBox
42 public:
43 NoScrollCombo(QWidget* parent = 0) : QComboBox(parent) {}
44 virtual ~NoScrollCombo(){ }
46 void wheelEvent(QWheelEvent* event) { event->ignore(); }
49 class ConfigDocument : public TabContent {
50 Q_OBJECT
51 public:
52 ConfigDocument(QMap<QString, QString>& settings, QString file,
53 QWidget *parent = 0);
54 virtual ~ConfigDocument();
56 TabType type() const{ return TabContent::Config; }
57 QString file() const{ return filePath; }
58 QString title() const;
60 QString toPlainText() const;
62 void save();
63 void saveAs();
65 bool requestClose();
67 protected:
68 void changeEvent(QEvent *e);
70 signals:
71 void configFileChanged(QString);
73 private slots:
74 void deleteClicked();
75 void addClicked();
76 void textChanged();
79 private:
80 Ui::ConfigDocument *ui;
81 QList<QHBoxLayout*> containers;
82 QList<NoScrollCombo*> keys;
83 QList<QLineEdit*> values;
84 QList<QPushButton*> deleteButtons;
85 QList<QLabel*> labels;
87 QStringList primaryKeys;
88 QStringList secondaryKeys;
90 QString filePath;
91 QString saved;
93 void addRow(QString key, QString value);
96 #endif // CONFIGDOCUMENT_H