Merge lp:~artmello/webbrowser-app/webbrowser-app-keyboard_shortcuts into lp:webbrowser-app

Proposed by Bartosz Kosiorek
Status: Rejected
Rejected by: Olivier Tilloy
Proposed branch: lp:~artmello/webbrowser-app/webbrowser-app-keyboard_shortcuts
Merge into: lp:webbrowser-app
Diff against target: 195 lines (+167/-1)
3 files modified
src/app/webbrowser-window.cpp (+18/-1)
src/app/webbrowser-window.h (+2/-0)
src/app/webbrowser/Browser.qml (+147/-0)
To merge this branch: bzr merge lp:~artmello/webbrowser-app/webbrowser-app-keyboard_shortcuts
Reviewer Review Type Date Requested Status
Olivier Tilloy Disapprove
PS Jenkins bot continuous-integration Needs Fixing
Review via email: mp+248979@code.launchpad.net

Commit message

Add support to some keyboard shortcuts

Description of the change

Add support to some keyboard shortcuts

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Olivier Tilloy (osomon) wrote :
review: Disapprove

Unmerged revisions

505. By Arthur Mello

Merge with trunk

504. By Arthur Mello

Change the toggleFullScreen call

503. By Arthur Mello

Add support to some keyboard shortcuts

502. By Launchpad Translations on behalf of phablet-team

Launchpad automatic translations update.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/app/webbrowser-window.cpp'
2--- src/app/webbrowser-window.cpp 2013-09-14 13:49:29 +0000
3+++ src/app/webbrowser-window.cpp 2015-02-06 23:04:32 +0000
4@@ -48,4 +48,21 @@
5 _window->show();
6 }
7
8-
9+void WebBrowserWindow::setFullScreen(bool fullScreen)
10+{
11+ if ( ! _window)
12+ return;
13+
14+ if (!fullScreen && _window->windowState() == Qt::WindowFullScreen)
15+ _window->setWindowState(Qt::WindowNoState);
16+ else if (fullScreen && _window->windowState() != Qt::WindowFullScreen)
17+ _window->setWindowState(Qt::WindowFullScreen);
18+}
19+
20+void WebBrowserWindow::toggleFullScreen()
21+{
22+ if ( ! _window)
23+ return;
24+
25+ setFullScreen(_window->windowState() != Qt::WindowFullScreen);
26+}
27
28=== modified file 'src/app/webbrowser-window.h'
29--- src/app/webbrowser-window.h 2013-09-14 13:49:29 +0000
30+++ src/app/webbrowser-window.h 2015-02-06 23:04:32 +0000
31@@ -40,6 +40,8 @@
32 public slots:
33
34 void raise();
35+ void setFullScreen(bool fullScreen);
36+ void toggleFullScreen();
37
38
39 signals:
40
41=== modified file 'src/app/webbrowser/Browser.qml'
42--- src/app/webbrowser/Browser.qml 2015-02-03 11:06:09 +0000
43+++ src/app/webbrowser/Browser.qml 2015-02-06 23:04:32 +0000
44@@ -618,4 +618,151 @@
45 }
46 }
47 }
48+
49+ Keys.onPressed: {
50+ if (formFactor != "desktop")
51+ return;
52+
53+ if (event.modifiers & Qt.ControlModifier) {
54+ switch(event.key) {
55+ case Qt.Key_L:
56+ // Ctrl + l: Display the url bar
57+ if (panel.opened) {
58+ panel.close();
59+ } else {
60+ panel.chrome.addressBar.forceActiveFocus();
61+ panel.open();
62+ }
63+ event.accepted = true;
64+ break;
65+
66+ case Qt.Key_T:
67+ // Ctrl + t: Open new Tab
68+ openUrlInNewTab("", true);
69+ event.accepted = true;
70+ break;
71+
72+ case Qt.Key_W:
73+ // Ctrl + w: Close current Tab
74+ if (currentIndex >= 0) {
75+ closeTab(currentIndex);
76+ event.accepted = true;
77+ }
78+ break;
79+
80+ case Qt.Key_Tab:
81+ // Ctrl + Tab: Navigate between tabs
82+ if (tabsModel.count > 0) {
83+ var index = (currentIndex + 1) % tabsModel.count;
84+ switchToTab(index);
85+ event.accepted = true;
86+ }
87+ break;
88+
89+ case Qt.Key_R:
90+ // Ctrl + R: Reload current Tab
91+ if (currentWebview) {
92+ currentWebview.reload()
93+ event.accepted = true;
94+ }
95+ break;
96+
97+ case Qt.Key_D:
98+ // Ctrl + D: Bookmark current Tab
99+ if (currentWebview) {
100+ bookmarksModel.add(currentWebview.url, currentWebview.title, "")
101+ event.accepted = true;
102+ }
103+ break;
104+
105+ case Qt.Key_H:
106+ // Ctrl + H: Show History
107+ toggleActivityView();
108+ event.accepted = true;
109+ break;
110+
111+ case Qt.Key_Plus:
112+ console.log("TODO: Zoom in");
113+ event.accepted = true;
114+ break;
115+
116+ case Qt.Key_Minus:
117+ console.log("TODO: Zoom out");
118+ event.accepted = true;
119+ break;
120+
121+ case Qt.Key_0:
122+ console.log("TODO: No zoom");
123+ event.accepted = true;
124+ break;
125+ }
126+
127+ } else if (event.modifiers & Qt.ShiftModifier) {
128+ switch(event.key) {
129+ case Qt.Key_Backspace:
130+ // Shift + Backspace: Goes to the next page in history
131+ if (currentWebview) {
132+ currentWebview.goForward();
133+ event.accepted = true;
134+ }
135+ break;
136+ }
137+
138+ } else if (event.modifiers & Qt.AltModifier) {
139+ switch(event.key) {
140+ case Qt.Key_Left:
141+ // Alt + Left Arrow: Goes to the previous page in history
142+ if (currentWebview) {
143+ currentWebview.goBack();
144+ event.accepted = true;
145+ }
146+ break;
147+
148+ case Qt.Key_Right:
149+ // Alt + Right Arrow: Goes to the previous page in history
150+ if (currentWebview) {
151+ currentWebview.goForward();
152+ event.accepted = true;
153+ }
154+ break;
155+ }
156+
157+ } else {
158+ switch(event.key) {
159+ /* XXX: It is documented for Chrome but does not seems to work
160+ case Qt.Key_Backspace:
161+ // Backspace: Goes to the previous page in history
162+ // XXX: Check how it is handled when we are at a text input
163+ if (currentWebview && !panel.chrome.addressBar.focus) {
164+ currentWebview.goBack()
165+ event.accepted = true;
166+ }
167+ break;
168+ */
169+
170+ case Qt.Key_F6:
171+ // F6: Display the url bar
172+ if (panel.opened) {
173+ panel.close();
174+ } else {
175+ panel.chrome.addressBar.forceActiveFocus();
176+ panel.open();
177+ }
178+ event.accepted = true;
179+ break;
180+
181+ case Qt.Key_F11:
182+ // F11: Toggle window fullscreen
183+ webbrowserWindow.toggleFullScreen();
184+ event.accepted = true;
185+ break;
186+
187+ case Qt.Key_Escape:
188+ // Esc: Return from fullscreen
189+ webbrowserWindow.setFullScreen(false)
190+ event.accepted = true;
191+ break;
192+ }
193+ }
194+ }
195 }

Subscribers

People subscribed via source and target branches

to status/vote changes: