2021-09-16 Fred Gleason <fredg@paravelsystems.com>

* Added an 'RDAIRPLAY.LOGO_PATH' field to the database.
	* Incremented the database version to 355.
	* Added 'RDAirPlayConf::logoPath()' and
	'RDAirPlayConf::setLogoPath()' methods.
	* Added a 'Logo Image' control to the 'Configure RDAirPlay' dialog
	in rdadmin(1).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2021-09-16 14:03:37 -04:00
parent 1bf1d94bfe
commit db8652b13e
14 changed files with 98 additions and 19 deletions

View File

@ -22429,3 +22429,10 @@
* Added an 'RDGroups::remove()' static method.
2021-09-16 Fred Gleason <fredg@paravelsystems.com>
* Added a ' SaveWebgetFilesDirectory=' directive to rd.conf(5).
2021-09-16 Fred Gleason <fredg@paravelsystems.com>
* Added an 'RDAIRPLAY.LOGO_PATH' field to the database.
* Incremented the database version to 355.
* Added 'RDAirPlayConf::logoPath()' and
'RDAirPlayConf::setLogoPath()' methods.
* Added a 'Logo Image' control to the 'Configure RDAirPlay' dialog
in rdadmin(1).

View File

@ -28,6 +28,7 @@ EXIT_CODE int(11) 0=clean, 1=dirty
VIRTUAL_EXIT_CODE int(11) 0=clean, 1=dirty
EXIT_PASSWORD varchar(48)
SKIN_PATH varchar(191)
LOGO_PATH varchar(191)
SHOW_COUNTERS enum('N','Y')
AUDITION_PREROLL int(11)
TITLE_TEMPLATE varchar(64)

View File

@ -183,6 +183,8 @@ install-exec-am:
cp rdpanel-512x512.png $(DESTDIR)@prefix@/share/icons/hicolor/512x512/apps/rdpanel.png
mkdir -p $(DESTDIR)@prefix@/share/icons/hicolor/128x128/apps
cp rdpanel-128x128.png $(DESTDIR)@prefix@/share/icons/hicolor/128x128/apps/rdpanel.png
mkdir -p $(DESTDIR)@prefix@/share/pixmaps/rivendell
cp rdairplay_logo.png $(DESTDIR)@prefix@/share/pixmaps/rivendell/
mkdir -p $(DESTDIR)@prefix@/share/X11/fvwm2/pixmaps
cp rivendell-16x16.xpm $(DESTDIR)@prefix@/share/X11/fvwm2/pixmaps/mini.rivendell.xpm
cp rivendell-32x32.xpm $(DESTDIR)@prefix@/share/X11/fvwm2/pixmaps/rivendell.xpm
@ -268,6 +270,7 @@ uninstall-local:
rm -f $(DESTDIR)@prefix@/share/icons/hicolor/128x128/apps/rdpanel-128x128.png
rm -f $(DESTDIR)@prefix@/share/icons/hicolor/256x256/apps/rdpanel.png
rm -f $(DESTDIR)@prefix@/share/icons/hicolor/512x512/apps/rdpanel.png
rm -f $(DESTDIR)@prefix@/share/pixmaps/rivendell/rdairplay_logo.png
./update_icons.sh
EXTRA_DIST = admin.xpm\
@ -314,6 +317,7 @@ EXTRA_DIST = admin.xpm\
post3.xpm\
progressbar.gif\
progressbar.xcf\
rdairplay_logo.png\
record.xpm\
record2.xpm\
record3.xpm\

BIN
icons/rdairplay_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -24,7 +24,7 @@
/*
* Current Database Version
*/
#define RD_VERSION_DATABASE 354
#define RD_VERSION_DATABASE 355
#endif // DBVERSION_H

View File

