2 #include "LayoutEditor.h"
4 #include "ui_MainWindowUi.h"
9 #include <QStandardItem>
10 #include <QStandardItemModel>
17 /////////////////////////////////////////////////////////////////////////
21 /////////////////////////////////////////////////////////////////////////
23 LayoutTree::LayoutTree(QWidget * parent)
28 /////////////////////////////////////////////////////////////////////////
32 /////////////////////////////////////////////////////////////////////////
34 LayoutEditor::LayoutEditor(QWidget * parent)
39 /////////////////////////////////////////////////////////////////////////
43 /////////////////////////////////////////////////////////////////////////
45 MainWindow::MainWindow()
47 ui_ = new Ui::MainWindow;
50 model_ = new QStandardItemModel(this);
51 view_ = new LayoutTree(this);
52 view_->setModel(model_);
53 //setCentralWidget(view_);
55 ui_->dockLayoutTree->setWidget(view_);
59 MainWindow::~MainWindow()
64 static bool isInsensitivelyEqual(QString const & s1, QString const & s2)
66 return s1.compare(s2, Qt::CaseInsensitive) == 0;
69 void MainWindow::loadLayoutFile(QString const & fileName)
71 loadLayoutFile(fileName, model_->invisibleRootItem());
76 void MainWindow::loadLayoutFile(QString const & fileName,
77 QStandardItem * parent)
81 file.open(QIODevice::ReadOnly);
82 QString contents = file.readAll();
84 qDebug() << "contents: " << contents;
87 file.open(QIODevice::ReadOnly);
89 QTextStream ts(&file);
91 QList<QStandardItem *> row;
94 //qDebug() << "CODE: " << code;
95 if (code.startsWith('#')) {
96 QString line = code + ' ' + ts.readLine();
97 //row.append(new QStandardItem("Comment"));
98 //row.append(new QStandardItem(code + ' ' + ts.readLine()));
99 //parent->appendRow(row);
100 } else if (isInsensitivelyEqual(code, "Input")) {
103 QStandardItem * item = new QStandardItem(inputFile);
105 parent->appendRow(row);
106 inputFile = fileName.left(fileName.lastIndexOf('/')) + '/' + inputFile;
107 qDebug() << "INPUT: " << inputFile;
108 loadLayoutFile(inputFile, item);
109 } else if (isInsensitivelyEqual(code, "Style")) {
112 //while (!ts.atEnd() && !isInsensitivelyEqual(code, "EndStyle"))
114 QStandardItem * item = new QStandardItem(style);
116 parent->appendRow(row);
118 //row.append(new QStandardItem(code));
119 //parent->appendRow(row);
128 #include "LayoutEditor.h"
130 #include "ui_MainWindowUi.h"
135 #include <QStandardItem>
136 #include <QStandardItemModel>
143 /////////////////////////////////////////////////////////////////////////
147 /////////////////////////////////////////////////////////////////////////
149 LayoutTree::LayoutTree(QWidget * parent)
154 /////////////////////////////////////////////////////////////////////////
158 /////////////////////////////////////////////////////////////////////////
160 LayoutEditor::LayoutEditor(QWidget * parent)
165 /////////////////////////////////////////////////////////////////////////
169 /////////////////////////////////////////////////////////////////////////
171 MainWindow::MainWindow()
173 ui_ = new Ui::MainWindow;
176 model_ = new QStandardItemModel(this);
177 view_ = new LayoutTree(this);
178 view_->setModel(model_);
179 //setCentralWidget(view_);
181 ui_->dockLayoutTree->setWidget(view_);
185 MainWindow::~MainWindow()
190 static bool isInsensitivelyEqual(QString const & s1, QString const & s2)
192 return s1.compare(s2, Qt::CaseInsensitive) == 0;
195 void MainWindow::loadLayoutFile(QString const & fileName)
197 loadLayoutFile(fileName, model_->invisibleRootItem());
202 void MainWindow::loadLayoutFile(QString const & fileName,
203 QStandardItem * parent)
205 QFile file(fileName);
207 file.open(QIODevice::ReadOnly);
208 QString contents = file.readAll();
210 qDebug() << "contents: " << contents;
213 file.open(QIODevice::ReadOnly);
215 QTextStream ts(&file);
216 while (!ts.atEnd()) {
217 QList<QStandardItem *> row;
220 //qDebug() << "CODE: " << code;
221 if (code.startsWith('#')) {
222 QString line = code + ' ' + ts.readLine();
223 //row.append(new QStandardItem("Comment"));
224 //row.append(new QStandardItem(code + ' ' + ts.readLine()));
225 //parent->appendRow(row);
226 } else if (isInsensitivelyEqual(code, "Input")) {
229 QStandardItem * item = new QStandardItem(inputFile);
231 parent->appendRow(row);
232 inputFile = fileName.left(fileName.lastIndexOf('/')) + '/' + inputFile;
233 qDebug() << "INPUT: " << inputFile;
234 loadLayoutFile(inputFile, item);
235 } else if (isInsensitivelyEqual(code, "Style")) {
238 //while (!ts.atEnd() && !isInsensitivelyEqual(code, "EndStyle"))
240 QStandardItem * item = new QStandardItem(style);
242 parent->appendRow(row);
244 //row.append(new QStandardItem(code));
245 //parent->appendRow(row);