Fixed issue with button and text display in the gui event loop

This commit is contained in:
Jordan Sherer 2018-10-10 17:43:11 -04:00
parent a30bff5589
commit 4744952a1a
2 changed files with 19 additions and 7 deletions

View File

@ -4538,6 +4538,8 @@ void MainWindow::guiUpdate()
// once processed, lets update the display... // once processed, lets update the display...
displayActivity(forceDirty); displayActivity(forceDirty);
updateButtonDisplay();
updateTextDisplay();
} }
// once per 100ms // once per 100ms
@ -5438,6 +5440,10 @@ void MainWindow::on_extFreeTextMsgEdit_currentTextChanged (QString const& text)
} }
m_txTextDirty = true; m_txTextDirty = true;
// immediately update the display
updateButtonDisplay();
updateTextDisplay();
} }
int MainWindow::currentFreqOffset(){ int MainWindow::currentFreqOffset(){
@ -6973,7 +6979,9 @@ void MainWindow::on_tableWidgetRXAll_selectionChanged(const QItemSelection &/*se
} }
ui->extFreeTextMsgEdit->setPlaceholderText(placeholderText); ui->extFreeTextMsgEdit->setPlaceholderText(placeholderText);
// immediately update the display);
updateButtonDisplay(); updateButtonDisplay();
updateTextDisplay();
} }
void MainWindow::on_tableWidgetCalls_cellClicked(int /*row*/, int /*col*/){ void MainWindow::on_tableWidgetCalls_cellClicked(int /*row*/, int /*col*/){
@ -7922,19 +7930,15 @@ void MainWindow::postDecode (bool is_new, QString const& message)
} }
void MainWindow::displayTransmit(){ void MainWindow::displayTransmit(){
updateButtonDisplay(); // Transmit Activity
update_dynamic_property (ui->startTxButton, "transmitting", m_transmitting);
} }
void MainWindow::updateButtonDisplay(){ void MainWindow::updateButtonDisplay(){
bool isTransmitting = m_transmitting || m_txFrameCount > 0; bool isTransmitting = m_transmitting || m_txFrameCount > 0;
// Transmit Activity
update_dynamic_property (ui->startTxButton, "transmitting", m_transmitting);
auto selectedCallsign = callsignSelected(true); auto selectedCallsign = callsignSelected(true);
bool emptyCallsign = selectedCallsign.isEmpty(); bool emptyCallsign = selectedCallsign.isEmpty();
bool emptyText = ui->extFreeTextMsgEdit->toPlainText().isEmpty();
bool invalidSelcal = !ensureSelcalCallsignSelected(false);
ui->cqMacroButton->setDisabled(isTransmitting); ui->cqMacroButton->setDisabled(isTransmitting);
ui->replyMacroButton->setDisabled(isTransmitting || emptyCallsign); ui->replyMacroButton->setDisabled(isTransmitting || emptyCallsign);
@ -7944,6 +7948,13 @@ void MainWindow::updateButtonDisplay(){
ui->queryButton->setDisabled(isTransmitting || emptyCallsign); ui->queryButton->setDisabled(isTransmitting || emptyCallsign);
ui->deselectButton->setDisabled(isTransmitting || emptyCallsign); ui->deselectButton->setDisabled(isTransmitting || emptyCallsign);
ui->queryButton->setText(emptyCallsign ? "Directed" : QString("Directed to %1").arg(selectedCallsign)); ui->queryButton->setText(emptyCallsign ? "Directed" : QString("Directed to %1").arg(selectedCallsign));
}
void MainWindow::updateTextDisplay(){
bool isTransmitting = m_transmitting || m_txFrameCount > 0;
bool emptyText = ui->extFreeTextMsgEdit->toPlainText().isEmpty();
bool invalidSelcal = !ensureSelcalCallsignSelected(false);
ui->startTxButton->setDisabled(isTransmitting || emptyText || invalidSelcal); ui->startTxButton->setDisabled(isTransmitting || emptyText || invalidSelcal);
if(m_txTextDirty){ if(m_txTextDirty){
@ -7951,6 +7962,7 @@ void MainWindow::updateButtonDisplay(){
if(m_txTextDirtyDebounce.isActive()){ if(m_txTextDirtyDebounce.isActive()){
m_txTextDirtyDebounce.stop(); m_txTextDirtyDebounce.stop();
} }
m_txTextDirtyDebounce.setSingleShot(true);
m_txTextDirtyDebounce.start(100); m_txTextDirtyDebounce.start(100);
m_txTextDirty = false; m_txTextDirty = false;
} }
@ -10107,7 +10119,6 @@ void MainWindow::tx_watchdog (bool triggered)
tx_status_label.setStyleSheet ("QLabel{background-color: #ff0000}"); tx_status_label.setStyleSheet ("QLabel{background-color: #ff0000}");
tx_status_label.setText ("Idle watchdog"); tx_status_label.setText ("Idle watchdog");
//QApplication::alert (this);
MessageBox::warning_message(this, QString("You have been idle for more than %1 minutes.").arg(m_config.watchdog())); MessageBox::warning_message(this, QString("You have been idle for more than %1 minutes.").arg(m_config.watchdog()));
} }

View File

@ -879,6 +879,7 @@ private:
void postDecode (bool is_new, QString const& message); void postDecode (bool is_new, QString const& message);
void displayTransmit(); void displayTransmit();
void updateButtonDisplay(); void updateButtonDisplay();
void updateTextDisplay();
void updateFrameCountEstimate(int count); void updateFrameCountEstimate(int count);
void updateTextStatsDisplay(QString text, int count); void updateTextStatsDisplay(QString text, int count);
void updateTxButtonDisplay(); void updateTxButtonDisplay();