View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0017295 | Scribus | User Interface | public | 2024-10-18 18:29 | 2024-10-24 22:37 |
Reporter | jghali | Assigned To | nitramr | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Product Version | 1.7.0.svn | ||||
Fixed in Version | 1.7.0.svn | ||||
Summary | 0017295: New Doc Dialog height is excessive on a 15" screen on Windows | ||||
Description | As title mentions, the new doc dialog now appears to be too high on a 15" screen on Windows. The OK / Cancel buttons are hidden by the task bar. See attached screenshot. | ||||
Tags | No tags attached. | ||||
Patch | No | ||||
|
|
|
Hi Jean, please can you check if the patch works for you? I add a calculation that checks the available screen size and resizes the dialog if necessary. In general, I thought Qt resizes the dialog automatically if no fixed size is set. In addition, I add a missing "columns" icon and made a few more changes to reduce the dialog height. Reference: https://doc.qt.io/qt-6/qscreen.html#availableSize-prop newdocdialog_2024-10-19_01.patch (8,821 bytes)
Index: scribus/ui/newdocdialog.cpp =================================================================== --- scribus/ui/newdocdialog.cpp (Revision 26349) +++ scribus/ui/newdocdialog.cpp (Arbeitskopie) @@ -31,6 +31,7 @@ #include <QTabWidget> #include <QToolTip> #include <QVBoxLayout> +#include <QWindow> #include "commonstrings.h" #include "filedialogeventcatcher.h" @@ -52,6 +53,8 @@ { setupUi(this); + windowFitInScreen(); + setObjectName(QString::fromLocal8Bit("NewDocumentWindow")); setModal(true); @@ -67,6 +70,7 @@ buttonVertical->setIcon(iconManager.loadIcon("page-orientation-vertical")); buttonHorizontal->setIcon(iconManager.loadIcon("page-orientation-horizontal")); + labelColumns->setPixmap(iconManager.loadPixmap("paragraph-columns")); createNewDocPage(); if (startUp) @@ -153,11 +157,13 @@ widthSpinBox->setMaximum(16777215); widthSpinBox->setNewUnit(m_unitIndex); widthSpinBox->setSuffix(m_unitSuffix); + widthSpinBox->setValue(pageWidth * m_unitRatio); heightSpinBox->setMinimum(pts2value(1.0, m_unitIndex)); heightSpinBox->setMaximum(16777215); heightSpinBox->setNewUnit(m_unitIndex); heightSpinBox->setSuffix(m_unitSuffix); + heightSpinBox->setValue(pageHeight * m_unitRatio); unitOfMeasureComboBox->addItems(unitGetTextUnitList()); unitOfMeasureComboBox->setCurrentIndex(m_unitIndex); @@ -165,22 +171,20 @@ MarginStruct marg(prefsManager.appPrefs.docSetupPrefs.margins); marginGroup->setup(marg, !(pagePositioning == singlePage), m_unitIndex, NewMarginWidget::MarginWidgetFlags); + marginGroup->toggleLabelVisibility(false); marginGroup->setPageHeight(pageHeight); marginGroup->setPageWidth(pageWidth); marginGroup->setFacingPages(!(pagePositioning == singlePage)); + marginGroup->setPageSize(pageSize); + marginGroup->setMarginPreset(prefsManager.appPrefs.docSetupPrefs.marginPreset); MarginStruct bleed; bleed.resetToZero(); - bleedGroup->setup(bleed, !(pagePositioning == singlePage), m_unitIndex, NewMarginWidget::BleedWidgetFlags); + bleedGroup->toggleLabelVisibility(false); bleedGroup->setPageHeight(pageHeight); bleedGroup->setPageWidth(pageWidth); bleedGroup->setFacingPages(!(pagePositioning == singlePage)); - widthSpinBox->setValue(pageWidth * m_unitRatio); - heightSpinBox->setValue(pageHeight * m_unitRatio); - - marginGroup->setPageSize(pageSize); - marginGroup->setMarginPreset(prefsManager.appPrefs.docSetupPrefs.marginPreset); bleedGroup->setPageSize(pageSize); bleedGroup->setMarginPreset(prefsManager.appPrefs.docSetupPrefs.marginPreset); @@ -233,7 +237,7 @@ // We have to calculate the width of the properties panel manually, // because QSizePolicy::Minimum doesn't work as expected scrollAreaWidgetContents->adjustSize(); - scrollAreaWidgetContents->setFixedWidth(scrollAreaWidgetContents->width()); + //scrollAreaWidgetContents->setFixedWidth(scrollAreaWidgetContents->width()); scrollArea->setWidgetResizable(true); scrollArea->setFixedWidth(scrollAreaWidgetContents->width() + qApp->style()->pixelMetric(QStyle::PM_ScrollBarExtent)); @@ -380,6 +384,31 @@ listPageFormats->setSortMode(static_cast<PageSizeList::SortMode>(comboSortSizes->currentData().toInt())); } +void NewDocDialog::windowFitInScreen() +{ + QScreen* activeScreen = nullptr; + QWidget* widget = this; + + while (widget) + { + auto w = widget->windowHandle(); + if (w != nullptr) + { + activeScreen = w->screen(); + break; + } + else + widget = widget->parentWidget(); + } + + if (activeScreen) + { + int w = qMin(width(), activeScreen->availableSize().width()); + int h = qMin(height(), activeScreen->availableSize().height()); + resize(w, h); + } +} + void NewDocDialog::handleAutoFrame() { if (autoTextFrame->isChecked()) Index: scribus/ui/newdocdialog.h =================================================================== --- scribus/ui/newdocdialog.h (Revision 26349) +++ scribus/ui/newdocdialog.h (Arbeitskopie) @@ -137,6 +137,8 @@ double m_bleedTop { 0.0 }; double m_bleedLeft { 0.0 }; double m_bleedRight { 0.0 }; + + void windowFitInScreen(); }; #endif // NEWDOC_H Index: scribus/ui/newdocdialog.ui =================================================================== --- scribus/ui/newdocdialog.ui (Revision 26349) +++ scribus/ui/newdocdialog.ui (Arbeitskopie) @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>900</width> - <height>680</height> + <height>650</height> </rect> </property> <property name="windowTitle"> @@ -41,7 +41,7 @@ <attribute name="title"> <string>New Document</string> </attribute> - <layout class="QHBoxLayout" name="horizontalLayout_7"> + <layout class="QHBoxLayout" name="horizontalLayout_7" stretch="1,0"> <property name="spacing"> <number>4</number> </property> @@ -95,12 +95,6 @@ </item> <item> <widget class="QScrollArea" name="scrollArea"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Expanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> <property name="frameShape"> <enum>QFrame::Shape::NoFrame</enum> </property> @@ -118,8 +112,8 @@ <rect> <x>0</x> <y>0</y> - <width>304</width> - <height>624</height> + <width>320</width> + <height>626</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout_7"> @@ -679,11 +673,21 @@ </spacer> </item> <item> - <widget class="QCheckBox" name="startDocSetup"> - <property name="text"> - <string>Show Document Settings After Creation</string> + <layout class="QHBoxLayout" name="horizontalLayout_15"> + <property name="leftMargin"> + <number>8</number> </property> - </widget> + <property name="rightMargin"> + <number>8</number> + </property> + <item> + <widget class="QCheckBox" name="startDocSetup"> + <property name="text"> + <string>Show Document Settings After Creation</string> + </property> + </widget> + </item> + </layout> </item> <item> <spacer name="spacerBottom"> Index: scribus/ui/newmarginwidget.cpp =================================================================== --- scribus/ui/newmarginwidget.cpp (Revision 26349) +++ scribus/ui/newmarginwidget.cpp (Arbeitskopie) @@ -74,11 +74,11 @@ { topMarginSpinBox->setToolTip( "<qt>" + tr( "Distance between the top margin guide and the edge of the page" ) + "</qt>"); bottomMarginSpinBox->setToolTip( "<qt>" + tr( "Distance between the bottom margin guide and the edge of the page" ) + "</qt>"); - leftMarginSpinBox->setToolTip( "<qt>" + tr( "Distance between the left margin guide and the edge of the page. If a double-sided, 3 or 4-fold layout is selected, this margin space can be used to achieve the correct margins for binding.") + "</qt>"); - rightMarginSpinBox->setToolTip( "<qt>" + tr( "Distance between the right margin guide and the edge of the page. If a double-sided, 3 or 4-fold layout is selected, this margin space can be used to achieve the correct margins for binding.") + "</qt>"); + leftMarginSpinBox->setToolTip( "<qt>" + tr( "Distance between the left margin guide and the edge of the page. If a double-sided layout is selected, this margin space can be used to achieve the correct margins for binding.") + "</qt>"); + rightMarginSpinBox->setToolTip( "<qt>" + tr( "Distance between the right margin guide and the edge of the page. If a double-sided layout is selected, this margin space can be used to achieve the correct margins for binding.") + "</qt>"); marginLinkButton->setToolTip( "<qt>" + tr( "Ensure all margins have the same value" ) + "</qt>"); } - else if (m_flags & BleedWidgetFlags) + else if (m_flags & BleedWidgetFlags) { topMarginSpinBox->setToolTip( "<qt>" + tr( "Distance for bleed from the top of the physical page" ) + "</qt>" ); bottomMarginSpinBox->setToolTip( "<qt>" + tr( "Distance for bleed from the bottom of the physical page" ) + "</qt>" ); @@ -390,10 +390,11 @@ { m_facingPages = facing; m_pageType = pageType; - - leftMarginLabel->setText( m_facingPages ? tr("Inside") : tr("Left")); - rightMarginLabel->setText( m_facingPages ? tr("Outside") : tr("Right")); - + + leftMarginLabel->setText( m_facingPages ? tr("Inside") : tr("Left")); + rightMarginLabel->setText( m_facingPages ? tr("Outside") : tr("Right")); + + iconSetChange(); setPreset(); } |
|
Works :-) |
Date Modified | Username | Field | Change |
---|---|---|---|
2024-10-18 18:29 | jghali | New Issue | |
2024-10-18 18:29 | jghali | Status | new => assigned |
2024-10-18 18:29 | jghali | Assigned To | => nitramr |
2024-10-18 18:29 | jghali | File Added: new_doc_dialog_too_high.png | |
2024-10-19 19:12 | nitramr | Note Added: 0051461 | |
2024-10-19 19:12 | nitramr | File Added: newdocdialog_2024-10-19_01.patch | |
2024-10-24 22:37 | jghali | Status | assigned => resolved |
2024-10-24 22:37 | jghali | Resolution | open => fixed |
2024-10-24 22:37 | jghali | Fixed in Version | => 1.7.0.svn |
2024-10-24 22:37 | jghali | Note Added: 0051485 |