Updated lib_ui sources to TDesktop version 3.3

This commit is contained in:
Eric Kotato 2021-12-07 17:52:09 +03:00
commit c6b55d9c37
15 changed files with 56 additions and 22 deletions

View file

@ -34,7 +34,6 @@ PRIVATE
ui/colors.palette
emoji_suggestions/emoji_autocomplete.json
qt_conf/mac.qrc
qt_conf/win.qrc
ui/effects/animation_value.cpp
@ -245,8 +244,6 @@ PRIVATE
if (DESKTOP_APP_USE_PACKAGED)
nice_target_sources(lib_ui ${src_loc} PRIVATE ui/text/qtextitemint.cpp)
else()
nice_target_sources(lib_ui ${src_loc} PRIVATE qt_conf/linux.qrc)
endif()
if (NOT DESKTOP_APP_USE_PACKAGED_FONTS)

View file

@ -1,5 +0,0 @@
<RCC>
<qresource prefix="/qt/etc">
<file alias="qt.conf">qt_linux.conf</file>
</qresource>
</RCC>

View file

@ -1,2 +0,0 @@
<RCC>
</RCC>

View file

@ -1,2 +0,0 @@
[Paths]
Libraries=:/gui/art

View file

@ -19,7 +19,11 @@
QString TextClickHandler::readable() const {
const auto result = url();
return result.startsWith(qstr("internal:")) ? QString() : result;
return !result.startsWith(qstr("internal:"))
? result
: result.startsWith(qstr("internal:url:"))
? result.mid(qstr("internal:url:").size())
: QString();
}
UrlClickHandler::UrlClickHandler(const QString &url, bool fullDisplayed)
@ -33,6 +37,13 @@ UrlClickHandler::UrlClickHandler(const QString &url, bool fullDisplayed)
? original.toEncoded()
: QString());
_readable = good.isValid() ? good.toDisplayString() : _originalUrl;
} else if (_originalUrl.startsWith(qstr("internal:url:"))) {
const auto external = _originalUrl.mid(qstr("internal:url:").size());
const auto original = QUrl(external);
const auto good = QUrl(original.isValid()
? original.toEncoded()
: QString());
_readable = good.isValid() ? good.toDisplayString() : external;
}
}

View file

@ -154,6 +154,16 @@ auto ClickHandler::getTextEntity() const -> TextEntity {
return { EntityType::Invalid };
}
void ClickHandler::setProperty(int id, QVariant value) {
_properties[id] = std::move(value);
}
const QVariant &ClickHandler::property(int id) const {
static const QVariant kEmpty;
const auto i = _properties.find(id);
return (i != end(_properties)) ? i->second : kEmpty;
}
void ActivateClickHandler(
not_null<QWidget*> guard,
ClickHandlerPtr handler,

View file

@ -7,6 +7,7 @@
#pragma once
#include "base/basic_types.h"
#include "base/flat_map.h"
#include <QtCore/QVariant>
@ -62,6 +63,9 @@ public:
};
virtual TextEntity getTextEntity() const;
void setProperty(int id, QVariant value);
[[nodiscard]] const QVariant &property(int id) const;
// This method should be called on mouse over a click handler.
// It returns true if the active handler was changed or false otherwise.
static bool setActive(const ClickHandlerPtr &p, ClickHandlerHost *host = nullptr);
@ -88,6 +92,8 @@ private:
static ClickHandlerHost *_activeHost;
static ClickHandlerHost *_pressedHost;
base::flat_map<int, QVariant> _properties;
};
class LeftButtonClickHandler : public ClickHandler {

View file

@ -137,6 +137,9 @@ boxTitleAdditionalFg: #808080; // box title additional text (like in create grou
boxTitleCloseFg: cancelIconFg; // settings close icon and box search cancel icon (like in contacts box)
boxTitleCloseFgOver: cancelIconFgOver; // settings close icon and box search cancel icon (like in contacts box) with mouse over
boxDividerBg: windowBgOver; // gray divider in boxes and layers
boxDividerFg: windowShadowFg; // gray divider shadow in boxes and layers
paymentsTipActive: #01ad0f; // tip button text in payments checkout form
membersAboutLimitFg: windowSubTextFgOver; // text in channel members box about the limit (max 200 last members are shown)

View file

@ -160,6 +160,15 @@ public:
std::move(clickCallback),
st);
}
QPointer<RoundButton> addLeftButton(
rpl::producer<QString> text,
Fn<void()> clickCallback,
const style::RoundButton& st) {
return getDelegate()->addLeftButton(
std::move(text),
std::move(clickCallback),
st);
}
void showLoading(bool show) {
getDelegate()->showLoading(show);
}

View file

@ -154,8 +154,6 @@ boxLoadingAnimation: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) {
}
boxLoadingSize: 20px;
boxDividerBg: windowBgOver;
boxDividerFg: windowShadowFg;
boxDividerTop: icon {{ "box_divider_top", boxDividerFg }};
boxDividerBottom: icon {{ "box_divider_bottom", boxDividerFg }};
boxDividerHeight: 10px;

View file

@ -30,9 +30,7 @@ void style_InitFontsResource() {
#endif // !DESKTOP_APP_USE_PACKAGED_FONTS
#ifdef Q_OS_WIN
Q_INIT_RESOURCE(win);
#elif defined Q_OS_UNIX && !defined DESKTOP_APP_USE_PACKAGED // Q_OS_WIN
Q_INIT_RESOURCE(linux);
#endif // Q_OS_WIN || (Q_OS_UNIX && !DESKTOP_APP_USE_PACKAGED)
#endif // Q_OS_WIN
#endif // Q_OS_MAC
}
@ -341,8 +339,6 @@ FontData::FontData(int size, uint32 flags, int family, Font *other)
, _family(family) {
if (other) {
memcpy(modified, other, sizeof(modified));
} else {
memset(modified, 0, sizeof(modified));
}
modified[_flags] = Font(this);

View file

@ -25,7 +25,7 @@ int registerFontFamily(const QString &family);
class FontData;
class Font {
public:
Font(Qt::Initialization = Qt::Uninitialized) : ptr(0) {
Font(Qt::Initialization = Qt::Uninitialized) {
}
Font(int size, uint32 flags, const QString &family);
Font(int size, uint32 flags, int family);
@ -44,7 +44,7 @@ public:
operator const QFont &() const;
private:
FontData *ptr;
FontData *ptr = nullptr;
void init(int size, uint32 flags, int family, Font *modified);
friend void startManager();

View file

@ -7,6 +7,7 @@
#include "ui/widgets/box_content_divider.h"
#include "styles/style_layers.h"
#include "styles/palette.h"
#include <QtGui/QPainter>
#include <QtGui/QtEvents>

View file

@ -192,4 +192,12 @@ void Action::handleKeyPress(not_null<QKeyEvent*> e) {
}
}
void Action::setIcon(
const style::icon *icon,
const style::icon *iconOver) {
_icon = icon;
_iconOver = iconOver ? iconOver : icon;
update();
}
} // namespace Ui::Menu

View file

@ -28,6 +28,10 @@ public:
void handleKeyPress(not_null<QKeyEvent*> e) override;
void setIcon(
const style::icon *icon,
const style::icon *iconOver = nullptr);
protected:
QPoint prepareRippleStartPosition() const override;
QImage prepareRippleMask() const override;