Refactor specification handling in DocumentSettingsDialog and PDFController. Introduced primary application field for document types, updated export messages for consistency, and improved page number handling in specifications. Cleaned up unnecessary code in preview widgets.

This commit is contained in:
2025-12-23 14:12:50 +03:00
parent 129922e392
commit 80e407e6be
12 changed files with 349 additions and 105 deletions
+11 -11
View File
@@ -752,25 +752,25 @@ void MainWindow::onExportSpecification(){
QString defaultPath = QCoreApplication::applicationDirPath() + "/" + fileNameBase + ".pdf";
QString fileName = QFileDialog::getSaveFileName(
this,
tr("Экспорт спецификации материалов"),
tr("Экспорт спецификации"),
defaultPath,
tr("PDF файлы (*.pdf)")
);
if (!fileName.isEmpty()) {
m_statusBar->showMessage(tr("Экспорт спецификации материалов: %1").arg(fileName));
m_statusBar->showMessage(tr("Экспорт спецификации: %1").arg(fileName));
// Экспортируем в PDF через MainController
if (m_controller->exportSpecificationToPdf(fileName)) {
m_statusBar->showMessage(tr("Спецификация материалов успешно экспортирована: %1").arg(fileName));
m_statusBar->showMessage(tr("Спецификация успешно экспортирована: %1").arg(fileName));
// Автоматически открываем созданный PDF файл
QUrl fileUrl = QUrl::fromLocalFile(fileName);
QDesktopServices::openUrl(fileUrl);
} else {
m_statusBar->showMessage(tr("Ошибка экспорта спецификации материалов"));
m_statusBar->showMessage(tr("Ошибка экспорта спецификации"));
QMessageBox::critical(this, tr("Ошибка"),
tr("Не удалось экспортировать спецификацию материалов"));
tr("Не удалось экспортировать спецификацию"));
}
}
}
@@ -982,23 +982,23 @@ void MainWindow::onExportSpecificationToCsv()
QString defaultPath = QCoreApplication::applicationDirPath() + "/Спецификация.csv";
QString fileName = QFileDialog::getSaveFileName(
this,
tr("Экспорт спецификации материалов в CSV"),
tr("Экспорт спецификации в CSV"),
defaultPath,
tr("CSV файлы (*.csv);;Все файлы (*)")
);
if (!fileName.isEmpty()) {
m_statusBar->showMessage(tr("Экспорт спецификации материалов в CSV: %1").arg(fileName));
m_statusBar->showMessage(tr("Экспорт спецификации в CSV: %1").arg(fileName));
// Экспортируем в CSV через MainController
if (m_controller->exportSpecificationToCsv(fileName)) {
m_statusBar->showMessage(tr("Спецификация материалов успешно экспортирована в CSV: %1").arg(fileName));
m_statusBar->showMessage(tr("Спецификация успешно экспортирована в CSV: %1").arg(fileName));
QMessageBox::information(this, tr("Успех"),
tr("Спецификация материалов успешно экспортирована в CSV:\n%1").arg(fileName));
tr("Спецификация успешно экспортирована в CSV:\n%1").arg(fileName));
} else {
m_statusBar->showMessage(tr("Ошибка экспорта спецификации материалов в CSV"));
m_statusBar->showMessage(tr("Ошибка экспорта спецификации в CSV"));
QMessageBox::critical(this, tr("Ошибка"),
tr("Не удалось экспортировать спецификацию материалов в CSV"));
tr("Не удалось экспортировать спецификацию в CSV"));
}
}
}