diff --git a/ChangeLog b/ChangeLog index 0f2ff858..8ba65640 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23036,3 +23036,9 @@ in rdadmin(1). 2022-05-03 Fred Gleason * Updated the user logo for rdairplay(1). +2022-05-04 Fred Gleason + * Added an 'show_unchanged' argument to the constructor of the + 'RDGroupListModel' model. + * Modified the 'Edit Cart' dialog in rdlibrary(1) so as to + default the 'Group:' and 'Usage:' controls to '[unchanged]' when + opened in multi-edit mode. diff --git a/lib/rdcartfilter.cpp b/lib/rdcartfilter.cpp index 57e5a7e2..5b2fcda0 100644 --- a/lib/rdcartfilter.cpp +++ b/lib/rdcartfilter.cpp @@ -36,7 +36,7 @@ RDCartFilter::RDCartFilter(bool show_drag_box,bool user_is_admin, d_cart_model=NULL; d_show_drag_box=show_drag_box; - d_group_model=new RDGroupListModel(true,user_is_admin,this); + d_group_model=new RDGroupListModel(true,false,user_is_admin,this); // // Filter Phrase diff --git a/lib/rdgrouplistmodel.cpp b/lib/rdgrouplistmodel.cpp index f6897cec..fec8d63b 100644 --- a/lib/rdgrouplistmodel.cpp +++ b/lib/rdgrouplistmodel.cpp @@ -22,11 +22,12 @@ #include "rdescape_string.h" #include "rdgrouplistmodel.h" -RDGroupListModel::RDGroupListModel(bool show_all,bool user_is_admin, - QObject *parent) +RDGroupListModel::RDGroupListModel(bool show_all,bool show_unchanged, + bool user_is_admin,QObject *parent) : QAbstractTableModel(parent) { d_show_all=show_all; + d_show_unchanged=show_unchanged; d_user_is_admin=user_is_admin; d_service_names.push_back(tr("ALL")); d_sort_column=0; @@ -200,7 +201,7 @@ QStringList RDGroupListModel::allGroupNames() const { QStringList ret; - if(d_show_all) { + if(d_show_all||d_show_unchanged) { for(int i=1;inext()) { diff --git a/lib/rdgrouplistmodel.h b/lib/rdgrouplistmodel.h index 8486fd96..b2761b31 100644 --- a/lib/rdgrouplistmodel.h +++ b/lib/rdgrouplistmodel.h @@ -33,7 +33,8 @@ class RDGroupListModel : public QAbstractTableModel { Q_OBJECT public: - RDGroupListModel(bool show_all,bool user_is_admin,QObject *parent=0); + RDGroupListModel(bool show_all,bool show_unchanged,bool user_is_admin, + QObject *parent); ~RDGroupListModel(); QPalette palette(); void setPalette(const QPalette &pal); @@ -75,6 +76,7 @@ class RDGroupListModel : public QAbstractTableModel QList d_icons; QList d_colors; bool d_show_all; + bool d_show_unchanged; bool d_user_is_admin; QStringList d_visible_groups; QStringList d_column_fields; diff --git a/lib/rdlist_groups.cpp b/lib/rdlist_groups.cpp index 22053b70..5515a737 100644 --- a/lib/rdlist_groups.cpp +++ b/lib/rdlist_groups.cpp @@ -42,7 +42,7 @@ RDListGroups::RDListGroups(QString *groupname,const QString &caption, group_group_view=new RDTableView(this); group_group_view->setGeometry(10,10, sizeHint().width()-20,sizeHint().height()-80); - group_group_model=new RDGroupListModel(false,false,this); + group_group_model=new RDGroupListModel(false,false,false,this); group_group_model->setFont(font()); group_group_model->setPalette(palette()); group_group_view->setModel(group_group_model); diff --git a/rdadmin/edit_dropbox.cpp b/rdadmin/edit_dropbox.cpp index 651645a3..d231b098 100644 --- a/rdadmin/edit_dropbox.cpp +++ b/rdadmin/edit_dropbox.cpp @@ -2,7 +2,7 @@ // // Edit a Rivendell Dropbox Configuration // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -58,7 +58,7 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent) // box_group_name_box=new QComboBox(this); box_group_name_box->setGeometry(140,10,100,20); - box_group_name_model=new RDGroupListModel(true,true,this); + box_group_name_model=new RDGroupListModel(true,false,true,this); box_group_name_model->setFont(defaultFont()); box_group_name_model->setPalette(palette()); box_group_name_box->setModel(box_group_name_model); diff --git a/rdadmin/edit_system.cpp b/rdadmin/edit_system.cpp index b4b7b501..f629dcb1 100644 --- a/rdadmin/edit_system.cpp +++ b/rdadmin/edit_system.cpp @@ -2,7 +2,7 @@ // // Edit Rivendell System-Wide Configuration // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -148,7 +148,7 @@ EditSystem::EditSystem(QWidget *parent) // Temporary Cart Group // edit_temp_cart_group_box=new RDComboBox(this); - edit_temp_cart_group_model=new RDGroupListModel(false,true,this); + edit_temp_cart_group_model=new RDGroupListModel(false,false,true,this); edit_temp_cart_group_box->setModel(edit_temp_cart_group_model); edit_temp_cart_group_label=new QLabel(tr("Temporary Cart Group:"),this); edit_temp_cart_group_label->setFont(labelFont()); diff --git a/rdadmin/list_groups.cpp b/rdadmin/list_groups.cpp index dbd9c5b1..2782fa0e 100644 --- a/rdadmin/list_groups.cpp +++ b/rdadmin/list_groups.cpp @@ -2,7 +2,7 @@ // // List Rivendell Groups // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -98,7 +98,7 @@ ListGroups::ListGroups(QWidget *parent) list_groups_view=new RDTableView(this); list_groups_view->setSortingEnabled(true); list_groups_view->sortByColumn(0,Qt::AscendingOrder); - list_groups_model=new RDGroupListModel(false,true,this); + list_groups_model=new RDGroupListModel(false,false,true,this); list_groups_model->setFont(defaultFont()); list_groups_model->setPalette(palette()); list_groups_view->setModel(list_groups_model); diff --git a/rdlibrary/edit_cart.cpp b/rdlibrary/edit_cart.cpp index 59903eba..7908695a 100644 --- a/rdlibrary/edit_cart.cpp +++ b/rdlibrary/edit_cart.cpp @@ -2,7 +2,7 @@ // // Edit a Rivendell Cart // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -109,7 +109,7 @@ EditCart::EditCart(const QList &cartnums,QString *path,bool new_cart, else { rdcart_group_box->setGeometry(135,38,110,21); } - rdcart_group_model=new RDGroupListModel(false,false,this); + rdcart_group_model=new RDGroupListModel(false,cartnums.size()>1,false,this); rdcart_group_box->setModel(rdcart_group_model); rdcart_group_edit=new QLineEdit(this); rdcart_group_edit->setGeometry(280,11,140,21); @@ -270,11 +270,11 @@ EditCart::EditCart(const QList &cartnums,QString *path,bool new_cart, rdcart_usage_box=new QComboBox(this); rdcart_usage_box->setGeometry(270,110,150,21); if(cartnums.size()>1) { - rdcart_usage_box->insertItem(0,""); + rdcart_usage_box->insertItem(0,tr("[unchanged]"),-1); } for(int i=0;i<(int)RDCart::UsageLast;i++) { rdcart_usage_box->insertItem(rdcart_usage_box->count(), - RDCart::usageText((RDCart::UsageCode)i)); + RDCart::usageText((RDCart::UsageCode)i),i); } QLabel *label=new QLabel(tr("Usage:"),this); label->setGeometry(195,112,70,21); @@ -613,7 +613,12 @@ EditCart::EditCart(const QList &cartnums,QString *path,bool new_cart, rdcart_controls.conductor_edit->setText(rdcart_cart->conductor()); rdcart_controls.composer_edit->setText(rdcart_cart->composer()); rdcart_controls.user_defined_edit->setText(rdcart_cart->userDefined()); - rdcart_usage_box->setCurrentIndex((int)rdcart_cart->usageCode()); + //rdcart_usage_box->setCurrentIndex((int)rdcart_cart->usageCode()); + for(int i=0;icount();i++) { + if(rdcart_usage_box->itemData(i).toInt()==(int)rdcart_cart->usageCode()) { + rdcart_usage_box->setCurrentIndex(i); + } + } rdcart_usage_edit-> setText(RDCart::usageText((RDCart::UsageCode)rdcart_usage_box-> currentIndex())); @@ -623,12 +628,8 @@ EditCart::EditCart(const QList &cartnums,QString *path,bool new_cart, rdcart_cut_sched_box->setCurrentIndex(rdcart_cart->useWeighting()); rdcart_cut_sched_edit->setText(rdcart_cut_sched_box->currentText()); } - else {//multi edit - if(rdcart_group_box->count() == 0) { - rdcart_group_box->insertItem(""); - // PopulateGroupList(); - rdcart_group_box->setCurrentIndex(0); - } + else { //Multi Edit + rdcart_group_box->setCurrentIndex(0); rdcart_usage_box->setCurrentIndex(0); rdcart_notes_button->hide(); } @@ -822,8 +823,11 @@ void EditCart::okData() rdcart_cart->setConductor(rdcart_controls.conductor_edit->text()); rdcart_cart->setComposer(rdcart_controls.composer_edit->text()); rdcart_cart->setUserDefined(rdcart_controls.user_defined_edit->text()); + // rdcart_cart-> + // setUsageCode((RDCart::UsageCode)rdcart_usage_box->currentIndex()); rdcart_cart-> - setUsageCode((RDCart::UsageCode)rdcart_usage_box->currentIndex()); + setUsageCode((RDCart::UsageCode)rdcart_usage_box-> + itemData(rdcart_usage_box->currentIndex()).toInt()); if(rdcart_cart->type()==RDCart::Macro) { rdcart_macro_cart->save(); rdcart_cart->setAsyncronous(rdcart_syncronous_box->isChecked()); @@ -837,7 +841,7 @@ void EditCart::okData() for(int i=0;iowner().isEmpty()) { - if(!rdcart_group_box->currentText().trimmed().isEmpty()) { + if(rdcart_group_box->currentIndex()>0) { cart->setGroupName(rdcart_group_box->currentText()); } if(!rdcart_controls.title_edit->text().trimmed().isEmpty()) { @@ -880,9 +884,9 @@ void EditCart::okData() trimmed().isEmpty()) { cart->setUserDefined(rdcart_controls.user_defined_edit->text()); } - if(!rdcart_usage_box->currentText().trimmed().isEmpty()) { - cart->setUsageCode((RDCart::UsageCode) - (rdcart_usage_box->currentIndex()-1)); + if(rdcart_usage_box->currentIndex()>0) { + cart->setUsageCode((RDCart::UsageCode)rdcart_usage_box-> + itemData(rdcart_usage_box->currentIndex()).toInt()); } cart->updateSchedCodes(add_codes,remove_codes); } diff --git a/rdlogmanager/edit_event.cpp b/rdlogmanager/edit_event.cpp index 0a073a13..ce52bcc9 100644 --- a/rdlogmanager/edit_event.cpp +++ b/rdlogmanager/edit_event.cpp @@ -85,7 +85,7 @@ EditEvent::EditEvent(QString eventname,bool new_event,QStringList *new_events, // event_group_box=new QComboBox(this); event_group_box->setGeometry(55,25,CENTER_LINE-70,20); - event_group_model=new RDGroupListModel(true,false,this); + event_group_model=new RDGroupListModel(true,false,false,this); event_group_model->changeUser(); event_group_box->setModel(event_group_model); connect(event_group_box,SIGNAL(activated(const QString &)),