diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/themeeditor/editorwindow.cpp | 12 | ||||
-rw-r--r-- | utils/themeeditor/editorwindow.h | 2 | ||||
-rw-r--r-- | utils/themeeditor/parsetreemodel.cpp | 13 | ||||
-rw-r--r-- | utils/themeeditor/parsetreemodel.h | 3 | ||||
-rw-r--r-- | utils/themeeditor/skin_debug.c | 40 | ||||
-rw-r--r-- | utils/themeeditor/skin_debug.h | 2 | ||||
-rw-r--r-- | utils/themeeditor/skindocument.cpp | 11 | ||||
-rw-r--r-- | utils/themeeditor/skindocument.h | 9 |
8 files changed, 65 insertions, 27 deletions
diff --git a/utils/themeeditor/editorwindow.cpp b/utils/themeeditor/editorwindow.cpp index 8e81829a41..ca5f8bfa73 100644 --- a/utils/themeeditor/editorwindow.cpp +++ b/utils/themeeditor/editorwindow.cpp | |||
@@ -94,6 +94,10 @@ void EditorWindow::setupUI() | |||
94 | QObject::connect(ui->actionPreferences, SIGNAL(triggered()), | 94 | QObject::connect(ui->actionPreferences, SIGNAL(triggered()), |
95 | prefs, SLOT(exec())); | 95 | prefs, SLOT(exec())); |
96 | 96 | ||
97 | /* Setting up the parse status label */ | ||
98 | parseStatus = new QLabel(this); | ||
99 | ui->statusbar->addWidget(parseStatus); | ||
100 | |||
97 | } | 101 | } |
98 | 102 | ||
99 | void EditorWindow::setupMenus() | 103 | void EditorWindow::setupMenus() |
@@ -144,7 +148,7 @@ void EditorWindow::addTab(SkinDocument *doc) | |||
144 | 148 | ||
145 | void EditorWindow::newTab() | 149 | void EditorWindow::newTab() |
146 | { | 150 | { |
147 | SkinDocument* doc = new SkinDocument; | 151 | SkinDocument* doc = new SkinDocument(parseStatus); |
148 | addTab(doc); | 152 | addTab(doc); |
149 | } | 153 | } |
150 | 154 | ||
@@ -161,8 +165,12 @@ void EditorWindow::shiftTab(int index) | |||
161 | } | 165 | } |
162 | else | 166 | else |
163 | { | 167 | { |
168 | /* Syncing the tree view and the status bar */ | ||
164 | ui->parseTree->setModel(dynamic_cast<SkinDocument*> | 169 | ui->parseTree->setModel(dynamic_cast<SkinDocument*> |
165 | (ui->editorTabs->currentWidget())->getModel()); | 170 | (ui->editorTabs->currentWidget())->getModel()); |
171 | parseStatus->setText(dynamic_cast<SkinDocument*> | ||
172 | (ui->editorTabs->currentWidget())->getStatus()); | ||
173 | |||
166 | ui->actionSave_Document->setEnabled(true); | 174 | ui->actionSave_Document->setEnabled(true); |
167 | ui->actionSave_Document_As->setEnabled(true); | 175 | ui->actionSave_Document_As->setEnabled(true); |
168 | ui->actionClose_Document->setEnabled(true); | 176 | ui->actionClose_Document->setEnabled(true); |
@@ -220,7 +228,7 @@ void EditorWindow::openFile() | |||
220 | QString current = fileNames[i]; | 228 | QString current = fileNames[i]; |
221 | 229 | ||
222 | /* Adding a new document for each file name */ | 230 | /* Adding a new document for each file name */ |
223 | SkinDocument* doc = new SkinDocument(current); | 231 | SkinDocument* doc = new SkinDocument(parseStatus, current); |
224 | addTab(doc); | 232 | addTab(doc); |
225 | 233 | ||
226 | /* And setting the new default directory */ | 234 | /* And setting the new default directory */ |
diff --git a/utils/themeeditor/editorwindow.h b/utils/themeeditor/editorwindow.h index 5f39ed35d6..3bab704bb6 100644 --- a/utils/themeeditor/editorwindow.h +++ b/utils/themeeditor/editorwindow.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #define EDITORWINDOW_H | 23 | #define EDITORWINDOW_H |
24 | 24 | ||
25 | #include <QMainWindow> | 25 | #include <QMainWindow> |
26 | #include <QLabel> | ||
26 | 27 | ||
27 | #include "parsetreemodel.h" | 28 | #include "parsetreemodel.h" |
28 | #include "skinhighlighter.h" | 29 | #include "skinhighlighter.h" |
@@ -64,6 +65,7 @@ private: | |||
64 | 65 | ||
65 | Ui::EditorWindow *ui; | 66 | Ui::EditorWindow *ui; |
66 | PreferencesDialog* prefs; | 67 | PreferencesDialog* prefs; |
68 | QLabel* parseStatus; | ||
67 | }; | 69 | }; |
68 | 70 | ||
69 | #endif // EDITORWINDOW_H | 71 | #endif // EDITORWINDOW_H |
diff --git a/utils/themeeditor/parsetreemodel.cpp b/utils/themeeditor/parsetreemodel.cpp index 8da0c26ef3..787122d02d 100644 --- a/utils/themeeditor/parsetreemodel.cpp +++ b/utils/themeeditor/parsetreemodel.cpp | |||
@@ -55,18 +55,23 @@ QString ParseTreeModel::genCode() | |||
55 | return ""; | 55 | return ""; |
56 | } | 56 | } |
57 | 57 | ||
58 | bool ParseTreeModel::changeTree(const char *document) | 58 | QString ParseTreeModel::changeTree(const char *document) |
59 | { | 59 | { |
60 | struct skin_element* test = skin_parse(document); | 60 | struct skin_element* test = skin_parse(document); |
61 | 61 | ||
62 | if(!test) | 62 | if(!test) |
63 | return false; | 63 | { |
64 | QString error = tr("Error on line ") + | ||
65 | QString::number(skin_error_line()) | ||
66 | + tr(": ") + QString(skin_error_message()); | ||
67 | return error; | ||
68 | } | ||
64 | 69 | ||
65 | ParseTreeNode* temp = new ParseTreeNode(test); | 70 | ParseTreeNode* temp = new ParseTreeNode(test); |
66 | if(root && temp->genHash() == root->genHash()) | 71 | if(root && temp->genHash() == root->genHash()) |
67 | { | 72 | { |
68 | delete temp; | 73 | delete temp; |
69 | return true; | 74 | return tr("Document Parses Successfully"); |
70 | } | 75 | } |
71 | 76 | ||
72 | if(root) | 77 | if(root) |
@@ -81,7 +86,7 @@ bool ParseTreeModel::changeTree(const char *document) | |||
81 | emit beginInsertRows(QModelIndex(), 0, temp->numChildren() - 1); | 86 | emit beginInsertRows(QModelIndex(), 0, temp->numChildren() - 1); |
82 | emit endInsertRows(); | 87 | emit endInsertRows(); |
83 | 88 | ||
84 | return true; | 89 | return tr("Document Parses Successfully"); |
85 | 90 | ||
86 | } | 91 | } |
87 | 92 | ||
diff --git a/utils/themeeditor/parsetreemodel.h b/utils/themeeditor/parsetreemodel.h index 76960937f1..55af549e6c 100644 --- a/utils/themeeditor/parsetreemodel.h +++ b/utils/themeeditor/parsetreemodel.h | |||
@@ -48,8 +48,7 @@ public: | |||
48 | 48 | ||
49 | QString genCode(); | 49 | QString genCode(); |
50 | /* Changes the parse tree to a new document */ | 50 | /* Changes the parse tree to a new document */ |
51 | bool changeTree(const char* document); | 51 | QString changeTree(const char* document); |
52 | |||
53 | QModelIndex index(int row, int column, const QModelIndex& parent) const; | 52 | QModelIndex index(int row, int column, const QModelIndex& parent) const; |
54 | QModelIndex parent(const QModelIndex &child) const; | 53 | QModelIndex parent(const QModelIndex &child) const; |
55 | int rowCount(const QModelIndex &parent) const; | 54 | int rowCount(const QModelIndex &parent) const; |
diff --git a/utils/themeeditor/skin_debug.c b/utils/themeeditor/skin_debug.c index 4d691892ff..4a2ef32206 100644 --- a/utils/themeeditor/skin_debug.c +++ b/utils/themeeditor/skin_debug.c | |||
@@ -31,54 +31,68 @@ | |||
31 | int debug_indent_level = 0; | 31 | int debug_indent_level = 0; |
32 | extern int skin_line; | 32 | extern int skin_line; |
33 | 33 | ||
34 | /* Global error variables */ | ||
35 | int error_line; | ||
36 | char* error_message; | ||
37 | |||
34 | /* Debugging functions */ | 38 | /* Debugging functions */ |
35 | void skin_error(enum skin_errorcode error) | 39 | void skin_error(enum skin_errorcode error) |
36 | { | 40 | { |
37 | 41 | ||
38 | fprintf(stderr, "Error on line %d: ", skin_line); | 42 | error_line = skin_line; |
39 | 43 | ||
40 | switch(error) | 44 | switch(error) |
41 | { | 45 | { |
42 | case MEMORY_LIMIT_EXCEEDED: | 46 | case MEMORY_LIMIT_EXCEEDED: |
43 | fprintf(stderr, "Memory limit exceeded\n"); | 47 | error_message = "Memory limit exceeded"; |
44 | break; | 48 | break; |
45 | case NEWLINE_EXPECTED: | 49 | case NEWLINE_EXPECTED: |
46 | fprintf(stderr, "Newline expected\n"); | 50 | error_message = "Newline expected"; |
47 | break; | 51 | break; |
48 | case ILLEGAL_TAG: | 52 | case ILLEGAL_TAG: |
49 | fprintf(stderr, "Illegal tag\n"); | 53 | error_message = "Illegal tag"; |
50 | break; | 54 | break; |
51 | case ARGLIST_EXPECTED: | 55 | case ARGLIST_EXPECTED: |
52 | fprintf(stderr, "Argument list expected\n"); | 56 | error_message = "Argument list expected"; |
53 | break; | 57 | break; |
54 | case TOO_MANY_ARGS: | 58 | case TOO_MANY_ARGS: |
55 | fprintf(stderr, "Too many arguments given\n"); | 59 | error_message = "Too many arguments given"; |
56 | break; | 60 | break; |
57 | case DEFAULT_NOT_ALLOWED: | 61 | case DEFAULT_NOT_ALLOWED: |
58 | fprintf(stderr, "Argument can not be set to default\n"); | 62 | error_message = "Argument can not be set to default"; |
59 | break; | 63 | break; |
60 | case UNEXPECTED_NEWLINE: | 64 | case UNEXPECTED_NEWLINE: |
61 | fprintf(stderr, "Unexpected newline\n"); | 65 | error_message = "Unexpected newline"; |
62 | break; | 66 | break; |
63 | case INSUFFICIENT_ARGS: | 67 | case INSUFFICIENT_ARGS: |
64 | fprintf(stderr, "Not enough arguments\n"); | 68 | error_message = "Not enough arguments"; |
65 | break; | 69 | break; |
66 | case INT_EXPECTED: | 70 | case INT_EXPECTED: |
67 | fprintf(stderr, "Expected integer\n"); | 71 | error_message = "Expected integer"; |
68 | break; | 72 | break; |
69 | case SEPERATOR_EXPECTED: | 73 | case SEPERATOR_EXPECTED: |
70 | fprintf(stderr, "Expected argument seperator\n"); | 74 | error_message = "Expected argument seperator"; |
71 | break; | 75 | break; |
72 | case CLOSE_EXPECTED: | 76 | case CLOSE_EXPECTED: |
73 | fprintf(stderr, "Expected list close\n"); | 77 | error_message = "Expected list close"; |
74 | break; | 78 | break; |
75 | case MULTILINE_EXPECTED: | 79 | case MULTILINE_EXPECTED: |
76 | fprintf(stderr, "Expected subline seperator\n"); | 80 | error_message = "Expected subline seperator"; |
77 | break; | 81 | break; |
78 | }; | 82 | }; |
79 | 83 | ||
80 | } | 84 | } |
81 | 85 | ||
86 | int skin_error_line() | ||
87 | { | ||
88 | return error_line; | ||
89 | } | ||
90 | |||
91 | char* skin_error_message() | ||
92 | { | ||
93 | return error_message; | ||
94 | } | ||
95 | |||
82 | void skin_debug_tree(struct skin_element* root) | 96 | void skin_debug_tree(struct skin_element* root) |
83 | { | 97 | { |
84 | int i; | 98 | int i; |
diff --git a/utils/themeeditor/skin_debug.h b/utils/themeeditor/skin_debug.h index 6b2a1bd1f5..24c66e6671 100644 --- a/utils/themeeditor/skin_debug.h +++ b/utils/themeeditor/skin_debug.h | |||
@@ -32,6 +32,8 @@ extern "C" | |||
32 | 32 | ||
33 | /* Debugging functions */ | 33 | /* Debugging functions */ |
34 | void skin_error(enum skin_errorcode error); | 34 | void skin_error(enum skin_errorcode error); |
35 | int skin_error_line(); | ||
36 | char* skin_error_message(); | ||
35 | void skin_debug_tree(struct skin_element* root); | 37 | void skin_debug_tree(struct skin_element* root); |
36 | 38 | ||
37 | /* Auxiliary debug functions */ | 39 | /* Auxiliary debug functions */ |
diff --git a/utils/themeeditor/skindocument.cpp b/utils/themeeditor/skindocument.cpp index 80a4fa330d..c7b69688f6 100644 --- a/utils/themeeditor/skindocument.cpp +++ b/utils/themeeditor/skindocument.cpp | |||
@@ -27,7 +27,8 @@ | |||
27 | #include <QMessageBox> | 27 | #include <QMessageBox> |
28 | #include <QFileDialog> | 28 | #include <QFileDialog> |
29 | 29 | ||
30 | SkinDocument::SkinDocument(QWidget *parent) : QWidget(parent) | 30 | SkinDocument::SkinDocument(QLabel* statusLabel, QWidget *parent) : |
31 | QWidget(parent), statusLabel(statusLabel) | ||
31 | { | 32 | { |
32 | setupUI(); | 33 | setupUI(); |
33 | 34 | ||
@@ -36,8 +37,8 @@ SkinDocument::SkinDocument(QWidget *parent) : QWidget(parent) | |||
36 | saved = ""; | 37 | saved = ""; |
37 | } | 38 | } |
38 | 39 | ||
39 | SkinDocument::SkinDocument(QString file, QWidget *parent): | 40 | SkinDocument::SkinDocument(QLabel* statusLabel, QString file, QWidget *parent): |
40 | QWidget(parent), fileName(file) | 41 | QWidget(parent), fileName(file), statusLabel(statusLabel) |
41 | { | 42 | { |
42 | setupUI(); | 43 | setupUI(); |
43 | 44 | ||
@@ -155,7 +156,9 @@ void SkinDocument::settingsChanged() | |||
155 | 156 | ||
156 | void SkinDocument::codeChanged() | 157 | void SkinDocument::codeChanged() |
157 | { | 158 | { |
158 | model->changeTree(editor->document()->toPlainText().toAscii()); | 159 | parseStatus = model->changeTree(editor->document()-> |
160 | toPlainText().toAscii()); | ||
161 | statusLabel->setText(parseStatus); | ||
159 | 162 | ||
160 | if(editor->document()->toPlainText() != saved) | 163 | if(editor->document()->toPlainText() != saved) |
161 | emit titleChanged(title + QChar('*')); | 164 | emit titleChanged(title + QChar('*')); |
diff --git a/utils/themeeditor/skindocument.h b/utils/themeeditor/skindocument.h index cf8f8a0313..4a6516f6de 100644 --- a/utils/themeeditor/skindocument.h +++ b/utils/themeeditor/skindocument.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #define SKINDOCUMENT_H | 23 | #define SKINDOCUMENT_H |
24 | 24 | ||
25 | #include <QWidget> | 25 | #include <QWidget> |
26 | #include <QLabel> | ||
26 | #include <QHBoxLayout> | 27 | #include <QHBoxLayout> |
27 | #include <QPlainTextEdit> | 28 | #include <QPlainTextEdit> |
28 | 29 | ||
@@ -44,14 +45,15 @@ public: | |||
44 | "All Files (*.*)"); | 45 | "All Files (*.*)"); |
45 | } | 46 | } |
46 | 47 | ||
47 | SkinDocument(QWidget *parent = 0); | 48 | SkinDocument(QLabel* statusLabel, QWidget *parent = 0); |
48 | SkinDocument(QString file, QWidget* parent = 0); | 49 | SkinDocument(QLabel* statusLabel, QString file, QWidget* parent = 0); |
49 | virtual ~SkinDocument(); | 50 | virtual ~SkinDocument(); |
50 | 51 | ||
51 | void connectPrefs(PreferencesDialog* prefs); | 52 | void connectPrefs(PreferencesDialog* prefs); |
52 | 53 | ||
53 | ParseTreeModel* getModel(){ return model; } | 54 | ParseTreeModel* getModel(){ return model; } |
54 | QString getTitle(){ return title; } | 55 | QString getTitle(){ return title; } |
56 | QString getStatus(){ return parseStatus; } | ||
55 | void genCode(){ editor->document()->setPlainText(model->genCode()); } | 57 | void genCode(){ editor->document()->setPlainText(model->genCode()); } |
56 | 58 | ||
57 | void save(); | 59 | void save(); |
@@ -74,12 +76,15 @@ private: | |||
74 | QString title; | 76 | QString title; |
75 | QString fileName; | 77 | QString fileName; |
76 | QString saved; | 78 | QString saved; |
79 | QString parseStatus; | ||
77 | 80 | ||
78 | QLayout* layout; | 81 | QLayout* layout; |
79 | QPlainTextEdit* editor; | 82 | QPlainTextEdit* editor; |
80 | 83 | ||
81 | SkinHighlighter* highlighter; | 84 | SkinHighlighter* highlighter; |
82 | ParseTreeModel* model; | 85 | ParseTreeModel* model; |
86 | |||
87 | QLabel* statusLabel; | ||
83 | }; | 88 | }; |
84 | 89 | ||
85 | #endif // SKINDOCUMENT_H | 90 | #endif // SKINDOCUMENT_H |