File indexing completed on 2024-04-28 04:32:02

0001 /*
0002  * Copyright (C) 2010-2015 by Stephen Allewell
0003  * steve.allewell@gmail.com
0004  *
0005  * This program is free software; you can redistribute it and/or modify
0006  * it under the terms of the GNU General Public License as published by
0007  * the Free Software Foundation; either version 2 of the License, or
0008  * (at your option) any later version.
0009  */
0010 
0011 #ifndef Layers_H
0012 #define Layers_H
0013 
0014 #include <QDataStream>
0015 #include <QList>
0016 #include <QStringList>
0017 
0018 #include "Layer.h"
0019 
0020 class Layers
0021 {
0022 public:
0023     Layers();
0024 
0025     void clear();
0026 
0027     const QList<Layer> &layers() const;
0028     QStringList layerNames() const;
0029     QList<int> layerNumbers() const;
0030     int currentLayer() const;
0031 
0032     void addLayer(int, const QString &);
0033     void removeLayer(int);
0034     void removeLayer(const QString &);
0035     void setCurrentLayer(int);
0036 
0037     friend QDataStream &operator<<(QDataStream &, const Layers &);
0038     friend QDataStream &operator>>(QDataStream &, Layers &);
0039 
0040 private:
0041     static const int version = 100;
0042 
0043     int m_currentLayer;
0044     QList<Layer> m_layers;
0045 };
0046 
0047 QDataStream &operator<<(QDataStream &, const Layers &);
0048 QDataStream &operator>>(QDataStream &, Layers &);
0049 
0050 #endif // Layers_H