changeset 17695:482222fe5b35

use QTextBrowser instead of QWebView to display community news * configure.ac: Don't check for QtWebKit. * news-dock-widget.h, news-dock-widget.cc (news_dock_widget): Use QTextBrowser to display news.
author John W. Eaton <jwe@octave.org>
date Fri, 11 Oct 2013 20:04:49 -0400
parents e693b2622f72
children cd5a6008ae72
files configure.ac libgui/src/main-window.cc libgui/src/news-dock-widget.cc libgui/src/news-dock-widget.h
diffstat 4 files changed, 19 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac
+++ b/configure.ac
@@ -2623,16 +2623,16 @@
 
 if test $build_gui = yes; then
   ## Check for Qt libraries
-  PKG_CHECK_MODULES(QT, [QtCore, QtGui, QtNetwork, QtWebKit],
+  PKG_CHECK_MODULES(QT, [QtCore, QtGui, QtNetwork],
     [],
     [AC_MSG_WARN([Qt libraries not found -- disabling GUI])
      build_gui=no])
 
   if test $build_gui = yes; then
     ## Retrieve Qt compilation and linker flags
-    QT_CPPFLAGS="`$PKG_CONFIG --cflags-only-I QtCore QtGui QtNetwork QtWebKit`"
-    QT_LDFLAGS="`$PKG_CONFIG --libs-only-L QtCore QtGui QtNetwork QtWebKit`"
-    QT_LIBS="`$PKG_CONFIG --libs-only-l QtCore QtGui QtNetwork QtWebKit`"
+    QT_CPPFLAGS="`$PKG_CONFIG --cflags-only-I QtCore QtGui QtNetwork`"
+    QT_LDFLAGS="`$PKG_CONFIG --libs-only-L QtCore QtGui QtNetwork`"
+    QT_LIBS="`$PKG_CONFIG --libs-only-l QtCore QtGui QtNetwork`"
 
     ## Check for Qt4
     if ! `$PKG_CONFIG --atleast-version=4.0.0 QtCore`; then
--- a/libgui/src/main-window.cc
+++ b/libgui/src/main-window.cc
@@ -40,8 +40,6 @@
 #include <QMessageBox>
 #include <QIcon>
 
-#include <QWebView>
-
 #include <utility>
 
 #ifdef HAVE_QSCINTILLA
--- a/libgui/src/news-dock-widget.cc
+++ b/libgui/src/news-dock-widget.cc
@@ -26,7 +26,6 @@
 
 #include <iostream>
 
-#include <QVBoxLayout>
 #include <QThread>
 
 #include "news-dock-widget.h"
@@ -38,15 +37,16 @@
 #include "version.h"
 
 news_dock_widget::news_dock_widget (QWidget *p)
-  : octave_dock_widget (p), news_browser (new QWebView (p))
+  : octave_dock_widget (p), browser (new QTextBrowser (this))
 {
-  news_browser->setObjectName ("OctaveNews");
-
   setObjectName ("NewsDockWidget");
   setWindowIcon (QIcon (":/icons/logo.png"));
   set_title (tr ("Community News"));
 
-  setWidget (news_browser);
+  browser->setObjectName ("OctaveNews");
+  browser->setOpenExternalLinks (true);
+
+  setWidget (browser);
 
   load_news ();
 }
@@ -63,8 +63,8 @@
 
   reader->moveToThread (worker_thread);
 
-  connect (reader, SIGNAL (display_news_signal (const QString&, const QUrl&)),
-           this, SLOT (display_news (const QString&, const QUrl&)));
+  connect (reader, SIGNAL (display_news_signal (const QString&)),
+           this, SLOT (display_news (const QString&)));
 
   connect (worker_thread, SIGNAL (started (void)), reader, SLOT (process ()));
 
@@ -99,17 +99,17 @@
 </html>\n";
 
 void
-news_dock_widget::display_news (const QString& news, const QUrl& base_url)
+news_dock_widget::display_news (const QString& news)
 {
   if (news.contains ("this-is-the-gnu-octave-community-news-page"))
     {
-      news_browser->setHtml (news, base_url);
+      browser->setHtml (news);
 
       if (news.contains ("critical-news-event") && ! isVisible ())
         setVisible (true);
     }
   else
-    news_browser->setHtml (fixed_news);
+    browser->setHtml (fixed_news);
 }
 
 void
@@ -131,7 +131,7 @@
   if (octave_dot_org.good ())
     html_text = QString::fromStdString (buf.str ());
 
-  emit display_news_signal (html_text, QUrl (base_url));
+  emit display_news_signal (html_text);
 
   emit finished ();
 }
--- a/libgui/src/news-dock-widget.h
+++ b/libgui/src/news-dock-widget.h
@@ -23,8 +23,7 @@
 #ifndef NEWSDOCKWIDGET_H
 #define NEWSDOCKWIDGET_H
 
-#include <QBasicTimer>
-#include <QWebView>
+#include <QTextBrowser>
 
 #include "octave-dock-widget.h"
 
@@ -40,11 +39,11 @@
 
 protected slots:
 
-  void display_news (const QString& news, const QUrl& base_url);
+  void display_news (const QString& news);
 
 private:
 
-  QWebView *news_browser;
+  QTextBrowser *browser;
 };
 
 class news_reader : public QObject
@@ -62,7 +61,7 @@
  
 signals:
 
-  void display_news_signal (const QString& news, const QUrl& base_url);
+  void display_news_signal (const QString& news);
 
   void finished (void);