📄 tableeditorimpl.cpp
字号:
#endif { editColumnText->setFocus(); editColumnText->selectAll(); }#endif}void TableEditor::newRowClicked(){#ifndef QT_NO_TABLE table->setNumRows( table->numRows() + 1 ); QMap<QString, bool> m; for ( int i = 0; i < table->numRows() - 1; ++i ) m.insert( table->verticalHeader()->label( i ), TRUE ); int n = table->numRows() - 1; QString t = QString::number( n ); while ( m.find( t ) != m.end() ) t = QString::number( ++n ); table->verticalHeader()->setLabel( table->numRows() - 1, t ); listRows->insertItem( t ); QListBoxItem *item = listRows->item( listRows->count() - 1 ); listRows->setCurrentItem( item ); listRows->setSelected( item, TRUE );#endif}void TableEditor::okClicked(){ applyClicked(); accept();}void TableEditor::rowDownClicked(){ if ( listRows->currentItem() == -1 || listRows->currentItem() == (int)listRows->count() - 1 || listRows->count() < 2 ) return; int index = listRows->currentItem() + 1; QListBoxItem *i = listRows->item( listRows->currentItem() ); listRows->takeItem( i ); listRows->insertItem( i, index ); listRows->setCurrentItem( i ); readRows();}void TableEditor::rowTextChanged( const QString &s ){ if ( listRows->currentItem() == -1 ) return;#ifndef QT_NO_TABLE listRows->changeItem( s, listRows->currentItem() ); if ( table->verticalHeader()->iconSet( listRows->currentItem() ) ) table->verticalHeader()->setLabel( listRows->currentItem(), *table->verticalHeader()->iconSet( listRows->currentItem() ), s ); else table->verticalHeader()->setLabel( listRows->currentItem(), s );#endif}void TableEditor::rowUpClicked(){ if ( listRows->currentItem() <= 0 || listRows->count() < 2 ) return; int index = listRows->currentItem() - 1; QListBoxItem *i = listRows->item( listRows->currentItem() ); listRows->takeItem( i ); listRows->insertItem( i, index ); listRows->setCurrentItem( i ); readRows();}void TableEditor::applyClicked(){ QValueList<PopulateTableCommand::Row> rows; QValueList<PopulateTableCommand::Column> cols; int i = 0;#ifndef QT_NO_TABLE for ( i = 0; i < table->horizontalHeader()->count(); ++i ) { PopulateTableCommand::Column col; col.text = table->horizontalHeader()->label( i ); if ( table->horizontalHeader()->iconSet( i ) ) col.pix = table->horizontalHeader()->iconSet( i )->pixmap(); col.field = *fieldMap.find( i ); cols.append( col ); } for ( i = 0; i < table->verticalHeader()->count(); ++i ) { PopulateTableCommand::Row row; row.text = table->verticalHeader()->label( i ); if ( table->verticalHeader()->iconSet( i ) ) row.pix = table->verticalHeader()->iconSet( i )->pixmap(); rows.append( row ); } PopulateTableCommand *cmd = new PopulateTableCommand( tr( "Edit the Rows and Columns of '%1' " ).arg( editTable->name() ), formWindow, editTable, rows, cols ); cmd->execute(); formWindow->commandHistory()->addCommand( cmd );#endif}void TableEditor::chooseRowPixmapClicked(){ if ( listRows->currentItem() == -1 ) return; QPixmap pix; if ( listRows->item( listRows->currentItem() )->pixmap() ) pix = qChoosePixmap( this, formWindow, *listRows->item( listRows->currentItem() )->pixmap() ); else pix = qChoosePixmap( this, formWindow, QPixmap() ); if ( pix.isNull() ) return;#ifndef QT_NO_TABLE table->verticalHeader()->setLabel( listRows->currentItem(), pix, table->verticalHeader()->label( listRows->currentItem() ) ); listRows->changeItem( pix, listRows->currentText(), listRows->currentItem() );#endif}void TableEditor::deleteRowPixmapClicked(){ if ( listRows->currentItem() == -1 ) return;#ifndef QT_NO_TABLE table->verticalHeader()->setLabel( listRows->currentItem(), QPixmap(), table->verticalHeader()->label( listRows->currentItem() ) ); listRows->changeItem( listRows->currentText(), listRows->currentItem() );#endif}void TableEditor::chooseColPixmapClicked(){ if ( listColumns->currentItem() == -1 ) return; QPixmap pix; if ( listColumns->item( listColumns->currentItem() )->pixmap() ) pix = qChoosePixmap( this, formWindow, *listColumns->item( listColumns->currentItem() )->pixmap() ); else pix = qChoosePixmap( this, formWindow, QPixmap() ); if ( pix.isNull() ) return;#ifndef QT_NO_TABLE table->horizontalHeader()->setLabel( listColumns->currentItem(), pix, table->horizontalHeader()->label( listColumns->currentItem() ) ); listColumns->changeItem( pix, listColumns->currentText(), listColumns->currentItem() );#endif}void TableEditor::deleteColPixmapClicked(){ if ( listColumns->currentItem() == -1 ) return;#ifndef QT_NO_TABLE table->horizontalHeader()->setLabel( listColumns->currentItem(), QPixmap(), table->horizontalHeader()->label( listColumns->currentItem() ) ); listColumns->changeItem( listColumns->currentText(), listColumns->currentItem() );#endif}void TableEditor::readFromTable(){#ifndef QT_NO_TABLE QHeader *cols = editTable->horizontalHeader(); table->setNumCols( cols->count() ); QMap<QString, QString> columnFields = MetaDataBase::columnFields( editTable ); for ( int i = 0; i < cols->count(); ++i ) { if ( editTable->horizontalHeader()->iconSet( i ) ) { table->horizontalHeader()->setLabel( i, *editTable->horizontalHeader()->iconSet( i ), editTable->horizontalHeader()->label( i ) ); listColumns->insertItem( editTable->horizontalHeader()->iconSet( i )->pixmap(), editTable->horizontalHeader()->label( i ) ); } else { table->horizontalHeader()->setLabel( i, editTable->horizontalHeader()->label( i ) ); listColumns->insertItem( editTable->horizontalHeader()->label( i ) ); } QString cf = *columnFields.find( editTable->horizontalHeader()->label( i ) ); fieldMap.insert( i, cf ); } if ( listColumns->firstItem() ) { listColumns->setCurrentItem( listColumns->firstItem() ); listColumns->setSelected( listColumns->firstItem(), TRUE ); } QHeader *rows = editTable->verticalHeader(); table->setNumRows( rows->count() ); for ( int j = 0; j < rows->count(); ++j ) { if ( editTable->verticalHeader()->iconSet( j ) ) { table->verticalHeader()->setLabel( j, *editTable->verticalHeader()->iconSet( j ), editTable->verticalHeader()->label( j ) ); listRows->insertItem( editTable->verticalHeader()->iconSet( j )->pixmap(), editTable->verticalHeader()->label( j ) ); } else { table->verticalHeader()->setLabel( j, editTable->verticalHeader()->label( j ) ); listRows->insertItem( editTable->verticalHeader()->label( j ) ); } } if ( listRows->firstItem() ) { listRows->setCurrentItem( listRows->firstItem() ); listRows->setSelected( listRows->firstItem(), TRUE ); }#endif}void TableEditor::readColumns(){ int j = 0;#ifndef QT_NO_TABLE for ( QListBoxItem *i = listColumns->firstItem(); i; i = i->next(), ++j ) { if ( i->pixmap() ) table->horizontalHeader()->setLabel( j, *i->pixmap(), i->text() ); else table->horizontalHeader()->setLabel( j, i->text() ); }#endif}void TableEditor::readRows(){ int j = 0;#ifndef QT_NO_TABLE for ( QListBoxItem *i = listRows->firstItem(); i; i = i->next(), ++j ) { if ( i->pixmap() ) table->verticalHeader()->setLabel( j, *i->pixmap(), i->text() ); else table->verticalHeader()->setLabel( j, i->text() ); }#endif}void TableEditor::saveFieldMap(){ tmpFieldMap.clear(); for ( QMap<int, QString>::Iterator it = fieldMap.begin(); it != fieldMap.end(); ++it ) tmpFieldMap.insert( listColumns->item( it.key() ), *it );}void TableEditor::restoreFieldMap(){ fieldMap.clear(); for ( QMap<QListBoxItem*, QString>::Iterator it = tmpFieldMap.begin(); it != tmpFieldMap.end(); ++it ) fieldMap.insert( listColumns->index( it.key() ), *it );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -