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
# include "qupzilla.h"
# include "tabwidget.h"
# include "tabbar.h"
# include "webpage.h"
# include "webview.h"
# include "lineedit.h"
# include "historymodel.h"
# include "locationbar.h"
# include "searchtoolbar.h"
# include "websearchbar.h"
# include "downloadmanager.h"
# include "cookiejar.h"
# include "cookiemanager.h"
# include "bookmarksmanager.h"
# include "bookmarkstoolbar.h"
# include "clearprivatedata.h"
# include "sourceviewer.h"
# include "siteinfo.h"
# include "preferences.h"
# include "networkmanager.h"
# include "autofillmodel.h"
# include "networkmanagerproxy.h"
# include "rssmanager.h"
# include "mainapplication.h"
# include "aboutdialog.h"
# include "pluginproxy.h"
# include "qtwin.h"
2011-03-26 15:59:11 +01:00
# include "ui_closedialog.h"
2011-03-27 21:59:40 +02:00
# include "adblockmanager.h"
# include "clickablelabel.h"
2011-04-15 20:45:22 +02:00
# include "docktitlebarwidget.h"
# include "sidebar.h"
2011-04-25 20:56:45 +02:00
# include "iconprovider.h"
2011-04-25 15:06:59 +02:00
# include "progressbar.h"
2011-05-07 12:59:53 +02:00
# include "adblockicon.h"
# include "closedtabsmanager.h"
2011-05-09 17:58:19 +02:00
# include "statusbarmessage.h"
2011-07-11 21:08:41 +02:00
# include "locationbarsettings.h"
2011-07-29 15:39:43 +02:00
# include "browsinglibrary.h"
2011-09-11 19:15:06 +02:00
# include "navigationbar.h"
2011-03-02 16:57:41 +01:00
2011-09-11 19:15:06 +02:00
const QString QupZilla : : VERSION = " 1.0.0-b4 " ;
2011-04-04 19:29:03 +02:00
//const QString QupZilla::BUILDTIME = QLocale(QLocale::English).toDateTime(__DATE__" "__TIME__, "MMM d yyyy hh:mm:ss").toString("MM/dd/yyyy hh:ss");
const QString QupZilla : : BUILDTIME = __DATE__ " " __TIME__ ;
2011-03-26 15:59:11 +01:00
const QString QupZilla : : AUTHOR = " nowrep " ;
const QString QupZilla : : COPYRIGHT = " 2010-2011 " ;
const QString QupZilla : : WWWADDRESS = " http://qupzilla.ic.cz " ;
const QString QupZilla : : WEBKITVERSION = qWebKitVersion ( ) ;
2011-03-02 16:57:41 +01:00
2011-09-17 11:39:25 +02:00
QIcon QupZilla : : qupzillaIcon ( )
{
QIcon i ;
i . addFile ( " :icons/exeicons/qupzilla16.png " ) ;
i . addFile ( " :icons/exeicons/qupzilla32.png " ) ;
i . addFile ( " :icons/exeicons/qupzilla48.png " ) ;
i . addFile ( " :icons/exeicons/qupzilla64.png " ) ;
i . addFile ( " :icons/exeicons/qupzilla128.png " ) ;
i . addFile ( " :icons/exeicons/qupzilla256.png " ) ;
return i ;
}
2011-03-02 16:57:41 +01:00
QupZilla : : QupZilla ( bool tryRestore , QUrl startUrl ) :
2011-04-25 15:06:59 +02:00
QMainWindow ( 0 )
2011-03-02 16:57:41 +01:00
, m_tryRestore ( tryRestore )
2011-07-28 12:12:00 +02:00
, m_historyMenuChanged ( true )
2011-07-30 17:57:14 +02:00
, m_bookmarksMenuChanged ( true )
2011-03-02 16:57:41 +01:00
, m_startingUrl ( startUrl )
, m_actionPrivateBrowsing ( 0 )
, m_webInspectorDock ( 0 )
2011-04-15 20:45:22 +02:00
, m_sideBar ( 0 )
2011-05-09 17:58:19 +02:00
, m_statusBarMessage ( new StatusBarMessage ( this ) )
2011-03-02 16:57:41 +01:00
{
2011-09-11 19:15:06 +02:00
setObjectName ( " mainwindow " ) ;
2011-03-05 10:57:36 +01:00
setAttribute ( Qt : : WA_DeleteOnClose ) ;
2011-03-02 16:57:41 +01:00
this - > resize ( 640 , 480 ) ;
this - > setWindowState ( Qt : : WindowMaximized ) ;
this - > setWindowTitle ( " QupZilla " ) ;
setUpdatesEnabled ( false ) ;
2011-09-11 19:15:06 +02:00
m_activeProfil = mApp - > getActiveProfilPath ( ) ;
2011-03-04 13:59:07 +01:00
m_activeLanguage = mApp - > getActiveLanguage ( ) ;
2011-03-02 16:57:41 +01:00
QDesktopServices : : setUrlHandler ( " http " , this , " loadAddress " ) ;
setupUi ( ) ;
setupMenu ( ) ;
QTimer : : singleShot ( 0 , this , SLOT ( postLaunch ( ) ) ) ;
2011-03-04 13:59:07 +01:00
connect ( mApp , SIGNAL ( message ( MainApplication : : MessageType , bool ) ) , this , SLOT ( receiveMessage ( MainApplication : : MessageType , bool ) ) ) ;
2011-03-02 16:57:41 +01:00
}
2011-05-07 12:59:53 +02:00
void QupZilla : : postLaunch ( )
{
loadSettings ( ) ;
m_tabWidget - > restorePinnedTabs ( ) ;
//Open tab from command line argument
bool addTab = true ;
QStringList arguments = qApp - > arguments ( ) ;
for ( int i = 0 ; i < qApp - > arguments ( ) . count ( ) ; i + + ) {
QString arg = arguments . at ( i ) ;
if ( arg . startsWith ( " -url= " ) ) {
m_tabWidget - > addView ( QUrl ( arg . replace ( " -url= " , " " ) ) ) ;
addTab = false ;
}
}
QSettings settings ( m_activeProfil + " settings.ini " , QSettings : : IniFormat ) ;
settings . beginGroup ( " Web-URL-Settings " ) ;
int afterLaunch = settings . value ( " afterLaunch " , 1 ) . toInt ( ) ;
settings . endGroup ( ) ;
settings . beginGroup ( " SessionRestore " ) ;
bool startingAfterCrash = settings . value ( " isCrashed " , false ) . toBool ( ) ;
settings . endGroup ( ) ;
QUrl startUrl ;
if ( m_tryRestore ) {
if ( afterLaunch = = 0 )
startUrl = QUrl ( " " ) ;
else if ( afterLaunch = = 1 )
startUrl = m_homepage ;
else
startUrl = m_homepage ;
if ( startingAfterCrash | | ( addTab & & afterLaunch = = 2 ) )
addTab = ! mApp - > restoreStateSlot ( this ) ;
} else
startUrl = m_homepage ;
if ( ! m_startingUrl . isEmpty ( ) ) {
startUrl = WebView : : guessUrlFromString ( m_startingUrl . toString ( ) ) ;
addTab = true ;
}
if ( addTab )
m_tabWidget - > addView ( startUrl ) ;
aboutToShowHistoryMenu ( ) ;
aboutToShowBookmarksMenu ( ) ;
if ( m_tabWidget - > count ( ) = = 0 ) //Something went really wrong .. add one tab
m_tabWidget - > addView ( m_homepage ) ;
setUpdatesEnabled ( true ) ;
emit startingCompleted ( ) ;
}
void QupZilla : : setupUi ( )
{
2011-08-02 16:19:20 +02:00
QWidget * widget = new QWidget ( this ) ;
2011-09-11 19:15:06 +02:00
setCentralWidget ( widget ) ;
2011-08-02 16:19:20 +02:00
m_mainLayout = new QVBoxLayout ( widget ) ;
m_mainLayout - > setContentsMargins ( 0 , 0 , 0 , 0 ) ;
m_mainLayout - > setSpacing ( 0 ) ;
2011-09-11 19:15:06 +02:00
m_mainSplitter = new QSplitter ( this ) ;
m_mainSplitter - > setSizePolicy ( QSizePolicy : : Preferred , QSizePolicy : : Expanding ) ;
2011-07-11 20:30:49 +02:00
m_tabWidget = new TabWidget ( this ) ;
2011-05-07 12:59:53 +02:00
m_superMenu = new QMenu ( this ) ;
2011-09-11 19:15:06 +02:00
m_navigationBar = new NavigationBar ( this ) ;
m_bookmarksToolbar = new BookmarksToolbar ( this ) ;
m_mainSplitter - > addWidget ( m_tabWidget ) ;
m_mainLayout - > addWidget ( m_navigationBar ) ;
m_mainLayout - > addWidget ( m_bookmarksToolbar ) ;
m_mainLayout - > addWidget ( m_mainSplitter ) ;
m_mainSplitter - > setCollapsible ( 0 , false ) ;
2011-05-07 12:59:53 +02:00
2011-09-11 19:15:06 +02:00
statusBar ( ) - > setObjectName ( " mainwindow-statusbar " ) ;
2011-05-07 12:59:53 +02:00
m_progressBar = new ProgressBar ( statusBar ( ) ) ;
m_privateBrowsing = new QLabel ( this ) ;
m_privateBrowsing - > setPixmap ( QPixmap ( " :/icons/locationbar/privatebrowsing.png " ) ) ;
m_privateBrowsing - > setVisible ( false ) ;
m_privateBrowsing - > setToolTip ( tr ( " Private Browsing Enabled " ) ) ;
m_adblockIcon = new AdBlockIcon ( this ) ;
m_ipLabel = new QLabel ( this ) ;
2011-09-11 19:15:06 +02:00
m_ipLabel - > setObjectName ( " statusbar-ip-label " ) ;
2011-05-07 12:59:53 +02:00
m_ipLabel - > setToolTip ( tr ( " IP Address of current page " ) ) ;
statusBar ( ) - > insertPermanentWidget ( 0 , m_progressBar ) ;
statusBar ( ) - > insertPermanentWidget ( 1 , m_ipLabel ) ;
statusBar ( ) - > insertPermanentWidget ( 2 , m_privateBrowsing ) ;
statusBar ( ) - > insertPermanentWidget ( 3 , m_adblockIcon ) ;
}
void QupZilla : : setupMenu ( )
{
2011-09-11 19:15:06 +02:00
menuBar ( ) - > setObjectName ( " mainwindow-menubar " ) ;
2011-05-07 12:59:53 +02:00
m_menuTools = new QMenu ( tr ( " Tools " ) ) ;
m_menuHelp = new QMenu ( tr ( " Help " ) ) ;
m_menuBookmarks = new QMenu ( tr ( " Bookmarks " ) ) ;
m_menuHistory = new QMenu ( tr ( " History " ) ) ;
connect ( m_menuHistory , SIGNAL ( aboutToShow ( ) ) , this , SLOT ( aboutToShowHistoryMenu ( ) ) ) ;
connect ( m_menuBookmarks , SIGNAL ( aboutToShow ( ) ) , this , SLOT ( aboutToShowBookmarksMenu ( ) ) ) ;
connect ( m_menuHelp , SIGNAL ( aboutToShow ( ) ) , this , SLOT ( aboutToShowHelpMenu ( ) ) ) ;
connect ( m_menuTools , SIGNAL ( aboutToShow ( ) ) , this , SLOT ( aboutToShowToolsMenu ( ) ) ) ;
m_menuFile = new QMenu ( tr ( " File " ) ) ;
m_menuFile - > addAction ( QIcon : : fromTheme ( " window-new " ) , tr ( " &New Window " ) , this , SLOT ( newWindow ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+N " ) ) ;
m_menuFile - > addAction ( QIcon ( " :/icons/menu/popup.png " ) , tr ( " New Tab " ) , this , SLOT ( addTab ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+T " ) ) ;
m_menuFile - > addAction ( tr ( " Open Location " ) , this , SLOT ( openLocation ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+L " ) ) ;
m_menuFile - > addAction ( QIcon : : fromTheme ( " document-open " ) , tr ( " Open &File " ) , this , SLOT ( openFile ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+O " ) ) ;
m_menuFile - > addAction ( tr ( " Close Tab " ) , m_tabWidget , SLOT ( closeTab ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+W " ) ) ;
m_menuFile - > addAction ( QIcon : : fromTheme ( " window-close " ) , tr ( " Close Window " ) , this , SLOT ( close ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+Shift+W " ) ) ;
m_menuFile - > addSeparator ( ) ;
m_menuFile - > addAction ( QIcon : : fromTheme ( " document-save " ) , tr ( " &Save Page As... " ) , this , SLOT ( savePage ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+S " ) ) ;
m_menuFile - > addAction ( tr ( " Send Link... " ) , this , SLOT ( sendLink ( ) ) ) ;
m_menuFile - > addAction ( QIcon : : fromTheme ( " document-print " ) , tr ( " &Print " ) , this , SLOT ( printPage ( ) ) ) ;
m_menuFile - > addSeparator ( ) ;
m_menuFile - > addAction ( QIcon : : fromTheme ( " application-exit " ) , tr ( " Quit " ) , this , SLOT ( quitApp ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+Q " ) ) ;
menuBar ( ) - > addMenu ( m_menuFile ) ;
m_menuEdit = new QMenu ( tr ( " Edit " ) ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-undo " ) , tr ( " &Undo " ) ) - > setShortcut ( QKeySequence ( " Ctrl+Z " ) ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-redo " ) , tr ( " &Redo " ) ) - > setShortcut ( QKeySequence ( " Ctrl+Shift+Z " ) ) ;
m_menuEdit - > addSeparator ( ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-cut " ) , tr ( " &Cut " ) ) - > setShortcut ( QKeySequence ( " Ctrl+X " ) ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-copy " ) , tr ( " C&opy " ) , this , SLOT ( copy ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+C " ) ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-paste " ) , tr ( " &Paste " ) ) - > setShortcut ( QKeySequence ( " Ctrl+V " ) ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-delete " ) , tr ( " &Delete " ) ) - > setShortcut ( QKeySequence ( " Del " ) ) ;
m_menuEdit - > addSeparator ( ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-select-all " ) , tr ( " Select &All " ) , this , SLOT ( selectAll ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+A " ) ) ;
m_menuEdit - > addSeparator ( ) ;
m_menuEdit - > addAction ( QIcon : : fromTheme ( " edit-find " ) , tr ( " &Find " ) , this , SLOT ( searchOnPage ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+F " ) ) ;
menuBar ( ) - > addMenu ( m_menuEdit ) ;
m_menuView = new QMenu ( tr ( " View " ) ) ;
m_actionShowToolbar = new QAction ( tr ( " &Navigation Toolbar " ) , this ) ;
m_actionShowToolbar - > setCheckable ( true ) ;
connect ( m_actionShowToolbar , SIGNAL ( triggered ( bool ) ) , this , SLOT ( showNavigationToolbar ( ) ) ) ;
m_actionShowBookmarksToolbar = new QAction ( tr ( " &Bookmarks Toolbar " ) , this ) ;
m_actionShowBookmarksToolbar - > setCheckable ( true ) ;
connect ( m_actionShowBookmarksToolbar , SIGNAL ( triggered ( bool ) ) , this , SLOT ( showBookmarksToolbar ( ) ) ) ;
m_actionShowStatusbar = new QAction ( tr ( " Sta&tus Bar " ) , this ) ;
m_actionShowStatusbar - > setCheckable ( true ) ;
connect ( m_actionShowStatusbar , SIGNAL ( triggered ( bool ) ) , this , SLOT ( showStatusbar ( ) ) ) ;
m_actionShowMenubar = new QAction ( tr ( " &Menu Bar " ) , this ) ;
m_actionShowMenubar - > setCheckable ( true ) ;
connect ( m_actionShowMenubar , SIGNAL ( triggered ( bool ) ) , this , SLOT ( showMenubar ( ) ) ) ;
m_actionShowFullScreen = new QAction ( tr ( " &Fullscreen " ) , this ) ;
m_actionShowFullScreen - > setCheckable ( true ) ;
m_actionShowFullScreen - > setShortcut ( QKeySequence ( " F11 " ) ) ;
connect ( m_actionShowFullScreen , SIGNAL ( triggered ( bool ) ) , this , SLOT ( fullScreen ( bool ) ) ) ;
m_actionStop = new QAction (
# ifdef Q_WS_X11
style ( ) - > standardIcon ( QStyle : : SP_BrowserStop )
# else
QIcon ( " :/icons/faenza/stop.png " )
# endif
, tr ( " &Stop " ) , this ) ;
connect ( m_actionStop , SIGNAL ( triggered ( ) ) , this , SLOT ( stop ( ) ) ) ;
m_actionStop - > setShortcut ( QKeySequence ( " Esc " ) ) ;
m_actionReload = new QAction (
# ifdef Q_WS_X11
style ( ) - > standardIcon ( QStyle : : SP_BrowserReload )
# else
QIcon ( " :/icons/faenza/reload.png " )
# endif
, tr ( " &Reload " ) , this ) ;
connect ( m_actionReload , SIGNAL ( triggered ( ) ) , this , SLOT ( reload ( ) ) ) ;
2011-09-11 19:15:06 +02:00
m_actionReload - > setShortcut ( QKeySequence ( " F5 " ) ) ;
2011-05-07 12:59:53 +02:00
QAction * actionEncoding = new QAction ( tr ( " Character &Encoding " ) , this ) ;
m_menuEncoding = new QMenu ( this ) ;
actionEncoding - > setMenu ( m_menuEncoding ) ;
connect ( m_menuEncoding , SIGNAL ( aboutToShow ( ) ) , this , SLOT ( aboutToShowEncodingMenu ( ) ) ) ;
m_actionShowBookmarksSideBar = new QAction ( tr ( " Bookmarks " ) , this ) ;
m_actionShowBookmarksSideBar - > setCheckable ( true ) ;
m_actionShowBookmarksSideBar - > setShortcut ( QKeySequence ( " Ctrl+B " ) ) ;
connect ( m_actionShowBookmarksSideBar , SIGNAL ( triggered ( ) ) , this , SLOT ( showBookmarksSideBar ( ) ) ) ;
m_actionShowHistorySideBar = new QAction ( tr ( " History " ) , this ) ;
m_actionShowHistorySideBar - > setCheckable ( true ) ;
m_actionShowHistorySideBar - > setShortcut ( QKeySequence ( " Ctrl+H " ) ) ;
connect ( m_actionShowHistorySideBar , SIGNAL ( triggered ( ) ) , this , SLOT ( showHistorySideBar ( ) ) ) ;
// m_actionShowRssSideBar = new QAction(tr("RSS Reader"), this);
// m_actionShowRssSideBar->setCheckable(true);
// connect(m_actionShowRssSideBar, SIGNAL(triggered()), this, SLOT(showRssSideBar()));
QMenu * toolbarsMenu = new QMenu ( tr ( " Toolbars " ) ) ;
toolbarsMenu - > addAction ( m_actionShowMenubar ) ;
toolbarsMenu - > addAction ( m_actionShowToolbar ) ;
toolbarsMenu - > addAction ( m_actionShowBookmarksToolbar ) ;
QMenu * sidebarsMenu = new QMenu ( tr ( " Sidebars " ) ) ;
sidebarsMenu - > addAction ( m_actionShowBookmarksSideBar ) ;
sidebarsMenu - > addAction ( m_actionShowHistorySideBar ) ;
// sidebarsMenu->addAction(m_actionShowRssSideBar);
m_menuView - > addMenu ( toolbarsMenu ) ;
m_menuView - > addMenu ( sidebarsMenu ) ;
2011-05-31 21:11:46 +02:00
m_menuView - > addAction ( m_actionShowStatusbar ) ;
2011-05-07 12:59:53 +02:00
m_menuView - > addSeparator ( ) ;
m_menuView - > addAction ( m_actionStop ) ;
m_menuView - > addAction ( m_actionReload ) ;
m_menuView - > addSeparator ( ) ;
m_menuView - > addAction ( QIcon : : fromTheme ( " zoom-in " ) , tr ( " Zoom &In " ) , this , SLOT ( zoomIn ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl++ " ) ) ;
m_menuView - > addAction ( QIcon : : fromTheme ( " zoom-out " ) , tr ( " Zoom &Out " ) , this , SLOT ( zoomOut ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+- " ) ) ;
m_menuView - > addAction ( QIcon : : fromTheme ( " zoom-original " ) , tr ( " Reset " ) , this , SLOT ( zoomReset ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+0 " ) ) ;
m_menuView - > addSeparator ( ) ;
m_menuView - > addAction ( actionEncoding ) ;
m_menuView - > addSeparator ( ) ;
m_menuView - > addAction ( QIcon : : fromTheme ( " text-html " ) , tr ( " &Page Source " ) , this , SLOT ( showSource ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+U " ) ) ;
m_menuView - > addAction ( m_actionShowFullScreen ) ;
menuBar ( ) - > addMenu ( m_menuView ) ;
connect ( m_menuView , SIGNAL ( aboutToShow ( ) ) , this , SLOT ( aboutToShowViewMenu ( ) ) ) ;
menuBar ( ) - > addMenu ( m_menuHistory ) ;
menuBar ( ) - > addMenu ( m_menuBookmarks ) ;
menuBar ( ) - > addMenu ( m_menuTools ) ;
menuBar ( ) - > addMenu ( m_menuHelp ) ;
menuBar ( ) - > setContextMenuPolicy ( Qt : : CustomContextMenu ) ;
2011-07-28 12:12:00 +02:00
m_menuClosedTabs = new QMenu ( tr ( " Closed Tabs " ) ) ;
connect ( m_menuClosedTabs , SIGNAL ( aboutToShow ( ) ) , this , SLOT ( aboutToShowClosedTabsMenu ( ) ) ) ;
2011-05-07 12:59:53 +02:00
aboutToShowToolsMenu ( ) ;
aboutToShowHelpMenu ( ) ;
m_actionRestoreTab = new QAction ( QIcon : : fromTheme ( " user-trash " ) , tr ( " Restore &Closed Tab " ) , this ) ;
m_actionRestoreTab - > setShortcut ( QKeySequence ( " Ctrl+Shift+T " ) ) ;
connect ( m_actionRestoreTab , SIGNAL ( triggered ( ) ) , m_tabWidget , SLOT ( restoreClosedTab ( ) ) ) ;
addAction ( m_actionRestoreTab ) ;
2011-05-08 14:12:35 +02:00
QAction * reloadByPassCacheAction = new QAction ( this ) ;
reloadByPassCacheAction - > setShortcut ( QKeySequence ( " Ctrl+F5 " ) ) ;
connect ( reloadByPassCacheAction , SIGNAL ( triggered ( ) ) , this , SLOT ( reloadByPassCache ( ) ) ) ;
addAction ( reloadByPassCacheAction ) ;
2011-05-07 12:59:53 +02:00
//Make shortcuts available even in fullscreen (menu hidden)
QList < QAction * > actions = menuBar ( ) - > actions ( ) ;
foreach ( QAction * action , actions ) {
if ( action - > menu ( ) )
actions + = action - > menu ( ) - > actions ( ) ;
addAction ( action ) ;
}
m_superMenu - > addMenu ( m_menuFile ) ;
m_superMenu - > addMenu ( m_menuEdit ) ;
m_superMenu - > addMenu ( m_menuView ) ;
m_superMenu - > addMenu ( m_menuHistory ) ;
m_superMenu - > addMenu ( m_menuBookmarks ) ;
m_superMenu - > addMenu ( m_menuTools ) ;
m_superMenu - > addMenu ( m_menuHelp ) ;
}
2011-03-02 16:57:41 +01:00
void QupZilla : : loadSettings ( )
{
QSettings settings ( m_activeProfil + " settings.ini " , QSettings : : IniFormat ) ;
//Url settings
settings . beginGroup ( " Web-URL-Settings " ) ;
m_homepage = settings . value ( " homepage " , " http://qupzilla.ic.cz/search/ " ) . toUrl ( ) ;
m_newtab = settings . value ( " newTabUrl " , " " ) . toUrl ( ) ;
settings . endGroup ( ) ;
2011-04-25 15:06:59 +02:00
QWebSettings * websettings = mApp - > webSettings ( ) ;
2011-03-02 16:57:41 +01:00
websettings - > setAttribute ( QWebSettings : : JavascriptCanAccessClipboard , true ) ;
//Browser Window settings
settings . beginGroup ( " Browser-View-Settings " ) ;
m_menuTextColor = settings . value ( " menuTextColor " , QColor ( Qt : : black ) ) . value < QColor > ( ) ;
bool showStatusBar = settings . value ( " showStatusBar " , true ) . toBool ( ) ;
bool showHomeIcon = settings . value ( " showHomeButton " , true ) . toBool ( ) ;
bool showBackForwardIcons = settings . value ( " showBackForwardButtons " , true ) . toBool ( ) ;
bool showBookmarksToolbar = settings . value ( " showBookmarksToolbar " , true ) . toBool ( ) ;
bool showNavigationToolbar = settings . value ( " showNavigationToolbar " , true ) . toBool ( ) ;
bool showMenuBar = settings . value ( " showMenubar " , true ) . toBool ( ) ;
2011-09-11 19:15:06 +02:00
bool showAddTab = settings . value ( " showAddTabButton " , true ) . toBool ( ) ;
2011-03-02 16:57:41 +01:00
bool makeTransparent = settings . value ( " useTransparentBackground " , false ) . toBool ( ) ;
2011-04-28 18:31:48 +02:00
QString activeSideBar = settings . value ( " SideBar " , " None " ) . toString ( ) ;
2011-03-02 16:57:41 +01:00
settings . endGroup ( ) ;
2011-03-29 20:30:05 +02:00
bool adBlockEnabled = settings . value ( " AdBlock/enabled " , true ) . toBool ( ) ;
m_adblockIcon - > setEnabled ( adBlockEnabled ) ;
2011-03-02 16:57:41 +01:00
statusBar ( ) - > setVisible ( showStatusBar ) ;
m_bookmarksToolbar - > setVisible ( showBookmarksToolbar ) ;
2011-09-11 19:15:06 +02:00
m_navigationBar - > setVisible ( showNavigationToolbar ) ;
2011-03-02 16:57:41 +01:00
menuBar ( ) - > setVisible ( showMenuBar ) ;
2011-09-11 19:15:06 +02:00
m_navigationBar - > buttonSuperMenu ( ) - > setVisible ( ! showMenuBar ) ;
m_navigationBar - > buttonHome ( ) - > setVisible ( showHomeIcon ) ;
m_navigationBar - > buttonBack ( ) - > setVisible ( showBackForwardIcons ) ;
m_navigationBar - > buttonNext ( ) - > setVisible ( showBackForwardIcons ) ;
m_navigationBar - > buttonAddTab ( ) - > setVisible ( showAddTab ) ;
2011-03-02 16:57:41 +01:00
2011-04-28 18:31:48 +02:00
if ( activeSideBar ! = " None " ) {
if ( activeSideBar = = " Bookmarks " )
m_actionShowBookmarksSideBar - > trigger ( ) ;
else if ( activeSideBar = = " History " )
m_actionShowHistorySideBar - > trigger ( ) ;
}
2011-03-02 16:57:41 +01:00
//Private browsing
2011-03-04 13:59:07 +01:00
m_actionPrivateBrowsing - > setChecked ( mApp - > webSettings ( ) - > testAttribute ( QWebSettings : : PrivateBrowsingEnabled ) ) ;
m_privateBrowsing - > setVisible ( mApp - > webSettings ( ) - > testAttribute ( QWebSettings : : PrivateBrowsingEnabled ) ) ;
2011-03-02 16:57:41 +01:00
if ( ! makeTransparent )
return ;
//Opacity
# ifdef Q_WS_X11
setAttribute ( Qt : : WA_TranslucentBackground ) ;
setAttribute ( Qt : : WA_NoSystemBackground , false ) ;
QPalette pal = palette ( ) ;
QColor bg = pal . window ( ) . color ( ) ;
bg . setAlpha ( 180 ) ;
pal . setColor ( QPalette : : Window , bg ) ;
setPalette ( pal ) ;
ensurePolished ( ) ; // workaround Oxygen filling the background
setAttribute ( Qt : : WA_StyledBackground , false ) ;
# endif
if ( QtWin : : isCompositionEnabled ( ) ) {
QtWin : : extendFrameIntoClientArea ( this ) ;
setContentsMargins ( 0 , 0 , 0 , 0 ) ;
}
}
2011-09-17 11:13:38 +02:00
void QupZilla : : setWindowTitle ( const QString & t )
{
if ( mApp - > webSettings ( ) - > testAttribute ( QWebSettings : : PrivateBrowsingEnabled ) )
QMainWindow : : setWindowTitle ( t + tr ( " (Private Browsing) " ) ) ;
else
QMainWindow : : setWindowTitle ( t ) ;
}
2011-03-02 16:57:41 +01:00
void QupZilla : : receiveMessage ( MainApplication : : MessageType mes , bool state )
{
switch ( mes ) {
2011-03-29 20:30:05 +02:00
case MainApplication : : SetAdBlockIconEnabled :
m_adblockIcon - > setEnabled ( state ) ;
2011-03-02 16:57:41 +01:00
break ;
case MainApplication : : CheckPrivateBrowsing :
m_privateBrowsing - > setVisible ( state ) ;
m_actionPrivateBrowsing - > setChecked ( state ) ;
2011-09-17 11:13:38 +02:00
if ( state )
setWindowTitle ( windowTitle ( ) ) ;
else
setWindowTitle ( windowTitle ( ) . remove ( tr ( " (Private Browsing) " ) ) ) ;
2011-03-02 16:57:41 +01:00
break ;
2011-04-26 19:47:12 +02:00
case MainApplication : : ReloadSettings :
loadSettings ( ) ;
m_tabWidget - > loadSettings ( ) ;
2011-07-11 21:08:41 +02:00
LocationBarSettings : : instance ( ) - > loadSettings ( ) ;
2011-04-26 19:47:12 +02:00
break ;
2011-07-30 17:57:14 +02:00
case MainApplication : : HistoryStateChanged :
2011-07-28 12:12:00 +02:00
m_historyMenuChanged = true ;
break ;
2011-07-30 17:57:14 +02:00
case MainApplication : : BookmarksChanged :
m_bookmarksMenuChanged = true ;
break ;
2011-03-02 16:57:41 +01:00
default :
2011-07-28 12:12:00 +02:00
qWarning ( " Unresolved message sent! This could never happen! " ) ;
2011-03-02 16:57:41 +01:00
break ;
}
}
void QupZilla : : aboutToShowBookmarksMenu ( )
{
2011-07-30 17:57:14 +02:00
if ( ! m_bookmarksMenuChanged )
return ;
m_bookmarksMenuChanged = false ;
2011-03-02 16:57:41 +01:00
m_menuBookmarks - > clear ( ) ;
2011-04-09 00:22:50 +02:00
m_menuBookmarks - > addAction ( tr ( " Bookmark &This Page " ) , this , SLOT ( bookmarkPage ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+D " ) ) ;
m_menuBookmarks - > addAction ( tr ( " Bookmark &All Tabs " ) , this , SLOT ( bookmarkAllTabs ( ) ) ) ;
m_menuBookmarks - > addAction ( QIcon : : fromTheme ( " user-bookmarks " ) , tr ( " Organize &Bookmarks " ) , this , SLOT ( showBookmarksManager ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+Shift+O " ) ) ;
2011-03-02 16:57:41 +01:00
m_menuBookmarks - > addSeparator ( ) ;
QSqlQuery query ;
2011-07-30 17:57:14 +02:00
query . exec ( " SELECT title, url, icon FROM bookmarks WHERE folder='bookmarksMenu' " ) ;
2011-03-02 16:57:41 +01:00
while ( query . next ( ) ) {
QString title = query . value ( 0 ) . toString ( ) ;
2011-07-30 17:57:14 +02:00
QUrl url = query . value ( 1 ) . toUrl ( ) ;
QIcon icon = IconProvider : : iconFromBase64 ( query . value ( 2 ) . toByteArray ( ) ) ;
2011-03-02 16:57:41 +01:00
if ( title . length ( ) > 40 ) {
title . truncate ( 40 ) ;
title + = " .. " ;
}
2011-07-30 17:57:14 +02:00
m_menuBookmarks - > addAction ( icon , title , this , SLOT ( loadActionUrl ( ) ) ) - > setData ( url ) ;
2011-03-02 16:57:41 +01:00
}
QMenu * folderBookmarks = new QMenu ( tr ( " Bookmarks In ToolBar " ) , m_menuBookmarks ) ;
folderBookmarks - > setIcon ( QIcon ( style ( ) - > standardIcon ( QStyle : : SP_DirOpenIcon ) ) ) ;
2011-07-30 17:57:14 +02:00
query . exec ( " SELECT title, url, icon FROM bookmarks WHERE folder='bookmarksToolbar' " ) ;
2011-03-02 16:57:41 +01:00
while ( query . next ( ) ) {
QString title = query . value ( 0 ) . toString ( ) ;
2011-07-30 17:57:14 +02:00
QUrl url = query . value ( 1 ) . toUrl ( ) ;
QIcon icon = IconProvider : : iconFromBase64 ( query . value ( 2 ) . toByteArray ( ) ) ;
2011-03-02 16:57:41 +01:00
if ( title . length ( ) > 40 ) {
title . truncate ( 40 ) ;
title + = " .. " ;
}
2011-07-30 17:57:14 +02:00
folderBookmarks - > addAction ( icon , title , this , SLOT ( loadActionUrl ( ) ) ) - > setData ( url ) ;
2011-03-02 16:57:41 +01:00
}
if ( folderBookmarks - > isEmpty ( ) )
folderBookmarks - > addAction ( tr ( " Empty " ) ) ;
m_menuBookmarks - > addMenu ( folderBookmarks ) ;
query . exec ( " SELECT name FROM folders " ) ;
while ( query . next ( ) ) {
QMenu * tempFolder = new QMenu ( query . value ( 0 ) . toString ( ) , m_menuBookmarks ) ;
tempFolder - > setIcon ( QIcon ( style ( ) - > standardIcon ( QStyle : : SP_DirOpenIcon ) ) ) ;
QSqlQuery query2 ;
2011-07-30 17:57:14 +02:00
query2 . exec ( " SELECT title, url, icon FROM bookmarks WHERE folder=' " + query . value ( 0 ) . toString ( ) + " ' " ) ;
2011-03-02 16:57:41 +01:00
while ( query2 . next ( ) ) {
2011-07-30 17:57:14 +02:00
QString title = query . value ( 0 ) . toString ( ) ;
QUrl url = query . value ( 1 ) . toUrl ( ) ;
QIcon icon = IconProvider : : iconFromBase64 ( query . value ( 2 ) . toByteArray ( ) ) ;
2011-03-02 16:57:41 +01:00
if ( title . length ( ) > 40 ) {
title . truncate ( 40 ) ;
title + = " .. " ;
}
2011-07-30 17:57:14 +02:00
tempFolder - > addAction ( icon , title , this , SLOT ( loadActionUrl ( ) ) ) - > setData ( url ) ;
2011-03-02 16:57:41 +01:00
}
if ( tempFolder - > isEmpty ( ) )
tempFolder - > addAction ( tr ( " Empty " ) ) ;
m_menuBookmarks - > addMenu ( tempFolder ) ;
}
}
void QupZilla : : aboutToShowHistoryMenu ( )
{
if ( ! weView ( ) )
return ;
2011-07-28 12:12:00 +02:00
if ( ! m_historyMenuChanged )
return ;
m_historyMenuChanged = false ;
2011-03-02 16:57:41 +01:00
m_menuHistory - > clear ( ) ;
m_menuHistory - > addAction (
# ifdef Q_WS_X11
style ( ) - > standardIcon ( QStyle : : SP_ArrowBack )
# else
QIcon ( " :/icons/faenza/back.png " )
# endif
2011-04-09 00:22:50 +02:00
, tr ( " &Back " ) , this , SLOT ( goBack ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+Left " ) ) ;
2011-03-02 16:57:41 +01:00
m_menuHistory - > addAction (
# ifdef Q_WS_X11
style ( ) - > standardIcon ( QStyle : : SP_ArrowForward )
# else
QIcon ( " :/icons/faenza/forward.png " )
# endif
2011-04-09 00:22:50 +02:00
, tr ( " &Forward " ) , this , SLOT ( goNext ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+Right " ) ) ;
2011-03-02 16:57:41 +01:00
m_menuHistory - > addAction (
# ifdef Q_WS_X11
QIcon : : fromTheme ( " go-home " )
# else
QIcon ( " :/icons/faenza/home.png " )
# endif
2011-04-09 00:22:50 +02:00
, tr ( " &Home " ) , this , SLOT ( goHome ( ) ) ) - > setShortcut ( QKeySequence ( " Alt+Home " ) ) ;
2011-03-02 16:57:41 +01:00
if ( ! weView ( ) - > history ( ) - > canGoBack ( ) )
m_menuHistory - > actions ( ) . at ( 0 ) - > setEnabled ( false ) ;
if ( ! weView ( ) - > history ( ) - > canGoForward ( ) )
m_menuHistory - > actions ( ) . at ( 1 ) - > setEnabled ( false ) ;
2011-04-29 17:47:55 +02:00
m_menuHistory - > addAction ( QIcon ( " :/icons/menu/history.png " ) , tr ( " Show &All History " ) , this , SLOT ( showHistoryManager ( ) ) ) ;
2011-03-02 16:57:41 +01:00
m_menuHistory - > addSeparator ( ) ;
QSqlQuery query ;
query . exec ( " SELECT title, url FROM history ORDER BY date DESC LIMIT 10 " ) ;
while ( query . next ( ) ) {
QUrl url = query . value ( 1 ) . toUrl ( ) ;
QString title = query . value ( 0 ) . toString ( ) ;
if ( title . length ( ) > 40 ) {
title . truncate ( 40 ) ;
title + = " .. " ;
}
2011-04-25 20:56:45 +02:00
m_menuHistory - > addAction ( _iconForUrl ( url ) , title , this , SLOT ( loadActionUrl ( ) ) ) - > setData ( url ) ;
2011-03-02 16:57:41 +01:00
}
2011-05-07 12:59:53 +02:00
m_menuHistory - > addSeparator ( ) ;
2011-07-28 12:12:00 +02:00
m_menuHistory - > addMenu ( m_menuClosedTabs ) ;
}
void QupZilla : : aboutToShowClosedTabsMenu ( )
{
m_menuClosedTabs - > clear ( ) ;
2011-05-07 12:59:53 +02:00
int i = 0 ;
foreach ( ClosedTabsManager : : Tab tab , m_tabWidget - > closedTabsManager ( ) - > allClosedTabs ( ) ) {
2011-05-08 12:54:49 +02:00
QString title = tab . title ;
if ( title . length ( ) > 40 ) {
title . truncate ( 40 ) ;
title + = " .. " ;
}
2011-07-28 12:12:00 +02:00
m_menuClosedTabs - > addAction ( _iconForUrl ( tab . url ) , title , m_tabWidget , SLOT ( restoreClosedTab ( ) ) ) - > setData ( i ) ;
2011-05-07 12:59:53 +02:00
i + + ;
}
2011-07-28 12:12:00 +02:00
m_menuClosedTabs - > addSeparator ( ) ;
2011-05-07 12:59:53 +02:00
if ( i = = 0 )
2011-07-28 12:12:00 +02:00
m_menuClosedTabs - > addAction ( tr ( " Empty " ) ) - > setEnabled ( false ) ;
2011-07-28 21:59:56 +02:00
else {
2011-07-28 12:12:00 +02:00
m_menuClosedTabs - > addAction ( tr ( " Restore All Closed Tabs " ) , m_tabWidget , SLOT ( restoreAllClosedTabs ( ) ) ) ;
2011-07-28 21:59:56 +02:00
m_menuClosedTabs - > addAction ( tr ( " Clear list " ) , m_tabWidget , SLOT ( clearClosedTabsList ( ) ) ) ;
}
2011-03-02 16:57:41 +01:00
}
void QupZilla : : aboutToShowHelpMenu ( )
{
m_menuHelp - > clear ( ) ;
2011-03-04 13:59:07 +01:00
mApp - > plugins ( ) - > populateHelpMenu ( m_menuHelp ) ;
2011-09-18 15:35:44 +02:00
m_menuHelp - > addSeparator ( ) ;
2011-04-09 00:22:50 +02:00
m_menuHelp - > addAction ( QIcon ( " :/icons/menu/qt.png " ) , tr ( " About &Qt " ) , qApp , SLOT ( aboutQt ( ) ) ) ;
m_menuHelp - > addAction ( QIcon ( " :/icons/qupzilla.png " ) , tr ( " &About QupZilla " ) , this , SLOT ( aboutQupZilla ( ) ) ) ;
2011-09-18 15:35:44 +02:00
m_menuHelp - > addSeparator ( ) ;
2011-09-19 20:49:39 +02:00
m_menuHelp - > addAction ( QIcon ( " :/icons/menu/informations.png " ) , tr ( " Informations about application " ) , this , SLOT ( loadActionUrlInNewTab ( ) ) ) - > setData ( QUrl ( " qupzilla:about " ) ) ;
m_menuHelp - > addAction ( tr ( " Report &Issue " ) , this , SLOT ( loadActionUrlInNewTab ( ) ) ) - > setData ( QUrl ( " qupzilla:reportbug " ) ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : aboutToShowToolsMenu ( )
{
m_menuTools - > clear ( ) ;
2011-04-09 00:22:50 +02:00
m_menuTools - > addAction ( tr ( " &Web Search " ) , this , SLOT ( webSearch ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+K " ) ) ;
m_menuTools - > addAction ( QIcon : : fromTheme ( " dialog-information " ) , tr ( " Page &Info " ) , this , SLOT ( showPageInfo ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+I " ) ) ;
2011-03-02 16:57:41 +01:00
m_menuTools - > addSeparator ( ) ;
2011-04-09 00:22:50 +02:00
m_menuTools - > addAction ( tr ( " &Download Manager " ) , this , SLOT ( showDownloadManager ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+Y " ) ) ;
m_menuTools - > addAction ( tr ( " &Cookies Manager " ) , this , SLOT ( showCookieManager ( ) ) ) ;
m_menuTools - > addAction ( tr ( " &AdBlock " ) , AdBlockManager : : instance ( ) , SLOT ( showDialog ( ) ) ) ;
m_menuTools - > addAction ( QIcon ( " :/icons/menu/rss.png " ) , tr ( " RSS &Reader " ) , this , SLOT ( showRSSManager ( ) ) ) ;
m_menuTools - > addAction ( QIcon : : fromTheme ( " edit-clear " ) , tr ( " Clear Recent &History " ) , this , SLOT ( showClearPrivateData ( ) ) ) ;
m_actionPrivateBrowsing = new QAction ( tr ( " &Private Browsing " ) , this ) ;
2011-03-02 16:57:41 +01:00
m_actionPrivateBrowsing - > setCheckable ( true ) ;
2011-03-04 13:59:07 +01:00
m_actionPrivateBrowsing - > setChecked ( mApp - > webSettings ( ) - > testAttribute ( QWebSettings : : PrivateBrowsingEnabled ) ) ;
2011-03-02 16:57:41 +01:00
connect ( m_actionPrivateBrowsing , SIGNAL ( triggered ( bool ) ) , this , SLOT ( startPrivate ( bool ) ) ) ;
m_menuTools - > addAction ( m_actionPrivateBrowsing ) ;
m_menuTools - > addSeparator ( ) ;
2011-03-04 13:59:07 +01:00
mApp - > plugins ( ) - > populateToolsMenu ( m_menuTools ) ;
2011-04-09 00:22:50 +02:00
m_menuTools - > addAction ( QIcon ( " :/icons/faenza/settings.png " ) , tr ( " Pr&eferences " ) , this , SLOT ( showPreferences ( ) ) ) - > setShortcut ( QKeySequence ( " Ctrl+P " ) ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : aboutToShowViewMenu ( )
{
if ( ! weView ( ) )
return ;
if ( weView ( ) - > isLoading ( ) )
m_actionStop - > setEnabled ( true ) ;
else
m_actionStop - > setEnabled ( false ) ;
2011-07-19 22:49:42 +02:00
2011-09-11 19:15:06 +02:00
m_actionShowToolbar - > setChecked ( m_navigationBar - > isVisible ( ) ) ;
2011-07-19 22:49:42 +02:00
m_actionShowMenubar - > setChecked ( menuBar ( ) - > isVisible ( ) ) ;
m_actionShowStatusbar - > setChecked ( statusBar ( ) - > isVisible ( ) ) ;
m_actionShowBookmarksToolbar - > setChecked ( m_bookmarksToolbar - > isVisible ( ) ) ;
if ( ! m_sideBar ) {
m_actionShowBookmarksSideBar - > setChecked ( false ) ;
m_actionShowHistorySideBar - > setChecked ( false ) ;
// m_actionShowRssSideBar->setChecked(false);
} else {
SideBar : : SideWidget actWidget = m_sideBar - > activeWidget ( ) ;
m_actionShowBookmarksSideBar - > setChecked ( actWidget = = SideBar : : Bookmarks ) ;
m_actionShowHistorySideBar - > setChecked ( actWidget = = SideBar : : History ) ;
// m_actionShowRssSideBar->setChecked(actWidget == SideBar::RSS);
}
2011-03-02 16:57:41 +01:00
}
2011-03-17 20:46:53 +01:00
void QupZilla : : aboutToShowEncodingMenu ( )
{
m_menuEncoding - > clear ( ) ;
QMenu * menuISO = new QMenu ( " ISO " , this ) ;
QMenu * menuUTF = new QMenu ( " UTF " , this ) ;
QMenu * menuWindows = new QMenu ( " Windows " , this ) ;
QMenu * menuIscii = new QMenu ( " Iscii " , this ) ;
QMenu * menuOther = new QMenu ( tr ( " Other " ) , this ) ;
QList < QByteArray > available = QTextCodec : : availableCodecs ( ) ;
qSort ( available ) ;
QString activeCodec = mApp - > webSettings ( ) - > defaultTextEncoding ( ) ;
foreach ( QByteArray name , available ) {
if ( QTextCodec : : codecForName ( name ) - > aliases ( ) . contains ( name ) )
continue ;
QAction * action = new QAction ( name = = " System " ? tr ( " Default " ) : name , this ) ;
action - > setData ( name ) ;
action - > setCheckable ( true ) ;
connect ( action , SIGNAL ( triggered ( ) ) , this , SLOT ( changeEncoding ( ) ) ) ;
2011-03-19 14:05:37 +01:00
if ( activeCodec . compare ( name , Qt : : CaseInsensitive ) = = 0 )
2011-03-17 20:46:53 +01:00
action - > setChecked ( true ) ;
if ( name . startsWith ( " ISO " ) )
menuISO - > addAction ( action ) ;
else if ( name . startsWith ( " UTF " ) )
menuUTF - > addAction ( action ) ;
else if ( name . startsWith ( " windows " ) )
menuWindows - > addAction ( action ) ;
else if ( name . startsWith ( " Iscii " ) )
menuIscii - > addAction ( action ) ;
else if ( name = = " System " )
m_menuEncoding - > addAction ( action ) ;
else
menuOther - > addAction ( action ) ;
}
m_menuEncoding - > addSeparator ( ) ;
if ( ! menuISO - > isEmpty ( ) )
m_menuEncoding - > addMenu ( menuISO ) ;
if ( ! menuUTF - > isEmpty ( ) )
m_menuEncoding - > addMenu ( menuUTF ) ;
if ( ! menuWindows - > isEmpty ( ) )
m_menuEncoding - > addMenu ( menuWindows ) ;
if ( ! menuIscii - > isEmpty ( ) )
m_menuEncoding - > addMenu ( menuIscii ) ;
if ( ! menuOther - > isEmpty ( ) )
m_menuEncoding - > addMenu ( menuOther ) ;
}
void QupZilla : : changeEncoding ( )
{
if ( QAction * action = qobject_cast < QAction * > ( sender ( ) ) ) {
mApp - > webSettings ( ) - > setDefaultTextEncoding ( action - > data ( ) . toString ( ) ) ;
reload ( ) ;
}
}
2011-03-02 16:57:41 +01:00
void QupZilla : : bookmarkPage ( )
{
2011-07-29 15:39:43 +02:00
mApp - > browsingLibrary ( ) - > bookmarksManager ( ) - > addBookmark ( weView ( ) ) ;
2011-03-02 16:57:41 +01:00
}
2011-07-30 17:57:14 +02:00
void QupZilla : : addBookmark ( const QUrl & url , const QString & title , const QIcon & icon )
2011-03-02 16:57:41 +01:00
{
2011-07-30 17:57:14 +02:00
mApp - > browsingLibrary ( ) - > bookmarksManager ( ) - > insertBookmark ( url , title , icon ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : bookmarkAllTabs ( )
{
2011-07-29 15:39:43 +02:00
mApp - > browsingLibrary ( ) - > bookmarksManager ( ) - > insertAllTabs ( ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : loadActionUrl ( )
{
2011-03-17 17:03:04 +01:00
if ( QAction * action = qobject_cast < QAction * > ( sender ( ) ) ) {
2011-03-02 16:57:41 +01:00
loadAddress ( action - > data ( ) . toUrl ( ) ) ;
}
}
2011-09-19 20:49:39 +02:00
void QupZilla : : loadActionUrlInNewTab ( )
{
if ( QAction * action = qobject_cast < QAction * > ( sender ( ) ) ) {
m_tabWidget - > addView ( action - > data ( ) . toUrl ( ) ) ;
}
}
2011-07-31 00:50:40 +02:00
void QupZilla : : loadAddress ( const QUrl & url )
{
weView ( ) - > load ( url ) ;
locationBar ( ) - > setText ( url . toEncoded ( ) ) ;
}
2011-03-02 16:57:41 +01:00
void QupZilla : : urlEnter ( )
{
2011-07-11 20:30:49 +02:00
if ( locationBar ( ) - > text ( ) . isEmpty ( ) )
2011-03-02 16:57:41 +01:00
return ;
2011-07-11 20:30:49 +02:00
loadAddress ( QUrl ( WebView : : guessUrlFromString ( locationBar ( ) - > text ( ) ) ) ) ;
2011-03-02 16:57:41 +01:00
weView ( ) - > setFocus ( ) ;
}
void QupZilla : : showCookieManager ( )
{
2011-03-04 13:59:07 +01:00
CookieManager * m = mApp - > cookieManager ( ) ;
2011-03-02 16:57:41 +01:00
m - > refreshTable ( ) ;
m - > show ( ) ;
}
void QupZilla : : showHistoryManager ( )
{
2011-07-29 15:39:43 +02:00
mApp - > browsingLibrary ( ) - > showHistory ( this ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : showRSSManager ( )
{
2011-07-29 15:39:43 +02:00
mApp - > browsingLibrary ( ) - > showRSS ( this ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : showBookmarksManager ( )
{
2011-07-29 15:39:43 +02:00
mApp - > browsingLibrary ( ) - > showBookmarks ( this ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : showClearPrivateData ( )
{
ClearPrivateData clear ( this , this ) ;
clear . exec ( ) ;
}
void QupZilla : : showDownloadManager ( )
{
2011-03-04 13:59:07 +01:00
mApp - > downManager ( ) - > show ( ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : showPreferences ( )
{
2011-04-27 09:49:41 +02:00
Preferences * prefs = new Preferences ( this , this ) ;
prefs - > show ( ) ;
2011-03-02 16:57:41 +01:00
}
2011-07-19 22:04:08 +02:00
void QupZilla : : showSource ( const QString & selectedHtml )
2011-03-02 16:57:41 +01:00
{
2011-07-19 22:04:08 +02:00
SourceViewer * source = new SourceViewer ( weView ( ) - > page ( ) , selectedHtml ) ;
2011-03-02 16:57:41 +01:00
source - > show ( ) ;
}
void QupZilla : : showPageInfo ( )
{
SiteInfo * info = new SiteInfo ( this , this ) ;
info - > setAttribute ( Qt : : WA_DeleteOnClose ) ;
info - > show ( ) ;
}
void QupZilla : : showBookmarksToolbar ( )
{
2011-04-04 20:04:29 +02:00
bool status = m_bookmarksToolbar - > isVisible ( ) ;
m_bookmarksToolbar - > setVisible ( ! status ) ;
QSettings settings ( activeProfil ( ) + " settings.ini " , QSettings : : IniFormat ) ;
settings . setValue ( " Browser-View-Settings/showBookmarksToolbar " , ! status ) ;
2011-03-02 16:57:41 +01:00
}
2011-04-15 20:45:22 +02:00
void QupZilla : : showBookmarksSideBar ( )
{
2011-09-11 19:15:06 +02:00
addSideBar ( ) ;
if ( m_sideBar - > activeWidget ( ) ! = SideBar : : Bookmarks )
2011-04-20 21:39:35 +02:00
m_sideBar - > showBookmarks ( ) ;
2011-09-11 19:15:06 +02:00
else
2011-04-28 18:31:48 +02:00
m_sideBar - > close ( ) ;
2011-04-20 21:39:35 +02:00
}
void QupZilla : : showHistorySideBar ( )
{
2011-09-11 19:15:06 +02:00
addSideBar ( ) ;
if ( m_sideBar - > activeWidget ( ) ! = SideBar : : History )
2011-04-20 21:39:35 +02:00
m_sideBar - > showHistory ( ) ;
2011-09-11 19:15:06 +02:00
else
2011-04-28 18:31:48 +02:00
m_sideBar - > close ( ) ;
2011-09-11 19:15:06 +02:00
}
void QupZilla : : addSideBar ( )
{
if ( m_sideBar )
return ;
m_sideBar = new SideBar ( this ) ;
m_mainSplitter - > insertWidget ( 0 , m_sideBar ) ;
m_mainSplitter - > setCollapsible ( 0 , false ) ;
2011-04-15 20:45:22 +02:00
}
2011-03-02 16:57:41 +01:00
void QupZilla : : showNavigationToolbar ( )
{
if ( ! menuBar ( ) - > isVisible ( ) & & ! m_actionShowToolbar - > isChecked ( ) )
showMenubar ( ) ;
2011-09-11 19:15:06 +02:00
bool status = m_navigationBar - > isVisible ( ) ;
m_navigationBar - > setVisible ( ! status ) ;
2011-04-04 20:04:29 +02:00
QSettings settings ( activeProfil ( ) + " settings.ini " , QSettings : : IniFormat ) ;
settings . setValue ( " Browser-View-Settings/showNavigationToolbar " , ! status ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : showMenubar ( )
{
2011-09-11 19:15:06 +02:00
if ( ! m_navigationBar - > isVisible ( ) & & ! m_actionShowMenubar - > isChecked ( ) )
2011-03-02 16:57:41 +01:00
showNavigationToolbar ( ) ;
menuBar ( ) - > setVisible ( ! menuBar ( ) - > isVisible ( ) ) ;
2011-09-11 19:15:06 +02:00
m_navigationBar - > buttonSuperMenu ( ) - > setVisible ( ! menuBar ( ) - > isVisible ( ) ) ;
2011-04-04 20:04:29 +02:00
QSettings settings ( activeProfil ( ) + " settings.ini " , QSettings : : IniFormat ) ;
settings . setValue ( " Browser-View-Settings/showMenubar " , menuBar ( ) - > isVisible ( ) ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : showStatusbar ( )
{
2011-04-04 20:04:29 +02:00
bool status = statusBar ( ) - > isVisible ( ) ;
statusBar ( ) - > setVisible ( ! status ) ;
QSettings settings ( activeProfil ( ) + " settings.ini " , QSettings : : IniFormat ) ;
settings . setValue ( " Browser-View-Settings/showStatusbar " , ! status ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : showInspector ( )
{
if ( ! m_webInspectorDock ) {
m_webInspectorDock = new QDockWidget ( this ) ;
if ( m_webInspector )
delete m_webInspector ;
m_webInspector = new QWebInspector ( this ) ;
m_webInspector - > setPage ( weView ( ) - > page ( ) ) ;
addDockWidget ( Qt : : BottomDockWidgetArea , m_webInspectorDock ) ;
m_webInspectorDock - > setWindowTitle ( tr ( " Web Inspector " ) ) ;
2011-04-15 20:45:22 +02:00
m_webInspectorDock - > setTitleBarWidget ( new DockTitleBarWidget ( tr ( " Web Inspector " ) , m_webInspectorDock ) ) ;
2011-03-02 16:57:41 +01:00
m_webInspectorDock - > setObjectName ( " WebInspector " ) ;
m_webInspectorDock - > setWidget ( m_webInspector ) ;
2011-04-20 21:39:35 +02:00
m_webInspectorDock - > setFeatures ( 0 ) ;
2011-03-02 16:57:41 +01:00
m_webInspectorDock - > setContextMenuPolicy ( Qt : : CustomContextMenu ) ;
} else if ( m_webInspectorDock - > isVisible ( ) ) { //Next tab
m_webInspectorDock - > show ( ) ;
m_webInspector - > setPage ( weView ( ) - > page ( ) ) ;
m_webInspectorDock - > setWidget ( m_webInspector ) ;
} else { //Showing hidden dock
m_webInspectorDock - > show ( ) ;
if ( m_webInspector - > page ( ) ! = weView ( ) - > page ( ) ) {
m_webInspector - > setPage ( weView ( ) - > page ( ) ) ;
m_webInspectorDock - > setWidget ( m_webInspector ) ;
}
}
}
2011-09-11 19:15:06 +02:00
void QupZilla : : refreshHistory ( )
{
m_navigationBar - > refreshHistory ( ) ;
}
2011-03-02 16:57:41 +01:00
void QupZilla : : aboutQupZilla ( )
{
AboutDialog about ( this ) ;
about . exec ( ) ;
}
2011-09-11 19:15:06 +02:00
void QupZilla : : webSearch ( )
{
m_navigationBar - > searchLine ( ) - > setFocus ( ) ;
}
2011-03-02 16:57:41 +01:00
void QupZilla : : searchOnPage ( )
{
2011-08-02 16:19:20 +02:00
2011-09-11 19:15:06 +02:00
if ( m_mainLayout - > count ( ) = = 4 ) {
SearchToolBar * search = qobject_cast < SearchToolBar * > ( m_mainLayout - > itemAt ( 3 ) - > widget ( ) ) ;
if ( ! search )
return ;
2011-08-02 16:19:20 +02:00
search - > searchLine ( ) - > setFocus ( ) ;
2011-03-02 16:57:41 +01:00
return ;
}
2011-08-02 16:19:20 +02:00
SearchToolBar * search = new SearchToolBar ( this ) ;
2011-09-11 19:15:06 +02:00
m_mainLayout - > insertWidget ( 3 , search ) ;
2011-08-02 16:19:20 +02:00
search - > searchLine ( ) - > setFocus ( ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : openFile ( )
{
QString filePath = QFileDialog : : getOpenFileName ( this , tr ( " Open file... " ) , QDir : : homePath ( ) , " (*.html *.htm *.jpg *.png) " ) ;
if ( ! filePath . isEmpty ( ) )
loadAddress ( QUrl ( filePath ) ) ;
}
2011-04-22 07:45:15 +02:00
void QupZilla : : showNavigationWithFullscreen ( )
{
bool state ;
if ( m_navigationVisible )
2011-09-11 19:15:06 +02:00
state = ! m_navigationBar - > isVisible ( ) ;
2011-04-22 07:45:15 +02:00
else
state = ! m_tabWidget - > getTabBar ( ) - > isVisible ( ) ;
if ( m_navigationVisible )
2011-09-11 19:15:06 +02:00
m_navigationBar - > setVisible ( state ) ;
2011-04-22 07:45:15 +02:00
m_tabWidget - > getTabBar ( ) - > setVisible ( state ) ;
if ( m_bookmarksToolBarVisible )
m_bookmarksToolbar - > setVisible ( state ) ;
2011-09-19 21:47:15 +02:00
m_tabWidget - > buttonListTabs ( ) - > setVisible ( state ) ;
2011-04-22 07:45:15 +02:00
}
2011-03-02 16:57:41 +01:00
void QupZilla : : fullScreen ( bool make )
{
if ( make ) {
m_menuBarVisible = menuBar ( ) - > isVisible ( ) ;
m_statusBarVisible = statusBar ( ) - > isVisible ( ) ;
2011-09-11 19:15:06 +02:00
m_navigationVisible = m_navigationBar - > isVisible ( ) ;
2011-04-22 07:45:15 +02:00
m_bookmarksToolBarVisible = m_bookmarksToolbar - > isVisible ( ) ;
2011-03-02 16:57:41 +01:00
setWindowState ( windowState ( ) | Qt : : WindowFullScreen ) ;
menuBar ( ) - > hide ( ) ;
statusBar ( ) - > hide ( ) ;
2011-04-22 07:45:15 +02:00
bookmarksToolbar ( ) - > hide ( ) ;
2011-09-11 19:15:06 +02:00
m_navigationBar - > hide ( ) ;
2011-04-22 07:45:15 +02:00
} else {
2011-03-02 16:57:41 +01:00
setWindowState ( windowState ( ) & ~ Qt : : WindowFullScreen ) ;
2011-04-22 07:45:15 +02:00
menuBar ( ) - > setVisible ( m_menuBarVisible ) ;
statusBar ( ) - > setVisible ( m_statusBarVisible ) ;
m_bookmarksToolbar - > setVisible ( m_bookmarksToolBarVisible ) ;
2011-09-11 19:15:06 +02:00
m_navigationBar - > setVisible ( m_navigationVisible ) ;
2011-03-02 16:57:41 +01:00
}
m_actionShowFullScreen - > setChecked ( make ) ;
2011-09-11 19:15:06 +02:00
m_navigationBar - > buttonExitFullscreen ( ) - > setVisible ( make ) ;
2011-04-22 07:45:15 +02:00
m_tabWidget - > getTabBar ( ) - > setVisible ( ! make ) ;
emit setWebViewMouseTracking ( make ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : savePage ( )
{
QNetworkRequest request ( weView ( ) - > url ( ) ) ;
2011-03-04 13:59:07 +01:00
DownloadManager * dManager = mApp - > downManager ( ) ;
2011-03-24 22:31:38 +01:00
dManager - > download ( request , false ) ;
2011-03-02 16:57:41 +01:00
}
void QupZilla : : printPage ( )
{
QPrintPreviewDialog * dialog = new QPrintPreviewDialog ( this ) ;
connect ( dialog , SIGNAL ( paintRequested ( QPrinter * ) ) , weView ( ) , SLOT ( print ( QPrinter * ) ) ) ;
dialog - > exec ( ) ;
delete dialog ;
}
void QupZilla : : startPrivate ( bool state )
{
if ( state ) {
QString title = tr ( " Are you sure you want to turn on private browsing? " ) ;
QString text1 = tr ( " When private browsing is turned on, some actions concerning your privacy will be disabled: " ) ;
QStringList actions ;
actions . append ( tr ( " Webpages are not added to the history. " ) ) ;
2011-09-17 11:13:38 +02:00
actions . append ( tr ( " Current cookies cannot be accessed. " ) ) ;
actions . append ( tr ( " Your session is not stored. " ) ) ;
2011-03-02 16:57:41 +01:00
QString text2 = tr ( " Until you close the window, you can still click the Back and Forward "
" buttons to return to the webpages you have opened. " ) ;
QString message = QString ( QLatin1String ( " <b>%1</b><p>%2</p><ul><li>%3</li></ul><p>%4</p> " ) ) . arg ( title , text1 , actions . join ( QLatin1String ( " </li><li> " ) ) , text2 ) ;
QMessageBox : : StandardButton button = QMessageBox : : question ( this , tr ( " Start Private Browsing " ) ,
message , QMessageBox : : Yes | QMessageBox : : No , QMessageBox : : Yes ) ;
if ( button ! = QMessageBox : : Yes )
return ;
}
2011-03-04 13:59:07 +01:00
mApp - > webSettings ( ) - > setAttribute ( QWebSettings : : PrivateBrowsingEnabled , state ) ;
mApp - > history ( ) - > setSaving ( ! state ) ;
2011-05-20 17:52:32 +02:00
mApp - > cookieJar ( ) - > turnPrivateJar ( state ) ;
2011-03-02 16:57:41 +01:00
emit message ( MainApplication : : CheckPrivateBrowsing , state ) ;
}
void QupZilla : : closeEvent ( QCloseEvent * event )
{
2011-03-04 13:59:07 +01:00
if ( mApp - > isClosing ( ) )
2011-03-02 16:57:41 +01:00
return ;
2011-03-29 19:55:21 +02:00
mApp - > saveStateSlot ( ) ;
mApp - > aboutToCloseWindow ( this ) ;
if ( mApp - > windowCount ( ) = = 0 ) {
2011-03-05 13:16:13 +01:00
quitApp ( ) ? event - > accept ( ) : event - > ignore ( ) ;
2011-03-05 10:57:36 +01:00
return ;
2011-03-02 16:57:41 +01:00
}
event - > accept ( ) ;
}
2011-03-05 13:16:13 +01:00
bool QupZilla : : quitApp ( )
2011-03-02 16:57:41 +01:00
{
QSettings settings ( m_activeProfil + " settings.ini " , QSettings : : IniFormat ) ;
settings . beginGroup ( " Web-URL-Settings " ) ;
2011-03-26 15:59:11 +01:00
int afterLaunch = settings . value ( " afterLaunch " , 0 ) . toInt ( ) ;
settings . endGroup ( ) ;
2011-07-19 21:38:11 +02:00
bool askOnClose = settings . value ( " Browser-Tabs-Settings/AskOnClosing " , false ) . toBool ( ) ;
2011-03-26 15:59:11 +01:00
if ( askOnClose & & afterLaunch ! = 2 & & m_tabWidget - > count ( ) > 1 ) {
QDialog * dialog = new QDialog ( this ) ;
Ui_CloseDialog * ui = new Ui_CloseDialog ( ) ;
ui - > setupUi ( dialog ) ;
ui - > textLabel - > setText ( tr ( " There are still %1 open tabs and your session won't be stored. Are you sure to quit? " ) . arg ( m_tabWidget - > count ( ) ) ) ;
ui - > iconLabel - > setPixmap ( style ( ) - > standardPixmap ( QStyle : : SP_MessageBoxWarning ) ) ;
if ( dialog - > exec ( ) ! = QDialog : : Accepted )
2011-03-05 13:16:13 +01:00
return false ;
2011-03-26 15:59:11 +01:00
if ( ui - > dontAskAgain - > isChecked ( ) )
2011-07-19 21:38:11 +02:00
settings . setValue ( " Browser-Tabs-Settings/AskOnClosing " , false ) ;
2011-03-02 16:57:41 +01:00
}
2011-03-10 16:24:21 +01:00
mApp - > quitApplication ( ) ;
2011-03-05 13:16:13 +01:00
return true ;
2011-03-02 16:57:41 +01:00
}
QupZilla : : ~ QupZilla ( )
{
delete m_tabWidget ;
2011-09-11 19:15:06 +02:00
delete m_navigationBar ;
2011-03-02 16:57:41 +01:00
delete m_privateBrowsing ;
2011-03-27 21:59:40 +02:00
delete m_adblockIcon ;
2011-03-02 16:57:41 +01:00
delete m_bookmarksToolbar ;
delete m_progressBar ;
if ( m_webInspectorDock ) {
delete m_webInspector ;
delete m_webInspectorDock ;
}
}