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:
@@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user