summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/drawpad/drawpad.cpp39
-rw-r--r--noncore/graphics/drawpad/drawpad.h6
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.cpp13
-rw-r--r--noncore/graphics/drawpad/drawpadcanvas.h1
4 files changed, 54 insertions, 5 deletions
diff --git a/noncore/graphics/drawpad/drawpad.cpp b/noncore/graphics/drawpad/drawpad.cpp
index b29f5ba..4eb47a5 100644
--- a/noncore/graphics/drawpad/drawpad.cpp
+++ b/noncore/graphics/drawpad/drawpad.cpp
@@ -29,16 +29,17 @@
#include "rectangletool.h"
#include "texttool.h"
#include "thumbnailview.h"
#include <opie/colordialog.h>
#include <opie/colorpopupmenu.h>
#include <qpe/applnk.h>
+#include <qpe/config.h>
#include <qpe/global.h>
#include <qpe/qpemenubar.h>
#include <qpe/qpetoolbar.h>
#include <qpe/resource.h>
#include <qaction.h>
#include <qfile.h>
#include <qmessagebox.h>
@@ -223,22 +224,22 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
emptyToolBar = new QPEToolBar(this);
emptyToolBar->setHorizontalStretchable(true);
emptyToolBar->addSeparator();
// init draw parameters toolbar
QPEToolBar* drawParametersToolBar = new QPEToolBar(this);
- QSpinBox* penWidthSpinBox = new QSpinBox(1, 9, 1, drawParametersToolBar);
- connect(penWidthSpinBox, SIGNAL(valueChanged(int)), this, SLOT(changePenWidth(int)));
+ m_pPenWidthSpinBox = new QSpinBox(1, 9, 1, drawParametersToolBar);
+ connect(m_pPenWidthSpinBox, SIGNAL(valueChanged(int)), this, SLOT(changePenWidth(int)));
- QToolTip::add(penWidthSpinBox, tr("Pen Width"));
- penWidthSpinBox->setValue(1);
- penWidthSpinBox->setFocusPolicy(QWidget::NoFocus);
+ QToolTip::add(m_pPenWidthSpinBox, tr("Pen Width"));
+ m_pPenWidthSpinBox->setValue(1);
+ m_pPenWidthSpinBox->setFocusPolicy(QWidget::NoFocus);
m_pPenColorToolButton = new QToolButton(drawParametersToolBar);
m_pPenColorToolButton->setPixmap(Resource::loadPixmap("drawpad/pencolor.png"));
ColorPopupMenu* penColorPopupMenu = new ColorPopupMenu(Qt::black, m_pPenColorToolButton);
connect(penColorPopupMenu, SIGNAL(colorSelected(const QColor&)), this, SLOT(changePenColor(const QColor&)));
QToolTip::add(m_pPenColorToolButton, tr("Pen Color"));
@@ -264,20 +265,24 @@ DrawPad::DrawPad(QWidget* parent, const char* name)
QFile file(Global::applicationFileName("drawpad", "drawpad.xml"));
if (file.open(IO_ReadOnly)) {
m_pDrawPadCanvas->load(&file);
file.close();
} else {
m_pDrawPadCanvas->initialPage();
}
+
+ loadConfig();
}
DrawPad::~DrawPad()
{
+ saveConfig();
+
QFile file(Global::applicationFileName("drawpad", "drawpad.xml"));
if (file.open(IO_WriteOnly)) {
m_pDrawPadCanvas->save(&file);
file.close();
}
}
@@ -614,8 +619,32 @@ void DrawPad::thumbnailView()
void DrawPad::pageInformation()
{
PageInformationDialog pageInformationDialog(m_pDrawPadCanvas->currentPage());
if (pageInformationDialog.exec() == QDialog::Accepted) {
m_pDrawPadCanvas->currentPage()->setTitle(pageInformationDialog.selectedTitle());
}
}
+
+void DrawPad::loadConfig()
+{
+ Config config("drawpad");
+ config.setGroup("General");
+
+ m_pAntiAliasingAction->setOn(config.readBoolEntry("AntiAliasing", false));
+ m_pPenWidthSpinBox->setValue(config.readNumEntry("PenWidth", 1));
+ changePenColor(QColor(config.readEntry("PenColor", Qt::black.name())));
+ changeBrushColor(QColor(config.readEntry("BrushColor", Qt::white.name())));
+ m_pDrawPadCanvas->selectPage(config.readNumEntry("PagePosition", 1));
+}
+
+void DrawPad::saveConfig()
+{
+ Config config("drawpad");
+ config.setGroup("General");
+
+ config.writeEntry("PagePosition", (int)m_pDrawPadCanvas->pagePosition());
+ config.writeEntry("AntiAliasing", antiAliasing());
+ config.writeEntry("PenWidth", (int)m_pen.width());
+ config.writeEntry("PenColor", m_pen.color().name());
+ config.writeEntry("BrushColor", m_brush.color().name());
+}
diff --git a/noncore/graphics/drawpad/drawpad.h b/noncore/graphics/drawpad/drawpad.h
index 8e29c61..c57606c 100644
--- a/noncore/graphics/drawpad/drawpad.h
+++ b/noncore/graphics/drawpad/drawpad.h
@@ -18,16 +18,17 @@
#include <qpen.h>
class DrawPadCanvas;
class Tool;
class QAction;
class QColor;
+class QSpinBox;
class QToolButton;
class QWidgetStack;
class DrawPad : public QMainWindow
{
Q_OBJECT
public:
@@ -65,16 +66,19 @@ private slots:
void deleteAll();
void importPage();
void exportPage();
void thumbnailView();
void pageInformation();
private:
+ void loadConfig();
+ void saveConfig();
+
DrawPadCanvas* m_pDrawPadCanvas;
Tool* m_pTool;
QPen m_pen;
QBrush m_brush;
QAction* m_pAntiAliasingAction;
@@ -96,11 +100,13 @@ private:
QAction* m_pFillToolAction;
QAction* m_pEraseToolAction;
QToolButton* m_pLineToolButton;
QToolButton* m_pRectangleToolButton;
QToolButton* m_pEllipseToolButton;
QToolButton* m_pPenColorToolButton;
QToolButton* m_pBrushColorToolButton;
+
+ QSpinBox* m_pPenWidthSpinBox;
};
#endif // DRAWPAD_H
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp
index 5437068..05dd408 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.cpp
+++ b/noncore/graphics/drawpad/drawpadcanvas.cpp
@@ -341,16 +341,29 @@ void DrawPadCanvas::selectPage(Page* page)
resizeContents(m_pages.current()->width(), m_pages.current()->height());
viewport()->update();
emit pagesChanged();
emit pageBackupsChanged();
}
+void DrawPadCanvas::selectPage(uint pagePosition)
+{
+ m_pages.at(pagePosition - 1);
+ 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()
{
m_pages.current()->setLastModified(QDateTime::currentDateTime());
Page* currentBackup = m_pageBackups.current();
while (m_pageBackups.last() != currentBackup) {
m_pageBackups.removeLast();
}
diff --git a/noncore/graphics/drawpad/drawpadcanvas.h b/noncore/graphics/drawpad/drawpadcanvas.h
index dcaff5c..2283e5e 100644
--- a/noncore/graphics/drawpad/drawpadcanvas.h
+++ b/noncore/graphics/drawpad/drawpadcanvas.h
@@ -43,16 +43,17 @@ public:
bool goNextPageEnabled();
Page* currentPage();
QList<Page> pages();
uint pagePosition();
uint pageCount();
void selectPage(Page* page);
+ void selectPage(uint pagePosition);
void backupPage();
public slots:
void deleteAll();
void newPage(QString title, uint width, uint height, const QColor& color);
void clearPage();
void deletePage();
void movePageUp();