Remember most recently used printer. (#215)
This commit is contained in:
+21
-21
@@ -18,8 +18,12 @@
|
|||||||
* along with gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
|
* along with gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "PrintView.h"
|
#include "PrintView.h"
|
||||||
|
|
||||||
|
#include "model/Settings.h"
|
||||||
|
|
||||||
|
#include <QPrinter>
|
||||||
#include <QPrintDialog>
|
#include <QPrintDialog>
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
@@ -38,25 +42,6 @@ namespace glabels
|
|||||||
titleLabel->setText( QString( "<span style='font-size:18pt;'>%1</span>" ).arg( tr("Print") ) );
|
titleLabel->setText( QString( "<span style='font-size:18pt;'>%1</span>" ).arg( tr("Print") ) );
|
||||||
|
|
||||||
preview->setRenderer( &mRenderer );
|
preview->setRenderer( &mRenderer );
|
||||||
mPrinter = new QPrinter( QPrinter::HighResolution );
|
|
||||||
mPrinter->setColorMode( QPrinter::Color );
|
|
||||||
|
|
||||||
mPrintDialog = new QPrintDialog( mPrinter, this );
|
|
||||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintToFile, true );
|
|
||||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintSelection, false );
|
|
||||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintPageRange, false );
|
|
||||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintShowPageSize, true );
|
|
||||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintCollateCopies, false );
|
|
||||||
mPrintDialog->setOption( QAbstractPrintDialog::PrintCurrentPage, false );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Destructor
|
|
||||||
///
|
|
||||||
PrintView::~PrintView()
|
|
||||||
{
|
|
||||||
delete mPrinter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -200,10 +185,25 @@ namespace glabels
|
|||||||
///
|
///
|
||||||
void PrintView::onPrintButtonClicked()
|
void PrintView::onPrintButtonClicked()
|
||||||
{
|
{
|
||||||
if ( mPrintDialog->exec() == QDialog::Accepted )
|
QPrinter printer( QPrinter::HighResolution );
|
||||||
|
printer.setColorMode( QPrinter::Color );
|
||||||
|
printer.setPrinterName( model::Settings::recentPrinter() );
|
||||||
|
|
||||||
|
QPrintDialog printDialog( &printer, this );
|
||||||
|
printDialog.setOption( QAbstractPrintDialog::PrintToFile, true );
|
||||||
|
printDialog.setOption( QAbstractPrintDialog::PrintSelection, false );
|
||||||
|
printDialog.setOption( QAbstractPrintDialog::PrintPageRange, false );
|
||||||
|
printDialog.setOption( QAbstractPrintDialog::PrintShowPageSize, true );
|
||||||
|
printDialog.setOption( QAbstractPrintDialog::PrintCollateCopies, false );
|
||||||
|
printDialog.setOption( QAbstractPrintDialog::PrintCurrentPage, false );
|
||||||
|
|
||||||
|
if ( printDialog.exec() == QDialog::Accepted )
|
||||||
{
|
{
|
||||||
mRenderer.print( mPrinter );
|
mRenderer.print( &printer );
|
||||||
|
|
||||||
|
model::Settings::setRecentPrinter( printer.printerName() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace glabels
|
} // namespace glabels
|
||||||
|
|||||||
+1
-7
@@ -27,9 +27,6 @@
|
|||||||
#include "model/Model.h"
|
#include "model/Model.h"
|
||||||
#include "model/PageRenderer.h"
|
#include "model/PageRenderer.h"
|
||||||
|
|
||||||
#include <QPrinter>
|
|
||||||
#include <QPrintDialog>
|
|
||||||
|
|
||||||
|
|
||||||
namespace glabels
|
namespace glabels
|
||||||
{
|
{
|
||||||
@@ -47,7 +44,7 @@ namespace glabels
|
|||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
public:
|
public:
|
||||||
PrintView( QWidget *parent = nullptr );
|
PrintView( QWidget *parent = nullptr );
|
||||||
~PrintView() override;
|
virtual ~PrintView() = default;
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
@@ -71,11 +68,8 @@ namespace glabels
|
|||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
private:
|
private:
|
||||||
model::Model* mModel;
|
model::Model* mModel;
|
||||||
QPrinter* mPrinter;
|
|
||||||
model::PageRenderer mRenderer;
|
model::PageRenderer mRenderer;
|
||||||
|
|
||||||
QPrintDialog* mPrintDialog;
|
|
||||||
|
|
||||||
bool mBlocked;
|
bool mBlocked;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
|
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
|
#include <QPrinterInfo>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
@@ -356,5 +357,23 @@ namespace glabels
|
|||||||
emit mInstance->changed();
|
emit mInstance->changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString Settings::recentPrinter()
|
||||||
|
{
|
||||||
|
mInstance->beginGroup( "Recent" );
|
||||||
|
QString printer = mInstance->value( "printer", QPrinterInfo::defaultPrinterName() ).toString();
|
||||||
|
mInstance->endGroup();
|
||||||
|
|
||||||
|
return printer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Settings::setRecentPrinter( const QString& printer )
|
||||||
|
{
|
||||||
|
mInstance->beginGroup( "Recent" );
|
||||||
|
mInstance->setValue( "printer", printer );
|
||||||
|
mInstance->endGroup();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,6 +98,9 @@ namespace glabels
|
|||||||
static QStringList recentFileList();
|
static QStringList recentFileList();
|
||||||
static void addToRecentFileList( const QString& filePath );
|
static void addToRecentFileList( const QString& filePath );
|
||||||
|
|
||||||
|
static QString recentPrinter();
|
||||||
|
static void setRecentPrinter( const QString& printer );
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static Settings* mInstance;
|
static Settings* mInstance;
|
||||||
|
|||||||
Reference in New Issue
Block a user