Skip to content

Commit

Permalink
Merge 374d4a9 into dc231f2
Browse files Browse the repository at this point in the history
  • Loading branch information
pperehozhih authored Jan 27, 2018
2 parents dc231f2 + 374d4a9 commit 52a41b1
Show file tree
Hide file tree
Showing 112 changed files with 597 additions and 615 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ else()
find_package(OpenSSL REQUIRED)
endif()

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS OFF)

Expand Down
4 changes: 2 additions & 2 deletions Telegram/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -640,10 +640,10 @@ if(NOT WIN32)
set_flag_if_supported(Telegram WNCE -Wno-c++1z-extensions)
endif()

# Enable C++14 support for msvc (@todo this should be done in cmake - see ver 3.10 or above)
# Enable C++17 support for msvc (@todo this should be done in cmake - see ver 3.10 or above)
if(WIN32)
target_compile_options(Telegram PRIVATE
/std:c++14
/std:c++latest
/EHsc # Catch C++ exceptions only, extern C functions never throw a C++ exception.
)
endif()
Expand Down
4 changes: 2 additions & 2 deletions Telegram/SourceFiles/apiwrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,7 @@ void ApiWrap::lastParticipantsDone(ChannelData *peer, const MTPchannels_ChannelP
if (!keyboardBotFound) {
h->clearLastKeyboard();
}
int newMembersCount = qMax(d.vcount.v, v.count());
int newMembersCount = std::max(d.vcount.v, v.count());
if (newMembersCount > peer->membersCount()) {
peer->setMembersCount(newMembersCount);
}
Expand Down Expand Up @@ -1334,7 +1334,7 @@ void ApiWrap::resolveWebPages() {
}
}
} else {
m = qMin(m, i.key()->pendingTill - t);
m = std::min(m, i.key()->pendingTill - t);
}
}

