1
0
mirror of https://github.com/ElvishArtisan/rivendell.git synced 2025-10-08 23:53:33 +02:00
Files
cae
conf
debian
docs
helpers
icons
importers
ios
lib
pam_rd
rdadmin
Makefile.am
add_aux_field.cpp
add_aux_field.h
add_encoder.cpp
add_encoder.h
add_feed.cpp
add_feed.h
add_group.cpp
add_group.h
add_hostvar.cpp
add_hostvar.h
add_matrix.cpp
add_matrix.h
add_replicator.cpp
add_replicator.h
add_report.cpp
add_report.h
add_schedcodes.cpp
add_schedcodes.h
add_station.cpp
add_station.h
add_svc.cpp
add_svc.h
add_user.cpp
add_user.h
autofill_carts.cpp
autofill_carts.h
createdb.cpp
createdb.h
edit_audios.cpp
edit_audios.h
edit_aux_field.cpp
edit_aux_field.h
edit_backup.cpp
edit_backup.h
edit_cartslots.cpp
edit_cartslots.h
edit_channelgpios.cpp
edit_channelgpios.h
edit_decks.cpp
edit_decks.h
edit_dropbox.cpp
edit_dropbox.h
edit_encoder.cpp
edit_encoder.h
edit_endpoint.cpp
edit_endpoint.h
edit_feed.cpp
edit_feed.h
edit_feed_perms.cpp
edit_feed_perms.h
edit_gpi.cpp
edit_gpi.h
edit_group.cpp
edit_group.h
edit_hostvar.cpp
edit_hostvar.h
edit_hotkeys.cpp
edit_hotkeys.h
edit_jack.cpp
edit_jack.h
edit_jack_client.cpp
edit_jack_client.h
edit_livewiregpio.cpp
edit_livewiregpio.h
edit_matrix.cpp
edit_matrix.h
edit_node.cpp
edit_node.h
edit_now_next.cpp
edit_now_next.h
edit_nownextplugin.cpp
edit_nownextplugin.h
edit_rdairplay.cpp
edit_rdairplay.h
edit_rdlibrary.cpp
edit_rdlibrary.h
edit_rdlogedit.cpp
edit_rdlogedit.h
edit_rdpanel.cpp
edit_rdpanel.h
edit_replicator.cpp
edit_replicator.h
edit_report.cpp
edit_report.h
edit_sas_resource.cpp
edit_sas_resource.h
edit_schedcodes.cpp
edit_schedcodes.h
edit_settings.cpp
edit_settings.h
edit_station.cpp
edit_station.h
edit_svc.cpp
edit_svc.h
edit_svc_perms.cpp
edit_svc_perms.h
edit_ttys.cpp
edit_ttys.h
edit_user.cpp
edit_user.h
edit_user_perms.cpp
edit_user_perms.h
edit_vguest_resource.cpp
edit_vguest_resource.h
globals.h
help_audios.cpp
help_audios.h
importfields.cpp
importfields.h
info_banner1.xpm
info_banner2.xpm
info_dialog.cpp
info_dialog.h
list_aux_fields.cpp
list_aux_fields.h
list_dropboxes.cpp
list_dropboxes.h
list_encoders.cpp
list_encoders.h
list_endpoints.cpp
list_endpoints.h
list_feeds.cpp
list_feeds.h
list_gpis.cpp
list_gpis.h
list_groups.cpp
list_groups.h
list_hostvars.cpp
list_hostvars.h
list_livewiregpios.cpp
list_livewiregpios.h
list_matrices.cpp
list_matrices.h
list_nodes.cpp
list_nodes.h
list_replicator_carts.cpp
list_replicator_carts.h
list_replicators.cpp
list_replicators.h
list_reports.cpp
list_reports.h
list_sas_resources.cpp
list_sas_resources.h
list_schedcodes.cpp
list_schedcodes.h
list_stations.cpp
list_stations.h
list_svcs.cpp
list_svcs.h
list_users.cpp
list_users.h
list_vguest_resources.cpp
list_vguest_resources.h
login.cpp
login.h
mysql_login.cpp
mysql_login.h
opendb.cpp
opendb.h
rdadmin.cpp
rdadmin.h
rdadmin.pro
rdadmin_cs.ts
rdadmin_de.ts
rdadmin_es.ts
rdadmin_fr.ts
rdadmin_nb.ts
rdadmin_nn.ts
rdadmin_pt_BR.ts
rename_group.cpp
rename_group.h
test_import.cpp
test_import.h
view_adapters.cpp
view_adapters.h
view_node_info.cpp
view_node_info.h
xpm_info_banner1.cpp
xpm_info_banner2.cpp
rdairplay
rdcartslots
rdcastmanager
rdcatch
rdcatchd
rdhpi
rdlibrary
rdlogedit
rdlogin
rdlogmanager
rdmonitor
rdpanel
rdrepld
rdselect
ripcd
rlm
scripts
tests
utils
web
xdg
.gitignore
AUTHORS
CODINGSTYLE
COPYING
ChangeLog
INSTALL
Makefile.am
NEWS
PACKAGE_VERSION
README
UPGRADING
acinclude.m4
autogen.sh
build_win32.bat
configure.ac
get_distro.pl
get_target.sh
install-init.sh
make_slack.in
rdrepld-suse.in
rivendell-gentoo
rivendell-suse.in
rivendell.ism
rivendell.pro
rivendell.spec.in
rivendell.sys
slack-desc.in
slack_doinst.sh
Rivendellaudio/rdadmin/list_dropboxes.cpp
Fred Gleason 698b475933 2016-05-24 Fred Gleason <fredg@paravelsystems.com>
* Removed all CVS tags.
	* Removed 'const char *name' parameter from all QObject contructors.
2016-05-24 13:13:26 -04:00

310 lines
8.9 KiB
C++

// list_dropboxes.cpp
//
// List Rivendell Dropboxes
//
// (C) Copyright 2002,2016 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
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#include <qdialog.h>
#include <qstring.h>
#include <qpushbutton.h>
#include <qlistbox.h>
#include <qtextedit.h>
#include <qlabel.h>
#include <qpainter.h>
#include <qevent.h>
#include <qmessagebox.h>
#include <qbuttongroup.h>
#include <rddb.h>
#include <list_dropboxes.h>
#include <edit_dropbox.h>
ListDropboxes::ListDropboxes(const QString &stationname,QWidget *parent)
: QDialog(parent,"",true)
{
list_stationname=stationname;
//
// Fix the Window Size
//
setMinimumWidth(sizeHint().width());
setMinimumHeight(sizeHint().height());
setCaption(QString().sprintf("Rivendell Dropbox Configurations on %s",
(const char *)stationname));
//
// Create Fonts
//
QFont font=QFont("Helvetica",12,QFont::Bold);
font.setPixelSize(12);
QFont list_font=QFont("Helvetica",12,QFont::Normal);
list_font.setPixelSize(12);
QFont small_font=QFont("Helvetica",10,QFont::Normal);
small_font.setPixelSize(10);
//
// Add Button
//
list_add_button=new QPushButton(this);
list_add_button->setFont(font);
list_add_button->setText(tr("&Add"));
connect(list_add_button,SIGNAL(clicked()),this,SLOT(addData()));
//
// Edit Button
//
list_edit_button=new QPushButton(this);
list_edit_button->setFont(font);
list_edit_button->setText(tr("&Edit"));
connect(list_edit_button,SIGNAL(clicked()),this,SLOT(editData()));
//
// Delete Button
//
list_delete_button=new QPushButton(this);
list_delete_button->setFont(font);
list_delete_button->setText(tr("&Delete"));
connect(list_delete_button,SIGNAL(clicked()),this,SLOT(deleteData()));
//
// Close Button
//
list_close_button=new QPushButton(this);
list_close_button->setDefault(true);
list_close_button->setFont(font);
list_close_button->setText(tr("&Close"));
connect(list_close_button,SIGNAL(clicked()),this,SLOT(closeData()));
//
// Group List
//
list_dropboxes_view=new RDListView(this);
list_dropboxes_view->setFont(list_font);
list_dropboxes_view->setAllColumnsShowFocus(true);
list_dropboxes_view->addColumn(tr("Group"));
list_dropboxes_view->setColumnAlignment(0,Qt::AlignVCenter|Qt::AlignLeft);
list_dropboxes_view->addColumn(tr("Path"));
list_dropboxes_view->setColumnAlignment(1,Qt::AlignVCenter|Qt::AlignLeft);
list_dropboxes_view->addColumn(tr("Normalization Level"));
list_dropboxes_view->setColumnAlignment(2,Qt::AlignCenter);
list_dropboxes_view->addColumn(tr("Autotrim Level"));
list_dropboxes_view->setColumnAlignment(3,Qt::AlignCenter);
list_dropboxes_view->addColumn(tr("To Cart"));
list_dropboxes_view->setColumnAlignment(4,Qt::AlignCenter);
list_dropboxes_view->addColumn(tr("Use CartChunk ID"));
list_dropboxes_view->setColumnAlignment(5,Qt::AlignCenter);
list_dropboxes_view->addColumn(tr("Delete Cuts"));
list_dropboxes_view->setColumnAlignment(6,Qt::AlignCenter);
list_dropboxes_view->addColumn(tr("Metadata Pattern"));
list_dropboxes_view->setColumnAlignment(7,Qt::AlignCenter);
list_dropboxes_view->addColumn(tr("Fix Broken Formats"));
list_dropboxes_view->setColumnAlignment(8,Qt::AlignCenter);
list_dropboxes_view->addColumn(tr("User Defined"));
list_dropboxes_view->setColumnAlignment(9,Qt::AlignVCenter|Qt::AlignLeft);
connect(list_dropboxes_view,
SIGNAL(doubleClicked(QListViewItem *,const QPoint &,int)),
this,
SLOT(doubleClickedData(QListViewItem *,const QPoint &,int)));
RefreshList();
}
ListDropboxes::~ListDropboxes()
{
}
QSize ListDropboxes::sizeHint() const
{
return QSize(640,420);
}
QSizePolicy ListDropboxes::sizePolicy() const
{
return QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
}
void ListDropboxes::addData()
{
RDDropbox *box=new RDDropbox(-1,list_stationname);
int id=box->id();
delete box;
EditDropbox *edit_dropbox=new EditDropbox(id,this);
if(edit_dropbox->exec()<0) {
QString sql=QString().sprintf("delete from DROPBOXES where ID=%d",id);
RDSqlQuery *q=new RDSqlQuery(sql);
delete q;
delete edit_dropbox;
return;
}
RDListViewItem *item=new RDListViewItem(list_dropboxes_view);
item->setId(id);
RefreshItem(item);
item->setSelected(true);
list_dropboxes_view->setCurrentItem(item);
list_dropboxes_view->ensureItemVisible(item);
}
void ListDropboxes::editData()
{
RDListViewItem *item=(RDListViewItem *)list_dropboxes_view->selectedItem();
if(item==NULL) {
return;
}
EditDropbox *edit_dropbox=new EditDropbox(item->id(),this);
edit_dropbox->exec();
delete edit_dropbox;
RefreshItem(item);
}
void ListDropboxes::deleteData()
{
QString sql;
RDSqlQuery *q;
RDListViewItem *item=(RDListViewItem *)list_dropboxes_view->selectedItem();
if(item==NULL) {
return;
}
sql=QString().sprintf("delete from DROPBOX_PATHS where DROPBOX_ID=%d",
item->id());
q=new RDSqlQuery(sql);
delete q;
sql=QString().sprintf("delete from DROPBOXES where ID=%d",item->id());
q=new RDSqlQuery(sql);
delete q;
delete item;
}
void ListDropboxes::doubleClickedData(QListViewItem *item,const QPoint &pt,
int col)
{
editData();
}
void ListDropboxes::closeData()
{
done(0);
}
void ListDropboxes::resizeEvent(QResizeEvent *e)
{
list_add_button->setGeometry(size().width()-90,10,80,50);
list_edit_button->setGeometry(size().width()-90,70,80,50);
list_delete_button->setGeometry(size().width()-90,130,80,50);
list_close_button->setGeometry(size().width()-90,size().height()-60,80,50);
list_dropboxes_view->
setGeometry(10,10,size().width()-120,size().height()-40);
}
void ListDropboxes::RefreshList()
{
QString sql;
RDSqlQuery *q;
RDListViewItem *item;
list_dropboxes_view->clear();
sql=QString().sprintf("select DROPBOXES.ID,DROPBOXES.GROUP_NAME,\
DROPBOXES.PATH,DROPBOXES.NORMALIZATION_LEVEL,\
DROPBOXES.AUTOTRIM_LEVEL,\
DROPBOXES.TO_CART,DROPBOXES.USE_CARTCHUNK_ID,\
DROPBOXES.DELETE_CUTS,DROPBOXES.METADATA_PATTERN,\
DROPBOXES.FIX_BROKEN_FORMATS,\
DROPBOXES.SET_USER_DEFINED,GROUPS.COLOR \
from DROPBOXES left join GROUPS on \
DROPBOXES.GROUP_NAME=GROUPS.NAME \
where DROPBOXES.STATION_NAME=\"%s\"",
(const char *)list_stationname);
q=new RDSqlQuery(sql);
while (q->next()) {
item=new RDListViewItem(list_dropboxes_view);
WriteItem(item,q);
}
delete q;
}
void ListDropboxes::RefreshItem(RDListViewItem *item)
{
QString sql;
RDSqlQuery *q;
sql=QString().sprintf("select DROPBOXES.ID,DROPBOXES.GROUP_NAME,\
DROPBOXES.PATH,DROPBOXES.NORMALIZATION_LEVEL,\
DROPBOXES.AUTOTRIM_LEVEL,\
DROPBOXES.TO_CART,DROPBOXES.USE_CARTCHUNK_ID,\
DROPBOXES.DELETE_CUTS,DROPBOXES.METADATA_PATTERN,\
DROPBOXES.FIX_BROKEN_FORMATS,\
DROPBOXES.SET_USER_DEFINED,GROUPS.COLOR \
from DROPBOXES left join GROUPS on \
DROPBOXES.GROUP_NAME=GROUPS.NAME \
where DROPBOXES.ID=%d",item->id());
q=new RDSqlQuery(sql);
if(q->next()) {
WriteItem(item,q);
}
delete q;
}
void ListDropboxes::WriteItem(RDListViewItem *item,RDSqlQuery *q)
{
item->setId(q->value(0).toInt());
item->setText(0,q->value(1).toString());
item->setTextColor(0,q->value(11).toString(),QFont::Bold);
item->setText(1,q->value(2).toString());
if(q->value(3).toInt()<0) {
item->setText(2,QString().sprintf("%d",q->value(3).toInt()/100));
}
else {
item->setText(2,tr("[off]"));
}
if(q->value(4).toInt()<0) {
item->setText(3,QString().sprintf("%d",q->value(4).toInt()/100));
}
else {
item->setText(3,tr("[off]"));
}
if(q->value(5).toUInt()>0) {
item->setText(4,QString().sprintf("%06u",q->value(5).toUInt()));
}
else {
item->setText(4,tr("[auto]"));
}
item->setText(5,q->value(6).toString());
item->setText(6,q->value(7).toString());
if(q->value(8).toString().isEmpty()) {
item->setText(7,tr("[none]"));
}
else {
item->setText(7,q->value(8).toString());
}
item->setText(8,q->value(9).toString());
item->setText(9,q->value(10).toString());
}