File indexing completed on 2024-05-05 17:57:24

0001 /*
0002     SPDX-FileCopyrightText: 2003 Csaba Karai <krusader@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef SPLITTERGUI_H
0009 #define SPLITTERGUI_H
0010 
0011 // QtCore
0012 #include <QUrl>
0013 // QtWidgets
0014 #include <QDialog>
0015 
0016 #include <KIO/Global>
0017 #include <KIOWidgets/KUrlRequester>
0018 
0019 class QComboBox;
0020 class QCheckBox;
0021 class QDoubleSpinBox;
0022 
0023 class SplitterGUI : public QDialog
0024 {
0025     Q_OBJECT
0026 private:
0027     struct PredefinedDevice;
0028 
0029     static const QList<PredefinedDevice> &predefinedDevices();
0030 
0031     KIO::filesize_t userDefinedSize;
0032     int lastSelectedDevice;
0033     KIO::filesize_t division;
0034 
0035     QDoubleSpinBox *spinBox;
0036     QComboBox *deviceCombo;
0037     QComboBox *sizeCombo;
0038     QCheckBox *overwriteCb;
0039     KUrlRequester *urlReq;
0040 
0041 public:
0042     SplitterGUI(QWidget *parent, const QUrl &fileURL, const QUrl &defaultDir);
0043     ~SplitterGUI() override;
0044 
0045     QUrl getDestinationDir()
0046     {
0047         return urlReq->url();
0048     }
0049     KIO::filesize_t getSplitSize();
0050     bool overWriteFiles();
0051 
0052 public slots:
0053     virtual void sizeComboActivated(int item);
0054     virtual void predefinedComboActivated(int item);
0055     virtual void splitPressed();
0056 
0057 protected:
0058     void keyPressEvent(QKeyEvent *e) override;
0059 };
0060 
0061 #endif /* __SPLITTERGUI_H__ */