Hello community, here is the log from the commit of package rekonq for openSUSE:Factory checked in at Fri Sep 23 10:33:38 CEST 2011.
-------- --- rekonq/rekonq.changes 2011-09-15 19:20:50.000000000 +0200 +++ /mounts/work_src_done/STABLE/rekonq/rekonq.changes 2011-09-20 21:58:23.000000000 +0200 @@ -1,0 +2,11 @@ +Tue Sep 20 19:56:55 UTC 2011 - [email protected] + +- Update to 0.7.90: + * Bugfix release +- Spec file updates: + * Recommend instead of Suggest the rekonq-doc and rekonq-lang packages. + * Changed rekonq-doc package Group: to Documentation/HTML. + * Removed %suse_update_desktop_file macro from install section since it is + executed through the %kde_post_install macro. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- rekonq-0.7.80.tar.bz2 New: ---- rekonq-0.7.90.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rekonq.spec ++++++ --- /var/tmp/diff_new_pack.Cju5LW/_old 2011-09-23 10:33:34.000000000 +0200 +++ /var/tmp/diff_new_pack.Cju5LW/_new 2011-09-23 10:33:34.000000000 +0200 @@ -17,14 +17,14 @@ # Name: rekonq -Version: 0.7.80 +Version: 0.7.90 Release: 1 Summary: WebKit Based Web Browser for KDE4 License: GPLv3 Url: http://rekonq.kde.org/ Group: Productivity/Networking/Web/Browsers -Source0: http://sourceforge.net/projects/rekonq/files/%{version}/%{version}/%{name}-%{version}.tar.bz2 +Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2 Source1: %{name}-lang.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -35,8 +35,8 @@ BuildRequires: update-desktop-files %endif Requires: konqueror -Suggests: %{name}-doc = %{version} -Suggests: %{name}-lang = %{version} +Recommends: %{name}-doc = %{version} +Recommends: %{name}-lang = %{version} %kde4_runtime_requires %description @@ -47,7 +47,7 @@ %package doc Summary: Documentation for rekonq -Group: Productivity/Networking/Web/Browsers +Group: Documentation/HTML Requires: %{name} = %{version} %description doc @@ -63,7 +63,6 @@ %setup -q -a 1 echo "ADD_SUBDIRECTORY( i18n ) " >> CMakeLists.txt - %build %cmake_kde4 -d build %make_jobs @@ -73,10 +72,6 @@ %kde4_makeinstall cd .. -%if 0%{?suse_version} -%suse_update_desktop_file %{name} Qt KDE Network WebBrowser -%endif - # Remove unneeded locales %if 0%{?suse_version} == 1130 rm -rf %{buildroot}%{_datadir}/locale/sr@ijekavian/ @@ -94,20 +89,20 @@ %files %defattr(-,root,root,-) -%doc AUTHORS ChangeLog COPYING TODO -%{_kde4_bindir}/rekonq -%{_kde4_libdir}/libkdeinit4_rekonq.so +%doc AUTHORS COPYING COPYING.DOC ChangeLog TODO %{_kde4_applicationsdir}/rekonq.desktop -%{_kde4_iconsdir}/hicolor/*/apps/rekonq.png %{_kde4_appsdir}/rekonq/ +%{_kde4_bindir}/rekonq +%{_kde4_iconsdir}/hicolor/*/apps/rekonq.png +%{_kde4_libdir}/libkdeinit4_rekonq.so %{_kde4_sharedir}/config.kcfg/rekonq.kcfg -%files lang -f %{name}.lang +%files doc %defattr(-,root,root,-) -%exclude %{_kde4_htmldir}/en/rekonq +%doc %{_kde4_htmldir}/en/rekonq/ -%files doc +%files lang -f %{name}.lang %defattr(-,root,root,-) -%doc %{_kde4_htmldir}/en/rekonq +%exclude %{_kde4_htmldir}/en/rekonq/ %changelog ++++++ rekonq-0.7.80.tar.bz2 -> rekonq-0.7.90.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/CMakeLists.txt new/rekonq-0.7.90/CMakeLists.txt --- old/rekonq-0.7.80/CMakeLists.txt 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/CMakeLists.txt 2011-09-18 23:53:07.000000000 +0200 @@ -7,7 +7,7 @@ # Informations to update before to release this package. # rekonq info -SET(REKONQ_VERSION "0.7.80" ) +SET(REKONQ_VERSION "0.7.90" ) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/adblock/adblockmanager.cpp new/rekonq-0.7.90/src/adblock/adblockmanager.cpp --- old/rekonq-0.7.80/src/adblock/adblockmanager.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/adblock/adblockmanager.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -207,6 +207,10 @@ return reply; } + // get sure page is extant to perform elements check. bug:282012 + if (!page) + return 0; + foreach(const AdBlockRule & filter, _blackList) { if (filter.match(request, urlString, urlStringLowerCase)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/adblock/adblockmanager.h new/rekonq-0.7.90/src/adblock/adblockmanager.h --- old/rekonq-0.7.80/src/adblock/adblockmanager.h 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/adblock/adblockmanager.h 2011-09-18 23:53:07.000000000 +0200 @@ -61,6 +61,10 @@ // // ### Filter Options // +// There are 3 kind of filter options: +// +// --- ### TYPE OPTIONS +// // You can also specify a number of options to modify the behavior of a filter. // You list these options separated with commas after a dollar sign ($) at the end of the filter // @@ -81,14 +85,27 @@ // $document the page itself (only exception rules can be applied to the page) // $other types of requests not covered in the list above // +// +// --- ### INVERSE TYPE OPTIONS +// // Inverse type options are allowed through the ~ sign, for example: // // RULE=*/ads/*~$script,match-case // +// +// --- ### THIRD-PARTY OPTIONS +// +// If "third-party" option is specified, filter is applied just to requests coming from a different +// origin than the currently viewed page. +// In the same way, the "~third-party" option restricts the filter to the requests coming from the +// same origin as the currently viewed page. +// +// // ### Regular expressions // // They usually allow to check for (a lot of) sites, using just one rule, but be careful: -// BASIC FILTERS ARE PROCESSED FASTER THAN REGULAR EXPRESSIONS (In ADP! In rekonq, I don't know...) +// BASIC FILTERS ARE PROCESSED FASTER THAN REGULAR EXPRESSIONS +// (That's true at least in ABP! In rekonq, I don't know...) // // // ### ELEMENT HIDING (##) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/adblock/adblockrulefallbackimpl.cpp new/rekonq-0.7.90/src/adblock/adblockrulefallbackimpl.cpp --- old/rekonq-0.7.80/src/adblock/adblockrulefallbackimpl.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/adblock/adblockrulefallbackimpl.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -23,6 +23,7 @@ * * ============================================================ */ + // Self Includes #include "adblockrulefallbackimpl.h" @@ -92,16 +93,12 @@ bool AdBlockRuleFallbackImpl::match(const QNetworkRequest &request, const QString &encodedUrl, const QString &) const { - if (!request.hasRawHeader("referer")) - return false; - if (m_thirdPartyOption) { const QString referer = request.rawHeader("referer"); const QString host = request.url().host(); - bool isThirdParty = !referer.contains(host); - if (!isThirdParty) + if (referer.contains(host)) // is NOT third party return false; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/adblock/adblockrulenullimpl.cpp new/rekonq-0.7.90/src/adblock/adblockrulenullimpl.cpp --- old/rekonq-0.7.80/src/adblock/adblockrulenullimpl.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/adblock/adblockrulenullimpl.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -58,6 +58,10 @@ Q_FOREACH(const QString & option, options) { + // third_party: managed inside adblockrulefallbackimpl + if (option == QL1S("third-party")) + return false; + // script if (option == QL1S("script")) return true; @@ -110,10 +114,6 @@ if (option == QL1S("other")) return true; - // third_party: managed inside adblockrulefallbackimpl - if (option == QL1S("third-party")) - return false; - // collapse if (option == QL1S("collapse")) return true; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/adblock/adblockruletextmatchimpl.cpp new/rekonq-0.7.90/src/adblock/adblockruletextmatchimpl.cpp --- old/rekonq-0.7.80/src/adblock/adblockruletextmatchimpl.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/adblock/adblockruletextmatchimpl.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -46,10 +46,7 @@ bool AdBlockRuleTextMatchImpl::match(const QNetworkRequest &request, const QString &encodedUrl, const QString &encodedUrlLowerCase) const { - // this basically lets the "first request" to pass... - if (!request.hasRawHeader("referer")) - return false; - + Q_UNUSED(request); Q_UNUSED(encodedUrl); // Case sensitive compare is faster, but would be incorrect with encodedUrl since // we do want case insensitive. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/application.cpp new/rekonq-0.7.90/src/application.cpp --- old/rekonq-0.7.80/src/application.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/application.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -61,6 +61,7 @@ #include <KWindowInfo> #include <KGlobal> #include <KCharsets> +#include <KMessageBox> // Qt Includes #include <QVBoxLayout> @@ -544,16 +545,19 @@ // compute font size // (I have to admit I know nothing about these DPI questions..: copied from kwebkitpart, as someone suggested) // font size in pixels = font size in inches × screen dpi - int defaultFontSize = ReKonfig::defaultFontSize(); - int minimumFontSize = ReKonfig::minFontSize(); + if (mainWindow() && mainWindow()->currentTab()) + { + int logDpiY = mainWindow()->currentTab()->view()->logicalDpiY(); + float toPix = (logDpiY < 96.0) + ? 96.0 / 72.0 + : logDpiY / 72.0 ; - int logDpiY = mainWindow()->currentTab()->view()->logicalDpiY(); - float toPix = (logDpiY < 96.0) - ? 96.0 / 72.0 - : logDpiY / 72.0 ; + int defaultFontSize = ReKonfig::defaultFontSize(); + int minimumFontSize = ReKonfig::minFontSize(); - defaultSettings->setFontSize(QWebSettings::DefaultFontSize, qRound(defaultFontSize * toPix)); - defaultSettings->setFontSize(QWebSettings::MinimumFontSize, qRound(minimumFontSize * toPix)); + defaultSettings->setFontSize(QWebSettings::DefaultFontSize, qRound(defaultFontSize * toPix)); + defaultSettings->setFontSize(QWebSettings::MinimumFontSize, qRound(minimumFontSize * toPix)); + } // encodings QString enc = ReKonfig::defaultEncoding(); @@ -598,6 +602,12 @@ // ====== load Settings on main classes historyManager()->loadSettings(); + + defaultSettings = 0; + + if (!mainWindow()) + return; + if (!ReKonfig::useFavicon()) mainWindow()->setWindowIcon(KIcon("rekonq")); else @@ -633,7 +643,6 @@ break; } - defaultSettings = 0; } @@ -687,3 +696,37 @@ loadUrl(KUrl("about:home"), Rekonq::NewWindow); } } + + +void Application::queryQuit() +{ + if (mainWindowList().count() > 1) + { + int answer = KMessageBox::questionYesNoCancel( + mainWindow(), + i18n("Wanna close the window or the whole app?"), + i18n("Application/Window closing..."), + KGuiItem(i18n("C&lose Current Window"), + KIcon("window-close")), + KStandardGuiItem::quit(), + KStandardGuiItem::cancel(), + "confirmClosingMultipleWindows" + ); + + switch (answer) + { + case KMessageBox::Yes: + mainWindow()->close(); + return; + + case KMessageBox::No: + break; + + default: + return; + } + } + + // in case of just one window... + quit(); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/application.h new/rekonq-0.7.90/src/application.h --- old/rekonq-0.7.80/src/application.h 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/application.h 2011-09-18 23:53:07.000000000 +0200 @@ -132,6 +132,8 @@ // the general place to set private browsing void setPrivateBrowsingMode(bool); + void queryQuit(); + private: QWeakPointer<HistoryManager> m_historyManager; QWeakPointer<BookmarkProvider> m_bookmarkProvider; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/mainview.cpp new/rekonq-0.7.90/src/mainview.cpp --- old/rekonq-0.7.80/src/mainview.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/mainview.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -93,6 +93,7 @@ // current page index changing connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); + connect(this, SIGNAL(currentChanged(int)), rApp->sessionManager(), SLOT(saveSession())); QTimer::singleShot(0, this, SLOT(postLaunch())); } @@ -109,9 +110,6 @@ m_recentlyClosedTabs.prepend(tab); } - // Session Manager - connect(this, SIGNAL(tabsChanged()), rApp->sessionManager(), SLOT(saveSession())); - m_addTabButton->setDefaultAction(m_parentWindow->actionByName("new_tab")); m_addTabButton->setAutoRaise(true); @@ -278,8 +276,6 @@ tab->view()->setFocus(); tabBar()->resetTabHighlighted(index); - - emit tabsChanged(); } @@ -331,12 +327,6 @@ { setCurrentWidget(tab); } - else - { - // if tab is not focused, - // current index doesn't change... - emit tabsChanged(); - } return tab; } @@ -508,11 +498,6 @@ { tabToClose->deleteLater(); } - - // if tab was not focused, current index does not change... - if (index != currentIndex()) - emit tabsChanged(); - } void MainView::webViewLoadStarted() @@ -627,8 +612,6 @@ } if (ReKonfig::hoveringTabOption() == 2) tabBar()->setTabToolTip(index, webTab(index)->url().toMimeDataString()); - - emit tabsChanged(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/mainview.h new/rekonq-0.7.90/src/mainview.h --- old/rekonq-0.7.80/src/mainview.h 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/mainview.h 2011-09-18 23:53:07.000000000 +0200 @@ -106,13 +106,6 @@ } Q_SIGNALS: - // tabs change when: - // - current tab change - // - one tab is closed - // - one tab is added - // - one tab is updated (eg: changes url) - void tabsChanged(); - // current tab signals void currentTitle(const QString &url); void showStatusBarMessage(const QString &message, Rekonq::Notify status = Rekonq::Info); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/mainwindow.cpp new/rekonq-0.7.90/src/mainwindow.cpp --- old/rekonq-0.7.80/src/mainwindow.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/mainwindow.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -274,8 +274,8 @@ // Ctrl + wheel handling connect(this->currentTab()->view(), SIGNAL(zoomChanged(int)), m_zoomBar, SLOT(setValue(int))); - // Save session when last window is closed - connect(this, SIGNAL(lastWindowClosed()), rApp->sessionManager(), SLOT(saveSession())); + // Save session on window closing + connect(this, SIGNAL(windowClosing()), rApp->sessionManager(), SLOT(saveSession())); // setting up toolbars to NOT have context menu enabled setContextMenuPolicy(Qt::DefaultContextMenu); @@ -295,6 +295,7 @@ return size; } + void MainWindow::changeWindowIcon(int index) { if (ReKonfig::useFavicon()) @@ -305,6 +306,7 @@ } } + void MainWindow::setupActions() { // this let shortcuts work.. @@ -322,7 +324,7 @@ KStandardAction::open(this, SLOT(fileOpen()), actionCollection()); KStandardAction::saveAs(this, SLOT(fileSaveAs()), actionCollection()); KStandardAction::print(this, SLOT(printRequested()), actionCollection()); - KStandardAction::quit(rApp, SLOT(quit()), actionCollection()); + KStandardAction::quit(rApp, SLOT(queryQuit()), actionCollection()); a = KStandardAction::find(m_findBar, SLOT(show()), actionCollection()); KShortcut findShortcut = KStandardShortcut::find(); @@ -1194,8 +1196,9 @@ m_popup->setFixedSize(labelSize); m_popup->setText(fm.elidedText(msg, Qt::ElideMiddle, labelSize.width())); - bool horizontalScrollbarIsVisible = tab->page()->currentFrame()->scrollBarMaximum(Qt::Horizontal); - bool verticalScrollbarIsVisible = tab->page()->currentFrame()->scrollBarMaximum(Qt::Vertical); + const bool horizontalScrollbarIsVisible = tab->page()->currentFrame()->scrollBarMaximum(Qt::Horizontal); + const bool verticalScrollbarIsVisible = tab->page()->currentFrame()->scrollBarMaximum(Qt::Vertical); + const bool actionBarsVisible = m_findBar->isVisible() || m_zoomBar->isVisible(); const int scrollbarExtent = style()->pixelMetric(QStyle::PM_ScrollBarExtent); const int hScrollbarSize = horizontalScrollbarIsVisible ? scrollbarExtent : 0; @@ -1205,7 +1208,7 @@ const QPoint bottomPoint = m_view->mapTo(this, m_view->geometry().bottomLeft()); // +1 because bottom() returns top() + height() - 1 , see QRect doku int y = bottomPoint.y() + 1 - m_popup->height() - hScrollbarSize; - int x = QRect(QPoint(0, y), labelSize).contains(mousePos) + int x = QRect(QPoint(0, y), labelSize).contains(mousePos) || actionBarsVisible ? width() - labelSize.width() - vScrollbarSize : 0; @@ -1290,6 +1293,7 @@ dialog->deleteLater(); } + void MainWindow::aboutToShowBackMenu() { m_historyBackMenu->clear(); @@ -1403,6 +1407,7 @@ history->goToItem(history->itemAt(index)); } + void MainWindow::openActionTab(QAction* action) { int index = action->data().toInt(); @@ -1481,46 +1486,6 @@ } -bool MainWindow::queryClose() -{ - // this should fux bug 240432 - if (rApp->sessionSaving()) - return true; - - // smooth private browsing mode - if (QWebSettings::globalSettings()->testAttribute(QWebSettings::PrivateBrowsingEnabled)) - return true; - - if (rApp->mainWindowList().count() > 1) - { - int answer = KMessageBox::questionYesNoCancel( - this, - i18n("Wanna close the window or the whole app?"), - i18n("Application/Window closing..."), - KGuiItem(i18n("C&lose Current Window"), KIcon("window-close")), - KStandardGuiItem::quit(), - KStandardGuiItem::cancel(), - "confirmClosingMultipleWindows" - ); - - switch (answer) - { - case KMessageBox::Yes: - return true; - - case KMessageBox::No: - rApp->quit(); - return true; - - default: - return false; - } - } - emit lastWindowClosed(); - return true; -} - - void MainWindow::saveNewToolbarConfig() { KXmlGuiWindow::saveNewToolbarConfig(); @@ -1586,3 +1551,10 @@ { currentTab()->page()->setContentEditable(on); } + + +bool MainWindow::close() +{ + emit windowClosing(); + return KMainWindow::close(); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/mainwindow.h new/rekonq-0.7.90/src/mainwindow.h --- old/rekonq-0.7.80/src/mainwindow.h 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/mainwindow.h 2011-09-18 23:53:07.000000000 +0200 @@ -115,6 +115,8 @@ void changeWindowIcon(int index); + bool close(); + Q_SIGNALS: // switching tabs void ctrlTabPressed(); @@ -123,7 +125,7 @@ void triggerPartPrint(); void triggerPartFind(); - void lastWindowClosed(); + void windowClosing(); protected Q_SLOTS: void saveNewToolbarConfig(); @@ -138,7 +140,6 @@ void moveEvent(QMoveEvent *event); void resizeEvent(QResizeEvent *event); bool event(QEvent *event); - bool queryClose(); void finalizeGUI(KXMLGUIClient *client); private Q_SLOTS: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/newtabpage.cpp new/rekonq-0.7.90/src/newtabpage.cpp --- old/rekonq-0.7.80/src/newtabpage.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/newtabpage.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -122,6 +122,9 @@ return; } + // webFrame can be null. See bug:282092 + if (!m_root.webFrame()) + return; WebPage *page = qobject_cast <WebPage *>(m_root.webFrame()->page()); page->mainFrame()->setHtml(m_html); page->setIsOnRekonqPage(true); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/sessionmanager.cpp new/rekonq-0.7.90/src/sessionmanager.cpp --- old/rekonq-0.7.80/src/sessionmanager.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/sessionmanager.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -58,6 +58,7 @@ return; m_safe = false; + kDebug() << "SAVING SESSION..."; QFile sessionFile(m_sessionFilePath); if (!sessionFile.open(QFile::WriteOnly | QFile::Truncate)) @@ -79,7 +80,7 @@ QDomElement tab = document.createElement("tab"); tab.setAttribute("title", mv->webTab(tabNo)->view()->title()); // redundant, but needed for closedSites() // as there's not way to read out the historyData - tab.setAttribute("url", mv->webTab(tabNo)->view()->url().toString()); + tab.setAttribute("url", mv->webTab(tabNo)->url().url()); // Use WebTab's instead of WebView's url() to fix about links if (mv->tabBar()->currentIndex() == tabNo) { tab.setAttribute("currentTab", 1); @@ -151,6 +152,11 @@ QDataStream readingStream(&history, QIODevice::ReadOnly); readingStream >> *(view->history()); + + // Get sure about urls are loaded + KUrl u = KUrl(tab.attribute("url")); + if (u.protocol() == QL1S("about")) + view->load(u); } mv->tabBar()->setCurrentIndex(currentTab); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/tabpreviewpopup.cpp new/rekonq-0.7.90/src/tabpreviewpopup.cpp --- old/rekonq-0.7.80/src/tabpreviewpopup.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/tabpreviewpopup.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -43,10 +43,6 @@ #include <QStylePainter> #include <QStyleOptionFrame> -// static -static const int borderRadius = 5; -static const double transparency = 0.90; - TabPreviewPopup::TabPreviewPopup(WebTab* tab, QWidget* parent) : KPassivePopup(parent), @@ -66,6 +62,7 @@ setPopupStyle(KPassivePopup::CustomStyle + 1); + // use ToolTip appearance QPalette p; // adjust background color to use tooltip colors @@ -77,8 +74,15 @@ p.setColor(QPalette::Text, p.color(QPalette::ToolTipText)); setPalette(p); - setWindowOpacity(transparency); + + // window flags and attributes setWindowFlags(Qt::ToolTip); + setAttribute(Qt::WA_TranslucentBackground); + setWindowOpacity(style()->styleHint(QStyle::SH_ToolTipLabel_Opacity, 0, this) / 255.0); + + // margins + const int margin = 1 + style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth, 0, this); + setContentsMargins(margin, margin, margin, margin); setWebTab(tab); } @@ -115,7 +119,8 @@ void TabPreviewPopup::setFixedSize(int w, int h) { KPassivePopup::setFixedSize(w, h); - m_url->setText(m_url->fontMetrics().elidedText(m_url->text(), Qt::ElideMiddle, this->width() - borderRadius)); + const int margin = 1 + style()->pixelMetric(QStyle::PM_ToolTipLabelFrameWidth, 0, this); + m_url->setText(m_url->fontMetrics().elidedText(m_url->text(), Qt::ElideMiddle, this->width() - margin * 2)); //calculate mask QStyleOptionFrame opt; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/urlbar/bookmarkwidget.cpp new/rekonq-0.7.90/src/urlbar/bookmarkwidget.cpp --- old/rekonq-0.7.80/src/urlbar/bookmarkwidget.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/urlbar/bookmarkwidget.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -65,7 +65,6 @@ QFont f = bookmarkInfo->font(); f.setBold(true); bookmarkInfo->setFont(f); - bookmarkInfo->setAlignment(Qt::AlignCenter); vLayout->addWidget(bookmarkInfo); // Remove button diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/urlbar/favoritewidget.cpp new/rekonq-0.7.90/src/urlbar/favoritewidget.cpp --- old/rekonq-0.7.80/src/urlbar/favoritewidget.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/urlbar/favoritewidget.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -55,21 +55,17 @@ setAttribute(Qt::WA_DeleteOnClose); setFixedWidth(350); - QVBoxLayout *layout = new QVBoxLayout(this); - - // Title - QLabel *favoriteInfo = new QLabel(this); - favoriteInfo->setText(i18n("<h4>Remove this favorite?</h4>")); - layout->addWidget(favoriteInfo, 0, Qt::AlignCenter); - - QHBoxLayout *hLay = new QHBoxLayout(this); + QFormLayout *layout = new QFormLayout(this); + QVBoxLayout *vLay = new QVBoxLayout(this); // Favorite icon QLabel *bookmarkIcon = new QLabel(this); bookmarkIcon->setPixmap(KIcon("emblem-favorite").pixmap(32, 32)); - hLay->addWidget(bookmarkIcon); - QVBoxLayout *vLay = new QVBoxLayout(this); + // Title + QLabel *favoriteInfo = new QLabel(this); + favoriteInfo->setText(i18n("<h4>Remove this favorite?</h4>")); + vLay->addWidget(favoriteInfo); // Favorite name QLabel *nameLabel = new QLabel(this); @@ -81,8 +77,7 @@ urlLabel->setText(i18n("URL: %1", m_tab->url().url())); vLay->addWidget(urlLabel); - hLay->addLayout(vLay); - layout->addLayout(hLay); + layout->addRow(bookmarkIcon, vLay); // Ok & Cancel buttons QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/urlbar/rsswidget.cpp new/rekonq-0.7.90/src/urlbar/rsswidget.cpp --- old/rekonq-0.7.80/src/urlbar/rsswidget.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/urlbar/rsswidget.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -56,7 +56,7 @@ , m_map(map) { setAttribute(Qt::WA_DeleteOnClose); - setMinimumWidth(250); + setFixedWidth(350); QFormLayout *layout = new QFormLayout(this); @@ -66,7 +66,6 @@ QFont f = title->font(); f.setBold(true); title->setFont(f); - title->setAlignment(Qt::AlignCenter); layout->addRow(title); // Agregators diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/urlbar/urlbar.cpp new/rekonq-0.7.90/src/urlbar/urlbar.cpp --- old/rekonq-0.7.80/src/urlbar/urlbar.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/urlbar/urlbar.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -46,6 +46,7 @@ #include "bookmarkwidget.h" #include "iconmanager.h" #include "favoritewidget.h" +#include "searchengine.h" // KDE Includes #include <KCompletionBox> @@ -182,7 +183,7 @@ QPalette p = palette(); int progr = _tab->progress(); - if (progr == 0) + if (progr == 0 || progr == 100) { if (_tab->url().scheme() == QL1S("https")) { @@ -482,8 +483,17 @@ menu.addAction(a); // Paste & Go - a = new KAction(i18n("Paste && Go"), this); - connect(a, SIGNAL(triggered(bool)), this, SLOT(pasteAndGo())); + const QString clipboardText = rApp->clipboard()->text(); + if (isValidURL(clipboardText) || clipboardText.isEmpty()) + { + a = new KAction(i18n("Paste && Go"), this); + connect(a, SIGNAL(triggered(bool)), this, SLOT(pasteAndGo())); + } + else + { + a = new KAction(i18n("Paste && Search"), this); + connect(a, SIGNAL(triggered(bool)), this, SLOT(pasteAndSearch())); + } a->setEnabled(clipboardFilled); menu.addAction(a); @@ -504,6 +514,17 @@ } +bool UrlBar::isValidURL(QString url) +{ + bool isValid = false; + if (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("ftp://")) + url = url.remove(QRegExp("(http|https|ftp)://")); + if (url.contains('.') && url.indexOf('.') > 0 && url.indexOf('.') < url.length() && !url.trimmed().contains(" ") && QUrl::fromUserInput(url).isValid()) + isValid = true; + return isValid; +} + + IconButton *UrlBar::addRightIcon(UrlBar::icon ic) { IconButton *rightIcon = new IconButton(this); @@ -696,6 +717,14 @@ } +void UrlBar::pasteAndSearch() +{ + KService::Ptr defaultEngine = SearchEngine::defaultEngine(); + if (defaultEngine) + activated(KUrl(SearchEngine::buildQuery(defaultEngine, rApp->clipboard()->text()))); +} + + void UrlBar::delSlot() { del(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/urlbar/urlbar.h new/rekonq-0.7.90/src/urlbar/urlbar.h --- old/rekonq-0.7.80/src/urlbar/urlbar.h 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/urlbar/urlbar.h 2011-09-18 23:53:07.000000000 +0200 @@ -116,7 +116,9 @@ void refreshFavicon(); void pasteAndGo(); + void pasteAndSearch(); void delSlot(); + bool isValidURL(QString url); protected: void paintEvent(QPaintEvent *event); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/urlbar/webshortcutwidget.cpp new/rekonq-0.7.90/src/urlbar/webshortcutwidget.cpp --- old/rekonq-0.7.80/src/urlbar/webshortcutwidget.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/urlbar/webshortcutwidget.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -19,92 +19,70 @@ * Boston, MA 02110-1301, USA. */ +// Self Includes #include "webshortcutwidget.h" #include "rekonq_defines.h" -#include <QtCore/QTimer> -#include <QtCore/QSet> -#include <QtGui/QBoxLayout> -#include <QtGui/QLabel> -#include <QtGui/QLineEdit> -#include <QtGui/QPushButton> -#include <QtGui/QFormLayout> - - +// KDE Includes #include <KGlobalSettings> #include <KIcon> #include <KLocale> #include <KServiceTypeTrader> +// Qt Includes +#include <QSet> +#include <QLabel> +#include <QLineEdit> +#include <QDialogButtonBox> +#include <QFormLayout> + WebShortcutWidget::WebShortcutWidget(QWidget *parent) - : QDialog(parent) + : QMenu(parent) + , m_wsLineEdit(new QLineEdit(this)) + , m_nameLineEdit(new QLineEdit(this)) + , m_noteLabel(new QLabel(this)) { - QVBoxLayout *mainLayout = new QVBoxLayout(); - QHBoxLayout *titleLayout = new QHBoxLayout(); - mainLayout->addLayout(titleLayout); - QLabel *iconLabel = new QLabel(this); + setAttribute(Qt::WA_DeleteOnClose); + setFixedWidth(350); - KIcon wsIcon("edit-web-search"); - if (wsIcon.isNull()) - { - wsIcon = KIcon("preferences-web-browser-shortcuts"); - } + QFormLayout *layout = new QFormLayout(this); + QVBoxLayout *vLay = new QVBoxLayout(this); + + // Web Search Icon + QLabel *webSearchIcon = new QLabel(this); + webSearchIcon->setPixmap(KIcon("edit-web-search").pixmap(32, 32)); + + // Title + QLabel *titleLabel = new QLabel(this); + titleLabel->setText("<h4>" + i18n("Add Search Engine") + "</h4>"); + vLay->addWidget(titleLabel); + + // Name + vLay->addWidget(m_nameLineEdit); - iconLabel->setPixmap(wsIcon.pixmap(22, 22)); - titleLayout->addWidget(iconLabel); - m_searchTitleLabel = new QLabel(i18n("Add Search Engine"), this); - QFont boldFont = KGlobalSettings::generalFont(); - boldFont.setBold(true); - m_searchTitleLabel->setFont(boldFont); - titleLayout->addWidget(m_searchTitleLabel); - titleLayout->addStretch(); - - QFormLayout *formLayout = new QFormLayout(); - mainLayout->addLayout(formLayout); - - QFont smallFont = KGlobalSettings::smallestReadableFont(); - m_nameLineEdit = new QLineEdit(this); - m_nameLineEdit->setEnabled(false); - m_nameLineEdit->setFont(smallFont); - QLabel *nameLabel = new QLabel(i18n("Name:"), this); - nameLabel->setFont(smallFont); - formLayout->addRow(nameLabel, m_nameLineEdit); + layout->addRow(webSearchIcon, vLay); + // Shortcuts QLabel *shortcutsLabel = new QLabel(i18n("Shortcuts:"), this); - shortcutsLabel->setFont(smallFont); - m_wsLineEdit = new QLineEdit(this); - m_wsLineEdit->setMinimumWidth(100); - m_wsLineEdit->setFont(smallFont); - formLayout->addRow(shortcutsLabel, m_wsLineEdit); + layout->addRow(shortcutsLabel, m_wsLineEdit); connect(m_wsLineEdit, SIGNAL(textChanged(QString)), SLOT(shortcutsChanged(const QString&))); - m_noteLabel = new QLabel(this); - m_noteLabel->setFont(boldFont); + // Note m_noteLabel->setWordWrap(true); - formLayout->addRow(m_noteLabel); - m_noteLabel->setVisible(false); + layout->addRow(m_noteLabel); + m_noteLabel->hide(); - mainLayout->addStretch(); + // Ok & Cancel buttons + QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); + connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(close())); + layout->addWidget(buttonBox); - QHBoxLayout *buttonLayout = new QHBoxLayout(); - mainLayout->addLayout(buttonLayout); - buttonLayout->addStretch(); - m_okButton = new QPushButton(i18n("Ok"), this); - m_okButton->setDefault(true); - buttonLayout->addWidget(m_okButton); - connect(m_okButton, SIGNAL(clicked()), this, SLOT(okClicked())); - - QPushButton *cancelButton = new QPushButton(i18n("Cancel"), this); - buttonLayout->addWidget(cancelButton); - connect(cancelButton, SIGNAL(clicked()), this, SLOT(cancelClicked())); - - setLayout(mainLayout); - - setMinimumWidth(250); + setLayout(layout); m_providers = KServiceTypeTrader::self()->query("SearchProvider"); - QTimer::singleShot(0, m_wsLineEdit, SLOT(setFocus())); + m_wsLineEdit->setFocus(); } @@ -112,12 +90,9 @@ { adjustSize(); - QPoint p; - p.setX(pos.x() - width()); - p.setY(pos.y() + 10); - + QPoint p(pos.x() - width(), pos.y() + 10); move(p); - QDialog::show(); + exec(); } @@ -130,16 +105,10 @@ } -void WebShortcutWidget::okClicked() +void WebShortcutWidget::accept() { - hide(); emit webShortcutSet(m_url, m_nameLineEdit->text(), m_wsLineEdit->text()); -} - - -void WebShortcutWidget::cancelClicked() -{ - hide(); + close(); } @@ -169,14 +138,12 @@ if (!contenderName.isEmpty()) { - m_okButton->setEnabled(false); m_noteLabel->setText(i18n("The shortcut \"%1\" is already assigned to \"%2\".", contenderWS, contenderName)); m_noteLabel->setVisible(true); resize(minimumSize().width(), minimumSizeHint().height() + 15); } else { - m_okButton->setEnabled(true); m_noteLabel->clear(); bool noteIsVisible = m_noteLabel->isVisible(); m_noteLabel->setVisible(false); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/urlbar/webshortcutwidget.h new/rekonq-0.7.90/src/urlbar/webshortcutwidget.h --- old/rekonq-0.7.80/src/urlbar/webshortcutwidget.h 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/urlbar/webshortcutwidget.h 2011-09-18 23:53:07.000000000 +0200 @@ -22,35 +22,33 @@ #ifndef WEBSHORTCUTWIDGET_H #define WEBSHORTCUTWIDGET_H -#include <QtGui/QDialog> +#include <QMenu> #include <KUrl> #include <KService> class QLabel; class QLineEdit; +class QPushButton; -class WebShortcutWidget : public QDialog +class WebShortcutWidget : public QMenu { Q_OBJECT public: - explicit WebShortcutWidget(QWidget *parent = 0); + WebShortcutWidget(QWidget *parent = 0); void show(const KUrl &url, const QString &openSearchName, const QPoint &pos); private slots: - void okClicked(); - void cancelClicked(); + void accept(); void shortcutsChanged(const QString& newShorthands); signals: void webShortcutSet(const KUrl &url, const QString &openSearchName, const QString &webShortcut); private: - QLabel *m_searchTitleLabel; QLineEdit *m_wsLineEdit; QLineEdit *m_nameLineEdit; QLabel *m_noteLabel; - QPushButton *m_okButton; KService::List m_providers; KUrl m_url; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/webpage.cpp new/rekonq-0.7.90/src/webpage.cpp --- old/rekonq-0.7.80/src/webpage.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/webpage.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -49,6 +49,7 @@ #include "urlbar.h" #include "webpluginfactory.h" #include "webtab.h" +#include "searchengine.h" #include "sslwidget.h" #include "sslinfodialog.h" @@ -658,6 +659,16 @@ msg += QL1S("<input type=\"button\" id=\"reloadButton\" onClick=\"document.location.href='") + urlString + QL1S("';\" value=\""); msg += i18n("Try Again") + QL1S("\" />"); + //Default SearchEngine + KService::Ptr defaultEngine = SearchEngine::defaultEngine(); + + if (defaultEngine) + { + msg += i18n("or"); + msg += QL1S(" <a href=\"") + SearchEngine::buildQuery(defaultEngine, urlString) + QL1S("\">"); + msg += i18n("Search with %1", defaultEngine->name()) + QL1S("</a>"); + } + QString html = QString(QL1S(file.readAll())) .arg(title) .arg(msg) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/webpluginfactory.cpp new/rekonq-0.7.90/src/webpluginfactory.cpp --- old/rekonq-0.7.80/src/webpluginfactory.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/webpluginfactory.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -69,7 +69,7 @@ if (_loadClickToFlash) { emit signalLoadClickToFlash(false); - return 0; //KWebPluginFactory::create(mimeType, url, argumentNames, argumentValues); + return KWebPluginFactory::create(mimeType, url, argumentNames, argumentValues); } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/webtab.cpp new/rekonq-0.7.90/src/webtab.cpp --- old/rekonq-0.7.80/src/webtab.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/webtab.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -87,6 +87,9 @@ connect(m_webView, SIGNAL(loadProgress(int)), this, SLOT(updateProgress(int))); connect(m_webView, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool))); connect(m_webView, SIGNAL(titleChanged(const QString &)), this, SIGNAL(titleChanged(const QString &))); + + // Session Manager + connect(m_webView, SIGNAL(loadFinished(bool)), rApp->sessionManager(), SLOT(saveSession())); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rekonq-0.7.80/src/webview.cpp new/rekonq-0.7.90/src/webview.cpp --- old/rekonq-0.7.80/src/webview.cpp 2011-09-09 18:42:07.000000000 +0200 +++ new/rekonq-0.7.90/src/webview.cpp 2011-09-18 23:53:07.000000000 +0200 @@ -402,6 +402,23 @@ update(); } } + + if (!ReKonfig::autoScroll()) + { + const QString clipboardContent = rApp->clipboard()->text(); + + if (clipboardContent.isEmpty()) + break; + + if (QUrl::fromUserInput(clipboardContent).isValid()) + loadUrl(clipboardContent, Rekonq::CurrentTab); + else // Search with default Engine + { + KService::Ptr defaultEngine = SearchEngine::defaultEngine(); + if (defaultEngine) // check if a default engine is set + loadUrl(KUrl(SearchEngine::buildQuery(defaultEngine, clipboardContent)), Rekonq::CurrentTab); + } + } break; default: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
