MainWidget::MainWidget(QWidget *parent) :QWidget(parent) { new RDApplication(RDApplication::Gui,"rdcartslots",RDCARTSLOTS_USAGE); // // Force a reasonable default font. // QFont mfont("helvetica",12,QFont::Normal); mfont.setPixelSize(12); qApp->setFont(mfont); // // Create Icons // lib_rivendell_map=new QPixmap(rivendell_xpm); setIcon(*lib_rivendell_map); // // Ensure that system daemons are running // RDInitializeDaemons(); // // CAE Connection // rda->cae()->connectHost(); // // RIPC Connection // connect(rda->ripc(),SIGNAL(userChanged()),this,SLOT(userData())); connect(rda->ripc(),SIGNAL(rmlReceived(RDMacro *)), this,SLOT(rmlReceivedData(RDMacro *))); // // Service Picker // panel_svcs_dialog=new RDListSvcs(tr("RDCartSlots"),this); // // Macro Player // panel_player=new RDEventPlayer(rda->ripc(),this); // // Dialogs // panel_cart_dialog= new RDCartDialog(&panel_filter,&panel_group,&panel_schedcode,this); panel_slot_dialog=new RDSlotDialog(tr("RDCartSlots"),this); panel_cue_dialog=new RDCueEditDialog(rda->station()->cueCard(), rda->station()->cuePort(), tr("RDCartSlots"),this); // // Cart Slots // QTimer *timer=new QTimer(this); for(int i=0;i<rda->station()->cartSlotColumns();i++) { for(int j=0;j<rda->station()->cartSlotRows();j++) { panel_slots. push_back(new RDCartSlot(panel_slots.size(),rda->ripc(),rda->cae(), rda->station(),rda->config(),panel_svcs_dialog, panel_slot_dialog,panel_cart_dialog, panel_cue_dialog,tr("RDCartSlots"), rda->airplayConf(),this)); panel_slots.back()-> setGeometry(10+i*(panel_slots.back()->sizeHint().width()+10), 10+j*(panel_slots.back()->sizeHint().height()+5), panel_slots.back()->sizeHint().width(), panel_slots.back()->sizeHint().height()); connect(timer,SIGNAL(timeout()), panel_slots.back(),SLOT(updateMeters())); } } timer->start(METER_INTERVAL); rda->ripc()->connectHost("localhost",RIPCD_TCP_PORT,rda->config()->password()); // // Fix the Window Size // #ifndef RESIZABLE setMinimumWidth(sizeHint().width()); setMaximumWidth(sizeHint().width()); setMinimumHeight(sizeHint().height()); setMaximumHeight(sizeHint().height()); #endif // RESIZABLE }
MainWidget::MainWidget(QWidget *parent) :QWidget(parent) { bool skip_db_check=false; unsigned schema=0; // // Force a reasonable default font. // QFont mfont("helvetica",12,QFont::Normal); mfont.setPixelSize(12); qApp->setFont(mfont); // // Load Local Configs // panel_config=new RDConfig(); panel_config->load(); // // Load the command-line arguments // RDCmdSwitch *cmd=new RDCmdSwitch(qApp->argc(),qApp->argv(),"rdcartslots", RDCARTSLOTS_USAGE); for(unsigned i=0;i<cmd->keys();i++) { if(cmd->key(i)=="--skip-db-check") { skip_db_check=true; } } // // Create Icons // lib_rivendell_map=new QPixmap(rivendell_xpm); setIcon(*lib_rivendell_map); // // Ensure that system daemons are running // RDInitializeDaemons(); // // Open Database // QString err; QSqlDatabase *db=RDInitDb(&schema,&err); if(!db) { QMessageBox::warning(this,tr("Can't Connect"),err); exit(0); } if((schema!=RD_VERSION_DATABASE)&&(!skip_db_check)) { fprintf(stderr, "rdcastmanager: database version mismatch, should be %u, is %u\n", RD_VERSION_DATABASE,schema); exit(256); } new RDDbHeartbeat(panel_config->mysqlHeartbeatInterval(),this); // // Allocate Global Resources // panel_station=new RDStation(panel_config->stationName()); panel_system=new RDSystem(); // // RDAirPlay Configuration // panel_airplay_conf=new RDAirPlayConf(panel_config->stationName(),"RDAIRPLAY"); // // CAE Connection // panel_cae=new RDCae(panel_station,panel_config,parent); panel_cae->connectHost(); // // RIPC Connection // panel_ripc=new RDRipc(panel_config->stationName()); connect(panel_ripc,SIGNAL(userChanged()),this,SLOT(userData())); connect(panel_ripc,SIGNAL(rmlReceived(RDMacro *)), this,SLOT(rmlReceivedData(RDMacro *))); // // User // panel_user=NULL; // // Service Picker // panel_svcs_dialog=new RDListSvcs(tr("RDCartSlots"),this); // // Macro Player // panel_player=new RDEventPlayer(panel_ripc,this); // // Dialogs // panel_cart_dialog=new RDCartDialog(&panel_filter,&panel_group, &panel_schedcode,panel_cae,panel_ripc, panel_station,panel_system,panel_config, this); panel_slot_dialog=new RDSlotDialog(tr("RDCartSlots"),this); panel_cue_dialog=new RDCueEditDialog(panel_cae,panel_station->cueCard(), panel_station->cuePort(), tr("RDCartSlots"),this); // // Cart Slots // QTimer *timer=new QTimer(this); for(int i=0;i<panel_station->cartSlotColumns();i++) { for(int j=0;j<panel_station->cartSlotRows();j++) { panel_slots. push_back(new RDCartSlot(panel_slots.size(),panel_ripc,panel_cae, panel_station,panel_config,panel_svcs_dialog, panel_slot_dialog,panel_cart_dialog, panel_cue_dialog,tr("RDCartSlots"), panel_airplay_conf,this)); panel_slots.back()-> setGeometry(10+i*(panel_slots.back()->sizeHint().width()+10), 10+j*(panel_slots.back()->sizeHint().height()+5), panel_slots.back()->sizeHint().width(), panel_slots.back()->sizeHint().height()); connect(timer,SIGNAL(timeout()), panel_slots.back(),SLOT(updateMeters())); } } timer->start(METER_INTERVAL); panel_ripc->connectHost("localhost",RIPCD_TCP_PORT,panel_config->password()); // // Fix the Window Size // #ifndef RESIZABLE setMinimumWidth(sizeHint().width()); setMaximumWidth(sizeHint().width()); setMinimumHeight(sizeHint().height()); setMaximumHeight(sizeHint().height()); #endif // RESIZABLE }