@ -736,6 +736,18 @@ void RDAirPlayConf::setSkinPath(const QString &path) const
}
QString RDAirPlayConf::logoPath() const
{
return RDGetSqlValue(air_tablename,"ID",air_id,"LOGO_PATH").toString();
}
void RDAirPlayConf::setLogoPath(const QString &path) const
{
SetRow("LOGO_PATH",path);
}
bool RDAirPlayConf::showCounters() const
{
return RDBool(RDGetSqlValue(air_tablename,"ID",air_id,"SHOW_COUNTERS").

View File

@ -138,6 +138,8 @@ class RDAirPlayConf
void setExitPassword(const QString &passwd) const;
QString skinPath() const;
void setSkinPath(const QString &path) const;
QString logoPath() const;
void setLogoPath(const QString &path) const;
bool showCounters() const;
void setShowCounters(bool state) const;
int auditionPreroll() const;

View File

@ -809,44 +809,58 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station,
button->setGeometry(740,400,50,25);
connect(button,SIGNAL(clicked()),this,SLOT(selectSkinData()));
//
// Logo Path
//
air_logo_edit=new QLineEdit(this);
air_logo_edit->setGeometry(555,433,180,20);
label=new QLabel(tr("Logo Image:"),this);
label->setFont(subLabelFont());
label->setGeometry(435,433,115,20);
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
button=new QPushButton(tr("Select"),this);
button->setFont(subButtonFont());
button->setGeometry(740,430,50,25);
connect(button,SIGNAL(clicked()),this,SLOT(selectLogoData()));
//
// Title Template
//
air_title_template_edit=new QLineEdit(this);
air_title_template_edit->setGeometry(555,425,180,20);
air_title_template_edit->setGeometry(555,455,180,20);
label=new QLabel(tr("Title Template:"),this);
label->setFont(subLabelFont());
label->setGeometry(430,425,120,20);
label->setGeometry(430,455,120,20);
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Artist Template
//
air_artist_template_edit=new QLineEdit(this);
air_artist_template_edit->setGeometry(555,447,180,20);
air_artist_template_edit->setGeometry(555,477,180,20);
label=new QLabel(tr("Artist Template:"),this);
label->setFont(subLabelFont());
label->setGeometry(430,447,120,20);
label->setGeometry(430,477,120,20);
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Outcue Template
//
air_outcue_template_edit=new QLineEdit(this);
air_outcue_template_edit->setGeometry(555,469,180,20);
air_outcue_template_edit->setGeometry(555,499,180,20);
label=new QLabel(tr("Outcue Template:"),this);
label->setFont(subLabelFont());
label->setGeometry(430,469,120,20);
label->setGeometry(430,499,120,20);
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Description Template
//
air_description_template_edit=new QLineEdit(this);
air_description_template_edit->setGeometry(555,491,180,20);
air_description_template_edit->setGeometry(555,521,180,20);
label=new QLabel(tr("Description Template:"),this);
label->setFont(subLabelFont());
label->setGeometry(425,491,125,20);
label->setGeometry(425,521,125,20);
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
@ -854,18 +868,18 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station,
//
label=new QLabel(tr("Log Mode Control"),this);
label->setFont(sectionLabelFont());
label->setGeometry(435,530,200,16);
label->setGeometry(435,560,200,16);
//
// Mode Control Style
//
air_modecontrol_box=new QComboBox(this);
air_modecontrol_box->setGeometry(560,550,110,20);
air_modecontrol_box->setGeometry(560,580,110,20);
connect(air_modecontrol_box,SIGNAL(activated(int)),
this,SLOT(modeControlActivatedData(int)));
label=new QLabel(tr("Mode Control Style:"),this);
label->setFont(subLabelFont());
label->setGeometry(435,550,120,20);
label->setGeometry(435,580,120,20);
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
air_modecontrol_box->insertItem(0,tr("Unified"));
air_modecontrol_box->insertItem(1,tr("Independent"));
@ -875,12 +889,12 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station,
//
for(int i=0;i<3;i++) {
air_logstartmode_box[i]=new QComboBox(this);
air_logstartmode_box[i]->setGeometry(615,572+i*22,110,20);
air_logstartmode_box[i]->setGeometry(615,602+i*22,110,20);
connect(air_logstartmode_box[i],SIGNAL(activated(int)),
this,SLOT(logStartupModeActivatedData(int)));
air_logstartmode_label[i]=new QLabel(this);
air_logstartmode_label[i]->setFont(subLabelFont());
air_logstartmode_label[i]->setGeometry(470,572+i*22,140,20);
air_logstartmode_label[i]->setGeometry(470,602+i*22,140,20);
air_logstartmode_label[i]->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
air_logstartmode_box[i]->insertItem(0,tr("Previous"));
air_logstartmode_box[i]->insertItem(1,tr("LiveAssist"));
@ -892,7 +906,7 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station,
air_logstartmode_label[2]->setText(tr("Aux 2 Log Startup Mode:"));
air_virtual_logstartsel_box=new QComboBox(this);
air_virtual_logstartsel_box->setGeometry(435,638,120,20);
air_virtual_logstartsel_box->setGeometry(435,668,120,20);
connect(air_virtual_logstartsel_box,SIGNAL(activated(int)),
this,SLOT(virtualModeActivatedData(int)));
for(int i=0;i<RD_RDVAIRPLAY_LOG_QUAN;i++) {
@ -902,10 +916,10 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station,
}
label=new QLabel(":",this);
label->setFont(subLabelFont());
label->setGeometry(555,638,5,20);
label->setGeometry(555,668,5,20);
label->setAlignment(Qt::AlignCenter|Qt::AlignVCenter);
air_virtual_logstartmode_box=new QComboBox(this);
air_virtual_logstartmode_box->setGeometry(565,638,110,20);
air_virtual_logstartmode_box->setGeometry(565,668,110,20);
air_virtual_logstartmode_box->insertItem(0,tr("Previous"));
air_virtual_logstartmode_box->insertItem(1,tr("LiveAssist"));
air_virtual_logstartmode_box->insertItem(2,tr("Automatic"));
@ -1024,6 +1038,7 @@ EditRDAirPlay::EditRDAirPlay(RDStation *station,RDStation *cae_station,
air_startlog_edit->setText(air_startlogs[air_logmachine]);
air_autorestart_box->setChecked(air_autorestarts[air_logmachine]);
air_skin_edit->setText(air_conf->skinPath());
air_logo_edit->setText(air_conf->logoPath());
startModeChangedData(air_startmodes[air_logmachine]);
for(unsigned i=0;i<RDAirPlayConf::LastChannel;i++) {
@ -1040,7 +1055,7 @@ EditRDAirPlay::~EditRDAirPlay()
QSize EditRDAirPlay::sizeHint() const
{
return QSize(1010,680);
return QSize(1010,716);
}
@ -1192,6 +1207,18 @@ void EditRDAirPlay::selectSkinData()
}
void EditRDAirPlay::selectLogoData()
{
QString filename=air_logo_edit->text();
filename=QFileDialog::getOpenFileName(this,"RDAdmin - "+
tr("Select Image File"),filename,
RD_IMAGE_FILE_FILTER);
if(!filename.isNull()) {
air_logo_edit->setText(filename);
}
}
void EditRDAirPlay::modeControlActivatedData(int n)
{
if(n==0) {
@ -1308,6 +1335,7 @@ void EditRDAirPlay::okData()
air_conf->setOpMode(i+RD_RDVAIRPLAY_LOG_BASE,air_virtual_opmodes[i]);
}
air_conf->setSkinPath(air_skin_edit->text());
air_conf->setLogoPath(air_logo_edit->text());
done(0);
}

View File

@ -60,6 +60,7 @@ class EditRDAirPlay : public RDDialog
void selectData();
// void editHotKeys();
void selectSkinData();
void selectLogoData();
void modeControlActivatedData(int n);
void logStartupModeActivatedData(int n);
void okData();
@ -137,6 +138,7 @@ class EditRDAirPlay : public RDDialog
QMap<int,bool> air_autorestarts;
QLabel *air_autorestart_label;
QLineEdit *air_skin_edit;
QLineEdit *air_logo_edit;
QLineEdit *air_title_template_edit;
QLineEdit *air_artist_template_edit;
QLineEdit *air_outcue_template_edit;

View File

@ -61,13 +61,17 @@ TopStrip::TopStrip(QWidget *parent)
//
// Logo
//
QPixmap pix(rda->airplayConf()->logoPath());
d_logo=new QLabel(this);
d_logo->setAlignment(Qt::AlignCenter);
d_logo->setPixmap(pix);
/*
d_logo->setFont(bannerFont());
d_logo->setText(QString::asprintf("User Logo\n(%dx%d)",
RD_RDAIRPLAY_LOGO_WIDTH,
RD_RDAIRPLAY_LOGO_HEIGHT));
d_logo->setStyleSheet("background-color: #99FF99");
*/
setFocusPolicy(Qt::NoFocus);
}

View File

@ -361,6 +361,7 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/icons/hicolor/512x512/apps/rdlogedit.png
%{_datadir}/icons/hicolor/512x512/apps/rdlogmanager.png
%{_datadir}/icons/hicolor/512x512/apps/rdpanel.png
%{_datadir}/pixmaps/rivendell/rdairplay_logo.png
%{_datadir}/X11/fvwm2/pixmaps/mini.rivendell.xpm
%{_datadir}/X11/fvwm2/pixmaps/rivendell.xpm
%{_datadir}/applications/rivendell-rdadmin.desktop

View File

@ -41,6 +41,15 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
// NEW SCHEMA REVERSIONS GO HERE...
//
// Revert 355
//
if((cur_schema==355)&&(set_schema<cur_schema)) {
DropColumn("RDAIRPLAY","LOGO_PATH");
WriteSchemaVersion(--cur_schema);
}
//
// Revert 354
//

View File

@ -160,7 +160,7 @@ void MainObject::InitializeSchemaMap() {
global_version_map["3.4"]=317;
global_version_map["3.5"]=346;
global_version_map["3.6"]=347;
global_version_map["4.0"]=354;
global_version_map["4.0"]=355;
}

View File

@ -10949,6 +10949,15 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
WriteSchemaVersion(++cur_schema);
}
if((cur_schema<355)&&(set_schema>cur_schema)) {
sql=QString("alter table `RDAIRPLAY` ")+
"add column `LOGO_PATH` varchar(191) default '/usr/share/pixmaps/rivendell/rdairplay_logo.png' after `SKIN_PATH`";
if(!RDSqlQuery::apply(sql,err_msg)) {
return false;
}
WriteSchemaVersion(++cur_schema);
}
// NEW SCHEMA UPDATES GO HERE...