Remember most recently used printer. (#215)

This commit is contained in:
Jaye Evins
2025-07-28 15:11:36 -04:00
committed by GitHub
parent 3a4bb61f44
commit 475971b701
4 changed files with 44 additions and 28 deletions
+21 -21
View File
@@ -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
View File
@@ -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;
}; };
+19
View File
@@ -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();
}
} }
} }
+3
View File
@@ -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;