void CelSplashScreen::drawContents() { QPixmap textPix = pixmap; QPainter painter( &textPix, this ); drawContents( &painter ); setErasePixmap( textPix ); }
void setPixmap(QPixmap pm) { if ( pm.mask() ) { setMask( *pm.mask() ); } else { clearMask(); } resize(pm.width(),pm.height()); setErasePixmap(pm); }
CSplashDialog::CSplashDialog( QWidget *pwidgetParent ) : QDialog( pwidgetParent, 0, true, Qt::WStyle_Customize | Qt::WStyle_NoBorder ) { #if defined( OSXHEADER ) setErasePixmap( xpmSplash ); QGridLayout *pgridlayoutTop = new QGridLayout( this, 2, 1, 0 ); QGridLayout *pgridlayout = new QGridLayout( 1, 2, 0 ); pgridlayoutTop->addLayout( pgridlayout, 1, 0 ); pgridlayoutTop->setRowStretch( 0, 10 ); pgridlayout->setColStretch( 0, 10 ); pcheckbox = new QCheckBox( "Never show again", this ); QPushButton *ppushbutton = new QPushButton( "Ok", this ); pgridlayout->addWidget( pcheckbox, 0, 0 ); pgridlayout->addWidget( ppushbutton, 0, 1 ); connect( ppushbutton, SIGNAL(clicked()), SLOT(accept()) ); resize( 360, 240 ); #endif }
MainWidget::MainWidget(QWidget *parent,const char *name) :QWidget(parent,name) { QPixmap *pm; QPainter *pd; QPixmap *mainmap; // // Fix the Window Size // #ifndef RESIZABLE setMinimumWidth(sizeHint().width()); setMaximumWidth(sizeHint().width()); setMinimumHeight(sizeHint().height()); setMaximumHeight(sizeHint().height()); #endif // RESIZABLE // // Load the command-line arguments // RDCmdSwitch *cmd=new RDCmdSwitch(qApp->argc(),qApp->argv(),"rdpanel", RDPANEL_USAGE); // // Generate Fonts // QFont button_font=QFont("Helvetica",16,QFont::Bold); button_font.setPixelSize(16); // // Create Icons // lib_rivendell_map=new QPixmap(rivendell_xpm); setIcon(*lib_rivendell_map); // // Ensure that system daemons are running // RDInitializeDaemons(); // // Load Local Configs // panel_config=new RDConfig(); panel_config->load(); // // Open Database // panel_db=QSqlDatabase::addDatabase("QMYSQL3"); if(!panel_db) { QMessageBox::warning(this, "Can't Connect","Unable to connect to mySQL Server!",0,1,1); exit(0); } panel_db->setDatabaseName(panel_config->mysqlDbname()); panel_db->setUserName(panel_config->mysqlUsername()); panel_db->setPassword(panel_config->mysqlPassword()); panel_db->setHostName(panel_config->mysqlHostname()); if(!panel_db->open()) { QMessageBox::warning(this, "Can't Connect","Unable to connect to mySQL Server!"); panel_db->removeDatabase(panel_config->mysqlDbname()); exit(0); } new RDDbHeartbeat(panel_config->mysqlHeartbeatInterval(),this); // // Master Clock Timer // panel_master_timer=new QTimer(this,"panel_master_timer"); connect(panel_master_timer,SIGNAL(timeout()),this,SLOT(masterTimerData())); panel_master_timer->start(MASTER_TIMER_INTERVAL); // // CAE Connection // panel_cae=new RDCae(parent,name); panel_cae->connectHost("localhost",CAED_TCP_PORT,panel_config->password()); // // Allocate Global Resources // rdstation_conf=new RDStation(panel_config->stationName()); rdairplay_conf=new RDAirPlayConf(panel_config->stationName(),0,"RDPANEL"); panel_skin_pixmap=new QPixmap(rdairplay_conf->skinPath()); if(panel_skin_pixmap->isNull()||(panel_skin_pixmap->width()<1024)|| (panel_skin_pixmap->height()<738)) { delete panel_skin_pixmap; panel_skin_pixmap=NULL; } else { setErasePixmap(*panel_skin_pixmap); } // // RIPC Connection // rdripc=new RDRipc(panel_config->stationName()); connect(rdripc,SIGNAL(userChanged()),this,SLOT(userData())); connect(rdripc,SIGNAL(rmlReceived(RDMacro *)), this,SLOT(rmlReceivedData(RDMacro *))); // rdripc->connectHost("localhost",RIPCD_TCP_PORT,panel_config->password()); // // User // rduser=NULL; // // Meter Timer // QTimer *timer=new QTimer(this,"meter_timer"); connect(timer,SIGNAL(timeout()),this,SLOT(meterData())); timer->start(METER_INTERVAL); // // Macro Player // panel_player=new RDEventPlayer(rdripc,this); // // Cart Picker // panel_cart_dialog=new RDCartDialog(&panel_filter,&panel_group, rdairplay_conf->card(3), rdairplay_conf->port(3), 0,0,panel_cae,rdripc,rdstation_conf, rdstation_conf->editorPath(), this,"panel_cart_dialog"); // // Sound Panel Array // if (rdairplay_conf->panels(RDAirPlayConf::StationPanel) || rdairplay_conf->panels(RDAirPlayConf::UserPanel)){ int card=-1; panel_panel= new RDSoundPanel(RDPANEL_PANEL_BUTTON_COLUMNS,RDPANEL_PANEL_BUTTON_ROWS, rdairplay_conf->panels(RDAirPlayConf::StationPanel), rdairplay_conf->panels(RDAirPlayConf::UserPanel), rdairplay_conf->flashPanel(), rdairplay_conf->buttonLabelTemplate(),true,panel_player, rdripc,panel_cae,rdstation_conf,panel_cart_dialog, this,"panel_panel"); panel_panel->setLogfile(panel_config->airplayLogname()); panel_panel->setGeometry(10,10,panel_panel->sizeHint().width(), panel_panel->sizeHint().height()); if(panel_skin_pixmap!=NULL) { pm=new QPixmap(1024,738); pd=new QPainter(pm); pd->drawPixmap(-10,-10,*panel_skin_pixmap); pd->end(); panel_panel->setErasePixmap(*pm); delete pd; delete pm; } panel_panel->setPauseEnabled(rdairplay_conf->panelPauseEnabled()); panel_panel->setCard(0,rdairplay_conf->card(2)); panel_panel->setPort(0,rdairplay_conf->port(2)); panel_panel->setFocusPolicy(QWidget::NoFocus); if((card=rdairplay_conf->card(6))<0) { panel_panel->setCard(1,panel_panel->card(0)); panel_panel->setPort(1,panel_panel->port(0)); } else { panel_panel->setCard(1,card); panel_panel->setPort(1,rdairplay_conf->port(6)); } if((card=rdairplay_conf->card(7))<0) { panel_panel->setCard(2,panel_panel->card(1)); panel_panel->setPort(2,panel_panel->port(1)); } else { panel_panel->setCard(2,card); panel_panel->setPort(2,rdairplay_conf->port(7)); } if((card=rdairplay_conf->card(8))<0) { panel_panel->setCard(3,panel_panel->card(2)); panel_panel->setPort(3,panel_panel->port(2)); } else { panel_panel->setCard(3,card); panel_panel->setPort(3,rdairplay_conf->port(8)); } if((card=rdairplay_conf->card(9))<0) { panel_panel->setCard(4,panel_panel->card(3)); panel_panel->setPort(4,panel_panel->port(3)); } else { panel_panel->setCard(4,card); panel_panel->setPort(4,rdairplay_conf->port(9)); } // // Calculate Valid Ports for Reading Meter Data (No Duplicates) // for(int i=4;i>=0;i--) { meter_data_valid[i]=(panel_panel->card(i)>=0); for(int j=0;j<i;j++) { if((panel_panel->card(i)==panel_panel->card(j))&& (panel_panel->port(i)==panel_panel->port(j))) { meter_data_valid[i]=false; } } } panel_panel-> setRmls(0,rdairplay_conf->startRml(2),rdairplay_conf->stopRml(2)); panel_panel-> setRmls(1,rdairplay_conf->startRml(6),rdairplay_conf->stopRml(6)); panel_panel-> setRmls(2,rdairplay_conf->startRml(7),rdairplay_conf->stopRml(7)); panel_panel-> setRmls(3,rdairplay_conf->startRml(8),rdairplay_conf->stopRml(8)); panel_panel-> setRmls(4,rdairplay_conf->startRml(9),rdairplay_conf->stopRml(9)); panel_panel->setSvcName(rdairplay_conf->defaultSvc()); connect(rdripc,SIGNAL(userChanged()),panel_panel,SLOT(changeUser())); connect(panel_master_timer,SIGNAL(timeout()), panel_panel,SLOT(tickClock())); } // // Audio Meter // panel_stereo_meter=new RDStereoMeter(this,"panel_stereo_meter"); panel_stereo_meter-> setGeometry(40, sizeHint().height()-panel_stereo_meter->sizeHint().height()-7, panel_stereo_meter->sizeHint().width(), panel_stereo_meter->sizeHint().height()); panel_stereo_meter->setMode(RDSegMeter::Peak); panel_stereo_meter->setFocusPolicy(QWidget::NoFocus); if(panel_config->useStreamMeters()) { panel_stereo_meter->hide(); } rdripc->connectHost("localhost",RIPCD_TCP_PORT,panel_config->password()); // // Signal Handlers // signal(SIGCHLD,SigHandler); }
void QWidget::setBackgroundEmpty() { allow_null_pixmaps++; setErasePixmap(QPixmap()); allow_null_pixmaps--; }