refactor: split (#6148)

This commit is contained in:
pajlada
2025-04-12 18:12:13 +02:00
committed by GitHub
parent a92d88058b
commit f56b7c05bf
3 changed files with 16 additions and 46 deletions
+1
View File
@@ -15,6 +15,7 @@
- Bugfix: Handle <kbd>CMD</kbd> + <kbd>BACKSPACE</kbd> behavior explicitly in main chat dialog input for macOS. (#6111) - Bugfix: Handle <kbd>CMD</kbd> + <kbd>BACKSPACE</kbd> behavior explicitly in main chat dialog input for macOS. (#6111)
- Bugfix: Fixed a small typo in the settings page. (#6134) - Bugfix: Fixed a small typo in the settings page. (#6134)
- Bugfix: Fixed some Twitch commands not getting tab-completed correctly. (#6143) - Bugfix: Fixed some Twitch commands not getting tab-completed correctly. (#6143)
- Dev: Mini refactor of Split. (#6148)
- Dev: Conan will no longer generate a `CMakeUserPresets.json` file. (#6117) - Dev: Conan will no longer generate a `CMakeUserPresets.json` file. (#6117)
- Dev: Pass `--force-openssl` when installing from CMake in Qt 6.8+. (#6129) - Dev: Pass `--force-openssl` when installing from CMake in Qt 6.8+. (#6129)
+13 -40
View File
@@ -2,15 +2,12 @@
#include "Application.hpp" #include "Application.hpp"
#include "common/Common.hpp" #include "common/Common.hpp"
#include "common/network/NetworkRequest.hpp"
#include "common/network/NetworkResult.hpp"
#include "common/QLogging.hpp" #include "common/QLogging.hpp"
#include "controllers/accounts/AccountController.hpp" #include "controllers/accounts/AccountController.hpp"
#include "controllers/commands/Command.hpp" #include "controllers/commands/Command.hpp"
#include "controllers/commands/CommandController.hpp" #include "controllers/commands/CommandController.hpp"
#include "controllers/hotkeys/HotkeyController.hpp" #include "controllers/hotkeys/HotkeyController.hpp"
#include "controllers/notifications/NotificationController.hpp" #include "controllers/notifications/NotificationController.hpp"
#include "messages/MessageThread.hpp"
#include "providers/twitch/api/Helix.hpp" #include "providers/twitch/api/Helix.hpp"
#include "providers/twitch/TwitchAccount.hpp" #include "providers/twitch/TwitchAccount.hpp"
#include "providers/twitch/TwitchChannel.hpp" #include "providers/twitch/TwitchChannel.hpp"
@@ -20,11 +17,9 @@
#include "singletons/Settings.hpp" #include "singletons/Settings.hpp"
#include "singletons/Theme.hpp" #include "singletons/Theme.hpp"
#include "singletons/WindowManager.hpp" #include "singletons/WindowManager.hpp"
#include "util/Clipboard.hpp"
#include "util/CustomPlayer.hpp" #include "util/CustomPlayer.hpp"
#include "util/Helpers.hpp" #include "util/Helpers.hpp"
#include "util/StreamLink.hpp" #include "util/StreamLink.hpp"
#include "widgets/dialogs/QualityPopup.hpp"
#include "widgets/dialogs/SelectChannelDialog.hpp" #include "widgets/dialogs/SelectChannelDialog.hpp"
#include "widgets/dialogs/SelectChannelFiltersDialog.hpp" #include "widgets/dialogs/SelectChannelFiltersDialog.hpp"
#include "widgets/dialogs/UserInfoPopup.hpp" #include "widgets/dialogs/UserInfoPopup.hpp"
@@ -44,7 +39,6 @@
#include "widgets/Window.hpp" #include "widgets/Window.hpp"
#include <QApplication> #include <QApplication>
#include <QClipboard>
#include <QDesktopServices> #include <QDesktopServices>
#include <QDockWidget> #include <QDockWidget>
#include <QDrag> #include <QDrag>
@@ -58,7 +52,6 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <functional> #include <functional>
#include <random>
namespace { namespace {
@@ -114,7 +107,7 @@ QString formatVIPListError(HelixListVIPsError error, const QString &message)
return errorMessage; return errorMessage;
} }
QString formatModsError(HelixGetModeratorsError error, QString message) QString formatModsError(HelixGetModeratorsError error, const QString &message)
{ {
using Error = HelixGetModeratorsError; using Error = HelixGetModeratorsError;
@@ -150,7 +143,7 @@ QString formatModsError(HelixGetModeratorsError error, QString message)
return errorMessage; return errorMessage;
} }
QString formatChattersError(HelixGetChattersError error, QString message) QString formatChattersError(HelixGetChattersError error, const QString &message)
{ {
using Error = HelixGetChattersError; using Error = HelixGetChattersError;
@@ -317,7 +310,7 @@ Split::Split(QWidget *parent)
}); });
getSettings()->showEmptyInput.connect( getSettings()->showEmptyInput.connect(
[this](const bool &showEmptyInput, auto) { [this](const bool &showEmptyInput) {
if (showEmptyInput) if (showEmptyInput)
{ {
this->input_->show(); this->input_->show();
@@ -505,7 +498,7 @@ void Split::addShortcuts()
"focus direction Use \"up\", \"above\", \"down\", " "focus direction Use \"up\", \"above\", \"down\", "
"\"below\", \"left\" or \"right\"."; "\"below\", \"left\" or \"right\".";
} }
auto direction = arguments.at(0); const auto &direction = arguments.at(0);
if (direction == "up" || direction == "above") if (direction == "up" || direction == "above")
{ {
this->actionRequested.invoke(Action::SelectSplitAbove); this->actionRequested.invoke(Action::SelectSplitAbove);
@@ -550,7 +543,7 @@ void Split::addShortcuts()
<< "scrollPage hotkey called without arguments!"; << "scrollPage hotkey called without arguments!";
return "scrollPage hotkey called without arguments!"; return "scrollPage hotkey called without arguments!";
} }
auto direction = arguments.at(0); const auto &direction = arguments.at(0);
auto &scrollbar = this->getChannelView().getScrollBar(); auto &scrollbar = this->getChannelView().getScrollBar();
if (direction == "up") if (direction == "up")
@@ -627,7 +620,7 @@ void Split::addShortcuts()
auto reloadSubscriber = true; auto reloadSubscriber = true;
if (!arguments.empty()) if (!arguments.empty())
{ {
auto arg = arguments.at(0); const auto &arg = arguments.at(0);
if (arg == "channel") if (arg == "channel")
{ {
reloadSubscriber = false; reloadSubscriber = false;
@@ -661,7 +654,7 @@ void Split::addShortcuts()
// 2 is toggle // 2 is toggle
if (!arguments.empty()) if (!arguments.empty())
{ {
auto arg = arguments.at(0); const auto &arg = arguments.at(0);
if (arg == "off") if (arg == "off")
{ {
mode = 0; mode = 0;
@@ -732,7 +725,7 @@ void Split::addShortcuts()
// 2 is toggle // 2 is toggle
if (!arguments.empty()) if (!arguments.empty())
{ {
auto arg = arguments.at(0); const auto &arg = arguments.at(0);
if (arg == "off") if (arg == "off")
{ {
mode = 0; mode = 0;
@@ -816,7 +809,7 @@ void Split::addShortcuts()
// 2 is toggle // 2 is toggle
if (!arguments.empty()) if (!arguments.empty())
{ {
auto arg = arguments.at(0); const auto &arg = arguments.at(0);
if (arg == "off") if (arg == "off")
{ {
mode = 0; mode = 0;
@@ -903,12 +896,12 @@ void Split::updateInputPlaceholder()
this->input_->ui_.textEdit->setPlaceholderText(placeholderText); this->input_->ui_.textEdit->setPlaceholderText(placeholderText);
} }
void Split::joinChannelInNewTab(ChannelPtr channel) void Split::joinChannelInNewTab(const ChannelPtr &channel)
{ {
auto &nb = getApp()->getWindows()->getMainWindow().getNotebook(); auto &nb = getApp()->getWindows()->getMainWindow().getNotebook();
SplitContainer *container = nb.addPage(true); SplitContainer *container = nb.addPage(true);
Split *split = new Split(container); auto *split = new Split(container);
split->setChannel(channel); split->setChannel(channel);
container->insertSplit(split); container->insertSplit(split);
} }
@@ -1100,11 +1093,7 @@ void Split::resizeEvent(QResizeEvent *event)
this->overlay_->setGeometry(this->rect()); this->overlay_->setGeometry(this->rect());
} }
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
void Split::enterEvent(QEnterEvent * /*event*/) void Split::enterEvent(QEnterEvent * /*event*/)
#else
void Split::enterEvent(QEvent * /*event*/)
#endif
{ {
this->isMouseOver_ = true; this->isMouseOver_ = true;
@@ -1185,8 +1174,7 @@ void Split::popup()
auto *app = getApp(); auto *app = getApp();
Window &window = app->getWindows()->createWindow(WindowType::Popup); Window &window = app->getWindows()->createWindow(WindowType::Popup);
Split *split = new Split(static_cast<SplitContainer *>( auto *split = new Split(window.getNotebook().getOrAddSelectedPage());
window.getNotebook().getOrAddSelectedPage()));
split->setChannel(this->getIndirectChannel()); split->setChannel(this->getIndirectChannel());
split->setModerationMode(this->getModerationMode()); split->setModerationMode(this->getModerationMode());
@@ -1570,7 +1558,7 @@ void Split::setFilters(const QList<QUuid> ids)
this->header_->updateChannelText(); this->header_->updateChannelText();
} }
const QList<QUuid> Split::getFilters() const QList<QUuid> Split::getFilters() const
{ {
return this->view_->getFilterIds(); return this->view_->getFilterIds();
} }
@@ -1647,21 +1635,6 @@ void Split::dropEvent(QDropEvent *event)
BaseWidget::dropEvent(event); BaseWidget::dropEvent(event);
} }
} }
template <typename Iter, typename RandomGenerator>
static Iter select_randomly(Iter start, Iter end, RandomGenerator &g)
{
std::uniform_int_distribution<> dis(0, std::distance(start, end) - 1);
std::advance(start, dis(g));
return start;
}
template <typename Iter>
static Iter select_randomly(Iter start, Iter end)
{
static std::random_device rd;
static std::mt19937 gen(rd());
return select_randomly(start, end, gen);
}
void Split::drag() void Split::drag()
{ {
+2 -6
View File
@@ -57,7 +57,7 @@ public:
void setChannel(IndirectChannel newChannel); void setChannel(IndirectChannel newChannel);
void setFilters(const QList<QUuid> ids); void setFilters(const QList<QUuid> ids);
const QList<QUuid> getFilters() const; QList<QUuid> getFilters() const;
void setModerationMode(bool value); void setModerationMode(bool value);
bool getModerationMode() const; bool getModerationMode() const;
@@ -110,11 +110,7 @@ protected:
void keyPressEvent(QKeyEvent *event) override; void keyPressEvent(QKeyEvent *event) override;
void keyReleaseEvent(QKeyEvent *event) override; void keyReleaseEvent(QKeyEvent *event) override;
void resizeEvent(QResizeEvent *event) override; void resizeEvent(QResizeEvent *event) override;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
void enterEvent(QEnterEvent * /*event*/) override; void enterEvent(QEnterEvent * /*event*/) override;
#else
void enterEvent(QEvent * /*event*/) override;
#endif
void leaveEvent(QEvent *event) override; void leaveEvent(QEvent *event) override;
void dragEnterEvent(QDragEnterEvent *event) override; void dragEnterEvent(QDragEnterEvent *event) override;
@@ -137,7 +133,7 @@ private:
/** /**
* @brief Opens Twitch channel chat in a new Chatterino tab * @brief Opens Twitch channel chat in a new Chatterino tab
*/ */
void joinChannelInNewTab(ChannelPtr channel); void joinChannelInNewTab(const ChannelPtr &channel);
/** /**
* @brief Refresh moderation mode layouts/buttons * @brief Refresh moderation mode layouts/buttons