View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0015396 | Scribus | User Interface | public | 2018-08-09 09:53 | 2026-08-27 15:10 |
| Reporter | ale | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | N/A |
| Status | new | Resolution | open | ||
| Product Version | 1.5.5.svn | ||||
| Summary | 0015396: file > create pdf | ||||
| Description | currently, the creation of the pdf is "hidden" in `file > export > save as pdf`. mixed with 5 other "low quality" export options. the goal of scribus is to create PDFs, so i would suggest that the command should be promoted as a main menu entry in "file". - moving it up, would clearly show that there is a difference between the pdf creation and all other exports. - moving it close to "print" (before it!) could show some users that the "right" way to print a scribus is file is by first creating a PDF file. - naming it "create" instead of export / save, would tell the user that PDF is not a good interchange format, but a final file to be printed. | ||||
| Tags | #patch_is_ready, #please_test | ||||
| Patch | No | ||||
|
|
I liked the idea and it was a small fix. PDF creation is buried under File > Export alongside secondary export formats, despite PDF being Scribus's primary finished-output workflow. #Patch behaviour - Moves Create PDF... to the main File menu, immediately before Print. - Removes PDF from the Export submenu. - Renames user-facing Save as PDF wording to Create PDF. - Changes the PDF dialog title to Create PDF. - Changes the primary dialog button to Create. - Updates Preferences > Keyboard Shortcuts / action search to show Create PDF.... - Keeps the existing Ctrl+Shift+P shortcut, PDF icon, and toolbar button. - Tightens related tooltips and messages for consistent terminology. #Scope UI and workflow terminology only. PDF generation, Preflight, and document behaviour are unchanged. #Files touched - scribus/actionmanager.cpp - scribus/scribus.cpp - scribus/ui/pdfexportdialog.cpp create-pdf-menu-v1.0.patch (9,105 bytes)
Index: scribus/actionmanager.cpp
===================================================================
--- scribus/actionmanager.cpp (revision 27785)
+++ scribus/actionmanager.cpp (working copy)
@@ -148,8 +148,6 @@
scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
name = "fileExportAsEPS";
scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
- name = "fileExportAsPDF";
- scrActions->insert(name, new ScrAction("pref-pdf-export", "pref-pdf-export", "", defaultKey(name), mainWindow));
//Rest of File Menu
// name = "fileDocSetup";
// scrActions->insert(name, new ScrAction("document-properties", "document-properties", "", defaultKey(name), mainWindow));
@@ -161,6 +159,8 @@
name = "filePreferences150";
scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
(*scrActions)[name]->setMenuRole(QAction::PreferencesRole);
+ name = "fileExportAsPDF";
+ scrActions->insert(name, new ScrAction("pref-pdf-export", "pref-pdf-export", "", defaultKey(name), mainWindow));
name = "filePrint";
scrActions->insert(name, new ScrAction("document-print", "document-print", "", defaultKey(name), mainWindow));
name = "PrintPreview";
@@ -187,6 +187,7 @@
connect( (*scrActions)["fileSaveAs"], SIGNAL(triggered()), mainWindow, SLOT(slotFileSaveAs()) );
connect( (*scrActions)["fileDocSetup150"], SIGNAL(triggered()), mainWindow, SLOT(slotDocSetup()) );
connect( (*scrActions)["filePreferences150"], SIGNAL(triggered()), mainWindow, SLOT(slotPrefsOrg()) );
+ connect( (*scrActions)["fileExportAsPDF"], SIGNAL(triggered()), mainWindow, SLOT(SaveAsPDF()) );
connect( (*scrActions)["fileRevert"], SIGNAL(triggered()), mainWindow, SLOT(slotFileRevert()) );
connect( (*scrActions)["fileCollect"], SIGNAL(triggered()), mainWindow, SLOT(fileCollect()) );
connect( (*scrActions)["fileQuit"], SIGNAL(triggered()), mainWindow, SLOT(slotFileQuit()) );
@@ -199,7 +200,6 @@
//File Export Menu
connect( (*scrActions)["fileExportText"], SIGNAL(triggered()), mainWindow, SLOT(SaveText()) );
connect( (*scrActions)["fileExportAsEPS"], SIGNAL(triggered()), mainWindow, SLOT(SaveAsEps()) );
- connect( (*scrActions)["fileExportAsPDF"], SIGNAL(triggered()), mainWindow, SLOT(SaveAsPDF()) );
//The rest are plugins
@@ -1578,7 +1578,7 @@
(*scrActions)["fileExportText"]->setTexts( tr("Save &Text..."));
(*scrActions)["fileExportAsEPS"]->setTexts( tr("Save as &EPS..."));
- (*scrActions)["fileExportAsPDF"]->setTexts( tr("Save as P&DF..."));
+ (*scrActions)["fileExportAsPDF"]->setTexts( tr("Create P&DF..."));
// (*scrActions)["fileDocSetup"]->setTexts( tr("Document &Setup (old)..."));
(*scrActions)["fileDocSetup150"]->setTexts( tr("Document &Setup..."));
// (*scrActions)["filePreferences"]->setTexts( tr("P&references (old)..."));
@@ -1879,7 +1879,7 @@
(*scrActions)["editRedoAction"]->setStatusTextAndShortcut( tr("Redo"));
(*scrActions)["editUndoAction"]->setStatusTextAndShortcut( tr("Undo"));
(*scrActions)["fileClose"]->setStatusTextAndShortcut( tr("Close the current document"));
- (*scrActions)["fileExportAsPDF"]->setStatusTextAndShortcut( tr("Export the document to PDF"));
+ (*scrActions)["fileExportAsPDF"]->setStatusTextAndShortcut( tr("Create a PDF from the document"));
(*scrActions)["fileNew"]->setStatusTextAndShortcut( tr("Create a new document"));
(*scrActions)["fileOpen"]->setStatusTextAndShortcut( tr("Open an existing document"));
(*scrActions)["filePrint"]->setStatusTextAndShortcut( tr("Print the document"));
@@ -2181,11 +2181,11 @@
<< "fileImportVector"
<< "fileExportText"
<< "fileExportAsEPS"
- << "fileExportAsPDF"
// << "fileDocSetup"
<< "fileDocSetup150"
// << "filePreferences"
<< "filePreferences150"
+ << "fileExportAsPDF"
<< "filePrint"
<< "PrintPreview"
<< "OutputPreviewPDF"
Index: scribus/scribus.cpp
===================================================================
--- scribus/scribus.cpp (revision 27785)
+++ scribus/scribus.cpp (working copy)
@@ -943,11 +943,11 @@
scrMenuMgr->createMenu("FileExport", tr("&Export"), "File");
scrMenuMgr->addMenuItemString("fileExportText", "FileExport");
scrMenuMgr->addMenuItemString("fileExportAsEPS", "FileExport");
- scrMenuMgr->addMenuItemString("fileExportAsPDF", "FileExport");
scrMenuMgr->addMenuItemString("SEPARATOR", "File");
scrMenuMgr->addMenuItemString("fileDocSetup150", "File");
scrMenuMgr->addMenuItemString("filePreferences150", "File");
scrMenuMgr->addMenuItemString("SEPARATOR", "File");
+ scrMenuMgr->addMenuItemString("fileExportAsPDF", "File");
scrMenuMgr->addMenuItemString("filePrint", "File");
if (ScCore->haveGS() || ScCore->isWinGUI())
scrMenuMgr->addMenuItemString("PrintPreview", "File");
Index: scribus/ui/pdfexportdialog.cpp
===================================================================
--- scribus/ui/pdfexportdialog.cpp (revision 27785)
+++ scribus/ui/pdfexportdialog.cpp (working copy)
@@ -58,7 +58,7 @@
m_printerProfiles(printerProfiles)
{
setModal(true);
- setWindowTitle( tr( "Save as PDF" ) );
+ setWindowTitle( tr( "Create PDF" ) );
setWindowIcon(IconManager::instance().loadIcon("app-icon"));
PDFExportLayout = new QVBoxLayout( this );
PDFExportLayout->setSpacing(6);
@@ -101,10 +101,10 @@
changeButton->setText( tr( "Cha&nge..." ) );
changeButton->setMinimumSize( QSize( 88, 24 ) );
NameLayout->addWidget( changeButton, 0, 1 );
- multiFile = new QCheckBox( tr( "Output one file for eac&h page" ), Name );
+ multiFile = new QCheckBox( tr( "Create one PDF file for eac&h page" ), Name );
multiFile->setChecked(m_opts.doMultiFile);
NameLayout->addWidget( multiFile, 1, 0 );
- openAfterExportCheckBox = new QCheckBox( tr( "Open PDF after Export" ), Name );
+ openAfterExportCheckBox = new QCheckBox( tr( "Open PDF after creation" ), Name );
openAfterExportCheckBox->setChecked(m_opts.openAfterExport);
NameLayout->addWidget( openAfterExportCheckBox, 2, 0 );
PDFExportLayout->addWidget( Name );
@@ -116,7 +116,7 @@
Layout7->setContentsMargins(0, 0, 0, 0);
QSpacerItem* spacer_2 = new QSpacerItem( 2, 2, QSizePolicy::Expanding, QSizePolicy::Minimum );
Layout7->addItem( spacer_2 );
- okButton = new QPushButton( tr( "&Save" ), this );
+ okButton = new QPushButton( tr( "C&reate" ), this );
okButton->setAutoDefault( true );
okButton->setDefault( true );
Layout7->addWidget( okButton );
@@ -128,9 +128,9 @@
resize(sizeHint());
// setMaximumSize( sizeHint() );
//tooltips
- multiFile->setToolTip( "<qt>" + tr( "This enables exporting one individually named PDF file for each page in the document. Page numbers are added automatically. This is most useful for imposing PDF for commercial printing.") + "</qt>" );
- openAfterExportCheckBox->setToolTip( "<qt>" + tr( "Open the exported PDF with the PDF viewer as set in External Tools preferences, when not exporting to a multi-file export destination") + "</qt>" );
- okButton->setToolTip( "<qt>" + tr( "The save button will be disabled if you are trying to export PDF/X and the info string is missing from the PDF/X tab") + "</qt>" );
+ multiFile->setToolTip( "<qt>" + tr( "Create a separate PDF file for each page. Page numbers are added automatically. This is useful for PDF imposition in commercial printing.") + "</qt>" );
+ openAfterExportCheckBox->setToolTip( "<qt>" + tr( "Open the created PDF in the PDF viewer configured in External Tools preferences when creating a single PDF file.") + "</qt>" );
+ okButton->setToolTip( "<qt>" + tr( "Create is disabled for PDF/X until the required Info String is entered on the PDF/X tab.") + "</qt>" );
// signals and slots connections
connect( changeButton, SIGNAL( clicked() ), this, SLOT( ChangeFile() ) );
connect( okButton, SIGNAL( clicked() ), this, SLOT( DoExport() ) );
@@ -170,7 +170,7 @@
if ((pageNumbers.empty()) || hasInvalidPageRange)
{
- ScMessageBox::warning(this, CommonStrings::trWarning, tr("The range of pages to export is invalid.\nPlease check it and try again."));
+ ScMessageBox::warning(this, CommonStrings::trWarning, tr("The page range is invalid.\nPlease check it and try again."));
return;
}
@@ -181,8 +181,8 @@
QString dirPath = QDir::toNativeSeparators(fi.absolutePath());
if (!QFile::exists(fi.absolutePath()))
{
- if (ScMessageBox::question(this, tr( "Save as PDF" ),
- tr("%1 does not exists and will be created, continue?").arg(dirPath),
+ if (ScMessageBox::question(this, tr( "Create PDF" ),
+ tr("%1 does not exist. Create it?").arg(dirPath),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::NoButton, // GUI default
QMessageBox::Ok) // batch default
@@ -241,7 +241,7 @@
wdir = wfile;
}
- QString d = QFileDialog::getSaveFileName(this, tr("Save As"), wdir, tr("PDF Files (*.pdf);;All Files (*)"), nullptr, QFileDialog::DontConfirmOverwrite);
+ QString d = QFileDialog::getSaveFileName(this, tr("Choose PDF File"), wdir, tr("PDF Files (*.pdf);;All Files (*)"), nullptr, QFileDialog::DontConfirmOverwrite);
if (d.length() > 0)
{
QString fn(QDir::fromNativeSeparators(d));
|
|
|
|
|
|
I like the screenshot. The patch looks good. |
|
|
why did you change the shortcut from ‚ctrl + shift + p‘ to ‚ctrl + shift + x‘ ? |
|
|
The shortcut is only their local configuration. I also had to ask in the chat : - ) |
|
|
I confirm, it is my own, local preference. No shortcuts touched in the patch. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2018-08-09 09:53 | ale | New Issue | |
| 2026-08-27 07:55 | qirat | Note Added: 0054327 | |
| 2026-08-27 07:55 | qirat | File Added: create-pdf-menu-v1.0.patch | |
| 2026-08-27 07:56 | qirat | Tag Attached: #please_test | |
| 2026-08-27 09:06 | qirat | Note Added: 0054331 | |
| 2026-08-27 09:06 | qirat | File Added: promote-create-pdf-file-menu.png | |
| 2026-08-27 09:21 | ale | Tag Attached: #patch_is_ready | |
| 2026-08-27 09:29 | ale | Note Added: 0054334 | |
| 2026-08-27 14:24 | utnik | Note Added: 0054343 | |
| 2026-08-27 14:28 | ale | Note Added: 0054344 | |
| 2026-08-27 15:10 | qirat | Note Added: 0054345 |