scidavis  2.3.0
About: SciDAVis is a free application for Scientific Data Analysis and Visualization (a fork off of QtiPlot).
  Fossies Dox: scidavis-2.3.0.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

AbstractColumn Class Referenceabstract

Interface definition for data with column logic. More...

#include <AbstractColumn.h>

Inheritance diagram for AbstractColumn:
[legend]
Collaboration diagram for AbstractColumn:
[legend]

Public Member Functions

 AbstractColumn (const QString &name)
 Ctor. More...
 
virtual ~AbstractColumn ()
 Dtor. More...
 
virtual SciDAVis::ColumnDataType dataType () const =0
 Return the data type of the column. More...
 
virtual bool isReadOnly () const
 Return whether the object is read-only. More...
 
virtual SciDAVis::ColumnMode columnMode () const =0
 Return the column mode. More...
 
virtual void setColumnMode (SciDAVis::ColumnMode mode, AbstractFilter *conversion_filter=0)
 Set the column mode. More...
 
virtual bool copy (const AbstractColumn *other)
 Copy another column of the same type. More...
 
virtual bool copy (const AbstractColumn *source, int source_start, int dest_start, int num_rows)
 Copies part of another column of the same type. More...
 
virtual int rowCount () const =0
 Return the data vector size. More...
 
virtual void insertRows (int before, int count)
 Insert some empty (or initialized with zero) rows. More...
 
virtual void removeRows (int first, int count)
 Remove 'count' rows starting from row 'first'. More...
 
virtual SciDAVis::PlotDesignation plotDesignation () const =0
 Return the column plot designation. More...
 
virtual void clear ()
 Set the column plot designation. More...
 
virtual void notifyReplacement (const AbstractColumn *replacement)
 This must be called before the column is replaced by another. More...
 
AbstractAspectparentAspect () const
 Return my parent Aspect or 0 if I currently don't have one. More...
 
future::Folderfolder ()
 Return the folder the Aspect is contained in or 0 if not. More...
 
bool isDescendantOf (AbstractAspect *other)
 Return whether the there is a path upwards to the given aspect. More...
 
void addChild (AbstractAspect *child)
 Add the given Aspect to my list of children. More...
 
void insertChild (AbstractAspect *child, int index)
 Insert the given Aspect at a specific position in my list of children. More...
 
void removeChild (AbstractAspect *child, bool detach=false)
 Remove the given Aspect from my list of children. More...
 
void removeChild (int index)
 Remove the Aspect at the given index from my list of children. More...
 
AbstractAspectchild (int index) const
 Get a child by its position in my list of children. More...
 
int childCount () const
 Return the number of child Aspects. More...
 
int indexOfChild (const AbstractAspect *child) const
 Return the position of child in my list of children. More...
 
int index () const
 Return my position in my parent's list of children. More...
 
void moveChild (int from, int to)
 Change the positon of a child in my list of children. More...
 
void reparentChild (AbstractAspect *new_parent, AbstractAspect *child, int d_new_index)
 Move a child to another aspect and transfer ownership. More...
 
void reparentChild (AbstractAspect *new_parent, AbstractAspect *child)
 Move a child to another aspect and transfer ownership. More...
 
QList< AbstractAspect * > descendantsThatInherit (const char *class_name)
 Get all descendents that inherit the given class. More...
 
virtual void removeAllChildAspects ()
 Remove all child aspects. More...
 
virtual const Projectproject () const
 Return the Project this Aspect belongs to, or 0 if it is currently not part of one. More...
 
virtual Projectproject ()
 Return the Project this Aspect belongs to, or 0 if it is currently not part of one. More...
 
virtual QString path () const
 Return the path that leads from the top-most Aspect (usually a Project) to me. More...
 
virtual QIcon icon () const
 Return an icon to be used for decorating my views. More...
 
virtual QMenu * createContextMenu () const
 Return a new context menu. More...
 
QString name () const
 
QString comment () const
 
QString captionSpec () const
 Return the specification string used for constructing the caption(). More...
 
QDateTime creationTime () const
 
QString caption () const
 

undo related

virtual QUndoStack * undoStack () const
 Return the undo stack of the Project, or 0 if this Aspect is not part of a Project. More...
 
void exec (QUndoCommand *command)
 Execute the given command, pushing it on the undoStack() if available. More...
 
void beginMacro (const QString &text)
 Begin an undo stack macro (series of commands) More...
 
void endMacro ()
 End the undo stack macro. More...
 
static QVariant global (const QString &key)
 Retrieve a global setting. More...
 
static void setGlobal (const QString &key, const QVariant &value)
 Update a global setting. More...
 
static void setGlobalDefault (const QString &key, const QVariant &value)
 Set default value for a global setting. More...
 

serialize/deserialize

virtual void save (QXmlStreamWriter *) const
 Save as XML. More...
 
virtual bool load (XmlStreamReader *)
 Load from XML. More...
 
void importV0x0001XXCreationTime (const QString &str)
 
void aspectDescriptionAboutToChange (const AbstractAspect *aspect)
 Emit this before the name, comment or caption spec is changed. More...
 
void aspectDescriptionChanged (const AbstractAspect *aspect)
 Emit this when the name, comment or caption spec changed. More...
 
void aspectAboutToBeAdded (const AbstractAspect *parent, int index)
 Emit this when a parent aspect is about to get a new child inserted. More...
 
void aspectAdded (const AbstractAspect *aspect)
 Emit this from a newly added aspect. More...
 
void aspectAdded (const AbstractAspect *parent, int index)
 Emit this from a parent after adding a new child to it. More...
 
void aspectAboutToBeRemoved (const AbstractAspect *aspect)
 Emit this from an aspect about to be removed from its parent's children. More...
 
void aspectAboutToBeRemoved (const AbstractAspect *parent, int index)
 Emit this from a parent before removing its child. More...
 
void aspectRemoved (const AbstractAspect *parent, int index)
 Emit this from the parent after removing a child. More...
 
void statusInfo (const QString &text)
 Emit this to give status information to the user. More...
 
Privated_aspect_private
 
bool readBasicAttributes (XmlStreamReader *reader)
 Load name, creation time and caption spec from XML. More...
 
void writeBasicAttributes (QXmlStreamWriter *writer) const
 Save name, creation time and caption spec to XML. More...
 
void writeCommentElement (QXmlStreamWriter *writer) const
 Save the comment to XML. More...
 
bool readCommentElement (XmlStreamReader *reader)
 Load comment from an XML element. More...
 
void setCreationTime (const QDateTime &time)
 Set the creation time. More...
 
virtual void completeAspectInsertion (AbstractAspect *aspect, int index)
 Called after a new child has been inserted or added. More...
 
virtual void prepareAspectRemoval (AbstractAspect *aspect)
 Called before a child is removed. More...
 
void info (const QString &text)
 Implementations should call this whenever status information should be given to the user. More...
 
void setName (const QString &value)
 
void setComment (const QString &value)
 
void setCaptionSpec (const QString &value)
 Set the specification string used for constructing the caption(). More...
 
virtual void remove ()
 Remove me from my parent's list of children. More...
 
QString uniqueNameFor (const QString &current_name) const
 Make the specified name unique among my children by incrementing a trailing number. More...
 

IntervalAttribute related functions

virtual bool isInvalid (int row) const
 Return whether a certain row contains an invalid value
More...
 
virtual bool isInvalid (Interval< int > i) const
 Return whether a certain interval of rows contains only invalid values
More...
 
virtual QList< Interval< int > > invalidIntervals () const
 Return all intervals of invalid rows. More...
 
virtual bool isMasked (int row) const
 Return whether a certain row is masked
More...
 
virtual bool isMasked (Interval< int > i) const
 Return whether a certain interval of rows rows is fully masked
More...
 
virtual QList< Interval< int > > maskedIntervals () const
 Return all intervals of masked rows. More...
 
virtual void clearValidity ()
 Clear all validity information. More...
 
virtual void clearMasks ()
 Clear all masking information. More...
 

type specific functions

class ColumnPrivate
 
class AbstractSimpleFilter
 
class SimpleMappingFilter
 
class SimpleCopyThroughFilter
 
virtual QString textAt (int row) const
 Return the content of row 'row'. More...
 
virtual void replaceTexts (int first, const QStringList &new_values)
 Set the content of row 'row'. More...
 
virtual QDate dateAt (int row) const
 Return the date part of row 'row'. More...
 
virtual QTime timeAt (int row) const
 Set the content of row 'row'. More...
 
virtual QDateTime dateTimeAt (int row) const
 Set the content of row 'row'. More...
 
virtual void replaceDateTimes (int first, const QList< QDateTime > &new_values)
 Set the content of row 'row'. More...
 
virtual double valueAt (int row) const
 Return the double value in row 'row'. More...
 
virtual void replaceValues (int first, const QVector< qreal > &new_values)
 Set the content of row 'row'. More...
 
void plotDesignationAboutToChange (const AbstractColumn *source)
 Column plot designation will be changed. More...
 
void plotDesignationChanged (const AbstractColumn *source)
 Column plot designation changed. More...
 
void modeAboutToChange (const AbstractColumn *source)
 Column mode (possibly also the data type) will be changed. More...
 
void modeChanged (const AbstractColumn *source)
 Column mode (possibly also the data type) changed. More...
 
void dataAboutToChange (const AbstractColumn *source)
 Data (including validity) of the column will be changed. More...
 
void dataChanged (const AbstractColumn *source)
 Data (including validity) of the column has changed. More...
 
void aboutToBeReplaced (const AbstractColumn *source, const AbstractColumn *new_col)
 The column will be replaced. More...
 
void rowsAboutToBeInserted (const AbstractColumn *source, int before, int count)
 Rows will be inserted. More...
 
void rowsInserted (const AbstractColumn *source, int before, int count)
 Rows have been inserted. More...
 
void rowsAboutToBeRemoved (const AbstractColumn *source, int first, int count)
 Rows will be deleted. More...
 
void rowsRemoved (const AbstractColumn *source, int first, int count)
 Rows have been deleted. More...
 
void maskingAboutToChange (const AbstractColumn *source)
 IntervalAttribute related signal. More...
 
void maskingChanged (const AbstractColumn *source)
 IntervalAttribute related signal. More...
 
void aboutToBeDestroyed (const AbstractColumn *source)
 Emitted shortly before this data source is deleted. More...
 

Detailed Description

Interface definition for data with column logic.

This is an abstract base class for column-based data, i.e. mathematically a vector or technically a 1D array or list. It only defines the interface but has no data members itself.

Classes derived from this are typically table columns or outputs of filters which can be chained between table columns and plots. From the point of view of the plot functions there will be no difference between a table column and a filter output since both use this interface.

Classes derived from this will either store a vector with entries of one certain data type, e.g. double, QString, QDateTime, or generate such values on demand. To determine the data type of a class derived from this, use the dataType() function. AbstractColumn defines all access functions for all supported data types but only those corresponding to the return value of dataType() will return a meaningful value. Calling functions not belonging to the data type of the column is safe, but will do nothing (writing function) or return some default value (reading functions).

This class also defines all signals which indicate a data change. Any class whose output values are subject to change over time must emit the according signals. These signals notify any object working with the column before and after a change of the column. In some cases it will be necessary for a class using the column to connect aboutToBeDestroyed(), to react to a column's deletion, e.g. a filter's reaction to a table deletion.

All writing functions have a "do nothing" standard implementation to make deriving a read-only class very easy without bothering about the writing interface.

Definition at line 81 of file AbstractColumn.h.

Constructor & Destructor Documentation

◆ AbstractColumn()

AbstractColumn::AbstractColumn ( const QString &  name)
inline

Ctor.

Definition at line 87 of file AbstractColumn.h.

87 : AbstractAspect(name) {}

◆ ~AbstractColumn()

virtual AbstractColumn::~AbstractColumn ( )
inlinevirtual

Dtor.

Definition at line 89 of file AbstractColumn.h.

89 { aboutToBeDestroyed(this);}

References aboutToBeDestroyed().

Member Function Documentation

◆ aboutToBeDestroyed

void AbstractColumn::aboutToBeDestroyed ( const AbstractColumn source)
signal

Emitted shortly before this data source is deleted.

Parameters
sourcethe object emitting this signal

This is needed by AbstractFilter.

Referenced by ~AbstractColumn().

Here is the caller graph for this function:

◆ aboutToBeReplaced

void AbstractColumn::aboutToBeReplaced ( const AbstractColumn source,
const AbstractColumn new_col 
)
signal

The column will be replaced.

This is used then a column is replaced by another column, possibly of another type.

Parameters
new_colPointer to the column this one is to be replaced with.
sourceis always a pointer to the column that emitted this signal. This way it's easier to use one handler for lots of columns.

Referenced by notifyReplacement(), and Column::notifyReplacement().

Here is the caller graph for this function:

◆ addChild()

void AbstractAspect::addChild ( AbstractAspect child)
inherited

Add the given Aspect to my list of children.

Definition at line 114 of file AbstractAspect.cpp.

115 {
116  Q_CHECK_PTR(child);
117  QString new_name = d_aspect_private->uniqueNameFor(child->name());
118  beginMacro(tr("%1: add %2.").arg(name()).arg(new_name));
119  if (new_name != child->name()) {
120  info(tr("Renaming \"%1\" to \"%2\" in order to avoid name collision.").arg(child->name()).arg(new_name));
121  child->setName(new_name);
122  }
125  endMacro();
126 }

References AbstractAspect::beginMacro(), AbstractAspect::child(), AbstractAspect::Private::childCount(), AbstractAspect::completeAspectInsertion(), AbstractAspect::d_aspect_private, AbstractAspect::endMacro(), AbstractAspect::exec(), AbstractAspect::info(), AbstractAspect::name(), AbstractAspect::setName(), and AbstractAspect::Private::uniqueNameFor().

Referenced by AbstractSimpleFilter::AbstractSimpleFilter(), Column::Column(), ApplicationWindow::convertMatrixToTable(), ApplicationWindow::convertTableToMatrix(), future::Matrix::duplicate(), ApplicationWindow::importImage(), Column::init(), ApplicationWindow::newMatrix(), ApplicationWindow::newTable(), ApplicationWindow::newTableStatistics(), future::Folder::readChildAspectElement(), and Column::setColumnMode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ aspectAboutToBeAdded

void AbstractAspect::aspectAboutToBeAdded ( const AbstractAspect parent,
int  index 
)
signalinherited

Emit this when a parent aspect is about to get a new child inserted.

Referenced by AbstractAspect::Private::insertChild().

Here is the caller graph for this function:

◆ aspectAboutToBeRemoved [1/2]

void AbstractAspect::aspectAboutToBeRemoved ( const AbstractAspect aspect)
signalinherited

Emit this from an aspect about to be removed from its parent's children.

Referenced by AbstractAspect::Private::insertChild(), and AbstractAspect::Private::removeChild().

Here is the caller graph for this function:

◆ aspectAboutToBeRemoved [2/2]

void AbstractAspect::aspectAboutToBeRemoved ( const AbstractAspect parent,
int  index 
)
signalinherited

Emit this from a parent before removing its child.

◆ aspectAdded [1/2]

void AbstractAspect::aspectAdded ( const AbstractAspect aspect)
signalinherited

Emit this from a newly added aspect.

Referenced by AbstractAspect::Private::insertChild().

Here is the caller graph for this function:

◆ aspectAdded [2/2]

void AbstractAspect::aspectAdded ( const AbstractAspect parent,
int  index 
)
signalinherited

Emit this from a parent after adding a new child to it.

◆ aspectDescriptionAboutToChange

void AbstractAspect::aspectDescriptionAboutToChange ( const AbstractAspect aspect)
signalinherited

Emit this before the name, comment or caption spec is changed.

Referenced by AbstractFilter::input(), and AbstractAspect::Private::insertChild().

Here is the caller graph for this function:

◆ aspectDescriptionChanged

void AbstractAspect::aspectDescriptionChanged ( const AbstractAspect aspect)
signalinherited

Emit this when the name, comment or caption spec changed.

Referenced by future::Table::connectColumn(), AbstractFilter::input(), AbstractAspect::Private::insertChild(), and Column::notifyDisplayChange().

Here is the caller graph for this function:

◆ aspectRemoved

void AbstractAspect::aspectRemoved ( const AbstractAspect parent,
int  index 
)
signalinherited

Emit this from the parent after removing a child.

Referenced by AbstractAspect::Private::insertChild(), and AbstractAspect::Private::removeChild().

Here is the caller graph for this function:

◆ beginMacro()

void AbstractAspect::beginMacro ( const QString &  text)
inherited

Begin an undo stack macro (series of commands)

Definition at line 215 of file AbstractAspect.cpp.

216 {
217  QUndoStack *stack = undoStack();
218  if (stack)
219  stack->beginMacro(text);
220 }

References AbstractAspect::undoStack().

Referenced by AbstractAspect::addChild(), future::Table::addColumn(), future::Matrix::addColumns(), future::Table::addColumns(), future::Matrix::addRows(), future::Table::addRows(), Matrix::applyFormula(), TableView::applyType(), future::Matrix::clear(), future::Table::clear(), future::Table::clearMasks(), future::Matrix::clearSelectedCells(), future::Table::clearSelectedCells(), future::Matrix::clearSelectedColumns(), future::Table::clearSelectedColumns(), future::Matrix::clearSelectedRows(), future::Matrix::copy(), future::Table::copy(), future::Matrix::cutSelection(), future::Table::cutSelection(), future::Table::fillSelectedCellsWithRandomNumbers(), future::Table::fillSelectedCellsWithRowNumbers(), AbstractAspect::insertChild(), future::Matrix::insertColumns(), future::Table::insertColumns(), future::Matrix::insertEmptyColumns(), future::Table::insertEmptyColumns(), future::Matrix::insertEmptyRows(), future::Table::insertEmptyRows(), future::Matrix::insertRows(), future::Table::insertRows(), future::Table::maskSelection(), future::Table::moveColumn(), future::Table::normalizeColumns(), future::Table::normalizeSelection(), future::Matrix::pasteIntoSelection(), future::Table::pasteIntoSelection(), future::Table::recalculateSelectedCells(), AbstractAspect::removeAllChildAspects(), AbstractAspect::removeChild(), future::Matrix::removeColumns(), future::Table::removeColumns(), future::Matrix::removeRows(), future::Table::removeRows(), future::Matrix::removeSelectedColumns(), future::Table::removeSelectedColumns(), future::Matrix::removeSelectedRows(), future::Table::removeSelectedRows(), AbstractAspect::reparentChild(), Column::setColumnMode(), future::Matrix::setDimensions(), future::Table::setRowCount(), future::Table::setSelectionAs(), future::Table::sortColumns(), and future::Table::unmaskSelection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ caption()

QString AbstractAspect::caption ( ) const
inherited

Definition at line 293 of file AbstractAspect.cpp.

294 {
295  return d_aspect_private->caption();
296 }

References AbstractAspect::Private::caption(), and AbstractAspect::d_aspect_private.

Referenced by PartMdiView::handleAspectDescriptionChanged().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ captionSpec()

QString AbstractAspect::captionSpec ( ) const
inherited

Return the specification string used for constructing the caption().

See setCaptionSpec() for format.

Definition at line 271 of file AbstractAspect.cpp.

272 {
273  return d_aspect_private->captionSpec();
274 }

References AbstractAspect::Private::captionSpec(), and AbstractAspect::d_aspect_private.

Referenced by future::Table::copy(), and AbstractAspect::writeBasicAttributes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ child()

AbstractAspect * AbstractAspect::child ( int  index) const
inherited

Get a child by its position in my list of children.

Definition at line 180 of file AbstractAspect.cpp.

181 {
182  Q_ASSERT(index >= 0 && index <= childCount());
183  return d_aspect_private->child(index);
184 }

References AbstractAspect::Private::child(), AbstractAspect::childCount(), AbstractAspect::d_aspect_private, and AbstractAspect::index().

