Browse Source

fix(ui): don't emit filename change windows for every chat

reviewable/pr5245/r1
sudden6 7 years ago committed by Anthony Bilinski
parent
commit
0ad80288dc
No known key found for this signature in database
GPG Key ID: 2AA8E0DA1B31FB3C
  1. 2
      src/core/core.h
  2. 6
      src/core/corefile.cpp
  3. 6
      src/widget/form/chatform.cpp
  4. 2
      src/widget/form/chatform.h

2
src/core/core.h

@ -184,7 +184,7 @@ signals:
void fileTransferInfo(ToxFile file); void fileTransferInfo(ToxFile file);
void fileTransferRemotePausedUnpaused(ToxFile file, bool paused); void fileTransferRemotePausedUnpaused(ToxFile file, bool paused);
void fileTransferBrokenUnbroken(ToxFile file, bool broken); void fileTransferBrokenUnbroken(ToxFile file, bool broken);
void fileNameChanged(); void fileNameChanged(const ToxPk& friendPk);
void fileSendFailed(uint32_t friendId, const QString& fname); void fileSendFailed(uint32_t friendId, const QString& fname);

6
src/core/corefile.cpp

@ -277,7 +277,7 @@ void CoreFile::removeFile(uint32_t friendId, uint32_t fileId)
QString CoreFile::getCleanFileName(QString filename) QString CoreFile::getCleanFileName(QString filename)
{ {
QRegularExpression regex("[<>:\"/\\|?*]"); QRegularExpression regex{QStringLiteral(R"([<>:"/\\|?])")};
filename.replace(regex, "_"); filename.replace(regex, "_");
return filename; return filename;
@ -289,9 +289,9 @@ void CoreFile::onFileReceiveCallback(Tox*, uint32_t friendId, uint32_t fileId, u
{ {
Core* core = static_cast<Core*>(vCore); Core* core = static_cast<Core*>(vCore);
auto filename = ToxString(fname, fnameLen); auto filename = ToxString(fname, fnameLen);
const ToxPk friendPk = core->getFriendPublicKey(friendId);
if (kind == TOX_FILE_KIND_AVATAR) { if (kind == TOX_FILE_KIND_AVATAR) {
const ToxPk friendPk = core->getFriendPublicKey(friendId);
if (!filesize) { if (!filesize) {
qDebug() << QString("Received empty avatar request %1:%2").arg(friendId).arg(fileId); qDebug() << QString("Received empty avatar request %1:%2").arg(friendId).arg(fileId);
// Avatars of size 0 means explicitely no avatar // Avatars of size 0 means explicitely no avatar
@ -326,7 +326,7 @@ void CoreFile::onFileReceiveCallback(Tox*, uint32_t friendId, uint32_t fileId, u
if (cleanFileName != filename.getQString()) { if (cleanFileName != filename.getQString()) {
qDebug() << QStringLiteral("Cleaned filename"); qDebug() << QStringLiteral("Cleaned filename");
filename = ToxString(cleanFileName); filename = ToxString(cleanFileName);
emit core->fileNameChanged(); emit core->fileNameChanged(friendPk);
} else { } else {
qDebug() << QStringLiteral("filename already clean"); qDebug() << QStringLiteral("filename already clean");
} }

6
src/widget/form/chatform.cpp

@ -234,8 +234,12 @@ void ChatForm::onSendTriggered()
SendMessageStr(msgEdit->toPlainText()); SendMessageStr(msgEdit->toPlainText());
msgEdit->clear(); msgEdit->clear();
} }
void ChatForm::onFileNameChanged() void ChatForm::onFileNameChanged(const ToxPk& friendPk)
{ {
if(friendPk != f->getPublicKey()) {
return;
}
QMessageBox::warning(this, tr("Filename contained illegal characters"), QMessageBox::warning(this, tr("Filename contained illegal characters"),
tr("Illegal characters have been changed to _ \n" tr("Illegal characters have been changed to _ \n"
"so you can save the file on windows.")); "so you can save the file on windows."));

2
src/widget/form/chatform.h

@ -74,7 +74,7 @@ public slots:
void onAvEnd(uint32_t friendId, bool error); void onAvEnd(uint32_t friendId, bool error);
void onAvatarChange(uint32_t friendId, const QPixmap& pic); void onAvatarChange(uint32_t friendId, const QPixmap& pic);
void onAvatarRemoved(uint32_t friendId); void onAvatarRemoved(uint32_t friendId);
void onFileNameChanged(); void onFileNameChanged(const ToxPk& friendPk);
protected slots: protected slots:
void onSearchUp(const QString& phrase) override; void onSearchUp(const QString& phrase) override;

Loading…
Cancel
Save