From fe1509c94b84dfd584dd28b9f7f58d99eea37f2f Mon Sep 17 00:00:00 2001 From: Jordan Sherer Date: Thu, 20 Sep 2018 10:46:04 -0400 Subject: [PATCH] Renamed macros to saved messages. Added menu and buttons for quick access to all messages configured --- Configuration.ui | 180 +++++++++++++++++++++++------------------------ mainwindow.cpp | 57 ++++++++++----- mainwindow.h | 2 + mainwindow.ui | 42 +++++++++-- 4 files changed, 170 insertions(+), 111 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index 128fdad..884eb97 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -6,7 +6,7 @@ 0 0 - 692 + 750 735 @@ -1573,7 +1573,7 @@ radio interface behave as expected. - A&udio + &Audio Audio interface settings @@ -1844,88 +1844,6 @@ both here. - - - Tx &Macros - - - Canned free text messages setup - - - - - - &Add - - - - - - - - - - &Delete - - - - - - - Qt::ActionsContextMenu - - - Drag and drop items to rearrange order -Right click for item specific actions -Click, SHIFT+Click and, CRTL+Click to select items - - - QListView { - show-decoration-selected: 1; /* make the selection span the entire width of the view */ -} - -QListView::item:alternate { - background: #EEEEEE; -} - -QListView::item:selected { - border: 1px solid #6a6ea9; -} - -QListView::item:selected:!active { - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, - stop: 0 #ABAFE5, stop: 1 #8588B2); -} - -QListView::item:selected:active { - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, - stop: 0 #6a6ea9, stop: 1 #888dd9); -} - -QListView::item:hover { - background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, - stop: 0 #FAFBFE, stop: 1 #DCDEF1); -} - - - QAbstractItemView::InternalMove - - - Qt::MoveAction - - - true - - - QAbstractItemView::ExtendedSelection - - - true - - - - - Reportin&g @@ -2340,7 +2258,7 @@ for assessing propagation and system performance. - Frequencies + &Frequencies Default frequencies and band specific station details setup @@ -2572,9 +2490,91 @@ Right click for insert and delete options. + + + Saved &Messages + + + Canned free text messages setup + + + + + + &Add + + + + + + + + + + &Delete + + + + + + + Qt::ActionsContextMenu + + + Drag and drop items to rearrange order +Right click for item specific actions +Click, SHIFT+Click and, CRTL+Click to select items + + + QListView { + show-decoration-selected: 1; /* make the selection span the entire width of the view */ +} + +QListView::item:alternate { + background: #EEEEEE; +} + +QListView::item:selected { + border: 1px solid #6a6ea9; +} + +QListView::item:selected:!active { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #ABAFE5, stop: 1 #8588B2); +} + +QListView::item:selected:active { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #6a6ea9, stop: 1 #888dd9); +} + +QListView::item:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #FAFBFE, stop: 1 #DCDEF1); +} + + + QAbstractItemView::InternalMove + + + Qt::MoveAction + + + true + + + QAbstractItemView::ExtendedSelection + + + true + + + + + - Notifications + &Notifications @@ -2724,7 +2724,7 @@ Right click for insert and delete options. - UI + &UI @@ -3690,11 +3690,11 @@ soundcard changes - - - + + + diff --git a/mainwindow.cpp b/mainwindow.cpp index 2590b7d..1e2cda8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1205,6 +1205,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, restoreAction->setDisabled(m_lastTxMessage.isEmpty()); menu->addAction(restoreAction); + auto savedMenu = menu->addMenu("Saved messages..."); + buildSavedMessagesMenu(savedMenu); + auto relayMenu = menu->addMenu("Relay via..."); relayMenu->setDisabled(ui->extFreeTextMsgEdit->toPlainText().isEmpty() || m_callActivity.isEmpty()); buildRelayMenu(relayMenu); @@ -7544,6 +7547,14 @@ void MainWindow::on_qthMacroButton_clicked(){ addMessageText(QString("QTH %1").arg(qth)); } +void MainWindow::on_qtcMacroButton_clicked(){ + QString qtc = m_config.my_station(); + if(qtc.isEmpty()){ + return; + } + addMessageText(QString("QTC %1").arg(qtc)); +} + void MainWindow::setSortBy(QString key, QString value){ m_sortCache[key] = QVariant(value); displayBandActivity(); @@ -7981,6 +7992,33 @@ void MainWindow::buildEditMenu(QMenu *menu, QTextEdit *edit){ connect(paste, &QAction::triggered, edit, &QTextEdit::paste); } +void MainWindow::buildSavedMessagesMenu(QMenu *menu){ + foreach(QString macro, m_config.macros()->stringList()){ + QAction *action = menu->addAction(macro); + connect(action, &QAction::triggered, this, [this, macro](){ addMessageText(macro); }); + } + + menu->addSeparator(); + + auto editAction = new QAction(QIcon::fromTheme("edit-edit"), QString("&Edit Saved Messages"), menu); + menu->addAction(editAction); + connect(editAction, &QAction::triggered, this, [this](){ + openSettings(5); + }); + + auto saveAction = new QAction(QString("&Save Current Message"), menu); + saveAction->setDisabled(ui->extFreeTextMsgEdit->toPlainText().isEmpty()); + menu->addAction(saveAction); + connect(saveAction, &QAction::triggered, this, [this](){ + auto macros = m_config.macros(); + if(macros->insertRow(macros->rowCount())){ + auto index = macros->index(macros->rowCount()-1); + macros->setData(index, ui->extFreeTextMsgEdit->toPlainText()); + writeSettings(); + } + }); +} + void MainWindow::on_queryButton_pressed(){ QMenu *menu = ui->queryButton->menu(); if(!menu){ @@ -7995,28 +8033,13 @@ void MainWindow::on_queryButton_pressed(){ } void MainWindow::on_macrosMacroButton_pressed(){ - if(m_config.macros()->stringList().isEmpty()){ - openSettings(3); - return; - } - QMenu *menu = ui->macrosMacroButton->menu(); if(!menu){ menu = new QMenu(ui->macrosMacroButton); } menu->clear(); - foreach(QString macro, m_config.macros()->stringList()){ - QAction *action = menu->addAction(macro); - connect(action, &QAction::triggered, this, [this, macro](){ addMessageText(macro); }); - } - - menu->addSeparator(); - auto action = new QAction(QIcon::fromTheme("edit-edit"), QString("Edit"), menu); - menu->addAction(action); - connect(action, &QAction::triggered, this, [this](){ - openSettings(3); - }); + buildSavedMessagesMenu(menu); ui->macrosMacroButton->setMenu(menu); ui->macrosMacroButton->showMenu(); @@ -9120,6 +9143,8 @@ void MainWindow::updateButtonDisplay(){ ui->cqMacroButton->setDisabled(isTransmitting); ui->replyMacroButton->setDisabled(isTransmitting || emptyCallsign); + ui->qthMacroButton->setDisabled(isTransmitting || m_config.my_station().isEmpty()); + ui->qtcMacroButton->setDisabled(isTransmitting || m_config.my_qth().isEmpty()); ui->macrosMacroButton->setDisabled(isTransmitting); ui->queryButton->setDisabled(isTransmitting || emptyCallsign); ui->deselectButton->setDisabled(isTransmitting || emptyCallsign); diff --git a/mainwindow.h b/mainwindow.h index a7ef933..f91b3cd 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -267,12 +267,14 @@ private slots: void on_cqMacroButton_clicked(); void on_replyMacroButton_clicked(); void on_qthMacroButton_clicked(); + void on_qtcMacroButton_clicked(); void setSortBy(QString key, QString value); QString getSortBy(QString key, QString defaultValue); void buildSortByMenu(QMenu * menu, QString key, QString defaultValue, QList > values); void buildBandActivitySortByMenu(QMenu * menu); void buildCallActivitySortByMenu(QMenu * menu); void buildQueryMenu(QMenu *, QString callsign); + void buildSavedMessagesMenu(QMenu *menu); void buildRelayMenu(QMenu *menu); QAction* buildRelayAction(QString call); void buildEditMenu(QMenu *, QTextEdit *); diff --git a/mainwindow.ui b/mainwindow.ui index 3830da4..b6ca287 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -1311,9 +1311,6 @@ background:yellow; 30 - - false - <html><head/><body><p>Send your station location message</p></body></html> @@ -1347,10 +1344,10 @@ background:yellow; - <html><head/><body><p>Send a macro</p></body></html> + <html><head/><body><p>Send a saved message</p></body></html> - Macros + Saved @@ -1397,11 +1394,46 @@ background:yellow; 30 + + <html><head/><body><p>Deselect the current callsign for directed messaging</p></body></html> + Deselect + + + + + 0 + 30 + + + + <html><head/><body><p>Send your station message</p></body></html> + + + QTC + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + +