/**
* CUndoRedoBinders
* $Id: undo_redo_binders.h 2247 2010-02-15 21:16:38Z kaetemi $
* \file undo_redo_binders.h
* \brief CUndoRedoBinders
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
/*
* Copyright (C) 2010 by authors
*
* This file is part of NEL QT.
* NEL QT is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* NEL QT is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with NEL QT; see the file COPYING. If not, see
* .
*/
#ifndef NLQT_UNDO_REDO_BINDERS_H
#define NLQT_UNDO_REDO_BINDERS_H
#include
// STL includes
// Qt includes
#include
#include
#include
#include
// NeL includes
// Project includes
class QUndoStack;
class QAbstractButton;
class QLineEdit;
class QComboBox;
class QtColorPicker;
namespace NLQT {
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoBinderButton
* \brief CUndoRedoBinderButton
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoBinderButton : public QObject
{
Q_OBJECT
public:
CUndoRedoBinderButton(QAbstractButton *abstractButton, QUndoStack *undoStack);
virtual ~CUndoRedoBinderButton();
inline void enable(bool enabled) { m_Enabled = enabled; }
private slots:
void abstractButtonToggled(bool checked);
private:
bool m_Enabled; // binder enabled
bool m_Checked;
QAbstractButton *m_AbstractButton;
QUndoStack *m_UndoStack;
private:
CUndoRedoBinderButton(const CUndoRedoBinderButton &);
CUndoRedoBinderButton &operator=(const CUndoRedoBinderButton &);
}; /* class CUndoRedoBinderButton */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoCommandButton
* \brief CUndoRedoCommandButton
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoCommandButton : public QUndoCommand
{
public:
CUndoRedoCommandButton(CUndoRedoBinderButton *binder, QAbstractButton *abstractButton, bool undo/*, bool redo*/);
virtual ~CUndoRedoCommandButton();
virtual void undo();
virtual void redo();
private:
bool m_Undo;
/*bool m_Redo;*/
CUndoRedoBinderButton *m_Binder;
QAbstractButton *m_AbstractButton;
QUndoStack *m_UndoStack;
private:
CUndoRedoCommandButton(const CUndoRedoCommandButton &);
CUndoRedoCommandButton &operator=(const CUndoRedoCommandButton &);
}; /* class CUndoRedoCommandButton */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoBinderLineEdit
* \brief CUndoRedoBinderLineEdit
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoBinderLineEdit : public QObject
{
Q_OBJECT
public:
CUndoRedoBinderLineEdit(QLineEdit *lineEdit, QUndoStack *undoStack);
virtual ~CUndoRedoBinderLineEdit();
inline void enable(bool enabled) { m_Enabled = enabled; }
private slots:
void lineEditTextChanged(const QString &text);
private:
bool m_Enabled; // binder enabled
QString m_LastValue;
QLineEdit *m_LineEdit;
QUndoStack *m_UndoStack;
int m_Id;
private:
CUndoRedoBinderLineEdit(const CUndoRedoBinderLineEdit &);
CUndoRedoBinderLineEdit &operator=(const CUndoRedoBinderLineEdit &);
}; /* class CUndoRedoBinderLineEdit */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoCommandLineEdit
* \brief CUndoRedoCommandLineEdit
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoCommandLineEdit : public QUndoCommand
{
public:
CUndoRedoCommandLineEdit(CUndoRedoBinderLineEdit *binder, QLineEdit *abtractLineEdit, const QString &undo, const QString &redo, int id);
virtual ~CUndoRedoCommandLineEdit();
virtual void undo();
virtual void redo();
virtual int id() const { return m_Id; };
virtual bool mergeWith(const QUndoCommand *other);
private:
QString m_Undo;
QString m_Redo;
CUndoRedoBinderLineEdit *m_Binder;
QLineEdit *m_LineEdit;
QUndoStack *m_UndoStack;
int m_Id;
private:
CUndoRedoCommandLineEdit(const CUndoRedoCommandLineEdit &);
CUndoRedoCommandLineEdit &operator=(const CUndoRedoCommandLineEdit &);
}; /* class CUndoRedoCommandLineEdit */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoBinderComboBox
* \brief CUndoRedoBinderComboBox
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoBinderComboBox : public QObject
{
Q_OBJECT
public:
CUndoRedoBinderComboBox(QComboBox *comboBox, QUndoStack *undoStack);
virtual ~CUndoRedoBinderComboBox();
inline void enable(bool enabled) { m_Enabled = enabled; }
private slots:
void comboBoxCurrentIndexChanged(int index);
private:
bool m_Enabled; // binder enabled
int m_LastValue;
QComboBox *m_ComboBox;
QUndoStack *m_UndoStack;
private:
CUndoRedoBinderComboBox(const CUndoRedoBinderComboBox &);
CUndoRedoBinderComboBox &operator=(const CUndoRedoBinderComboBox &);
}; /* class CUndoRedoBinderComboBox */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoCommandComboBox
* \brief CUndoRedoCommandComboBox
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoCommandComboBox : public QUndoCommand
{
public:
CUndoRedoCommandComboBox(CUndoRedoBinderComboBox *binder, QComboBox *abtractComboBox, int undo, int redo);
virtual ~CUndoRedoCommandComboBox();
virtual void undo();
virtual void redo();
private:
int m_Undo;
int m_Redo;
CUndoRedoBinderComboBox *m_Binder;
QComboBox *m_ComboBox;
QUndoStack *m_UndoStack;
private:
CUndoRedoCommandComboBox(const CUndoRedoCommandComboBox &);
CUndoRedoCommandComboBox &operator=(const CUndoRedoCommandComboBox &);
}; /* class CUndoRedoCommandComboBox */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoBinderColorPicker
* \brief CUndoRedoBinderColorPicker
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoBinderColorPicker : public QObject
{
Q_OBJECT
public:
CUndoRedoBinderColorPicker(QtColorPicker *colorPicker, QUndoStack *undoStack);
virtual ~CUndoRedoBinderColorPicker();
inline void enable(bool enabled) { m_Enabled = enabled; }
private slots:
void colorPickerColorChanged(const QColor &col);
private:
bool m_Enabled; // binder enabled
QColor m_LastValue;
QtColorPicker *m_ColorPicker;
QUndoStack *m_UndoStack;
private:
CUndoRedoBinderColorPicker(const CUndoRedoBinderColorPicker &);
CUndoRedoBinderColorPicker &operator=(const CUndoRedoBinderColorPicker &);
}; /* class CUndoRedoBinderColorPicker */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/**
* CUndoRedoCommandColorPicker
* \brief CUndoRedoCommandColorPicker
* \date 2010-02-13 14:02GMT
* \author Jan Boon (Kaetemi)
*/
class CUndoRedoCommandColorPicker : public QUndoCommand
{
public:
CUndoRedoCommandColorPicker(CUndoRedoBinderColorPicker *binder, QtColorPicker *abtractColorPicker, const QColor &undo, const QColor &redo);
virtual ~CUndoRedoCommandColorPicker();
virtual void undo();
virtual void redo();
private:
QColor m_Undo;
QColor m_Redo;
CUndoRedoBinderColorPicker *m_Binder;
QtColorPicker *m_ColorPicker;
QUndoStack *m_UndoStack;
private:
CUndoRedoCommandColorPicker(const CUndoRedoCommandColorPicker &);
CUndoRedoCommandColorPicker &operator=(const CUndoRedoCommandColorPicker &);
}; /* class CUndoRedoCommandColorPicker */
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
} /* namespace NLQT */
#endif /* #ifndef NLQT_UNDO_REDO_BINDERS_H */
/* end of file */