Updated lib_ui sources to TDesktop version 2.2

This commit is contained in:
Eric Kotato 2020-07-30 05:26:04 +03:00
commit 6886246fc5
5 changed files with 123 additions and 4 deletions

View file

@ -102,6 +102,7 @@ PRIVATE
ui/style/style_core_scale.h
ui/style/style_core_types.cpp
ui/style/style_core_types.h
ui/text/qtextitemint.cpp
ui/text/text.cpp
ui/text/text.h
ui/text/text_block.cpp

View file

@ -233,8 +233,8 @@ emojiReplaceHeight: 56px;
emojiReplaceInnerHeight: 42px;
emojiReplacePadding: 14px;
dragFont: font(28px semibold);
dragSubfont: font(20px semibold);
dragFont: font(27px semibold);
dragSubfont: font(19px semibold);
dragColor: windowSubTextFg;
dragDropColor: windowActiveTextFg;

54
ui/text/qtextitemint.cpp Normal file
View file

@ -0,0 +1,54 @@
// This file is part of Desktop App Toolkit,
// a set of libraries for developing nice desktop applications.
//
// For license and copyright information please follow this link:
// https://github.com/desktop-app/legal/blob/master/LEGAL
//
#ifdef DESKTOP_APP_USE_PACKAGED
#include <private/qtextengine_p.h>
QTextItemInt::QTextItemInt(
const QGlyphLayout &g,
QFont *font,
const QChar *chars_,
int numChars,
QFontEngine *fe,
const QTextCharFormat &format)
: flags(0)
, justified(false)
, underlineStyle(QTextCharFormat::NoUnderline)
, charFormat(format)
, num_chars(numChars)
, chars(chars_)
, logClusters(0)
, f(font)
, glyphs(g)
, fontEngine(fe) {
}
void QTextItemInt::initWithScriptItem(const QScriptItem &si) {
// explicitly initialize flags so that initFontAttributes can be called
// multiple times on the same TextItem
flags = 0;
if (si.analysis.bidiLevel %2)
flags |= QTextItem::RightToLeft;
ascent = si.ascent;
descent = si.descent;
if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) {
underlineStyle = charFormat.underlineStyle();
} else if (charFormat.boolProperty(QTextFormat::FontUnderline)
|| f->d->underline) {
underlineStyle = QTextCharFormat::SingleUnderline;
}
// compat
if (underlineStyle == QTextCharFormat::SingleUnderline)
flags |= QTextItem::Underline;
if (f->d->overline || charFormat.fontOverline())
flags |= QTextItem::Overline;
if (f->d->strikeOut || charFormat.fontStrikeOut())
flags |= QTextItem::StrikeOut;
}
#endif // !DESKTOP_APP_USE_PACKAGED

View file

@ -394,7 +394,37 @@ Checkbox::Checkbox(
const style::Toggle &toggleSt)
: Checkbox(
parent,
text,
rpl::single(text),
st,
std::make_unique<ToggleView>(
toggleSt,
checked)) {
}
Checkbox::Checkbox(
QWidget *parent,
rpl::producer<QString> &&text,
bool checked,
const style::Checkbox &st,
const style::Check &checkSt)
: Checkbox(
parent,
std::move(text),
st,
std::make_unique<CheckView>(
checkSt,
checked)) {
}
Checkbox::Checkbox(
QWidget *parent,
rpl::producer<QString> &&text,
bool checked,
const style::Checkbox &st,
const style::Toggle &toggleSt)
: Checkbox(
parent,
std::move(text),
st,
std::make_unique<ToggleView>(
toggleSt,
@ -406,17 +436,34 @@ Checkbox::Checkbox(
const QString &text,
const style::Checkbox &st,
std::unique_ptr<AbstractCheckView> check)
: Checkbox(
parent,
rpl::single(text),
st,
std::move(check)) {
}
Checkbox::Checkbox(
QWidget *parent,
rpl::producer<QString> &&text,
const style::Checkbox &st,
std::unique_ptr<AbstractCheckView> check)
: RippleButton(parent, st.ripple)
, _st(st)
, _check(std::move(check))
, _text(
_st.style,
text,
QString(),
_checkboxOptions,
countTextMinWidth()) {
_check->setUpdateCallback([=] { update(); });
resizeToText();
setCursor(style::cur_pointer);
std::move(
text
) | rpl::start_with_next([=](QString &&value) {
setText(std::move(value));
}, lifetime());
}
int Checkbox::countTextMinWidth() const {

View file

@ -146,11 +146,28 @@ public:
bool checked,
const style::Checkbox &st,
const style::Toggle &toggleSt);
Checkbox(
QWidget *parent,
rpl::producer<QString> &&text,
bool checked = false,
const style::Checkbox &st = st::defaultCheckbox,
const style::Check &checkSt = st::defaultCheck);
Checkbox(
QWidget *parent,
rpl::producer<QString> &&text,
bool checked,
const style::Checkbox &st,
const style::Toggle &toggleSt);
Checkbox(
QWidget *parent,
const QString &text,
const style::Checkbox &st,
std::unique_ptr<AbstractCheckView> check);
Checkbox(
QWidget *parent,
rpl::producer<QString> &&text,
const style::Checkbox &st,
std::unique_ptr<AbstractCheckView> check);
void setText(const QString &text, bool rich = false);
void setCheckAlignment(style::align alignment);