mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
moved more stuff into appbase
This commit is contained in:
parent
0b94d0f763
commit
52dcc2130e
|
@ -206,14 +206,12 @@ SOURCES += \
|
||||||
src/widgets/splits/ClosedSplits.cpp \
|
src/widgets/splits/ClosedSplits.cpp \
|
||||||
src/providers/ffz/FfzModBadge.cpp \
|
src/providers/ffz/FfzModBadge.cpp \
|
||||||
src/widgets/settingspages/GeneralPage.cpp \
|
src/widgets/settingspages/GeneralPage.cpp \
|
||||||
src/util/FuzzyConvert.cpp
|
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
src/Application.hpp \
|
src/Application.hpp \
|
||||||
src/common/Channel.hpp \
|
src/common/Channel.hpp \
|
||||||
src/common/Common.hpp \
|
src/common/Common.hpp \
|
||||||
src/common/CompletionModel.hpp \
|
src/common/CompletionModel.hpp \
|
||||||
src/common/FlagsEnum.hpp \
|
|
||||||
src/common/Atomic.hpp \
|
src/common/Atomic.hpp \
|
||||||
src/common/NetworkCommon.hpp \
|
src/common/NetworkCommon.hpp \
|
||||||
src/common/NetworkData.hpp \
|
src/common/NetworkData.hpp \
|
||||||
|
@ -282,10 +280,8 @@ HEADERS += \
|
||||||
src/singletons/helper/LoggingChannel.hpp \
|
src/singletons/helper/LoggingChannel.hpp \
|
||||||
src/controllers/moderationactions/ModerationAction.hpp \
|
src/controllers/moderationactions/ModerationAction.hpp \
|
||||||
src/singletons/WindowManager.hpp \
|
src/singletons/WindowManager.hpp \
|
||||||
src/util/CombinePath.hpp \
|
|
||||||
src/util/ConcurrentMap.hpp \
|
src/util/ConcurrentMap.hpp \
|
||||||
src/util/DebugCount.hpp \
|
src/util/DebugCount.hpp \
|
||||||
src/util/DistanceBetweenPoints.hpp \
|
|
||||||
src/util/IrcHelpers.hpp \
|
src/util/IrcHelpers.hpp \
|
||||||
src/util/LayoutCreator.hpp \
|
src/util/LayoutCreator.hpp \
|
||||||
src/util/QStringHash.hpp \
|
src/util/QStringHash.hpp \
|
||||||
|
@ -365,7 +361,6 @@ HEADERS += \
|
||||||
src/providers/twitch/TwitchApi.hpp \
|
src/providers/twitch/TwitchApi.hpp \
|
||||||
src/messages/Emote.hpp \
|
src/messages/Emote.hpp \
|
||||||
src/messages/ImageSet.hpp \
|
src/messages/ImageSet.hpp \
|
||||||
src/common/Outcome.hpp \
|
|
||||||
src/providers/bttv/BttvEmotes.hpp \
|
src/providers/bttv/BttvEmotes.hpp \
|
||||||
src/providers/LinkResolver.hpp \
|
src/providers/LinkResolver.hpp \
|
||||||
src/providers/ffz/FfzEmotes.hpp \
|
src/providers/ffz/FfzEmotes.hpp \
|
||||||
|
@ -383,7 +378,6 @@ HEADERS += \
|
||||||
src/controllers/notifications/NotificationModel.hpp \
|
src/controllers/notifications/NotificationModel.hpp \
|
||||||
src/singletons/Toasts.hpp \
|
src/singletons/Toasts.hpp \
|
||||||
src/common/DownloadManager.hpp \
|
src/common/DownloadManager.hpp \
|
||||||
src/util/LayoutHelper.hpp \
|
|
||||||
src/messages/MessageContainer.hpp \
|
src/messages/MessageContainer.hpp \
|
||||||
src/common/UsernameSet.hpp \
|
src/common/UsernameSet.hpp \
|
||||||
src/widgets/settingspages/AdvancedPage.hpp \
|
src/widgets/settingspages/AdvancedPage.hpp \
|
||||||
|
@ -391,7 +385,6 @@ HEADERS += \
|
||||||
src/widgets/splits/ClosedSplits.hpp \
|
src/widgets/splits/ClosedSplits.hpp \
|
||||||
src/providers/ffz/FfzModBadge.hpp \
|
src/providers/ffz/FfzModBadge.hpp \
|
||||||
src/widgets/settingspages/GeneralPage.hpp \
|
src/widgets/settingspages/GeneralPage.hpp \
|
||||||
src/util/FuzzyConvert.hpp
|
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
resources/resources.qrc \
|
resources/resources.qrc \
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit a830d3692bdbe53b79f244cf1d4695e2a49fb7ed
|
Subproject commit 6b588cb381334417fb82f4829894ae26d0366588
|
|
@ -1,82 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <type_traits>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
template <typename T, typename Q = typename std::underlying_type<T>::type>
|
|
||||||
class FlagsEnum
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
FlagsEnum()
|
|
||||||
: value_(static_cast<T>(0))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
FlagsEnum(T value)
|
|
||||||
: value_(value)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
FlagsEnum(std::initializer_list<T> flags)
|
|
||||||
{
|
|
||||||
for (auto flag : flags)
|
|
||||||
{
|
|
||||||
this->set(flag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator==(const FlagsEnum<T> &other)
|
|
||||||
{
|
|
||||||
return this->value_ == other.value_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!=(const FlagsEnum &other)
|
|
||||||
{
|
|
||||||
return this->value_ != other.value_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void set(T flag)
|
|
||||||
{
|
|
||||||
reinterpret_cast<Q &>(this->value_) |= static_cast<Q>(flag);
|
|
||||||
}
|
|
||||||
|
|
||||||
void unset(T flag)
|
|
||||||
{
|
|
||||||
reinterpret_cast<Q &>(this->value_) &= ~static_cast<Q>(flag);
|
|
||||||
}
|
|
||||||
|
|
||||||
void set(T flag, bool value)
|
|
||||||
{
|
|
||||||
if (value)
|
|
||||||
this->set(flag);
|
|
||||||
else
|
|
||||||
this->unset(flag);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool has(T flag) const
|
|
||||||
{
|
|
||||||
return static_cast<Q>(this->value_) & static_cast<Q>(flag);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool hasAny(FlagsEnum flags) const
|
|
||||||
{
|
|
||||||
return static_cast<Q>(this->value_) & static_cast<Q>(flags.value_);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool hasAll(FlagsEnum<T> flags) const
|
|
||||||
{
|
|
||||||
return (static_cast<Q>(this->value_) & static_cast<Q>(flags.value_)) &&
|
|
||||||
static_cast<Q>(flags->value);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool hasNone(std::initializer_list<T> flags) const
|
|
||||||
{
|
|
||||||
return !this->hasAny(flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
T value_{};
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -1,51 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
struct SuccessTag {
|
|
||||||
};
|
|
||||||
|
|
||||||
struct FailureTag {
|
|
||||||
};
|
|
||||||
|
|
||||||
const SuccessTag Success{};
|
|
||||||
const FailureTag Failure{};
|
|
||||||
|
|
||||||
class Outcome
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Outcome(SuccessTag)
|
|
||||||
: success_(true)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Outcome(FailureTag)
|
|
||||||
: success_(false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
explicit operator bool() const
|
|
||||||
{
|
|
||||||
return this->success_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!() const
|
|
||||||
{
|
|
||||||
return !this->success_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator==(const Outcome &other) const
|
|
||||||
{
|
|
||||||
return this->success_ == other.success_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!=(const Outcome &other) const
|
|
||||||
{
|
|
||||||
return !this->operator==(other);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
bool success_;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -193,3 +193,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace chatterino
|
} // namespace chatterino
|
||||||
|
|
||||||
|
#ifdef CHATTERINO
|
||||||
|
# include "singletons/Settings.hpp"
|
||||||
|
#endif
|
||||||
|
|
|
@ -32,9 +32,6 @@ namespace chatterino {
|
||||||
using SplitNode = SplitContainer::Node;
|
using SplitNode = SplitContainer::Node;
|
||||||
using SplitDirection = SplitContainer::Direction;
|
using SplitDirection = SplitContainer::Direction;
|
||||||
|
|
||||||
const int WindowManager::uiScaleMin = -5;
|
|
||||||
const int WindowManager::uiScaleMax = 10;
|
|
||||||
|
|
||||||
void WindowManager::showSettingsDialog(SettingsDialogPreference preference)
|
void WindowManager::showSettingsDialog(SettingsDialogPreference preference)
|
||||||
{
|
{
|
||||||
QTimer::singleShot(
|
QTimer::singleShot(
|
||||||
|
@ -625,55 +622,4 @@ void WindowManager::incGeneration()
|
||||||
this->generation_++;
|
this->generation_++;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WindowManager::clampUiScale(int scale)
|
|
||||||
{
|
|
||||||
return clamp(scale, uiScaleMin, uiScaleMax);
|
|
||||||
}
|
|
||||||
|
|
||||||
float WindowManager::getUiScaleValue()
|
|
||||||
{
|
|
||||||
return getUiScaleValue(getSettings()->uiScale.getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
float WindowManager::getUiScaleValue(int scale)
|
|
||||||
{
|
|
||||||
switch (clampUiScale(scale))
|
|
||||||
{
|
|
||||||
case -5:
|
|
||||||
return 0.5f;
|
|
||||||
case -4:
|
|
||||||
return 0.6f;
|
|
||||||
case -3:
|
|
||||||
return 0.7f;
|
|
||||||
case -2:
|
|
||||||
return 0.8f;
|
|
||||||
case -1:
|
|
||||||
return 0.9f;
|
|
||||||
case 0:
|
|
||||||
return 1;
|
|
||||||
case 1:
|
|
||||||
return 1.2f;
|
|
||||||
case 2:
|
|
||||||
return 1.4f;
|
|
||||||
case 3:
|
|
||||||
return 1.6f;
|
|
||||||
case 4:
|
|
||||||
return 1.8f;
|
|
||||||
case 5:
|
|
||||||
return 2;
|
|
||||||
case 6:
|
|
||||||
return 2.33f;
|
|
||||||
case 7:
|
|
||||||
return 2.66f;
|
|
||||||
case 8:
|
|
||||||
return 3;
|
|
||||||
case 9:
|
|
||||||
return 3.5f;
|
|
||||||
case 10:
|
|
||||||
return 4;
|
|
||||||
default:
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace chatterino
|
} // namespace chatterino
|
||||||
|
|
|
@ -27,13 +27,6 @@ public:
|
||||||
static void encodeChannel(IndirectChannel channel, QJsonObject &obj);
|
static void encodeChannel(IndirectChannel channel, QJsonObject &obj);
|
||||||
static IndirectChannel decodeChannel(const QJsonObject &obj);
|
static IndirectChannel decodeChannel(const QJsonObject &obj);
|
||||||
|
|
||||||
static int clampUiScale(int scale);
|
|
||||||
static float getUiScaleValue();
|
|
||||||
static float getUiScaleValue(int scale);
|
|
||||||
|
|
||||||
static const int uiScaleMin;
|
|
||||||
static const int uiScaleMax;
|
|
||||||
|
|
||||||
void showSettingsDialog(
|
void showSettingsDialog(
|
||||||
SettingsDialogPreference preference = SettingsDialogPreference());
|
SettingsDialogPreference preference = SettingsDialogPreference());
|
||||||
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QDir>
|
|
||||||
#include <QString>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
// https://stackoverflow.com/a/13014491
|
|
||||||
inline QString combinePath(const QString &a, const QString &b)
|
|
||||||
{
|
|
||||||
return QDir::cleanPath(a + QDir::separator() + b);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -1,20 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QPointF>
|
|
||||||
|
|
||||||
#include <cmath>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
inline float distanceBetweenPoints(const QPointF &p1, const QPointF &p2)
|
|
||||||
{
|
|
||||||
QPointF tmp = p1 - p2;
|
|
||||||
|
|
||||||
float distance = 0.f;
|
|
||||||
distance += tmp.x() * tmp.x();
|
|
||||||
distance += tmp.y() * tmp.y();
|
|
||||||
|
|
||||||
return sqrt(distance);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -1,33 +0,0 @@
|
||||||
#include "FuzzyConvert.hpp"
|
|
||||||
|
|
||||||
#include <QRegularExpression>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
int fuzzyToInt(const QString &str, int default_)
|
|
||||||
{
|
|
||||||
static auto intFinder = QRegularExpression("[0-9]+");
|
|
||||||
|
|
||||||
auto match = intFinder.match(str);
|
|
||||||
if (match.hasMatch())
|
|
||||||
{
|
|
||||||
return match.captured().toInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
return default_;
|
|
||||||
}
|
|
||||||
|
|
||||||
float fuzzyToFloat(const QString &str, float default_)
|
|
||||||
{
|
|
||||||
static auto floatFinder = QRegularExpression("[0-9]+(\\.[0-9]+)?");
|
|
||||||
|
|
||||||
auto match = floatFinder.match(str);
|
|
||||||
if (match.hasMatch())
|
|
||||||
{
|
|
||||||
return match.captured().toFloat();
|
|
||||||
}
|
|
||||||
|
|
||||||
return default_;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -1,10 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QString>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
int fuzzyToInt(const QString &str, int default_);
|
|
||||||
float fuzzyToFloat(const QString &str, float default_);
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -1,42 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QLayout>
|
|
||||||
#include <QWidget>
|
|
||||||
#include <boost/variant.hpp>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
using LayoutItem = boost::variant<QWidget *, QLayout *>;
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
T *makeLayout(std::initializer_list<LayoutItem> items)
|
|
||||||
{
|
|
||||||
auto t = new T;
|
|
||||||
|
|
||||||
for (auto &item : items)
|
|
||||||
{
|
|
||||||
switch (item.which())
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
t->addItem(new QWidgetItem(boost::get<QWidget *>(item)));
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
t->addItem(boost::get<QLayout *>(item));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T, typename With>
|
|
||||||
T *makeWidget(With with)
|
|
||||||
{
|
|
||||||
auto t = new T;
|
|
||||||
|
|
||||||
with(t);
|
|
||||||
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "singletons/Updates.hpp"
|
#include "singletons/Updates.hpp"
|
||||||
#include "singletons/WindowManager.hpp"
|
#include "singletons/WindowManager.hpp"
|
||||||
#include "util/InitUpdateButton.hpp"
|
#include "util/InitUpdateButton.hpp"
|
||||||
|
#include "util/Shortcut.hpp"
|
||||||
#include "widgets/AccountSwitchPopupWidget.hpp"
|
#include "widgets/AccountSwitchPopupWidget.hpp"
|
||||||
#include "widgets/Notebook.hpp"
|
#include "widgets/Notebook.hpp"
|
||||||
#include "widgets/dialogs/SettingsDialog.hpp"
|
#include "widgets/dialogs/SettingsDialog.hpp"
|
||||||
|
@ -16,7 +17,6 @@
|
||||||
#include "widgets/dialogs/WelcomeDialog.hpp"
|
#include "widgets/dialogs/WelcomeDialog.hpp"
|
||||||
#include "widgets/helper/EffectLabel.hpp"
|
#include "widgets/helper/EffectLabel.hpp"
|
||||||
#include "widgets/helper/NotebookTab.hpp"
|
#include "widgets/helper/NotebookTab.hpp"
|
||||||
#include "util/Shortcut.hpp"
|
|
||||||
#include "widgets/helper/TitlebarButton.hpp"
|
#include "widgets/helper/TitlebarButton.hpp"
|
||||||
#include "widgets/splits/ClosedSplits.hpp"
|
#include "widgets/splits/ClosedSplits.hpp"
|
||||||
#include "widgets/splits/Split.hpp"
|
#include "widgets/splits/Split.hpp"
|
||||||
|
@ -289,8 +289,8 @@ void Window::addShortcuts()
|
||||||
auto s = new QShortcut(QKeySequence::ZoomIn, this);
|
auto s = new QShortcut(QKeySequence::ZoomIn, this);
|
||||||
s->setContext(Qt::WindowShortcut);
|
s->setContext(Qt::WindowShortcut);
|
||||||
QObject::connect(s, &QShortcut::activated, this, [] {
|
QObject::connect(s, &QShortcut::activated, this, [] {
|
||||||
getSettings()->uiScale.setValue(WindowManager::clampUiScale(
|
getSettings()->setClampedUiScale(
|
||||||
getSettings()->uiScale.getValue() + 1));
|
getSettings()->getClampedUiScale() + 0.1f);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,8 +299,8 @@ void Window::addShortcuts()
|
||||||
auto s = new QShortcut(QKeySequence::ZoomOut, this);
|
auto s = new QShortcut(QKeySequence::ZoomOut, this);
|
||||||
s->setContext(Qt::WindowShortcut);
|
s->setContext(Qt::WindowShortcut);
|
||||||
QObject::connect(s, &QShortcut::activated, this, [] {
|
QObject::connect(s, &QShortcut::activated, this, [] {
|
||||||
getSettings()->uiScale.setValue(WindowManager::clampUiScale(
|
getSettings()->setClampedUiScale(
|
||||||
getSettings()->uiScale.getValue() - 1));
|
getSettings()->getClampedUiScale() - 0.1f);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
#include "widgets/helper/EffectLabel.hpp"
|
|
||||||
#include "singletons/Theme.hpp"
|
|
||||||
#include "widgets/splits/SplitHeader.hpp"
|
|
||||||
|
|
||||||
#include <QBrush>
|
|
||||||
#include <QPainter>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
EffectLabel::EffectLabel(BaseWidget *parent, int spacing)
|
|
||||||
: Button(parent)
|
|
||||||
, label_(this)
|
|
||||||
{
|
|
||||||
setLayout(&this->hbox_);
|
|
||||||
|
|
||||||
this->label_.setAlignment(Qt::AlignCenter);
|
|
||||||
|
|
||||||
this->hbox_.setMargin(0);
|
|
||||||
this->hbox_.addSpacing(spacing);
|
|
||||||
this->hbox_.addWidget(&this->label_);
|
|
||||||
this->hbox_.addSpacing(spacing);
|
|
||||||
}
|
|
||||||
|
|
||||||
EffectLabel2::EffectLabel2(BaseWidget *parent, int padding)
|
|
||||||
: Button(parent)
|
|
||||||
, label_(this)
|
|
||||||
{
|
|
||||||
auto *hbox = new QHBoxLayout(this);
|
|
||||||
this->setLayout(hbox);
|
|
||||||
|
|
||||||
// this->label_.setAlignment(Qt::AlignCenter);
|
|
||||||
this->label_.setCentered(true);
|
|
||||||
|
|
||||||
hbox->setMargin(0);
|
|
||||||
// hbox.addSpacing(spacing);
|
|
||||||
hbox->addWidget(&this->label_);
|
|
||||||
// hbox.addSpacing(spacing);
|
|
||||||
}
|
|
||||||
|
|
||||||
Label &EffectLabel2::getLabel()
|
|
||||||
{
|
|
||||||
return this->label_;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -1,41 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "widgets/BaseWidget.hpp"
|
|
||||||
#include "widgets/Label.hpp"
|
|
||||||
#include "widgets/helper/Button.hpp"
|
|
||||||
#include "widgets/helper/SignalLabel.hpp"
|
|
||||||
|
|
||||||
#include <QHBoxLayout>
|
|
||||||
#include <QLabel>
|
|
||||||
#include <QPaintEvent>
|
|
||||||
#include <QWidget>
|
|
||||||
|
|
||||||
namespace chatterino {
|
|
||||||
|
|
||||||
class EffectLabel : public Button
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
explicit EffectLabel(BaseWidget *parent = nullptr, int spacing = 6);
|
|
||||||
|
|
||||||
SignalLabel &getLabel()
|
|
||||||
{
|
|
||||||
return this->label_;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
QHBoxLayout hbox_;
|
|
||||||
SignalLabel label_;
|
|
||||||
};
|
|
||||||
|
|
||||||
class EffectLabel2 : public Button
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
explicit EffectLabel2(BaseWidget *parent = nullptr, int padding = 6);
|
|
||||||
|
|
||||||
Label &getLabel();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Label label_;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace chatterino
|
|
|
@ -100,7 +100,14 @@ void NotebookTab::updateSize()
|
||||||
width = (metrics.width(this->getTitle()) + int(16 * scale));
|
width = (metrics.width(this->getTitle()) + int(16 * scale));
|
||||||
}
|
}
|
||||||
|
|
||||||
width = clamp(width, this->height(), int(150 * scale));
|
if (this->height() > 150 * scale)
|
||||||
|
{
|
||||||
|
width = this->height();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
width = clamp(width, this->height(), int(150 * scale));
|
||||||
|
}
|
||||||
auto height = int(NOTEBOOK_TAB_HEIGHT * scale);
|
auto height = int(NOTEBOOK_TAB_HEIGHT * scale);
|
||||||
|
|
||||||
if (this->width() != width || this->height() != height)
|
if (this->width() != width || this->height() != height)
|
||||||
|
|
|
@ -158,12 +158,18 @@ void GeneralPage::initLayout(SettingsLayout &layout)
|
||||||
getApp()->fonts->chatFontSize,
|
getApp()->fonts->chatFontSize,
|
||||||
[](auto val) { return QString::number(val) + "pt"; },
|
[](auto val) { return QString::number(val) + "pt"; },
|
||||||
[](auto args) { return fuzzyToInt(args.value, 10); });
|
[](auto args) { return fuzzyToInt(args.value, 10); });
|
||||||
layout.addDropdown<int>(
|
layout.addDropdown<float>(
|
||||||
"UI Scale",
|
"UI Scale",
|
||||||
{"0.5x", "0.6x", "0.7x", "0.8x", "0.9x", "Default", "1.2x", "1.4x",
|
{"0.5x", "0.6x", "0.7x", "0.8x", "0.9x", "Default", "1.2x", "1.4x",
|
||||||
"1.6x", "1.8x", "2x", "2.33x", "2.66x", "3x", "3.5x", "4x"},
|
"1.6x", "1.8x", "2x", "2.33x", "2.66x", "3x", "3.5x", "4x"},
|
||||||
s.uiScale, [](auto val) { return val + 5; },
|
s.uiScale,
|
||||||
[](auto args) { return args.index - 5; }, false);
|
[](auto val) {
|
||||||
|
if (val == 1)
|
||||||
|
return QString("Default");
|
||||||
|
else
|
||||||
|
return QString::number(val) + "x";
|
||||||
|
},
|
||||||
|
[](auto args) { return fuzzyToFloat(args.value, 1.f); });
|
||||||
layout.addCheckbox("Always on top", s.windowTopMost);
|
layout.addCheckbox("Always on top", s.windowTopMost);
|
||||||
|
|
||||||
layout.addTitle("Interface");
|
layout.addTitle("Interface");
|
||||||
|
|
|
@ -125,13 +125,6 @@ void LookPage::addInterfaceTab(LayoutCreator<QVBoxLayout> layout)
|
||||||
box->addStretch(1);
|
box->addStretch(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ui scale
|
|
||||||
{
|
|
||||||
auto box = layout.emplace<QHBoxLayout>().withoutMargin();
|
|
||||||
box.emplace<QLabel>("Window scale: ");
|
|
||||||
box.append(this->createUiScaleSlider());
|
|
||||||
}
|
|
||||||
|
|
||||||
layout.append(
|
layout.append(
|
||||||
this->createCheckBox(WINDOW_TOPMOST, getSettings()->windowTopMost));
|
this->createCheckBox(WINDOW_TOPMOST, getSettings()->windowTopMost));
|
||||||
|
|
||||||
|
@ -567,34 +560,6 @@ QLayout *LookPage::createFontChanger()
|
||||||
return layout;
|
return layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
QLayout *LookPage::createUiScaleSlider()
|
|
||||||
{
|
|
||||||
auto layout = new QHBoxLayout();
|
|
||||||
auto slider = new QSlider(Qt::Horizontal);
|
|
||||||
auto label = new QLabel();
|
|
||||||
layout->addWidget(slider);
|
|
||||||
layout->addWidget(label);
|
|
||||||
|
|
||||||
slider->setMinimum(WindowManager::uiScaleMin);
|
|
||||||
slider->setMaximum(WindowManager::uiScaleMax);
|
|
||||||
slider->setValue(
|
|
||||||
WindowManager::clampUiScale(getSettings()->uiScale.getValue()));
|
|
||||||
|
|
||||||
label->setMinimumWidth(100);
|
|
||||||
|
|
||||||
QObject::connect(slider, &QSlider::valueChanged, [](auto value) {
|
|
||||||
getSettings()->uiScale.setValue(value);
|
|
||||||
});
|
|
||||||
|
|
||||||
getSettings()->uiScale.connect(
|
|
||||||
[label](auto, auto) {
|
|
||||||
label->setText(QString::number(WindowManager::getUiScaleValue()));
|
|
||||||
},
|
|
||||||
this->connections_);
|
|
||||||
|
|
||||||
return layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
QLayout *LookPage::createBoldScaleSlider()
|
QLayout *LookPage::createBoldScaleSlider()
|
||||||
{
|
{
|
||||||
auto layout = new QHBoxLayout();
|
auto layout = new QHBoxLayout();
|
||||||
|
|
|
@ -30,7 +30,6 @@ private:
|
||||||
|
|
||||||
QLayout *createThemeColorChanger();
|
QLayout *createThemeColorChanger();
|
||||||
QLayout *createFontChanger();
|
QLayout *createFontChanger();
|
||||||
QLayout *createUiScaleSlider();
|
|
||||||
QLayout *createBoldScaleSlider();
|
QLayout *createBoldScaleSlider();
|
||||||
|
|
||||||
ChannelPtr createPreviewChannel();
|
ChannelPtr createPreviewChannel();
|
||||||
|
|
Loading…
Reference in a new issue