From 7b855a661a05f691c954271f79522857d69e4e41 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 9 Feb 2016 19:05:08 +0300 Subject: [PATCH] new wide layout, build script and some bugs fixed --- Telegram/Build.bat | 8 ++-- Telegram/Resources/style.txt | 1 - Telegram/SourceFiles/gui/animation.cpp | 1 - Telegram/SourceFiles/history.cpp | 52 ++++++++++++------------- Telegram/SourceFiles/history.h | 3 +- Telegram/SourceFiles/logs.cpp | 26 +++++++++---- Telegram/SourceFiles/mainwidget.cpp | 2 +- Telegram/SourceFiles/mainwidget.h | 4 ++ Telegram/SourceFiles/window.cpp | 54 ++++++++++++++------------ Telegram/SourceFiles/window.h | 1 + 10 files changed, 87 insertions(+), 65 deletions(-) diff --git a/Telegram/Build.bat b/Telegram/Build.bat index d6c274cb38..6f83a43f27 100644 --- a/Telegram/Build.bat +++ b/Telegram/Build.bat @@ -124,10 +124,10 @@ for /f ^"usebackq^ eol^=^ :symbolslinedone FOR /F "tokens=1,2,3,4* delims= " %%i in ("%SymbolsHashLine%") do set "SymbolsHash=%%l" -echo Copying %BinaryName%.sym to %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash% -if not exist %DropboxSymbolsPath%\%BinaryName% mkdir %DropboxSymbolsPath%\%BinaryName% -if not exist %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash% mkdir %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash% -xcopy %ReleasePath%\%BinaryName%.sym %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash%\ +echo Copying %BinaryName%.sym to %DropboxSymbolsPath%\%BinaryName%.pdb\%SymbolsHash% +if not exist %DropboxSymbolsPath%\%BinaryName%.pdb mkdir %DropboxSymbolsPath%\%BinaryName%.pdb +if not exist %DropboxSymbolsPath%\%BinaryName%.pdb\%SymbolsHash% mkdir %DropboxSymbolsPath%\%BinaryName%.pdb\%SymbolsHash% +xcopy %ReleasePath%\%BinaryName%.sym %DropboxSymbolsPath%\%BinaryName%.pdb\%SymbolsHash%\ echo Done! if not exist %ReleasePath%\deploy mkdir %ReleasePath%\deploy diff --git a/Telegram/Resources/style.txt b/Telegram/Resources/style.txt index 944fd83aed..9168bdd43b 100644 --- a/Telegram/Resources/style.txt +++ b/Telegram/Resources/style.txt @@ -53,7 +53,6 @@ color8: #ce671b; // orange wndMinWidth: 380px; adaptiveNormalWidth: 640px; -adaptiveWideWidth: 1120px; wndMinHeight: 480px; wndDefWidth: 800px; diff --git a/Telegram/SourceFiles/gui/animation.cpp b/Telegram/SourceFiles/gui/animation.cpp index 045dbb2739..98d756bb07 100644 --- a/Telegram/SourceFiles/gui/animation.cpp +++ b/Telegram/SourceFiles/gui/animation.cpp @@ -425,7 +425,6 @@ void ClipReader::stop() { } void ClipReader::error() { - _private = 0; _state = ClipError; } diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp index e039dd1b54..869ad41142 100644 --- a/Telegram/SourceFiles/history.cpp +++ b/Telegram/SourceFiles/history.cpp @@ -2924,11 +2924,7 @@ void HistoryItem::setId(MsgId newId) { } bool HistoryItem::displayFromPhoto() const { - return Adaptive::Wide() || (!out() && !history()->peer->isUser() && !fromChannel()); -} - -bool HistoryItem::shiftFromPhoto() const { - return Adaptive::Wide() && !out() && !history()->peer->isUser() && !fromChannel(); + return (Adaptive::Wide() || (!out() && !history()->peer->isUser())) && !fromChannel(); } void HistoryItem::clipCallback(ClipReaderNotification notification) { @@ -6217,31 +6213,25 @@ void HistoryMessage::initDimensions() { } void HistoryMessage::countPositionAndSize(int32 &left, int32 &width) const { - int32 maxwidth = qMin(int(st::msgMaxWidth), _maxw), hwidth = _history->width, hmaxwidth = st::historyMaxWidth + (Adaptive::Wide() ? (2 * st::msgPhotoSkip) : 0); + int32 maxwidth = qMin(int(st::msgMaxWidth), _maxw), hwidth = _history->width, hmaxwidth = st::historyMaxWidth; if (_media && _media->currentWidth() < maxwidth) { maxwidth = qMax(_media->currentWidth(), qMin(maxwidth, plainMaxWidth())); } left = 0; - if (hwidth > hmaxwidth) { - left = (hwidth - hmaxwidth) / 2; + if (Adaptive::Wide()) { hwidth = hmaxwidth; } - left += (!fromChannel() && out()) ? st::msgMargin.right() : st::msgMargin.left(); + left += (!fromChannel() && out() && !Adaptive::Wide()) ? st::msgMargin.right() : st::msgMargin.left(); if (displayFromPhoto()) { - if (!fromChannel() && out()) { - left -= st::msgPhotoSkip; - } else { - left += st::msgPhotoSkip; - if (shiftFromPhoto()) { - left += st::msgPhotoSkip; - } - } + left += st::msgPhotoSkip; + } else if (!Adaptive::Wide() && !out() && !fromChannel() && st::msgPhotoSkip - (hmaxwidth - hwidth) > 0) { + left += st::msgPhotoSkip - (hmaxwidth - hwidth); } width = hwidth - st::msgMargin.left() - st::msgMargin.right(); if (width > maxwidth) { - if (!fromChannel() && out()) { + if (!fromChannel() && out() && !Adaptive::Wide()) { left += width - maxwidth; } width = maxwidth; @@ -6495,7 +6485,7 @@ void HistoryMessage::draw(Painter &p, const QRect &r, uint32 selection, uint64 m } if (displayFromPhoto()) { - int32 photoleft = left + ((!fromChannel() && out()) ? (width + (st::msgPhotoSkip - st::msgPhotoSize)) : (-st::msgPhotoSkip)); + int32 photoleft = left + ((!fromChannel() && out() && !Adaptive::Wide()) ? (width + (st::msgPhotoSkip - st::msgPhotoSize)) : (-st::msgPhotoSkip)); p.drawPixmap(photoleft, _height - st::msgMargin.bottom() - st::msgPhotoSize, _from->photo->pixRounded(st::msgPhotoSize)); } if (width < 1) return; @@ -6663,7 +6653,7 @@ void HistoryMessage::getState(TextLinkPtr &lnk, HistoryCursorState &state, int32 int32 left = 0, width = 0; countPositionAndSize(left, width); if (displayFromPhoto()) { - int32 photoleft = left + ((!fromChannel() && out()) ? (width + (st::msgPhotoSkip - st::msgPhotoSize)) : (-st::msgPhotoSkip)); + int32 photoleft = left + ((!fromChannel() && out() && !Adaptive::Wide()) ? (width + (st::msgPhotoSkip - st::msgPhotoSize)) : (-st::msgPhotoSkip)); if (x >= photoleft && x < photoleft + st::msgPhotoSize && y >= _height - st::msgMargin.bottom() - st::msgPhotoSize && y < _height - st::msgMargin.bottom()) { lnk = _from->lnk; return; @@ -6928,7 +6918,7 @@ void HistoryForwarded::getState(TextLinkPtr &lnk, HistoryCursorState &state, int int32 left = 0, width = 0; countPositionAndSize(left, width); if (displayFromPhoto()) { - int32 photoleft = left + ((!fromChannel() && out()) ? (width + (st::msgPhotoSkip - st::msgPhotoSize)) : (-st::msgPhotoSkip)); + int32 photoleft = left + ((!fromChannel() && out() && !Adaptive::Wide()) ? (width + (st::msgPhotoSkip - st::msgPhotoSize)) : (-st::msgPhotoSkip)); if (x >= photoleft && x < photoleft + st::msgPhotoSize) { return HistoryMessage::getState(lnk, state, x, y); } @@ -7488,6 +7478,11 @@ void HistoryServiceMsg::initDimensions() { if (_media) _media->initDimensions(this); } +void HistoryServiceMsg::countPositionAndSize(int32 &left, int32 &width) const { + left = st::msgServiceMargin.left(); + width = qMin(_history->width, int(st::msgMaxWidth + 2 * st::msgPhotoSkip)) - st::msgServiceMargin.left() - st::msgServiceMargin.left(); +} + QString HistoryServiceMsg::selectedText(uint32 selection) const { uint16 selectedFrom = (selection == FullSelection) ? 0 : (selection >> 16) & 0xFFFF; uint16 selectedTo = (selection == FullSelection) ? 0xFFFF : (selection & 0xFFFF); @@ -7528,7 +7523,8 @@ void HistoryServiceMsg::draw(Painter &p, const QRect &r, uint32 selection, uint6 textstyleSet(&st::serviceTextStyle); - int32 left = st::msgServiceMargin.left(), width = _history->width - st::msgServiceMargin.left() - st::msgServiceMargin.left(), height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + int32 left = 0, width = 0, height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + countPositionAndSize(left, width); if (width < 1) return; if (_media) { @@ -7581,7 +7577,8 @@ int32 HistoryServiceMsg::resize(int32 width) { } bool HistoryServiceMsg::hasPoint(int32 x, int32 y) const { - int32 left = st::msgServiceMargin.left(), width = _history->width - st::msgServiceMargin.left() - st::msgServiceMargin.left(), height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + int32 left = 0, width = 0, height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + countPositionAndSize(left, width); if (width < 1) return false; if (_media) { @@ -7594,7 +7591,8 @@ void HistoryServiceMsg::getState(TextLinkPtr &lnk, HistoryCursorState &state, in lnk = TextLinkPtr(); state = HistoryDefaultCursorState; - int32 left = st::msgServiceMargin.left(), width = _history->width - st::msgServiceMargin.left() - st::msgServiceMargin.left(), height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + int32 left = 0, width = 0, height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + countPositionAndSize(left, width); if (width < 1) return; if (_media) { @@ -7617,7 +7615,8 @@ void HistoryServiceMsg::getSymbol(uint16 &symbol, bool &after, bool &upon, int32 after = false; upon = false; - int32 left = st::msgServiceMargin.left(), width = _history->width - st::msgServiceMargin.left() - st::msgServiceMargin.left(), height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + int32 left = 0, width = 0, height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + countPositionAndSize(left, width); if (width < 1) return; if (_media) { @@ -7682,7 +7681,8 @@ void HistoryGroup::getState(TextLinkPtr &lnk, HistoryCursorState &state, int32 x lnk = TextLinkPtr(); state = HistoryDefaultCursorState; - int32 left = st::msgServiceMargin.left(), width = _history->width - st::msgServiceMargin.left() - st::msgServiceMargin.left(), height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + int32 left = 0, width = 0, height = _height - st::msgServiceMargin.top() - st::msgServiceMargin.bottom(); // two small margins + countPositionAndSize(left, width); if (width < 1) return; QRect trect(QRect(left, st::msgServiceMargin.top(), width, height).marginsAdded(-st::msgServicePadding)); diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h index 8f801be89f..9557904364 100644 --- a/Telegram/SourceFiles/history.h +++ b/Telegram/SourceFiles/history.h @@ -1021,7 +1021,6 @@ public: return (!out() || fromChannel()) && !history()->peer->isUser(); } bool displayFromPhoto() const; - bool shiftFromPhoto() const; void clipCallback(ClipReaderNotification notification); @@ -2249,6 +2248,8 @@ public: void initDimensions(); + void countPositionAndSize(int32 &left, int32 &width) const; + void draw(Painter &p, const QRect &r, uint32 selection, uint64 ms) const; int32 resize(int32 width); bool hasPoint(int32 x, int32 y) const; diff --git a/Telegram/SourceFiles/logs.cpp b/Telegram/SourceFiles/logs.cpp index 204a3d4588..502644d7a1 100644 --- a/Telegram/SourceFiles/logs.cpp +++ b/Telegram/SourceFiles/logs.cpp @@ -606,7 +606,7 @@ void _moveOldDataFiles(const QString &wasDir) { namespace SignalHandlers { - QByteArray CrashDumpPath; + QString CrashDumpPath; FILE *CrashDumpFile = 0; int CrashDumpFileNo = 0; char LaunchedDateTimeStr[32] = { 0 }; @@ -930,8 +930,12 @@ namespace SignalHandlers { } Status start() { - CrashDumpPath = QFile::encodeName(cWorkingDir() + qsl("tdata/working")); - if (FILE *f = fopen(CrashDumpPath.constData(), "rb")) { + CrashDumpPath = cWorkingDir() + qsl("tdata/working"); +#ifdef Q_OS_WIN + if (FILE *f = _wfopen(CrashDumpPath.toStdWString().c_str(), L"rb")) { +#else + if (FILE *f = fopen(QFile::encodeName(CrashDumpPath).constData(), "rb")) { +#endif QByteArray lastdump; char buffer[64 * 1024] = { 0 }; int32 read = 0; @@ -942,7 +946,7 @@ namespace SignalHandlers { Sandbox::SetLastCrashDump(lastdump); - LOG(("Opened '%1' for reading, the previous Telegram Desktop launch was not finished properly :( Crash log size: %2").arg(QString::fromUtf8(CrashDumpPath)).arg(lastdump.size())); + LOG(("Opened '%1' for reading, the previous Telegram Desktop launch was not finished properly :( Crash log size: %2").arg(CrashDumpPath).arg(lastdump.size())); return LastCrashed; } @@ -954,7 +958,11 @@ namespace SignalHandlers { return Started; } - CrashDumpFile = fopen(CrashDumpPath.constData(), "wb"); +#ifdef Q_OS_WIN + CrashDumpFile = _wfopen(CrashDumpPath.toStdWString().c_str(), L"wb"); +#else + CrashDumpFile = fopen(QFile::encodeName(CrashDumpPath).constData(), "wb"); +#endif if (CrashDumpFile) { CrashDumpFileNo = fileno(CrashDumpFile); if (SetSignalHandlers) { @@ -981,7 +989,7 @@ namespace SignalHandlers { return Started; } - LOG(("FATAL: Could not open '%1' for writing!").arg(QString::fromUtf8(CrashDumpPath))); + LOG(("FATAL: Could not open '%1' for writing!").arg(CrashDumpPath)); return CantOpen; } @@ -990,7 +998,11 @@ namespace SignalHandlers { FinishBreakpad(); if (CrashDumpFile) { fclose(CrashDumpFile); - unlink(CrashDumpPath.constData()); +#ifdef Q_OS_WIN + _wunlink(CrashDumpPath.toStdWString().c_str()); +#else + unlink(CrashDumpPath.toUtf8().constData()); +#endif } } diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index e91ac44112..779a93bacc 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -2810,7 +2810,7 @@ void MainWidget::resizeEvent(QResizeEvent *e) { history.setGeometry(0, _playerHeight + tbh, _dialogsWidth, height() - _playerHeight - tbh); if (_hider) _hider->setGeometry(0, 0, _dialogsWidth, height()); } else { - _dialogsWidth = snap((width() * 5) / 14, st::dlgMinWidth, st::dlgMaxWidth); + _dialogsWidth = chatsListWidth(width()); dialogs.resize(_dialogsWidth, height()); dialogs.moveToLeft(0, 0); _player.resize(width() - _dialogsWidth, _player.height()); diff --git a/Telegram/SourceFiles/mainwidget.h b/Telegram/SourceFiles/mainwidget.h index 44e9e2accb..ffb357d81c 100644 --- a/Telegram/SourceFiles/mainwidget.h +++ b/Telegram/SourceFiles/mainwidget.h @@ -179,6 +179,10 @@ public: } }; +inline int chatsListWidth(int windowWidth) { + return snap((windowWidth * 5) / 14, st::dlgMinWidth, st::dlgMaxWidth); +} + class StickerPreviewWidget; class MainWidget : public TWidget, public RPCSender { diff --git a/Telegram/SourceFiles/window.cpp b/Telegram/SourceFiles/window.cpp index 397d879af6..89fbecc527 100644 --- a/Telegram/SourceFiles/window.cpp +++ b/Telegram/SourceFiles/window.cpp @@ -1229,10 +1229,12 @@ void Window::resizeEvent(QResizeEvent *e) { if (!title) return; Adaptive::Layout layout = Adaptive::OneColumnLayout; - if (width() >= st::adaptiveWideWidth) { - layout = Adaptive::WideLayout; - } else if (width() >= st::adaptiveNormalWidth) { - layout = Adaptive::NormalLayout; + if (width() >= st::adaptiveNormalWidth) { + if (width() - chatsListWidth(width()) >= st::historyMaxWidth) { + layout = Adaptive::WideLayout; + } else { + layout = Adaptive::NormalLayout; + } } if (layout != Global::AdaptiveLayout()) { Global::SetAdaptiveLayout(layout); @@ -1501,7 +1503,6 @@ void Window::notifyShowNext(NotifyWindow *remove) { uint64 next = 0; HistoryItem *notifyItem = 0; History *notifyHistory = 0; - NotifyWaiters::iterator notifyWaiter = notifyWaiters.end(); for (NotifyWaiters::iterator i = notifyWaiters.begin(); i != notifyWaiters.end();) { History *history = i.key(); if (history->currentNotification() && history->currentNotification()->id != i.value().msg) { @@ -1509,7 +1510,6 @@ void Window::notifyShowNext(NotifyWindow *remove) { if (j == notifyWhenMaps.end()) { history->clearNotifications(); i = notifyWaiters.erase(i); - notifyWaiter = notifyHistory ? notifyWaiters.find(notifyHistory) : notifyWaiters.end(); continue; } do { @@ -1525,7 +1525,6 @@ void Window::notifyShowNext(NotifyWindow *remove) { if (!history->currentNotification()) { notifyWhenMaps.remove(history); i = notifyWaiters.erase(i); - notifyWaiter = notifyHistory ? notifyWaiters.find(notifyHistory) : notifyWaiters.end(); continue; } uint64 when = i.value().when; @@ -1533,7 +1532,6 @@ void Window::notifyShowNext(NotifyWindow *remove) { next = when; notifyItem = history->currentNotification(); notifyHistory = history; - notifyWaiter = i; } ++i; } @@ -1567,8 +1565,7 @@ void Window::notifyShowNext(NotifyWindow *remove) { NotifyWhenMap::const_iterator k = j.value().constFind(history->currentNotification()->id); if (k != j.value().cend()) { nextNotify = history->currentNotification(); - notifyWaiter.value().msg = k.key(); - notifyWaiter.value().when = k.value(); + notifyWaiters.insert(notifyHistory, NotifyWaiter(k.key(), k.value(), 0)); break; } history->skipNotification(); @@ -1599,7 +1596,7 @@ void Window::notifyShowNext(NotifyWindow *remove) { } if (!history->hasNotification()) { - if (notifyWaiter != notifyWaiters.cend()) notifyWaiters.erase(notifyWaiter); + notifyWaiters.remove(history); notifyWhenMaps.remove(history); continue; } @@ -2195,7 +2192,7 @@ void LastCrashedWindow::onSendReport() { App::setProxySettings(_sendManager); QString apiid = getReportField(qstr("apiid"), qstr("ApiId:")), version = getReportField(qstr("version"), qstr("Version:")); - _checkReply = _sendManager.get(QNetworkRequest(qsl("https://tdesktop.com/crash.php?act=query_report&apiid=%1&version=%2").arg(apiid).arg(version))); + _checkReply = _sendManager.get(QNetworkRequest(qsl("https://tdesktop.com/crash.php?act=query_report&apiid=%1&version=%2&dmp=%3").arg(apiid).arg(version).arg(minidumpFileName().isEmpty() ? 0 : 1))); connect(_checkReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onSendingError(QNetworkReply::NetworkError))); connect(_checkReply, SIGNAL(finished()), this, SLOT(onCheckingFinished())); @@ -2291,6 +2288,15 @@ namespace { } +QString LastCrashedWindow::minidumpFileName() { + QFileInfo dmpFile(_minidumpFull); + if (dmpFile.exists() && dmpFile.size() > 0 && dmpFile.size() < 20 * 1024 * 1024 && + QRegularExpression(qsl("^[a-zA-Z0-9\\-]{1,64}\\.dmp$")).match(dmpFile.fileName()).hasMatch()) { + return dmpFile.fileName(); + } + return QString(); +} + void LastCrashedWindow::onCheckingFinished() { if (!_checkReply || _sendReply) return; @@ -2300,9 +2306,9 @@ void LastCrashedWindow::onCheckingFinished() { LOG(("Crash report check for sending done, result: %1").arg(QString::fromUtf8(result))); - if (result == "Many") { - _pleaseSendReport.setText(qsl("Too many crash reports at this moment :(")); - _sendingState = SendingTooMany; + if (result == "Old") { + _pleaseSendReport.setText(qsl("This report is about some old version of Telegram Desktop.")); + _sendingState = SendingTooOld; updateControls(); return; } else if (result == "Unofficial") { @@ -2311,10 +2317,11 @@ void LastCrashedWindow::onCheckingFinished() { updateControls(); return; } else if (result != "Report") { - _pleaseSendReport.setText(qsl("This report is about some old version of Telegram Desktop.")); - _pleaseSendReport.setText(qsl("Response: %1").arg(QString::fromLatin1(result))); - _sendingState = SendingTooOld; + _pleaseSendReport.setText(qsl("Thank you for your report!")); + _sendingState = SendingDone; updateControls(); + + SignalHandlers::restart(); return; } @@ -2329,15 +2336,14 @@ void LastCrashedWindow::onCheckingFinished() { reportPart.setBody(Sandbox::LastCrashDump()); multipart->append(reportPart); - QFileInfo dmpFile(_minidumpFull); - if (dmpFile.exists() && dmpFile.size() > 0 && dmpFile.size() < 20 * 1024 * 1024 && - QRegularExpression(qsl("^[a-zA-Z0-9\\-]{1,64}\\.dmp$")).match(dmpFile.fileName()).hasMatch()) { + QString dmpName = minidumpFileName(); + if (!dmpName.isEmpty()) { QFile file(_minidumpFull); if (file.open(QIODevice::ReadOnly)) { QByteArray minidump = file.readAll(); file.close(); - QString zipName = dmpFile.fileName().replace(qstr(".dmp"), qstr(".zip")); + QString zipName = QString(dmpName).replace(qstr(".dmp"), qstr(".zip")); zByteArray minidumpZip; bool failed = false; @@ -2353,8 +2359,8 @@ void LastCrashedWindow::onCheckingFinished() { if (zipFile zf = zipOpen2(0, APPEND_STATUS_CREATE, 0, &zfuncs)) { zip_fileinfo zfi = { { 0, 0, 0, 0, 0, 0 }, 0, 0, 0 }; - std::wstring fileName = dmpFile.fileName().toStdWString(); - if (zipOpenNewFileInZip(zf, std::string(fileName.begin(), fileName.end()).c_str(), &zfi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION) != ZIP_OK) { + QByteArray dmpNameUtf = dmpName.toUtf8(); + if (zipOpenNewFileInZip(zf, dmpNameUtf.constData(), &zfi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION) != ZIP_OK) { failed = true; } else if (zipWriteInFileInZip(zf, minidump.constData(), minidump.size()) != 0) { failed = true; diff --git a/Telegram/SourceFiles/window.h b/Telegram/SourceFiles/window.h index c96913b515..4efcdd318c 100644 --- a/Telegram/SourceFiles/window.h +++ b/Telegram/SourceFiles/window.h @@ -453,6 +453,7 @@ protected: private: + QString minidumpFileName(); void updateControls(); QString _host, _username, _password;