/* * QtObservedMoleculeObserver.hpp * * Created on: Mar 17, 2016 * Author: heber */ #ifndef QTOBSERVEDMOLECULEOBSERVER_HPP_ #define QTOBSERVEDMOLECULEOBSERVER_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include "UIElements/Qt4/InstanceBoard/QtObservedMolecule.hpp" #include "types.hpp" class QtObservedInstanceBoard; /** This class serves all QtObservedMolecule instances and relays specific * events, such as ElementChanged. * * This is to have single class that is informed about all changes of a * certain type, but on the Qt side, just as EntityObserver does on the * molecuilder side. * */ class QtObservedMoleculeObserver : public QWidget { Q_OBJECT public: QtObservedMoleculeObserver(QtObservedInstanceBoard *_board, QWidget * _parent = NULL); const moleculeId_t getIdtoIndex(ObservedValue_Index_t _index) const; signals: void AtomCountChanged(const QtObservedMolecule::ptr _molecule); void FormulaChanged(const QtObservedMolecule::ptr _molecule); void NameChanged(const QtObservedMolecule::ptr _molecule); void SelectionChanged(const QtObservedMolecule::ptr _molecule); // relayed signals void MoleculeInserted(const QtObservedMolecule::ptr _molecule); void MoleculeRemoved(ObservedValue_Index_t _index); private slots: // relayed, and modified signals void atomcountChanged(); void formulaChanged(); void nameChanged(); void selectionChanged(); void moleculeInserted(const QtObservedMolecule::ptr _molecule); void moleculeRemoved(ObservedValue_Index_t _index); private: //!> ref to get object from index QtObservedInstanceBoard * const board; }; #endif /* QTOBSERVEDMOLECULEOBSERVER_HPP_ */