| 
									
										
										
										
											2017-07-07 23:11:41 +00:00
										 |  |  | #ifndef IARU_REGIONS_HPP__
 | 
					
						
							|  |  |  | #define IARU_REGIONS_HPP__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QAbstractListModel>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "qt_helpers.hpp"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class QString; | 
					
						
							|  |  |  | class QVariant; | 
					
						
							|  |  |  | class QModelIndex; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Class IARURegions - Qt model that implements the list of IARU regions
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Responsibilities
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 	Provides  a  single column  list  model  that contains  the  human
 | 
					
						
							|  |  |  | // 	readable  string  version  of  the  data  region  in  the  display
 | 
					
						
							|  |  |  | // 	role. Also  provided is  a translatable  column header  string and
 | 
					
						
							|  |  |  | // 	tool tip string.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Collaborations
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // 	Implements a concrete sub-class of the QAbstractListModel class.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | class IARURegions final | 
					
						
							|  |  |  |   : public QAbstractListModel | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   Q_OBJECT | 
					
						
							| 
									
										
										
										
											2019-06-06 12:56:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-07 23:11:41 +00:00
										 |  |  | public: | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // This enumeration  contains the  supported regions,  to complement
 | 
					
						
							|  |  |  |   // this an  array of  human readable  strings in  the implementation
 | 
					
						
							|  |  |  |   // (IARURegions.cpp) must be maintained in parallel.
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   enum Region | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     ALL,                        // matches with all regions
 | 
					
						
							|  |  |  |     R1, | 
					
						
							|  |  |  |     R2, | 
					
						
							|  |  |  |     R3, | 
					
						
							| 
									
										
										
										
											2017-07-11 01:59:19 +00:00
										 |  |  |     SENTINAL                    // this must be last
 | 
					
						
							| 
									
										
										
										
											2017-07-07 23:11:41 +00:00
										 |  |  |   }; | 
					
						
							|  |  |  |   Q_ENUM (Region) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   explicit IARURegions (QObject * parent = nullptr); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // translate between enumeration and human readable strings
 | 
					
						
							|  |  |  |   static char const * name (Region); | 
					
						
							| 
									
										
										
										
											2017-10-13 22:34:10 +00:00
										 |  |  |   static Region value (QString const&); | 
					
						
							| 
									
										
										
										
											2017-07-07 23:11:41 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   // Implement the QAbstractListModel interface
 | 
					
						
							|  |  |  |   int rowCount (QModelIndex const& parent = QModelIndex {}) const override | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
										
										
											2017-07-11 01:59:19 +00:00
										 |  |  |     return parent.isValid () ? 0 : SENTINAL; // Number of regionss in Region enumeration class
 | 
					
						
							| 
									
										
										
										
											2017-07-07 23:11:41 +00:00
										 |  |  |   } | 
					
						
							|  |  |  |   QVariant data (QModelIndex const&, int role = Qt::DisplayRole) const override; | 
					
						
							|  |  |  |   QVariant headerData (int section, Qt::Orientation, int = Qt::DisplayRole) const override; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ENUM_QDATASTREAM_OPS_DECL (IARURegions, Region); | 
					
						
							|  |  |  | ENUM_CONVERSION_OPS_DECL (IARURegions, Region); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |