Hi, all. I was also frustrated by the moving OK/Cancel buttons in the
logging dialog. I think this change was made without regard to those hams
which require accessibility assistance, and good UI practice.
I've created the following patch which will revert the logqso dialog
functionality back to that in version 2.0.1.
I did some preliminary testing on linux, and had good results. Please test
further.
73 K2CR
--
Chris K2CR
[email protected]
--- wsjtx-2.1.0-rc5/src/wsjtx/widgets/logqso.cpp 2019-04-29 11:25:43.000000000 -0400
+++ wsjtx/widgets/logqso.cpp 2019-02-26 09:41:31.736728126 -0500
@@ -1,12 +1,9 @@
#include "logqso.h"
-#include <random>
-#include <limits>
#include <QString>
#include <QSettings>
#include <QStandardPaths>
#include <QDir>
-#include <QPushButton>
#include "logbook/logbook.h"
#include "MessageBox.hpp"
@@ -18,40 +15,17 @@
#include "ui_logqso.h"
#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
, Configuration const * config, QWidget *parent)
: QDialog {parent, Qt::WindowStaysOnTopHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint}
, ui(new Ui::LogQSO)
- , ok_ {new QPushButton {"OK", this}}
- , cancel_ {new QPushButton {"Cancel", this}}
, m_settings (settings)
, m_config {config}
{
ui->setupUi(this);
setWindowTitle(programTitle + " - Log QSO");
- 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 ();});
+ ui->grid->setValidator (new MaidenheadLocatorValidator {this});
}
LogQSO::~LogQSO ()
@@ -139,22 +113,7 @@
}
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();
}
}
--- wsjtx-2.1.0-rc5/src/wsjtx/widgets/logqso.h 2019-04-29 11:25:43.000000000 -0400
+++ wsjtx/widgets/logqso.h 2019-02-26 09:41:31.736728126 -0500
@@ -18,7 +18,6 @@
class Configuration;
class QByteArray;
class CabrilloLog;
-class QPushButton;
class LogQSO : public QDialog
{
@@ -53,8 +52,6 @@
void storeSettings () const;
QScopedPointer<Ui::LogQSO> ui;
- QPushButton * ok_;
- QPushButton * cancel_;
QSettings * m_settings;
Configuration const * m_config;
QString m_txPower;
--- wsjtx-2.1.0-rc5/src/wsjtx/widgets/logqso.ui 2019-04-29 11:25:43.000000000 -0400
+++ wsjtx/widgets/logqso.ui 2019-02-26 09:41:31.736728126 -0500
@@ -461,7 +461,14 @@
</spacer>
</item>
<item>
- <layout class="QHBoxLayout" name="button_layout"/>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
</item>
</layout>
</widget>
@@ -481,5 +488,38 @@
<tabstop>cbComments</tabstop>
</tabstops>
<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>
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel