[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [rekonq] src: Get sure urlbar(s) are deleted when related webtab is
From:       Andrea Diamantini <adjam7 () gmail ! com>
Date:       2012-03-12 23:21:05
Message-ID: 20120312232105.F3F48A60A9 () git ! kde ! org
[Download RAW message or body]

Git commit f6cc2c5c13fbc219a6bc3391994b6cdeca44dd10 by Andrea Diamantini.
Committed on 13/03/2012 at 00:23.
Pushed by adjam into branch 'master'.

Get sure urlbar(s) are deleted when related webtab is

Heinz, Paul. Please test actual master before backporting this to
0.9 series. Many thanks for your help and for this bug report.
I'm crossing fingers to hear good news from your tests ;)

CCBUG:295301

M  +1    -1    src/mainview.cpp
M  +4    -2    src/urlbar/urlbar.cpp
M  +36   -0    src/webpage.cpp
M  +9    -29   src/webpage.h
M  +27   -9    src/webtab.cpp
M  +9    -12   src/webtab.h
M  +8    -7    src/webview.cpp
M  +1    -0    src/webview.h

http://commits.kde.org/rekonq/f6cc2c5c13fbc219a6bc3391994b6cdeca44dd10

diff --git a/src/mainview.cpp b/src/mainview.cpp
index 9fa4d04..b164c72 100644
--- a/src/mainview.cpp
+++ b/src/mainview.cpp
@@ -501,7 +501,7 @@ void MainView::closeTab(int index, bool del)
 
     if (del)
     {
-        tabToClose->deleteLater();
+        delete tabToClose;
     }
 }
 
diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp
index df1ee69..43109db 100644
--- a/src/urlbar/urlbar.cpp
+++ b/src/urlbar/urlbar.cpp
@@ -137,7 +137,7 @@ UrlBar::UrlBar(QWidget *parent)
             this, SLOT(updateRightIcons()));
 
     // bookmark icon
-    connect(rApp->bookmarkManager(), SIGNAL(bookmarksUpdated()),this, \
SLOT(updateRightIcons())); +    connect(rApp->bookmarkManager(), \
SIGNAL(bookmarksUpdated()), this, SLOT(updateRightIcons()));  
     _suggestionTimer->setSingleShot(true);
     connect(_suggestionTimer, SIGNAL(timeout()), this, SLOT(suggest()));
@@ -151,6 +151,8 @@ UrlBar::~UrlBar()
     _suggestionTimer->stop();
     activateSuggestions(false);
     _box.clear();
+
+    disconnect();
 }
 
 
@@ -428,7 +430,7 @@ void UrlBar::showBookmarkInfo(QPoint pos)
     else
     {
         BookmarkWidget *widget = new BookmarkWidget(bookmark, window());
-        connect(widget, SIGNAL(updateIcon()), this, SLOT(updateRightIcons()));
+//         connect(widget, SIGNAL(updateIcon()), this, SLOT(updateRightIcons()));
         widget->showAt(pos);
     }
 }
diff --git a/src/webpage.cpp b/src/webpage.cpp
index f641beb..a60b065 100644
--- a/src/webpage.cpp
+++ b/src/webpage.cpp
@@ -175,6 +175,42 @@ WebPage::~WebPage()
 }
 
 
+bool WebPage::hasNetworkAnalyzerEnabled() const
+{
+    return _networkAnalyzer;
+};
+
+
+void WebPage::enableNetworkAnalyzer(bool b)
+{
+    _networkAnalyzer = b;
+};
+
+
+bool WebPage::isOnRekonqPage() const
+{
+    return _isOnRekonqPage;
+};
+
+
+void WebPage::setIsOnRekonqPage(bool b)
+{
+    _isOnRekonqPage = b;
+};
+
+
+KUrl WebPage::loadingUrl()
+{
+    return _loadingUrl;
+};
+
+
+QString WebPage::suggestedFileName()
+{
+    return _suggestedFileName;
+};
+
+    
 bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest \
&request, NavigationType type)  {
     if (_isOnRekonqPage)
diff --git a/src/webpage.h b/src/webpage.h
index 3b2d37a..31f4218 100644
--- a/src/webpage.h
+++ b/src/webpage.h
@@ -52,35 +52,15 @@ public:
     explicit WebPage(QWidget *parent = 0);
     ~WebPage();
 
-    inline bool hasNetworkAnalyzerEnabled() const
-    {
-        return _networkAnalyzer;
-    };
-
-    inline void enableNetworkAnalyzer(bool b)
-    {
-        _networkAnalyzer = b;
-    };
-
-    inline bool isOnRekonqPage() const
-    {
-        return _isOnRekonqPage;
-    };
-
-    inline void setIsOnRekonqPage(bool b)
-    {
-        _isOnRekonqPage = b;
-    };
-
-    inline KUrl loadingUrl()
-    {
-        return _loadingUrl;
-    };
-
-    inline QString suggestedFileName()
-    {
-        return _suggestedFileName;
-    };
+    bool hasNetworkAnalyzerEnabled() const;
+    void enableNetworkAnalyzer(bool b);
+
+    bool isOnRekonqPage() const;
+    void setIsOnRekonqPage(bool b);
+
+    KUrl loadingUrl();
+
+    QString suggestedFileName();
 
     bool hasSslValid() const;
 
diff --git a/src/webtab.cpp b/src/webtab.cpp
index e5cfac5..57f46ea 100644
--- a/src/webtab.cpp
+++ b/src/webtab.cpp
@@ -60,7 +60,7 @@
 
 WebTab::WebTab(QWidget *parent)
     : QWidget(parent)
-    , m_webView(new WebView(this))
+    , m_webView(0)
     , m_urlBar(new UrlBar(this))
     , m_progress(0)
     , m_part(0)
@@ -71,13 +71,13 @@ WebTab::WebTab(QWidget *parent)
     l->setMargin(0);
     l->setSpacing(0);
 
-    l->addWidget(m_webView);
-    m_webView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+    l->addWidget(view());
+    view()->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
     // fix focus handling
-    setFocusProxy(m_webView);
+    setFocusProxy(view());
 
-    KWebWallet *wallet = m_webView->page()->wallet();
+    KWebWallet *wallet = page()->wallet();
 
     if (wallet)
     {
@@ -85,12 +85,12 @@ WebTab::WebTab(QWidget *parent)
                 this, SLOT(createWalletBar(QString,QUrl)));
     }
 
