Public Slots | Public Member Functions
SortKeys Class Reference

#include <SortKeys.h>

Inheritance diagram for SortKeys:
QGpGuiTools::Dialog QGpGuiTools::FrameGrabber

List of all members.

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)

Constructor & Destructor Documentation

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);
}

Member Function Documentation

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));
}

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));
  }
}

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]

References TRACE.

{
  TRACE;
  if(column==0) {
    QTableWidgetItem * itemKey=keyList->item(row, 0);
    QTableWidgetItem * itemIndex=keyList->item(row, 1);
    if(itemKey && itemIndex) {
      setIndexState(itemIndex, MetaDataFactory::instance()->index(itemKey->text()));
    }
  }
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines