mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-01 16:13:57 -04:00
0d8772f25a
Make WSPRnet.org spot uploads tolerant of network issues, spots still get discarded for any period that has problems but now uploading resumes on the next period. Ensure that decoded text starts with correct font by not using the base class append method directly. Fixed a major memory leak in the WSPRNet class which was not freeing processed request reply objects. Added some helpful debug prints in WSPRnet.org spot processing. Also tidied up a number of class implementations that were not including he MOC generated code. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5560 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
96 lines
1.9 KiB
C++
96 lines
1.9 KiB
C++
#include "Modes.hpp"
|
|
|
|
#include <QString>
|
|
#include <QVariant>
|
|
|
|
#include "moc_Modes.cpp"
|
|
|
|
namespace
|
|
{
|
|
char const * const mode_names[] =
|
|
{
|
|
"",
|
|
"JT65",
|
|
"JT9",
|
|
"JT9W-1",
|
|
"JT4",
|
|
"WSPR",
|
|
"Echo",
|
|
};
|
|
}
|
|
|
|
Modes::Modes (QObject * parent)
|
|
: QAbstractListModel {parent}
|
|
{
|
|
}
|
|
|
|
char const * Modes::name (Mode m)
|
|
{
|
|
return mode_names[static_cast<int> (m)];
|
|
}
|
|
|
|
auto Modes::value (QString const& s) -> Mode
|
|
{
|
|
auto end = mode_names + sizeof (mode_names) / sizeof (mode_names[0]);
|
|
auto p = std::find_if (mode_names, end
|
|
, [&s] (char const * const name) {
|
|
return name == s;
|
|
});
|
|
return p != end ? static_cast<Mode> (p - mode_names) : NULL_MODE;
|
|
}
|
|
|
|
QVariant Modes::data (QModelIndex const& index, int role) const
|
|
{
|
|
QVariant item;
|
|
|
|
if (index.isValid ())
|
|
{
|
|
auto const& row = index.row ();
|
|
switch (role)
|
|
{
|
|
case Qt::ToolTipRole:
|
|
case Qt::AccessibleDescriptionRole:
|
|
item = tr ("Mode");
|
|
break;
|
|
|
|
case Qt::EditRole:
|
|
item = static_cast<Mode> (row);
|
|
break;
|
|
|
|
case Qt::DisplayRole:
|
|
case Qt::AccessibleTextRole:
|
|
item = mode_names[row];
|
|
break;
|
|
|
|
case Qt::TextAlignmentRole:
|
|
item = Qt::AlignHCenter + Qt::AlignVCenter;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return item;
|
|
}
|
|
|
|
QVariant Modes::headerData (int section, Qt::Orientation orientation, int role) const
|
|
{
|
|
QVariant result;
|
|
|
|
if (Qt::DisplayRole == role && Qt::Horizontal == orientation)
|
|
{
|
|
result = tr ("Mode");
|
|
}
|
|
else
|
|
{
|
|
result = QAbstractListModel::headerData (section, orientation, role);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
#if !defined (QT_NO_DEBUG_STREAM)
|
|
ENUM_QDEBUG_OPS_IMPL (Modes, Mode);
|
|
#endif
|
|
|
|
ENUM_QDATASTREAM_OPS_IMPL (Modes, Mode);
|
|
ENUM_CONVERSION_OPS_IMPL (Modes, Mode);
|