mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2026-07-25 03:24:24 -04:00
Add new CabrilloLogWindow widget and integrate it into the application
This commit is contained in:
+82
-98
@@ -1,126 +1,110 @@
|
||||
#include "ExportCabrillo.h"
|
||||
#include "SettingsGroup.hpp"
|
||||
#include "MessageBox.hpp"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QFileDialog>
|
||||
#include <QDir>
|
||||
#include <QDebug>
|
||||
|
||||
#include "SettingsGroup.hpp"
|
||||
#include "Configuration.hpp"
|
||||
#include "MessageBox.hpp"
|
||||
#include "models/CabrilloLog.hpp"
|
||||
|
||||
#include "ui_ExportCabrillo.h"
|
||||
#include "moc_ExportCabrillo.cpp"
|
||||
|
||||
ExportCabrillo::ExportCabrillo(QSettings *settings, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
settings_ {settings},
|
||||
ui(new Ui::ExportCabrillo)
|
||||
ExportCabrillo::ExportCabrillo (QSettings * settings, Configuration const * configuration
|
||||
, CabrilloLog const * log, QWidget * parent)
|
||||
: QDialog {parent},
|
||||
settings_ {settings},
|
||||
configuration_ {configuration},
|
||||
log_ {log},
|
||||
ui {new Ui::ExportCabrillo}
|
||||
{
|
||||
ui->setupUi(this);
|
||||
read_settings();
|
||||
setWindowTitle(QApplication::applicationName() + " - Export Cabrillo");
|
||||
ui->setupUi (this);
|
||||
read_settings ();
|
||||
setWindowTitle (QApplication::applicationName() + " - Export Cabrillo");
|
||||
connect (ui->buttonBox, &QDialogButtonBox::accepted, this, &ExportCabrillo::save_log);
|
||||
}
|
||||
|
||||
ExportCabrillo::~ExportCabrillo()
|
||||
ExportCabrillo::~ExportCabrillo ()
|
||||
{
|
||||
if(isVisible()) write_settings();
|
||||
delete ui;
|
||||
write_settings ();
|
||||
}
|
||||
|
||||
void ExportCabrillo::closeEvent (QCloseEvent * e)
|
||||
{
|
||||
write_settings();
|
||||
QWidget::closeEvent(e);
|
||||
}
|
||||
|
||||
|
||||
void ExportCabrillo::read_settings ()
|
||||
{
|
||||
SettingsGroup group {settings_, "ExportCabrillo"};
|
||||
restoreGeometry (settings_->value("window/geometry").toByteArray());
|
||||
ui->lineEdit_1->setText(settings_->value("Location").toString());
|
||||
ui->lineEdit_2->setText(settings_->value("Contest").toString());
|
||||
ui->lineEdit_3->setText(settings_->value("Callsign").toString());
|
||||
ui->lineEdit_4->setText(settings_->value("Category-Operator").toString());
|
||||
ui->lineEdit_5->setText(settings_->value("Category-Transmitter").toString());
|
||||
ui->lineEdit_6->setText(settings_->value("Category-Power").toString());
|
||||
ui->lineEdit_7->setText(settings_->value("Category-Assisted").toString());
|
||||
ui->lineEdit_8->setText(settings_->value("Category-Band").toString());
|
||||
ui->lineEdit_9->setText(settings_->value("Claimed-Score").toString());
|
||||
ui->lineEdit_10->setText(settings_->value("Operators").toString());
|
||||
ui->lineEdit_11->setText(settings_->value("Club").toString());
|
||||
ui->lineEdit_12->setText(settings_->value("Name").toString());
|
||||
ui->lineEdit_13->setText(settings_->value("Address1").toString());
|
||||
ui->lineEdit_14->setText(settings_->value("Address2").toString());
|
||||
ui->location_line_edit->setText(settings_->value("Location").toString());
|
||||
ui->contest_line_edit->setText(settings_->value("Contest").toString());
|
||||
ui->call_line_edit->setText(settings_->value("Callsign").toString());
|
||||
ui->category_op_line_edit->setText(settings_->value("Category-Operator").toString());
|
||||
ui->category_xmtr_line_edit->setText(settings_->value("Category-Transmitter").toString());
|
||||
ui->category_pwr_line_edit->setText(settings_->value("Category-Power").toString());
|
||||
ui->category_assisted_line_edit->setText(settings_->value("Category-Assisted").toString());
|
||||
ui->category_band_line_edit->setText(settings_->value("Category-Band").toString());
|
||||
ui->claimed_line_edit->setText(settings_->value("Claimed-Score").toString());
|
||||
ui->operators_line_edit->setText(settings_->value("Operators").toString());
|
||||
ui->club_line_edit->setText(settings_->value("Club").toString());
|
||||
ui->name_line_edit->setText(settings_->value("Name").toString());
|
||||
ui->addr_1_line_edit->setText(settings_->value("Address1").toString());
|
||||
ui->addr_2_line_edit->setText(settings_->value("Address2").toString());
|
||||
}
|
||||
|
||||
void ExportCabrillo::write_settings ()
|
||||
{
|
||||
SettingsGroup group {settings_, "ExportCabrillo"};
|
||||
settings_->setValue ("window/geometry", saveGeometry ());
|
||||
settings_->setValue("Location",ui->lineEdit_1->text());
|
||||
settings_->setValue("Contest",ui->lineEdit_2->text());
|
||||
settings_->setValue("Callsign",ui->lineEdit_3->text());
|
||||
settings_->setValue("Category-Operator",ui->lineEdit_4->text());
|
||||
settings_->setValue("Category-Transmitter",ui->lineEdit_5->text());
|
||||
settings_->setValue("Category-Power",ui->lineEdit_6->text());
|
||||
settings_->setValue("Category-Assisted",ui->lineEdit_7->text());
|
||||
settings_->setValue("Category-Band",ui->lineEdit_8->text());
|
||||
settings_->setValue("Claimed-Score",ui->lineEdit_9->text());
|
||||
settings_->setValue("Operators",ui->lineEdit_10->text());
|
||||
settings_->setValue("Club",ui->lineEdit_11->text());
|
||||
settings_->setValue("Name",ui->lineEdit_12->text());
|
||||
settings_->setValue("Address1",ui->lineEdit_13->text());
|
||||
settings_->setValue("Address2",ui->lineEdit_14->text());
|
||||
settings_->setValue("Location",ui->location_line_edit->text());
|
||||
settings_->setValue("Contest",ui->contest_line_edit->text());
|
||||
settings_->setValue("Callsign",ui->call_line_edit->text());
|
||||
settings_->setValue("Category-Operator",ui->category_op_line_edit->text());
|
||||
settings_->setValue("Category-Transmitter",ui->category_xmtr_line_edit->text());
|
||||
settings_->setValue("Category-Power",ui->category_pwr_line_edit->text());
|
||||
settings_->setValue("Category-Assisted",ui->category_assisted_line_edit->text());
|
||||
settings_->setValue("Category-Band",ui->category_band_line_edit->text());
|
||||
settings_->setValue("Claimed-Score",ui->claimed_line_edit->text());
|
||||
settings_->setValue("Operators",ui->operators_line_edit->text());
|
||||
settings_->setValue("Club",ui->club_line_edit->text());
|
||||
settings_->setValue("Name",ui->name_line_edit->text());
|
||||
settings_->setValue("Address1",ui->addr_1_line_edit->text());
|
||||
settings_->setValue("Address2",ui->addr_2_line_edit->text());
|
||||
}
|
||||
|
||||
void ExportCabrillo::setFile(QString t)
|
||||
void ExportCabrillo::save_log ()
|
||||
{
|
||||
m_CabLog=t;
|
||||
}
|
||||
|
||||
|
||||
void ExportCabrillo::on_pbSaveAs_clicked()
|
||||
{
|
||||
QString fname;
|
||||
QFileDialog saveAs(this);
|
||||
saveAs.setFileMode(QFileDialog::AnyFile);
|
||||
fname=saveAs.getSaveFileName(this, "Save File", "","Cabrillo Log (*.log)");
|
||||
QFile f {fname};
|
||||
if (f.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
||||
QTextStream out(&f);
|
||||
out << "START-OF-LOG:3.0" << endl
|
||||
<< "LOCATION: " << ui->lineEdit_1->text() << endl
|
||||
<< "CONTEST: " << ui->lineEdit_2->text() << endl
|
||||
<< "CALLSIGN: " << ui->lineEdit_3->text() << endl
|
||||
<< "CATEGORY-OPERATOR: " << ui->lineEdit_4->text() << endl
|
||||
<< "CATEGORY-TRANSMITTER: " << ui->lineEdit_5->text() << endl
|
||||
<< "CATEGORY-POWER: " << ui->lineEdit_6->text() << endl
|
||||
<< "CATEGORY-ASSISTED: " << ui->lineEdit_7->text() << endl
|
||||
<< "CATEGORY-BAND: " << ui->lineEdit_8->text() << endl
|
||||
<< "CLAIMED-SCORE: " << ui->lineEdit_9->text() << endl
|
||||
<< "OPERATORS: " << ui->lineEdit_10->text() << endl
|
||||
<< "CLUB: " << ui->lineEdit_11->text() << endl
|
||||
<< "NAME: " << ui->lineEdit_12->text() << endl
|
||||
<< "ADDRESS: " << ui->lineEdit_13->text() << endl
|
||||
<< "ADDRESS: " << ui->lineEdit_14->text() << endl;
|
||||
|
||||
QFile f2(m_CabLog);
|
||||
if(f2.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
QTextStream s(&f2);
|
||||
QString t=s.readAll();
|
||||
out << t << "END-OF-LOG:" << endl;
|
||||
f2.close();
|
||||
auto fname = QFileDialog::getSaveFileName (this
|
||||
, tr ("Save Log File")
|
||||
, configuration_->writeable_data_dir ().absolutePath ()
|
||||
, tr ("Cabrillo Log (*.log)"));
|
||||
if (fname.size ())
|
||||
{
|
||||
QFile f {fname};
|
||||
if (f.open (QIODevice::WriteOnly | QIODevice::Text)) {
|
||||
QTextStream out {&f};
|
||||
out << "START-OF-LOG:3.0\n"
|
||||
<< "LOCATION: " << ui->location_line_edit->text() << '\n'
|
||||
<< "CONTEST: " << ui->contest_line_edit->text() << '\n'
|
||||
<< "CALLSIGN: " << ui->call_line_edit->text() << '\n'
|
||||
<< "CATEGORY-OPERATOR: " << ui->category_op_line_edit->text() << '\n'
|
||||
<< "CATEGORY-TRANSMITTER: " << ui->category_xmtr_line_edit->text() << '\n'
|
||||
<< "CATEGORY-POWER: " << ui->category_pwr_line_edit->text() << '\n'
|
||||
<< "CATEGORY-ASSISTED: " << ui->category_assisted_line_edit->text() << '\n'
|
||||
<< "CATEGORY-BAND: " << ui->category_band_line_edit->text() << '\n'
|
||||
<< "CLAIMED-SCORE: " << ui->claimed_line_edit->text() << '\n'
|
||||
<< "OPERATORS: " << ui->operators_line_edit->text() << '\n'
|
||||
<< "CLUB: " << ui->club_line_edit->text() << '\n'
|
||||
<< "NAME: " << ui->name_line_edit->text() << '\n'
|
||||
<< "ADDRESS: " << ui->addr_1_line_edit->text() << '\n'
|
||||
<< "ADDRESS: " << ui->addr_2_line_edit->text() << '\n';
|
||||
if (log_) log_->export_qsos (out);
|
||||
out << "END-OF-LOG:" << endl;
|
||||
return;
|
||||
} else {
|
||||
auto const& message = tr ("Cannot open \"%1\" for writing: %2")
|
||||
.arg (f.fileName ()).arg (f.errorString ());
|
||||
MessageBox::warning_message (this, tr ("Export Cabrillo File Error"), message);
|
||||
}
|
||||
}
|
||||
f.close();
|
||||
} else {
|
||||
auto const& message = tr ("Cannot open \"%1\" for writing: %2")
|
||||
.arg (f.fileName ()).arg (f.errorString ());
|
||||
MessageBox::warning_message (this, tr ("Export Cabrillo File Error"), message);
|
||||
}
|
||||
write_settings();
|
||||
}
|
||||
|
||||
void ExportCabrillo::accept()
|
||||
{
|
||||
write_settings();
|
||||
QDialog::accept();
|
||||
setResult (Rejected);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user