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: Fixed a small typo in the settings page. (#6134)
- 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: Pass `--force-openssl` when installing from CMake in Qt 6.8+. (#6129)
+13 -40
View File
@@ -2,15 +2,12 @@
#include "Application.hpp"
#include "common/Common.hpp"
#include "common/network/NetworkRequest.hpp"
#include "common/network/NetworkResult.hpp"
#include "common/QLogging.hpp"
#include "controllers/accounts/AccountController.hpp"
#include "controllers/commands/Command.hpp"
#include "controllers/commands/CommandController.hpp"
#include "controllers/hotkeys/HotkeyController.hpp"
#include "controllers/notifications/NotificationController.hpp"
#include "messages/MessageThread.hpp"
#include "providers/twitch/api/Helix.hpp"
#include "providers/twitch/TwitchAccount.hpp"
#include "providers/twitch/TwitchChannel.hpp"
@@ -20,11 +17,9 @@
#include "singletons/Settings.hpp"
#include "singletons/Theme.hpp"
#include "singletons/WindowManager.hpp"
#include "util/Clipboard.hpp"
#include "util/CustomPlayer.hpp"
#include "util/Helpers.hpp"
#include "util/StreamLink.hpp"
#include "widgets/dialogs/QualityPopup.hpp"
#include "widgets/dialogs/SelectChannelDialog.hpp"
#include "widgets/dialogs/SelectChannelFiltersDialog.hpp"
#include "widgets/dialogs/UserInfoPopup.hpp"
@@ -44,7 +39,6 @@
#include "widgets/Window.hpp"
#include <QApplication>
#include <QClipboard>
#include <QDesktopServices>
#include <QDockWidget>
#include <QDrag>
@@ -58,7 +52,6 @@
#include <QVBoxLayout>
#include <functional>
#include <random>
namespace {
@@ -114,7 +107,7 @@ QString formatVIPListError(HelixListVIPsError error, const QString &message)
return errorMessage;
}
QString formatModsError(HelixGetModeratorsError error, QString message)
QString formatModsError(HelixGetModeratorsError error, const QString &message)
{
using Error = HelixGetModeratorsError;
@@ -150,7 +143,7 @@ QString formatModsError(HelixGetModeratorsError error, QString message)
return errorMessage;
}
QString formatChattersError(HelixGetChattersError error, QString message)
QString formatChattersError(HelixGetChattersError error, const QString &message)
{
using Error = HelixGetChattersError;
@@ -317,7 +310,7 @@ Split::Split(QWidget *parent)
});
getSettings()->showEmptyInput.connect(
[this](const bool &showEmptyInput, auto) {
[this](const bool &showEmptyInput) {
if (showEmptyInput)
{
this->input_->show();
@@ -505,7 +498,7 @@ void Split::addShortcuts()
"focus direction Use \"up\", \"above\", \"down\", "
"\"below\", \"left\" or \"right\".";
}
auto direction = arguments.at(0);
const auto &direction = arguments.at(0);
if (direction == "up" || direction == "above")
{
this->actionRequested.invoke(Action::SelectSplitAbove);
@@ -550,7 +543,7 @@ void Split::addShortcuts()
<< "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();
if (direction == "up")
@@ -627,7 +620,7 @@ void Split::addShortcuts()
auto reloadSubscriber = true;
if (!arguments.empty())
{
auto arg = arguments.at(0);
const auto &arg = arguments.at(0);
if (arg == "channel")
{
reloadSubscriber = false;
@@ -661,7 +654,7 @@ void Split::addShortcuts()
// 2 is toggle
if (!arguments.empty())
{
auto arg = arguments.at(0);
const auto &arg = arguments.at(0);
if (arg == "off")
{
mode = 0;
@@ -732,7 +725,7 @@ void Split::addShortcuts()
// 2 is toggle
if (!arguments.empty())
{
auto arg = arguments.at(0);
const auto &arg = arguments.at(0);
if (arg == "off")
{
mode = 0;
@@ -816,7 +809,7 @@ void Split::addShortcuts()
// 2 is toggle
if (!arguments.empty())
{
auto arg = arguments.at(0);
const auto &arg = arguments.at(0);
if (arg == "off")
{
mode = 0;
@@ -903,12 +896,12 @@ void Split::updateInputPlaceholder()
this->input_->ui_.textEdit->setPlaceholderText(placeholderText);
}
void Split::joinChannelInNewTab(ChannelPtr channel)
void Split::joinChannelInNewTab(const ChannelPtr &channel)
{
auto &nb = getApp()->getWindows()->getMainWindow().getNotebook();
SplitContainer *container = nb.addPage(true);
Split *split = new Split(container);
auto *split = new Split(container);
split->setChannel(channel);
container->insertSplit(split);
}
@@ -1100,11 +1093,7 @@ void Split::resizeEvent(QResizeEvent *event)
this->overlay_->setGeometry(this->rect());
}
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
void Split::enterEvent(QEnterEvent * /*event*/)
#else
void Split::enterEvent(QEvent * /*event*/)
#endif
{
this->isMouseOver_ = true;
@@ -1185,8 +1174,7 @@ void Split::popup()
auto *app = getApp();
Window &window = app->getWindows()->createWindow(WindowType::Popup);
Split *split = new Split(static_cast<SplitContainer *>(
window.getNotebook().getOrAddSelectedPage()));
auto *split = new Split(window.getNotebook().getOrAddSelectedPage());
split->setChannel(this->getIndirectChannel());
split->setModerationMode(this->getModerationMode());
@@ -1570,7 +1558,7 @@ void Split::setFilters(const QList<QUuid> ids)
this->header_->updateChannelText();
}
const QList<QUuid> Split::getFilters() const
QList<QUuid> Split::getFilters() const
{
return this->view_->getFilterIds();
}
@@ -1647,21 +1635,6 @@ void Split::dropEvent(QDropEvent *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()
{
+2 -6
View File
@@ -57,7 +57,7 @@ public:
void setChannel(IndirectChannel newChannel);
void setFilters(const QList<QUuid> ids);
const QList<QUuid> getFilters() const;
QList<QUuid> getFilters() const;
void setModerationMode(bool value);
bool getModerationMode() const;
@@ -110,11 +110,7 @@ protected:
void keyPressEvent(QKeyEvent *event) override;
void keyReleaseEvent(QKeyEvent *event) override;
void resizeEvent(QResizeEvent *event) override;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
void enterEvent(QEnterEvent * /*event*/) override;
#else
void enterEvent(QEvent * /*event*/) override;
#endif
void leaveEvent(QEvent *event) override;
void dragEnterEvent(QDragEnterEvent *event) override;
@@ -137,7 +133,7 @@ private:
/**
* @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