summaryrefslogtreecommitdiff
path: root/utils/wpseditor/gui/src/qwpseditorwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/wpseditor/gui/src/qwpseditorwindow.cpp')
-rw-r--r--utils/wpseditor/gui/src/qwpseditorwindow.cpp48
1 files changed, 33 insertions, 15 deletions
diff --git a/utils/wpseditor/gui/src/qwpseditorwindow.cpp b/utils/wpseditor/gui/src/qwpseditorwindow.cpp
index 29887c38bb..1527fef57a 100644
--- a/utils/wpseditor/gui/src/qwpseditorwindow.cpp
+++ b/utils/wpseditor/gui/src/qwpseditorwindow.cpp
@@ -47,6 +47,7 @@ const char *playmodeNames[] = {
47QWpsEditorWindow::QWpsEditorWindow( QWidget * parent, Qt::WFlags f) 47QWpsEditorWindow::QWpsEditorWindow( QWidget * parent, Qt::WFlags f)
48 : QMainWindow(parent, f) { 48 : QMainWindow(parent, f) {
49 logEdit = 0; 49 logEdit = 0;
50 scrollingLine = -1;
50 setupUi(this); 51 setupUi(this);
51 drawer = new QWpsDrawer(&wpsState,&trackState, this); 52 drawer = new QWpsDrawer(&wpsState,&trackState, this);
52 QWpsDrawer::api.verbose = 1; 53 QWpsDrawer::api.verbose = 1;
@@ -54,7 +55,8 @@ QWpsEditorWindow::QWpsEditorWindow( QWidget * parent, Qt::WFlags f)
54 connectActions(); 55 connectActions();
55 m_propertyEditor->addObject(&trackState); 56 m_propertyEditor->addObject(&trackState);
56 m_propertyEditor->addObject(&wpsState); 57 m_propertyEditor->addObject(&wpsState);
57 new QSyntaxer(plainWpsEdit->document()); 58 new QSyntaxer(plainWpsEdit->textEdit()->document());
59 plainWpsEdit->markLine(-1);
58} 60}
59 61
60void QWpsEditorWindow::connectActions() { 62void QWpsEditorWindow::connectActions() {
@@ -65,7 +67,7 @@ void QWpsEditorWindow::connectActions() {
65 connect(actShowGrid, SIGNAL(triggered(bool)), drawer, SLOT(slotShowGrid(bool))); 67 connect(actShowGrid, SIGNAL(triggered(bool)), drawer, SLOT(slotShowGrid(bool)));
66 68
67 connect(actUpdatePlainWps, SIGNAL(triggered()), SLOT(slotUpdatePlainWps())); 69 connect(actUpdatePlainWps, SIGNAL(triggered()), SLOT(slotUpdatePlainWps()));
68 connect(plainWpsEdit->document(),SIGNAL(modificationChanged(bool)),SLOT(slotPlainDocModChanged(bool))); 70 connect(plainWpsEdit->textEdit()->document(),SIGNAL(modificationChanged(bool)),SLOT(slotPlainDocModChanged(bool)));
69 71
70 connect(&wpsState, SIGNAL(stateChanged(wpsstate)), drawer, SLOT(slotWpsStateChanged(wpsstate))); 72 connect(&wpsState, SIGNAL(stateChanged(wpsstate)), drawer, SLOT(slotWpsStateChanged(wpsstate)));
71 connect(&trackState, SIGNAL(stateChanged(trackstate)), drawer, SLOT(slotTrackStateChanged(trackstate))); 73 connect(&trackState, SIGNAL(stateChanged(trackstate)), drawer, SLOT(slotTrackStateChanged(trackstate)));
@@ -124,17 +126,23 @@ void QWpsEditorWindow::slotOpenWps() {
124 DEBUGF1(tr("File wasn't chosen")); 126 DEBUGF1(tr("File wasn't chosen"));
125 return; 127 return;
126 } 128 }
127 m_propertyEditor->setEnabled(true); 129 scrollingLine = -1;
128 drawer->WpsInit(wpsfile); 130 drawer->WpsInit(wpsfile);
129 plainWpsEdit->clear(); 131 plainWpsEdit->textEdit()->clear();
130 plainWpsEdit->append(drawer->wpsString()); 132 plainWpsEdit->textEdit()->append(drawer->wpsString());
131 trackState.setAlbum(trackState.album()); ////updating property editor 133 postWpsUpdate();
132 actGroupAudios->setEnabled(true);
133
134} 134}
135 135
136void QWpsEditorWindow::logMsg(QString s) { 136void QWpsEditorWindow::logMsg(QString s) {
137 logEdit->append(s); 137 logEdit->append(s);
138 // check for error line:
139 if (s.contains("ERR: Failed parsing on line ")) {
140 QRegExp error("\\d+");
141 if (error.indexIn(s) != -1) {
142 scrollingLine = error.cap(0).toInt();
143 plainWpsEdit->markLine(scrollingLine);
144 }
145 }
138} 146}
139 147
140void QWpsEditorWindow::slotVerboseLevel() { 148void QWpsEditorWindow::slotVerboseLevel() {
@@ -146,18 +154,18 @@ void QWpsEditorWindow::slotVerboseLevel() {
146 154
147void QWpsEditorWindow::slotUpdatePlainWps() { 155void QWpsEditorWindow::slotUpdatePlainWps() {
148 DEBUGF1(tr("Updating WPS")); 156 DEBUGF1(tr("Updating WPS"));
149 plainWpsEdit->document()->setModified(false); 157 scrollingLine = -1;
150 drawer->WpsInit(plainWpsEdit->toPlainText(),false); 158 drawer->WpsInit(plainWpsEdit->textEdit()->toPlainText(),false);
151 m_propertyEditor->setEnabled(true); 159 postWpsUpdate();
152 actGroupAudios->setEnabled(true);
153 trackState.setAlbum(trackState.album()); //updating property editor
154} 160}
155 161
156void QWpsEditorWindow::slotPlainDocModChanged(bool changed) { 162void QWpsEditorWindow::slotPlainDocModChanged(bool changed) {
157 if (changed) 163 if (changed) {
158 dockPlainWps->setWindowTitle(tr("PlainWps*")); 164 dockPlainWps->setWindowTitle(tr("PlainWps*"));
159 else 165 plainWpsEdit->markLine(-1);
166 } else {
160 dockPlainWps->setWindowTitle(tr("PlainWps")); 167 dockPlainWps->setWindowTitle(tr("PlainWps"));
168 }
161} 169}
162void QWpsEditorWindow::slotSetTarget(const QString & target) { 170void QWpsEditorWindow::slotSetTarget(const QString & target) {
163 if (drawer->setTarget(target)) { 171 if (drawer->setTarget(target)) {
@@ -169,5 +177,15 @@ void QWpsEditorWindow::slotSetTarget(const QString & target) {
169 slotUpdatePlainWps(); 177 slotUpdatePlainWps();
170} 178}
171 179
180void QWpsEditorWindow::postWpsUpdate() {
181 m_propertyEditor->setEnabled(true);
182 actGroupAudios->setEnabled(true);
183 trackState.setAlbum(trackState.album()); ////updating property editor
184 plainWpsEdit->markLine(scrollingLine);
185 plainWpsEdit->textEdit()->document()->setModified(false);
186 plainWpsEdit->scrolltoLine(scrollingLine);
187 scrollingLine = -1;
188}
189
172 190
173 191