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

#include <kis_dlg_import_image_sequence.h>

+ Inheritance diagram for KisDlgImportImageSequence:

Classes

class  ListItem
 

Public Member Functions

bool autoAddHoldframes ()
 
QStringList files ()
 
int firstFrame ()
 
int isAscending ()
 
 KisDlgImportImageSequence (KisMainWindow *m_mainWindow, KisDocument *m_document)
 
QStringList showOpenFileDialog ()
 
bool startFrom1 ()
 
int step ()
 
- Public Member Functions inherited from KoDialog
QPushButton * button (ButtonCode id) const
 
QIcon buttonIcon (ButtonCode id) const
 
QString buttonText (ButtonCode id) const
 
QString buttonToolTip (ButtonCode id) const
 
QString buttonWhatsThis (ButtonCode id) const
 
ButtonCode defaultButton () const
 
QString helpLinkText () const
 
void incrementInitialSize (const QSize &size)
 
bool isButtonEnabled (ButtonCode id) const
 
 KoDialog (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
 
QWidget * mainWidget ()
 
QSize minimumSizeHint () const override
 
void setButtonFocus (ButtonCode id)
 
void setButtonGuiItem (ButtonCode id, const KGuiItem &item)
 
void setButtonIcon (ButtonCode id, const QIcon &icon)
 
void setButtons (ButtonCodes buttonMask)
 
void setButtonsOrientation (Qt::Orientation orientation)
 
void setButtonText (ButtonCode id, const QString &text)
 
void setButtonToolTip (ButtonCode id, const QString &text)
 
void setButtonWhatsThis (ButtonCode id, const QString &text)
 
void setDefaultButton (ButtonCode id)
 
void setEscapeButton (ButtonCode id)
 
void setInitialSize (const QSize &size)
 
void setMainWidget (QWidget *widget)
 
void showButton (ButtonCode id, bool state)
 
void showButtonSeparator (bool state)
 
QSize sizeHint () const override
 
 ~KoDialog () override
 

Public Attributes

int sortOrder
 

Protected Slots

void slotAddFiles ()
 
void slotOrderOptionsChanged (int)
 
void slotRemoveFiles ()
 
void slotSkipChanged (int)
 
- Protected Slots inherited from KoDialog
virtual void slotButtonClicked (int button)
 

Private Types

enum  OrderingOptions { Ascending = 1 , Descending = 2 , Natural = 4 , Numerical = 8 }
 

Private Member Functions

void sortFileList ()
 

Private Attributes

QCollator m_collator
 
KisDocumentm_document
 
KisMainWindowm_mainWindow
 
Ui_WdgImportImageSequence m_ui
 

Additional Inherited Members

- Public Types inherited from KoDialog
enum  ButtonCode {
  None = 0x00000000 , Help = 0x00000001 , Default = 0x00000002 , Ok = 0x00000004 ,
  Apply = 0x00000008 , Try = 0x00000010 , Cancel = 0x00000020 , Close = 0x00000040 ,
  No = 0x00000080 , Yes = 0x00000100 , Reset = 0x00000200 , Details = 0x00000400 ,
  User1 = 0x00001000 , User2 = 0x00002000 , User3 = 0x00004000 , NoDefault = 0x00008000
}
 
enum  ButtonPopupMode { InstantPopup = 0 , DelayedPopup = 1 }
 
enum  CaptionFlag { NoCaptionFlags = 0 , AppNameCaption = 1 , ModifiedCaption = 2 , HIGCompliantCaption = AppNameCaption }
 
- Public Slots inherited from KoDialog
void delayedDestruct ()
 
void enableButton (ButtonCode id, bool state)
 
void enableButtonApply (bool state)
 
void enableButtonCancel (bool state)
 
void enableButtonOk (bool state)
 
void enableLinkedHelp (bool state)
 
bool isDetailsWidgetVisible () const
 
virtual void setCaption (const QString &caption)
 
virtual void setCaption (const QString &caption, bool modified)
 
void setDetailsWidget (QWidget *detailsWidget)
 
void setDetailsWidgetVisible (bool visible)
 
void setHelp (const QString &anchor, const QString &appname=QString())
 
void setHelpLinkText (const QString &text)
 
virtual void setPlainCaption (const QString &caption)
 
- Signals inherited from KoDialog
void aboutToShowDetails ()
 
void applyClicked ()
 
void buttonClicked (KoDialog::ButtonCode button)
 
void cancelClicked ()
 
void closeClicked ()
 
void defaultClicked ()
 
void finished ()
 
void helpClicked ()
 
void hidden ()
 
void layoutHintChanged ()
 
void noClicked ()
 
void okClicked ()
 
void resetClicked ()
 
void tryClicked ()
 
void user1Clicked ()
 
void user2Clicked ()
 
void user3Clicked ()
 
void yesClicked ()
 
- Static Public Member Functions inherited from KoDialog
static int groupSpacingHint ()
 
static QString makeStandardCaption (const QString &userCaption, QWidget *window=0, CaptionFlags flags=HIGCompliantCaption)
 
static int marginHint ()
 
static void resizeLayout (QLayout *lay, int margin, int spacing)
 
static void resizeLayout (QWidget *widget, int margin, int spacing)
 
static int spacingHint ()
 
- Protected Member Functions inherited from KoDialog
void closeEvent (QCloseEvent *e) override
 
void hideEvent (QHideEvent *) override
 
void keyPressEvent (QKeyEvent *) override
 
void showEvent (QShowEvent *e) override
 

Detailed Description

Definition at line 18 of file kis_dlg_import_image_sequence.h.

Member Enumeration Documentation

◆ OrderingOptions

Constructor & Destructor Documentation

◆ KisDlgImportImageSequence()

KisDlgImportImageSequence::KisDlgImportImageSequence ( KisMainWindow * m_mainWindow,
KisDocument * m_document )

Definition at line 47 of file kis_dlg_import_image_sequence.cpp.

47 :
48 KoDialog(mainWindow),
49 m_mainWindow(mainWindow),
50 m_document(document)
51{
54
55 QWidget * page = new QWidget(this);
56 m_ui.setupUi(page);
57 setMainWidget(page);
58
59 enableButtonOk(false);
60
61 m_ui.cmbOrder->addItem(i18n("Ascending"), Ascending);
62 m_ui.cmbOrder->addItem(i18n("Descending"), Descending);
63 m_ui.cmbOrder->setCurrentIndex(0);
64
65 m_ui.cmbSortMode->addItem(i18n("Alphabetical"), Natural);
66 m_ui.cmbSortMode->addItem(i18n("Numerical"), Numerical);
67 m_ui.cmbSortMode->setCurrentIndex(1);
68
69 m_ui.lstFiles->setSelectionMode(QAbstractItemView::ExtendedSelection);
70
71 connect(m_ui.btnAddImages, &QAbstractButton::clicked, this, &KisDlgImportImageSequence::slotAddFiles);
72 connect(m_ui.btnRemove, &QAbstractButton::clicked, this, &KisDlgImportImageSequence::slotRemoveFiles);
73 connect(m_ui.spinStep, SIGNAL(valueChanged(int)), this, SLOT(slotSkipChanged(int)));
74 connect(m_ui.cmbOrder, SIGNAL(currentIndexChanged(int)), this, SLOT(slotOrderOptionsChanged(int)));
75 connect(m_ui.cmbSortMode, SIGNAL(currentIndexChanged(int)), this, SLOT(slotOrderOptionsChanged(int)));
76#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0)
77 connect(m_ui.autoAddHoldframesBox, &QCheckBox::stateChanged, this, &KisDlgImportImageSequence::autoAddHoldframes);
78#else
79 connect(m_ui.autoAddHoldframesBox, &QCheckBox::checkStateChanged, this, &KisDlgImportImageSequence::autoAddHoldframes);
80#endif
81 // cold initialization of the controls
82 slotSkipChanged(m_ui.spinStep->value());
83 slotOrderOptionsChanged(m_ui.cmbOrder->currentIndex());
84 slotOrderOptionsChanged(m_ui.cmbSortMode->currentIndex());
85 m_ui.beginFromZeroIndexBox->hide();
86}
void enableButtonOk(bool state)
Definition KoDialog.cpp:606
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:345
void setButtons(ButtonCodes buttonMask)
Definition KoDialog.cpp:195
void setDefaultButton(ButtonCode id)
Definition KoDialog.cpp:293
@ Ok
Show Ok button. (this button accept()s the dialog; result set to QDialog::Accepted)
Definition KoDialog.h:127
@ Cancel
Show Cancel-button. (this button reject()s the dialog; result set to QDialog::Rejected)
Definition KoDialog.h:130
KoDialog(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
Definition KoDialog.cpp:176

References Ascending, autoAddHoldframes(), KoDialog::Cancel, Descending, KoDialog::enableButtonOk(), m_ui, Natural, Numerical, KoDialog::Ok, KoDialog::setButtons(), KoDialog::setDefaultButton(), KoDialog::setMainWidget(), slotAddFiles(), slotOrderOptionsChanged(), slotRemoveFiles(), and slotSkipChanged().

Member Function Documentation

◆ autoAddHoldframes()

bool KisDlgImportImageSequence::autoAddHoldframes ( )

Definition at line 109 of file kis_dlg_import_image_sequence.cpp.

109 {
110
111 bool isChecked = m_ui.autoAddHoldframesBox->isChecked();
112 if(isChecked && m_ui.cmbOrder->currentIndex() == 0){
113 m_ui.beginFromZeroIndexBox->show();
114 }
115 else {
116 m_ui.beginFromZeroIndexBox->hide();
117 }
118 return isChecked;
119}

References m_ui.

◆ files()

QStringList KisDlgImportImageSequence::files ( )

Definition at line 88 of file kis_dlg_import_image_sequence.cpp.

89{
90 QStringList list;
91
92 for (int i=0; i < m_ui.lstFiles->count(); i++) {
93 list.append(m_ui.lstFiles->item(i)->text());
94 }
95
96 return list;
97}

References m_ui.

◆ firstFrame()

int KisDlgImportImageSequence::firstFrame ( )

Definition at line 99 of file kis_dlg_import_image_sequence.cpp.

100{
101 return m_ui.spinFirstFrame->value();
102}

References m_ui.

◆ isAscending()

int KisDlgImportImageSequence::isAscending ( )

Definition at line 190 of file kis_dlg_import_image_sequence.cpp.

190 {
191 return this->sortOrder;
192}

References sortOrder.

◆ showOpenFileDialog()

QStringList KisDlgImportImageSequence::showOpenFileDialog ( )

Definition at line 136 of file kis_dlg_import_image_sequence.cpp.

137{
138 KoFileDialog dialog(this, KoFileDialog::ImportFiles, "OpenDocument");
139 dialog.setDefaultDir(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
141 dialog.setCaption(i18n("Import Images"));
142
143 return dialog.filenames();
144}
static QStringList supportedMimeTypes(Direction direction)

References KisImportExportManager::Import, KoFileDialog::ImportFiles, and KisImportExportManager::supportedMimeTypes().

◆ slotAddFiles

void KisDlgImportImageSequence::slotAddFiles ( )
protectedslot

Definition at line 121 of file kis_dlg_import_image_sequence.cpp.

122{
124
125 if (!urls.isEmpty()) {
126 Q_FOREACH(QString url, urls) {
127 new ListItem(url, m_ui.lstFiles, &m_collator);
128 }
129
130 sortFileList();
131 }
132
133 enableButtonOk(m_ui.lstFiles->count() > 0);
134}

References KoDialog::enableButtonOk(), m_collator, m_ui, showOpenFileDialog(), and sortFileList().

◆ slotOrderOptionsChanged

void KisDlgImportImageSequence::slotOrderOptionsChanged ( int )
protectedslot

Definition at line 167 of file kis_dlg_import_image_sequence.cpp.

168{
169
170 if(m_ui.cmbSortMode->currentIndex() == 0){ // we shouldn't add hold frames automatically if they are sorted alphabetically
171 m_ui.autoAddHoldframesBox->setChecked(false);
172 m_ui.autoAddHoldframesBox->setEnabled(false);
173 }
174 else {
175 m_ui.autoAddHoldframesBox->setEnabled(true);
176 }
177
178 if(m_ui.cmbOrder->currentIndex() == 1){
179 m_ui.beginFromZeroIndexBox->setChecked(false); //redundant
180 m_ui.beginFromZeroIndexBox->hide();
181 }
182 this->sortOrder = m_ui.cmbOrder->currentIndex();
183 sortFileList();
184}

References m_ui, sortFileList(), and sortOrder.

◆ slotRemoveFiles

void KisDlgImportImageSequence::slotRemoveFiles ( )
protectedslot

Definition at line 148 of file kis_dlg_import_image_sequence.cpp.

149{
150 QList<QListWidgetItem*> selected = m_ui.lstFiles->selectedItems();
151
152 Q_FOREACH(QListWidgetItem *item, selected) {
153 delete item;
154 }
155
156 enableButtonOk(m_ui.lstFiles->count() > 0);
157}

References KoDialog::enableButtonOk(), and m_ui.

◆ slotSkipChanged

void KisDlgImportImageSequence::slotSkipChanged ( int )
protectedslot

Definition at line 159 of file kis_dlg_import_image_sequence.cpp.

160{
161 int documentFps = m_document->image()->animationInterface()->framerate();
162 float sourceFps = 1.0f * documentFps / m_ui.spinStep->value();
163
164 m_ui.lblFramerate->setText(i18n("Source fps: %1", sourceFps));
165}
KisImageSP image
KisImageAnimationInterface * animationInterface() const

References KisImage::animationInterface(), KisImageAnimationInterface::framerate(), KisDocument::image, m_document, and m_ui.

◆ sortFileList()

void KisDlgImportImageSequence::sortFileList ( )
private

Definition at line 194 of file kis_dlg_import_image_sequence.cpp.

195{
196 int order = m_ui.cmbOrder->currentData().toInt();
197 bool numeric = m_ui.cmbSortMode->currentData().toInt() == Numerical;
198
199 m_collator.setNumericMode(numeric);
200 m_ui.lstFiles->sortItems((order == Ascending) ? Qt::AscendingOrder : Qt::DescendingOrder);
201}

References Ascending, m_collator, m_ui, and Numerical.

◆ startFrom1()

bool KisDlgImportImageSequence::startFrom1 ( )

Definition at line 186 of file kis_dlg_import_image_sequence.cpp.

186 {
187 return m_ui.beginFromZeroIndexBox->isChecked();
188}

References m_ui.

◆ step()

int KisDlgImportImageSequence::step ( )

Definition at line 104 of file kis_dlg_import_image_sequence.cpp.

105{
106 return m_ui.spinStep->value();
107}

References m_ui.

Member Data Documentation

◆ m_collator

QCollator KisDlgImportImageSequence::m_collator
private

Definition at line 57 of file kis_dlg_import_image_sequence.h.

◆ m_document

KisDocument* KisDlgImportImageSequence::m_document
private

Definition at line 47 of file kis_dlg_import_image_sequence.h.

◆ m_mainWindow

KisMainWindow* KisDlgImportImageSequence::m_mainWindow
private

Definition at line 46 of file kis_dlg_import_image_sequence.h.

◆ m_ui

Ui_WdgImportImageSequence KisDlgImportImageSequence::m_ui
private

Definition at line 45 of file kis_dlg_import_image_sequence.h.

◆ sortOrder

int KisDlgImportImageSequence::sortOrder

Definition at line 32 of file kis_dlg_import_image_sequence.h.


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