#include <SortKeys.h>
Public Slots | |
void | on_addBut_clicked () |
void | on_deleteBut_clicked () |
void | on_insertBut_clicked () |
void | on_keyList_cellChanged (int row, int column) |
Public Member Functions | |
void | getKeys () |
SortKeys (QWidget *parent=0, Qt::WFlags fl=0) |
SortKeys::SortKeys | ( | QWidget * | parent = 0 , |
Qt::WFlags | fl = 0 |
||
) |
Constructs a SortKeys as a child of 'parent', with the name name and widget flags set to fl.
References GeopsyCore::MetaDataIndex::index(), GeopsyCore::SortKey::reversed(), QGpCoreTools::tr(), and TRACE.
: Dialog(parent, fl) { TRACE; setupUi(this); keyList->setColumnCount(3); QStringList hLabels; hLabels << tr("Key") << tr("Index") << tr("Order"); keyList->setHorizontalHeaderLabels (hLabels); keyList->setSelectionBehavior(QAbstractItemView::SelectItems); keyList->setSelectionMode(QAbstractItemView::SingleSelection); keyList->setEditTriggers(QAbstractItemView::AllEditTriggers); keyList->setItemDelegate (new SortKeysDelegate(this)); keyList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch); // Load choosen keys from registry QSettings reg; QStringList keysStr=reg.value( "Sort Keys").toStringList(); SortKey::clear(); for(QStringList::Iterator it=keysStr.begin();it!=keysStr.end();++it) { QString key=(*it).mid(1); if((*it)[0]=='-') SortKey::add(SortKey(MetaDataFactory::instance()->index(key), true)); else SortKey::add(SortKey(MetaDataFactory::instance()->index(key), false)); } int nKeys=SortKey::count(); keyList->setRowCount(nKeys); QTableWidgetItem * item; for(int i=0; i<nKeys;++i) { const SortKey& key=SortKey::at(i); item=new QTableWidgetItem(MetaDataFactory::instance()->baseName(key)); keyList->setItem(i, 0, item); item=new QTableWidgetItem(key.index()); setIndexState(item, key); keyList->setItem(i, 1, item); item=new QTableWidgetItem(); if(key.reversed()) item->setText(tr(sortKeyDescending)); else item->setText(tr(sortKeyAscending)); keyList->setItem(i, 2, item); keyList->resizeRowToContents(i); } if(keyList->rowCount() > 0) { keyList->setCurrentItem(keyList->item(0,0)); insertBut->setEnabled(true); deleteBut->setEnabled(true); } keyList->resizeColumnToContents (1); keyList->resizeColumnToContents (2); }
void SortKeys::getKeys | ( | ) |
References GeopsyCore::SortKey::reversed(), GeopsyCore::MetaDataIndex::setIndex(), QGpCoreTools::tr(), and TRACE.
Referenced by GeopsyMainWindow::sort().
{ TRACE; // Get choosen keys in Signal::_keys int n=keyList->rowCount(); SortKey::clear(); for(int i=0;i < n;i++ ) { QString key=keyList->item(i, 0)->text(); MetaDataIndex index(MetaDataFactory::instance()->index(key)); index.setIndex(keyList->item(i, 1)->text()); if(keyList->item(i, 2)->text()==tr(sortKeyDescending)) SortKey::add(SortKey(index, true)); else SortKey::add(SortKey(index, false)); } // Save choosen keys to registry QStringList keysStr; QSettings reg; for(int i=0; i < n; i++ ) { const SortKey& key=SortKey::at(i); if(key.reversed()) keysStr.append("-"+MetaDataFactory::instance()->name(key)); else keysStr.append("+"+MetaDataFactory::instance()->name(key)); } reg.setValue( "Sort Keys", keysStr); }
void SortKeys::on_addBut_clicked | ( | ) | [slot] |
References TRACE.
{ TRACE; int n=keyList->rowCount(); keyList->setRowCount(n + 1); QTableWidgetItem * item; item=new QTableWidgetItem(MetaDataFactory::instance()->name(MetaDataFactory::Name)); keyList->setItem(n, 0, item); item=new QTableWidgetItem("0"); setIndexState (item, MetaDataFactory::Name); keyList->setItem(n, 1, item); item=new QTableWidgetItem(sortKeyAscending); keyList->setItem(n, 2, item); keyList->resizeRowToContents(n); insertBut->setEnabled(true); deleteBut->setEnabled(true); keyList->clearSelection(); keyList->setCurrentItem(keyList->item(n, 0)); }
void SortKeys::on_deleteBut_clicked | ( | ) | [slot] |
References TRACE.
{ TRACE; int n=keyList->currentRow(); keyList->QTableWidget::removeRow(n); if(keyList->rowCount()==0) { insertBut->setEnabled(false); deleteBut->setEnabled(false); } else { keyList->clearSelection(); if(n>=keyList->rowCount()) n=keyList->rowCount()-1; keyList->setCurrentItem(keyList->item(n, 0)); } }
void SortKeys::on_insertBut_clicked | ( | ) | [slot] |
References TRACE.
{ TRACE; int n=keyList->currentRow(); if(n >= 0) { keyList->insertRow(n); QTableWidgetItem * item; item=new QTableWidgetItem(MetaDataFactory::instance()->name(MetaDataFactory::Name)); keyList->setItem(n, 0, item); item=new QTableWidgetItem("0"); setIndexState (item, MetaDataFactory::Name); keyList->setItem(n, 1, item); item=new QTableWidgetItem(sortKeyAscending); keyList->setItem(n, 2, item); keyList->resizeRowToContents(n); keyList->clearSelection(); keyList->setCurrentItem(keyList->item(n, 0)); } }
void SortKeys::on_keyList_cellChanged | ( | int | row, |
int | column | ||
) | [slot] |