Mercurial > hg > svcore
view base/PropertyContainer.cpp @ 46:5364a9d338a2
* Add Insert Instant function in main window
* Ensure selections and window geometry are saved in session file
* Add wait cursor on session file save
* Various improvements to display of texts in pane (clearer readability)
* Use commands for setting properties on layers and panes
(still need to batch up multiple sets on the same property)
* Fix failure of spectrogram to refresh when initial part became visible
* Some fixes & paint optimisations in View &c
* Make curve mode for time value layers work properly when resolution == 1
* Some vague improvements for time value layer vertical scale
author | Chris Cannam |
---|---|
date | Thu, 16 Mar 2006 18:46:00 +0000 |
parents | d86891498eef |
children | bac8b14ab355 |
line wrap: on
line source
/* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ /* A waveform viewer and audio annotation editor. Chris Cannam, Queen Mary University of London, 2005-2006 This is experimental software. Not for distribution. */ #include "PropertyContainer.h" #include "CommandHistory.h" #include <iostream> PropertyContainer::PropertyList PropertyContainer::getProperties() const { return PropertyList(); } PropertyContainer::PropertyType PropertyContainer::getPropertyType(const PropertyName &) const { return InvalidProperty; } QString PropertyContainer::getPropertyGroupName(const PropertyName &) const { return QString(); } int PropertyContainer::getPropertyRangeAndValue(const PropertyName &, int *min, int *max) const { if (min) *min = 0; if (max) *max = 0; return 0; } QString PropertyContainer::getPropertyValueLabel(const PropertyName &, int) const { return QString(); } void PropertyContainer::setProperty(const PropertyName &name, int) { std::cerr << "WARNING: PropertyContainer[" << getPropertyContainerName().toStdString() << "]::setProperty(" << name.toStdString() << "): no implementation in subclass!" << std::endl; } void PropertyContainer::setPropertyWithCommand(const PropertyName &name, int value) { int currentValue = getPropertyRangeAndValue(name, 0, 0); if (value == currentValue) return; CommandHistory::getInstance()->addCommand (new SetPropertyCommand(this, name, value)); } PropertyContainer::SetPropertyCommand::SetPropertyCommand(PropertyContainer *pc, const PropertyName &pn, int value) : m_pc(pc), m_pn(pn), m_value(value), m_oldValue(0) { } void PropertyContainer::SetPropertyCommand::execute() { m_oldValue = m_pc->getPropertyRangeAndValue(m_pn, 0, 0); m_pc->setProperty(m_pn, m_value); } void PropertyContainer::SetPropertyCommand::unexecute() { m_pc->setProperty(m_pn, m_oldValue); } QString PropertyContainer::SetPropertyCommand::getName() const { return m_pc->tr("Set %1 Property").arg(m_pn); }