summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp17
-rw-r--r--noncore/graphics/drawpad/drawpad.h1
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp21
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.h2
-rw-r--r--noncore/graphics/drawpad/thumbnailview.cpp38
-rw-r--r--noncore/graphics/drawpad/thumbnailview.h7
6 files changed, 69 insertions, 17 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp
index 58c0d09..ef55268 100644
--- a/noncore/graphics/drawpad/drawpad.cpp
+++ b/noncore/graphics/drawpad/drawpad.cpp
@@ -22,6 +22,7 @@
#include "filltool.h"
#include "importdialog.h"
#include "linetool.h"
+#include "newpagedialog.h"
#include "pointtool.h"
#include "rectangletool.h"
#include "texttool.h"
@@ -93,7 +94,7 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
QPEToolBar* pageToolBar = new QPEToolBar(this);
QAction* newPageAction = new QAction(tr("New Page"), Resource::loadIconSet("new"), QString::null, 0, this);
- connect(newPageAction, SIGNAL(activated()), m_pDrawPadCanvas, SLOT(newPage()));
+ connect(newPageAction, SIGNAL(activated()), this, SLOT(newPage()));
newPageAction->addTo(pageToolBar);
QAction* clearPageAction = new QAction(tr("Clear Page"), Resource::loadIconSet("drawpad/clear"), QString::null, 0, this);
@@ -268,6 +269,18 @@ DrawPad::~DrawPad()
}
}
+void DrawPad::newPage()
+{
+ QRect rect = m_pDrawPadCanvas->contentsRect();
+
+ NewPageDialog newPageDialog(rect.width(), rect.height(), m_pen.color(), m_brush.color(), this);
+
+ if (newPageDialog.exec() == QDialog::Accepted) {
+ m_pDrawPadCanvas->newPage(newPageDialog.selectedWidth(), newPageDialog.selectedHeight(),
+ newPageDialog.selectedColor());
+ }
+}
+
void DrawPad::clearPage()
{
QMessageBox messageBox(tr("Clear Page"), tr("Do you want to clear\nthe current page?"),
@@ -575,7 +588,7 @@ void DrawPad::exportPage()
void DrawPad::thumbnailView()
{
- ThumbnailView thumbnailView(m_pDrawPadCanvas, this);
+ ThumbnailView thumbnailView(this, m_pDrawPadCanvas, this);
thumbnailView.showMaximized();
thumbnailView.exec();
diff --git a/noncore/graphics/drawpad/drawpad.h b/noncore/graphics/drawpad/drawpad.h
index 01061b4..9a821f6 100644
--- a/noncore/graphics/drawpad/drawpad.h
+++ b/noncore/graphics/drawpad/drawpad.h
@@ -39,6 +39,7 @@ public:
QBrush brush() { return m_brush; }
private slots:
+ void newPage();
void clearPage();
void deletePage();
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 0a1e9a5..c23ee34 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -14,7 +14,6 @@
#include "drawpadcanvas.h"
#include "drawpad.h"
-#include "newpagedialog.h"
#include "page.h"
#include "tool.h"
@@ -373,17 +372,10 @@ void DrawPadCanvas::deleteAll()
emit pageBackupsChanged();
}
-void DrawPadCanvas::newPage()
+void DrawPadCanvas::newPage(uint width, uint height, const QColor& color)
{
- QRect rect = contentsRect();
-
- NewPageDialog newPageDialog(rect.width(), rect.height(), m_pDrawPad->pen().color(),
- m_pDrawPad->brush().color(), this);
-
- if (newPageDialog.exec() == QDialog::Accepted) {
- m_pages.insert(m_pages.at() + 1, new Page(newPageDialog.selectedWidth(),
- newPageDialog.selectedHeight()));
- m_pages.current()->fill(newPageDialog.selectedColor());
+ m_pages.insert(m_pages.at() + 1, new Page(width, height));
+ m_pages.current()->fill(color);
m_pageBackups.clear();
m_pageBackups.append(new Page(*(m_pages.current())));
@@ -394,13 +386,18 @@ void DrawPadCanvas::newPage()
emit pagesChanged();
emit pageBackupsChanged();
}
-}
void DrawPadCanvas::clearPage()
{
m_pages.current()->fill(Qt::white);
+ m_pageBackups.clear();
+ m_pageBackups.append(new Page(*(m_pages.current())));
+
+ resizeContents(m_pages.current()->width(), m_pages.current()->height());
viewport()->update();
+
+ emit pageBackupsChanged();
}
void DrawPadCanvas::deletePage()
diff --git a/noncore/graphics/drawpad/drawpadcanvas.h b/noncore/graphics/drawpad/drawpadcanvas.h
index cf2d904..d74d425 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.h
+++ b/noncore/graphics/drawpad/drawpadcanvas.h
@@ -52,7 +52,7 @@ public:
public slots:
void deleteAll();
- void newPage();
+ void newPage(uint width, uint height, const QColor& color);
void clearPage();
void deletePage();
diff --git a/noncore/graphics/drawpad/thumbnailview.cpp b/noncore/graphics/drawpad/thumbnailview.cpp
index 476b7b9..08e106d 100644
--- a/noncore/graphics/drawpad/thumbnailview.cpp
+++ b/noncore/graphics/drawpad/thumbnailview.cpp
@@ -13,7 +13,9 @@
#include "thumbnailview.h"
+#include "drawpad.h"
#include "drawpadcanvas.h"
+#include "newpagedialog.h"
#include "page.h"
#include <qpe/resource.h>
@@ -143,10 +145,12 @@ Page* PageListView::selected() const
return page;
}
-ThumbnailView::ThumbnailView(DrawPadCanvas* drawPadCanvas, QWidget* parent, const char* name)
+ThumbnailView::ThumbnailView(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas, QWidget* parent, const char* name)
: QWidget(parent, name, Qt::WType_Modal | Qt::WType_TopLevel)
{
inLoop = false;
+
+ m_pDrawPad = drawPad;
m_pDrawPadCanvas = drawPadCanvas;
setCaption(tr("Thumbnail"));
@@ -154,10 +158,12 @@ ThumbnailView::ThumbnailView(DrawPadCanvas* drawPadCanvas, QWidget* parent, cons
QToolButton* newPageButton = new QToolButton(this);
newPageButton->setIconSet(Resource::loadIconSet("new"));
newPageButton->setAutoRaise(true);
+ connect(newPageButton, SIGNAL(clicked()), this, SLOT(newPage()));
QToolButton* clearPageButton = new QToolButton(this);
clearPageButton->setIconSet(Resource::loadIconSet("drawpad/clear"));
clearPageButton->setAutoRaise(true);
+ connect(clearPageButton, SIGNAL(clicked()), this, SLOT(clearPage()));
QToolButton* deletePageButton = new QToolButton(this);
deletePageButton->setIconSet(Resource::loadIconSet("trash"));
@@ -214,6 +220,36 @@ void ThumbnailView::exec()
}
}
+void ThumbnailView::newPage()
+{
+ QRect rect = m_pDrawPadCanvas->contentsRect();
+
+ NewPageDialog newPageDialog(rect.width(), rect.height(), m_pDrawPad->pen().color(),
+ m_pDrawPad->brush().color(), this);
+
+ if (newPageDialog.exec() == QDialog::Accepted) {
+ m_pDrawPadCanvas->newPage(newPageDialog.selectedWidth(), newPageDialog.selectedHeight(),
+ newPageDialog.selectedColor());
+ m_pPageListView->updateView();
+ }
+}
+
+void ThumbnailView::clearPage()
+{
+ QMessageBox messageBox(tr("Clear Page"), tr("Do you want to clear\nthe selected page?"),
+ QMessageBox::Information, QMessageBox::Yes,
+ QMessageBox::No | QMessageBox::Escape | QMessageBox::Default,
+ QMessageBox::NoButton, this);
+
+ messageBox.setButtonText(QMessageBox::Yes, tr("Yes"));
+ messageBox.setButtonText(QMessageBox::No, tr("No"));
+
+ if (messageBox.exec() == QMessageBox::Yes) {
+ m_pDrawPadCanvas->clearPage();
+ m_pPageListView->updateView();
+ }
+}
+
void ThumbnailView::deletePage()
{
QMessageBox messageBox(tr("Delete Page"), tr("Do you want to delete\nthe selected page?"),
diff --git a/noncore/graphics/drawpad/thumbnailview.h b/noncore/graphics/drawpad/thumbnailview.h
index 9417655..1fdb168 100644
--- a/noncore/graphics/drawpad/thumbnailview.h
+++ b/noncore/graphics/drawpad/thumbnailview.h
@@ -17,6 +17,7 @@
#include <qwidget.h>
#include <qlistview.h>
+class DrawPad;
class DrawPadCanvas;
class Page;
@@ -55,18 +56,22 @@ class ThumbnailView : public QWidget
Q_OBJECT
public:
- ThumbnailView(DrawPadCanvas* drawPadCanvas, QWidget* parent = 0, const char* name = 0);
+ ThumbnailView(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas, QWidget* parent = 0, const char* name = 0);
~ThumbnailView();
void hide();
void exec();
public slots:
+ void newPage();
+ void clearPage();
void deletePage();
void changePage();
private:
bool inLoop;
+
+ DrawPad* m_pDrawPad;
DrawPadCanvas* m_pDrawPadCanvas;
PageListView* m_pPageListView;