mirror-chatterino2/src/widgets/settingspages/ExternalToolsPage.cpp

86 lines
3 KiB
C++
Raw Normal View History

2018-06-26 17:42:35 +02:00
#include "ExternalToolsPage.hpp"
2018-04-25 20:35:32 +02:00
2018-06-26 14:09:39 +02:00
#include "Application.hpp"
#include "util/LayoutCreator.hpp"
2018-04-25 20:35:32 +02:00
#include <QGroupBox>
2018-08-06 21:17:03 +02:00
#define STREAMLINK_QUALITY \
"Choose", "Source", "High", "Medium", "Low", "Audio only"
2018-04-25 20:35:32 +02:00
namespace chatterino {
namespace {
QString CreateLink(const QString &url, const QString &name)
{
2018-08-06 21:17:03 +02:00
return QString("<a href=\"" + url + "\"><span style=\"color: white;\">" +
name + "</span></a>");
}
} // namespace
2018-04-25 20:35:32 +02:00
ExternalToolsPage::ExternalToolsPage()
: SettingsPage("External tools", "")
{
auto app = getApp();
2018-06-26 17:06:17 +02:00
LayoutCreator<ExternalToolsPage> layoutCreator(this);
2018-04-26 23:07:02 +02:00
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
2018-04-25 20:35:32 +02:00
{
auto group = layout.emplace<QGroupBox>("Streamlink");
auto groupLayout = group.setLayoutType<QFormLayout>();
2018-08-06 21:17:03 +02:00
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") + " " +
2018-08-06 21:17:03 +02:00
CreateLink(
"https://github.com/streamlink/streamlink/releases/latest",
"Download"));
links->setTextFormat(Qt::RichText);
2018-08-06 21:17:03 +02:00
links->setTextInteractionFlags(Qt::TextBrowserInteraction |
Qt::LinksAccessibleByKeyboard |
Qt::LinksAccessibleByKeyboard);
links->setOpenExternalLinks(true);
groupLayout->setWidget(0, QFormLayout::SpanningRole, description);
groupLayout->setWidget(1, QFormLayout::SpanningRole, links);
2018-08-06 21:17:03 +02:00
auto customPathCb =
this->createCheckBox("Use custom path (Enable if using "
"non-standard streamlink installation path)",
getSettings()->streamlinkUseCustomPath);
groupLayout->setWidget(2, QFormLayout::SpanningRole, customPathCb);
auto customPath = this->createLineEdit(getSettings()->streamlinkPath);
2018-08-06 21:17:03 +02:00
customPath->setPlaceholderText(
"Path to folder where Streamlink executable can be found");
groupLayout->addRow("Custom streamlink path:", customPath);
groupLayout->addRow(
"Preferred quality:",
2018-08-06 21:17:03 +02:00
this->createComboBox({STREAMLINK_QUALITY},
getSettings()->preferredQuality));
2018-08-06 21:17:03 +02:00
groupLayout->addRow(
"Additional options:",
this->createLineEdit(getSettings()->streamlinkOpts));
getSettings()->streamlinkUseCustomPath.connect(
[=](const auto &value, auto) {
customPath->setEnabled(value); //
},
2018-07-06 19:23:47 +02:00
this->managedConnections_);
2018-04-25 20:35:32 +02:00
}
2018-04-26 23:07:02 +02:00
layout->addStretch(1);
2018-04-25 20:35:32 +02:00
}
} // namespace chatterino