-    connect(m_webView, SIGNAL(loadProgress(int)), this, SLOT(updateProgress(int)));
-    connect(m_webView, SIGNAL(loadStarted()), this, SLOT(resetProgress()));
-    connect(m_webView, SIGNAL(titleChanged(QString)), this, \
SIGNAL(titleChanged(QString))); +    connect(view(), SIGNAL(loadProgress(int)), this, \
SLOT(updateProgress(int))); +    connect(view(), SIGNAL(loadStarted()), this, \
SLOT(resetProgress())); +    connect(view(), SIGNAL(titleChanged(QString)), this, \
SIGNAL(titleChanged(QString)));  
     // Session Manager
-    connect(m_webView, SIGNAL(loadFinished(bool)), rApp->sessionManager(), \
SLOT(saveSession())); +    connect(view(), SIGNAL(loadFinished(bool)), \
rApp->sessionManager(), SLOT(saveSession()));  }
 
 
@@ -100,6 +100,24 @@ WebTab::~WebTab()
     m_previewSelectorBar.clear();
 
     delete m_part;
+    delete m_urlBar;
+    delete m_webView;
+}
+
+
+WebView *WebTab::view()
+{
+    if (!m_webView)
+    {
+        m_webView = new WebView(this);
+    }
+    return m_webView;
+}
+
+
+WebPage *WebTab::page()
+{
+    return view()->page();
 }
 
 
diff --git a/src/webtab.h b/src/webtab.h
index 954db13..5c04b68 100644
--- a/src/webtab.h
+++ b/src/webtab.h
@@ -58,18 +58,13 @@ public:
     explicit WebTab(QWidget *parent = 0);
     ~WebTab();
 
-    WebView *view() const
-    {
-        return m_webView;
-    }
-    UrlBar *urlBar() const
+    WebView *view();
+    WebPage *page();
+    
+    inline UrlBar *urlBar() const
     {
         return m_urlBar;
     }
-    WebPage *page() const
-    {
-        return view()->page();
-    }
 
     inline int progress() const
     {
@@ -105,15 +100,17 @@ private Q_SLOTS:
 
     void showMessageBar();
 
+private:
+    KUrl extractOpensearchUrl(QWebElement e);
+
 Q_SIGNALS:
     void loadProgressing();
     void titleChanged(const QString &);
 
 private:
-    KUrl extractOpensearchUrl(QWebElement e);
+    WebView *m_webView;
 
-    WebView *const m_webView;
-    UrlBar *const m_urlBar;
+    UrlBar *m_urlBar;
 
     int m_progress;
 
diff --git a/src/webview.cpp b/src/webview.cpp
index ee1ec27..80f021f 100644
--- a/src/webview.cpp
+++ b/src/webview.cpp
@@ -65,6 +65,7 @@
 
 WebView::WebView(QWidget* parent)
     : KWebView(parent, false)
+    , m_page(0)
     , m_autoScrollTimer(new QTimer(this))
     , m_verticalAutoScrollSpeed(0)
     , m_horizontalAutoScrollSpeed(0)
@@ -77,11 +78,8 @@ WebView::WebView(QWidget* parent)
     , m_accessKeysPressed(false)
     , m_accessKeysActive(false)
 {
-    WebPage *page = new WebPage(this);
-    setPage(page);
-
     // download system
-    connect(this, SIGNAL(linkShiftClicked(KUrl)), page, SLOT(downloadUrl(KUrl)));
+    connect(this, SIGNAL(linkShiftClicked(KUrl)), page(), SLOT(downloadUrl(KUrl)));
 
     // middle click || ctrl + click signal
     connect(this, SIGNAL(linkMiddleOrCtrlClicked(KUrl)), this, \
SLOT(loadUrlInNewTab(KUrl))); @@ -132,9 +130,12 @@ void WebView::changeWindowIcon()
 
 WebPage *WebView::page()
 {
-    WebPage *const page = qobject_cast<WebPage *>(KWebView::page());
-    Q_ASSERT(page);
-    return page;
+    if (!m_page)
+    {
+        m_page = new WebPage(this);
+        setPage(m_page);
+    }
+    return m_page;
 }
 
 
diff --git a/src/webview.h b/src/webview.h
index c8a0c7d..1897779 100644
--- a/src/webview.h
+++ b/src/webview.h
@@ -120,6 +120,7 @@ private:
     void makeAccessKeyLabel(const QChar &accessKey, const QWebElement &element);
 
 private:
+    WebPage *m_page;
     QPoint m_clickPos;
 
     // Auto Scroll


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic