Added "Open in: new tab, browser player, streamlink" in twitch link context menu. (#2988)

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
This commit is contained in:
SLCH
2021-07-11 15:54:19 +04:00
committed by GitHub
parent 975b39fe10
commit faafbdaad4
5 changed files with 99 additions and 22 deletions
+17 -2
View File
@@ -1924,7 +1924,7 @@ void ChannelView::addContextMenuItems(
crossPlatformCopy(copyString);
});
// Open in new split.
// If is a link to a twitch user/stream
if (hoveredElement->getLink().type == Link::Url)
{
static QRegularExpression twitchChannelRegex(
@@ -1943,7 +1943,22 @@ void ChannelView::addContextMenuItems(
{
menu->addSeparator();
menu->addAction("Open in new split", [twitchUsername, this] {
this->joinToChannel.invoke(twitchUsername);
this->openChannelIn.invoke(twitchUsername,
FromTwitchLinkOpenChannelIn::Split);
});
menu->addAction("Open in new tab", [twitchUsername, this] {
this->openChannelIn.invoke(twitchUsername,
FromTwitchLinkOpenChannelIn::Tab);
});
menu->addSeparator();
menu->addAction("Open player in browser", [twitchUsername, this] {
this->openChannelIn.invoke(
twitchUsername, FromTwitchLinkOpenChannelIn::BrowserPlayer);
});
menu->addAction("Open in streamlink", [twitchUsername, this] {
this->openChannelIn.invoke(
twitchUsername, FromTwitchLinkOpenChannelIn::Streamlink);
});
}
}
+9 -1
View File
@@ -47,6 +47,13 @@ enum class PauseReason {
KeyboardModifier,
};
enum class FromTwitchLinkOpenChannelIn {
Split,
Tab,
BrowserPlayer,
Streamlink,
};
using SteadyClock = std::chrono::steady_clock;
class ChannelView final : public BaseWidget
@@ -96,7 +103,8 @@ public:
pajlada::Signals::Signal<HighlightState> tabHighlightRequested;
pajlada::Signals::NoArgSignal liveStatusChanged;
pajlada::Signals::Signal<const Link &> linkClicked;
pajlada::Signals::Signal<QString> joinToChannel;
pajlada::Signals::Signal<QString, FromTwitchLinkOpenChannelIn>
openChannelIn;
protected:
void themeChangedEvent() override;