summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bookmarks/bookmarksmanager.cpp34
-rw-r--r--src/bookmarks/bookmarksmanager.h2
-rw-r--r--src/mainwindow.cpp4
-rw-r--r--src/webview.cpp44
-rw-r--r--src/webview.h6
5 files changed, 77 insertions, 13 deletions
diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp
index d54abb3c..7e933599 100644
--- a/src/bookmarks/bookmarksmanager.cpp
+++ b/src/bookmarks/bookmarksmanager.cpp
@@ -35,6 +35,7 @@
#include "mainwindow.h"
#include "webtab.h"
#include "webview.h"
+#include "mainview.h"
#include "bookmarkcontextmenu.h"
// KDE Includes
@@ -53,7 +54,6 @@
#include <QtGui/QActionGroup>
-
BookmarkOwner::BookmarkOwner(QObject *parent)
: QObject(parent)
, KBookmarkOwner()
@@ -112,6 +112,22 @@ void BookmarkOwner::openFolderinTabs(const KBookmarkGroup &bm)
}
+QList< QPair<QString, QString> > BookmarkOwner::currentBookmarkList() const
+{
+ QList< QPair<QString, QString> > bkList;
+ int tabNumber = Application::instance()->mainWindow()->mainView()->count();
+
+ for(int i = 0; i < tabNumber; i++)
+ {
+ QPair<QString, QString> item;
+ item.first = Application::instance()->mainWindow()->mainView()->webTab(i)->view()->title();
+ item.second = Application::instance()->mainWindow()->mainView()->webTab(i)->url().url();
+ bkList += item;
+ }
+ return bkList;
+}
+
+
// ------------------------------------------------------------------------------------------------------
@@ -405,9 +421,19 @@ void BookmarkActionMenu::addFolderActions()
if(!m_group.first().isNull())
{
- action = new KAction(KIcon("tab-new"), i18n("Open Folder in Tabs"), this);
- connect(action, SIGNAL(triggered(bool)), this, SLOT(openActionInTabs()));
- addAction(action);
+ KBookmark bookmark = m_group.first();
+
+ while(bookmark.isGroup() || bookmark.isSeparator())
+ {
+ bookmark = m_group.next(bookmark);
+ }
+
+ if(!bookmark.isNull())
+ {
+ action = new KAction(KIcon("tab-new"), i18n("Open Folder in Tabs"), this);
+ connect(action, SIGNAL(triggered(bool)), this, SLOT(openActionInTabs()));
+ addAction(action);
+ }
}
action = new KAction(KIcon("bookmark-new"), i18n("Add Bookmark Here"), this);
diff --git a/src/bookmarks/bookmarksmanager.h b/src/bookmarks/bookmarksmanager.h
index c8264633..7fb02970 100644
--- a/src/bookmarks/bookmarksmanager.h
+++ b/src/bookmarks/bookmarksmanager.h
@@ -115,6 +115,8 @@ public:
*/
virtual void openFolderinTabs(const KBookmarkGroup &bm);
+ virtual QList< QPair<QString, QString> > currentBookmarkList() const;
+
signals:
/**
* This signal is emitted when an url has to be loaded
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index abee13d5..898aa842 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -845,8 +845,8 @@ void MainWindow::highlightAll()
if(m_findBar->highlightAllState() && !m_findBar->isHidden())
{
- if (m_findBar->matchCase())
- options |= QWebPage::FindCaseSensitively;
+ if (m_findBar->matchCase())
+ options |= QWebPage::FindCaseSensitively;
currentTab()->view()->findText(m_lastSearch, options);
}
diff --git a/src/webview.cpp b/src/webview.cpp
index e874411d..6f6ec128 100644
--- a/src/webview.cpp
+++ b/src/webview.cpp
@@ -66,7 +66,8 @@ WebView::WebView(QWidget* parent)
, _scrollTimer( new QTimer(this) )
, _VScrollSpeed(0)
, _HScrollSpeed(0)
- , _disableAutoScroll(false)
+ , _canEnableAutoScroll(true)
+ , _isAutoScrollEnabled(false)
{
WebPage *page = new WebPage(this);
setPage(page);
@@ -321,27 +322,60 @@ void WebView::contextMenuEvent(QContextMenuEvent *event)
void WebView::mousePressEvent(QMouseEvent *event)
{
- QWebHitTestResult result = page()->mainFrame()->hitTestContent( event->pos() );
- _disableAutoScroll = result.isContentEditable();
+ if(_isAutoScrollEnabled)
+ {
+ setCursor(Qt::ArrowCursor);
+ _VScrollSpeed = 0;
+ _HScrollSpeed = 0;
+ _scrollTimer->stop();
+ _isAutoScrollEnabled = false;
+ return;
+ }
+ QWebHitTestResult result = page()->mainFrame()->hitTestContent( event->pos() );
+ _canEnableAutoScroll = !result.isContentEditable() && result.linkUrl().isEmpty();
+
switch(event->button())
{
case Qt::XButton1:
triggerPageAction(KWebPage::Back);
break;
+
case Qt::XButton2:
triggerPageAction(KWebPage::Forward);
break;
+
+ case Qt::MidButton:
+ if(_canEnableAutoScroll && !_isAutoScrollEnabled)
+ {
+ setCursor( KIcon("transform-move").pixmap(32) );
+ _clickPos = event->pos();
+ _isAutoScrollEnabled = true;
+ }
+ break;
+
default:
- KWebView::mousePressEvent(event);
break;
};
+ KWebView::mousePressEvent(event);
}
void WebView::mouseMoveEvent(QMouseEvent *event)
{
_mousePos = event->pos();
+
+ if(_isAutoScrollEnabled)
+ {
+ QPoint r = _mousePos - _clickPos;
+ _HScrollSpeed = r.x() / 2; // you are too fast..
+ _VScrollSpeed = r.y() / 2;
+ if( !_scrollTimer->isActive() )
+ _scrollTimer->start();
+
+ return;
+ }
+
if (Application::instance()->mainWindow()->isFullScreen())
{
if (event->pos().y()>=0 && event->pos().y()<=4)
@@ -430,7 +464,7 @@ void WebView::keyPressEvent(QKeyEvent *event)
}
}
- if(_disableAutoScroll)
+ if(!_canEnableAutoScroll)
{
KWebView::keyPressEvent(event);
return;
diff --git a/src/webview.h b/src/webview.h
index 0fe83ae4..c6ca2688 100644
--- a/src/webview.h
+++ b/src/webview.h
@@ -52,7 +52,7 @@ public:
protected:
void contextMenuEvent(QContextMenuEvent *event);
- void mousePressEvent(QMouseEvent *event); // need to be ported
+ void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void keyPressEvent(QKeyEvent *event);
@@ -75,11 +75,13 @@ signals:
private:
QPoint _mousePos;
+ QPoint _clickPos;
QTimer *_scrollTimer;
int _VScrollSpeed;
int _HScrollSpeed;
- bool _disableAutoScroll;
+ bool _canEnableAutoScroll;
+ bool _isAutoScrollEnabled;
};
#endif