mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
more details
This commit is contained in:
parent
34bb83aca7
commit
c1572abedf
29
src/core.cpp
29
src/core.cpp
|
@ -115,11 +115,7 @@ Core::~Core()
|
||||||
if (alInDev)
|
if (alInDev)
|
||||||
alcCaptureCloseDevice(alInDev);
|
alcCaptureCloseDevice(alInDev);
|
||||||
|
|
||||||
if (pwhash)
|
clearPassword();
|
||||||
{
|
|
||||||
delete[] pwhash;
|
|
||||||
pwhash = nullptr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Core* Core::getInstance()
|
Core* Core::getInstance()
|
||||||
|
@ -1124,7 +1120,9 @@ bool Core::loadConfiguration(QString path)
|
||||||
while (error != 0)
|
while (error != 0)
|
||||||
{
|
{
|
||||||
error = tox_encrypted_load(tox, reinterpret_cast<uint8_t *>(data.data()), data.size(), pwhash, TOX_HASH_LENGTH);
|
error = tox_encrypted_load(tox, reinterpret_cast<uint8_t *>(data.data()), data.size(), pwhash, TOX_HASH_LENGTH);
|
||||||
// something something QInputDialog new password
|
emit blockingGetPassword();
|
||||||
|
if (!pwhash)
|
||||||
|
// we need a way to start core without any profile
|
||||||
} */
|
} */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1155,22 +1153,18 @@ void Core::saveConfiguration()
|
||||||
}
|
}
|
||||||
|
|
||||||
QString profile = Settings::getInstance().getCurrentProfile();
|
QString profile = Settings::getInstance().getCurrentProfile();
|
||||||
//qDebug() << "saveConf read profile: " << profile;
|
|
||||||
if (profile == "")
|
if (profile == "")
|
||||||
{ // no profile active; this should only happen on startup, if at all
|
{ // no profile active; this should only happen on startup, if at all
|
||||||
profile = sanitize(getUsername());
|
profile = sanitize(getUsername());
|
||||||
|
|
||||||
if (profile == "") // happens on creation of a new Tox ID
|
if (profile == "") // happens on creation of a new Tox ID
|
||||||
profile = getIDString();
|
profile = getIDString();
|
||||||
//qDebug() << "saveConf: read sanitized user as " << profile;
|
|
||||||
Settings::getInstance().setCurrentProfile(profile);
|
Settings::getInstance().setCurrentProfile(profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString path = dir + QDir::separator() + profile + TOX_EXT;
|
QString path = directory.filePath(profile + TOX_EXT);
|
||||||
QFileInfo info(path);
|
|
||||||
// if (!info.exists()) // fall back to old school 'data'
|
|
||||||
// { //path = dir + QDir::separator() + CONFIG_FILE_NAME;
|
|
||||||
// qDebug() << "Core:" << path << " does not exist";
|
|
||||||
// }
|
|
||||||
|
|
||||||
saveConfiguration(path);
|
saveConfiguration(path);
|
||||||
}
|
}
|
||||||
|
@ -1204,6 +1198,10 @@ void Core::saveConfiguration(const QString& path)
|
||||||
|
|
||||||
if (Settings::getInstance().getEncryptTox())
|
if (Settings::getInstance().getEncryptTox())
|
||||||
{
|
{
|
||||||
|
if (!pwhash)
|
||||||
|
emit blockingGetPassword();
|
||||||
|
//if (!pwhash)
|
||||||
|
// revert to unsaved...? or maybe we shouldn't even try to get a pw from here ^
|
||||||
int ret = tox_encrypted_save(tox, data, pwhash, TOX_HASH_LENGTH);
|
int ret = tox_encrypted_save(tox, data, pwhash, TOX_HASH_LENGTH);
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
{
|
{
|
||||||
|
@ -1229,8 +1227,9 @@ void Core::switchConfiguration(const QString& profile)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
qDebug() << "Core: switching from" << Settings::getInstance().getCurrentProfile() << "to" << profile;
|
qDebug() << "Core: switching from" << Settings::getInstance().getCurrentProfile() << "to" << profile;
|
||||||
saveConfiguration();
|
|
||||||
|
|
||||||
|
saveConfiguration();
|
||||||
|
clearPassword();
|
||||||
toxTimer->stop();
|
toxTimer->stop();
|
||||||
|
|
||||||
if (tox) {
|
if (tox) {
|
||||||
|
|
|
@ -115,6 +115,7 @@ signals:
|
||||||
void connected();
|
void connected();
|
||||||
void disconnected();
|
void disconnected();
|
||||||
void blockingClearContacts();
|
void blockingClearContacts();
|
||||||
|
void blockingGetPassword();
|
||||||
|
|
||||||
void friendRequestReceived(const QString& userId, const QString& message);
|
void friendRequestReceived(const QString& userId, const QString& message);
|
||||||
void friendMessageReceived(int friendId, const QString& message, bool isAction);
|
void friendMessageReceived(int friendId, const QString& message, bool isAction);
|
||||||
|
|
|
@ -147,6 +147,7 @@ Widget::Widget(QWidget *parent)
|
||||||
connect(core, &Core::emptyGroupCreated, this, &Widget::onEmptyGroupCreated);
|
connect(core, &Core::emptyGroupCreated, this, &Widget::onEmptyGroupCreated);
|
||||||
connect(core, &Core::avInvite, this, &Widget::playRingtone);
|
connect(core, &Core::avInvite, this, &Widget::playRingtone);
|
||||||
connect(core, &Core::blockingClearContacts, this, &Widget::clearContactsList, Qt::BlockingQueuedConnection);
|
connect(core, &Core::blockingClearContacts, this, &Widget::clearContactsList, Qt::BlockingQueuedConnection);
|
||||||
|
connect(core, &Core::blockingGetPassword, this, &Widget::getPassword, Qt::BlockingQueuedConnection);
|
||||||
|
|
||||||
connect(core, SIGNAL(messageSentResult(int,QString,int)), this, SLOT(onMessageSendResult(int,QString,int)));
|
connect(core, SIGNAL(messageSentResult(int,QString,int)), this, SLOT(onMessageSendResult(int,QString,int)));
|
||||||
connect(core, SIGNAL(groupSentResult(int,QString,int)), this, SLOT(onGroupSendResult(int,QString,int)));
|
connect(core, SIGNAL(groupSentResult(int,QString,int)), this, SLOT(onGroupSendResult(int,QString,int)));
|
||||||
|
@ -830,3 +831,12 @@ void Widget::onGroupSendResult(int groupId, const QString& message, int result)
|
||||||
if (result == -1)
|
if (result == -1)
|
||||||
g->chatForm->addSystemInfoMessage("Message failed to send", "red");
|
g->chatForm->addSystemInfoMessage("Message failed to send", "red");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Widget::getPassword()
|
||||||
|
{
|
||||||
|
//QString password = QInputDialog();
|
||||||
|
//if (password.isEmpty())
|
||||||
|
// core->clearPassword();
|
||||||
|
//else
|
||||||
|
// core->setPassword(password);
|
||||||
|
}
|
||||||
|
|
|
@ -57,7 +57,6 @@ public:
|
||||||
bool isFriendWidgetCurActiveWidget(Friend* f);
|
bool isFriendWidgetCurActiveWidget(Friend* f);
|
||||||
bool getIsWindowMinimized();
|
bool getIsWindowMinimized();
|
||||||
static QList<QString> searchProfiles();
|
static QList<QString> searchProfiles();
|
||||||
void clearContactsList();
|
|
||||||
~Widget();
|
~Widget();
|
||||||
|
|
||||||
virtual void closeEvent(QCloseEvent *event);
|
virtual void closeEvent(QCloseEvent *event);
|
||||||
|
@ -109,6 +108,8 @@ private slots:
|
||||||
void onGroupSendResult(int groupId, const QString& message, int result);
|
void onGroupSendResult(int groupId, const QString& message, int result);
|
||||||
void playRingtone();
|
void playRingtone();
|
||||||
void onIconClick();
|
void onIconClick();
|
||||||
|
void clearContactsList();
|
||||||
|
void getPassword();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void hideMainForms();
|
void hideMainForms();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user