/* * This file Copyright (C) 2009-2015 Mnemosyne LLC * * It may be used under the GNU GPL versions 2 or 3 * or any future license endorsed by Mnemosyne LLC. * * $Id$ */ #ifndef QTR_OPTIONS_DIALOG_H #define QTR_OPTIONS_DIALOG_H #include #include #include #include #include #include #include #include #include #include "AddData.h" // AddData #include "Torrent.h" // FileList #include "ui_OptionsDialog.h" class Prefs; class Session; extern "C" { struct tr_variant; } class OptionsDialog: public QDialog { Q_OBJECT public: OptionsDialog (Session& session, const Prefs& prefs, const AddData& addme, QWidget * parent = 0); ~OptionsDialog (); private: void reload (); void clearInfo (); void clearVerify (); private slots: void onAccepted (); void onPriorityChanged (const QSet& fileIndices, int); void onWantedChanged (const QSet& fileIndices, bool); void onVerify (); void onTimeout (); void onSourceChanged (); void onDestinationChanged (); private: Session& mySession; AddData myAdd; QDir myLocalDestination; bool myHaveInfo; tr_info myInfo; Ui::OptionsDialog ui; QPushButton * myVerifyButton; QVector myPriorities; QVector myWanted; FileList myFiles; private: QTimer myVerifyTimer; char myVerifyBuf[2048 * 4]; QFile myVerifyFile; uint64_t myVerifyFilePos; int myVerifyFileIndex; uint32_t myVerifyPieceIndex; uint32_t myVerifyPiecePos; QVector myVerifyFlags; QCryptographicHash myVerifyHash; typedef QMap mybins_t; mybins_t myVerifyBins; QTimer myEditTimer; }; #endif // QTR_OPTIONS_DIALOG_H