This commit is contained in:
+5
-1
@@ -21,7 +21,8 @@ cMainWindow::cMainWindow(cSplashScreen* lpSplashScreen, QWidget *parent)
|
||||
: QMainWindow(parent),
|
||||
ui(new Ui::cMainWindow),
|
||||
m_lpSplashScreen(lpSplashScreen),
|
||||
m_lpFileBrowser(nullptr)
|
||||
m_lpFileBrowser(nullptr),
|
||||
m_lpPrint(nullptr)
|
||||
{
|
||||
setImageFormats();
|
||||
|
||||
@@ -81,6 +82,9 @@ void cMainWindow::initUI()
|
||||
m_lpFileBrowser = new cFileBrowser(m_lpProgressBar, &m_imageFormats, ui->m_lpSelectedList, m_lpSelectedListModel, this);
|
||||
ui->m_lpMainTab->addTab(m_lpFileBrowser, "Files");
|
||||
|
||||
m_lpPrint = new cPrint(m_lpProgressBar, ui->m_lpSelectedList, m_lpSelectedListModel, this);
|
||||
ui->m_lpMainTab->addTab(m_lpPrint, "Print");
|
||||
|
||||
if(!settings.value("main/maximized").toBool())
|
||||
{
|
||||
qint32 iX = settings.value("main/x", QVariant::fromValue(-1)).toInt();
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "common.h"
|
||||
|
||||
#include "cfilebrowser.h"
|
||||
#include "cprint.h"
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QCloseEvent>
|
||||
@@ -46,6 +47,7 @@ private:
|
||||
QProgressBar* m_lpProgressBar; /*!< TODO: describe */
|
||||
|
||||
cFileBrowser* m_lpFileBrowser; /*!< TODO: describe */
|
||||
cPrint* m_lpPrint; /*!< TODO: describe */
|
||||
QStandardItemModel* m_lpSelectedListModel; /*!< TODO: describe */
|
||||
|
||||
QList<IMAGEFORMAT> m_imageFormats; /*!< TODO: describe */
|
||||
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
/*!
|
||||
\file cprint.cpp
|
||||
|
||||
*/
|
||||
|
||||
#include "cprint.h"
|
||||
#include "ui_cprint.h"
|
||||
|
||||
#include "cfileviewer.h"
|
||||
|
||||
#include "cimage.h"
|
||||
|
||||
#include <QPrinter>
|
||||
#include <QPrinterInfo>
|
||||
#include <QPrintDialog>
|
||||
#include <QPageSetupDialog>
|
||||
#include <QPainter>
|
||||
|
||||
|
||||
cPrint::cPrint(QProgressBar* lpProgressBar, QListView* lpSelectedList, QStandardItemModel* lpSelectedListModel, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::cPrint),
|
||||
m_lpProgressBar(lpProgressBar),
|
||||
m_lpSelectedList(lpSelectedList),
|
||||
m_lpSelectedListModel(lpSelectedListModel)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_lpPrinter = new QPrinter;
|
||||
|
||||
QString defaultPrinter = QPrinterInfo::defaultPrinterName();
|
||||
QStringList availablePrinters = QPrinterInfo::availablePrinterNames();
|
||||
|
||||
ui->m_lpPrinterSelect->addItems(availablePrinters);
|
||||
ui->m_lpPrinterSelect->setCurrentText(defaultPrinter);
|
||||
|
||||
connect(ui->m_lpPrinterSettings, &QPushButton::clicked, this, &cPrint::onPrinterSettings);
|
||||
connect(ui->m_lpPrint, &QPushButton::clicked, this, &cPrint::onPrint);
|
||||
}
|
||||
|
||||
cPrint::~cPrint()
|
||||
{
|
||||
if(m_lpPrinter)
|
||||
delete m_lpPrinter;
|
||||
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void cPrint::onPrinterSettings()
|
||||
{
|
||||
QPageSetupDialog pageSetupDialog(m_lpPrinter);
|
||||
pageSetupDialog.exec();
|
||||
}
|
||||
|
||||
void cPrint::onPrint()
|
||||
{
|
||||
if(!m_lpSelectedListModel->rowCount())
|
||||
return;
|
||||
|
||||
cFileViewer* lpFileViewer = static_cast<cFileViewer*>(m_lpSelectedList->indexWidget(m_lpSelectedListModel->index(0, 0)));
|
||||
if(!lpFileViewer)
|
||||
return;
|
||||
|
||||
QString fileName = lpFileViewer->fileName();
|
||||
cImage image(fileName);
|
||||
|
||||
if(image.isNull())
|
||||
return;
|
||||
|
||||
QPixmap pixmap = QPixmap::fromImage(image);
|
||||
QPrintDialog printDialog(m_lpPrinter, this);
|
||||
|
||||
if(printDialog.exec())
|
||||
{
|
||||
QPainter painter(m_lpPrinter);
|
||||
QRect rect = painter.viewport();
|
||||
QSize size = pixmap.size();
|
||||
|
||||
size.scale(rect.size(), Qt::KeepAspectRatio);
|
||||
painter.setViewport(rect.x(), rect.y(), size.width(), size.height());
|
||||
painter.setWindow(pixmap.rect());
|
||||
painter.drawPixmap(0, 0, pixmap);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
/*!
|
||||
\file cprint.h
|
||||
|
||||
*/
|
||||
|
||||
#ifndef CPRINT_H
|
||||
#define CPRINT_H
|
||||
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#include <QProgressBar>
|
||||
#include <QListView>
|
||||
#include <QStandardItemModel>
|
||||
|
||||
#include <QPrinter>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class cPrint;
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief
|
||||
|
||||
\class cPrint cprint.h "cprint.h"
|
||||
*/
|
||||
class cPrint : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
/*!
|
||||
\brief
|
||||
|
||||
\fn cPrint
|
||||
\param parent
|
||||
*/
|
||||
explicit cPrint(QProgressBar* lpProgressBar, QListView* lpSelectedList, QStandardItemModel* lpSelectedListModel, QWidget *parent = nullptr);
|
||||
/*!
|
||||
\brief
|
||||
|
||||
\fn ~cPrint
|
||||
*/
|
||||
~cPrint();
|
||||
|
||||
private:
|
||||
Ui::cPrint* ui; /*!< TODO: describe */
|
||||
QProgressBar* m_lpProgressBar; /*!< TODO: describe */
|
||||
QListView* m_lpSelectedList; /*!< TODO: describe */
|
||||
QStandardItemModel* m_lpSelectedListModel; /*!< TODO: describe */
|
||||
|
||||
QPrinter* m_lpPrinter; /*!< TODO: describe */
|
||||
|
||||
private slots:
|
||||
/*!
|
||||
\brief
|
||||
|
||||
\fn onPrinterSettings
|
||||
*/
|
||||
void onPrinterSettings();
|
||||
/*!
|
||||
\brief
|
||||
|
||||
\fn onPrint
|
||||
*/
|
||||
void onPrint();
|
||||
};
|
||||
|
||||
#endif // CPRINT_H
|
||||
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>cPrint</class>
|
||||
<widget class="QWidget" name="cPrint">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QComboBox" name="m_lpPrinterSelect"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="m_lpPrinterSettings">
|
||||
<property name="text">
|
||||
<string>printer settings...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="m_lpPrint">
|
||||
<property name="text">
|
||||
<string>print</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
+5
-1
@@ -5,6 +5,7 @@ QMAKE_TARGET_DESCRIPTION = picturePrint
|
||||
QMAKE_TARGET_COPYRIGHT = (c) 2020 WIN-DESIGN
|
||||
|
||||
QT += core gui sql multimedia concurrent
|
||||
qtHaveModule(printsupport): QT += printsupport
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
@@ -49,6 +50,7 @@ SOURCES += \
|
||||
cfileviewer.cpp \
|
||||
cimage.cpp \
|
||||
common.cpp \
|
||||
cprint.cpp \
|
||||
csplashscreen.cpp \
|
||||
main.cpp \
|
||||
cmainwindow.cpp
|
||||
@@ -60,12 +62,14 @@ HEADERS += \
|
||||
cimage.h \
|
||||
cmainwindow.h \
|
||||
common.h \
|
||||
cprint.h \
|
||||
csplashscreen.h
|
||||
|
||||
FORMS += \
|
||||
cfilebrowser.ui \
|
||||
cfileviewer.ui \
|
||||
cmainwindow.ui
|
||||
cmainwindow.ui \
|
||||
cprint.ui
|
||||
|
||||
TRANSLATIONS += \
|
||||
picturePrint_de_AT.ts
|
||||
|
||||
Reference in New Issue
Block a user