mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Added /popup
command to open currently focused split or supplied channel in a new window (#3529)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
parent
e29740bd59
commit
34aadbf7d8
|
@ -53,6 +53,7 @@
|
||||||
- Minor: Opening streamlink through hotkeys and/or split header menu matches `/streamlink` command and shows feedback in chat as well. (#3510)
|
- Minor: Opening streamlink through hotkeys and/or split header menu matches `/streamlink` command and shows feedback in chat as well. (#3510)
|
||||||
- Minor: Removed timestamp from AutoMod messages. (#3503)
|
- Minor: Removed timestamp from AutoMod messages. (#3503)
|
||||||
- Minor: Added ability to copy message ID with `Shift + Right Click`. (#3481)
|
- Minor: Added ability to copy message ID with `Shift + Right Click`. (#3481)
|
||||||
|
- Minor: Added /popup command to open currently focused split or supplied channel in a new window. (#3529)
|
||||||
- Minor: Colorize the entire split header when focused. (#3379)
|
- Minor: Colorize the entire split header when focused. (#3379)
|
||||||
- Minor: Added incremental search to channel search. (#3544)
|
- Minor: Added incremental search to channel search. (#3544)
|
||||||
- Minor: Show right click context menu anywhere within a message's line. (#3566)
|
- Minor: Show right click context menu anywhere within a message's line. (#3566)
|
||||||
|
|
|
@ -685,6 +685,51 @@ void CommandController::initialize(Settings &, Paths &paths)
|
||||||
return "";
|
return "";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this->registerCommand("/popup", [](const QStringList &words,
|
||||||
|
ChannelPtr channel) {
|
||||||
|
static const auto *usageMessage =
|
||||||
|
"Usage: /popup [channel]. Open specified Twitch channel in "
|
||||||
|
"a new window. If no channel argument is specified, open "
|
||||||
|
"the currently selected split instead.";
|
||||||
|
|
||||||
|
QString target(words.value(1));
|
||||||
|
stripChannelName(target);
|
||||||
|
|
||||||
|
if (target.isEmpty())
|
||||||
|
{
|
||||||
|
auto *currentPage =
|
||||||
|
dynamic_cast<SplitContainer *>(getApp()
|
||||||
|
->windows->getMainWindow()
|
||||||
|
.getNotebook()
|
||||||
|
.getSelectedPage());
|
||||||
|
if (currentPage != nullptr)
|
||||||
|
{
|
||||||
|
auto *currentSplit = currentPage->getSelectedSplit();
|
||||||
|
if (currentSplit != nullptr)
|
||||||
|
{
|
||||||
|
currentSplit->popup();
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
channel->addMessage(makeSystemMessage(usageMessage));
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
auto *app = getApp();
|
||||||
|
Window &window = app->windows->createWindow(WindowType::Popup, true);
|
||||||
|
|
||||||
|
auto *split = new Split(static_cast<SplitContainer *>(
|
||||||
|
window.getNotebook().getOrAddSelectedPage()));
|
||||||
|
|
||||||
|
split->setChannel(app->twitch.server->getOrAddChannel(target));
|
||||||
|
|
||||||
|
window.getNotebook().getOrAddSelectedPage()->appendSplit(split);
|
||||||
|
|
||||||
|
return "";
|
||||||
|
});
|
||||||
|
|
||||||
this->registerCommand("/clearmessages", [](const auto & /*words*/,
|
this->registerCommand("/clearmessages", [](const auto & /*words*/,
|
||||||
ChannelPtr channel) {
|
ChannelPtr channel) {
|
||||||
auto *currentPage = dynamic_cast<SplitContainer *>(
|
auto *currentPage = dynamic_cast<SplitContainer *>(
|
||||||
|
|
Loading…
Reference in a new issue