summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/application.cpp1
-rw-r--r--src/application.h13
-rw-r--r--src/main.cpp2
-rw-r--r--src/mainview.cpp25
-rw-r--r--src/mainview.h6
-rw-r--r--src/mainwindow.cpp86
-rw-r--r--src/mainwindow.h34
-rw-r--r--src/modelmenu.cpp36
-rw-r--r--src/rekonqui.rc5
-rw-r--r--src/webpage.cpp2
-rw-r--r--src/webpage.h6
11 files changed, 144 insertions, 72 deletions
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>&amp;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>&amp;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