diff options
Diffstat (limited to 'utils/wpseditor/gui/src/qwpseditorwindow.cpp')
-rw-r--r-- | utils/wpseditor/gui/src/qwpseditorwindow.cpp | 48 |
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[] = { | |||
47 | QWpsEditorWindow::QWpsEditorWindow( QWidget * parent, Qt::WFlags f) | 47 | QWpsEditorWindow::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 | ||
60 | void QWpsEditorWindow::connectActions() { | 62 | void 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 | ||
136 | void QWpsEditorWindow::logMsg(QString s) { | 136 | void 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 | ||
140 | void QWpsEditorWindow::slotVerboseLevel() { | 148 | void QWpsEditorWindow::slotVerboseLevel() { |
@@ -146,18 +154,18 @@ void QWpsEditorWindow::slotVerboseLevel() { | |||
146 | 154 | ||
147 | void QWpsEditorWindow::slotUpdatePlainWps() { | 155 | void 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 | ||
156 | void QWpsEditorWindow::slotPlainDocModChanged(bool changed) { | 162 | void 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 | } |
162 | void QWpsEditorWindow::slotSetTarget(const QString & target) { | 170 | void 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 | ||
180 | void 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 | ||