SVN commit 1017938 by bettio: BlackBoardWidget saves and restores blackboard image. M +2 -1 blackboard.cpp M +28 -1 blackboardwidget.cpp M +7 -4 blackboardwidget.h --- trunk/playground/base/plasma/applets/blackboard/blackboard.cpp #1017937:1017938 @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -55,7 +56,7 @@ void BlackBoard::init() { QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical); - blackBoard = new BlackBoardWidget(this); + blackBoard = new BlackBoardWidget(this, QString::number(id())); blackBoard->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); mainLayout->addItem(blackBoard); --- trunk/playground/base/plasma/applets/blackboard/blackboardwidget.cpp #1017937:1017938 @@ -27,25 +27,52 @@ #include #include #include +#include +#include +#include #include #include -BlackBoardWidget::BlackBoardWidget(QGraphicsWidget *parent) +BlackBoardWidget::BlackBoardWidget(QGraphicsWidget *parent, QString id) : QGraphicsWidget(parent) { + m_id = id; m_color = QColor(Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor)); m_pixmap = QPixmap(contentsRect().width(), contentsRect().height()); m_pixmap.fill(Qt::transparent); p.begin(&m_pixmap); p.setPen(QPen(m_color, 3)); oldPoint = QPointF(-1, 0); + + QTimer::singleShot(500, this, SLOT(loadImage())); + + loadImage(); } BlackBoardWidget::~BlackBoardWidget() { + saveImage(); } +void BlackBoardWidget::saveImage() +{ + KSaveFile imageFile(KStandardDirs::locateLocal("data", "plasma-desktop-datastorage/blackboard-" + m_id + ".png")); + imageFile.open(); + m_pixmap.save(&imageFile, "PNG"); + imageFile.finalize(); + imageFile.close(); +} + +void BlackBoardWidget::loadImage() +{ + p.end(); + m_pixmap.load(KStandardDirs::locateLocal("data", "plasma-desktop-datastorage/blackboard-" + m_id + ".png"), "PNG"); + update(contentsRect()); + p.begin(&m_pixmap); + p.setPen(QPen(m_color, 3)); +} + void BlackBoardWidget::mousePressEvent(QGraphicsSceneMouseEvent *) { update(contentsRect()); --- trunk/playground/base/plasma/applets/blackboard/blackboardwidget.h #1017937:1017938 @@ -28,15 +28,13 @@ #include class QGraphicsSceneMouseEvent; -class QMenu; -class CustomTimeEditor; -class QActionGroup; class BlackBoardWidget : public QGraphicsWidget { Q_OBJECT + public: - BlackBoardWidget(QGraphicsWidget *parent); + BlackBoardWidget(QGraphicsWidget *parent, QString id); ~BlackBoardWidget(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); @@ -47,8 +45,13 @@ void resizeEvent(QGraphicsSceneResizeEvent * event); void setBrushColor(QColor color); + + private Q_SLOTS: + void loadImage(); + void saveImage(); private: + QString m_id; QColor m_color; QPixmap m_pixmap; QPointF oldPoint;