1 /* 2 For general Scribus (>=1.3.2) copyright and licensing information please refer 3 to the COPYING file provided with the program. Following this notice may exist 4 a copyright and/or license notice that predates the release of Scribus 1.3.2 5 for which a new license (GPL+exception) is in place. 6 */ 7 8 #include <QListWidget> 9 #include <QStringList> 10 11 #include "iconmanager.h" 12 #include "pagesize.h" 13 #include "prefsmanager.h" 14 #include "prefsstructs.h" 15 #include "scribusdoc.h" 16 #include "ui/prefs_pagesizes.h" 17 18 Prefs_PageSizes(QWidget * parent,ScribusDoc * doc)19Prefs_PageSizes::Prefs_PageSizes(QWidget* parent, ScribusDoc* doc) 20 : Prefs_Pane(parent) 21 { 22 setupUi(this); 23 languageChange(); 24 25 m_caption = tr("Page Sizes"); 26 m_icon = "16/page-simple.png"; 27 28 toActiveButton->setIcon(IconManager::instance().loadIcon("22/go-next.png")); 29 fromActiveButton->setIcon(IconManager::instance().loadIcon("22/go-previous.png")); 30 connect(toActiveButton, SIGNAL(clicked()), this, SLOT(moveToActive())); 31 connect(fromActiveButton, SIGNAL(clicked()), this, SLOT(moveFromActive())); 32 } 33 34 Prefs_PageSizes::~Prefs_PageSizes() = default; 35 languageChange()36void Prefs_PageSizes::languageChange() 37 { 38 } 39 restoreDefaults(struct ApplicationPrefs * prefsData)40void Prefs_PageSizes::restoreDefaults(struct ApplicationPrefs *prefsData) 41 { 42 PageSize ps(prefsData->docSetupPrefs.pageSize); 43 QStringList sizeList(ps.sizeList()); 44 QStringList activeSizeList(ps.activeSizeList()); 45 activeSizesListWidget->clear(); 46 availableSizesListWidget->clear(); 47 48 for (int i = 0; i < activeSizeList.count(); ++i) 49 { 50 QListWidgetItem* lwi=new QListWidgetItem(); 51 PageSize ps2(activeSizeList.at(i)); 52 lwi->setText(ps2.nameTR()); 53 lwi->setToolTip(QString("%1 x %2 %3").arg(ps2.originalWidth()).arg(ps2.originalHeight()).arg(ps2.originalUnit())); 54 activeSizesListWidget->addItem(lwi); 55 } 56 57 for (int i = 0; i < sizeList.count(); ++i) 58 { 59 if (!activeSizeList.contains(sizeList.at(i))) 60 { 61 QListWidgetItem* lwi=new QListWidgetItem(); 62 PageSize ps2(sizeList.at(i)); 63 lwi->setText(ps2.nameTR()); 64 lwi->setToolTip(QString("%1 x %2 %3").arg(ps2.originalWidth()).arg(ps2.originalHeight()).arg(ps2.originalUnit())); 65 availableSizesListWidget->addItem(lwi); 66 } 67 } 68 } 69 saveGuiToPrefs(struct ApplicationPrefs * prefsData) const70void Prefs_PageSizes::saveGuiToPrefs(struct ApplicationPrefs *prefsData) const 71 { 72 QStringList newActivePageSizes; 73 for (int i = 0; i < activeSizesListWidget->count(); ++i) 74 newActivePageSizes << activeSizesListWidget->item(i)->text(); 75 PageSize ps(prefsData->docSetupPrefs.pageSize); 76 prefsData->activePageSizes=ps.untransPageSizeList(newActivePageSizes); 77 } 78 moveToActive()79void Prefs_PageSizes::moveToActive() 80 { 81 QList<QListWidgetItem *> si(availableSizesListWidget->selectedItems()); 82 for (int i = 0; i < si.count(); ++i) 83 { 84 QListWidgetItem *it=availableSizesListWidget->takeItem(availableSizesListWidget->row(si.at(i))); 85 activeSizesListWidget->addItem(it); 86 } 87 } 88 moveFromActive()89void Prefs_PageSizes::moveFromActive() 90 { 91 QList<QListWidgetItem *> si(activeSizesListWidget->selectedItems()); 92 for (int i = 0; i < si.count(); ++i) 93 { 94 if (activeSizesListWidget->count()>1) 95 { 96 QListWidgetItem *it=activeSizesListWidget->takeItem(activeSizesListWidget->row(si.at(i))); 97 availableSizesListWidget->addItem(it); 98 } 99 } 100 } 101 102