qwt_polar_itemdict.cpp
Go to the documentation of this file.
1 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2  * QwtPolar Widget Library
3  * Copyright (C) 2008 Uwe Rathmann
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the Qwt License, Version 1.0
7  *****************************************************************************/
8 
9 #include "qwt_polar_itemdict.h"
10 
12 {
13 public:
14  class ItemList: public QList<QwtPolarItem *>
15  {
16  public:
17  void insertItem( QwtPolarItem *item )
18  {
19  if ( item == NULL )
20  return;
21 
22  // Unfortunately there is no inSort operation
23  // for lists in Qt4. The implementation below
24  // is slow, but there shouldn't be many plot items.
25 
27  for ( it = begin(); it != end(); ++it )
28  {
29  if ( *it == item )
30  return;
31 
32  if ( ( *it )->z() > item->z() )
33  {
34  insert( it, item );
35  return;
36  }
37  }
38  append( item );
39  }
40 
41  void removeItem( QwtPolarItem *item )
42  {
43  if ( item == NULL )
44  return;
45 
46  int i = 0;
47 
49  for ( it = begin(); it != end(); ++it )
50  {
51  if ( item == *it )
52  {
53  removeAt( i );
54  return;
55  }
56  i++;
57  }
58  }
59  };
60 
62  bool autoDelete;
63 };
64 
72 {
74  d_data->autoDelete = true;
75 }
76 
84 {
86  delete d_data;
87 }
88 
98 {
100 }
101 
107 {
108  return d_data->autoDelete;
109 }
110 
118 {
119  d_data->itemList.insertItem( item );
120 }
121 
129 {
130  d_data->itemList.removeItem( item );
131 }
132 
141 {
143  QwtPolarItemIterator it = list.constBegin();
144  while ( it != list.constEnd() )
145  {
146  QwtPolarItem *item = *it;
147 
148  ++it; // increment before removing item from the list
149 
150  if ( rtti == QwtPolarItem::Rtti_PolarItem || item->rtti() == rtti )
151  {
152  item->attach( NULL );
153  if ( autoDelete )
154  delete item;
155  }
156  }
157 }
158 
169 {
170  return d_data->itemList;
171 }
Unspecific value, that can be used, when it doesn&#39;t matter.
void attach(QwtPolarPlot *plot)
Attach the item to a plot.
void removeItem(QwtPolarItem *)
void detachItems(int rtti=QwtPolarItem::Rtti_PolarItem, bool autoDelete=true)
Base class for items on a polar plot.
void insertItem(QwtPolarItem *)
QList< QwtPolarItem * >::ConstIterator QwtPolarItemIterator
virtual int rtti() const
double z() const
PrivateData * d_data
const QwtPolarItemList & itemList() const
A QwtPolarItemList of all attached plot items.
bool autoDelete() const


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:48:10