Expand Down
2 changes: 1 addition & 1 deletion Telegram/SourceFiles/auth_session.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ void AuthSession::checkAutoLock() {
auto shouldLockInMs = Global::AutoLock() * 1000LL;
auto idleForMs = psIdleTime();
auto notPlayingVideoForMs = now - data().lastTimeVideoPlayedAt();
auto checkTimeMs = qMin(idleForMs, notPlayingVideoForMs);
auto checkTimeMs = std::min(idleForMs, notPlayingVideoForMs);
if (checkTimeMs >= shouldLockInMs || (_shouldLockAt > 0 && now > _shouldLockAt + kAutoLockTimeoutLateMs)) {
Messenger::Instance().setupPasscode();
} else {
Expand Down
2 changes: 1 addition & 1 deletion Telegram/SourceFiles/base/task_queue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace base {
namespace {

auto MainThreadId = std::this_thread::get_id();
const auto MaxThreadsCount = qMax(std::thread::hardware_concurrency(), 2U);
const auto MaxThreadsCount = std::max(std::thread::hardware_concurrency(), 2U);

} // namespace

Expand Down
8 changes: 4 additions & 4 deletions Telegram/SourceFiles/boxes/abstract_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ void BoxContent::onDraggingScrollDelta(int delta) {
}

void BoxContent::onDraggingScrollTimer() {
auto delta = (_draggingScrollDelta > 0) ? qMin(_draggingScrollDelta * 3 / 20 + 1, qint32(MaxScrollSpeed)) : qMax(_draggingScrollDelta * 3 / 20 - 1, -qint32(MaxScrollSpeed));
auto delta = (_draggingScrollDelta > 0) ? std::min(_draggingScrollDelta * 3 / 20 + 1, qint32(MaxScrollSpeed)) : std::max(_draggingScrollDelta * 3 / 20 - 1, -qint32(MaxScrollSpeed));
_scroll->scrollToY(_scroll->scrollTop() + delta);
}

Expand Down Expand Up @@ -336,7 +336,7 @@ void AbstractBox::updateTitlePosition() {
_titleLeft = _layerType ? st::boxLayerTitlePosition.x() : st::boxTitlePosition.x();
_titleTop = _layerType ? st::boxLayerTitlePosition.y() : st::boxTitlePosition.y();
if (_title) {
_title->resizeToWidth(qMin(_title->naturalWidth(), width() - _titleLeft * 2));
_title->resizeToWidth(std::min(_title->naturalWidth(), width() - _titleLeft * 2));
_title->moveToLeft(_titleLeft, _titleTop);
}
}
Expand Down Expand Up @@ -378,7 +378,7 @@ void AbstractBox::setDimensions(int newWidth, int maxHeight) {
auto newGeometry = geometry();
auto parentHeight = parentWidget()->height();
if (newGeometry.top() + newGeometry.height() + st::boxVerticalMargin > parentHeight) {
auto newTop = qMax(parentHeight - int(st::boxVerticalMargin) - newGeometry.height(), (parentHeight - newGeometry.height()) / 2);
auto newTop = std::max(parentHeight - int(st::boxVerticalMargin) - newGeometry.height(), (parentHeight - newGeometry.height()) / 2);
if (newTop != newGeometry.top()) {
move(newGeometry.left(), newTop);
}
Expand All @@ -391,7 +391,7 @@ void AbstractBox::setDimensions(int newWidth, int maxHeight) {
}

int AbstractBox::countRealHeight() const {
return qMin(_fullHeight, parentWidget()->height() - 2 * st::boxVerticalMargin);
return std::min(_fullHeight, parentWidget()->height() - 2 * st::boxVerticalMargin);
}

int AbstractBox::countFullHeight() const {
Expand Down
4 changes: 2 additions & 2 deletions Telegram/SourceFiles/boxes/add_contact_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1103,7 +1103,7 @@ void EditBioBox::handleBioUpdated() {
cursor.setPosition(position);
_bio->setTextCursor(cursor);
}
auto countLeft = qMax(kMaxBioLength - text.size(), 0);
auto countLeft = std::max(kMaxBioLength - text.size(), 0);
_countdown->setText(QString::number(countLeft));
}

Expand Down Expand Up @@ -1503,7 +1503,7 @@ void RevokePublicLinkBox::Inner::paintChat(Painter &p, const ChatRow &row, bool
if (peer->isVerified()) {
auto icon = &st::dialogsVerifiedIcon;
namew -= icon->width();
icon->paint(p, namex + qMin(row.name.maxWidth(), namew), st::contactsPadding.top() + st::contactsNameTop, width());
icon->paint(p, namex + std::min(row.name.maxWidth(), namew), st::contactsPadding.top() + st::contactsNameTop, width());
}
row.name.drawLeftElided(p, namex, st::contactsPadding.top() + st::contactsNameTop, namew, width());

Expand Down
6 changes: 3 additions & 3 deletions Telegram/SourceFiles/boxes/confirm_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ void ConfirmBox::prepare() {

void ConfirmBox::textUpdated() {
_textWidth = st::boxWidth - st::boxPadding.left() - st::boxButtonPadding.right();
_textHeight = qMin(_text.countHeight(_textWidth), 16 * st::boxLabelStyle.lineHeight);
_textHeight = std::min(_text.countHeight(_textWidth), 16 * st::boxLabelStyle.lineHeight);
setDimensions(st::boxWidth, st::boxPadding.top() + _textHeight + st::boxPadding.bottom());

setMouseTracking(_text.hasLinks());
Expand Down Expand Up @@ -227,7 +227,7 @@ void MaxInviteBox::prepare() {
addButton(langFactory(lng_box_ok), [this] { closeBox(); });

_textWidth = st::boxWidth - st::boxPadding.left() - st::boxButtonPadding.right();
_textHeight = qMin(_text.countHeight(_textWidth), 16 * st::boxLabelStyle.lineHeight);
_textHeight = std::min(_text.countHeight(_textWidth), 16 * st::boxLabelStyle.lineHeight);
setDimensions(st::boxWidth, st::boxPadding.top() + _textHeight + st::boxTextFont->height + st::boxTextFont->height * 2 + st::newGroupLinkPadding.bottom());

subscribe(Notify::PeerUpdated(), Notify::PeerUpdatedHandler(Notify::PeerUpdate::Flag::InviteLinkChanged, [this](const Notify::PeerUpdate &update) {
Expand Down Expand Up @@ -474,7 +474,7 @@ void DeleteMessagesBox::prepare() {
canDeleteAllForEveryone = false;
}
}
auto count = qMax(1, _ids.size());
auto count = std::max(1, _ids.size());
if (canDeleteAllForEveryone) {
_forEveryone.create(this, forEveryoneText, false, st::defaultBoxCheckbox);
} else if (peer && peer->isChannel()) {
Expand Down
26 changes: 13 additions & 13 deletions Telegram/SourceFiles/boxes/edit_color_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ void EditColorBox::Picker::updateCurrentPoint(QPoint localPosition) {

void EditColorBox::Picker::setHSV(int hue, int saturation, int brightness) {
_topleft = QColor(255, 255, 255);
_topright.setHsv(qMax(0, hue), 255, 255);
_topright.setHsv(std::max(0, hue), 255, 255);
_topright = _topright.toRgb();
_bottomleft = _bottomright = QColor(0, 0, 0);

Expand Down Expand Up @@ -305,11 +305,11 @@ void EditColorBox::Slider::paintEvent(QPaintEvent *e) {
}
p.drawPixmap(to, _pixmap, _pixmap.rect());
if (isHorizontal()) {
auto x = st::colorSliderSkip + qRound(_value * to.width());
auto x = st::colorSliderSkip + std::round(_value * to.width());
st::colorSliderArrowTop.paint(p, x - st::colorSliderArrowTop.width() / 2, 0, width());
st::colorSliderArrowBottom.paint(p, x - st::colorSliderArrowBottom.width() / 2, height() - st::colorSliderArrowBottom.height(), width());
} else {
auto y = st::colorSliderSkip + qRound(_value * to.height());
auto y = st::colorSliderSkip + std::round(_value * to.height());
st::colorSliderArrowLeft.paint(p, 0, y - st::colorSliderArrowLeft.height() / 2, width());
st::colorSliderArrowRight.paint(p, width() - st::colorSliderArrowRight.width(), y - st::colorSliderArrowRight.height() / 2, width());
}
Expand Down Expand Up @@ -737,10 +737,10 @@ void EditColorBox::saveColor() {
}

void EditColorBox::updateHSVFields() {
auto hue = qRound((1. - _hueSlider->value()) * 360);
auto saturation = qRound(_picker->valueX() * 255);
auto brightness = qRound((1. - _picker->valueY()) * 255);
auto alpha = qRound(_opacitySlider->value() * 255);
auto hue = std::round((1. - _hueSlider->value()) * 360);
auto saturation = std::round(_picker->valueX() * 255);
auto brightness = std::round((1. - _picker->valueY()) * 255);
auto alpha = std::round(_opacitySlider->value() * 255);
_hueField->setTextWithFocus(QString::number(hue));
_saturationField->setTextWithFocus(QString::number(percentFromByte(saturation)));
_brightnessField->setTextWithFocus(QString::number(percentFromByte(brightness)));
Expand Down Expand Up @@ -827,10 +827,10 @@ void EditColorBox::updateFromColor(QColor color) {
}

void EditColorBox::updateFromControls() {
auto hue = qRound((1. - _hueSlider->value()) * 360);
auto saturation = qRound(_picker->valueX() * 255);
auto brightness = qRound((1. - _picker->valueY()) * 255);
auto alpha = qRound(_opacitySlider->value() * 255);
auto hue = std::round((1. - _hueSlider->value()) * 360);
auto saturation = std::round(_picker->valueX() * 255);
auto brightness = std::round((1. - _picker->valueY()) * 255);
auto alpha = std::round(_opacitySlider->value() * 255);
setHSV(hue, saturation, brightness, alpha);
updateHSVFields();
updateControlsFromHSV(hue, saturation, brightness);
Expand All @@ -840,7 +840,7 @@ void EditColorBox::updateFromHSVFields() {
auto hue = _hueField->value();
auto saturation = percentToByte(_saturationField->value());
auto brightness = percentToByte(_brightnessField->value());
auto alpha = qRound(_opacitySlider->value() * 255);
auto alpha = std::round(_opacitySlider->value() * 255);
setHSV(hue, saturation, brightness, alpha);
updateControlsFromHSV(hue, saturation, brightness);
}
Expand All @@ -849,7 +849,7 @@ void EditColorBox::updateFromRGBFields() {
auto red = _redField->value();
auto blue = _blueField->value();
auto green = _greenField->value();
auto alpha = qRound(_opacitySlider->value() * 255);
auto alpha = std::round(_opacitySlider->value() * 255);
setRGB(red, green, blue, alpha);
updateResultField();
}
Expand Down
2 changes: 1 addition & 1 deletion Telegram/SourceFiles/boxes/edit_participant_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ void EditParticipantBox::removeControl(QPointer<TWidget> widget) {

void EditParticipantBox::resizeToContent() {
_inner->resizeToWidth(st::boxWideWidth);
setDimensions(_inner->width(), qMin(_inner->height(), st::boxMaxListHeight));
setDimensions(_inner->width(), std::min(_inner->height(), st::boxMaxListHeight));
}

EditAdminBox::EditAdminBox(QWidget*, not_null<ChannelData*> channel, not_null<UserData*> user, const MTPChannelAdminRights &rights) : EditParticipantBox(nullptr, channel, user, (rights.c_channelAdminRights().vflags.v != 0))
Expand Down
2 changes: 1 addition & 1 deletion Telegram/SourceFiles/boxes/language_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ void LanguageBox::refresh() {
refreshLanguages();

_inner->refresh();
setDimensions(st::langsWidth, qMin(_inner->height(), st::boxMaxListHeight));
setDimensions(st::langsWidth, std::min(_inner->height(), st::boxMaxListHeight));
}

void LanguageBox::refreshLanguages() {
Expand Down
2 changes: 1 addition & 1 deletion Telegram/SourceFiles/boxes/notifications_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ void NotificationsBox::setOverCorner(Notify::ScreenCorner corner) {
auto &samples = _cornerSamples[static_cast<int>(_overCorner)];
auto samplesAlready = samples.size();
auto samplesNeeded = currentCount();
auto samplesLeave = qMin(samplesAlready, samplesNeeded);
auto samplesLeave = std::min(samplesAlready, samplesNeeded);
for (int i = 0; i != samplesLeave; ++i) {
samples[i]->showFast();
}
Expand Down
4 changes: 2 additions & 2 deletions Telegram/SourceFiles/boxes/peer_list_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -840,7 +840,7 @@ int PeerListBox::Inner::resizeGetHeight(int newWidth) {
_aboveHeight = _aboveWidget->height();
}
}
auto labelTop = rowsTop() + qMax(1, shownRowsCount()) * _rowHeight;
auto labelTop = rowsTop() + std::max(1, shownRowsCount()) * _rowHeight;
if (_description) {
_description->moveToLeft(st::contactsPadding.left(), labelTop + st::membersAboutLimitPadding.top(), newWidth);
_description->setVisible(!showingSearch());
Expand Down Expand Up @@ -953,7 +953,7 @@ void PeerListBox::Inner::paintRow(Painter &p, TimeMs ms, RowIndex index) {
if (row->needsVerifiedIcon()) {
auto icon = &st::dialogsVerifiedIcon;
namew -= icon->width();
icon->paint(p, namex + qMin(name.maxWidth(), namew), st::contactsPadding.top() + st::contactsNameTop, width());
icon->paint(p, namex + std::min(name.maxWidth(), namew), st::contactsPadding.top() + st::contactsNameTop, width());
}
auto nameCheckedRatio = row->disabled() ? 0. : row->checkedRatio();
p.setPen(anim::pen(st::contactsNameFg, st::contactsNameCheckedFg, nameCheckedRatio));
Expand Down
6 changes: 3 additions & 3 deletions Telegram/SourceFiles/boxes/peer_list_controllers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -397,9 +397,9 @@ int AddParticipantsBoxController::alreadyInCount() const {
return 1; // self
}
if (auto chat = _peer->asChat()) {
return qMax(chat->count, 1);
return std::max(chat->count, 1);
} else if (auto channel = _peer->asChannel()) {
return qMax(channel->membersCount(), int(_alreadyIn.size()));
return std::max(channel->membersCount(), int(_alreadyIn.size()));
}
Unexpected("User in AddParticipantsBoxController::alreadyInCount");
}
Expand Down Expand Up @@ -530,7 +530,7 @@ int EditChatAdminsBoxController::LabeledCheckbox::resizeGetHeight(int newWidth)
_labelWidth = newWidth - st::contactsPadding.left() - st::contactsPadding.right();
_checkbox->resizeToNaturalWidth(_labelWidth);
_checkbox->moveToLeft(st::contactsPadding.left(), st::contactsAllAdminsTop);
auto labelHeight = qMax(
auto labelHeight = std::max(
_labelChecked.countHeight(_labelWidth),
_labelUnchecked.countHeight(_labelWidth));
return st::contactsAboutTop + labelHeight + st::contactsAboutBottom;
Expand Down
2 changes: 1 addition & 1 deletion Telegram/SourceFiles/boxes/self_destruction_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ void SelfDestructionBox::prepare() {
auto count = int(_ttlValues.size());
_options.reserve(count);
for (auto days : _ttlValues) {
_options.emplace_back(this, group, days, (days > 364) ? lng_self_destruct_years(lt_count, days / 365) : lng_self_destruct_months(lt_count, qMax(days / 30, 1)), st::langsButton);
_options.emplace_back(this, group, days, (days > 364) ? lng_self_destruct_years(lt_count, days / 365) : lng_self_destruct_months(lt_count, std::max(days / 30, 1)), st::langsButton);
_options.back()->moveToLeft(st::boxPadding.left(), y);
y += _options.back()->heightNoMargins() + st::boxOptionListSkip;
}
Expand Down
30 changes: 15 additions & 15 deletions Telegram/SourceFiles/boxes/send_files_box.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ void SendFilesBox::prepareSingleFileLayout() {
if (_animated) {
auto limitW = st::boxWideWidth - st::boxPhotoPadding.left() - st::boxPhotoPadding.right();
auto limitH = st::confirmMaxHeight;
maxW = qMax(image.width(), 1);
maxH = qMax(image.height(), 1);
maxW = std::max(image.width(), 1);
maxH = std::max(image.height(), 1);
if (maxW * limitH > maxH * limitW) {
if (maxW < limitW) {
maxH = maxH * limitW / maxW;
Expand All @@ -109,12 +109,12 @@ void SendFilesBox::prepareSingleFileLayout() {
}
_previewWidth = st::boxWideWidth - st::boxPhotoPadding.left() - st::boxPhotoPadding.right();
if (image.width() < _previewWidth) {
_previewWidth = qMax(image.width(), kMinPreviewWidth);
_previewWidth = std::max(image.width(), kMinPreviewWidth);
}
auto maxthumbh = qMin(qRound(1.5 * _previewWidth), st::confirmMaxHeight);
_previewHeight = qRound(originalHeight * double(_previewWidth) / originalWidth);
auto maxthumbh = std::min<int>(std::round(1.5 * _previewWidth), st::confirmMaxHeight);
_previewHeight = std::round(originalHeight * double(_previewWidth) / originalWidth);
if (_previewHeight > maxthumbh) {
_previewWidth = qRound(_previewWidth * double(maxthumbh) / _previewHeight);
_previewWidth = std::round(_previewWidth * double(maxthumbh) / _previewHeight);
accumulate_max(_previewWidth, kMinPreviewWidth);
_previewHeight = maxthumbh;
}
Expand Down Expand Up @@ -182,7 +182,7 @@ void SendFilesBox::prepareDocumentLayout() {
auto filename = filedialogDefaultName(qsl("image"), qsl(".png"), QString(), true);
_nameText.setText(st::semiboldTextStyle, filename, _textNameOptions);
_statusText = qsl("%1x%2").arg(_image.width()).arg(_image.height());
_statusWidth = qMax(_nameText.maxWidth(), st::normalFont->width(_statusText));
_statusWidth = std::max(_nameText.maxWidth(), st::normalFont->width(_statusText));
_fileIsImage = true;
} else {
auto fileinfo = QFileInfo(filepath);
Expand All @@ -202,7 +202,7 @@ void SendFilesBox::prepareDocumentLayout() {
auto nameString = DocumentData::composeNameString(filename, songTitle, songPerformer);
_nameText.setText(st::semiboldTextStyle, nameString, _textNameOptions);
_statusText = formatSizeText(fileinfo.size());
_statusWidth = qMax(_nameText.maxWidth(), st::normalFont->width(_statusText));
_statusWidth = std::max(_nameText.maxWidth(), st::normalFont->width(_statusText));
}
}

Expand All @@ -226,7 +226,7 @@ SendFilesBox::SendFilesBox(QWidget*, const QString &phone, const QString &firstn
auto name = lng_full_name(lt_first_name, _contactFirstName, lt_last_name, _contactLastName);
_nameText.setText(st::semiboldTextStyle, name, _textNameOptions);
_statusText = _contactPhone;
_statusWidth = qMax(_nameText.maxWidth(), st::normalFont->width(_statusText));
_statusWidth = std::max(_nameText.maxWidth(), st::normalFont->width(_statusText));
_contactPhotoEmpty.set(0, name);
}

Expand Down Expand Up @@ -510,7 +510,7 @@ EditCaptionBox::EditCaptionBox(QWidget*, HistoryMedia *media, FullMsgId msgId) :
_name.setText(st::semiboldTextStyle, doc->composeNameString(), _textNameOptions);
}
_status = formatSizeText(doc->size);
_statusw = qMax(_name.maxWidth(), st::normalFont->width(_status));
_statusw = std::max(_name.maxWidth(), st::normalFont->width(_status));
_isImage = doc->isImage();
_isAudio = (doc->voice() || doc->song());
}
Expand All @@ -519,8 +519,8 @@ EditCaptionBox::EditCaptionBox(QWidget*, HistoryMedia *media, FullMsgId msgId) :
if (_animated) {
qint32 limitW = st::boxWideWidth - st::boxPhotoPadding.left() - st::boxPhotoPadding.right();
qint32 limitH = st::confirmMaxHeight;
maxW = qMax(dimensions.width(), 1);
maxH = qMax(dimensions.height(), 1);
maxW = std::max(dimensions.width(), 1);
maxH = std::max(dimensions.height(), 1);
if (maxW * limitH > maxH * limitW) {
if (maxW < limitW) {
maxH = maxH * limitW / maxW;
Expand All @@ -547,10 +547,10 @@ EditCaptionBox::EditCaptionBox(QWidget*, HistoryMedia *media, FullMsgId msgId) :
if (_thumb.width() < _thumbw) {
_thumbw = (_thumb.width() > 20) ? _thumb.width() : 20;
}
qint32 maxthumbh = qMin(qRound(1.5 * _thumbw), int(st::confirmMaxHeight));
_thumbh = qRound(th * double(_thumbw) / tw);
qint32 maxthumbh = std::min<int>(std::round(1.5 * _thumbw), int(st::confirmMaxHeight));
_thumbh = std::round(th * double(_thumbw) / tw);
if (_thumbh > maxthumbh) {
_thumbw = qRound(_thumbw * double(maxthumbh) / _thumbh);
_thumbw = std::round(_thumbw * double(maxthumbh) / _thumbh);
_thumbh = maxthumbh;
if (_thumbw < 10) {
_thumbw = 10;
Expand Down
Loading

0 comments on commit 52a41b1

Please sign in to comment.