2011-03-03 18:29:20 +01:00
|
|
|
/* ============================================================
|
|
|
|
* QupZilla - WebKit based browser
|
2012-01-01 15:29:55 +01:00
|
|
|
* Copyright (C) 2010-2012 David Rosca <nowrep@gmail.com>
|
2011-03-03 18:29:20 +01:00
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
* ============================================================ */
|
2011-03-02 16:57:41 +01:00
|
|
|
#ifndef QUPZILLA_H
|
|
|
|
#define QUPZILLA_H
|
|
|
|
|
|
|
|
#include <QMainWindow>
|
|
|
|
#include <QMenuBar>
|
|
|
|
#include <QTranslator>
|
|
|
|
#include <QDesktopWidget>
|
|
|
|
#include <QDebug>
|
|
|
|
#include <QUrl>
|
|
|
|
#include <QWebView>
|
|
|
|
#include <QWebFrame>
|
|
|
|
#include <QWebHistory>
|
|
|
|
#include <QtNetwork/QtNetwork>
|
|
|
|
#include <QtSql/QtSql>
|
|
|
|
#include <QMessageBox>
|
|
|
|
#include <QFile>
|
|
|
|
#include <QMovie>
|
|
|
|
#include <QDesktopServices>
|
|
|
|
#include <QStatusBar>
|
|
|
|
#include <QSplitter>
|
|
|
|
#include <QPushButton>
|
|
|
|
#include <QProgressBar>
|
|
|
|
#include <QPrintPreviewDialog>
|
|
|
|
#include <QToolButton>
|
|
|
|
#include <QWebInspector>
|
2011-12-09 21:56:01 +01:00
|
|
|
#include <QWeakPointer>
|
2011-03-02 16:57:41 +01:00
|
|
|
#include "qwebkitversion.h"
|
|
|
|
|
|
|
|
#include "webtab.h"
|
|
|
|
#include "webview.h"
|
|
|
|
#include "tabwidget.h"
|
|
|
|
#include "mainapplication.h"
|
2011-09-11 19:15:06 +02:00
|
|
|
#include "locationbar.h"
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
class TabWidget;
|
|
|
|
class WebView;
|
|
|
|
class LineEdit;
|
|
|
|
class SearchToolBar;
|
|
|
|
class BookmarksToolbar;
|
|
|
|
class AutoFillModel;
|
|
|
|
class MainApplication;
|
|
|
|
class WebTab;
|
2011-03-29 19:55:21 +02:00
|
|
|
class AdBlockIcon;
|
2011-04-15 20:45:22 +02:00
|
|
|
class SideBar;
|
2011-04-25 15:06:59 +02:00
|
|
|
class ProgressBar;
|
2011-05-09 17:58:19 +02:00
|
|
|
class StatusBarMessage;
|
2011-09-11 19:15:06 +02:00
|
|
|
class NavigationBar;
|
|
|
|
class ClickableLabel;
|
2011-10-14 20:14:57 +02:00
|
|
|
class WebInspectorDockWidget;
|
2011-12-13 19:18:05 +01:00
|
|
|
class Menu;
|
2011-03-02 16:57:41 +01:00
|
|
|
class QupZilla : public QMainWindow
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
static const QString VERSION;
|
|
|
|
static const QString BUILDTIME;
|
|
|
|
static const QString AUTHOR;
|
|
|
|
static const QString COPYRIGHT;
|
|
|
|
static const QString WWWADDRESS;
|
2011-10-02 17:39:59 +02:00
|
|
|
static const QString WIKIADDRESS;
|
2011-03-02 16:57:41 +01:00
|
|
|
static const QString WEBKITVERSION;
|
2011-10-07 15:37:49 +02:00
|
|
|
|
|
|
|
static const QIcon qupzillaIcon();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-11-03 18:51:46 +01:00
|
|
|
enum StartBehaviour { FirstAppWindow, OtherRestoredWindow, NewWindow };
|
|
|
|
explicit QupZilla(StartBehaviour behaviour = FirstAppWindow, QUrl startUrl = QUrl());
|
2011-03-02 16:57:41 +01:00
|
|
|
~QupZilla();
|
|
|
|
|
|
|
|
void refreshAddressBar();
|
2011-07-30 17:57:14 +02:00
|
|
|
void addBookmark(const QUrl &url, const QString &title, const QIcon &icon);
|
2011-03-02 16:57:41 +01:00
|
|
|
void installTranslator();
|
|
|
|
void loadSettings();
|
2011-04-22 07:45:15 +02:00
|
|
|
void showNavigationWithFullscreen();
|
2011-10-17 09:59:09 +02:00
|
|
|
void saveSideBarWidth();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2012-01-14 09:54:51 +01:00
|
|
|
void currentTabChanged();
|
|
|
|
void updateLoadingActions();
|
|
|
|
|
2012-01-09 22:14:02 +01:00
|
|
|
virtual QMenuBar* menuBar() const;
|
|
|
|
|
2011-03-04 15:14:35 +01:00
|
|
|
inline WebView* weView() const { WebTab* webTab = qobject_cast<WebTab*>(m_tabWidget->widget(m_tabWidget->currentIndex())); if (!webTab) return 0; return webTab->view(); }
|
|
|
|
inline WebView* weView(int index) const { WebTab* webTab = qobject_cast<WebTab*>(m_tabWidget->widget(index)); if (!webTab) return 0; return webTab->view(); }
|
2011-10-18 21:07:58 +02:00
|
|
|
inline LocationBar* locationBar() { return qobject_cast<LocationBar*>(m_tabWidget->locationBars()->currentWidget()); }
|
2011-05-09 17:58:19 +02:00
|
|
|
inline TabWidget* tabWidget() { return m_tabWidget; }
|
|
|
|
inline BookmarksToolbar* bookmarksToolbar() { return m_bookmarksToolbar; }
|
|
|
|
inline StatusBarMessage* statusBarMessage() { return m_statusBarMessage; }
|
2011-09-11 19:15:06 +02:00
|
|
|
inline NavigationBar* navigationBar() { return m_navigationBar; }
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-11-06 17:01:23 +01:00
|
|
|
inline ProgressBar* progressBar() { return m_progressBar; }
|
|
|
|
inline QString activeProfil() { return m_activeProfil; }
|
|
|
|
inline QString activeLanguage() { return m_activeLanguage; }
|
|
|
|
inline QLabel* ipLabel() { return m_ipLabel; }
|
2011-03-02 16:57:41 +01:00
|
|
|
inline QColor menuTextColor() { return m_menuTextColor; }
|
2011-04-25 15:06:59 +02:00
|
|
|
inline QMenu* menuHelp() { return m_menuHelp; }
|
2011-05-07 12:59:53 +02:00
|
|
|
inline QAction* actionRestoreTab() { return m_actionRestoreTab; }
|
2011-11-06 12:05:16 +01:00
|
|
|
inline QAction* actionReload() { return m_actionReload; }
|
|
|
|
inline QAction* actionStop() { return m_actionStop; }
|
2011-09-11 19:15:06 +02:00
|
|
|
inline QMenu* superMenu() { return m_superMenu; }
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-10-31 21:27:52 +01:00
|
|
|
inline bool isClosing() { return m_isClosing; }
|
|
|
|
|
2011-03-02 16:57:41 +01:00
|
|
|
signals:
|
|
|
|
void loadHistory();
|
|
|
|
void startingCompleted();
|
|
|
|
void message(MainApplication::MessageType mes, bool state);
|
2011-04-22 07:45:15 +02:00
|
|
|
void setWebViewMouseTracking(bool state);
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
public slots:
|
2011-09-17 11:13:38 +02:00
|
|
|
void setWindowTitle(const QString &t);
|
|
|
|
|
2011-10-14 20:14:57 +02:00
|
|
|
void showWebInspector();
|
2011-04-09 00:22:50 +02:00
|
|
|
void showBookmarksToolbar();
|
2011-03-02 16:57:41 +01:00
|
|
|
void loadActionUrl();
|
2011-09-19 20:49:39 +02:00
|
|
|
void loadActionUrlInNewTab();
|
2011-12-16 20:17:17 +01:00
|
|
|
void loadActionUrlInNewNotSelectedTab();
|
2011-12-20 18:58:42 +01:00
|
|
|
void loadFolderBookmarks(Menu* menu);
|
2011-12-16 20:17:17 +01:00
|
|
|
|
2011-03-02 16:57:41 +01:00
|
|
|
void bookmarkPage();
|
2011-07-31 00:50:40 +02:00
|
|
|
void loadAddress(const QUrl &url);
|
2012-01-02 13:56:52 +01:00
|
|
|
void showSource(QWebFrame* frame = 0, const QString &selectedHtml = "");
|
|
|
|
void printPage(QWebFrame* frame = 0);
|
2011-03-02 16:57:41 +01:00
|
|
|
void showPageInfo();
|
|
|
|
void receiveMessage(MainApplication::MessageType mes, bool state);
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void postLaunch();
|
|
|
|
void goNext() { weView()->forward(); }
|
|
|
|
void goBack() { weView()->back(); }
|
2011-10-26 19:23:50 +02:00
|
|
|
void goHome();
|
|
|
|
void goHomeInNewTab();
|
2011-03-02 16:57:41 +01:00
|
|
|
void stop() { weView()->stop(); }
|
|
|
|
void reload() { weView()->reload(); }
|
2011-05-08 14:12:35 +02:00
|
|
|
void reloadByPassCache() { weView()->page()->triggerAction(QWebPage::ReloadAndBypassCache); }
|
2011-03-02 16:57:41 +01:00
|
|
|
void urlEnter();
|
|
|
|
void aboutQupZilla();
|
|
|
|
void addTab() { m_tabWidget->addView(QUrl(), tr("New tab"), TabWidget::NewTab, true); }
|
2011-09-21 14:20:49 +02:00
|
|
|
void savePageScreen();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-12-17 15:09:17 +01:00
|
|
|
void aboutToShowFileMenu();
|
|
|
|
void aboutToHideFileMenu();
|
2011-09-30 21:44:18 +02:00
|
|
|
void aboutToShowHistoryMenu(bool loadHistory = true);
|
2011-11-06 12:05:16 +01:00
|
|
|
void aboutToHideHistoryMenu();
|
2011-07-28 12:12:00 +02:00
|
|
|
void aboutToShowClosedTabsMenu();
|
2011-03-02 16:57:41 +01:00
|
|
|
void aboutToShowBookmarksMenu();
|
|
|
|
void aboutToShowToolsMenu();
|
|
|
|
void aboutToShowHelpMenu();
|
|
|
|
void aboutToShowViewMenu();
|
2011-11-06 12:05:16 +01:00
|
|
|
void aboutToHideViewMenu();
|
2011-12-17 15:09:17 +01:00
|
|
|
void aboutToShowEditMenu();
|
|
|
|
void aboutToHideEditMenu();
|
2011-03-17 20:46:53 +01:00
|
|
|
void aboutToShowEncodingMenu();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
void searchOnPage();
|
|
|
|
void showCookieManager();
|
|
|
|
void showHistoryManager();
|
2011-04-20 21:39:35 +02:00
|
|
|
void showHistorySideBar();
|
2011-03-02 16:57:41 +01:00
|
|
|
void showBookmarksManager();
|
2011-04-15 20:45:22 +02:00
|
|
|
void showBookmarksSideBar();
|
2011-03-02 16:57:41 +01:00
|
|
|
void showRSSManager();
|
|
|
|
void showDownloadManager();
|
|
|
|
void showMenubar();
|
|
|
|
void showNavigationToolbar();
|
|
|
|
void showStatusbar();
|
|
|
|
void showClearPrivateData();
|
|
|
|
void showPreferences();
|
2011-10-22 22:29:33 +02:00
|
|
|
void showBookmarkImport();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-09-11 19:15:06 +02:00
|
|
|
void refreshHistory();
|
2011-03-02 16:57:41 +01:00
|
|
|
void bookmarkAllTabs();
|
2011-03-04 13:59:07 +01:00
|
|
|
void newWindow() { mApp->makeNewWindow(false); }
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-12-16 19:07:36 +01:00
|
|
|
void openLocation();
|
2011-03-02 16:57:41 +01:00
|
|
|
void openFile();
|
|
|
|
void savePage();
|
2011-12-16 20:17:17 +01:00
|
|
|
void sendLink();
|
2011-09-11 19:15:06 +02:00
|
|
|
void webSearch();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-11-27 15:43:54 +01:00
|
|
|
void copy();
|
2011-03-02 16:57:41 +01:00
|
|
|
void selectAll() { weView()->selectAll(); }
|
|
|
|
|
|
|
|
void zoomIn() { weView()->zoomIn(); }
|
|
|
|
void zoomOut() { weView()->zoomOut(); }
|
|
|
|
void zoomReset() { weView()->zoomReset(); }
|
|
|
|
void fullScreen(bool make);
|
|
|
|
void startPrivate(bool state);
|
2011-03-17 20:46:53 +01:00
|
|
|
void changeEncoding();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-03-05 13:16:13 +01:00
|
|
|
bool quitApp();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
private:
|
2012-01-02 17:23:31 +01:00
|
|
|
void resizeEvent(QResizeEvent* event);
|
2011-11-06 17:01:23 +01:00
|
|
|
void keyPressEvent(QKeyEvent* event);
|
2011-11-06 12:05:16 +01:00
|
|
|
void mousePressEvent(QMouseEvent* event);
|
2011-04-22 07:45:15 +02:00
|
|
|
void closeEvent(QCloseEvent* event);
|
|
|
|
|
2011-03-02 16:57:41 +01:00
|
|
|
void setupUi();
|
|
|
|
void setupMenu();
|
2011-09-11 19:15:06 +02:00
|
|
|
void addSideBar();
|
|
|
|
|
2012-01-10 18:31:38 +01:00
|
|
|
void disconnectAllWidgets();
|
|
|
|
|
2011-07-28 12:12:00 +02:00
|
|
|
bool m_historyMenuChanged;
|
2011-07-30 17:57:14 +02:00
|
|
|
bool m_bookmarksMenuChanged;
|
2011-10-31 21:27:52 +01:00
|
|
|
bool m_isClosing;
|
2011-03-02 16:57:41 +01:00
|
|
|
QUrl m_startingUrl;
|
|
|
|
QUrl m_newtab;
|
|
|
|
QUrl m_homepage;
|
2011-11-03 18:51:46 +01:00
|
|
|
StartBehaviour m_startBehaviour;
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-08-02 16:19:20 +02:00
|
|
|
QVBoxLayout* m_mainLayout;
|
2011-09-11 19:15:06 +02:00
|
|
|
QSplitter* m_mainSplitter;
|
2011-03-02 16:57:41 +01:00
|
|
|
QMenu* m_superMenu;
|
|
|
|
QMenu* m_menuFile;
|
|
|
|
QMenu* m_menuEdit;
|
|
|
|
QMenu* m_menuTools;
|
|
|
|
QMenu* m_menuHelp;
|
|
|
|
QMenu* m_menuView;
|
2011-12-13 19:18:05 +01:00
|
|
|
Menu* m_menuBookmarks;
|
|
|
|
Menu* m_menuHistory;
|
2011-07-28 12:12:00 +02:00
|
|
|
QMenu* m_menuClosedTabs;
|
2011-03-17 17:03:04 +01:00
|
|
|
QMenu* m_menuEncoding;
|
2011-12-08 18:11:05 +01:00
|
|
|
QAction* m_menuBookmarksAction;
|
2012-01-09 22:14:02 +01:00
|
|
|
#ifdef Q_WS_MAC
|
|
|
|
QMenuBar* m_macMenuBar;
|
|
|
|
#endif
|
2011-12-17 15:09:17 +01:00
|
|
|
|
2012-01-08 11:38:15 +01:00
|
|
|
QAction* m_actionAbout;
|
|
|
|
QAction* m_actionPreferences;
|
|
|
|
QAction* m_actionQuit;
|
|
|
|
|
2011-12-17 15:09:17 +01:00
|
|
|
QAction* m_actionCloseWindow;
|
2011-03-02 16:57:41 +01:00
|
|
|
QAction* m_actionShowToolbar;
|
|
|
|
QAction* m_actionShowBookmarksToolbar;
|
|
|
|
QAction* m_actionShowStatusbar;
|
|
|
|
QAction* m_actionShowMenubar;
|
|
|
|
QAction* m_actionShowFullScreen;
|
2011-04-20 21:39:35 +02:00
|
|
|
QAction* m_actionShowBookmarksSideBar;
|
|
|
|
QAction* m_actionShowHistorySideBar;
|
|
|
|
QAction* m_actionShowRssSideBar;
|
2011-03-02 16:57:41 +01:00
|
|
|
QAction* m_actionPrivateBrowsing;
|
|
|
|
QAction* m_actionStop;
|
|
|
|
QAction* m_actionReload;
|
2011-05-07 12:59:53 +02:00
|
|
|
QAction* m_actionRestoreTab;
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
QLabel* m_privateBrowsing;
|
2011-10-15 16:37:32 +02:00
|
|
|
AdBlockIcon* m_adblockIcon;
|
2011-12-09 21:56:01 +01:00
|
|
|
QWeakPointer<WebInspectorDockWidget> m_webInspectorDock;
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
BookmarksToolbar* m_bookmarksToolbar;
|
|
|
|
TabWidget* m_tabWidget;
|
2011-12-09 21:56:01 +01:00
|
|
|
QWeakPointer<SideBar> m_sideBar;
|
2011-05-09 17:58:19 +02:00
|
|
|
StatusBarMessage* m_statusBarMessage;
|
2011-09-11 19:15:06 +02:00
|
|
|
NavigationBar* m_navigationBar;
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-04-25 15:06:59 +02:00
|
|
|
ProgressBar* m_progressBar;
|
2011-03-02 16:57:41 +01:00
|
|
|
QLabel* m_ipLabel;
|
|
|
|
|
|
|
|
QString m_activeProfil;
|
|
|
|
QString m_activeLanguage;
|
|
|
|
QColor m_menuTextColor;
|
|
|
|
|
2012-01-13 16:51:58 +01:00
|
|
|
QList<int> m_sideBarWidth;
|
2011-12-26 21:23:21 +01:00
|
|
|
bool m_usingTransparentBackground;
|
2011-10-17 09:59:09 +02:00
|
|
|
|
2011-03-02 16:57:41 +01:00
|
|
|
//Used for F11 FullScreen remember visibility
|
|
|
|
//of menubar and statusbar
|
|
|
|
bool m_menuBarVisible;
|
|
|
|
bool m_statusBarVisible;
|
2011-04-22 07:45:15 +02:00
|
|
|
bool m_navigationVisible;
|
|
|
|
bool m_bookmarksToolBarVisible;
|
2011-03-02 16:57:41 +01:00
|
|
|
};
|
|
|
|
|
2012-01-13 16:51:58 +01:00
|
|
|
Q_DECLARE_METATYPE(QList<int>)
|
|
|
|
|
2011-03-02 16:57:41 +01:00
|
|
|
#endif // QUPZILLA_H
|