ListUsers::ListUsers( QWidget* parent): ListNodes( parent, "users") { m_ctrl_sf = new CtrlSortFilter( this, &ms_SortType1, &ms_SortAscending1, &ms_SortType2, &ms_SortAscending2, &ms_FilterType, &ms_FilterInclude, &ms_FilterMatch, &ms_FilterString); m_ctrl_sf->addSortType( CtrlSortFilter::TNONE); m_ctrl_sf->addSortType( CtrlSortFilter::TPRIORITY); m_ctrl_sf->addSortType( CtrlSortFilter::TNAME); m_ctrl_sf->addSortType( CtrlSortFilter::THOSTNAME); m_ctrl_sf->addSortType( CtrlSortFilter::TNUMJOBS); m_ctrl_sf->addSortType( CtrlSortFilter::TNUMRUNNINGTASKS); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMEREGISTERED); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMEACTIVITY); m_ctrl_sf->addFilterType( CtrlSortFilter::TNONE); m_ctrl_sf->addFilterType( CtrlSortFilter::TNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::THOSTNAME); initSortFilterCtrl(); // Add left panel buttons: ButtonPanel * bp; bp = addButtonPanel("LOG","users_log","Show user log."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRequestLog())); bp = addButtonPanel("PRI","users_priority","Set user priority."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actPriority())); bp = addButtonPanel("FOR","users_errors_forgive_time","Set user errors forgive time."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actErrorsForgiveTime())); bp = addButtonPanel("LIFE","users_jobs_life_time","Set jobs life time."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actJobsLifeTime())); bp = addButtonPanel("ORD","users_solve_ordered","Solve jobs by order."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actSolveJobsByOrder())); bp = addButtonPanel("PAR","users_solve_parallel","Solve jobs parallel."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actSolveJobsParallel())); m_parentWindow->setWindowTitle("Users"); init(); if( false == af::Environment::VISOR()) setAllowSelection( false); connect( (ModelNodes*)m_model, SIGNAL( nodeAdded( ItemNode *, const QModelIndex &)), this, SLOT( userAdded( ItemNode *, const QModelIndex &))); }
ListJobs::ListJobs( QWidget* parent): ListNodes( parent, "jobs") { if( af::Environment::VISOR()) m_ctrl_sf = new CtrlSortFilter( this, &ms_SortType1_SU, &ms_SortAscending1_SU, &ms_SortType2_SU, &ms_SortAscending2_SU, &ms_FilterType_SU, &ms_FilterInclude_SU, &ms_FilterMatch_SU, &ms_FilterString_SU); else m_ctrl_sf = new CtrlSortFilter( this, &ms_SortType1, &ms_SortAscending1, &ms_SortType2, &ms_SortAscending2, &ms_FilterType, &ms_FilterInclude, &ms_FilterMatch, &ms_FilterString); m_ctrl_sf->addSortType( CtrlSortFilter::TNONE); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMECREATION); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMERUN); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMESTARTED); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMEFINISHED); m_ctrl_sf->addSortType( CtrlSortFilter::TNUMRUNNINGTASKS); m_ctrl_sf->addSortType( CtrlSortFilter::TSERVICE); m_ctrl_sf->addSortType( CtrlSortFilter::TNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::TNONE); m_ctrl_sf->addFilterType( CtrlSortFilter::TNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::TSERVICE); if( af::Environment::VISOR()) { m_ctrl_sf->addSortType( CtrlSortFilter::TPRIORITY); m_ctrl_sf->addSortType( CtrlSortFilter::THOSTNAME); m_ctrl_sf->addSortType( CtrlSortFilter::TUSERNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::THOSTNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::TUSERNAME); } initSortFilterCtrl(); CtrlJobs * control = new CtrlJobs( m_ctrl_sf, this); m_ctrl_sf->getLayout()->addWidget( control); // Add left panel buttons: ButtonPanel * bp; bp = addButtonPanel("LOG","jobs_log","Show job log."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRequestLog())); bp = addButtonPanel("EHO","jobs_show_err_hosts","Show error hosts."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRequestErrorHostsList())); bp = addButtonPanel("PAU","jobs_pause","Pause selected jobs.","P"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actPause())); bp = addButtonPanel("STA","jobs_start","Start selected jobs.","S"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actStart())); bp = addButtonPanel("REH","jobs_reset_avoid_hosts","Reset error hosts.","E"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actResetErrorHosts())); bp = addButtonPanel("RET","jobs_restart_error_tasks","Restart error tasks.","R"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRestartErrors())); bp = addButtonPanel("DEL","jobs_delete","Delete selected jobs.","D", true); connect( bp, SIGNAL( sigClicked()), this, SLOT( actDelete())); bp = addButtonPanel("DDJ","jobs_delete_done","Delete all done jobs.","", true); connect( bp, SIGNAL( sigClicked()), this, SLOT( actDeleteDone())); init(); QTimer * timer = new QTimer(this); timer->start( 1000 * af::Environment::getWatchRefreshGuiSec()); connect( timer, SIGNAL( timeout()), this, SLOT( repaintItems())); m_parentWindow->setWindowTitle("Jobs:"); }
ListRenders::ListRenders( QWidget* parent): ListNodes( parent, "renders") { m_ctrl_sf = new CtrlSortFilter( this, &ms_SortType1, &ms_SortAscending1, &ms_SortType2, &ms_SortAscending2, &ms_FilterType, &ms_FilterInclude, &ms_FilterMatch, &ms_FilterString ); m_ctrl_sf->addSortType( CtrlSortFilter::TNONE); m_ctrl_sf->addSortType( CtrlSortFilter::TPRIORITY); m_ctrl_sf->addSortType( CtrlSortFilter::TCAPACITY); m_ctrl_sf->addSortType( CtrlSortFilter::TELDERTASKTIME); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMELAUNCHED); m_ctrl_sf->addSortType( CtrlSortFilter::TTIMEREGISTERED); m_ctrl_sf->addSortType( CtrlSortFilter::TNAME); m_ctrl_sf->addSortType( CtrlSortFilter::TTASKUSER); m_ctrl_sf->addSortType( CtrlSortFilter::TUSERNAME); m_ctrl_sf->addSortType( CtrlSortFilter::TENGINE); m_ctrl_sf->addSortType( CtrlSortFilter::TADDRESS); m_ctrl_sf->addFilterType( CtrlSortFilter::TNONE); m_ctrl_sf->addFilterType( CtrlSortFilter::TNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::TUSERNAME); m_ctrl_sf->addFilterType( CtrlSortFilter::TTASKUSER); m_ctrl_sf->addFilterType( CtrlSortFilter::TENGINE); m_ctrl_sf->addFilterType( CtrlSortFilter::TADDRESS); initSortFilterCtrl(); CtrlRenders * control = new CtrlRenders( m_ctrl_sf, this); m_ctrl_sf->getLayout()->addWidget( control); // Add left panel buttons: ButtonPanel * bp; bp = addButtonPanel("LOG","renders_log","Show render log."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRequestLog())); bp = addButtonPanel("TLG","renders_tasks_log","Show tasks log."); connect( bp, SIGNAL( sigClicked()), this, SLOT( actRequestTasksLog())); bp = addButtonPanel("nim","renders_nimby","Set nimby.","M"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actNimby())); bp = addButtonPanel("NIM","renders_NIMBY","Set NIMBY.","N"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actNIMBY())); bp = addButtonPanel("FRE","renders_free","Set free.","F"); connect( bp, SIGNAL( sigClicked()), this, SLOT( actFree())); bp = addButtonPanel("EJA","renders_eject_all","Eject all tasks.","", true); connect( bp, SIGNAL( sigClicked()), this, SLOT( actEjectTasks())); bp = addButtonPanel("EJN","renders_eject_notmy","Eject mot my tasks.","", true); connect( bp, SIGNAL( sigClicked()), this, SLOT( actEjectNotMyTasks())); timer = new QTimer( this); connect(timer, SIGNAL(timeout()), this, SLOT( requestResources())); timer->start( 990 * af::Environment::getRenderHeartbeatSec() * af::Environment::getRenderUpResourcesPeriod()); m_parentWindow->setWindowTitle("Renders"); init(); connect( (ModelNodes*)m_model, SIGNAL( nodeAdded( ItemNode *, const QModelIndex &)), this, SLOT( renderAdded( ItemNode *, const QModelIndex &))); if( false == af::Environment::VISOR()) connect( m_view->selectionModel(), SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection &)), this, SLOT( selectionChanged( const QItemSelection &, const QItemSelection &))); setSpacing(); QTimer * timer = new QTimer(this); timer->start( 1900 * af::Environment::getWatchRefreshGuiSec()); connect( timer, SIGNAL( timeout()), this, SLOT( repaintItems())); }