#define COLLAPSIBLEGROUP_H
-#include "ui_collapsiblegroup_ui.h"
-
#include "abstractcollapsiblewidget.h"
#include "collapsibleeffect.h"
#include "timecode.h"
#include <QDomElement>
#include <QToolButton>
+#include <QLineEdit>
+#include <QMutex>
-class QFrame;
+
+class MyEditableLabel : public QLineEdit
+{
+ Q_OBJECT
+public:
+ explicit MyEditableLabel(QWidget * parent = 0);
+
+protected:
+ void mouseDoubleClickEvent( QMouseEvent *e);
+};
/**)
* @author Jean-Baptiste Mardelle
*/
-class CollapsibleGroup : public AbstractCollapsibleWidget, public Ui::CollapsibleGroup_UI
+class CollapsibleGroup : public AbstractCollapsibleWidget
{
Q_OBJECT
public:
- CollapsibleGroup(int ix, bool firstGroup, bool lastGroup, QWidget * parent = 0);
+ CollapsibleGroup(int ix, bool firstGroup, bool lastGroup, const EffectInfo &info, QWidget * parent = 0);
~CollapsibleGroup();
void updateTimecodeFormat();
void setActive(bool activate);
bool isActive() const;
void addGroupEffect(CollapsibleEffect *effect);
void removeGroup(int ix, QVBoxLayout *layout);
+ /** @brief Return all effects in group. */
+ QList <CollapsibleEffect*> effects();
+ /** @brief Return the editable title widget. */
+ QWidget *title() const;
+ /** @brief Return the XML data describing all effects in group. */
+ QDomDocument effectsData();
+ /** @brief Adjust sub effects buttons. */
+ void adjustEffects();
public slots:
- void slotEnable(bool enable);
+ void slotEnable(bool enable, bool emitInfo = true);
private slots:
void slotSwitch();
void slotShow(bool show);
- void slotDeleteEffect();
+ void slotDeleteGroup();
void slotEffectUp();
void slotEffectDown();
- void slotSaveEffect();
- void slotResetEffect();
+ void slotSaveGroup();
+ void slotResetGroup();
void slotUnGroup();
+ void slotRenameGroup();
private:
- //QList <CollapsibleEffect *> m_subParamWidgets;
+ QList <CollapsibleEffect *> m_subWidgets;
QMenu *m_menu;
EffectInfo m_info;
- int m_index;
- void updateGroupIndex(int groupIndex);
+ MyEditableLabel *m_title;
+ QMutex m_mutex;
protected:
- virtual void mouseDoubleClickEvent ( QMouseEvent * event );
- virtual void dragEnterEvent(QDragEnterEvent *event);
- virtual void dragLeaveEvent(QDragLeaveEvent *event);
- virtual void dropEvent(QDropEvent *event);
+ void mouseDoubleClickEvent ( QMouseEvent * event );
+ void dragEnterEvent(QDragEnterEvent *event);
+ void dragLeaveEvent(QDragLeaveEvent *event);
+ void dropEvent(QDropEvent *event);
signals:
- void syncEffectsPos(int);
- void effectStateChanged(bool, int ix = -1);
- void deleteGroup(int);
- void changeGroupPosition(int, bool);
- void activateEffect(int);
- void moveEffect(int current_pos, int new_pos, int groupIndex);
- void addEffect(QDomElement e);
+ void deleteGroup(const QDomDocument&);
void unGroup(CollapsibleGroup *);
+ void groupRenamed(CollapsibleGroup *);
+
};