Closed Splits

This commit is contained in:
hemirt
2018-10-09 19:43:29 +02:00
parent 31b9d497d7
commit b3a41e5c1a
5 changed files with 119 additions and 2 deletions
+22
View File
@@ -15,8 +15,10 @@
#include "widgets/dialogs/UpdateDialog.hpp"
#include "widgets/dialogs/WelcomeDialog.hpp"
#include "widgets/helper/EffectLabel.hpp"
#include "widgets/helper/NotebookTab.hpp"
#include "widgets/helper/Shortcut.hpp"
#include "widgets/helper/TitlebarButton.hpp"
#include "widgets/splits/ClosedSplits.hpp"
#include "widgets/splits/Split.hpp"
#include "widgets/splits/SplitContainer.hpp"
@@ -304,6 +306,26 @@ void Window::addShortcuts()
// Close tab
createWindowShortcut(this, "CTRL+SHIFT+W",
[this] { this->notebook_->removeCurrentPage(); });
// Reopen last closed split
createWindowShortcut(this, "CTRL+G", [this] {
if (ClosedSplits::empty()) {
return;
}
ClosedSplits::SplitInfo si = ClosedSplits::pop();
SplitContainer *splitContainer{nullptr};
if (si.tab) {
splitContainer = dynamic_cast<SplitContainer *>(si.tab->page);
}
if (!splitContainer) {
splitContainer = this->notebook_->getOrAddSelectedPage();
}
this->notebook_->select(splitContainer);
Split *split = new Split(splitContainer);
splitContainer->appendSplit(split);
split->setChannel(
getApp()->twitch.server->getOrAddChannel(si.channelName));
});
}
#define UGLYMACROHACK1(s) #s