summaryrefslogtreecommitdiffstats
path: root/mainwindow.cpp
diff options
context:
space:
mode:
authorRoopesh Chander <roop@forwardbias.in>2009-11-03 20:04:15 +0530
committerRoopesh Chander <roop@forwardbias.in>2009-11-03 20:04:15 +0530
commitaa69057d2b9ebacc1cae995c57969e23a2b97785 (patch)
tree9e6db858474949b815b08f2690af733d81da3063 /mainwindow.cpp
parent6c2a3f9bfa4d48cde8dc9050d55af7454163db29 (diff)
remember scraps across sessions
Diffstat (limited to 'mainwindow.cpp')
-rw-r--r--mainwindow.cpp70
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();
+}