Public Slots | Public Member Functions | Protected Member Functions | Protected Attributes
TableWindow Class Reference

#include <TableWindow.h>

Inheritance diagram for TableWindow:
GeopsyGui::SubPoolWindow

List of all members.

Public Slots

void exportTable ()
void getSelection (SubSignalPool &sel)
void importTable ()
virtual void refreshSignal (Signal *sig)
void setDataFields ()

Public Member Functions

virtual void fastFourierTransform (DoubleSignal::SignalType st)
void setEditionLocked (bool l)
virtual void setWindowTitle (QString title)
virtual void signalsUpdate ()
virtual void subPoolUpdate ()
 TableWindow (QWidget *parent=0)
 ~TableWindow ()

Protected Member Functions

virtual void resizeEvent (QResizeEvent *)

Protected Attributes

SignalTableView_headers

Constructor & Destructor Documentation

TableWindow::TableWindow ( QWidget *  parent = 0)

References _headers, GeopsyGui::SubPoolWindow::addSignals(), GeopsyCore::geopsyCore, geopsyGui, getSelection(), setEditionLocked(), GeopsyCore::GeopsyCoreEngine::showMessage(), GeopsyGui::SubPoolWindow::subPool(), QGpCoreTools::tr(), and TRACE.

                                         :
    SubPoolWindow(parent)
{
  TRACE;
  setObjectName("table");
  setWindowIcon(QIcon( ":/images/table-22x22.png" ));
  _headers=new SignalTableView(&subPool(), this);
  setEditionLocked(static_cast<Engine *>(geopsyGui)->mainWindow()->isTableEditionLocked());

  Settings::getSize(this, "TableWindow" );
  // Drag and drop to transfert signal selection
  SigSelectionDnD * sigDnD=new SigSelectionDnD(_headers->viewport());
  connect(sigDnD, SIGNAL(selectionDropped( const SubSignalPool& )),
           this, SLOT(addSignals( const SubSignalPool& )) );
  connect(sigDnD, SIGNAL(getSelection( SubSignalPool& )),
           this, SLOT(getSelection( SubSignalPool& )) );
  _headers->installEventFilter(sigDnD);
  _headers->setDropIndicatorShown(true);
  geopsyCore->showMessage(tr("Uncheck menu \"edit/Lock table edition\" to edit tables or hit CTRL+K."));
}

References TRACE.

{
  TRACE;
  Settings::setSize(this, "TableWindow" );
}

Member Function Documentation

void TableWindow::exportTable ( ) [slot]

References _headers, SignalTableView::dataFields(), GeopsyCore::SubSignalPool::exportTable(), fileName, GeopsyGui::SubPoolWindow::subPool(), and TRACE.

{
  TRACE;
  QString fileName=Message::getSaveFileName( "Export Table", "Table (*.txt)");
  if(fileName.length() > 0) subPool().exportTable(fileName, _headers->dataFields());
}
void TableWindow::getSelection ( SubSignalPool sel) [slot]

References _headers, contains(), SignalTableView::getSelection(), GeopsyCore::SubSignalPool::setName(), GeopsyGui::SubPoolWindow::subPool(), QGpCoreTools::tr(), and TRACE.

Referenced by TableWindow().

{
  TRACE;
  _headers->getSelection(sel);
  if( ! subPool().name().contains(tr("Selected from")) ) {
    sel.setName(tr("Selected from %1").arg(subPool().name()) );
  } else {
    sel.setName(subPool().name());
  }
}
void TableWindow::importTable ( ) [slot]

References fileName, GeopsyCore::SubSignalPool::importTable(), signalsUpdate(), GeopsyGui::SubPoolWindow::subPool(), and TRACE.

Referenced by GeopsyMainWindow::importTable().

{
  TRACE;
  QString fileName=Message::getOpenFileName( "Import Table", "Table (*.txt)" );
  if(fileName.length() > 0) subPool().importTable(fileName);
  signalsUpdate ();
}
void TableWindow::refreshSignal ( Signal sig) [virtual, slot]

Call this slot to refresh one signal. If sig does not exist in this subPool, this is function does nothing, else signalsUpdate() is called.

Reimplemented from GeopsyGui::SubPoolWindow.

References _headers, SignalTableView::refresh(), and TRACE.

{
  TRACE;
  _headers->refresh(sig);
}
void TableWindow::resizeEvent ( QResizeEvent *  ) [protected, virtual]

References _headers, and TRACE.

{
  TRACE;
  _headers->setGeometry(0, 0, width(), height());
}
void TableWindow::setDataFields ( ) [slot]

References _headers, SignalTableView::dataFields(), signalsUpdate(), and TRACE.

{
  TRACE;
  SetTableFields * d=new SetTableFields(this);
  d->paramEditor->initTableFields(_headers->dataFields());
  Settings::getWidget(d);
  if(d->exec()==QDialog::Accepted) {
    Settings::setWidget(d);
    d->paramEditor->getTableFields(_headers->dataFields());
    signalsUpdate ();
  }
  delete d;
}

References _headers, and TRACE.

Referenced by GeopsyMainWindow::setTableLocked(), and TableWindow().

{
  TRACE;
  if(l) {
    _headers->setSelectionBehavior(QTableWidget::SelectRows);
    _headers->setEditTriggers(QAbstractItemView::NoEditTriggers);
  } else {
    _headers->setEditTriggers(QAbstractItemView::AllEditTriggers);
    _headers->setSelectionBehavior(QAbstractItemView::SelectItems);
  }
}
void TableWindow::setWindowTitle ( QString  title) [virtual]

Reimplemented from GeopsyGui::SubPoolWindow.

References TRACE.

Referenced by subPoolUpdate().

{
  TRACE;
  SubPoolWindow::setWindowTitle( "Table - " + title);
}
void TableWindow::signalsUpdate ( ) [virtual]

Function to redefine in child class to update view after changes to waveforms. Do not forget to call this function on exit.

The default implementation send signal signalTypeChanged() with argument set to UndefinedSignalType (as if the signals of the SubPool have not the same type).

Reimplemented from GeopsyGui::SubPoolWindow.

References _headers, SignalTableView::refreshAll(), and TRACE.

Referenced by fastFourierTransform(), importTable(), setDataFields(), and subPoolUpdate().

{
  TRACE;
  _headers->refreshAll();
  _headers->resizeColumnsToContents ();
  _headers->resizeRowsToContents ();
}
void TableWindow::subPoolUpdate ( ) [virtual]

Implements GeopsyGui::SubPoolWindow.

References setWindowTitle(), signalsUpdate(), GeopsyGui::SubPoolWindow::subPool(), and TRACE.

{
  TRACE;
  if( !subPool().isEmpty()) {
    setWindowTitle(subPool().name());
    signalsUpdate ();
  } else setWindowTitle(QString::null);
}

Member Data Documentation


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