Referenced by AbstractAspect::addChild(), AbstractAspect::Private::addChild(), AbstractAspect::descendantsThatInherit(), ApplicationWindow::handleAspectAboutToBeRemoved(), ApplicationWindow::handleAspectAdded(), AbstractAspect::indexOfChild(), AbstractAspect::Private::indexOfChild(), AbstractAspect::insertChild(), AbstractAspect::Private::insertChild(), AbstractAspect::Private::removeChild(), AbstractAspect::removeChild(), AbstractAspect::reparentChild(), future::Folder::save(), AbstractAspect::Private::uniqueNameFor(), and AbstractAspect::Private::~Private().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ childCount()

int AbstractAspect::childCount ( ) const
inherited

Return the number of child Aspects.

Definition at line 186 of file AbstractAspect.cpp.

187 {
188  return d_aspect_private->childCount();
189 }

References AbstractAspect::Private::childCount(), and AbstractAspect::d_aspect_private.

Referenced by AbstractAspect::Private::child(), AbstractAspect::child(), AbstractAspect::descendantsThatInherit(), AbstractAspect::moveChild(), AbstractAspect::removeAllChildAspects(), AbstractAspect::removeChild(), AbstractAspect::reparentChild(), and future::Folder::save().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clear()

virtual void AbstractColumn::clear ( )
inlinevirtual

Set the column plot designation.

Clear the whole column

Reimplemented in Column.

Definition at line 147 of file AbstractColumn.h.

147 {};

◆ clearFormulas()

virtual void AbstractColumn::clearFormulas ( )
inlinevirtual

Set a formula string for an interval of rows.

Overloaded function for convenience Clear all formulas

Reimplemented in Column.

Definition at line 209 of file AbstractColumn.h.

209 {};

◆ clearMasks()

virtual void AbstractColumn::clearMasks ( )
inlinevirtual

Clear all masking information.

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 168 of file AbstractColumn.h.

168 {};

◆ clearValidity()

virtual void AbstractColumn::clearValidity ( )
inlinevirtual

Clear all validity information.

Reimplemented in Column.

Definition at line 166 of file AbstractColumn.h.

166 {};

◆ columnMode()

virtual SciDAVis::ColumnMode AbstractColumn::columnMode ( ) const
pure virtual

Return the column mode.

Implemented in Column, ColumnStringIO, and SimpleFilterColumn.

Referenced by ColumnStringIO::copy(), AbstractFilter::input(), and ColumnFullCopyCmd::redo().

Here is the caller graph for this function:

◆ comment()

QString AbstractAspect::comment ( ) const
inherited

Definition at line 260 of file AbstractAspect.cpp.

261 {
262  return d_aspect_private->comment();
263 }

References AbstractAspect::Private::comment(), and AbstractAspect::d_aspect_private.

Referenced by Table::colComment(), Table::colComments(), future::Table::copy(), Table::saveComments(), TableView::setColumnForControlTabs(), Matrix::windowLabel(), and AbstractAspect::writeCommentElement().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ completeAspectInsertion()

virtual void AbstractAspect::completeAspectInsertion ( AbstractAspect aspect,
int  index 
)
inlineprotectedvirtualinherited

Called after a new child has been inserted or added.

Unlike the aspectAdded() signals, this method does not get called inside undo/redo actions; allowing subclasses to execute undo commands of their own.

Reimplemented in future::Table.

Definition at line 294 of file AbstractAspect.h.

294 { Q_UNUSED(aspect); Q_UNUSED(index); }

References AbstractAspect::index().

Referenced by AbstractAspect::addChild(), AbstractAspect::insertChild(), and AbstractAspect::reparentChild().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy() [1/2]

virtual bool AbstractColumn::copy ( const AbstractColumn other)
inlinevirtual

Copy another column of the same type.

This function will return false if the data type of 'other' is not the same as the type of 'this'. The validity information for the rows is also copied. Use a filter to convert a column to another type.

Reimplemented in Column, and ColumnStringIO.

Definition at line 116 of file AbstractColumn.h.

116 { Q_UNUSED(other) return false; };

◆ copy() [2/2]

virtual bool AbstractColumn::copy ( const AbstractColumn source,
int  source_start,
int  dest_start,
int  num_rows 
)
inlinevirtual

Copies part of another column of the same type.

This function will return false if the data type of 'other' is not the same as the type of 'this'. The validity information for the rows is also copied.

Parameters
otherpointer to the column to copy
src_startfirst row to copy in the column to copy
dest_startfirst row to copy in
num_rowsthe number of rows to copy

Reimplemented in Column, and ColumnStringIO.

Definition at line 127 of file AbstractColumn.h.

128  {
129  Q_UNUSED(source)
130  Q_UNUSED(source_start)
131  Q_UNUSED(dest_start)
132  Q_UNUSED(num_rows)
133  return false;
134  };

◆ createContextMenu()

QMenu * AbstractAspect::createContextMenu ( ) const
virtualinherited

Return a new context menu.

The caller takes ownership of the menu.

Reimplemented in future::Table, future::Matrix, Project, future::Folder, and AbstractPart.

Definition at line 303 of file AbstractAspect.cpp.

304 {
305  QMenu * menu = new QMenu();
306 
307  const QStyle *widget_style = qApp->style();
308  QAction *action_temp;
309 
310  action_temp = menu->addAction(QObject::tr("&Remove"), this, SLOT(remove()));
311  action_temp->setIcon(widget_style->standardIcon(QStyle::SP_TrashIcon));
312 
313  return menu;
314 }

References AbstractAspect::remove().

Referenced by AbstractPart::createContextMenu().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ creationTime()

QDateTime AbstractAspect::creationTime ( ) const
inherited

Definition at line 288 of file AbstractAspect.cpp.

289 {
290  return d_aspect_private->creationTime();
291 }

References AbstractAspect::Private::creationTime(), and AbstractAspect::d_aspect_private.

Referenced by Matrix::birthDate(), Matrix::init(), and AbstractAspect::writeBasicAttributes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dataAboutToChange

void AbstractColumn::dataAboutToChange ( const AbstractColumn source)
signal

Data (including validity) of the column will be changed.

'source' is always the this pointer of the column that emitted this signal. This way it's easier to use one handler for lots of columns.

Referenced by AbstractSimpleFilter::inputDataAboutToChange(), and AbstractSimpleFilter::inputModeAboutToChange().

Here is the caller graph for this function:

◆ dataChanged

void AbstractColumn::dataChanged ( const AbstractColumn source)
signal

Data (including validity) of the column has changed.

Important: When data has changed also the number of rows in the column may have changed without any other signal emission. 'source' is always the this pointer of the column that emitted this signal. This way it's easier to use one handler for lots of columns.

Referenced by AbstractSimpleFilter::inputDataChanged(), AbstractSimpleFilter::inputModeChanged(), and Column::notifyDisplayChange().

Here is the caller graph for this function:

◆ dataType()

◆ dateAt()

virtual QDate AbstractColumn::dateAt ( int  row) const
inlinevirtual

Return the date part of row 'row'.

Use this only when dataType() is QDateTime

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 233 of file AbstractColumn.h.

233 { Q_UNUSED(row); return QDate(); };

◆ dateTimeAt()

virtual QDateTime AbstractColumn::dateTimeAt ( int  row) const
inlinevirtual

Set the content of row 'row'.

Use this only when dataType() is QDateTime Return the QDateTime in row 'row' Use this only when dataType() is QDateTime

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 253 of file AbstractColumn.h.

253 { Q_UNUSED(row); return QDateTime(); };

Referenced by Column::Private::copy().

Here is the caller graph for this function:

◆ descendantsThatInherit()

QList< AbstractAspect * > AbstractAspect::descendantsThatInherit ( const char *  class_name)
inherited

Get all descendents that inherit the given class.

Definition at line 342 of file AbstractAspect.cpp.

343 {
344  QList<AbstractAspect *> list;
345  if (inherits(class_name))
346  list << this;
347  for (int i=0; i<childCount(); i++)
348  list << child(i)->descendantsThatInherit(class_name);
349  return list;
350 }

References AbstractAspect::child(), AbstractAspect::childCount(), and AbstractAspect::descendantsThatInherit().

Referenced by AbstractAspect::descendantsThatInherit(), and ApplicationWindow::tableWindows().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ endMacro()

void AbstractAspect::endMacro ( )
inherited

End the undo stack macro.

Definition at line 222 of file AbstractAspect.cpp.

223 {
224  QUndoStack *stack = undoStack();
225  if (stack)
226  stack->endMacro();
227 }

References AbstractAspect::undoStack().

Referenced by AbstractAspect::addChild(), future::Table::addColumn(), future::Matrix::addColumns(), future::Table::addColumns(), future::Matrix::addRows(), future::Table::addRows(), Matrix::applyFormula(), TableView::applyType(), future::Matrix::clear(), future::Table::clear(), future::Table::clearMasks(), future::Matrix::clearSelectedCells(), future::Table::clearSelectedCells(), future::Matrix::clearSelectedColumns(), future::Table::clearSelectedColumns(), future::Matrix::clearSelectedRows(), future::Matrix::copy(), future::Table::copy(), future::Matrix::cutSelection(), future::Table::cutSelection(), future::Table::fillSelectedCellsWithRandomNumbers(), future::Table::fillSelectedCellsWithRowNumbers(), AbstractAspect::insertChild(), future::Matrix::insertColumns(), future::Table::insertColumns(), future::Matrix::insertEmptyColumns(), future::Table::insertEmptyColumns(), future::Matrix::insertEmptyRows(), future::Table::insertEmptyRows(), future::Matrix::insertRows(), future::Table::insertRows(), future::Table::maskSelection(), future::Table::moveColumn(), future::Table::normalizeColumns(), future::Table::normalizeSelection(), future::Matrix::pasteIntoSelection(), future::Table::pasteIntoSelection(), future::Table::recalculateSelectedCells(), AbstractAspect::removeAllChildAspects(), AbstractAspect::removeChild(), future::Matrix::removeColumns(), future::Table::removeColumns(), future::Matrix::removeRows(), future::Table::removeRows(), future::Matrix::removeSelectedColumns(), future::Table::removeSelectedColumns(), future::Matrix::removeSelectedRows(), future::Table::removeSelectedRows(), AbstractAspect::reparentChild(), Column::setColumnMode(), future::Matrix::setDimensions(), future::Table::setRowCount(), future::Table::setSelectionAs(), future::Table::sortColumns(), and future::Table::unmaskSelection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exec()

void AbstractAspect::exec ( QUndoCommand *  command)
inherited

Execute the given command, pushing it on the undoStack() if available.

Definition at line 203 of file AbstractAspect.cpp.

204 {
205  Q_CHECK_PTR(cmd);
206  QUndoStack *stack = undoStack();
207  if (stack)
208  stack->push(cmd);
209  else {
210  cmd->redo();
211  delete cmd;
212  }
213 }

References AbstractAspect::undoStack().

Referenced by AbstractAspect::addChild(), future::Matrix::addColumns(), future::Matrix::addRows(), future::Table::addRows(), future::Matrix::clear(), Column::clear(), Column::clearFormulas(), Column::clearMasks(), future::Matrix::clearSelectedCells(), future::Matrix::clearSelectedColumns(), future::Matrix::clearSelectedRows(), Column::clearValidity(), future::Table::completeAspectInsertion(), Column::copy(), AbstractAspect::insertChild(), future::Matrix::insertColumns(), future::Matrix::insertRows(), Column::insertRows(), future::Matrix::mirrorHorizontally(), future::Matrix::mirrorVertically(), AbstractAspect::moveChild(), future::Table::moveColumn(), future::Table::prepareAspectRemoval(), AbstractAspect::removeChild(), future::Matrix::removeColumns(), future::Matrix::removeRows(), future::Table::removeRows(), Column::removeRows(), AbstractAspect::reparentChild(), Column::replaceDateTimes(), Column::replaceTexts(), Column::replaceValues(), AbstractAspect::setCaptionSpec(), future::Matrix::setCell(), future::Matrix::setColumnCells(), Column::setColumnMode(), AbstractAspect::setComment(), future::Matrix::setCoordinates(), AbstractAspect::setCreationTime(), Column::setDateTimeAt(), future::Matrix::setDimensions(), future::Matrix::setDisplayedDigits(), DateTime2StringFilter::setFormat(), String2DateTimeFilter::setFormat(), future::Matrix::setFormula(), Column::setFormula(), Column::setInvalid(), Column::setMasked(), AbstractAspect::setName(), Double2StringFilter::setNumDigits(), Double2StringFilter::setNumericFormat(), future::Matrix::setNumericFormat(), Column::setPlotDesignation(), future::Matrix::setRowCells(), future::Table::setRowCount(), Column::setTextAt(), Column::setValueAt(), future::Matrix::setXEnd(), future::Matrix::setXStart(), future::Matrix::setYEnd(), future::Matrix::setYStart(), and future::Matrix::transpose().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ folder()

future::Folder * AbstractAspect::folder ( )
inherited

Return the folder the Aspect is contained in or 0 if not.

The returned folder may be the aspect itself if it inherits Folder.

Definition at line 316 of file AbstractAspect.cpp.

317 {
318  if(inherits("future::Folder")) return static_cast<future::Folder *>(this);
319  AbstractAspect * parent_aspect = parentAspect();
320  while(parent_aspect && !parent_aspect->inherits("future::Folder"))
321  parent_aspect = parent_aspect->parentAspect();
322  return static_cast<future::Folder *>(parent_aspect);
323 }

References AbstractAspect::parentAspect().

Referenced by Project::createFolderContextMenu(), future::Matrix::duplicate(), and future::Folder::readChildAspectElement().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ formula()

virtual QString AbstractColumn::formula ( int  row) const
inlinevirtual

Return the formula associated with row 'row'

Reimplemented in Column.

Definition at line 190 of file AbstractColumn.h.

190 { Q_UNUSED(row); return QString(); }

◆ formulaIntervals()

virtual QList< Interval<int> > AbstractColumn::formulaIntervals ( ) const
inlinevirtual

Return the intervals that have associated formulas.

This can be used to make a list of formulas with their intervals. Here is some example code:

QStringList list;
QList< Interval<int> > intervals = my_column.formulaIntervals();
foreach(Interval<int> interval, intervals)
list << QString(interval.toString() + ": " + my_column.formula(interval.start()));

Reimplemented in Column.

Definition at line 203 of file AbstractColumn.h.

203 { return QList< Interval<int> >(); }

◆ global()

QVariant AbstractAspect::global ( const QString &  key)
staticinherited

Retrieve a global setting.

Definition at line 360 of file AbstractAspect.cpp.

361 {
362  QString qualified_key = QString(staticMetaObject.className()) + "/" + key;
363  QVariant result = Private::g_settings->value(qualified_key);
364  if (result.isValid())
365  return result;
366  else
367  return Private::g_defaults[qualified_key];
368 }

References AbstractAspect::Private::g_defaults, and AbstractAspect::Private::g_settings.

Referenced by future::Matrix::importImageDialog(), and ProjectConfigPage::ProjectConfigPage().

Here is the caller graph for this function:

◆ icon()

QIcon AbstractAspect::icon ( ) const
virtualinherited

Return an icon to be used for decorating my views.

Reimplemented in Column, future::Table, future::Matrix, and future::Folder.

Definition at line 298 of file AbstractAspect.cpp.

299 {
300  return QIcon();
301 }

Referenced by PartMdiView::PartMdiView().

Here is the caller graph for this function:

◆ importV0x0001XXCreationTime()

void AbstractAspect::importV0x0001XXCreationTime ( const QString &  str)
inlineinherited

Definition at line 255 of file AbstractAspect.h.

256  {
257  setCreationTime(QDateTime::fromString(str, Qt::LocalDate));
258  }

References AbstractAspect::setCreationTime(), and str.

Referenced by Matrix::setBirthDate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ index()

int AbstractAspect::index ( ) const
inlineinherited

Return my position in my parent's list of children.

Definition at line 137 of file AbstractAspect.h.

137 { return parentAspect() ? parentAspect()->indexOfChild(this) : 0; }

References AbstractAspect::indexOfChild(), and AbstractAspect::parentAspect().

Referenced by AbstractAspect::Private::child(), AbstractAspect::child(), future::Table::column(), future::Table::Private::column(), AbstractAspect::completeAspectInsertion(), future::Table::completeAspectInsertion(), future::Table::handleDataChange(), future::Table::handleDescriptionChange(), future::Table::handleModeChange(), future::Table::handlePlotDesignationChange(), future::Table::handleRowsInserted(), future::Table::handleRowsRemoved(), AbstractAspect::insertChild(), AbstractAspect::Private::insertChild(), AbstractAspect::Private::removeChild(), AbstractAspect::removeChild(), and Column::XmlReadRow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ indexOfChild()

int AbstractAspect::indexOfChild ( const AbstractAspect child) const
inherited

Return the position of child in my list of children.

Definition at line 191 of file AbstractAspect.cpp.

192 {
194 }

References AbstractAspect::child(), AbstractAspect::d_aspect_private, and AbstractAspect::Private::indexOfChild().

Referenced by AbstractAspect::index(), AbstractAspect::remove(), AbstractAspect::Private::removeChild(), AbstractAspect::removeChild(), and AbstractAspect::reparentChild().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ info()

void AbstractAspect::info ( const QString &  text)
inlineprotectedinherited

Implementations should call this whenever status information should be given to the user.

This will cause statusInfo() to be emitted. Typically, this will cause the specified string to be displayed in a status bar, a log window or some similar non-blocking way so as not to disturb the workflow.

Definition at line 307 of file AbstractAspect.h.

307 { emit statusInfo(text); }

References AbstractAspect::statusInfo().

Referenced by AbstractAspect::addChild(), AbstractAspect::insertChild(), AbstractAspect::reparentChild(), and AbstractAspect::setName().

Here is the caller graph for this function:

◆ insertChild()

void AbstractAspect::insertChild ( AbstractAspect child,
int  index 
)
inherited

Insert the given Aspect at a specific position in my list of children.

Definition at line 128 of file AbstractAspect.cpp.

129 {
130  Q_CHECK_PTR(child);
131  QString new_name = d_aspect_private->uniqueNameFor(child->name());
132  beginMacro(tr("%1: insert %2 at position %3.").arg(name()).arg(new_name).arg(index+1));
133  if (new_name != child->name()) {
134  info(tr("Renaming \"%1\" to \"%2\" in order to avoid name collision.").arg(child->name()).arg(new_name));
135  child->setName(new_name);
136  }
139  endMacro();
140 }

References AbstractAspect::beginMacro(), AbstractAspect::child(), AbstractAspect::completeAspectInsertion(), AbstractAspect::d_aspect_private, AbstractAspect::endMacro(), AbstractAspect::exec(), AbstractAspect::index(), AbstractAspect::info(), AbstractAspect::name(), AbstractAspect::setName(), and AbstractAspect::Private::uniqueNameFor().

Referenced by AbstractAspect::Private::addChild(), and future::Table::insertColumns().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ insertRows()

virtual void AbstractColumn::insertRows ( int  before,
int  count 
)
inlinevirtual

Insert some empty (or initialized with zero) rows.

Reimplemented in Column.

Definition at line 139 of file AbstractColumn.h.

139 { Q_UNUSED(before) Q_UNUSED(count) };

◆ invalidIntervals()

virtual QList< Interval<int> > AbstractColumn::invalidIntervals ( ) const
inlinevirtual

Return all intervals of invalid rows.

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 158 of file AbstractColumn.h.

158 { return QList< Interval<int> >(); }

Referenced by Column::Private::copy().

Here is the caller graph for this function:

◆ isDescendantOf()

bool AbstractAspect::isDescendantOf ( AbstractAspect other)
inherited

Return whether the there is a path upwards to the given aspect.

This also returns true if other==this.

Definition at line 325 of file AbstractAspect.cpp.

326 {
327  if(other == this) return true;
328  AbstractAspect * parent_aspect = parentAspect();
329  while(parent_aspect)
330  {
331  if(parent_aspect == other) return true;
332  parent_aspect = parent_aspect->parentAspect();
333  }
334  return false;
335 }

References AbstractAspect::parentAspect().

Here is the call graph for this function:

◆ isInvalid() [1/2]

virtual bool AbstractColumn::isInvalid ( int  row) const
inlinevirtual

Return whether a certain row contains an invalid value

Reimplemented in Column, ColumnStringIO, and SimpleFilterColumn.

Definition at line 154 of file AbstractColumn.h.

154 { return !Interval<int>(0, rowCount()-1).contains(row); }

Referenced by Column::Private::copy(), String2DateTimeFilter::isInvalid(), String2DayOfWeekFilter::isInvalid(), and String2MonthFilter::isInvalid().

Here is the caller graph for this function:

◆ isInvalid() [2/2]

virtual bool AbstractColumn::isInvalid ( Interval< int >  i) const
inlinevirtual

Return whether a certain interval of rows contains only invalid values

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 156 of file AbstractColumn.h.

156 { return !Interval<int>(0, rowCount()-1).contains(i); }

References rowCount().

Here is the call graph for this function:

◆ isMasked() [1/2]

virtual bool AbstractColumn::isMasked ( int  row) const
inlinevirtual

Return whether a certain row is masked

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 160 of file AbstractColumn.h.

160 { Q_UNUSED(row); return false; }

◆ isMasked() [2/2]

virtual bool AbstractColumn::isMasked ( Interval< int >  i) const
inlinevirtual

Return whether a certain interval of rows rows is fully masked

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 162 of file AbstractColumn.h.

162 { Q_UNUSED(i); return false; }

◆ isReadOnly()

virtual bool AbstractColumn::isReadOnly ( ) const
inlinevirtual

Return whether the object is read-only.

Reimplemented in Column.

Definition at line 94 of file AbstractColumn.h.

94 { return true; };

◆ load()

virtual bool AbstractAspect::load ( XmlStreamReader )
inlinevirtualinherited

Load from XML.

XmlStreamReader supports errors as well as warnings. If only warnings (non-critial errors) occur, this function must return the reader at the end element corresponding to the current element at the time the function was called.

This function is normally intended to be called directly after the ctor. If you want to call load on an aspect that has been altered, you must make sure beforehand that it is in the same state as after creation, e.g., remove all its child aspects.

Returns
false on error

Reimplemented in Column, String2DateTimeFilter, Double2StringFilter, DateTime2StringFilter, AbstractSimpleFilter, future::Table, future::Matrix, Project, and future::Folder.

Definition at line 217 of file AbstractAspect.h.

217 { return false; };

◆ maskedIntervals()

virtual QList< Interval<int> > AbstractColumn::maskedIntervals ( ) const
inlinevirtual

Return all intervals of masked rows.

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 164 of file AbstractColumn.h.

164 { return QList< Interval<int> >(); }

◆ maskingAboutToChange

void AbstractColumn::maskingAboutToChange ( const AbstractColumn source)
signal

IntervalAttribute related signal.

Referenced by AbstractSimpleFilter::clearMasks(), SimpleCopyThroughFilter::inputMaskingAboutToChange(), and AbstractSimpleFilter::setMasked().

Here is the caller graph for this function:

◆ maskingChanged

void AbstractColumn::maskingChanged ( const AbstractColumn source)
signal

IntervalAttribute related signal.

Referenced by AbstractSimpleFilter::clearMasks(), SimpleCopyThroughFilter::inputMaskingChanged(), and AbstractSimpleFilter::setMasked().

Here is the caller graph for this function:

◆ modeAboutToChange

void AbstractColumn::modeAboutToChange ( const AbstractColumn source)
signal

Column mode (possibly also the data type) will be changed.

'source' is always the this pointer of the column that emitted this signal. This way it's easier to use one handler for lots of columns.

Referenced by Column::Private::setColumnMode().

Here is the caller graph for this function:

◆ modeChanged

void AbstractColumn::modeChanged ( const AbstractColumn source)
signal

Column mode (possibly also the data type) changed.

'source' is always the this pointer of the column that emitted this signal. This way it's easier to use one handler for lots of columns.

◆ moveChild()

void AbstractAspect::moveChild ( int  from,
int  to 
)
inherited

Change the positon of a child in my list of children.

Definition at line 196 of file AbstractAspect.cpp.

197 {
198  Q_ASSERT(0 <= from && from < d_aspect_private->childCount());
199  Q_ASSERT(0 <= to && to < d_aspect_private->childCount());
200  exec(new AspectChildMoveCmd(d_aspect_private, from, to));
201 }

References AbstractAspect::childCount(), AbstractAspect::d_aspect_private, and AbstractAspect::exec().

Referenced by future::Table::moveColumn().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ name()

QString AbstractAspect::name ( ) const
inherited

Definition at line 229 of file AbstractAspect.cpp.

230 {
231  return d_aspect_private->name();
232 }

References AbstractAspect::d_aspect_private, and AbstractAspect::Private::name().

Referenced by AbstractAspect::addChild(), future::Table::addColumn(), future::Matrix::addColumns(), future::Table::addColumns(), Filter::addResultCurve(), future::Matrix::addRows(), future::Table::addRows(), TableView::applyType(), AspectChildAddCmd::AspectChildAddCmd(), AspectChildRemoveCmd::AspectChildRemoveCmd(), AspectChildReparentCmd::AspectChildReparentCmd(), future::Matrix::clear(), future::Table::clear(), future::Table::clearMasks(), future::Matrix::clearSelectedCells(), future::Table::clearSelectedCells(), future::Matrix::clearSelectedColumns(), future::Table::clearSelectedColumns(), future::Matrix::clearSelectedRows(), Table::colLabel(), Table::colNames(), future::Table::column(), Table::columnsList(), future::Matrix::copy(), future::Table::copy(), future::Matrix::cutSelection(), future::Table::cutSelection(), DateTime2StringFilterSetFormatCmd::DateTime2StringFilterSetFormatCmd(), ApplicationWindow::defineErrorBars(), Double2StringFilterSetDigitsCmd::Double2StringFilterSetDigitsCmd(), Double2StringFilterSetFormatCmd::Double2StringFilterSetFormatCmd(), Table::drawableColumnSelection(), future::Matrix::duplicate(), future::Table::export_to_TeX(), future::Table::fillSelectedCellsWithRandomNumbers(), future::Table::fillSelectedCellsWithRowNumbers(), TableView::handleAspectAdded(), Matrix::handleAspectDescriptionChange(), Table::handleAspectDescriptionChange(), TableView::handleAspectDescriptionChanged(), Table::importASCII(), ApplicationWindow::importASCII(), Table::init(), AbstractAspect::insertChild(), future::Matrix::insertColumns(), future::Table::insertColumns(), future::Matrix::insertEmptyColumns(), future::Table::insertEmptyColumns(), future::Matrix::insertEmptyRows(), future::Table::insertEmptyRows(), future::Matrix::insertRows(), future::Table::insertRows(), future::Table::maskSelection(), future::Table::moveColumn(), Matrix::name(), future::Matrix::Private::name(), future::Table::Private::name(), future::Table::normalizeColumns(), future::Table::normalizeSelection(), Differentiation::output(), future::Matrix::pasteIntoSelection(), future::Table::pasteIntoSelection(), AbstractAspect::path(), AbstractAspect::readBasicAttributes(), future::Table::recalculateSelectedCells(), AbstractAspect::removeAllChildAspects(), AbstractAspect::removeChild(), future::Matrix::removeColumns(), future::Table::removeColumns(), future::Matrix::removeRows(), future::Table::removeRows(), future::Matrix::removeSelectedColumns(), future::Table::removeSelectedColumns(), future::Matrix::removeSelectedRows(), future::Table::removeSelectedRows(), AbstractAspect::reparentChild(), Table::selectedColumns(), Table::selectedErrColumns(), Table::selectedYColumns(), Table::selectedYLabels(), TableView::setColumnForControlTabs(), Column::setColumnMode(), future::Matrix::setDimensions(), Graph::setLabelsTextFormat(), future::Table::setRowCount(), future::Table::setSelectionAs(), future::Table::showTeXTableExportDialog(), future::Table::sortColumns(), String2DateTimeFilterSetFormatCmd::String2DateTimeFilterSetFormatCmd(), TableMoveColumnCmd::TableMoveColumnCmd(), ApplicationWindow::tableWindows(), AbstractAspect::Private::uniqueNameFor(), future::Table::unmaskSelection(), AbstractAspect::writeBasicAttributes(), and Table::YColumns().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ notifyReplacement()

virtual void AbstractColumn::notifyReplacement ( const AbstractColumn replacement)
inlinevirtual

This must be called before the column is replaced by another.

Reimplemented in Column.

Definition at line 149 of file AbstractColumn.h.

149 { aboutToBeReplaced(this, replacement); }

References aboutToBeReplaced().

◆ parentAspect()

AbstractAspect * AbstractAspect::parentAspect ( ) const
inherited

Return my parent Aspect or 0 if I currently don't have one.

Definition at line 109 of file AbstractAspect.cpp.

110 {
111  return d_aspect_private->parent();
112 }

References AbstractAspect::d_aspect_private, and AbstractAspect::Private::parent().

Referenced by DateTime2StringFilterSetFormatCmd::DateTime2StringFilterSetFormatCmd(), Double2StringFilterSetDigitsCmd::Double2StringFilterSetDigitsCmd(), Double2StringFilterSetFormatCmd::Double2StringFilterSetFormatCmd(), AbstractAspect::folder(), TableView::handleAspectAdded(), TableView::handleAspectDescriptionChanged(), AbstractAspect::index(), AbstractAspect::isDescendantOf(), AbstractAspect::path(), AbstractAspect::project(), AbstractAspect::remove(), Graph::setLabelsTextFormat(), String2DateTimeFilterSetFormatCmd::String2DateTimeFilterSetFormatCmd(), and AbstractAspect::undoStack().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ path()

virtual QString AbstractAspect::path ( ) const
inlinevirtualinherited

Return the path that leads from the top-most Aspect (usually a Project) to me.

Reimplemented in Project.

Definition at line 154 of file AbstractAspect.h.

154 { return parentAspect() ? parentAspect()->path() + "/" + name() : ""; }

References AbstractAspect::name(), AbstractAspect::parentAspect(), and AbstractAspect::path().

Referenced by AbstractAspect::path().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ plotDesignation()

virtual SciDAVis::PlotDesignation AbstractColumn::plotDesignation ( ) const
pure virtual

Return the column plot designation.

