From 1ec6aeef7ee57c6d06804e984fc416a3a0876837 Mon Sep 17 00:00:00 2001 From: fralx Date: Sat, 11 Sep 2021 19:03:03 +0300 Subject: [PATCH 1/2] ReportFooter splitting has been fixed --- limereport/lrpagedesignintf.cpp | 3 +++ limereport/lrreportrender.cpp | 2 ++ 2 files changed, 5 insertions(+) diff --git a/limereport/lrpagedesignintf.cpp b/limereport/lrpagedesignintf.cpp index bf10519..d4db356 100644 --- a/limereport/lrpagedesignintf.cpp +++ b/limereport/lrpagedesignintf.cpp @@ -1875,6 +1875,9 @@ void PageDesignIntf::setItemMode(BaseDesignIntf::ItemMode mode) } } } + foreach(PageItemDesignIntf::Ptr page, m_reportPages){ + page->setItemMode(mode); + } } } diff --git a/limereport/lrreportrender.cpp b/limereport/lrreportrender.cpp index 32a9062..60e2adc 100644 --- a/limereport/lrreportrender.cpp +++ b/limereport/lrreportrender.cpp @@ -1259,6 +1259,8 @@ BandDesignIntf *ReportRender::saveUppperPartReturnBottom(BandDesignIntf *band, i upperBandPart->updateItemSize(m_datasources, FirstPass, height); registerBand(upperBandPart); upperBandPart->copyBookmarks(band); + if (patternBand->isFooter()) + closeFooterGroup(m_lastDataBand); } else delete upperBandPart; if (band->columnsCount()>1 && From 4318c7d0c9e069822890080b84adc6e99410cd99 Mon Sep 17 00:00:00 2001 From: fralx Date: Sat, 11 Sep 2021 19:03:57 +0300 Subject: [PATCH 2/2] lrdview has been added --- common.pri | 2 +- limereport.pro | 1 + lrdview/MainWindow.cpp | 217 ++++++++++++++++++++++++++++++ lrdview/MainWindow.h | 58 ++++++++ lrdview/MainWindow.qrc | 17 +++ lrdview/MainWindow.ui | 211 +++++++++++++++++++++++++++++ lrdview/SettingDialog.cpp | 53 ++++++++ lrdview/SettingDialog.h | 30 +++++ lrdview/SettingDialog.ui | 114 ++++++++++++++++ lrdview/XmlModel.cpp | 73 ++++++++++ lrdview/XmlModel.h | 28 ++++ lrdview/images/PDF1.png | Bin 0 -> 284 bytes lrdview/images/delete.png | Bin 0 -> 217 bytes lrdview/images/design.png | Bin 0 -> 349 bytes lrdview/images/design_black.png | Bin 0 -> 336 bytes lrdview/images/edit.png | Bin 0 -> 240 bytes lrdview/images/edit_page.png | Bin 0 -> 218 bytes lrdview/images/edit_pattern.png | Bin 0 -> 479 bytes lrdview/images/folder_open.png | Bin 0 -> 610 bytes lrdview/images/folder_open_16.png | Bin 0 -> 252 bytes lrdview/images/print.png | Bin 0 -> 319 bytes lrdview/images/settings-24.png | Bin 0 -> 298 bytes lrdview/images/view.ico | Bin 0 -> 108302 bytes lrdview/images/view.png | Bin 0 -> 25900 bytes lrdview/images/zoomin.png | Bin 0 -> 2991 bytes lrdview/images/zoomout.png | Bin 0 -> 2989 bytes lrdview/lrdview.pro | 43 ++++++ lrdview/main.cpp | 12 ++ lrdview/mainicon.rc | 1 + lrdview/view.ico | Bin 0 -> 108302 bytes 30 files changed, 859 insertions(+), 1 deletion(-) create mode 100644 lrdview/MainWindow.cpp create mode 100644 lrdview/MainWindow.h create mode 100644 lrdview/MainWindow.qrc create mode 100644 lrdview/MainWindow.ui create mode 100644 lrdview/SettingDialog.cpp create mode 100644 lrdview/SettingDialog.h create mode 100644 lrdview/SettingDialog.ui create mode 100644 lrdview/XmlModel.cpp create mode 100644 lrdview/XmlModel.h create mode 100644 lrdview/images/PDF1.png create mode 100644 lrdview/images/delete.png create mode 100644 lrdview/images/design.png create mode 100644 lrdview/images/design_black.png create mode 100644 lrdview/images/edit.png create mode 100644 lrdview/images/edit_page.png create mode 100644 lrdview/images/edit_pattern.png create mode 100644 lrdview/images/folder_open.png create mode 100644 lrdview/images/folder_open_16.png create mode 100644 lrdview/images/print.png create mode 100644 lrdview/images/settings-24.png create mode 100644 lrdview/images/view.ico create mode 100644 lrdview/images/view.png create mode 100644 lrdview/images/zoomin.png create mode 100644 lrdview/images/zoomout.png create mode 100644 lrdview/lrdview.pro create mode 100644 lrdview/main.cpp create mode 100644 lrdview/mainicon.rc create mode 100644 lrdview/view.ico diff --git a/common.pri b/common.pri index bb087dd..3a6d8d3 100644 --- a/common.pri +++ b/common.pri @@ -141,7 +141,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MINOR = 5 -LIMEREPORT_VERSION_RELEASE = 87 +LIMEREPORT_VERSION_RELEASE = 88 LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}' DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\" diff --git a/limereport.pro b/limereport.pro index 20fbfb5..449d892 100644 --- a/limereport.pro +++ b/limereport.pro @@ -12,6 +12,7 @@ SUBDIRS += \ limereport \ demo_r1 \ demo_r2 \ + lrdview \ designer if(equals(QT_MAJOR_VERSION, 5) : greaterThan(QT_MINOR_VERSION, 1)) | equals(QT_MAJOR_VERSION, 6) { diff --git a/lrdview/MainWindow.cpp b/lrdview/MainWindow.cpp new file mode 100644 index 0000000..3619ab5 --- /dev/null +++ b/lrdview/MainWindow.cpp @@ -0,0 +1,217 @@ +#include "MainWindow.h" +#include "ui_MainWindow.h" +#include +#include +#include +#include +#include +#include +#include "XmlModel.h" +#include "SettingDialog.h" +#include "lrreportengine.h" + +//#ifndef QT_DEBUG +//Q_IMPORT_PLUGIN(adateeditorplugin) +//#endif + +void centerWindow(QWidget* widget, double widthFactor, double heightFactor) { + QDesktopWidget desk; + int ww = desk.width() * widthFactor; + int wh = desk.height() * heightFactor; + widget->resize(ww, wh); + widget->move((desk.width() - ww) / 2, (desk.height() - wh) / 2); +} + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow), + m_previewScene(0), m_isCert(false), m_deleteLastFile(false) +{ + ui->setupUi(this); + m_report.dataManager()->addModel("reportData",&m_model,false); + ui->graphicsView->scale(0.5,0.5); + centerWindow(this, 0.8, 0.8); + m_settings = new QSettings("OCKK Ltd","LRDView"); + m_report.setSettings(m_settings); + readSetting(); + setWindowTitle("LRDView ver 1.30"); + if (QCoreApplication::arguments().count()>1){ + loadReport(QCoreApplication::arguments().at(1)); + } + //ui->statusBar->addWidget(new QLabel(" Designed by Arin Alexander (arin_a@bk.ru) ",this)); +} + +bool isFileExists(QZipReader& reader, QString fileName){ + foreach( QZipReader::FileInfo fi, reader.fileInfoList()){ + if (fi.filePath.compare(fileName)==0) return true; + } + return false; +} +void MainWindow::loadReport(QString fileName){ + if (!fileName.isEmpty()){ + QZipReader reader(fileName); + QByteArray fileData = reader.fileData("report.xml"); + m_report.loadFromByteArray(&fileData); + m_reportData = reader.fileData("data.xml"); + m_model.setXMLData(&m_reportData); + if (m_previewScene) delete m_previewScene; + m_previewScene = dynamic_cast(m_report.createPreviewScene(ui->graphicsView)); + m_previewScene->setItemMode(LimeReport::PreviewMode); + ui->graphicsView->setScene(m_previewScene); + ui->graphicsView->centerOn(0, 0); + ui->actionEdit->setChecked(false); + m_isCert = isFileExists(reader,"CertFlag.sgn"); + //m_lastReport = fileName; + ui->action_PDF->setEnabled(true); + ui->actionPrint->setEnabled(true); + reader.close(); + if (m_deleteLastFile){ + QFile::remove(fileName); + } + } +} + +MainWindow::~MainWindow() +{ + delete m_settings; + delete ui; +} + +void MainWindow::on_actionEdit_triggered() +{ + if (m_previewScene){ + if (m_previewScene->itemMode()==LimeReport::PreviewMode){ + m_previewScene->setItemMode(LimeReport::DesignMode); + } else m_previewScene->setItemMode(LimeReport::PreviewMode); + } +} + +void MainWindow::on_actionOpen_triggered() +{ + QString fileName = QFileDialog::getOpenFileName(0,tr("Открыть файл отчета"),QString(),"*.lrd"); + if (!fileName.isEmpty()){ + loadReport(fileName); + } +} + +void MainWindow::on_actionDesign_triggered() +{ + m_report.designReport(); +} + +void MainWindow::closeEvent(QCloseEvent *event) +{ + writeSetting(); +} + +void MainWindow::writeSetting(){ + m_settings->setValue("geometry",saveGeometry()); +} + +void MainWindow::readSetting() +{ + QVariant v = m_settings->value("geometry"); + if (v.isValid()){ + restoreGeometry(v.toByteArray()); + } + m_certPrinterName = m_settings->value("certPrinterName","").value(); + m_otherPrinterName = m_settings->value("otherPrinterName","").value(); + m_deleteLastFile = m_settings->value("deleteLastFile",false).value(); +} + +void MainWindow::settingAccepted() +{ + m_certPrinterName=((SettingDialog*)sender())->certPrinterName(); + m_otherPrinterName=((SettingDialog*)sender())->othenPrinterName(); + m_deleteLastFile = ((SettingDialog*)sender())->deleteLastFile(); + m_settings->setValue("certPrinterName",m_certPrinterName); + m_settings->setValue("otherPrinterName",m_otherPrinterName); + m_settings->setValue("deleteLastFile",m_deleteLastFile); +} + +void MainWindow::on_actionZoomIn_triggered() +{ + ui->graphicsView->scale(1.2,1.2); +} + +void MainWindow::on_actionZoomOut_triggered() +{ + ui->graphicsView->scale(1/1.2,1/1.2); +} + +void MainWindow::on_actionPrint_triggered() +{ + QPrinterInfo pi; + if (m_isCert) + pi = getPrinterInfo(m_certPrinterName); + else { + pi = getPrinterInfo(m_otherPrinterName); + } + QPrinter printer(pi); + QPrintDialog dialog(&printer,QApplication::activeWindow()); + + + if (dialog.exec()){ + if (m_previewScene->pageItems().isEmpty()) + m_report.printReport(&printer); + else{ + printer.setPrintRange(QPrinter::PrintRange(dialog.printRange())); + printer.setFromTo(dialog.fromPage(), dialog.toPage()); + m_report.printPages( + m_previewScene->pageItems(), &printer + ); + foreach(LimeReport::PageItemDesignIntf::Ptr pageItem, m_previewScene->pageItems()){ + m_previewScene->reactivatePageItem(pageItem); + } + } + } + +} + +QPrinterInfo MainWindow::getPrinterInfo(QString printerName){ + foreach (QPrinterInfo pi, QPrinterInfo::availablePrinters()) { + if (pi.printerName().compare(printerName)==0) + return pi; + } + return QPrinterInfo::defaultPrinter(); +} + +void MainWindow::on_actionSetting_triggered() +{ + SettingDialog w(this); + w.setCertPrinterName(m_certPrinterName); + w.setOtherPrinterName(m_otherPrinterName); + w.setDeleteLastFile(m_deleteLastFile); + connect(&w, SIGNAL(accepted()), this, SLOT(settingAccepted())); + w.exec(); +} + + +void MainWindow::on_actionDelete_triggered() +{ + if (m_previewScene){ + m_previewScene->deleteSelected(); + } +} + +void MainWindow::on_action_PDF_triggered() +{ + QString fileName = QFileDialog::getSaveFileName(this,tr("Имя файла для экспорта"),"","*.pdf" ); + if (!fileName.isEmpty()){ + QPrinter printer; + printer.setOutputFileName(fileName); + printer.setOutputFormat(QPrinter::PdfFormat); + //m_report.printReport(&printer); + if (m_previewScene->pageItems().isEmpty()) + m_report.printReport(&printer); + else{ + m_report.printPages( + m_previewScene->pageItems(), + &printer + ); + foreach(LimeReport::PageItemDesignIntf::Ptr pageItem, m_previewScene->pageItems()){ + m_previewScene->reactivatePageItem(pageItem); + } + } + } +} diff --git a/lrdview/MainWindow.h b/lrdview/MainWindow.h new file mode 100644 index 0000000..31c0e59 --- /dev/null +++ b/lrdview/MainWindow.h @@ -0,0 +1,58 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include "lrreportengine.h" +#include "lrpagedesignintf.h" +#include "XmlModel.h" + +namespace Ui { +class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + +private slots: + void on_actionEdit_triggered(); + void on_actionOpen_triggered(); + void on_actionDesign_triggered(); + void on_actionZoomIn_triggered(); + void on_actionZoomOut_triggered(); + void on_actionPrint_triggered(); + void on_actionSetting_triggered(); + +protected: + void closeEvent(QCloseEvent *event); +private: + void loadReport(QString fileName); + void writeSetting(); + void readSetting(); + QPrinterInfo getPrinterInfo(QString printerName); +private slots: + void settingAccepted(); + void on_actionDelete_triggered(); + + void on_action_PDF_triggered(); + +private: + Ui::MainWindow *ui; + LimeReport::PageDesignIntf* m_previewScene; + LimeReport::ReportEngine m_report; + XmlModel m_model; + QByteArray m_reportData; + QSettings* m_settings; + QString m_certPrinterName; + QString m_otherPrinterName; + bool m_isCert; + bool m_deleteLastFile; + QString m_lastReport; +}; + +#endif // MAINWINDOW_H diff --git a/lrdview/MainWindow.qrc b/lrdview/MainWindow.qrc new file mode 100644 index 0000000..46e191e --- /dev/null +++ b/lrdview/MainWindow.qrc @@ -0,0 +1,17 @@ + + + images/design.png + images/edit.png + images/print.png + images/folder_open_16.png + images/design_black.png + images/edit_page.png + images/edit_pattern.png + images/view.png + images/zoomin.png + images/zoomout.png + images/settings-24.png + images/delete.png + images/PDF1.png + + diff --git a/lrdview/MainWindow.ui b/lrdview/MainWindow.ui new file mode 100644 index 0000000..c81bc44 --- /dev/null +++ b/lrdview/MainWindow.ui @@ -0,0 +1,211 @@ + + + MainWindow + + + + 0 + 0 + 694 + 677 + + + + LRDView + + + + :/images/view.png:/images/view.png + + + + + + + + 2 + + + + + + + + + + 0 + 0 + 694 + 21 + + + + + + true + + + + 16 + 16 + + + + TopToolBarArea + + + false + + + + + + + + + + + + + + + + + + false + + + + :/images/print.png:/images/print.png + + + Печать + + + Печать документа + + + Ctrl+P + + + + + true + + + + :/images/edit.png:/images/edit.png + + + Редактировать + + + Редактировать + + + Ctrl+E + + + + + + :/images/folder_open_16.png:/images/folder_open_16.png + + + Открыть + + + Открыть файл + + + Ctrl+O + + + + + + :/images/edit_pattern.png:/images/edit_pattern.png + + + Редактировать шаблон + + + Редактировть шаблон + + + + + + :/images/zoomin.png:/images/zoomin.png + + + Увеличить + + + Увеличить + + + Ctrl+= + + + + + + :/images/zoomout.png:/images/zoomout.png + + + Уменьшить + + + Уменьшить + + + Ctrl+- + + + + + + :/images/settings-24.png:/images/settings-24.png + + + Настройки + + + Настройки + + + + + + :/images/delete.png:/images/delete.png + + + Удалить + + + Удалить выбранный элемент + + + Del + + + + + false + + + + :/images/PDF1.png:/images/PDF1.png + + + Экспорт в PDF + + + + + + + + + diff --git a/lrdview/SettingDialog.cpp b/lrdview/SettingDialog.cpp new file mode 100644 index 0000000..ee842c1 --- /dev/null +++ b/lrdview/SettingDialog.cpp @@ -0,0 +1,53 @@ +#include "SettingDialog.h" +#include "ui_SettingDialog.h" +#include + +SettingDialog::SettingDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::SettingDialog) +{ + ui->setupUi(this); + initPrinters(); +} + +SettingDialog::~SettingDialog() +{ + delete ui; +} + +void SettingDialog::initPrinters() +{ + foreach (QPrinterInfo pi, QPrinterInfo::availablePrinters()) { + ui->certPrinter->addItem(pi.printerName()); + ui->otherPrinter->addItem(pi.printerName()); + } +} + +void SettingDialog::setCertPrinterName(QString printerName){ + + ui->certPrinter->setCurrentIndex(ui->certPrinter->findText(printerName)); +} + +void SettingDialog::setOtherPrinterName(QString printerName) +{ + ui->otherPrinter->setCurrentIndex(ui->otherPrinter->findText(printerName)); +} + +QString SettingDialog::certPrinterName(){ + return ui->certPrinter->currentText(); +} + +QString SettingDialog::othenPrinterName() +{ + return ui->otherPrinter->currentText(); +} + +bool SettingDialog::deleteLastFile(){ + return ui->checkBox->isChecked(); +} + +void SettingDialog::setDeleteLastFile(bool value) +{ + ui->checkBox->setChecked(value); +} + diff --git a/lrdview/SettingDialog.h b/lrdview/SettingDialog.h new file mode 100644 index 0000000..b9eaa5b --- /dev/null +++ b/lrdview/SettingDialog.h @@ -0,0 +1,30 @@ +#ifndef SETTINGDIALOG_H +#define SETTINGDIALOG_H + +#include + +namespace Ui { +class SettingDialog; +} + +class SettingDialog : public QDialog +{ + Q_OBJECT + +public: + explicit SettingDialog(QWidget *parent = 0); + ~SettingDialog(); + void setCertPrinterName(QString printerName); + void setOtherPrinterName(QString printerName); + QString certPrinterName(); + QString othenPrinterName(); + bool deleteLastFile(); + void setDeleteLastFile(bool value); +private: + void initPrinters(); + +private: + Ui::SettingDialog *ui; +}; + +#endif // SETTINGDIALOG_H diff --git a/lrdview/SettingDialog.ui b/lrdview/SettingDialog.ui new file mode 100644 index 0000000..ff34f08 --- /dev/null +++ b/lrdview/SettingDialog.ui @@ -0,0 +1,114 @@ + + + SettingDialog + + + Qt::WindowModal + + + + 0 + 0 + 400 + 151 + + + + Настройки + + + true + + + + + + Принтер + + + + + + + + Сертификаты + + + + + + + + + + + + + + Остальное + + + + + + + + + + + + + + + Удалять файл + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + SettingDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + SettingDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/lrdview/XmlModel.cpp b/lrdview/XmlModel.cpp new file mode 100644 index 0000000..9942120 --- /dev/null +++ b/lrdview/XmlModel.cpp @@ -0,0 +1,73 @@ +#include "XmlModel.h" +#include + +XmlModel::XmlModel(QByteArray *data) { + if (data) { + m_doc.setContent(*data); + initModel(); + } +} + +void XmlModel::setXMLData(QByteArray *data) { + if (data) { + beginResetModel(); + m_doc.setContent(*data); + initModel(); + endResetModel(); + } +} + +void XmlModel::initModel(){ + m_items = m_doc.firstChildElement("items"); + parseHeaders(); +} + +void XmlModel::parseHeaders() +{ + m_fields.clear(); + QDomNode root = m_doc.firstChildElement("items"); + QDomNode item = root.firstChild(); + for (int i=0; i +#include +#include + +class XmlModel : public QAbstractItemModel +{ +public: + XmlModel(QByteArray* data = 0); + void setXMLData(QByteArray* data); + void parseHeaders(); + QModelIndex index(int row, int column, const QModelIndex &parent) const; + QModelIndex parent(const QModelIndex &child) const; + int rowCount(const QModelIndex &parent) const; + int columnCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role) const; + QVariant headerData(int section, Qt::Orientation orientation, int role) const; +private: + void initModel(); +private: + QDomDocument m_doc; + QDomNode m_items; + QVector m_fields; +}; + +#endif // XMLMODEL_H diff --git a/lrdview/images/PDF1.png b/lrdview/images/PDF1.png new file mode 100644 index 0000000000000000000000000000000000000000..284dcee09c483c562433a0985b41b8b85f849816 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~vz(B%nMpzLOrVf#W=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6mRf!aSX9Iy>#+L-UbC8m-x=vGhX})e!#WM=Wl?Is%v-L zC6lGc9d{_*S$IV8UXqJLu3t?%gH_F)HFtU0gCF)g*mY<0d^^CC;i$Ox%1y4A77sJV z1+jWEQsql#DJbRMpA*M4P3)m#!N#Nd;!8f2vOaq-Ip^M;jQ1}8esaH?{$?+u^^!k@ UB3^ctAb&7;y85}Sb4q9e0MQ6yDgXcg literal 0 HcmV?d00001 diff --git a/lrdview/images/delete.png b/lrdview/images/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..148f04788de394d4baff843219a253625638ae8f GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3p`yMLn`9#PTtFT*g&B5y;I0- z;T6Iw1YM*nw)9L0+~lNofgx*Cgyek3!QGHtd-T$yL$Z< zr`_wg+TwGz84k&38amF;a(@wSAzXA$S>|#F%i6CsCCpEjOo>_$e6QN(K~zYI?bba?1VIo5;Ll}oH4$?c4NSd*cn@P!e~)D15zKTIJb~W8 zKv6Lg7Z%50W>AOj>24KFd@wXKudC`+)$|YF$33dZbC)t+$4xWFP~~uQ0djyd%wviz zyhWUZ?7wh>0C|K}oMH`!JxY`4D%en~KgKhbv5ie!2UN!VM6Qz}9pu}16UNlwjpr0|qYoUfs v1!J6J)~J}NPq>vnm4#e39>uRM5ACFPzKm0I@G+8?00000NkvXXu0mjfcX5#y literal 0 HcmV?d00001 diff --git a/lrdview/images/design_black.png b/lrdview/images/design_black.png new file mode 100644 index 0000000000000000000000000000000000000000..3820adc3c7c40b66b99dae201c845a6c9d3eec4e GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYYs>cdx@v7EBifWDN$9a$uoj30fp{*x;Tb-9Dh62m+O#$KFb z;(A|&=6UKrKeykwf_>?_r9m>{+Y}Tho8;~is1fi=NQ-;6SCjc}A+w9+^?*-IJFdj@ z3Ry5nxF@l_X%q}#%6_m^;77u&B(rS?cy2HjCpbH;X*iU%m0{XCJ{K0jgX$A|Ckxg1 zJUwXsnOWlYtYcLIlT&1bYP%$qn*~Z{EqWGu%T_FMeu|*sLiQ)M93pQomwuT3!dyk_ zkNfFpk*r{yQz@MjHBz>{Js8}ny;YOTcam?xw>O a;+VhOxi-_&lYKGJqYR#|elF{r5}E+iKzkPe literal 0 HcmV?d00001 diff --git a/lrdview/images/edit.png b/lrdview/images/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..1a46331169fab75f598edc3df14be40ed420ca59 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt^jJzX3_ zJUZV_G30A<5OAG8r-^C8g5@7W?sWzECo;2UJl5S(pqA61dPKJK=)WiFn}YY)&rD%| zGlg+$NO7nG|DGjsb*$m{*E&6Wkaxn6WgcTM`?`HK-0`zwYMC!_^nc*E&oHl|s<<|k zeNMykTb;3Qmx?)bKa2|DZ!@0V@6`0rVDD4Q`Q4dJ*BN+ME(!1Qee!O1xzoS!-4}n$ loY>v9H|keRwvFTmUX7+XrJf(p+yy$A!PC{xWt~$(69DlxVe|k1 literal 0 HcmV?d00001 diff --git a/lrdview/images/edit_page.png b/lrdview/images/edit_page.png new file mode 100644 index 0000000000000000000000000000000000000000..b830886eca53af929f2c974ac96b42e7027679fe GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqvy`Z|?Bx1a|A9j3o-U3d7N?I+3gkPWz~RjOF~ioZ zJUQN*r0Y14J9#%MN`qi61%*^?_!-lsOtbdtr_?Yr32lS?hm zO>CJn?<3!uN!@-A+8xFJJy)(ZI*6}k%kyl&ugLq0A&of82*J*|40>2p5Im(9+gFQ1~Mp z`vb}`qb3i9bC5gb9K<1wrzI)tJgo;FczNObdES@j10n(ufk|wQ`*;NaS+%q%%`?U_ zhN)xJL_UdAI{|dRU7amBU8gextcr*P$CRm4A(ntCgSW%fMmlHrkFhm2v^p84z7-4wuNh+$UI||sroPkA>c3V?M40;tWTFJO z=*DgSX88C}K{Os6E-wY&n_6?W7XYB@%hPr&9@{re{YZ|;2hXq7T`Re4P2`-n4O54Q zdHR#=90SO*Ow)9>1(eFgP9m9@DVRtms8lX?i0Dh@cGp-3a0P(RAYl!_-h$J0{{e^+ V7s8gDh;0A>002ovPDHLkV1lK8#cKcn literal 0 HcmV?d00001 diff --git a/lrdview/images/folder_open.png b/lrdview/images/folder_open.png new file mode 100644 index 0000000000000000000000000000000000000000..4c03fdd23cea93a498eccc902c64e657437463c2 GIT binary patch literal 610 zcmV-o0-gPdP)ypK02V%jVBsrR2!hRu zb~Xw&@d_p>g2W}LBq_wKG07!!#$wG9asP#!4^DA7!};br^UWLq*xA`hnOO-4_#eOP z_4*)+BH}n^S)>4*b2rSaYi3`LS)ZaPx*W$bwOVay0;$z%>mu?3xOqxkGf9%Gtyaq| zO;D{?cSYpwIbt6<=N8Zi8aKve-=iO4-5@t|OQoPsxy-BwA<|?f)VgxepoJ- zvm$co9Bw%g)9IAW%}vZK37vDJR4Vmu;rxM_J@h0d301Y(?RF;srBZ2KRj+$=)X&h& zUIOIvd7N`u;My|2KLdNAsy+i43dd<} zolai}f?(gwR(6nxU}pWvWKsl}E7(=ltjG6%4UoxX4hfud5#W>H`P`i$fU2(f{BhFh w^xkYXqPnc!Q1zv#mGKg3D2x2%T=ECF$Gzz>qgd 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 literal 0 HcmV?d00001 diff --git a/lrdview/images/view.png b/lrdview/images/view.png new file mode 100644 index 0000000000000000000000000000000000000000..a23184fb49e64a591f3a613527971bb03fecceab GIT binary patch literal 25900 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 literal 0 HcmV?d00001 diff --git a/lrdview/images/zoomout.png b/lrdview/images/zoomout.png new file mode 100644 index 0000000000000000000000000000000000000000..aa53d258a6f4fb464aea43b0cb1c4f3024091e7f GIT binary patch literal 2989 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 literal 0 HcmV?d00001 diff --git a/lrdview/lrdview.pro b/lrdview/lrdview.pro new file mode 100644 index 0000000..df434d3 --- /dev/null +++ b/lrdview/lrdview.pro @@ -0,0 +1,43 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2014-03-24T20:29:50 +# +#------------------------------------------------- + +QT += core gui xml +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets gui-private + +CONFIG += uitools + +include(../common.pri) +include(../qzint.pri) +include(../limereport.pri) + +TARGET = lrdview +TEMPLATE = app + +win32 { + RC_FILE += mainicon.rc +} + +SOURCES += main.cpp\ + MainWindow.cpp \ + XmlModel.cpp \ + SettingDialog.cpp + +HEADERS += MainWindow.h \ + XmlModel.h \ + SettingDialog.h + +FORMS += MainWindow.ui \ + SettingDialog.ui + +RESOURCES += \ + MainWindow.qrc + +#win32:CONFIG(release, debug|release): { +# LIBS += -LD:/Work/C++/Projects/LRDView/libs -ladateeditorplugin +# QTPLUGIN += adateeditorplugin +# DEFINES += DEBUG +#} + diff --git a/lrdview/main.cpp b/lrdview/main.cpp new file mode 100644 index 0000000..da3fe56 --- /dev/null +++ b/lrdview/main.cpp @@ -0,0 +1,12 @@ +#include "MainWindow.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + //QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/lrdview/mainicon.rc b/lrdview/mainicon.rc new file mode 100644 index 0000000..790ecd0 --- /dev/null +++ b/lrdview/mainicon.rc @@ -0,0 +1 @@ +DI_ICON1 ICON "view.ico" diff --git a/lrdview/view.ico b/lrdview/view.ico new file mode 100644 index 0000000000000000000000000000000000000000..343474a5e479ee566bd2aa83af16712ea202b26c GIT binary patch literal 108302 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 literal 0 HcmV?d00001