diff -r 66bc6e45be83 -r 4ba4f021070f QTfrontend/drawmapwidget.cpp --- a/QTfrontend/drawmapwidget.cpp Mon Dec 20 20:55:45 2010 +0300 +++ b/QTfrontend/drawmapwidget.cpp Mon Dec 20 21:45:10 2010 +0300 @@ -1,4 +1,5 @@ #include +#include #include "drawmapwidget.h" @@ -31,6 +32,7 @@ void DrawMapWidget::setScene(DrawMapScene * scene) { ui->graphicsView->setScene(scene); + m_scene = scene; } void DrawMapWidget::resizeEvent(QResizeEvent * event) @@ -55,15 +57,31 @@ void DrawMapWidget::clear() { - if(m_scene) m_scene->clear(); + if(m_scene) m_scene->clearMap(); } void DrawMapWidget::save(const QString & fileName) { - Q_UNUSED(fileName); + if(m_scene) + { + QFile file(fileName); + + if(!file.open(QIODevice::WriteOnly)) + QMessageBox::warning(this, tr("File error"), tr("Cannot open file '%1' for writing").arg(fileName)); + else + file.write(qCompress(m_scene->encode()).toBase64()); + } } void DrawMapWidget::load(const QString & fileName) { - Q_UNUSED(fileName); + if(m_scene) + { + QFile f(fileName); + + if(!f.open(QIODevice::ReadOnly)) + QMessageBox::warning(this, tr("File error"), tr("Cannot read file '%1'").arg(fileName)); + else + m_scene->decode(qUncompress(QByteArray::fromBase64(f.readAll()))); + } }