Added add/remove group from callsign list and it propagate to the settings
This commit is contained in:
parent
d88d8aa440
commit
565c031b28
@ -945,6 +945,20 @@ QSet<QString> Configuration::my_groups() const {
|
|||||||
return QSet<QString>::fromList(m_->my_groups_);
|
return QSet<QString>::fromList(m_->my_groups_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Configuration::addGroup(QString const &group){
|
||||||
|
QSet<QString> groups = my_groups();
|
||||||
|
groups.insert(group.trimmed());
|
||||||
|
m_->my_groups_ = groups.toList();
|
||||||
|
m_->write_settings();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Configuration::removeGroup(QString const &group){
|
||||||
|
QSet<QString> groups = my_groups();
|
||||||
|
groups.remove(group.trimmed());
|
||||||
|
m_->my_groups_ = groups.toList();
|
||||||
|
m_->write_settings();
|
||||||
|
}
|
||||||
|
|
||||||
QString Configuration::my_qth() const
|
QString Configuration::my_qth() const
|
||||||
{
|
{
|
||||||
return m_->my_qth_.trimmed();
|
return m_->my_qth_.trimmed();
|
||||||
|
@ -99,6 +99,8 @@ public:
|
|||||||
QString my_grid () const;
|
QString my_grid () const;
|
||||||
QString my_station () const;
|
QString my_station () const;
|
||||||
QSet<QString> my_groups() const;
|
QSet<QString> my_groups() const;
|
||||||
|
void addGroup(QString const &group);
|
||||||
|
void removeGroup(QString const &group);
|
||||||
int activity_aging() const;
|
int activity_aging() const;
|
||||||
int callsign_aging() const;
|
int callsign_aging() const;
|
||||||
QString my_qth () const;
|
QString my_qth () const;
|
||||||
|
@ -1294,29 +1294,41 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
auto clearAction4 = new QAction(QString("Clear"), ui->tableWidgetCalls);
|
auto clearAction4 = new QAction(QString("Clear"), ui->tableWidgetCalls);
|
||||||
connect(clearAction4, &QAction::triggered, this, [this](){ this->on_clearAction_triggered(ui->tableWidgetCalls); });
|
connect(clearAction4, &QAction::triggered, this, [this](){ this->on_clearAction_triggered(ui->tableWidgetCalls); });
|
||||||
|
|
||||||
auto addStation = new QAction(QString("Add New Station.."), ui->tableWidgetCalls);
|
auto addStation = new QAction(QString("Add New Station or Group..."), ui->tableWidgetCalls);
|
||||||
connect(addStation, &QAction::triggered, this, [this](){
|
connect(addStation, &QAction::triggered, this, [this](){
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
QString callsign = QInputDialog::getText(this, tr("Add New Station..."),
|
QString callsign = QInputDialog::getText(this, tr("Add New Station or Group..."),
|
||||||
tr("Station Callsign:"), QLineEdit::Normal,
|
tr("Station or Group Callsign:"), QLineEdit::Normal,
|
||||||
"", &ok).toUpper().trimmed();
|
"", &ok).toUpper().trimmed();
|
||||||
if(!ok || callsign.isEmpty()){
|
if(!ok || callsign.trimmed().isEmpty()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(callsign.startsWith("@")){
|
||||||
|
m_config.addGroup(callsign);
|
||||||
|
} else {
|
||||||
CallDetail cd = {};
|
CallDetail cd = {};
|
||||||
cd.call = callsign;
|
cd.call = callsign;
|
||||||
m_callActivity[callsign] = cd;
|
m_callActivity[callsign] = cd;
|
||||||
|
}
|
||||||
|
|
||||||
displayActivity(true);
|
displayActivity(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
auto removeStation = new QAction(QString("Remove Station"), ui->tableWidgetCalls);
|
auto removeStation = new QAction(QString("Remove Station"), ui->tableWidgetCalls);
|
||||||
connect(removeStation, &QAction::triggered, this, [this](){
|
connect(removeStation, &QAction::triggered, this, [this](){
|
||||||
QString selectedCall = callsignSelected();
|
QString selectedCall = callsignSelected();
|
||||||
if(!selectedCall.isEmpty() && m_callActivity.contains(selectedCall)){
|
if(selectedCall.isEmpty()){
|
||||||
m_callActivity.remove(selectedCall);
|
return;
|
||||||
displayActivity(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (selectedCall.startsWith("@")){
|
||||||
|
m_config.removeGroup(selectedCall);
|
||||||
|
} else if(m_callActivity.contains(selectedCall)){
|
||||||
|
m_callActivity.remove(selectedCall);
|
||||||
|
}
|
||||||
|
|
||||||
|
displayActivity(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -1369,6 +1381,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
|
|
||||||
menu->addAction(addStation);
|
menu->addAction(addStation);
|
||||||
removeStation->setDisabled(missingCallsign || isAllCall);
|
removeStation->setDisabled(missingCallsign || isAllCall);
|
||||||
|
removeStation->setText(selectedCall.startsWith("@") ? "Remove Group" : "Remove Station");
|
||||||
menu->addAction(removeStation);
|
menu->addAction(removeStation);
|
||||||
|
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
@ -5213,6 +5226,9 @@ void MainWindow::createAllcallTableRows(QTableWidget *table, QString const &sele
|
|||||||
table->insertRow(table->rowCount());
|
table->insertRow(table->rowCount());
|
||||||
|
|
||||||
foreach(auto cd, m_callActivity.values()){
|
foreach(auto cd, m_callActivity.values()){
|
||||||
|
if (cd.call.trimmed().isEmpty()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (callsignAging && cd.utcTimestamp.secsTo(now) / 60 >= callsignAging) {
|
if (callsignAging && cd.utcTimestamp.secsTo(now) / 60 >= callsignAging) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -9764,6 +9780,9 @@ void MainWindow::displayCallActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CallDetail d = m_callActivity[call];
|
CallDetail d = m_callActivity[call];
|
||||||
|
if(d.call.trimmed().isEmpty()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
bool isCallSelected = (call == selectedCall);
|
bool isCallSelected = (call == selectedCall);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user