6 #include "GeoDataListStyle.h"
7 #include "GeoDataTypes.h"
8 #include "GeoDataItemIcon.h"
9 #include "MarbleDirs.h"
11 #include <QDataStream>
16 class GeoDataListStylePrivate
19 GeoDataListStylePrivate();
21 GeoDataListStyle::ListItemType m_listItemType;
27 GeoDataListStylePrivate::GeoDataListStylePrivate() :
28 m_listItemType( GeoDataListStyle::Check ),
33 GeoDataListStyle::GeoDataListStyle() :
34 d( new GeoDataListStylePrivate )
38 GeoDataListStyle::GeoDataListStyle(
const Marble::GeoDataListStyle &other ) :
39 GeoDataObject( other ), d( new GeoDataListStylePrivate( *other.d ) )
43 GeoDataListStyle &GeoDataListStyle::operator=(
const GeoDataListStyle &other )
45 GeoDataObject::operator=(other);
50 bool GeoDataListStyle::operator==(
const GeoDataListStyle &other )
const
53 d->m_bgColor != other.d->m_bgColor ||
54 d->m_listItemType != other.d->m_listItemType ||
55 d->m_vector.size() != other.d->m_vector.size() )
65 if ( **begin != **otherBegin ) {
73 bool GeoDataListStyle::operator!=(
const GeoDataListStyle &other )
const
78 GeoDataListStyle::~GeoDataListStyle()
83 const char *GeoDataListStyle::nodeType()
const
85 return GeoDataTypes::GeoDataListStyleType;
88 GeoDataListStyle::ListItemType GeoDataListStyle::listItemType()
const
90 return d->m_listItemType;
93 void GeoDataListStyle::setListItemType(ListItemType type)
95 d->m_listItemType =
type;
98 QColor GeoDataListStyle::backgroundColor()
const
103 void GeoDataListStyle::setBackgroundColor(
const QColor &color )
105 d->m_bgColor = color;
113 GeoDataItemIcon* GeoDataListStyle::child(
int i )
115 return d->m_vector.
at(i);
118 const GeoDataItemIcon* GeoDataListStyle::child(
int i )
const
120 return d->m_vector.at(i);
123 int GeoDataListStyle::childPosition(
const GeoDataItemIcon*
object )
const
125 return d->m_vector.indexOf(
const_cast<GeoDataItemIcon *
>(
object ) );
128 void GeoDataListStyle::append( GeoDataItemIcon *other )
130 other->setParent(
this );
131 d->m_vector.append( other );
135 void GeoDataListStyle::remove(
int index )
137 d->m_vector.remove( index );
140 int GeoDataListStyle::size()
const
142 return d->m_vector.size();
145 GeoDataItemIcon& GeoDataListStyle::at(
int pos )
147 return *(d->m_vector[ pos ]);
150 const GeoDataItemIcon& GeoDataListStyle::at(
int pos )
const
152 return *(d->m_vector.at( pos ));
155 GeoDataItemIcon& GeoDataListStyle::last()
157 return *(d->m_vector.last());
160 const GeoDataItemIcon& GeoDataListStyle::last()
const
162 return *(d->m_vector.last());
165 GeoDataItemIcon& GeoDataListStyle::first()
167 return *(d->m_vector.first());
170 const GeoDataItemIcon& GeoDataListStyle::first()
const
172 return *(d->m_vector.first());
175 void GeoDataListStyle::clear()
177 qDeleteAll(d->m_vector);
183 return d->m_vector.
begin();
188 return d->m_vector.
end();
201 void GeoDataListStyle::pack(
QDataStream& stream )
const
204 stream << d->m_vector.count();
207 iterator != d->m_vector.constEnd();
210 const GeoDataItemIcon *itemIcon = *iterator;
211 itemIcon->pack( stream );
215 void GeoDataListStyle::unpack(
QDataStream& stream )
225 GeoDataItemIcon *itemIcon =
new GeoDataItemIcon;
226 itemIcon->unpack( stream );
227 d->m_vector.append( itemIcon );