/* * This file Copyright (C) 2009-2014 Mnemosyne LLC * * It may be used under the GNU Public License v2 or v3 licenses, * or any future license endorsed by Mnemosyne LLC. * * $Id$ */ #ifndef MAKE_DIALOG_H #define MAKE_DIALOG_H #include #include class QAbstractButton; class QPlainTextEdit; class QLineEdit; class QCheckBox; class QLabel; class QPushButton; class QRadioButton; class Session; class QProgressBar; class QDialogButtonBox; extern "C" { struct tr_metainfo_builder; } class MakeDialog: public QDialog { Q_OBJECT private slots: void onSourceChanged (); void onButtonBoxClicked (QAbstractButton*); void onNewButtonBoxClicked (QAbstractButton*); void onNewDialogDestroyed (QObject*); void onProgress (); void onFolderClicked (); void onFolderSelected (const QString&); void onFolderSelected (const QStringList&); void onFileClicked (); void onFileSelected (const QString&); void onFileSelected (const QStringList&); void onDestinationClicked (); void onDestinationSelected (const QString&); void onDestinationSelected (const QStringList&); private: void makeTorrent (); QString getSource () const; void enableBuddyWhenChecked (QCheckBox *, QWidget *); void enableBuddyWhenChecked (QRadioButton *, QWidget *); private: Session& mySession; QString myDestination; QString myTarget; QString myFile; QString myFolder; QTimer myTimer; QRadioButton * myFolderRadio; QRadioButton * myFileRadio; QPushButton * myDestinationButton; QPushButton * myFileButton; QPushButton * myFolderButton; QPlainTextEdit * myTrackerEdit; QCheckBox * myCommentCheck; QLineEdit * myCommentEdit; QCheckBox * myPrivateCheck; QLabel * mySourceLabel; QDialogButtonBox * myButtonBox; QProgressBar * myNewProgress; QLabel * myNewLabel; QDialogButtonBox * myNewButtonBox; QDialog * myNewDialog; struct tr_metainfo_builder * myBuilder; protected: virtual void dragEnterEvent (QDragEnterEvent *); virtual void dropEvent (QDropEvent *); public: MakeDialog (Session&, QWidget * parent = 0); ~MakeDialog (); }; #endif