comparison libgui/src/news-dock-widget.cc @ 17640: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 f5950975a172
children 8680768efa8a
comparison
equal deleted inserted replaced
17639:e693b2622f72 17640:482222fe5b35
24 #include <config.h> 24 #include <config.h>
25 #endif 25 #endif
26 26
27 #include <iostream> 27 #include <iostream>
28 28
29 #include <QVBoxLayout>
30 #include <QThread> 29 #include <QThread>
31 30
32 #include "news-dock-widget.h" 31 #include "news-dock-widget.h"
33 32
34 #include "Array.h" 33 #include "Array.h"
36 #include "url-transfer.h" 35 #include "url-transfer.h"
37 36
38 #include "version.h" 37 #include "version.h"
39 38
40 news_dock_widget::news_dock_widget (QWidget *p) 39 news_dock_widget::news_dock_widget (QWidget *p)
41 : octave_dock_widget (p), news_browser (new QWebView (p)) 40 : octave_dock_widget (p), browser (new QTextBrowser (this))
42 { 41 {
43 news_browser->setObjectName ("OctaveNews");
44
45 setObjectName ("NewsDockWidget"); 42 setObjectName ("NewsDockWidget");
46 setWindowIcon (QIcon (":/icons/logo.png")); 43 setWindowIcon (QIcon (":/icons/logo.png"));
47 set_title (tr ("Community News")); 44 set_title (tr ("Community News"));
48 45
49 setWidget (news_browser); 46 browser->setObjectName ("OctaveNews");
47 browser->setOpenExternalLinks (true);
48
49 setWidget (browser);
50 50
51 load_news (); 51 load_news ();
52 } 52 }
53 53
54 void 54 void
61 61
62 news_reader *reader = new news_reader (base_url, page); 62 news_reader *reader = new news_reader (base_url, page);
63 63
64 reader->moveToThread (worker_thread); 64 reader->moveToThread (worker_thread);
65 65
66 connect (reader, SIGNAL (display_news_signal (const QString&, const QUrl&)), 66 connect (reader, SIGNAL (display_news_signal (const QString&)),
67 this, SLOT (display_news (const QString&, const QUrl&))); 67 this, SLOT (display_news (const QString&)));
68 68
69 connect (worker_thread, SIGNAL (started (void)), reader, SLOT (process ())); 69 connect (worker_thread, SIGNAL (started (void)), reader, SLOT (process ()));
70 70
71 connect (reader, SIGNAL (finished (void)), worker_thread, SLOT (quit ())); 71 connect (reader, SIGNAL (finished (void)), worker_thread, SLOT (quit ()));
72 72
97 <small><em>&mdash; The Octave Developers, " OCTAVE_RELEASE_DATE "</em></small>\n\ 97 <small><em>&mdash; The Octave Developers, " OCTAVE_RELEASE_DATE "</em></small>\n\
98 </body>\n\ 98 </body>\n\
99 </html>\n"; 99 </html>\n";
100 100
101 void 101 void
102 news_dock_widget::display_news (const QString& news, const QUrl& base_url) 102 news_dock_widget::display_news (const QString& news)
103 { 103 {
104 if (news.contains ("this-is-the-gnu-octave-community-news-page")) 104 if (news.contains ("this-is-the-gnu-octave-community-news-page"))
105 { 105 {
106 news_browser->setHtml (news, base_url); 106 browser->setHtml (news);
107 107
108 if (news.contains ("critical-news-event") && ! isVisible ()) 108 if (news.contains ("critical-news-event") && ! isVisible ())
109 setVisible (true); 109 setVisible (true);
110 } 110 }
111 else 111 else
112 news_browser->setHtml (fixed_news); 112 browser->setHtml (fixed_news);
113 } 113 }
114 114
115 void 115 void
116 news_reader::process (void) 116 news_reader::process (void)
117 { 117 {
129 QString html_text; 129 QString html_text;
130 130
131 if (octave_dot_org.good ()) 131 if (octave_dot_org.good ())
132 html_text = QString::fromStdString (buf.str ()); 132 html_text = QString::fromStdString (buf.str ());
133 133
134 emit display_news_signal (html_text, QUrl (base_url)); 134 emit display_news_signal (html_text);
135 135
136 emit finished (); 136 emit finished ();
137 } 137 }