Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDlgListPicker Class Reference

#include <KisDlgListPicker.h>

+ Inheritance diagram for KisDlgListPicker:

Classes

struct  Private
 

Public Slots

QList< QVariant > getChosenData ()
 

Public Member Functions

 KisDlgListPicker (QString windowTitle, QString availableString, QString currentString, QList< QString > available, QList< QVariant > availableData, QList< QString > chosen, QList< QVariant > currentData, QWidget *parent=0)
 
 ~KisDlgListPicker () override
 

Private Slots

void slotMoveDown ()
 
void slotMoveLeft ()
 
void slotMoveRight ()
 
void slotMoveUp ()
 

Private Attributes

const QScopedPointer< Privatem_d
 
Ui::KisDlgListPicker * ui
 

Detailed Description

Definition at line 20 of file KisDlgListPicker.h.

Constructor & Destructor Documentation

◆ KisDlgListPicker()

KisDlgListPicker::KisDlgListPicker ( QString windowTitle,
QString availableString,
QString currentString,
QList< QString > available,
QList< QVariant > availableData,
QList< QString > chosen,
QList< QVariant > currentData,
QWidget * parent = 0 )
explicit

Definition at line 20 of file KisDlgListPicker.cpp.

23 :
24 QDialog(parent),
25 ui(new Ui::KisDlgListPicker),
26 m_d(new Private)
27{
28 ui->setupUi(this);
29
30 this->setWindowTitle(windowTitle);
31 ui->label->setText(availableString);
32 ui->label_2->setText(currentString);
33
34 KGuiItem::assign(ui->btnBox->button(QDialogButtonBox::Ok), KStandardGuiItem::ok());
35 KGuiItem::assign(ui->btnBox->button(QDialogButtonBox::Cancel), KStandardGuiItem::cancel());
36
37 int i = 0;
38 Q_FOREACH(QString name, available) {
39 QListWidgetItem *item = new QListWidgetItem(name);
40 item->setData(Qt::UserRole, availableData[i]);
41 ui->lstAvailable->addItem(item);
42 i++;
43 }
44 i = 0;
45 Q_FOREACH(QString name, chosen) {
46 QListWidgetItem *item = new QListWidgetItem(name);
47 item->setData(Qt::UserRole, chosenData[i]);
48 ui->lstCurrent->addItem(item);
49 i++;
50 }
51
52 ui->lstAvailable->sortItems(); // sort alphabetically by name
53
54 connect(ui->btnAdd, SIGNAL(clicked()), SLOT(slotMoveRight()));
55 connect(ui->btnRemove, SIGNAL(clicked()), SLOT(slotMoveLeft()));
56
57 connect(ui->btnDown, SIGNAL(clicked()), SLOT(slotMoveDown()));
58 connect(ui->btnUp, SIGNAL(clicked()), SLOT(slotMoveUp()));
59}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
const QScopedPointer< Private > m_d
Ui::KisDlgListPicker * ui

References connect(), slotMoveDown(), slotMoveLeft(), slotMoveRight(), slotMoveUp(), and ui.

◆ ~KisDlgListPicker()

KisDlgListPicker::~KisDlgListPicker ( )
override

Definition at line 61 of file KisDlgListPicker.cpp.

62{
63 delete ui;
64}

References ui.

Member Function Documentation

◆ getChosenData

QList< QVariant > KisDlgListPicker::getChosenData ( )
slot

Definition at line 66 of file KisDlgListPicker.cpp.

67{
68 QList<QVariant> chosenData;
69 for (int i = 0; i < ui->lstCurrent->count(); i++) {
70 chosenData.append(ui->lstCurrent->item(i)->data(Qt::UserRole));
71 }
72 return chosenData;
73}

References ui.

◆ slotMoveDown

void KisDlgListPicker::slotMoveDown ( )
privateslot

Definition at line 117 of file KisDlgListPicker.cpp.

118{
119 QListWidgetItem *item = ui->lstCurrent->currentItem();
120 if (!item) return;
121
122 int position = ui->lstCurrent->row(item);
123
124 if (position >= ui->lstCurrent->count() - 1) return;
125
126 ui->lstCurrent->takeItem(ui->lstCurrent->row(item));
127 ui->lstCurrent->insertItem(position + 1, item);
128 ui->lstCurrent->setCurrentItem(item);
129}

References ui.

◆ slotMoveLeft

void KisDlgListPicker::slotMoveLeft ( )
privateslot

Definition at line 89 of file KisDlgListPicker.cpp.

90{
91 QListWidgetItem *item = ui->lstCurrent->currentItem();
92 if (!item) return;
93
94 const int prevPosition = ui->lstCurrent->row(item) - 1;
95 const int newPosition = ui->lstAvailable->currentRow() + 1;
96
97 ui->lstCurrent->takeItem(ui->lstCurrent->row(item));
98 ui->lstCurrent->setCurrentRow(qMax(0, prevPosition));
99 ui->lstAvailable->insertItem(newPosition, item);
100 ui->lstAvailable->setCurrentItem(item);
101}

References ui.

◆ slotMoveRight

void KisDlgListPicker::slotMoveRight ( )
privateslot

Definition at line 75 of file KisDlgListPicker.cpp.

76{
77 QListWidgetItem *item = ui->lstAvailable->currentItem();
78 if (!item) return;
79
80 const int prevPosition = ui->lstAvailable->row(item) - 1;
81 const int newPosition = ui->lstCurrent->currentRow() + 1;
82
83 ui->lstAvailable->takeItem(ui->lstAvailable->row(item));
84 ui->lstAvailable->setCurrentRow(qMax(0, prevPosition));
85 ui->lstCurrent->insertItem(newPosition, item);
86 ui->lstCurrent->setCurrentItem(item);
87}

References ui.

◆ slotMoveUp

void KisDlgListPicker::slotMoveUp ( )
privateslot

Definition at line 103 of file KisDlgListPicker.cpp.

104{
105 QListWidgetItem *item = ui->lstCurrent->currentItem();
106 if (!item) return;
107
108 int position = ui->lstCurrent->row(item);
109
110 if (position <= 0) return;
111
112 ui->lstCurrent->takeItem(ui->lstCurrent->row(item));
113 ui->lstCurrent->insertItem(position - 1, item);
114 ui->lstCurrent->setCurrentItem(item);
115}

References ui.

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisDlgListPicker::m_d
private

Definition at line 45 of file KisDlgListPicker.h.

◆ ui

Ui::KisDlgListPicker* KisDlgListPicker::ui
private

Definition at line 41 of file KisDlgListPicker.h.


The documentation for this class was generated from the following files: