diff options
author | Roopesh Chander <roop@forwardbias.in> | 2009-11-03 20:04:15 +0530 |
---|---|---|
committer | Roopesh Chander <roop@forwardbias.in> | 2009-11-03 20:04:15 +0530 |
commit | aa69057d2b9ebacc1cae995c57969e23a2b97785 (patch) | |
tree | 9e6db858474949b815b08f2690af733d81da3063 /mainwindow.cpp | |
parent | 6c2a3f9bfa4d48cde8dc9050d55af7454163db29 (diff) |
remember scraps across sessions
Diffstat (limited to 'mainwindow.cpp')
-rw-r--r-- | mainwindow.cpp | 70 |
1 files changed, 55 insertions, 15 deletions
diff --git a/mainwindow.cpp b/mainwindow.cpp index ec709b3..c7cfbaf 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -25,6 +25,9 @@ MainWindow::MainWindow(QWidget *parent) : m_browserToolbar->setVisible(false); m_isBrowsing = false; adjustTitle(); + + m_settings = new QSettings("Nokia", "WebScraps", this); + loadSettings(); } void MainWindow::initGraphicsView() { @@ -39,21 +42,6 @@ void MainWindow::initScrapBoard() { QGraphicsScene *gs = m_graphicsView->scene(); createScrapsToolbar(gs); - - addScrap(QUrl("http://www.stackoverflow.com/"), - QRect(0, 150, 735, 180), - QPoint(50, 50)); - addScrap(QUrl("http://www.gocomics.com/calvinandhobbes/"), - QRect(30, 299, 600, 201), - QPoint(10, 280)); -/* - addScrap(QUrl("http://www.dilbert.com/"), - QRect(20, 197, 640, 199), - QPoint(100, 182)); - addScrap(QUrl("http://www.google.com/search?hl=en&q=bangalore+weather"), - QRect(20, 161, 400, 125), - QPoint(500, 15)); -*/ } void MainWindow::addScrap(QUrl url, QRect scrapRect, QPoint position) { @@ -146,6 +134,7 @@ void MainWindow::createBrowserToolbar(QGraphicsScene *scene) { MainWindow::~MainWindow() { + saveSettings(); delete ui; } @@ -347,3 +336,54 @@ void MainWindow::searchTextChanged(const QString& text) { } bubbleUpScraps(matchingScraps); } + +void MainWindow::saveSettings() { + m_settings->setValue("mainwindow/size", size()); + m_settings->setValue("mainwindow/pos", pos()); + m_settings->setValue("browser/url", m_webView->url().toString()); + m_settings->setValue("browser/toolbarpos", m_browserToolbar->pos().toPoint()); + m_settings->setValue("scraps/toolbarpos", m_scrapsToolbar->pos().toPoint()); + m_settings->beginWriteArray("scraps", m_scraps.count()); + for (int i = 0; i < m_scraps.count(); i++) { + m_settings->setArrayIndex(i); + WebScrapContainer *container = qobject_cast<WebScrapContainer*>(m_scraps.at(i)); + WebScrap *scrap = 0; + if (container) + scrap = container->webScrap(); + if (scrap) { + m_settings->setValue("url", scrap->url().toString()); + m_settings->setValue("topLeft", scrap->scrapRect().topLeft()); + m_settings->setValue("size", scrap->scrapRect().size()); + m_settings->setValue("pos", (container->pos() + scrap->pos()).toPoint()); + } + } + m_settings->endArray(); +} + +void MainWindow::loadSettings() { + resize(m_settings->value("mainwindow/size", size()).toSize()); + move(m_settings->value("mainwindow/pos", pos()).toPoint()); + m_webView->setUrl(QUrl(m_settings->value("browser/url", "http://qt.nokia.com/about/news").toString())); + m_browserToolbar->setPos(m_settings->value("browser/toolbarpos", m_browserToolbar->pos()).toPoint()); + m_scrapsToolbar->setPos(m_settings->value("scraps/toolbarpos", m_scrapsToolbar->pos()).toPoint()); + int count = m_settings->beginReadArray("scraps"); + if (count) { + for (int i = 0; i < count; i++) { + m_settings->setArrayIndex(i); + QString url = m_settings->value("url").toString(); + QRect scrapRect; + scrapRect.setTopLeft(m_settings->value("topLeft").toPoint()); + scrapRect.setSize(m_settings->value("size").toSize()); + QPoint pos = m_settings->value("pos").toPoint(); + addScrap(url, scrapRect, pos); + } + } else { + addScrap(QUrl("http://www.gocomics.com/calvinandhobbes/"), + QRect(30, 299, 600, 201), QPoint(12, 115)); + addScrap(QUrl("http://dilbert.com/"), + QRect(20, 197, 640, 199), QPoint(12, 362)); + m_scrapsToolbar->setPos(325, 5); + m_browserToolbar->setPos(325, 5); + } + m_settings->endArray(); +} |