From 8c2ca37ae9ad2d273fe85e28eeceb236083333b9 Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Tue, 3 Nov 2009 23:59:18 +0530 Subject: restore scraps correctly even when we close the app from the browser view --- mainwindow.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'mainwindow.cpp') diff --git a/mainwindow.cpp b/mainwindow.cpp index 3a6e434..8634f3a 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -49,7 +49,6 @@ void MainWindow::addScrap(QUrl url, QRect scrapRect, QPoint position, qreal xSca webscrap->setRefreshInterval(1000 * 60 * 60); // 1 hour WebScrapContainer *container = new WebScrapContainer(webscrap, m_graphicsView->scene(), xScale, yScale); container->setPos(position - webscrap->pos()); - container->setData(0, container->pos()); connect(container, SIGNAL(frameClicked()), SLOT(bubbleUpScrap())); connect(container, SIGNAL(removeSelf()), SLOT(removeSenderScrap())); m_dropDownList->addItem(QWebSettings::iconForUrl(url), url.toString(), qVariantFromValue(container)); @@ -205,11 +204,11 @@ QAbstractAnimation* MainWindow::createScrapsAnim(const Movement move, QObject *p QPropertyAnimation *moveAnim = new QPropertyAnimation(scrap, "pos", allScrapsAnim); moveAnim->setDuration(500 + 150 * (rand() % 10)); if (move == Enter) { - moveAnim->setEndValue(scrap->data(0).toPointF()); + moveAnim->setEndValue(scrap->data(WebScrapContainer::Position).toPointF()); moveAnim->setEasingCurve(QEasingCurve::OutCubic); } if (move == Leave) { - scrap->setData(0, scrap->pos()); + scrap->setData(WebScrapContainer::Position, scrap->pos()); moveAnim->setEndValue(m_graphicsView->sceneRect().center() + flyOffset); moveAnim->setEasingCurve(QEasingCurve::InCubic); } @@ -359,7 +358,10 @@ void MainWindow::saveSettings() { 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()); + QPointF containerPos = container->pos(); + if (!m_graphicsView->sceneRect().contains(containerPos)) + containerPos = container->data(WebScrapContainer::Position).toPoint(); + m_settings->setValue("pos", containerPos + scrap->pos()); m_settings->setValue("xScale", container->scrapScale()->xScale()); m_settings->setValue("yScale", container->scrapScale()->yScale()); } -- cgit v1.2.3