Better breaking apart messages with newlines. Macros behavior

This commit is contained in:
Jordan Sherer 2018-07-09 15:17:53 -04:00
parent f9ab37530c
commit 2a7f38b187

View File

@ -5262,20 +5262,24 @@ void MainWindow::on_extFreeTextMsgEdit_currentTextChanged (QString const& text)
QStringList MainWindow::buildFT8MessageFrames(QString const& text){ QStringList MainWindow::buildFT8MessageFrames(QString const& text){
QStringList frames; QStringList frames;
QString input = QString(text).replace("\n", " ").replace(" ", " ");
while(input.size() > 0){ //QString input = QString(text); //.replace("\n", " ").replace(" ", " ");
QString frame = parseFT8Message(input); //.split(QRegExp("\\n"))
if(frame.isEmpty()){
break;
}
frames.append(frame);
int sz = input.size(); foreach(QString input, text.split(QRegExp("[\\r\\n]"), QString::SkipEmptyParts)){
input = input.remove(QRegExp("^" + QRegExp::escape(frame))).trimmed(); while(input.size() > 0){
if(input.size() == sz){ QString frame = parseFT8Message(input);
break; if(frame.isEmpty()){
} break;
}
frames.append(frame);
int sz = input.size();
input = input.remove(QRegExp("^" + QRegExp::escape(frame))).trimmed();
if(input.size() == sz){
break;
}
}
} }
return frames; return frames;
@ -5284,7 +5288,7 @@ QStringList MainWindow::buildFT8MessageFrames(QString const& text){
QString MainWindow::parseFT8Message(QString input){ QString MainWindow::parseFT8Message(QString input){
char message[29]; char message[29];
char msgsent[29]; char msgsent[29];
char volatile ft8msgbits[75]; char volatile ft8msgbits[75 + 12];
int volatile itone[NUM_ISCAT_SYMBOLS]; int volatile itone[NUM_ISCAT_SYMBOLS];
QByteArray ba = input.toLocal8Bit(); QByteArray ba = input.toLocal8Bit();
@ -6616,17 +6620,27 @@ void MainWindow::on_snrMacroButton_clicked(){
} }
void MainWindow::on_macrosMacroButton_clicked(){ void MainWindow::on_macrosMacroButton_clicked(){
QMenu *menu = new QMenu(ui->macrosMacroButton); if(m_config.macros()->stringList().isEmpty()){
on_actionSettings_triggered();
return;
}
QMenu *menu = ui->macrosMacroButton->menu();
if(!menu){
menu = new QMenu(ui->macrosMacroButton);
}
menu->clear();
foreach(QString macro, m_config.macros()->stringList()){ foreach(QString macro, m_config.macros()->stringList()){
QAction *action = menu->addAction(macro); QAction *action = menu->addAction(macro);
connect(action, &QAction::triggered, this, [this, macro](){ addMessageText(macro); }); connect(action, &QAction::triggered, this, [this, macro](){ addMessageText(macro); });
} }
menu->addSeparator(); menu->addSeparator();
auto action = new QAction(QIcon::fromTheme("edit-edit"), QString("Edit"), menu); auto action = new QAction(QIcon::fromTheme("edit-edit"), QString("Edit"), menu);
menu->addAction(action); menu->addAction(action);
connect(action, &QAction::triggered, this, &MainWindow::on_actionSettings_triggered); connect(action, &QAction::triggered, this, &MainWindow::on_actionSettings_triggered);
ui->macrosMacroButton->setMenu(menu); ui->macrosMacroButton->setMenu(menu);
ui->macrosMacroButton->showMenu(); ui->macrosMacroButton->showMenu();
} }