/** \file interface.h \brief Define the interface test \author alpha_one_x86 \licence GPL3, see the file COPYING */ #ifndef INTERFACE_H #define INTERFACE_H #include #include #include #include #include #include "../../../interface/PluginInterface_Themes.h" #include "ui_interface.h" #include "Environment.h" #include "TransferModel.h" namespace Ui { class interfaceCopy; } /// \brief Define the interface class Themes : public PluginInterface_Themes { Q_OBJECT private: struct ItemOfCopyListWithMoreInformations { quint64 currentProgression; Ultracopier::ItemOfCopyList generalData; Ultracopier::ActionTypeCopyList actionType; bool custom_with_progression; }; struct currentTransfertItem { quint64 id; bool haveItem; QString from; QString to; QString current_file; int progressBar_file; }; Ui::interfaceCopy *ui; quint64 currentFile; quint64 totalFile; quint64 currentSize; quint64 totalSize; void updateOverallInformation(); void updateCurrentFileInformation(); Ultracopier::EngineActionInProgress action; void closeEvent(QCloseEvent *event); QList currentProgressList; QString speedString; bool storeIsInPause; bool modeIsForced; Ultracopier::CopyType type; Ultracopier::CopyMode mode; void updateModeAndType(); bool haveStarted; QWidget optionEngineWidget; void updateTitle(); QMenu menu; FacilityInterface * facilityEngine; int loop_size,loop_sub_size,indexAction,index; int index_for_loop,sub_loop_size,sub_index_for_loop; currentTransfertItem getCurrentTransfertItem(); QList startId,stopId;///< To show what is started, what is stopped QList InternalRunningOperation;///< to have progression and stat /// \brief the custom transfer model TransferModel transferModel; QColor progressColorWrite; QColor progressColorRead; QColor progressColorRemaining; public: //send information about the copy /// \brief to set the action in progress void actionInProgess(const Ultracopier::EngineActionInProgress &); /// \brief new transfer have started void newTransferStart(const Ultracopier::ItemOfCopyList &item); /** \brief one transfer have been stopped * is stopped, example: because error have occurred, and try later, don't remove the item! */ void newTransferStop(const quint64 &id); /// \brief the new folder is listing void newFolderListing(const QString &path); /** \brief show the detected speed * in byte per seconds */ void detectedSpeed(const quint64 &speed); /** \brief support speed limitation */ void setSupportSpeedLimitation(const bool &supportSpeedLimitationBool); /** \brief show the remaining time * time in seconds */ void remainingTime(const int &remainingSeconds); /// \brief set the current collision action void newCollisionAction(const QString &action); /// \brief set the current error action void newErrorAction(const QString &action); /// \brief set one error is detected void errorDetected(); /// \brief new error void errorToRetry(const QString &source,const QString &destination,const QString &error); //speed limitation /** \brief the max speed used * in byte per seconds, -1 if not able, 0 if disabled */ bool setSpeedLimitation(const qint64 &speedLimitation); Themes(FacilityInterface * facilityEngine); ~Themes(); //get information about the copy /// \brief show the general progression void setGeneralProgression(const quint64 ¤t,const quint64 &total); /// \brief show the file progression void setFileProgression(const QList &progressionList); /// \brief set collision action void setCollisionAction(const QList > &); /// \brief set error action void setErrorAction(const QList > &); /// \brief set the copyType -> file or folder void setCopyType(const Ultracopier::CopyType &); /// \brief set the copyMove -> copy or move, to force in copy or move, else support both void forceCopyMode(const Ultracopier::CopyMode &); /// \brief set if transfer list is exportable/importable void setTransferListOperation(const Ultracopier::TransferListOperation &transferListOperation); /** \brief set if the order is external (like file manager copy) * to notify the interface, which can hide add folder/filer button */ void haveExternalOrder(); /// \brief set if is in pause void isInPause(const bool &); /// \brief get the widget for the copy engine QWidget * getOptionsEngineWidget(); /// \brief to set if the copy engine is found void getOptionsEngineEnabled(const bool &isEnabled); private slots: void on_cancelButton_clicked(); void on_pauseButton_clicked(); void on_skipButton_clicked(); void forcedModeAddFile(); void forcedModeAddFolder(); void forcedModeAddFileToCopy(); void forcedModeAddFolderToCopy(); void forcedModeAddFileToMove(); void forcedModeAddFolderToMove(); signals: #ifdef ULTRACOPIER_PLUGIN_DEBUG /// \brief To debug source void debugInformation(const Ultracopier::DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne); #endif //set the transfer list /*void removeItems(QList ids); void moveItemsOnTop(QList ids); void moveItemsUp(QList ids); void moveItemsDown(QList ids); void moveItemsOnBottom(QList ids); void exportTransferList(); void importTransferList(); //user ask ask to add folder (add it with interface ask source/destination) void userAddFolder(Ultracopier::CopyMode); void userAddFile(Ultracopier::CopyMode); void urlDropped(QList urls); //action on the copy void pause(); void resume(); void skip(quint64 id); void cancel(); //edit the action void sendCollisionAction(QString action); void sendErrorAction(QString action); void newSpeedLimitation(qint64);*/ public slots: //set the translate void newLanguageLoaded(); void getActionOnList(const QList& returnActions); }; #endif // INTERFACE_H