00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef QGSLEGENDINTERFACE_H
00019 #define QGSLEGENDINTERFACE_H
00020
00021 #include <QObject>
00022 #include <QPair>
00023 #include <QStringList>
00024
00025 class QgsMapLayer;
00026
00027
00028
00029
00030 typedef QPair< QString, QList<QString> > GroupLayerInfo;
00031
00038 class GUI_EXPORT QgsLegendInterface : public QObject
00039 {
00040 Q_OBJECT
00041
00042 public:
00043
00045 QgsLegendInterface();
00046
00048 virtual ~QgsLegendInterface();
00049
00051 virtual QStringList groups() = 0;
00052
00054 virtual QList< GroupLayerInfo > groupLayerRelationship() { return QList< GroupLayerInfo >(); }
00055
00058 virtual QList< QgsMapLayer * > layers() const = 0;
00059
00062 virtual bool groupExists( int groupIndex ) = 0;
00063
00066 virtual bool isGroupExpanded( int groupIndex ) = 0;
00067
00070 virtual bool isGroupVisible( int groupIndex ) = 0;
00071
00074 virtual bool isLayerVisible( QgsMapLayer * ml ) = 0;
00075
00076 signals:
00078 void groupIndexChanged( int oldIndex, int newIndex );
00079
00080 public slots:
00081
00083 virtual int addGroup( QString name, bool expand = true ) = 0;
00084
00086 virtual void removeGroup( int groupIndex ) = 0;
00087
00089 virtual void moveLayer( QgsMapLayer * ml, int groupIndex ) = 0;
00090
00093 virtual void setGroupExpanded( int groupIndex, bool expand ) = 0;
00094
00097 virtual void setGroupVisible( int groupIndex, bool visible ) = 0;
00098
00101 virtual void setLayerVisible( QgsMapLayer * ml, bool visible ) = 0;
00102
00105 virtual void refreshLayerSymbology( QgsMapLayer *ml ) = 0;
00106 };
00107
00108 #endif