mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	Due to what appears to be a Qt bug, any in progress user edit to a table fields is not updated in the underlying data models until QDialog::accept() is called, this means that model validation before calling QDialog::accept() is tricky. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5164 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef FREQUENCY_LIST_HPP__
 | 
						|
#define FREQUENCY_LIST_HPP__
 | 
						|
 | 
						|
#include "pimpl_h.hpp"
 | 
						|
 | 
						|
#include <QSortFilterProxyModel>
 | 
						|
 | 
						|
#include "Radio.hpp"
 | 
						|
 | 
						|
//
 | 
						|
// Class FrequencyList
 | 
						|
//
 | 
						|
//  Encapsulates a collection of frequencies.  The implementation is a
 | 
						|
//  table  containing the  list of  Frequency type  elements which  is
 | 
						|
//  editable  and  a  second  column  which  is  an  immutable  double
 | 
						|
//  representation  of  the  corresponding Frequency  item  scaled  to
 | 
						|
//  mega-Hertz.
 | 
						|
//
 | 
						|
//  The list is ordered.
 | 
						|
//
 | 
						|
// Responsibilities
 | 
						|
//
 | 
						|
//  Stores internally a list  of unique frequencies.  Provides methods
 | 
						|
//  to add and delete list elements.
 | 
						|
//
 | 
						|
// Collaborations
 | 
						|
//
 | 
						|
//  Implements the QSortFilterProxyModel interface  for a list of spot
 | 
						|
//  frequencies.
 | 
						|
//
 | 
						|
class FrequencyList final
 | 
						|
  : public QSortFilterProxyModel
 | 
						|
{
 | 
						|
public:
 | 
						|
  using Frequency = Radio::Frequency;
 | 
						|
  using Frequencies = Radio::Frequencies;
 | 
						|
 | 
						|
  explicit FrequencyList (QObject * parent = nullptr);
 | 
						|
  explicit FrequencyList (Frequencies, QObject * parent = nullptr);
 | 
						|
  ~FrequencyList ();
 | 
						|
 | 
						|
  // Load and store contents
 | 
						|
  FrequencyList& operator = (Frequencies);
 | 
						|
  Frequencies frequencies () const;
 | 
						|
 | 
						|
  // Model API
 | 
						|
  QModelIndex add (Frequency);
 | 
						|
  bool remove (Frequency);
 | 
						|
  bool removeDisjointRows (QModelIndexList);
 | 
						|
 | 
						|
  // Custom roles.
 | 
						|
  static int constexpr SortRole = Qt::UserRole;
 | 
						|
 | 
						|
private:
 | 
						|
  class impl;
 | 
						|
  pimpl<impl> m_;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |