void KviCanvasItemPropertiesWidget::editItem(QCanvasItem * it) { if(!it) { for(int i=0;i<numRows();i++) { clearCell(i,0); clearCell(i,1); clearCellWidget(i,1); } setNumRows(0); return; } QMap<QString,QVariant> * m = 0; switch(KVI_CANVAS_RTTI_CONTROL_TYPE(it)) { case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE: m = ((KviCanvasRectangleItem *)it)->properties(); break; case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE: m = ((KviCanvasLine *)it)->properties(); break; case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON: m = ((KviCanvasPolygon *)it)->properties(); break; } if(!m) { editItem(0); return; } for(int i=0;i<numRows();i++) { clearCell(i,0); clearCell(i,1); clearCellWidget(i,1); } setNumRows(m->count()); QTableItem * item; int idx = 0; for(QMap<QString,QVariant>::ConstIterator iter = m->begin();iter != m->end();++iter) { item = new QTableItem(this,QTableItem::Never,iter.key().toUtf8().data()); setItem(idx,0,item); item = new KviVariantTableItem(this,iter.data()); setItem(idx,1,item); idx++; } }
void MarkList::clear() { for ( int i = 0; i != numRows() ; ++i ) { clearCellWidget( i, 0 ); } setNumRows( 0 ); }
void MTable::endEdit( int row, int col, bool accept, bool replace ) { QWidget *editor = cellWidget( row, col ); if ( !editor ) return; if (!editor->inherits("QComboBox")){ QTable::endEdit( row, col, accept, replace ); zap(editor); //if (editor) delete editor;// <== this seems neccessary to return control to the Table return; } else{ setCellContentFromEditor( row, col ); if ( row == currEditRow() && col == currEditCol() ) setEditMode( NotEditing, -1, -1 ); viewport()->setFocus(); updateCell( row, col ); clearCellWidget( row, col ); zap (editor); //if (editor) delete editor;// <== this seems neccessary to return control to the Table emit valueChanged( row, col ); } }
void KWidgetListbox::clear() { for(int i = 0; i < numRows(); ++i) clearCellWidget(i, 0); setNumRows(0); }
void CServerStatusTable::refresh() { if (isBlocked()) return; setBlocked(true); bool max_scroll = false; int scroll = is_first ? 0 : verticalScrollBar()->value(); if (scroll >= verticalScrollBar()->maxValue() - 1 && scroll != 0) max_scroll = true; if (is_traditional) { if (keepColumnWidth() && numCols() > 0) for (int i = 0; i < numCols(); i++) previous_columns_map.insert(i, CTable::OldColumn(horizontalHeader()->sectionSize(i), horizontalHeader()->label(i))); clearCellWidget(currentRow(), currentColumn()); if (is_first) ensureVisible(0, 0); setNumRows(0); if (sorting()) horizontalHeader()->setSortIndicator( -1 ); } if (query()->exec("SHOW STATUS")) { uint num_rows = query()->numRows(); uint num_fields = query()->numFields(); bool adjust = false; if (is_traditional) { bool columns_ok = (keepColumnWidth() && previous_columns_map.count() == num_fields); if (columns_ok) for (uint i = 0; i < num_fields; i++) columns_ok &= (previous_columns_map[i].label == query()->fields(i).name); if (!columns_ok) { adjust = true; if (keepColumnWidth()) previous_columns_map.clear(); } setNumRows(num_rows); setNumCols(num_fields); if (is_first) { for (uint i = 0; i < num_fields; i++) if (columns_ok && previous_columns_map[i].label == query()->fields(i).name) horizontalHeader()->setLabel(i, query()->fields(i).name, previous_columns_map[i].size); else horizontalHeader()->setLabel(i, query()->fields(i).name); if (columnsWindow->isVisible()) columnsWindow->refresh(); is_first = false; adjust = true; } uint j = 0; while (query()->next()) { for (uint i = 0; i < num_fields; i++) { const char * val = query()->row(i) ? query()->row(i) : NULL_TEXT; setText(j, i, val); } j++; } } else { if (is_first) { setNumRows(0); setNumCols(num_rows); int i = 0; while (query()->next()) horizontalHeader()->setLabel(i++, query()->row(0)); if (columnsWindow->isVisible()) columnsWindow->refresh(); is_first = false; adjust = true; query()->dataSeek(0); } setNumRows(numRows() + 1); ulong i = 0; while (query()->next()) { const char * val = query()->row(1) ? query()->row(1) : NULL_TEXT; setText(numRows() - 1, i++, val); } } if (adjust) for (int j = 0; j < numCols(); j++) adjustColumn(j); if (max_scroll) scroll = verticalScrollBar()->maxValue(); verticalScrollBar()->setValue(scroll); } setBlocked(false); applyLastSort(); }
void CProcessListTable::refresh() { if (isBlocked()) return; setBlocked(true); bool max_scroll = false; int scroll = is_first ? 0 : verticalScrollBar()->value(); if (scroll >= verticalScrollBar()->maxValue() - 1 && scroll != 0) max_scroll = true; if (keepColumnWidth() && numCols() > 0) for (int i = 0; i < numCols(); i++) previous_columns_map.insert(i, CTable::OldColumn(horizontalHeader()->sectionSize(i), horizontalHeader()->label(i))); clearCellWidget(currentRow(), currentColumn()); if (is_first) ensureVisible(0, 0); query()->freeResult(); setNumRows(0); horizontalHeader()->setSortIndicator( -1 ); if (query()->exec(sql)) { uint num_rows = qry->numRows(); uint num_fields = qry->numFields(); bool columns_ok = (keepColumnWidth() && previous_columns_map.count() == num_fields); if (columns_ok) for (uint i = 0; i < num_fields; i++) columns_ok &= (previous_columns_map[i].label == query()->fields(i).name); if (!columns_ok && keepColumnWidth()) previous_columns_map.clear(); setNumRows(num_rows); setNumCols(num_fields); if (is_first) { for (uint i = 0; i < num_fields; i++) { if (columns_ok && previous_columns_map[i].label == query()->fields(i).name) horizontalHeader()->setLabel(i, qry->fields(i).name, previous_columns_map[i].size); else horizontalHeader()->setLabel(i, qry->fields(i).name); setColumnReadOnly (i, (i != 0)); } is_first = false; } if (hasProcessEvents()) qApp->processEvents(); else updateScrollBars(); uint j = 0; while (query()->next()) { for (uint i = 0; i < num_fields; i++) { const char *val = query()->row(i) ? query()->row(i) : NULL_TEXT; if (i == 0) setItem (j, i, new CCheckTableItem(this, val)); else setText(j, i, val); } j++; } if (!columns_ok) for (j = 0; j < num_fields; j++) adjustColumn(j); if (max_scroll) scroll = verticalScrollBar()->maxValue(); verticalScrollBar()->setValue(scroll); } setBlocked(false); applyLastSort(); }