Skip to content
Snippets Groups Projects
Commit d84219c6 authored by Albert  Babí Oller's avatar Albert Babí Oller Committed by Andreas Traczyk
Browse files

misc: revise and catch exceptions thrown from lrc

Change-Id: I0e28f20ecb017267e74ef76fb922443e15e896e8
Gitlab: #308
parent dfbcfe03
Branches
Tags
No related merge requests found
...@@ -49,6 +49,7 @@ BannedListModel::columnCount(const QModelIndex& parent) const ...@@ -49,6 +49,7 @@ BannedListModel::columnCount(const QModelIndex& parent) const
QVariant QVariant
BannedListModel::data(const QModelIndex& index, int role) const BannedListModel::data(const QModelIndex& index, int role) const
{ {
try {
auto contactList = lrcInstance_->getCurrentAccountInfo().contactModel->getBannedContacts(); auto contactList = lrcInstance_->getCurrentAccountInfo().contactModel->getBannedContacts();
if (!index.isValid() || contactList.size() <= index.row()) { if (!index.isValid() || contactList.size() <= index.row()) {
return QVariant(); return QVariant();
...@@ -63,6 +64,9 @@ BannedListModel::data(const QModelIndex& index, int role) const ...@@ -63,6 +64,9 @@ BannedListModel::data(const QModelIndex& index, int role) const
case Role::ContactID: case Role::ContactID:
return QVariant(contactInfo.profileInfo.uri); return QVariant(contactInfo.profileInfo.uri);
} }
} catch (const std::out_of_range& e) {
qDebug() << e.what();
}
return QVariant(); return QVariant();
} }
......
...@@ -91,9 +91,13 @@ ConversationsAdapter::selectConversation(const QString& accountId, const QString ...@@ -91,9 +91,13 @@ ConversationsAdapter::selectConversation(const QString& accountId, const QString
lrcInstance_->setSelectedConvId(convInfo.uid); lrcInstance_->setSelectedConvId(convInfo.uid);
accInfo.conversationModel->clearUnreadInteractions(convInfo.uid); accInfo.conversationModel->clearUnreadInteractions(convInfo.uid);
try {
// Set contact filter (for conversation tab selection) // Set contact filter (for conversation tab selection)
auto& contact = accInfo.contactModel->getContact(convInfo.participants.front()); auto& contact = accInfo.contactModel->getContact(convInfo.participants.front());
setProperty("currentTypeFilter", QVariant::fromValue(contact.profileInfo.type)); setProperty("currentTypeFilter", QVariant::fromValue(contact.profileInfo.type));
} catch (const std::out_of_range& e) {
qDebug() << e.what();
}
}; };
if (convInfo.accountId != lrcInstance_->getCurrAccId()) { if (convInfo.accountId != lrcInstance_->getCurrAccId()) {
Utils::oneShotConnect(lrcInstance_, Utils::oneShotConnect(lrcInstance_,
......
...@@ -50,6 +50,7 @@ ModeratorListModel::columnCount(const QModelIndex& parent) const ...@@ -50,6 +50,7 @@ ModeratorListModel::columnCount(const QModelIndex& parent) const
QVariant QVariant
ModeratorListModel::data(const QModelIndex& index, int role) const ModeratorListModel::data(const QModelIndex& index, int role) const
{ {
try {
QStringList list = lrcInstance_->accountModel().getDefaultModerators( QStringList list = lrcInstance_->accountModel().getDefaultModerators(
lrcInstance_->getCurrAccId()); lrcInstance_->getCurrAccId());
if (!index.isValid() || list.size() <= index.row()) { if (!index.isValid() || list.size() <= index.row()) {
...@@ -60,13 +61,16 @@ ModeratorListModel::data(const QModelIndex& index, int role) const ...@@ -60,13 +61,16 @@ ModeratorListModel::data(const QModelIndex& index, int role) const
switch (role) { switch (role) {
case Role::ContactName: { case Role::ContactName: {
QString str = lrcInstance_->getCurrentAccountInfo().contactModel->bestNameForContact( QString str = lrcInstance_->getCurrentAccountInfo().contactModel->
list.at(index.row())); bestNameForContact(list.at(index.row()));
return QVariant(str); return QVariant(str);
} }
case Role::ContactID: case Role::ContactID:
return QVariant(contactInfo.profileInfo.uri); return QVariant(contactInfo.profileInfo.uri);
} }
} catch (const std::exception& e) {
qDebug() << e.what();
}
return QVariant(); return QVariant();
} }
......
...@@ -935,8 +935,12 @@ SettingsAdapter::unbanContact(int index) ...@@ -935,8 +935,12 @@ SettingsAdapter::unbanContact(int index)
auto it = bannedContactList.begin(); auto it = bannedContactList.begin();
std::advance(it, index); std::advance(it, index);
try {
auto contactInfo = accountInfo.contactModel->getContact(*it); auto contactInfo = accountInfo.contactModel->getContact(*it);
accountInfo.contactModel->addContact(contactInfo); accountInfo.contactModel->addContact(contactInfo);
} catch (const std::out_of_range& e) {
qDebug() << e.what();
}
} }
void void
......
...@@ -96,10 +96,10 @@ ColumnLayout { ...@@ -96,10 +96,10 @@ ColumnLayout {
function setFormatListForCurrentDevice() { function setFormatListForCurrentDevice() {
var device = AVModel.getCurrentVideoCaptureDevice() var device = AVModel.getCurrentVideoCaptureDevice()
try {
if (SettingsAdapter.get_DeviceCapabilitiesSize(device) === 0) if (SettingsAdapter.get_DeviceCapabilitiesSize(device) === 0)
return return
try {
resolutionComboBoxSetting.comboModel.reset() resolutionComboBoxSetting.comboModel.reset()
resolutionComboBoxSetting.setCurrentIndex( resolutionComboBoxSetting.setCurrentIndex(
resolutionComboBoxSetting.comboModel.getCurrentSettingIndex(), true) resolutionComboBoxSetting.comboModel.getCurrentSettingIndex(), true)
......
...@@ -352,7 +352,8 @@ Utils::contactPhoto(LRCInstance* instance, const QString& contactUri, const QSiz ...@@ -352,7 +352,8 @@ Utils::contactPhoto(LRCInstance* instance, const QString& contactUri, const QSiz
auto avatarName = contactInfo.profileInfo.uri == bestName ? QString() : bestName; auto avatarName = contactInfo.profileInfo.uri == bestName ? QString() : bestName;
photo = Utils::fallbackAvatar("ring:" + contactInfo.profileInfo.uri, avatarName); photo = Utils::fallbackAvatar("ring:" + contactInfo.profileInfo.uri, avatarName);
} }
} catch (...) { } catch (const std::exception& e) {
qDebug() << e.what();
} }
return Utils::scaleAndFrame(photo, size); return Utils::scaleAndFrame(photo, size);
} }
...@@ -506,7 +507,8 @@ Utils::profileType(const lrc::api::conversation::Info& conv, ...@@ -506,7 +507,8 @@ Utils::profileType(const lrc::api::conversation::Info& conv,
try { try {
auto contact = model.owner.contactModel->getContact(conv.participants[0]); auto contact = model.owner.contactModel->getContact(conv.participants[0]);
return contact.profileInfo.type; return contact.profileInfo.type;
} catch (...) { } catch (const std::out_of_range& e) {
qDebug() << e.what();
return lrc::api::profile::Type::INVALID; return lrc::api::profile::Type::INVALID;
} }
} }
...@@ -539,12 +541,17 @@ Utils::isInteractionGenerated(const lrc::api::interaction::Type& type) ...@@ -539,12 +541,17 @@ Utils::isInteractionGenerated(const lrc::api::interaction::Type& type)
bool bool
Utils::isContactValid(const QString& contactUid, const lrc::api::ConversationModel& model) Utils::isContactValid(const QString& contactUid, const lrc::api::ConversationModel& model)
{ {
try {
const auto contact = model.owner.contactModel->getContact(contactUid); const auto contact = model.owner.contactModel->getContact(contactUid);
return (contact.profileInfo.type == lrc::api::profile::Type::PENDING return (contact.profileInfo.type == lrc::api::profile::Type::PENDING
|| contact.profileInfo.type == lrc::api::profile::Type::TEMPORARY || contact.profileInfo.type == lrc::api::profile::Type::TEMPORARY
|| contact.profileInfo.type == lrc::api::profile::Type::RING || contact.profileInfo.type == lrc::api::profile::Type::RING
|| contact.profileInfo.type == lrc::api::profile::Type::SIP) || contact.profileInfo.type == lrc::api::profile::Type::SIP)
&& !contact.profileInfo.uri.isEmpty(); && !contact.profileInfo.uri.isEmpty();
} catch (const std::out_of_range& e) {
qDebug() << e.what();
return false;
}
} }
bool bool
......
...@@ -113,9 +113,14 @@ UtilsAdapter::getBestName(const QString& accountId, const QString& uid) ...@@ -113,9 +113,14 @@ UtilsAdapter::getBestName(const QString& accountId, const QString& uid)
const QString const QString
UtilsAdapter::getPeerUri(const QString& accountId, const QString& uid) UtilsAdapter::getPeerUri(const QString& accountId, const QString& uid)
{ {
try {
auto* convModel = lrcInstance_->getAccountInfo(accountId).conversationModel.get(); auto* convModel = lrcInstance_->getAccountInfo(accountId).conversationModel.get();
const auto& convInfo = convModel->getConversationForUid(uid).value(); const auto& convInfo = convModel->getConversationForUid(uid).value();
return convInfo.get().participants.front(); return convInfo.get().participants.front();
} catch (const std::out_of_range& e) {
qDebug() << e.what();
return "";
}
} }
QString QString
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment