mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "FrequencyDeltaLineEdit.hpp"
 | |
| 
 | |
| #include <limits>
 | |
| 
 | |
| #include <QDoubleValidator>
 | |
| #include <QString>
 | |
| #include <QLocale>
 | |
| 
 | |
| #include "moc_FrequencyDeltaLineEdit.cpp"
 | |
| 
 | |
| namespace
 | |
| {
 | |
|   class MHzValidator
 | |
|     : public QDoubleValidator
 | |
|   {
 | |
|   public:
 | |
|     MHzValidator (double bottom, double top, QObject * parent = nullptr)
 | |
|       : QDoubleValidator {bottom, top, 6, parent}
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     State validate (QString& input, int& pos) const override
 | |
|     {
 | |
|       State result = QDoubleValidator::validate (input, pos);
 | |
|       if (Acceptable == result)
 | |
|         {
 | |
|           bool ok;
 | |
|           (void)QLocale {}.toDouble (input, &ok);
 | |
|           if (!ok)
 | |
|             {
 | |
|               result = Intermediate;
 | |
|             }
 | |
|         }
 | |
|       return result;
 | |
|     }
 | |
|   };
 | |
| }
 | |
| 
 | |
| FrequencyDeltaLineEdit::FrequencyDeltaLineEdit (QWidget * parent)
 | |
|   : QLineEdit (parent)
 | |
| {
 | |
|   setValidator (new MHzValidator {static_cast<double>(std::numeric_limits<FrequencyDelta>::min ()) / 10.e6,
 | |
|         static_cast<double>(std::numeric_limits<FrequencyDelta>::max ()) / 10.e6, this});
 | |
| }
 | |
| 
 | |
| auto FrequencyDeltaLineEdit::frequency_delta () const -> FrequencyDelta
 | |
| {
 | |
|   return Radio::frequency_delta (text (), 6);
 | |
| }
 | |
| 
 | |
| void FrequencyDeltaLineEdit::frequency_delta (FrequencyDelta d)
 | |
| {
 | |
|   setText (Radio::frequency_MHz_string (d));
 | |
| }
 |