Implemented in Column, ColumnStringIO, and SimpleFilterColumn.

◆ plotDesignationAboutToChange

void AbstractColumn::plotDesignationAboutToChange ( const AbstractColumn source)
signal

Column plot designation will be changed.

'source' is always the this pointer of the column that emitted this signal. This way it's easier to use one handler for lots of columns.

Referenced by AbstractSimpleFilter::inputPlotDesignationAboutToChange().

Here is the caller graph for this function:

◆ plotDesignationChanged

void AbstractColumn::plotDesignationChanged ( const AbstractColumn source)
signal

Column plot designation changed.

'source' is always the this pointer of the column that emitted this signal. This way it's easier to use one handler for lots of columns.

Referenced by AbstractSimpleFilter::inputPlotDesignationChanged().

Here is the caller graph for this function:

◆ prepareAspectRemoval()

virtual void AbstractAspect::prepareAspectRemoval ( AbstractAspect aspect)
inlineprotectedvirtualinherited

Called before a child is removed.

Unlike the aspectAboutToBeRemoved() signals, this method does not get called inside undo/redo actions; allowing subclasses to execute undo commands of their own.

Reimplemented in future::Table.

Definition at line 300 of file AbstractAspect.h.

300 { Q_UNUSED(aspect); }

Referenced by AbstractAspect::removeChild(), and AbstractAspect::reparentChild().

Here is the caller graph for this function:

◆ project() [1/2]

virtual Project* AbstractAspect::project ( )
inlinevirtualinherited

Return the Project this Aspect belongs to, or 0 if it is currently not part of one.

Reimplemented in Project.

Definition at line 152 of file AbstractAspect.h.

152 { return parentAspect() ? parentAspect()->project() : 0; }

References AbstractAspect::parentAspect(), and AbstractAspect::project().

Here is the call graph for this function:

◆ project() [2/2]

virtual const Project* AbstractAspect::project ( ) const
inlinevirtualinherited

Return the Project this Aspect belongs to, or 0 if it is currently not part of one.

Reimplemented in Project.

Definition at line 150 of file AbstractAspect.h.

150 { return parentAspect() ? parentAspect()->project() : 0; }

References AbstractAspect::parentAspect(), and AbstractAspect::project().

Referenced by future::Folder::createContextMenu(), and AbstractAspect::project().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readBasicAttributes()

bool AbstractAspect::readBasicAttributes ( XmlStreamReader reader)
protectedinherited

Load name, creation time and caption spec from XML.

Returns
false on error

Definition at line 77 of file AbstractAspect.cpp.

78 {
79  QString prefix(tr("XML read error: ","prefix for XML error messages"));
80  QString postfix(tr(" (non-critical)", "postfix for XML error messages"));
81 
82  QXmlStreamAttributes attribs = reader->attributes();
83  QString str;
84 
85  // read name
86  str = attribs.value(reader->namespaceUri().toString(), "name").toString();
87  if(str.isEmpty())
88  {
89  reader->raiseWarning(prefix+tr("aspect name missing or empty")+postfix);
90  }
91  setName(str);
92  // read creation time
93  str = attribs.value(reader->namespaceUri().toString(), "creation_time").toString();
94  QDateTime creation_time = QDateTime::fromString(str, "yyyy-dd-MM hh:mm:ss:zzz");
95  if(str.isEmpty() || !creation_time.isValid())
96  {
97  reader->raiseWarning(tr("Invalid creation time for '%1'. Using current time.").arg(name()));
98  setCreationTime(QDateTime::currentDateTime());
99  }
100  else
101  setCreationTime(creation_time);
102  // read caption spec
103  str = attribs.value(reader->namespaceUri().toString(), "caption_spec").toString();
105 
106  return true;
107 }

References AbstractAspect::name(), XmlStreamReader::raiseWarning(), AbstractAspect::setCaptionSpec(), AbstractAspect::setCreationTime(), AbstractAspect::setName(), and str.

Referenced by future::Folder::load(), future::Matrix::load(), future::Table::load(), AbstractSimpleFilter::load(), and Column::load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readCommentElement()

bool AbstractAspect::readCommentElement ( XmlStreamReader reader)
protectedinherited

Load comment from an XML element.

Definition at line 61 of file AbstractAspect.cpp.

62 {
63  Q_ASSERT(reader->isStartElement() && reader->name() == "comment");
64  QString temp = reader->readElementText();
65  temp.replace("\\n", "\n");
66  setComment(temp);
67  return true;
68 }

References AbstractAspect::setComment().

Referenced by future::Folder::load(), future::Matrix::load(), future::Table::load(), AbstractSimpleFilter::load(), and Column::load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove

virtual void AbstractAspect::remove ( )
inlinevirtualslotinherited

Remove me from my parent's list of children.

Definition at line 250 of file AbstractAspect.h.

References AbstractAspect::indexOfChild(), AbstractAspect::parentAspect(), and AbstractAspect::removeChild().

Referenced by Matrix::closeEvent(), PartMdiView::closeEvent(), AbstractAspect::createContextMenu(), Table::importASCII(), Column::Private::removeRows(), and future::Matrix::Private::removeRows().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeAllChildAspects()

void AbstractAspect::removeAllChildAspects ( )
virtualinherited

Remove all child aspects.

Definition at line 352 of file AbstractAspect.cpp.

353 {
354  beginMacro(tr("%1: remove all children.").arg(name()));
355  for (int i=childCount()-1; i >= 0; i--)
356  removeChild(i);
357  endMacro();
358 }

References AbstractAspect::beginMacro(), AbstractAspect::childCount(), AbstractAspect::endMacro(), AbstractAspect::name(), and AbstractAspect::removeChild().

Referenced by future::Folder::load().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeChild() [1/2]

void AbstractAspect::removeChild ( AbstractAspect child,
bool  detach = false 
)
inherited

Remove the given Aspect from my list of children.

Usually, the ownership of the child is transfered to the undo command, i.e., the aspect is deleted by the undo command. But by setting detach to true, you can remove a child from the Aspect tree without deleting it. Of course, that means whovere detaches an Aspect in responsible for deleting it (or re-attaching it somewhere in the tree).

See also
reparentChild()

Definition at line 142 of file AbstractAspect.cpp.

143 {
144  Q_ASSERT(indexOfChild(child) != -1);
145  beginMacro(tr("%1: remove %2.").arg(name()).arg(child->name()));
148  endMacro();
149 }

References AbstractAspect::beginMacro(), AbstractAspect::child(), AbstractAspect::d_aspect_private, AbstractAspect::endMacro(), AbstractAspect::exec(), AbstractAspect::indexOfChild(), AbstractAspect::name(), and AbstractAspect::prepareAspectRemoval().

Referenced by AbstractAspect::remove(), AbstractAspect::removeAllChildAspects(), AbstractAspect::removeChild(), future::Table::removeColumns(), ApplicationWindow::removeDependentTableStatistics(), and Column::setColumnMode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeChild() [2/2]

void AbstractAspect::removeChild ( int  index)
inherited

Remove the Aspect at the given index from my list of children.

The ownership of the child is transfered to the undo command, i.e., the aspect is deleted by the undo command.

See also
reparentChild()

Definition at line 174 of file AbstractAspect.cpp.

175 {
176  Q_ASSERT(index >= 0 && index <= childCount());
178 }

References AbstractAspect::Private::child(), AbstractAspect::childCount(), AbstractAspect::d_aspect_private, AbstractAspect::index(), and AbstractAspect::removeChild().

Here is the call graph for this function:

◆ removeRows()

virtual void AbstractColumn::removeRows ( int  first,
int  count 
)
inlinevirtual

Remove 'count' rows starting from row 'first'.

Reimplemented in Column.

Definition at line 141 of file AbstractColumn.h.

141 { Q_UNUSED(first) Q_UNUSED(count) };

◆ reparentChild() [1/2]

void AbstractAspect::reparentChild ( AbstractAspect new_parent,
AbstractAspect child 
)
inherited

Move a child to another aspect and transfer ownership.

Definition at line 151 of file AbstractAspect.cpp.

152 {
153  Q_ASSERT(new_parent != NULL);
154  reparentChild(new_parent, child, new_parent->childCount());
155 }

References AbstractAspect::child(), AbstractAspect::childCount(), and AbstractAspect::reparentChild().

Here is the call graph for this function:

◆ reparentChild() [2/2]

void AbstractAspect::reparentChild ( AbstractAspect new_parent,
AbstractAspect child,
int  d_new_index 
)
inherited

Move a child to another aspect and transfer ownership.

Definition at line 157 of file AbstractAspect.cpp.

158 {
159  Q_ASSERT(indexOfChild(child) != -1);
160  Q_ASSERT(new_index > 0 && new_index <= new_parent->childCount());
161  Q_ASSERT(new_parent != NULL);
162  QString new_name = new_parent->d_aspect_private->uniqueNameFor(child->name());
163  beginMacro(tr("%1: move %2 to %3.").arg(name()).arg(child->name()).arg(new_parent->name()));
164  if (new_name != child->name()) {
165  info(tr("Renaming \"%1\" to \"%2\" in order to avoid name collision.").arg(child->name()).arg(new_name));
166  child->setName(new_name);
167  }
169  exec(new AspectChildReparentCmd(d_aspect_private, new_parent->d_aspect_private, child, new_index));
170  new_parent->completeAspectInsertion(child, new_index);
171  endMacro();
172 }

References AbstractAspect::beginMacro(), AbstractAspect::child(), AbstractAspect::childCount(), AbstractAspect::completeAspectInsertion(), AbstractAspect::d_aspect_private, AbstractAspect::endMacro(), AbstractAspect::exec(), AbstractAspect::indexOfChild(), AbstractAspect::info(), AbstractAspect::name(), AbstractAspect::prepareAspectRemoval(), AbstractAspect::setName(), and AbstractAspect::Private::uniqueNameFor().

Referenced by AbstractAspect::reparentChild().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ replaceDateTimes()

virtual void AbstractColumn::replaceDateTimes ( int  first,
const QList< QDateTime > &  new_values 
)
inlinevirtual

Set the content of row 'row'.

Use this only when dataType() is QDateTime Replace a range of values Use this only when dataType() is QDateTime

Reimplemented in Column.

Definition at line 263 of file AbstractColumn.h.

263 { Q_UNUSED(first) Q_UNUSED(new_values) };

◆ replaceTexts()

virtual void AbstractColumn::replaceTexts ( int  first,
const QStringList &  new_values 
)
inlinevirtual

Set the content of row 'row'.

Use this only when dataType() is QString Replace a range of values Use this only when dataType() is QString

Reimplemented in ColumnStringIO, and Column.

Definition at line 228 of file AbstractColumn.h.

228 { Q_UNUSED(first) Q_UNUSED(new_values) };

◆ replaceValues()

virtual void AbstractColumn::replaceValues ( int  first,
const QVector< qreal > &  new_values 
)
inlinevirtual

Set the content of row 'row'.

Use this only when dataType() is double Replace a range of values Use this only when dataType() is double

Reimplemented in Column.

Definition at line 278 of file AbstractColumn.h.

278 { Q_UNUSED(first) Q_UNUSED(new_values) };

◆ rowCount()

virtual int AbstractColumn::rowCount ( ) const
pure virtual

Return the data vector size.

Implemented in Column, ColumnStringIO, and SimpleFilterColumn.

Referenced by Column::Private::copy(), future::Table::handleDataChange(), future::Table::handleRowsAboutToBeInserted(), future::Table::handleRowsInserted(), future::Table::handleRowsRemoved(), and isInvalid().

Here is the caller graph for this function:

◆ rowsAboutToBeInserted

void AbstractColumn::rowsAboutToBeInserted ( const AbstractColumn source,
int  before,
int  count 
)
signal

Rows will be inserted.

Parameters
sourcethe column that emitted the signal
beforethe row to insert before
countthe number of rows to be inserted

Referenced by AbstractSimpleFilter::inputRowsAboutToBeInserted().

Here is the caller graph for this function:

◆ rowsAboutToBeRemoved

void AbstractColumn::rowsAboutToBeRemoved ( const AbstractColumn source,
int  first,
int  count 
)
signal

Rows will be deleted.

Parameters
sourcethe column that emitted the signal
firstthe first row to be deleted
countthe number of rows to be deleted

Referenced by AbstractSimpleFilter::inputRowsAboutToBeRemoved().

Here is the caller graph for this function:

◆ rowsInserted

void AbstractColumn::rowsInserted ( const AbstractColumn source,
int  before,
int  count 
)
signal

Rows have been inserted.

Parameters
sourcethe column that emitted the signal
beforethe row to insert before
countthe number of rows to be inserted

Referenced by AbstractSimpleFilter::inputRowsInserted().

Here is the caller graph for this function:

◆ rowsRemoved

void AbstractColumn::rowsRemoved ( const AbstractColumn source,
int  first,
int  count 
)
signal

Rows have been deleted.

Parameters
sourcethe column that emitted the signal
firstthe first row that was deleted
countthe number of deleted rows

Referenced by AbstractSimpleFilter::inputRowsRemoved().

Here is the caller graph for this function:

◆ save()

virtual void AbstractAspect::save ( QXmlStreamWriter *  ) const
inlinevirtualinherited

Save as XML.

Reimplemented in Column, AbstractSimpleFilter, future::Table, future::Matrix, Project, and future::Folder.

Definition at line 201 of file AbstractAspect.h.

201 {};

Referenced by future::Folder::save().

Here is the caller graph for this function:

◆ setCaptionSpec

void AbstractAspect::setCaptionSpec ( const QString &  value)
slotinherited

Set the specification string used for constructing the caption().

The caption is constructed by substituting some magic tokens in the specification:

Additionally, you can use the construct C{<text>}. <text> is only shown in the caption if comment() is not empty (name and creation time should never be empty).

The default caption specification is "%n%C{ - }%c".

Definition at line 276 of file AbstractAspect.cpp.

277 {
278  if (value == d_aspect_private->captionSpec()) return;
280 }

References AbstractAspect::Private::captionSpec(), AbstractAspect::d_aspect_private, and AbstractAspect::exec().

Referenced by future::Table::copy(), AbstractAspect::readBasicAttributes(), and Matrix::setCaptionPolicy().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setColumnMode()

virtual void AbstractColumn::setColumnMode ( SciDAVis::ColumnMode  mode,
AbstractFilter conversion_filter = 0 
)
inlinevirtual

Set the column mode.

This sets the column mode and, if necessary, converts it to another datatype.

Reimplemented in Column.

Definition at line 107 of file AbstractColumn.h.

108  { Q_UNUSED(mode); Q_UNUSED(conversion_filter);};

◆ setComment

void AbstractAspect::setComment ( const QString &  value)
slotinherited

Definition at line 265 of file AbstractAspect.cpp.

266 {
267  if (value == d_aspect_private->comment()) return;
269 }

References AbstractAspect::Private::comment(), AbstractAspect::d_aspect_private, and AbstractAspect::exec().

Referenced by future::Table::copy(), ImportOPJ::importSpreadsheet(), future::Folder::load(), future::Matrix::load(), future::Table::load(), Column::load(), AbstractAspect::readCommentElement(), Table::setColComment(), Table::setColComments(), and Matrix::setWindowLabel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setCreationTime()

void AbstractAspect::setCreationTime ( const QDateTime &  time)
protectedinherited

Set the creation time.

The creation time will automatically be set when the aspect object is created. This function is usually only needed when the aspect is loaded from a file.

Definition at line 282 of file AbstractAspect.cpp.

283 {
284  if (time == d_aspect_private->creationTime()) return;
286 }

References AbstractAspect::Private::creationTime(), AbstractAspect::d_aspect_private, and AbstractAspect::exec().

Referenced by AbstractAspect::importV0x0001XXCreationTime(), and AbstractAspect::readBasicAttributes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setGlobal()

void AbstractAspect::setGlobal ( const QString &  key,
const QVariant &  value 
)
staticinherited

Update a global setting.

Definition at line 370 of file AbstractAspect.cpp.

371 {
372  Private::g_settings->setValue(QString(staticMetaObject.className()) + "/" + key, value);
373 }

References AbstractAspect::Private::g_settings.

Referenced by ProjectConfigPage::apply(), and future::Matrix::importImageDialog().

Here is the caller graph for this function:

◆ setGlobalDefault()

void AbstractAspect::setGlobalDefault ( const QString &  key,
const QVariant &  value 
)
staticinherited

Set default value for a global setting.

Definition at line 375 of file AbstractAspect.cpp.

376 {
377  Private::g_defaults[QString(staticMetaObject.className()) + "/" + key] = value;
378 }

References AbstractAspect::Private::g_defaults.

◆ setName

void AbstractAspect::setName ( const QString &  value)
slotinherited

Definition at line 234 of file AbstractAspect.cpp.

235 {
236  if (value.isEmpty()) {
237  setObjectName("1");
238  return;
239  }
240  if (value == d_aspect_private->name()) return;
241  // Until we get around to completely sanitizing the project file format, we have to remove
242  // characters that can easily break file save/restore.
243  // FIXME: once the project file format is fully XML-based (i.e. able to escape special characters),
244  // this can be removed
245  QString sanitized_value = value;
246  sanitized_value.remove(QChar('\n'));
247  sanitized_value.remove(QChar('\r'));
248  sanitized_value.remove(QChar('\t'));
249  if (sanitized_value != value)
250  info(tr("Tabs and line breaks in object names are currently not supported. They have been removed."));
251  if (d_aspect_private->parent()) {
252  QString new_name = d_aspect_private->parent()->uniqueNameFor(sanitized_value);
253  if (new_name != sanitized_value)
254  info(tr("Intended name \"%1\" diverted to \"%2\" in order to avoid name collision.").arg(sanitized_value).arg(new_name));
255  exec(new AspectNameChangeCmd(d_aspect_private, new_name));
256  } else
257  exec(new AspectNameChangeCmd(d_aspect_private, sanitized_value));
258 }

References AbstractAspect::d_aspect_private, AbstractAspect::exec(), AbstractAspect::info(), AbstractAspect::Private::name(), AbstractAspect::Private::parent(), and AbstractAspect::uniqueNameFor().

Referenced by AbstractAspect::addChild(), Table::importASCII(), ApplicationWindow::importASCII(), ImportOPJ::importSpreadsheet(), Table::importV0x0001XXHeader(), AbstractAspect::insertChild(), Column::Private::Private(), AbstractAspect::readBasicAttributes(), AbstractAspect::reparentChild(), Column::Private::replaceModeData(), Table::setColName(), Column::Private::setColumnMode(), Table::setHeader(), and Matrix::setName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ statusInfo

void AbstractAspect::statusInfo ( const QString &  text)
signalinherited

Emit this to give status information to the user.

Referenced by AbstractAspect::info(), and AbstractAspect::Private::insertChild().

Here is the caller graph for this function:

◆ textAt()

virtual QString AbstractColumn::textAt ( int  row) const
inlinevirtual

Return the content of row 'row'.

Use this only when dataType() is QString

Reimplemented in Column, ColumnStringIO, and SimpleFilterColumn.

Definition at line 218 of file AbstractColumn.h.

218 { Q_UNUSED(row); return ""; }

Referenced by Column::Private::copy(), and future::Table::text().

Here is the caller graph for this function:

◆ timeAt()

virtual QTime AbstractColumn::timeAt ( int  row) const
inlinevirtual

Set the content of row 'row'.

Use this only when dataType() is QDateTime Return the time part of row 'row' Use this only when dataType() is QDateTime

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 243 of file AbstractColumn.h.

243 { Q_UNUSED(row); return QTime(); };

◆ undoStack()

virtual QUndoStack* AbstractAspect::undoStack ( ) const
inlinevirtualinherited

Return the undo stack of the Project, or 0 if this Aspect is not part of a Project.

It's also possible to construct undo-enabled Aspect trees without Project. The only requirement is that the root Aspect reimplements undoStack() to get the undo stack from somewhere (the default implementation just delegates to parentAspect()).

Reimplemented in Project.

Definition at line 182 of file AbstractAspect.h.

182 { return parentAspect() ? parentAspect()->undoStack() : 0; }

