summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp13
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.h1
-rw-r--r--noncore/graphics/drawpad/thumbnailview.cpp27
-rw-r--r--noncore/graphics/drawpad/thumbnailview.h2
4 files changed, 42 insertions, 1 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 252f4d5..0a1e9a5 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -326,8 +326,21 @@ uint DrawPadCanvas::pageCount()
{
return m_pages.count();
}
+void DrawPadCanvas::selectPage(Page* page)
+{
+ m_pages.findRef(page);
+ m_pageBackups.clear();
+ m_pageBackups.append(new Page(*(m_pages.current())));
+
+ resizeContents(m_pages.current()->width(), m_pages.current()->height());
+ viewport()->update();
+
+ emit pagesChanged();
+ emit pageBackupsChanged();
+}
+
void DrawPadCanvas::backupPage()
{
QPixmap* currentBackup = m_pageBackups.current();
while (m_pageBackups.last() != currentBackup) {
diff --git a/noncore/graphics/drawpad/drawpadcanvas.h b/noncore/graphics/drawpad/drawpadcanvas.h
index 47763f9..cf2d904 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.h
+++ b/noncore/graphics/drawpad/drawpadcanvas.h
@@ -46,8 +46,9 @@ public:
QList<Page> pages();
uint pagePosition();
uint pageCount();
+ void selectPage(Page* page);
void backupPage();
public slots:
void deleteAll();
diff --git a/noncore/graphics/drawpad/thumbnailview.cpp b/noncore/graphics/drawpad/thumbnailview.cpp
index 1754ce9..476b7b9 100644
--- a/noncore/graphics/drawpad/thumbnailview.cpp
+++ b/noncore/graphics/drawpad/thumbnailview.cpp
@@ -99,8 +99,11 @@ void PageListView::updateView()
for (; it.current(); ++it) {
new PageListViewItem(it.current(), this);
}
+
+ setSorting(0, false);
+ select(m_pDrawPadCanvas->currentPage());
}
}
void PageListView::resizeEvent(QResizeEvent* e)
@@ -109,8 +112,23 @@ void PageListView::resizeEvent(QResizeEvent* e)
setColumnWidth(1, contentsRect().width() - columnWidth(0) - verticalScrollBar()->width());
}
+void PageListView::select(Page* page)
+{
+ PageListViewItem* item = (PageListViewItem*)firstChild();
+
+ while (item) {
+ if (item->page() == page) {
+ setSelected(item, true);
+ ensureItemVisible(item);
+ break;
+ }
+
+ item = (PageListViewItem*)(item->nextSibling());
+ }
+}
+
Page* PageListView::selected() const
{
Page* page;
@@ -124,9 +142,8 @@ Page* PageListView::selected() const
return page;
}
-
ThumbnailView::ThumbnailView(DrawPadCanvas* drawPadCanvas, QWidget* parent, const char* name)
: QWidget(parent, name, Qt::WType_Modal | Qt::WType_TopLevel)
{
inLoop = false;
@@ -144,8 +161,9 @@ ThumbnailView::ThumbnailView(DrawPadCanvas* drawPadCanvas, QWidget* parent, cons
QToolButton* deletePageButton = new QToolButton(this);
deletePageButton->setIconSet(Resource::loadIconSet("trash"));
deletePageButton->setAutoRaise(true);
+ connect(deletePageButton, SIGNAL(clicked()), this, SLOT(deletePage()));
QToolButton* movePageUpButton = new QToolButton(this);
movePageUpButton->setIconSet(Resource::loadIconSet("up"));
movePageUpButton->setAutoRaise(true);
@@ -154,8 +172,9 @@ ThumbnailView::ThumbnailView(DrawPadCanvas* drawPadCanvas, QWidget* parent, cons
movePageDownButton->setIconSet(Resource::loadIconSet("down"));
movePageDownButton->setAutoRaise(true);
m_pPageListView = new PageListView(m_pDrawPadCanvas, this);
+ connect(m_pPageListView, SIGNAL(selectionChanged()), this, SLOT(changePage()));
QVBoxLayout* mainLayout = new QVBoxLayout(this, 4, 4);
QHBoxLayout* buttonLayout = new QHBoxLayout(0);
@@ -206,6 +225,12 @@ void ThumbnailView::deletePage()
messageBox.setButtonText(QMessageBox::No, tr("No"));
if (messageBox.exec() == QMessageBox::Yes) {
m_pDrawPadCanvas->deletePage();
+ m_pPageListView->updateView();
}
}
+
+void ThumbnailView::changePage()
+{
+ m_pDrawPadCanvas->selectPage(m_pPageListView->selected());
+}
diff --git a/noncore/graphics/drawpad/thumbnailview.h b/noncore/graphics/drawpad/thumbnailview.h
index ae97ff1..9417655 100644
--- a/noncore/graphics/drawpad/thumbnailview.h
+++ b/noncore/graphics/drawpad/thumbnailview.h
@@ -39,8 +39,9 @@ public:
~PageListView();
void updateView();
+ void select(Page* page);
Page* selected() const;
protected:
void resizeEvent(QResizeEvent* e);
@@ -61,8 +62,9 @@ public:
void exec();
public slots:
void deletePage();
+ void changePage();
private:
bool inLoop;
DrawPadCanvas* m_pDrawPadCanvas;