Changeset View
Changeset View
Standalone View
Standalone View
src/ViewManager.cpp
Show All 40 Lines | |||||
41 | #include "Session.h" | 41 | #include "Session.h" | ||
42 | #include "TerminalDisplay.h" | 42 | #include "TerminalDisplay.h" | ||
43 | #include "SessionController.h" | 43 | #include "SessionController.h" | ||
44 | #include "SessionManager.h" | 44 | #include "SessionManager.h" | ||
45 | #include "ProfileManager.h" | 45 | #include "ProfileManager.h" | ||
46 | #include "ViewSplitter.h" | 46 | #include "ViewSplitter.h" | ||
47 | #include "Enumeration.h" | 47 | #include "Enumeration.h" | ||
48 | #include "ViewContainer.h" | 48 | #include "ViewContainer.h" | ||
49 | #include "ListTabbedSessionsPopup.h" | ||||
49 | 50 | | |||
50 | using namespace Konsole; | 51 | using namespace Konsole; | ||
51 | 52 | | |||
52 | int ViewManager::lastManagerId = 0; | 53 | int ViewManager::lastManagerId = 0; | ||
53 | 54 | | |||
54 | ViewManager::ViewManager(QObject *parent, KActionCollection *collection) : | 55 | ViewManager::ViewManager(QObject *parent, KActionCollection *collection) : | ||
55 | QObject(parent), | 56 | QObject(parent), | ||
56 | _viewSplitter(nullptr), | 57 | _viewSplitter(nullptr), | ||
▲ Show 20 Lines • Show All 224 Lines • ▼ Show 20 Line(s) | |||||
281 | #endif | 282 | #endif | ||
282 | connect(moveViewRightAction, &QAction::triggered, this, | 283 | connect(moveViewRightAction, &QAction::triggered, this, | ||
283 | &Konsole::ViewManager::moveActiveViewRight); | 284 | &Konsole::ViewManager::moveActiveViewRight); | ||
284 | _viewSplitter->addAction(moveViewRightAction); | 285 | _viewSplitter->addAction(moveViewRightAction); | ||
285 | 286 | | |||
286 | connect(lastViewAction, &QAction::triggered, this, &Konsole::ViewManager::lastView); | 287 | connect(lastViewAction, &QAction::triggered, this, &Konsole::ViewManager::lastView); | ||
287 | _viewSplitter->addAction(lastViewAction); | 288 | _viewSplitter->addAction(lastViewAction); | ||
288 | 289 | | |||
289 | collection->setDefaultShortcut(lastUsedViewAction, Qt::CTRL + Qt::Key_Tab); | 290 | QAction* contextSwitcher = new QAction(); | ||
291 | collection->setDefaultShortcut(contextSwitcher, Qt::CTRL + Qt::Key_Tab); | ||||
292 | connect(contextSwitcher, &QAction::triggered, this, &Konsole::ViewManager::displayTabChangeModalDialog); | ||||
293 | _viewSplitter->addAction(contextSwitcher); | ||||
294 | | ||||
295 | collection->setDefaultShortcut(lastUsedViewAction, Qt::CTRL + Qt::META + Qt::Key_Tab); | ||||
lucasew: What you think about change the previous context hotkey to shift instead of meta. Some well… | |||||
I think Alt instead of Meta should be used - KDE applications do not usually use Meta for non-global things (AFAIR). mglb: I think Alt instead of Meta should be used - KDE applications do not usually use Meta for non… | |||||
290 | connect(lastUsedViewAction, &QAction::triggered, this, &Konsole::ViewManager::lastUsedView); | 296 | connect(lastUsedViewAction, &QAction::triggered, this, &Konsole::ViewManager::lastUsedView); | ||
291 | _viewSplitter->addAction(lastUsedViewAction); | 297 | _viewSplitter->addAction(lastUsedViewAction); | ||
292 | 298 | | |||
293 | collection->setDefaultShortcut(lastUsedViewReverseAction, Qt::CTRL + Qt::SHIFT + Qt::Key_Tab); | 299 | collection->setDefaultShortcut(lastUsedViewReverseAction, Qt::CTRL + Qt::SHIFT + Qt::Key_Tab); | ||
mglb: Can you change this to be the shortcut from lastUsedViewAction + Shift? | |||||
294 | connect(lastUsedViewReverseAction, &QAction::triggered, this, &Konsole::ViewManager::lastUsedViewReverse); | 300 | connect(lastUsedViewReverseAction, &QAction::triggered, this, &Konsole::ViewManager::lastUsedViewReverse); | ||
295 | _viewSplitter->addAction(lastUsedViewReverseAction); | 301 | _viewSplitter->addAction(lastUsedViewReverseAction); | ||
296 | 302 | | |||
297 | connect(toggleTwoViewsAction, &QAction::triggered, this, &Konsole::ViewManager::toggleTwoViews); | 303 | connect(toggleTwoViewsAction, &QAction::triggered, this, &Konsole::ViewManager::toggleTwoViews); | ||
298 | _viewSplitter->addAction(toggleTwoViewsAction); | 304 | _viewSplitter->addAction(toggleTwoViewsAction); | ||
299 | } | 305 | } | ||
300 | 306 | | |||
301 | void ViewManager::switchToView(int index) | 307 | void ViewManager::switchToView(int index) | ||
302 | { | 308 | { | ||
303 | _viewSplitter->activeContainer()->setCurrentIndex(index); | 309 | _viewSplitter->activeContainer()->setCurrentIndex(index); | ||
304 | } | 310 | } | ||
305 | 311 | | |||
312 | void ViewManager::displayTabChangeModalDialog() | ||||
313 | { | ||||
314 | if (_altTabSwitcher) { | ||||
315 | _altTabSwitcher->focusNext(); | ||||
316 | return; | ||||
317 | } | ||||
318 | | ||||
319 | _altTabSwitcher = new ListTabbedSessionsPopup(_viewSplitter); | ||||
320 | _altTabSwitcher->show(); | ||||
321 | } | ||||
322 | | ||||
306 | void ViewManager::updateDetachViewState() | 323 | void ViewManager::updateDetachViewState() | ||
307 | { | 324 | { | ||
308 | Q_ASSERT(_actionCollection); | 325 | Q_ASSERT(_actionCollection); | ||
309 | if (_actionCollection == nullptr) { | 326 | if (_actionCollection == nullptr) { | ||
310 | return; | 327 | return; | ||
311 | } | 328 | } | ||
312 | 329 | | |||
313 | const bool splitView = _viewSplitter->containers().count() >= 2; | 330 | const bool splitView = _viewSplitter->containers().count() >= 2; | ||
▲ Show 20 Lines • Show All 831 Lines • Show Last 20 Lines |
What you think about change the previous context hotkey to shift instead of meta. Some well known software like browsers use this shortcut and I think it will be more natural and intuitive.