-rw-r--r-- | noncore/graphics/drawpad/drawpad.cpp | 39 | ||||
-rw-r--r-- | noncore/graphics/drawpad/drawpad.h | 6 | ||||
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 13 | ||||
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.h | 1 |
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(); |