summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/themeeditor/graphics/rbviewport.cpp27
-rw-r--r--utils/themeeditor/graphics/rbviewport.h3
-rw-r--r--utils/themeeditor/gui/codeeditor.cpp27
-rw-r--r--utils/themeeditor/gui/codeeditor.h7
-rw-r--r--utils/themeeditor/gui/skinviewer.cpp1
5 files changed, 30 insertions, 35 deletions
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp
index e9c58eb6fb..f7b1bc4ca2 100644
--- a/utils/themeeditor/graphics/rbviewport.cpp
+++ b/utils/themeeditor/graphics/rbviewport.cpp
@@ -21,6 +21,11 @@
21 21
22#include <QPainter> 22#include <QPainter>
23#include <QPainterPath> 23#include <QPainterPath>
24#include <QGraphicsSceneMouseEvent>
25#include <QTransform>
26
27#include <QDebug>
28
24#include <cmath> 29#include <cmath>
25 30
26#include "rbviewport.h" 31#include "rbviewport.h"
@@ -40,6 +45,8 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info)
40 statusBarTexture(":/render/statusbar.png"), 45 statusBarTexture(":/render/statusbar.png"),
41 leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0) 46 leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0)
42{ 47{
48 setFlags(ItemIsSelectable | ItemIsMovable | ItemSendsGeometryChanges);
49
43 if(!node->tag) 50 if(!node->tag)
44 { 51 {
45 /* Default viewport takes up the entire screen */ 52 /* Default viewport takes up the entire screen */
@@ -290,6 +297,26 @@ void RBViewport::showPlaylist(const RBRenderInfo &info, int start,
290 } 297 }
291} 298}
292 299
300QVariant RBViewport::itemChange(GraphicsItemChange change,
301 const QVariant &value)
302{
303 if(change == ItemPositionChange)
304 {
305 QPointF pos = value.toPointF();
306 QRectF bound = parentItem()->boundingRect();
307
308 pos.setX(qMax(0., pos.x()));
309 pos.setX(qMin(pos.x(), bound.width() - boundingRect().width()));
310
311 pos.setY(qMax(0., pos.y()));
312 pos.setY(qMin(pos.y(), bound.height() - boundingRect().height()));
313
314 return pos;
315 }
316
317 return QGraphicsItem::itemChange(change, value);
318}
319
293void RBViewport::alignLeft() 320void RBViewport::alignLeft()
294{ 321{
295 int y = textOffset.y(); 322 int y = textOffset.y();
diff --git a/utils/themeeditor/graphics/rbviewport.h b/utils/themeeditor/graphics/rbviewport.h
index c665108618..ea47225f09 100644
--- a/utils/themeeditor/graphics/rbviewport.h
+++ b/utils/themeeditor/graphics/rbviewport.h
@@ -77,6 +77,9 @@ public:
77 void showPlaylist(const RBRenderInfo& info, int start, skin_element* id3, 77 void showPlaylist(const RBRenderInfo& info, int start, skin_element* id3,
78 skin_element* noId3); 78 skin_element* noId3);
79 79
80protected:
81 QVariant itemChange(GraphicsItemChange change, const QVariant &value);
82
80private: 83private:
81 84
82 void alignLeft(); 85 void alignLeft();
diff --git a/utils/themeeditor/gui/codeeditor.cpp b/utils/themeeditor/gui/codeeditor.cpp
index 3858460385..9a2a0182f2 100644
--- a/utils/themeeditor/gui/codeeditor.cpp
+++ b/utils/themeeditor/gui/codeeditor.cpp
@@ -38,8 +38,6 @@
38 38
39#include "codeeditor.h" 39#include "codeeditor.h"
40 40
41//![constructor]
42
43CodeEditor::CodeEditor(QWidget *parent) 41CodeEditor::CodeEditor(QWidget *parent)
44 : QPlainTextEdit(parent), completer(this) 42 : QPlainTextEdit(parent), completer(this)
45{ 43{
@@ -58,10 +56,6 @@ CodeEditor::CodeEditor(QWidget *parent)
58 settings.beginGroup("CodeEditor"); 56 settings.beginGroup("CodeEditor");
59} 57}
60 58
61//![constructor]
62
63//![extraAreaWidth]
64
65int CodeEditor::lineNumberAreaWidth() 59int CodeEditor::lineNumberAreaWidth()
66{ 60{
67 int digits = 1; 61 int digits = 1;
@@ -76,19 +70,12 @@ int CodeEditor::lineNumberAreaWidth()
76 return space; 70 return space;
77} 71}
78 72
79//![extraAreaWidth]
80
81//![slotUpdateExtraAreaWidth]
82 73
83void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */) 74void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */)
84{ 75{
85 setViewportMargins(lineNumberAreaWidth(), 0, 0, 0); 76 setViewportMargins(lineNumberAreaWidth(), 0, 0, 0);
86} 77}
87 78
88//![slotUpdateExtraAreaWidth]
89
90//![slotUpdateRequest]
91
92void CodeEditor::updateLineNumberArea(const QRect &rect, int dy) 79void CodeEditor::updateLineNumberArea(const QRect &rect, int dy)
93{ 80{
94 if (dy) 81 if (dy)
@@ -100,8 +87,6 @@ void CodeEditor::updateLineNumberArea(const QRect &rect, int dy)
100 updateLineNumberAreaWidth(0); 87 updateLineNumberAreaWidth(0);
101} 88}
102 89
103//![slotUpdateRequest]
104
105void CodeEditor::cursorMoved() 90void CodeEditor::cursorMoved()
106{ 91{
107 /* Closing the completer if the cursor has moved out of its bounds */ 92 /* Closing the completer if the cursor has moved out of its bounds */
@@ -138,8 +123,6 @@ void CodeEditor::insertTag()
138 completer.hide(); 123 completer.hide();
139} 124}
140 125
141//![resizeEvent]
142
143void CodeEditor::resizeEvent(QResizeEvent *e) 126void CodeEditor::resizeEvent(QResizeEvent *e)
144{ 127{
145 QPlainTextEdit::resizeEvent(e); 128 QPlainTextEdit::resizeEvent(e);
@@ -149,8 +132,6 @@ void CodeEditor::resizeEvent(QResizeEvent *e)
149 lineNumberAreaWidth(), cr.height())); 132 lineNumberAreaWidth(), cr.height()));
150} 133}
151 134
152//![resizeEvent]
153
154void CodeEditor::keyPressEvent(QKeyEvent *event) 135void CodeEditor::keyPressEvent(QKeyEvent *event)
155{ 136{
156 137
@@ -256,23 +237,16 @@ void CodeEditor::keyPressEvent(QKeyEvent *event)
256 237
257} 238}
258 239
259//![extraAreaPaintEvent_0]
260
261void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event) 240void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
262{ 241{
263 QPainter painter(lineNumberArea); 242 QPainter painter(lineNumberArea);
264 painter.fillRect(event->rect(), Qt::lightGray); 243 painter.fillRect(event->rect(), Qt::lightGray);
265 244
266//![extraAreaPaintEvent_0]
267
268//![extraAreaPaintEvent_1]
269 QTextBlock block = firstVisibleBlock(); 245 QTextBlock block = firstVisibleBlock();
270 int blockNumber = block.blockNumber(); 246 int blockNumber = block.blockNumber();
271 int top = (int) blockBoundingGeometry(block).translated(contentOffset()).top(); 247 int top = (int) blockBoundingGeometry(block).translated(contentOffset()).top();
272 int bottom = top + (int) blockBoundingRect(block).height(); 248 int bottom = top + (int) blockBoundingRect(block).height();
273//![extraAreaPaintEvent_1]
274 249
275//![extraAreaPaintEvent_2]
276 while (block.isValid() && top <= event->rect().bottom()) { 250 while (block.isValid() && top <= event->rect().bottom()) {
277 if (block.isVisible() && bottom >= event->rect().top()) { 251 if (block.isVisible() && bottom >= event->rect().top()) {
278 QString number = QString::number(blockNumber + 1); 252 QString number = QString::number(blockNumber + 1);
@@ -293,5 +267,4 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent *event)
293 ++blockNumber; 267 ++blockNumber;
294 } 268 }
295} 269}
296//![extraAreaPaintEvent_2]
297 270
diff --git a/utils/themeeditor/gui/codeeditor.h b/utils/themeeditor/gui/codeeditor.h
index 21f1c561cf..9968cf5093 100644
--- a/utils/themeeditor/gui/codeeditor.h
+++ b/utils/themeeditor/gui/codeeditor.h
@@ -51,8 +51,6 @@ QT_END_NAMESPACE
51 51
52class LineNumberArea; 52class LineNumberArea;
53 53
54//![codeeditordefinition]
55
56class CodeEditor : public QPlainTextEdit 54class CodeEditor : public QPlainTextEdit
57{ 55{
58 Q_OBJECT 56 Q_OBJECT
@@ -91,9 +89,6 @@ private:
91 int docLength; 89 int docLength;
92}; 90};
93 91
94//![codeeditordefinition]
95//![extraarea]
96
97class LineNumberArea : public QWidget 92class LineNumberArea : public QWidget
98{ 93{
99public: 94public:
@@ -114,6 +109,4 @@ private:
114 CodeEditor *codeEditor; 109 CodeEditor *codeEditor;
115}; 110};
116 111
117//![extraarea]
118
119#endif 112#endif
diff --git a/utils/themeeditor/gui/skinviewer.cpp b/utils/themeeditor/gui/skinviewer.cpp
index 95caf1e393..1d5c84c519 100644
--- a/utils/themeeditor/gui/skinviewer.cpp
+++ b/utils/themeeditor/gui/skinviewer.cpp
@@ -35,7 +35,6 @@ SkinViewer::SkinViewer(QWidget *parent) :
35 QObject::connect(ui->zoomEvenButton, SIGNAL(pressed()), 35 QObject::connect(ui->zoomEvenButton, SIGNAL(pressed()),
36 this, SLOT(zoomEven())); 36 this, SLOT(zoomEven()));
37 37
38 ui->viewer->setDragMode(QGraphicsView::ScrollHandDrag);
39} 38}
40 39
41SkinViewer::~SkinViewer() 40SkinViewer::~SkinViewer()