#include <QDomElement>
#include <QToolButton>
+#include <QLineEdit>
+#include <QMutex>
class QFrame;
+class MyEditableLabel : public QLineEdit
+{
+ Q_OBJECT
+
+public:
+ MyEditableLabel(QWidget * parent = 0);
+
+protected:
+ virtual void mouseDoubleClickEvent( QMouseEvent *e);
+};
+
/**)
* @class CollapsibleEffect
* @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, 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();
public slots:
void slotEnable(bool enable);
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 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(QDomDocument);
void unGroup(CollapsibleGroup *);
+ void groupRenamed(CollapsibleGroup *);
+
};