bool ListJobs::v_processEvents( const af::MonitorEvents & i_me) { if( i_me.m_events[af::Monitor::EVT_jobs_del].size()) { deleteItems( i_me.m_events[af::Monitor::EVT_jobs_del]); calcTotals(); return true; } std::vector<int> ids; for( int i = 0; i < i_me.m_events[af::Monitor::EVT_jobs_change].size(); i++) af::addUniqueToVect( ids, i_me.m_events[af::Monitor::EVT_jobs_change][i]); for( int i = 0; i < i_me.m_events[af::Monitor::EVT_jobs_add].size(); i++) af::addUniqueToVect( ids, i_me.m_events[af::Monitor::EVT_jobs_add][i]); if( ids.size()) { get( ids); return true; } if( i_me.m_jobs_order_ids.size()) sortMatch( i_me.m_jobs_order_ids); return false; }
bool ListJobs::v_caseMessage( af::Msg * msg) { switch( msg->type()) { case af::Msg::TJobsList: { if( updateItems( msg) && (af::Environment::VISOR() == false)) { getUserJobsOrder(); } if( false == isSubscribed() ) { if( af::Environment::VISOR() == false ) { m_view->scrollToBottom(); } subscribe(); } calcTotals(); break; } case af::Msg::TUserJobsOrder: { af::MCGeneral ids( msg); if( ids.getId() == MonitorHost::getUid()) sortMatch( ids.getList()); break; } default: return false; } return true; }
static DFNode *WordTblGet(WordGetData *get, DFNode *concrete) { if (concrete->tag != WORD_TBL) return NULL;; DFNode *table = WordConverterCreateAbstract(get,HTML_TABLE,concrete); ConcreteInfo *cinfo = getConcreteInfo(get->conv,concrete); calcTotals(get,cinfo); const char *cellWidthType = cellWidthTypeForTable(concrete); int autoWidth = DFStringEquals(cellWidthType,"auto"); if ((CSSGet(cinfo->tableProperties,"width") == NULL) && autoWidth) { CSSPut(cinfo->tableProperties,"width",NULL); } else { // Determine column widths and table width if (cinfo->totalWidthPts > 0) { DFNode *colgroup = HTML_createColgroup(get->conv->html,cinfo->structure); DFAppendChild(table,colgroup); double tableWidthPct = 100.0; if (WordSectionContentWidth(get->conv->mainSection) > 0) { double contentWidthPts = WordSectionContentWidth(get->conv->mainSection)/20.0; tableWidthPct = 100.0*cinfo->totalWidthPts/contentWidthPts; if (CSSGet(cinfo->tableProperties,"width") == NULL) { char buf[100]; CSSPut(cinfo->tableProperties,"width",DFFormatDoublePct(buf,100,tableWidthPct)); } } } if (CSSGet(cinfo->tableProperties,"width") == NULL) CSSPut(cinfo->tableProperties,"width","100%"); } DFHashTable *collapsed = CSSCollapseProperties(cinfo->tableProperties); char *styleValue = CSSSerializeProperties(collapsed); DFHashTableRelease(collapsed); if (strlen(styleValue) > 0) DFSetAttribute(table,HTML_STYLE,styleValue); free(styleValue); if ((cinfo->style != NULL) && (cinfo->style->selector != NULL)) { char *className = CSSSelectorCopyClassName(cinfo->style->selector); DFSetAttribute(table,HTML_CLASS,className); free(className); } else { CSSStyle *defaultStyle = CSSSheetDefaultStyleForFamily(get->conv->styleSheet,StyleFamilyTable); if (defaultStyle != NULL) DFSetAttribute(table,HTML_CLASS,defaultStyle->className); } // Create rows and cells int row = 0; for (DFNode *tblChild = concrete->first; tblChild != NULL; tblChild = tblChild->next) { if (tblChild->tag != WORD_TR) continue; DFNode *tr = WordConverterCreateAbstract(get,HTML_TR,tblChild); DFAppendChild(table,tr); unsigned int col = 0; while (col < cinfo->structure->cols) { DFCell *cell = DFTableGetCell(cinfo->structure,row,col); if (cell == NULL) { DFNode *td = DFCreateElement(get->conv->html,HTML_TD); DFAppendChild(tr,td); col++; continue; } if (row == cell->row) { DFNode *td = WordTcGet(get,cell->element); DFAppendChild(tr,td); if (cell->colSpan != 1) DFFormatAttribute(td,HTML_COLSPAN,"%d",cell->colSpan); if (cell->rowSpan != 1) DFFormatAttribute(td,HTML_ROWSPAN,"%d",cell->rowSpan); } col += cell->colSpan; } row++; } ConcreteInfoFree(cinfo); return table; }
toProfiler::toProfiler(QWidget *parent, toConnection &connection) : toToolWidget(ProfilerTool, "toprofiler.html", parent, connection, "toProfiler") { QToolBar *toolbar = toAllocBar(this, tr("PL/SQL Profiler")); layout()->addWidget(toolbar); toolbar->addAction(QIcon(QPixmap(const_cast<const char**>(refresh_xpm))), tr("Refresh list"), this, SLOT(refresh())); toolbar->addSeparator(); toolbar->addWidget( new QLabel(tr("Repeat run") + " ", toolbar)); Repeat = new QSpinBox(toolbar); Repeat->setValue(5); Repeat->setMaximum(1000); toolbar->addWidget(Repeat); toolbar->addSeparator(); toolbar->addWidget(new QLabel(tr("Comment") + " ", toolbar)); Comment = new QLineEdit(toolbar); Comment->setText(tr("Unknown")); toolbar->addWidget(Comment); toolbar->addSeparator(); #if 0 Background = new QToolButton(toolbar); Background->setToggleButton(true); Background->setIconSet(QIcon(QPixmap(const_cast<const char**>(background_xpm)))); QToolTip::add (Background, tr("Run profiling in background")); toolbar->addSeparator(); #endif toolbar->addAction(QIcon(QPixmap(const_cast<const char**>(execute_xpm))), tr("Execute current profiling"), this, SLOT(execute())); toolbar->addWidget(new toSpacer()); new toChangeConnection(toolbar, TO_TOOLBAR_WIDGET_NAME); Tabs = new QTabWidget(this); layout()->addWidget(Tabs); Script = new toWorksheetWidget(Tabs, NULL, connection); Tabs->addTab(Script, tr("Script")); Result = new QSplitter(Tabs); Tabs->addTab(Result, tr("Result")); QWidget *box = new QWidget(Result); QVBoxLayout *vbox = new QVBoxLayout; vbox->setSpacing(0); vbox->setContentsMargins(0, 0, 0, 0); box->setLayout(vbox); Run = new QComboBox(box); vbox->addWidget(Run); QSplitter *vsplit = new QSplitter(Qt::Vertical, box); vbox->addWidget(vsplit); Info = new toResultItem(2, vsplit); Info->setSQL(SQLRunInfo); connect(Run, SIGNAL(activated(int)), this, SLOT(changeRun())); Units = new toProfilerUnits(vsplit); Units->setReadAll(true); Units->setSelectionMode(toTreeWidget::Single); connect(Units, SIGNAL(selectionChanged()), this, SLOT(changeObject())); Lines = new toProfilerSource(Result); Lines->setReadAll(true); connect(Lines, SIGNAL(done()), this, SLOT(calcTotals())); LastUnit = CurrentRun = 0; // show(); try { toQuery query(connection, SQLProfilerDetect); } catch (const QString &) { int ret = TOMessageBox::warning(this, tr("Profiler tables doesn't exist"), tr("Profiler tables doesn't exist. Should TOra\n" "try to create them in the current schema?"), tr("&Yes"), tr("&No"), QString::null, 0, 1); if (ret == 0) { try { connection.execute(SQLProfilerRuns); connection.execute(SQLProfilerUnits); connection.execute(SQLProfilerData); connection.execute(SQLProfilerNumber); } catch (const QString &str) { toStatusMessage(str); QTimer::singleShot(1, this, SLOT(noTables())); return ; } } else { QTimer::singleShot(1, this, SLOT(noTables())); return ; } } refresh(); }