printing: pass current filename to dialog

Instead of accessing a global variable, pass the filename
from the MainWindow to the dialog. This is supposed to cut
down on the global variable mess.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2024-03-16 13:39:15 +01:00 committed by bstoeger
parent 3a1122048b
commit 37f2207f94
3 changed files with 8 additions and 6 deletions

View file

@ -551,7 +551,8 @@ void MainWindow::on_actionPrint_triggered()
// When in planner, only print the planned dive.
dive *singleDive = appState == ApplicationState::PlanDive ? plannerWidgets->getDive()
: nullptr;
PrintDialog dlg(singleDive, this);
QString filename = existing_filename ?: prefs.default_filename;
PrintDialog dlg(singleDive, filename, this);
dlg.exec();
#endif

View file

@ -19,9 +19,10 @@
template_options::color_palette_struct ssrf_colors, almond_colors, blueshades_colors, custom_colors;
PrintDialog::PrintDialog(dive *singleDive, QWidget *parent) :
PrintDialog::PrintDialog(dive *singleDive, const QString &filename, QWidget *parent) :
QDialog(parent, QFlag(0)),
singleDive(singleDive),
filename(filename),
printer(NULL),
qprinter(NULL)
{
@ -197,11 +198,10 @@ void PrintDialog::exportHtmlClicked(void)
{
createPrinterObj();
QString saveFileName = printOptions.p_template;
QString filename = existing_filename ?: prefs.default_filename;
QFileInfo fi(filename);
filename = fi.absolutePath().append(QDir::separator()).append(saveFileName);
QString printfilename = fi.absolutePath().append(QDir::separator()).append(saveFileName);
QString htmlExportFilename = QFileDialog::getSaveFileName(this, tr("Filename to export html to"),
filename, tr("Html file") + " (*.html)");
printfilename, tr("Html file") + " (*.html)");
if (!htmlExportFilename.isEmpty()) {
QFile file(htmlExportFilename);
file.open(QIODevice::WriteOnly);

View file

@ -20,11 +20,12 @@ class PrintDialog : public QDialog {
public:
// If singleDive is non-null, print only that single dive
explicit PrintDialog(dive *singleDive, QWidget *parent = 0);
explicit PrintDialog(dive *singleDive, const QString &filename, QWidget *parent = 0);
~PrintDialog();
private:
dive *singleDive;
QString filename;
PrintOptions *optionsWidget;
QProgressBar *progressBar;
Printer *printer;