Public Slots | Public Member Functions
ViewParamEditor Class Reference

#include <ViewParamEditor.h>

List of all members.

Public Slots

void on_addTableField_clicked ()
void on_fieldTemplate_currentIndexChanged (int index)
void on_insertTableField_clicked ()
void on_removeTableField_clicked ()
void on_selFieldList_itemChanged (QTableWidgetItem *item)

Public Member Functions

void getTableFields (MetaDataFieldList &sel)
void initTableFields (const MetaDataFieldList &sel)
 ViewParamEditor (QWidget *parent=0, Qt::WFlags fl=0)

Constructor & Destructor Documentation

ViewParamEditor::ViewParamEditor ( QWidget *  parent = 0,
Qt::WFlags  fl = 0 
)

References QGpCoreTools::tr(), and TRACE.

    : QWidget(parent, fl)
{
  TRACE;
  setupUi(this);

  selFieldList->setColumnCount(3);
  QStringList hLabels;
  hLabels << tr("Data field")<< tr("Index") << tr("Title");
  selFieldList->setHorizontalHeaderLabels (hLabels);
  selFieldList->setSelectionBehavior(QAbstractItemView::SelectItems);
  selFieldList->setSelectionMode(QAbstractItemView::SingleSelection);
  selFieldList->setEditTriggers(QAbstractItemView::AllEditTriggers);
  selFieldList->setItemDelegate (new ViewParamDelegate(this));
  selFieldList->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
}

Member Function Documentation

References GeopsyCore::MetaDataFieldList::add(), GeopsyCore::MetaDataFieldList::clear(), GeopsyCore::MetaDataIndex::index(), GeopsyCore::MetaDataIndex::setIndex(), GeopsyCore::MetaDataField::setTitle(), and TRACE.

{
  TRACE;
  MetaDataField field;
  sel.clear();
  int n=selFieldList->rowCount();
  for(int i=0;i < n;i++ ) {
    field=MetaDataFactory::instance()->index(selFieldList->item(i, 0)->text());
    field.setIndex(selFieldList->item(i, 1)->text());
    field.setTitle(selFieldList->item(i, 2)->text());
    sel.add(field);
  }
}

References GeopsyCore::MetaDataFieldList::at(), GeopsyCore::MetaDataFieldList::count(), GeopsyCore::MetaDataIndex::index(), GeopsyCore::MetaDataField::title(), and TRACE.

Referenced by on_fieldTemplate_currentIndexChanged().

{
  TRACE;
  selFieldList->blockSignals(true);
  selFieldList->setRowCount(sel.count());
  QTableWidgetItem *newItem;
  int n=selFieldList->rowCount();
  for(int i=0;i<n;i++) {
    const MetaDataField& field=sel.at(i);
    newItem=new QTableWidgetItem(MetaDataFactory::instance()->baseName(field));
    selFieldList->setItem(i,0, newItem);
    newItem=new QTableWidgetItem(field.index());
    setIndexState(newItem, field);
    selFieldList->setItem(i,1, newItem);
    newItem=new QTableWidgetItem(field.title());
    selFieldList->setItem(i,2, newItem);
    selFieldList->resizeRowToContents(i);
  }
  selFieldList->blockSignals(false);
  selFieldList->resizeColumnToContents(1);
  selFieldList->resizeColumnToContents(2);
}

References GeopsyCore::MetaDataIndex::index(), and TRACE.

Referenced by on_insertTableField_clicked().

{
  TRACE;
  int n=selFieldList->rowCount();

  QString name, index, title;
  MetaDataIndex dataIndex;
  if(n>0) {
    name=selFieldList->item(n-1,0)->text();
    index=selFieldList->item(n-1,1)->text();
    title=selFieldList->item(n-1,2)->text();
    dataIndex=MetaDataFactory::instance()->index(name);
  } else {
    name=MetaDataFactory::instance()->baseName(MetaDataFactory::Name);
    index="0";
    title=MetaDataFactory::instance()->title(MetaDataFactory::Name);
    dataIndex=MetaDataFactory::Name;
  }
  selFieldList->setRowCount(n + 1);
  QTableWidgetItem *newItem;

  selFieldList->blockSignals(true);
  newItem=new QTableWidgetItem(name);
  selFieldList->setItem(n,0, newItem);
  newItem=new QTableWidgetItem(index);
  selFieldList->setItem(n,1, newItem);
  setIndexState (newItem, dataIndex);
  newItem=new QTableWidgetItem(title);
  selFieldList->setItem(n,2, newItem);
  selFieldList->blockSignals(false);

  selFieldList->resizeRowToContents(n);
  selFieldList->setCurrentItem(selFieldList->item(n, 0));
  selFieldList->scrollToItem(selFieldList->item(n, 0));
}

References GeopsyCore::MetaDataIndex::index(), on_addTableField_clicked(), and TRACE.

{
  TRACE;
  int n=selFieldList->currentRow();

  if(n>=0) {
    QString name=selFieldList->item(n,0)->text();
    QString index=selFieldList->item(n,1)->text();
    QString title=selFieldList->item(n,2)->text();
    MetaDataIndex dataIndex=MetaDataFactory::instance()->index(name);
    selFieldList->insertRow(n);
    QTableWidgetItem *newItem;

    selFieldList->blockSignals(true);
    newItem=new QTableWidgetItem(name);
    selFieldList->setItem(n,0, newItem);
    newItem=new QTableWidgetItem(index);
    setIndexState (newItem, dataIndex);
    selFieldList->setItem(n,1, newItem);
    newItem=new QTableWidgetItem(title);
    selFieldList->setItem(n,2, newItem);
    selFieldList->blockSignals(false);

    selFieldList->setCurrentItem(selFieldList->item(n, 0));
    selFieldList->resizeRowToContents(n);
  } else {
    on_addTableField_clicked();
  }
}

References TRACE.

{
  TRACE;
  int n=selFieldList->currentRow();
  selFieldList->removeRow(n);
  if(n >= selFieldList->rowCount()) n=selFieldList->rowCount() - 1;
  selFieldList->setCurrentItem(selFieldList->item(n, 0));
}
void ViewParamEditor::on_selFieldList_itemChanged ( QTableWidgetItem *  item) [slot]

References GeopsyCore::MetaDataIndex::index(), GeopsyCore::MetaDataIndex::setIndex(), and TRACE.

{
  TRACE;
  if(!item) return;
  int row=selFieldList->row(item);
  int column=selFieldList->column(item);
  if(column<=1) {
    QTableWidgetItem * itemId=selFieldList->item(row, 0);
    QTableWidgetItem * itemIndex=selFieldList->item(row, 1);
    QTableWidgetItem * itemTitle=selFieldList->item(row, 2);

    MetaDataIndex index=MetaDataFactory::instance()->index(itemId->text());
    index.setIndex(itemIndex->text());
    if(column==0) {
      setIndexState(itemIndex, index);
    }
    itemTitle->setText(MetaDataFactory::instance()->title(index));
  }
  fieldTemplate->setCurrentIndex(2);
}

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