mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
49458e4fac
Add links to Streamlink website and download page to Streamlink settings page Make streamlink custom path usage more explicit Change how streamlink runs, it now works perfectly on Linux so that if you don't have a custom path set, it will try to just run "streamlink" in your PATH variable This needs testing on Windows again
80 lines
3 KiB
C++
80 lines
3 KiB
C++
#include "externaltoolspage.hpp"
|
|
|
|
#include "application.hpp"
|
|
#include "util/layoutcreator.hpp"
|
|
|
|
#include <QGroupBox>
|
|
|
|
#define STREAMLINK_QUALITY "Choose", "Source", "High", "Medium", "Low", "Audio only"
|
|
|
|
namespace chatterino {
|
|
namespace widgets {
|
|
namespace settingspages {
|
|
|
|
namespace {
|
|
|
|
QString CreateLink(const QString &url, const QString &name)
|
|
{
|
|
return QString("<a href=\"" + url + "\"><span style=\"color: white;\">" + name + "</span></a>");
|
|
}
|
|
|
|
} // namespace
|
|
|
|
ExternalToolsPage::ExternalToolsPage()
|
|
: SettingsPage("External tools", "")
|
|
{
|
|
auto app = getApp();
|
|
|
|
util::LayoutCreator<ExternalToolsPage> layoutCreator(this);
|
|
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
|
|
|
|
{
|
|
auto group = layout.emplace<QGroupBox>("Streamlink");
|
|
auto groupLayout = group.setLayoutType<QFormLayout>();
|
|
|
|
auto description =
|
|
new QLabel("Streamlink is a command-line utility that pipes video streams from various "
|
|
"services into a video player, such as VLC. Make sure to edit the "
|
|
"configuration file before you use it!");
|
|
description->setWordWrap(true);
|
|
description->setStyleSheet("color: #bbb");
|
|
|
|
auto links = new QLabel(
|
|
CreateLink("https://streamlink.github.io/", "Website") + " " +
|
|
CreateLink("https://github.com/streamlink/streamlink/releases/latest", "Download"));
|
|
links->setTextFormat(Qt::RichText);
|
|
links->setTextInteractionFlags(Qt::TextBrowserInteraction | Qt::LinksAccessibleByKeyboard |
|
|
Qt::LinksAccessibleByKeyboard);
|
|
links->setOpenExternalLinks(true);
|
|
|
|
groupLayout->setWidget(0, QFormLayout::SpanningRole, description);
|
|
groupLayout->setWidget(1, QFormLayout::SpanningRole, links);
|
|
|
|
auto customPathCb = this->createCheckBox(
|
|
"Use custom path (Enable if using non-standard streamlink installation path)",
|
|
app->settings->streamlinkUseCustomPath);
|
|
groupLayout->setWidget(2, QFormLayout::SpanningRole, customPathCb);
|
|
|
|
auto customPath = this->createLineEdit(app->settings->streamlinkPath);
|
|
customPath->setPlaceholderText("Path to folder where Streamlink executable can be found");
|
|
groupLayout->addRow("Custom streamlink path:", customPath);
|
|
groupLayout->addRow(
|
|
"Preferred quality:",
|
|
this->createComboBox({STREAMLINK_QUALITY}, app->settings->preferredQuality));
|
|
groupLayout->addRow("Additional options:",
|
|
this->createLineEdit(app->settings->streamlinkOpts));
|
|
|
|
app->settings->streamlinkUseCustomPath.connect(
|
|
[=](const auto &value, auto) {
|
|
customPath->setEnabled(value); //
|
|
},
|
|
this->managedConnections);
|
|
}
|
|
|
|
layout->addStretch(1);
|
|
}
|
|
|
|
} // namespace settingspages
|
|
} // namespace widgets
|
|
} // namespace chatterino
|