comparison demos/browser/webview.d @ 85:5c8c9c5d9ee1

more porting
author mandel
date Mon, 25 May 2009 14:10:44 +0000
parents 85c59c4e5f19
children 87bb4e622f9e
comparison
equal deleted inserted replaced
84:2edf95ad41e5 85:5c8c9c5d9ee1
135 return mainWindow.currentTab().page(); 135 return mainWindow.currentTab().page();
136 } 136 }
137 137
138 version(QT_NO_UITOOLS) {} else 138 version(QT_NO_UITOOLS) {} else
139 { 139 {
140 QObject createPlugin(string classId, QUrl url, string[] paramNames, string[] paramValues); 140 QObject createPlugin(string classId, QUrl url, string[] paramNames, string[] paramValues)
141 { 141 {
142 auto loader = new QUiLoader; 142 auto loader = new QUiLoader;
143 return loader.createWidget(classId, view()); 143 return loader.createWidget(classId, view());
144 } 144 }
145 } 145 }
193 // set the webview mousepressedevent 193 // set the webview mousepressedevent
194 Qt.KeyboardModifiers m_keyboardModifiers; 194 Qt.KeyboardModifiers m_keyboardModifiers;
195 Qt.MouseButtons m_pressedButtons; 195 Qt.MouseButtons m_pressedButtons;
196 bool m_openInNewTab; 196 bool m_openInNewTab;
197 QUrl m_loadingUrl; 197 QUrl m_loadingUrl;
198 }; 198 }
199 199
200 class WebView : public QWebView 200 class WebView : public QWebView
201 { 201 {
202 public: 202 public:
203 203
204 WebView(QWidget parent = null) 204 this(QWidget parent = null)
205 { 205 {
206 super(parent); 206 super(parent);
207 m_progress = 0; 207 m_progress = 0;
208 m_page = new WebPage(this); 208 m_page = new WebPage(this);
209 setPage(m_page); 209 setPage(m_page);
234 string lastStatusBarText() 234 string lastStatusBarText()
235 { 235 {
236 return m_statusBarText; 236 return m_statusBarText;
237 } 237 }
238 238
239 int progress() const { return m_progress; } 239 int progress()
240 {
241 return m_progress;
242 }
240 243
241 protected: 244 protected:
242 245
243 void mousePressEvent(QMouseEvent event) 246 void mousePressEvent(QMouseEvent event)
244 { 247 {
249 252
250 void mouseReleaseEvent(QMouseEvent event) 253 void mouseReleaseEvent(QMouseEvent event)
251 { 254 {
252 QWebView.mouseReleaseEvent(event); 255 QWebView.mouseReleaseEvent(event);
253 if (!event.isAccepted() && (m_page.m_pressedButtons & Qt.MidButton)) { 256 if (!event.isAccepted() && (m_page.m_pressedButtons & Qt.MidButton)) {
254 QUrl url(QApplication.clipboard().text(QClipboard.Selection)); 257 auto url = new QUrl(QApplication.clipboard().text(QClipboard.Selection));
255 if (!url.isEmpty() && url.isValid() && !url.scheme().isEmpty()) { 258 if (!url.isEmpty() && url.isValid() && !url.scheme().isEmpty()) {
256 setUrl(url); 259 setUrl(url);
257 } 260 }
258 } 261 }
259 } 262 }
260 263
261 void contextMenuEvent(QContextMenuEvent event) 264 void contextMenuEvent(QContextMenuEvent event)
262 { 265 {
263 QWebHitTestResult r = page().mainFrame().hitTestContent(event.pos()); 266 QWebHitTestResult r = page().mainFrame().hitTestContent(event.pos());
264 if (!r.linkUrl().isEmpty()) { 267 if (!r.linkUrl().isEmpty()) {
265 QMenu menu(this); 268 auto menu = new QMenu(this);
266 menu.addAction(pageAction(QWebPage.OpenLinkInNewWindow)); 269 menu.addAction(pageAction(QWebPage.OpenLinkInNewWindow));
267 menu.addAction(tr("Open in New Tab"), this, SLOT(openLinkInNewTab())); 270 menu.addAction(tr("Open in New Tab"), this, SLOT(openLinkInNewTab()));
268 menu.addSeparator(); 271 menu.addSeparator();
269 menu.addAction(pageAction(QWebPage.DownloadLinkToDisk)); 272 menu.addAction(pageAction(QWebPage.DownloadLinkToDisk));
270 // Add link to bookmarks... 273 // Add link to bookmarks...