Print: add UI for a print dialog

PrintOptions is a QWidget class to be used as an
addition to a future print dialog (possibly based on
QPrintDialog). Currently only contains a couple of
radio buttons.

PrintDialog (printdialog.cpp/h) which is a basic QDialog
is currently added for testing only and it holds
an instance of PrintOptions.

Calling File->Print opens this test dialog for now.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
Lubomir I. Ivanov 2013-07-09 15:37:53 +03:00
parent 35356e364d
commit 52534bfb68
6 changed files with 110 additions and 1 deletions

View file

@ -53,6 +53,8 @@ HEADERS = \
qt-ui/diveplanner.h \
qt-ui/about.h \
qt-ui/graphicsview-common.h \
qt-ui/printdialog.h \
qt-ui/printoptions.h \
SOURCES = \
@ -94,6 +96,8 @@ SOURCES = \
qt-ui/diveplanner.cpp \
qt-ui/about.cpp \
qt-ui/graphicsview-common.cpp \
qt-ui/printdialog.cpp \
qt-ui/printoptions.cpp \
$(RESFILE)

View file

@ -34,6 +34,7 @@
#include "simplewidgets.h"
#include "diveplanner.h"
#include "about.h"
#include "printdialog.h"
static MainWindow* instance = 0;
@ -218,7 +219,7 @@ void MainWindow::on_actionExportUDDF_triggered()
void MainWindow::on_actionPrint_triggered()
{
qDebug("actionPrint");
PrintDialog::instance()->runDialog();
}
void MainWindow::disableDcShortcuts()

42
qt-ui/printdialog.cpp Normal file
View file

@ -0,0 +1,42 @@
#include "printdialog.h"
#include <QDebug>
#include <QPushButton>
#include <QVBoxLayout>
PrintDialog *PrintDialog::instance()
{
static PrintDialog *self = new PrintDialog();
self->setAttribute(Qt::WA_QuitOnClose, false);
return self;
}
PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f)
{
// options template (are we storing these in the settings?)
struct options tempOptions = {options::PRETTY, 0, 2, false, 65, 15, 12};
printOptions = tempOptions;
/* temporary.
* add the PrintOptions widget and a Print button for testing purposes. */
optionsWidget = PrintOptions::instance();
QVBoxLayout *layout = new QVBoxLayout(this);
setLayout(layout);
layout->addWidget(optionsWidget);
QPushButton *printButton = new QPushButton(tr("&Print"));
connect(printButton, SIGNAL(clicked(bool)), this, SLOT(printClicked()));
layout->addWidget(printButton);
setFixedSize(600, 400);
setWindowTitle("Print");
}
void PrintDialog::runDialog()
{
exec();
}
void PrintDialog::printClicked(void)
{
// nop for now
}

25
qt-ui/printdialog.h Normal file
View file

@ -0,0 +1,25 @@
#ifndef PRINTDIALOG_H
#define PRINTDIALOG_H
#include <QDialog>
#include "../display.h"
#include "printoptions.h"
// should be based on a custom QPrintDialog class
class PrintDialog : public QDialog {
Q_OBJECT
public:
static PrintDialog *instance();
void runDialog();
struct options printOptions;
private:
explicit PrintDialog(QWidget *parent = 0, Qt::WindowFlags f = 0);
PrintOptions *optionsWidget;
private slots:
void printClicked();
};
#endif

14
qt-ui/printoptions.cpp Normal file
View file

@ -0,0 +1,14 @@
#include "printoptions.h"
#include "ui_printoptions.h"
PrintOptions *PrintOptions::instance()
{
static PrintOptions *self = new PrintOptions();
return self;
}
PrintOptions::PrintOptions(QWidget *parent, Qt::WindowFlags f)
: ui( new Ui::PrintOptions())
{
ui->setupUi(this);
}

23
qt-ui/printoptions.h Normal file
View file

@ -0,0 +1,23 @@
#ifndef PRINTOPTIONS_H
#define PRINTOPTIONS_H
#include <QWidget>
#include "../display.h"
namespace Ui {
class PrintOptions;
};
// should be based on a custom QPrintDialog class
class PrintOptions : public QWidget {
Q_OBJECT
public:
static PrintOptions *instance();
private:
explicit PrintOptions(QWidget *parent = 0, Qt::WindowFlags f = 0);
Ui::PrintOptions *ui;
};
#endif