References AbstractAspect::parentAspect(), and AbstractAspect::undoStack().

Referenced by AbstractAspect::beginMacro(), AbstractAspect::endMacro(), AbstractAspect::exec(), and AbstractAspect::undoStack().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uniqueNameFor

QString AbstractAspect::uniqueNameFor ( const QString &  current_name) const
slotinherited

Make the specified name unique among my children by incrementing a trailing number.

Definition at line 337 of file AbstractAspect.cpp.

338 {
339  return d_aspect_private->uniqueNameFor(current_name);
340 }

References AbstractAspect::d_aspect_private, and AbstractAspect::Private::uniqueNameFor().

Referenced by AbstractAspect::setName().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ valueAt()

virtual double AbstractColumn::valueAt ( int  row) const
inlinevirtual

Return the double value in row 'row'.

Use this only when dataType() is double

Reimplemented in Column, and SimpleFilterColumn.

Definition at line 268 of file AbstractColumn.h.

268 { Q_UNUSED(row); return 0; };

Referenced by Column::Private::copy().

Here is the caller graph for this function:

◆ writeBasicAttributes()

void AbstractAspect::writeBasicAttributes ( QXmlStreamWriter *  writer) const
protectedinherited

Save name, creation time and caption spec to XML.

Definition at line 70 of file AbstractAspect.cpp.

71 {
72  writer->writeAttribute("creation_time" , creationTime().toString("yyyy-dd-MM hh:mm:ss:zzz"));
73  writer->writeAttribute("caption_spec", captionSpec());
74  writer->writeAttribute("name", name());
75 }

References AbstractAspect::captionSpec(), AbstractAspect::creationTime(), AbstractAspect::name(), and toString().

Referenced by future::Folder::save(), future::Matrix::save(), future::Table::save(), AbstractSimpleFilter::save(), and Column::save().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeCommentElement()

void AbstractAspect::writeCommentElement ( QXmlStreamWriter *  writer) const
protectedinherited

Save the comment to XML.

Definition at line 52 of file AbstractAspect.cpp.

53 {
54  writer->writeStartElement("comment");
55  QString temp = comment();
56  temp.replace("\n", "\\n");
57  writer->writeCDATA(temp);
58  writer->writeEndElement();
59 }

References AbstractAspect::comment().

Referenced by future::Folder::save(), future::Matrix::save(), future::Table::save(), AbstractSimpleFilter::save(), and Column::save().

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ AbstractSimpleFilter

friend class AbstractSimpleFilter
friend

Definition at line 381 of file AbstractColumn.h.

◆ ColumnPrivate

friend class ColumnPrivate
friend

Definition at line 380 of file AbstractColumn.h.

◆ SimpleCopyThroughFilter

friend class SimpleCopyThroughFilter
friend

Definition at line 383 of file AbstractColumn.h.

Referenced by Column::Private::Private(), and Column::Private::setColumnMode().

◆ SimpleMappingFilter

friend class SimpleMappingFilter
friend

Definition at line 382 of file AbstractColumn.h.

Member Data Documentation

◆ d_aspect_private


The documentation for this class was generated from the following file:
AspectNameChangeCmd
Definition: aspectcommands.h:36
AbstractAspect::Private::comment
QString comment() const
Definition: AspectPrivate.cpp:134
AbstractAspect::reparentChild
void reparentChild(AbstractAspect *new_parent, AbstractAspect *child, int d_new_index)
Move a child to another aspect and transfer ownership.
Definition: AbstractAspect.cpp:157
AbstractAspect::Private::captionSpec
QString captionSpec() const
Definition: AspectPrivate.cpp:146
AbstractAspect::Private::caption
QString caption() const
Definition: AspectPrivate.cpp:171
AbstractColumn::aboutToBeDestroyed
void aboutToBeDestroyed(const AbstractColumn *source)
Emitted shortly before this data source is deleted.
AbstractAspect::exec
void exec(QUndoCommand *command)
Execute the given command, pushing it on the undoStack() if available.
Definition: AbstractAspect.cpp:203
str
#define str(x)
Definition: PythonScripting.cpp:41
AbstractAspect::setComment
void setComment(const QString &value)
Definition: AbstractAspect.cpp:265
AbstractAspect::Private::uniqueNameFor
QString uniqueNameFor(const QString &current_name) const
Definition: AspectPrivate.cpp:201
AbstractAspect::Private::childCount
int childCount() const
Definition: AspectPrivate.cpp:111
AbstractAspect::index
int index() const
Return my position in my parent's list of children.
Definition: AbstractAspect.h:137
AbstractAspect::creationTime
QDateTime creationTime() const
Definition: AbstractAspect.cpp:288
AspectChildAddCmd
Definition: aspectcommands.h:154
toString
S toString(const QString &x)
Deal with conversion between QString and std::string/std::wstring in a generic way.
AspectChildMoveCmd
Definition: aspectcommands.h:168
AbstractAspect::d_aspect_private
Private * d_aspect_private
Definition: AbstractAspect.h:310
AbstractAspect::descendantsThatInherit
QList< AbstractAspect * > descendantsThatInherit(const char *class_name)
Get all descendents that inherit the given class.
Definition: AbstractAspect.cpp:342
future::Folder
Folder in a project.
Definition: future_Folder.h:38
AbstractAspect::uniqueNameFor
QString uniqueNameFor(const QString &current_name) const
Make the specified name unique among my children by incrementing a trailing number.
Definition: AbstractAspect.cpp:337
AbstractAspect::Private::indexOfChild
int indexOfChild(const AbstractAspect *child) const
Definition: AspectPrivate.cpp:91
AbstractColumn::rowCount
virtual int rowCount() const =0
Return the data vector size.
AbstractAspect::indexOfChild
int indexOfChild(const AbstractAspect *child) const
Return the position of child in my list of children.
Definition: AbstractAspect.cpp:191
AbstractAspect::endMacro
void endMacro()
End the undo stack macro.
Definition: AbstractAspect.cpp:222
AbstractAspect::captionSpec
QString captionSpec() const
Return the specification string used for constructing the caption().
Definition: AbstractAspect.cpp:271
AbstractAspect::Private::g_defaults
static QHash< QString, QVariant > g_defaults
Definition: AspectPrivate.h:70
AbstractAspect::beginMacro
void beginMacro(const QString &text)
Begin an undo stack macro (series of commands)
Definition: AbstractAspect.cpp:215
AbstractAspect::statusInfo
void statusInfo(const QString &text)
Emit this to give status information to the user.
AspectCaptionSpecChangeCmd
Definition: aspectcommands.h:78
AspectCommentChangeCmd
Definition: aspectcommands.h:57
AbstractAspect::childCount
int childCount() const
Return the number of child Aspects.
Definition: AbstractAspect.cpp:186
AbstractAspect::completeAspectInsertion
virtual void completeAspectInsertion(AbstractAspect *aspect, int index)
Called after a new child has been inserted or added.
Definition: AbstractAspect.h:294
AbstractAspect::name
QString name() const
Definition: AbstractAspect.cpp:229
AbstractAspect::path
virtual QString path() const
Return the path that leads from the top-most Aspect (usually a Project) to me.
Definition: AbstractAspect.h:154
AbstractAspect::child
AbstractAspect * child(int index) const
Get a child by its position in my list of children.
Definition: AbstractAspect.cpp:180
AbstractAspect::Private::name
QString name() const
Definition: AspectPrivate.cpp:122
AbstractAspect::undoStack
virtual QUndoStack * undoStack() const
Return the undo stack of the Project, or 0 if this Aspect is not part of a Project.
Definition: AbstractAspect.h:182
AspectChildReparentCmd
Definition: aspectcommands.h:195
AbstractAspect::parentAspect
AbstractAspect * parentAspect() const
Return my parent Aspect or 0 if I currently don't have one.
Definition: AbstractAspect.cpp:109
AbstractAspect::removeChild
void removeChild(AbstractAspect *child, bool detach=false)
Remove the given Aspect from my list of children.
Definition: AbstractAspect.cpp:142
AbstractAspect::Private::creationTime
QDateTime creationTime() const
Definition: AspectPrivate.cpp:196
AbstractAspect::project
virtual const Project * project() const
Return the Project this Aspect belongs to, or 0 if it is currently not part of one.
Definition: AbstractAspect.h:150
AbstractAspect::setCaptionSpec
void setCaptionSpec(const QString &value)
Set the specification string used for constructing the caption().
Definition: AbstractAspect.cpp:276
AbstractAspect::Private::parent
AbstractAspect * parent()
Definition: AspectPrivate.h:65
AbstractAspect::setName
void setName(const QString &value)
Definition: AbstractAspect.cpp:234
AbstractAspect::comment
QString comment() const
Definition: AbstractAspect.cpp:260
AbstractColumn::aboutToBeReplaced
void aboutToBeReplaced(const AbstractColumn *source, const AbstractColumn *new_col)
The column will be replaced.
AspectChildRemoveCmd
Definition: aspectcommands.h:122
AbstractAspect::Private::child
AbstractAspect * child(int index)
Definition: AspectPrivate.cpp:116
AbstractAspect::remove
virtual void remove()
Remove me from my parent's list of children.
Definition: AbstractAspect.h:250
AbstractAspect::AbstractAspect
AbstractAspect(const QString &name)
Definition: AbstractAspect.cpp:42
AbstractAspect::setCreationTime
void setCreationTime(const QDateTime &time)
Set the creation time.
Definition: AbstractAspect.cpp:282
XmlStreamReader::raiseWarning
void raiseWarning(const QString &message=QString())
Definition: XmlStreamReader.cpp:86
Interval< int >
AbstractAspect::Private::g_settings
static QSettings * g_settings
Definition: AspectPrivate.h:69
AbstractAspect
Base class of all persistent objects in a Project.
Definition: AbstractAspect.h:86
AbstractAspect::prepareAspectRemoval
virtual void prepareAspectRemoval(AbstractAspect *aspect)
Called before a child is removed.
Definition: AbstractAspect.h:300
AspectCreationTimeChangeCmd
Definition: aspectcommands.h:100
AbstractAspect::info
void info(const QString &text)
Implementations should call this whenever status information should be given to the user.
Definition: AbstractAspect.h:307