annotate demos/browser/browserapplication.d @ 113:8636c819ce4d

more porting
author mandel
date Wed, 03 Jun 2009 14:35:25 +0000
parents 87bb4e622f9e
children a8d76a9a85aa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
1 /****************************************************************************
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
2 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
4 ** Contact: Qt Software Information (qt-info@nokia.com)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
5 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
6 ** This file is part of the demonstration applications of the Qt Toolkit.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
7 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
8 ** $QT_BEGIN_LICENSE:LGPL$
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
9 ** Commercial Usage
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
10 ** Licensees holding valid Qt Commercial licenses may use this file in
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
11 ** accordance with the Qt Commercial License Agreement provided with the
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
12 ** Software or, alternatively, in accordance with the terms contained in
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
13 ** a written agreement between you and Nokia.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
14 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
15 ** GNU Lesser General Public License Usage
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
16 ** Alternatively, this file may be used under the terms of the GNU Lesser
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
17 ** General Public License version 2.1 as published by the Free Software
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
18 ** Foundation and appearing in the file LICENSE.LGPL included in the
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
19 ** packaging of this file. Please review the following information to
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
20 ** ensure the GNU Lesser General Public License version 2.1 requirements
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
21 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
22 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
23 ** In addition, as a special exception, Nokia gives you certain
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
24 ** additional rights. These rights are described in the Nokia Qt LGPL
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
26 ** package.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
27 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
28 ** GNU General Public License Usage
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
29 ** Alternatively, this file may be used under the terms of the GNU
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
30 ** General Public License version 3.0 as published by the Free Software
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
31 ** Foundation and appearing in the file LICENSE.GPL included in the
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
32 ** packaging of this file. Please review the following information to
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
33 ** ensure the GNU General Public License version 3.0 requirements will be
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
34 ** met: http://www.gnu.org/copyleft/gpl.html.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
35 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
36 ** If you are unsure which license is appropriate for your use, please
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
37 ** contact the sales department at qt-sales@nokia.com.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
38 ** $QT_END_LICENSE$
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
39 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
40 ****************************************************************************/
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
41
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
42 module browserapplication;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
43
37caa90ce503 more porting
mandel
parents: 45
diff changeset
44
37caa90ce503 more porting
mandel
parents: 45
diff changeset
45 import qt.core.QBuffer;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
46 import qt.core.QDir;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
47 import qt.core.QLibraryInfo;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
48 import qt.core.QSettings;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
49 import qt.core.QTextStream;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
50 import qt.core.QTranslator;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
51 import qt.core.QUrl;
113
8636c819ce4d more porting
mandel
parents: 94
diff changeset
52 import qt.core.QTimer;
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
53 //import qt.core.QPointer;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
54
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
55 import qt.gui.QApplication;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
56 import qt.gui.QIcon;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
57 import qt.gui.QDesktopServices;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
58 import qt.gui.QFileOpenEvent;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
59 import qt.gui.QMessageBox;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
60
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
61 import qt.network.QLocalServer;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
62 import qt.network.QLocalSocket;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
63 import qt.network.QNetworkProxy;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
64 import qt.network.QSslSocket;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
65
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
66 import qt.webkit.QWebSettings;
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
67
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
68 //import qt.core.QDebug;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
69
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
70 import bookmarks;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
71 import browsermainwindow;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
72 import cookiejar;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
73 import downloadmanager;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
74 import history;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
75 import networkaccessmanager;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
76 import tabwidget;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
77 import webview;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
78
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
79
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
80 class BrowserApplication : public QApplication
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
81 {
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
82 public:
37caa90ce503 more porting
mandel
parents: 45
diff changeset
83
113
8636c819ce4d more porting
mandel
parents: 94
diff changeset
84 this(string[] arguments)
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
85 {
113
8636c819ce4d more porting
mandel
parents: 94
diff changeset
86 super(arguments);
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
87 m_localServer = null;
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
88 QCoreApplication.setOrganizationName("Trolltech");
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
89 QCoreApplication.setApplicationName("demobrowser");
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
90 QCoreApplication.setApplicationVersion("0.1");
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
91 version(Q_WS_QWS)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
92 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
93 // Use a different server name for QWS so we can run an X11
37caa90ce503 more porting
mandel
parents: 45
diff changeset
94 // browser and a QWS browser in parallel on the same machine for
37caa90ce503 more porting
mandel
parents: 45
diff changeset
95 // debugging
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
96 string serverName = QCoreApplication.applicationName() ~ "_qws";
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
97 } else {
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
98 string serverName = QCoreApplication.applicationName();
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
99 }
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
100 auto socket = new QLocalSocket;
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
101 socket.connectToServer(serverName);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
102 if (socket.waitForConnected(500)) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
103 auto stream = new QTextStream(&socket);
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
104 string[] args = QCoreApplication.arguments();
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
105 if (args.length > 1)
113
8636c819ce4d more porting
mandel
parents: 94
diff changeset
106 stream.writeString(args[$-1]);
8636c819ce4d more porting
mandel
parents: 94
diff changeset
107 //else
8636c819ce4d more porting
mandel
parents: 94
diff changeset
108 // stream << "";
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
109 stream.flush();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
110 socket.waitForBytesWritten();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
111 return;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
112 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
113
37caa90ce503 more porting
mandel
parents: 45
diff changeset
114 version(Q_WS_MAC) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
115 QApplication.setQuitOnLastWindowClosed(false);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
116 } else {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
117 QApplication.setQuitOnLastWindowClosed(true);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
118 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
119
37caa90ce503 more porting
mandel
parents: 45
diff changeset
120 m_localServer = new QLocalServer(this);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
121 m_localServer.newConnection.connect(&this.newLocalSocketConnection);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
122 if (!m_localServer.listen(serverName)) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
123 if (m_localServer.serverError() == QAbstractSocket.AddressInUseError
37caa90ce503 more porting
mandel
parents: 45
diff changeset
124 && QFile.exists(m_localServer.serverName())) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
125 QFile.remove(m_localServer.serverName());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
126 m_localServer.listen(serverName);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
127 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
128 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
129
37caa90ce503 more porting
mandel
parents: 45
diff changeset
130 version(QT_NO_OPENSSL) {} else {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
131 if (!QSslSocket.supportsSsl()) {
113
8636c819ce4d more porting
mandel
parents: 94
diff changeset
132 QMessageBox.information(null, "Demo Browser",
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
133 "This system does not support OpenSSL. SSL websites will not be available.");
37caa90ce503 more porting
mandel
parents: 45
diff changeset
134 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
135 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
136
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
137 QDesktopServices.setUrlHandler("http", this, "openUrl");
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
138 string localSysName = QLocale.system().name();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
139
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
140 installTranslator("qt_" ~ localSysName);
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
141
113
8636c819ce4d more porting
mandel
parents: 94
diff changeset
142 auto settings = new QSettings;
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
143 settings.beginGroup("sessions");
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
144 m_lastSession = settings.value("lastSession").toByteArray();
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
145 settings.endGroup();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
146
37caa90ce503 more porting
mandel
parents: 45
diff changeset
147 version(Q_WS_MAC) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
148 this.lastWindowClosed.connect(&this.lastWindowClosed);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
149 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
150
37caa90ce503 more porting
mandel
parents: 45
diff changeset
151 QTimer.singleShot(0, this, SLOT(postLaunch()));
37caa90ce503 more porting
mandel
parents: 45
diff changeset
152 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
153
37caa90ce503 more porting
mandel
parents: 45
diff changeset
154 ~this()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
155 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
156 delete s_downloadManager;
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
157 for (int i = 0; i < m_mainWindows.length; ++i) {
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
158 BrowserMainWindow window = m_mainWindows[i];
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
159 delete window;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
160 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
161 delete s_networkAccessManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
162 delete s_bookmarksManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
163 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
164
37caa90ce503 more porting
mandel
parents: 45
diff changeset
165 static BrowserApplication instance()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
166 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
167 return cast(BrowserApplication) QCoreApplication.instance();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
168 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
169
37caa90ce503 more porting
mandel
parents: 45
diff changeset
170 void loadSettings()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
171 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
172 QSettings settings;
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
173 settings.beginGroup("websettings");
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
174
37caa90ce503 more porting
mandel
parents: 45
diff changeset
175 QWebSettings defaultSettings = QWebSettings.globalSettings();
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
176 string standardFontFamily = defaultSettings.fontFamily(QWebSettings.StandardFont);
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
177 int standardFontSize = defaultSettings.fontSize(QWebSettings.DefaultFontSize);
113
8636c819ce4d more porting
mandel
parents: 94
diff changeset
178 QFont standardFont = new QFont(standardFontFamily, standardFontSize);
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
179 standardFont = qVariantValue!(QFont)(settings.value("standardFont", standardFont));
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
180 defaultSettings.setFontFamily(QWebSettings.StandardFont, standardFont.family());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
181 defaultSettings.setFontSize(QWebSettings.DefaultFontSize, standardFont.pointSize());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
182
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
183 string fixedFontFamily = defaultSettings.fontFamily(QWebSettings.FixedFont);
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
184 int fixedFontSize = defaultSettings.fontSize(QWebSettings.DefaultFixedFontSize);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
185 QFont fixedFont = QFont(fixedFontFamily, fixedFontSize);
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
186 fixedFont = qVariantValue!(QFont)(settings.value("fixedFont", fixedFont));
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
187 defaultSettings.setFontFamily(QWebSettings.FixedFont, fixedFont.family());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
188 defaultSettings.setFontSize(QWebSettings.DefaultFixedFontSize, fixedFont.pointSize());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
189
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
190 defaultSettings.setAttribute(QWebSettings.JavascriptEnabled, settings.value("enableJavascript", true).toBool());
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
191 defaultSettings.setAttribute(QWebSettings.PluginsEnabled, settings.value("enablePlugins", true).toBool());
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
192
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
193 QUrl url = settings.value("userStyleSheet").toUrl();
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
194 defaultSettings.setUserStyleSheetUrl(url);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
195
37caa90ce503 more porting
mandel
parents: 45
diff changeset
196 settings.endGroup();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
197 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
198
37caa90ce503 more porting
mandel
parents: 45
diff changeset
199 bool isTheOnlyBrowser()
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
200 {
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
201 return (m_localServer != null);
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
202 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
203
37caa90ce503 more porting
mandel
parents: 45
diff changeset
204 BrowserMainWindow mainWindow()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
205 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
206 clean();
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
207 if (m_mainWindows.length == 0)
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
208 newMainWindow();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
209 return m_mainWindows[0];
37caa90ce503 more porting
mandel
parents: 45
diff changeset
210 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
211
37caa90ce503 more porting
mandel
parents: 45
diff changeset
212 BrowserMainWindow[] mainWindows()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
213 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
214 clean();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
215 BrowserMainWindow[] list;
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
216 for (int i = 0; i < m_mainWindows.length; ++i)
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
217 list ~= m_mainWindows[i];
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
218 return list;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
219 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
220
37caa90ce503 more porting
mandel
parents: 45
diff changeset
221 QIcon icon(QUrl url)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
222 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
223 QIcon icon = QWebSettings.iconForUrl(url);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
224 if (!icon.isNull())
37caa90ce503 more porting
mandel
parents: 45
diff changeset
225 return icon.pixmap(16, 16);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
226 if (m_defaultIcon.isNull())
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
227 m_defaultIcon = QIcon(":defaulticon.png");
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
228 return m_defaultIcon.pixmap(16, 16);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
229 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
230
37caa90ce503 more porting
mandel
parents: 45
diff changeset
231 void saveSession()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
232 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
233 QWebSettings globalSettings = QWebSettings.globalSettings();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
234 if (globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled))
37caa90ce503 more porting
mandel
parents: 45
diff changeset
235 return;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
236
37caa90ce503 more porting
mandel
parents: 45
diff changeset
237 clean();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
238
37caa90ce503 more porting
mandel
parents: 45
diff changeset
239 QSettings settings;
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
240 settings.beginGroup("sessions");
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
241
37caa90ce503 more porting
mandel
parents: 45
diff changeset
242 QByteArray data;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
243 auto buffer = new QBuffer(&data);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
244 auto stream = new QDataStream(&buffer);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
245 buffer.open(QIODevice.ReadWrite);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
246
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
247 stream << m_mainWindows.length;
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
248 for (int i = 0; i < m_mainWindows.length; ++i)
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
249 stream << m_mainWindows[i].saveState();
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
250 settings.setValue("lastSession", data);
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
251 settings.endGroup();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
252 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
253
37caa90ce503 more porting
mandel
parents: 45
diff changeset
254 bool canRestoreSession()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
255 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
256 return !m_lastSession.isEmpty();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
257 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
258
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
259 static HistoryManager historyManager()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
260 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
261 if (!s_historyManager) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
262 s_historyManager = new HistoryManager();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
263 QWebHistoryInterface.setDefaultInterface(s_historyManager);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
264 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
265 return s_historyManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
266 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
267
37caa90ce503 more porting
mandel
parents: 45
diff changeset
268 static CookieJar cookieJar()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
269 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
270 return cast(CookieJar) networkAccessManager().cookieJar();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
271 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
272
37caa90ce503 more porting
mandel
parents: 45
diff changeset
273 static DownloadManager downloadManager()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
274 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
275 if (!s_downloadManager) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
276 s_downloadManager = new DownloadManager();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
277 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
278 return s_downloadManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
279 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
280
37caa90ce503 more porting
mandel
parents: 45
diff changeset
281 static NetworkAccessManager networkAccessManager()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
282 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
283 if (!s_networkAccessManager) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
284 s_networkAccessManager = new NetworkAccessManager();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
285 s_networkAccessManager.setCookieJar(new CookieJar);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
286 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
287 return s_networkAccessManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
288 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
289
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
290
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
291 static BookmarksManager bookmarksManager()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
292 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
293 if (!s_bookmarksManager) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
294 s_bookmarksManager = new BookmarksManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
295 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
296 return s_bookmarksManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
297 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
298
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
299
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
300 version(Q_WS_MAC)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
301 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
302 bool event(QEvent event)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
303 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
304 switch (event.type()) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
305 case QEvent.ApplicationActivate: {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
306 clean();
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
307 if (m_mainWindows.length) {
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
308 BrowserMainWindow mw = mainWindow();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
309 if (mw && !mw.isMinimized()) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
310 mainWindow().show();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
311 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
312 return true;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
313 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
314 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
315 case QEvent.FileOpen:
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
316 if (m_mainWindows.length) {
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
317 mainWindow().loadPage(cast(QFileOpenEvent) event.file());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
318 return true;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
319 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
320 default:
37caa90ce503 more porting
mandel
parents: 45
diff changeset
321 break;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
322 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
323 return QApplication.event(event);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
324 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
325 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
326
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
327 public:
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
328
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
329 BrowserMainWindow newMainWindow()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
330 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
331 BrowserMainWindow browser = new BrowserMainWindow();
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
332 m_mainWindows = [browser] ~ m_mainWindows;
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
333 browser.show();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
334 return browser;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
335 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
336
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
337 void restoreLastSession()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
338 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
339 QByteArray[] windows;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
340 auto buffer = new QBuffer(&m_lastSession);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
341 auto stream = new QDataStream(&buffer);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
342 buffer.open(QIODevice.ReadOnly);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
343 int windowCount;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
344 stream >> windowCount;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
345 for (int i = 0; i < windowCount; ++i) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
346 QByteArray windowState;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
347 stream >> windowState;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
348 windows ~= windowState;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
349 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
350 for (int i = 0; i < windows.count(); ++i) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
351 BrowserMainWindow newWindow = 0;
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
352 if (m_mainWindows.length == 1 && mainWindow().tabWidget().count() == 1
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
353 && mainWindow().currentTab().getUrl() is null) {
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
354 newWindow = mainWindow();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
355 } else {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
356 newWindow = newMainWindow();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
357 }
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
358 newWindow.restoreState(windows[i]);
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
359 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
360 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
361
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
362
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
363 version(Q_WS_MAC)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
364 {
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
365 import qt.gui.QMessageBox;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
366
37caa90ce503 more porting
mandel
parents: 45
diff changeset
367 void quitBrowser()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
368 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
369 clean();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
370 int tabCount = 0;
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
371 for (int i = 0; i < m_mainWindows.length; ++i) {
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
372 tabCount =+ m_mainWindows[i].tabWidget().count();
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
373 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
374
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
375 if (tabCount > 1) {
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
376 int ret = QMessageBox.warning(mainWindow(), null,
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
377 Format(tr("There are %1 windows and %2 tabs open\n"
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
378 "Do you want to quit anyway?"), m_mainWindows.length, tabCount),
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
379 QMessageBox.Yes | QMessageBox.No,
37caa90ce503 more porting
mandel
parents: 45
diff changeset
380 QMessageBox.No);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
381 if (ret == QMessageBox.No)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
382 return;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
383 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
384
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
385 exit(0);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
386 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
387
37caa90ce503 more porting
mandel
parents: 45
diff changeset
388 void lastWindowClosed()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
389 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
390 clean();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
391 BrowserMainWindow mw = new BrowserMainWindow;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
392 mw.slotHome();
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
393 m_mainWindows = [mw] ~ m_mainWindows;
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
394 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
395 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
396
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
397 private:
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
398
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
399 /*!
37caa90ce503 more porting
mandel
parents: 45
diff changeset
400 Any actions that can be delayed until the window is visible
37caa90ce503 more porting
mandel
parents: 45
diff changeset
401 */
37caa90ce503 more porting
mandel
parents: 45
diff changeset
402 void postLaunch()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
403 {
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
404 string directory = QDesktopServices.storageLocation(QDesktopServices.DataLocation);
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
405 if (directory.isEmpty())
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
406 directory = QDir.homePath() ~ "/." ~ QCoreApplication.applicationName();
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
407 QWebSettings.setIconDatabasePath(directory);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
408
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
409 setWindowIcon(new QIcon(":browser.svg"));
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
410
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
411 loadSettings();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
412
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
413 // newMainWindow() needs to be called in main() for this to happen
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
414 if (m_mainWindows.length > 0) {
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
415 string[] args = QCoreApplication.arguments();
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
416 if (args.count() > 1)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
417 mainWindow().loadPage(args.last());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
418 else
37caa90ce503 more porting
mandel
parents: 45
diff changeset
419 mainWindow().slotHome();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
420 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
421 BrowserApplication.historyManager();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
422 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
423
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
424 void openUrl( QUrl url)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
425 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
426 mainWindow().loadPage(url.toString());
37caa90ce503 more porting
mandel
parents: 45
diff changeset
427 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
428
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
429 void newLocalSocketConnection()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
430 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
431 QLocalSocket socket = m_localServer.nextPendingConnection();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
432 if (!socket)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
433 return;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
434 socket.waitForReadyRead(1000);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
435 QTextStream stream(socket);
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
436 string url;
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
437 stream >> url;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
438 if (!url.isEmpty()) {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
439 QSettings settings;
80
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
440 settings.beginGroup("general");
85c59c4e5f19 remove QLatin1String and other fixes
mandel
parents: 77
diff changeset
441 int openLinksIn = settings.value("openLinksIn", 0).toInt();
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
442 settings.endGroup();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
443 if (openLinksIn == 1)
37caa90ce503 more porting
mandel
parents: 45
diff changeset
444 newMainWindow();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
445 else
37caa90ce503 more porting
mandel
parents: 45
diff changeset
446 mainWindow().tabWidget().newTab();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
447 openUrl(url);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
448 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
449 delete socket;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
450 mainWindow().raise();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
451 mainWindow().activateWindow();
37caa90ce503 more porting
mandel
parents: 45
diff changeset
452 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
453
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
454 private:
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
455
37caa90ce503 more porting
mandel
parents: 45
diff changeset
456 void clean()
37caa90ce503 more porting
mandel
parents: 45
diff changeset
457 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
458 // cleanup any deleted main windows first
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
459 for (int i = m_mainWindows.length - 1; i >= 0; --i)
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
460 if (m_mainWindows[i].isNull())
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
461 m_mainWindows.removeAt(i);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
462 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
463
77
0654fc9bac95 more porting
mandel
parents: 74
diff changeset
464 void installTranslator(string name)
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
465 {
37caa90ce503 more porting
mandel
parents: 45
diff changeset
466 QTranslator translator = new QTranslator(this);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
467 translator.load(name, QLibraryInfo.location(QLibraryInfo.TranslationsPath));
37caa90ce503 more porting
mandel
parents: 45
diff changeset
468 QApplication.installTranslator(translator);
37caa90ce503 more porting
mandel
parents: 45
diff changeset
469 }
37caa90ce503 more porting
mandel
parents: 45
diff changeset
470
37caa90ce503 more porting
mandel
parents: 45
diff changeset
471 static HistoryManager s_historyManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
472 static DownloadManager s_downloadManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
473 static NetworkAccessManager s_networkAccessManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
474 static BookmarksManager s_bookmarksManager;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
475
94
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
476 //QPointer!(BrowserMainWindow)[] m_mainWindows;
87bb4e622f9e more porting
mandel
parents: 80
diff changeset
477 BrowserMainWindow[] m_mainWindows;
74
37caa90ce503 more porting
mandel
parents: 45
diff changeset
478 QLocalServer m_localServer;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
479 QByteArray m_lastSession;
37caa90ce503 more porting
mandel
parents: 45
diff changeset
480 QIcon m_defaultIcon;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
481 }