Mercurial > octave-nkf
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>— The Octave Developers, " OCTAVE_RELEASE_DATE "</em></small>\n\ | 97 <small><em>— 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 } |