mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	Use proper QDataStream insertor and extractor for IARURegions::Region enum. Unfortunately this requires that all will have to reset their region one more time even if it was working and correct. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7867 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef MODES_HPP__
 | |
| #define MODES_HPP__
 | |
| 
 | |
| #include <QAbstractListModel>
 | |
| 
 | |
| #include "qt_helpers.hpp"
 | |
| 
 | |
| class QString;
 | |
| class QVariant;
 | |
| class QModelIndex;
 | |
| 
 | |
| //
 | |
| // Class Modes - Qt model that implements a list of data modes
 | |
| //
 | |
| //
 | |
| // Responsibilities
 | |
| //
 | |
| // 	Provides  a  single column  list  model  that contains  the  human
 | |
| // 	readable string version of the data mode 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 Modes final
 | |
|   : public QAbstractListModel
 | |
| {
 | |
|   Q_OBJECT
 | |
|   Q_ENUMS (Mode)
 | |
| 
 | |
| public:
 | |
|   //
 | |
|   // This enumeration contains the supported modes, to complement this
 | |
|   // an array of human readable strings in the implementation
 | |
|   // (Modes.cpp) must be maintained in parallel.
 | |
|   //
 | |
|   enum Mode
 | |
|   {
 | |
|     ALL,                        // matches with all modes
 | |
|     JT65,
 | |
|     JT9,
 | |
|     JT4,
 | |
|     WSPR,
 | |
|     Echo,
 | |
|     ISCAT,
 | |
|     MSK144,
 | |
|     QRA64,
 | |
|     FreqCal,
 | |
|     FT8,
 | |
|     MODES_END_SENTINAL_AND_COUNT // this must be last
 | |
|   };
 | |
|   Q_ENUM (Mode)
 | |
| 
 | |
|   explicit Modes (QObject * parent = nullptr);
 | |
| 
 | |
|   // translate between enumeration and human readable strings
 | |
|   static char const * name (Mode);
 | |
|   static Mode value (QString const&);
 | |
| 
 | |
|   // Implement the QAbstractListModel interface
 | |
|   int rowCount (QModelIndex const& parent = QModelIndex {}) const override
 | |
|   {
 | |
|     return parent.isValid () ? 0 : MODES_END_SENTINAL_AND_COUNT; // Number of modes in Mode enumeration class
 | |
|   }
 | |
|   QVariant data (QModelIndex const&, int role = Qt::DisplayRole) const override;
 | |
|   QVariant headerData (int section, Qt::Orientation, int = Qt::DisplayRole) const override;
 | |
| };
 | |
| 
 | |
| // Qt boilerplate to make the Modes::Mode enumeration a type that can
 | |
| // be streamed and queued as a signal argument as well as showing the
 | |
| // human readable string when output to debug streams.
 | |
| #if QT_VERSION < 0x050500
 | |
| // Qt 5.5 introduces the Q_ENUM macro which automatically registers
 | |
| // the meta-type
 | |
| Q_DECLARE_METATYPE (Modes::Mode);
 | |
| #endif
 | |
| 
 | |
| #if !defined (QT_NO_DEBUG_STREAM)
 | |
| ENUM_QDEBUG_OPS_DECL (Modes, Mode);
 | |
| #endif
 | |
| 
 | |
| ENUM_QDATASTREAM_OPS_DECL (Modes, Mode);
 | |
| ENUM_CONVERSION_OPS_DECL (Modes, Mode);
 | |
| 
 | |
| #endif
 |