Skip to content

Commit 08d7d24

Browse files
committed
Adjusted Participant Widget for services
1 parent 2ca193c commit 08d7d24

File tree

3 files changed

+47
-16
lines changed

3 files changed

+47
-16
lines changed

client/resources/stylesheet.qss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,14 @@ QCheckBox::indicator {
488488
height: 32px;
489489
}
490490

491+
QCheckBox:unchecked:!enabled{
492+
color: #e47f7577;
493+
}
494+
495+
QCheckBox:checked:!enabled{
496+
color: rgba(0,255,0,50%);
497+
}
498+
491499
QListView::indicator, QTreeWidget::indicator, QTableWidget::indicator {
492500
width: 20px;
493501
height: 20px;

client/src/editors/ParticipantWidget.cpp

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -395,14 +395,13 @@ void ParticipantWidget::updateServiceTabs()
395395
addServiceTab(service);
396396
}
397397

398-
// Remove tabs not anymore present
399-
/*for(QWidget* tab: std::as_const(m_services_tabs)){
400-
if (!ids_service.contains(m_services_tabs.key(tab))){
401-
ui->tabNav->removeTab(ui->tabNav->indexOf(tab));
402-
tab->deleteLater();
403-
m_services_tabs.remove(m_services_tabs.key(tab));
398+
if (m_services_tabs.count() == 0){
399+
// No config widget (maybe because no widget) - hide tab
400+
int indexTabServices = ui->tabNav->indexOf(ui->tabServices);
401+
if (ui->tabNav->isTabVisible(indexTabServices)){
402+
ui->tabNav->setTabVisible(indexTabServices, false);
404403
}
405-
}*/
404+
}
406405
}
407406

408407
void ParticipantWidget::addServiceTab(const TeraData &service)
@@ -444,8 +443,19 @@ void ParticipantWidget::addServiceTab(const TeraData &service)
444443

445444
void ParticipantWidget::refreshWebAccessUrl()
446445
{
447-
int index = ui->cmbServices->currentIndex();
448-
if (index >= m_services.count() || index <0 || dataIsNew())
446+
if (dataIsNew())
447+
return;
448+
449+
QString service_key = ui->cmbServices->currentData().toString();
450+
int index = -1;
451+
for (int i=0; i<m_services.count(); i++){
452+
if (m_services.at(i).getFieldValue("service_key").toString() == service_key){
453+
index = i;
454+
break;
455+
}
456+
}
457+
458+
if (index < 0)
449459
return;
450460

451461
QString service_url = TeraData::getServiceParticipantUrl(m_services[index],
@@ -505,6 +515,9 @@ void ParticipantWidget::processSessionTypesReply(QList<TeraData> session_types)
505515
}
506516
}
507517

518+
if (ui->cmbSessionType->count() == 0)
519+
ui->cmbSessionType->hide();
520+
508521
// Query sessions for that participant
509522
if (!m_data->isNew()){
510523
// Select current session type based on last session type used with that participant
@@ -596,14 +609,22 @@ void ParticipantWidget::processServicesReply(QList<TeraData> services, QUrlQuery
596609
bool has_email_service = false;
597610
foreach(TeraData service, services){
598611
QString service_key = service.getFieldValue("service_key").toString();
599-
if (service_key != "FileTransferService" && service.getFieldValue("service_has_assets").toBool()){
600-
m_services.append(service);
601-
ui->cmbServices->addItem(service.getName(), service_key);
602-
}else{
603-
m_allowFileTransfers = true; // We have a file transfer service with that project - allow uploads!
604-
ui->wdgSessions->enableFileTransfers(true);
612+
m_services.append(service);
613+
614+
// Web access combo box
615+
if (service.hasFieldName("service_endpoint_participant")){
616+
if (!service.getFieldValue("service_endpoint_participant").isNull()){
617+
// Ignore specific services...
618+
if (service_key != "FileTransferService" && service_key != "ActimetryService" && service_key != "EmailService")
619+
ui->cmbServices->addItem(service.getName(), service_key);
620+
}
605621
}
606622

623+
// Assets
624+
m_allowFileTransfers = service.getFieldValue("service_has_assets").toBool(); // We have a file transfer service with that project - allow uploads!
625+
ui->wdgSessions->enableFileTransfers(m_allowFileTransfers);
626+
627+
// Email
607628
if (service_key == "EmailService"){
608629
has_email_service = true;
609630
}
@@ -629,6 +650,8 @@ void ParticipantWidget::processServicesReply(QList<TeraData> services, QUrlQuery
629650
int default_index = ui->cmbServices->findData("VideoRehabService");
630651
if (default_index>=0)
631652
ui->cmbServices->setCurrentIndex(default_index);
653+
ui->chkWebAccess->setEnabled(ui->cmbServices->count() > 0);
654+
ui->chkLogin->setEnabled(ui->cmbServices->count() > 0);
632655

633656
// Add specific services configuration tabs
634657
updateServiceTabs();

client/src/editors/ParticipantWidget.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ QCalendarWidget QSpinBox::down-arrow { width:16px; height:16px; }
367367
</sizepolicy>
368368
</property>
369369
<property name="currentIndex">
370-
<number>2</number>
370+
<number>0</number>
371371
</property>
372372
<property name="iconSize">
373373
<size>

0 commit comments

Comments
 (0)