1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

disable switching buttons during calls

fixes #436, fixes #500
(well, "fixes" by preventing users from doing dumb things)
This commit is contained in:
dubslow 2014-10-23 07:41:47 -05:00
parent 57a995117f
commit 576fd7269e
4 changed files with 40 additions and 4 deletions

View File

@ -128,8 +128,8 @@ void Core::answerCall(int callId)
void Core::hangupCall(int callId)
{
qDebug() << QString("Core: hanging up call %1").arg(callId);
calls[callId].active = false;
toxav_hangup(toxav, callId);
calls[callId].active = false;
}
void Core::startCall(int friendId, bool video)
@ -157,20 +157,20 @@ void Core::startCall(int friendId, bool video)
void Core::cancelCall(int callId, int friendId)
{
qDebug() << QString("Core: Cancelling call with %1").arg(friendId);
calls[callId].active = false;
toxav_cancel(toxav, callId, friendId, 0);
calls[callId].active = false;
}
void Core::cleanupCall(int callId)
{
qDebug() << QString("Core: cleaning up call %1").arg(callId);
calls[callId].active = false;
disconnect(calls[callId].sendAudioTimer,0,0,0);
calls[callId].sendAudioTimer->stop();
calls[callId].sendVideoTimer->stop();
if (calls[callId].videoEnabled)
Camera::getInstance()->unsubscribe();
alcCaptureStop(alInDev);
calls[callId].active = false;
}
void Core::playCallAudio(ToxAv* toxav, int32_t callId, int16_t *data, int samples, void *user_data)

View File

@ -36,6 +36,7 @@ IdentityForm::IdentityForm() :
{
bodyUI = new Ui::IdentitySettings;
bodyUI->setupUi(this);
core = Core::getInstance();
// tox
toxId = new ClickableTE();
@ -47,7 +48,7 @@ IdentityForm::IdentityForm() :
connect(bodyUI->toxIdLabel, SIGNAL(clicked()), this, SLOT(copyIdClicked()));
connect(toxId, SIGNAL(clicked()), this, SLOT(copyIdClicked()));
connect(Core::getInstance(), &Core::idSet, this, &IdentityForm::setToxId);
connect(core, &Core::idSet, this, &IdentityForm::setToxId);
connect(bodyUI->userName, SIGNAL(editingFinished()), this, SLOT(onUserNameEdited()));
connect(bodyUI->statusMessage, SIGNAL(editingFinished()), this, SLOT(onStatusMessageEdited()));
connect(bodyUI->loadButton, &QPushButton::clicked, this, &IdentityForm::onLoadClicked);
@ -57,6 +58,16 @@ IdentityForm::IdentityForm() :
connect(bodyUI->importButton, &QPushButton::clicked, this, &IdentityForm::onImportClicked);
connect(bodyUI->newButton, &QPushButton::clicked, this, &IdentityForm::onNewClicked);
connect(core, &Core::avStart, this, &IdentityForm::disableSwitching);
connect(core, &Core::avStarting, this, &IdentityForm::disableSwitching);
connect(core, &Core::avInvite, this, &IdentityForm::disableSwitching);
connect(core, &Core::avRinging, this, &IdentityForm::disableSwitching);
connect(core, &Core::avCancel, this, &IdentityForm::enableSwitching);
connect(core, &Core::avEnd, this, &IdentityForm::enableSwitching);
connect(core, &Core::avEnding, this, &IdentityForm::enableSwitching);
connect(core, &Core::avPeerTimeout, this, &IdentityForm::enableSwitching);
connect(core, &Core::avRequestTimeout, this, &IdentityForm::enableSwitching);
connect(Core::getInstance(), &Core::usernameSet, this, [=](const QString& val) { bodyUI->userName->setText(val); });
connect(Core::getInstance(), &Core::statusMessageSet, this, [=](const QString& val) { bodyUI->statusMessage->setText(val); });
}
@ -203,3 +214,18 @@ bool IdentityForm::checkContinue(const QString& title, const QString& msg)
QMessageBox::StandardButton resp = QMessageBox::question(this, title, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
return resp == QMessageBox::Yes;
}
void IdentityForm::disableSwitching()
{
bodyUI->loadButton->setEnabled(false);
bodyUI->newButton->setEnabled(false);
}
void IdentityForm::enableSwitching()
{
if (!core->anyActiveCalls())
{
bodyUI->loadButton->setEnabled(true);
bodyUI->newButton->setEnabled(true);
}
}

View File

@ -24,6 +24,7 @@
#include <QLabel>
class CroppingLabel;
class Core;
namespace Ui {
class IdentitySettings;
@ -65,9 +66,12 @@ private slots:
void onImportClicked();
void onNewClicked();
bool checkContinue(const QString& title, const QString& msg);
void disableSwitching();
void enableSwitching();
private:
Ui::IdentitySettings* bodyUI;
Core* core;
ClickableTE* toxId;
};

View File

@ -114,6 +114,9 @@
<property name="text">
<string comment="load profile button">Load</string>
</property>
<property name="toolTip">
<string comment="tooltip">Switching profiles is disabled during calls</string>
</property>
</widget>
</item>
<item>
@ -156,6 +159,9 @@
<property name="text">
<string comment="new profile button">New Tox ID</string>
</property>
<property name="toolTip">
<string comment="tooltip">Switching profiles is disabled during calls</string>
</property>
</widget>
</item>
</layout>