#ifndef MANAGER_H #define MANAGER_H #include #include #include #include "ProcessingItem.h" class QAction; class QMenu; class SelectionDialog; class ResultDialog; class LanguageHelper; class Manager : public QObject { Q_OBJECT public: explicit Manager (QObject *parent = 0); ~Manager (); signals: void selected (ProcessingItem item); void recognized (ProcessingItem item); void requestTranslate (ProcessingItem item); void closeSelections (); void settingsEdited (); private slots: void capture (); void settings (); void close (); void about (); void showLast (); void copyLastToClipboard (); void applySettings (); void processTrayAction (QSystemTrayIcon::ActivationReason reason); void showResult (ProcessingItem item); void showError (QString text); private: QMenu * trayContextMenu (); void setActionsEnabled (bool isEnabled); private: QSystemTrayIcon *trayIcon_; LanguageHelper *dictionary_; //! Selection dialogs for each screen. Key - screen name. QMap selections_; ResultDialog *resultDialog_; QAction *captureAction_; QAction *repeatAction_; QAction *clipboardAction_; ProcessingItem lastItem_; bool useResultDialog_; //! Used threads. For proper termination. QList threads_; }; #endif // MANAGER_H