diff options
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | icons/hi128-app-rekonq.png | bin | 21599 -> 23005 bytes | |||
| -rw-r--r-- | icons/hi16-app-rekonq.png | bin | 954 -> 960 bytes | |||
| -rw-r--r-- | icons/hi32-app-rekonq.png | bin | 2621 -> 2863 bytes | |||
| -rw-r--r-- | icons/hi64-app-rekonq.png | bin | 7571 -> 8476 bytes | |||
| -rw-r--r-- | icons/rekonq.svgz | bin | 32828 -> 34958 bytes | |||
| -rw-r--r-- | src/application.cpp | 26 | ||||
| -rw-r--r-- | src/bookmarks.cpp | 2 | ||||
| -rw-r--r-- | src/homepage.cpp | 35 | ||||
| -rw-r--r-- | src/homepage.h | 3 | ||||
| -rw-r--r-- | src/main.cpp | 2 | ||||
| -rw-r--r-- | src/mainview.cpp | 9 | ||||
| -rw-r--r-- | src/mainview.h | 3 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 10 | ||||
| -rw-r--r-- | src/rekonq.kcfg | 3 | ||||
| -rw-r--r-- | src/settings_general.ui | 10 | ||||
| -rw-r--r-- | src/tabbar.cpp | 57 | ||||
| -rw-r--r-- | src/urlbar.cpp | 6 | ||||
| -rw-r--r-- | src/webpage.cpp | 10 | 
19 files changed, 132 insertions, 46 deletions
| diff --git a/CMakeLists.txt b/CMakeLists.txt index 664156e5..92c9e53e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ PROJECT( rekonq )  # rekonq info  SET(REKONQ_MAJOR_VERSION "0")  SET(REKONQ_MINOR_VERSION "2") -SET(REKONQ_PATCH_VERSION "64") +SET(REKONQ_PATCH_VERSION "65")  SET(REKONQ_VERSION_STR      "${REKONQ_MAJOR_VERSION}.${REKONQ_MINOR_VERSION}.${REKONQ_PATCH_VERSION}" diff --git a/icons/hi128-app-rekonq.png b/icons/hi128-app-rekonq.pngBinary files differ index c9eb8f0a..1b0d5b82 100644 --- a/icons/hi128-app-rekonq.png +++ b/icons/hi128-app-rekonq.png diff --git a/icons/hi16-app-rekonq.png b/icons/hi16-app-rekonq.pngBinary files differ index f6c54bd0..ab0c1c98 100644 --- a/icons/hi16-app-rekonq.png +++ b/icons/hi16-app-rekonq.png diff --git a/icons/hi32-app-rekonq.png b/icons/hi32-app-rekonq.pngBinary files differ index 3beb22f4..b3e9ceea 100644 --- a/icons/hi32-app-rekonq.png +++ b/icons/hi32-app-rekonq.png diff --git a/icons/hi64-app-rekonq.png b/icons/hi64-app-rekonq.pngBinary files differ index bdd13d12..502ae87c 100644 --- a/icons/hi64-app-rekonq.png +++ b/icons/hi64-app-rekonq.png diff --git a/icons/rekonq.svgz b/icons/rekonq.svgzBinary files differ index ee927542..95796761 100644 --- a/icons/rekonq.svgz +++ b/icons/rekonq.svgz diff --git a/src/application.cpp b/src/application.cpp index e3c06a5b..6719d456 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -87,6 +87,16 @@ int Application::newInstance()  {      KCmdLineArgs::setCwd(QDir::currentPath().toUtf8());      KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); +     +    // we share one process for several mainwindows, +    // so initialize only once +    static bool first = true; +     +    if (first) +    { +        QTimer::singleShot(0, this, SLOT(postLaunch())); +        first = false; +    }      // is your app session restored? restore session...      // this mechanism also falls back to load usual plain rekonq @@ -151,6 +161,10 @@ void Application::postLaunch()      Application::historyManager();      Application::sessionManager(); +     +    // bookmarks loading +    connect(Application::bookmarkProvider(), SIGNAL(openUrl(const KUrl&, const Rekonq::OpenType&)), +            Application::instance(), SLOT(loadUrl(const KUrl&, const Rekonq::OpenType&)));  } @@ -229,9 +243,16 @@ SessionManager *Application::sessionManager()  KIcon Application::icon(const KUrl &url)  { +    if(url.scheme() == "rekonq" ||    +        (url.isEmpty() // Urlbar is empty for homepage, but we want an icon +        && !Application::instance()->mainWindowList().isEmpty() // avoid infinite loop at startup +        && Application::instance()->mainWindow()->currentTab()->url().scheme() == "rekonq")   +      ) +        return KIcon("go-home"); +              if(url.isEmpty())          return KIcon("text-html"); - +          KIcon icon = KIcon(QWebSettings::iconForUrl(url));      if (icon.isNull())      { @@ -393,7 +414,6 @@ MainWindow *Application::newMainWindow()      m_mainWindows.prepend(w);      w->show(); -    QTimer::singleShot(0, this, SLOT(postLaunch()));      return w;  } @@ -413,7 +433,7 @@ MainWindowList Application::mainWindowList()  bool Application::homePage(const KUrl &url)  { -    if (    url == KUrl("rekonq:lastSites")  +    if (    url == KUrl("rekonq:closedTabs")            || url == KUrl("rekonq:history")            || url == KUrl("rekonq:bookmarks")           || url == KUrl("rekonq:favorites") diff --git a/src/bookmarks.cpp b/src/bookmarks.cpp index c08784e9..815b2f56 100644 --- a/src/bookmarks.cpp +++ b/src/bookmarks.cpp @@ -219,7 +219,7 @@ void BookmarkProvider::slotBookmarksChanged(const QString &group, const QString      if (toolBarGroup.isNull())          return; -    m_bookmarkToolBar->clear(); +    m_bookmarkToolBar->clear(); // FIXME CRASH      KBookmark bookmark = toolBarGroup.first();      while (!bookmark.isNull()) diff --git a/src/homepage.cpp b/src/homepage.cpp index 3cc908a9..398308be 100644 --- a/src/homepage.cpp +++ b/src/homepage.cpp @@ -75,9 +75,9 @@ QString HomePage::rekonqHomePage(const KUrl &url)      QString menu = homePageMenu(url);      QString speed; -    if(url == KUrl("rekonq:lastSites")) +    if(url == KUrl("rekonq:closedTabs"))      { -        speed = lastVisitedSites(); +        speed = fillRecentlyClosedTabs();      }      if(url == KUrl("rekonq:history"))      { @@ -182,11 +182,11 @@ QString HomePage::homePageMenu(KUrl currentUrl)      menu += "Favorites</a></div>";      menu += "<div class=\"link"; -    if(currentUrl == "rekonq:lastSites") +    if(currentUrl == "rekonq:closedTabs")          menu += " current"; -    menu += "\"><a href=\"rekonq:lastSites\">"; +    menu += "\"><a href=\"rekonq:closedTabs\">";      menu += "<img src=\"file:///" + loader->iconPath("edit-undo", KIconLoader::Desktop) + "\" />"; -    menu += "Last Visited</a></div>"; +    menu += "Closed Tabs</a></div>";      menu += "<div class=\"link";      if(currentUrl == "rekonq:bookmarks") @@ -284,3 +284,28 @@ QString HomePage::createBookItem(const KBookmark &bookmark)      books += "<a href=\"" + bookmark.url().prettyUrl() + "\">" + bookmark.text() + "</a><br />";      return books;  } + + +QString HomePage::fillRecentlyClosedTabs() +{ +    KUrl::List links = Application::instance()->mainWindow()->mainView()->recentlyClosedTabs(); +    QString closed; +     +    Q_FOREACH( const KUrl &url, links) +    {    +        QString text = url.prettyUrl(); +        if(text.length() > 20) +        { +            text.truncate(17); +            text += "..."; +        } +        closed += "<div class=\"thumbnail\">"; +        closed += "<object type=\"application/image-preview\" data=\""; +        closed += url.path() + "\" width=\"200\">"; +        closed += "</object>"; +        closed += "<br />"; +        closed += "<a href=\"" + url.path() + "\">" + text + "</a></div>"; +    } +     +    return closed; +} diff --git a/src/homepage.h b/src/homepage.h index 73bb5859..7d62f50a 100644 --- a/src/homepage.h +++ b/src/homepage.h @@ -55,7 +55,8 @@ private:      QString lastVisitedSites();      QString fillHistory();      QString fillBookmarks(); -     +    QString fillRecentlyClosedTabs(); +      QString createBookItem(const KBookmark &bookmark);      QString m_homePagePath; diff --git a/src/main.cpp b/src/main.cpp index e7f3cc1d..a8fb4178 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -38,7 +38,7 @@ static const char description[] =      I18N_NOOP("A lightweight Web Browser for KDE based on WebKit"); -static const char version[] = "0.2.64"; +static const char version[] = "0.2.65";  int main(int argc, char **argv) diff --git a/src/mainview.cpp b/src/mainview.cpp index 0abf6996..3c78a0f6 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -179,6 +179,8 @@ void MainView::clear()      // What exactly do we need to clear here?      m_urlBar->clearHistory();      m_urlBar->clear(); + +    m_recentlyClosedTabs.clear();  } @@ -411,6 +413,7 @@ void MainView::slotCloseTab(int index)                  return;          }          hasFocus = tab->hasFocus(); +        m_recentlyClosedTabs.prepend(tab->url());      }      QWidget *webView = widget(index); @@ -569,3 +572,9 @@ QLabel *MainView::animatedLoading(int index, bool addMovie)      m_tabBar->setTabButton(index, QTabBar::LeftSide, label);      return label;  } + + +KUrl::List MainView::recentlyClosedTabs() +{ +    return m_recentlyClosedTabs; +} diff --git a/src/mainview.h b/src/mainview.h index 48e0b58b..96710919 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -89,6 +89,7 @@ public:       */      WebView *newWebView(bool focused = true, bool nearParent = false); +    KUrl::List recentlyClosedTabs();  signals:      // tab widget signals @@ -155,6 +156,8 @@ private:      QString m_loadingGitPath;      int m_currentTabIndex; +     +    KUrl::List m_recentlyClosedTabs;  };  #endif // MAINVIEW_H diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index ac9b83bb..7601e80e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -95,8 +95,8 @@ MainWindow::MainWindow()      , m_findBar(new FindBar(this))      , m_sidePanel(0)      , m_historyBackMenu(0) -    , m_mainBar( new KToolBar( QString("MainToolBar"), this, Qt::TopToolBarArea, true, true, true) ) -    , m_bmBar( new KToolBar( QString("BookmarkToolBar"), this, Qt::TopToolBarArea, true, true, true) ) +    , m_mainBar( new KToolBar( QString("MainToolBar"), this, Qt::TopToolBarArea, true, false, false) ) +    , m_bmBar( new KToolBar( QString("BookmarkToolBar"), this, Qt::TopToolBarArea, true, false, false) )      , m_ac( new KActionCollection(this) )  {      // enable window size "auto-save" @@ -204,10 +204,6 @@ void MainWindow::postLaunch()      // Find Bar signal      connect(m_findBar, SIGNAL(searchString(const QString &)), this, SLOT(slotFind(const QString &))); -    // bookmarks loading -    connect(Application::bookmarkProvider(), SIGNAL(openUrl(const KUrl&, const Rekonq::OpenType&)), -            Application::instance(), SLOT(loadUrl(const KUrl&, const Rekonq::OpenType&))); -      // setting up toolbars to NOT have context menu enabled      setContextMenuPolicy(Qt::DefaultContextMenu); @@ -363,7 +359,7 @@ void MainWindow::setupActions()      // Bookmark Menu      KActionMenu *bmMenu = Application::bookmarkProvider()->bookmarkActionMenu(this); -    bmMenu->setIcon(KIcon("rating")); +    bmMenu->setIcon(KIcon("bookmarks-organize"));      bmMenu->setDelayed(false);      actionCollection()->addAction(QLatin1String("bookmarksActionMenu"), bmMenu); diff --git a/src/rekonq.kcfg b/src/rekonq.kcfg index 0bffa53d..0a63922f 100644 --- a/src/rekonq.kcfg +++ b/src/rekonq.kcfg @@ -44,6 +44,9 @@      <entry name="openTabsNearCurrent" type="Bool">          <default>false</default>      </entry> +    <entry name="alwaysShowTabPreviews" type="Bool"> +        <default>true</default> +    </entry>    </group>  <!-- Fonts Settings --> diff --git a/src/settings_general.ui b/src/settings_general.ui index d12d254f..5ea19b09 100644 --- a/src/settings_general.ui +++ b/src/settings_general.ui @@ -139,6 +139,16 @@          </property>         </widget>        </item> +      <item> +       <widget class="QCheckBox" name="kcfg_alwaysShowTabPreviews"> +        <property name="text"> +         <string>Show preview when hovering tab</string> +        </property> +        <property name="checked"> +         <bool>false</bool> +        </property> +       </widget> +      </item>       </layout>      </widget>     </item> diff --git a/src/tabbar.cpp b/src/tabbar.cpp index 815a153d..569a59c5 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -32,6 +32,7 @@  #include "tabbar.moc"  // Local Includes +#include "rekonq.h"  #include "application.h"  #include "mainwindow.h"  #include "urlbar.h" @@ -265,47 +266,53 @@ void TabBar::showTabPreview(int tab)  void TabBar::mouseMoveEvent(QMouseEvent *event)  { -    //Find the tab under the mouse -    int i = 0; -    int tab = -1; -    while (i<count() && tab==-1) +    if (ReKonfig::alwaysShowTabPreviews())      { -        if (tabRect(i).contains(event->pos()))  +        //Find the tab under the mouse +        int i = 0; +        int tab = -1; +        while (i<count() && tab==-1)          { -            tab = i; +            if (tabRect(i).contains(event->pos()))  +            { +                tab = i; +            } +            i++;          } -        i++; -    } -    //if found and not the current tab then show tab preview -    if (tab != -1 && tab != currentIndex() && m_currentTabPreview != tab) -    { -        showTabPreview(tab); -        m_currentTabPreview = tab; -    } +        //if found and not the current tab then show tab preview +        if (tab != -1 && tab != currentIndex() && m_currentTabPreview != tab) +        { +            showTabPreview(tab); +            m_currentTabPreview = tab; +        } -    //if current tab or not found then hide previous tab preview -    if (tab==currentIndex() || tab==-1) -    { -        if ( m_previewPopup) +        //if current tab or not found then hide previous tab preview +        if (tab==currentIndex() || tab==-1)          { -            m_previewPopup->hide(); +            if ( m_previewPopup) +            { +                m_previewPopup->hide(); +            } +            m_currentTabPreview = -1;          } -        m_currentTabPreview = -1;      } -     +      KTabBar::mouseMoveEvent(event);  }  void TabBar::leaveEvent(QEvent *event)  { -    //if leave tabwidget then hide previous tab preview -    if ( m_previewPopup) +    if (ReKonfig::alwaysShowTabPreviews())      { -        m_previewPopup->hide(); +        //if leave tabwidget then hide previous tab preview +        if ( m_previewPopup) +        { +            m_previewPopup->hide(); +        } +        m_currentTabPreview = -1;      } -    m_currentTabPreview = -1;      KTabBar::leaveEvent(event);  } diff --git a/src/urlbar.cpp b/src/urlbar.cpp index 5776961b..5ad8314e 100644 --- a/src/urlbar.cpp +++ b/src/urlbar.cpp @@ -135,10 +135,12 @@ void UrlBar::setUrl(const QUrl& url)  {      if(url.scheme() == "rekonq")      { +        m_currentUrl = "";          setFocus(); -        return;      } -    m_currentUrl = url; +    else +        m_currentUrl = url; +          slotUpdateUrl();  } diff --git a/src/webpage.cpp b/src/webpage.cpp index 59c777d6..2b622847 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -93,6 +93,16 @@ WebPage::~WebPage()  bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type)  { +    // advise users on resubmitting data +    if(type == QWebPage::NavigationTypeFormResubmitted) +    { +        int risp = KMessageBox::warningContinueCancel(view(),  +                                                      i18n("Are you sure you want to send your data again?"),  +                                                      i18n("Resend form data") ); +        if(risp == KMessageBox::Cancel) +            return false; +    } +          if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton)      {          Application::instance()->loadUrl(request.url(), Rekonq::SettingOpenTab); | 
