mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-22 07:22:32 -04:00
Log buttons
This commit is contained in:
parent
73efc09392
commit
9e75b5c2b5
@ -1,9 +1,12 @@
|
|||||||
#include "logqso.h"
|
#include "logqso.h"
|
||||||
|
|
||||||
|
#include <random>
|
||||||
|
#include <limits>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
#include "logbook/logbook.h"
|
#include "logbook/logbook.h"
|
||||||
#include "MessageBox.hpp"
|
#include "MessageBox.hpp"
|
||||||
@ -15,17 +18,40 @@
|
|||||||
#include "ui_logqso.h"
|
#include "ui_logqso.h"
|
||||||
#include "moc_logqso.cpp"
|
#include "moc_logqso.cpp"
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
using dist_type = std::uniform_int_distribution<int>;
|
||||||
|
std::random_device rd;
|
||||||
|
std::mt19937 twister (rd ());
|
||||||
|
dist_type int_distribution;
|
||||||
|
}
|
||||||
|
|
||||||
LogQSO::LogQSO(QString const& programTitle, QSettings * settings
|
LogQSO::LogQSO(QString const& programTitle, QSettings * settings
|
||||||
, Configuration const * config, QWidget *parent)
|
, Configuration const * config, QWidget *parent)
|
||||||
: QDialog {parent, Qt::WindowStaysOnTopHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint}
|
: QDialog {parent, Qt::WindowStaysOnTopHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint}
|
||||||
, ui(new Ui::LogQSO)
|
, ui(new Ui::LogQSO)
|
||||||
|
, ok_ {new QPushButton {"OK", this}}
|
||||||
|
, cancel_ {new QPushButton {"Cancel", this}}
|
||||||
, m_settings (settings)
|
, m_settings (settings)
|
||||||
, m_config {config}
|
, m_config {config}
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
setWindowTitle(programTitle + " - Log QSO");
|
setWindowTitle(programTitle + " - Log QSO");
|
||||||
loadSettings ();
|
|
||||||
ui->grid->setValidator (new MaidenheadLocatorValidator {this});
|
ui->grid->setValidator (new MaidenheadLocatorValidator {this});
|
||||||
|
|
||||||
|
ok_->setAutoDefault (false);
|
||||||
|
ok_->setFocusPolicy (Qt::ClickFocus);
|
||||||
|
cancel_->setAutoDefault (false);
|
||||||
|
ui->button_layout->addStretch ();
|
||||||
|
ui->button_layout->addWidget (ok_);
|
||||||
|
ui->button_layout->addStretch ();
|
||||||
|
ui->button_layout->addWidget (cancel_);
|
||||||
|
ui->button_layout->addStretch ();
|
||||||
|
|
||||||
|
loadSettings ();
|
||||||
|
|
||||||
|
connect (ok_, &QAbstractButton::clicked, [this] (bool) {accept ();});
|
||||||
|
connect (cancel_, &QAbstractButton::clicked, [this] (bool) {reject ();});
|
||||||
}
|
}
|
||||||
|
|
||||||
LogQSO::~LogQSO ()
|
LogQSO::~LogQSO ()
|
||||||
@ -113,6 +139,21 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// randomize accessible name of buttons
|
||||||
|
ok_->setAccessibleName (QString::number (int_distribution (twister)));
|
||||||
|
cancel_->setAccessibleName (QString::number (int_distribution (twister)));
|
||||||
|
// random sibling order of buttons
|
||||||
|
if (int_distribution (twister, dist_type::param_type {0, 1})) ok_->stackUnder (cancel_); else cancel_->stackUnder (ok_);
|
||||||
|
// random shuffle of layout items
|
||||||
|
for (int item = ui->button_layout->count () - 1; item > 0; --item)
|
||||||
|
{
|
||||||
|
auto other_item = int_distribution (twister, dist_type::param_type {0, item});
|
||||||
|
if (item != other_item)
|
||||||
|
{
|
||||||
|
ui->button_layout->insertItem (other_item, ui->button_layout->takeAt (item));
|
||||||
|
ui->button_layout->insertItem (item, ui->button_layout->takeAt (other_item + 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
show ();
|
show ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ class QSettings;
|
|||||||
class Configuration;
|
class Configuration;
|
||||||
class QByteArray;
|
class QByteArray;
|
||||||
class CabrilloLog;
|
class CabrilloLog;
|
||||||
|
class QPushButton;
|
||||||
|
|
||||||
class LogQSO : public QDialog
|
class LogQSO : public QDialog
|
||||||
{
|
{
|
||||||
@ -52,6 +53,8 @@ private:
|
|||||||
void storeSettings () const;
|
void storeSettings () const;
|
||||||
|
|
||||||
QScopedPointer<Ui::LogQSO> ui;
|
QScopedPointer<Ui::LogQSO> ui;
|
||||||
|
QPushButton * ok_;
|
||||||
|
QPushButton * cancel_;
|
||||||
QSettings * m_settings;
|
QSettings * m_settings;
|
||||||
Configuration const * m_config;
|
Configuration const * m_config;
|
||||||
QString m_txPower;
|
QString m_txPower;
|
||||||
|
@ -461,14 +461,7 @@
|
|||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<layout class="QHBoxLayout" name="button_layout"/>
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="standardButtons">
|
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
@ -488,38 +481,5 @@
|
|||||||
<tabstop>cbComments</tabstop>
|
<tabstop>cbComments</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections>
|
<connections/>
|
||||||
<connection>
|
|
||||||
<sender>buttonBox</sender>
|
|
||||||
<signal>accepted()</signal>
|
|
||||||
<receiver>LogQSO</receiver>
|
|
||||||
<slot>accept()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>248</x>
|
|
||||||
<y>254</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>157</x>
|
|
||||||
<y>274</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>buttonBox</sender>
|
|
||||||
<signal>rejected()</signal>
|
|
||||||
<receiver>LogQSO</receiver>
|
|
||||||
<slot>reject()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>316</x>
|
|
||||||
<y>260</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>286</x>
|
|
||||||
<y>274</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
</connections>
|
|
||||||
</ui>
|
</ui>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user