mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-04 08:04:12 +01:00 
			
		
		
		
	* Refactored the RDListLogs class to use RDApplication. * Converted rdadmin(1) to use RDApplication.
		
			
				
	
	
		
			579 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			579 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// edit_now_next.cpp
 | 
						|
//
 | 
						|
// Edit the Now & Next Configuration for a Rivendell Workstation.
 | 
						|
//
 | 
						|
//   (C) Copyright 2002-2004,2016-2018 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 <qmessagebox.h>
 | 
						|
#include <qsignalmapper.h>
 | 
						|
 | 
						|
#include <rdapplication.h>
 | 
						|
#include <rdescape_string.h>
 | 
						|
#include <rdlistviewitem.h>
 | 
						|
#include <rdcart_dialog.h>
 | 
						|
#include <rdtextvalidator.h>
 | 
						|
 | 
						|
#include "edit_now_next.h"
 | 
						|
#include "edit_nownextplugin.h"
 | 
						|
#include "globals.h"
 | 
						|
 | 
						|
EditNowNext::EditNowNext(RDAirPlayConf *conf,QWidget *parent)
 | 
						|
  : QDialog(parent,"",true)
 | 
						|
{
 | 
						|
  QString sql;
 | 
						|
  RDSqlQuery *q;
 | 
						|
  RDListViewItem *item;
 | 
						|
 | 
						|
  nownext_conf=conf;
 | 
						|
 | 
						|
  //
 | 
						|
  // Create Fonts
 | 
						|
  //
 | 
						|
  QFont normal_font=QFont("Helvetica",12,QFont::Normal);
 | 
						|
  normal_font.setPixelSize(12);
 | 
						|
  QFont font=QFont("Helvetica",12,QFont::Bold);
 | 
						|
  font.setPixelSize(12);
 | 
						|
  QFont section_font=QFont("Helvetica",14,QFont::Bold);
 | 
						|
  section_font.setPixelSize(14);
 | 
						|
 | 
						|
  //
 | 
						|
  // Fix the Window Size
 | 
						|
  //
 | 
						|
  setMinimumWidth(sizeHint().width());
 | 
						|
  setMaximumWidth(sizeHint().width());
 | 
						|
  setMinimumHeight(sizeHint().height());
 | 
						|
  setMaximumHeight(sizeHint().height());
 | 
						|
 | 
						|
  setCaption(tr("Edit Now & Next Data"));
 | 
						|
 | 
						|
  //
 | 
						|
  // Text Validator
 | 
						|
  //
 | 
						|
  RDTextValidator *validator=new RDTextValidator(this);
 | 
						|
  QIntValidator *int_validator=new QIntValidator(1,999999,this);
 | 
						|
 | 
						|
  //
 | 
						|
  // Button Mappers
 | 
						|
  //
 | 
						|
  QSignalMapper *now_mapper=new QSignalMapper(this);
 | 
						|
  connect(now_mapper,SIGNAL(mapped(int)),this,SLOT(editNowcartData(int)));
 | 
						|
  QSignalMapper *next_mapper=new QSignalMapper(this);
 | 
						|
  connect(next_mapper,SIGNAL(mapped(int)),this,SLOT(editNextcartData(int)));
 | 
						|
 | 
						|
  //
 | 
						|
  // Master Log Label
 | 
						|
  //
 | 
						|
  QLabel *label=new QLabel(tr("Master Log"),this);
 | 
						|
  label->setGeometry(10,7,100,19);
 | 
						|
  label->setFont(section_font);
 | 
						|
  label->setAlignment(AlignLeft|AlignVCenter);
 | 
						|
 | 
						|
  //
 | 
						|
  // Master Log UDP Address
 | 
						|
  //
 | 
						|
  nownext_address_edit[0]=new QLineEdit(this);
 | 
						|
  nownext_address_edit[0]->setGeometry(135,33,120,19);
 | 
						|
  label=new QLabel(nownext_address_edit[0],tr("IP Address:"),this);
 | 
						|
  label->setGeometry(10,33,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Master Log UDP Port
 | 
						|
  //
 | 
						|
  nownext_port_spin[0]=new QSpinBox(this);
 | 
						|
  nownext_port_spin[0]->setGeometry(375,33,60,19);
 | 
						|
  nownext_port_spin[0]->setRange(0,65535);
 | 
						|
  label=new QLabel(nownext_port_spin[0],tr("UDP Port:"),this);
 | 
						|
  label->setGeometry(270,33,100,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Master Log UDP String
 | 
						|
  //
 | 
						|
  nownext_string_edit[0]=new QLineEdit(this);
 | 
						|
  nownext_string_edit[0]->setGeometry(135,55,sizeHint().width()-145,19);
 | 
						|
  label=new QLabel(nownext_string_edit[0],tr("UDP String:"),this);
 | 
						|
  label->setGeometry(10,55,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Master Log RML
 | 
						|
  //
 | 
						|
  nownext_rml_edit[0]=new QLineEdit(this);
 | 
						|
  nownext_rml_edit[0]->setGeometry(135,77,sizeHint().width()-145,19);
 | 
						|
  nownext_rml_edit[0]->setValidator(validator);
 | 
						|
  label=new QLabel(nownext_rml_edit[0],tr("RML:"),this);
 | 
						|
  label->setGeometry(10,77,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Main Log Default Now Cart
 | 
						|
  //
 | 
						|
  nownext_nowcart_edit[0]=new QLineEdit(this);
 | 
						|
  nownext_nowcart_edit[0]->setGeometry(135,104,60,19);
 | 
						|
  nownext_nowcart_edit[0]->setValidator(int_validator);
 | 
						|
  label=new QLabel(nownext_nowcart_edit[0],tr("Default Now Cart:"),this);
 | 
						|
  label->setGeometry(10,104,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
  QPushButton *button=new QPushButton(this);
 | 
						|
  button->setGeometry(205,101,50,26);
 | 
						|
  button->setFont(normal_font);
 | 
						|
  button->setText(tr("Select"));
 | 
						|
  now_mapper->setMapping(button,0);
 | 
						|
  connect(button,SIGNAL(clicked()),now_mapper,SLOT(map()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Main Log Default Next Cart
 | 
						|
  //
 | 
						|
  nownext_nextcart_edit[0]=new QLineEdit(this);
 | 
						|
  nownext_nextcart_edit[0]->setGeometry(135,136,60,19);
 | 
						|
  nownext_nextcart_edit[0]->setValidator(int_validator);
 | 
						|
  label=new QLabel(nownext_nextcart_edit[0],tr("Default Next Cart:"),this);
 | 
						|
  label->setGeometry(10,136,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
  button=new QPushButton(this);
 | 
						|
  button->setGeometry(205,132,50,26);
 | 
						|
  button->setFont(normal_font);
 | 
						|
  button->setText(tr("Select"));
 | 
						|
  next_mapper->setMapping(button,0);
 | 
						|
  connect(button,SIGNAL(clicked()),next_mapper,SLOT(map()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 1 Label
 | 
						|
  //
 | 
						|
  label=new QLabel(tr("Aux Log 1"),this);
 | 
						|
  label->setGeometry(10,175,100,19);
 | 
						|
  label->setFont(section_font);
 | 
						|
  label->setAlignment(AlignLeft|AlignVCenter);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 1 UDP Address
 | 
						|
  //
 | 
						|
  nownext_address_edit[1]=new QLineEdit(this);
 | 
						|
  nownext_address_edit[1]->setGeometry(135,201,120,19);
 | 
						|
  label=new QLabel(nownext_address_edit[1],tr("IP Address:"),this);
 | 
						|
  label->setGeometry(10,201,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 1 UDP Port
 | 
						|
  //
 | 
						|
  nownext_port_spin[1]=new QSpinBox(this);
 | 
						|
  nownext_port_spin[1]->setGeometry(375,201,60,19);
 | 
						|
  nownext_port_spin[1]->setRange(0,65535);
 | 
						|
  label=new QLabel(nownext_port_spin[1],tr("UDP Port:"),this);
 | 
						|
  label->setGeometry(270,201,100,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 1 UDP String
 | 
						|
  //
 | 
						|
  nownext_string_edit[1]=new QLineEdit(this);
 | 
						|
  nownext_string_edit[1]->setGeometry(135,223,sizeHint().width()-145,19);
 | 
						|
  label=new QLabel(nownext_string_edit[1],tr("UDP String:"),this);
 | 
						|
  label->setGeometry(10,223,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 1 RML
 | 
						|
  //
 | 
						|
  nownext_rml_edit[1]=new QLineEdit(this);
 | 
						|
  nownext_rml_edit[1]->setGeometry(135,245,sizeHint().width()-145,19);
 | 
						|
  nownext_rml_edit[1]->setValidator(validator);
 | 
						|
  label=new QLabel(nownext_rml_edit[1],tr("RML:"),this);
 | 
						|
  label->setGeometry(10,245,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux 1 Log Default Now Cart
 | 
						|
  //
 | 
						|
  nownext_nowcart_edit[1]=new QLineEdit(this);
 | 
						|
  nownext_nowcart_edit[1]->setGeometry(135,272,60,19);
 | 
						|
  nownext_nowcart_edit[1]->setValidator(int_validator);
 | 
						|
  label=new QLabel(nownext_nowcart_edit[1],tr("Default Now Cart:"),this);
 | 
						|
  label->setGeometry(10,272,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
  button=new QPushButton(this);
 | 
						|
  button->setGeometry(205,269,50,26);
 | 
						|
  button->setFont(normal_font);
 | 
						|
  button->setText(tr("Select"));
 | 
						|
  now_mapper->setMapping(button,1);
 | 
						|
  connect(button,SIGNAL(clicked()),now_mapper,SLOT(map()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux 1 Log Default Next Cart
 | 
						|
  //
 | 
						|
  nownext_nextcart_edit[1]=new QLineEdit(this);
 | 
						|
  nownext_nextcart_edit[1]->setGeometry(135,304,60,19);
 | 
						|
  nownext_nextcart_edit[1]->setValidator(int_validator);
 | 
						|
  label=new QLabel(nownext_nextcart_edit[1],tr("Default Next Cart:"),this);
 | 
						|
  label->setGeometry(10,304,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
  button=new QPushButton(this);
 | 
						|
  button->setGeometry(205,300,50,26);
 | 
						|
  button->setFont(normal_font);
 | 
						|
  button->setText(tr("Select"));
 | 
						|
  next_mapper->setMapping(button,1);
 | 
						|
  connect(button,SIGNAL(clicked()),next_mapper,SLOT(map()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 2 Label
 | 
						|
  //
 | 
						|
  label=new QLabel(tr("Aux Log 2"),this);
 | 
						|
  label->setGeometry(10,343,100,19);
 | 
						|
  label->setFont(section_font);
 | 
						|
  label->setAlignment(AlignLeft|AlignVCenter);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 2 UDP Address
 | 
						|
  //
 | 
						|
  nownext_address_edit[2]=new QLineEdit(this);
 | 
						|
  nownext_address_edit[2]->setGeometry(135,369,120,19);
 | 
						|
  label=new QLabel(nownext_address_edit[2],tr("IP Address:"),this);
 | 
						|
  label->setGeometry(10,369,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 2 UDP Port
 | 
						|
  //
 | 
						|
  nownext_port_spin[2]=new QSpinBox(this);
 | 
						|
  nownext_port_spin[2]->setGeometry(375,369,60,19);
 | 
						|
  nownext_port_spin[2]->setRange(0,65535);
 | 
						|
  label=new QLabel(nownext_port_spin[2],tr("UDP Port:"),this);
 | 
						|
  label->setGeometry(270,369,100,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 2 UDP String
 | 
						|
  //
 | 
						|
  nownext_string_edit[2]=new QLineEdit(this);
 | 
						|
  nownext_string_edit[2]->setGeometry(135,391,sizeHint().width()-145,19);
 | 
						|
  label=new QLabel(nownext_string_edit[2],tr("UDP String:"),this);
 | 
						|
  label->setGeometry(10,391,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux Log 2 RML
 | 
						|
  //
 | 
						|
  nownext_rml_edit[2]=new QLineEdit(this);
 | 
						|
  nownext_rml_edit[2]->setGeometry(135,413,sizeHint().width()-145,19);
 | 
						|
  nownext_rml_edit[2]->setValidator(validator);
 | 
						|
  label=new QLabel(nownext_rml_edit[2],tr("RML:"),this);
 | 
						|
  label->setGeometry(10,413,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux 1 Log Default Now Cart
 | 
						|
  //
 | 
						|
  nownext_nowcart_edit[2]=new QLineEdit(this);
 | 
						|
  nownext_nowcart_edit[2]->setGeometry(135,440,60,19);
 | 
						|
  nownext_nowcart_edit[2]->setValidator(int_validator);
 | 
						|
  label=new QLabel(nownext_nowcart_edit[2],tr("Default Now Cart:"),this);
 | 
						|
  label->setGeometry(10,440,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
  button=new QPushButton(this);
 | 
						|
  button->setGeometry(205,437,50,26);
 | 
						|
  button->setFont(normal_font);
 | 
						|
  button->setText(tr("Select"));
 | 
						|
  now_mapper->setMapping(button,2);
 | 
						|
  connect(button,SIGNAL(clicked()),now_mapper,SLOT(map()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Aux 1 Log Default Next Cart
 | 
						|
  //
 | 
						|
  nownext_nextcart_edit[2]=new QLineEdit(this);
 | 
						|
  nownext_nextcart_edit[2]->setGeometry(135,472,60,19);
 | 
						|
  nownext_nextcart_edit[2]->setValidator(int_validator);
 | 
						|
  label=new QLabel(nownext_nextcart_edit[2],tr("Default Next Cart:"),this);
 | 
						|
  label->setGeometry(10,472,120,19);
 | 
						|
  label->setFont(font);
 | 
						|
  label->setAlignment(AlignRight|AlignVCenter|ShowPrefix);
 | 
						|
  button=new QPushButton(this);
 | 
						|
  button->setGeometry(205,469,50,26);
 | 
						|
  button->setFont(normal_font);
 | 
						|
  button->setText(tr("Select"));
 | 
						|
  next_mapper->setMapping(button,2);
 | 
						|
  connect(button,SIGNAL(clicked()),next_mapper,SLOT(map()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Plugin List
 | 
						|
  //
 | 
						|
  nownext_plugin_list=new RDListView(this);
 | 
						|
  nownext_plugin_list->setGeometry(10,540,sizeHint().width()-20,120);
 | 
						|
  nownext_plugin_list->setItemMargin(5);
 | 
						|
  nownext_plugin_list->addColumn(tr("Path"));
 | 
						|
  nownext_plugin_list->setColumnAlignment(0,AlignLeft|AlignVCenter);
 | 
						|
  nownext_plugin_list->addColumn(tr("Argument"));
 | 
						|
  nownext_plugin_list->setColumnAlignment(1,AlignLeft|AlignVCenter);
 | 
						|
  nownext_plugin_list->setAllColumnsShowFocus(true);
 | 
						|
  connect(nownext_plugin_list,
 | 
						|
	  SIGNAL(doubleClicked(QListViewItem *,const QPoint &,int)),
 | 
						|
	  this,
 | 
						|
	  SLOT(pluginDoubleClickedData(QListViewItem *,const QPoint &,int)));
 | 
						|
 | 
						|
  label=new QLabel(nownext_plugin_list,tr("Loadable Modules:"),this);
 | 
						|
  label->setGeometry(10,518,sizeHint().width()-20,19);
 | 
						|
  label->setFont(section_font);
 | 
						|
  label->setAlignment(AlignLeft|AlignVCenter|ShowPrefix);
 | 
						|
 | 
						|
  nownext_add_button=new QPushButton(tr("Add"),this);
 | 
						|
  nownext_add_button->setGeometry(sizeHint().width()-210,665,60,25);
 | 
						|
  nownext_add_button->setFont(font);
 | 
						|
  connect(nownext_add_button,SIGNAL(clicked()),this,SLOT(addPluginData()));
 | 
						|
 | 
						|
  nownext_edit_button=new QPushButton(tr("Edit"),this);
 | 
						|
  nownext_edit_button->setGeometry(sizeHint().width()-140,665,60,25);
 | 
						|
  nownext_edit_button->setFont(font);
 | 
						|
  connect(nownext_edit_button,SIGNAL(clicked()),this,SLOT(editPluginData()));
 | 
						|
 | 
						|
  nownext_delete_button=new QPushButton(tr("Delete"),this);
 | 
						|
  nownext_delete_button->setGeometry(sizeHint().width()-70,665,60,25);
 | 
						|
  nownext_delete_button->setFont(font);
 | 
						|
  connect(nownext_delete_button,SIGNAL(clicked()),
 | 
						|
	  this,SLOT(deletePluginData()));
 | 
						|
 | 
						|
  //
 | 
						|
  //  Ok Button
 | 
						|
  //
 | 
						|
  QPushButton *ok_button=new QPushButton(this);
 | 
						|
  ok_button->setGeometry(sizeHint().width()-180,sizeHint().height()-60,80,50);
 | 
						|
  ok_button->setDefault(true);
 | 
						|
  ok_button->setFont(font);
 | 
						|
  ok_button->setText(tr("&OK"));
 | 
						|
  connect(ok_button,SIGNAL(clicked()),this,SLOT(okData()));
 | 
						|
 | 
						|
  //
 | 
						|
  //  Cancel Button
 | 
						|
  //
 | 
						|
  QPushButton *cancel_button=new QPushButton(this);
 | 
						|
  cancel_button->
 | 
						|
    setGeometry(sizeHint().width()-90,sizeHint().height()-60,80,50);
 | 
						|
  cancel_button->setFont(font);
 | 
						|
  cancel_button->setText(tr("&Cancel"));
 | 
						|
  connect(cancel_button,SIGNAL(clicked()),this,SLOT(cancelData()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Populate Fields
 | 
						|
  //
 | 
						|
  for(int i=0;i<3;i++) {
 | 
						|
    nownext_address_edit[i]->setText(nownext_conf->udpAddress(i).toString());
 | 
						|
    nownext_port_spin[i]->setValue(nownext_conf->udpPort(i));
 | 
						|
    nownext_string_edit[i]->setText(nownext_conf->udpString(i));
 | 
						|
    nownext_rml_edit[i]->setText(nownext_conf->logRml(i));
 | 
						|
    if(nownext_conf->logNowCart(i)>0) {
 | 
						|
      nownext_nowcart_edit[i]->
 | 
						|
	setText(QString().sprintf("%06u",nownext_conf->logNowCart(i)));
 | 
						|
    }
 | 
						|
    if(nownext_conf->logNextCart(i)>0) {
 | 
						|
      nownext_nextcart_edit[i]->
 | 
						|
	setText(QString().sprintf("%06u",nownext_conf->logNextCart(i)));
 | 
						|
    }
 | 
						|
  }
 | 
						|
  sql=QString().sprintf("select ID,PLUGIN_PATH,PLUGIN_ARG \
 | 
						|
                           from NOWNEXT_PLUGINS		  \
 | 
						|
                           where (STATION_NAME=\"%s\")&&  \
 | 
						|
                           (LOG_MACHINE=0)",
 | 
						|
			(const char *)nownext_conf->station());
 | 
						|
  q=new RDSqlQuery(sql);
 | 
						|
  while(q->next()) {
 | 
						|
    item=new RDListViewItem(nownext_plugin_list);
 | 
						|
    item->setId(q->value(0).toInt());
 | 
						|
    item->setText(0,q->value(1).toString());
 | 
						|
    item->setText(1,q->value(2).toString());
 | 
						|
  }
 | 
						|
  delete q;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
EditNowNext::~EditNowNext()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QSize EditNowNext::sizeHint() const
 | 
						|
{
 | 
						|
  return QSize(445,770);
 | 
						|
} 
 | 
						|
 | 
						|
 | 
						|
QSizePolicy EditNowNext::sizePolicy() const
 | 
						|
{
 | 
						|
  return QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::addPluginData()
 | 
						|
{
 | 
						|
  QString path;
 | 
						|
  QString arg;
 | 
						|
  EditNowNextPlugin *d=new EditNowNextPlugin(&path,&arg,this);
 | 
						|
  if(d->exec()==0) {
 | 
						|
    RDListViewItem *item=new RDListViewItem(nownext_plugin_list);
 | 
						|
    item->setId(-1);
 | 
						|
    item->setText(0,path);
 | 
						|
    item->setText(1,arg);
 | 
						|
    nownext_plugin_list->ensureItemVisible(item);
 | 
						|
  }
 | 
						|
  delete d;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::editPluginData()
 | 
						|
{
 | 
						|
  RDListViewItem *item=
 | 
						|
    (RDListViewItem *)nownext_plugin_list->selectedItem();
 | 
						|
  if(item==NULL) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
  QString path=item->text(0);
 | 
						|
  QString arg=item->text(1);
 | 
						|
  EditNowNextPlugin *d=new EditNowNextPlugin(&path,&arg,this);
 | 
						|
  if(d->exec()==0) {
 | 
						|
    item->setText(0,path);
 | 
						|
    item->setText(1,arg);
 | 
						|
  }
 | 
						|
  delete d;  
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::deletePluginData()
 | 
						|
{
 | 
						|
  RDListViewItem *item=(RDListViewItem *)nownext_plugin_list->selectedItem();
 | 
						|
  if(item==NULL) {
 | 
						|
    return;
 | 
						|
  }
 | 
						|
  delete item;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::pluginDoubleClickedData(QListViewItem *item,const QPoint &pt,
 | 
						|
					int col)
 | 
						|
{
 | 
						|
  editPluginData();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::editNowcartData(int lognum)
 | 
						|
{
 | 
						|
  int cartnum=nownext_nowcart_edit[lognum]->text().toInt();
 | 
						|
  if(admin_cart_dialog->exec(&cartnum,RDCart::All,NULL,0,
 | 
						|
			     rda->user()->name(),rda->user()->password())==0) {
 | 
						|
    nownext_nowcart_edit[lognum]->setText(QString().sprintf("%06d",cartnum));
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::editNextcartData(int lognum)
 | 
						|
{
 | 
						|
  int cartnum=nownext_nextcart_edit[lognum]->text().toInt();
 | 
						|
  if(admin_cart_dialog->exec(&cartnum,RDCart::All,NULL,0,
 | 
						|
			     rda->user()->name(),rda->user()->password())==0) {
 | 
						|
    nownext_nextcart_edit[lognum]->setText(QString().sprintf("%06d",cartnum));
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::okData()
 | 
						|
{
 | 
						|
  QHostAddress addr[3];
 | 
						|
  QString str1;
 | 
						|
  QString str2;
 | 
						|
  QString sql;
 | 
						|
  RDSqlQuery *q;
 | 
						|
  RDListViewItem *item;
 | 
						|
 | 
						|
  for(int i=0;i<3;i++) {
 | 
						|
    if(nownext_address_edit[i]->text().isEmpty()) {
 | 
						|
      nownext_address_edit[i]->setText("0.0.0.0");
 | 
						|
    }
 | 
						|
    if(!addr[i].setAddress(nownext_address_edit[i]->text())) {
 | 
						|
      str1=QString(tr("The IP address"));
 | 
						|
      str2=QString(tr("is invalid!"));
 | 
						|
      QMessageBox::warning(this,tr("Invalid Address"),
 | 
						|
			   QString().
 | 
						|
			   sprintf("%s \"%s\" %s",(const char *)str1,
 | 
						|
				   (const char *)nownext_address_edit[i]->
 | 
						|
				   text(),
 | 
						|
				   (const char *)str2));
 | 
						|
      return;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  for(int i=0;i<3;i++) {
 | 
						|
    nownext_conf->setUdpAddress(i,addr[i]);
 | 
						|
    nownext_conf->setUdpPort(i,(Q_UINT16)nownext_port_spin[i]->value());
 | 
						|
    nownext_conf->setUdpString(i,nownext_string_edit[i]->text());
 | 
						|
    nownext_conf->setLogRml(i,nownext_rml_edit[i]->text());
 | 
						|
    if(nownext_nowcart_edit[i]->text().isEmpty()) {
 | 
						|
      nownext_conf->setLogNowCart(i,0);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      nownext_conf->setLogNowCart(i,nownext_nowcart_edit[i]->text().toUInt());
 | 
						|
    }
 | 
						|
    if(nownext_nextcart_edit[i]->text().isEmpty()) {
 | 
						|
      nownext_conf->setLogNextCart(i,0);
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      nownext_conf->setLogNextCart(i,nownext_nextcart_edit[i]->text().toUInt());
 | 
						|
    }
 | 
						|
    sql=QString().sprintf("delete from NOWNEXT_PLUGINS where \
 | 
						|
                           (STATION_NAME=\"%s\")&&(LOG_MACHINE=%d)",
 | 
						|
			  (const char *)RDEscapeString(nownext_conf->station()),
 | 
						|
			  i);
 | 
						|
    q=new RDSqlQuery(sql);
 | 
						|
    delete q;
 | 
						|
  }
 | 
						|
  item=(RDListViewItem *)nownext_plugin_list->firstChild();
 | 
						|
  while(item!=NULL) {
 | 
						|
    sql=QString().sprintf("insert into NOWNEXT_PLUGINS set \
 | 
						|
                           STATION_NAME=\"%s\",	   \
 | 
						|
                           LOG_MACHINE=0,		   \
 | 
						|
                           PLUGIN_PATH=\"%s\",	   \
 | 
						|
                           PLUGIN_ARG=\"%s\"",
 | 
						|
			  (const char *)
 | 
						|
			  RDEscapeString(nownext_conf->station()),
 | 
						|
			  (const char *)RDEscapeString(item->text(0)),
 | 
						|
			  (const char *)RDEscapeString(item->text(1)));
 | 
						|
    q=new RDSqlQuery(sql);
 | 
						|
    delete q;
 | 
						|
    item=(RDListViewItem *)item->nextSibling();
 | 
						|
  }
 | 
						|
  done(0);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void EditNowNext::cancelData()
 | 
						|
{
 | 
						|
  done(-1);
 | 
						|
}
 |