2022-05-04 Fred Gleason <fredg@paravelsystems.com>

* 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.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2022-05-04 14:02:17 -04:00
parent f37fe2db9f
commit 0a633f27e5
10 changed files with 48 additions and 30 deletions

View File

@@ -23036,3 +23036,9 @@
in rdadmin(1).
2022-05-03 Fred Gleason <fredg@paravelsystems.com>
* Updated the user logo for rdairplay(1).
2022-05-04 Fred Gleason <fredg@paravelsystems.com>
* 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.

View File

@@ -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

View File

@@ -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;i<d_texts.size();i++) {
ret.push_back(d_texts.at(i).at(0).toString());
}
@@ -348,7 +349,6 @@ void RDGroupListModel::updateModel()
RDSqlQuery *q=NULL;
QString sql=sqlFields()+filterSql();
// sql+="order by `NAME` ";
beginResetModel();
d_texts.clear();
d_colors.clear();
@@ -360,6 +360,12 @@ void RDGroupListModel::updateModel()
d_colors.push_back(QVariant());
d_icons.push_back(icons);
}
if(d_show_unchanged) {
d_texts.push_back(texts);
d_texts.back().push_back(tr("[unchanged]"));
d_colors.push_back(QVariant());
d_icons.push_back(icons);
}
q=new RDSqlQuery(sql);
while(q->next()) {

View File

@@ -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<QVariant> d_icons;
QList<QVariant> d_colors;
bool d_show_all;
bool d_show_unchanged;
bool d_user_is_admin;
QStringList d_visible_groups;
QStringList d_column_fields;

View File

@@ -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);

View File

@@ -2,7 +2,7 @@
//
// Edit a Rivendell Dropbox Configuration
//
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2022 Fred Gleason <fredg@paravelsystems.com>
//
// 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);

View File

@@ -2,7 +2,7 @@
//
// Edit Rivendell System-Wide Configuration
//
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2022 Fred Gleason <fredg@paravelsystems.com>
//
// 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());

View File

@@ -2,7 +2,7 @@
//
// List Rivendell Groups
//
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2022 Fred Gleason <fredg@paravelsystems.com>
//
// 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);

View File

@@ -2,7 +2,7 @@
//
// Edit a Rivendell Cart
//
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2022 Fred Gleason <fredg@paravelsystems.com>
//
// 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<unsigned> &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<unsigned> &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<unsigned> &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;i<rdcart_usage_box->count();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<unsigned> &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;i<rdcart_cart_numbers.size();i++) {
RDCart *cart=new RDCart(rdcart_cart_numbers.at(i));
if(cart->owner().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);
}

View File

@@ -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 &)),