2011-03-03 18:29:20 +01:00
|
|
|
/* ============================================================
|
|
|
|
* QupZilla - WebKit based browser
|
|
|
|
* Copyright (C) 2010-2011 nowrep
|
|
|
|
*
|
|
|
|
* 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
|
|
|
|
|
|
|
|
//Comment for release building
|
2011-05-07 12:59:53 +02:00
|
|
|
#define DEVELOPING
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
#ifdef QT_NO_DEBUG
|
|
|
|
#ifdef DEVELOPING
|
|
|
|
#error "TRYING TO RELEASE WITH DEVELOPING FLAG"
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#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>
|
|
|
|
#include <QPointer>
|
|
|
|
#include "qwebkitversion.h"
|
|
|
|
|
|
|
|
#include "webtab.h"
|
|
|
|
#include "webview.h"
|
|
|
|
#include "tabwidget.h"
|
|
|
|
#include "locationbar.h"
|
|
|
|
#include "mainapplication.h"
|
|
|
|
#include "websearchbar.h"
|
|
|
|
|
|
|
|
class TabWidget;
|
|
|
|
class WebView;
|
|
|
|
class LineEdit;
|
|
|
|
class LocationBar;
|
|
|
|
class SearchToolBar;
|
|
|
|
class WebSearchBar;
|
|
|
|
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-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;
|
|
|
|
static const QString WEBKITVERSION;
|
|
|
|
|
|
|
|
explicit QupZilla(bool m_tryRestore=true, QUrl startUrl=QUrl());
|
|
|
|
~QupZilla();
|
|
|
|
|
|
|
|
void refreshAddressBar();
|
|
|
|
void addBookmark(const QUrl &url, const QString &title);
|
|
|
|
void installTranslator();
|
|
|
|
void loadSettings();
|
|
|
|
void showInspector();
|
|
|
|
void setBackground(QColor textColor);
|
2011-04-22 07:45:15 +02:00
|
|
|
void showNavigationWithFullscreen();
|
2011-03-02 16:57:41 +01:00
|
|
|
|
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-07-11 20:30:49 +02:00
|
|
|
inline LocationBar* locationBar() { return (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-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
inline QAction* buttonStop(){ return m_buttonStop; }
|
|
|
|
inline QAction* buttonReload(){ return m_buttonReload; }
|
2011-04-25 15:06:59 +02:00
|
|
|
inline ProgressBar* progressBar(){ return m_progressBar; }
|
2011-03-02 16:57:41 +01:00
|
|
|
inline QToolBar* navigationToolbar(){ return m_navigation; }
|
|
|
|
inline QString activeProfil(){ return m_activeProfil; }
|
|
|
|
inline QString activeLanguage(){ return m_activeLanguage; }
|
|
|
|
inline QDockWidget* inspectorDock(){ return m_webInspectorDock; }
|
|
|
|
inline QLabel* ipLabel(){ return m_ipLabel; }
|
|
|
|
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-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-04-09 00:22:50 +02:00
|
|
|
void showBookmarksToolbar();
|
2011-03-02 16:57:41 +01:00
|
|
|
void refreshHistory(int index=-1);
|
|
|
|
void loadActionUrl();
|
|
|
|
void bookmarkPage();
|
2011-07-11 20:30:49 +02:00
|
|
|
void loadAddress(QUrl url) { weView()->load(url); locationBar()->setText(url.toEncoded()); }
|
2011-03-02 16:57:41 +01:00
|
|
|
void showSource();
|
|
|
|
void showPageInfo();
|
|
|
|
void receiveMessage(MainApplication::MessageType mes, bool state);
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void postLaunch();
|
|
|
|
void goAtHistoryIndex();
|
|
|
|
void goNext() { weView()->forward(); }
|
|
|
|
void goBack() { weView()->back(); }
|
|
|
|
void goHome() { loadAddress(m_homepage); }
|
|
|
|
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); }
|
|
|
|
void printPage();
|
|
|
|
|
|
|
|
void aboutToShowHistoryBackMenu();
|
|
|
|
void aboutToShowHistoryNextMenu();
|
|
|
|
void aboutToShowHistoryMenu();
|
|
|
|
void aboutToShowBookmarksMenu();
|
|
|
|
void aboutToShowToolsMenu();
|
|
|
|
void aboutToShowHelpMenu();
|
|
|
|
void aboutToShowViewMenu();
|
2011-03-17 20:46:53 +01:00
|
|
|
void aboutToShowEncodingMenu();
|
2011-04-20 21:39:35 +02:00
|
|
|
void aboutToShowSidebarsMenu();
|
2011-04-22 07:55:31 +02:00
|
|
|
void aboutToShowToolbarsMenu();
|
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();
|
|
|
|
|
|
|
|
void bookmarkAllTabs();
|
2011-03-04 13:59:07 +01:00
|
|
|
void newWindow() { mApp->makeNewWindow(false); }
|
2011-03-02 16:57:41 +01:00
|
|
|
|
2011-07-11 20:30:49 +02:00
|
|
|
void openLocation() { locationBar()->setFocus(); locationBar()->selectAll(); }
|
2011-03-02 16:57:41 +01:00
|
|
|
void openFile();
|
|
|
|
void savePage();
|
|
|
|
void sendLink() { QDesktopServices::openUrl(QUrl("mailto:?body="+weView()->url().toString())); }
|
|
|
|
void webSearch() { m_searchLine->setFocus(); }
|
|
|
|
|
|
|
|
void copy() { QApplication::clipboard()->setText(weView()->selectedText()); }
|
|
|
|
void selectAll() { weView()->selectAll(); }
|
|
|
|
void reportBug() { m_tabWidget->addView(QUrl("http://qupzilla.ic.cz/bugzilla/?do=newtask&project=2")); }
|
|
|
|
|
|
|
|
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:
|
2011-04-22 07:45:15 +02:00
|
|
|
void closeEvent(QCloseEvent* event);
|
|
|
|
|
2011-03-02 16:57:41 +01:00
|
|
|
void setupUi();
|
|
|
|
void setupMenu();
|
|
|
|
|
|
|
|
bool m_tryRestore;
|
|
|
|
QUrl m_startingUrl;
|
|
|
|
QUrl m_newtab;
|
|
|
|
QUrl m_homepage;
|
|
|
|
|
|
|
|
QToolButton* m_supMenu;
|
|
|
|
QMenu* m_superMenu;
|
|
|
|
QMenu* m_menuFile;
|
|
|
|
QMenu* m_menuEdit;
|
|
|
|
QMenu* m_menuTools;
|
|
|
|
QMenu* m_menuHelp;
|
|
|
|
QMenu* m_menuView;
|
|
|
|
QMenu* m_menuBookmarks;
|
|
|
|
QMenu* m_menuHistory;
|
|
|
|
QMenu* m_menuBack;
|
|
|
|
QMenu* m_menuForward;
|
2011-03-17 17:03:04 +01:00
|
|
|
QMenu* m_menuEncoding;
|
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-03-27 21:59:40 +02:00
|
|
|
ClickableLabel* m_adblockIcon;
|
2011-03-02 16:57:41 +01:00
|
|
|
QPointer<QWebInspector> m_webInspector;
|
|
|
|
QPointer<QDockWidget> m_webInspectorDock;
|
|
|
|
|
|
|
|
WebSearchBar* m_searchLine;
|
|
|
|
SearchToolBar* m_webSearchToolbar;
|
|
|
|
BookmarksToolbar* m_bookmarksToolbar;
|
|
|
|
TabWidget* m_tabWidget;
|
2011-04-15 20:45:22 +02:00
|
|
|
QPointer<SideBar> m_sideBar;
|
2011-05-09 17:58:19 +02:00
|
|
|
StatusBarMessage* m_statusBarMessage;
|
2011-03-02 16:57:41 +01:00
|
|
|
|
|
|
|
QSplitter* m_navigationSplitter;
|
|
|
|
QAction* m_buttonBack;
|
|
|
|
QAction* m_buttonNext;
|
|
|
|
QAction* m_buttonHome;
|
|
|
|
QAction* m_buttonStop;
|
|
|
|
QAction* m_buttonReload;
|
|
|
|
QAction* m_actionExitFullscreen;
|
2011-04-25 15:06:59 +02:00
|
|
|
ProgressBar* m_progressBar;
|
2011-03-02 16:57:41 +01:00
|
|
|
QLabel* m_ipLabel;
|
|
|
|
QToolBar* m_navigation;
|
|
|
|
|
|
|
|
QString m_activeProfil;
|
|
|
|
QString m_activeLanguage;
|
|
|
|
QColor m_menuTextColor;
|
|
|
|
|
|
|
|
//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
|
|
|
};
|
|
|
|
|
|
|
|
#endif // QUPZILLA_H
|