From 72cf5c1727345cca277b36702a59c58b9be5ef58 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 11 Dec 2008 14:34:42 +0100 Subject: ( SHIFT + ) CTRL + TAB switching. Finally!! --- src/browsermainwindow.cpp | 2 +- src/browsermainwindow.h | 3 +-- src/tabwidget.cpp | 4 ++++ src/tabwidget.h | 1 + src/webview.cpp | 20 +++++++++++++++++++- src/webview.h | 11 +++++++++++ 6 files changed, 37 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 3375aa89..ac05a249 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -620,7 +620,7 @@ void BrowserMainWindow::closeEvent(QCloseEvent *event) { int ret = KMessageBox::warningYesNo(this, i18n("Are you sure you want to close the window?" " There are %1 tab open" , m_tabWidget->count() ) , - QString() ); + i18n("Closing") ); if (ret == KMessageBox::No) { event->ignore(); diff --git a/src/browsermainwindow.h b/src/browsermainwindow.h index 19ab51c9..9cb9fe18 100644 --- a/src/browsermainwindow.h +++ b/src/browsermainwindow.h @@ -53,9 +53,8 @@ class BrowserMainWindow : public KMainWindow public: BrowserMainWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0); ~BrowserMainWindow(); - QSize sizeHint() const; -public: + QSize sizeHint() const; static KUrl guessUrlFromString(const QString &url); TabWidget *tabWidget() const; WebView *currentTab() const; diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index 0b815b6e..54db660a 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -511,6 +511,10 @@ WebView *TabWidget::newTab(bool makeCurrent) connect(webView->page(), SIGNAL(menuBarVisibilityChangeRequested(bool)), this, SIGNAL(menuBarVisibilityChangeRequested(bool))); connect(webView->page(), SIGNAL(statusBarVisibilityChangeRequested(bool)), this, SIGNAL(statusBarVisibilityChangeRequested(bool))); connect(webView->page(), SIGNAL(toolBarVisibilityChangeRequested(bool)), this, SIGNAL(toolBarVisibilityChangeRequested(bool))); + + connect(webView, SIGNAL( ctrlTabPressed() ), this, SLOT( nextTab() ) ); + connect(webView, SIGNAL( shiftCtrlTabPressed() ), this, SLOT( previousTab() ) ); + addTab(webView, i18n("(Untitled)") ); if (makeCurrent) setCurrentWidget(webView); diff --git a/src/tabwidget.h b/src/tabwidget.h index 27cc4611..72fbc0a7 100644 --- a/src/tabwidget.h +++ b/src/tabwidget.h @@ -176,6 +176,7 @@ protected: void contextMenuEvent(QContextMenuEvent *event); void mouseReleaseEvent(QMouseEvent *event); + public slots: void loadUrlInCurrentTab(const KUrl &url); WebView *newTab(bool makeCurrent = true); diff --git a/src/webview.cpp b/src/webview.cpp index b03c9291..19bf60ee 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -177,7 +177,6 @@ WebView::WebView(QWidget* parent) connect(page(), SIGNAL(loadingUrl(const QUrl&)), this, SIGNAL(urlChanged(const QUrl &))); connect(page(), SIGNAL(downloadRequested(const QNetworkRequest &)), this, SLOT(downloadRequested(const QNetworkRequest &))); page()->setForwardUnsupportedContent(true); - } @@ -297,3 +296,22 @@ void WebView::downloadRequested(const QNetworkRequest &request) { BrowserApplication::downloadManager()->download(request); } + + +void WebView::keyPressEvent(QKeyEvent *event) +{ + if ( (event->modifiers() == Qt::ControlModifier) && (event->key() == Qt::Key_Tab) ) + { + emit ctrlTabPressed(); + return; + } + + if( (event->modifiers() == Qt::ControlModifier + Qt::ShiftModifier) && (event->key() == Qt::Key_Backtab) ) + { + emit shiftCtrlTabPressed(); + return; + } + + QWebView::keyPressEvent( event ); +} + diff --git a/src/webview.h b/src/webview.h index 62d4f3a5..ae5230ce 100644 --- a/src/webview.h +++ b/src/webview.h @@ -82,12 +82,23 @@ public: QString lastStatusBarText() const; inline int progress() const { return m_progress; } +signals: + // switching tabs + void ctrlTabPressed(); + void shiftCtrlTabPressed(); + protected: void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void contextMenuEvent(QContextMenuEvent *event); void wheelEvent(QWheelEvent *event); + /** + * FIlters (SHIFT + ) CTRL + TAB events and emit (shift)ctrlTabPressed() + * to make switch tab + */ + void keyPressEvent(QKeyEvent *event); + private slots: void setProgress(int progress); void loadFinished(); -- cgit v1.2.1