diff options
| author | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
|---|---|---|
| committer | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
| commit | 7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch) | |
| tree | 4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/selfield.cpp | |
| download | scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip | |
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/selfield.cpp')
| -rw-r--r-- | scribus/selfield.cpp | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/scribus/selfield.cpp b/scribus/selfield.cpp new file mode 100644 index 0000000..152068b --- /dev/null +++ b/scribus/selfield.cpp @@ -0,0 +1,169 @@ +/* +For general Scribus (>=1.3.2) copyright and licensing information please refer +to the COPYING file provided with the program. Following this notice may exist +a copyright and/or license notice that predates the release of Scribus 1.3.2 +for which a new license (GPL+exception) is in place. +*/ + +#include "selfield.h" + +#include <QPixmap> +#include <QHBoxLayout> +#include <QVBoxLayout> +#include <QSpacerItem> +#include <QListWidget> +#include <QListWidgetItem> +#include <QPushButton> +#include <QLabel> + +#include "commonstrings.h" +#include "scfonts.h" +#include "util_icon.h" + +SelectFields::SelectFields(QWidget* parent, QString Felder, QString Own, ScribusDoc *Doc, int Art) : QDialog(parent) +{ + setModal(true); + setWindowTitle( tr( "Select Fields" ) ); + setWindowIcon(QIcon(loadIcon ( "AppIcon.png" ))); + FTyp = Art; + SelectFieldsLayout = new QVBoxLayout( this ); + SelectFieldsLayout->setMargin(10); + SelectFieldsLayout->setSpacing(5); + Layout5 = new QHBoxLayout; + Layout5->setMargin(0); + Layout5->setSpacing(5); + Layout1 = new QVBoxLayout; + Layout1->setMargin(0); + Layout1->setSpacing(5); + + Text1 = new QLabel( tr( "Available Fields" ), this ); + Layout1->addWidget( Text1 ); + AvailFields = new QListWidget( this ); + AvailFields->setMinimumSize( QSize( 130, 180 ) ); + for (int se = 0; se < Doc->Items->count(); ++se) + { + PageItem* item = Doc->Items->at(se); + if (Art < 2) + { + if ((item->isAnnotation()) && (item->annotation().Type() > 1)) + AvailFields->addItem(item->itemName()); + } + else + { + if ((item->isAnnotation()) && (item->annotation().Type() == Art) && (item->itemName() != Own)) + AvailFields->addItem(item->itemName()); + } + } + Layout1->addWidget( AvailFields ); + Layout5->addLayout( Layout1 ); + + if (Art > 1) + { + Layout2 = new QVBoxLayout; + Layout2->setMargin(0); + Layout2->setSpacing(5); + QSpacerItem* spacer = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding ); + Layout2->addItem( spacer ); + ToSel = new QPushButton( tr( "&>>" ), this ); + Layout2->addWidget( ToSel ); + FromSel = new QPushButton( tr( "&<<" ), this ); + Layout2->addWidget( FromSel ); + QSpacerItem* spacer_2 = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding ); + Layout2->addItem( spacer_2 ); + Layout5->addLayout( Layout2 ); + Layout3 = new QVBoxLayout; + Layout3->setMargin(0); + Layout3->setSpacing(5); + Text2 = new QLabel( tr( "Selected Fields" ), this ); + Layout3->addWidget( Text2 ); + SelFields = new QListWidget( this ); + SelFields->setMinimumSize( QSize( 130, 180 ) ); + QStringList pfol; + pfol = Felder.split(",", QString::SkipEmptyParts); + if (pfol.count() > 0) + { + for (int cfx = 0; cfx < pfol.count(); ++cfx) + SelFields->addItem(pfol[cfx].simplified()); + } + FromSel->setEnabled(false); + ToSel->setEnabled(false); + Layout3->addWidget( SelFields ); + Layout5->addLayout( Layout3 ); + connect(SelFields, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(SelEField(QListWidgetItem*))); + connect(ToSel, SIGNAL(clicked()), this, SLOT(PutToSel())); + connect(FromSel, SIGNAL(clicked()), this, SLOT(RemoveSel())); + } + SelectFieldsLayout->addLayout( Layout5 ); + S_Fields = ""; + Layout4 = new QHBoxLayout; + Layout4->setMargin(0); + Layout4->setSpacing(5); + QSpacerItem* spacer_3 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout4->addItem( spacer_3 ); + OK = new QPushButton( CommonStrings::tr_OK, this ); + OK->setDefault( true ); + Layout4->addWidget( OK ); + Cancel = new QPushButton( CommonStrings::tr_Cancel, this ); + Layout4->addWidget( Cancel ); + QSpacerItem* spacer_4 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); + Layout4->addItem( spacer_4 ); + SelectFieldsLayout->addLayout( Layout4 ); + connect(OK, SIGNAL(clicked()), this, SLOT(SetRetVal())); + connect(Cancel, SIGNAL(clicked()), this, SLOT(reject())); + connect(AvailFields, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(SelAField(QListWidgetItem*))); +} + +void SelectFields::SetRetVal() +{ + S_Fields = ""; + if (FTyp > 1) + { + if (SelFields->count() > 0) + S_Fields = SelFields->item(0)->text(); + for (int r = 1; r < SelFields->count(); ++r) + S_Fields += ", "+SelFields->item(r)->text(); + } + else + S_Fields = AvailFields->currentItem()->text(); + accept(); +} + +void SelectFields::RemoveSel() +{ + QListWidgetItem *it = SelFields->takeItem(SelFields->currentRow()); + delete it; + SelFields->clearSelection(); + if (SelFields->count() == 0) + FromSel->setEnabled(false); +} + +void SelectFields::PutToSel() +{ + if (SelFields->count() != 0) + { + if (SelFields->findItems(AvailFields->currentItem()->text(), Qt::MatchExactly).count() == 0) + SelFields->addItem(AvailFields->currentItem()->text()); + } + else + SelFields->addItem(AvailFields->currentItem()->text()); +} + +void SelectFields::SelAField(QListWidgetItem *c) +{ + if ((c != NULL) && (FTyp > 1)) + { + FromSel->setEnabled(false); + ToSel->setEnabled(true); + SelFields->clearSelection(); + } +} + +void SelectFields::SelEField(QListWidgetItem *c) +{ + if (c != NULL) + { + FromSel->setEnabled(true); + ToSel->setEnabled(false); + AvailFields->clearSelection(); + } +} |
