diff options
author | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-01-29 15:49:42 +0100 |
---|---|---|
committer | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-02-04 09:31:57 +0100 |
commit | 7de9aae8d2f38693897ca24ce7b3b65cab30a47c (patch) | |
tree | 77ff78f168c6455bd6b713af919d79bdcfa170db | |
parent | a0d7218cee59b795278a4f6a6d741131cc707034 (diff) | |
download | browser-poc-7de9aae8d2f38693897ca24ce7b3b65cab30a47c.tar.gz |
Implemented onVisibilityChanged
-rw-r--r-- | browser/browser.cpp | 1 | ||||
-rw-r--r-- | browser/browserview.cpp | 12 | ||||
-rw-r--r-- | browser/browserview.h | 2 | ||||
-rw-r--r-- | browser/unit-tests/browserdbus/testbrowserdbus.cpp | 11 | ||||
-rw-r--r-- | browser/unit-tests/browserdbus/testbrowserdbus.h | 1 | ||||
-rw-r--r-- | browser/webpagewindow.cpp | 1 | ||||
-rw-r--r-- | browser/webpagewindow.h | 1 | ||||
-rw-r--r-- | common/browserdbus.cpp | 1 | ||||
-rw-r--r-- | common/browserdbus.h | 1 |
9 files changed, 30 insertions, 1 deletions
diff --git a/browser/browser.cpp b/browser/browser.cpp index 59cee67..9e3d6cd 100644 --- a/browser/browser.cpp +++ b/browser/browser.cpp @@ -41,6 +41,7 @@ conn::brw::ERROR_IDS browser::createPageWindow(int a_eDeviceId, const conn::brw: connect(bvi, SIGNAL(pageLoadFinished(bool)), wpw, SLOT(getUrlTitle())); connect(ui, SIGNAL(inputText(QString)), this, SLOT(inputText(QString))); connect(bvi, SIGNAL(pageLoadStarted()), wpw, SLOT(browserStartLoading())); + connect(bvi, SIGNAL(onVisibilityChanged(bool)), wpw, SIGNAL(onVisibilityChanged(bool))); connect(bvi, SIGNAL(pageLoadFinished(bool)), wpw, SIGNAL(onLoadFinished(bool))); connect(bvi, SIGNAL(onUrlChanged(QString)), wpw, SIGNAL(onUrlChanged(QString))); connect(bvi, SIGNAL(onTitleChanged(QString)), wpw, SIGNAL(onTitleChanged(QString))); diff --git a/browser/browserview.cpp b/browser/browserview.cpp index 668706c..64f4bb0 100644 --- a/browser/browserview.cpp +++ b/browser/browserview.cpp @@ -28,6 +28,8 @@ BrowserView::BrowserView() this->load("http://www.bmw.com"); + this->installEventFilter(this); + setWindowFlags(Qt::FramelessWindowHint); m_webview.page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); @@ -140,3 +142,13 @@ void BrowserView::linkClicked(QUrl url) { this->load(strUrl); emit onLinkClicked(strUrl); } + +bool BrowserView::eventFilter(QObject *obj, QEvent *event) +{ + if (event->type() == QEvent::Show) + emit onVisibilityChanged(true); + else if (event->type() == QEvent::Hide) + emit onVisibilityChanged(false); + + return QGraphicsView::eventFilter(obj, event); +} diff --git a/browser/browserview.h b/browser/browserview.h index d30fcd7..00e8eed 100644 --- a/browser/browserview.h +++ b/browser/browserview.h @@ -72,9 +72,11 @@ signals: void onLinkClicked(QString); void onSelectionChanged(); void onStatusTextChanged(QString); + void onVisibilityChanged(bool); protected: virtual void resizeEvent (QResizeEvent *event); + virtual bool eventFilter (QObject *obj, QEvent *evt); protected slots: void loadProgress(int); diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.cpp b/browser/unit-tests/browserdbus/testbrowserdbus.cpp index 59dd1d3..5726d9d 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.cpp +++ b/browser/unit-tests/browserdbus/testbrowserdbus.cpp @@ -114,4 +114,15 @@ void TestBrowserDBus::testGetsNotifiedWhenStatusBarChanges() { QVERIFY(success); } +void TestBrowserDBus::testGetsNotifiedWhenVisibilityChanges() { + m_bdb->createPageWindow(1,0,0,800,600); + QSignalSpy spy (m_bdb, SIGNAL (onVisibilityChanged (bool))); + m_bdb->setVisible(false); + QVERIFY(spy.wait(1000)); + QVERIFY(spy.last().value(0).toBool() == false); + m_bdb->setVisible(true); + QVERIFY(spy.wait(1000)); + QVERIFY(spy.last().value(0).toBool() == true); +} + QTEST_MAIN (TestBrowserDBus); diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.h b/browser/unit-tests/browserdbus/testbrowserdbus.h index 239c98c..2cd151d 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.h +++ b/browser/unit-tests/browserdbus/testbrowserdbus.h @@ -30,6 +30,7 @@ private slots: void testGetsNotifiedWhenLinkIsClicked(); void testGetsNotifiedWhenSelectionChanges(); void testGetsNotifiedWhenStatusBarChanges(); + void testGetsNotifiedWhenVisibilityChanges(); private: QString testFileUrl() { diff --git a/browser/webpagewindow.cpp b/browser/webpagewindow.cpp index e845409..5dbbf4f 100644 --- a/browser/webpagewindow.cpp +++ b/browser/webpagewindow.cpp @@ -220,4 +220,3 @@ conn::brw::ERROR_IDS webpagewindow::getScrollPosition(uint &posX, uint &posY) {} conn::brw::ERROR_IDS webpagewindow::setScrollPosition(uint &posX, uint &posY) {} conn::brw::ERROR_IDS webpagewindow::select(){} conn::brw::ERROR_IDS webpagewindow::setZoomFactor(double &zoomFactor) {} - diff --git a/browser/webpagewindow.h b/browser/webpagewindow.h index 2ad75cf..ae9c29d 100644 --- a/browser/webpagewindow.h +++ b/browser/webpagewindow.h @@ -42,6 +42,7 @@ signals: void onLinkClicked(QString); void onSelectionChanged(void); void onStatusTextChanged(QString); + void onVisibilityChanged(bool); public Q_SLOTS: conn::brw::ERROR_IDS back(); diff --git a/common/browserdbus.cpp b/common/browserdbus.cpp index a05fa94..950bca3 100644 --- a/common/browserdbus.cpp +++ b/common/browserdbus.cpp @@ -196,6 +196,7 @@ void BrowserDbus::createPageWindow(int deviceid, int x, int y, int width, int he connect(actualtab, SIGNAL(onLinkClicked(QString)), this, SIGNAL(linkClicked(QString))); connect(actualtab, SIGNAL(onSelectionChanged(void)), this, SIGNAL(selectionChanged(void))); connect(actualtab, SIGNAL(onStatusTextChanged(QString)), this, SIGNAL(onStatusTextChanged(QString))); + connect(actualtab, SIGNAL(onVisibilityChanged(bool)), this, SIGNAL(onVisibilityChanged(bool))); QString *userinputservice = new QString(*webpagewindowservice + "/IUserInput"); diff --git a/common/browserdbus.h b/common/browserdbus.h index 584105a..7394f55 100644 --- a/common/browserdbus.h +++ b/common/browserdbus.h @@ -86,6 +86,7 @@ signals: void linkClicked(QString); void selectionChanged(void); void onStatusTextChanged(QString); + void onVisibilityChanged(bool); public slots: void pageloadingstarted(); |