kde-playground/kdepim/incidenceeditor-ng/autochecktreewidget.h
2015-04-14 21:49:29 +00:00

115 lines
3.4 KiB
C++

/*
Copyright (c) 2007 Mathias Soeken <msoeken@tzi.de>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef INCIDENCEEDITOR_AUTOCHECKTREEWIDGET_H
#define INCIDENCEEDITOR_AUTOCHECKTREEWIDGET_H
#include "incidenceeditors-ng_export.h"
#include <QTreeWidget>
namespace IncidenceEditorNG {
/**
A tree widget which supports auto selecting child items, when clicking
an item of the tree.
Further you can find an item by passing a path as QStringList with
the method itemByPath().
@author Mathias Soeken <msoeken@tzi.de>
*/
class INCIDENCEEDITORS_NG_EXPORT AutoCheckTreeWidget : public QTreeWidget
{
Q_OBJECT
Q_PROPERTY( bool autoCheckChildren READ autoCheckChildren WRITE setAutoCheckChildren )
Q_PROPERTY( bool autoCheck READ autoCheck WRITE setAutoCheck )
public:
/**
Default constructor. The default behavior is like a QTreeWidget, so you
have to activate the autoCheckChildren property manually.
*/
explicit AutoCheckTreeWidget( QWidget *parent = 0 );
~AutoCheckTreeWidget();
/**
Returns QTreeWidgetItem which matches the path, if available.
@param path The path
@returns a item which is represented by the path, if available.
*/
QTreeWidgetItem *itemByPath( const QStringList &path ) const;
/**
Returns a path by a given item as QStringList.
@param item The item
@returns a string list which is the represented path of the item.
*/
QStringList pathByItem( QTreeWidgetItem *item ) const;
/**
@returns whether autoCheckChildren is enabled or not.
Default value is false.
*/
bool autoCheckChildren() const;
/**
enables or disables autoCheckChildren behavior.
@param autoCheckChildren if true, children of items are auto checked or
not, otherwise. Default value is false.
*/
void setAutoCheckChildren( bool autoCheckChildren );
/**
@returns whether newly added items have checkboxes by default.
Default value is true.
*/
bool autoCheck() const;
/**
Sets whether newly added items have checkboxes by default.
@param autoCheck if true, newly added items have unchecked checkboxes
by default, otherwise not. Default value is true.
*/
void setAutoCheck( bool autoCheck );
protected:
QTreeWidgetItem *findItem( QTreeWidgetItem *parent, const QString &text ) const;
protected Q_SLOTS:
void slotRowsInserted( const QModelIndex &parent, int start, int end );
void slotDataChanged( const QModelIndex &topLeft,
const QModelIndex &bottomRight );
private:
//@cond PRIVATE
class Private;
Private *const d;
//@endcond
};
}
#endif