File indexing completed on 2024-05-05 04:51:44
0001 /* 0002 SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef _K3B_DATA_URL_ADDING_DIALOG_H_ 0007 #define _K3B_DATA_URL_ADDING_DIALOG_H_ 0008 0009 #include <QUrl> 0010 #include <QDir> 0011 #include <QHash> 0012 #include <QList> 0013 #include <QPair> 0014 #include <QStringList> 0015 #include <QDialog> 0016 #include <QLabel> 0017 0018 #include <KIO/Global> 0019 0020 class QProgressBar; 0021 class QLabel; 0022 0023 namespace K3b { 0024 0025 class DataItem; 0026 class DirItem; 0027 class EncodingConverter; 0028 class DirSizeJob; 0029 class DataDoc; 0030 0031 class DataUrlAddingDialog : public QDialog 0032 { 0033 Q_OBJECT 0034 0035 public: 0036 ~DataUrlAddingDialog() override; 0037 0038 /** 0039 * shows DataUrlAddingDialog in non-blocking fashion 0040 * (doesn't wait till dialog is closed) 0041 */ 0042 static void addUrls( const QList<QUrl>& urls, DirItem* dir, 0043 QWidget* parent = 0 ); 0044 0045 static void moveItems( const QList<DataItem*>& items, DirItem* dir, 0046 QWidget* parent = 0 ); 0047 0048 static void copyItems( const QList<DataItem*>& items, DirItem* dir, 0049 QWidget* parent = 0 ); 0050 0051 private Q_SLOTS: 0052 void slotStartAddUrls(); 0053 void slotStartCopyMoveItems(); 0054 void slotAddUrls(); 0055 void slotCopyMoveItems(); 0056 void reject() override; 0057 void slotDirSizeDone( bool ); 0058 void updateProgress(); 0059 0060 private: 0061 DataUrlAddingDialog( const QList<QUrl>& urls, DirItem* dir, QWidget* parent = 0 ); 0062 DataUrlAddingDialog( const QList<DataItem*>& items, DirItem* dir, bool copy, QWidget* parent = 0 ); 0063 DataUrlAddingDialog( DirItem* dir, QWidget* parent ); 0064 bool getNewName( const QString& oldName, DirItem* dir, QString& newName ); 0065 bool addHiddenFiles(); 0066 bool addSystemFiles(); 0067 QString resultMessage() const; 0068 0069 QProgressBar* m_progressWidget; 0070 QLabel* m_infoLabel; 0071 QLabel* m_counterLabel; 0072 EncodingConverter* m_encodingConverter; 0073 0074 QList<QUrl> m_urls; 0075 QList< QPair<QUrl, DirItem*> > m_urlQueue; 0076 QList< QPair<DataItem*, DirItem*> > m_items; 0077 QList<QUrl> m_dirSizeQueue; 0078 QHash< DirItem*, QList<DataItem*> > m_newItems; 0079 0080 DataDoc* m_doc; 0081 bool m_bExistingItemsReplaceAll; 0082 bool m_bExistingItemsIgnoreAll; 0083 bool m_bFolderLinksFollowAll; 0084 bool m_bFolderLinksAddAll; 0085 int m_iAddHiddenFiles; 0086 int m_iAddSystemFiles; 0087 0088 QStringList m_unreadableFiles; 0089 QStringList m_notFoundFiles; 0090 QStringList m_nonLocalFiles; 0091 QStringList m_tooBigFiles; 0092 QStringList m_mkisofsLimitationRenamedFiles; 0093 QStringList m_invalidFilenameEncodingFiles; 0094 0095 bool m_bCanceled; 0096 bool m_copyItems; 0097 0098 KIO::filesize_t m_totalFiles; 0099 KIO::filesize_t m_filesHandled; 0100 DirSizeJob* m_dirSizeJob; 0101 0102 unsigned int m_lastProgress; 0103 }; 0104 } 0105 0106 #endif