diff options
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | icons/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | icons/pics/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | icons/pics/hi64-actions-download.png | bin | 0 -> 4518 bytes | |||
| -rw-r--r-- | src/application.cpp | 1 | ||||
| -rw-r--r-- | src/application.h | 13 | ||||
| -rw-r--r-- | src/main.cpp | 2 | ||||
| -rw-r--r-- | src/mainview.cpp | 25 | ||||
| -rw-r--r-- | src/mainview.h | 6 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 86 | ||||
| -rw-r--r-- | src/mainwindow.h | 34 | ||||
| -rw-r--r-- | src/modelmenu.cpp | 36 | ||||
| -rw-r--r-- | src/rekonqui.rc | 5 | ||||
| -rw-r--r-- | src/webpage.cpp | 2 | ||||
| -rw-r--r-- | src/webpage.h | 6 | 
15 files changed, 151 insertions, 73 deletions
| diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b246296..9b3d7ff4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ PROJECT( rekonq )  # rekonq info  SET(REKONQ_MAJOR_VERSION "0")  SET(REKONQ_MINOR_VERSION "1") -SET(REKONQ_PATCH_VERSION "5") +SET(REKONQ_PATCH_VERSION "6")  SET(REKONQ_VERSION_STR      "${REKONQ_MAJOR_VERSION}.${REKONQ_MINOR_VERSION}.${REKONQ_PATCH_VERSION}" diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt index 9d7ead58..d575cf4d 100644 --- a/icons/CMakeLists.txt +++ b/icons/CMakeLists.txt @@ -1,2 +1,4 @@  # install standard icons  KDE4_INSTALL_ICONS( ${ICON_INSTALL_DIR} ) + +ADD_SUBDIRECTORY( pics ) diff --git a/icons/pics/CMakeLists.txt b/icons/pics/CMakeLists.txt new file mode 100644 index 00000000..53d04224 --- /dev/null +++ b/icons/pics/CMakeLists.txt @@ -0,0 +1,4 @@ +INSTALL(  +    FILES hi64-actions-download.png +    DESTINATION ${DATA_INSTALL_DIR}/rekonq/pics +) diff --git a/icons/pics/hi64-actions-download.png b/icons/pics/hi64-actions-download.pngBinary files differ new file mode 100644 index 00000000..aa1101c1 --- /dev/null +++ b/icons/pics/hi64-actions-download.png diff --git a/src/application.cpp b/src/application.cpp index 6f479d62..bc77f60a 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -42,6 +42,7 @@  #include <KConfig>  #include <kio/job.h>  #include <kio/jobclasses.h> +#include <KPassivePopup>  // Qt Includes  #include <QtCore/QTimer> diff --git a/src/application.h b/src/application.h index 7f3e6f3b..46d013e3 100644 --- a/src/application.h +++ b/src/application.h @@ -58,6 +58,19 @@ namespace Rekonq          New,        ///< open url in new tab and make it current          Background  ///< open url in new tab in background      }; + +    /** +     * @short notifying message status +     * Different message status +     */ + +    enum Notify +    { +        Success,    ///< url successfully (down)loaded +        Error,      ///< url failed to (down)load +        Download,   ///< downloading url +        Info        ///< information, (default) +    };  } diff --git a/src/main.cpp b/src/main.cpp index 6a4e9a6f..d97017ca 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,7 +31,7 @@ static const char description[] =      I18N_NOOP("WebKit based Web Browser for KDE"); -static const char version[] = "0.1.5"; +static const char version[] = "0.1.6";  int main(int argc, char **argv) diff --git a/src/mainview.cpp b/src/mainview.cpp index 636a4812..79afd2dc 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -303,7 +303,7 @@ void MainView::slotCurrentChanged(int index)      WebView *oldWebView = this->webView(m_urlBars->currentIndex());      if (oldWebView)      { -        disconnect(oldWebView, SIGNAL(statusBarMessage(const QString&)), +        disconnect(oldWebView->page(), SIGNAL(statusBarMessage(const QString&)),                     this, SIGNAL(showStatusBarMessage(const QString&)));          disconnect(oldWebView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)),                     this, SIGNAL(linkHovered(const QString&))); @@ -311,7 +311,7 @@ void MainView::slotCurrentChanged(int index)                     this, SIGNAL(loadProgress(int)));      } -    connect(webView, SIGNAL(statusBarMessage(const QString&)), this, SIGNAL(showStatusBarMessage(const QString&))); +    connect(webView->page(), SIGNAL(statusBarMessage(const QString&)), this, SIGNAL(showStatusBarMessage(const QString&)));      connect(webView->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)), this, SIGNAL(linkHovered(const QString&)));      connect(webView, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); @@ -371,7 +371,6 @@ WebView *MainView::newWebView(Rekonq::OpenType type)      // connecting webview with mainview      connect(webView, SIGNAL(loadStarted()), this, SLOT(webViewLoadStarted())); -    connect(webView, SIGNAL(loadProgress(int)), this, SLOT(webViewLoadProgress(int)));      connect(webView, SIGNAL(loadFinished(bool)), this, SLOT(webViewLoadFinished(bool)));      connect(webView, SIGNAL(iconChanged()), this, SLOT(webViewIconChanged()));      connect(webView, SIGNAL(titleChanged(const QString &)), this, SLOT(webViewTitleChanged(const QString &))); @@ -552,22 +551,6 @@ void MainView::webViewLoadStarted()  } -void MainView::webViewLoadProgress(int progress) -{ -    WebView *webView = qobject_cast<WebView*>(sender()); -    int index = webViewIndex(webView); -    if (index != currentIndex() || index < 0) -    { -        return; -    } - -    double totalBytes = static_cast<double>(webView->page()->totalBytes() / 1024); - -    QString message = i18n("Loading %1% (%2 %3)...", progress, totalBytes, QLatin1String("kB")); -    emit showStatusBarMessage(message); -} - -  void MainView::webViewLoadFinished(bool ok)  {      WebView *webView = qobject_cast<WebView*>(sender()); @@ -590,9 +573,9 @@ void MainView::webViewLoadFinished(bool ok)      }      if (ok) -        emit showStatusBarMessage(i18n("Done")); +        emit showStatusBarMessage(i18n("Done"), Rekonq::Success);      else -        emit showStatusBarMessage(i18n("Failed to load")); +        emit showStatusBarMessage(i18n("Failed to load"), Rekonq::Error);  } diff --git a/src/mainview.h b/src/mainview.h index 9ee2f12a..7cb4e035 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -91,7 +91,7 @@ signals:      // current tab signals      void setCurrentTitle(const QString &url); -    void showStatusBarMessage(const QString &message); +    void showStatusBarMessage(const QString &message, Rekonq::Notify status = Rekonq::Info);      void linkHovered(const QString &link);      void loadProgress(int progress); @@ -112,6 +112,7 @@ public slots:       * @param url The url to load       */      void loadUrl(const KUrl &url); +      void slotCloneTab(int index = -1);      void slotCloseTab(int index = -1);      void slotCloseOtherTabs(int index); @@ -133,11 +134,8 @@ public slots:  private slots:      void slotCurrentChanged(int index); -//     void aboutToShow/*Rec*/entTabsMenu(); -//     void aboutToShowRecentTriggeredAction(QAction *action); // need QAction!      void webViewLoadStarted(); -    void webViewLoadProgress(int progress);      void webViewLoadFinished(bool ok);      void webViewIconChanged();      void webViewTitleChanged(const QString &title); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4f9d0711..2c46dc01 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -57,6 +57,10 @@  #include <KGlobalSettings>  #include <KPushButton>  #include <KTemporaryFile> +#include <KJobUiDelegate> +#include <KPassivePopup> +#include <KStandardDirs> +#include <KIconLoader>  #include <kdeprintdialog.h>  #include <kprintpreview.h> @@ -132,6 +136,9 @@ MainWindow::MainWindow()      // toolbar position, icon size, etc.      setupGUI(); +    // no more status bar.. +    setStatusBar(0); +      QTimer::singleShot(0, this, SLOT(postLaunch()));  } @@ -158,9 +165,9 @@ void MainWindow::postLaunch()      connect(m_view, SIGNAL(loadProgress(int)), this, SLOT(slotLoadProgress(int)));      connect(m_view, SIGNAL(printRequested(QWebFrame *)), this, SLOT(printRequested(QWebFrame *))); -    // status bar messages -    connect(m_view, SIGNAL(showStatusBarMessage(const QString&)), statusBar(), SLOT(showMessage(const QString&))); -    connect(m_view, SIGNAL(linkHovered(const QString&)), statusBar(), SLOT(showMessage(const QString&))); +    // "status bar" messages (new notifyMessage system) +    connect(m_view, SIGNAL(showStatusBarMessage(const QString&, Rekonq::Notify)), this, SLOT(notifyMessage(const QString&, Rekonq::Notify))); +    connect(m_view, SIGNAL(linkHovered(const QString&)), this, SLOT(notifyMessage(const QString&)));      // update toolbar actions signals      connect(m_view, SIGNAL(tabsChanged()), this, SLOT(slotUpdateActions())); @@ -251,7 +258,6 @@ void MainWindow::setupActions()      // stop reload Action      m_stopReloadAction = new KAction(KIcon("view-refresh"), i18n("Reload"), this); -    m_stopReloadAction->setShortcut(KShortcut(Qt::Key_F5));      actionCollection()->addAction(QLatin1String("stop_reload") , m_stopReloadAction);      m_stopReloadAction->setShortcutConfigurable(false); @@ -349,7 +355,6 @@ void MainWindow::setupHistoryMenu()  {      HistoryMenu *historyMenu = new HistoryMenu(this);      connect(historyMenu, SIGNAL(openUrl(const KUrl&)), this, SLOT(loadUrl(const KUrl&))); -    connect(historyMenu, SIGNAL(hovered(const QString&)), this, SLOT(slotUpdateStatusbar(const QString&)));      historyMenu->setTitle(i18n("&History"));      // setting history menu position @@ -427,7 +432,13 @@ void MainWindow::slotOpenLocation()  void MainWindow::slotFileSaveAs()  {      KUrl srcUrl = currentTab()->url(); -    // FIXME implement download file  +     +    const QString destUrl = KFileDialog::getSaveFileName(srcUrl.fileName(), QString(), this); +    if (destUrl.isEmpty()) return; +    KIO::Job *job = KIO::file_copy(srcUrl, KUrl(destUrl), -1, KIO::Overwrite); +    job->addMetaData("MaxCacheSize", "0");  // Don't store in http cache. +    job->addMetaData("cache", "cache");     // Use entry from cache if available. +    job->uiDelegate()->setAutoErrorHandlingEnabled(true);  } @@ -449,12 +460,6 @@ void MainWindow::slotPreferences()  } -void MainWindow::slotUpdateStatusbar(const QString &string) -{ -    statusBar()->showMessage(string, 2000); -} - -  void MainWindow::slotUpdateActions()  {      m_historyBackAction->setEnabled(currentTab()->history()->canGoBack()); @@ -578,7 +583,7 @@ void MainWindow::slotFindNext()      if (!currentTab()->findText(m_lastSearch, options))      { -        slotUpdateStatusbar(QString(m_lastSearch) + i18n(" not found.")); +        notifyMessage(QString(m_lastSearch) + i18n(" not found."));      }  } @@ -594,7 +599,7 @@ void MainWindow::slotFindPrevious()      if (!currentTab()->findText(m_lastSearch, options))      { -        slotUpdateStatusbar(QString(m_lastSearch) + i18n(" not found.")); +        notifyMessage(QString(m_lastSearch) + i18n(" not found."));      }  } @@ -629,7 +634,6 @@ void MainWindow::slotViewFullScreen(bool makeFullScreen)      static bool menubarFlag;      static bool mainToolBarFlag;      static bool bookmarksToolBarFlag; -    static bool statusBarFlag;      static bool sidePanelFlag;      if (makeFullScreen == true) @@ -638,13 +642,11 @@ void MainWindow::slotViewFullScreen(bool makeFullScreen)          menubarFlag = menuBar()->isHidden();          mainToolBarFlag = toolBar("mainToolBar")->isHidden();          bookmarksToolBarFlag = toolBar("bookmarksToolBar")->isHidden(); -        statusBarFlag = statusBar()->isHidden();          sidePanelFlag = sidePanel()->isHidden();          menuBar()->hide();          toolBar("mainToolBar")->hide();          toolBar("bookmarksToolBar")->hide(); -        statusBar()->hide();          sidePanel()->hide();      }      else @@ -655,8 +657,6 @@ void MainWindow::slotViewFullScreen(bool makeFullScreen)              toolBar("mainToolBar")->show();          if (!bookmarksToolBarFlag)              toolBar("bookmarksToolBar")->show(); -        if (!statusBarFlag) -            statusBar()->show();          if (!sidePanelFlag)              sidePanel()->show();      } @@ -839,3 +839,51 @@ QAction *MainWindow::actionByName(const QString name)      return new QAction(this);  // return empty object instead of NULL pointer  } + + +// FIXME: better implement me, please!! +void MainWindow::notifyMessage(const QString &msg, Rekonq::Notify status) +{ +    // deleting popus if empty msgs +    if(msg.isEmpty()) +    { +        delete m_popup; +        return; +    } + +    if(m_popup) +        delete m_popup; + +    m_popup = new KPassivePopup(this); +    m_popup->setAutoDelete(true); + +    QPixmap px; +    QString pixPath; + +    switch(status) +    { +    case Rekonq::Info: +        break; +    case Rekonq::Success: +        break; +    case Rekonq::Error: +        break; +    case Rekonq::Download: +        break; +    default: +        kDebug() << "nothing to be notified.."; +        break; +    } + +    m_popup->setView(msg); + +    int h = KGlobalSettings::generalFont().pointSize(); +    kWarning() << "h: " << h; + +    // setting popus in bottom-left position +    int x = geometry().x(); +    int y = geometry().y() + height() - h*4; +    QPoint p(x,y); + +    m_popup->show(p); +} diff --git a/src/mainwindow.h b/src/mainwindow.h index aade6fd8..b276a544 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -41,6 +41,7 @@ class KUrl;  class KAction;  class KActionMenu;  class KMenu; +class KPassivePopup;  class HistoryMenu;  class FindBar; @@ -48,6 +49,23 @@ class SidePanel;  class WebView; +// namespace Rekonq +// { +//     /** +//      * @short notifying message status +//      * Different message status +//      */ +//  +//     enum Notify +//     { +//         Success,    ///< url successfully (down)loaded +//         Error,      ///< url failed to (down)load +//         Download,   ///< downloading url +//         Info        ///< information, (default) +//     }; +// } + +  /**   * This class serves as the main window for rekonq.   * It handles the menus, toolbars, and status bars. @@ -78,6 +96,17 @@ public slots:      void loadUrl(const KUrl &url);      void slotUpdateBrowser(); +    /** +     * Notifies a message in a popup +     * +     * @param msg The message to notify +     * +     * @param status The status message +     * +     */ +    void notifyMessage(const QString &msg, Rekonq::Notify status = Rekonq::Info); + +  protected:      bool queryClose(); @@ -85,15 +114,12 @@ private slots:      void postLaunch();      void slotUpdateConfiguration();      void slotLoadProgress(int); -    void slotUpdateStatusbar(const QString &string);      void slotUpdateActions();      void slotUpdateWindowTitle(const QString &title = QString());      void slotOpenLocation(); -//     void slotAboutToShowBackMenu();      void geometryChangeRequested(const QRect &geometry);      // history related -//     void slotOpenActionUrl(QAction *action);      void slotOpenPrevious();      void slotOpenNext(); @@ -141,6 +167,8 @@ private:      QString m_lastSearch;      QString m_homePage; + +    QPointer<KPassivePopup> m_popup;  };  #endif // MAINWINDOW_H diff --git a/src/modelmenu.cpp b/src/modelmenu.cpp index 8f174797..41c197f3 100644 --- a/src/modelmenu.cpp +++ b/src/modelmenu.cpp @@ -145,19 +145,25 @@ void ModelMenu::aboutToShow()      postPopulated();  } + +// WARNING  +// the code commented out here is to create a second separator in the history menu +// with ALL history, subdivided by days.   void ModelMenu::createMenu(const QModelIndex &parent, int max, QMenu *parentMenu, QMenu *menu)  { +    Q_UNUSED(parentMenu) +      if (!menu)      { -        QString title = parent.data().toString(); -        menu = new QMenu(title, this); -        QIcon icon = qvariant_cast<QIcon>(parent.data(Qt::DecorationRole)); -        menu->setIcon(icon); -        parentMenu->addMenu(menu); -        QVariant v; -        v.setValue(parent); -        menu->menuAction()->setData(v); -        connect(menu, SIGNAL(aboutToShow()), this, SLOT(aboutToShow())); +//         QString title = parent.data().toString(); +//         menu = new QMenu(title, this); +//         QIcon icon = qvariant_cast<QIcon>(parent.data(Qt::DecorationRole)); +//         menu->setIcon(icon); +//         parentMenu->addMenu(menu); +//         QVariant v; +//         v.setValue(parent); +//         menu->menuAction()->setData(v); +//         connect(menu, SIGNAL(aboutToShow()), this, SLOT(aboutToShow()));          return;      } @@ -171,12 +177,12 @@ void ModelMenu::createMenu(const QModelIndex &parent, int max, QMenu *parentMenu      for (int i = 0; i < end; ++i)      {          QModelIndex idx = m_model->index(i, 0, parent); -/*        if (m_model->hasChildren(idx)) -        { -            createMenu(idx, -1, menu); -        } -        else -        {*/ +//         if (m_model->hasChildren(idx)) +//         { +//             createMenu(idx, -1, menu); +//         } +//         else +//         {              if (m_separatorRole != 0                      && idx.data(m_separatorRole).toBool())                  addSeparator(); diff --git a/src/rekonqui.rc b/src/rekonqui.rc index 2a366229..dfc8bd2b 100644 --- a/src/rekonqui.rc +++ b/src/rekonqui.rc @@ -1,6 +1,6 @@  <?xml version="1.0"?>  <!DOCTYPE gui SYSTEM "kpartgui.dtd"> -<gui name="rekonq" version="41"> +<gui name="rekonq" version="42">  <MenuBar> @@ -36,7 +36,7 @@  <!--  ============ VIEW menu =========== -->  <Menu name="view" noMerge="1"><text>&View</text> -    <Action name="stop_reload" /> +    <Action name="view_redisplay" />      <Action name="go_home" />      <Separator/>      <Action name="bigger_font" /> @@ -67,7 +67,6 @@  <!--  ============ SETTINGS menu =========== -->  <Menu name="settings" noMerge="1"><text>&Settings</text>      <Action name="options_show_menubar" /> -    <Action name="options_show_statusbar" />      <Merge name="StandardToolBarMenuHandler" />      <Merge/>      <Separator/> diff --git a/src/webpage.cpp b/src/webpage.cpp index 39511760..8c6c0d2a 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -141,7 +141,7 @@ void WebPage::slotHandleUnsupportedContent(QNetworkReply *reply)      KParts::BrowserRun::AskSaveResult res = KParts::BrowserRun::askSave(                                                  url,                                                  offer, -                                                mimetype,    +                                                mimetype,                                                  filename                                              );      switch (res)  diff --git a/src/webpage.h b/src/webpage.h index 8ed53a2d..8fe9517d 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -3,9 +3,7 @@  * This file is a part of the rekonq project  *  * Copyright (C) 2007-2008 Trolltech ASA. All rights reserved -* Copyright (C) 2008 Benjamin C. Meyer <ben@meyerhome.net>  * Copyright (C) 2008-2009 by Andrea Diamantini <adjam7 at gmail dot com> -* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>  *  *  * This program is free software; you can redistribute it @@ -24,6 +22,7 @@  #ifndef WEBPAGE_H  #define WEBPAGE_H +  // KDE Includes  #include <KUrl> @@ -34,13 +33,10 @@  #include <QWebPage>  // Forward Declarations - -  class QWebFrame;  class QNetworkReply; -  class WebPage : public KWebPage  {      Q_OBJECT | 
