diff --git a/MSVC.md b/MSVC.md index eb0104b24..cf8f5acaf 100644 --- a/MSVC.md +++ b/MSVC.md @@ -66,13 +66,13 @@ or download in ZIP and extract to **D:\TBuild\Libraries\**, rename **libexif-0.6 * Build Debug configuration * Build Release configuration -####Qt 5.3.0, slightly patched +####Qt 5.3.1, slightly patched -http://download.qt-project.org/official_releases/qt/5.3/5.3.0/single/qt-everywhere-opensource-src-5.3.0.zip +http://download.qt-project.org/official_releases/qt/5.3/5.3.1/single/qt-everywhere-opensource-src-5.3.1.zip -Extract to **D:\TBuild\Libraries\**, rename **qt-everywhere-opensource-src-5.3.0** to **QtStatic** to have **D:\TBuild\Libraries\QtStatic\qtbase\** folder +Extract to **D:\TBuild\Libraries\**, rename **qt-everywhere-opensource-src-5.3.1** to **QtStatic** to have **D:\TBuild\Libraries\QtStatic\qtbase\** folder -Apply patch – copy (with overwrite!) everything from **D:\TBuild\tdesktop\\\_qt\_5\_3\_0\_patch\** to **D:\TBuild\Libraries\QtStatic\** +Apply patch – copy (with overwrite!) everything from **D:\TBuild\tdesktop\\\_qt\_5\_3\_1\_patch\** to **D:\TBuild\Libraries\QtStatic\** #####Building library @@ -106,8 +106,8 @@ Close all VS2013 instances and install to default location * Launch VS2013 for configuring Qt Addin * QT5 > Qt Options > Add - * Version name: **QtStatic.5.3.0** + * Version name: **QtStatic.5.3.1** * Path: **D:\TBuild\Libraries\QtStatic\qtbase** -* Default Qt/Win version: **QtStatic.5.3.0** – **OK** +* Default Qt/Win version: **QtStatic.5.3.1** – **OK** * File > Open > Project/Solution > **D:\TBuild\tdesktop\Telegram.sln** * Build \ Build Solution (Debug and Release configurations) diff --git a/README.md b/README.md index b1422e9e0..2dae81eef 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Only Windows and OS X systems are supported at this moment, Linux builds are on ###Third-party -* Qt 5.3.0, slightly patched ([GPL](http://qt-project.org/doc/qt-5/gpl.html)) +* Qt 5.3.1, slightly patched ([GPL](http://qt-project.org/doc/qt-5/gpl.html)) * OpenSSL 1.0.1g ([OpenSSL License](https://www.openssl.org/source/license.html)) * zlib 1.2.8 ([zlib License](http://www.zlib.net/zlib_license.html)) * libexif 0.6.20 ([LGPL](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)) diff --git a/Telegram/Resources/lang.txt b/Telegram/Resources/lang.txt index 2824bf74f..3a4d9273f 100644 --- a/Telegram/Resources/lang.txt +++ b/Telegram/Resources/lang.txt @@ -122,6 +122,8 @@ lng_signup_firstname: "First Name"; lng_signup_lastname: "Last Name"; lng_dlg_filter: "Search"; +lng_dlg_conversations: "Conversations"; +lng_dlg_messages: "Messages"; lng_dlg_new_group_name: "Group name"; lng_dlg_create_group: "Create"; diff --git a/Telegram/Resources/style.txt b/Telegram/Resources/style.txt index a7aa82ee4..f95169460 100644 --- a/Telegram/Resources/style.txt +++ b/Telegram/Resources/style.txt @@ -30,6 +30,8 @@ counterBG: #b42f35; counterMuteBG: #777; counterColor: #fff; +lineWidth: 1px; + transparent: rgba(255, 255, 255, 0); white: rgba(255, 255, 255, 255); black: rgba(0, 0, 0, 255); @@ -153,11 +155,12 @@ btnDefBig: flatButton(btnDefFlat) { overFont: font(23px); height: 56px; } +btnNextBG: #2fa9e2; btnDefNext: flatButton(btnDefFlat) { color: white; overColor: white; downColor: white; - bgColor: #2fa9e2; + bgColor: btnNextBG; overBgColor: #279ad0; downBgColor: #279ad0; } @@ -593,6 +596,23 @@ dlgPaddingVer: 8px; dlgHeight: 62px; dlgPhotoPadding: 12px; +dlgState: switcher { + border: 2px; + borderColor: btnNextBG; + + bgColor: #fff; + bgHovered: btnWhiteHover; + bgActive: btnNextBG; + + height: 34px; + + font: font(fsize); + textColor: btnYesColor; + activeColor: #fff; + + duration: 200; +} + dlgSep: 8px; dlgShadowColor: rgba(0, 0, 0, 24);//#ebebeb @@ -709,6 +729,24 @@ topBarActionSkip: 13px; topBarSelectedPos: point(18px, 18px); historyBG: #dfe4e8; + +historyToEnd: iconedButton(btnDefIconed) { + bgColor: transparent; + overBgColor: transparent; + + icon: sprite(252px, 41px, 44px, 44px); + iconPos: point(0px, 0px); + downIcon: sprite(252px, 41px, 44px, 44px); + downIconPos: point(0px, 0px); + + width: 44px; + height: 44px; +} +historyToEndSkip: 10px; + +activeFadeInDuration: 500; +activeFadeOutDuration: 3000; + msgMaxWidth: 550px; msgFont: font(fsize); msgNameFont: font(fsize semibold); @@ -765,9 +803,9 @@ msgDateSpace: 19px; msgDateCheckSpace: 4px; msgDateDelta: point(2px, 5px); -msgImgSendingRect: sprite(280px, 40px, 20px, 20px); +msgImgSendingRect: sprite(320px, 65px, 20px, 20px); msgImgCheckRect: sprite(280px, 20px, 20px, 20px); -msgImgDblCheckRect: sprite(260px, 40px, 20px, 20px); +msgImgDblCheckRect: sprite(300px, 65px, 20px, 20px); msgDateImgDelta: 4px; msgDateImgColor: #fff; msgDateImgBg: #00000054; @@ -877,8 +915,8 @@ btnAttachDocument: iconedButton(btnDefIconed) { height: 46px; } btnAttachPhoto: iconedButton(btnAttachDocument) { - icon: sprite(278px, 68px, 24px, 24px); - downIcon: sprite(278px, 68px, 24px, 24px); + icon: sprite(113px, 0px, 24px, 24px); + downIcon: sprite(113px, 0px, 24px, 24px); } btnAttachEmoji: iconedButton(btnAttachDocument) { overBgColor: white; @@ -957,9 +995,14 @@ btnAddContact: iconedButton(btnNewGroup) { icon: sprite(188px, 93px, 18px, 18px); downIcon: sprite(188px, 93px, 18px, 18px); } +btnCancelSearch: iconedButton(btnNewGroup) { + icon: sprite(188px, 43px, 18px, 18px); + downIcon: sprite(188px, 43px, 18px, 18px); +} notifyBG: white; notifyBorder: #f1f1f1; +notifyBorderWidth: 1px; notifySlowHide: 4000; notifyPhotoSize: 62px; notifyPhotoPos: point(9px, 9px); @@ -1245,8 +1288,8 @@ dropdownAttachDocument: iconedButton(btnAttachDocument) { downTextPos: point(50px, 14px); } dropdownAttachPhoto: iconedButton(dropdownAttachDocument) { - icon: sprite(278px, 68px, 24px, 24px); - downIcon: sprite(278px, 68px, 24px, 24px); + icon: sprite(113px, 0px, 24px, 24px); + downIcon: sprite(113px, 0px, 24px, 24px); } dragFont: font(28px semibold); diff --git a/Telegram/Resources/style_classes.txt b/Telegram/Resources/style_classes.txt index 568e08ace..afa7a3384 100644 --- a/Telegram/Resources/style_classes.txt +++ b/Telegram/Resources/style_classes.txt @@ -229,3 +229,20 @@ flatLabel { width: number; align: align; } + +switcher { + border: number; + borderColor: color; + + bgColor: color; + bgHovered: color; + bgActive: color; + + height: number; + + font: font; + textColor: color; + activeColor: color; + + duration: number; +} diff --git a/Telegram/Setup.iss b/Telegram/Setup.iss index bc6015c83..bd1121cd4 100644 --- a/Telegram/Setup.iss +++ b/Telegram/Setup.iss @@ -3,9 +3,9 @@ #define MyAppShortName "Telegram" #define MyAppName "Telegram Win (Unofficial)" -#define MyAppVersion "0.5.4" -#define MyAppVersionZero "0.5.4" -#define MyAppFullVersion "0.5.4.0" +#define MyAppVersion "0.5.6" +#define MyAppVersionZero "0.5.6" +#define MyAppFullVersion "0.5.6.0" #define MyAppPublisher "Telegram (Unofficial)" #define MyAppURL "https://tdesktop.com" #define MyAppExeName "Telegram.exe" diff --git a/Telegram/SourceFiles/app.cpp b/Telegram/SourceFiles/app.cpp index 0a508deeb..fb6c6274c 100644 --- a/Telegram/SourceFiles/app.cpp +++ b/Telegram/SourceFiles/app.cpp @@ -113,7 +113,7 @@ namespace App { Window *w(wnd()); if (w) { w->tempDirDelete(); - w->psClearNotifyFast(); + w->notifyClearFast(); w->setupIntro(true); } MainWidget *m(main()); @@ -508,7 +508,7 @@ namespace App { } } for (QMap::const_iterator i = msgsIds.cbegin(), e = msgsIds.cend(); i != e; ++i) { - histories().addToBack(v[*i], newMsgs); + histories().addToBack(v[*i], newMsgs ? 1 : 0); } } @@ -557,9 +557,6 @@ namespace App { if (j != msgsData.cend()) { History *h = (*j)->history(); (*j)->destroy(); - if (h->isEmpty()) { - if (App::main()) App::main()->checkPeerHistory(h->peer); - } } } } @@ -1100,23 +1097,26 @@ namespace App { return 0; } - bool historyRegItem(HistoryItem *item) { + HistoryItem *historyRegItem(HistoryItem *item) { MsgsData::const_iterator i = msgsData.constFind(item->id); if (i == msgsData.cend()) { msgsData.insert(item->id, item); if (item->id > ::maxMsgId) ::maxMsgId = item->id; - return true; + return 0; } - return (i.value() == item); + if (i.value() != item && !i.value()->block() && item->block()) { // replace search item + item->history()->itemReplaced(i.value(), item); + if (App::main()) { + emit App::main()->historyItemReplaced(i.value(), item); + } + delete i.value(); + msgsData.insert(item->id, item); + return 0; + } + return (i.value() == item) ? 0 : i.value(); } - void historyUnregItem(HistoryItem *item) { - MsgsData::iterator i = msgsData.find(item->id); - if (i != msgsData.cend()) { - if (i.value() == item) { - msgsData.erase(i); - } - } + void historyItemDetached(HistoryItem *item) { if (::hoveredItem == item) { hoveredItem(0); } @@ -1135,13 +1135,32 @@ namespace App { if (::mousedItem == item) { mousedItem(0); } + } + + void historyUnregItem(HistoryItem *item) { + MsgsData::iterator i = msgsData.find(item->id); + if (i != msgsData.cend()) { + if (i.value() == item) { + msgsData.erase(i); + } + } + historyItemDetached(item); if (App::main()) { emit App::main()->historyItemDeleted(item); } } void historyClearMsgs() { + QVector toDelete; + for (MsgsData::const_iterator i = msgsData.cbegin(), e = msgsData.cend(); i != e; ++i) { + if ((*i)->detached()) { + toDelete.push_back(*i); + } + } msgsData.clear(); + for (int i = 0, l = toDelete.size(); i < l; ++i) { + delete toDelete[i]; + } ::maxMsgId = 0; ::hoveredItem = ::pressedItem = ::hoveredLinkItem = ::pressedLinkItem = ::contextItem = 0; } @@ -1224,6 +1243,12 @@ namespace App { textlnkOver(TextLinkPtr()); textlnkDown(TextLinkPtr()); + if (completely && App::main()) { + App::main()->disconnect(SIGNAL(historyItemDeleted(HistoryItem *))); + } + + histories().clear(); + if (completely) { LOG(("Deleting sound..")); delete newMsgSound; @@ -1242,12 +1267,6 @@ namespace App { clearStorageImages(); } - if (App::main()) { - App::main()->disconnect(SIGNAL(historyItemDeleted(HistoryItem*))); - } - - histories().clear(); - serviceImageCacheSize = imageCacheSize(); } @@ -1809,7 +1828,7 @@ namespace App { setQuiting(); if (wnd()) { - wnd()->psClearNotifyFast(); + wnd()->notifyClearFast(); } if (app()) { app()->quit(); diff --git a/Telegram/SourceFiles/app.h b/Telegram/SourceFiles/app.h index 8a20785ac..8bb4636ff 100644 --- a/Telegram/SourceFiles/app.h +++ b/Telegram/SourceFiles/app.h @@ -116,7 +116,8 @@ namespace App { History *history(const PeerId &peer, int32 unreadCnt = 0); History *historyLoaded(const PeerId &peer); HistoryItem *histItemById(MsgId itemId); - bool historyRegItem(HistoryItem *item); + HistoryItem *historyRegItem(HistoryItem *item); + void historyItemDetached(HistoryItem *item); void historyUnregItem(HistoryItem *item); void historyClearMsgs(); void historyClearItems(); diff --git a/Telegram/SourceFiles/art/sprite.png b/Telegram/SourceFiles/art/sprite.png index b1713b073..2f5830726 100644 Binary files a/Telegram/SourceFiles/art/sprite.png and b/Telegram/SourceFiles/art/sprite.png differ diff --git a/Telegram/SourceFiles/art/sprite_200x.png b/Telegram/SourceFiles/art/sprite_200x.png index 5da23c725..1d5a6885a 100644 Binary files a/Telegram/SourceFiles/art/sprite_200x.png and b/Telegram/SourceFiles/art/sprite_200x.png differ diff --git a/Telegram/SourceFiles/boxes/addcontactbox.cpp b/Telegram/SourceFiles/boxes/addcontactbox.cpp index 2ac12c875..5638554b2 100644 --- a/Telegram/SourceFiles/boxes/addcontactbox.cpp +++ b/Telegram/SourceFiles/boxes/addcontactbox.cpp @@ -179,8 +179,7 @@ void AddContactBox::paintEvent(QPaintEvent *e) { p.fillRect(0, size().height() - st::btnSelectCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::btnSelectCancel.width, size().height() - 1); + p.fillRect(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setPen(st::black->p); diff --git a/Telegram/SourceFiles/boxes/addparticipantbox.cpp b/Telegram/SourceFiles/boxes/addparticipantbox.cpp index 3253f76f0..5659c657c 100644 --- a/Telegram/SourceFiles/boxes/addparticipantbox.cpp +++ b/Telegram/SourceFiles/boxes/addparticipantbox.cpp @@ -587,8 +587,7 @@ void AddParticipantBox::paintEvent(QPaintEvent *e) { p.fillRect(0, st::participantFilter.height, _width, st::scrollDef.topsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::btnSelectCancel.width, size().height() - 1); + p.fillRect(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setPen(st::black->p); diff --git a/Telegram/SourceFiles/boxes/confirmbox.cpp b/Telegram/SourceFiles/boxes/confirmbox.cpp index e1dfdf6ef..3e0f91f90 100644 --- a/Telegram/SourceFiles/boxes/confirmbox.cpp +++ b/Telegram/SourceFiles/boxes/confirmbox.cpp @@ -82,8 +82,7 @@ void ConfirmBox::paintEvent(QPaintEvent *e) { p.fillRect(0, _height - st::btnSelectCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::btnSelectCancel.width, _height - 1); + p.fillRect(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setFont(st::boxFont->f); diff --git a/Telegram/SourceFiles/boxes/connectionbox.cpp b/Telegram/SourceFiles/boxes/connectionbox.cpp index 047270462..f34d8c63a 100644 --- a/Telegram/SourceFiles/boxes/connectionbox.cpp +++ b/Telegram/SourceFiles/boxes/connectionbox.cpp @@ -136,8 +136,7 @@ void ConnectionBox::paintEvent(QPaintEvent *e) { p.fillRect(0, _height - st::btnSelectCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::btnSelectCancel.width, _height - 1); + p.fillRect(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setFont(st::addContactTitleFont->f); diff --git a/Telegram/SourceFiles/boxes/contactsbox.cpp b/Telegram/SourceFiles/boxes/contactsbox.cpp index 1009be8eb..242903f11 100644 --- a/Telegram/SourceFiles/boxes/contactsbox.cpp +++ b/Telegram/SourceFiles/boxes/contactsbox.cpp @@ -210,7 +210,7 @@ void ContactsInner::chooseParticipant() { } if (r) { App::wnd()->hideSettings(true); - App::main()->showPeer(r->history->peer->id, false, true); + App::main()->showPeer(r->history->peer->id, 0, false, true); App::wnd()->hideLayer(); } @@ -479,8 +479,7 @@ void ContactsBox::paintEvent(QPaintEvent *e) { p.fillRect(0, _addContact.height(), _width, st::scrollDef.topsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::btnSelectCancel.width, size().height() - 1); + p.fillRect(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setPen(st::black->p); diff --git a/Telegram/SourceFiles/boxes/downloadpathbox.cpp b/Telegram/SourceFiles/boxes/downloadpathbox.cpp index 0b5d76c19..018261873 100644 --- a/Telegram/SourceFiles/boxes/downloadpathbox.cpp +++ b/Telegram/SourceFiles/boxes/downloadpathbox.cpp @@ -109,8 +109,7 @@ void DownloadPathBox::paintEvent(QPaintEvent *e) { p.fillRect(0, _height - st::btnSelectCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::btnSelectCancel.width, _height - 1); + p.fillRect(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setFont(st::addContactTitleFont->f); diff --git a/Telegram/SourceFiles/boxes/newgroupbox.cpp b/Telegram/SourceFiles/boxes/newgroupbox.cpp index 3030a59e4..a2822e94a 100644 --- a/Telegram/SourceFiles/boxes/newgroupbox.cpp +++ b/Telegram/SourceFiles/boxes/newgroupbox.cpp @@ -438,6 +438,15 @@ QVector NewGroupInner::selectedInputs() { return result; } +PeerData *NewGroupInner::selectedUser() { + for (ContactsData::const_iterator i = _contactsData.cbegin(), e = _contactsData.cend(); i != e; ++i) { + if (i.value()->check) { + return i.key(); + } + } + return 0; +} + NewGroupBox::NewGroupBox() : _scroll(this, st::newGroupScroll), _inner(), _filter(this, st::contactsFilter, lang(lng_participant_filter)), _next(this, lang(lng_create_group_next), st::btnSelectDone), @@ -521,8 +530,7 @@ void NewGroupBox::paintEvent(QPaintEvent *e) { p.fillRect(0, st::participantFilter.height, _width, st::scrollDef.topsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::btnSelectCancel.width, size().height() - 1); + p.fillRect(st::btnSelectCancel.width, size().height() - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setPen(st::black->p); @@ -579,13 +587,15 @@ void NewGroupBox::onClose() { void NewGroupBox::onNext() { MTPVector users(MTP_vector(_inner.selectedInputs())); - if (users.c_vector().v.isEmpty()) { + const QVector &v(users.c_vector().v); + if (v.isEmpty()) { _filter.setFocus(); _filter.notaBene(); - return; + } else if (v.size() == 1) { + App::main()->showPeer(_inner.selectedUser()->id); + } else { + App::wnd()->replaceLayer(new CreateGroupBox(users)); } - - App::wnd()->replaceLayer(new CreateGroupBox(users)); } void NewGroupBox::onScroll() { @@ -666,8 +676,7 @@ void CreateGroupBox::paintEvent(QPaintEvent *e) { p.fillRect(0, _height - st::btnSelectCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::btnSelectCancel.width, size().height() - 1); + p.fillRect(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setPen(st::black->p); diff --git a/Telegram/SourceFiles/boxes/newgroupbox.h b/Telegram/SourceFiles/boxes/newgroupbox.h index 5ae9e96b6..f08804f13 100644 --- a/Telegram/SourceFiles/boxes/newgroupbox.h +++ b/Telegram/SourceFiles/boxes/newgroupbox.h @@ -39,6 +39,7 @@ public: void selectSkipPage(int32 h, int32 dir); QVector selectedInputs(); + PeerData *selectedUser(); void loadProfilePhotos(int32 yFrom); diff --git a/Telegram/SourceFiles/boxes/photocropbox.cpp b/Telegram/SourceFiles/boxes/photocropbox.cpp index 8729aabd6..90bf787c1 100644 --- a/Telegram/SourceFiles/boxes/photocropbox.cpp +++ b/Telegram/SourceFiles/boxes/photocropbox.cpp @@ -218,8 +218,7 @@ void PhotoCropBox::paintEvent(QPaintEvent *e) { p.fillRect(0, _height - st::btnSelectCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::btnSelectCancel.width, _height - 1); + p.fillRect(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); p.setFont(st::boxFont->f); p.setPen(st::boxGrayTitle->p); diff --git a/Telegram/SourceFiles/boxes/photosendbox.cpp b/Telegram/SourceFiles/boxes/photosendbox.cpp index c31670d89..405e28068 100644 --- a/Telegram/SourceFiles/boxes/photosendbox.cpp +++ b/Telegram/SourceFiles/boxes/photosendbox.cpp @@ -91,8 +91,7 @@ void PhotoSendBox::paintEvent(QPaintEvent *e) { p.fillRect(0, _height - st::btnSelectCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::btnSelectCancel.width, _height - 1); + p.fillRect(st::btnSelectCancel.width, _height - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); p.setFont(st::boxFont->f); p.setPen(st::boxGrayTitle->p); diff --git a/Telegram/SourceFiles/config.h b/Telegram/SourceFiles/config.h index bc4f5f8fd..52ebb0aae 100644 --- a/Telegram/SourceFiles/config.h +++ b/Telegram/SourceFiles/config.h @@ -17,8 +17,8 @@ Copyright (c) 2014 John Preston, https://tdesktop.com */ #pragma once -static const int32 AppVersion = 5005; -static const wchar_t *AppVersionStr = L"0.5.5"; +static const int32 AppVersion = 5006; +static const wchar_t *AppVersionStr = L"0.5.6"; #ifdef Q_OS_WIN static const wchar_t *AppName = L"Telegram Win (Unofficial)"; #else @@ -56,7 +56,12 @@ enum { LocalEncryptSaltSize = 32, // 256 bit LocalEncryptKeySize = 256, // 2048 bit + AnimationTimerDelta = 7, + SaveRecentEmojisTimeout = 3000, // 3 secs + + AutoSearchTimeout = 1500, // 1.5 secs + SearchPerPage = 50, }; #ifdef Q_OS_WIN @@ -166,7 +171,7 @@ enum { NoUpdatesTimeout = 180 * 1000, // if nothing is received in 3 min we reconnect MemoryForImageCache = 64 * 1024 * 1024, // after 64mb of unpacked images we try to clear some memory - NotifyWindows = 3, // 3 desktop notifies at the same time + NotifyWindowsCount = 3, // 3 desktop notifies at the same time NotifyWaitTimeout = 1200, // 1.2 seconds timeout before notification NotifySettingSaveTimeout = 1000, // wait 1 second before saving notify setting to server UpdateChunk = 100 * 1024, // 100kb parts when downloading the update diff --git a/Telegram/SourceFiles/dialogswidget.cpp b/Telegram/SourceFiles/dialogswidget.cpp index f76fa9426..13802c6c6 100644 --- a/Telegram/SourceFiles/dialogswidget.cpp +++ b/Telegram/SourceFiles/dialogswidget.cpp @@ -26,11 +26,16 @@ Copyright (c) 2014 John Preston, https://tdesktop.com #include "boxes/newgroupbox.h" DialogsListWidget::DialogsListWidget(QWidget *parent, MainWidget *main) : QWidget(parent), -dialogs(false), contactsNoDialogs(true), contacts(true), sel(0), contactSel(false), selByMouse(false), filteredSel(-1) { +dialogs(false), contactsNoDialogs(true), contacts(true), sel(0), contactSel(false), selByMouse(false), filteredSel(-1), searchedSel(-1), _state(DefaultState) { connect(main, SIGNAL(dialogToTop(const History::DialogLinks &)), this, SLOT(onDialogToTop(const History::DialogLinks &))); connect(main, SIGNAL(peerNameChanged(PeerData *, const PeerData::Names &, const PeerData::NameFirstChars &)), this, SLOT(onPeerNameChanged(PeerData *, const PeerData::Names &, const PeerData::NameFirstChars &))); connect(main, SIGNAL(peerPhotoChanged(PeerData *)), this, SLOT(onPeerPhotoChanged(PeerData *))); connect(main, SIGNAL(dialogRowReplaced(DialogRow *, DialogRow *)), this, SLOT(onDialogRowReplaced(DialogRow *, DialogRow *))); + connect(main, SIGNAL(historyItemReplaced(HistoryItem *, HistoryItem *)), this, SLOT(onItemReplaced(HistoryItem *, HistoryItem *))); + connect(main, SIGNAL(historyItemDeleted(HistoryItem *)), this, SLOT(onItemRemoved(HistoryItem *))); + + _updateSearchTimer.setSingleShot(true); + connect(&_updateSearchTimer, SIGNAL(timeout()), this, SIGNAL(searchMessages())); } void DialogsListWidget::paintEvent(QPaintEvent *e) { @@ -42,7 +47,7 @@ void DialogsListWidget::paintEvent(QPaintEvent *e) { p.setClipRect(r); } - if (filter.isEmpty()) { + if (_state == DefaultState) { int32 otherStart = dialogs.list.count * st::dlgHeight; PeerData *active = App::main()->activePeer(), *selected = sel ? sel->history->peer : 0; if (otherStart) { @@ -53,21 +58,40 @@ void DialogsListWidget::paintEvent(QPaintEvent *e) { } else if (!otherStart) { // .. paint no dialogs found } - } else { - if (filtered.isEmpty()) { + } else if (_state == FilteredState) { + if (filterResults.isEmpty()) { // .. paint no dialogs } else { int32 from = r.top() / int32(st::dlgHeight); if (from < 0) from = 0; - if (from < filtered.size()) { + if (from < filterResults.size()) { int32 to = (r.bottom() / int32(st::dlgHeight)) + 1, w = width(); - if (to > filtered.size()) to = filtered.size(); + if (to > filterResults.size()) to = filterResults.size(); p.translate(0, from * st::dlgHeight); for (; from < to; ++from) { - bool active = (filtered[from]->history->peer == App::main()->activePeer()); + bool active = (filterResults[from]->history->peer == App::main()->activePeer()); bool selected = (from == filteredSel); - filtered[from]->paint(p, w, active, selected); + filterResults[from]->paint(p, w, active, selected); + p.translate(0, st::dlgHeight); + } + } + } + } else if (_state == SearchedState) { + if (searchResults.isEmpty()) { + // .. paint no dialogs + } else { + int32 from = r.top() / int32(st::dlgHeight); + if (from < 0) from = 0; + if (from < searchResults.size()) { + int32 to = (r.bottom() / int32(st::dlgHeight)) + 1, w = width(); + if (to > searchResults.size()) to = searchResults.size(); + + p.translate(0, from * st::dlgHeight); + for (; from < to; ++from) { + bool active = (searchResults[from]->_item->id == App::main()->activeMsgId()); + bool selected = (from == searchedSel); + searchResults[from]->paint(p, w, active, selected); p.translate(0, st::dlgHeight); } } @@ -76,7 +100,11 @@ void DialogsListWidget::paintEvent(QPaintEvent *e) { } void DialogsListWidget::activate() { - if ((filter.isEmpty() && !sel) || (!filter.isEmpty() && (filteredSel < 0 || filteredSel >= filtered.size()))) { + if ( + (_state == DefaultState && !sel) || + (_state == FilteredState && (filteredSel < 0 || filteredSel >= filterResults.size())) || + (_state == SearchedState && (searchedSel < 0 || searchedSel >= searchResults.size())) + ) { selectSkip(1); } } @@ -93,7 +121,7 @@ void DialogsListWidget::onUpdateSelected(bool force) { if ((!force && !rect().contains(mouse)) || !selByMouse) return; int w = width(), mouseY = mouse.y(); - if (filter.isEmpty()) { + if (_state == DefaultState) { DialogRow *newSel = dialogs.list.rowAtY(mouseY, st::dlgHeight); int32 otherStart = dialogs.list.count * st::dlgHeight; if (newSel) { @@ -102,32 +130,35 @@ void DialogsListWidget::onUpdateSelected(bool force) { newSel = contactsNoDialogs.list.rowAtY(mouseY - otherStart, st::dlgHeight); contactSel = true; } - if (contactSel) { - mouse.setY(mouse.y() - otherStart); - } - if (newSel) { - mouse.setY(mouse.y() - newSel->pos * st::dlgHeight); - } if (newSel != sel) { sel = newSel; setCursor(sel ? style::cur_pointer : style::cur_default); parentWidget()->update(); } - } else { - if (!filtered.isEmpty()) { + } else if (_state == FilteredState) { + if (!filterResults.isEmpty()) { int32 newFilteredSel = mouseY / int32(st::dlgHeight); - if (newFilteredSel < 0 || newFilteredSel >= filtered.size()) { + if (newFilteredSel < 0 || newFilteredSel >= filterResults.size()) { newFilteredSel = -1; } - if (newFilteredSel >= 0) { - mouse.setY(mouse.y() - newFilteredSel * st::dlgHeight); - } if (newFilteredSel != filteredSel) { filteredSel = newFilteredSel; setCursor((filteredSel >= 0) ? style::cur_pointer : style::cur_default); parentWidget()->update(); } } + } else if (_state == SearchedState) { + if (!searchResults.isEmpty()) { + int32 newSearchedSel = mouseY / int32(st::dlgHeight); + if (newSearchedSel < 0 || newSearchedSel >= searchResults.size()) { + newSearchedSel = -1; + } + if (newSearchedSel != searchedSel) { + searchedSel = newSearchedSel; + setCursor((searchedSel >= 0) ? style::cur_pointer : style::cur_default); + parentWidget()->update(); + } + } } } @@ -141,14 +172,14 @@ void DialogsListWidget::mousePressEvent(QMouseEvent *e) { } void DialogsListWidget::onDialogRowReplaced(DialogRow *oldRow, DialogRow *newRow) { - if (!filter.isEmpty()) { - for (FilteredDialogs::iterator i = filtered.begin(), e = filtered.end(); i != e;) { + if (_state == FilteredState) { + for (FilteredDialogs::iterator i = filterResults.begin(); i != filterResults.end();) { if (*i == oldRow) { // this row is shown in filtered and maybe is in contacts! if (newRow) { *i = newRow; ++i; } else { - i = filtered.erase(i); + i = filterResults.erase(i); } } else { ++i; @@ -210,11 +241,11 @@ void DialogsListWidget::removeContact(UserData *user) { } void DialogsListWidget::dlgUpdated(DialogRow *row) { - if (filter.isEmpty()) { + if (_state == DefaultState) { update(0, row->pos * st::dlgHeight, width(), st::dlgHeight); - } else { + } else if (_state == FilteredState) { int32 cnt = 0; - for (FilteredDialogs::const_iterator i = filtered.cbegin(), e = filtered.cend(); i != e; ++i) { + for (FilteredDialogs::const_iterator i = filterResults.cbegin(), e = filterResults.cend(); i != e; ++i) { if ((*i)->history == row->history) { update(0, cnt * st::dlgHeight, width(), st::dlgHeight); break; @@ -225,7 +256,7 @@ void DialogsListWidget::dlgUpdated(DialogRow *row) { } void DialogsListWidget::dlgUpdated(History *history) { - if (filter.isEmpty()) { + if (_state == DefaultState) { DialogRow *row = 0; DialogsList::RowByPeer::iterator i = dialogs.list.rowByPeer.find(history->peer->id); if (i != dialogs.list.rowByPeer.cend()) { @@ -236,15 +267,24 @@ void DialogsListWidget::dlgUpdated(History *history) { update(0, (dialogs.list.count + i.value()->pos) * st::dlgHeight, width(), st::dlgHeight); } } - } else { + } else if (_state == FilteredState) { int32 cnt = 0; - for (FilteredDialogs::const_iterator i = filtered.cbegin(), e = filtered.cend(); i != e; ++i) { + for (FilteredDialogs::const_iterator i = filterResults.cbegin(), e = filterResults.cend(); i != e; ++i) { if ((*i)->history == history) { update(0, cnt * st::dlgHeight, width(), st::dlgHeight); break; } ++cnt; } + } else if (_state == SearchedState) { + int32 cnt = 0; + for (SearchResults::const_iterator i = searchResults.cbegin(), e = searchResults.cend(); i != e; ++i) { + if ((*i)->_item->history() == history) { + update(0, cnt * st::dlgHeight, width(), st::dlgHeight); + break; + } + ++cnt; + } } } @@ -290,9 +330,14 @@ void DialogsListWidget::onPeerPhotoChanged(PeerData *peer) { parentWidget()->update(); } -void DialogsListWidget::onFilterUpdate(QString newFilter) { +void DialogsListWidget::onFilterUpdate(QString newFilter, bool force) { + if (_state == SearchedState && !newFilter.trimmed().isEmpty()) { + _updateSearchTimer.start(AutoSearchTimeout); + return; + } + newFilter = textAccentFold(newFilter.trimmed().toLower()); - if (newFilter != filter) { + if (newFilter != filter || force) { QStringList f; if (!newFilter.isEmpty()) { QStringList filterList = newFilter.split(cWordSplit(), QString::SkipEmptyParts); @@ -306,12 +351,16 @@ void DialogsListWidget::onFilterUpdate(QString newFilter) { } newFilter = f.join(' '); } - if (newFilter != filter) { + if (newFilter != filter || force) { filter = newFilter; - if (!filter.isEmpty()) { + if (filter.isEmpty()) { + _state = DefaultState; + filterResults.clear(); + } else { QStringList::const_iterator fb = f.cbegin(), fe = f.cend(), fi; - filtered.clear(); + _state = FilteredState; + filterResults.clear(); if (!f.isEmpty()) { DialogsList *dialogsToFilter = 0, *contactsNoDialogsToFilter = 0; if (dialogs.list.count) { @@ -338,7 +387,7 @@ void DialogsListWidget::onFilterUpdate(QString newFilter) { } } } - filtered.reserve((dialogsToFilter ? dialogsToFilter->count : 0) + (contactsNoDialogsToFilter ? contactsNoDialogsToFilter->count : 0)); + filterResults.reserve((dialogsToFilter ? dialogsToFilter->count : 0) + (contactsNoDialogsToFilter ? contactsNoDialogsToFilter->count : 0)); if (dialogsToFilter && dialogsToFilter->count) { for (DialogRow *i = dialogsToFilter->begin, *e = dialogsToFilter->end; i != e; i = i->next) { const PeerData::Names &names(i->history->peer->names); @@ -355,7 +404,7 @@ void DialogsListWidget::onFilterUpdate(QString newFilter) { } } if (fi == fe) { - filtered.push_back(i); + filterResults.push_back(i); } } } @@ -375,7 +424,7 @@ void DialogsListWidget::onFilterUpdate(QString newFilter) { } } if (fi == fe) { - filtered.push_back(i); + filterResults.push_back(i); } } } @@ -387,6 +436,41 @@ void DialogsListWidget::onFilterUpdate(QString newFilter) { } } +DialogsListWidget::~DialogsListWidget() { + clearSearchResults(); +} + +void DialogsListWidget::clearSearchResults() { + if (!searchResults.isEmpty()) { + for (SearchResults::const_iterator i = searchResults.cbegin(), e = searchResults.cend(); i != e; ++i) { + delete *i; + } + searchResults.clear(); + } +} + +void DialogsListWidget::onItemReplaced(HistoryItem *oldItem, HistoryItem *newItem) { + for (int i = 0; i < searchResults.size(); ++i) { + if (searchResults[i]->_item == oldItem) { + searchResults[i]->_item = newItem; + } + } +} + +void DialogsListWidget::onItemRemoved(HistoryItem *item) { + int wasCount = searchResults.size(); + for (int i = 0; i < searchResults.size(); ++i) { + if (searchResults[i]->_item == item) { + searchResults.remove(i); + } else { + ++i; + } + } + if (wasCount != searchResults.size()) { + refresh(); + } +} + void DialogsListWidget::dialogsReceived(const QVector &added) { for (QVector::const_iterator i = added.cbegin(), e = added.cend(); i != e; ++i) { if (i->type() == mtpc_dialog) { @@ -401,6 +485,17 @@ void DialogsListWidget::dialogsReceived(const QVector &added) { refresh(); } +void DialogsListWidget::searchReceived(const QVector &messages, bool fromStart) { + if (fromStart) { + clearSearchResults(); + } + for (QVector::const_iterator i = messages.cbegin(), e = messages.cend(); i != e; ++i) { + HistoryItem *item = App::histories().addToBack(*i, -1); + searchResults.push_back(new FakeDialogRow(item)); + } + refresh(); +} + void DialogsListWidget::contactsReceived(const QVector &contacts) { for (QVector::const_iterator i = contacts.cbegin(), e = contacts.cend(); i != e; ++i) { addNewContact(i->c_contact().vuser_id.v); @@ -436,7 +531,15 @@ int32 DialogsListWidget::addNewContact(int32 uid, bool select) { } void DialogsListWidget::refresh(bool toTop) { - resize(width(), (filter.isEmpty() ? (dialogs.list.count + contactsNoDialogs.list.count) : filtered.count()) * st::dlgHeight); + int32 cnt = 0; + if (_state == DefaultState) { + cnt = dialogs.list.count + contactsNoDialogs.list.count; + } else if (_state == FilteredState) { + cnt = filterResults.count(); + } else if (_state == SearchedState) { + cnt = searchResults.count(); + } + resize(width(), cnt * st::dlgHeight); if (toTop) { emit mustScrollTo(0, 0); loadPeerPhotos(0); @@ -447,17 +550,37 @@ void DialogsListWidget::refresh(bool toTop) { void DialogsListWidget::setMouseSel(bool msel, bool toTop) { selByMouse = msel; if (!selByMouse && toTop) { - if (filter.isEmpty()) { + if (_state == DefaultState) { sel = (dialogs.list.count ? dialogs.list.begin : (contactsNoDialogs.list.count ? contactsNoDialogs.list.begin : 0)); contactSel = !dialogs.list.count && contactsNoDialogs.list.count; - } else { + } else if (_state == FilteredState) { filteredSel = 0; + } else if (_state == SearchedState) { + searchedSel = -1; // don't select first elem in search } } } +void DialogsListWidget::setState(State newState) { + _state = newState; + if (_state == DefaultState || _state == FilteredState) { + clearSearchResults(); + searchedSel = -1; + } else if (_state == DefaultState || _state == SearchedState) { + filterResults.clear(); + filteredSel = -1; + } + onFilterUpdate(filter, true); + refresh(true); +} + +DialogsListWidget::State DialogsListWidget::state() const { + return _state; +} + void DialogsListWidget::clearFilter() { - if (!filter.isEmpty()) { + if (_state == FilteredState) { + _state = DefaultState; filter = QString(); refresh(true); } @@ -473,7 +596,7 @@ void DialogsListWidget::addDialog(const MTPDdialog &dialog) { } void DialogsListWidget::selectSkip(int32 direction) { - if (filter.isEmpty()) { + if (_state == DefaultState) { if (!sel) { if (dialogs.list.count && direction > 0) { sel = dialogs.list.begin; @@ -499,20 +622,27 @@ void DialogsListWidget::selectSkip(int32 direction) { } int32 fromY = (sel->pos + (contactSel ? dialogs.list.count : 0)) * st::dlgHeight; emit mustScrollTo(fromY, fromY + st::dlgHeight); - } else { - if (filtered.isEmpty()) return; - int32 newSel = snap(filteredSel + direction, 0, filtered.size() - 1); + } else if (_state == FilteredState) { + if (filterResults.isEmpty()) return; + int32 newSel = snap(filteredSel + direction, 0, filterResults.size() - 1); if (newSel != filteredSel) { filteredSel = newSel; } emit mustScrollTo(filteredSel * st::dlgHeight, (filteredSel + 1) * st::dlgHeight); + } else if (_state == SearchedState) { + if (searchResults.isEmpty()) return; + int32 newSel = snap(searchedSel + direction, 0, searchResults.size() - 1); + if (newSel != searchedSel) { + searchedSel = newSel; + } + emit mustScrollTo(searchedSel * st::dlgHeight, (searchedSel + 1) * st::dlgHeight); } parentWidget()->update(); } void DialogsListWidget::scrollToPeer(const PeerId &peer) { int32 fromY = -1; - if (filter.isEmpty()) { + if (_state == DefaultState) { DialogsList::RowByPeer::const_iterator i = dialogs.list.rowByPeer.constFind(peer); if (i != dialogs.list.rowByPeer.cend()) { fromY = i.value()->pos * st::dlgHeight; @@ -522,9 +652,9 @@ void DialogsListWidget::scrollToPeer(const PeerId &peer) { fromY = (i.value()->pos + dialogs.list.count) * st::dlgHeight; } } - } else { - for (int32 i = 0, c = filtered.size(); i < c; ++i) { - if (filtered[i]->history->peer->id == peer) { + } else if (_state == FilteredState) { + for (int32 i = 0, c = filterResults.size(); i < c; ++i) { + if (filterResults[i]->history->peer->id == peer) { fromY = i * st::dlgHeight; break; } @@ -537,7 +667,7 @@ void DialogsListWidget::scrollToPeer(const PeerId &peer) { void DialogsListWidget::selectSkipPage(int32 pixels, int32 direction) { int32 toSkip = pixels / int32(st::dlgHeight); - if (filter.isEmpty()) { + if (_state == DefaultState) { if (!sel) { if (direction > 0 && dialogs.list.count) { sel = dialogs.list.begin; @@ -581,7 +711,7 @@ void DialogsListWidget::selectSkipPage(int32 pixels, int32 direction) { void DialogsListWidget::loadPeerPhotos(int32 yFrom) { int32 yTo = yFrom + parentWidget()->height() * 5; MTP::clearLoaderPriorities(); - if (filter.isEmpty()) { + if (_state == DefaultState) { int32 otherStart = dialogs.list.count * st::dlgHeight; if (yFrom < otherStart) { dialogs.list.adjustCurrent(yFrom, st::dlgHeight); @@ -599,99 +729,124 @@ void DialogsListWidget::loadPeerPhotos(int32 yFrom) { row->history->peer->photo->load(); } } - } else { + } else if (_state == FilteredState) { int32 from = yFrom / st::dlgHeight; if (from < 0) from = 0; - if (from < filtered.size()) { + if (from < filterResults.size()) { int32 to = (yTo / int32(st::dlgHeight)) + 1, w = width(); - if (to > filtered.size()) to = filtered.size(); + if (to > filterResults.size()) to = filterResults.size(); for (; from < to; ++from) { - filtered[from]->history->peer->photo->load(); + filterResults[from]->history->peer->photo->load(); + } + } + } else if (_state == SearchedState) { + int32 from = yFrom / st::dlgHeight; + if (from < 0) from = 0; + if (from < searchResults.size()) { + int32 to = (yTo / int32(st::dlgHeight)) + 1, w = width(); + if (to > searchResults.size()) to = searchResults.size(); + + for (; from < to; ++from) { + searchResults[from]->_item->history()->peer->photo->load(); } } } } -void DialogsListWidget::choosePeer() { - History *history = filter.isEmpty() ? (sel ? sel->history : 0) : ((filteredSel >= 0 && filteredSel < filtered.size()) ? filtered[filteredSel]->history : 0); +bool DialogsListWidget::choosePeer() { + History *history = 0; + MsgId msgId = 0; + if (_state == DefaultState) { + if (sel) history = sel->history; + } else if (_state == FilteredState) { + if (filteredSel >= 0 && filteredSel < filterResults.size()) history = filterResults[filteredSel]->history; + } else if (_state == SearchedState) { + if (searchedSel >= 0 && searchedSel < searchResults.size()) { + history = searchResults[searchedSel]->_item->history(); + msgId = searchResults[searchedSel]->_item->id; + } + } if (history) { - emit peerChosen(history->peer->id); + emit peerChosen(history->peer->id, msgId); sel = 0; filteredSel = -1; parentWidget()->update(); + return true; } + return false; } void DialogsListWidget::destroyData() { sel = 0; contactSel = false; filteredSel = 0; - filtered.clear(); + filterResults.clear(); filter.clear(); + searchedSel = 0; + clearSearchResults(); contacts.clear(); contactsNoDialogs.clear(); dialogs.clear(); } PeerData *DialogsListWidget::peerBefore(const PeerData *peer) const { - if (!filter.isEmpty()) { - if (filtered.isEmpty() || filtered.at(0)->history->peer == peer) return 0; + if (_state == DefaultState) { + DialogsList::RowByPeer::const_iterator i = dialogs.list.rowByPeer.constFind(peer->id); + if (i == dialogs.list.rowByPeer.constEnd()) { + i = contactsNoDialogs.list.rowByPeer.constFind(peer->id); + if (i == contactsNoDialogs.list.rowByPeer.cend()) { + return 0; + } + if (i.value()->prev) { + return i.value()->prev->history->peer; + } else if (dialogs.list.count) { + return dialogs.list.end->prev->history->peer; + } + return 0; + } + if (i.value()->prev) { + return i.value()->prev->history->peer; + } + } else if (_state == FilteredState) { + if (filterResults.isEmpty() || filterResults.at(0)->history->peer == peer) return 0; - for (FilteredDialogs::const_iterator b = filtered.cbegin(), i = b + 1, e = filtered.cend(); i != e; ++i) { + for (FilteredDialogs::const_iterator b = filterResults.cbegin(), i = b + 1, e = filterResults.cend(); i != e; ++i) { if ((*i)->history->peer == peer) { FilteredDialogs::const_iterator j = i - 1; return (*j)->history->peer; } } - return 0; - } - - DialogsList::RowByPeer::const_iterator i = dialogs.list.rowByPeer.constFind(peer->id); - if (i == dialogs.list.rowByPeer.constEnd()) { - i = contactsNoDialogs.list.rowByPeer.constFind(peer->id); - if (i == contactsNoDialogs.list.rowByPeer.cend()) { - return 0; - } - if (i.value()->prev) { - return i.value()->prev->history->peer; - } else if (dialogs.list.count) { - return dialogs.list.end->prev->history->peer; - } - return 0; - } - if (i.value()->prev) { - return i.value()->prev->history->peer; } return 0; } PeerData *DialogsListWidget::peerAfter(const PeerData *peer) const { - if (!filter.isEmpty()) { - for (FilteredDialogs::const_iterator i = filtered.cbegin(), e = filtered.cend(); i != e; ++i) { + if (_state == DefaultState) { + DialogsList::RowByPeer::const_iterator i = dialogs.list.rowByPeer.constFind(peer->id); + if (i == dialogs.list.rowByPeer.constEnd()) { + i = contactsNoDialogs.list.rowByPeer.constFind(peer->id); + if (i == contactsNoDialogs.list.rowByPeer.cend()) { + return 0; + } + if (i.value()->next != contactsNoDialogs.list.end) { + return i.value()->next->history->peer; + } + return 0; + } + + if (i.value()->next != dialogs.list.end) { + return i.value()->next->history->peer; + } else if (contactsNoDialogs.list.count) { + return contactsNoDialogs.list.begin->history->peer; + } + } else if (_state == FilteredState) { + for (FilteredDialogs::const_iterator i = filterResults.cbegin(), e = filterResults.cend(); i != e; ++i) { if ((*i)->history->peer == peer) { ++i; return (i == e) ? 0 : (*i)->history->peer; } } - return 0; - } - DialogsList::RowByPeer::const_iterator i = dialogs.list.rowByPeer.constFind(peer->id); - if (i == dialogs.list.rowByPeer.constEnd()) { - i = contactsNoDialogs.list.rowByPeer.constFind(peer->id); - if (i == contactsNoDialogs.list.rowByPeer.cend()) { - return 0; - } - if (i.value()->next != contactsNoDialogs.list.end) { - return i.value()->next->history->peer; - } - return 0; - } - - if (i.value()->next != dialogs.list.end) { - return i.value()->next->history->peer; - } else if (contactsNoDialogs.list.count) { - return contactsNoDialogs.list.begin->history->peer; } return 0; } @@ -704,6 +859,10 @@ DialogsIndexed &DialogsListWidget::dialogsList() { return dialogs; } +DialogsListWidget::SearchResults &DialogsListWidget::searchList() { + return searchResults; +} + DialogsWidget::DialogsWidget(MainWidget *parent) : QWidget(parent) , _configLoaded(false) , _drawShadow(true) @@ -712,17 +871,21 @@ DialogsWidget::DialogsWidget(MainWidget *parent) : QWidget(parent) , dlgPreloading(0) , contactsRequest(0) , _filter(this, st::dlgFilter, lang(lng_dlg_filter)) +, _stateSwitcher(this, st::dlgState) , _newGroup(this, st::btnNewGroup) , _addContact(this, st::btnAddContact) +, _cancelSearch(this, st::btnCancelSearch) , scroll(this, st::dlgScroll) , list(&scroll, parent) +, _searchFull(false) { scroll.setWidget(&list); scroll.setFocusPolicy(Qt::NoFocus); connect(&list, SIGNAL(mustScrollTo(int, int)), &scroll, SLOT(scrollToY(int, int))); connect(&list, SIGNAL(dialogToTopFrom(int)), this, SLOT(onDialogToTopFrom(int))); -// connect(&list, SIGNAL(peerChosen(const PeerId &)), this, SLOT(onCancel())); - connect(&list, SIGNAL(peerChosen(const PeerId &)), this, SIGNAL(peerChosen(const PeerId &))); +// connect(&list, SIGNAL(peerChosen(const PeerId &, MsgId)), this, SLOT(onCancel())); + connect(&list, SIGNAL(peerChosen(const PeerId &, MsgId)), this, SIGNAL(peerChosen(const PeerId &, MsgId))); + connect(&list, SIGNAL(searchMessages()), this, SLOT(onSearchMessages())); connect(&scroll, SIGNAL(geometryChanged()), &list, SLOT(onParentGeometryChanged())); connect(&scroll, SIGNAL(scrolled()), &list, SLOT(onUpdateSelected())); connect(&scroll, SIGNAL(scrolled()), this, SLOT(onListScroll())); @@ -731,17 +894,26 @@ DialogsWidget::DialogsWidget(MainWidget *parent) : QWidget(parent) connect(parent, SIGNAL(dialogsUpdated()), this, SLOT(onListScroll())); connect(&_addContact, SIGNAL(clicked()), this, SLOT(onAddContact())); connect(&_newGroup, SIGNAL(clicked()), this, SLOT(onNewGroup())); + connect(&_cancelSearch, SIGNAL(clicked()), this, SLOT(onCancelSearch())); + + _stateSwitcher.addButton(lang(lng_dlg_conversations)); + _stateSwitcher.addButton(lang(lng_dlg_messages)); + _stateSwitcher.hide(); + + connect(&_stateSwitcher, SIGNAL(changed()), this, SLOT(onStateChange())); scroll.show(); _filter.show(); _filter.move(st::dlgPaddingHor, st::dlgFilterPadding); + _stateSwitcher.move(st::dlgPaddingHor, st::dlgFilterPadding * 2 + _filter.height()); _filter.setFocusPolicy(Qt::StrongFocus); _filter.customUpDown(true); _addContact.hide(); _newGroup.show(); + _cancelSearch.hide(); _newGroup.move(width() - _newGroup.width() - st::dlgPaddingHor, 0); _addContact.move(width() - _addContact.width() - st::dlgPaddingHor, 0); - scroll.move(0, _filter.height() + 2 * st::dlgFilterPadding); + _cancelSearch.move(width() - _cancelSearch.width() - st::dlgPaddingHor, 0); } void DialogsWidget::activate() { @@ -804,12 +976,16 @@ bool DialogsWidget::animStep(float64) { } void DialogsWidget::onCancel() { - list.clearFilter(); - _filter.clear(); - _filter.updatePlaceholder(); + onCancelSearch(); emit cancelled(); } +void DialogsWidget::clearFiltered() { + if (list.state() != DialogsListWidget::SearchedState) { + onCancel(); + } +} + void DialogsWidget::unreadCountsReceived(const QVector &dialogs) { for (QVector::const_iterator i = dialogs.cbegin(), e = dialogs.cend(); i != e; ++i) { const MTPDdialog &d(i->c_dialog()); @@ -875,6 +1051,32 @@ bool DialogsWidget::dialogsFailed(const RPCError &e) { return true; } +void DialogsWidget::onSearchMessages(bool force) { + QString q = _filter.text().trimmed(); + if (q.isEmpty()) { + if (_searchRequest) { + MTP::cancel(_searchRequest); + _searchRequest = 0; + } + if (force) { + list.setState(DialogsListWidget::DefaultState); + } + return; + } + if (force || _searchQuery != q) { + if (_searchRequest) MTP::cancel(_searchRequest); + _searchQuery = q; + _searchFull = false; + _searchRequest = MTP::send(MTPmessages_Search(MTP_inputPeerEmpty(), MTP_string(_searchQuery), MTP_inputMessagesFilterEmpty(), MTP_int(0), MTP_int(0), MTP_int(0), MTP_int(0), MTP_int(SearchPerPage)), rpcDone(&DialogsWidget::searchReceived, true), rpcFail(&DialogsWidget::searchFailed)); + } +} + +void DialogsWidget::onSearchMore(MsgId minMsgId) { + if (!_searchRequest && !_searchFull) { + _searchRequest = MTP::send(MTPmessages_Search(MTP_inputPeerEmpty(), MTP_string(_searchQuery), MTP_inputMessagesFilterEmpty(), MTP_int(0), MTP_int(0), MTP_int(0), MTP_int(minMsgId), MTP_int(SearchPerPage)), rpcDone(&DialogsWidget::searchReceived, !minMsgId), rpcFail(&DialogsWidget::searchFailed)); + } +} + void DialogsWidget::loadConfig() { if (!_configLoaded) { mtpConfigLoader()->load(); @@ -905,6 +1107,41 @@ bool DialogsWidget::contactsFailed() { return true; } +void DialogsWidget::searchReceived(bool fromStart, const MTPmessages_Messages &result, mtpRequestId req) { + if (_searchRequest == req) { + switch (result.type()) { + case mtpc_messages_messages: { + App::feedUsers(result.c_messages_messages().vusers); + App::feedChats(result.c_messages_messages().vchats); + const QVector &msgs(result.c_messages_messages().vmessages.c_vector().v); + list.searchReceived(msgs, fromStart); + if (msgs.isEmpty()) { + _searchFull = true; + } + } break; + + case mtpc_messages_messagesSlice: { + App::feedUsers(result.c_messages_messagesSlice().vusers); + App::feedChats(result.c_messages_messagesSlice().vchats); + const QVector &msgs(result.c_messages_messagesSlice().vmessages.c_vector().v); + list.searchReceived(msgs, fromStart); + if (msgs.isEmpty()) { + _searchFull = true; + } + } break; + } + _searchRequest = 0; + } +} + +bool DialogsWidget::searchFailed(const RPCError &error, mtpRequestId req) { + if (_searchRequest == req) { + _searchRequest = 0; + _searchFull = true; + } + return true; +} + bool DialogsWidget::addNewContact(int32 uid, bool show) { _filter.setText(QString()); onFilterUpdate(); @@ -917,21 +1154,53 @@ bool DialogsWidget::addNewContact(int32 uid, bool show) { void DialogsWidget::onListScroll() { list.loadPeerPhotos(scroll.scrollTop()); - if (scroll.scrollTop() > list.dialogsList().list.count * st::dlgHeight - scroll.height()) { + if (list.state() == DialogsListWidget::SearchedState) { + DialogsListWidget::SearchResults &res(list.searchList()); + if (scroll.scrollTop() > res.size() * st::dlgHeight - 2 * scroll.height()) { + onSearchMore(res.isEmpty() ? 0 : res.back()->_item->id); + } + } else if (scroll.scrollTop() > list.dialogsList().list.count * st::dlgHeight - scroll.height()) { loadDialogs(); } } void DialogsWidget::onFilterUpdate() { - list.onFilterUpdate(_filter.text()); + QString filterText = _filter.text(); + list.onFilterUpdate(filterText); + DialogsListWidget::State s = list.state(); + bool switcherVisible = (s != DialogsListWidget::DefaultState); + if ((switcherVisible && _stateSwitcher.isHidden()) || (!switcherVisible && !_stateSwitcher.isHidden())) { + if (switcherVisible) { + _stateSwitcher.show(); + } else { + _stateSwitcher.hide(); + _stateSwitcher.setSelected(0); + } + resizeEvent(0); + } + if (filterText.isEmpty() && !_cancelSearch.isHidden()) { + _cancelSearch.hide(); + _newGroup.show(); + } else if (!filterText.isEmpty() && _cancelSearch.isHidden()) { + _cancelSearch.show(); + _newGroup.hide(); + } } void DialogsWidget::resizeEvent(QResizeEvent *e) { int32 w = width() - st::dlgShadow; _filter.setGeometry(st::dlgPaddingHor, st::dlgFilterPadding, w - 2 * st::dlgPaddingHor, _filter.height()); + _stateSwitcher.setGeometry(st::dlgPaddingHor, st::dlgFilterPadding * 2 + _filter.height(), _filter.width(), _filter.height()); _newGroup.move(w - _newGroup.width() - st::dlgPaddingHor, _filter.y()); _addContact.move(w - _addContact.width() - st::dlgPaddingHor, _filter.y()); - scroll.resize(w, height() - _filter.y() - _filter.height() - st::dlgFilterPadding - st::dlgPaddingVer); + _cancelSearch.move(w - _cancelSearch.width() - st::dlgPaddingHor, _filter.y()); + if (_stateSwitcher.isHidden()) { + scroll.move(0, _filter.height() + 2 * st::dlgFilterPadding); + scroll.resize(w, height() - _filter.y() - _filter.height() - st::dlgFilterPadding - st::dlgPaddingVer); + } else { + scroll.move(0, _filter.height() + _stateSwitcher.height() + 3 * st::dlgFilterPadding); + scroll.resize(w, height() - _stateSwitcher.y() - _stateSwitcher.height() - st::dlgFilterPadding - st::dlgPaddingVer); + } list.resize(w, list.height()); onListScroll(); } @@ -940,7 +1209,9 @@ void DialogsWidget::keyPressEvent(QKeyEvent *e) { if (e->key() == Qt::Key_Escape) { e->ignore(); } else if (e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter) { - list.choosePeer(); + if (!list.choosePeer() && list.state() == DialogsListWidget::SearchedState) { + onSearchMessages(); + } } else if (e->key() == Qt::Key_Down) { list.setMouseSel(false); list.selectSkip(1); @@ -961,10 +1232,7 @@ void DialogsWidget::keyPressEvent(QKeyEvent *e) { void DialogsWidget::paintEvent(QPaintEvent *e) { QPainter p(this); if (_drawShadow) { - p.setPen(st::dlgShadowColor->p); - for (int i = 0, w = width() - st::dlgShadow; i < st::dlgShadow; ++i) { - p.drawLine(w + i, 0, w + i, height()); - } + p.fillRect(width() - st::dlgShadow, 0, st::dlgShadow, height(), st::dlgShadowColor->b); } } @@ -981,7 +1249,9 @@ PeerData *DialogsWidget::peerAfter(const PeerData *peer) const { } void DialogsWidget::scrollToPeer(const PeerId &peer) { - list.scrollToPeer(peer); + if (list.state() != DialogsListWidget::SearchedState) { + list.scrollToPeer(peer); + } } void DialogsWidget::removePeer(PeerData *peer) { @@ -1008,6 +1278,32 @@ void DialogsWidget::onNewGroup() { App::wnd()->showLayer(new NewGroupBox()); } +void DialogsWidget::onCancelSearch() { + list.clearFilter(); + _filter.clear(); + _filter.updatePlaceholder(); + onFilterUpdate(); +} + +void DialogsWidget::onStateChange() { + if (!_stateSwitcher.isHidden()) { + if (_stateSwitcher.selected() == 0) { + list.setState(DialogsListWidget::FilteredState); + _searchQuery = QString(); + if (_searchRequest) { + MTP::cancel(_searchRequest); + _searchRequest = 0; + } + } else { + list.setState(DialogsListWidget::SearchedState); + } + list.onFilterUpdate(_filter.text()); + if (list.state() == DialogsListWidget::SearchedState) { + onSearchMessages(true); + } + } +} + void DialogsWidget::onDialogToTopFrom(int movedFrom) { if (scroll.scrollTop() > 0) { if (movedFrom > scroll.scrollTop()) { diff --git a/Telegram/SourceFiles/dialogswidget.h b/Telegram/SourceFiles/dialogswidget.h index 653bec574..27c471a7c 100644 --- a/Telegram/SourceFiles/dialogswidget.h +++ b/Telegram/SourceFiles/dialogswidget.h @@ -27,6 +27,7 @@ public: DialogsListWidget(QWidget *parent, MainWidget *main); void dialogsReceived(const QVector &dialogs); + void searchReceived(const QVector &messages, bool fromStart); void showMore(int32 pixels); void activate(); @@ -53,7 +54,7 @@ public: void clearFilter(); void refresh(bool toTop = false); - void choosePeer(); + bool choosePeer(); void destroyData(); @@ -61,11 +62,26 @@ public: PeerData *peerAfter(const PeerData *peer) const; void scrollToPeer(const PeerId &peer); + typedef QVector SearchResults; + DialogsIndexed &contactsList(); DialogsIndexed &dialogsList(); + SearchResults &searchList(); void setMouseSel(bool msel, bool toTop = false); + enum State { + DefaultState = 0, + FilteredState = 1, + SearchedState = 2, + }; + void setState(State newState); + State state() const; + + void onFilterUpdate(QString newFilter, bool force = false); + + ~DialogsListWidget(); + public slots: void onUpdateSelected(bool force = false); @@ -74,17 +90,21 @@ public slots: void onPeerNameChanged(PeerData *peer, const PeerData::Names &oldNames, const PeerData::NameFirstChars &oldChars); void onPeerPhotoChanged(PeerData *peer); void onDialogRowReplaced(DialogRow *oldRow, DialogRow *newRow); - void onFilterUpdate(QString newFilter); + + void onItemRemoved(HistoryItem *item); + void onItemReplaced(HistoryItem *oldItem, HistoryItem *newItem); signals: - void peerChosen(const PeerId &); + void peerChosen(const PeerId &, MsgId); void mustScrollTo(int scrollToTop, int scrollToBottom); void dialogToTopFrom(int movedFrom); + void searchMessages(); private: void addDialog(const MTPDdialog &dialog); + void clearSearchResults(); DialogsIndexed dialogs; DialogsIndexed contactsNoDialogs; @@ -95,9 +115,17 @@ private: QString filter; typedef QVector FilteredDialogs; - FilteredDialogs filtered; + FilteredDialogs filterResults; int32 filteredSel; + SearchResults searchResults; + int32 searchedSel; + + State _state; + + QTimer _updateSearchTimer; + QString _searchQuery; + QPoint lastMousePos; void paintDialog(QPainter &p, DialogRow *dialog); @@ -112,6 +140,7 @@ public: void dialogsReceived(const MTPmessages_Dialogs &dialogs); void contactsReceived(const MTPcontacts_Contacts &contacts); + void searchReceived(bool fromStart, const MTPmessages_Messages &result, mtpRequestId req); bool addNewContact(int32 uid, bool show = true); void resizeEvent(QResizeEvent *e); @@ -143,10 +172,13 @@ public: DialogsIndexed &contactsList(); void enableShadow(bool enable = true); + + void onSearchMore(MsgId minMsgId); + void clearFiltered(); signals: - void peerChosen(const PeerId &); + void peerChosen(const PeerId &, MsgId); void cancelled(); public slots: @@ -157,8 +189,12 @@ public slots: void onFilterUpdate(); void onAddContact(); void onNewGroup(); + void onCancelSearch(); + + void onStateChange(); void onDialogToTopFrom(int movedFrom); + void onSearchMessages(bool force = false); private: @@ -169,15 +205,21 @@ private: void unreadCountsReceived(const QVector &dialogs); bool dialogsFailed(const RPCError &e); - bool contactsFailed(); + bool searchFailed(const RPCError &error, mtpRequestId req); int32 dlgOffset, dlgCount; mtpRequestId dlgPreloading; mtpRequestId contactsRequest; FlatInput _filter; - IconedButton _newGroup, _addContact; + Switcher _stateSwitcher; + IconedButton _newGroup, _addContact, _cancelSearch; ScrollArea scroll; DialogsListWidget list; + + QString _searchQuery; + bool _searchFull; + mtpRequestId _searchRequest; + }; diff --git a/Telegram/SourceFiles/dropdown.cpp b/Telegram/SourceFiles/dropdown.cpp index 51c81c16a..a1b50545a 100644 --- a/Telegram/SourceFiles/dropdown.cpp +++ b/Telegram/SourceFiles/dropdown.cpp @@ -71,10 +71,8 @@ void Dropdown::paintEvent(QPaintEvent *e) { int32 top = st::dropdownPadding.top() + _buttons.front()->height(); p.setPen(st::dropdownBorderColor->p); for (int32 i = 1, s = _buttons.size(); i < s; ++i) { - for (int32 e = top + st::dropdownBorder; top < e; ++top) { - p.drawLine(st::dropdownPadding.left(), top, _width - st::dropdownPadding.right() - 1, top); - } - top += _buttons[i]->height(); + p.fillRect(st::dropdownPadding.left(), top, _width - st::dropdownPadding.left() - st::dropdownPadding.right(), st::dropdownBorder, st::dropdownBorderColor->b); + top += st::dropdownBorder + _buttons[i]->height(); } } } diff --git a/Telegram/SourceFiles/fileuploader.cpp b/Telegram/SourceFiles/fileuploader.cpp index a1988fcee..002d6d9a9 100644 --- a/Telegram/SourceFiles/fileuploader.cpp +++ b/Telegram/SourceFiles/fileuploader.cpp @@ -115,6 +115,9 @@ void FileUploader::sendNext() { } } else { toSend = i->media.data.mid(i->docSentParts * i->docPartSize, i->docPartSize); + if (i->media.type == ToPrepareDocument && i->docSentParts <= UseBigFilesFrom) { + i->docHash.feed(toSend.constData(), toSend.size()); + } } if (toSend.size() > i->docPartSize || (toSend.size() < i->docPartSize && i->docSentParts + 1 != i->docPartsCount)) { currentFailed(); diff --git a/Telegram/SourceFiles/gui/animation.h b/Telegram/SourceFiles/gui/animation.h index a86ae4636..e9892461d 100644 --- a/Telegram/SourceFiles/gui/animation.h +++ b/Telegram/SourceFiles/gui/animation.h @@ -224,7 +224,7 @@ public: } } else { if (!objs.size()) { - timer.start(7); + timer.start(AnimationTimerDelta); } objs.insert(obj); } diff --git a/Telegram/SourceFiles/gui/boxshadow.cpp b/Telegram/SourceFiles/gui/boxshadow.cpp index 245c8e514..f90e06413 100644 --- a/Telegram/SourceFiles/gui/boxshadow.cpp +++ b/Telegram/SourceFiles/gui/boxshadow.cpp @@ -66,9 +66,9 @@ void BoxShadow::paint(QPainter &p, const QRect &box, const QPoint &shift, int32 if (left && bottom) p.drawPixmap(box.left() - _size + minus + shift.x(), box.bottom() - minus + 1 + shift.y(), _corners, 0, _size, _size, _size); for (int32 i = 1; i <= count; ++i) { p.setPen(_colors[i - 1]->p); - if (top) p.drawLine(box.left() + (left ? minus : 0) + shift.x(), box.top() - count + i + shift.y(), box.right() - (right ? minus : 0) + shift.x(), box.top() - count + i + shift.y()); - if (right) p.drawLine(box.right() + count - i + shift.x(), box.top() + (top ? minus : 0) + shift.y(), box.right() + count - i + shift.x(), box.bottom() - (bottom ? minus : 0) + shift.y()); - if (bottom) p.drawLine(box.right() - (right ? minus : 0) + shift.x(), box.bottom() + count - i + shift.y(), box.left() + (left ? minus : 0) + shift.x(), box.bottom() + count - i + shift.y()); - if (left) p.drawLine(box.left() - count + i + shift.x(), box.bottom() - (bottom ? minus : 0) + shift.y(), box.left() - count + i + shift.x(), box.top() + (top ? minus : 0) + shift.y()); + if (top) p.fillRect(box.left() + (left ? minus : 0) + shift.x(), box.top() - count + i + shift.y(), box.width() - (right ? minus : 0) - (left ? minus : 0), st::lineWidth, _colors[i - 1]->b); + if (right) p.fillRect(box.right() + count - i + shift.x(), box.top() + (top ? minus : 0) + shift.y(), st::lineWidth, box.height() - (bottom ? minus : 0) - (top ? minus : 0), _colors[i - 1]->b); + if (bottom) p.fillRect(box.left() + (left ? minus : 0) + shift.x(), box.bottom() + count - i + shift.y(), box.width() - (right ? minus : 0) - (left ? minus : 0), st::lineWidth, _colors[i - 1]->b); + if (left) p.fillRect(box.left() - count + i + shift.x(), box.top() + (top ? minus : 0) + shift.y(), st::lineWidth, box.height() - (bottom ? minus : 0) - (top ? minus : 0), _colors[i - 1]->b); } } diff --git a/Telegram/SourceFiles/gui/countryinput.cpp b/Telegram/SourceFiles/gui/countryinput.cpp index 45ad9de78..55870cc4a 100644 --- a/Telegram/SourceFiles/gui/countryinput.cpp +++ b/Telegram/SourceFiles/gui/countryinput.cpp @@ -492,8 +492,7 @@ void CountrySelect::paintEvent(QPaintEvent *e) { p.fillRect(_innerLeft, _innerTop + st::participantFilter.height, _innerWidth, st::scrollDef.topsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(_innerLeft + st::btnSelectCancel.width, _innerTop + _innerHeight - st::btnSelectCancel.height, _innerLeft + st::btnSelectCancel.width, _innerTop + _innerHeight - 1); + p.fillRect(_innerLeft + st::btnSelectCancel.width, _innerTop + _innerHeight - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); // draw box title / text p.setPen(st::black->p); diff --git a/Telegram/SourceFiles/gui/flatbutton.cpp b/Telegram/SourceFiles/gui/flatbutton.cpp index 152cabf72..fb4c31281 100644 --- a/Telegram/SourceFiles/gui/flatbutton.cpp +++ b/Telegram/SourceFiles/gui/flatbutton.cpp @@ -101,8 +101,7 @@ BottomButton::BottomButton(QWidget *w, const QString &t, const style::flatButton void BottomButton::paintEvent(QPaintEvent *e) { QPainter p(this); - p.setPen(st::scrollDef.shColor->p); - p.drawLine(0, 0, width(), 0); + p.fillRect(0, 0, width(), st::lineWidth, st::scrollDef.shColor->b); FlatButton::paintEvent(e); } diff --git a/Telegram/SourceFiles/gui/flatinput.cpp b/Telegram/SourceFiles/gui/flatinput.cpp index f032001f4..90fbe6067 100644 --- a/Telegram/SourceFiles/gui/flatinput.cpp +++ b/Telegram/SourceFiles/gui/flatinput.cpp @@ -133,10 +133,11 @@ void FlatInput::paintEvent(QPaintEvent *e) { QPainter p(this); p.fillRect(rect(), a_bgColor.current()); if (_st.borderWidth) { - p.setPen(a_borderColor.current()); - for (uint32 i = 0; i < _st.borderWidth; ++i) { - p.drawRect(i, i, width() - 2 * i - 1, height() - 2 * i - 1); - } + QBrush b(a_borderColor.current()); + p.fillRect(0, 0, width() - _st.borderWidth, _st.borderWidth, b); + p.fillRect(width() - _st.borderWidth, 0, _st.borderWidth, height() - _st.borderWidth, b); + p.fillRect(_st.borderWidth, height() - _st.borderWidth, width() - _st.borderWidth, _st.borderWidth, b); + p.fillRect(0, _st.borderWidth, _st.borderWidth, height() - _st.borderWidth, b); } if (_st.imgRect.pxWidth()) { p.drawPixmap(_st.imgPos, App::sprite(), _st.imgRect); diff --git a/Telegram/SourceFiles/gui/switcher.cpp b/Telegram/SourceFiles/gui/switcher.cpp new file mode 100644 index 000000000..006969526 --- /dev/null +++ b/Telegram/SourceFiles/gui/switcher.cpp @@ -0,0 +1,157 @@ +/* +This file is part of Telegram Desktop, +an unofficial desktop messaging app, see https://telegram.org + +Telegram Desktop is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +It is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE +Copyright (c) 2014 John Preston, https://tdesktop.com +*/ +#include "stdafx.h" +#include "switcher.h" + +Switcher::Switcher(QWidget *parent, const style::switcher &st) : TWidget(parent) +, _selected(0) +, _over(-1) +, _wasOver(-1) +, _pressed(-1) +, _st(st) +, a_bgOver(_st.bgColor->c) +, a_bgWasOver(_st.bgHovered->c) { + resize(width(), _st.height); +} + +void Switcher::leaveEvent(QEvent *e) { + setOver(-1); + if (_pressed >= 0) return; + + setMouseTracking(false); + return TWidget::leaveEvent(e); +} + +void Switcher::enterEvent(QEvent *e) { + setMouseTracking(true); + return TWidget::enterEvent(e); +} + +void Switcher::mousePressEvent(QMouseEvent *e) { + if (e->buttons() & Qt::LeftButton) { + mouseMoveEvent(e); + if (_over != _pressed) { + _pressed = _over; + e->accept(); + } + } +} + +void Switcher::mouseMoveEvent(QMouseEvent *e) { + if (rect().contains(e->pos())) { + if (width()) { + setOver((e->pos().x() * _buttons.size()) / width()); + } + } else { + setOver(-1); + } +} + +void Switcher::mouseReleaseEvent(QMouseEvent *e) { + if (_pressed >= 0) { + if (_pressed == _over && _pressed != _selected) { + setSelected(_pressed); + } else { + setSelected(_selected); + } + } else { + leaveEvent(e); + } +} + +void Switcher::addButton(const QString &btn) { + _buttons.push_back(btn); + update(); +} + +bool Switcher::animStep(float64 ms) { + float64 dt = ms / _st.duration; + bool res = true; + if (dt >= 1) { + res = false; + a_bgOver.finish(); + a_bgWasOver.finish(); + } else { + a_bgOver.update(dt, anim::linear); + a_bgWasOver.update(dt, anim::linear); + } + update(); + return res; +} + +void Switcher::paintEvent(QPaintEvent *e) { + QPainter p(this); + + p.fillRect(rect(), _st.bgColor->b); + if (!_buttons.isEmpty()) { + p.setFont(_st.font->f); + float64 btnWidth = float64(width()) / _buttons.size(); + for (int i = 0; i < _buttons.size(); ++i) { + QRect btnRect(qRound(i * btnWidth), 0, qRound((i + 1) * btnWidth) - qRound(i * btnWidth), height()); + if (i == _selected) { + p.fillRect(btnRect, _st.bgActive->b); + } else if (i == _over) { + p.fillRect(btnRect, a_bgOver.current()); + } else if (i == _wasOver) { + p.fillRect(btnRect, a_bgWasOver.current()); + } + p.setPen((i == _selected ? _st.activeColor : _st.textColor)->p); + p.drawText(btnRect, _buttons[i], style::al_center); + } + } + if (_st.border) { + p.fillRect(0, 0, width() - _st.border, _st.border, _st.borderColor->b); + p.fillRect(width() - _st.border, 0, _st.border, height() - _st.border, _st.borderColor->b); + p.fillRect(_st.border, height() - _st.border, width() - _st.border, _st.border, _st.borderColor->b); + p.fillRect(0, _st.border, _st.border, height() - _st.border, _st.borderColor->b); + } +} + +int Switcher::selected() const { + return _selected; +} + +void Switcher::setSelected(int selected) { + if (selected != _selected) { + _selected = selected; + emit changed(); + } + _pressed = _over = _wasOver = -1; + anim::stop(this); + setCursor(style::cur_default); + update(); +} + +void Switcher::setOver(int over) { + if (over != _over) { + QColor c(a_bgOver.current()); + if (_wasOver == over) { + a_bgOver = anim::cvalue(a_bgWasOver.current(), _st.bgHovered->c); + } else { + a_bgOver = anim::cvalue(_st.bgColor->c, _st.bgHovered->c); + } + a_bgWasOver = anim::cvalue(c, _st.bgColor->c); + + _wasOver = _over; + _over = over; + + anim::start(this); + + setCursor((_over >= 0 && _over != _selected) ? style::cur_pointer : style::cur_default); + } +} diff --git a/Telegram/SourceFiles/gui/switcher.h b/Telegram/SourceFiles/gui/switcher.h new file mode 100644 index 000000000..7dd88c5ed --- /dev/null +++ b/Telegram/SourceFiles/gui/switcher.h @@ -0,0 +1,62 @@ +/* +This file is part of Telegram Desktop, +an unofficial desktop messaging app, see https://telegram.org + +Telegram Desktop is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +It is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE +Copyright (c) 2014 John Preston, https://tdesktop.com +*/ +#pragma once + +#include +#include "gui/twidget.h" + +class Switcher : public TWidget, public Animated { + Q_OBJECT + +public: + Switcher(QWidget *parent, const style::switcher &st); + + void mousePressEvent(QMouseEvent *e); + void mouseMoveEvent(QMouseEvent *e); + void mouseReleaseEvent(QMouseEvent *e); + + void paintEvent(QPaintEvent *e); + + void enterEvent(QEvent *e); + void leaveEvent(QEvent *e); + + void addButton(const QString &btn); + + bool animStep(float64 ms); + + int selected() const; + void setSelected(int selected); + +signals: + + void changed(); + +private: + + void setOver(int over); + + int _selected; + int _over, _wasOver, _pressed; + + typedef QVector Buttons; + Buttons _buttons; + + style::switcher _st; + anim::cvalue a_bgOver, a_bgWasOver; + +}; diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp index 226293581..c33747f83 100644 --- a/Telegram/SourceFiles/history.cpp +++ b/Telegram/SourceFiles/history.cpp @@ -499,7 +499,8 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const { rectForName.setLeft(rectForName.left() + st::dlgChatImgSkip); } - if (history->isEmpty()) { + HistoryItem *last = history->last; + if (!last) { p.setFont(st::dlgHistFont->f); p.setPen((act ? st::dlgActiveColor : st::dlgSystemColor)->p); if (history->typing.isEmpty()) { @@ -509,7 +510,6 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const { } } else { // draw date - HistoryItem *last = history->back()->back(); QDateTime now(QDateTime::currentDateTime()), lastTime(last->date); QDate nowDate(now.date()), lastDate(lastTime.date()); QString dt; @@ -571,17 +571,77 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const { history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width()); } +void FakeDialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const { + QRect fullRect(0, 0, w, st::dlgHeight); + p.fillRect(fullRect, (act ? st::dlgActiveBG : (sel ? st::dlgHoverBG : st::dlgBG))->b); + + History *history = _item->history(); + + p.drawPixmap(st::dlgPaddingHor, st::dlgPaddingVer, history->peer->photo->pix(st::dlgPhotoSize)); + + int32 nameleft = st::dlgPaddingHor + st::dlgPhotoSize + st::dlgPhotoPadding; + int32 namewidth = w - nameleft - st::dlgPaddingHor; + QRect rectForName(nameleft, st::dlgPaddingVer + st::dlgNameTop, namewidth, st::msgNameFont->height); + + // draw chat icon + if (history->peer->chat) { + p.drawPixmap(QPoint(rectForName.left() + st::dlgChatImgLeft, rectForName.top() + st::dlgChatImgTop), App::sprite(), (act ? st::dlgActiveChatImg : st::dlgChatImg)); + rectForName.setLeft(rectForName.left() + st::dlgChatImgSkip); + } + + // draw date + QDateTime now(QDateTime::currentDateTime()), lastTime(_item->date); + QDate nowDate(now.date()), lastDate(lastTime.date()); + QString dt; + if (lastDate == nowDate) { + dt = lastTime.toString(qsl("hh:mm")); + } else if (lastDate.year() == nowDate.year() && lastDate.weekNumber() == nowDate.weekNumber()) { + dt = langDayOfWeek(lastDate); + } else { + dt = lastDate.toString(qsl("d.MM.yy")); + } + int32 dtWidth = st::dlgDateFont->m.width(dt); + rectForName.setWidth(rectForName.width() - dtWidth - st::dlgDateSkip); + p.setFont(st::dlgDateFont->f); + p.setPen((act ? st::dlgActiveDateColor : st::dlgDateColor)->p); + p.drawText(rectForName.left() + rectForName.width() + st::dlgDateSkip, rectForName.top() + st::msgNameFont->height - st::msgDateFont->descent, dt); + + // draw check + if (_item->out() && _item->needCheck()) { + const style::sprite *check; + if (_item->id > 0) { + if (_item->unread()) { + check = act ? &st::dlgActiveCheckImg : &st::dlgCheckImg; + } else { + check = act ? &st::dlgActiveDblCheckImg : &st::dlgDblCheckImg; + } + } else { + check = act ? &st::dlgActiveSendImg : &st::dlgSendImg; + } + rectForName.setWidth(rectForName.width() - check->pxWidth() - st::dlgCheckSkip); + p.drawPixmap(QPoint(rectForName.left() + rectForName.width() + st::dlgCheckLeft, rectForName.top() + st::dlgCheckTop), App::sprite(), *check); + } + + // draw unread + int32 lastWidth = namewidth, unread = history->unreadCount; + _item->drawInDialog(p, QRect(nameleft, st::dlgPaddingVer + st::dlgFont->height + st::dlgSep, lastWidth, st::dlgFont->height), act, _cacheFor, _cache); + + p.setPen((act ? st::dlgActiveColor : st::dlgNameColor)->p); + history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width()); +} + History::History(const PeerId &peerId) : width(0), height(0) , msgCount(0) -, offset(0) , unreadCount(0) , inboxReadTill(0) , outboxReadTill(0) , showFrom(0) -, notifyFrom(0) , unreadBar(0) -, unreadLoaded(true) , peer(App::peer(peerId)) +, oldLoaded(false) +, newLoaded(true) +, last(0) +, activeMsgId(0) , lastWidth(0) , lastScrollTop(History::ScrollMax) , mute(isNotifyMuted(peer->notify)) @@ -746,7 +806,7 @@ Histories::Parent::iterator Histories::erase(Histories::Parent::iterator i) { return Parent::erase(i); } -PeerId Histories::addToBack(const MTPmessage &msg, bool newMsg) { +HistoryItem *Histories::addToBack(const MTPmessage &msg, int msgState) { PeerId from_id = 0, to_id = 0; switch (msg.type()) { case mtpc_message: @@ -770,11 +830,24 @@ PeerId Histories::addToBack(const MTPmessage &msg, bool newMsg) { if (h == end()) { h = insert(peer, new History(peer)); } - h.value()->addToBack(msg, newMsg); - return peer; + if (msgState < 0) { + return h.value()->addToHistory(msg); + } + if (!h.value()->loadedAtBottom()) { + HistoryItem *item = h.value()->addToHistory(msg); + if (item) { + h.value()->last = item; + if (msgState > 0) { + h.value()->newItemAdded(item); + } + } + return item; + } + return h.value()->addToBack(msg, msgState > 0); } + /* -PeerId Histories::addToBack(const MTPgeoChatMessage &msg, bool newMsg) { +HistoryItem *Histories::addToBack(const MTPgeoChatMessage &msg, bool newMsg) { PeerId peer = 0; switch (msg.type()) { case mtpc_geoChatMessage: @@ -790,11 +863,10 @@ PeerId Histories::addToBack(const MTPgeoChatMessage &msg, bool newMsg) { if (h == end()) { h = insert(peer, new History(peer)); } - h.value()->addToBack(msg, newMsg); - return peer; + return h.value()->addToBack(msg, newMsg); }/**/ -HistoryItem *History::createItem(HistoryBlock *block, const MTPmessage &msg, bool newMsg) { +HistoryItem *History::createItem(HistoryBlock *block, const MTPmessage &msg, bool newMsg, bool returnExisting) { HistoryItem *result = 0; switch (msg.type()) { @@ -870,7 +942,7 @@ HistoryItem *History::createItem(HistoryBlock *block, const MTPmessage &msg, boo } break; } - return regItem(result); + return regItem(result, returnExisting); } HistoryItem *History::createItemForwarded(HistoryBlock *block, MsgId id, HistoryMessage *msg) { @@ -902,7 +974,7 @@ HistoryItem *History::createItem(HistoryBlock *block, const MTPgeoChatMessage &m return regItem(result); } /**/ -void History::addToBackService(MsgId msgId, QDateTime date, const QString &text, bool out, bool unread, HistoryMedia *media, bool newMsg) { +HistoryItem *History::addToBackService(MsgId msgId, QDateTime date, const QString &text, bool out, bool unread, HistoryMedia *media, bool newMsg) { HistoryBlock *to = 0; bool newBlock = isEmpty(); if (newBlock) { @@ -911,10 +983,10 @@ void History::addToBackService(MsgId msgId, QDateTime date, const QString &text, to = back(); } - doAddToBack(to, newBlock, regItem(new HistoryServiceMsg(this, to, msgId, date, text, out, unread, media)), newMsg); + return doAddToBack(to, newBlock, regItem(new HistoryServiceMsg(this, to, msgId, date, text, out, unread, media)), newMsg); } -void History::addToBack(const MTPmessage &msg, bool newMsg) { +HistoryItem *History::addToBack(const MTPmessage &msg, bool newMsg) { HistoryBlock *to = 0; bool newBlock = isEmpty(); if (newBlock) { @@ -922,10 +994,14 @@ void History::addToBack(const MTPmessage &msg, bool newMsg) { } else { to = back(); } - doAddToBack(to, newBlock, createItem(to, msg, newMsg), newMsg); + return doAddToBack(to, newBlock, createItem(to, msg, newMsg), newMsg); } -void History::addToBackForwarded(MsgId id, HistoryMessage *item) { +HistoryItem *History::addToHistory(const MTPmessage &msg) { + return createItem(0, msg, false, true); +} + +HistoryItem *History::addToBackForwarded(MsgId id, HistoryMessage *item) { HistoryBlock *to = 0; bool newBlock = isEmpty(); if (newBlock) { @@ -933,11 +1009,11 @@ void History::addToBackForwarded(MsgId id, HistoryMessage *item) { } else { to = back(); } - doAddToBack(to, newBlock, createItemForwarded(to, id, item), true); + return doAddToBack(to, newBlock, createItemForwarded(to, id, item), true); } /* -void History::addToBack(const MTPgeoChatMessage &msg, bool newMsg) { +HistoryItem *History::addToBack(const MTPgeoChatMessage &msg, bool newMsg) { HistoryBlock *to = 0; bool newBlock = isEmpty(); if (newBlock) { @@ -946,7 +1022,7 @@ void History::addToBack(const MTPgeoChatMessage &msg, bool newMsg) { to = back(); } - doAddToBack(to, newBlock, createItem(to, msg, newMsg), newMsg); + return doAddToBack(to, newBlock, createItem(to, msg, newMsg), newMsg); } /**/ @@ -965,10 +1041,10 @@ void History::createInitialDateBlock(const QDateTime &date) { push_front(dateBlock); // date block } -void History::doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem *adding, bool newMsg) { +HistoryItem *History::doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem *adding, bool newMsg) { if (!adding) { if (newBlock) delete to; - return; + return adding; } if (newBlock) { @@ -987,6 +1063,7 @@ void History::doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem *adding, } } to->push_back(adding); + last = adding; adding->y = to->height; if (width) { int32 dh = adding->resize(width); @@ -994,37 +1071,42 @@ void History::doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem *adding, height += dh; } setMsgCount(msgCount + 1); - if (adding->id > 0) { - ++offset; - } if (newMsg) { - App::checkImageCacheSize(); - if (adding->from()) { - TypingUsers::iterator i = typing.find(adding->from()); - if (i != typing.end()) { - uint64 ms = getms(); - i.value() = ms; - updateTyping(ms, 0, true); - App::main()->topBar()->update(); - } - } - if (adding->out()) { - inboxRead(false); - if (unreadBar) unreadBar->destroy(); - } else if (adding->unread()) { - if (!notifyFrom) notifyFrom = adding; - App::main()->newUnreadMsg(this, adding->id); - } - if (dialogs.isEmpty()) { - App::main()->createDialogAtTop(this, unreadCount); - } else { - emit App::main()->dialogToTop(dialogs); + newItemAdded(adding); + } + return adding; +} + +void History::newItemAdded(HistoryItem *item) { + App::checkImageCacheSize(); + if (item->from()) { + TypingUsers::iterator i = typing.find(item->from()); + if (i != typing.end()) { + uint64 ms = getms(); + i.value() = ms; + updateTyping(ms, 0, true); + App::main()->topBar()->update(); } } + if (item->out()) { + inboxRead(false); + if (unreadBar) unreadBar->destroy(); + } else if (item->unread()) { + notifies.push_back(item); + App::main()->newUnreadMsg(this, item->id); + } + if (dialogs.isEmpty()) { + App::main()->createDialogAtTop(this, unreadCount); + } else { + emit App::main()->dialogToTop(dialogs); + } } void History::addToFront(const QVector &slice) { - if (slice.isEmpty()) return; + if (slice.isEmpty()) { + oldLoaded = true; + return; + } int32 addToH = 0, skip = 0; if (!isEmpty()) { @@ -1049,9 +1131,6 @@ void History::addToFront(const QVector &slice) { adding->y = block->height; block->height += adding->resize(width); setMsgCount(msgCount + 1); - if (adding->id > 0) { - ++offset; - } prev = adding; } if (i == e) break; @@ -1063,7 +1142,7 @@ void History::addToFront(const QVector &slice) { block->height += dayItem->resize(width); } if (block->size()) { - if (wasMsgCount < unreadCount && msgCount >= unreadCount) { + if (wasMsgCount < unreadCount && msgCount >= unreadCount && !activeMsgId) { for (int32 i = block->size(); i > 0; --i) { if ((*block)[i - 1]->itemType() == HistoryItem::MsgType) { ++wasMsgCount; @@ -1105,9 +1184,66 @@ void History::addToFront(const QVector &slice) { } } +void History::addToBack(const QVector &slice) { + if (slice.isEmpty()) { + newLoaded = true; + return; + } + + bool wasEmpty = isEmpty(); + + HistoryItem *prev = isEmpty() ? 0 : back()->back(); + + HistoryBlock *block = new HistoryBlock(this); + block->reserve(slice.size()); + int32 wasMsgCount = msgCount; + for (QVector::const_iterator i = slice.cend(), e = slice.cbegin(); i != e;) { + --i; + HistoryItem *adding = createItem(block, *i, false); + if (adding) { + if (prev && prev->date.date() != adding->date.date()) { + HistoryItem *dayItem = createDayServiceMsg(this, block, adding->date); + prev->block()->push_back(dayItem); + dayItem->y = prev->block()->height; + prev->block()->height += dayItem->resize(width); + if (prev->block() != block) { + height += dayItem->height(); + } + } + block->push_back(adding); + adding->y = block->height; + block->height += adding->resize(width); + setMsgCount(msgCount + 1); + prev = adding; + } + if (i == e) break; + } + if (block->size()) { + block->y = height; + push_back(block); + height += block->height; + } else { + newLoaded = true; + fixLastMessage(true); + delete block; + } + if (wasEmpty && !isEmpty()) { + HistoryBlock *dateBlock = new HistoryBlock(this); + HistoryItem *dayItem = createDayServiceMsg(this, dateBlock, front()->front()->date); + dateBlock->push_back(dayItem); + int32 dh = dayItem->resize(width); + dateBlock->height = dh; + for (iterator i = begin(), e = end(); i != e; ++i) { + (*i)->y += dh; + } + push_front(dateBlock); // date block + height += dh; + } +} + void History::inboxRead(bool byThisInstance) { if (unreadCount) { - if (!byThisInstance) App::main()->historyToDown(this); + if (!byThisInstance && loadedAtBottom()) App::main()->historyToDown(this); setUnreadCount(0); } if (!isEmpty()) { @@ -1117,8 +1253,8 @@ void History::inboxRead(bool byThisInstance) { if (!dialogs.isEmpty()) { if (App::main()) App::main()->dlgUpdated(dialogs[0]); } - App::wnd()->psClearNotify(this); - clearNotifyFrom(); + App::wnd()->notifyClear(this); + clearNotifications(); } void History::outboxRead() { @@ -1130,7 +1266,7 @@ void History::outboxRead() { void History::setUnreadCount(int32 newUnreadCount, bool psUpdate) { if (unreadCount != newUnreadCount) { - if (!unreadCount && newUnreadCount == 1) { + if (!unreadCount && newUnreadCount == 1 && loadedAtBottom()) { showFrom = isEmpty() ? 0 : back()->back(); } else if (!newUnreadCount) { showFrom = 0; @@ -1138,7 +1274,6 @@ void History::setUnreadCount(int32 newUnreadCount, bool psUpdate) { App::histories().unreadFull += newUnreadCount - unreadCount; if (mute) App::histories().unreadMuted += newUnreadCount - unreadCount; unreadCount = newUnreadCount; - unreadLoaded = (unreadCount <= msgCount); if (psUpdate) App::wnd()->psUpdateCounter(); if (unreadBar) unreadBar->setCount(unreadCount); } @@ -1147,7 +1282,6 @@ void History::setUnreadCount(int32 newUnreadCount, bool psUpdate) { void History::setMsgCount(int32 newMsgCount) { if (msgCount != newMsgCount) { msgCount = newMsgCount; - unreadLoaded = (unreadCount <= msgCount); } } @@ -1160,6 +1294,10 @@ void History::setMsgCount(int32 newMsgCount) { } void History::getNextShowFrom(HistoryBlock *block, int32 i) { + if (!loadedAtBottom()) { + showFrom = 0; + return; + } if (i >= 0) { int32 l = block->size(); for (++i; i < l; ++i) { @@ -1186,7 +1324,7 @@ void History::getNextShowFrom(HistoryBlock *block, int32 i) { } void History::addUnreadBar() { - if (unreadBar || !showFrom || !unreadCount) return; + if (unreadBar || !showFrom || !unreadCount || !loadedAtBottom()) return; HistoryBlock *block = showFrom->block(); int32 i = block->indexOf(showFrom); @@ -1210,41 +1348,77 @@ void History::addUnreadBar() { height += dh; } -void History::getNextNotifyFrom(HistoryBlock *block, int32 i) { - if (!block) { - if (!notifyFrom) { - return; - } - block = notifyFrom->block(); - i = block->indexOf(notifyFrom); - } - if (i >= 0) { - int32 l = block->size(); - for (++i; i < l; ++i) { - if ((*block)[i]->unread() && !(*block)[i]->out()) { - notifyFrom = (*block)[i]; - return; - } - } - } - - int32 j = indexOf(block), s = size(); - if (j >= 0) { - for (++j; j < s; ++j) { - block = (*this)[j]; - for (int32 i = 0, l = block->size(); i < l; ++i) { - if ((*block)[i]->unread() && !(*block)[i]->out()) { - notifyFrom = (*block)[i]; - return; - } - } - } - } - notifyFrom = 0; +void History::clearNotifications() { + notifies.clear(); } -void History::clearNotifyFrom() { - notifyFrom = 0; +bool History::readyForWork() const { + return activeMsgId ? !isEmpty() : (unreadCount <= msgCount); +} + +bool History::loadedAtBottom() const { + return newLoaded; +} + +bool History::loadedAtTop() const { + return oldLoaded; +} + +void History::fixLastMessage(bool wasAtBottom) { + if (wasAtBottom && isEmpty()) { + wasAtBottom = false; + } + if (wasAtBottom) { + last = back()->back(); + } else { + last = 0; + if (App::main()) { + App::main()->checkPeerHistory(peer); + } + } +} + +void History::loadAround(MsgId msgId) { + if (activeMsgId != msgId) { + activeMsgId = msgId; + lastWidth = 0; + if (activeMsgId) { + HistoryItem *item = App::histItemById(activeMsgId); + if (!item || !item->block()) { + clear(true); + } + newLoaded = last && !last->detached(); + } else { + if (!loadedAtBottom()) { + clear(true); + } + newLoaded = isEmpty() || (last && !last->detached()); + } + } +} + +MsgId History::minMsgId() const { + for (const_iterator i = cbegin(), e = cend(); i != e; ++i) { + for (HistoryBlock::const_iterator j = (*i)->cbegin(), en = (*i)->cend(); j != en; ++j) { + if ((*j)->id > 0) { + return (*j)->id; + } + } + } + return 0; +} + +MsgId History::maxMsgId() const { + for (const_iterator i = cend(), e = cbegin(); i != e;) { + --i; + for (HistoryBlock::const_iterator j = (*i)->cend(), en = (*i)->cbegin(); j != en;) { + --j; + if ((*j)->id > 0) { + return (*j)->id; + } + } + } + return 0; } int32 History::geomResize(int32 newWidth, int32 *ytransform) { @@ -1269,13 +1443,26 @@ int32 History::geomResize(int32 newWidth, int32 *ytransform) { return height; } -void History::clear() { +void History::clear(bool leaveItems) { + if (unreadBar) { + unreadBar->destroy(); + } + if (showFrom) { + showFrom = 0; + } for (Parent::const_iterator i = cbegin(), e = cend(); i != e; ++i) { + if (leaveItems) { + (*i)->clear(true); + } delete *i; } Parent::clear(); - setUnreadCount(0); setMsgCount(0); + if (!leaveItems) { + setUnreadCount(0); + } + height = 0; + oldLoaded = false; } History::Parent::iterator History::erase(History::Parent::iterator i) { @@ -1328,12 +1515,19 @@ int32 HistoryBlock::geomResize(int32 newWidth, int32 *ytransform) { return height; } -void HistoryBlock::clear() { - for (Parent::const_iterator i = cbegin(), e = cend(); i != e; ++i) { - delete *i; +void HistoryBlock::clear(bool leaveItems) { + if (leaveItems) { + for (Parent::const_iterator i = cbegin(), e = cend(); i != e; ++i) { + (*i)->detachFast(); + } + } else { + for (Parent::const_iterator i = cbegin(), e = cend(); i != e; ++i) { + delete *i; + } } Parent::clear(); } + HistoryBlock::Parent::iterator HistoryBlock::erase(HistoryBlock::Parent::iterator i) { delete *i; return Parent::erase(i); @@ -1341,9 +1535,6 @@ HistoryBlock::Parent::iterator HistoryBlock::erase(HistoryBlock::Parent::iterato void HistoryBlock::removeItem(HistoryItem *item) { int32 i = indexOf(item), dh = 0; - if (history->notifyFrom == item) { - history->getNextNotifyFrom(this, i); - } if (history->showFrom == item) { history->getNextShowFrom(this, i); } @@ -1406,9 +1597,6 @@ void HistoryBlock::removeItem(HistoryItem *item) { if (!item->out() && item->unread() && history->unreadCount) { history->setUnreadCount(history->unreadCount - 1); } - if (item->id > 0) { - --history->offset; - } int32 itemType = item->itemType(); if (itemType == HistoryItem::MsgType) { history->setMsgCount(history->msgCount - 1); @@ -1430,10 +1618,6 @@ void HistoryBlock::removeItem(HistoryItem *item) { } else { history->removeBlock(this); } - delete item; - if (h->unreadBar && h->back()->back() == h->unreadBar) { - h->unreadBar->destroy(); - } } HistoryItem::HistoryItem(History *history, HistoryBlock *block, MsgId msgId, bool out, bool unread, QDateTime msgDate, int32 from) : y(0) @@ -1460,6 +1644,28 @@ void HistoryItem::markRead() { } } +void HistoryItem::detach() { + if (_history && _history->unreadBar == this) { + _history->unreadBar = 0; + } + if (_block) { + _block->removeItem(this); + detachFast(); + App::historyItemDetached(this); + } else { + if (_history->showFrom == this) { + _history->showFrom = 0; + } + } + if (_history && _history->unreadBar && _history->back()->back() == _history->unreadBar) { + _history->unreadBar->destroy(); + } +} + +void HistoryItem::detachFast() { + _block = 0; +} + HistoryItem::~HistoryItem() { App::historyUnregItem(this); if (id < 0) { @@ -1467,12 +1673,14 @@ HistoryItem::~HistoryItem() { } } -HistoryItem *regItem(HistoryItem *item) { - if (item && App::historyRegItem(item)) { - return item; +HistoryItem *regItem(HistoryItem *item, bool returnExisting) { + if (!item) return 0; + HistoryItem *existing = App::historyRegItem(item); + if (existing) { + delete item; + return returnExisting ? existing : 0; } - delete item; - return 0; + return item; } HistoryPhoto::HistoryPhoto(const MTPDphoto &photo, int32 width) : data(App::feedPhoto(photo)) @@ -2497,6 +2705,21 @@ HistoryMedia *HistoryMessage::getMedia() const { void HistoryMessage::draw(QPainter &p, uint32 selection) const { textstyleSet(&(out() ? st::outTextStyle : st::inTextStyle)); + if (id == _history->activeMsgId) { + uint64 ms = App::main() ? App::main()->animActiveTime() : 0; + if (ms) { + if (ms > st::activeFadeInDuration + st::activeFadeOutDuration) { + App::main()->stopAnimActive(); + } else { + float64 dt = (ms > st::activeFadeInDuration) ? (1 - (ms - st::activeFadeInDuration) / float64(st::activeFadeOutDuration)) : (ms / float64(st::activeFadeInDuration)); + float64 o = p.opacity(); + p.setOpacity(o * dt); + p.fillRect(0, 0, _history->width, _height, textstyleCurrent()->selectOverlay->b); + p.setOpacity(o); + } + } + } + bool selected = (selection == FullItemSel); if (_from->nameVersion > _fromVersion) { fromNameUpdated(); @@ -3239,8 +3462,7 @@ void HistoryUnreadBar::setCount(int32 count) { void HistoryUnreadBar::draw(QPainter &p, uint32 selection) const { p.fillRect(0, 1, _history->width, st::unreadBarHeight - 2, st::unreadBarBG->b); - p.setPen(st::unreadBarBorder->p); - p.drawLine(0, st::unreadBarHeight - 1, _history->width, st::unreadBarHeight - 1); + p.fillRect(0, st::unreadBarHeight - st::lineWidth, _history->width, st::lineWidth, st::unreadBarBorder->b); p.setFont(st::unreadBarFont->f); p.setPen(st::unreadBarColor->p); p.drawText(QRect(0, 0, _history->width, st::unreadBarHeight - 1), text, style::al_center); diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h index 167f02219..b641d783e 100644 --- a/Telegram/SourceFiles/history.h +++ b/Telegram/SourceFiles/history.h @@ -527,8 +527,8 @@ struct Histories : public QHash { unreadFull = unreadMuted = 0; } - PeerId addToBack(const MTPmessage &msg, bool newMsg = true); -// PeerId addToBack(const MTPgeoChatMessage &msg, bool newMsg = true); + HistoryItem *addToBack(const MTPmessage &msg, int msgState = 1); // 1 - new message, 0 - not new message, -1 - searched message +// HistoryItem *addToBack(const MTPgeoChatMessage &msg, bool newMsg = true); typedef QMap TypingHistories; // when typing in this history started TypingHistories typing; @@ -551,6 +551,17 @@ struct DialogRow { void *attached; // for any attached data, for example View in contacts list }; +struct FakeDialogRow { + FakeDialogRow(HistoryItem *item) : _item(item), _cacheFor(0), _cache(st::dlgRichMinWidth) { + } + + void paint(QPainter &p, int32 w, bool act, bool sel) const; + + HistoryItem *_item; + mutable const HistoryItem *_cacheFor; + mutable Text _cache; +}; + class HistoryMedia; class HistoryMessage; class HistoryUnreadBar; @@ -558,7 +569,7 @@ struct History : public QList { History(const PeerId &peerId); typedef QList Parent; - void clear(); + void clear(bool leaveItems = false); Parent::iterator erase(Parent::iterator i); void blockResized(HistoryBlock *block, int32 dh); void removeBlock(HistoryBlock *block); @@ -567,16 +578,21 @@ struct History : public QList { clear(); } - HistoryItem *createItem(HistoryBlock *block, const MTPmessage &msg, bool newMsg); + HistoryItem *createItem(HistoryBlock *block, const MTPmessage &msg, bool newMsg, bool returnExisting = false); HistoryItem *createItemForwarded(HistoryBlock *block, MsgId id, HistoryMessage *msg); // HistoryItem *createItem(HistoryBlock *block, const MTPgeoChatMessage &msg, bool newMsg); - void addToBackService(MsgId msgId, QDateTime date, const QString &text, bool out = false, bool unread = false, HistoryMedia *media = 0, bool newMsg = true); - void addToBack(const MTPmessage &msg, bool newMsg = true); - void addToBackForwarded(MsgId id, HistoryMessage *item); -// void addToBack(const MTPgeoChatMessage &msg, bool newMsg = true); + HistoryItem *addToBackService(MsgId msgId, QDateTime date, const QString &text, bool out = false, bool unread = false, HistoryMedia *media = 0, bool newMsg = true); + HistoryItem *addToBack(const MTPmessage &msg, bool newMsg = true); + HistoryItem *addToHistory(const MTPmessage &msg); + HistoryItem *addToBackForwarded(MsgId id, HistoryMessage *item); +// HistoryItem *addToBack(const MTPgeoChatMessage &msg, bool newMsg = true); void addToFront(const QVector &slice); + void addToBack(const QVector &slice); void createInitialDateBlock(const QDateTime &date); - void doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem *adding, bool newMsg); + HistoryItem *doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem *adding, bool newMsg); + + void newItemAdded(HistoryItem *item); + void inboxRead(bool byThisInstance = false); void outboxRead(); @@ -585,18 +601,66 @@ struct History : public QList { void setMute(bool newMute); void getNextShowFrom(HistoryBlock *block, int32 i); void addUnreadBar(); - void getNextNotifyFrom(HistoryBlock *block = 0, int32 i = 0); - void clearNotifyFrom(); + void clearNotifications(); + + bool readyForWork() const; // all unread loaded or loaded around activeMsgId + bool loadedAtBottom() const; // last message is in the list + bool loadedAtTop() const; // nothing was added after loading history back + + void fixLastMessage(bool wasAtBottom); + + void loadAround(MsgId msgId); + + MsgId minMsgId() const; + MsgId maxMsgId() const; int32 geomResize(int32 newWidth, int32 *ytransform = 0); // return new size - int32 width, height, msgCount, offset, unreadCount; + int32 width, height, msgCount, unreadCount; int32 inboxReadTill, outboxReadTill; HistoryItem *showFrom; - HistoryItem *notifyFrom; HistoryUnreadBar *unreadBar; - bool unreadLoaded; PeerData *peer; + bool oldLoaded, newLoaded; + HistoryItem *last; + MsgId activeMsgId; + + typedef QList NotifyQueue; + NotifyQueue notifies; + + void removeNotification(HistoryItem *item) { + if (!notifies.isEmpty()) { + for (NotifyQueue::iterator i = notifies.begin(), e = notifies.end(); i != e; ++i) { + if ((*i) == item) { + notifies.erase(i); + break; + } + } + } + } + HistoryItem *currentNotification() { + return notifies.isEmpty() ? 0 : notifies.front(); + } + void skipNotification() { + if (!notifies.isEmpty()) { + notifies.pop_front(); + } + } + + void itemReplaced(HistoryItem *old, HistoryItem *item) { + if (!notifies.isEmpty()) { + for (NotifyQueue::iterator i = notifies.begin(), e = notifies.end(); i != e; ++i) { + if ((*i) == old) { + *i = item; + break; + } + } + } + if (last == old) { + last = item; + } + // showFrom can't be detached + } QString draft; QTextCursor draftCur; @@ -911,7 +975,7 @@ struct HistoryBlock : public QVector { } typedef QVector Parent; - void clear(); + void clear(bool leaveItems = false); Parent::iterator erase(Parent::iterator i); ~HistoryBlock() { clear(); @@ -979,7 +1043,18 @@ public: } void destroy() { markRead(); - _block->removeItem(this); + bool wasAtBottom = history()->loadedAtBottom(); + _history->removeNotification(this); + detach(); + if (history()->last == this) { + history()->fixLastMessage(wasAtBottom); + } + delete this; + } + void detach(); + void detachFast(); + bool detached() const { + return !_block; } bool out() const { return _out; @@ -1047,7 +1122,7 @@ protected: }; -HistoryItem *regItem(HistoryItem *item); +HistoryItem *regItem(HistoryItem *item, bool returnExisting = false); enum HistoryMediaType { MediaTypePhoto, diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 843df4654..ebc311ec0 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -72,8 +72,12 @@ void HistoryList::messagesReceived(const QVector &messages) { hist->addToFront(messages); } +void HistoryList::messagesReceivedDown(const QVector &messages) { + hist->addToBack(messages); +} + void HistoryList::updateMsg(HistoryItem *msg) { - if (!msg || !hist || hist != msg->history()) return; + if (!msg || msg->detached() || !hist || hist != msg->history()) return; update(0, height() - hist->height - st::historyPadding + msg->block()->y + msg->y, width(), msg->height()); } @@ -331,7 +335,7 @@ void HistoryList::touchScrollUpdated(const QPoint &screenPos) { } QPoint HistoryList::mapMouseToItem(QPoint p, HistoryItem *item) { - if (!item) return QPoint(0, 0); + if (!item || item->detached()) return QPoint(0, 0); p.setY(p.y() - (height() - hist->height - st::historyPadding) - item->block()->y - item->y); return p; } @@ -550,13 +554,22 @@ void HistoryList::mouseReleaseEvent(QMouseEvent *e) { } void HistoryList::mouseDoubleClickEvent(QMouseEvent *e) { - if (_dragAction == Selecting && _dragSelType == TextSelectLetters && _dragItem && !_selected.isEmpty() && _selected.cbegin().value() != FullItemSel) { + if (((_dragAction == Selecting && !_selected.isEmpty() && _selected.cbegin().value() != FullItemSel) || (_dragAction == NoDrag && (_selected.isEmpty() || _selected.cbegin().value() != FullItemSel))) && _dragSelType == TextSelectLetters && _dragItem) { bool afterDragSymbol, uponSelected; uint16 symbol; _dragItem->getSymbol(symbol, afterDragSymbol, uponSelected, _dragStartPos.x(), _dragStartPos.y()); if (uponSelected) { _dragSymbol = symbol; _dragSelType = TextSelectWords; + if (_dragAction == NoDrag) { + _dragAction = Selecting; + uint32 selStatus = (symbol << 16) | symbol; + if (!_selected.isEmpty()) { + updateMsg(_selected.cbegin().key()); + _selected.clear(); + } + _selected.insert(_dragItem, selStatus); + } mouseMoveEvent(e); _trippleClickPoint = e->globalPos(); @@ -1321,8 +1334,7 @@ void HistoryHider::paintEvent(QPaintEvent *e) { p.fillRect(box.x(), box.y() + box.height() - st::btnSelectCancel.height - st::scrollDef.bottomsh, box.width(), st::scrollDef.bottomsh, st::scrollDef.shColor->b); // paint button sep - p.setPen(st::btnSelectSep->p); - p.drawLine(box.x() + st::btnSelectCancel.width, box.y() + box.height() - st::btnSelectCancel.height, box.x() + st::btnSelectCancel.width, box.y() + box.height() - 1); + p.fillRect(box.x() + st::btnSelectCancel.width, box.y() + box.height() - st::btnSelectCancel.height, st::lineWidth, st::btnSelectCancel.height, st::btnSelectSep->b); p.setPen(st::black->p); toText.drawElided(p, box.left() + (box.width() - toTextWidth) / 2, box.top() + st::boxPadding.top(), toTextWidth + 1); @@ -1436,17 +1448,15 @@ HistoryHider::~HistoryHider() { } HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent) - , histOffset(0) - , histCount(-1) - , histReadRequestId(0) , histRequestsCount(0) , histPeer(0) - , _activePeer(0) + , _activeHist(0) , histPreloading(0) , _scroll(this, st::historyScroll, false) , _list(0) , hist(0) , _histInited(false) + , _toHistoryEnd(this, st::historyToEnd) , _send(this, lang(lng_send_button), st::btnSend) , _attachDocument(this, st::btnAttachDocument) , _attachPhoto(this, st::btnAttachPhoto) @@ -1472,6 +1482,7 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent) setAcceptDrops(true); connect(&_scroll, SIGNAL(scrolled()), this, SLOT(onListScroll())); + connect(&_toHistoryEnd, SIGNAL(clicked()), this, SLOT(onHistoryToEnd())); connect(&_send, SIGNAL(clicked()), this, SLOT(onSend())); connect(&_attachDocument, SIGNAL(clicked()), this, SLOT(onDocumentSelect())); connect(&_attachPhoto, SIGNAL(clicked()), this, SLOT(onPhotoSelect())); @@ -1489,8 +1500,14 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent) _scrollTimer.setSingleShot(false); + _animActiveTimer.setSingleShot(false); + connect(&_animActiveTimer, SIGNAL(timeout()), this, SLOT(onAnimActiveStep())); + _scroll.hide(); _scroll.move(0, 0); + + _toHistoryEnd.hide(); + _field.hide(); _field.resize(width() - _send.width() - _attachDocument.width() - _attachEmoji.width(), _send.height() - 2 * st::sendPadding); _send.hide(); @@ -1509,6 +1526,7 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent) _emojiPan.hide(); _attachDragDocument.hide(); _attachDragPhoto.hide(); + connect(&_attachDragDocument, SIGNAL(dropped(QDropEvent*)), this, SLOT(onDocumentDrop(QDropEvent*))); connect(&_attachDragPhoto, SIGNAL(dropped(QDropEvent*)), this, SLOT(onPhotoDrop(QDropEvent*))); } @@ -1565,7 +1583,7 @@ void HistoryWidget::chatLoaded(const MTPmessages_ChatFull &res) { peerUpdated(App::chat(peerId)); } -void HistoryWidget::showPeer(const PeerId &peer, bool force, bool leaveActive) { +void HistoryWidget::showPeer(const PeerId &peer, MsgId msgId, bool force, bool leaveActive) { if (App::main()->selectingPeer() && !force) { hiderOffered = true; App::main()->offerPeer(peer); @@ -1577,19 +1595,31 @@ void HistoryWidget::showPeer(const PeerId &peer, bool force, bool leaveActive) { if (hist) { if (histPeer->id == peer) { if (hist->unreadBar) hist->unreadBar->destroy(); + if (msgId != hist->activeMsgId) { + hist->loadAround(msgId); + if (histPreloading) MTP::cancel(histPreloading); + if (histPreloadingDown) MTP::cancel(histPreloadingDown); + histPreloading = histPreloadingDown = 0; + } checkUnreadLoaded(); return activate(); } updateTyping(false); } - if (histPreload.size() && _list) { - _list->messagesReceived(histPreload); - histPreload.clear(); + if (_list) { + if (!histPreload.isEmpty()) { + _list->messagesReceived(histPreload); + histPreload.clear(); + } + if (!histPreloadDown.isEmpty()) { + _list->messagesReceivedDown(histPreloadDown); + histPreloadDown.clear(); + } } if (hist) { hist->draft = _field.getText(); hist->draftCur = _field.textCursor(); - if (hist->unreadLoaded && _scroll.scrollTop() + 1 <= _scroll.scrollTopMax()) { + if (hist->readyForWork() && _scroll.scrollTop() + 1 <= _scroll.scrollTopMax()) { hist->lastWidth = _list->width(); } else { hist->lastWidth = 0; @@ -1603,26 +1633,25 @@ void HistoryWidget::showPeer(const PeerId &peer, bool force, bool leaveActive) { _list = 0; updateTopBarSelection(); - if (leaveActive && histPeer) { - _activePeer = histPeer; + if (leaveActive && hist) { + _activeHist = hist; } else { if (!leaveActive) { - _activePeer = 0; + _activeHist = 0; } if (hist) { App::main()->dlgUpdated(hist); } } histPeer = peer ? App::peer(peer) : 0; - histOffset = 0; - histReadRequestId = 0; titlePeerText = QString(); titlePeerTextWidth = 0; histRequestsCount = 0; - histCount = -1; histPreload.clear(); + histPreloadDown.clear(); if (histPreloading) MTP::cancel(histPreloading); - histPreloading = 0; + if (histPreloadingDown) MTP::cancel(histPreloadingDown); + histPreloading = histPreloadingDown = 0; hist = 0; _histInited = false; noSelectingScroll(); @@ -1653,14 +1682,15 @@ void HistoryWidget::showPeer(const PeerId &peer, bool force, bool leaveActive) { } else { hist = i.value(); } - if (hist->unreadLoaded) { + if (hist->readyForWork()) { _scroll.show(); } if (hist) { App::main()->dlgUpdated(hist); } - histOffset = hist->offset; _list = new HistoryList(this, &_scroll, hist); + hist->loadAround(msgId); + _list->hide(); _scroll.setWidget(_list); _list->show(); @@ -1689,7 +1719,7 @@ void HistoryWidget::showPeer(const PeerId &peer, bool force, bool leaveActive) { void HistoryWidget::checkUnreadLoaded(bool checkOnlyShow) { if (!hist) return; - if (hist->unreadLoaded) { + if (hist->readyForWork()) { if (checkOnlyShow && !_scroll.isHidden()) return; if (!animating()) { if (_scroll.isHidden()) { @@ -1702,7 +1732,7 @@ void HistoryWidget::checkUnreadLoaded(bool checkOnlyShow) { } updateListSize(0, true); if (!animating()) updateControlsVisibility(); - if (hist->unreadLoaded) { + if (hist->readyForWork()) { if (!_scroll.isHidden() && !_list->isHidden()) { onListScroll(); } @@ -1715,6 +1745,7 @@ void HistoryWidget::updateControlsVisibility() { if (!hist) { _scroll.hide(); _send.hide(); + _toHistoryEnd.hide(); _field.hide(); _attachDocument.hide(); _attachPhoto.hide(); @@ -1724,7 +1755,12 @@ void HistoryWidget::updateControlsVisibility() { return; } - if (hist->unreadLoaded) { + if (hist->readyForWork()) { + if (hist->loadedAtBottom()) { + _toHistoryEnd.hide(); + } else { + _toHistoryEnd.show(); + } if (!histPeer->chat || !histPeer->asChat()->forbidden) { _send.show(); if (cDefaultAttach() == dbidaPhoto) { @@ -1735,6 +1771,7 @@ void HistoryWidget::updateControlsVisibility() { _attachEmoji.show(); if (_field.isHidden()) { _field.show(); + resizeEvent(0); update(); } } else { @@ -1746,15 +1783,17 @@ void HistoryWidget::updateControlsVisibility() { _emojiPan.hide(); if (!_field.isHidden()) { _field.hide(); + resizeEvent(0); update(); } } + if (hist->unreadCount && App::wnd()->historyIsActive()) { historyWasRead(); } } else { loadMessages(); - if (!hist->unreadLoaded) { + if (!hist->readyForWork()) { _scroll.hide(); _send.hide(); _attachDocument.hide(); @@ -1762,6 +1801,7 @@ void HistoryWidget::updateControlsVisibility() { _attachEmoji.hide(); _attachType.hide(); _emojiPan.hide(); + _toHistoryEnd.hide(); if (!_field.isHidden()) { _field.hide(); update(); @@ -1772,24 +1812,24 @@ void HistoryWidget::updateControlsVisibility() { void HistoryWidget::newUnreadMsg(History *history, MsgId msgId) { if (App::wnd()->historyIsActive()) { - if (hist == history && hist->unreadLoaded) { + if (hist == history && hist->readyForWork()) { historyWasRead(); if (_scroll.scrollTop() + 1 > _scroll.scrollTopMax()) { if (history->unreadBar) history->unreadBar->destroy(); } } else { if (hist != history) { - App::wnd()->psNotify(history, msgId); + App::wnd()->notifySchedule(history, msgId); } history->setUnreadCount(history->unreadCount + 1); } } else { - if (hist == history && hist->unreadLoaded) { + if (hist == history && hist->readyForWork()) { if (_scroll.scrollTop() + 1 > _scroll.scrollTopMax()) { if (history->unreadBar) history->unreadBar->destroy(); } } - App::wnd()->psNotify(history, msgId); + App::wnd()->notifySchedule(history, msgId); history->setUnreadCount(history->unreadCount + 1); history->lastWidth = 0; } @@ -1810,15 +1850,17 @@ bool HistoryWidget::messagesFailed(const RPCError &e, mtpRequestId requestId) { LOG(("RPC Error: %1 %2: %3").arg(e.code()).arg(e.type()).arg(e.description())); if (histPreloading == requestId) { histPreloading = 0; + } else if (histPreloadingDown == requestId) { + histPreloadingDown = 0; } return true; } void HistoryWidget::messagesReceived(const MTPmessages_Messages &messages, mtpRequestId requestId) { - if (histPreloading == requestId) { - histPreloading = 0; + if (!hist) { + histPreloading = histPreloadingDown = 0; + return; } - if (!hist) return; PeerId peer = 0; int32 count = 0; @@ -1859,36 +1901,64 @@ void HistoryWidget::messagesReceived(const MTPmessages_Messages &messages, mtpRe peer = (to_id == App::peerFromUser(MTP::authedId())) ? from_id : to_id; } + bool down = false; + if (histPreloading == requestId) { + histPreloading = 0; + } else if (histPreloadingDown == requestId) { + histPreloadingDown = 0; + down = true; + } else { + return; + } + if (peer && peer != histPeer->id) return; if (histList) { - if (!histOffset) { - addMessagesToFront(*histList); + if (!hist->minMsgId() || histList->isEmpty()) { + if (down) { + addMessagesToBack(*histList); + histPreloadDown.clear(); + } else { + addMessagesToFront(*histList); + histPreload.clear(); + } } else { - histPreload = *histList; - } - - if (histList->size()) { - histOffset += histList->size(); - histCount = count; - } else { - histCount = histOffset; + if (down) { + histPreloadDown = *histList; + } else { + histPreload = *histList; + } } } else { - histCount = histOffset; - if (!hist->unreadLoaded) { - hist->setUnreadCount(hist->msgCount); + if (down) { + addMessagesToBack(QVector()); + } else { + addMessagesToFront(QVector()); + } + if (!hist->readyForWork()) { + if (hist->activeMsgId) { + hist->activeMsgId = 0; + } + if (!hist->readyForWork()) { + hist->setUnreadCount(hist->msgCount); + } } checkUnreadLoaded(true); return; } - if (histOffset >= histCount && histPreload.size()) { + if (down && hist->loadedAtBottom() && histPreloadDown.size()) { + addMessagesToBack(histPreloadDown); + histPreloadDown.clear(); + loadMessagesDown(); + } else if (!down && hist->loadedAtTop() && histPreload.size()) { addMessagesToFront(histPreload); histPreload.clear(); loadMessages(); - } else if (histPreload.size()) { + } else if ((down && histPreloadDown.size()) || (!down && histPreload.size())) { onListScroll(); + } else if (down) { + loadMessagesDown(); } else { loadMessages(); } @@ -1901,11 +1971,20 @@ void HistoryWidget::windowShown() { resizeEvent(0); } +bool HistoryWidget::isActive() const { + return !hist || hist->loadedAtBottom(); +} + void HistoryWidget::loadMessages() { if (!hist) return; - if (histCount >= 0 && histOffset >= histCount) { - if (!hist->unreadLoaded) { - hist->setUnreadCount(hist->msgCount); + if (hist->loadedAtTop()) { + if (!hist->readyForWork()) { + if (hist->activeMsgId) { + hist->activeMsgId = 0; + } + if (!hist->readyForWork()) { + hist->setUnreadCount(hist->msgCount); + } } checkUnreadLoaded(true); return; @@ -1913,19 +1992,53 @@ void HistoryWidget::loadMessages() { int32 dh = 0; if (histPreload.size()) { - bool unreadLoaded = hist->unreadLoaded; + bool loaded = hist->readyForWork(); addMessagesToFront(histPreload); histPreload.clear(); checkUnreadLoaded(true); - if (!unreadLoaded && hist->unreadLoaded) { + if (!loaded && hist->readyForWork()) { return; } } - if (!histPreloading && (!hist->unreadLoaded || _scroll.scrollTop() < 3 * _scroll.height())) { - int32 loadCount = histOffset ? MessagesPerPage : MessagesFirstLoad; - histPreloading = MTP::send(MTPmessages_GetHistory(histInputPeer, MTP_int(histOffset), MTP_int(0), MTP_int(loadCount)), rpcDone(&HistoryWidget::messagesReceived), rpcFail(&HistoryWidget::messagesFailed)); + if (!histPreloading && (!hist->readyForWork() || _scroll.scrollTop() < 3 * _scroll.height())) { + MsgId min = hist->minMsgId(); + int32 offset = 0, loadCount = min ? MessagesPerPage : MessagesFirstLoad; + if (!min && hist->activeMsgId) { + min = hist->activeMsgId; + offset = -loadCount / 2; + } + histPreloading = MTP::send(MTPmessages_GetHistory(histInputPeer, MTP_int(offset), MTP_int(min), MTP_int(loadCount)), rpcDone(&HistoryWidget::messagesReceived), rpcFail(&HistoryWidget::messagesFailed)); ++histRequestsCount; - if (!hist->unreadLoaded) update(); + if (!hist->readyForWork()) update(); + } else { + checkUnreadLoaded(true); + } +} + +void HistoryWidget::loadMessagesDown() { + if (!hist) return; + if (hist->loadedAtBottom()) { + return; + } + + int32 dh = 0; + if (histPreloadDown.size()) { + bool loaded = hist->readyForWork(); + addMessagesToBack(histPreloadDown); + histPreloadDown.clear(); + checkUnreadLoaded(true); + if (!loaded && hist->readyForWork()) { + return; + } + } + if (!histPreloadingDown && hist->readyForWork() && (_scroll.scrollTop() + 3 * _scroll.height() > _scroll.scrollTopMax())) { + MsgId max = hist->maxMsgId(); + if (max) { + int32 loadCount = MessagesPerPage, offset = -loadCount; + histPreloadingDown = MTP::send(MTPmessages_GetHistory(histInputPeer, MTP_int(offset), MTP_int(max + 1), MTP_int(loadCount)), rpcDone(&HistoryWidget::messagesReceived), rpcFail(&HistoryWidget::messagesFailed)); + ++histRequestsCount; + if (!hist->readyForWork()) update(); + } } else { checkUnreadLoaded(true); } @@ -1934,12 +2047,16 @@ void HistoryWidget::loadMessages() { void HistoryWidget::onListScroll() { App::checkImageCacheSize(); - if (histPreloading || !hist || ((_list->isHidden() || _scroll.isHidden() || !App::wnd()->windowHandle()->isVisible()) && hist->unreadLoaded)) { + if (histPreloading || !hist || ((_list->isHidden() || _scroll.isHidden() || !App::wnd()->windowHandle()->isVisible()) && hist->readyForWork())) { checkUnreadLoaded(true); return; } - if (!hist->unreadLoaded || _scroll.scrollTop() < 3 * _scroll.height()) { + if (hist->readyForWork() && (_scroll.scrollTop() + 3 * _scroll.height() > _scroll.scrollTopMax())) { + loadMessagesDown(); + } + + if (!hist->readyForWork() || _scroll.scrollTop() < 3 * _scroll.height()) { loadMessages(); } else { checkUnreadLoaded(true); @@ -1961,6 +2078,13 @@ QString HistoryWidget::prepareMessage(QString result) { return (cReplaceEmojis() ? replaceEmojis(result) : result).trimmed(); } +void HistoryWidget::onHistoryToEnd() { + _toHistoryEnd.hide(); + if (hist && !hist->loadedAtBottom()) { + showPeer(histPeer->id, 0); + } +} + void HistoryWidget::onSend() { if (!hist) return; @@ -1971,6 +2095,8 @@ void HistoryWidget::onSend() { App::historyRegRandom(randomId, newId); + hist->loadAround(0); + MTPstring msgText(MTP_string(text)); hist->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(histPeer->id), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); App::main()->historyToDown(hist); @@ -1997,7 +2123,7 @@ mtpRequestId HistoryWidget::onForward(const PeerId &peer, bool forwardSelected) if (toForward.isEmpty()) return 0; if (toForward.size() == 1) { - App::main()->showPeer(peer, false, true); + App::main()->showPeer(peer, 0, false, true); if (!hist) return 0; HistoryItem *item = toForward.cbegin().value(); @@ -2006,6 +2132,7 @@ mtpRequestId HistoryWidget::onForward(const PeerId &peer, bool forwardSelected) HistoryServiceMsg *srv = dynamic_cast(item); MsgId newId = 0; + hist->loadAround(0); if (item->id > 0 && msg) { newId = clientMsgId(); hist->addToBackForwarded(newId, msg); @@ -2045,12 +2172,14 @@ mtpRequestId HistoryWidget::onForward(const PeerId &peer, bool forwardSelected) void HistoryWidget::onShareContact(const PeerId &peer, UserData *contact) { if (!contact || contact->phone.isEmpty()) return; - App::main()->showPeer(peer, false, true); + App::main()->showPeer(peer, 0, false, true); if (!hist) return; uint64 randomId = MTP::nonce(); MsgId newId = clientMsgId(); + hist->loadAround(0); + hist->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(histPeer->id), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaContact(MTP_string(contact->phone), MTP_string(contact->firstName), MTP_string(contact->lastName), MTP_int(int32(contact->id & 0xFFFFFFFF))))); MTP::send(MTPmessages_SendMedia(histPeer->input, MTP_inputMediaContact(MTP_string(contact->phone), MTP_string(contact->firstName), MTP_string(contact->lastName)), MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentFullDataReceived, randomId)); @@ -2066,7 +2195,11 @@ PeerData *HistoryWidget::peer() const { } PeerData *HistoryWidget::activePeer() const { - return histPeer ? histPeer : _activePeer; + return histPeer ? histPeer : (_activeHist ? _activeHist->peer : 0); +} + +MsgId HistoryWidget::activeMsgId() const { + return hist ? hist->activeMsgId : (_activeHist ? _activeHist->activeMsgId : 0); } void HistoryWidget::animShow(const QPixmap &bgAnimCache, const QPixmap &bgAnimTopBarCache, bool back) { @@ -2077,6 +2210,7 @@ void HistoryWidget::animShow(const QPixmap &bgAnimCache, const QPixmap &bgAnimTo _animTopBarCache = myGrab(App::main()->topBar(), QRect(0, 0, width(), st::topBarHeight)); App::main()->topBar()->startAnim(); _scroll.hide(); + _toHistoryEnd.hide(); _attachDocument.hide(); _attachPhoto.hide(); _attachEmoji.hide(); @@ -2103,7 +2237,7 @@ bool HistoryWidget::animStep(float64 ms) { _bgAnimCache = _animCache = _animTopBarCache = _bgAnimTopBarCache = QPixmap(); App::main()->topBar()->stopAnim(); updateControlsVisibility(); - if (hist && hist->unreadLoaded) { + if (hist && hist->readyForWork()) { _scroll.show(); if (hist->lastScrollTop == History::ScrollMax) { _scroll.scrollToY(hist->lastScrollTop); @@ -2197,18 +2331,24 @@ void HistoryWidget::dragEnterEvent(QDragEnterEvent *e) { } void HistoryWidget::dragLeaveEvent(QDragLeaveEvent *e) { - _attachDrag = DragStateNone; - updateDragAreas(); + if (_attachDrag != DragStateNone || !_attachDragPhoto.isHidden() || !_attachDragDocument.isHidden()) { + _attachDrag = DragStateNone; + updateDragAreas(); + } } void HistoryWidget::leaveEvent(QEvent *e) { - _attachDrag = DragStateNone; - updateDragAreas(); + if (_attachDrag != DragStateNone || !_attachDragPhoto.isHidden() || !_attachDragDocument.isHidden()) { + _attachDrag = DragStateNone; + updateDragAreas(); + } } void HistoryWidget::mouseReleaseEvent(QMouseEvent *e) { - _attachDrag = DragStateNone; - updateDragAreas(); + if (_attachDrag != DragStateNone || !_attachDragPhoto.isHidden() || !_attachDragDocument.isHidden()) { + _attachDrag = DragStateNone; + updateDragAreas(); + } } DragState HistoryWidget::getDragState(const QMimeData *d) { @@ -2486,13 +2626,18 @@ void HistoryWidget::confirmSendImage(const ReadyLocalMedia &img) { App::uploader()->uploadMedia(newId, img); + History *h = App::history(img.peer); if (img.type == ToPreparePhoto) { - App::history(img.peer)->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaPhoto(img.photo))); + h->loadAround(0); + h->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaPhoto(img.photo))); } else if (img.type == ToPrepareDocument) { - App::history(img.peer)->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaDocument(img.document))); + h->loadAround(0); + h->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaDocument(img.document))); } - if (hist && histPeer && img.peer == histPeer->id) App::main()->historyToDown(hist); + if (hist && histPeer && img.peer == histPeer->id) { + App::main()->historyToDown(hist); + } App::main()->dialogsToUp(); peerMessagesUpdated(img.peer); } @@ -2580,6 +2725,9 @@ void HistoryWidget::resizeEvent(QResizeEvent *e) { updateListSize(); _field.resize(width() - _send.width() - _attachDocument.width() - _attachEmoji.width(), _field.height()); + + _toHistoryEnd.move((width() - _toHistoryEnd.width()) / 2, _scroll.y() + _scroll.height() - _toHistoryEnd.height() - st::historyToEndSkip); + _attachEmoji.move(_field.x() + _field.width(), height() - _attachEmoji.height()); _send.move(width() - _send.width(), _attachDocument.y()); @@ -2604,15 +2752,16 @@ void HistoryWidget::resizeEvent(QResizeEvent *e) { } } -void HistoryWidget::updateListSize(int32 addToY, bool initial) { +void HistoryWidget::updateListSize(int32 addToY, bool initial, bool loadedDown) { if (!hist || (!_histInited && !initial)) return; if (!App::wnd()->isVisible()) return; // scrollTopMax etc are not working after recountHeight() - int32 newScrollHeight = height() - (hist->unreadLoaded && (!histPeer->chat || !histPeer->asChat()->forbidden) ? (_field.height() + 2 * st::sendPadding) : 0); + int32 newScrollHeight = height() - (hist->readyForWork() && (!histPeer->chat || !histPeer->asChat()->forbidden) ? (_field.height() + 2 * st::sendPadding) : 0); bool wasAtBottom = _scroll.scrollTop() + 1 > _scroll.scrollTopMax(), needResize = _scroll.width() != width() || _scroll.height() != newScrollHeight; if (needResize) { _scroll.resize(width(), newScrollHeight); + _toHistoryEnd.move((width() - _toHistoryEnd.width()) / 2, _scroll.y() + _scroll.height() - _toHistoryEnd.height() - st::historyToEndSkip); } if (!initial) { @@ -2627,20 +2776,29 @@ void HistoryWidget::updateListSize(int32 addToY, bool initial) { if (washidden) { _scroll.hide(); } - if (!hist->unreadLoaded) return; + if (!hist->readyForWork()) return; - if (!initial && !wasAtBottom) { + if ((!initial && !wasAtBottom) || loadedDown) { _scroll.scrollToY(newSt + addToY); return; } - if (!hist->unreadLoaded) return; if (initial) { _histInited = true; } int32 toY = History::ScrollMax; - if (initial && hist->unreadBar) { + if (initial && hist->activeMsgId && !hist->lastWidth) { + HistoryItem *item = App::histItemById(hist->activeMsgId); + if (!item || item->detached()) { + hist->activeMsgId = 0; + return updateListSize(addToY, initial); + } else { + toY = (_scroll.height() > item->height()) ? qMax(item->y + item->block()->y - (_scroll.height() - item->height()) / 2, 0) : (item->y + item->block()->y); + _animActiveStart = getms(); + _animActiveTimer.start(AnimationTimerDelta); + } + } else if (initial && hist->unreadBar) { toY = hist->unreadBar->y + hist->unreadBar->block()->y; } else if (hist->showFrom) { toY = hist->showFrom->y + hist->showFrom->block()->y; @@ -2654,7 +2812,6 @@ void HistoryWidget::updateListSize(int32 addToY, bool initial) { toY = newSt; hist->lastWidth = 0; } else { - int blabla = 0; } _scroll.scrollToY(toY); } @@ -2666,6 +2823,13 @@ void HistoryWidget::addMessagesToFront(const QVector &messages) { checkUnreadLoaded(true); } +void HistoryWidget::addMessagesToBack(const QVector &messages) { + int32 sliceFrom = 0; + _list->messagesReceivedDown(messages); + updateListSize(0, false, true); + checkUnreadLoaded(true); +} + void HistoryWidget::mousePressEvent(QMouseEvent *e) { } @@ -2784,6 +2948,22 @@ void HistoryWidget::onClearSelected() { if (_list) _list->clearSelectedItems(); } +void HistoryWidget::onAnimActiveStep() { + if (!hist || !hist->activeMsgId) return _animActiveTimer.stop(); + HistoryItem *item = App::histItemById(hist->activeMsgId); + if (!item || item->detached()) return _animActiveTimer.stop(); + + App::main()->msgUpdated(histPeer->id, item); +} + +uint64 HistoryWidget::animActiveTime() const { + return _animActiveTimer.isActive() ? (getms() - _animActiveStart) : 0; +} + +void HistoryWidget::stopAnimActive() { + _animActiveTimer.stop(); +} + void HistoryWidget::updateTopBarSelection() { if (!_list) { App::main()->topBar()->showSelected(0); diff --git a/Telegram/SourceFiles/historywidget.h b/Telegram/SourceFiles/historywidget.h index 363e8589b..5e88b8b4a 100644 --- a/Telegram/SourceFiles/historywidget.h +++ b/Telegram/SourceFiles/historywidget.h @@ -40,6 +40,7 @@ public: HistoryList(HistoryWidget *historyWidget, ScrollArea *scroll, History *history); void messagesReceived(const QVector &messages); + void messagesReceivedDown(const QVector &messages); bool event(QEvent *e); // calls touchEvent when necessary void touchEvent(QTouchEvent *e); @@ -251,6 +252,7 @@ public: void messagesReceived(const MTPmessages_Messages &messages, mtpRequestId requestId); void windowShown(); + bool isActive() const; void resizeEvent(QResizeEvent *e); void keyPressEvent(QKeyEvent *e); @@ -269,6 +271,7 @@ public: void topBarClick(); void loadMessages(); + void loadMessagesDown(); void peerMessagesUpdated(PeerId peer); void peerMessagesUpdated(); @@ -300,6 +303,7 @@ public: PeerData *peer() const; PeerData *activePeer() const; + MsgId activeMsgId() const; void animShow(const QPixmap &bgAnimCache, const QPixmap &bgAnimTopBarCache, bool back = false); bool animStep(float64 ms); @@ -314,6 +318,9 @@ public: QString prepareMessage(QString text); + uint64 animActiveTime() const; + void stopAnimActive(); + ~HistoryWidget(); signals: @@ -334,6 +341,7 @@ public slots: void onDocumentFailed(MsgId msgId); void onListScroll(); + void onHistoryToEnd(); void onSend(); void onPhotoSelect(); @@ -343,7 +351,7 @@ public slots: void onPhotoReady(); void onPhotoFailed(quint64 id); - void showPeer(const PeerId &peer, bool force = false, bool leaveActive = false); + void showPeer(const PeerId &peer, MsgId msgId = 0, bool force = false, bool leaveActive = false); void activate(); void onTextChange(); @@ -364,11 +372,14 @@ public slots: void onDeleteContextSure(); void onClearSelected(); + void onAnimActiveStep(); + private: bool messagesFailed(const RPCError &error, mtpRequestId requestId); - void updateListSize(int32 addToY = 0, bool initial = false); + void updateListSize(int32 addToY = 0, bool initial = false, bool loadedDown = false); void addMessagesToFront(const QVector &messages); + void addMessagesToBack(const QVector &messages); void chatLoaded(const MTPmessages_ChatFull &res); QStringList getMediasFromMime(const QMimeData *d); @@ -376,18 +387,20 @@ private: void updateDragAreas(); - int32 histOffset, histCount, histReadRequestId; int32 histRequestsCount; - PeerData *histPeer, *_activePeer; + PeerData *histPeer; + History *_activeHist; MTPinputPeer histInputPeer; - mtpRequestId histPreloading; - QVector histPreload; + mtpRequestId histPreloading, histPreloadingDown; + QVector histPreload, histPreloadDown; ScrollArea _scroll; HistoryList *_list; History *hist; bool _histInited; // initial updateListSize() called + IconedButton _toHistoryEnd; + FlatButton _send; IconedButton _attachDocument, _attachPhoto, _attachEmoji; MessageField _field; @@ -422,5 +435,8 @@ private: QTimer _scrollTimer; int32 _scrollDelta; + QTimer _animActiveTimer; + float64 _animActiveStart; + }; diff --git a/Telegram/SourceFiles/localimageloader.cpp b/Telegram/SourceFiles/localimageloader.cpp index 8b180efc2..c912c833c 100644 --- a/Telegram/SourceFiles/localimageloader.cpp +++ b/Telegram/SourceFiles/localimageloader.cpp @@ -100,7 +100,7 @@ void LocalImageLoaderPrivate::prepareImages() { } } else { type = ToPreparePhoto; // only photo from QImage - filename = qsl("Photo.jpg"); + filename = qsl("Untitled.jpg"); filesize = 0; } diff --git a/Telegram/SourceFiles/logs.cpp b/Telegram/SourceFiles/logs.cpp index 2e9fbd345..6511348f8 100644 --- a/Telegram/SourceFiles/logs.cpp +++ b/Telegram/SourceFiles/logs.cpp @@ -119,7 +119,7 @@ void logsInit() { static _StreamCreator streamCreator; if (mainLogStream) return; -#ifdef Q_OS_MAC +#if defined Q_OS_MAC && !defined _DEBUG cForceWorkingDir(psAppDataPath()); #endif diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 8be1ecf1f..ce9b11f2e 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -85,7 +85,7 @@ void TopBarWidget::onDeleteContactSure() { PeerData *p = App::main() ? App::main()->profilePeer() : 0; UserData *u = (p && !p->chat) ? p->asUser() : 0; if (u) { - App::main()->showPeer(0, true); + App::main()->showPeer(0, 0, true); App::wnd()->hideLayer(); MTP::send(MTPcontacts_DeleteContact(u->inputUser), App::main()->rpcDone(&MainWidget::deletedContact, u)); } @@ -105,7 +105,7 @@ void TopBarWidget::onDeleteAndExitSure() { PeerData *p = App::main() ? App::main()->profilePeer() : 0; ChatData *c = (p && p->chat) ? p->asChat() : 0; if (c) { - App::main()->showPeer(0, true); + App::main()->showPeer(0, 0, true); App::wnd()->hideLayer(); MTP::send(MTPmessages_DeleteChatUser(MTP_int(p->id & 0xFFFFFFFF), App::self()->inputUser), App::main()->rpcDone(&MainWidget::deleteHistory, p), App::main()->rpcFail(&MainWidget::leaveChatFailed, p)); } @@ -155,10 +155,7 @@ void TopBarWidget::paintEvent(QPaintEvent *e) { int a = 0; // optimize shadow-only drawing } if (_drawShadow) { - p.setPen(st::titleShadowColor->p); - for (int32 i = 0; i < st::titleShadow; ++i) { - p.drawLine(st::titleShadow, st::topBarHeight + i, width(), st::topBarHeight + i); - } + p.fillRect(st::titleShadow, st::topBarHeight, width() - st::titleShadow, st::titleShadow, st::titleShadowColor->b); } } @@ -266,7 +263,7 @@ MainWidget::MainWidget(Window *window) : QWidget(window), failedObjId(0), _dialo setGeometry(QRect(0, st::titleHeight, App::wnd()->width(), App::wnd()->height() - st::titleHeight)); connect(window, SIGNAL(resized(const QSize &)), this, SLOT(onParentResize(const QSize &))); - connect(&dialogs, SIGNAL(peerChosen(const PeerId &)), this, SLOT(showPeer(const PeerId &))); + connect(&dialogs, SIGNAL(peerChosen(const PeerId &, MsgId)), this, SLOT(showPeer(const PeerId &, MsgId))); connect(&dialogs, SIGNAL(cancelled()), this, SLOT(dialogsCancelled())); connect(&history, SIGNAL(cancelled()), &dialogs, SLOT(activate())); connect(this, SIGNAL(peerPhotoChanged(PeerData *)), this, SIGNAL(dialogsUpdated())); @@ -423,7 +420,7 @@ void MainWidget::addParticipants(ChatData *chat, const QVector &users MTP::send(MTPmessages_AddChatUser(MTP_int(chat->id & 0xFFFFFFFF), (*i)->inputUser, MTP_int(ForwardOnAdd)), rpcDone(&MainWidget::addParticipantDone, chat), rpcFail(&MainWidget::addParticipantFail, chat), 0, 5); } App::wnd()->hideLayer(); - showPeer(chat->id, false); + showPeer(chat->id, 0, false); } void MainWidget::addParticipantDone(ChatData *chat, const MTPmessages_StatedMessage &result) { @@ -439,7 +436,7 @@ bool MainWidget::addParticipantFail(ChatData *chat, const RPCError &e) { void MainWidget::kickParticipant(ChatData *chat, UserData *user) { MTP::send(MTPmessages_DeleteChatUser(MTP_int(chat->id & 0xFFFFFFFF), user->inputUser), rpcDone(&MainWidget::kickParticipantDone, chat), rpcFail(&MainWidget::kickParticipantFail, chat)); App::wnd()->hideLayer(); - showPeer(chat->id, false); + showPeer(chat->id, 0, false); } void MainWidget::kickParticipantDone(ChatData *chat, const MTPmessages_StatedMessage &result) { @@ -476,9 +473,9 @@ void MainWidget::checkedHistory(PeerData *peer, const MTPmessages_Messages &resu } dialogs.removePeer(peer); } else { - if (App::historyLoaded(peer->id)) { - History *h = App::history(peer->id); - h->addToBack((*v)[0], false); + History *h = App::historyLoaded(peer->id); + if (!h->last) { + h->addToBack((*v)[0], 0); } } } @@ -508,6 +505,8 @@ void MainWidget::sendMessage(History *hist, const QString &text) { App::historyRegRandom(randomId, newId); + hist->loadAround(0); + MTPstring msgText(MTP_string(msg)); hist->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(hist->peer->id), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); historyToDown(hist); @@ -520,7 +519,7 @@ void MainWidget::sendMessage(History *hist, const QString &text) { } void MainWidget::readServerHistory(History *hist, bool force) { - if (!hist || (!force && (!hist->unreadCount || !hist->unreadLoaded))) return; + if (!hist || (!force && (!hist->unreadCount || !hist->readyForWork()))) return; ReadRequests::const_iterator i = _readRequests.constFind(hist->peer); if (i == _readRequests.cend()) { @@ -529,6 +528,14 @@ void MainWidget::readServerHistory(History *hist, bool force) { } } +uint64 MainWidget::animActiveTime() const { + return history.animActiveTime(); +} + +void MainWidget::stopAnimActive() { + history.stopAnimActive(); +} + void MainWidget::partWasRead(PeerData *peer, const MTPmessages_AffectedHistory &result) { const MTPDmessages_affectedHistory &d(result.c_messages_affectedHistory()); App::main()->updUpdated(d.vpts.v, 0, 0, d.vseq.v); @@ -713,7 +720,7 @@ bool MainWidget::getVideoCoords(VideoData *video, int32 &x, int32 &y, int32 &w) return false; } -void MainWidget::showPeer(const PeerId &peerId, bool back, bool force) { +void MainWidget::showPeer(const PeerId &peerId, MsgId msgId, bool back, bool force) { if (!back && profileStack.size() == 1 && profileStack[0]->id == peerId) { back = true; } @@ -738,7 +745,7 @@ void MainWidget::showPeer(const PeerId &peerId, bool back, bool force) { history.show(); } } - history.showPeer(peerId, force); + history.showPeer(peerId, msgId, force); if (force || !selectingPeer()) { if (profile) { if (profile) profile->deleteLater(); @@ -775,6 +782,10 @@ PeerData *MainWidget::activePeer() { return history.activePeer(); } +MsgId MainWidget::activeMsgId() { + return history.activeMsgId(); +} + PeerData *MainWidget::profilePeer() { return profile ? profile->peer() : 0; } @@ -798,7 +809,7 @@ void MainWidget::showPeerProfile(const PeerData *peer, bool back) { resizeEvent(0); profile->animShow(animCache, animTopBarCache, back); history.animStop(); - history.showPeer(0, false, true); + history.showPeer(0, 0, false, true); history.hide(); _topBar.raise(); dialogs.raise(); @@ -810,7 +821,7 @@ void MainWidget::showPeerBack() { PeerData *peer = profileStack.back(); profileStack.pop_back(); if (profileStack.isEmpty()) { - showPeer(peer->id, true); + showPeer(peer->id, App::main()->activeMsgId(), true); } else { showPeerProfile(peer, true); } @@ -971,7 +982,7 @@ void MainWidget::sentFullDatasReceived(const MTPmessages_StatedMessages &result) void MainWidget::forwardDone(PeerId peer, const MTPmessages_StatedMessages &result) { sentFullDatasReceived(result); if (hider) hider->forwardDone(); - showPeer(peer, false, true); + showPeer(peer, 0, false, true); history.onClearSelected(); } @@ -991,7 +1002,7 @@ void MainWidget::dialogsToUp() { } void MainWidget::dialogsClear() { - dialogs.onCancel(); + dialogs.clearFiltered(); } void MainWidget::newUnreadMsg(History *hist, MsgId msgId) { @@ -1300,7 +1311,7 @@ void MainWidget::applyNotifySetting(const MTPNotifyPeer &peer, const MTPPeerNoti if (peerId) { if (!history) history = App::history(peerId); if (isNotifyMuted(setTo)) { - App::wnd()->psClearNotify(history); + App::wnd()->notifyClear(history); history->setMute(true); } else { history->setMute(false); @@ -1330,7 +1341,7 @@ void MainWidget::gotNotifySetting(MTPInputNotifyPeer peer, const MTPPeerNotifySe } break; } - App::wnd()->psNotifySettingGot(); + App::wnd()->notifySettingGot(); } bool MainWidget::failNotifySetting(MTPInputNotifyPeer peer) { @@ -1394,7 +1405,7 @@ bool MainWidget::isActive() const { } bool MainWidget::historyIsActive() const { - return isActive() && !profile; + return isActive() && !profile && history.isActive(); } int32 MainWidget::dlgsWidth() const { @@ -1487,8 +1498,10 @@ void MainWidget::updateReceived(const mtpPrime *from, const mtpPrime *end) { } if (!App::userLoaded(d.vfrom_id.v)) return getDifference(); - PeerId peer = App::histories().addToBack(MTP_message(d.vid, d.vfrom_id, MTP_peerUser(MTP_int(MTP::authedId())), MTP_bool(false), MTP_bool(true), d.vdate, d.vmessage, MTP_messageMediaEmpty())); - history.peerMessagesUpdated(peer); + HistoryItem *item = App::histories().addToBack(MTP_message(d.vid, d.vfrom_id, MTP_peerUser(MTP_int(MTP::authedId())), MTP_bool(false), MTP_bool(true), d.vdate, d.vmessage, MTP_messageMediaEmpty())); + if (item) { + history.peerMessagesUpdated(item->history()->peer->id); + } updSetState(d.vpts.v, d.vdate.v, updQts, d.vseq.v); } break; @@ -1500,8 +1513,10 @@ void MainWidget::updateReceived(const mtpPrime *from, const mtpPrime *end) { } if (!App::chatLoaded(d.vchat_id.v) || !App::userLoaded(d.vfrom_id.v)) return getDifference(); - PeerId peer = App::histories().addToBack(MTP_message(d.vid, d.vfrom_id, MTP_peerChat(d.vchat_id), MTP_bool(false), MTP_bool(true), d.vdate, d.vmessage, MTP_messageMediaEmpty())); - history.peerMessagesUpdated(peer); + HistoryItem *item = App::histories().addToBack(MTP_message(d.vid, d.vfrom_id, MTP_peerChat(d.vchat_id), MTP_bool(false), MTP_bool(true), d.vdate, d.vmessage, MTP_messageMediaEmpty())); + if (item) { + history.peerMessagesUpdated(item->history()->peer->id); + } updSetState(d.vpts.v, d.vdate.v, updQts, d.vseq.v); } break; @@ -1523,8 +1538,10 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { switch (update.type()) { case mtpc_updateNewMessage: { const MTPDupdateNewMessage &d(update.c_updateNewMessage()); - PeerId peer = App::histories().addToBack(d.vmessage); - history.peerMessagesUpdated(peer); + HistoryItem *item = App::histories().addToBack(d.vmessage); + if (item) { + history.peerMessagesUpdated(item->history()->peer->id); + } if (updPts < d.vpts.v) updPts = d.vpts.v; } break; @@ -1535,10 +1552,8 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { HistoryItem *msgRow = App::histItemById(msg); if (msgRow) { App::historyUnregItem(msgRow); - if (msgRow->id > 0) --msgRow->history()->offset; msgRow->id = d.vid.v; - if (msgRow->id > 0) ++msgRow->history()->offset; - if (App::historyRegItem(msgRow)) { + if (!App::historyRegItem(msgRow)) { msgUpdated(msgRow->history()->peer->id, msgRow); } else { msgRow->destroy(); @@ -1635,7 +1650,9 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { if (false && !d.vprevious.v && d.vuser_id.v != MTP::authedId() && d.vphoto.type() == mtpc_userProfilePhoto) { MTPPhoto photo(App::photoFromUserPhoto(MTP_int(user->id & 0xFFFFFFFF), d.vdate, d.vphoto)); HistoryMedia *media = new HistoryPhoto(photo.c_photo(), 100); - App::history(user->id)->addToBackService(clientMsgId(), date(d.vdate), lang(lng_action_user_photo).replace(qsl("{from}"), user->name), false, true, media); + if (App::history(user->id)->loadedAtBottom()) { + App::history(user->id)->addToBackService(clientMsgId(), date(d.vdate), lang(lng_action_user_photo).replace(qsl("{from}"), user->name), false, true, media); + } } if (App::main()) App::main()->peerUpdated(user); } @@ -1645,7 +1662,9 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { const MTPDupdateContactRegistered &d(update.c_updateContactRegistered()); UserData *user = App::userLoaded(d.vuser_id.v); if (user) { - App::history(user->id)->addToBackService(clientMsgId(), date(d.vdate), lang(lng_action_user_registered).replace(qsl("{from}"), user->name), false, true); + if (App::history(user->id)->loadedAtBottom()) { + App::history(user->id)->addToBackService(clientMsgId(), date(d.vdate), lang(lng_action_user_registered).replace(qsl("{from}"), user->name), false, true); + } } } break; diff --git a/Telegram/SourceFiles/mainwidget.h b/Telegram/SourceFiles/mainwidget.h index 491365a9c..0bf767186 100644 --- a/Telegram/SourceFiles/mainwidget.h +++ b/Telegram/SourceFiles/mainwidget.h @@ -134,6 +134,7 @@ public: PeerData *peerAfter(const PeerData *peer); PeerData *peer(); PeerData *activePeer(); + MsgId activeMsgId(); PeerData *profilePeer(); void showPeerProfile(const PeerData *peer, bool back = false); void showPeerBack(); @@ -193,6 +194,9 @@ public: void readServerHistory(History *history, bool force = true); + uint64 animActiveTime() const; + void stopAnimActive(); + ~MainWidget(); signals: @@ -201,6 +205,7 @@ signals: void peerNameChanged(PeerData *peer, const PeerData::Names &oldNames, const PeerData::NameFirstChars &oldChars); void peerPhotoChanged(PeerData *peer); void dialogRowReplaced(DialogRow *oldRow, DialogRow *newRow); + void historyItemReplaced(HistoryItem *oldItem, HistoryItem *newItem); void dialogToTop(const History::DialogLinks &links); void dialogsUpdated(); void historyItemDeleted(HistoryItem *item); @@ -227,7 +232,7 @@ public slots: void mainStateChanged(Qt::WindowState state); void updateOnlineDisplay(); - void showPeer(const PeerId &peer, bool back = false, bool force = false); + void showPeer(const PeerId &peer, MsgId msgId = 0, bool back = false, bool force = false); void onTopBarClick(); void onPeerShown(PeerData *peer); diff --git a/Telegram/SourceFiles/mtproto/generate.py b/Telegram/SourceFiles/mtproto/generate.py index 3cab29832..0f40d5f17 100644 --- a/Telegram/SourceFiles/mtproto/generate.py +++ b/Telegram/SourceFiles/mtproto/generate.py @@ -189,19 +189,13 @@ with open('scheme.tl') as f: funcsText += '\tmtpTypeId type() const {\n\t\treturn mtpc_' + name + ';\n\t}\n'; # type id - if (len(prmsList)): - funcsText += '\tvoid read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_' + name + ') {\n'; # read method - else: - funcsText += '\tvoid read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_' + name + ') {\n'; # read method + funcsText += '\tvoid read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_' + name + ') {\n'; # read method for k in prmsList: v = prms[k]; funcsText += '\t\tv' + k + '.read(from, end);\n'; funcsText += '\t}\n'; - if (len(prmsList)): - funcsText += '\tvoid write(mtpBuffer &to) const {\n'; # write method - else: - funcsText += '\tvoid write(mtpBuffer &/*to*/) const {\n'; # write method + funcsText += '\tvoid write(mtpBuffer &to) const {\n'; # write method for k in prmsList: v = prms[k]; funcsText += '\t\tv' + k + '.write(to);\n'; @@ -538,10 +532,7 @@ for restype in typesList: inlineMethods += '}\n'; typesText += '\tvoid write(mtpBuffer &to) const;\n'; # write method - if (len(writer)): - inlineMethods += 'inline void MTP' + restype + '::write(mtpBuffer &to) const {\n'; - else: - inlineMethods += 'inline void MTP' + restype + '::write(mtpBuffer &/*to*/) const {\n'; + inlineMethods += 'inline void MTP' + restype + '::write(mtpBuffer &to) const {\n'; if (withType): inlineMethods += '\tswitch (_type) {\n'; inlineMethods += writer; diff --git a/Telegram/SourceFiles/mtproto/mtpConnection.h b/Telegram/SourceFiles/mtproto/mtpConnection.h index 0714c1823..25fafbc7e 100644 --- a/Telegram/SourceFiles/mtproto/mtpConnection.h +++ b/Telegram/SourceFiles/mtproto/mtpConnection.h @@ -41,6 +41,7 @@ inline bool mtpRequestData::needAckByType(mtpTypeId type) { case mtpc_http_wait: case mtpc_bad_msg_notification: case mtpc_msgs_all_info: + case mtpc_msgs_state_info: case mtpc_msg_detailed_info: case mtpc_msg_new_detailed_info: return false; diff --git a/Telegram/SourceFiles/mtproto/mtpCoreTypes.h b/Telegram/SourceFiles/mtproto/mtpCoreTypes.h index c19477c7c..eb97e8bf3 100644 --- a/Telegram/SourceFiles/mtproto/mtpCoreTypes.h +++ b/Telegram/SourceFiles/mtproto/mtpCoreTypes.h @@ -328,6 +328,7 @@ enum { mtpc_invokeWithLayer12 = 0xdda60d3c, mtpc_invokeWithLayer13 = 0x427c8ea2, mtpc_invokeWithLayer14 = 0x2b9b08fa, + mtpc_invokeWithLayer15 = 0xb4418b64, // manually parsed mtpc_rpc_result = 0xf35c6d01, @@ -352,6 +353,7 @@ static const mtpTypeId mtpLayers[] = { mtpc_invokeWithLayer12, mtpc_invokeWithLayer13, mtpc_invokeWithLayer14, + mtpc_invokeWithLayer15, }, mtpLayerMax = sizeof(mtpLayers) / sizeof(mtpLayers[0]); template diff --git a/Telegram/SourceFiles/mtproto/mtpFileLoader.cpp b/Telegram/SourceFiles/mtproto/mtpFileLoader.cpp index f441bbd03..6406dcd56 100644 --- a/Telegram/SourceFiles/mtproto/mtpFileLoader.cpp +++ b/Telegram/SourceFiles/mtproto/mtpFileLoader.cpp @@ -167,7 +167,7 @@ void mtpFileLoader::partLoaded(int32 offset, const MTPupload_File &result) { } removeFromQueue(); App::wnd()->update(); - App::wnd()->psUpdateNotifies(); + App::wnd()->notifyUpdateAll(); } emit progress(this); } diff --git a/Telegram/SourceFiles/mtproto/mtpRPC.h b/Telegram/SourceFiles/mtproto/mtpRPC.h index 8fa3a8886..f27438b30 100644 --- a/Telegram/SourceFiles/mtproto/mtpRPC.h +++ b/Telegram/SourceFiles/mtproto/mtpRPC.h @@ -474,7 +474,7 @@ class RPCBindedDoneHandlerOwnedReq : public RPCOwnedDoneHandler { // done(b, res typedef TReturn (TReceiver::*CallbackType)(T, const TResponse &, mtpRequestId); public: - RPCBindedDoneHandlerOwnedReq(T b, TReceiver *receiver, CallbackType onDone) : RPCOwnedDoneHandler(receiver), _b(b), _onDone(onDone) { + RPCBindedDoneHandlerOwnedReq(T b, TReceiver *receiver, CallbackType onDone) : RPCOwnedDoneHandler(receiver), _onDone(onDone), _b(b) { } virtual void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const { if (_owner) (static_cast(_owner)->*_onDone)(_b, TResponse(from, end), requestId); diff --git a/Telegram/SourceFiles/mtproto/mtpScheme.h b/Telegram/SourceFiles/mtproto/mtpScheme.h index 15a4d4bef..9ffa73e61 100644 --- a/Telegram/SourceFiles/mtproto/mtpScheme.h +++ b/Telegram/SourceFiles/mtproto/mtpScheme.h @@ -213,6 +213,7 @@ enum { mtpc_inputMessagesFilterVideo = 0x9fc00e65, mtpc_inputMessagesFilterPhotoVideo = 0x56e9f0e4, mtpc_inputMessagesFilterDocument = 0x9eddf188, + mtpc_inputMessagesFilterAudio = 0xcfc87522, mtpc_updateNewMessage = 0x13abdb3, mtpc_updateMessageID = 0x4e90bfd6, mtpc_updateReadMessages = 0xc6649e31, @@ -4969,6 +4970,7 @@ private: friend MTPmessagesFilter MTP_inputMessagesFilterVideo(); friend MTPmessagesFilter MTP_inputMessagesFilterPhotoVideo(); friend MTPmessagesFilter MTP_inputMessagesFilterDocument(); + friend MTPmessagesFilter MTP_inputMessagesFilterAudio(); mtpTypeId _type; }; @@ -9829,7 +9831,7 @@ public: mtpTypeId type() const { return mtpc_req_pq; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_req_pq) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_req_pq) { vnonce.read(from, end); } void write(mtpBuffer &to) const { @@ -9873,7 +9875,7 @@ public: mtpTypeId type() const { return mtpc_req_DH_params; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_req_DH_params) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_req_DH_params) { vnonce.read(from, end); vserver_nonce.read(from, end); vp.read(from, end); @@ -9924,7 +9926,7 @@ public: mtpTypeId type() const { return mtpc_set_client_DH_params; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_set_client_DH_params) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_set_client_DH_params) { vnonce.read(from, end); vserver_nonce.read(from, end); vencrypted_data.read(from, end); @@ -9967,7 +9969,7 @@ public: mtpTypeId type() const { return mtpc_rpc_drop_answer; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_rpc_drop_answer) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_rpc_drop_answer) { vreq_msg_id.read(from, end); } void write(mtpBuffer &to) const { @@ -10006,7 +10008,7 @@ public: mtpTypeId type() const { return mtpc_get_future_salts; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_get_future_salts) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_get_future_salts) { vnum.read(from, end); } void write(mtpBuffer &to) const { @@ -10045,7 +10047,7 @@ public: mtpTypeId type() const { return mtpc_ping; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_ping) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_ping) { vping_id.read(from, end); } void write(mtpBuffer &to) const { @@ -10085,7 +10087,7 @@ public: mtpTypeId type() const { return mtpc_ping_delay_disconnect; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_ping_delay_disconnect) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_ping_delay_disconnect) { vping_id.read(from, end); vdisconnect_delay.read(from, end); } @@ -10126,7 +10128,7 @@ public: mtpTypeId type() const { return mtpc_destroy_session; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_destroy_session) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_destroy_session) { vsession_id.read(from, end); } void write(mtpBuffer &to) const { @@ -10169,7 +10171,7 @@ public: mtpTypeId type() const { return mtpc_register_saveDeveloperInfo; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_register_saveDeveloperInfo) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_register_saveDeveloperInfo) { vname.read(from, end); vemail.read(from, end); vphone_number.read(from, end); @@ -10218,7 +10220,7 @@ public: mtpTypeId type() const { return mtpc_invokeAfterMsg; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_invokeAfterMsg) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_invokeAfterMsg) { vmsg_id.read(from, end); vquery.read(from, end); } @@ -10260,7 +10262,7 @@ public: mtpTypeId type() const { return mtpc_invokeAfterMsgs; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_invokeAfterMsgs) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_invokeAfterMsgs) { vmsg_ids.read(from, end); vquery.read(from, end); } @@ -10300,7 +10302,7 @@ public: mtpTypeId type() const { return mtpc_auth_checkPhone; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_checkPhone) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_checkPhone) { vphone_number.read(from, end); } void write(mtpBuffer &to) const { @@ -10343,7 +10345,7 @@ public: mtpTypeId type() const { return mtpc_auth_sendCode; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_sendCode) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_sendCode) { vphone_number.read(from, end); vsms_type.read(from, end); vapi_id.read(from, end); @@ -10391,7 +10393,7 @@ public: mtpTypeId type() const { return mtpc_auth_sendCall; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_sendCall) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_sendCall) { vphone_number.read(from, end); vphone_code_hash.read(from, end); } @@ -10436,7 +10438,7 @@ public: mtpTypeId type() const { return mtpc_auth_signUp; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_signUp) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_signUp) { vphone_number.read(from, end); vphone_code_hash.read(from, end); vphone_code.read(from, end); @@ -10485,7 +10487,7 @@ public: mtpTypeId type() const { return mtpc_auth_signIn; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_signIn) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_signIn) { vphone_number.read(from, end); vphone_code_hash.read(from, end); vphone_code.read(from, end); @@ -10524,9 +10526,9 @@ public: mtpTypeId type() const { return mtpc_auth_logOut; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_auth_logOut) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_logOut) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPBool ResponseType; @@ -10555,9 +10557,9 @@ public: mtpTypeId type() const { return mtpc_auth_resetAuthorizations; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_auth_resetAuthorizations) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_resetAuthorizations) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPBool ResponseType; @@ -10591,7 +10593,7 @@ public: mtpTypeId type() const { return mtpc_auth_sendInvites; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_sendInvites) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_sendInvites) { vphone_numbers.read(from, end); vmessage.read(from, end); } @@ -10632,7 +10634,7 @@ public: mtpTypeId type() const { return mtpc_auth_exportAuthorization; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_exportAuthorization) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_exportAuthorization) { vdc_id.read(from, end); } void write(mtpBuffer &to) const { @@ -10672,7 +10674,7 @@ public: mtpTypeId type() const { return mtpc_auth_importAuthorization; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_auth_importAuthorization) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_importAuthorization) { vid.read(from, end); vbytes.read(from, end); } @@ -10719,7 +10721,7 @@ public: mtpTypeId type() const { return mtpc_account_registerDevice; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_account_registerDevice) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_registerDevice) { vtoken_type.read(from, end); vtoken.read(from, end); vdevice_model.read(from, end); @@ -10771,7 +10773,7 @@ public: mtpTypeId type() const { return mtpc_account_unregisterDevice; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_account_unregisterDevice) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_unregisterDevice) { vtoken_type.read(from, end); vtoken.read(from, end); } @@ -10813,7 +10815,7 @@ public: mtpTypeId type() const { return mtpc_account_updateNotifySettings; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_account_updateNotifySettings) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_updateNotifySettings) { vpeer.read(from, end); vsettings.read(from, end); } @@ -10854,7 +10856,7 @@ public: mtpTypeId type() const { return mtpc_account_getNotifySettings; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_account_getNotifySettings) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_getNotifySettings) { vpeer.read(from, end); } void write(mtpBuffer &to) const { @@ -10889,9 +10891,9 @@ public: mtpTypeId type() const { return mtpc_account_resetNotifySettings; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_account_resetNotifySettings) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_resetNotifySettings) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPBool ResponseType; @@ -10925,7 +10927,7 @@ public: mtpTypeId type() const { return mtpc_account_updateProfile; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_account_updateProfile) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_updateProfile) { vfirst_name.read(from, end); vlast_name.read(from, end); } @@ -10966,7 +10968,7 @@ public: mtpTypeId type() const { return mtpc_account_updateStatus; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_account_updateStatus) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_updateStatus) { voffline.read(from, end); } void write(mtpBuffer &to) const { @@ -11001,9 +11003,9 @@ public: mtpTypeId type() const { return mtpc_account_getWallPapers; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_account_getWallPapers) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_getWallPapers) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPVector ResponseType; @@ -11036,7 +11038,7 @@ public: mtpTypeId type() const { return mtpc_users_getUsers; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_users_getUsers) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_users_getUsers) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11075,7 +11077,7 @@ public: mtpTypeId type() const { return mtpc_users_getFullUser; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_users_getFullUser) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_users_getFullUser) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11110,9 +11112,9 @@ public: mtpTypeId type() const { return mtpc_contacts_getStatuses; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_contacts_getStatuses) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_getStatuses) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPVector ResponseType; @@ -11145,7 +11147,7 @@ public: mtpTypeId type() const { return mtpc_contacts_getContacts; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_getContacts) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_getContacts) { vhash.read(from, end); } void write(mtpBuffer &to) const { @@ -11185,7 +11187,7 @@ public: mtpTypeId type() const { return mtpc_contacts_importContacts; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_importContacts) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_importContacts) { vcontacts.read(from, end); vreplace.read(from, end); } @@ -11227,7 +11229,7 @@ public: mtpTypeId type() const { return mtpc_contacts_search; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_search) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_search) { vq.read(from, end); vlimit.read(from, end); } @@ -11268,7 +11270,7 @@ public: mtpTypeId type() const { return mtpc_contacts_getSuggested; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_getSuggested) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_getSuggested) { vlimit.read(from, end); } void write(mtpBuffer &to) const { @@ -11307,7 +11309,7 @@ public: mtpTypeId type() const { return mtpc_contacts_deleteContact; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_deleteContact) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_deleteContact) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11346,7 +11348,7 @@ public: mtpTypeId type() const { return mtpc_contacts_deleteContacts; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_deleteContacts) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_deleteContacts) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11385,7 +11387,7 @@ public: mtpTypeId type() const { return mtpc_contacts_block; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_block) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_block) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11424,7 +11426,7 @@ public: mtpTypeId type() const { return mtpc_contacts_unblock; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_unblock) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_unblock) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11464,7 +11466,7 @@ public: mtpTypeId type() const { return mtpc_contacts_getBlocked; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_contacts_getBlocked) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_getBlocked) { voffset.read(from, end); vlimit.read(from, end); } @@ -11505,7 +11507,7 @@ public: mtpTypeId type() const { return mtpc_messages_getMessages; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_getMessages) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_getMessages) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11546,7 +11548,7 @@ public: mtpTypeId type() const { return mtpc_messages_getDialogs; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_getDialogs) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_getDialogs) { voffset.read(from, end); vmax_id.read(from, end); vlimit.read(from, end); @@ -11592,7 +11594,7 @@ public: mtpTypeId type() const { return mtpc_messages_getHistory; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_getHistory) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_getHistory) { vpeer.read(from, end); voffset.read(from, end); vmax_id.read(from, end); @@ -11644,7 +11646,7 @@ public: mtpTypeId type() const { return mtpc_messages_search; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_search) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_search) { vpeer.read(from, end); vq.read(from, end); vfilter.read(from, end); @@ -11699,7 +11701,7 @@ public: mtpTypeId type() const { return mtpc_messages_readHistory; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_readHistory) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_readHistory) { vpeer.read(from, end); vmax_id.read(from, end); voffset.read(from, end); @@ -11743,7 +11745,7 @@ public: mtpTypeId type() const { return mtpc_messages_deleteHistory; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_deleteHistory) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_deleteHistory) { vpeer.read(from, end); voffset.read(from, end); } @@ -11784,7 +11786,7 @@ public: mtpTypeId type() const { return mtpc_messages_deleteMessages; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_deleteMessages) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_deleteMessages) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11823,7 +11825,7 @@ public: mtpTypeId type() const { return mtpc_messages_restoreMessages; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_restoreMessages) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_restoreMessages) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -11862,7 +11864,7 @@ public: mtpTypeId type() const { return mtpc_messages_receivedMessages; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_receivedMessages) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_receivedMessages) { vmax_id.read(from, end); } void write(mtpBuffer &to) const { @@ -11902,7 +11904,7 @@ public: mtpTypeId type() const { return mtpc_messages_setTyping; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_setTyping) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_setTyping) { vpeer.read(from, end); vtyping.read(from, end); } @@ -11945,7 +11947,7 @@ public: mtpTypeId type() const { return mtpc_messages_sendMessage; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_sendMessage) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_sendMessage) { vpeer.read(from, end); vmessage.read(from, end); vrandom_id.read(from, end); @@ -11990,7 +11992,7 @@ public: mtpTypeId type() const { return mtpc_messages_sendMedia; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_sendMedia) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_sendMedia) { vpeer.read(from, end); vmedia.read(from, end); vrandom_id.read(from, end); @@ -12034,7 +12036,7 @@ public: mtpTypeId type() const { return mtpc_messages_forwardMessages; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_forwardMessages) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_forwardMessages) { vpeer.read(from, end); vid.read(from, end); } @@ -12075,7 +12077,7 @@ public: mtpTypeId type() const { return mtpc_messages_getChats; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_getChats) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_getChats) { vid.read(from, end); } void write(mtpBuffer &to) const { @@ -12114,7 +12116,7 @@ public: mtpTypeId type() const { return mtpc_messages_getFullChat; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_getFullChat) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_getFullChat) { vchat_id.read(from, end); } void write(mtpBuffer &to) const { @@ -12154,7 +12156,7 @@ public: mtpTypeId type() const { return mtpc_messages_editChatTitle; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_editChatTitle) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_editChatTitle) { vchat_id.read(from, end); vtitle.read(from, end); } @@ -12196,7 +12198,7 @@ public: mtpTypeId type() const { return mtpc_messages_editChatPhoto; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_editChatPhoto) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_editChatPhoto) { vchat_id.read(from, end); vphoto.read(from, end); } @@ -12239,7 +12241,7 @@ public: mtpTypeId type() const { return mtpc_messages_addChatUser; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_addChatUser) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_addChatUser) { vchat_id.read(from, end); vuser_id.read(from, end); vfwd_limit.read(from, end); @@ -12283,7 +12285,7 @@ public: mtpTypeId type() const { return mtpc_messages_deleteChatUser; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_deleteChatUser) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_deleteChatUser) { vchat_id.read(from, end); vuser_id.read(from, end); } @@ -12325,7 +12327,7 @@ public: mtpTypeId type() const { return mtpc_messages_createChat; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_createChat) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_createChat) { vusers.read(from, end); vtitle.read(from, end); } @@ -12362,9 +12364,9 @@ public: mtpTypeId type() const { return mtpc_updates_getState; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_updates_getState) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_updates_getState) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPupdates_State ResponseType; @@ -12399,7 +12401,7 @@ public: mtpTypeId type() const { return mtpc_updates_getDifference; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_updates_getDifference) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_updates_getDifference) { vpts.read(from, end); vdate.read(from, end); vqts.read(from, end); @@ -12443,7 +12445,7 @@ public: mtpTypeId type() const { return mtpc_photos_updateProfilePhoto; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_photos_updateProfilePhoto) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_photos_updateProfilePhoto) { vid.read(from, end); vcrop.read(from, end); } @@ -12487,7 +12489,7 @@ public: mtpTypeId type() const { return mtpc_photos_uploadProfilePhoto; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_photos_uploadProfilePhoto) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_photos_uploadProfilePhoto) { vfile.read(from, end); vcaption.read(from, end); vgeo_point.read(from, end); @@ -12534,7 +12536,7 @@ public: mtpTypeId type() const { return mtpc_upload_saveFilePart; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_upload_saveFilePart) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_upload_saveFilePart) { vfile_id.read(from, end); vfile_part.read(from, end); vbytes.read(from, end); @@ -12579,7 +12581,7 @@ public: mtpTypeId type() const { return mtpc_upload_getFile; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_upload_getFile) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_upload_getFile) { vlocation.read(from, end); voffset.read(from, end); vlimit.read(from, end); @@ -12618,9 +12620,9 @@ public: mtpTypeId type() const { return mtpc_help_getConfig; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_help_getConfig) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_help_getConfig) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPConfig ResponseType; @@ -12649,9 +12651,9 @@ public: mtpTypeId type() const { return mtpc_help_getNearestDc; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_help_getNearestDc) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_help_getNearestDc) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPNearestDc ResponseType; @@ -12687,7 +12689,7 @@ public: mtpTypeId type() const { return mtpc_help_getAppUpdate; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_help_getAppUpdate) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_help_getAppUpdate) { vdevice_model.read(from, end); vsystem_version.read(from, end); vapp_version.read(from, end); @@ -12732,7 +12734,7 @@ public: mtpTypeId type() const { return mtpc_help_saveAppLog; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_help_saveAppLog) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_help_saveAppLog) { vevents.read(from, end); } void write(mtpBuffer &to) const { @@ -12771,7 +12773,7 @@ public: mtpTypeId type() const { return mtpc_help_getInviteText; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_help_getInviteText) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_help_getInviteText) { vlang_code.read(from, end); } void write(mtpBuffer &to) const { @@ -12813,7 +12815,7 @@ public: mtpTypeId type() const { return mtpc_photos_getUserPhotos; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_photos_getUserPhotos) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_photos_getUserPhotos) { vuser_id.read(from, end); voffset.read(from, end); vmax_id.read(from, end); @@ -12860,7 +12862,7 @@ public: mtpTypeId type() const { return mtpc_messages_forwardMessage; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_forwardMessage) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_forwardMessage) { vpeer.read(from, end); vid.read(from, end); vrandom_id.read(from, end); @@ -12905,7 +12907,7 @@ public: mtpTypeId type() const { return mtpc_messages_sendBroadcast; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_sendBroadcast) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_sendBroadcast) { vcontacts.read(from, end); vmessage.read(from, end); vmedia.read(from, end); @@ -12950,7 +12952,7 @@ public: mtpTypeId type() const { return mtpc_geochats_getLocated; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_getLocated) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_getLocated) { vgeo_point.read(from, end); vradius.read(from, end); vlimit.read(from, end); @@ -12994,7 +12996,7 @@ public: mtpTypeId type() const { return mtpc_geochats_getRecents; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_getRecents) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_getRecents) { voffset.read(from, end); vlimit.read(from, end); } @@ -13035,7 +13037,7 @@ public: mtpTypeId type() const { return mtpc_geochats_checkin; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_checkin) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_checkin) { vpeer.read(from, end); } void write(mtpBuffer &to) const { @@ -13074,7 +13076,7 @@ public: mtpTypeId type() const { return mtpc_geochats_getFullChat; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_getFullChat) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_getFullChat) { vpeer.read(from, end); } void write(mtpBuffer &to) const { @@ -13115,7 +13117,7 @@ public: mtpTypeId type() const { return mtpc_geochats_editChatTitle; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_editChatTitle) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_editChatTitle) { vpeer.read(from, end); vtitle.read(from, end); vaddress.read(from, end); @@ -13159,7 +13161,7 @@ public: mtpTypeId type() const { return mtpc_geochats_editChatPhoto; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_editChatPhoto) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_editChatPhoto) { vpeer.read(from, end); vphoto.read(from, end); } @@ -13207,7 +13209,7 @@ public: mtpTypeId type() const { return mtpc_geochats_search; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_search) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_search) { vpeer.read(from, end); vq.read(from, end); vfilter.read(from, end); @@ -13263,7 +13265,7 @@ public: mtpTypeId type() const { return mtpc_geochats_getHistory; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_getHistory) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_getHistory) { vpeer.read(from, end); voffset.read(from, end); vmax_id.read(from, end); @@ -13309,7 +13311,7 @@ public: mtpTypeId type() const { return mtpc_geochats_setTyping; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_setTyping) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_setTyping) { vpeer.read(from, end); vtyping.read(from, end); } @@ -13352,7 +13354,7 @@ public: mtpTypeId type() const { return mtpc_geochats_sendMessage; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_sendMessage) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_sendMessage) { vpeer.read(from, end); vmessage.read(from, end); vrandom_id.read(from, end); @@ -13397,7 +13399,7 @@ public: mtpTypeId type() const { return mtpc_geochats_sendMedia; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_sendMedia) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_sendMedia) { vpeer.read(from, end); vmedia.read(from, end); vrandom_id.read(from, end); @@ -13443,7 +13445,7 @@ public: mtpTypeId type() const { return mtpc_geochats_createGeoChat; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_geochats_createGeoChat) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_geochats_createGeoChat) { vtitle.read(from, end); vgeo_point.read(from, end); vaddress.read(from, end); @@ -13489,7 +13491,7 @@ public: mtpTypeId type() const { return mtpc_messages_getDhConfig; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_getDhConfig) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_getDhConfig) { vversion.read(from, end); vrandom_length.read(from, end); } @@ -13532,7 +13534,7 @@ public: mtpTypeId type() const { return mtpc_messages_requestEncryption; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_requestEncryption) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_requestEncryption) { vuser_id.read(from, end); vrandom_id.read(from, end); vg_a.read(from, end); @@ -13577,7 +13579,7 @@ public: mtpTypeId type() const { return mtpc_messages_acceptEncryption; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_acceptEncryption) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_acceptEncryption) { vpeer.read(from, end); vg_b.read(from, end); vkey_fingerprint.read(from, end); @@ -13620,7 +13622,7 @@ public: mtpTypeId type() const { return mtpc_messages_discardEncryption; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_discardEncryption) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_discardEncryption) { vchat_id.read(from, end); } void write(mtpBuffer &to) const { @@ -13660,7 +13662,7 @@ public: mtpTypeId type() const { return mtpc_messages_setEncryptedTyping; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_setEncryptedTyping) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_setEncryptedTyping) { vpeer.read(from, end); vtyping.read(from, end); } @@ -13702,7 +13704,7 @@ public: mtpTypeId type() const { return mtpc_messages_readEncryptedHistory; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_readEncryptedHistory) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_readEncryptedHistory) { vpeer.read(from, end); vmax_date.read(from, end); } @@ -13745,7 +13747,7 @@ public: mtpTypeId type() const { return mtpc_messages_sendEncrypted; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_sendEncrypted) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_sendEncrypted) { vpeer.read(from, end); vrandom_id.read(from, end); vdata.read(from, end); @@ -13791,7 +13793,7 @@ public: mtpTypeId type() const { return mtpc_messages_sendEncryptedFile; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_sendEncryptedFile) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_sendEncryptedFile) { vpeer.read(from, end); vrandom_id.read(from, end); vdata.read(from, end); @@ -13838,7 +13840,7 @@ public: mtpTypeId type() const { return mtpc_messages_sendEncryptedService; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_sendEncryptedService) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_sendEncryptedService) { vpeer.read(from, end); vrandom_id.read(from, end); vdata.read(from, end); @@ -13881,7 +13883,7 @@ public: mtpTypeId type() const { return mtpc_messages_receivedQueue; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_messages_receivedQueue) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_receivedQueue) { vmax_qts.read(from, end); } void write(mtpBuffer &to) const { @@ -13923,7 +13925,7 @@ public: mtpTypeId type() const { return mtpc_upload_saveBigFilePart; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_upload_saveBigFilePart) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_upload_saveBigFilePart) { vfile_id.read(from, end); vfile_part.read(from, end); vfile_total_parts.read(from, end); @@ -13974,7 +13976,7 @@ public: mtpTypeId type() const { return mtpc_initConnection; } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId /*cons*/ = mtpc_initConnection) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_initConnection) { vapi_id.read(from, end); vdevice_model.read(from, end); vsystem_version.read(from, end); @@ -14018,9 +14020,9 @@ public: mtpTypeId type() const { return mtpc_help_getSupport; } - void read(const mtpPrime *&/*from*/, const mtpPrime */*end*/, mtpTypeId /*cons*/ = mtpc_help_getSupport) { + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_help_getSupport) { } - void write(mtpBuffer &/*to*/) const { + void write(mtpBuffer &to) const { } typedef MTPhelp_Support ResponseType; @@ -16027,7 +16029,7 @@ inline void MTPstorage_fileType::read(const mtpPrime *&from, const mtpPrime *end default: throw mtpErrorUnexpected(cons, "MTPstorage_fileType"); } } -inline void MTPstorage_fileType::write(mtpBuffer &/*to*/) const { +inline void MTPstorage_fileType::write(mtpBuffer &to) const { switch (_type) { } } @@ -17807,7 +17809,7 @@ inline void MTPinputPeerNotifyEvents::read(const mtpPrime *&from, const mtpPrime default: throw mtpErrorUnexpected(cons, "MTPinputPeerNotifyEvents"); } } -inline void MTPinputPeerNotifyEvents::write(mtpBuffer &/*to*/) const { +inline void MTPinputPeerNotifyEvents::write(mtpBuffer &to) const { switch (_type) { } } @@ -17872,7 +17874,7 @@ inline void MTPpeerNotifyEvents::read(const mtpPrime *&from, const mtpPrime *end default: throw mtpErrorUnexpected(cons, "MTPpeerNotifyEvents"); } } -inline void MTPpeerNotifyEvents::write(mtpBuffer &/*to*/) const { +inline void MTPpeerNotifyEvents::write(mtpBuffer &to) const { switch (_type) { } } @@ -19184,10 +19186,11 @@ inline void MTPmessagesFilter::read(const mtpPrime *&from, const mtpPrime *end, case mtpc_inputMessagesFilterVideo: _type = cons; break; case mtpc_inputMessagesFilterPhotoVideo: _type = cons; break; case mtpc_inputMessagesFilterDocument: _type = cons; break; + case mtpc_inputMessagesFilterAudio: _type = cons; break; default: throw mtpErrorUnexpected(cons, "MTPmessagesFilter"); } } -inline void MTPmessagesFilter::write(mtpBuffer &/*to*/) const { +inline void MTPmessagesFilter::write(mtpBuffer &to) const { switch (_type) { } } @@ -19198,6 +19201,7 @@ inline MTPmessagesFilter::MTPmessagesFilter(mtpTypeId type) : _type(type) { case mtpc_inputMessagesFilterVideo: break; case mtpc_inputMessagesFilterPhotoVideo: break; case mtpc_inputMessagesFilterDocument: break; + case mtpc_inputMessagesFilterAudio: break; default: throw mtpErrorBadTypeId(type, "MTPmessagesFilter"); } } @@ -19216,6 +19220,9 @@ inline MTPmessagesFilter MTP_inputMessagesFilterPhotoVideo() { inline MTPmessagesFilter MTP_inputMessagesFilterDocument() { return MTPmessagesFilter(mtpc_inputMessagesFilterDocument); } +inline MTPmessagesFilter MTP_inputMessagesFilterAudio() { + return MTPmessagesFilter(mtpc_inputMessagesFilterAudio); +} inline uint32 MTPupdate::size() const { switch (_type) { @@ -22007,23 +22014,6 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP QString result; switch (mtpTypeId(cons)) { - case mtpc_userProfilePhotoEmpty: - result = " "; - return "{ userProfilePhotoEmpty" + result + "}"; - - case mtpc_userProfilePhoto: - result += "\n" + add; - result += " photo_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " photo_small: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " photo_big: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ userProfilePhoto" + result + "}"; - - case mtpc_rpc_error: - result += "\n" + add; - result += " error_code: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " error_message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ rpc_error" + result + "}"; - case mtpc_dh_gen_ok: result += "\n" + add; result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; @@ -22045,171 +22035,36 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " new_nonce_hash3: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; return "{ dh_gen_fail" + result + "}"; - case mtpc_inputPeerEmpty: - result = " "; - return "{ inputPeerEmpty" + result + "}"; - - case mtpc_inputPeerSelf: - result = " "; - return "{ inputPeerSelf" + result + "}"; - - case mtpc_inputPeerContact: - result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ inputPeerContact" + result + "}"; - - case mtpc_inputPeerForeign: - result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputPeerForeign" + result + "}"; - - case mtpc_inputPeerChat: - result += "\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ inputPeerChat" + result + "}"; - - case mtpc_photoEmpty: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ photoEmpty" + result + "}"; - - case mtpc_photo: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " caption: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " geo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " sizes: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ photo" + result + "}"; - - case mtpc_p_q_inner_data: - result += "\n" + add; - result += " pq: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " p: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " new_nonce: " + mtpTextSerialize(from, end, mtpc_int256, level + 1) + ",\n" + add; - return "{ p_q_inner_data" + result + "}"; - - case mtpc_client_DH_inner_data: - result += "\n" + add; - result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " retry_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " g_b: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ client_DH_inner_data" + result + "}"; - - case mtpc_contacts_link: - result += "\n" + add; - result += " my_link: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " foreign_link: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " user: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_link" + result + "}"; - - case mtpc_inputPhotoCropAuto: - result = " "; - return "{ inputPhotoCropAuto" + result + "}"; - - case mtpc_inputPhotoCrop: - result += "\n" + add; - result += " crop_left: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - result += " crop_top: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - result += " crop_width: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - return "{ inputPhotoCrop" + result + "}"; - - case mtpc_inputFile: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " md5_checksum: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ inputFile" + result + "}"; - - case mtpc_inputFileBig: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ inputFileBig" + result + "}"; - - case mtpc_messageActionEmpty: - result = " "; - return "{ messageActionEmpty" + result + "}"; - - case mtpc_messageActionChatCreate: - result += "\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; - return "{ messageActionChatCreate" + result + "}"; - - case mtpc_messageActionChatEditTitle: - result += "\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ messageActionChatEditTitle" + result + "}"; - - case mtpc_messageActionChatEditPhoto: - result += "\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messageActionChatEditPhoto" + result + "}"; - - case mtpc_messageActionChatDeletePhoto: - result = " "; - return "{ messageActionChatDeletePhoto" + result + "}"; - - case mtpc_messageActionChatAddUser: - result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messageActionChatAddUser" + result + "}"; - - case mtpc_messageActionChatDeleteUser: - result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messageActionChatDeleteUser" + result + "}"; - - case mtpc_messageActionGeoChatCreate: - result += "\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ messageActionGeoChatCreate" + result + "}"; - - case mtpc_messageActionGeoChatCheckin: - result = " "; - return "{ messageActionGeoChatCheckin" + result + "}"; - - case mtpc_inputMessagesFilterEmpty: - result = " "; - return "{ inputMessagesFilterEmpty" + result + "}"; - - case mtpc_inputMessagesFilterPhotos: - result = " "; - return "{ inputMessagesFilterPhotos" + result + "}"; - - case mtpc_inputMessagesFilterVideo: - result = " "; - return "{ inputMessagesFilterVideo" + result + "}"; - - case mtpc_inputMessagesFilterPhotoVideo: - result = " "; - return "{ inputMessagesFilterPhotoVideo" + result + "}"; - - case mtpc_inputMessagesFilterDocument: - result = " "; - return "{ inputMessagesFilterDocument" + result + "}"; - case mtpc_help_support: result += "\n" + add; result += " phone_number: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; result += " user: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; return "{ help_support" + result + "}"; - case mtpc_contactFound: + case mtpc_audioEmpty: result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ audioEmpty" + result + "}"; + + case mtpc_audio: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ contactFound" + result + "}"; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " duration: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " mime_type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " size: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ audio" + result + "}"; + + case mtpc_auth_sentCode: + result += "\n" + add; + result += " phone_registered: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " phone_code_hash: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " send_call_timeout: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " is_password: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ auth_sentCode" + result + "}"; case mtpc_future_salts: result += "\n" + add; @@ -22218,99 +22073,42 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " salts: " + mtpTextSerialize(from, end, mtpc_vector, level + 1, mtpc_future_salt) + ",\n" + add; return "{ future_salts" + result + "}"; - case mtpc_inputPhotoEmpty: - result = " "; - return "{ inputPhotoEmpty" + result + "}"; + case mtpc_contactSuggested: + result += "\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " mutual_contacts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ contactSuggested" + result + "}"; - case mtpc_inputPhoto: + case mtpc_inputFileLocation: + result += "\n" + add; + result += " volume_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " local_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " secret: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputFileLocation" + result + "}"; + + case mtpc_inputVideoFileLocation: result += "\n" + add; result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputPhoto" + result + "}"; + return "{ inputVideoFileLocation" + result + "}"; - case mtpc_chatParticipant: + case mtpc_inputEncryptedFileLocation: result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " inviter_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ chatParticipant" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputEncryptedFileLocation" + result + "}"; - case mtpc_auth_exportedAuthorization: + case mtpc_inputAudioFileLocation: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - return "{ auth_exportedAuthorization" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputAudioFileLocation" + result + "}"; - case mtpc_contactStatus: + case mtpc_inputDocumentFileLocation: result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " expires: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ contactStatus" + result + "}"; - - case mtpc_new_session_created: - result += "\n" + add; - result += " first_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " unique_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " server_salt: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ new_session_created" + result + "}"; - - case mtpc_geochats_located: - result += "\n" + add; - result += " results: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ geochats_located" + result + "}"; - - case mtpc_updatesTooLong: - result = " "; - return "{ updatesTooLong" + result + "}"; - - case mtpc_updateShortMessage: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " from_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updateShortMessage" + result + "}"; - - case mtpc_updateShortChatMessage: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " from_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updateShortChatMessage" + result + "}"; - - case mtpc_updateShort: - result += "\n" + add; - result += " update: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updateShort" + result + "}"; - - case mtpc_updatesCombined: - result += "\n" + add; - result += " updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq_start: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updatesCombined" + result + "}"; - - case mtpc_updates: - result += "\n" + add; - result += " updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updates" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputDocumentFileLocation" + result + "}"; case mtpc_future_salt: result += "\n" + add; @@ -22319,23 +22117,34 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " salt: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; return "{ future_salt" + result + "}"; - case mtpc_server_DH_inner_data: + case mtpc_messages_dhConfigNotModified: result += "\n" + add; - result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " g: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " dh_prime: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " g_a: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " server_time: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ server_DH_inner_data" + result + "}"; + result += " random: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + return "{ messages_dhConfigNotModified" + result + "}"; - case mtpc_resPQ: + case mtpc_messages_dhConfig: result += "\n" + add; - result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " pq: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " server_public_key_fingerprints: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; - return "{ resPQ" + result + "}"; + result += " g: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " p: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " random: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + return "{ messages_dhConfig" + result + "}"; + + case mtpc_inputChatPhotoEmpty: + result = " "; + return "{ inputChatPhotoEmpty" + result + "}"; + + case mtpc_inputChatUploadedPhoto: + result += "\n" + add; + result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ inputChatUploadedPhoto" + result + "}"; + + case mtpc_inputChatPhoto: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ inputChatPhoto" + result + "}"; case mtpc_upload_file: result += "\n" + add; @@ -22344,6 +22153,42 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; return "{ upload_file" + result + "}"; + case mtpc_photos_photo: + result += "\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ photos_photo" + result + "}"; + + case mtpc_inputPeerNotifyEventsEmpty: + result = " "; + return "{ inputPeerNotifyEventsEmpty" + result + "}"; + + case mtpc_inputPeerNotifyEventsAll: + result = " "; + return "{ inputPeerNotifyEventsAll" + result + "}"; + + case mtpc_inputAppEvent: + result += "\n" + add; + result += " time: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " peer: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " data: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ inputAppEvent" + result + "}"; + + case mtpc_updates_state: + result += "\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " qts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " unread_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updates_state" + result + "}"; + + case mtpc_msgs_state_req: + result += "\n" + add; + result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; + return "{ msgs_state_req" + result + "}"; + case mtpc_inputMediaEmpty: result = " "; return "{ inputMediaEmpty" + result + "}"; @@ -22426,6 +22271,200 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; return "{ inputMediaDocument" + result + "}"; + case mtpc_userProfilePhotoEmpty: + result = " "; + return "{ userProfilePhotoEmpty" + result + "}"; + + case mtpc_userProfilePhoto: + result += "\n" + add; + result += " photo_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " photo_small: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " photo_big: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ userProfilePhoto" + result + "}"; + + case mtpc_decryptedMessageLayer: + result += "\n" + add; + result += " layer: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ decryptedMessageLayer" + result + "}"; + + case mtpc_contacts_foreignLinkUnknown: + result = " "; + return "{ contacts_foreignLinkUnknown" + result + "}"; + + case mtpc_contacts_foreignLinkRequested: + result += "\n" + add; + result += " has_phone: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_foreignLinkRequested" + result + "}"; + + case mtpc_contacts_foreignLinkMutual: + result = " "; + return "{ contacts_foreignLinkMutual" + result + "}"; + + case mtpc_chatLocated: + result += "\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " distance: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ chatLocated" + result + "}"; + + case mtpc_dcOption: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " hostname: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " ip_address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " port: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ dcOption" + result + "}"; + + case mtpc_geoPointEmpty: + result = " "; + return "{ geoPointEmpty" + result + "}"; + + case mtpc_geoPoint: + result += "\n" + add; + result += " long: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + result += " lat: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + return "{ geoPoint" + result + "}"; + + case mtpc_contacts_myLinkEmpty: + result = " "; + return "{ contacts_myLinkEmpty" + result + "}"; + + case mtpc_contacts_myLinkRequested: + result += "\n" + add; + result += " contact: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_myLinkRequested" + result + "}"; + + case mtpc_contacts_myLinkContact: + result = " "; + return "{ contacts_myLinkContact" + result + "}"; + + case mtpc_inputNotifyPeer: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ inputNotifyPeer" + result + "}"; + + case mtpc_inputNotifyUsers: + result = " "; + return "{ inputNotifyUsers" + result + "}"; + + case mtpc_inputNotifyChats: + result = " "; + return "{ inputNotifyChats" + result + "}"; + + case mtpc_inputNotifyAll: + result = " "; + return "{ inputNotifyAll" + result + "}"; + + case mtpc_inputNotifyGeoChatPeer: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ inputNotifyGeoChatPeer" + result + "}"; + + case mtpc_userEmpty: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ userEmpty" + result + "}"; + + case mtpc_userSelf: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " inactive: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ userSelf" + result + "}"; + + case mtpc_userContact: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ userContact" + result + "}"; + + case mtpc_userRequest: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ userRequest" + result + "}"; + + case mtpc_userForeign: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ userForeign" + result + "}"; + + case mtpc_userDeleted: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ userDeleted" + result + "}"; + + case mtpc_messages_sentMessage: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_sentMessage" + result + "}"; + + case mtpc_messages_sentMessageLink: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " links: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_sentMessageLink" + result + "}"; + + case mtpc_msgs_state_info: + result += "\n" + add; + result += " req_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " info: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ msgs_state_info" + result + "}"; + + case mtpc_auth_authorization: + result += "\n" + add; + result += " expires: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " user: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ auth_authorization" + result + "}"; + + case mtpc_contactStatus: + result += "\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " expires: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ contactStatus" + result + "}"; + + case mtpc_config: + result += "\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " test_mode: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " this_dc: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " dc_options: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chat_size_max: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " broadcast_size_max: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ config" + result + "}"; + + case mtpc_msg_resend_req: + result += "\n" + add; + result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; + return "{ msg_resend_req" + result + "}"; + case mtpc_documentEmpty: result += "\n" + add; result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; @@ -22444,125 +22483,356 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; return "{ document" + result + "}"; - case mtpc_inputEncryptedFileEmpty: - result = " "; - return "{ inputEncryptedFileEmpty" + result + "}"; - - case mtpc_inputEncryptedFileUploaded: + case mtpc_messages_statedMessages: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " md5_checksum: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ inputEncryptedFileUploaded" + result + "}"; - - case mtpc_inputEncryptedFile: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputEncryptedFile" + result + "}"; - - case mtpc_inputEncryptedFileBigUploaded: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ inputEncryptedFileBigUploaded" + result + "}"; - - case mtpc_contacts_found: - result += "\n" + add; - result += " results: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_found" + result + "}"; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_statedMessages" + result + "}"; - case mtpc_inputFileLocation: + case mtpc_messages_statedMessagesLinks: result += "\n" + add; - result += " volume_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " local_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " secret: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputFileLocation" + result + "}"; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " links: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_statedMessagesLinks" + result + "}"; - case mtpc_inputVideoFileLocation: + case mtpc_messages_messages: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputVideoFileLocation" + result + "}"; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_messages" + result + "}"; - case mtpc_inputEncryptedFileLocation: + case mtpc_messages_messagesSlice: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputEncryptedFileLocation" + result + "}"; + result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_messagesSlice" + result + "}"; - case mtpc_inputAudioFileLocation: + case mtpc_chatPhotoEmpty: + result = " "; + return "{ chatPhotoEmpty" + result + "}"; + + case mtpc_chatPhoto: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputAudioFileLocation" + result + "}"; + result += " photo_small: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " photo_big: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ chatPhoto" + result + "}"; - case mtpc_inputDocumentFileLocation: + case mtpc_messages_chat: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputDocumentFileLocation" + result + "}"; + result += " chat: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_chat" + result + "}"; - case mtpc_chatFull: + case mtpc_updates_differenceEmpty: + result += "\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updates_differenceEmpty" + result + "}"; + + case mtpc_updates_difference: + result += "\n" + add; + result += " new_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " new_encrypted_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " other_updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " state: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ updates_difference" + result + "}"; + + case mtpc_updates_differenceSlice: + result += "\n" + add; + result += " new_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " new_encrypted_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " other_updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " intermediate_state: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ updates_differenceSlice" + result + "}"; + + case mtpc_p_q_inner_data: + result += "\n" + add; + result += " pq: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " p: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " new_nonce: " + mtpTextSerialize(from, end, mtpc_int256, level + 1) + ",\n" + add; + return "{ p_q_inner_data" + result + "}"; + + case mtpc_auth_exportedAuthorization: result += "\n" + add; result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " participants: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chat_photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " notify_settings: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ chatFull" + result + "}"; + result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + return "{ auth_exportedAuthorization" + result + "}"; - case mtpc_chatParticipantsForbidden: + case mtpc_contacts_link: result += "\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ chatParticipantsForbidden" + result + "}"; + result += " my_link: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " foreign_link: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " user: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_link" + result + "}"; - case mtpc_chatParticipants: + case mtpc_inputPhoneContact: result += "\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " participants: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ chatParticipants" + result + "}"; + result += " client_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ inputPhoneContact" + result + "}"; - case mtpc_msgs_ack: + case mtpc_decryptedMessage: + result += "\n" + add; + result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " random_bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " media: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ decryptedMessage" + result + "}"; + + case mtpc_decryptedMessageService: + result += "\n" + add; + result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " random_bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + result += " action: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ decryptedMessageService" + result + "}"; + + case mtpc_http_wait: + result += "\n" + add; + result += " max_delay: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " wait_after: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " max_wait: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ http_wait" + result + "}"; + + case mtpc_destroy_session_ok: + result += "\n" + add; + result += " session_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ destroy_session_ok" + result + "}"; + + case mtpc_destroy_session_none: + result += "\n" + add; + result += " session_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ destroy_session_none" + result + "}"; + + case mtpc_inputFile: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " md5_checksum: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ inputFile" + result + "}"; + + case mtpc_inputFileBig: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ inputFileBig" + result + "}"; + + case mtpc_msgs_all_info: result += "\n" + add; result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; - return "{ msgs_ack" + result + "}"; + result += " info: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ msgs_all_info" + result + "}"; - case mtpc_userFull: + case mtpc_help_inviteText: result += "\n" + add; - result += " user: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " link: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " profile_photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " notify_settings: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " blocked: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " real_first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " real_last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ userFull" + result + "}"; + result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ help_inviteText" + result + "}"; - case mtpc_videoEmpty: + case mtpc_peerUser: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ videoEmpty" + result + "}"; - - case mtpc_video: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ peerUser" + result + "}"; + + case mtpc_peerChat: + result += "\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ peerChat" + result + "}"; + + case mtpc_contacts_blocked: + result += "\n" + add; + result += " blocked: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_blocked" + result + "}"; + + case mtpc_contacts_blockedSlice: + result += "\n" + add; + result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " blocked: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_blockedSlice" + result + "}"; + + case mtpc_geochats_messages: + result += "\n" + add; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ geochats_messages" + result + "}"; + + case mtpc_geochats_messagesSlice: + result += "\n" + add; + result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ geochats_messagesSlice" + result + "}"; + + case mtpc_inputGeoPointEmpty: + result = " "; + return "{ inputGeoPointEmpty" + result + "}"; + + case mtpc_inputGeoPoint: + result += "\n" + add; + result += " lat: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + result += " long: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + return "{ inputGeoPoint" + result + "}"; + + case mtpc_contactFound: + result += "\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ contactFound" + result + "}"; + + case mtpc_encryptedMessage: + result += "\n" + add; + result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " caption: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " duration: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " mime_type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " size: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " thumb: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " w: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " h: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ video" + result + "}"; + result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ encryptedMessage" + result + "}"; + + case mtpc_encryptedMessageService: + result += "\n" + add; + result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + return "{ encryptedMessageService" + result + "}"; + + case mtpc_photos_photos: + result += "\n" + add; + result += " photos: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ photos_photos" + result + "}"; + + case mtpc_photos_photosSlice: + result += "\n" + add; + result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " photos: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ photos_photosSlice" + result + "}"; + + case mtpc_dialog: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " top_message: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " unread_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " notify_settings: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ dialog" + result + "}"; + + case mtpc_updatesTooLong: + result = " "; + return "{ updatesTooLong" + result + "}"; + + case mtpc_updateShortMessage: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " from_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updateShortMessage" + result + "}"; + + case mtpc_updateShortChatMessage: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " from_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updateShortChatMessage" + result + "}"; + + case mtpc_updateShort: + result += "\n" + add; + result += " update: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updateShort" + result + "}"; + + case mtpc_updatesCombined: + result += "\n" + add; + result += " updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq_start: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updatesCombined" + result + "}"; + + case mtpc_updates: + result += "\n" + add; + result += " updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updates" + result + "}"; + + case mtpc_contacts_importedContacts: + result += "\n" + add; + result += " imported: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " retry_contacts: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_importedContacts" + result + "}"; + + case mtpc_resPQ: + result += "\n" + add; + result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " pq: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " server_public_key_fingerprints: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; + return "{ resPQ" + result + "}"; + + case mtpc_inputPhotoCropAuto: + result = " "; + return "{ inputPhotoCropAuto" + result + "}"; + + case mtpc_inputPhotoCrop: + result += "\n" + add; + result += " crop_left: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + result += " crop_top: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + result += " crop_width: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; + return "{ inputPhotoCrop" + result + "}"; + + case mtpc_messages_statedMessage: + result += "\n" + add; + result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_statedMessage" + result + "}"; + + case mtpc_messages_statedMessageLink: + result += "\n" + add; + result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " links: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_statedMessageLink" + result + "}"; case mtpc_messageEmpty: result += "\n" + add; @@ -22606,66 +22876,12 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " action: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; return "{ messageService" + result + "}"; - case mtpc_notifyPeer: + case mtpc_new_session_created: result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ notifyPeer" + result + "}"; - - case mtpc_notifyUsers: - result = " "; - return "{ notifyUsers" + result + "}"; - - case mtpc_notifyChats: - result = " "; - return "{ notifyChats" + result + "}"; - - case mtpc_notifyAll: - result = " "; - return "{ notifyAll" + result + "}"; - - case mtpc_messages_messageEmpty: - result = " "; - return "{ messages_messageEmpty" + result + "}"; - - case mtpc_messages_message: - result += "\n" + add; - result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_message" + result + "}"; - - case mtpc_inputPhoneContact: - result += "\n" + add; - result += " client_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ inputPhoneContact" + result + "}"; - - case mtpc_rpc_answer_unknown: - result = " "; - return "{ rpc_answer_unknown" + result + "}"; - - case mtpc_rpc_answer_dropped_running: - result = " "; - return "{ rpc_answer_dropped_running" + result + "}"; - - case mtpc_rpc_answer_dropped: - result += "\n" + add; - result += " msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " seq_no: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " bytes: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ rpc_answer_dropped" + result + "}"; - - case mtpc_inputVideoEmpty: - result = " "; - return "{ inputVideoEmpty" + result + "}"; - - case mtpc_inputVideo: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputVideo" + result + "}"; + result += " first_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " unique_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " server_salt: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ new_session_created" + result + "}"; case mtpc_decryptedMessageMediaEmpty: result = " "; @@ -22732,6 +22948,46 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " iv: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; return "{ decryptedMessageMediaAudio" + result + "}"; + case mtpc_inputEncryptedFileEmpty: + result = " "; + return "{ inputEncryptedFileEmpty" + result + "}"; + + case mtpc_inputEncryptedFileUploaded: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " md5_checksum: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ inputEncryptedFileUploaded" + result + "}"; + + case mtpc_inputEncryptedFile: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputEncryptedFile" + result + "}"; + + case mtpc_inputEncryptedFileBigUploaded: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " parts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ inputEncryptedFileBigUploaded" + result + "}"; + + case mtpc_fileLocationUnavailable: + result += "\n" + add; + result += " volume_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " local_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " secret: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ fileLocationUnavailable" + result + "}"; + + case mtpc_fileLocation: + result += "\n" + add; + result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " volume_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " local_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " secret: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ fileLocation" + result + "}"; + case mtpc_geoChatMessageEmpty: result += "\n" + add; result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; @@ -22757,55 +23013,229 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " action: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; return "{ geoChatMessageService" + result + "}"; - case mtpc_geoPointEmpty: + case mtpc_rpc_error: + result += "\n" + add; + result += " error_code: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " error_message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ rpc_error" + result + "}"; + + case mtpc_msgs_ack: + result += "\n" + add; + result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; + return "{ msgs_ack" + result + "}"; + + case mtpc_encryptedChatEmpty: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ encryptedChatEmpty" + result + "}"; + + case mtpc_encryptedChatWaiting: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " participant_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ encryptedChatWaiting" + result + "}"; + + case mtpc_encryptedChatRequested: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " participant_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " g_a: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + return "{ encryptedChatRequested" + result + "}"; + + case mtpc_encryptedChat: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " participant_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " g_a_or_b: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ encryptedChat" + result + "}"; + + case mtpc_encryptedChatDiscarded: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ encryptedChatDiscarded" + result + "}"; + + case mtpc_help_appUpdate: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " critical: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " url: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " text: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ help_appUpdate" + result + "}"; + + case mtpc_help_noAppUpdate: result = " "; - return "{ geoPointEmpty" + result + "}"; + return "{ help_noAppUpdate" + result + "}"; - case mtpc_geoPoint: + case mtpc_chatFull: result += "\n" + add; - result += " long: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - result += " lat: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - return "{ geoPoint" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " participants: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chat_photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " notify_settings: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ chatFull" + result + "}"; - case mtpc_messages_dialogs: - result += "\n" + add; - result += " dialogs: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_dialogs" + result + "}"; + case mtpc_inputUserEmpty: + result = " "; + return "{ inputUserEmpty" + result + "}"; - case mtpc_messages_dialogsSlice: - result += "\n" + add; - result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " dialogs: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_dialogsSlice" + result + "}"; + case mtpc_inputUserSelf: + result = " "; + return "{ inputUserSelf" + result + "}"; - case mtpc_messages_dhConfigNotModified: - result += "\n" + add; - result += " random: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - return "{ messages_dhConfigNotModified" + result + "}"; - - case mtpc_messages_dhConfig: - result += "\n" + add; - result += " g: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " p: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " random: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - return "{ messages_dhConfig" + result + "}"; - - case mtpc_peerUser: + case mtpc_inputUserContact: result += "\n" + add; result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ peerUser" + result + "}"; + return "{ inputUserContact" + result + "}"; - case mtpc_peerChat: + case mtpc_inputUserForeign: + result += "\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputUserForeign" + result + "}"; + + case mtpc_nearestDc: + result += "\n" + add; + result += " country: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " this_dc: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " nearest_dc: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ nearestDc" + result + "}"; + + case mtpc_photoEmpty: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ photoEmpty" + result + "}"; + + case mtpc_photo: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " caption: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " geo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " sizes: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ photo" + result + "}"; + + case mtpc_photoSizeEmpty: + result += "\n" + add; + result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ photoSizeEmpty" + result + "}"; + + case mtpc_photoSize: + result += "\n" + add; + result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " location: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " w: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " h: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " size: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ photoSize" + result + "}"; + + case mtpc_photoCachedSize: + result += "\n" + add; + result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " location: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " w: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " h: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + return "{ photoCachedSize" + result + "}"; + + case mtpc_messages_chatFull: + result += "\n" + add; + result += " full_chat: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_chatFull" + result + "}"; + + case mtpc_messages_affectedHistory: + result += "\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_affectedHistory" + result + "}"; + + case mtpc_userFull: + result += "\n" + add; + result += " user: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " link: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " profile_photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " notify_settings: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " blocked: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " real_first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " real_last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ userFull" + result + "}"; + + case mtpc_chatParticipantsForbidden: result += "\n" + add; result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ peerChat" + result + "}"; + return "{ chatParticipantsForbidden" + result + "}"; + + case mtpc_chatParticipants: + result += "\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " participants: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ chatParticipants" + result + "}"; + + case mtpc_messages_messageEmpty: + result = " "; + return "{ messages_messageEmpty" + result + "}"; + + case mtpc_messages_message: + result += "\n" + add; + result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_message" + result + "}"; + + case mtpc_encryptedFileEmpty: + result = " "; + return "{ encryptedFileEmpty" + result + "}"; + + case mtpc_encryptedFile: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " size: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ encryptedFile" + result + "}"; + + case mtpc_inputVideoEmpty: + result = " "; + return "{ inputVideoEmpty" + result + "}"; + + case mtpc_inputVideo: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputVideo" + result + "}"; + + case mtpc_server_DH_inner_data: + result += "\n" + add; + result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " g: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " dh_prime: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " g_a: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " server_time: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ server_DH_inner_data" + result + "}"; + + case mtpc_contactBlocked: + result += "\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ contactBlocked" + result + "}"; case mtpc_server_DH_params_fail: result += "\n" + add; @@ -22821,34 +23251,77 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " encrypted_answer: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; return "{ server_DH_params_ok" + result + "}"; - case mtpc_inputAppEvent: + case mtpc_importedContact: result += "\n" + add; - result += " time: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " peer: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " data: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ inputAppEvent" + result + "}"; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " client_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ importedContact" + result + "}"; - case mtpc_photos_photo: - result += "\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ photos_photo" + result + "}"; - - case mtpc_peerNotifyEventsEmpty: + case mtpc_inputMessagesFilterEmpty: result = " "; - return "{ peerNotifyEventsEmpty" + result + "}"; + return "{ inputMessagesFilterEmpty" + result + "}"; - case mtpc_peerNotifyEventsAll: + case mtpc_inputMessagesFilterPhotos: result = " "; - return "{ peerNotifyEventsAll" + result + "}"; + return "{ inputMessagesFilterPhotos" + result + "}"; - case mtpc_nearestDc: + case mtpc_inputMessagesFilterVideo: + result = " "; + return "{ inputMessagesFilterVideo" + result + "}"; + + case mtpc_inputMessagesFilterPhotoVideo: + result = " "; + return "{ inputMessagesFilterPhotoVideo" + result + "}"; + + case mtpc_inputMessagesFilterDocument: + result = " "; + return "{ inputMessagesFilterDocument" + result + "}"; + + case mtpc_inputMessagesFilterAudio: + result = " "; + return "{ inputMessagesFilterAudio" + result + "}"; + + case mtpc_inputPeerNotifySettings: result += "\n" + add; - result += " country: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " this_dc: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " nearest_dc: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ nearestDc" + result + "}"; + result += " mute_until: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " sound: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " show_previews: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " events_mask: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ inputPeerNotifySettings" + result + "}"; + + case mtpc_inputPeerEmpty: + result = " "; + return "{ inputPeerEmpty" + result + "}"; + + case mtpc_inputPeerSelf: + result = " "; + return "{ inputPeerSelf" + result + "}"; + + case mtpc_inputPeerContact: + result += "\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ inputPeerContact" + result + "}"; + + case mtpc_inputPeerForeign: + result += "\n" + add; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputPeerForeign" + result + "}"; + + case mtpc_inputPeerChat: + result += "\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ inputPeerChat" + result + "}"; + + case mtpc_inputDocumentEmpty: + result = " "; + return "{ inputDocumentEmpty" + result + "}"; + + case mtpc_inputDocument: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputDocument" + result + "}"; case mtpc_wallPaper: result += "\n" + add; @@ -22866,52 +23339,78 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " color: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; return "{ wallPaperSolid" + result + "}"; - case mtpc_geochats_messages: + case mtpc_inputGeoChat: result += "\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ geochats_messages" + result + "}"; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputGeoChat" + result + "}"; - case mtpc_geochats_messagesSlice: + case mtpc_chatEmpty: result += "\n" + add; - result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ geochats_messagesSlice" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ chatEmpty" + result + "}"; - case mtpc_contacts_blocked: + case mtpc_chat: result += "\n" + add; - result += " blocked: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_blocked" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " participants_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " left: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ chat" + result + "}"; - case mtpc_contacts_blockedSlice: + case mtpc_chatForbidden: result += "\n" + add; - result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " blocked: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_blockedSlice" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ chatForbidden" + result + "}"; - case mtpc_messages_statedMessage: + case mtpc_geoChat: result += "\n" + add; - result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_statedMessage" + result + "}"; + result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " venue: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " geo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " participants_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " checked_in: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ geoChat" + result + "}"; - case mtpc_messages_statedMessageLink: + case mtpc_inputEncryptedChat: result += "\n" + add; - result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " links: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_statedMessageLink" + result + "}"; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputEncryptedChat" + result + "}"; + + case mtpc_messages_sentEncryptedMessage: + result += "\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_sentEncryptedMessage" + result + "}"; + + case mtpc_messages_sentEncryptedFile: + result += "\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_sentEncryptedFile" + result + "}"; + + case mtpc_peerNotifySettingsEmpty: + result = " "; + return "{ peerNotifySettingsEmpty" + result + "}"; + + case mtpc_peerNotifySettings: + result += "\n" + add; + result += " mute_until: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " sound: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " show_previews: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " events_mask: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ peerNotifySettings" + result + "}"; case mtpc_messageMediaEmpty: result = " "; @@ -22955,162 +23454,11 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " audio: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; return "{ messageMediaAudio" + result + "}"; - case mtpc_inputGeoChat: + case mtpc_messages_chats: result += "\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputGeoChat" + result + "}"; - - case mtpc_help_appUpdate: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " critical: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " url: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " text: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ help_appUpdate" + result + "}"; - - case mtpc_help_noAppUpdate: - result = " "; - return "{ help_noAppUpdate" + result + "}"; - - case mtpc_updates_differenceEmpty: - result += "\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updates_differenceEmpty" + result + "}"; - - case mtpc_updates_difference: - result += "\n" + add; - result += " new_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " new_encrypted_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " other_updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " state: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ updates_difference" + result + "}"; - - case mtpc_updates_differenceSlice: - result += "\n" + add; - result += " new_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " new_encrypted_messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " other_updates: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " intermediate_state: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ updates_differenceSlice" + result + "}"; - - case mtpc_msgs_state_info: - result += "\n" + add; - result += " req_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " info: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ msgs_state_info" + result + "}"; - - case mtpc_msgs_state_req: - result += "\n" + add; - result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; - return "{ msgs_state_req" + result + "}"; - - case mtpc_msg_resend_req: - result += "\n" + add; - result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; - return "{ msg_resend_req" + result + "}"; - - case mtpc_inputDocumentEmpty: - result = " "; - return "{ inputDocumentEmpty" + result + "}"; - - case mtpc_inputDocument: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputDocument" + result + "}"; - - case mtpc_userStatusEmpty: - result = " "; - return "{ userStatusEmpty" + result + "}"; - - case mtpc_userStatusOnline: - result += "\n" + add; - result += " expires: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ userStatusOnline" + result + "}"; - - case mtpc_userStatusOffline: - result += "\n" + add; - result += " was_online: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ userStatusOffline" + result + "}"; - - case mtpc_photos_photos: - result += "\n" + add; - result += " photos: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ photos_photos" + result + "}"; - - case mtpc_photos_photosSlice: - result += "\n" + add; - result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " photos: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ photos_photosSlice" + result + "}"; - - case mtpc_decryptedMessage: - result += "\n" + add; - result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " random_bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " media: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ decryptedMessage" + result + "}"; - - case mtpc_decryptedMessageService: - result += "\n" + add; - result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " random_bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - result += " action: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ decryptedMessageService" + result + "}"; - - case mtpc_contacts_importedContacts: - result += "\n" + add; - result += " imported: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " retry_contacts: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_importedContacts" + result + "}"; - - case mtpc_fileLocationUnavailable: - result += "\n" + add; - result += " volume_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " local_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " secret: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ fileLocationUnavailable" + result + "}"; - - case mtpc_fileLocation: - result += "\n" + add; - result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " volume_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " local_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " secret: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ fileLocation" + result + "}"; - - case mtpc_photoSizeEmpty: - result += "\n" + add; - result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ photoSizeEmpty" + result + "}"; - - case mtpc_photoSize: - result += "\n" + add; - result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " location: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " w: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " h: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " size: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ photoSize" + result + "}"; - - case mtpc_photoCachedSize: - result += "\n" + add; - result += " type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " location: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " w: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " h: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - return "{ photoCachedSize" + result + "}"; + return "{ messages_chats" + result + "}"; case mtpc_msg_detailed_info: result += "\n" + add; @@ -23127,213 +23475,124 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " status: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; return "{ msg_new_detailed_info" + result + "}"; - case mtpc_inputChatPhotoEmpty: + case mtpc_client_DH_inner_data: + result += "\n" + add; + result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " retry_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " g_b: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ client_DH_inner_data" + result + "}"; + + case mtpc_rpc_answer_unknown: result = " "; - return "{ inputChatPhotoEmpty" + result + "}"; + return "{ rpc_answer_unknown" + result + "}"; - case mtpc_inputChatUploadedPhoto: - result += "\n" + add; - result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ inputChatUploadedPhoto" + result + "}"; - - case mtpc_inputChatPhoto: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ inputChatPhoto" + result + "}"; - - case mtpc_messages_sentMessage: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_sentMessage" + result + "}"; - - case mtpc_messages_sentMessageLink: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " links: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_sentMessageLink" + result + "}"; - - case mtpc_messages_chatFull: - result += "\n" + add; - result += " full_chat: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_chatFull" + result + "}"; - - case mtpc_geochats_statedMessage: - result += "\n" + add; - result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ geochats_statedMessage" + result + "}"; - - case mtpc_chatPhotoEmpty: + case mtpc_rpc_answer_dropped_running: result = " "; - return "{ chatPhotoEmpty" + result + "}"; + return "{ rpc_answer_dropped_running" + result + "}"; - case mtpc_chatPhoto: + case mtpc_rpc_answer_dropped: result += "\n" + add; - result += " photo_small: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " photo_big: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ chatPhoto" + result + "}"; + result += " msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " seq_no: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " bytes: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ rpc_answer_dropped" + result + "}"; - case mtpc_encryptedMessage: - result += "\n" + add; - result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ encryptedMessage" + result + "}"; - - case mtpc_encryptedMessageService: - result += "\n" + add; - result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - return "{ encryptedMessageService" + result + "}"; - - case mtpc_destroy_session_ok: - result += "\n" + add; - result += " session_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ destroy_session_ok" + result + "}"; - - case mtpc_destroy_session_none: - result += "\n" + add; - result += " session_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ destroy_session_none" + result + "}"; - - case mtpc_http_wait: - result += "\n" + add; - result += " max_delay: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " wait_after: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " max_wait: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ http_wait" + result + "}"; - - case mtpc_messages_sentEncryptedMessage: - result += "\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_sentEncryptedMessage" + result + "}"; - - case mtpc_messages_sentEncryptedFile: - result += "\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_sentEncryptedFile" + result + "}"; - - case mtpc_contacts_myLinkEmpty: + case mtpc_peerNotifyEventsEmpty: result = " "; - return "{ contacts_myLinkEmpty" + result + "}"; + return "{ peerNotifyEventsEmpty" + result + "}"; - case mtpc_contacts_myLinkRequested: - result += "\n" + add; - result += " contact: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_myLinkRequested" + result + "}"; - - case mtpc_contacts_myLinkContact: + case mtpc_peerNotifyEventsAll: result = " "; - return "{ contacts_myLinkContact" + result + "}"; + return "{ peerNotifyEventsAll" + result + "}"; - case mtpc_inputEncryptedChat: + case mtpc_storage_fileUnknown: + result = " "; + return "{ storage_fileUnknown" + result + "}"; + + case mtpc_storage_fileJpeg: + result = " "; + return "{ storage_fileJpeg" + result + "}"; + + case mtpc_storage_fileGif: + result = " "; + return "{ storage_fileGif" + result + "}"; + + case mtpc_storage_filePng: + result = " "; + return "{ storage_filePng" + result + "}"; + + case mtpc_storage_filePdf: + result = " "; + return "{ storage_filePdf" + result + "}"; + + case mtpc_storage_fileMp3: + result = " "; + return "{ storage_fileMp3" + result + "}"; + + case mtpc_storage_fileMov: + result = " "; + return "{ storage_fileMov" + result + "}"; + + case mtpc_storage_filePartial: + result = " "; + return "{ storage_filePartial" + result + "}"; + + case mtpc_storage_fileMp4: + result = " "; + return "{ storage_fileMp4" + result + "}"; + + case mtpc_storage_fileWebp: + result = " "; + return "{ storage_fileWebp" + result + "}"; + + case mtpc_userStatusEmpty: + result = " "; + return "{ userStatusEmpty" + result + "}"; + + case mtpc_userStatusOnline: result += "\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputEncryptedChat" + result + "}"; + result += " expires: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ userStatusOnline" + result + "}"; - case mtpc_messages_chats: + case mtpc_userStatusOffline: result += "\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_chats" + result + "}"; + result += " was_online: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ userStatusOffline" + result + "}"; - case mtpc_encryptedChatEmpty: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ encryptedChatEmpty" + result + "}"; - - case mtpc_encryptedChatWaiting: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " participant_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ encryptedChatWaiting" + result + "}"; - - case mtpc_encryptedChatRequested: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " participant_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " g_a: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - return "{ encryptedChatRequested" + result + "}"; - - case mtpc_encryptedChat: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " admin_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " participant_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " g_a_or_b: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ encryptedChat" + result + "}"; - - case mtpc_encryptedChatDiscarded: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ encryptedChatDiscarded" + result + "}"; - - case mtpc_messages_messages: - result += "\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_messages" + result + "}"; - - case mtpc_messages_messagesSlice: - result += "\n" + add; - result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_messagesSlice" + result + "}"; - - case mtpc_auth_checkedPhone: - result += "\n" + add; - result += " phone_registered: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " phone_invited: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ auth_checkedPhone" + result + "}"; - - case mtpc_contactSuggested: + case mtpc_chatParticipant: result += "\n" + add; result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " mutual_contacts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ contactSuggested" + result + "}"; + result += " inviter_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ chatParticipant" + result + "}"; - case mtpc_contacts_foreignLinkUnknown: - result = " "; - return "{ contacts_foreignLinkUnknown" + result + "}"; - - case mtpc_contacts_foreignLinkRequested: + case mtpc_notifyPeer: result += "\n" + add; - result += " has_phone: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_foreignLinkRequested" + result + "}"; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ notifyPeer" + result + "}"; - case mtpc_contacts_foreignLinkMutual: + case mtpc_notifyUsers: result = " "; - return "{ contacts_foreignLinkMutual" + result + "}"; + return "{ notifyUsers" + result + "}"; + + case mtpc_notifyChats: + result = " "; + return "{ notifyChats" + result + "}"; + + case mtpc_notifyAll: + result = " "; + return "{ notifyAll" + result + "}"; + + case mtpc_inputPhotoEmpty: + result = " "; + return "{ inputPhotoEmpty" + result + "}"; + + case mtpc_inputPhoto: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ inputPhoto" + result + "}"; case mtpc_inputAudioEmpty: result = " "; @@ -23345,180 +23604,19 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; return "{ inputAudio" + result + "}"; - case mtpc_contacts_contacts: + case mtpc_contacts_suggested: result += "\n" + add; - result += " contacts: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " results: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_contacts" + result + "}"; + return "{ contacts_suggested" + result + "}"; - case mtpc_contacts_contactsNotModified: - result = " "; - return "{ contacts_contactsNotModified" + result + "}"; - - case mtpc_chatEmpty: + case mtpc_geochats_statedMessage: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ chatEmpty" + result + "}"; - - case mtpc_chat: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " participants_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " left: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ chat" + result + "}"; - - case mtpc_chatForbidden: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ chatForbidden" + result + "}"; - - case mtpc_geoChat: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " venue: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " geo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " participants_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " checked_in: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ geoChat" + result + "}"; - - case mtpc_pong: - result += "\n" + add; - result += " msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " ping_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ pong" + result + "}"; - - case mtpc_inputPeerNotifyEventsEmpty: - result = " "; - return "{ inputPeerNotifyEventsEmpty" + result + "}"; - - case mtpc_inputPeerNotifyEventsAll: - result = " "; - return "{ inputPeerNotifyEventsAll" + result + "}"; - - case mtpc_inputPeerNotifySettings: - result += "\n" + add; - result += " mute_until: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " sound: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " show_previews: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " events_mask: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ inputPeerNotifySettings" + result + "}"; - - case mtpc_messages_affectedHistory: - result += "\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_affectedHistory" + result + "}"; - - case mtpc_inputNotifyPeer: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ inputNotifyPeer" + result + "}"; - - case mtpc_inputNotifyUsers: - result = " "; - return "{ inputNotifyUsers" + result + "}"; - - case mtpc_inputNotifyChats: - result = " "; - return "{ inputNotifyChats" + result + "}"; - - case mtpc_inputNotifyAll: - result = " "; - return "{ inputNotifyAll" + result + "}"; - - case mtpc_inputNotifyGeoChatPeer: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ inputNotifyGeoChatPeer" + result + "}"; - - case mtpc_bad_msg_notification: - result += "\n" + add; - result += " bad_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " bad_msg_seqno: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " error_code: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ bad_msg_notification" + result + "}"; - - case mtpc_bad_server_salt: - result += "\n" + add; - result += " bad_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " bad_msg_seqno: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " error_code: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " new_server_salt: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ bad_server_salt" + result + "}"; - - case mtpc_config: - result += "\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " test_mode: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " this_dc: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " dc_options: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chat_size_max: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " broadcast_size_max: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ config" + result + "}"; - - case mtpc_inputGeoPointEmpty: - result = " "; - return "{ inputGeoPointEmpty" + result + "}"; - - case mtpc_inputGeoPoint: - result += "\n" + add; - result += " lat: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - result += " long: " + mtpTextSerialize(from, end, mtpc_double, level + 1) + ",\n" + add; - return "{ inputGeoPoint" + result + "}"; - - case mtpc_inputUserEmpty: - result = " "; - return "{ inputUserEmpty" + result + "}"; - - case mtpc_inputUserSelf: - result = " "; - return "{ inputUserSelf" + result + "}"; - - case mtpc_inputUserContact: - result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ inputUserContact" + result + "}"; - - case mtpc_inputUserForeign: - result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ inputUserForeign" + result + "}"; - - case mtpc_dialog: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " top_message: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " unread_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " notify_settings: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ dialog" + result + "}"; - - case mtpc_importedContact: - result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " client_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ importedContact" + result + "}"; - - case mtpc_dcOption: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " hostname: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " ip_address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " port: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ dcOption" + result + "}"; + return "{ geochats_statedMessage" + result + "}"; case mtpc_updateNewMessage: result += "\n" + add; @@ -23703,191 +23801,138 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " layer: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; return "{ decryptedMessageActionNotifyLayer" + result + "}"; - case mtpc_peerNotifySettingsEmpty: - result = " "; - return "{ peerNotifySettingsEmpty" + result + "}"; - - case mtpc_peerNotifySettings: - result += "\n" + add; - result += " mute_until: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " sound: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " show_previews: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " events_mask: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ peerNotifySettings" + result + "}"; - - case mtpc_userEmpty: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ userEmpty" + result + "}"; - - case mtpc_userSelf: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " inactive: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ userSelf" + result + "}"; - - case mtpc_userContact: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ userContact" + result + "}"; - - case mtpc_userRequest: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " phone: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ userRequest" + result + "}"; - - case mtpc_userForeign: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " status: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ userForeign" + result + "}"; - - case mtpc_userDeleted: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " first_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ userDeleted" + result + "}"; - - case mtpc_contacts_suggested: - result += "\n" + add; - result += " results: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_suggested" + result + "}"; - - case mtpc_auth_authorization: - result += "\n" + add; - result += " expires: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " user: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ auth_authorization" + result + "}"; - - case mtpc_messages_chat: - result += "\n" + add; - result += " chat: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_chat" + result + "}"; - - case mtpc_auth_sentCode: - result += "\n" + add; - result += " phone_registered: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " phone_code_hash: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " send_call_timeout: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " is_password: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ auth_sentCode" + result + "}"; - - case mtpc_audioEmpty: + case mtpc_videoEmpty: result += "\n" + add; result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ audioEmpty" + result + "}"; + return "{ videoEmpty" + result + "}"; - case mtpc_audio: + case mtpc_video: result += "\n" + add; result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " caption: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; result += " duration: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " mime_type: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; result += " size: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " thumb: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ audio" + result + "}"; + result += " w: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " h: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ video" + result + "}"; - case mtpc_messages_statedMessages: + case mtpc_contacts_found: result += "\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " results: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_statedMessages" + result + "}"; + return "{ contacts_found" + result + "}"; - case mtpc_messages_statedMessagesLinks: + case mtpc_auth_checkedPhone: result += "\n" + add; - result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " links: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_statedMessagesLinks" + result + "}"; + result += " phone_registered: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " phone_invited: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ auth_checkedPhone" + result + "}"; - case mtpc_contactBlocked: + case mtpc_messageActionEmpty: + result = " "; + return "{ messageActionEmpty" + result + "}"; + + case mtpc_messageActionChatCreate: + result += "\n" + add; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; + return "{ messageActionChatCreate" + result + "}"; + + case mtpc_messageActionChatEditTitle: + result += "\n" + add; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ messageActionChatEditTitle" + result + "}"; + + case mtpc_messageActionChatEditPhoto: + result += "\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messageActionChatEditPhoto" + result + "}"; + + case mtpc_messageActionChatDeletePhoto: + result = " "; + return "{ messageActionChatDeletePhoto" + result + "}"; + + case mtpc_messageActionChatAddUser: result += "\n" + add; result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ contactBlocked" + result + "}"; + return "{ messageActionChatAddUser" + result + "}"; - case mtpc_storage_fileUnknown: - result = " "; - return "{ storage_fileUnknown" + result + "}"; - - case mtpc_storage_fileJpeg: - result = " "; - return "{ storage_fileJpeg" + result + "}"; - - case mtpc_storage_fileGif: - result = " "; - return "{ storage_fileGif" + result + "}"; - - case mtpc_storage_filePng: - result = " "; - return "{ storage_filePng" + result + "}"; - - case mtpc_storage_filePdf: - result = " "; - return "{ storage_filePdf" + result + "}"; - - case mtpc_storage_fileMp3: - result = " "; - return "{ storage_fileMp3" + result + "}"; - - case mtpc_storage_fileMov: - result = " "; - return "{ storage_fileMov" + result + "}"; - - case mtpc_storage_filePartial: - result = " "; - return "{ storage_filePartial" + result + "}"; - - case mtpc_storage_fileMp4: - result = " "; - return "{ storage_fileMp4" + result + "}"; - - case mtpc_storage_fileWebp: - result = " "; - return "{ storage_fileWebp" + result + "}"; - - case mtpc_help_inviteText: + case mtpc_messageActionChatDeleteUser: result += "\n" + add; - result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ help_inviteText" + result + "}"; + result += " user_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messageActionChatDeleteUser" + result + "}"; - case mtpc_chatLocated: + case mtpc_messageActionGeoChatCreate: result += "\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " distance: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ chatLocated" + result + "}"; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ messageActionGeoChatCreate" + result + "}"; + + case mtpc_messageActionGeoChatCheckin: + result = " "; + return "{ messageActionGeoChatCheckin" + result + "}"; + + case mtpc_messages_dialogs: + result += "\n" + add; + result += " dialogs: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_dialogs" + result + "}"; + + case mtpc_messages_dialogsSlice: + result += "\n" + add; + result += " count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " dialogs: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_dialogsSlice" + result + "}"; + + case mtpc_contacts_contacts: + result += "\n" + add; + result += " contacts: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_contacts" + result + "}"; + + case mtpc_contacts_contactsNotModified: + result = " "; + return "{ contacts_contactsNotModified" + result + "}"; + + case mtpc_geochats_located: + result += "\n" + add; + result += " results: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " messages: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " chats: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " users: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ geochats_located" + result + "}"; + + case mtpc_pong: + result += "\n" + add; + result += " msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " ping_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ pong" + result + "}"; + + case mtpc_bad_msg_notification: + result += "\n" + add; + result += " bad_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " bad_msg_seqno: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " error_code: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ bad_msg_notification" + result + "}"; + + case mtpc_bad_server_salt: + result += "\n" + add; + result += " bad_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " bad_msg_seqno: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " error_code: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " new_server_salt: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ bad_server_salt" + result + "}"; case mtpc_contact: result += "\n" + add; @@ -23895,60 +23940,38 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " mutual: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; return "{ contact" + result + "}"; - case mtpc_decryptedMessageLayer: + case mtpc_messages_receivedQueue: result += "\n" + add; - result += " layer: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " message: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ decryptedMessageLayer" + result + "}"; + result += " max_qts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_receivedQueue" + result + "}"; - case mtpc_updates_state: + case mtpc_set_client_DH_params: result += "\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " qts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " seq: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " unread_count: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updates_state" + result + "}"; + result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " encrypted_data: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ set_client_DH_params" + result + "}"; - case mtpc_encryptedFileEmpty: + case mtpc_help_getSupport: result = " "; - return "{ encryptedFileEmpty" + result + "}"; + return "{ help_getSupport" + result + "}"; - case mtpc_encryptedFile: + case mtpc_auth_sendCode: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " access_hash: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " size: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ encryptedFile" + result + "}"; + result += " phone_number: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " sms_type: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " api_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " api_hash: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " lang_code: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ auth_sendCode" + result + "}"; - case mtpc_msgs_all_info: + case mtpc_geochats_getRecents: result += "\n" + add; - result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; - result += " info: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ msgs_all_info" + result + "}"; - - case mtpc_photos_updateProfilePhoto: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ photos_updateProfilePhoto" + result + "}"; - - case mtpc_messages_getMessages: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; - return "{ messages_getMessages" + result + "}"; - - case mtpc_messages_getHistory: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_getHistory" + result + "}"; + return "{ geochats_getRecents" + result + "}"; - case mtpc_messages_search: + case mtpc_geochats_search: result += "\n" + add; result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; @@ -23958,23 +23981,20 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_search" + result + "}"; + return "{ geochats_search" + result + "}"; - case mtpc_set_client_DH_params: + case mtpc_geochats_getHistory: result += "\n" + add; - result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " encrypted_data: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ set_client_DH_params" + result + "}"; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ geochats_getHistory" + result + "}"; - case mtpc_contacts_getStatuses: - result = " "; - return "{ contacts_getStatuses" + result + "}"; - - case mtpc_auth_checkPhone: + case mtpc_get_future_salts: result += "\n" + add; - result += " phone_number: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ auth_checkPhone" + result + "}"; + result += " num: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ get_future_salts" + result + "}"; case mtpc_help_getAppUpdate: result += "\n" + add; @@ -23984,99 +24004,14 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " lang_code: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; return "{ help_getAppUpdate" + result + "}"; - case mtpc_updates_getDifference: - result += "\n" + add; - result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " qts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ updates_getDifference" + result + "}"; - case mtpc_help_getInviteText: result += "\n" + add; result += " lang_code: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; return "{ help_getInviteText" + result + "}"; - case mtpc_users_getFullUser: - result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ users_getFullUser" + result + "}"; - - case mtpc_updates_getState: + case mtpc_help_getNearestDc: result = " "; - return "{ updates_getState" + result + "}"; - - case mtpc_contacts_getContacts: - result += "\n" + add; - result += " hash: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ contacts_getContacts" + result + "}"; - - case mtpc_geochats_checkin: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ geochats_checkin" + result + "}"; - - case mtpc_geochats_editChatTitle: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ geochats_editChatTitle" + result + "}"; - - case mtpc_geochats_editChatPhoto: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ geochats_editChatPhoto" + result + "}"; - - case mtpc_geochats_sendMessage: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ geochats_sendMessage" + result + "}"; - - case mtpc_geochats_sendMedia: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " media: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ geochats_sendMedia" + result + "}"; - - case mtpc_geochats_createGeoChat: - result += "\n" + add; - result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " geo_point: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " venue: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ geochats_createGeoChat" + result + "}"; - - case mtpc_ping: - result += "\n" + add; - result += " ping_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ ping" + result + "}"; - - case mtpc_ping_delay_disconnect: - result += "\n" + add; - result += " ping_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " disconnect_delay: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ ping_delay_disconnect" + result + "}"; - - case mtpc_help_getSupport: - result = " "; - return "{ help_getSupport" + result + "}"; - - case mtpc_messages_readHistory: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_readHistory" + result + "}"; - - case mtpc_messages_deleteHistory: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_deleteHistory" + result + "}"; + return "{ help_getNearestDc" + result + "}"; case mtpc_messages_deleteMessages: result += "\n" + add; @@ -24093,15 +24028,45 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; return "{ messages_receivedMessages" + result + "}"; - case mtpc_users_getUsers: + case mtpc_contacts_getBlocked: + result += "\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ contacts_getBlocked" + result + "}"; + + case mtpc_messages_getFullChat: + result += "\n" + add; + result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_getFullChat" + result + "}"; + + case mtpc_geochats_getFullChat: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ geochats_getFullChat" + result + "}"; + + case mtpc_messages_getDhConfig: + result += "\n" + add; + result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " random_length: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_getDhConfig" + result + "}"; + + case mtpc_messages_forwardMessages: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " id: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; + return "{ messages_forwardMessages" + result + "}"; + + case mtpc_messages_sendBroadcast: + result += "\n" + add; + result += " contacts: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " media: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ messages_sendBroadcast" + result + "}"; + + case mtpc_users_getFullUser: result += "\n" + add; result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ users_getUsers" + result + "}"; - - case mtpc_get_future_salts: - result += "\n" + add; - result += " num: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ get_future_salts" + result + "}"; + return "{ users_getFullUser" + result + "}"; case mtpc_photos_getUserPhotos: result += "\n" + add; @@ -24111,6 +24076,36 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; return "{ photos_getUserPhotos" + result + "}"; + case mtpc_photos_uploadProfilePhoto: + result += "\n" + add; + result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " caption: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " geo_point: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ photos_uploadProfilePhoto" + result + "}"; + + case mtpc_updates_getState: + result = " "; + return "{ updates_getState" + result + "}"; + + case mtpc_photos_updateProfilePhoto: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ photos_updateProfilePhoto" + result + "}"; + + case mtpc_messages_getDialogs: + result += "\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_getDialogs" + result + "}"; + + case mtpc_users_getUsers: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ users_getUsers" + result + "}"; + case mtpc_register_saveDeveloperInfo: result += "\n" + add; result += " name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; @@ -24236,59 +24231,9 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; return "{ upload_saveBigFilePart" + result + "}"; - case mtpc_req_pq: - result += "\n" + add; - result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - return "{ req_pq" + result + "}"; - - case mtpc_auth_exportAuthorization: - result += "\n" + add; - result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ auth_exportAuthorization" + result + "}"; - - case mtpc_contacts_importContacts: - result += "\n" + add; - result += " contacts: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " replace: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ contacts_importContacts" + result + "}"; - - case mtpc_rpc_drop_answer: - result += "\n" + add; - result += " req_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ rpc_drop_answer" + result + "}"; - - case mtpc_help_getConfig: + case mtpc_account_getWallPapers: result = " "; - return "{ help_getConfig" + result + "}"; - - case mtpc_help_getNearestDc: - result = " "; - return "{ help_getNearestDc" + result + "}"; - - case mtpc_messages_getDialogs: - result += "\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_getDialogs" + result + "}"; - - case mtpc_account_getNotifySettings: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ account_getNotifySettings" + result + "}"; - - case mtpc_geochats_getLocated: - result += "\n" + add; - result += " geo_point: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " radius: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ geochats_getLocated" + result + "}"; - - case mtpc_messages_getDhConfig: - result += "\n" + add; - result += " version: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " random_length: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_getDhConfig" + result + "}"; + return "{ account_getWallPapers" + result + "}"; case mtpc_account_updateProfile: result += "\n" + add; @@ -24296,30 +24241,10 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " last_name: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; return "{ account_updateProfile" + result + "}"; - case mtpc_messages_getFullChat: - result += "\n" + add; - result += " chat_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_getFullChat" + result + "}"; - - case mtpc_geochats_getFullChat: + case mtpc_account_getNotifySettings: result += "\n" + add; result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ geochats_getFullChat" + result + "}"; - - case mtpc_req_DH_params: - result += "\n" + add; - result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; - result += " p: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " public_key_fingerprint: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " encrypted_data: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ req_DH_params" + result + "}"; - - case mtpc_contacts_getSuggested: - result += "\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ contacts_getSuggested" + result + "}"; + return "{ account_getNotifySettings" + result + "}"; case mtpc_auth_signUp: result += "\n" + add; @@ -24343,54 +24268,6 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " bytes: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; return "{ auth_importAuthorization" + result + "}"; - case mtpc_upload_getFile: - result += "\n" + add; - result += " location: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ upload_getFile" + result + "}"; - - case mtpc_photos_uploadProfilePhoto: - result += "\n" + add; - result += " file: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " caption: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " geo_point: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " crop: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ photos_uploadProfilePhoto" + result + "}"; - - case mtpc_auth_sendCode: - result += "\n" + add; - result += " phone_number: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " sms_type: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " api_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " api_hash: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " lang_code: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - return "{ auth_sendCode" + result + "}"; - - case mtpc_messages_forwardMessages: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " id: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; - return "{ messages_forwardMessages" + result + "}"; - - case mtpc_messages_sendBroadcast: - result += "\n" + add; - result += " contacts: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " media: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ messages_sendBroadcast" + result + "}"; - - case mtpc_messages_receivedQueue: - result += "\n" + add; - result += " max_qts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ messages_receivedQueue" + result + "}"; - - case mtpc_contacts_search: - result += "\n" + add; - result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ contacts_search" + result + "}"; - case mtpc_messages_sendMessage: result += "\n" + add; result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; @@ -24398,40 +24275,35 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; return "{ messages_sendMessage" + result + "}"; - case mtpc_geochats_getRecents: - result += "\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ geochats_getRecents" + result + "}"; - - case mtpc_geochats_search: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " filter: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " min_date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " max_date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ geochats_search" + result + "}"; - - case mtpc_geochats_getHistory: - result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ geochats_getHistory" + result + "}"; - - case mtpc_destroy_session: - result += "\n" + add; - result += " session_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ destroy_session" + result + "}"; - - case mtpc_account_getWallPapers: + case mtpc_help_getConfig: result = " "; - return "{ account_getWallPapers" + result + "}"; + return "{ help_getConfig" + result + "}"; + + case mtpc_req_DH_params: + result += "\n" + add; + result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " server_nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + result += " p: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " public_key_fingerprint: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " encrypted_data: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ req_DH_params" + result + "}"; + + case mtpc_messages_getChats: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; + return "{ messages_getChats" + result + "}"; + + case mtpc_contacts_importContacts: + result += "\n" + add; + result += " contacts: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " replace: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ contacts_importContacts" + result + "}"; + + case mtpc_rpc_drop_answer: + result += "\n" + add; + result += " req_msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ rpc_drop_answer" + result + "}"; case mtpc_messages_sendEncrypted: result += "\n" + add; @@ -24455,43 +24327,163 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " data: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; return "{ messages_sendEncryptedService" + result + "}"; - case mtpc_contacts_getBlocked: + case mtpc_messages_readHistory: result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_readHistory" + result + "}"; + + case mtpc_messages_deleteHistory: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_deleteHistory" + result + "}"; + + case mtpc_messages_getMessages: + result += "\n" + add; + result += " id: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; + return "{ messages_getMessages" + result + "}"; + + case mtpc_messages_getHistory: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - return "{ contacts_getBlocked" + result + "}"; + return "{ messages_getHistory" + result + "}"; + + case mtpc_messages_search: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " filter: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " min_date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " max_date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " max_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ messages_search" + result + "}"; + + case mtpc_updates_getDifference: + result += "\n" + add; + result += " pts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " date: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " qts: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ updates_getDifference" + result + "}"; + + case mtpc_contacts_getStatuses: + result = " "; + return "{ contacts_getStatuses" + result + "}"; + + case mtpc_auth_exportAuthorization: + result += "\n" + add; + result += " dc_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ auth_exportAuthorization" + result + "}"; case mtpc_contacts_deleteContact: result += "\n" + add; result += " id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; return "{ contacts_deleteContact" + result + "}"; - case mtpc_invokeAfterMsg: + case mtpc_destroy_session: result += "\n" + add; - result += " msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - result += " query: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ invokeAfterMsg" + result + "}"; + result += " session_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ destroy_session" + result + "}"; - case mtpc_invokeAfterMsgs: + case mtpc_upload_getFile: result += "\n" + add; - result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; - result += " query: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ invokeAfterMsgs" + result + "}"; + result += " location: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " offset: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ upload_getFile" + result + "}"; - case mtpc_initConnection: + case mtpc_messages_requestEncryption: result += "\n" + add; - result += " api_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " device_model: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " system_version: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " app_version: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " lang_code: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; - result += " query: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - return "{ initConnection" + result + "}"; + result += " user_id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " random_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " g_a: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + return "{ messages_requestEncryption" + result + "}"; - case mtpc_messages_getChats: + case mtpc_messages_acceptEncryption: result += "\n" + add; - result += " id: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_int) + ",\n" + add; - return "{ messages_getChats" + result + "}"; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " g_b: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; + result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ messages_acceptEncryption" + result + "}"; + + case mtpc_contacts_getSuggested: + result += "\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ contacts_getSuggested" + result + "}"; + + case mtpc_geochats_checkin: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ geochats_checkin" + result + "}"; + + case mtpc_geochats_editChatTitle: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ geochats_editChatTitle" + result + "}"; + + case mtpc_geochats_editChatPhoto: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " photo: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ geochats_editChatPhoto" + result + "}"; + + case mtpc_geochats_sendMessage: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " message: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ geochats_sendMessage" + result + "}"; + + case mtpc_geochats_sendMedia: + result += "\n" + add; + result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " media: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ geochats_sendMedia" + result + "}"; + + case mtpc_geochats_createGeoChat: + result += "\n" + add; + result += " title: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " geo_point: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " address: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " venue: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ geochats_createGeoChat" + result + "}"; + + case mtpc_contacts_search: + result += "\n" + add; + result += " q: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ contacts_search" + result + "}"; + + case mtpc_auth_checkPhone: + result += "\n" + add; + result += " phone_number: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ auth_checkPhone" + result + "}"; + + case mtpc_contacts_getContacts: + result += "\n" + add; + result += " hash: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + return "{ contacts_getContacts" + result + "}"; + + case mtpc_geochats_getLocated: + result += "\n" + add; + result += " geo_point: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + result += " radius: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " limit: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ geochats_getLocated" + result + "}"; + + case mtpc_req_pq: + result += "\n" + add; + result += " nonce: " + mtpTextSerialize(from, end, mtpc_int128, level + 1) + ",\n" + add; + return "{ req_pq" + result + "}"; case mtpc_messages_sendMedia: result += "\n" + add; @@ -24538,19 +24530,38 @@ inline QString mtpTextSerialize(const mtpPrime *&from, const mtpPrime *end, mtpP result += " random_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; return "{ messages_forwardMessage" + result + "}"; - case mtpc_messages_requestEncryption: + case mtpc_ping: result += "\n" + add; - result += " user_id: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " random_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; - result += " g_a: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - return "{ messages_requestEncryption" + result + "}"; + result += " ping_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + return "{ ping" + result + "}"; - case mtpc_messages_acceptEncryption: + case mtpc_ping_delay_disconnect: result += "\n" + add; - result += " peer: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; - result += " g_b: " + mtpTextSerialize(from, end, mtpc_bytes, level + 1) + ",\n" + add; - result += " key_fingerprint: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; - return "{ messages_acceptEncryption" + result + "}"; + result += " ping_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " disconnect_delay: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + return "{ ping_delay_disconnect" + result + "}"; + + case mtpc_invokeAfterMsg: + result += "\n" + add; + result += " msg_id: " + mtpTextSerialize(from, end, mtpc_long, level + 1) + ",\n" + add; + result += " query: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ invokeAfterMsg" + result + "}"; + + case mtpc_invokeAfterMsgs: + result += "\n" + add; + result += " msg_ids: " + mtpTextSerialize(from, end, 0, level + 1, mtpc_long) + ",\n" + add; + result += " query: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ invokeAfterMsgs" + result + "}"; + + case mtpc_initConnection: + result += "\n" + add; + result += " api_id: " + mtpTextSerialize(from, end, mtpc_int, level + 1) + ",\n" + add; + result += " device_model: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " system_version: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " app_version: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " lang_code: " + mtpTextSerialize(from, end, mtpc_string, level + 1) + ",\n" + add; + result += " query: " + mtpTextSerialize(from, end, 0, level + 1) + ",\n" + add; + return "{ initConnection" + result + "}"; } return mtpTextSerializeCore(from, end, cons, level, vcons); diff --git a/Telegram/SourceFiles/mtproto/scheme.tl b/Telegram/SourceFiles/mtproto/scheme.tl index 8b84bcf13..5afcae92d 100644 --- a/Telegram/SourceFiles/mtproto/scheme.tl +++ b/Telegram/SourceFiles/mtproto/scheme.tl @@ -30,6 +30,7 @@ //invokeWithLayer12#dda60d3c query:!X = X; //invokeWithLayer13#427c8ea2 query:!X = X; //invokeWithLayer14#2b9b08fa query:!X = X; +//invokeWithLayer15#b4418b64 query:!X = X; /////////////////////////////// /// Authorization key creation @@ -123,6 +124,7 @@ register.saveDeveloperInfo#9a5f6e95 name:string email:string phone_number:string ---types--- + inputPeerEmpty#7f3b18ea = InputPeer; inputPeerSelf#7da07ec9 = InputPeer; inputPeerContact#1023dbe8 user_id:int = InputPeer; @@ -340,6 +342,7 @@ inputMessagesFilterPhotos#9609a51c = MessagesFilter; inputMessagesFilterVideo#9fc00e65 = MessagesFilter; inputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter; inputMessagesFilterDocument#9eddf188 = MessagesFilter; +inputMessagesFilterAudio#cfc87522 = MessagesFilter; updateNewMessage#13abdb3 message:Message pts:int = Update; updateMessageID#4e90bfd6 id:int random_id:long = Update; diff --git a/Telegram/SourceFiles/profilewidget.cpp b/Telegram/SourceFiles/profilewidget.cpp index 15c7bb823..faaadeb6a 100644 --- a/Telegram/SourceFiles/profilewidget.cpp +++ b/Telegram/SourceFiles/profilewidget.cpp @@ -171,7 +171,7 @@ void ProfileInner::onClearHistory() { } void ProfileInner::onClearHistorySure() { - App::main()->showPeer(0, true); + App::main()->showPeer(0, 0, true); App::wnd()->hideLayer(); App::main()->clearHistory(_peer); } @@ -546,7 +546,7 @@ void ProfileInner::onKickConfirm() { void ProfileInner::keyPressEvent(QKeyEvent *e) { if (e->key() == Qt::Key_Escape) { - App::main()->showPeer(0, true); + App::main()->showPeer(0, 0, true); } } diff --git a/Telegram/SourceFiles/pspecific_mac.cpp b/Telegram/SourceFiles/pspecific_mac.cpp index 27045ad52..c80536ef5 100644 --- a/Telegram/SourceFiles/pspecific_mac.cpp +++ b/Telegram/SourceFiles/pspecific_mac.cpp @@ -44,7 +44,7 @@ namespace { void MacPrivate::activeSpaceChanged() { if (App::wnd()) { - App::wnd()->psActivateNotifies(); + App::wnd()->notifyActivateAll(); } } @@ -54,7 +54,7 @@ void MacPrivate::notifyClicked(unsigned long long peer) { App::wnd()->showFromTray(); App::wnd()->hideSettings(); App::main()->showPeer(history->peer->id, false, true); - App::wnd()->psClearNotify(history); + App::wnd()->notifyClear(history); } void MacPrivate::notifyReplied(unsigned long long peer, const char *str) { @@ -67,8 +67,6 @@ PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent), posInited(false), trayIcon(0), trayIconMenu(0), icon256(qsl(":/gui/art/iconround256.png")) { connect(&psIdleTimer, SIGNAL(timeout()), this, SLOT(psIdleTimeout())); psIdleTimer.setSingleShot(false); - connect(¬ifyWaitTimer, SIGNAL(timeout()), this, SLOT(psNotifyFire())); - notifyWaitTimer.setSingleShot(true); } void PsMainWindow::psNotIdle() const { @@ -287,497 +285,39 @@ void PsMainWindow::psFlash() { PsMainWindow::~PsMainWindow() { finished = true; - psClearNotifyFast(); } -void PsMainWindow::psNotify(History *history, MsgId msgId) { - if (App::quiting() || !history->notifyFrom) return; - - bool haveSetting = (history->peer->notify != UnknownNotifySettings); - if (haveSetting) { - if (history->peer->notify != EmptyNotifySettings && history->peer->notify->mute > unixtime()) { - history->clearNotifyFrom(); - return; - } - } else { - App::wnd()->getNotifySetting(MTP_inputNotifyPeer(history->peer->input)); - } - - uint64 ms = getms() + NotifyWaitTimeout; - notifyWhenAlerts[history].insert(ms); - if (cDesktopNotify()) { - NotifyWhenMaps::iterator i = notifyWhenMaps.find(history); - if (i == notifyWhenMaps.end()) { - i = notifyWhenMaps.insert(history, NotifyWhenMap()); - } - if (i.value().constFind(msgId) == i.value().cend()) { - i.value().insert(msgId, ms); - } - NotifyWaiters *addTo = haveSetting ? ¬ifyWaiters : ¬ifySettingWaiters; - if (addTo->constFind(history) == addTo->cend()) { - addTo->insert(history, NotifyWaiter(msgId, ms)); - } - } - if (haveSetting) { - if (!notifyWaitTimer.isActive()) { - notifyWaitTimer.start(NotifyWaitTimeout); - } - } +void PsMainWindow::psClearNotifies(PeerId peerId) { + _private.clearNotifies(peerId); } -void PsMainWindow::psNotifyFire() { - psShowNextNotify(); -} - -void PsMainWindow::psNotifySettingGot() { - int32 t = unixtime(); - for (NotifyWaiters::iterator i = notifySettingWaiters.begin(); i != notifySettingWaiters.end();) { - History *history = i.key(); - if (history->peer->notify == UnknownNotifySettings) { - ++i; - } else { - if (history->peer->notify == EmptyNotifySettings || history->peer->notify->mute <= t) { - notifyWaiters.insert(i.key(), i.value()); - } - i = notifySettingWaiters.erase(i); - } - } - notifyWaitTimer.stop(); - psShowNextNotify(); -} - -void PsMainWindow::psClearNotify(History *history) { - if (!history) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->unlinkHistory(); - } - _private.clearNotifies(); - for (NotifyWhenMaps::const_iterator i = notifyWhenMaps.cbegin(), e = notifyWhenMaps.cend(); i != e; ++i) { - i.key()->clearNotifyFrom(); - } - notifyWaiters.clear(); - notifySettingWaiters.clear(); - notifyWhenMaps.clear(); - return; - } - notifyWaiters.remove(history); - notifySettingWaiters.remove(history); - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->unlinkHistory(history); - } - _private.clearNotifies(history->peer->id); - notifyWhenMaps.remove(history); - notifyWhenAlerts.remove(history); -} - -void PsMainWindow::psClearNotifyFast() { - notifyWaiters.clear(); - notifySettingWaiters.clear(); - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->deleteLater(); - } - _private.clearNotifies(); - notifyWindows.clear(); - notifyWhenMaps.clear(); - notifyWhenAlerts.clear(); -} - -void PsMainWindow::psActivateNotifies() { - if (cCustomNotifies()) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - _private.activateWnd((*i)->winId()); - } - } +void PsMainWindow::psActivateNotify(NotifyWindow *w) { + _private.activateWnd(w->winId()); } namespace { QRect _monitorRect; uint64 _monitorLastGot = 0; - QRect _desktopRect() { - uint64 tnow = getms(); - if (tnow > _monitorLastGot + 1000 || tnow < _monitorLastGot) { - _monitorLastGot = tnow; - _monitorRect = QApplication::desktop()->availableGeometry(App::wnd()); - } - return _monitorRect; +} + +QRect psDesktopRect() { + uint64 tnow = getms(); + if (tnow > _monitorLastGot + 1000 || tnow < _monitorLastGot) { + _monitorLastGot = tnow; + _monitorRect = QApplication::desktop()->availableGeometry(App::wnd()); } + return _monitorRect; } -void PsMainWindow::psShowNextNotify(PsNotifyWindow *remove) { - if (App::quiting()) return; - - int32 count = NotifyWindows; - if (remove) { - for (PsNotifyWindows::iterator i = notifyWindows.begin(), e = notifyWindows.end(); i != e; ++i) { - if ((*i) == remove) { - notifyWindows.erase(i); - break; - } - } - } - - uint64 ms = getms(), nextAlert = 0; - bool alert = false; - for (NotifyWhenAlerts::iterator i = notifyWhenAlerts.begin(); i != notifyWhenAlerts.end();) { - while (!i.value().isEmpty() && *i.value().begin() <= ms) { - i.value().erase(i.value().begin()); - NotifySettingsPtr n = i.key()->peer->notify; - if (n == EmptyNotifySettings || (n != UnknownNotifySettings && n->mute <= unixtime())) { - alert = true; - } - } - if (i.value().isEmpty()) { - i = notifyWhenAlerts.erase(i); - } else { - if (!nextAlert || nextAlert > *i.value().begin()) { - nextAlert = *i.value().begin(); - } - ++i; - } - } - if (alert) { - psFlash(); - App::playSound(); - } - - if (cCustomNotifies()) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - int32 ind = (*i)->index(); - if (ind < 0) continue; - --count; - } - } - if (count <= 0 || !cDesktopNotify()) { - if (nextAlert) { - notifyWaitTimer.start(nextAlert - ms); - } - return; - } - - QRect r = _desktopRect(); - int32 x = r.x() + r.width() - st::notifyWidth - st::notifyDeltaX, y = r.y() + r.height() - st::notifyHeight - st::notifyDeltaY; - while (count > 0) { - uint64 next = 0; - HistoryItem *notifyItem = 0; - NotifyWaiters::iterator notifyWaiter; - for (NotifyWaiters::iterator i = notifyWaiters.begin(); i != notifyWaiters.end(); ++i) { - History *history = i.key(); - if (history->notifyFrom && history->notifyFrom->id != i.value().msg) { - NotifyWhenMaps::iterator j = notifyWhenMaps.find(history); - if (j == notifyWhenMaps.end()) { - history->clearNotifyFrom(); - i = notifyWaiters.erase(i); - continue; - } - do { - NotifyWhenMap::const_iterator k = j.value().constFind(history->notifyFrom->id); - if (k != j.value().cend()) { - i.value().msg = k.key(); - i.value().when = k.value(); - break; - } - history->getNextNotifyFrom(); - } while (history->notifyFrom); - } - if (!history->notifyFrom) { - notifyWhenMaps.remove(history); - i = notifyWaiters.erase(i); - continue; - } - uint64 when = i.value().when; - if (!notifyItem || next > when) { - next = when; - notifyItem = history->notifyFrom; - notifyWaiter = i; - } - } - if (notifyItem) { - if (next > ms) { - if (nextAlert && nextAlert < next) { - next = nextAlert; - nextAlert = 0; - } - notifyWaitTimer.start(next - ms); - break; - } else { - if (cCustomNotifies()) { - PsNotifyWindow *notify = new PsNotifyWindow(notifyItem, x, y); - notifyWindows.push_back(notify); - notify->hide(); - _private.holdOnTop(notify->winId()); - notify->show(); - _private.showOverAll(notify->winId()); - --count; - } else { - _private.showNotify(notifyItem->history()->peer->id, notifyItem->history()->peer->name, notifyItem->notificationHeader(), notifyItem->notificationText()); - } - - uint64 ms = getms(); - History *history = notifyItem->history(); - history->getNextNotifyFrom(); - NotifyWhenMaps::iterator j = notifyWhenMaps.find(history); - if (j == notifyWhenMaps.end() || !history->notifyFrom) { - history->clearNotifyFrom(); - notifyWaiters.erase(notifyWaiter); - if (j != notifyWhenMaps.end()) notifyWhenMaps.erase(j); - continue; - } - j.value().remove(notifyItem->id); - do { - NotifyWhenMap::const_iterator k = j.value().constFind(history->notifyFrom->id); - if (k != j.value().cend()) { - notifyWaiter.value().msg = k.key(); - notifyWaiter.value().when = k.value(); - break; - } - history->getNextNotifyFrom(); - } while (history->notifyFrom); - if (!history->notifyFrom) { - notifyWaiters.erase(notifyWaiter); - notifyWhenMaps.erase(j); - continue; - } - } - } else { - break; - } - } - if (nextAlert) { - notifyWaitTimer.start(nextAlert - ms); - } - - count = NotifyWindows - count; - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - int32 ind = (*i)->index(); - if (ind < 0) continue; - --count; - (*i)->moveTo(x, y - count * (st::notifyHeight + st::notifyDeltaY)); - } +void PsMainWindow::psNotifyShown(NotifyWindow *w) { + w->hide(); + _private.holdOnTop(w->winId()); + w->show(); + _private.showOverAll(w->winId()); } -void PsMainWindow::psStopHiding() { - if (cCustomNotifies()) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->stopHiding(); - } - } -} - -void PsMainWindow::psStartHiding() { - if (cCustomNotifies()) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->startHiding(); - } - } -} - -void PsMainWindow::psUpdateNotifies() { - if (cCustomNotifies()) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->updatePeerPhoto(); - } - } -} - -PsNotifyWindow::PsNotifyWindow(HistoryItem *item, int32 x, int32 y) : history(item->history()),// started(GetTickCount()), -close(this, st::notifyClose), alphaDuration(st::notifyFastAnim), posDuration(st::notifyFastAnim), hiding(false), _index(0), aOpacity(0), aOpacityFunc(st::notifyFastAnimFunc), aY(y + st::notifyHeight + st::notifyDeltaY) { - - int32 w = st::notifyWidth, h = st::notifyHeight; - QImage img(w * cIntRetinaFactor(), h * cIntRetinaFactor(), QImage::Format_ARGB32_Premultiplied); - if (cRetina()) img.setDevicePixelRatio(cRetinaFactor()); - img.fill(st::notifyBG->c); - - { - QPainter p(&img); - p.setPen(st::notifyBorder->p); - p.setBrush(Qt::NoBrush); - p.drawRect(0, 0, w - 1, h - 1); - - if (history->peer->photo->loaded()) { - p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), history->peer->photo->pix(st::notifyPhotoSize)); - } else { - MTP::clearLoaderPriorities(); - peerPhoto = history->peer->photo; - peerPhoto->load(true, true); - } - - int32 itemWidth = w - st::notifyPhotoPos.x() - st::notifyPhotoSize - st::notifyTextLeft - st::notifyClosePos.x() - st::notifyClose.width; - - QRect rectForName(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyTextTop, itemWidth, st::msgNameFont->height); - if (history->peer->chat) { - p.drawPixmap(QPoint(rectForName.left() + st::dlgChatImgLeft, rectForName.top() + st::dlgChatImgTop), App::sprite(), st::dlgChatImg); - rectForName.setLeft(rectForName.left() + st::dlgChatImgSkip); - } - - QDateTime now(QDateTime::currentDateTime()), lastTime(item->date); - QDate nowDate(now.date()), lastDate(lastTime.date()); - QString dt = lastTime.toString(qsl("hh:mm")); - int32 dtWidth = st::dlgHistFont->m.width(dt); - rectForName.setWidth(rectForName.width() - dtWidth - st::dlgDateSkip); - p.setFont(st::dlgDateFont->f); - p.setPen(st::dlgDateColor->p); - p.drawText(rectForName.left() + rectForName.width() + st::dlgDateSkip, rectForName.top() + st::dlgHistFont->ascent, dt); - - const HistoryItem *textCachedFor = 0; - Text itemTextCache(itemWidth); - bool active = false; - item->drawInDialog(p, QRect(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyItemTop + st::msgNameFont->height, itemWidth, 2 * st::dlgFont->height), active, textCachedFor, itemTextCache); - - p.setPen(st::dlgNameColor->p); - history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width()); - } - pm = QPixmap::fromImage(img); - - hideTimer.setSingleShot(true); - connect(&hideTimer, SIGNAL(timeout()), this, SLOT(hideByTimer())); - - inputTimer.setSingleShot(true); - connect(&inputTimer, SIGNAL(timeout()), this, SLOT(checkLastInput())); - - connect(&close, SIGNAL(clicked()), this, SLOT(unlinkHistory())); - close.setAcceptBoth(true); - close.move(w - st::notifyClose.width - st::notifyClosePos.x(), st::notifyClosePos.y()); - close.show(); - - aY.start(y); - setGeometry(x, aY.current(), st::notifyWidth, st::notifyHeight); - - aOpacity.start(1); - setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); - setAttribute(Qt::WA_MacAlwaysShowToolWindow); - - show(); - - setWindowOpacity(aOpacity.current()); - - alphaDuration = posDuration = st::notifyFastAnim; - anim::start(this); - - checkLastInput(); -} - -void PsNotifyWindow::checkLastInput() { - // TODO - if (true) { - hideTimer.start(st::notifyWaitLongHide); - } else { - inputTimer.start(300); - } -} - -void PsNotifyWindow::moveTo(int32 x, int32 y, int32 index) { - if (index >= 0) { - _index = index; - } - move(x, aY.current()); - aY.start(y); - aOpacity.restart(); - posDuration = st::notifyFastAnim; - anim::start(this); -} - -void PsNotifyWindow::updatePeerPhoto() { - if (!peerPhoto->isNull() && peerPhoto->loaded()) { - QImage img(pm.toImage()); - { - QPainter p(&img); - p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), peerPhoto->pix(st::notifyPhotoSize)); - } - peerPhoto = ImagePtr(); - pm = QPixmap::fromImage(img); - update(); - } -} - -void PsNotifyWindow::unlinkHistory(History *hist) { - if (!hist || hist == history) { - animHide(st::notifyFastAnim, st::notifyFastAnimFunc); - history = 0; - App::wnd()->psShowNextNotify(); - } -} - -void PsNotifyWindow::enterEvent(QEvent */*e*/) { - if (!history) return; - if (App::wnd()) App::wnd()->psStopHiding(); -} - -void PsNotifyWindow::leaveEvent(QEvent */*e*/) { - if (!history) return; - App::wnd()->psStartHiding(); -} - -void PsNotifyWindow::startHiding() { - hideTimer.start(st::notifyWaitShortHide); -} - -void PsNotifyWindow::mousePressEvent(QMouseEvent *e) { - if (!history) return; - if (e->button() == Qt::RightButton) { - unlinkHistory(); - } else if (history) { - App::wnd()->showFromTray(); - App::wnd()->hideSettings(); - App::main()->showPeer(history->peer->id, false, true); - unlinkHistory(); - e->ignore(); - } -} - -void PsNotifyWindow::paintEvent(QPaintEvent *e) { - QPainter p(this); - p.drawPixmap(0, 0, pm); -} - -void PsNotifyWindow::animHide(float64 duration, anim::transition func) { - if (!history) return; - alphaDuration = duration; - aOpacityFunc = func; - aOpacity.start(0); - aY.restart(); - hiding = true; - anim::start(this); -} - -void PsNotifyWindow::stopHiding() { - if (!history) return; - alphaDuration = st::notifyFastAnim; - aOpacityFunc = st::notifyFastAnimFunc; - aOpacity.start(1); - aY.restart(); - hiding = false; - hideTimer.stop(); - anim::start(this); -} - -void PsNotifyWindow::hideByTimer() { - if (!history) return; - animHide(st::notifySlowHide, st::notifySlowHideFunc); -} - -bool PsNotifyWindow::animStep(float64 ms) { - float64 dtAlpha = ms / alphaDuration, dtPos = ms / posDuration; - if (dtAlpha >= 1) { - aOpacity.finish(); - if (hiding) { - deleteLater(); - } - } else { - aOpacity.update(dtAlpha, aOpacityFunc); - } - setWindowOpacity(aOpacity.current()); - if (dtPos >= 1) { - aY.finish(); - } else { - aY.update(dtPos, anim::linear); - } - move(x(), aY.current()); - update(); - return (dtAlpha < 1 || (!hiding && dtPos < 1)); -} - -PsNotifyWindow::~PsNotifyWindow() { - if (App::wnd()) App::wnd()->psShowNextNotify(this); +void PsMainWindow::psPlatformNotify(HistoryItem *item) { + _private.showNotify(item->history()->peer->id, item->history()->peer->name, item->notificationHeader(), item->notificationText()); } PsApplication::PsApplication(int &argc, char **argv) : QApplication(argc, argv) { diff --git a/Telegram/SourceFiles/pspecific_mac.h b/Telegram/SourceFiles/pspecific_mac.h index ff26e4909..3cfca22dc 100644 --- a/Telegram/SourceFiles/pspecific_mac.h +++ b/Telegram/SourceFiles/pspecific_mac.h @@ -29,60 +29,6 @@ inline void psCheckLocalSocket(const QString &serverName) { } } - -class PsNotifyWindow : public QWidget, public Animated { - Q_OBJECT - -public: - - PsNotifyWindow(HistoryItem *item, int32 x, int32 y); - - void enterEvent(QEvent *e); - void leaveEvent(QEvent *e); - void mousePressEvent(QMouseEvent *e); - void paintEvent(QPaintEvent *e); - - bool animStep(float64 ms); - void animHide(float64 duration, anim::transition func); - void startHiding(); - void stopHiding(); - void moveTo(int32 x, int32 y, int32 index = -1); - - void updatePeerPhoto(); - - int32 index() const { - return history ? _index : -1; - } - - ~PsNotifyWindow(); - - public slots: - - void hideByTimer(); - void checkLastInput(); - - void unlinkHistory(History *hist = 0); - -private: - -// DWORD started; - - History *history; - IconedButton close; - QPixmap pm; - float64 alphaDuration, posDuration; - QTimer hideTimer, inputTimer; - bool hiding; - int32 _index; - anim::fvalue aOpacity; - anim::transition aOpacityFunc; - anim::ivalue aY; - ImagePtr peerPhoto; - -}; - -typedef QList PsNotifyWindows; - class MacPrivate : public PsMacWindowPrivate { public: @@ -92,6 +38,8 @@ public: }; +class NotifyWindow; + class PsMainWindow : public QMainWindow { Q_OBJECT @@ -114,7 +62,6 @@ public: bool psHandleTitle(); void psFlash(); - void psNotifySettingGot(); bool psIsActive(int state = -1) const; bool psIsOnline(int state) const; @@ -126,19 +73,15 @@ public: return false; } - void psNotify(History *history, MsgId msgId); - void psClearNotify(History *history = 0); - void psClearNotifyFast(); - void psShowNextNotify(PsNotifyWindow *remove = 0); - void psActivateNotifies(); - void psStopHiding(); - void psStartHiding(); - void psUpdateNotifies(); - bool psPosInited() const { return posInited; } - + + void psActivateNotify(NotifyWindow *w); + void psClearNotifies(PeerId peerId = 0); + void psNotifyShown(NotifyWindow *w); + void psPlatformNotify(HistoryItem *item); + ~PsMainWindow(); public slots: @@ -147,7 +90,6 @@ public slots: void psUpdateCounter(); void psSavePosition(Qt::WindowState state = Qt::WindowActive); void psIdleTimeout(); - void psNotifyFire(); protected: @@ -159,26 +101,6 @@ protected: QImage icon256; virtual void setupTrayIcon() { } - - typedef QMap NotifyWhenMap; - typedef QMap NotifyWhenMaps; - NotifyWhenMaps notifyWhenMaps; - struct NotifyWaiter { - NotifyWaiter(MsgId msg, uint64 when) : msg(msg), when(when) { - } - MsgId msg; - uint64 when; - }; - typedef QMap NotifyWaiters; - NotifyWaiters notifyWaiters; - NotifyWaiters notifySettingWaiters; - QTimer notifyWaitTimer; - - typedef QSet NotifyWhenAlert; - typedef QMap NotifyWhenAlerts; - NotifyWhenAlerts notifyWhenAlerts; - - PsNotifyWindows notifyWindows; QTimer psUpdatedPositionTimer; @@ -257,6 +179,8 @@ QString psAppDataPath(); QString psCurrentExeDirectory(int argc, char *argv[]); void psAutoStart(bool start, bool silent = false); +QRect psDesktopRect(); + int psCleanup(); int psFixPrevious(); diff --git a/Telegram/SourceFiles/pspecific_mac.mm b/Telegram/SourceFiles/pspecific_mac.mm deleted file mode 100644 index e145ff29c..000000000 --- a/Telegram/SourceFiles/pspecific_mac.mm +++ /dev/null @@ -1,2466 +0,0 @@ -#include "stdafx.h" -#include "pspecific.h" - -#include "lang.h" -#include "application.h" -#include "mainwidget.h" - -#define min(a, b) ((a) < (b) ? (a) : (b)) -#define max(a, b) ((a) < (b) ? (b) : (a)) - -namespace { - bool frameless = true; - bool useDWM = false; - bool useTheme = false; - bool useOpenAs = false; - bool themeInited = false; - bool finished = true; - int menuShown = 0, menuHidden = 0; - int dleft = 0, dtop = 0; - QMargins simpleMargins, margins; - //HICON bigIcon = 0, smallIcon = 0, overlayIcon = 0; - - //UINT tbCreatedMsgId = 0; - //ITaskbarList3 *tbListInterface = 0; - - /*HWND createTaskbarHider() { - HINSTANCE appinst = (HINSTANCE)GetModuleHandle(0); - HWND hWnd = 0; - - QString cn = QString("TelegramTaskbarHider"); - LPCWSTR _cn = (LPCWSTR)cn.utf16(); - WNDCLASSEX wc; - - wc.cbSize = sizeof(wc); - wc.style = 0; - wc.lpfnWndProc = DefWindowProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = appinst; - wc.hIcon = 0; - wc.hCursor = 0; - wc.hbrBackground = 0; - wc.lpszMenuName = NULL; - wc.lpszClassName = _cn; - wc.hIconSm = 0; - if (!RegisterClassEx(&wc)) { - DEBUG_LOG(("Application Error: could not register taskbar hider window class, error: %1").arg(GetLastError())); - return hWnd; - } - - hWnd = CreateWindowEx(WS_EX_TOOLWINDOW, _cn, 0, WS_POPUP, 0, 0, 0, 0, 0, 0, appinst, 0); - if (!hWnd) { - DEBUG_LOG(("Application Error: could not create taskbar hider window class, error: %1").arg(GetLastError())); - return hWnd; - } - return hWnd; - } - - enum { - _PsShadowMoved = 0x01, - _PsShadowResized = 0x02, - _PsShadowShown = 0x04, - _PsShadowHidden = 0x08, - _PsShadowActivate = 0x10, - }; - - enum { - _PsInitHor = 0x01, - _PsInitVer = 0x02, - }; - - int32 _psSize = 0; - class _PsShadowWindows { - public: - - _PsShadowWindows() : screenDC(0), max_w(0), max_h(0), _x(0), _y(0), _w(0), _h(0), hidden(true), r(0), g(0), b(0), noKeyColor(RGB(255, 255, 255)) { - for (int i = 0; i < 4; ++i) { - dcs[i] = 0; - bitmaps[i] = 0; - hwnds[i] = 0; - } - } - - void setColor(QColor c) { - r = c.red(); - g = c.green(); - b = c.blue(); - - if (!hwnds[0]) return; - Gdiplus::SolidBrush brush(Gdiplus::Color(_alphas[0], r, g, b)); - for (int i = 0; i < 4; ++i) { - Gdiplus::Graphics graphics(dcs[i]); - graphics.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - if ((i % 2) && _h || !(i % 2) && _w) { - graphics.FillRectangle(&brush, 0, 0, (i % 2) ? _size : _w, (i % 2) ? _h : _size); - } - } - initCorners(); - - _x = _y = _w = _h = 0; - update(_PsShadowMoved | _PsShadowResized); - } - - bool init(QColor c) { - style::rect topLeft = st::wndShadow; - _fullsize = topLeft.width(); - _shift = st::wndShadowShift; - QImage cornersImage(_fullsize, _fullsize, QImage::Format_ARGB32_Premultiplied); - { - QPainter p(&cornersImage); - p.drawPixmap(QPoint(0, 0), App::sprite(), topLeft); - } - uchar *bits = cornersImage.bits(); - if (bits) { - for ( - quint32 *p = (quint32*)bits, *end = (quint32*)(bits + cornersImage.byteCount()); - p < end; - ++p - ) { - *p = (*p ^ 0x00ffffff) << 24; - } - } - - _metaSize = _fullsize + 2 * _shift; - _alphas.reserve(_metaSize); - _colors.reserve(_metaSize * _metaSize); - for (int32 j = 0; j < _metaSize; ++j) { - for (int32 i = 0; i < _metaSize; ++i) { - _colors.push_back((i < 2 * _shift || j < 2 * _shift) ? 1 : qMax(BYTE(1), BYTE(cornersImage.pixel(QPoint(i - 2 * _shift, j - 2 * _shift)) >> 24))); - } - } - uchar prev = 0; - for (int32 i = 0; i < _metaSize; ++i) { - uchar a = _colors[(_metaSize - 1) * _metaSize + i]; - if (a < prev) break; - - _alphas.push_back(a); - prev = a; - } - _psSize = _size = _alphas.size() - 2 * _shift; - - setColor(c); - - Gdiplus::GdiplusStartupInput gdiplusStartupInput; - ULONG_PTR gdiplusToken; - Gdiplus::Status gdiRes = Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); - - if (gdiRes != Gdiplus::Ok) { - DEBUG_LOG(("Application Error: could not init GDI+, error: %1").arg((int)gdiRes)); - return false; - } - blend.AlphaFormat = AC_SRC_ALPHA; - blend.SourceConstantAlpha = 255; - blend.BlendFlags = 0; - blend.BlendOp = AC_SRC_OVER; - - screenDC = GetDC(0); - if (!screenDC) return false; - - QRect avail(QDesktopWidget().availableGeometry()); - max_w = avail.width(); - if (max_w < st::wndMinWidth) max_w = st::wndMinWidth; - max_h = avail.height(); - if (max_h < st::wndMinHeight) max_h = st::wndMinHeight; - - HINSTANCE appinst = (HINSTANCE)GetModuleHandle(0); - - for (int i = 0; i < 4; ++i) { - QString cn = QString("TelegramShadow%1").arg(i); - LPCWSTR _cn = (LPCWSTR)cn.utf16(); - WNDCLASSEX wc; - - wc.cbSize = sizeof(wc); - wc.style = 0; - wc.lpfnWndProc = wndProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = appinst; - wc.hIcon = 0; - wc.hCursor = 0; - wc.hbrBackground = 0; - wc.lpszMenuName = NULL; - wc.lpszClassName = _cn; - wc.hIconSm = 0; - if (!RegisterClassEx(&wc)) { - DEBUG_LOG(("Application Error: could not register shadow window class %1, error: %2").arg(i).arg(GetLastError())); - destroy(); - return false; - } - - hwnds[i] = CreateWindowEx(WS_EX_LAYERED | WS_EX_TOOLWINDOW, _cn, 0, WS_POPUP, 0, 0, 0, 0, 0, 0, appinst, 0); - if (!hwnds[i]) { - DEBUG_LOG(("Application Error: could not create shadow window class %1, error: %2").arg(i).arg(GetLastError())); - destroy(); - return false; - } - - dcs[i] = CreateCompatibleDC(screenDC); - if (!dcs[i]) { - DEBUG_LOG(("Application Error: could not create dc for shadow window class %1, error: %2").arg(i).arg(GetLastError())); - destroy(); - return false; - } - - bitmaps[i] = CreateCompatibleBitmap(screenDC, (i % 2) ? _size : max_w, (i % 2) ? max_h : _size); - if (!bitmaps[i]) { - DEBUG_LOG(("Application Error: could not create bitmap for shadow window class %1, error: %2").arg(i).arg(GetLastError())); - destroy(); - return false; - } - - SelectObject(dcs[i], bitmaps[i]); - } - - initCorners(); - return true; - } - - void initCorners(int directions = (_PsInitHor | _PsInitVer)) { - bool hor = (directions & _PsInitHor), ver = (directions & _PsInitVer); - Gdiplus::Graphics graphics0(dcs[0]), graphics1(dcs[1]), graphics2(dcs[2]), graphics3(dcs[3]); - graphics0.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - graphics1.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - graphics2.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - graphics3.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - - Gdiplus::SolidBrush brush(Gdiplus::Color(_alphas[0], r, g, b)); - if (hor) graphics0.FillRectangle(&brush, 0, 0, _fullsize - (_size - _shift), 2 * _shift); - - if (ver) { - graphics1.FillRectangle(&brush, 0, 0, _size, 2 * _shift); - graphics3.FillRectangle(&brush, 0, 0, _size, 2 * _shift); - graphics1.FillRectangle(&brush, _size - _shift, 2 * _shift, _shift, _fullsize); - graphics3.FillRectangle(&brush, 0, 2 * _shift, _shift, _fullsize); - } - - if (hor) { - for (int j = 2 * _shift; j < _size; ++j) { - for (int k = 0; k < _fullsize - (_size - _shift); ++k) { - brush.SetColor(Gdiplus::Color(_colors[j * _metaSize + k + (_size + _shift)], r, g, b)); - graphics0.FillRectangle(&brush, k, j, 1, 1); - graphics2.FillRectangle(&brush, k, _size - (j - 2 * _shift) - 1, 1, 1); - } - } - for (int j = _size; j < _size + 2 * _shift; ++j) { - for (int k = 0; k < _fullsize - (_size - _shift); ++k) { - brush.SetColor(Gdiplus::Color(_colors[j * _metaSize + k + (_size + _shift)], r, g, b)); - graphics2.FillRectangle(&brush, k, _size - (j - 2 * _shift) - 1, 1, 1); - } - } - } - if (ver) { - for (int j = 2 * _shift; j < _fullsize + 2 * _shift; ++j) { - for (int k = _shift; k < _size; ++k) { - brush.SetColor(Gdiplus::Color(_colors[j * _metaSize + (k + _shift)], r, g, b)); - graphics1.FillRectangle(&brush, _size - k - 1, j, 1, 1); - graphics3.FillRectangle(&brush, k, j, 1, 1); - } - } - } - } - void verCorners(int h, Gdiplus::Graphics *pgraphics1, Gdiplus::Graphics *pgraphics3) { - Gdiplus::SolidBrush brush(Gdiplus::Color(_alphas[0], r, g, b)); - pgraphics1->FillRectangle(&brush, _size - _shift, h - _fullsize, _shift, _fullsize); - pgraphics3->FillRectangle(&brush, 0, h - _fullsize, _shift, _fullsize); - for (int j = 0; j < _fullsize; ++j) { - for (int k = _shift; k < _size; ++k) { - brush.SetColor(Gdiplus::Color(_colors[(j + 2 * _shift) * _metaSize + k + _shift], r, g, b)); - pgraphics1->FillRectangle(&brush, _size - k - 1, h - j - 1, 1, 1); - pgraphics3->FillRectangle(&brush, k, h - j - 1, 1, 1); - } - } - } - void horCorners(int w, Gdiplus::Graphics *pgraphics0, Gdiplus::Graphics *pgraphics2) { - Gdiplus::SolidBrush brush(Gdiplus::Color(_alphas[0], r, g, b)); - pgraphics0->FillRectangle(&brush, w - 2 * _size - (_fullsize - (_size - _shift)), 0, _fullsize - (_size - _shift), 2 * _shift); - for (int j = 2 * _shift; j < _size; ++j) { - for (int k = 0; k < _fullsize - (_size - _shift); ++k) { - brush.SetColor(Gdiplus::Color(_colors[j * _metaSize + k + (_size + _shift)], r, g, b)); - pgraphics0->FillRectangle(&brush, w - 2 * _size - k - 1, j, 1, 1); - pgraphics2->FillRectangle(&brush, w - 2 * _size - k - 1, _size - (j - 2 * _shift) - 1, 1, 1); - } - } - for (int j = _size; j < _size + 2 * _shift; ++j) { - for (int k = 0; k < _fullsize - (_size - _shift); ++k) { - brush.SetColor(Gdiplus::Color(_colors[j * _metaSize + k + (_size + _shift)], r, g, b)); - pgraphics2->FillRectangle(&brush, w - 2 * _size - k - 1, _size - (j - 2 * _shift) - 1, 1, 1); - } - } - } - - void update(int changes, WINDOWPOS *pos = 0) { - HWND hwnd = Application::wnd() ? Application::wnd()->psHwnd() : 0; - if (!hwnd || !hwnds[0]) return; - - if (changes == _PsShadowActivate) { - for (int i = 0; i < 4; ++i) { - SetWindowPos(hwnds[i], hwnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); - } - return; - } - - if (changes & _PsShadowHidden) { - if (!hidden) { - for (int i = 0; i < 4; ++i) { - hidden = true; - ShowWindow(hwnds[i], SW_HIDE); - } - } - return; - } - if (!Application::wnd()->psPosInited()) return; - - int x = _x, y = _y, w = _w, h = _h; - if (pos && (!(pos->flags & SWP_NOMOVE) || !(pos->flags & SWP_NOSIZE) || !(pos->flags & SWP_NOREPOSITION))) { - if (!(pos->flags & SWP_NOMOVE)) { - x = pos->x - _size; - y = pos->y - _size; - } else if (pos->flags & SWP_NOSIZE) { - for (int i = 0; i < 4; ++i) { - SetWindowPos(hwnds[i], hwnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); - } - return; - } - if (!(pos->flags & SWP_NOSIZE)) { - w = pos->cx + 2 * _size; - h = pos->cy + 2 * _size; - } - } else { - RECT r; - GetWindowRect(hwnd, &r); - x = r.left - _size; - y = r.top - _size; - w = r.right + _size - x; - h = r.bottom + _size - y; - } - if (h < 2 * _fullsize + 2 * _shift) { - h = 2 * _fullsize + 2 * _shift; - } - if (w < 2 * (_fullsize + _shift)) { - w = 2 * (_fullsize + _shift); - } - - if (w != _w) { - int from = (_w > 2 * (_fullsize + _shift)) ? (_w - _size - _fullsize - _shift) : (_fullsize - (_size - _shift)); - int to = w - _size - _fullsize - _shift; - if (w > max_w) { - from = _fullsize - (_size - _shift); - max_w *= 2; - for (int i = 0; i < 4; i += 2) { - DeleteObject(bitmaps[i]); - bitmaps[i] = CreateCompatibleBitmap(screenDC, max_w, _size); - SelectObject(dcs[i], bitmaps[i]); - } - initCorners(_PsInitHor); - } - Gdiplus::Graphics graphics0(dcs[0]), graphics2(dcs[2]); - graphics0.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - graphics2.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - Gdiplus::SolidBrush brush(Gdiplus::Color(_alphas[0], r, g, b)); - if (to > from) { - graphics0.FillRectangle(&brush, from, 0, to - from, 2 * _shift); - for (int i = 2 * _shift; i < _size; ++i) { - Gdiplus::Pen pen(Gdiplus::Color(_alphas[i], r, g, b)); - graphics0.DrawLine(&pen, from, i, to, i); - graphics2.DrawLine(&pen, from, _size - (i - 2 * _shift) - 1, to, _size - (i - 2 * _shift) - 1); - } - for (int i = _size; i < _size + 2 * _shift; ++i) { - Gdiplus::Pen pen(Gdiplus::Color(_alphas[i], r, g, b)); - graphics2.DrawLine(&pen, from, _size - (i - 2 * _shift) - 1, to, _size - (i - 2 * _shift) - 1); - } - } - if (_w > w) { - graphics0.FillRectangle(&brush, w - _size - _fullsize - _shift, 0, _fullsize - (_size - _shift), _size); - graphics2.FillRectangle(&brush, w - _size - _fullsize - _shift, 0, _fullsize - (_size - _shift), _size); - } - horCorners(w, &graphics0, &graphics2); - POINT p0 = { x + _size, y }, p2 = { x + _size, y + h - _size }, f = { 0, 0 }; - SIZE s = { w - 2 * _size, _size }; - updateWindow(0, &p0, &s); - updateWindow(2, &p2, &s); - } else if (x != _x || y != _y) { - POINT p0 = { x + _size, y }, p2 = { x + _size, y + h - _size }; - updateWindow(0, &p0); - updateWindow(2, &p2); - } else if (h != _h) { - POINT p2 = { x + _size, y + h - _size }; - updateWindow(2, &p2); - } - - if (h != _h) { - int from = (_h > 2 * _fullsize + 2 * _shift) ? (_h - _fullsize) : (_fullsize + 2 * _shift); - int to = h - _fullsize; - if (h > max_h) { - from = (_fullsize + 2 * _shift); - max_h *= 2; - for (int i = 1; i < 4; i += 2) { - DeleteObject(bitmaps[i]); - bitmaps[i] = CreateCompatibleBitmap(dcs[i], _size, max_h); - SelectObject(dcs[i], bitmaps[i]); - } - initCorners(_PsInitVer); - } - Gdiplus::Graphics graphics1(dcs[1]), graphics3(dcs[3]); - graphics1.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - graphics3.SetCompositingMode(Gdiplus::CompositingModeSourceCopy); - - Gdiplus::SolidBrush brush(Gdiplus::Color(_alphas[0], r, g, b)); - if (to > from) { - graphics1.FillRectangle(&brush, _size - _shift, from, _shift, to - from); - graphics3.FillRectangle(&brush, 0, from, _shift, to - from); - for (int i = 2 * _shift; i < _size + _shift; ++i) { - Gdiplus::Pen pen(Gdiplus::Color(_alphas[i], r, g, b)); - graphics1.DrawLine(&pen, _size + _shift - i - 1, from, _size + _shift - i - 1, to); - graphics3.DrawLine(&pen, i - _shift, from, i - _shift, to); - } - } - if (_h > h) { - graphics1.FillRectangle(&brush, 0, h - _fullsize, _size, _fullsize); - graphics3.FillRectangle(&brush, 0, h - _fullsize, _size, _fullsize); - } - verCorners(h, &graphics1, &graphics3); - - POINT p1 = {x + w - _size, y}, p3 = {x, y}, f = {0, 0}; - SIZE s = { _size, h }; - updateWindow(1, &p1, &s); - updateWindow(3, &p3, &s); - } else if (x != _x || y != _y) { - POINT p1 = { x + w - _size, y }, p3 = { x, y }; - updateWindow(1, &p1); - updateWindow(3, &p3); - } else if (w != _w) { - POINT p1 = { x + w - _size, y }; - updateWindow(1, &p1); - } - _x = x; - _y = y; - _w = w; - _h = h; - - if (hidden && (changes & _PsShadowShown)) { - for (int i = 0; i < 4; ++i) { - SetWindowPos(hwnds[i], hwnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW | SWP_NOACTIVATE); - } - hidden = false; - } - } - - void updateWindow(int i, POINT *p, SIZE *s = 0) { - static POINT f = {0, 0}; - if (s) { - UpdateLayeredWindow(hwnds[i], (s ? screenDC : 0), p, s, (s ? dcs[i] : 0), (s ? (&f) : 0), noKeyColor, &blend, ULW_ALPHA); - } else { - SetWindowPos(hwnds[i], 0, p->x, p->y, 0, 0, SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER); - } - } - - void destroy() { - for (int i = 0; i < 4; ++i) { - if (dcs[i]) DeleteDC(dcs[i]); - if (bitmaps[i]) DeleteObject(bitmaps[i]); - if (hwnds[i]) DestroyWindow(hwnds[i]); - dcs[i] = 0; - bitmaps[i] = 0; - hwnds[i] = 0; - } - if (screenDC) ReleaseDC(0, screenDC); - } - - private: - - int _x, _y, _w, _h; - int _metaSize, _fullsize, _size, _shift; - QVector _alphas, _colors; - - bool hidden; - - HWND hwnds[4]; - HDC dcs[4], screenDC; - HBITMAP bitmaps[4]; - int max_w, max_h; - BLENDFUNCTION blend; - - BYTE r, g, b; - COLORREF noKeyColor; - - static LRESULT CALLBACK _PsShadowWindows::wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - }; - _PsShadowWindows _psShadowWindows; - - LRESULT CALLBACK _PsShadowWindows::wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - if (finished) return DefWindowProc(hwnd, msg, wParam, lParam); - - int i; - for (i = 0; i < 4; ++i) { - if (_psShadowWindows.hwnds[i] && hwnd == _psShadowWindows.hwnds[i]) { - break; - } - } - if (i == 4) return DefWindowProc(hwnd, msg, wParam, lParam); - - switch (msg) { - case WM_CLOSE: - Application::wnd()->close(); - break; - case WM_NCHITTEST: { - int32 xPos = GET_X_LPARAM(lParam), yPos = GET_Y_LPARAM(lParam); - switch (i) { - case 0: return HTTOP; - case 1: return (yPos < _psShadowWindows._y + _psSize) ? HTTOPRIGHT : ((yPos >= _psShadowWindows._y + _psShadowWindows._h - _psSize) ? HTBOTTOMRIGHT : HTRIGHT); - case 2: return HTBOTTOM; - case 3: return (yPos < _psShadowWindows._y + _psSize) ? HTTOPLEFT : ((yPos >= _psShadowWindows._y + _psShadowWindows._h - _psSize) ? HTBOTTOMLEFT : HTLEFT); - } - return HTTRANSPARENT; - } break; - - case WM_NCACTIVATE: return DefWindowProc(hwnd, msg, wParam, lParam); - case WM_NCLBUTTONDOWN: - case WM_NCLBUTTONUP: - case WM_NCLBUTTONDBLCLK: - case WM_NCMBUTTONDOWN: - case WM_NCMBUTTONUP: - case WM_NCMBUTTONDBLCLK: - case WM_NCRBUTTONDOWN: - case WM_NCRBUTTONUP: - case WM_NCRBUTTONDBLCLK: - case WM_NCXBUTTONDOWN: - case WM_NCXBUTTONUP: - case WM_NCXBUTTONDBLCLK: - case WM_NCMOUSEHOVER: - case WM_NCMOUSELEAVE: - case WM_NCMOUSEMOVE: - case WM_NCPOINTERUPDATE: - case WM_NCPOINTERDOWN: - case WM_NCPOINTERUP: - if (App::wnd() && App::wnd()->psHwnd()) { - if (msg == WM_NCLBUTTONDOWN) { - ::SetForegroundWindow(App::wnd()->psHwnd()); - } - LRESULT res = SendMessage(App::wnd()->psHwnd(), msg, wParam, lParam); - return res; - } - return 0; - break; - case WM_ACTIVATE: - if (App::wnd() && App::wnd()->psHwnd() && wParam == WA_ACTIVE) { - if ((HWND)lParam != App::wnd()->psHwnd()) { - ::SetForegroundWindow(hwnd); - ::SetWindowPos(App::wnd()->psHwnd(), hwnd, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - } - } - return DefWindowProc(hwnd, msg, wParam, lParam); - break; - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - } - return 0; - } - - QColor _shActive(0, 0, 0), _shInactive(0, 0, 0); - - typedef BOOL (FAR STDAPICALLTYPE *f_dwmDefWindowProc)(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, _Out_ LRESULT *plResult); - f_dwmDefWindowProc dwmDefWindowProc; - - typedef HRESULT (FAR STDAPICALLTYPE *f_dwmSetWindowAttribute)(HWND hWnd, DWORD dwAttribute, _In_ LPCVOID pvAttribute, DWORD cbAttribute); - f_dwmSetWindowAttribute dwmSetWindowAttribute; - - typedef HRESULT (FAR STDAPICALLTYPE *f_dwmExtendFrameIntoClientArea)(HWND hWnd, const MARGINS *pMarInset); - f_dwmExtendFrameIntoClientArea dwmExtendFrameIntoClientArea; - - typedef HRESULT (FAR STDAPICALLTYPE *f_setWindowTheme)(HWND hWnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList); - f_setWindowTheme setWindowTheme; - - typedef HRESULT (FAR STDAPICALLTYPE *f_openAs_RunDLL)(HWND hWnd, HINSTANCE hInstance, LPCWSTR lpszCmdLine, int nCmdShow); - f_openAs_RunDLL openAs_RunDLL; - - typedef HRESULT (FAR STDAPICALLTYPE *f_shOpenWithDialog)(HWND hwndParent, const OPENASINFO *poainfo); - f_shOpenWithDialog shOpenWithDialog; - - template - bool loadFunction(HINSTANCE dll, LPCSTR name, TFunction &func) { - if (!dll) return false; - - func = (TFunction)GetProcAddress(dll, name); - return !!func; - } - - class _PsInitializer { - public: - _PsInitializer() { - setupDWM(); - useDWM = true; - frameless = !useDWM; - - setupUx(); - setupOpenAs(); - } - void setupDWM() { - HINSTANCE procId = LoadLibrary(L"DWMAPI.DLL"); - - if (!loadFunction(procId, "DwmDefWindowProc", dwmDefWindowProc)) return; - if (!loadFunction(procId, "DwmSetWindowAttribute", dwmSetWindowAttribute)) return; - if (!loadFunction(procId, "DwmExtendFrameIntoClientArea", dwmExtendFrameIntoClientArea)) return; - useDWM = true; - } - void setupUx() { - HINSTANCE procId = LoadLibrary(L"UXTHEME.DLL"); - - if (!loadFunction(procId, "SetWindowTheme", setWindowTheme)) return; - useTheme = true; - } - void setupOpenAs() { - HINSTANCE procId = LoadLibrary(L"SHELL32.DLL"); - - if (!loadFunction(procId, "SHOpenWithDialog", shOpenWithDialog) && !loadFunction(procId, "OpenAs_RunDLLW", openAs_RunDLL)) return; - useOpenAs = true; - } - }; - _PsInitializer _psInitializer; - - class _PsEventFilter : public QAbstractNativeEventFilter { - public: - _PsEventFilter() { - } - - bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) { - Window *wnd = Application::wnd(); - if (!wnd) return false; - - MSG *msg = (MSG*)message; - if (msg->message == WM_ENDSESSION) { - App::quit(); - return false; - } - if (msg->hwnd == wnd->psHwnd() || msg->hwnd && !wnd->psHwnd()) { - return mainWindowEvent(msg->hwnd, msg->message, msg->wParam, msg->lParam, (LRESULT*)result); - } - return false; - } - - bool mainWindowEvent(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, LRESULT *result) { - if (tbCreatedMsgId && msg == tbCreatedMsgId) { - if (CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_ALL, IID_ITaskbarList3, (void**)&tbListInterface) != S_OK) { - tbListInterface = 0; - } - } - switch (msg) { - - case WM_DESTROY: { - App::quit(); - } return false; - - case WM_ACTIVATE: { - if (LOWORD(wParam) == WA_CLICKACTIVE) { - App::wnd()->inactivePress(true); - } - Application::wnd()->psUpdateMargins(); - if (LOWORD(wParam) != WA_INACTIVE) { - _psShadowWindows.setColor(_shActive); - _psShadowWindows.update(_PsShadowActivate); - } else { - _psShadowWindows.setColor(_shInactive); - } - QTimer::singleShot(0, Application::wnd(), SLOT(psUpdateCounter())); - Application::wnd()->update(); - } return false; - - case WM_NCPAINT: if (QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS8) return false; *result = 0; return true; - - case WM_NCCALCSIZE: if (!useDWM) return false; { - if (wParam == TRUE) { - LPNCCALCSIZE_PARAMS params = (LPNCCALCSIZE_PARAMS)lParam; - params->rgrc[0].left += margins.left() - simpleMargins.left(); - params->rgrc[0].top += margins.top() - simpleMargins.top(); - params->rgrc[0].right -= margins.right() - simpleMargins.right(); - params->rgrc[0].bottom -= margins.bottom() - simpleMargins.bottom(); - } else if (wParam == FALSE) { - LPRECT rect = (LPRECT)lParam; - - rect->left += margins.left() - simpleMargins.left(); - rect->top += margins.top() - simpleMargins.top(); - rect->right += margins.right() - simpleMargins.right(); - rect->bottom += margins.bottom() - simpleMargins.bottom(); - } - *result = 0; - } return true; - - case WM_NCACTIVATE: { - Application::wnd()->psUpdateMargins(); - *result = LRESULT(TRUE); - Application::wnd()->repaint(); - } return true; - - case WM_WINDOWPOSCHANGING: - case WM_WINDOWPOSCHANGED: { - _psShadowWindows.update(_PsShadowMoved | _PsShadowResized, (WINDOWPOS*)lParam); - } return false; - - case WM_SIZE: { - if (App::wnd()) { - if (wParam == SIZE_MAXIMIZED || wParam == SIZE_RESTORED || wParam == SIZE_MINIMIZED) { - if (wParam != SIZE_RESTORED || App::wnd()->windowState() != Qt::WindowNoState) { - Qt::WindowState state = Qt::WindowNoState; - if (wParam == SIZE_MAXIMIZED) { - state = Qt::WindowMaximized; - } else if (wParam == SIZE_MINIMIZED) { - state = Qt::WindowMinimized; - } - emit App::wnd()->windowHandle()->windowStateChanged(state); - } else { - App::wnd()->psUpdatedPosition(); - } - int changes = (wParam == SIZE_MINIMIZED || wParam == SIZE_MAXIMIZED) ? _PsShadowHidden : (_PsShadowResized | _PsShadowShown); - _psShadowWindows.update(changes); - } - } - } return false; - - case WM_SHOWWINDOW: { - LONG style = GetWindowLong(hWnd, GWL_STYLE); - int changes = _PsShadowResized | ((wParam && !(style & (WS_MAXIMIZE | WS_MINIMIZE))) ? _PsShadowShown : _PsShadowHidden); - _psShadowWindows.update(changes); - } return false; - - case WM_MOVE: { - _psShadowWindows.update(_PsShadowMoved); - App::wnd()->psUpdatedPosition(); - } return false; - - case WM_NCHITTEST: { - POINTS p = MAKEPOINTS(lParam); - RECT r; - GetWindowRect(hWnd, &r); - HitTestType res = Application::wnd()->hitTest(QPoint(p.x - r.left + dleft, p.y - r.top + dtop)); - switch (res) { - case HitTestClient: - case HitTestSysButton: *result = HTCLIENT; break; - case HitTestIcon: *result = HTCAPTION; break; - case HitTestCaption: *result = HTCAPTION; break; - case HitTestTop: *result = HTTOP; break; - case HitTestTopRight: *result = HTTOPRIGHT; break; - case HitTestRight: *result = HTRIGHT; break; - case HitTestBottomRight: *result = HTBOTTOMRIGHT; break; - case HitTestBottom: *result = HTBOTTOM; break; - case HitTestBottomLeft: *result = HTBOTTOMLEFT; break; - case HitTestLeft: *result = HTLEFT; break; - case HitTestTopLeft: *result = HTTOPLEFT; break; - case HitTestNone: - default: *result = HTTRANSPARENT; break; - }; - } return true; - - case WM_NCRBUTTONUP: { - SendMessage(hWnd, WM_SYSCOMMAND, SC_MOUSEMENU, lParam); - } return true; - - case WM_NCLBUTTONDOWN: { - POINTS p = MAKEPOINTS(lParam); - RECT r; - GetWindowRect(hWnd, &r); - HitTestType res = Application::wnd()->hitTest(QPoint(p.x - r.left + dleft, p.y - r.top + dtop)); - switch (res) { - case HitTestIcon: - if (menuHidden && getms() < menuHidden + 10) { - menuHidden = 0; - if (getms() < menuShown + GetDoubleClickTime()) { - Application::wnd()->close(); - } - } else { - QRect icon = Application::wnd()->iconRect(); - p.x = r.left - dleft + icon.left(); - p.y = r.top - dtop + icon.top() + icon.height(); - Application::wnd()->psUpdateSysMenu(Application::wnd()->windowHandle()->windowState()); - menuShown = getms(); - menuHidden = 0; - TrackPopupMenu(Application::wnd()->psMenu(), TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON, p.x, p.y, 0, hWnd, 0); - menuHidden = getms(); - } - return true; - }; - } return false; - - case WM_NCLBUTTONDBLCLK: { - POINTS p = MAKEPOINTS(lParam); - RECT r; - GetWindowRect(hWnd, &r); - HitTestType res = Application::wnd()->hitTest(QPoint(p.x - r.left + dleft, p.y - r.top + dtop)); - switch (res) { - case HitTestIcon: Application::wnd()->close(); return true; - }; - } return false; - - case WM_SYSCOMMAND: { - if (wParam == SC_MOUSEMENU) { - POINTS p = MAKEPOINTS(lParam); - Application::wnd()->psUpdateSysMenu(Application::wnd()->windowHandle()->windowState()); - TrackPopupMenu(Application::wnd()->psMenu(), TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON, p.x, p.y, 0, hWnd, 0); - } - } return false; - - case WM_COMMAND: { - if (HIWORD(wParam)) return false; - int cmd = LOWORD(wParam); - switch (cmd) { - case SC_CLOSE: Application::wnd()->close(); return true; - case SC_MINIMIZE: Application::wnd()->setWindowState(Qt::WindowMinimized); return true; - case SC_MAXIMIZE: Application::wnd()->setWindowState(Qt::WindowMaximized); return true; - case SC_RESTORE: Application::wnd()->setWindowState(Qt::WindowNoState); return true; - } - } return true; - - } - return false; - } - }; - _PsEventFilter *_psEventFilter = 0;*/ - -}; - -PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent), -posInited(false), trayIcon(0), trayIconMenu(0), icon256(qsl(":/gui/art/iconround256.png")) { - - //tbCreatedMsgId = RegisterWindowMessage(L"TaskbarButtonCreated"); - icon16 = icon256.scaledToWidth(16, Qt::SmoothTransformation); - icon32 = icon256.scaledToWidth(32, Qt::SmoothTransformation); - //connect(&psIdleTimer, SIGNAL(timeout()), this, SLOT(psIdleTimeout())); - //psIdleTimer.setSingleShot(false); -} - -void PsMainWindow::psIdleTimeout() { - /*LASTINPUTINFO lii; - lii.cbSize = sizeof(LASTINPUTINFO); - BOOL res = GetLastInputInfo(&lii); - if (res) { - uint64 ticks = GetTickCount(); - if (lii.dwTime >= ticks - IdleMsecs) { - psIdle = false; - psIdleTimer.stop(); - if (App::main()) App::main()->setOnline(); - } - }*/ -} - -bool PsMainWindow::psIsActive() const { - return isActiveWindow() && isVisible() && !(windowState() & Qt::WindowMinimized); -} - -bool PsMainWindow::psIsOnline(int windowState) const { - if (windowState < 0) windowState = this->windowState(); - if (windowState & Qt::WindowMinimized) { - return false; - } else if (!isVisible()) { - return false; - } - /*LASTINPUTINFO lii; - lii.cbSize = sizeof(LASTINPUTINFO); - BOOL res = GetLastInputInfo(&lii); - if (res) { - uint64 ticks = GetTickCount(); - if (lii.dwTime < ticks - IdleMsecs) { - if (!psIdle) { - psIdle = true; - psIdleTimer.start(900); - } - return false; - } else { - psIdle = false; - psIdleTimer.stop(); - } - }*/ - return true; -} - -void PsMainWindow::psRefreshTaskbarIcon() { - /*QWidget *w = new QWidget(this); - w->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint); - w->setGeometry(x() + 1, y() + 1, 1, 1); - QPalette p(w->palette()); - p.setColor(QPalette::Background, st::titleBG->c); - QWindow *wnd = w->windowHandle(); - w->setPalette(p); - w->show(); - w->activateWindow(); - delete w;*/ -} - -void PsMainWindow::psUpdateWorkmode() { - /*switch (cWorkMode()) { - case dbiwmWindowAndTray: { - setupTrayIcon(); - HWND psOwner = (HWND)GetWindowLong(ps_hWnd, GWL_HWNDPARENT); - if (psOwner) { - SetWindowLong(ps_hWnd, GWL_HWNDPARENT, 0); - psRefreshTaskbarIcon(); - } - } break; - - case dbiwmTrayOnly: { - setupTrayIcon(); - HWND psOwner = (HWND)GetWindowLong(ps_hWnd, GWL_HWNDPARENT); - if (!psOwner) { - SetWindowLong(ps_hWnd, GWL_HWNDPARENT, (LONG)ps_tbHider_hWnd); - } - } break; - - case dbiwmWindowOnly: { - if (trayIconMenu) trayIconMenu->deleteLater(); - trayIconMenu = 0; - if (trayIcon) trayIcon->deleteLater(); - trayIcon = 0; - - HWND psOwner = (HWND)GetWindowLong(ps_hWnd, GWL_HWNDPARENT); - if (psOwner) { - SetWindowLong(ps_hWnd, GWL_HWNDPARENT, 0); - psRefreshTaskbarIcon(); - } - } break; - }*/ -} - -/*HICON qt_pixmapToWinHICON(const QPixmap &); -static HICON _qt_createHIcon(const QIcon &icon, int xSize, int ySize) { - if (!icon.isNull()) { - const QPixmap pm = icon.pixmap(icon.actualSize(QSize(xSize, ySize))); - if (!pm.isNull()) - return qt_pixmapToWinHICON(pm); - } - return 0; -}*/ - -void PsMainWindow::psUpdateCounter() { - int32 counter = App::histories().unreadFull; - style::color bg = (App::histories().unreadMuted < counter) ? st::counterBG : st::counterMuteBG; - QIcon icon; - QImage cicon16(icon16), cicon32(icon32); - if (counter > 0) { - { - QString cnt = (counter < 1000) ? QString("%1").arg(counter) : QString("..%1").arg(counter % 100, 2, 10, QChar('0')); - QPainter p16(&cicon16); - p16.setBrush(bg->b); - p16.setPen(Qt::NoPen); - p16.setRenderHint(QPainter::Antialiasing); - int32 fontSize = 8; - style::font f(fontSize); - int32 w = f->m.width(cnt), d = 2, r = 3; - p16.drawRoundedRect(QRect(16 - w - d * 2, 16 - f->height, w + d * 2, f->height), r, r); - p16.setFont(f->f); - - p16.setPen(st::counterColor->p); - - p16.drawText(16 - w - d, 16 - f->height + f->ascent, cnt); - } - /*if (!tbListInterface) { - QString cnt = (counter < 10000) ? QString("%1").arg(counter) : ((counter < 1000000) ? QString("%1K").arg(counter / 1000) : QString("%1M").arg(counter / 1000000)); - QPainter p32(&cicon32); - style::font f(10); - int32 w = f->m.width(cnt), d = 3, r = 6; - p32.setBrush(bg->b); - p32.setPen(Qt::NoPen); - p32.setRenderHint(QPainter::Antialiasing); - p32.drawRoundedRect(QRect(32 - w - d * 2, 0, w + d * 2, f->height - 1), r, r); - p32.setPen(st::counterColor->p); - p32.setFont(f->f); - p32.drawText(32 - w - d, f->ascent - 1, cnt); - }*/ - } - icon.addPixmap(QPixmap::fromImage(cicon16)); - icon.addPixmap(QPixmap::fromImage(cicon32)); - if (trayIcon) { - QIcon ticon; - QImage ticon16(icon16); - if (counter > 0) { - QString cnt = (counter < 1000) ? QString("%1").arg(counter) : QString("..%1").arg(counter % 100, 2, 10, QChar('0')); - { - QPainter p16(&ticon16); - p16.setBrush(bg->b); - p16.setPen(Qt::NoPen); - p16.setRenderHint(QPainter::Antialiasing); - int32 fontSize = 8; - style::font f(fontSize); - int32 w = f->m.width(cnt), d = 2, r = 3; - p16.drawRoundedRect(QRect(16 - w - d * 2, 16 - f->height, w + d * 2, f->height), r, r); - p16.setFont(f->f); - - p16.setPen(st::counterColor->p); - - p16.drawText(16 - w - d, 16 - f->height + f->ascent, cnt); - } - } - ticon.addPixmap(QPixmap::fromImage(ticon16)); - ticon.addPixmap(QPixmap::fromImage(cicon32)); - trayIcon->setIcon(ticon); - } - - /*setWindowTitle((counter > 0) ? qsl("Telegram (%1)").arg(counter) : qsl("Telegram")); - psDestroyIcons(); - ps_iconSmall = _qt_createHIcon(icon, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)); - ps_iconBig = _qt_createHIcon(icon, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)); - SendMessage(ps_hWnd, WM_SETICON, 0, (LPARAM)ps_iconSmall); - SendMessage(ps_hWnd, WM_SETICON, 1, (LPARAM)(ps_iconBig ? ps_iconBig : ps_iconSmall)); - if (tbListInterface) { - if (counter > 0) { - QString cnt = (counter < 1000) ? QString("%1").arg(counter) : QString("..%1").arg(counter % 100, 2, 10, QChar('0')); - QImage oicon16(16, 16, QImage::Format_ARGB32); - int32 cntSize = cnt.size(); - oicon16.fill(st::transparent->c); - { - QPainter p16(&oicon16); - p16.setBrush(bg->b); - p16.setPen(Qt::NoPen); - p16.setRenderHint(QPainter::Antialiasing); - int32 fontSize = (cntSize < 2) ? 12 : ((cntSize < 3) ? 12 : 8); - style::font f(fontSize); - int32 w = f->m.width(cnt), d = (cntSize < 2) ? 5 : ((cntSize < 3) ? 2 : 2), r = (cntSize < 2) ? 8 : ((cntSize < 3) ? 7 : 3); - p16.drawRoundedRect(QRect(16 - w - d * 2, 16 - f->height, w + d * 2, f->height), r, r); - p16.setFont(f->f); - - p16.setPen(st::counterColor->p); - - p16.drawText(16 - w - d, 16 - f->height + f->ascent, cnt); - } - QIcon oicon(QPixmap::fromImage(oicon16)); - ps_iconOverlay = _qt_createHIcon(oicon, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)); - } - QString description = counter > 0 ? QString("%1 unread messages").arg(counter) : qsl("No unread messages"); - static WCHAR descriptionArr[1024]; - description.toWCharArray(descriptionArr); - tbListInterface->SetOverlayIcon(ps_hWnd, ps_iconOverlay, descriptionArr); - }*/ -} - -/*namespace { - HMONITOR enumMonitor = 0; - RECT enumMonitorWork; - - BOOL CALLBACK _monitorEnumProc( - _In_ HMONITOR hMonitor, - _In_ HDC hdcMonitor, - _In_ LPRECT lprcMonitor, - _In_ LPARAM dwData - ) { - MONITORINFOEX info; - info.cbSize = sizeof(info); - GetMonitorInfo(hMonitor, &info); - if (dwData == hashCrc32(info.szDevice, sizeof(info.szDevice))) { - enumMonitor = hMonitor; - enumMonitorWork = info.rcWork; - return FALSE; - } - return TRUE; - } -}*/ - -void PsMainWindow::psInitSize() { - setMinimumWidth(st::wndMinWidth); - setMinimumHeight(st::wndMinHeight); - - TWindowPos pos(cWindowPos()); - if (cDebug()) { // temp while design - pos.w = 800; - pos.h = 600; - } - QRect avail(QDesktopWidget().availableGeometry()); - bool maximized = false; - QRect geom(avail.x() + (avail.width() - st::wndDefWidth) / 2, avail.y() + (avail.height() - st::wndDefHeight) / 2, st::wndDefWidth, st::wndDefHeight); - if (pos.w && pos.h) { - if (pos.y < 0) pos.y = 0; - //enumMonitor = 0; - //EnumDisplayMonitors(0, 0, &_monitorEnumProc, pos.moncrc); - /*if (enumMonitor) { - int32 w = enumMonitorWork.right - enumMonitorWork.left, h = enumMonitorWork.bottom - enumMonitorWork.top; - if (w >= st::wndMinWidth && h >= st::wndMinHeight) { - if (pos.w > w) pos.w = w; - if (pos.h > h) pos.h = h; - pos.x += enumMonitorWork.left; - pos.y += enumMonitorWork.top; - if (pos.x < enumMonitorWork.right - 10 && pos.y < enumMonitorWork.bottom - 10) { - geom = QRect(pos.x, pos.y, pos.w, pos.h); - } - } - }*/ - maximized = pos.maximized; - } - setGeometry(geom); -} - -void PsMainWindow::psInitFrameless() { - psUpdatedPositionTimer.setSingleShot(true); - connect(&psUpdatedPositionTimer, SIGNAL(timeout()), this, SLOT(psSavePosition())); - - if (frameless) { -// setWindowFlags(Qt::FramelessWindowHint); - } - - connect(windowHandle(), SIGNAL(windowStateChanged(Qt::WindowState)), this, SLOT(psStateChanged(Qt::WindowState))); -} - -void PsMainWindow::psSavePosition(Qt::WindowState state) { - if (state == Qt::WindowActive) state = windowHandle()->windowState(); - if (state == Qt::WindowMinimized || !posInited) return; -/* - TWindowPos pos(cWindowPos()), curPos = pos; - - if (state == Qt::WindowMaximized) { - curPos.maximized = 1; - } else { - RECT w; - GetWindowRect(ps_hWnd, &w); - curPos.x = w.left; - curPos.y = w.top; - curPos.w = w.right - w.left; - curPos.h = w.bottom - w.top; - curPos.maximized = 0; - } - - HMONITOR hMonitor = MonitorFromWindow(ps_hWnd, MONITOR_DEFAULTTONEAREST); - if (hMonitor) { - MONITORINFOEX info; - info.cbSize = sizeof(info); - GetMonitorInfo(hMonitor, &info); - if (!curPos.maximized) { - curPos.x -= info.rcWork.left; - curPos.y -= info.rcWork.top; - } - curPos.moncrc = hashCrc32(info.szDevice, sizeof(info.szDevice)); - } - - if (curPos.w >= st::wndMinWidth && curPos.h >= st::wndMinHeight) { - if (curPos.x != pos.x || curPos.y != pos.y || curPos.w != pos.w || curPos.h != pos.h || curPos.moncrc != pos.moncrc || curPos.maximized != pos.maximized) { - cSetWindowPos(curPos); - App::writeConfig(); - } - }*/ -} - -void PsMainWindow::psUpdatedPosition() { - //psUpdatedPositionTimer.start(4000); -} - -void PsMainWindow::psStateChanged(Qt::WindowState state) { - psUpdateSysMenu(state); - psUpdateMargins(); - /*if (state == Qt::WindowMinimized && GetWindowLong(ps_hWnd, GWL_HWNDPARENT)) { - minimizeToTray(); - } - psSavePosition(state);*/ -} - -//Q_DECLARE_METATYPE(QMargins); -void PsMainWindow::psFirstShow() { - //_psShadowWindows.init(_shActive); - finished = false; - - //psUpdateMargins(); - - //_psShadowWindows.update(_PsShadowHidden); - bool showShadows = true; - - show(); - if (cWindowPos().maximized) { - setWindowState(Qt::WindowMaximized); - } - - if (cFromAutoStart()) { - if (cStartMinimized()) { - setWindowState(Qt::WindowMinimized); - if (cWorkMode() == dbiwmTrayOnly || cWorkMode() == dbiwmWindowAndTray) { - hide(); - } else { - show(); - } - showShadows = false; - } else { - show(); - } - } else { - show(); - } - posInited = true; - //if (showShadows) { - // _psShadowWindows.update(_PsShadowMoved | _PsShadowResized | _PsShadowShown); - //} -} - -bool PsMainWindow::psHandleTitle() { - //return useDWM; - return true; -} - -void PsMainWindow::psInitSysMenu() { - /*Qt::WindowStates states = windowState(); - ps_menu = GetSystemMenu(ps_hWnd, FALSE); - psUpdateSysMenu(windowHandle()->windowState());*/ -} - -void PsMainWindow::psUpdateSysMenu(Qt::WindowState state) { - /*if (!ps_menu) return; - - int menuToDisable = SC_RESTORE; - if (state == Qt::WindowMaximized) { - menuToDisable = SC_MAXIMIZE; - } else if (state == Qt::WindowMinimized) { - menuToDisable = SC_MINIMIZE; - } - int itemCount = GetMenuItemCount(ps_menu); - for (int i = 0; i < itemCount; ++i) { - MENUITEMINFO itemInfo = {0}; - itemInfo.cbSize = sizeof(itemInfo); - itemInfo.fMask = MIIM_TYPE | MIIM_STATE | MIIM_ID; - if (GetMenuItemInfo(ps_menu, i, TRUE, &itemInfo)) { - if (itemInfo.fType & MFT_SEPARATOR) { - continue; - } - if (itemInfo.wID && !(itemInfo.fState & MFS_DEFAULT)) { - UINT fOldState = itemInfo.fState, fState = itemInfo.fState & ~MFS_DISABLED; - if (itemInfo.wID == SC_CLOSE) { - fState |= MFS_DEFAULT; - } else if (itemInfo.wID == menuToDisable || (itemInfo.wID != SC_MINIMIZE && itemInfo.wID != SC_MAXIMIZE && itemInfo.wID != SC_RESTORE)) { - fState |= MFS_DISABLED; - } - itemInfo.fMask = MIIM_STATE; - itemInfo.fState = fState; - if (!SetMenuItemInfo(ps_menu, i, TRUE, &itemInfo)) { - DEBUG_LOG(("PS Error: could not set state %1 to menu item %2, old state %3, error %4").arg(fState).arg(itemInfo.wID).arg(fOldState).arg(GetLastError())); - DestroyMenu(ps_menu); - ps_menu = 0; - break; - } - } - } else { - DEBUG_LOG(("PS Error: could not get state, menu item %1 of %2, error %3").arg(i).arg(itemCount).arg(GetLastError())); - DestroyMenu(ps_menu); - ps_menu = 0; - break; - } - }*/ -} - -void PsMainWindow::psUpdateMargins() { - /*if (!useDWM) return; - - RECT r, a; - - GetClientRect(ps_hWnd, &r); - a = r; - - LONG style = GetWindowLong(ps_hWnd, GWL_STYLE), styleEx = GetWindowLong(ps_hWnd, GWL_EXSTYLE); - AdjustWindowRectEx(&a, style, false, styleEx); - simpleMargins = QMargins(a.left - r.left, a.top - r.top, r.right - a.right, r.bottom - a.bottom); - if (style & WS_MAXIMIZE) { - RECT w, m; - GetWindowRect(ps_hWnd, &w); - m = w; - - HMONITOR hMonitor = MonitorFromRect(&w, MONITOR_DEFAULTTONEAREST); - if (hMonitor) { - MONITORINFO mi; - mi.cbSize = sizeof(mi); - GetMonitorInfo(hMonitor, &mi); - m = mi.rcWork; - } - - dleft = w.left - m.left; - dtop = w.top - m.top; - - margins.setLeft(simpleMargins.left() - w.left + m.left); - margins.setRight(simpleMargins.right() - m.right + w.right); - margins.setBottom(simpleMargins.bottom() - m.bottom + w.bottom); - margins.setTop(simpleMargins.top() - w.top + m.top); - } else { - margins = simpleMargins; - dleft = dtop = 0; - } - - QPlatformNativeInterface *i = QGuiApplication::platformNativeInterface(); - i->setWindowProperty(windowHandle()->handle(), "WindowsCustomMargins", QVariant::fromValue(margins)); - if (!themeInited) { - themeInited = true; - if (useTheme) { - if (QSysInfo::WindowsVersion < QSysInfo::WV_WINDOWS8) { - setWindowTheme(ps_hWnd, L" ", L" "); - QApplication::setStyle(QStyleFactory::create("Windows")); - } - } - }*/ -} - -void PsMainWindow::psFlash() { - /*if (GetForegroundWindow() == ps_hWnd) return; - - FLASHWINFO info; - info.cbSize = sizeof(info); - info.hwnd = ps_hWnd; - info.dwFlags = FLASHW_ALL; - info.dwTimeout = 0; - info.uCount = 1; - FlashWindowEx(&info);*/ -} - -/*HWND PsMainWindow::psHwnd() const { - return ps_hWnd; -} - -HMENU PsMainWindow::psMenu() const { - return ps_menu; -}*/ - -/*void PsMainWindow::psDestroyIcons() { - if (ps_iconBig) { - DestroyIcon(ps_iconBig); - ps_iconBig = 0; - } - if (ps_iconSmall) { - DestroyIcon(ps_iconSmall); - ps_iconSmall = 0; - } - if (ps_iconOverlay) { - DestroyIcon(ps_iconOverlay); - ps_iconOverlay = 0; - } -}*/ - -PsMainWindow::~PsMainWindow() { - finished = true; - //if (ps_menu) DestroyMenu(ps_menu); - //psDestroyIcons(); - //_psShadowWindows.destroy(); - //psClearNotifyFast(); - //if (ps_tbHider_hWnd) DestroyWindow(ps_tbHider_hWnd); -} - -void PsMainWindow::psNotify(History *history, MsgId msgId) { - /*if (App::quiting()) return; - if (!cDesktopNotify()) { - history->clearNotifyFrom(); - } - if (notifyHistories.constFind(history) != notifyHistories.cend()) return; - notifyHistories.insert(history); - psShowNextNotify();*/ -} - -void PsMainWindow::psClearNotify(History *history) { - /*if (!history) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->unlinkHistory(); - } - for (NotifyHistories::const_iterator i = notifyHistories.cbegin(), e = notifyHistories.cend(); i != e; ++i) { - (*i)->clearNotifyFrom(); - } - notifyHistories.clear(); - return; - } - notifyHistories.remove(history); - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->unlinkHistory(history); - }*/ -} - -void PsMainWindow::psClearNotifyFast() { - /*notifyHistories.clear(); - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->deleteLater(); - } - notifyWindows.clear();*/ -} - -/*void PsMainWindow::psShowNextNotify(PsNotifyWindow *remove) { - if (App::quiting()) return; - - int32 count = NotifyWindows; - if (remove) { - for (PsNotifyWindows::iterator i = notifyWindows.begin(), e = notifyWindows.end(); i != e; ++i) { - if ((*i) == remove) { - notifyWindows.erase(i); - break; - } - } - } - QRect r = QApplication::desktop()->availableGeometry(App::wnd()); - int32 x = r.width() - st::notifyWidth - st::notifyDeltaX, y = r.bottom() - st::notifyHeight - st::notifyDeltaY; - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - int32 ind = (*i)->index(); - if (ind < 0) continue; - --count; - } - while (count > 0) { - HistoryItem *notify = 0; - for (NotifyHistories::iterator i = notifyHistories.begin(), e = notifyHistories.end(); i != e;) { - if ((*i)->notifyFrom) { - if (!notify || (*i)->notifyFrom->date < notify->date) { - notify = (*i)->notifyFrom; - } - ++i; - } else { - i = notifyHistories.erase(i); - } - } - if (notify) { - notifyWindows.push_back(new PsNotifyWindow(notify, x, y)); - notify->history()->getNextNotifyFrom(); - --count; - } else { - break; - } - } - count = NotifyWindows - count; - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - int32 ind = (*i)->index(); - if (ind < 0) continue; - --count; - (*i)->moveTo(x, y - count * (st::notifyHeight + st::notifyDeltaY)); - } -}*/ - -void PsMainWindow::psStopHiding() { - /*for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->stopHiding(); - }*/ -} - -void PsMainWindow::psStartHiding() { - /*for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->startHiding(); - }*/ -} - -void PsMainWindow::psUpdateNotifies() { - /*for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->updatePeerPhoto(); - }*/ -} - -void PsMainWindow::psNotifySettingGot() { -} - -/*PsNotifyWindow::PsNotifyWindow(HistoryItem *item, int32 x, int32 y) : history(item->history()), aOpacity(0), _index(0), hiding(false), started(GetTickCount()), - alphaDuration(st::notifyFastAnim), posDuration(st::notifyFastAnim), aY(y + st::notifyHeight + st::notifyDeltaY), close(this, st::notifyClose), aOpacityFunc(st::notifyFastAnimFunc) { - - int32 w = st::notifyWidth, h = st::notifyHeight; - QImage img(w, h, QImage::Format_ARGB32_Premultiplied); - img.fill(st::notifyBG->c); - - { - QPainter p(&img); - p.setPen(st::notifyBorder->p); - p.setBrush(Qt::NoBrush); - p.drawRect(0, 0, w - 1, h - 1); - - if (history->peer->photo->loaded()) { - p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), history->peer->photo->pix(st::notifyPhotoSize)); - } else { - MTP::clearLoaderPriorities(); - peerPhoto = history->peer->photo; - peerPhoto->load(true, true); - } - - int32 itemWidth = w - st::notifyPhotoPos.x() - st::notifyPhotoSize - st::notifyTextLeft - st::notifyClosePos.x() - st::notifyClose.width; - - QRect rectForName(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyTextTop, itemWidth, st::msgNameFont->height); - if (history->peer->chat) { - p.drawPixmap(QPoint(rectForName.left() + st::dlgChatImgLeft, rectForName.top() + st::dlgChatImgTop), App::sprite(), st::dlgChatImg); - rectForName.setLeft(rectForName.left() + st::dlgChatImgSkip); - } - - QDateTime now(QDateTime::currentDateTime()), lastTime(item->date); - QDate nowDate(now.date()), lastDate(lastTime.date()); - QString dt = lastTime.toString(qsl("hh:mm")); - int32 dtWidth = st::dlgHistFont->m.width(dt); - rectForName.setWidth(rectForName.width() - dtWidth - st::dlgDateSkip); - p.setFont(st::dlgDateFont->f); - p.setPen(st::dlgDateColor->p); - p.drawText(rectForName.left() + rectForName.width() + st::dlgDateSkip, rectForName.top() + st::dlgHistFont->ascent, dt); - - const HistoryItem *textCachedFor = 0; - Text itemTextCache(itemWidth); - bool active = false; - item->drawInDialog(p, QRect(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyItemTop + st::msgNameFont->height, itemWidth, 2 * st::dlgFont->height), active, textCachedFor, itemTextCache); - - p.setPen(st::dlgNameColor->p); - history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width()); - } - pm = QPixmap::fromImage(img); - - hideTimer.setSingleShot(true); - connect(&hideTimer, SIGNAL(timeout()), this, SLOT(hideByTimer())); - - inputTimer.setSingleShot(true); - connect(&inputTimer, SIGNAL(timeout()), this, SLOT(checkLastInput())); - - connect(&close, SIGNAL(clicked()), this, SLOT(unlinkHistory())); - close.setAcceptBoth(true); - close.move(w - st::notifyClose.width - st::notifyClosePos.x(), st::notifyClosePos.y()); - close.show(); - - aY.start(y); - setGeometry(x, aY.current(), st::notifyWidth, st::notifyHeight); - - aOpacity.start(1); - setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); - - show(); - - setWindowOpacity(aOpacity.current()); - - alphaDuration = posDuration = st::notifyFastAnim; - anim::start(this); - - checkLastInput(); -} - -void PsNotifyWindow::checkLastInput() { - LASTINPUTINFO lii; - lii.cbSize = sizeof(LASTINPUTINFO); - BOOL res = GetLastInputInfo(&lii); - if (!res || lii.dwTime >= started) { - hideTimer.start(st::notifyWaitLongHide); - } else { - inputTimer.start(300); - } -} - -void PsNotifyWindow::moveTo(int32 x, int32 y, int32 index) { - if (index >= 0) { - _index = index; - } - move(x, aY.current()); - aY.start(y); - aOpacity.restart(); - posDuration = st::notifyFastAnim; - anim::start(this); -} - -void PsNotifyWindow::updatePeerPhoto() { - if (!peerPhoto->isNull() && peerPhoto->loaded()) { - QImage img(pm.toImage()); - { - QPainter p(&img); - p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), peerPhoto->pix(st::notifyPhotoSize)); - } - peerPhoto = ImagePtr(); - pm = QPixmap::fromImage(img); - update(); - } -} - -void PsNotifyWindow::unlinkHistory(History *hist) { - if (!hist || hist == history) { - animHide(st::notifyFastAnim, st::notifyFastAnimFunc); - history = 0; - App::wnd()->psShowNextNotify(); - } -} - -void PsNotifyWindow::enterEvent(QEvent *e) { - if (!history) return; - if (App::wnd()) App::wnd()->psStopHiding(); -} - -void PsNotifyWindow::leaveEvent(QEvent *e) { - if (!history) return; - App::wnd()->psStartHiding(); -} - -void PsNotifyWindow::startHiding() { - hideTimer.start(st::notifyWaitShortHide); -} - -void PsNotifyWindow::mousePressEvent(QMouseEvent *e) { - if (!history) return; - if (e->button() == Qt::RightButton) { - unlinkHistory(); - } else if (history) { - App::wnd()->showFromTray(); - App::wnd()->hideSettings(); - App::main()->showPeer(history->peer->id, false, true); - e->ignore(); - } -} - -void PsNotifyWindow::paintEvent(QPaintEvent *e) { - QPainter p(this); - p.drawPixmap(0, 0, pm); -} - -void PsNotifyWindow::animHide(float64 duration, anim::transition func) { - if (!history) return; - alphaDuration = duration; - aOpacityFunc = func; - aOpacity.start(0); - aY.restart(); - hiding = true; - anim::start(this); -} - -void PsNotifyWindow::stopHiding() { - if (!history) return; - alphaDuration = st::notifyFastAnim; - aOpacityFunc = st::notifyFastAnimFunc; - aOpacity.start(1); - aY.restart(); - hiding = false; - hideTimer.stop(); - anim::start(this); -} - -void PsNotifyWindow::hideByTimer() { - if (!history) return; - animHide(st::notifySlowHide, st::notifySlowHideFunc); -} - -bool PsNotifyWindow::animStep(float64 ms) { - float64 dtAlpha = ms / alphaDuration, dtPos = ms / posDuration; - if (dtAlpha >= 1) { - aOpacity.finish(); - if (hiding) { - deleteLater(); - } - } else { - aOpacity.update(dtAlpha, aOpacityFunc); - } - setWindowOpacity(aOpacity.current()); - if (dtPos >= 1) { - aY.finish(); - } else { - aY.update(dtPos, anim::linear); - } - move(x(), aY.current()); - update(); - return (dtAlpha < 1 || !hiding && dtPos < 1); -} - -PsNotifyWindow::~PsNotifyWindow() { - if (App::wnd()) App::wnd()->psShowNextNotify(this); -}*/ - -PsApplication::PsApplication(int argc, char *argv[]) : QApplication(argc, argv) { -} - -void PsApplication::psInstallEventFilter() { - /*delete _psEventFilter; - _psEventFilter = new _PsEventFilter(); - installNativeEventFilter(_psEventFilter);*/ -} - -PsApplication::~PsApplication() { - //delete _psEventFilter; - //_psEventFilter = 0; -} - -PsUpdateDownloader::PsUpdateDownloader(QThread *thread, const MTPDhelp_appUpdate &update) : already(0), reply(0), full(0) { - updateUrl = qs(update.vurl); - moveToThread(thread); - manager.moveToThread(thread); - App::setProxySettings(manager); - - connect(thread, SIGNAL(started()), this, SLOT(start())); - initOutput(); -} - -PsUpdateDownloader::PsUpdateDownloader(QThread *thread, const QString &url) : already(0), reply(0), full(0) { - updateUrl = url; - moveToThread(thread); - manager.moveToThread(thread); - App::setProxySettings(manager); - - connect(thread, SIGNAL(started()), this, SLOT(start())); - initOutput(); -} - -void PsUpdateDownloader::initOutput() { - QString fileName; - QRegularExpressionMatch m = QRegularExpression(qsl("/([^/\\?]+)(\\?|$)")).match(updateUrl); - if (m.hasMatch()) { - fileName = m.captured(1).replace(QRegularExpression(qsl("[^a-zA-Z0-9_\\-]")), QString()); - } - if (fileName.isEmpty()) { - fileName = qsl("tupdate-%1").arg(rand()); - } - QString dirStr = cWorkingDir() + qsl("tupdates/"); - fileName = dirStr + fileName; - QFileInfo file(fileName); - - QDir dir(dirStr); - if (dir.exists()) { - QFileInfoList all = dir.entryInfoList(QDir::Files); - for (QFileInfoList::iterator i = all.begin(), e = all.end(); i != e; ++i) { - if (i->absoluteFilePath() != file.absoluteFilePath()) { - QFile::remove(i->absoluteFilePath()); - } - } - } else { - dir.mkdir(dir.absolutePath()); - } - outputFile.setFileName(fileName); - if (file.exists()) { - uint64 fullSize = file.size(); - if (fullSize < INT_MAX) { - int32 goodSize = (int32)fullSize; - if (goodSize % UpdateChunk) { - goodSize = goodSize - (goodSize % UpdateChunk); - if (goodSize) { - if (outputFile.open(QIODevice::ReadOnly)) { - QByteArray goodData = outputFile.readAll().mid(0, goodSize); - outputFile.close(); - if (outputFile.open(QIODevice::WriteOnly)) { - outputFile.write(goodData); - outputFile.close(); - - QMutexLocker lock(&mutex); - already = goodSize; - } - } - } - } else { - QMutexLocker lock(&mutex); - already = goodSize; - } - } - if (!already) { - QFile::remove(fileName); - } - } -} - -void PsUpdateDownloader::start() { - sendRequest(); -} - -void PsUpdateDownloader::sendRequest() { - QNetworkRequest req(updateUrl); - QByteArray rangeHeaderValue = "bytes=" + QByteArray::number(already) + "-";// + QByteArray::number(already + cUpdateChunk() - 1); - req.setRawHeader("Range", rangeHeaderValue); - req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true); - if (reply) reply->deleteLater(); - reply = manager.get(req); - connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(partFinished(qint64,qint64))); - connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(partFailed(QNetworkReply::NetworkError))); - connect(reply, SIGNAL(metaDataChanged()), this, SLOT(partMetaGot())); -} - -void PsUpdateDownloader::partMetaGot() { - typedef QList Pairs; - Pairs pairs = reply->rawHeaderPairs(); - for (Pairs::iterator i = pairs.begin(), e = pairs.end(); i != e; ++i) { - if (QString::fromUtf8(i->first).toLower() == "content-range") { - QRegularExpressionMatch m = QRegularExpression(qsl("/(\\d+)([^\\d]|$)")).match(QString::fromUtf8(i->second)); - if (m.hasMatch()) { - { - QMutexLocker lock(&mutex); - full = m.captured(1).toInt(); - } - emit App::app()->updateDownloading(already, full); - } - } - } -} - -int32 PsUpdateDownloader::ready() { - QMutexLocker lock(&mutex); - return already; -} - -int32 PsUpdateDownloader::size() { - QMutexLocker lock(&mutex); - return full; -} - -void PsUpdateDownloader::partFinished(qint64 got, qint64 total) { - if (!reply) return; - - QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); - if (statusCode.isValid()) { - int status = statusCode.toInt(); - if (status != 200 && status != 206 && status != 416) { - LOG(("Update Error: Bad HTTP status received in partFinished(): %1").arg(status)); - return fatalFail(); - } - } - - if (!already && !full) { - QMutexLocker lock(&mutex); - full = total; - } - DEBUG_LOG(("Update Info: part %1 of %2").arg(got).arg(total)); - - if (!outputFile.isOpen()) { - if (!outputFile.open(QIODevice::Append)) { - LOG(("Update Error: Could not open output file '%1' for appending").arg(outputFile.fileName())); - return fatalFail(); - } - } - QByteArray r = reply->readAll(); - if (!r.isEmpty()) { - outputFile.write(r); - - QMutexLocker lock(&mutex); - already += r.size(); - } - if (got >= total) { - reply->deleteLater(); - reply = 0; - outputFile.close(); - unpackUpdate(); - } else { - emit App::app()->updateDownloading(already, full); - } -} - -void PsUpdateDownloader::partFailed(QNetworkReply::NetworkError e) { - if (!reply) return; - - QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); - reply->deleteLater(); - reply = 0; - if (statusCode.isValid()) { - int status = statusCode.toInt(); - if (status == 416) { // Requested range not satisfiable - outputFile.close(); - unpackUpdate(); - return; - } - } - LOG(("Update Error: failed to download part starting from %1, error %2").arg(already).arg(e)); - emit App::app()->updateFailed(); -} - -void PsUpdateDownloader::deleteDir(const QString &dir) { - /*std::wstring wDir = QDir::toNativeSeparators(dir).toStdWString(); - WCHAR path[4096]; - memcpy(path, wDir.c_str(), (wDir.size() + 1) * sizeof(WCHAR)); - path[wDir.size() + 1] = 0; - SHFILEOPSTRUCT file_op = { - NULL, - FO_DELETE, - path, - L"", - FOF_NOCONFIRMATION | - FOF_NOERRORUI | - FOF_SILENT, - false, - 0, - L"" - }; - int res = SHFileOperation(&file_op);*/ -} - -void PsUpdateDownloader::fatalFail() { - clearAll(); - emit App::app()->updateFailed(); -} - -void PsUpdateDownloader::clearAll() { - deleteDir(cWorkingDir() + qsl("tupdates")); -} - -void PsUpdateDownloader::unpackUpdate() { - /*QByteArray packed; - if (!outputFile.open(QIODevice::ReadOnly)) { - LOG(("Update Error: cant read updates file!")); - return fatalFail(); - } - - const int32 hSigLen = 128, hShaLen = 20, hPropsLen = LZMA_PROPS_SIZE, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hPropsLen + hOriginalSizeLen; // header - - QByteArray compressed = outputFile.readAll(); - int32 compressedLen = compressed.size() - hSize; - if (compressedLen <= 0) { - LOG(("Update Error: bad compressed size: %1").arg(compressed.size())); - return fatalFail(); - } - outputFile.close(); - - QString tempDirPath = cWorkingDir() + qsl("tupdates/temp"), readyDirPath = cWorkingDir() + qsl("tupdates/ready"); - deleteDir(tempDirPath); - deleteDir(readyDirPath); - - QDir tempDir(tempDirPath), readyDir(readyDirPath); - if (tempDir.exists() || readyDir.exists()) { - LOG(("Update Error: cant clear tupdates/temp or tupdates/ready dir!")); - return fatalFail(); - } - - uchar sha1Buffer[20]; - bool goodSha1 = !memcmp(compressed.constData() + hSigLen, hashSha1(compressed.constData() + hSigLen + hShaLen, compressedLen + hPropsLen + hOriginalSizeLen, sha1Buffer), hShaLen); - if (!goodSha1) { - LOG(("Update Error: bad SHA1 hash of update file!")); - return fatalFail(); - } - - RSA *pbKey = PEM_read_bio_RSAPublicKey(BIO_new_mem_buf(const_cast(UpdatesPublicKey), -1), 0, 0, 0); - if (!pbKey) { - LOG(("Update Error: cant read public rsa key!")); - return fatalFail(); - } - if (RSA_verify(NID_sha1, (const uchar*)(compressed.constData() + hSigLen), hShaLen, (const uchar*)(compressed.constData()), hSigLen, pbKey) != 1) { // verify signature - RSA_free(pbKey); - LOG(("Update Error: bad RSA signature of update file!")); - return fatalFail(); - } - RSA_free(pbKey); - - QByteArray uncompressed; - - int32 uncompressedLen; - memcpy(&uncompressedLen, compressed.constData() + hSigLen + hShaLen + hPropsLen, hOriginalSizeLen); - uncompressed.resize(uncompressedLen); - - size_t resultLen = uncompressed.size(); - SizeT srcLen = compressedLen; - int uncompressRes = LzmaUncompress((uchar*)uncompressed.data(), &resultLen, (const uchar*)(compressed.constData() + hSize), &srcLen, (const uchar*)(compressed.constData() + hSigLen + hShaLen), LZMA_PROPS_SIZE); - if (uncompressRes != SZ_OK) { - LOG(("Update Error: could not uncompress lzma, code: %1").arg(uncompressRes)); - return fatalFail(); - } - - tempDir.mkdir(tempDir.absolutePath()); - - quint32 version; - { - QBuffer buffer(&uncompressed); - buffer.open(QIODevice::ReadOnly); - QDataStream stream(&buffer); - stream.setVersion(QDataStream::Qt_5_1); - - stream >> version; - if (stream.status() != QDataStream::Ok) { - LOG(("Update Error: cant read version from downloaded stream, status: %1").arg(stream.status())); - return fatalFail(); - } - if (version <= AppVersion) { - LOG(("Update Error: downloaded version %1 is not greater, than mine %2").arg(version).arg(AppVersion)); - return fatalFail(); - } - - quint32 filesCount; - stream >> filesCount; - if (stream.status() != QDataStream::Ok) { - LOG(("Update Error: cant read files count from downloaded stream, status: %1").arg(stream.status())); - return fatalFail(); - } - if (!filesCount) { - LOG(("Update Error: update is empty!")); - return fatalFail(); - } - for (int32 i = 0; i < filesCount; ++i) { - QString relativeName; - quint32 fileSize; - QByteArray fileInnerData; - - stream >> relativeName >> fileSize >> fileInnerData; - if (stream.status() != QDataStream::Ok) { - LOG(("Update Error: cant read file from downloaded stream, status: %1").arg(stream.status())); - return fatalFail(); - } - if (fileSize != fileInnerData.size()) { - LOG(("Update Error: bad file size %1 not matching data size %2").arg(fileSize).arg(fileInnerData.size())); - return fatalFail(); - } - - QFile f(tempDirPath + '/' + relativeName); - if (!f.open(QIODevice::WriteOnly)) { - LOG(("Update Error: cant open file '%1' for writing").arg(tempDirPath + '/' + relativeName)); - return fatalFail(); - } - if (f.write(fileInnerData) != fileSize) { - f.close(); - LOG(("Update Error: cant write file '%1'").arg(tempDirPath + '/' + relativeName)); - return fatalFail(); - } - f.close(); - } - - // create tdata/version file - tempDir.mkdir(QDir(tempDirPath + qsl("/tdata")).absolutePath()); - std::wstring versionString = ((version % 1000) ? QString("%1.%2.%3").arg(int(version / 1000000)).arg(int((version % 1000000) / 1000)).arg(int(version % 1000)) : QString("%1.%2").arg(int(version / 1000000)).arg(int((version % 1000000) / 1000))).toStdWString(); - DWORD versionNum = DWORD(version), versionLen = DWORD(versionString.size() * sizeof(WCHAR)); - WCHAR versionStr[32]; - memcpy(versionStr, versionString.c_str(), versionLen); - - QFile fVersion(tempDirPath + qsl("/tdata/version")); - if (!fVersion.open(QIODevice::WriteOnly)) { - LOG(("Update Error: cant write version file '%1'").arg(tempDirPath + qsl("/version"))); - return fatalFail(); - } - fVersion.write((const char*)&versionNum, sizeof(DWORD)); - fVersion.write((const char*)&versionLen, sizeof(DWORD)); - fVersion.write((const char*)&versionStr[0], versionLen); - fVersion.close(); - } - - if (!tempDir.rename(tempDir.absolutePath(), readyDir.absolutePath())) { - LOG(("Update Error: cant rename temp dir '%1' to ready dir '%2'").arg(tempDir.absolutePath()).arg(readyDir.absolutePath())); - return fatalFail(); - } - deleteDir(tempDirPath); - outputFile.remove(); - - emit App::app()->updateReady();*/ -} - -PsUpdateDownloader::~PsUpdateDownloader() { - delete reply; - reply = 0; -} - -/*namespace { - BOOL CALLBACK _ActivateProcess(HWND hWnd, LPARAM lParam) { - uint64 &processId(*(uint64*)lParam); - - DWORD dwProcessId; - ::GetWindowThreadProcessId(hWnd, &dwProcessId); - - if ((uint64)dwProcessId == processId) { // found top-level window - static const int32 nameBufSize = 1024; - WCHAR nameBuf[nameBufSize]; - int32 len = GetWindowText(hWnd, nameBuf, nameBufSize); - if (len && len < nameBufSize) { - if (QRegularExpression(qsl("^Telegram(\\s*\\(\\d+\\))?$")).match(QString::fromStdWString(nameBuf)).hasMatch()) { - BOOL res = ::SetForegroundWindow(hWnd); - return FALSE; - } - } - } - return TRUE; - } -}*/ - -void psActivateProcess(uint64 pid) { - //::EnumWindows((WNDENUMPROC)_ActivateProcess, (LPARAM)&pid); -} - -QString psCurrentCountry() { - /*int chCount = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME, 0, 0); - if (chCount && chCount < 128) { - WCHAR wstrCountry[128]; - int len = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME, wstrCountry, chCount); - return len ? QString::fromStdWString(std::wstring(wstrCountry)) : QString::fromLatin1(DefaultCountry); - } - return QString::fromLatin1(DefaultCountry);*/ - return QString(""); - //TODO -} - -/*namespace { - QString langById(int lngId) { - int primary = lngId & 0xFF; - switch (primary) { - case 0x36: return qsl("af"); - case 0x1C: return qsl("sq"); - case 0x5E: return qsl("am"); - case 0x01: return qsl("ar"); - case 0x2B: return qsl("hy"); - case 0x4D: return qsl("as"); - case 0x2C: return qsl("az"); - case 0x45: return qsl("bn"); - case 0x6D: return qsl("ba"); - case 0x2D: return qsl("eu"); - case 0x23: return qsl("be"); - case 0x1A: - if (lngId == LANG_CROATIAN) { - return qsl("hr"); - } else if (lngId == LANG_BOSNIAN_NEUTRAL || lngId == LANG_BOSNIAN) { - return qsl("bs"); - } - return qsl("sr"); - break; - case 0x7E: return qsl("br"); - case 0x02: return qsl("bg"); - case 0x92: return qsl("ku"); - case 0x03: return qsl("ca"); - case 0x04: return qsl("zh"); - case 0x83: return qsl("co"); - case 0x05: return qsl("cs"); - case 0x06: return qsl("da"); - case 0x65: return qsl("dv"); - case 0x13: return qsl("nl"); - case 0x09: return qsl("en"); - case 0x25: return qsl("et"); - case 0x38: return qsl("fo"); - case 0x0B: return qsl("fi"); - case 0x0c: return qsl("fr"); - case 0x62: return qsl("fy"); - case 0x56: return qsl("gl"); - case 0x37: return qsl("ka"); - case 0x07: return qsl("de"); - case 0x08: return qsl("el"); - case 0x6F: return qsl("kl"); - case 0x47: return qsl("gu"); - case 0x68: return qsl("ha"); - case 0x0D: return qsl("he"); - case 0x39: return qsl("hi"); - case 0x0E: return qsl("hu"); - case 0x0F: return qsl("is"); - case 0x70: return qsl("ig"); - case 0x21: return qsl("id"); - case 0x5D: return qsl("iu"); - case 0x3C: return qsl("ga"); - case 0x34: return qsl("xh"); - case 0x35: return qsl("zu"); - case 0x10: return qsl("it"); - case 0x11: return qsl("ja"); - case 0x4B: return qsl("kn"); - case 0x3F: return qsl("kk"); - case 0x53: return qsl("kh"); - case 0x87: return qsl("rw"); - case 0x12: return qsl("ko"); - case 0x40: return qsl("ky"); - case 0x54: return qsl("lo"); - case 0x26: return qsl("lv"); - case 0x27: return qsl("lt"); - case 0x6E: return qsl("lb"); - case 0x2F: return qsl("mk"); - case 0x3E: return qsl("ms"); - case 0x4C: return qsl("ml"); - case 0x3A: return qsl("mt"); - case 0x81: return qsl("mi"); - case 0x4E: return qsl("mr"); - case 0x50: return qsl("mn"); - case 0x61: return qsl("ne"); - case 0x14: return qsl("no"); - case 0x82: return qsl("oc"); - case 0x48: return qsl("or"); - case 0x63: return qsl("ps"); - case 0x29: return qsl("fa"); - case 0x15: return qsl("pl"); - case 0x16: return qsl("pt"); - case 0x67: return qsl("ff"); - case 0x46: return qsl("pa"); - case 0x18: return qsl("ro"); - case 0x17: return qsl("rm"); - case 0x19: return qsl("ru"); - case 0x3B: return qsl("se"); - case 0x4F: return qsl("sa"); - case 0x32: return qsl("tn"); - case 0x59: return qsl("sd"); - case 0x5B: return qsl("si"); - case 0x1B: return qsl("sk"); - case 0x24: return qsl("sl"); - case 0x0A: return qsl("es"); - case 0x41: return qsl("sw"); - case 0x1D: return qsl("sv"); - case 0x28: return qsl("tg"); - case 0x49: return qsl("ta"); - case 0x44: return qsl("tt"); - case 0x4A: return qsl("te"); - case 0x1E: return qsl("th"); - case 0x51: return qsl("bo"); - case 0x73: return qsl("ti"); - case 0x1F: return qsl("tr"); - case 0x42: return qsl("tk"); - case 0x22: return qsl("uk"); - case 0x20: return qsl("ur"); - case 0x80: return qsl("ug"); - case 0x43: return qsl("uz"); - case 0x2A: return qsl("vi"); - case 0x52: return qsl("cy"); - case 0x88: return qsl("wo"); - case 0x78: return qsl("ii"); - case 0x6A: return qsl("yo"); - } - return QString::fromLatin1(DefaultLanguage); - } -}*/ - -QString psCurrentLanguage() { -/* int chCount = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SNAME, 0, 0); - if (chCount && chCount < 128) { - WCHAR wstrLocale[128]; - int len = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SNAME, wstrLocale, chCount); - if (!len) return QString::fromLatin1(DefaultLanguage); - QString locale = QString::fromStdWString(std::wstring(wstrLocale)); - QRegularExpressionMatch m = QRegularExpression("(^|[^a-z])([a-z]{2})-").match(locale); - if (m.hasMatch()) { - return m.captured(2); - } - } - chCount = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, 0, 0); - if (chCount && chCount < 128) { - WCHAR wstrLocale[128]; - int len = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILANGUAGE, wstrLocale, chCount), lngId = 0; - if (len < 5) return QString::fromLatin1(DefaultLanguage); - - for (int i = 0; i < 4; ++i) { - WCHAR ch = wstrLocale[i]; - lngId *= 16; - if (ch >= WCHAR('0') && ch <= WCHAR('9')) { - lngId += (ch - WCHAR('0')); - } else if (ch >= WCHAR('A') && ch <= WCHAR('F')) { - lngId += (10 + ch - WCHAR('A')); - } else { - return QString::fromLatin1(DefaultLanguage); - } - } - return langById(lngId); - } - return QString::fromLatin1(DefaultLanguage);*/ - return QString("en"); -} - -QString psAppDataPath() { - /*static const int maxFileLen = MAX_PATH * 10; - WCHAR wstrPath[maxFileLen]; - if (GetEnvironmentVariable(L"APPDATA", wstrPath, maxFileLen)) { - QDir appData(QString::fromStdWString(std::wstring(wstrPath))); - return appData.absolutePath() + "/" + QString::fromWCharArray(AppName) + "/"; - }*/ - return QString(); -} - -QString psCurrentExeDirectory() { - /*LPWSTR *args; - int argsCount; - args = CommandLineToArgvW(GetCommandLine(), &argsCount); - if (args) { - QFileInfo info(QDir::fromNativeSeparators(QString::fromWCharArray(args[0]))); - if (info.isFile()) { - return info.absoluteDir().absolutePath() + '/'; - } - LocalFree(args); - }*/ - return QString(); -} - -void psDoCleanup() { - try { - psAutoStart(false, true); - } catch (...) { - } -} - -int psCleanup() { - /*__try - { - psDoCleanup(); - } - __except(EXCEPTION_EXECUTE_HANDLER) - { - return 0; - }*/ - return 0; -} - -void psDoFixPrevious() { - /*try { - static const int bufSize = 4096; - DWORD checkType, checkSize = bufSize * 2; - WCHAR checkStr[bufSize]; - - QString appId = QString::fromStdWString(AppId); - QString newKeyStr1 = QString("Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId); - QString newKeyStr2 = QString("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId); - QString oldKeyStr1 = QString("SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId); - QString oldKeyStr2 = QString("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\%1_is1").arg(appId); - HKEY newKey1, newKey2, oldKey1, oldKey2; - LSTATUS newKeyRes1 = RegOpenKeyEx(HKEY_CURRENT_USER, newKeyStr1.toStdWString().c_str(), 0, KEY_READ, &newKey1); - LSTATUS newKeyRes2 = RegOpenKeyEx(HKEY_CURRENT_USER, newKeyStr2.toStdWString().c_str(), 0, KEY_READ, &newKey2); - LSTATUS oldKeyRes1 = RegOpenKeyEx(HKEY_LOCAL_MACHINE, oldKeyStr1.toStdWString().c_str(), 0, KEY_READ, &oldKey1); - LSTATUS oldKeyRes2 = RegOpenKeyEx(HKEY_LOCAL_MACHINE, oldKeyStr2.toStdWString().c_str(), 0, KEY_READ, &oldKey2); - - bool existNew1 = (newKeyRes1 == ERROR_SUCCESS) && (RegQueryValueEx(newKey1, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2; - bool existNew2 = (newKeyRes2 == ERROR_SUCCESS) && (RegQueryValueEx(newKey2, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2; - bool existOld1 = (oldKeyRes1 == ERROR_SUCCESS) && (RegQueryValueEx(oldKey1, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2; - bool existOld2 = (oldKeyRes2 == ERROR_SUCCESS) && (RegQueryValueEx(oldKey2, L"InstallDate", 0, &checkType, (BYTE*)checkStr, &checkSize) == ERROR_SUCCESS); checkSize = bufSize * 2; - - if (newKeyRes1 == ERROR_SUCCESS) RegCloseKey(newKey1); - if (newKeyRes2 == ERROR_SUCCESS) RegCloseKey(newKey2); - if (oldKeyRes1 == ERROR_SUCCESS) RegCloseKey(oldKey1); - if (oldKeyRes2 == ERROR_SUCCESS) RegCloseKey(oldKey2); - - if (existNew1 || existNew2) { - oldKeyRes1 = existOld1 ? RegDeleteKey(HKEY_LOCAL_MACHINE, oldKeyStr1.toStdWString().c_str()) : ERROR_SUCCESS; - oldKeyRes2 = existOld2 ? RegDeleteKey(HKEY_LOCAL_MACHINE, oldKeyStr2.toStdWString().c_str()) : ERROR_SUCCESS; - } - - QString userDesktopLnk, commonDesktopLnk; - WCHAR userDesktopFolder[MAX_PATH], commonDesktopFolder[MAX_PATH]; - HRESULT userDesktopRes = SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, userDesktopFolder); - HRESULT commonDesktopRes = SHGetFolderPath(0, CSIDL_COMMON_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, commonDesktopFolder); - if (SUCCEEDED(userDesktopRes)) { - userDesktopLnk = QString::fromWCharArray(userDesktopFolder) + "\\Telegram.lnk"; - } - if (SUCCEEDED(commonDesktopRes)) { - commonDesktopLnk = QString::fromWCharArray(commonDesktopFolder) + "\\Telegram.lnk"; - } - QFile userDesktopFile(userDesktopLnk), commonDesktopFile(commonDesktopLnk); - if (QFile::exists(userDesktopLnk) && QFile::exists(commonDesktopLnk) && userDesktopLnk != commonDesktopLnk) { - bool removed = QFile::remove(commonDesktopLnk); - } - } catch (...) { - }*/ -} - -int psFixPrevious() { - /*__try - { - psDoFixPrevious(); - } - __except(EXCEPTION_EXECUTE_HANDLER) - { - return 0; - }*/ - return 0; -} - -bool psCheckReadyUpdate() { - /*QString readyPath = cWorkingDir() + qsl("tupdates/ready"); - if (!QDir(readyPath).exists()) { - return false; - } - - // check ready version - QString versionPath = readyPath + qsl("/tdata/version"); - { - QFile fVersion(versionPath); - if (!fVersion.open(QIODevice::ReadOnly)) { - LOG(("Update Error: cant read version file '%1'").arg(versionPath)); - PsUpdateDownloader::clearAll(); - return false; - } - DWORD versionNum; - if (fVersion.read((char*)&versionNum, sizeof(DWORD)) != sizeof(DWORD)) { - LOG(("Update Error: cant read version from file '%1'").arg(versionPath)); - PsUpdateDownloader::clearAll(); - return false; - } - fVersion.close(); - if (versionNum <= AppVersion) { - LOG(("Update Error: cant install version %1 having version %2").arg(versionNum).arg(AppVersion)); - PsUpdateDownloader::clearAll(); - return false; - } - } - - QString curUpdater = (cExeDir() + "Updater.exe"); - QFileInfo updater(cWorkingDir() + "tupdates/ready/Updater.exe"); - if (!updater.exists()) { - QFileInfo current(curUpdater); - if (!current.exists()) { - PsUpdateDownloader::clearAll(); - return false; - } - if (CopyFile(current.absoluteFilePath().toStdWString().c_str(), updater.absoluteFilePath().toStdWString().c_str(), TRUE) == FALSE) { - PsUpdateDownloader::clearAll(); - return false; - } - } - if (CopyFile(updater.absoluteFilePath().toStdWString().c_str(), curUpdater.toStdWString().c_str(), FALSE) == FALSE) { - PsUpdateDownloader::clearAll(); - return false; - } - if (DeleteFile(updater.absoluteFilePath().toStdWString().c_str()) == FALSE) { - PsUpdateDownloader::clearAll(); - return false; - }*/ - return false; // TODO -} - -void psPostprocessFile(const QString &name) { - /*std::wstring zoneFile = QDir::toNativeSeparators(name).toStdWString() + L":Zone.Identifier"; - HANDLE f = CreateFile(zoneFile.c_str(), GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); - if (f == INVALID_HANDLE_VALUE) { // :( - return; - } - - const char data[] = "[ZoneTransfer]\r\nZoneId=3\r\n"; - - DWORD written = 0; - BOOL result = WriteFile(f, data, sizeof(data), &written, NULL); - CloseHandle(f); - - if (!result || written != sizeof(data)) { // :( - return; - }*/ -} - -void psOpenFile(const QString &name, bool openWith) { - /*std::wstring wname = QDir::toNativeSeparators(name).toStdWString(); - - if (openWith && useOpenAs) { - if (shOpenWithDialog) { - OPENASINFO info; - info.oaifInFlags = OAIF_ALLOW_REGISTRATION | OAIF_REGISTER_EXT | OAIF_EXEC; - info.pcszClass = NULL; - info.pcszFile = wname.c_str(); - shOpenWithDialog(0, &info); - } else { - openAs_RunDLL(0, 0, wname.c_str(), SW_SHOWNORMAL); - } - } else { - ShellExecute(0, L"open", wname.c_str(), 0, 0, SW_SHOWNORMAL); - }*/ -} - -void psShowInFolder(const QString &name) { - //QString nameEscaped = QDir::toNativeSeparators(name).replace('"', qsl("\"\"")); - //ShellExecute(0, 0, qsl("explorer").toStdWString().c_str(), (qsl("/select,") + nameEscaped).toStdWString().c_str(), 0, SW_SHOWNORMAL); -} - -void psExecUpdater() { - /*QString targs = qsl("-update"); - if (cFromAutoStart()) targs += qsl(" -autostart"); - if (cDebug()) targs += qsl(" -debug"); - - QString updater(QDir::toNativeSeparators(cExeDir() + "Updater.exe")), wdir(QDir::toNativeSeparators(cWorkingDir())); - - DEBUG_LOG(("Application Info: executing %1 %2").arg(cExeDir() + "Updater.exe").arg(targs)); - HINSTANCE r = ShellExecute(0, 0, updater.toStdWString().c_str(), targs.toStdWString().c_str(), wdir.isEmpty() ? 0 : wdir.toStdWString().c_str(), SW_SHOWNORMAL); - if (long(r) < 32) { - DEBUG_LOG(("Application Error: failed to execute %1, working directory: '%2', result: %3").arg(updater).arg(wdir).arg(long(r))); - QString readyPath = cWorkingDir() + qsl("tupdates/ready"); - PsUpdateDownloader::deleteDir(readyPath); - }*/ -} - -void psExecTelegram() { - /*QString targs = qsl("-noupdate -tosettings"); - if (cFromAutoStart()) targs += qsl(" -autostart"); - if (cDebug()) targs += qsl(" -debug"); - if (cDataFile() != (cTestMode() ? qsl("data_test") : qsl("data"))) targs += qsl(" -key \"") + cDataFile() + '"'; - - QString telegram(QDir::toNativeSeparators(cExeDir() + "Telegram.exe")), wdir(QDir::toNativeSeparators(cWorkingDir())); - - DEBUG_LOG(("Application Info: executing %1 %2").arg(cExeDir() + "Telegram.exe").arg(targs)); - HINSTANCE r = ShellExecute(0, 0, telegram.toStdWString().c_str(), targs.toStdWString().c_str(), wdir.isEmpty() ? 0 : wdir.toStdWString().c_str(), SW_SHOWNORMAL); - if (long(r) < 32) { - DEBUG_LOG(("Application Error: failed to execute %1, working directory: '%2', result: %3").arg(telegram).arg(wdir).arg(long(r))); - }*/ -} - -void psAutoStart(bool start, bool silent) { - /*WCHAR startupFolder[MAX_PATH]; - HRESULT hres = SHGetFolderPath(0, CSIDL_STARTUP, 0, SHGFP_TYPE_CURRENT, startupFolder); - if (SUCCEEDED(hres)) { - QString lnk = QString::fromWCharArray(startupFolder) + "\\Telegram.lnk"; - if (start) { - IShellLink* psl; - hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl); - if (SUCCEEDED(hres)) { - IPersistFile* ppf; - - QString exe = QDir::toNativeSeparators(QDir(cExeDir()).absolutePath() + "//Telegram.exe"), dir = QDir::toNativeSeparators(QDir(cWorkingDir()).absolutePath()); - psl->SetArguments(L"-autostart"); - psl->SetPath(exe.toStdWString().c_str()); - psl->SetWorkingDirectory(dir.toStdWString().c_str()); - psl->SetDescription(L"Telegram autorun link.\nYou can disable autorun in Telegram settings."); - - hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf); - - if (SUCCEEDED(hres)) { - hres = ppf->Save(lnk.toStdWString().c_str(), TRUE); - ppf->Release(); - } else { - if (!silent) LOG(("App Error: could not create interface IID_IPersistFile %1").arg(hres)); - } - psl->Release(); - } else { - if (!silent) LOG(("App Error: could not create instance of IID_IShellLink %1").arg(hres)); - } - } else { - QFile::remove(lnk); - } - } else { - if (!silent) LOG(("App Error: could not get CSIDL_STARTUP folder %1").arg(hres)); - }*/ -} diff --git a/Telegram/SourceFiles/pspecific_wnd.cpp b/Telegram/SourceFiles/pspecific_wnd.cpp index 45fa01185..532fde78b 100644 --- a/Telegram/SourceFiles/pspecific_wnd.cpp +++ b/Telegram/SourceFiles/pspecific_wnd.cpp @@ -868,8 +868,6 @@ PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent), ps_hWnd(0), p icon32 = icon256.scaledToWidth(32, Qt::SmoothTransformation); connect(&psIdleTimer, SIGNAL(timeout()), this, SLOT(psIdleTimeout())); psIdleTimer.setSingleShot(false); - connect(¬ifyWaitTimer, SIGNAL(timeout()), this, SLOT(psNotifyFire())); - notifyWaitTimer.setSingleShot(true); } void PsMainWindow::psNotIdle() const { @@ -1388,506 +1386,41 @@ PsMainWindow::~PsMainWindow() { if (ps_menu) DestroyMenu(ps_menu); psDestroyIcons(); _psShadowWindows.destroy(); - psClearNotifyFast(); if (ps_tbHider_hWnd) DestroyWindow(ps_tbHider_hWnd); } -void PsMainWindow::psNotify(History *history, MsgId msgId) { - if (App::quiting() || !history->notifyFrom) return; - - bool haveSetting = (history->peer->notify != UnknownNotifySettings); - if (haveSetting) { - if (history->peer->notify != EmptyNotifySettings && history->peer->notify->mute > unixtime()) { - history->clearNotifyFrom(); - return; - } - } else { - App::wnd()->getNotifySetting(MTP_inputNotifyPeer(history->peer->input)); - } - - uint64 ms = getms() + NotifyWaitTimeout; - notifyWhenAlerts[history].insert(ms); - if (cDesktopNotify()) { - NotifyWhenMaps::iterator i = notifyWhenMaps.find(history); - if (i == notifyWhenMaps.end()) { - i = notifyWhenMaps.insert(history, NotifyWhenMap()); - } - if (i.value().constFind(msgId) == i.value().cend()) { - i.value().insert(msgId, ms); - } - NotifyWaiters *addTo = haveSetting ? ¬ifyWaiters : ¬ifySettingWaiters; - if (addTo->constFind(history) == addTo->cend()) { - addTo->insert(history, NotifyWaiter(msgId, ms)); - } - } - if (haveSetting) { - if (!notifyWaitTimer.isActive()) { - notifyWaitTimer.start(NotifyWaitTimeout); - } - } -} - -void PsMainWindow::psNotifyFire() { - psShowNextNotify(); -} - -void PsMainWindow::psNotifySettingGot() { - int32 t = unixtime(); - for (NotifyWaiters::iterator i = notifySettingWaiters.begin(); i != notifySettingWaiters.end();) { - History *history = i.key(); - if (history->peer->notify == UnknownNotifySettings) { - ++i; - } else { - if (history->peer->notify == EmptyNotifySettings || history->peer->notify->mute <= t) { - notifyWaiters.insert(i.key(), i.value()); - } - i = notifySettingWaiters.erase(i); - } - } - notifyWaitTimer.stop(); - psShowNextNotify(); -} - -void PsMainWindow::psClearNotify(History *history) { - if (!history) { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->unlinkHistory(); - } - for (NotifyWhenMaps::const_iterator i = notifyWhenMaps.cbegin(), e = notifyWhenMaps.cend(); i != e; ++i) { - i.key()->clearNotifyFrom(); - } - notifyWaiters.clear(); - notifySettingWaiters.clear(); - notifyWhenMaps.clear(); - return; - } - notifyWaiters.remove(history); - notifySettingWaiters.remove(history); - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->unlinkHistory(history); - } - notifyWhenMaps.remove(history); - notifyWhenAlerts.remove(history); -} - -void PsMainWindow::psClearNotifyFast() { - notifyWaiters.clear(); - notifySettingWaiters.clear(); - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->deleteLater(); - } - notifyWindows.clear(); - notifyWhenMaps.clear(); - notifyWhenAlerts.clear(); -} - -// QApplication::desktop()->availableGeometry(App::wnd()) works not very fine, returns not nearest namespace { - //RECT _monitorRECT; QRect _monitorRect; - //uint32 _monitorDelta; - //int32 _wndX, _wndY; uint64 _monitorLastGot = 0; - - //BOOL CALLBACK _monitorRectProc( - //_In_ HMONITOR hMonitor, - //_In_ HDC hdcMonitor, - //_In_ LPRECT lprcMonitor, - //_In_ LPARAM dwData - //) { - // MONITORINFOEX info; - // info.cbSize = sizeof(info); - // GetMonitorInfo(hMonitor, &info); - // int32 centerx = (info.rcWork.right + info.rcWork.left) / 2, centery = (info.rcWork.bottom + info.rcWork.top) / 2; - // uint32 delta = (info.rcWork.right > _wndX && info.rcWork.left <= _wndX && info.rcWork.bottom > _wndY && info.rcWork.top <= _wndY) ? 0 : ((centerx - _wndX) * (centerx - _wndX) + (centery - _wndY) * (centery - _wndY)); - // if (delta < _monitorDelta) { - // _monitorDelta = delta; - // _monitorRECT = info.rcWork; - // } - // return !!delta; - //} - QRect _desktopRect() { - uint64 tnow = getms(); - if (tnow > _monitorLastGot + 1000 || tnow < _monitorLastGot) { - _monitorLastGot = tnow; - //RECT r; - //GetWindowRect(App::wnd()->psHwnd(), &r); - //_wndX = (r.right + r.left) / 2; - //_wndY = (r.bottom + r.top) / 2; - //_monitorDelta = INT_MAX; - //EnumDisplayMonitors(0, 0, &_monitorRectProc, 0); - //_monitorRect = (_monitorDelta < INT_MAX) ? QRect(_monitorRECT.left, _monitorRECT.top, _monitorRECT.right - _monitorRECT.left, _monitorRECT.bottom - _monitorRECT.top) : QApplication::desktop()->availableGeometry(App::wnd()); - HMONITOR hMonitor = MonitorFromWindow(App::wnd()->psHwnd(), MONITOR_DEFAULTTONEAREST); - if (hMonitor) { - MONITORINFOEX info; - info.cbSize = sizeof(info); - GetMonitorInfo(hMonitor, &info); - _monitorRect = QRect(info.rcWork.left, info.rcWork.top, info.rcWork.right - info.rcWork.left, info.rcWork.bottom - info.rcWork.top); - } else { - _monitorRect = QApplication::desktop()->availableGeometry(App::wnd()); - } - } - return _monitorRect; - } } -void PsMainWindow::psShowNextNotify(PsNotifyWindow *remove) { - if (App::quiting()) return; - - int32 count = NotifyWindows; - if (remove) { - for (PsNotifyWindows::iterator i = notifyWindows.begin(), e = notifyWindows.end(); i != e; ++i) { - if ((*i) == remove) { - notifyWindows.erase(i); - break; - } - } - } - - uint64 ms = getms(), nextAlert = 0; - bool alert = false; - for (NotifyWhenAlerts::iterator i = notifyWhenAlerts.begin(); i != notifyWhenAlerts.end();) { - while (!i.value().isEmpty() && *i.value().begin() <= ms) { - i.value().erase(i.value().begin()); - NotifySettingsPtr n = i.key()->peer->notify; - if (n == EmptyNotifySettings || n != UnknownNotifySettings && n->mute <= unixtime()) { - alert = true; - } - } - if (i.value().isEmpty()) { - i = notifyWhenAlerts.erase(i); +QRect psDesktopRect() { + uint64 tnow = getms(); + if (tnow > _monitorLastGot + 1000 || tnow < _monitorLastGot) { + _monitorLastGot = tnow; + HMONITOR hMonitor = MonitorFromWindow(App::wnd()->psHwnd(), MONITOR_DEFAULTTONEAREST); + if (hMonitor) { + MONITORINFOEX info; + info.cbSize = sizeof(info); + GetMonitorInfo(hMonitor, &info); + _monitorRect = QRect(info.rcWork.left, info.rcWork.top, info.rcWork.right - info.rcWork.left, info.rcWork.bottom - info.rcWork.top); } else { - if (!nextAlert || nextAlert > *i.value().begin()) { - nextAlert = *i.value().begin(); - } - ++i; + _monitorRect = QApplication::desktop()->availableGeometry(App::wnd()); } } - if (alert) { - psFlash(); - App::playSound(); - } - - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - int32 ind = (*i)->index(); - if (ind < 0) continue; - --count; - } - if (count <= 0 || !cDesktopNotify()) { - if (nextAlert) { - notifyWaitTimer.start(nextAlert - ms); - } - return; - } - - QRect r = _desktopRect(); - int32 x = r.x() + r.width() - st::notifyWidth - st::notifyDeltaX, y = r.y() + r.height() - st::notifyHeight - st::notifyDeltaY; - while (count > 0) { - uint64 next = 0; - HistoryItem *notifyItem = 0; - NotifyWaiters::iterator notifyWaiter; - for (NotifyWaiters::iterator i = notifyWaiters.begin(); i != notifyWaiters.end(); ++i) { - History *history = i.key(); - if (history->notifyFrom && history->notifyFrom->id != i.value().msg) { - NotifyWhenMaps::iterator j = notifyWhenMaps.find(history); - if (j == notifyWhenMaps.end()) { - history->clearNotifyFrom(); - i = notifyWaiters.erase(i); - continue; - } - do { - NotifyWhenMap::const_iterator k = j.value().constFind(history->notifyFrom->id); - if (k != j.value().cend()) { - i.value().msg = k.key(); - i.value().when = k.value(); - break; - } - history->getNextNotifyFrom(); - } while (history->notifyFrom); - } - if (!history->notifyFrom) { - notifyWhenMaps.remove(history); - i = notifyWaiters.erase(i); - continue; - } - uint64 when = i.value().when; - if (!notifyItem || next > when) { - next = when; - notifyItem = history->notifyFrom; - notifyWaiter = i; - } - } - if (notifyItem) { - if (next > ms) { - if (nextAlert && nextAlert < next) { - next = nextAlert; - nextAlert = 0; - } - notifyWaitTimer.start(next - ms); - break; - } else { - notifyWindows.push_back(new PsNotifyWindow(notifyItem, x, y)); - --count; - - uint64 ms = getms(); - History *history = notifyItem->history(); - history->getNextNotifyFrom(); - NotifyWhenMaps::iterator j = notifyWhenMaps.find(history); - if (j == notifyWhenMaps.end() || !history->notifyFrom) { - history->clearNotifyFrom(); - notifyWaiters.erase(notifyWaiter); - if (j != notifyWhenMaps.end()) notifyWhenMaps.erase(j); - continue; - } - j.value().remove(notifyItem->id); - do { - NotifyWhenMap::const_iterator k = j.value().constFind(history->notifyFrom->id); - if (k != j.value().cend()) { - notifyWaiter.value().msg = k.key(); - notifyWaiter.value().when = k.value(); - break; - } - history->getNextNotifyFrom(); - } while (history->notifyFrom); - if (!history->notifyFrom) { - notifyWaiters.erase(notifyWaiter); - notifyWhenMaps.erase(j); - continue; - } - } - } else { - break; - } - } - if (nextAlert) { - notifyWaitTimer.start(nextAlert - ms); - } - - count = NotifyWindows - count; - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - int32 ind = (*i)->index(); - if (ind < 0) continue; - --count; - (*i)->moveTo(x, y - count * (st::notifyHeight + st::notifyDeltaY)); - } + return _monitorRect; } -void PsMainWindow::psStopHiding() { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->stopHiding(); - } +void PsMainWindow::psActivateNotify(NotifyWindow *w) { } -void PsMainWindow::psStartHiding() { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->startHiding(); - } +void PsMainWindow::psClearNotifies(PeerId peerId) { } -void PsMainWindow::psUpdateNotifies() { - for (PsNotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { - (*i)->updatePeerPhoto(); - } +void PsMainWindow::psNotifyShown(NotifyWindow *w) { } -PsNotifyWindow::PsNotifyWindow(HistoryItem *item, int32 x, int32 y) : history(item->history()), aOpacity(0), _index(0), hiding(false), started(GetTickCount()), - alphaDuration(st::notifyFastAnim), posDuration(st::notifyFastAnim), aY(y + st::notifyHeight + st::notifyDeltaY), close(this, st::notifyClose), aOpacityFunc(st::notifyFastAnimFunc) { - - int32 w = st::notifyWidth, h = st::notifyHeight; - QImage img(w, h, QImage::Format_ARGB32_Premultiplied); - img.fill(st::notifyBG->c); - - { - QPainter p(&img); - p.setPen(st::notifyBorder->p); - p.setBrush(Qt::NoBrush); - p.drawRect(0, 0, w - 1, h - 1); - - if (history->peer->photo->loaded()) { - p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), history->peer->photo->pix(st::notifyPhotoSize)); - } else { - MTP::clearLoaderPriorities(); - peerPhoto = history->peer->photo; - peerPhoto->load(true, true); - } - - int32 itemWidth = w - st::notifyPhotoPos.x() - st::notifyPhotoSize - st::notifyTextLeft - st::notifyClosePos.x() - st::notifyClose.width; - - QRect rectForName(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyTextTop, itemWidth, st::msgNameFont->height); - if (history->peer->chat) { - p.drawPixmap(QPoint(rectForName.left() + st::dlgChatImgLeft, rectForName.top() + st::dlgChatImgTop), App::sprite(), st::dlgChatImg); - rectForName.setLeft(rectForName.left() + st::dlgChatImgSkip); - } - - QDateTime now(QDateTime::currentDateTime()), lastTime(item->date); - QDate nowDate(now.date()), lastDate(lastTime.date()); - QString dt = lastTime.toString(qsl("hh:mm")); - int32 dtWidth = st::dlgHistFont->m.width(dt); - rectForName.setWidth(rectForName.width() - dtWidth - st::dlgDateSkip); - p.setFont(st::dlgDateFont->f); - p.setPen(st::dlgDateColor->p); - p.drawText(rectForName.left() + rectForName.width() + st::dlgDateSkip, rectForName.top() + st::dlgHistFont->ascent, dt); - - const HistoryItem *textCachedFor = 0; - Text itemTextCache(itemWidth); - bool active = false; - item->drawInDialog(p, QRect(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyItemTop + st::msgNameFont->height, itemWidth, 2 * st::dlgFont->height), active, textCachedFor, itemTextCache); - - p.setPen(st::dlgNameColor->p); - history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width()); - } - pm = QPixmap::fromImage(img); - - hideTimer.setSingleShot(true); - connect(&hideTimer, SIGNAL(timeout()), this, SLOT(hideByTimer())); - - inputTimer.setSingleShot(true); - connect(&inputTimer, SIGNAL(timeout()), this, SLOT(checkLastInput())); - - connect(&close, SIGNAL(clicked()), this, SLOT(unlinkHistory())); - close.setAcceptBoth(true); - close.move(w - st::notifyClose.width - st::notifyClosePos.x(), st::notifyClosePos.y()); - close.show(); - - aY.start(y); - setGeometry(x, aY.current(), st::notifyWidth, st::notifyHeight); - - aOpacity.start(1); - setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); - - show(); - - setWindowOpacity(aOpacity.current()); - - alphaDuration = posDuration = st::notifyFastAnim; - anim::start(this); - - checkLastInput(); -} - -void PsNotifyWindow::checkLastInput() { - LASTINPUTINFO lii; - lii.cbSize = sizeof(LASTINPUTINFO); - BOOL res = GetLastInputInfo(&lii); - if (!res || lii.dwTime >= started) { - hideTimer.start(st::notifyWaitLongHide); - } else { - inputTimer.start(300); - } -} - -void PsNotifyWindow::moveTo(int32 x, int32 y, int32 index) { - if (index >= 0) { - _index = index; - } - move(x, aY.current()); - aY.start(y); - aOpacity.restart(); - posDuration = st::notifyFastAnim; - anim::start(this); -} - -void PsNotifyWindow::updatePeerPhoto() { - if (!peerPhoto->isNull() && peerPhoto->loaded()) { - QImage img(pm.toImage()); - { - QPainter p(&img); - p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), peerPhoto->pix(st::notifyPhotoSize)); - } - peerPhoto = ImagePtr(); - pm = QPixmap::fromImage(img); - update(); - } -} - -void PsNotifyWindow::unlinkHistory(History *hist) { - if (!hist || hist == history) { - animHide(st::notifyFastAnim, st::notifyFastAnimFunc); - history = 0; - App::wnd()->psShowNextNotify(); - } -} - -void PsNotifyWindow::enterEvent(QEvent *e) { - if (!history) return; - if (App::wnd()) App::wnd()->psStopHiding(); -} - -void PsNotifyWindow::leaveEvent(QEvent *e) { - if (!history) return; - App::wnd()->psStartHiding(); -} - -void PsNotifyWindow::startHiding() { - hideTimer.start(st::notifyWaitShortHide); -} - -void PsNotifyWindow::mousePressEvent(QMouseEvent *e) { - if (!history) return; - if (e->button() == Qt::RightButton) { - unlinkHistory(); - } else if (history) { - App::wnd()->showFromTray(); - App::wnd()->hideSettings(); - App::main()->showPeer(history->peer->id, false, true); - e->ignore(); - } -} - -void PsNotifyWindow::paintEvent(QPaintEvent *e) { - QPainter p(this); - p.drawPixmap(0, 0, pm); -} - -void PsNotifyWindow::animHide(float64 duration, anim::transition func) { - if (!history) return; - alphaDuration = duration; - aOpacityFunc = func; - aOpacity.start(0); - aY.restart(); - hiding = true; - anim::start(this); -} - -void PsNotifyWindow::stopHiding() { - if (!history) return; - alphaDuration = st::notifyFastAnim; - aOpacityFunc = st::notifyFastAnimFunc; - aOpacity.start(1); - aY.restart(); - hiding = false; - hideTimer.stop(); - anim::start(this); -} - -void PsNotifyWindow::hideByTimer() { - if (!history) return; - animHide(st::notifySlowHide, st::notifySlowHideFunc); -} - -bool PsNotifyWindow::animStep(float64 ms) { - float64 dtAlpha = ms / alphaDuration, dtPos = ms / posDuration; - if (dtAlpha >= 1) { - aOpacity.finish(); - if (hiding) { - deleteLater(); - } - } else { - aOpacity.update(dtAlpha, aOpacityFunc); - } - setWindowOpacity(aOpacity.current()); - if (dtPos >= 1) { - aY.finish(); - } else { - aY.update(dtPos, anim::linear); - } - move(x(), aY.current()); - update(); - return (dtAlpha < 1 || !hiding && dtPos < 1); -} - -PsNotifyWindow::~PsNotifyWindow() { - if (App::wnd()) App::wnd()->psShowNextNotify(this); +void PsMainWindow::psPlatformNotify(HistoryItem *item) { } PsApplication::PsApplication(int &argc, char **argv) : QApplication(argc, argv) { diff --git a/Telegram/SourceFiles/pspecific_wnd.h b/Telegram/SourceFiles/pspecific_wnd.h index cb188d63c..5dfd4341f 100644 --- a/Telegram/SourceFiles/pspecific_wnd.h +++ b/Telegram/SourceFiles/pspecific_wnd.h @@ -23,58 +23,7 @@ inline QString psServerPrefix() { inline void psCheckLocalSocket(const QString &) { } -class PsNotifyWindow : public QWidget, public Animated { - Q_OBJECT - -public: - - PsNotifyWindow(HistoryItem *item, int32 x, int32 y); - - void enterEvent(QEvent *e); - void leaveEvent(QEvent *e); - void mousePressEvent(QMouseEvent *e); - void paintEvent(QPaintEvent *e); - - bool animStep(float64 ms); - void animHide(float64 duration, anim::transition func); - void startHiding(); - void stopHiding(); - void moveTo(int32 x, int32 y, int32 index = -1); - - void updatePeerPhoto(); - - int32 index() const { - return history ? _index : -1; - } - - ~PsNotifyWindow(); - -public slots: - - void hideByTimer(); - void checkLastInput(); - - void unlinkHistory(History *hist = 0); - -private: - - DWORD started; - - History *history; - IconedButton close; - QPixmap pm; - float64 alphaDuration, posDuration; - QTimer hideTimer, inputTimer; - bool hiding; - int32 _index; - anim::fvalue aOpacity; - anim::transition aOpacityFunc; - anim::ivalue aY; - ImagePtr peerPhoto; - -}; - -typedef QList PsNotifyWindows; +class NotifyWindow; class PsMainWindow : public QMainWindow { Q_OBJECT @@ -112,18 +61,15 @@ public: return false; } - void psNotify(History *history, MsgId msgId); - void psClearNotify(History *history = 0); - void psClearNotifyFast(); - void psShowNextNotify(PsNotifyWindow *remove = 0); - void psStopHiding(); - void psStartHiding(); - void psUpdateNotifies(); - bool psPosInited() const { return posInited; } + void psActivateNotify(NotifyWindow *w); + void psClearNotifies(PeerId peerId = 0); + void psNotifyShown(NotifyWindow *w); + void psPlatformNotify(HistoryItem *item); + ~PsMainWindow(); public slots: @@ -132,7 +78,6 @@ public slots: void psUpdateCounter(); void psSavePosition(Qt::WindowState state = Qt::WindowActive); void psIdleTimeout(); - void psNotifyFire(); protected: @@ -145,26 +90,6 @@ protected: virtual void setupTrayIcon() { } - typedef QMap NotifyWhenMap; - typedef QMap NotifyWhenMaps; - NotifyWhenMaps notifyWhenMaps; - struct NotifyWaiter { - NotifyWaiter(MsgId msg, uint64 when) : msg(msg), when(when) { - } - MsgId msg; - uint64 when; - }; - typedef QMap NotifyWaiters; - NotifyWaiters notifyWaiters; - NotifyWaiters notifySettingWaiters; - QTimer notifyWaitTimer; - - typedef QSet NotifyWhenAlert; - typedef QMap NotifyWhenAlerts; - NotifyWhenAlerts notifyWhenAlerts; - - PsNotifyWindows notifyWindows; - QTimer psUpdatedPositionTimer; private: @@ -251,6 +176,8 @@ QString psAppDataPath(); QString psCurrentExeDirectory(int argc, char *argv[]); void psAutoStart(bool start, bool silent = false); +QRect psDesktopRect(); + int psCleanup(); int psFixPrevious(); diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index 5600fac6a..428a548c3 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -89,6 +89,11 @@ QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/linux/tupdates/current")); #endif void settingsParseArgs(int argc, char *argv[]) { + if (cPlatform() == dbipMac) { + gCustomNotifies = false; + } else { + gCustomNotifies = true; + } memset_rand(&gInstance, sizeof(gInstance)); gExeDir = psCurrentExeDirectory(argc, argv); for (int32 i = 0; i < argc; ++i) { diff --git a/Telegram/SourceFiles/settingswidget.cpp b/Telegram/SourceFiles/settingswidget.cpp index 5fced5e7b..dd359d2ae 100644 --- a/Telegram/SourceFiles/settingswidget.cpp +++ b/Telegram/SourceFiles/settingswidget.cpp @@ -75,11 +75,7 @@ void Slider::setSelected(int32 sel) { void Slider::paintEvent(QPaintEvent *e) { QPainter p(this); - p.setPen(_st.color->p); - int32 from = (height() - _st.thikness) / 2, to = from + _st.thikness; - for (int32 i = from; i < to; ++i) { - p.drawLine(0, i, width() - 1, i); - } + p.fillRect(0, (height() - _st.thikness) / 2, width(), _st.thikness, _st.color->b); int32 x = qFloor(_sel * float64(width() - _st.bar.pxWidth()) / (_count - 1)), y = (height() - _st.bar.pxHeight()) / 2; p.drawPixmap(QPoint(x, y), App::sprite(), _st.bar); @@ -908,7 +904,7 @@ void SettingsInner::onSoundNotify() { void SettingsInner::onDesktopNotify() { cSetDesktopNotify(_desktopNotify.checked()); if (!_desktopNotify.checked()) { - App::wnd()->psClearNotify(); + App::wnd()->notifyClear(); } App::writeUserConfig(); } diff --git a/Telegram/SourceFiles/stdafx.h b/Telegram/SourceFiles/stdafx.h index 6ac7aec17..05f1ab58d 100644 --- a/Telegram/SourceFiles/stdafx.h +++ b/Telegram/SourceFiles/stdafx.h @@ -56,6 +56,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com #include "gui/flatinput.h" #include "gui/flattextarea.h" #include "gui/flatbutton.h" +#include "gui/switcher.h" #include "gui/scrollarea.h" #include "gui/images.h" #include "gui/text.h" diff --git a/Telegram/SourceFiles/window.cpp b/Telegram/SourceFiles/window.cpp index 7d0f6e4db..3e383e113 100644 --- a/Telegram/SourceFiles/window.cpp +++ b/Telegram/SourceFiles/window.cpp @@ -76,6 +76,229 @@ void TempDirDeleter::onStart() { } } + +NotifyWindow::NotifyWindow(HistoryItem *item, int32 x, int32 y) : history(item->history()) +#ifdef Q_OS_WIN +, started(GetTickCount()) +#endif +, close(this, st::notifyClose) +, alphaDuration(st::notifyFastAnim) +, posDuration(st::notifyFastAnim) +, hiding(false) +, _index(0) +, aOpacity(0) +, aOpacityFunc(st::notifyFastAnimFunc) +, aY(y + st::notifyHeight + st::notifyDeltaY) { + + int32 w = st::notifyWidth, h = st::notifyHeight; + QImage img(w * cIntRetinaFactor(), h * cIntRetinaFactor(), QImage::Format_ARGB32_Premultiplied); + if (cRetina()) img.setDevicePixelRatio(cRetinaFactor()); + img.fill(st::notifyBG->c); + + { + QPainter p(&img); + p.fillRect(0, 0, w - st::notifyBorderWidth, st::notifyBorderWidth, st::notifyBorder->b); + p.fillRect(w - st::notifyBorderWidth, 0, st::notifyBorderWidth, h - st::notifyBorderWidth, st::notifyBorder->b); + p.fillRect(st::notifyBorderWidth, h - st::notifyBorderWidth, w - st::notifyBorderWidth, st::notifyBorderWidth, st::notifyBorder->b); + p.fillRect(0, st::notifyBorderWidth, st::notifyBorderWidth, h - st::notifyBorderWidth, st::notifyBorder->b); + + if (history->peer->photo->loaded()) { + p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), history->peer->photo->pix(st::notifyPhotoSize)); + } else { + MTP::clearLoaderPriorities(); + peerPhoto = history->peer->photo; + peerPhoto->load(true, true); + } + + int32 itemWidth = w - st::notifyPhotoPos.x() - st::notifyPhotoSize - st::notifyTextLeft - st::notifyClosePos.x() - st::notifyClose.width; + + QRect rectForName(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyTextTop, itemWidth, st::msgNameFont->height); + if (history->peer->chat) { + p.drawPixmap(QPoint(rectForName.left() + st::dlgChatImgLeft, rectForName.top() + st::dlgChatImgTop), App::sprite(), st::dlgChatImg); + rectForName.setLeft(rectForName.left() + st::dlgChatImgSkip); + } + + QDateTime now(QDateTime::currentDateTime()), lastTime(item->date); + QDate nowDate(now.date()), lastDate(lastTime.date()); + QString dt = lastTime.toString(qsl("hh:mm")); + int32 dtWidth = st::dlgHistFont->m.width(dt); + rectForName.setWidth(rectForName.width() - dtWidth - st::dlgDateSkip); + p.setFont(st::dlgDateFont->f); + p.setPen(st::dlgDateColor->p); + p.drawText(rectForName.left() + rectForName.width() + st::dlgDateSkip, rectForName.top() + st::dlgHistFont->ascent, dt); + + const HistoryItem *textCachedFor = 0; + Text itemTextCache(itemWidth); + bool active = false; + item->drawInDialog(p, QRect(st::notifyPhotoPos.x() + st::notifyPhotoSize + st::notifyTextLeft, st::notifyItemTop + st::msgNameFont->height, itemWidth, 2 * st::dlgFont->height), active, textCachedFor, itemTextCache); + + p.setPen(st::dlgNameColor->p); + history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width()); + } + pm = QPixmap::fromImage(img); + + hideTimer.setSingleShot(true); + connect(&hideTimer, SIGNAL(timeout()), this, SLOT(hideByTimer())); + + inputTimer.setSingleShot(true); + connect(&inputTimer, SIGNAL(timeout()), this, SLOT(checkLastInput())); + + connect(&close, SIGNAL(clicked()), this, SLOT(unlinkHistory())); + close.setAcceptBoth(true); + close.move(w - st::notifyClose.width - st::notifyClosePos.x(), st::notifyClosePos.y()); + close.show(); + + aY.start(y); + setGeometry(x, aY.current(), st::notifyWidth, st::notifyHeight); + + aOpacity.start(1); + setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint); + setAttribute(Qt::WA_MacAlwaysShowToolWindow); + + show(); + + setWindowOpacity(aOpacity.current()); + + alphaDuration = posDuration = st::notifyFastAnim; + anim::start(this); + + checkLastInput(); +} + +void NotifyWindow::checkLastInput() { +#ifdef Q_OS_WIN + LASTINPUTINFO lii; + lii.cbSize = sizeof(LASTINPUTINFO); + BOOL res = GetLastInputInfo(&lii); + if (!res || lii.dwTime >= started) { + hideTimer.start(st::notifyWaitLongHide); + } else { + inputTimer.start(300); + } +#else + // TODO + if (true) { + hideTimer.start(st::notifyWaitLongHide); + } else { + inputTimer.start(300); + } +#endif +} + +void NotifyWindow::moveTo(int32 x, int32 y, int32 index) { + if (index >= 0) { + _index = index; + } + move(x, aY.current()); + aY.start(y); + aOpacity.restart(); + posDuration = st::notifyFastAnim; + anim::start(this); +} + +void NotifyWindow::updatePeerPhoto() { + if (!peerPhoto->isNull() && peerPhoto->loaded()) { + QImage img(pm.toImage()); + { + QPainter p(&img); + p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), peerPhoto->pix(st::notifyPhotoSize)); + } + peerPhoto = ImagePtr(); + pm = QPixmap::fromImage(img); + update(); + } +} + +void NotifyWindow::unlinkHistory(History *hist) { + if (!hist || hist == history) { + animHide(st::notifyFastAnim, st::notifyFastAnimFunc); + history = 0; + App::wnd()->notifyShowNext(); + } +} + +void NotifyWindow::enterEvent(QEvent *e) { + if (!history) return; + if (App::wnd()) App::wnd()->notifyStopHiding(); +} + +void NotifyWindow::leaveEvent(QEvent *e) { + if (!history) return; + App::wnd()->notifyStartHiding(); +} + +void NotifyWindow::startHiding() { + hideTimer.start(st::notifyWaitShortHide); +} + +void NotifyWindow::mousePressEvent(QMouseEvent *e) { + if (!history) return; + if (e->button() == Qt::RightButton) { + unlinkHistory(); + } else if (history) { + App::wnd()->showFromTray(); + App::wnd()->hideSettings(); + App::main()->showPeer(history->peer->id, 0, false, true); + e->ignore(); + } +} + +void NotifyWindow::paintEvent(QPaintEvent *e) { + QPainter p(this); + p.drawPixmap(0, 0, pm); +} + +void NotifyWindow::animHide(float64 duration, anim::transition func) { + if (!history) return; + alphaDuration = duration; + aOpacityFunc = func; + aOpacity.start(0); + aY.restart(); + hiding = true; + anim::start(this); +} + +void NotifyWindow::stopHiding() { + if (!history) return; + alphaDuration = st::notifyFastAnim; + aOpacityFunc = st::notifyFastAnimFunc; + aOpacity.start(1); + aY.restart(); + hiding = false; + hideTimer.stop(); + anim::start(this); +} + +void NotifyWindow::hideByTimer() { + if (!history) return; + animHide(st::notifySlowHide, st::notifySlowHideFunc); +} + +bool NotifyWindow::animStep(float64 ms) { + float64 dtAlpha = ms / alphaDuration, dtPos = ms / posDuration; + if (dtAlpha >= 1) { + aOpacity.finish(); + if (hiding) { + deleteLater(); + } + } else { + aOpacity.update(dtAlpha, aOpacityFunc); + } + setWindowOpacity(aOpacity.current()); + if (dtPos >= 1) { + aY.finish(); + } else { + aY.update(dtPos, anim::linear); + } + move(x(), aY.current()); + update(); + return (dtAlpha < 1 || (!hiding && dtPos < 1)); +} + +NotifyWindow::~NotifyWindow() { + if (App::wnd()) App::wnd()->notifyShowNext(this); +} + Window::Window(QWidget *parent) : PsMainWindow(parent), intro(0), main(0), settings(0), layer(0), layerBG(0), _topWidget(0), _connecting(0), _tempDeleter(0), _tempDeleterThread(0), myIcon(QPixmap::fromImage(icon256)), dragging(false), _inactivePress(false) { @@ -93,6 +316,9 @@ Window::Window(QWidget *parent) : PsMainWindow(parent), _inactiveTimer.setSingleShot(true); connect(&_inactiveTimer, SIGNAL(timeout()), this, SLOT(onInactiveTimer())); + + connect(¬ifyWaitTimer, SIGNAL(timeout()), this, SLOT(notifyFire())); + notifyWaitTimer.setSingleShot(true); } void Window::inactivePress(bool inactive) { @@ -650,7 +876,282 @@ void Window::onTempDirClearFailed() { emit tempDirClearFailed(); } +void Window::notifySchedule(History *history, MsgId msgId) { + if (App::quiting() || !history->currentNotification()) return; + + bool haveSetting = (history->peer->notify != UnknownNotifySettings); + if (haveSetting) { + if (history->peer->notify != EmptyNotifySettings && history->peer->notify->mute > unixtime()) { + history->clearNotifications(); + return; + } + } else { + App::wnd()->getNotifySetting(MTP_inputNotifyPeer(history->peer->input)); + } + + uint64 ms = getms() + NotifyWaitTimeout; + notifyWhenAlerts[history].insert(ms); + if (cDesktopNotify()) { + NotifyWhenMaps::iterator i = notifyWhenMaps.find(history); + if (i == notifyWhenMaps.end()) { + i = notifyWhenMaps.insert(history, NotifyWhenMap()); + } + if (i.value().constFind(msgId) == i.value().cend()) { + i.value().insert(msgId, ms); + } + NotifyWaiters *addTo = haveSetting ? ¬ifyWaiters : ¬ifySettingWaiters; + if (addTo->constFind(history) == addTo->cend()) { + addTo->insert(history, NotifyWaiter(msgId, ms)); + } + } + if (haveSetting) { + if (!notifyWaitTimer.isActive()) { + notifyWaitTimer.start(NotifyWaitTimeout); + } + } +} + +void Window::notifyFire() { + notifyShowNext(); +} + +void Window::notifyClear(History *history) { + if (!history) { + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + (*i)->unlinkHistory(); + } + psClearNotifies(); + for (NotifyWhenMaps::const_iterator i = notifyWhenMaps.cbegin(), e = notifyWhenMaps.cend(); i != e; ++i) { + i.key()->clearNotifications(); + } + notifyWaiters.clear(); + notifySettingWaiters.clear(); + notifyWhenMaps.clear(); + return; + } + notifyWaiters.remove(history); + notifySettingWaiters.remove(history); + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + (*i)->unlinkHistory(history); + } + psClearNotifies(history->peer->id); + notifyWhenMaps.remove(history); + notifyWhenAlerts.remove(history); +} + +void Window::notifyClearFast() { + notifyWaiters.clear(); + notifySettingWaiters.clear(); + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + (*i)->deleteLater(); + } + psClearNotifies(); + notifyWindows.clear(); + notifyWhenMaps.clear(); + notifyWhenAlerts.clear(); +} + +void Window::notifySettingGot() { + int32 t = unixtime(); + for (NotifyWaiters::iterator i = notifySettingWaiters.begin(); i != notifySettingWaiters.end();) { + History *history = i.key(); + if (history->peer->notify == UnknownNotifySettings) { + ++i; + } else { + if (history->peer->notify == EmptyNotifySettings || history->peer->notify->mute <= t) { + notifyWaiters.insert(i.key(), i.value()); + } + i = notifySettingWaiters.erase(i); + } + } + notifyWaitTimer.stop(); + notifyShowNext(); +} + +void Window::notifyShowNext(NotifyWindow *remove) { + if (App::quiting()) return; + + int32 count = NotifyWindowsCount; + if (remove) { + for (NotifyWindows::iterator i = notifyWindows.begin(), e = notifyWindows.end(); i != e; ++i) { + if ((*i) == remove) { + notifyWindows.erase(i); + break; + } + } + } + + uint64 ms = getms(), nextAlert = 0; + bool alert = false; + for (NotifyWhenAlerts::iterator i = notifyWhenAlerts.begin(); i != notifyWhenAlerts.end();) { + while (!i.value().isEmpty() && *i.value().begin() <= ms) { + i.value().erase(i.value().begin()); + NotifySettingsPtr n = i.key()->peer->notify; + if (n == EmptyNotifySettings || (n != UnknownNotifySettings && n->mute <= unixtime())) { + alert = true; + } + } + if (i.value().isEmpty()) { + i = notifyWhenAlerts.erase(i); + } else { + if (!nextAlert || nextAlert > *i.value().begin()) { + nextAlert = *i.value().begin(); + } + ++i; + } + } + if (alert) { + psFlash(); + App::playSound(); + } + + if (cCustomNotifies()) { + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + int32 ind = (*i)->index(); + if (ind < 0) continue; + --count; + } + } + if (count <= 0 || !cDesktopNotify()) { + if (nextAlert) { + notifyWaitTimer.start(nextAlert - ms); + } + return; + } + + QRect r = psDesktopRect(); + int32 x = r.x() + r.width() - st::notifyWidth - st::notifyDeltaX, y = r.y() + r.height() - st::notifyHeight - st::notifyDeltaY; + while (count > 0) { + uint64 next = 0; + HistoryItem *notifyItem = 0; + NotifyWaiters::iterator notifyWaiter; + for (NotifyWaiters::iterator i = notifyWaiters.begin(); i != notifyWaiters.end(); ++i) { + History *history = i.key(); + if (history->currentNotification() && history->currentNotification()->id != i.value().msg) { + NotifyWhenMaps::iterator j = notifyWhenMaps.find(history); + if (j == notifyWhenMaps.end()) { + history->clearNotifications(); + i = notifyWaiters.erase(i); + continue; + } + do { + NotifyWhenMap::const_iterator k = j.value().constFind(history->currentNotification()->id); + if (k != j.value().cend()) { + i.value().msg = k.key(); + i.value().when = k.value(); + break; + } + history->skipNotification(); + } while (history->currentNotification()); + } + if (!history->currentNotification()) { + notifyWhenMaps.remove(history); + i = notifyWaiters.erase(i); + continue; + } + uint64 when = i.value().when; + if (!notifyItem || next > when) { + next = when; + notifyItem = history->currentNotification(); + notifyWaiter = i; + } + } + if (notifyItem) { + if (next > ms) { + if (nextAlert && nextAlert < next) { + next = nextAlert; + nextAlert = 0; + } + notifyWaitTimer.start(next - ms); + break; + } else { + if (cCustomNotifies()) { + NotifyWindow *notify = new NotifyWindow(notifyItem, x, y); + notifyWindows.push_back(notify); + psNotifyShown(notify); + --count; + } else { + psPlatformNotify(notifyItem); + } + + + uint64 ms = getms(); + History *history = notifyItem->history(); + history->skipNotification(); + NotifyWhenMaps::iterator j = notifyWhenMaps.find(history); + if (j == notifyWhenMaps.end() || !history->currentNotification()) { + history->clearNotifications(); + notifyWaiters.erase(notifyWaiter); + if (j != notifyWhenMaps.end()) notifyWhenMaps.erase(j); + continue; + } + j.value().remove(notifyItem->id); + do { + NotifyWhenMap::const_iterator k = j.value().constFind(history->currentNotification()->id); + if (k != j.value().cend()) { + notifyWaiter.value().msg = k.key(); + notifyWaiter.value().when = k.value(); + break; + } + history->skipNotification(); + } while (history->currentNotification()); + if (!history->currentNotification()) { + notifyWaiters.erase(notifyWaiter); + notifyWhenMaps.erase(j); + continue; + } + } + } else { + break; + } + } + if (nextAlert) { + notifyWaitTimer.start(nextAlert - ms); + } + + count = NotifyWindowsCount - count; + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + int32 ind = (*i)->index(); + if (ind < 0) continue; + --count; + (*i)->moveTo(x, y - count * (st::notifyHeight + st::notifyDeltaY)); + } +} + +void Window::notifyStopHiding() { + if (cCustomNotifies()) { + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + (*i)->stopHiding(); + } + } +} + +void Window::notifyStartHiding() { + if (cCustomNotifies()) { + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + (*i)->startHiding(); + } + } +} + +void Window::notifyUpdateAll() { + if (cCustomNotifies()) { + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + (*i)->updatePeerPhoto(); + } + } +} + +void Window::notifyActivateAll() { + if (cCustomNotifies()) { + for (NotifyWindows::const_iterator i = notifyWindows.cbegin(), e = notifyWindows.cend(); i != e; ++i) { + psActivateNotify(*i); + } + } +} + Window::~Window() { + notifyClearFast(); delete _tempDeleter; delete _tempDeleterThread; delete _connecting; diff --git a/Telegram/SourceFiles/window.h b/Telegram/SourceFiles/window.h index 66fca6df2..395219ceb 100644 --- a/Telegram/SourceFiles/window.h +++ b/Telegram/SourceFiles/window.h @@ -66,6 +66,61 @@ signals: }; + +class NotifyWindow : public QWidget, public Animated { + Q_OBJECT + +public: + + NotifyWindow(HistoryItem *item, int32 x, int32 y); + + void enterEvent(QEvent *e); + void leaveEvent(QEvent *e); + void mousePressEvent(QMouseEvent *e); + void paintEvent(QPaintEvent *e); + + bool animStep(float64 ms); + void animHide(float64 duration, anim::transition func); + void startHiding(); + void stopHiding(); + void moveTo(int32 x, int32 y, int32 index = -1); + + void updatePeerPhoto(); + + int32 index() const { + return history ? _index : -1; + } + + ~NotifyWindow(); + +public slots: + + void hideByTimer(); + void checkLastInput(); + + void unlinkHistory(History *hist = 0); + +private: + +#ifdef Q_OS_WIN + DWORD started; +#endif + History *history; + IconedButton close; + QPixmap pm; + float64 alphaDuration, posDuration; + QTimer hideTimer, inputTimer; + bool hiding; + int32 _index; + anim::fvalue aOpacity; + anim::transition aOpacityFunc; + anim::ivalue aY; + ImagePtr peerPhoto; + +}; + +typedef QList NotifyWindows; + class Window : public PsMainWindow { Q_OBJECT @@ -150,6 +205,16 @@ public: TempDirState tempDirState(); void tempDirDelete(); + void notifySettingGot(); + void notifySchedule(History *history, MsgId msgId); + void notifyClear(History *history = 0); + void notifyClearFast(); + void notifyShowNext(NotifyWindow *remove = 0); + void notifyStopHiding(); + void notifyStartHiding(); + void notifyUpdateAll(); + void notifyActivateAll(); + public slots: void checkHistoryActivation(int state = -1); @@ -165,6 +230,8 @@ public slots: void onTempDirCleared(); void onTempDirClearFailed(); + + void notifyFire(); signals: @@ -202,6 +269,27 @@ private: bool _inactivePress; QTimer _inactiveTimer; + typedef QMap NotifyWhenMap; + typedef QMap NotifyWhenMaps; + NotifyWhenMaps notifyWhenMaps; + struct NotifyWaiter { + NotifyWaiter(MsgId msg, uint64 when) : msg(msg), when(when) { + } + MsgId msg; + uint64 when; + }; + typedef QMap NotifyWaiters; + NotifyWaiters notifyWaiters; + NotifyWaiters notifySettingWaiters; + QTimer notifyWaitTimer; + + typedef QSet NotifyWhenAlert; + typedef QMap NotifyWhenAlerts; + NotifyWhenAlerts notifyWhenAlerts; + + NotifyWindows notifyWindows; + + }; #endif // MAINWINDOW_H diff --git a/Telegram/Telegram.plist b/Telegram/Telegram.plist index c4e8ffab3..5e8852f73 100644 --- a/Telegram/Telegram.plist +++ b/Telegram/Telegram.plist @@ -11,7 +11,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.5.5 + 0.5.6 CFBundleSignature ???? NOTE diff --git a/Telegram/Telegram.rc b/Telegram/Telegram.rc index f817ae7c4..722d4c90c 100644 Binary files a/Telegram/Telegram.rc and b/Telegram/Telegram.rc differ diff --git a/Telegram/Telegram.vcxproj b/Telegram/Telegram.vcxproj index 735b600e7..58da9772b 100644 --- a/Telegram/Telegram.vcxproj +++ b/Telegram/Telegram.vcxproj @@ -66,7 +66,7 @@ UNICODE;WIN32;WIN64;HAVE_STDINT_H;ZLIB_WINAPI;%(PreprocessorDefinitions) - .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui;%(AdditionalIncludeDirectories) + .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui;%(AdditionalIncludeDirectories) ProgramDatabase false Use @@ -93,7 +93,7 @@ UNICODE;_WITH_DEBUG;WIN32;WIN64;HAVE_STDINT_H;ZLIB_WINAPI;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions) - .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui;%(AdditionalIncludeDirectories) + .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui;%(AdditionalIncludeDirectories) ProgramDatabase MultiThreaded false @@ -120,7 +120,7 @@ CUSTOM_API_ID;UNICODE;_WITH_DEBUG;WIN32;WIN64;HAVE_STDINT_H;ZLIB_WINAPI;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions) - .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui;%(AdditionalIncludeDirectories) + .\..\..\Libraries\lzma\C;.\..\..\Libraries\libexif-0.6.20;.\..\..\Libraries\zlib-1.2.8;.\..\..\Libraries\OpenSSL-Win32\include;.\SourceFiles;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore;.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui;%(AdditionalIncludeDirectories) ProgramDatabase MultiThreaded false @@ -314,6 +314,10 @@ true true + + true + true + true true @@ -498,6 +502,10 @@ true true + + true + true + true true @@ -691,6 +699,10 @@ true true + + true + true + true true @@ -740,6 +752,7 @@ + @@ -780,13 +793,13 @@ Moc%27ing window.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/window.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" Moc%27ing window.h... Moc%27ing window.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/window.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/window.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -807,13 +820,13 @@ Moc%27ing application.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/application.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" Moc%27ing application.h... Moc%27ing application.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/application.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/application.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -826,13 +839,13 @@ Moc%27ing aboutbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" Moc%27ing aboutbox.h... Moc%27ing aboutbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/aboutbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -840,13 +853,13 @@ Moc%27ing addcontactbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" Moc%27ing addcontactbox.h... Moc%27ing addcontactbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addcontactbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -854,13 +867,13 @@ Moc%27ing addparticipantbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" Moc%27ing addparticipantbox.h... Moc%27ing addparticipantbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/addparticipantbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -868,13 +881,13 @@ Moc%27ing confirmbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" Moc%27ing confirmbox.h... Moc%27ing confirmbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/confirmbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -882,13 +895,13 @@ Moc%27ing connectionbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" Moc%27ing connectionbox.h... Moc%27ing connectionbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/connectionbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -896,13 +909,13 @@ Moc%27ing contactsbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" Moc%27ing contactsbox.h... Moc%27ing contactsbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/contactsbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -910,13 +923,13 @@ Moc%27ing newgroupbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" Moc%27ing newgroupbox.h... Moc%27ing newgroupbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/newgroupbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -924,13 +937,13 @@ Moc%27ing photocropbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" Moc%27ing photocropbox.h... Moc%27ing photocropbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photocropbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -938,13 +951,13 @@ Moc%27ing photosendbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" Moc%27ing photosendbox.h... Moc%27ing photosendbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/photosendbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -952,13 +965,13 @@ Moc%27ing emojibox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" Moc%27ing emojibox.h... Moc%27ing emojibox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/emojibox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -966,13 +979,13 @@ Moc%27ing downloadpathbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" Moc%27ing downloadpathbox.h... Moc%27ing downloadpathbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/boxes/downloadpathbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -981,13 +994,13 @@ Moc%27ing animation.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" Moc%27ing animation.h... Moc%27ing animation.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/animation.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -995,13 +1008,13 @@ Moc%27ing button.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" Moc%27ing button.h... Moc%27ing button.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/button.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1009,13 +1022,13 @@ Moc%27ing flatbutton.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" Moc%27ing flatbutton.h... Moc%27ing flatbutton.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatbutton.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1023,13 +1036,13 @@ Moc%27ing flatinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" Moc%27ing flatinput.h... Moc%27ing flatinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1037,13 +1050,13 @@ Moc%27ing countrycodeinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" Moc%27ing countrycodeinput.h... Moc%27ing countrycodeinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countrycodeinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1051,13 +1064,13 @@ Moc%27ing phoneinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" Moc%27ing phoneinput.h... Moc%27ing phoneinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/phoneinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1065,13 +1078,13 @@ Moc%27ing countryinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" Moc%27ing countryinput.h... Moc%27ing countryinput.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/countryinput.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1080,13 +1093,13 @@ Moc%27ing scrollarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" Moc%27ing scrollarea.h... Moc%27ing scrollarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/scrollarea.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1094,13 +1107,13 @@ Moc%27ing dialogswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" Moc%27ing dialogswidget.h... Moc%27ing dialogswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dialogswidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1108,13 +1121,13 @@ Moc%27ing flattextarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" Moc%27ing flattextarea.h... Moc%27ing flattextarea.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flattextarea.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1122,13 +1135,13 @@ Moc%27ing fileuploader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" Moc%27ing fileuploader.h... Moc%27ing fileuploader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/fileuploader.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1136,13 +1149,13 @@ Moc%27ing dropdown.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" Moc%27ing dropdown.h... Moc%27ing dropdown.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/dropdown.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1152,13 +1165,13 @@ Moc%27ing flatcheckbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" Moc%27ing flatcheckbox.h... Moc%27ing flatcheckbox.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatcheckbox.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1187,13 +1200,13 @@ Moc%27ing flatlabel.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" Moc%27ing flatlabel.h... Moc%27ing flatlabel.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/flatlabel.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1201,30 +1214,44 @@ Moc%27ing twidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" Moc%27ing twidget.h... Moc%27ing twidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/twidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) + + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing switcher.h... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing switcher.h... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" + $(QTDIR)\bin\moc.exe;%(FullPath) + Moc%27ing switcher.h... + .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/gui/switcher.h" + Moc%27ing historywidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" Moc%27ing historywidget.h... Moc%27ing historywidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/historywidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1232,13 +1259,13 @@ Moc%27ing intro.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" Moc%27ing intro.h... Moc%27ing intro.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/intro.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1246,13 +1273,13 @@ Moc%27ing introcode.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" Moc%27ing introcode.h... Moc%27ing introcode.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introcode.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1260,13 +1287,13 @@ Moc%27ing introphone.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" Moc%27ing introphone.h... Moc%27ing introphone.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introphone.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1274,13 +1301,13 @@ Moc%27ing introsignup.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" Moc%27ing introsignup.h... Moc%27ing introsignup.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/intro/introsignup.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1289,13 +1316,13 @@ Moc%27ing layerwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" Moc%27ing layerwidget.h... Moc%27ing layerwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/layerwidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1303,13 +1330,13 @@ Moc%27ing localimageloader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" Moc%27ing localimageloader.h... Moc%27ing localimageloader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/localimageloader.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1319,13 +1346,13 @@ Moc%27ing mtpConnection.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" Moc%27ing mtpConnection.h... Moc%27ing mtpConnection.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpConnection.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1333,13 +1360,13 @@ Moc%27ing mainwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" Moc%27ing mainwidget.h... Moc%27ing mainwidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mainwidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1347,13 +1374,13 @@ Moc%27ing mtp.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" Moc%27ing mtp.h... Moc%27ing mtp.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtp.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1362,13 +1389,13 @@ Moc%27ing mtpFileLoader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" Moc%27ing mtpFileLoader.h... Moc%27ing mtpFileLoader.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpFileLoader.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1378,13 +1405,13 @@ Moc%27ing mtpDC.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" Moc%27ing mtpDC.h... Moc%27ing mtpDC.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpDC.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1394,13 +1421,13 @@ Moc%27ing mtpSession.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" Moc%27ing mtpSession.h... Moc%27ing mtpSession.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/mtproto/mtpSession.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1408,13 +1435,13 @@ Moc%27ing settingswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" Moc%27ing settingswidget.h... Moc%27ing settingswidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/settingswidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1422,13 +1449,13 @@ Moc%27ing profilewidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" Moc%27ing profilewidget.h... Moc%27ing profilewidget.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/profilewidget.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1436,13 +1463,13 @@ Moc%27ing pspecific_wnd.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" Moc%27ing pspecific_wnd.h... Moc%27ing pspecific_wnd.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/pspecific_wnd.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1455,13 +1482,13 @@ Moc%27ing sysbuttons.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" Moc%27ing sysbuttons.h... Moc%27ing sysbuttons.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/sysbuttons.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) @@ -1469,13 +1496,13 @@ Moc%27ing title.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/title.h" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" Moc%27ing title.h... Moc%27ing title.h... .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp .\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/title.h" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" - "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.0\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.0\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" + "$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/title.h" $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) $(QTDIR)\bin\moc.exe;%(FullPath) diff --git a/Telegram/Telegram.vcxproj.filters b/Telegram/Telegram.vcxproj.filters index afe3515a2..3ac3f30a8 100644 --- a/Telegram/Telegram.vcxproj.filters +++ b/Telegram/Telegram.vcxproj.filters @@ -656,6 +656,18 @@ Generated Files\Release + + gui + + + Generated Files\Deploy + + + Generated Files\Debug + + + Generated Files\Release + @@ -891,6 +903,9 @@ gui + + gui + diff --git a/Telegram/Telegram.xcodeproj/project.pbxproj b/Telegram/Telegram.xcodeproj/project.pbxproj index e2b170c38..a0da74670 100644 --- a/Telegram/Telegram.xcodeproj/project.pbxproj +++ b/Telegram/Telegram.xcodeproj/project.pbxproj @@ -40,6 +40,8 @@ 06EABCC49D2EEE4076322BE7 /* moc_mtp.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 924D4939FD169BB4B8AEB1C9 /* moc_mtp.cpp */; settings = {ATTRIBUTES = (); }; }; 07055CC4194EE85B0008DEF6 /* libcrypto.a in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 07055CC3194EE85B0008DEF6 /* libcrypto.a */; }; 0749CE69194D723400345D61 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 07C3AF24194335ED0016CFF1 /* Images.xcassets */; }; + 07C4753B1967DF1C00CAAFE9 /* switcher.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 07C475391967DF1C00CAAFE9 /* switcher.cpp */; }; + 07C4753F1967E37300CAAFE9 /* moc_switcher.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 07C4753E1967E37300CAAFE9 /* moc_switcher.cpp */; }; 0A49F3A5DC0680FB31519670 /* phoneinput.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 7C8F9CA4FCE8AF8FCCCB961E /* phoneinput.cpp */; settings = {ATTRIBUTES = (); }; }; 0CB7DE9A54CC9BF86FB7B5CA /* mtp.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 6D50D70712776D7ED3B00E5C /* mtp.cpp */; settings = {ATTRIBUTES = (); }; }; 0F0FC25286E16E5F78962FEE /* moc_newgroupbox.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 69FE16874104731CE2A66E0D /* moc_newgroupbox.cpp */; settings = {ATTRIBUTES = (); }; }; @@ -241,6 +243,9 @@ 07C3AF2819433ABF0016CFF1 /* lang.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = lang.txt; path = Resources/lang.txt; sourceTree = SOURCE_ROOT; }; 07C3AF2919433ABF0016CFF1 /* style_classes.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = style_classes.txt; path = Resources/style_classes.txt; sourceTree = SOURCE_ROOT; }; 07C3AF2A19433ABF0016CFF1 /* style.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = style.txt; path = Resources/style.txt; sourceTree = SOURCE_ROOT; }; + 07C475391967DF1C00CAAFE9 /* switcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = switcher.cpp; path = SourceFiles/gui/switcher.cpp; sourceTree = SOURCE_ROOT; }; + 07C4753A1967DF1C00CAAFE9 /* switcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = switcher.h; path = SourceFiles/gui/switcher.h; sourceTree = SOURCE_ROOT; }; + 07C4753E1967E37300CAAFE9 /* moc_switcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = moc_switcher.cpp; path = GeneratedFiles/Debug/moc_switcher.cpp; sourceTree = SOURCE_ROOT; }; 08A7682548FB7E671FF03822 /* boxshadow.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = boxshadow.cpp; path = SourceFiles/gui/boxshadow.cpp; sourceTree = ""; }; 098EA7CE256AAFAE4A17EB77 /* introcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = introcode.h; path = SourceFiles/intro/introcode.h; sourceTree = ""; }; 09FD01F2BD652EB838A296D8 /* application.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = application.h; path = SourceFiles/application.h; sourceTree = ""; }; @@ -757,6 +762,7 @@ 7C8F9CA4FCE8AF8FCCCB961E /* phoneinput.cpp */, 6E1859D714E4471E053D90C9 /* scrollarea.cpp */, 420A06A32B66D250142B4B6D /* style_core.cpp */, + 07C475391967DF1C00CAAFE9 /* switcher.cpp */, 135FD3715BFDC50AD7B00E04 /* text.cpp */, BB1602EA641643DE565005B1 /* twidget.cpp */, 85FABD67716E36CD8B3CA4FA /* animation.h */, @@ -775,6 +781,7 @@ F1B68FFCE8AE823F6D45EB06 /* phoneinput.h */, 83A36F229E897566E011B79E /* scrollarea.h */, 0FC38EE7F29EF895925A2C49 /* style_core.h */, + 07C4753A1967DF1C00CAAFE9 /* switcher.h */, 6E8FD0ED1B60D43929944CD2 /* text.h */, 507CCEEC4CBA3E3BD6EEDED1 /* twidget.h */, ); @@ -994,6 +1001,7 @@ 801973D3334D0FCA849CF485 /* Debug */ = { isa = PBXGroup; children = ( + 07C4753E1967E37300CAAFE9 /* moc_switcher.cpp */, E181C525E21A16F2D4396CA7 /* moc_application.cpp */, 3B3ED09AB00290D78CF1181B /* moc_dialogswidget.cpp */, AC9B5F6FB4B984C8D76F7AE2 /* moc_dropdown.cpp */, @@ -1360,11 +1368,13 @@ E9F1CE7F9B18C7C85A50E62D /* style_auto.cpp in Compile Sources */, EBE29731916DB43BF49FE7A4 /* aboutbox.cpp in Compile Sources */, 4426AF526AAD86D6F73CE36F /* addcontactbox.cpp in Compile Sources */, + 07C4753B1967DF1C00CAAFE9 /* switcher.cpp in Compile Sources */, 830CB6F547B8C80A569A0271 /* addparticipantbox.cpp in Compile Sources */, A0A6B97F7DBEC81004EC9461 /* confirmbox.cpp in Compile Sources */, 4FEA8F51B7BC7CAC71347A1A /* connectionbox.cpp in Compile Sources */, 298BFAB73BF182297584F96F /* contactsbox.cpp in Compile Sources */, BA41D511A9BBCA09365DF88C /* downloadpathbox.cpp in Compile Sources */, + 07C4753F1967E37300CAAFE9 /* moc_switcher.cpp in Compile Sources */, 3ABE4F9B2264F770D944106D /* emojibox.cpp in Compile Sources */, 7422A321DF80CF9FAC7CB51B /* newgroupbox.cpp in Compile Sources */, 77B998AC22A13EF3DDEE07AC /* photocropbox.cpp in Compile Sources */, @@ -1491,9 +1501,9 @@ CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 0.5.4; + CURRENT_PROJECT_VERSION = 0.5.6; DYLIB_COMPATIBILITY_VERSION = 0.5; - DYLIB_CURRENT_VERSION = 0.5.5; + DYLIB_CURRENT_VERSION = 0.5.6; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = fast; @@ -1615,10 +1625,10 @@ CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 0.5.4; + CURRENT_PROJECT_VERSION = 0.5.6; DEBUG_INFORMATION_FORMAT = dwarf; DYLIB_COMPATIBILITY_VERSION = 0.5; - DYLIB_CURRENT_VERSION = 0.5.5; + DYLIB_CURRENT_VERSION = 0.5.6; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; diff --git a/Telegram/Telegram.xcodeproj/qt_preprocess.mak b/Telegram/Telegram.xcodeproj/qt_preprocess.mak index 034888753..55b17c763 100644 --- a/Telegram/Telegram.xcodeproj/qt_preprocess.mak +++ b/Telegram/Telegram.xcodeproj/qt_preprocess.mak @@ -40,7 +40,7 @@ compilers: GeneratedFiles/qrc_telegram.cpp GeneratedFiles/Debug/moc_application. GeneratedFiles/Debug/moc_animation.cpp GeneratedFiles/Debug/moc_button.cpp GeneratedFiles/Debug/moc_countrycodeinput.cpp\ GeneratedFiles/Debug/moc_countryinput.cpp GeneratedFiles/Debug/moc_flatbutton.cpp GeneratedFiles/Debug/moc_flatcheckbox.cpp\ GeneratedFiles/Debug/moc_flatinput.cpp GeneratedFiles/Debug/moc_flatlabel.cpp GeneratedFiles/Debug/moc_flattextarea.cpp\ - GeneratedFiles/Debug/moc_phoneinput.cpp GeneratedFiles/Debug/moc_scrollarea.cpp GeneratedFiles/Debug/moc_twidget.cpp\ + GeneratedFiles/Debug/moc_switcher.cpp GeneratedFiles/Debug/moc_phoneinput.cpp GeneratedFiles/Debug/moc_scrollarea.cpp GeneratedFiles/Debug/moc_twidget.cpp\ GeneratedFiles/Debug/moc_aboutbox.cpp GeneratedFiles/Debug/moc_addcontactbox.cpp GeneratedFiles/Debug/moc_addparticipantbox.cpp\ GeneratedFiles/Debug/moc_confirmbox.cpp GeneratedFiles/Debug/moc_connectionbox.cpp GeneratedFiles/Debug/moc_contactsbox.cpp\ GeneratedFiles/Debug/moc_downloadpathbox.cpp GeneratedFiles/Debug/moc_emojibox.cpp GeneratedFiles/Debug/moc_newgroupbox.cpp\ @@ -88,9 +88,9 @@ GeneratedFiles/qrc_telegram.cpp: SourceFiles/telegram.qrc \ SourceFiles/art/chatcolor2.png /usr/local/Qt-5.3.0/bin/rcc -name telegram SourceFiles/telegram.qrc -o GeneratedFiles/qrc_telegram.cpp -compiler_moc_header_make_all: GeneratedFiles/Debug/moc_application.cpp GeneratedFiles/Debug/moc_dialogswidget.cpp GeneratedFiles/Debug/moc_dropdown.cpp GeneratedFiles/Debug/moc_fileuploader.cpp GeneratedFiles/Debug/moc_historywidget.cpp GeneratedFiles/Debug/moc_layerwidget.cpp GeneratedFiles/Debug/moc_profilewidget.cpp GeneratedFiles/Debug/moc_localimageloader.cpp GeneratedFiles/Debug/moc_mainwidget.cpp GeneratedFiles/Debug/moc_settingswidget.cpp GeneratedFiles/Debug/moc_sysbuttons.cpp GeneratedFiles/Debug/moc_title.cpp GeneratedFiles/Debug/moc_window.cpp GeneratedFiles/Debug/moc_mtp.cpp GeneratedFiles/Debug/moc_mtpConnection.cpp GeneratedFiles/Debug/moc_mtpDC.cpp GeneratedFiles/Debug/moc_mtpFileLoader.cpp GeneratedFiles/Debug/moc_mtpSession.cpp GeneratedFiles/Debug/moc_animation.cpp GeneratedFiles/Debug/moc_button.cpp GeneratedFiles/Debug/moc_countrycodeinput.cpp GeneratedFiles/Debug/moc_countryinput.cpp GeneratedFiles/Debug/moc_flatbutton.cpp GeneratedFiles/Debug/moc_flatcheckbox.cpp GeneratedFiles/Debug/moc_flatinput.cpp GeneratedFiles/Debug/moc_flatlabel.cpp GeneratedFiles/Debug/moc_flattextarea.cpp GeneratedFiles/Debug/moc_phoneinput.cpp GeneratedFiles/Debug/moc_scrollarea.cpp GeneratedFiles/Debug/moc_twidget.cpp GeneratedFiles/Debug/moc_aboutbox.cpp GeneratedFiles/Debug/moc_addcontactbox.cpp GeneratedFiles/Debug/moc_addparticipantbox.cpp GeneratedFiles/Debug/moc_confirmbox.cpp GeneratedFiles/Debug/moc_connectionbox.cpp GeneratedFiles/Debug/moc_contactsbox.cpp GeneratedFiles/Debug/moc_downloadpathbox.cpp GeneratedFiles/Debug/moc_emojibox.cpp GeneratedFiles/Debug/moc_newgroupbox.cpp GeneratedFiles/Debug/moc_photocropbox.cpp GeneratedFiles/Debug/moc_photosendbox.cpp GeneratedFiles/Debug/moc_intro.cpp GeneratedFiles/Debug/moc_introcode.cpp GeneratedFiles/Debug/moc_introphone.cpp GeneratedFiles/Debug/moc_introsignup.cpp GeneratedFiles/Debug/moc_pspecific_mac.cpp +compiler_moc_header_make_all: GeneratedFiles/Debug/moc_application.cpp GeneratedFiles/Debug/moc_dialogswidget.cpp GeneratedFiles/Debug/moc_dropdown.cpp GeneratedFiles/Debug/moc_fileuploader.cpp GeneratedFiles/Debug/moc_historywidget.cpp GeneratedFiles/Debug/moc_layerwidget.cpp GeneratedFiles/Debug/moc_profilewidget.cpp GeneratedFiles/Debug/moc_localimageloader.cpp GeneratedFiles/Debug/moc_mainwidget.cpp GeneratedFiles/Debug/moc_settingswidget.cpp GeneratedFiles/Debug/moc_sysbuttons.cpp GeneratedFiles/Debug/moc_title.cpp GeneratedFiles/Debug/moc_window.cpp GeneratedFiles/Debug/moc_mtp.cpp GeneratedFiles/Debug/moc_mtpConnection.cpp GeneratedFiles/Debug/moc_mtpDC.cpp GeneratedFiles/Debug/moc_mtpFileLoader.cpp GeneratedFiles/Debug/moc_mtpSession.cpp GeneratedFiles/Debug/moc_animation.cpp GeneratedFiles/Debug/moc_button.cpp GeneratedFiles/Debug/moc_countrycodeinput.cpp GeneratedFiles/Debug/moc_countryinput.cpp GeneratedFiles/Debug/moc_flatbutton.cpp GeneratedFiles/Debug/moc_flatcheckbox.cpp GeneratedFiles/Debug/moc_flatinput.cpp GeneratedFiles/Debug/moc_flatlabel.cpp GeneratedFiles/Debug/moc_flattextarea.cpp GeneratedFiles/Debug/moc_switcher.cpp GeneratedFiles/Debug/moc_phoneinput.cpp GeneratedFiles/Debug/moc_scrollarea.cpp GeneratedFiles/Debug/moc_twidget.cpp GeneratedFiles/Debug/moc_aboutbox.cpp GeneratedFiles/Debug/moc_addcontactbox.cpp GeneratedFiles/Debug/moc_addparticipantbox.cpp GeneratedFiles/Debug/moc_confirmbox.cpp GeneratedFiles/Debug/moc_connectionbox.cpp GeneratedFiles/Debug/moc_contactsbox.cpp GeneratedFiles/Debug/moc_downloadpathbox.cpp GeneratedFiles/Debug/moc_emojibox.cpp GeneratedFiles/Debug/moc_newgroupbox.cpp GeneratedFiles/Debug/moc_photocropbox.cpp GeneratedFiles/Debug/moc_photosendbox.cpp GeneratedFiles/Debug/moc_intro.cpp GeneratedFiles/Debug/moc_introcode.cpp GeneratedFiles/Debug/moc_introphone.cpp GeneratedFiles/Debug/moc_introsignup.cpp GeneratedFiles/Debug/moc_pspecific_mac.cpp compiler_moc_header_clean: - -$(DEL_FILE) GeneratedFiles/Debug/moc_application.cpp GeneratedFiles/Debug/moc_dialogswidget.cpp GeneratedFiles/Debug/moc_dropdown.cpp GeneratedFiles/Debug/moc_fileuploader.cpp GeneratedFiles/Debug/moc_historywidget.cpp GeneratedFiles/Debug/moc_layerwidget.cpp GeneratedFiles/Debug/moc_profilewidget.cpp GeneratedFiles/Debug/moc_localimageloader.cpp GeneratedFiles/Debug/moc_mainwidget.cpp GeneratedFiles/Debug/moc_settingswidget.cpp GeneratedFiles/Debug/moc_sysbuttons.cpp GeneratedFiles/Debug/moc_title.cpp GeneratedFiles/Debug/moc_window.cpp GeneratedFiles/Debug/moc_mtp.cpp GeneratedFiles/Debug/moc_mtpConnection.cpp GeneratedFiles/Debug/moc_mtpDC.cpp GeneratedFiles/Debug/moc_mtpFileLoader.cpp GeneratedFiles/Debug/moc_mtpSession.cpp GeneratedFiles/Debug/moc_animation.cpp GeneratedFiles/Debug/moc_button.cpp GeneratedFiles/Debug/moc_countrycodeinput.cpp GeneratedFiles/Debug/moc_countryinput.cpp GeneratedFiles/Debug/moc_flatbutton.cpp GeneratedFiles/Debug/moc_flatcheckbox.cpp GeneratedFiles/Debug/moc_flatinput.cpp GeneratedFiles/Debug/moc_flatlabel.cpp GeneratedFiles/Debug/moc_flattextarea.cpp GeneratedFiles/Debug/moc_phoneinput.cpp GeneratedFiles/Debug/moc_scrollarea.cpp GeneratedFiles/Debug/moc_twidget.cpp GeneratedFiles/Debug/moc_aboutbox.cpp GeneratedFiles/Debug/moc_addcontactbox.cpp GeneratedFiles/Debug/moc_addparticipantbox.cpp GeneratedFiles/Debug/moc_confirmbox.cpp GeneratedFiles/Debug/moc_connectionbox.cpp GeneratedFiles/Debug/moc_contactsbox.cpp GeneratedFiles/Debug/moc_downloadpathbox.cpp GeneratedFiles/Debug/moc_emojibox.cpp GeneratedFiles/Debug/moc_newgroupbox.cpp GeneratedFiles/Debug/moc_photocropbox.cpp GeneratedFiles/Debug/moc_photosendbox.cpp GeneratedFiles/Debug/moc_intro.cpp GeneratedFiles/Debug/moc_introcode.cpp GeneratedFiles/Debug/moc_introphone.cpp GeneratedFiles/Debug/moc_introsignup.cpp GeneratedFiles/Debug/moc_pspecific_mac.cpp + -$(DEL_FILE) GeneratedFiles/Debug/moc_application.cpp GeneratedFiles/Debug/moc_dialogswidget.cpp GeneratedFiles/Debug/moc_dropdown.cpp GeneratedFiles/Debug/moc_fileuploader.cpp GeneratedFiles/Debug/moc_historywidget.cpp GeneratedFiles/Debug/moc_layerwidget.cpp GeneratedFiles/Debug/moc_profilewidget.cpp GeneratedFiles/Debug/moc_localimageloader.cpp GeneratedFiles/Debug/moc_mainwidget.cpp GeneratedFiles/Debug/moc_settingswidget.cpp GeneratedFiles/Debug/moc_sysbuttons.cpp GeneratedFiles/Debug/moc_title.cpp GeneratedFiles/Debug/moc_window.cpp GeneratedFiles/Debug/moc_mtp.cpp GeneratedFiles/Debug/moc_mtpConnection.cpp GeneratedFiles/Debug/moc_mtpDC.cpp GeneratedFiles/Debug/moc_mtpFileLoader.cpp GeneratedFiles/Debug/moc_mtpSession.cpp GeneratedFiles/Debug/moc_animation.cpp GeneratedFiles/Debug/moc_button.cpp GeneratedFiles/Debug/moc_countrycodeinput.cpp GeneratedFiles/Debug/moc_countryinput.cpp GeneratedFiles/Debug/moc_flatbutton.cpp GeneratedFiles/Debug/moc_flatcheckbox.cpp GeneratedFiles/Debug/moc_flatinput.cpp GeneratedFiles/Debug/moc_flatlabel.cpp GeneratedFiles/Debug/moc_flattextarea.cpp GeneratedFiles/Debug/moc_switcher.cpp GeneratedFiles/Debug/moc_phoneinput.cpp GeneratedFiles/Debug/moc_scrollarea.cpp GeneratedFiles/Debug/moc_twidget.cpp GeneratedFiles/Debug/moc_aboutbox.cpp GeneratedFiles/Debug/moc_addcontactbox.cpp GeneratedFiles/Debug/moc_addparticipantbox.cpp GeneratedFiles/Debug/moc_confirmbox.cpp GeneratedFiles/Debug/moc_connectionbox.cpp GeneratedFiles/Debug/moc_contactsbox.cpp GeneratedFiles/Debug/moc_downloadpathbox.cpp GeneratedFiles/Debug/moc_emojibox.cpp GeneratedFiles/Debug/moc_newgroupbox.cpp GeneratedFiles/Debug/moc_photocropbox.cpp GeneratedFiles/Debug/moc_photosendbox.cpp GeneratedFiles/Debug/moc_intro.cpp GeneratedFiles/Debug/moc_introcode.cpp GeneratedFiles/Debug/moc_introphone.cpp GeneratedFiles/Debug/moc_introsignup.cpp GeneratedFiles/Debug/moc_pspecific_mac.cpp GeneratedFiles/Debug/moc_application.cpp: ../../Libraries/QtStatic/qtbase/include/QtNetwork/QLocalSocket \ ../../Libraries/QtStatic/qtbase/include/QtNetwork/QLocalServer \ ../../Libraries/QtStatic/qtbase/include/QtNetwork/QNetworkReply \ @@ -377,6 +377,20 @@ GeneratedFiles/Debug/moc_flattextarea.cpp: ../../Libraries/QtStatic/qtbase/inclu SourceFiles/gui/flattextarea.h /usr/local/Qt-5.3.0/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I/usr/local/Qt-5.3.0/include/QtGui/5.3.0/QtGui -I/usr/local/Qt-5.3.0/include/QtCore/5.3.0/QtCore -I/usr/local/Qt-5.3.0/include -I./SourceFiles -I./GeneratedFiles -I../../Libraries/lzma/C -I../../Libraries/libexif-0.6.20 -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtMultimedia -I/usr/local/Qt-5.3.0/include/QtWidgets -I/usr/local/Qt-5.3.0/include/QtNetwork -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/backward -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/5.1/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include SourceFiles/gui/flattextarea.h -o GeneratedFiles/Debug/moc_flattextarea.cpp +GeneratedFiles/Debug/moc_switcher.cpp: ../../Libraries/QtStatic/qtbase/include/QtWidgets/QWidget \ + SourceFiles/gui/twidget.h \ + SourceFiles/style.h \ + GeneratedFiles/style_classes.h \ + GeneratedFiles/style_auto.h \ + SourceFiles/gui/animation.h \ + SourceFiles/types.h \ + ../../Libraries/QtStatic/qtbase/include/QtCore/QReadWriteLock \ + SourceFiles/logs.h \ + ../../Libraries/QtStatic/qtbase/include/QtCore/QTimer \ + ../../Libraries/QtStatic/qtbase/include/QtGui/QColor \ + SourceFiles/gui/switcher.h + /usr/local/Qt-5.3.0/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I/usr/local/Qt-5.3.0/include/QtGui/5.3.0/QtGui -I/usr/local/Qt-5.3.0/include/QtCore/5.3.0/QtCore -I/usr/local/Qt-5.3.0/include -I./SourceFiles -I./GeneratedFiles -I../../Libraries/lzma/C -I../../Libraries/libexif-0.6.20 -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtMultimedia -I/usr/local/Qt-5.3.0/include/QtWidgets -I/usr/local/Qt-5.3.0/include/QtNetwork -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/backward -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/5.1/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include SourceFiles/gui/switcher.h -o GeneratedFiles/Debug/moc_switcher.cpp + GeneratedFiles/Debug/moc_phoneinput.cpp: SourceFiles/gui/flatinput.h \ ../../Libraries/QtStatic/qtbase/include/QtWidgets/QLineEdit \ SourceFiles/style.h \ diff --git a/Telegram/_qt_5_3_0_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf b/Telegram/_qt_5_3_1_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf similarity index 100% rename from Telegram/_qt_5_3_0_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf rename to Telegram/_qt_5_3_1_patch/qtbase/mkspecs/win32-msvc2013/qmake.conf diff --git a/Telegram/_qt_5_3_0_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp b/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp similarity index 99% rename from Telegram/_qt_5_3_0_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp rename to Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp index 2dbec5632..6613018fc 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp +++ b/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/mac/pbuilder_pbx.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the qmake application of the Qt Toolkit. @@ -1116,7 +1116,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) //all files const ProStringList &files = project->values(ProKey(bundle_data[i] + ".files")); for(int file = 0; file < files.count(); file++) { - QString fn = files[file].toQString(); + QString fn = fileFixify(files[file].toQString(), Option::output_dir, input_dir); QString file_ref_key = keyFor("QMAKE_PBX_BUNDLE_DATA_FILE_REF." + bundle_data[i] + "-" + fn); bundle_file_refs += file_ref_key; t << "\t\t" << file_ref_key << " = {\n" @@ -1390,9 +1390,13 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) (project->first("TEMPLATE") == "lib" && !project->isActiveConfig("staticlib") && project->isActiveConfig("lib_bundle"))) { QString plist = fileFixify(project->first("QMAKE_INFO_PLIST").toQString(), Option::output_dir, input_dir); - if (plist.isEmpty()) + if (!plist.isEmpty()) { + if (exists(plist)) + t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", plist) << ";\n"; + else + warn_msg(WarnLogic, "Could not resolve Info.plist: '%s'. Check if QMAKE_INFO_PLIST points to a valid file.", plist.toLatin1().constData()); + } else { plist = specdir() + QDir::separator() + "Info.plist." + project->first("TEMPLATE"); - if (exists(plist)) { QFile plist_in_file(plist); if (plist_in_file.open(QIODevice::ReadOnly)) { QTextStream plist_in(&plist_in_file); @@ -1415,21 +1419,19 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) plist_in_text = plist_in_text.replace("@TYPEINFO@", (project->isEmpty("QMAKE_PKGINFO_TYPEINFO") ? QString::fromLatin1("????") : project->first("QMAKE_PKGINFO_TYPEINFO").left(4).toQString())); - QString plist_dir; - if (!project->isEmpty("PLIST_DIR")) - plist_dir = project->first("PLIST_DIR").toQString(); - QString plist_in_filename = QFileInfo(plist_in_file).fileName(); - QFile plist_out_file(plist_dir + plist_in_filename); // QFile plist_out_file("Info.plist"); + QString plist_dir; + if (!project->isEmpty("PLIST_DIR")) + plist_dir = project->first("PLIST_DIR").toQString(); + QString plist_in_filename = QFileInfo(plist_in_file).fileName(); + QFile plist_out_file(plist_dir + plist_in_filename); if (plist_out_file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream plist_out(&plist_out_file); plist_out << plist_in_text; // t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", "Info.plist") << ";\n"; - t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", fixForOutput(plist_dir + plist_in_filename)) << ";\n"; - } + t << "\t\t\t\t" << writeSettings("INFOPLIST_FILE", fixForOutput(plist_dir + plist_in_filename)) << ";\n"; + } } - } else { - warn_msg(WarnLogic, "Could not resolve Info.plist: '%s'. Check if QMAKE_INFO_PLIST points to a valid file.", plist.toLatin1().constData()); } } diff --git a/Telegram/_qt_5_3_0_patch/qtbase/qmake/generators/makefile.cpp b/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/makefile.cpp similarity index 99% rename from Telegram/_qt_5_3_0_patch/qtbase/qmake/generators/makefile.cpp rename to Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/makefile.cpp index 6eba1ef6c..4242f93f7 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/qmake/generators/makefile.cpp +++ b/Telegram/_qt_5_3_1_patch/qtbase/qmake/generators/makefile.cpp @@ -370,7 +370,8 @@ MakefileGenerator::findFilesInVPATH(ProStringList l, uchar flags, const QString regex.remove(0, dir.length()); } if(real_dir.isEmpty() || exists(real_dir)) { - QStringList files = QDir(real_dir).entryList(QStringList(regex)); + QStringList files = QDir(real_dir).entryList(QStringList(regex), + QDir::NoDotAndDotDot | QDir::AllEntries); if(files.isEmpty()) { debug_msg(1, "%s:%d Failure to find %s in vpath (%s)", __FILE__, __LINE__, @@ -383,8 +384,6 @@ MakefileGenerator::findFilesInVPATH(ProStringList l, uchar flags, const QString l.removeAt(val_it); QString a; for(int i = (int)files.count()-1; i >= 0; i--) { - if(files[i] == "." || files[i] == "..") - continue; a = real_dir + files[i]; if(!(flags & VPATH_NoFixify)) a = fileFixify(a); @@ -1324,7 +1323,8 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild) continue; } QString local_dirstr = Option::fixPathToLocalOS(dirstr, true); - QStringList files = QDir(local_dirstr).entryList(QStringList(filestr)); + QStringList files = QDir(local_dirstr).entryList(QStringList(filestr), + QDir::NoDotAndDotDot | QDir::AllEntries); if (installConfigValues.contains("no_check_exist") && files.isEmpty()) { QString dst_file = filePrefixRoot(root, dst_dir); QString cmd; @@ -1346,8 +1346,6 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild) } for(int x = 0; x < files.count(); x++) { QString file = files[x]; - if(file == "." || file == "..") //blah - continue; uninst.append(rm_dir_contents + " " + escapeFilePath(filePrefixRoot(root, fileFixify(dst_dir + file, FileFixifyAbsolute, false)))); QFileInfo fi(fileInfo(dirstr + file)); QString dst_file = filePrefixRoot(root, fileFixify(dst_dir, FileFixifyAbsolute, false)); @@ -3217,7 +3215,7 @@ MakefileGenerator::writePkgConfigFile() QString prefix = pkgConfigPrefix(); QString libDir = project->first("QMAKE_PKGCONFIG_LIBDIR").toQString(); if(libDir.isEmpty()) - libDir = prefix + Option::dir_sep + "lib" + Option::dir_sep; + libDir = prefix + "/lib"; QString includeDir = project->first("QMAKE_PKGCONFIG_INCDIR").toQString(); if(includeDir.isEmpty()) includeDir = prefix + "/include"; @@ -3284,10 +3282,12 @@ MakefileGenerator::writePkgConfigFile() // libs t << "Libs: "; - QString pkgConfiglibDir; QString pkgConfiglibName; if (target_mode == TARG_MAC_MODE && project->isActiveConfig("lib_bundle")) { - pkgConfiglibDir = "-F${libdir}"; + if (libDir != QLatin1String("/System/Library/Frameworks") + && libDir != QLatin1String("/Library/Frameworks")) { + t << "-F${libdir} "; + } ProString bundle; if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME")) bundle = unescapeFilePath(project->first("QMAKE_FRAMEWORK_BUNDLE_NAME")); @@ -3298,12 +3298,13 @@ MakefileGenerator::writePkgConfigFile() bundle = bundle.left(suffix); pkgConfiglibName = "-framework " + bundle + " "; } else { - pkgConfiglibDir = "-L${libdir}"; + if (!project->values("QMAKE_DEFAULT_LIBDIRS").contains(libDir)) + t << "-L${libdir} "; pkgConfiglibName = "-l" + unescapeFilePath(project->first("QMAKE_ORIG_TARGET")); if (project->isActiveConfig("shared")) pkgConfiglibName += project->first("TARGET_VERSION_EXT").toQString(); } - t << pkgConfiglibDir << " " << pkgConfiglibName << " \n"; + t << pkgConfiglibName << " \n"; ProStringList libs; if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS")) { @@ -3327,7 +3328,10 @@ MakefileGenerator::writePkgConfigFile() << varGlue("PRL_EXPORT_CXXFLAGS", "", " ", " ") << varGlue("QMAKE_PKGCONFIG_CFLAGS", "", " ", " ") // << varGlue("DEFINES","-D"," -D"," ") - << "-I${includedir}\n"; + ; + if (!project->values("QMAKE_DEFAULT_INCDIRS").contains(includeDir)) + t << "-I${includedir}"; + t << endl; // requires const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(' '); diff --git a/Telegram/_qt_5_3_1_patch/qtbase/src/gui/image/qbmphandler.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/gui/image/qbmphandler.cpp new file mode 100644 index 000000000..9f7da1015 --- /dev/null +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/gui/image/qbmphandler.cpp @@ -0,0 +1,898 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "private/qbmphandler_p.h" + +#ifndef QT_NO_IMAGEFORMAT_BMP + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +static void swapPixel01(QImage *image) // 1-bpp: swap 0 and 1 pixels +{ + int i; + if (image->depth() == 1 && image->colorCount() == 2) { + uint *p = (uint *)image->bits(); + int nbytes = image->byteCount(); + for (i=0; icolor(0); // swap color 0 and 1 + image->setColor(0, image->color(1)); + image->setColor(1, t); + } +} + +/* + QImageIO::defineIOHandler("BMP", "^BM", 0, + read_bmp_image, write_bmp_image); +*/ + +/***************************************************************************** + BMP (DIB) image read/write functions + *****************************************************************************/ + +const int BMP_FILEHDR_SIZE = 14; // size of BMP_FILEHDR data + +static QDataStream &operator>>(QDataStream &s, BMP_FILEHDR &bf) +{ // read file header + s.readRawData(bf.bfType, 2); + s >> bf.bfSize >> bf.bfReserved1 >> bf.bfReserved2 >> bf.bfOffBits; + return s; +} + +static QDataStream &operator<<(QDataStream &s, const BMP_FILEHDR &bf) +{ // write file header + s.writeRawData(bf.bfType, 2); + s << bf.bfSize << bf.bfReserved1 << bf.bfReserved2 << bf.bfOffBits; + return s; +} + + +const int BMP_OLD = 12; // old Windows/OS2 BMP size +const int BMP_WIN = 40; // Windows BMP v3 size +const int BMP_OS2 = 64; // new OS/2 BMP size +const int BMP_WIN4 = 108; // Windows BMP v4 size +const int BMP_WIN5 = 124; // Windows BMP v5 size + +const int BMP_RGB = 0; // no compression +const int BMP_RLE8 = 1; // run-length encoded, 8 bits +const int BMP_RLE4 = 2; // run-length encoded, 4 bits +const int BMP_BITFIELDS = 3; // RGB values encoded in data as bit-fields + + +static QDataStream &operator>>(QDataStream &s, BMP_INFOHDR &bi) +{ + s >> bi.biSize; + if (bi.biSize == BMP_WIN || bi.biSize == BMP_OS2 || bi.biSize == BMP_WIN4 || bi.biSize == BMP_WIN5) { + s >> bi.biWidth >> bi.biHeight >> bi.biPlanes >> bi.biBitCount; + s >> bi.biCompression >> bi.biSizeImage; + s >> bi.biXPelsPerMeter >> bi.biYPelsPerMeter; + s >> bi.biClrUsed >> bi.biClrImportant; + } + else { // probably old Windows format + qint16 w, h; + s >> w >> h >> bi.biPlanes >> bi.biBitCount; + bi.biWidth = w; + bi.biHeight = h; + bi.biCompression = BMP_RGB; // no compression + bi.biSizeImage = 0; + bi.biXPelsPerMeter = bi.biYPelsPerMeter = 0; + bi.biClrUsed = bi.biClrImportant = 0; + } + return s; +} + +static QDataStream &operator<<(QDataStream &s, const BMP_INFOHDR &bi) +{ + s << bi.biSize; + s << bi.biWidth << bi.biHeight; + s << bi.biPlanes; + s << bi.biBitCount; + s << bi.biCompression; + s << bi.biSizeImage; + s << bi.biXPelsPerMeter << bi.biYPelsPerMeter; + s << bi.biClrUsed << bi.biClrImportant; + return s; +} + +static int calc_shift(uint mask) +{ + int result = 0; + while (mask && !(mask & 1)) { + result++; + mask >>= 1; + } + return result; +} + +static bool read_dib_fileheader(QDataStream &s, BMP_FILEHDR &bf) +{ + // read BMP file header + s >> bf; + if (s.status() != QDataStream::Ok) + return false; + + // check header + if (qstrncmp(bf.bfType,"BM",2) != 0) + return false; + + return true; +} + +static bool read_dib_infoheader(QDataStream &s, BMP_INFOHDR &bi) +{ + s >> bi; // read BMP info header + if (s.status() != QDataStream::Ok) + return false; + + int nbits = bi.biBitCount; + int comp = bi.biCompression; + if (!(nbits == 1 || nbits == 4 || nbits == 8 || nbits == 16 || nbits == 24 || nbits == 32) || + bi.biPlanes != 1 || comp > BMP_BITFIELDS) + return false; // weird BMP image + if (!(comp == BMP_RGB || (nbits == 4 && comp == BMP_RLE4) || + (nbits == 8 && comp == BMP_RLE8) || ((nbits == 16 || nbits == 32) && comp == BMP_BITFIELDS))) + return false; // weird compression type + + return true; +} + +static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int startpos, QImage &image) +{ + QIODevice* d = s.device(); + if (d->atEnd()) // end of stream/file + return false; +#if 0 + qDebug("offset...........%d", offset); + qDebug("startpos.........%d", startpos); + qDebug("biSize...........%d", bi.biSize); + qDebug("biWidth..........%d", bi.biWidth); + qDebug("biHeight.........%d", bi.biHeight); + qDebug("biPlanes.........%d", bi.biPlanes); + qDebug("biBitCount.......%d", bi.biBitCount); + qDebug("biCompression....%d", bi.biCompression); + qDebug("biSizeImage......%d", bi.biSizeImage); + qDebug("biXPelsPerMeter..%d", bi.biXPelsPerMeter); + qDebug("biYPelsPerMeter..%d", bi.biYPelsPerMeter); + qDebug("biClrUsed........%d", bi.biClrUsed); + qDebug("biClrImportant...%d", bi.biClrImportant); +#endif + int w = bi.biWidth, h = bi.biHeight, nbits = bi.biBitCount; + int t = bi.biSize, comp = bi.biCompression; + uint red_mask = 0; + uint green_mask = 0; + uint blue_mask = 0; + uint alpha_mask = 0; + int red_shift = 0; + int green_shift = 0; + int blue_shift = 0; + int alpha_shift = 0; + int red_scale = 0; + int green_scale = 0; + int blue_scale = 0; + int alpha_scale = 0; + + if (!d->isSequential()) + d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4 ? BMP_WIN : bi.biSize)); // goto start of colormap + + if (bi.biSize >= BMP_WIN4 || (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32))) { + if (d->read((char *)&red_mask, sizeof(red_mask)) != sizeof(red_mask)) + return false; + if (d->read((char *)&green_mask, sizeof(green_mask)) != sizeof(green_mask)) + return false; + if (d->read((char *)&blue_mask, sizeof(blue_mask)) != sizeof(blue_mask)) + return false; + + // Read BMP v4+ header + if (bi.biSize >= BMP_WIN4) { + int CSType = 0; + int gamma_red = 0; + int gamma_green = 0; + int gamma_blue = 0; + int endpoints[9]; + + if (d->read((char *)&alpha_mask, sizeof(alpha_mask)) != sizeof(alpha_mask)) + return false; + if (d->read((char *)&CSType, sizeof(CSType)) != sizeof(CSType)) + return false; + if (d->read((char *)&endpoints, sizeof(endpoints)) != sizeof(endpoints)) + return false; + if (d->read((char *)&gamma_red, sizeof(gamma_red)) != sizeof(gamma_red)) + return false; + if (d->read((char *)&gamma_green, sizeof(gamma_green)) != sizeof(gamma_green)) + return false; + if (d->read((char *)&gamma_blue, sizeof(gamma_blue)) != sizeof(gamma_blue)) + return false; + + if (bi.biSize == BMP_WIN5) { + qint32 intent = 0; + qint32 profileData = 0; + qint32 profileSize = 0; + qint32 reserved = 0; + + if (d->read((char *)&intent, sizeof(intent)) != sizeof(intent)) + return false; + if (d->read((char *)&profileData, sizeof(profileData)) != sizeof(profileData)) + return false; + if (d->read((char *)&profileSize, sizeof(profileSize)) != sizeof(profileSize)) + return false; + if (d->read((char *)&reserved, sizeof(reserved)) != sizeof(reserved) || reserved != 0) + return false; + } + } + } + + bool transp = (comp == BMP_BITFIELDS) && alpha_mask; + int ncols = 0; + int depth = 0; + QImage::Format format; + switch (nbits) { + case 32: + case 24: + case 16: + depth = 32; + format = transp ? QImage::Format_ARGB32 : QImage::Format_RGB32; + break; + case 8: + case 4: + depth = 8; + format = QImage::Format_Indexed8; + break; + default: + depth = 1; + format = QImage::Format_Mono; + } + + if (bi.biHeight < 0) + h = -h; // support images with negative height + + if (image.size() != QSize(w, h) || image.format() != format) { + image = QImage(w, h, format); + if (image.isNull()) // could not create image + return false; + } + + if (depth != 32) { + ncols = bi.biClrUsed ? bi.biClrUsed : 1 << nbits; + if (ncols > 256) // sanity check - don't run out of mem if color table is broken + return false; + image.setColorCount(ncols); + } + + image.setDotsPerMeterX(bi.biXPelsPerMeter); + image.setDotsPerMeterY(bi.biYPelsPerMeter); + + if (ncols > 0) { // read color table + uchar rgb[4]; + int rgb_len = t == BMP_OLD ? 3 : 4; + for (int i=0; iread((char *)rgb, rgb_len) != rgb_len) + return false; + image.setColor(i, qRgb(rgb[2],rgb[1],rgb[0])); + if (d->atEnd()) // truncated file + return false; + } + } else if (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32)) { + red_shift = calc_shift(red_mask); + red_scale = 256 / ((red_mask >> red_shift) + 1); + green_shift = calc_shift(green_mask); + green_scale = 256 / ((green_mask >> green_shift) + 1); + blue_shift = calc_shift(blue_mask); + blue_scale = 256 / ((blue_mask >> blue_shift) + 1); + alpha_shift = calc_shift(alpha_mask); + alpha_scale = 256 / ((alpha_mask >> alpha_shift) + 1); + } else if (comp == BMP_RGB && (nbits == 24 || nbits == 32)) { + blue_mask = 0x000000ff; + green_mask = 0x0000ff00; + red_mask = 0x00ff0000; + blue_shift = 0; + green_shift = 8; + red_shift = 16; + blue_scale = green_scale = red_scale = 1; + } else if (comp == BMP_RGB && nbits == 16) { + blue_mask = 0x001f; + green_mask = 0x03e0; + red_mask = 0x7c00; + blue_shift = 0; + green_shift = 2; + red_shift = 7; + red_scale = 1; + green_scale = 1; + blue_scale = 8; + } + +#if 0 + qDebug("Rmask: %08x Rshift: %08x Rscale:%08x", red_mask, red_shift, red_scale); + qDebug("Gmask: %08x Gshift: %08x Gscale:%08x", green_mask, green_shift, green_scale); + qDebug("Bmask: %08x Bshift: %08x Bscale:%08x", blue_mask, blue_shift, blue_scale); + qDebug("Amask: %08x Ashift: %08x Ascale:%08x", alpha_mask, alpha_shift, alpha_scale); +#endif + + // offset can be bogus, be careful + if (offset>=0 && startpos + offset > d->pos()) { + if (!d->isSequential()) + d->seek(startpos + offset); // start of image data + } + + int bpl = image.bytesPerLine(); + uchar *data = image.bits(); + + if (nbits == 1) { // 1 bit BMP image + while (--h >= 0) { + if (d->read((char*)(data + h*bpl), bpl) != bpl) + break; + } + if (ncols == 2 && qGray(image.color(0)) < qGray(image.color(1))) + swapPixel01(&image); // pixel 0 is white! + } + + else if (nbits == 4) { // 4 bit BMP image + int buflen = ((w+7)/8)*4; + uchar *buf = new uchar[buflen]; + if (comp == BMP_RLE4) { // run length compression + int x=0, y=0, c, i; + quint8 b; + uchar *p = data + (h-1)*bpl; + const uchar *endp = p + w; + while (y < h) { + if (!d->getChar((char *)&b)) + break; + if (b == 0) { // escape code + if (!d->getChar((char *)&b) || b == 1) { + y = h; // exit loop + } else switch (b) { + case 0: // end of line + x = 0; + y++; + p = data + (h-y-1)*bpl; + break; + case 2: // delta (jump) + { + quint8 tmp; + d->getChar((char *)&tmp); + x += tmp; + d->getChar((char *)&tmp); + y += tmp; + } + + // Protection + if ((uint)x >= (uint)w) + x = w-1; + if ((uint)y >= (uint)h) + y = h-1; + + p = data + (h-y-1)*bpl + x; + break; + default: // absolute mode + // Protection + if (p + b > endp) + b = endp-p; + + i = (c = b)/2; + while (i--) { + d->getChar((char *)&b); + *p++ = b >> 4; + *p++ = b & 0x0f; + } + if (c & 1) { + unsigned char tmp; + d->getChar((char *)&tmp); + *p++ = tmp >> 4; + } + if ((((c & 3) + 1) & 2) == 2) + d->getChar(0); // align on word boundary + x += c; + } + } else { // encoded mode + // Protection + if (p + b > endp) + b = endp-p; + + i = (c = b)/2; + d->getChar((char *)&b); // 2 pixels to be repeated + while (i--) { + *p++ = b >> 4; + *p++ = b & 0x0f; + } + if (c & 1) + *p++ = b >> 4; + x += c; + } + } + } else if (comp == BMP_RGB) { // no compression + memset(data, 0, h*bpl); + while (--h >= 0) { + if (d->read((char*)buf,buflen) != buflen) + break; + uchar *p = data + h*bpl; + uchar *b = buf; + for (int i=0; i> 4; + *p++ = *b++ & 0x0f; + } + if (w & 1) // the last nibble + *p = *b >> 4; + } + } + delete [] buf; + } + + else if (nbits == 8) { // 8 bit BMP image + if (comp == BMP_RLE8) { // run length compression + int x=0, y=0; + quint8 b; + uchar *p = data + (h-1)*bpl; + const uchar *endp = p + w; + while (y < h) { + if (!d->getChar((char *)&b)) + break; + if (b == 0) { // escape code + if (!d->getChar((char *)&b) || b == 1) { + y = h; // exit loop + } else switch (b) { + case 0: // end of line + x = 0; + y++; + p = data + (h-y-1)*bpl; + break; + case 2: // delta (jump) + // Protection + if ((uint)x >= (uint)w) + x = w-1; + if ((uint)y >= (uint)h) + y = h-1; + + { + quint8 tmp; + d->getChar((char *)&tmp); + x += tmp; + d->getChar((char *)&tmp); + y += tmp; + } + p = data + (h-y-1)*bpl + x; + break; + default: // absolute mode + // Protection + if (p + b > endp) + b = endp-p; + + if (d->read((char *)p, b) != b) + return false; + if ((b & 1) == 1) + d->getChar(0); // align on word boundary + x += b; + p += b; + } + } else { // encoded mode + // Protection + if (p + b > endp) + b = endp-p; + + char tmp; + d->getChar(&tmp); + memset(p, tmp, b); // repeat pixel + x += b; + p += b; + } + } + } else if (comp == BMP_RGB) { // uncompressed + while (--h >= 0) { + if (d->read((char *)data + h*bpl, bpl) != bpl) + break; + } + } + } + + else if (nbits == 16 || nbits == 24 || nbits == 32) { // 16,24,32 bit BMP image + QRgb *p; + QRgb *end; + uchar *buf24 = new uchar[bpl]; + int bpl24 = ((w*nbits+31)/32)*4; + uchar *b; + int c; + + while (--h >= 0) { + p = (QRgb *)(data + h*bpl); + end = p + w; + if (d->read((char *)buf24,bpl24) != bpl24) + break; + b = buf24; + while (p < end) { + c = *(uchar*)b | (*(uchar*)(b+1)<<8); + if (nbits > 16) + c |= *(uchar*)(b+2)<<16; + if (nbits > 24) + c |= *(uchar*)(b+3)<<24; + *p++ = qRgba(((c & red_mask) >> red_shift) * red_scale, + ((c & green_mask) >> green_shift) * green_scale, + ((c & blue_mask) >> blue_shift) * blue_scale, + transp ? ((c & alpha_mask) >> alpha_shift) * alpha_scale : 0xff); + b += nbits/8; + } + } + delete[] buf24; + } + + if (bi.biHeight < 0) { + // Flip the image + uchar *buf = new uchar[bpl]; + h = -bi.biHeight; + for (int y = 0; y < h/2; ++y) { + memcpy(buf, data + y*bpl, bpl); + memcpy(data + y*bpl, data + (h-y-1)*bpl, bpl); + memcpy(data + (h-y-1)*bpl, buf, bpl); + } + delete [] buf; + } + + return true; +} + +// this is also used in qmime_win.cpp +bool qt_write_dib(QDataStream &s, QImage image) +{ + int nbits; + int bpl_bmp; + int bpl = image.bytesPerLine(); + + QIODevice* d = s.device(); + if (!d->isWritable()) + return false; + + if (image.depth() == 8 && image.colorCount() <= 16) { + bpl_bmp = (((bpl+1)/2+3)/4)*4; + nbits = 4; + } else if (image.depth() == 32) { + bpl_bmp = ((image.width()*24+31)/32)*4; + nbits = 24; + } else { + bpl_bmp = bpl; + nbits = image.depth(); + } + + BMP_INFOHDR bi; + bi.biSize = BMP_WIN; // build info header + bi.biWidth = image.width(); + bi.biHeight = image.height(); + bi.biPlanes = 1; + bi.biBitCount = nbits; + bi.biCompression = BMP_RGB; + bi.biSizeImage = bpl_bmp*image.height(); + bi.biXPelsPerMeter = image.dotsPerMeterX() ? image.dotsPerMeterX() + : 2834; // 72 dpi default + bi.biYPelsPerMeter = image.dotsPerMeterY() ? image.dotsPerMeterY() : 2834; + bi.biClrUsed = image.colorCount(); + bi.biClrImportant = image.colorCount(); + s << bi; // write info header + if (s.status() != QDataStream::Ok) + return false; + + if (image.depth() != 32) { // write color table + uchar *color_table = new uchar[4*image.colorCount()]; + uchar *rgb = color_table; + QVector c = image.colorTable(); + for (int i=0; iwrite((char *)color_table, 4*image.colorCount()) == -1) { + delete [] color_table; + return false; + } + delete [] color_table; + } + + if (image.format() == QImage::Format_MonoLSB) + image = image.convertToFormat(QImage::Format_Mono); + + int y; + + if (nbits == 1 || nbits == 8) { // direct output + for (y=image.height()-1; y>=0; y--) { + if (d->write((char*)image.constScanLine(y), bpl) == -1) + return false; + } + return true; + } + + uchar *buf = new uchar[bpl_bmp]; + uchar *b, *end; + const uchar *p; + + memset(buf, 0, bpl_bmp); + for (y=image.height()-1; y>=0; y--) { // write the image bits + if (nbits == 4) { // convert 8 -> 4 bits + p = image.constScanLine(y); + b = buf; + end = b + image.width()/2; + while (b < end) { + *b++ = (*p << 4) | (*(p+1) & 0x0f); + p += 2; + } + if (image.width() & 1) + *b = *p << 4; + } else { // 32 bits + const QRgb *p = (const QRgb *)image.constScanLine(y); + const QRgb *end = p + image.width(); + b = buf; + while (p < end) { + *b++ = qBlue(*p); + *b++ = qGreen(*p); + *b++ = qRed(*p); + p++; + } + } + if (bpl_bmp != d->write((char*)buf, bpl_bmp)) { + delete[] buf; + return false; + } + } + delete[] buf; + return true; +} + +// this is also used in qmime_win.cpp +bool qt_read_dib(QDataStream &s, QImage &image) +{ + BMP_INFOHDR bi; + if (!read_dib_infoheader(s, bi)) + return false; + return read_dib_body(s, bi, -1, -BMP_FILEHDR_SIZE, image); +} + +QBmpHandler::QBmpHandler(InternalFormat fmt) : + m_format(fmt), state(Ready) +{ +} + +QByteArray QBmpHandler::formatName() const +{ + return m_format == BmpFormat ? "bmp" : "dib"; +} + +bool QBmpHandler::readHeader() +{ + state = Error; + + QIODevice *d = device(); + QDataStream s(d); + startpos = d->pos(); + + // Intel byte order + s.setByteOrder(QDataStream::LittleEndian); + + // read BMP file header + if (m_format == BmpFormat && !read_dib_fileheader(s, fileHeader)) + return false; + + // read BMP info header + if (!read_dib_infoheader(s, infoHeader)) + return false; + + state = ReadHeader; + return true; +} + +bool QBmpHandler::canRead() const +{ + if (m_format == BmpFormat && state == Ready && !canRead(device())) + return false; + + if (state != Error) { + setFormat(formatName()); + return true; + } + + return false; +} + +bool QBmpHandler::canRead(QIODevice *device) +{ + if (!device) { + qWarning("QBmpHandler::canRead() called with 0 pointer"); + return false; + } + + char head[2]; + if (device->peek(head, sizeof(head)) != sizeof(head)) + return false; + + return (qstrncmp(head, "BM", 2) == 0); +} + +bool QBmpHandler::read(QImage *image) +{ + if (state == Error) + return false; + + if (!image) { + qWarning("QBmpHandler::read: cannot read into null pointer"); + return false; + } + + if (state == Ready && !readHeader()) { + state = Error; + return false; + } + + QIODevice *d = device(); + QDataStream s(d); + + // Intel byte order + s.setByteOrder(QDataStream::LittleEndian); + + // read image + const bool readSuccess = m_format == BmpFormat ? + read_dib_body(s, infoHeader, fileHeader.bfOffBits, startpos, *image) : + read_dib_body(s, infoHeader, -1, startpos - BMP_FILEHDR_SIZE, *image); + if (!readSuccess) + return false; + + state = Ready; + return true; +} + +bool QBmpHandler::write(const QImage &img) +{ + if (m_format == DibFormat) { + QDataStream dibStream(device()); + dibStream.setByteOrder(QDataStream::LittleEndian); // Intel byte order + return qt_write_dib(dibStream, img); + } + + QImage image; + switch (img.format()) { + case QImage::Format_ARGB8565_Premultiplied: + case QImage::Format_ARGB8555_Premultiplied: + case QImage::Format_ARGB6666_Premultiplied: + case QImage::Format_ARGB4444_Premultiplied: + case QImage::Format_RGBA8888: + case QImage::Format_RGBA8888_Premultiplied: + image = img.convertToFormat(QImage::Format_ARGB32); + break; + case QImage::Format_RGB16: + case QImage::Format_RGB888: + case QImage::Format_RGB666: + case QImage::Format_RGB555: + case QImage::Format_RGB444: + case QImage::Format_RGBX8888: + image = img.convertToFormat(QImage::Format_RGB32); + break; + default: + image = img; + } + + QIODevice *d = device(); + QDataStream s(d); + BMP_FILEHDR bf; + int bpl_bmp; + int bpl = image.bytesPerLine(); + + // Code partially repeated in qt_write_dib + if (image.depth() == 8 && image.colorCount() <= 16) { + bpl_bmp = (((bpl+1)/2+3)/4)*4; + } else if (image.depth() == 32) { + bpl_bmp = ((image.width()*24+31)/32)*4; + } else { + bpl_bmp = bpl; + } + + // Intel byte order + s.setByteOrder(QDataStream::LittleEndian); + + // build file header + memcpy(bf.bfType, "BM", 2); + + // write file header + bf.bfReserved1 = 0; + bf.bfReserved2 = 0; + bf.bfOffBits = BMP_FILEHDR_SIZE + BMP_WIN + image.colorCount() * 4; + bf.bfSize = bf.bfOffBits + bpl_bmp*image.height(); + s << bf; + + // write image + return qt_write_dib(s, image); +} + +bool QBmpHandler::supportsOption(ImageOption option) const +{ + return option == Size + || option == ImageFormat; +} + +QVariant QBmpHandler::option(ImageOption option) const +{ + if (option == Size) { + if (state == Error) + return QVariant(); + if (state == Ready && !const_cast(this)->readHeader()) + return QVariant(); + return QSize(infoHeader.biWidth, infoHeader.biHeight); + } else if (option == ImageFormat) { + if (state == Error) + return QVariant(); + if (state == Ready && !const_cast(this)->readHeader()) + return QVariant(); + QImage::Format format; + switch (infoHeader.biBitCount) { + case 32: + case 24: + case 16: + format = QImage::Format_RGB32; + break; + case 8: + case 4: + format = QImage::Format_Indexed8; + break; + default: + format = QImage::Format_Mono; + } + return format; + } + return QVariant(); +} + +void QBmpHandler::setOption(ImageOption option, const QVariant &value) +{ + Q_UNUSED(option); + Q_UNUSED(value); +} + +QByteArray QBmpHandler::name() const +{ + return formatName(); +} + +QT_END_NAMESPACE + +#endif // QT_NO_IMAGEFORMAT_BMP diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h b/Telegram/_qt_5_3_1_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h similarity index 100% rename from Telegram/_qt_5_3_0_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h rename to Telegram/_qt_5_3_1_patch/qtbase/src/gui/kernel/qplatformdialoghelper.h diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/gui/painting/qpaintengine_p.h b/Telegram/_qt_5_3_1_patch/qtbase/src/gui/painting/qpaintengine_p.h similarity index 87% rename from Telegram/_qt_5_3_0_patch/qtbase/src/gui/painting/qpaintengine_p.h rename to Telegram/_qt_5_3_1_patch/qtbase/src/gui/painting/qpaintengine_p.h index c9d85033d..642e5b797 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/src/gui/painting/qpaintengine_p.h +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/gui/painting/qpaintengine_p.h @@ -87,18 +87,18 @@ public: if (hasSystemTransform) { if (systemTransform.type() <= QTransform::TxTranslate) systemClip.translate(qRound(systemTransform.dx()), qRound(systemTransform.dy())); - else { - // Transform the system clip region back from device pixels to device-independent pixels before - // applying systemTransform, which already has transform from device-independent pixels to device pixels + else { + // Transform the system clip region back from device pixels to device-independent pixels before + // applying systemTransform, which already has transform from device-independent pixels to device pixels #ifdef Q_OS_MAC - QTransform scaleTransform; - const qreal invDevicePixelRatio = 1. / pdev->devicePixelRatio(); - scaleTransform.scale(invDevicePixelRatio, invDevicePixelRatio); - systemClip = systemTransform.map(scaleTransform.map(systemClip)); + QTransform scaleTransform; + const qreal invDevicePixelRatio = 1. / pdev->devicePixelRatio(); + scaleTransform.scale(invDevicePixelRatio, invDevicePixelRatio); + systemClip = systemTransform.map(scaleTransform.map(systemClip)); #else - systemClip = systemTransform.map(systemClip); + systemClip = systemTransform.map(systemClip); #endif - } + } } // Make sure we're inside the viewport. diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/gui/text/qtextlayout.h b/Telegram/_qt_5_3_1_patch/qtbase/src/gui/text/qtextlayout.h similarity index 100% rename from Telegram/_qt_5_3_0_patch/qtbase/src/gui/text/qtextlayout.h rename to Telegram/_qt_5_3_1_patch/qtbase/src/gui/text/qtextlayout.h diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp similarity index 99% rename from Telegram/_qt_5_3_0_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp rename to Telegram/_qt_5_3_1_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp index 8067b89d0..b0e90e198 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/network/socket/qnativesocketengine_win.cpp @@ -182,7 +182,8 @@ static inline void qt_socket_getPortAndAddress(SOCKET socketDescriptor, const qt if (address) { QHostAddress a; a.setAddress(tmp); - a.setScopeId(QString::number(sa6->sin6_scope_id)); + if (sa6->sin6_scope_id) + a.setScopeId(QString::number(sa6->sin6_scope_id)); *address = a; } if (port) diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm similarity index 97% rename from Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm rename to Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm index 11ad1d63a..f3033316f 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -182,13 +182,22 @@ static bool isMouseEvent(NSEvent *ev) - (void)detachFromPlatformWindow { + _platformWindow = 0; [self.window.delegate release]; self.window.delegate = nil; } - (void)clearWindow { - _window = nil; + if (_window) { + QCocoaEventDispatcher *cocoaEventDispatcher = qobject_cast(QGuiApplication::instance()->eventDispatcher()); + if (cocoaEventDispatcher) { + QCocoaEventDispatcherPrivate *cocoaEventDispatcherPrivate = static_cast(QObjectPrivate::get(cocoaEventDispatcher)); + cocoaEventDispatcherPrivate->removeQueuedUserInputEvents([_window windowNumber]); + } + + _window = nil; + } } - (void)dealloc @@ -261,8 +270,6 @@ static bool isMouseEvent(NSEvent *ev) { [self close]; - QCocoaIntegration::instance()->setWindow(self, 0); - if (self.helper.grabbingMouse) { self.helper.releaseOnMouseUp = YES; } else { @@ -329,7 +336,6 @@ static bool isMouseEvent(NSEvent *ev) { [self.helper detachFromPlatformWindow]; [self close]; - QCocoaIntegration::instance()->setWindow(self, 0); [self release]; } @@ -420,9 +426,6 @@ QCocoaWindow::~QCocoaWindow() qDebug() << "QCocoaWindow::~QCocoaWindow" << this; #endif - if (QCocoaIntegration *ci = QCocoaIntegration::instance()) - ci->setWindow(m_nsWindow, 0); - QCocoaAutoReleasePool pool; [m_nsWindow setContentView:nil]; [m_nsWindow.helper detachFromPlatformWindow]; @@ -1004,9 +1007,14 @@ bool QCocoaWindow::isExposed() const bool QCocoaWindow::isOpaque() const { + // OpenGL surfaces can be ordered either above(default) or below the NSWindow. + // When ordering below the window must be tranclucent. + static GLint openglSourfaceOrder = qt_mac_resolveOption(1, "QT_MAC_OPENGL_SURFACE_ORDER"); + bool translucent = (window()->format().alphaBufferSize() > 0 || window()->opacity() < 1 - || (m_qtView && [m_qtView hasMask])); + || (m_qtView && [m_qtView hasMask])) + || (surface()->supportsOpenGL() && openglSourfaceOrder == -1); return !translucent; } @@ -1407,7 +1415,13 @@ QCocoaNSWindow * QCocoaWindow::createNSWindow() NSInteger level = windowLevel(flags); [createdWindow setLevel:level]; - if (window()->format().alphaBufferSize() > 0) { + // OpenGL surfaces can be ordered either above(default) or below the NSWindow. + // When ordering below the window must be tranclucent and have a clear background color. + static GLint openglSourfaceOrder = qt_mac_resolveOption(1, "QT_MAC_OPENGL_SURFACE_ORDER"); + + bool isTranslucent = window()->format().alphaBufferSize() > 0 + || (surface()->supportsOpenGL() && openglSourfaceOrder == -1); + if (isTranslucent) { [createdWindow setBackgroundColor:[NSColor clearColor]]; [createdWindow setOpaque:NO]; } @@ -1416,8 +1430,6 @@ QCocoaNSWindow * QCocoaWindow::createNSWindow() applyContentBorderThickness(createdWindow); - QCocoaIntegration::instance()->setWindow(createdWindow, this); - return createdWindow; } @@ -1623,6 +1635,7 @@ void QCocoaWindow::applyContentBorderThickness(NSWindow *window) if (!m_drawContentBorderGradient) { [window setStyleMask:[window styleMask] & ~NSTexturedBackgroundWindowMask]; + [[[window contentView] superview] setNeedsDisplay:YES]; return; } @@ -1653,6 +1666,8 @@ void QCocoaWindow::applyContentBorderThickness(NSWindow *window) [window setContentBorderThickness:effectiveBottomContentBorderThickness forEdge:NSMinYEdge]; [window setAutorecalculatesContentBorderThickness:NO forEdge:NSMinYEdge]; + + [[[window contentView] superview] setNeedsDisplay:YES]; } void QCocoaWindow::updateNSToolbar() diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm similarity index 97% rename from Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm rename to Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm index db9e8137e..58f4d6806 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/cocoa/qnsview.mm @@ -42,6 +42,7 @@ #include #include +#include #include "qnsview.h" #include "qcocoawindow.h" @@ -65,6 +66,9 @@ static QTouchDevice *touchDevice = 0; +// ### HACK Remove once 10.8 is unsupported +static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; + @interface NSEvent (Qt_Compile_Leopard_DeviceDelta) - (CGFloat)deviceDeltaX; - (CGFloat)deviceDeltaY; @@ -73,6 +77,13 @@ static QTouchDevice *touchDevice = 0; @implementation QNSView ++ (void)initialize +{ + NSString **notificationNameVar = (NSString **)dlsym(RTLD_NEXT, "NSWindowDidChangeOcclusionStateNotification"); + if (notificationNameVar) + _q_NSWindowDidChangeOcclusionStateNotification = *notificationNameVar; +} + - (id) init { self = [super initWithFrame : NSMakeRect(0,0, 300,300)]; @@ -192,6 +203,19 @@ static QTouchDevice *touchDevice = 0; } } +- (void)viewDidMoveToWindow +{ + if (self.window) { + // This is the case of QWidgetAction's generated QWidget inserted in an NSMenu. + // 10.9 and newer get the NSWindowDidChangeOcclusionStateNotification + if (!_q_NSWindowDidChangeOcclusionStateNotification + && [self.window.className isEqualToString:@"NSCarbonMenuWindow"]) + m_platformWindow->exposeWindow(); + } else { + m_platformWindow->obscureWindow(); + } +} + - (void)viewWillMoveToWindow:(NSWindow *)newWindow { // ### Merge "normal" window code path with this one for 5.1. @@ -319,12 +343,29 @@ static QTouchDevice *touchDevice = 0; [self notifyWindowStateChanged:newState]; // NSWindowDidOrderOnScreenAndFinishAnimatingNotification is private API, and not // emitted in 10.6, so we bring back the old behavior for that case alone. - if (newState == Qt::WindowNoState/* && QSysInfo::QSysInfo::MacintoshVersion == QSysInfo::MV_10_6*/) // also not emitted if window restored from the app + if (newState == Qt::WindowNoState/* && QSysInfo::QSysInfo::MacintoshVersion == QSysInfo::MV_10_6*/) m_platformWindow->exposeWindow(); } else if ([notificationName isEqualToString: @"NSWindowDidOrderOffScreenNotification"]) { m_platformWindow->obscureWindow(); } else if ([notificationName isEqualToString: @"NSWindowDidOrderOnScreenAndFinishAnimatingNotification"]) { m_platformWindow->exposeWindow(); + } else if (_q_NSWindowDidChangeOcclusionStateNotification + && [notificationName isEqualToString:_q_NSWindowDidChangeOcclusionStateNotification]) { +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9 +// ### HACK Remove the enum declaration, the warning disabling and the cast further down once 10.8 is unsupported +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wobjc-method-access" + enum { NSWindowOcclusionStateVisible = 1UL << 1 }; +#endif + // Older versions managed in -[QNSView viewDidMoveToWindow]. + // Support QWidgetAction in NSMenu. Mavericks only sends this notification. + // Ideally we should support this in Qt as well, in order to disable animations + // when the window is occluded. + if ((NSUInteger)[self.window occlusionState] & NSWindowOcclusionStateVisible) + m_platformWindow->exposeWindow(); +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9 +#pragma clang diagnostic pop +#endif } else if (notificationName == NSWindowDidChangeScreenNotification) { if (m_window) { NSUInteger screenIndex = [[NSScreen screens] indexOfObject:self.window.screen]; diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp similarity index 100% rename from Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp rename to Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp similarity index 98% rename from Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp rename to Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp index 684f7532a..1971baf88 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp @@ -1016,17 +1016,17 @@ QWindow *QWindowsWindow::topLevelOf(QWindow *w) while (QWindow *parent = w->parent()) w = parent; - const QWindowsWindow *ww = static_cast(w->handle()); - - // In case the topmost parent is embedded, find next ancestor using native methods - if (ww->isEmbedded(0)) { - HWND parentHWND = GetAncestor(ww->handle(), GA_PARENT); - const HWND desktopHwnd = GetDesktopWindow(); - const QWindowsContext *ctx = QWindowsContext::instance(); - while (parentHWND && parentHWND != desktopHwnd) { - if (QWindowsWindow *ancestor = ctx->findPlatformWindow(parentHWND)) - return topLevelOf(ancestor->window()); - parentHWND = GetAncestor(parentHWND, GA_PARENT); + if (const QPlatformWindow *handle = w->handle()) { + const QWindowsWindow *ww = static_cast(handle); + if (ww->isEmbedded(0)) { + HWND parentHWND = GetAncestor(ww->handle(), GA_PARENT); + const HWND desktopHwnd = GetDesktopWindow(); + const QWindowsContext *ctx = QWindowsContext::instance(); + while (parentHWND && parentHWND != desktopHwnd) { + if (QWindowsWindow *ancestor = ctx->findPlatformWindow(parentHWND)) + return topLevelOf(ancestor->window()); + parentHWND = GetAncestor(parentHWND, GA_PARENT); + } } } return w; @@ -1949,7 +1949,10 @@ void QWindowsWindow::getSizeHints(MINMAXINFO *mmi) const && (m_data.flags & Qt::FramelessWindowHint)) { // This block fixes QTBUG-8361: Frameless windows shouldn't cover the // taskbar when maximized - if (const QScreen *screen = effectiveScreen(window())) { + const QScreen *screen = effectiveScreen(window()); + + // Documentation of MINMAXINFO states that it will only work for the primary screen + if (screen && screen == QGuiApplication::primaryScreen()) { mmi->ptMaxSize.y = screen->availableGeometry().height(); // Width, because you can have the taskbar on the sides too. @@ -1958,8 +1961,8 @@ void QWindowsWindow::getSizeHints(MINMAXINFO *mmi) const // If you have the taskbar on top, or on the left you don't want it at (0,0): mmi->ptMaxPosition.x = screen->availableGeometry().x(); mmi->ptMaxPosition.y = screen->availableGeometry().y(); - } else { - qWarning() << "Invalid screen"; + } else if (!screen){ + qWarning() << "effectiveScreen() returned a null screen"; } } diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.h b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.h similarity index 99% rename from Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.h rename to Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.h index 085298f39..de56c5674 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.h +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/plugins/platforms/windows/qwindowswindow.h @@ -282,7 +282,7 @@ private: inline void setParent_sys(const QPlatformWindow *parent); inline void updateTransientParent() const; inline void clearTransientParent() const; - void destroyWindow(); + void destroyWindow(); inline bool isDropSiteEnabled() const { return m_dropTarget != 0; } void setDropSiteEnabled(bool enabled); void updateDropSite(); diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/widgets/dialogs/qfiledialog.cpp b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/dialogs/qfiledialog.cpp similarity index 98% rename from Telegram/_qt_5_3_0_patch/qtbase/src/widgets/dialogs/qfiledialog.cpp rename to Telegram/_qt_5_3_1_patch/qtbase/src/widgets/dialogs/qfiledialog.cpp index 44e63c692..ab1125780 100644 --- a/Telegram/_qt_5_3_0_patch/qtbase/src/widgets/dialogs/qfiledialog.cpp +++ b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/dialogs/qfiledialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtWidgets module of the Qt Toolkit. @@ -71,6 +71,7 @@ extern bool qt_priv_ptr_valid; #endif #if defined(Q_OS_UNIX) #include +#include // for pathconf() on OS X #elif defined(Q_OS_WIN) # include #endif @@ -1018,6 +1019,44 @@ QUrl QFileDialog::directoryUrl() const return QUrl::fromLocalFile(directory().absolutePath()); } +// FIXME Qt 5.4: Use upcoming QVolumeInfo class to determine this information? +static inline bool isCaseSensitiveFileSystem(const QString &path) +{ + Q_UNUSED(path) +#if defined(Q_OS_WIN) + // Return case insensitive unconditionally, even if someone has a case sensitive + // file system mounted, wrongly capitalized drive letters will cause mismatches. + return false; +#elif defined(Q_OS_OSX) + return pathconf(QFile::encodeName(path).constData(), _PC_CASE_SENSITIVE); +#else + return true; +#endif +} + +// Determine the file name to be set on the line edit from the path +// passed to selectFile() in mode QFileDialog::AcceptSave. +static inline QString fileFromPath(const QString &rootPath, QString path) +{ + if (!QFileInfo(path).isAbsolute()) + return path; + if (path.startsWith(rootPath, isCaseSensitiveFileSystem(rootPath) ? Qt::CaseSensitive : Qt::CaseInsensitive)) + path.remove(0, rootPath.size()); + + if (path.isEmpty()) + return path; + + if (path.at(0) == QDir::separator() +#ifdef Q_OS_WIN + //On Windows both cases can happen + || path.at(0) == QLatin1Char('/') +#endif + ) { + path.remove(0, 1); + } + return path; +} + /*! Selects the given \a filename in the file dialog. @@ -1049,28 +1088,9 @@ void QFileDialog::selectFile(const QString &filename) } QModelIndex index = d->model->index(filename); - QString file; - if (!index.isValid()) { - // save as dialog where we want to input a default value - QString text = filename; - if (QFileInfo(filename).isAbsolute()) { - QString current = d->rootPath(); - text.remove(current); - if (text.at(0) == QDir::separator() -#ifdef Q_OS_WIN - //On Windows both cases can happen - || text.at(0) == QLatin1Char('/') -#endif - ) - text = text.remove(0,1); - } - file = text; - } else { - file = index.data().toString(); - } d->qFileDialogUi->listView->selectionModel()->clear(); if (!isVisible() || !d->lineEdit()->hasFocus()) - d->lineEdit()->setText(file); + d->lineEdit()->setText(index.isValid() ? index.data().toString() : fileFromPath(d->rootPath(), filename)); } /*! @@ -1263,7 +1283,7 @@ QStringList QFileDialog::selectedFiles() const QStringList files; foreach (const QUrl &file, d->userSelectedFiles()) files.append(file.toLocalFile()); - if (files.isEmpty()) { + if (files.isEmpty() && d->usingWidgets()) { const FileMode fm = fileMode(); if (fm != ExistingFile && fm != ExistingFiles) files.append(d->rootIndex().data(QFileSystemModel::FilePathRole).toString()); @@ -1615,7 +1635,7 @@ QFileDialog::ViewMode QFileDialog::viewMode() const { Q_D(const QFileDialog); if (!d->usingWidgets()) - return QFileDialog::List; + return static_cast(d->options->viewMode()); return (d->qFileDialogUi->stackedWidget->currentWidget() == d->qFileDialogUi->listView->parent() ? QFileDialog::List : QFileDialog::Detail); } @@ -2123,6 +2143,11 @@ QString QFileDialog::getOpenFileName(QWidget *parent, return QString(); } +static inline QUrl dialogResultToUrl(const QString &file) +{ + return file.isEmpty() ? QUrl() : QUrl::fromLocalFile(file); +} + /*! This is a convenience static function that returns an existing file selected by the user. If the user presses Cancel, it returns an @@ -2161,7 +2186,7 @@ QUrl QFileDialog::getOpenFileUrl(QWidget *parent, Q_UNUSED(supportedSchemes); // Falls back to local file - return QUrl::fromLocalFile(getOpenFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); + return dialogResultToUrl(getOpenFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); } /*! @@ -2419,7 +2444,7 @@ QUrl QFileDialog::getSaveFileUrl(QWidget *parent, Q_UNUSED(supportedSchemes); // Falls back to local file - return QUrl::fromLocalFile(getSaveFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); + return dialogResultToUrl(getSaveFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); } /*! @@ -2527,7 +2552,7 @@ QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent, Q_UNUSED(supportedSchemes); // Falls back to local file - return QUrl::fromLocalFile(getExistingDirectory(parent, caption, dir.toLocalFile(), options)); + return dialogResultToUrl(getExistingDirectory(parent, caption, dir.toLocalFile(), options)); } inline static QString _qt_get_directory(const QString &path) diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/widgets/dialogs/qfiledialog.h b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/dialogs/qfiledialog.h similarity index 100% rename from Telegram/_qt_5_3_0_patch/qtbase/src/widgets/dialogs/qfiledialog.h rename to Telegram/_qt_5_3_1_patch/qtbase/src/widgets/dialogs/qfiledialog.h diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/widgets/dialogs/qfiledialog_p.h b/Telegram/_qt_5_3_1_patch/qtbase/src/widgets/dialogs/qfiledialog_p.h similarity index 100% rename from Telegram/_qt_5_3_0_patch/qtbase/src/widgets/dialogs/qfiledialog_p.h rename to Telegram/_qt_5_3_1_patch/qtbase/src/widgets/dialogs/qfiledialog_p.h