From b1e7de6ecffef5952e5cd3b346bf13340d56d7d6 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Nov 2018 07:39:44 -0700 Subject: [PATCH 1/6] Fix bug in processing boolean macro parameters --- lib/rdripc.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/rdripc.cpp b/lib/rdripc.cpp index 0b2fa87f..d3c4bb6d 100644 --- a/lib/rdripc.cpp +++ b/lib/rdripc.cpp @@ -146,7 +146,7 @@ void RDRipc::sendNotification(const RDNotification ¬ify) void RDRipc::sendOnairFlag() { - SendCommand("TA!"); + SendCommand(QString().sprintf("TA %d!",ripc_onair_flag)); } @@ -269,7 +269,7 @@ void RDRipc::DispatchCommand() if(!macro.isNull()) { QHostAddress addr; addr.setAddress(cmds[1]); - if(cmds[2].left(0)=="1") { + if(cmds[2].left(1)=="1") { macro.setEchoRequested(true); } macro.setAddress(addr); @@ -304,7 +304,7 @@ void RDRipc::DispatchCommand() int line=cmds[2].toInt(); int mask=cmds[4].toInt(); if((mask>0)||ripc_ignore_mask) { - if(cmds[3].left(0)=="0") { + if(cmds[3].left(1)=="0") { emit gpiStateChanged(matrix,line,false); } else { @@ -321,7 +321,7 @@ void RDRipc::DispatchCommand() int line=cmds[2].toInt(); int mask=cmds[4].toInt(); if((mask>0)||ripc_ignore_mask) { - if(cmds[3].left(0)=="0") { + if(cmds[3].left(1)=="0") { emit gpoStateChanged(matrix,line,false); } else { @@ -336,7 +336,7 @@ void RDRipc::DispatchCommand() } int matrix=cmds[1].toInt(); int line=cmds[2].toInt(); - if(cmds[3].left(0)=="0") { + if(cmds[3].left(1)=="0") { emit gpiMaskChanged(matrix,line,false); } else { @@ -350,7 +350,7 @@ void RDRipc::DispatchCommand() } int matrix=cmds[1].toInt(); int line=cmds[2].toInt(); - if(cmds[3].left(0)=="0") { + if(cmds[3].left(1)=="0") { emit gpoMaskChanged(matrix,line,false); } else { @@ -384,7 +384,7 @@ void RDRipc::DispatchCommand() if(cmds.size()!=2) { return; } - ripc_onair_flag=cmds[1].left(0)=="1"; + ripc_onair_flag=cmds[1].left(1)=="1"; emit onairFlagChanged(ripc_onair_flag); } From 1af48bcfe392477f6d646070365718eb32c7f225 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Nov 2018 07:41:22 -0700 Subject: [PATCH 2/6] Update ChangeLog --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6d7a1077..80ca4a94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17955,3 +17955,5 @@ 2018-11-01 Fred Gleason * Modified rdselect_helper(8) to use the automounter for managing audio store mounts. +2018-11-02 Patrick Linstruth + * Fix bugs in processing of some RML with boolean parameters. From 1115af238d8f9cf798bd51c14f1124aef8f06b2b Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Nov 2018 10:03:22 -0700 Subject: [PATCH 3/6] Update MacroCart editor --- rdlibrary/macro_cart.cpp | 16 ++++++++++------ rdlibrary/macro_cart.h | 1 + rdlibrary/rdlibrary_cs.ts | 2 +- rdlibrary/rdlibrary_de.ts | 2 +- rdlibrary/rdlibrary_es.ts | 2 +- rdlibrary/rdlibrary_fr.ts | 4 ---- rdlibrary/rdlibrary_nb.ts | 2 +- rdlibrary/rdlibrary_nn.ts | 2 +- rdlibrary/rdlibrary_pt_BR.ts | 2 +- 9 files changed, 17 insertions(+), 16 deletions(-) diff --git a/rdlibrary/macro_cart.cpp b/rdlibrary/macro_cart.cpp index e9ba1780..bf018c94 100644 --- a/rdlibrary/macro_cart.cpp +++ b/rdlibrary/macro_cart.cpp @@ -107,7 +107,7 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_macro_list->setGeometry(100,0,430,sizeHint().height()); rdcart_macro_list->setAllColumnsShowFocus(true); rdcart_macro_list->setItemMargin(5); - rdcart_macro_list->setSorting(0); + rdcart_macro_list->setSorting(-1); connect(rdcart_macro_list, SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)), this, @@ -195,9 +195,6 @@ void MacroCart::addMacroData() unsigned line; if(item==NULL) { - return; - } - if(item->text(0).isEmpty()) { line=rdcart_events->size(); } else { @@ -309,13 +306,12 @@ void MacroCart::RefreshList() { Q3ListViewItem *item; - item=new Q3ListViewItem(rdcart_macro_list); - item->setText(1,tr("--- End of cart ---")); for(int i=0;isize();i++) { item=new Q3ListViewItem(rdcart_macro_list); item->setText(0,QString().sprintf("%03d",i+1)); item->setText(1,rdcart_events->command(i)->toString()); } + SortLines(); } @@ -323,9 +319,17 @@ void MacroCart::RefreshLine(Q3ListViewItem *item) { int line=item->text(0).toInt()-1; item->setText(1,rdcart_events->command(line)->toString()); + SortLines(); } +void MacroCart::SortLines() +{ + rdcart_macro_list->setSorting(0); + rdcart_macro_list->sort(); + rdcart_macro_list->setSorting(-1); +} + void MacroCart::AddLine(unsigned line,RDMacro *cmd) { unsigned curr_line; diff --git a/rdlibrary/macro_cart.h b/rdlibrary/macro_cart.h index e4ecd7eb..1f9b814f 100644 --- a/rdlibrary/macro_cart.h +++ b/rdlibrary/macro_cart.h @@ -68,6 +68,7 @@ class MacroCart : public QWidget void AddLine(unsigned line,RDMacro *cmd); void DeleteLine(Q3ListViewItem *item); void UpdateLength(); + void SortLines(); RDCart *rdcart_cart; Q3ListView *rdcart_macro_list; QLabel *rdcart_macro_list_label; diff --git a/rdlibrary/rdlibrary_cs.ts b/rdlibrary/rdlibrary_cs.ts index 1f084b7c..c7f17688 100644 --- a/rdlibrary/rdlibrary_cs.ts +++ b/rdlibrary/rdlibrary_cs.ts @@ -1140,7 +1140,7 @@ vozík --- End of cart --- - --- Konec vozíku --- + --- Konec vozíku --- Line diff --git a/rdlibrary/rdlibrary_de.ts b/rdlibrary/rdlibrary_de.ts index 40cbff1e..63410ce3 100644 --- a/rdlibrary/rdlibrary_de.ts +++ b/rdlibrary/rdlibrary_de.ts @@ -1128,7 +1128,7 @@ starten --- End of cart --- - --- Ende des Carts --- + --- Ende des Carts --- Line diff --git a/rdlibrary/rdlibrary_es.ts b/rdlibrary/rdlibrary_es.ts index 08c96756..590a0146 100644 --- a/rdlibrary/rdlibrary_es.ts +++ b/rdlibrary/rdlibrary_es.ts @@ -1137,7 +1137,7 @@ Cartucho --- End of cart --- - --- Fin del cartucho --- + --- Fin del cartucho --- Line diff --git a/rdlibrary/rdlibrary_fr.ts b/rdlibrary/rdlibrary_fr.ts index d151ba08..507b0027 100644 --- a/rdlibrary/rdlibrary_fr.ts +++ b/rdlibrary/rdlibrary_fr.ts @@ -938,10 +938,6 @@ Line Cart - - --- End of cart --- - - Line diff --git a/rdlibrary/rdlibrary_nb.ts b/rdlibrary/rdlibrary_nb.ts index b5bb55c4..044a48d4 100644 --- a/rdlibrary/rdlibrary_nb.ts +++ b/rdlibrary/rdlibrary_nb.ts @@ -1124,7 +1124,7 @@ korg --- End of cart --- - --- Slutten på korga --- + --- Slutten på korga --- Line diff --git a/rdlibrary/rdlibrary_nn.ts b/rdlibrary/rdlibrary_nn.ts index b5bb55c4..044a48d4 100644 --- a/rdlibrary/rdlibrary_nn.ts +++ b/rdlibrary/rdlibrary_nn.ts @@ -1124,7 +1124,7 @@ korg --- End of cart --- - --- Slutten på korga --- + --- Slutten på korga --- Line diff --git a/rdlibrary/rdlibrary_pt_BR.ts b/rdlibrary/rdlibrary_pt_BR.ts index 2021d197..64097f38 100644 --- a/rdlibrary/rdlibrary_pt_BR.ts +++ b/rdlibrary/rdlibrary_pt_BR.ts @@ -1126,7 +1126,7 @@ Cartão --- End of cart --- - -- Fim do Cartão -- + -- Fim do Cartão -- Line From f64ba8d0949b5b379212ef5aaee806521c60ed23 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Nov 2018 10:05:59 -0700 Subject: [PATCH 4/6] Update ChangeLog --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index ff64a01d..c3967721 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17970,3 +17970,6 @@ Guide. 2018-11-02 Patrick Linstruth * Fixed bug in in some RML commands with boolean paramters. +2018-11-02 Patrick Linstruth + * Fix macro editor in rdlibrary(1) to no longer display + "--- End of cart ---" and disable sorting of columns. From 9d7c385bd271d73ea492eb3cd2036ca65f684784 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Sat, 3 Nov 2018 18:03:14 -0700 Subject: [PATCH 5/6] Update macro editing --- rdlibrary/macro_cart.cpp | 79 ++++++++++++++++++++++++++++-------- rdlibrary/macro_cart.h | 3 +- rdlibrary/rdlibrary_cs.ts | 4 ++ rdlibrary/rdlibrary_de.ts | 4 ++ rdlibrary/rdlibrary_es.ts | 4 ++ rdlibrary/rdlibrary_fr.ts | 4 ++ rdlibrary/rdlibrary_nb.ts | 4 ++ rdlibrary/rdlibrary_nn.ts | 4 ++ rdlibrary/rdlibrary_pt_BR.ts | 4 ++ 9 files changed, 91 insertions(+), 19 deletions(-) diff --git a/rdlibrary/macro_cart.cpp b/rdlibrary/macro_cart.cpp index bf018c94..e846c983 100644 --- a/rdlibrary/macro_cart.cpp +++ b/rdlibrary/macro_cart.cpp @@ -67,6 +67,7 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_add_button->setGeometry(10,0,80,50); rdcart_add_button->setFont(button_font); rdcart_add_button->setText(tr("Add")); + rdcart_add_button->setEnabled(false); connect(rdcart_add_button,SIGNAL(clicked()),this,SLOT(addMacroData())); // @@ -76,6 +77,7 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_delete_button->setGeometry(10,60,80,50); rdcart_delete_button->setFont(button_font); rdcart_delete_button->setText(tr("Delete")); + rdcart_delete_button->setEnabled(false); connect(rdcart_delete_button,SIGNAL(clicked()),this,SLOT(deleteMacroData())); // @@ -85,6 +87,7 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_copy_button->setGeometry(10,120,80,50); rdcart_copy_button->setFont(button_font); rdcart_copy_button->setText(tr("Copy")); + rdcart_copy_button->setEnabled(false); connect(rdcart_copy_button,SIGNAL(clicked()),this,SLOT(copyMacroData())); // @@ -95,6 +98,7 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) paste_macro_button->setFont(button_font); paste_macro_button->setText(tr("Paste")); paste_macro_button->setDisabled(true); + paste_macro_button->setEnabled(false); connect(paste_macro_button,SIGNAL(clicked()),this,SLOT(pasteMacroData())); // @@ -109,9 +113,13 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_macro_list->setItemMargin(5); rdcart_macro_list->setSorting(-1); connect(rdcart_macro_list, - SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)), + SIGNAL(selectionChanged(Q3ListViewItem *)), this, - SLOT(doubleClickedData(Q3ListViewItem *,const QPoint &,int))); + SLOT(selectionChangedData(Q3ListViewItem *))); + connect(rdcart_macro_list, + SIGNAL(doubleClicked(Q3ListViewItem *)), + this, + SLOT(doubleClickedData(Q3ListViewItem *))); rdcart_macro_list->addColumn(tr("Line")); rdcart_macro_list->setColumnAlignment(0,Qt::AlignHCenter); @@ -132,6 +140,7 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_edit_button->setGeometry(550,0,80,50); rdcart_edit_button->setFont(button_font); rdcart_edit_button->setText(tr("Edit")); + rdcart_edit_button->setEnabled(false); connect(rdcart_edit_button,SIGNAL(clicked()),this,SLOT(editMacroData())); // @@ -141,6 +150,7 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_runline_button->setGeometry(550,120,80,50); rdcart_runline_button->setFont(button_font); rdcart_runline_button->setText(tr("Run\nLine")); + rdcart_runline_button->setEnabled(false); connect(rdcart_runline_button,SIGNAL(clicked()), this,SLOT(runLineMacroData())); @@ -153,14 +163,6 @@ MacroCart::MacroCart(RDCart *cart,QWidget *parent) rdcart_runcart_button->setText(tr("Run\nCart")); connect(rdcart_runcart_button,SIGNAL(clicked()), this,SLOT(runCartMacroData())); - - // - // Set Control Permissions - // - rdcart_add_button->setEnabled(rdcart_allow_modification); - rdcart_delete_button->setEnabled(rdcart_allow_modification); - rdcart_copy_button->setEnabled(rdcart_allow_modification); - rdcart_edit_button->setEnabled(rdcart_allow_modification); } @@ -194,7 +196,7 @@ void MacroCart::addMacroData() RDMacro cmd; unsigned line; - if(item==NULL) { + if(item==NULL||item->text(0).isEmpty()) { line=rdcart_events->size(); } else { @@ -229,7 +231,7 @@ void MacroCart::copyMacroData() return; } rdcart_clipboard=*rdcart_events->command(item->text(0).toUInt()-1); - paste_macro_button->setEnabled(true); + paste_macro_button->setEnabled(rdcart_allow_modification); } @@ -287,11 +289,30 @@ void MacroCart::runCartMacroData() } -void MacroCart::doubleClickedData(Q3ListViewItem *,const QPoint &,int) +void MacroCart::selectionChangedData(Q3ListViewItem *item) +{ + rdcart_add_button->setEnabled(rdcart_allow_modification); + if(!rdcart_clipboard.isNull()) { + paste_macro_button->setEnabled(rdcart_allow_modification); + } + if(!item->text(0).isEmpty()) { + rdcart_runline_button->setEnabled(rdcart_allow_modification); + rdcart_delete_button->setEnabled(rdcart_allow_modification); + rdcart_copy_button->setEnabled(rdcart_allow_modification); + rdcart_edit_button->setEnabled(rdcart_allow_modification); + } + else { + rdcart_runline_button->setEnabled(false); + rdcart_delete_button->setEnabled(false); + rdcart_copy_button->setEnabled(false); + rdcart_edit_button->setEnabled(false); + } +} + + +void MacroCart::doubleClickedData(Q3ListViewItem *item) { if(rdcart_allow_modification) { - Q3ListViewItem *item=rdcart_macro_list->selectedItem(); - if((item==NULL)||(item->text(0).isEmpty())) { addMacroData(); } @@ -304,14 +325,36 @@ void MacroCart::doubleClickedData(Q3ListViewItem *,const QPoint &,int) void MacroCart::RefreshList() { - Q3ListViewItem *item; + Q3ListViewItem *item=NULL; + Q3ListViewItem *selected; + QString line; + selected=rdcart_macro_list->selectedItem(); + if(selected!=NULL) { + line=selected->text(0); + } + + rdcart_macro_list->clear(); for(int i=0;isize();i++) { item=new Q3ListViewItem(rdcart_macro_list); item->setText(0,QString().sprintf("%03d",i+1)); item->setText(1,rdcart_events->command(i)->toString()); } SortLines(); + if(item!=NULL) { + item=new Q3ListViewItem(rdcart_macro_list,item); + } + else { + item=new Q3ListViewItem(rdcart_macro_list); + } + item->setText(1,tr("--- End of Cart ---")); + + if (!line.isEmpty()) { + selected=rdcart_macro_list->findItem(line,0); + if(selected!=NULL) { + rdcart_macro_list->setSelected(selected,true); + } + } } @@ -319,7 +362,6 @@ void MacroCart::RefreshLine(Q3ListViewItem *item) { int line=item->text(0).toInt()-1; item->setText(1,rdcart_events->command(line)->toString()); - SortLines(); } @@ -345,8 +387,9 @@ void MacroCart::AddLine(unsigned line,RDMacro *cmd) rdcart_events->insert(line,cmd); item=new Q3ListViewItem(rdcart_macro_list); item->setText(0,QString().sprintf("%03u",line+1)); - RefreshLine(item); + item->setText(1,rdcart_events->command(line)->toString()); rdcart_macro_list->setSelected(item,true); + RefreshList(); } diff --git a/rdlibrary/macro_cart.h b/rdlibrary/macro_cart.h index 1f9b814f..b1c60e7e 100644 --- a/rdlibrary/macro_cart.h +++ b/rdlibrary/macro_cart.h @@ -60,7 +60,8 @@ class MacroCart : public QWidget void editMacroData(); void runLineMacroData(); void runCartMacroData(); - void doubleClickedData(Q3ListViewItem *,const QPoint &,int); + void selectionChangedData(Q3ListViewItem *); + void doubleClickedData(Q3ListViewItem *); private: void RefreshList(); diff --git a/rdlibrary/rdlibrary_cs.ts b/rdlibrary/rdlibrary_cs.ts index c7f17688..470ea4c3 100644 --- a/rdlibrary/rdlibrary_cs.ts +++ b/rdlibrary/rdlibrary_cs.ts @@ -1150,6 +1150,10 @@ vozík Command + + --- End of Cart --- + + MainWidget diff --git a/rdlibrary/rdlibrary_de.ts b/rdlibrary/rdlibrary_de.ts index 63410ce3..9aaee180 100644 --- a/rdlibrary/rdlibrary_de.ts +++ b/rdlibrary/rdlibrary_de.ts @@ -1138,6 +1138,10 @@ starten Command + + --- End of Cart --- + + MainWidget diff --git a/rdlibrary/rdlibrary_es.ts b/rdlibrary/rdlibrary_es.ts index 590a0146..463131d7 100644 --- a/rdlibrary/rdlibrary_es.ts +++ b/rdlibrary/rdlibrary_es.ts @@ -1147,6 +1147,10 @@ Cartucho Command + + --- End of Cart --- + + MainWidget diff --git a/rdlibrary/rdlibrary_fr.ts b/rdlibrary/rdlibrary_fr.ts index 507b0027..753d0615 100644 --- a/rdlibrary/rdlibrary_fr.ts +++ b/rdlibrary/rdlibrary_fr.ts @@ -946,6 +946,10 @@ Cart Command + + --- End of Cart --- + + MainWidget diff --git a/rdlibrary/rdlibrary_nb.ts b/rdlibrary/rdlibrary_nb.ts index 044a48d4..06bcfe7a 100644 --- a/rdlibrary/rdlibrary_nb.ts +++ b/rdlibrary/rdlibrary_nb.ts @@ -1134,6 +1134,10 @@ korg Command + + --- End of Cart --- + + MainWidget diff --git a/rdlibrary/rdlibrary_nn.ts b/rdlibrary/rdlibrary_nn.ts index 044a48d4..06bcfe7a 100644 --- a/rdlibrary/rdlibrary_nn.ts +++ b/rdlibrary/rdlibrary_nn.ts @@ -1134,6 +1134,10 @@ korg Command + + --- End of Cart --- + + MainWidget diff --git a/rdlibrary/rdlibrary_pt_BR.ts b/rdlibrary/rdlibrary_pt_BR.ts index 64097f38..2fa0ca49 100644 --- a/rdlibrary/rdlibrary_pt_BR.ts +++ b/rdlibrary/rdlibrary_pt_BR.ts @@ -1136,6 +1136,10 @@ Cartão Command + + --- End of Cart --- + + MainWidget From 21a28a0ec435fd6edc5c0f4833075c3a67aa533d Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Sat, 3 Nov 2018 18:06:10 -0700 Subject: [PATCH 6/6] Update ChangeLog --- ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c3967721..1a05f5a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17971,5 +17971,5 @@ 2018-11-02 Patrick Linstruth * Fixed bug in in some RML commands with boolean paramters. 2018-11-02 Patrick Linstruth - * Fix macro editor in rdlibrary(1) to no longer display - "--- End of cart ---" and disable sorting of columns. + * Update macro editor in rdlibrary(1) to fix display of + "--- End of cart ---" item and improve buttons and permissions.