mainwindow.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include "DataHelper.h"
  5. #include "QMutex"
  6. #include <QLocalServer>
  7. #include <QLocalSocket>
  8. namespace Ui {
  9. class MainWindow;
  10. }
  11. class MainWindow : public QMainWindow
  12. {
  13. Q_OBJECT
  14. public:
  15. explicit MainWindow(QWidget *parent = 0);
  16. ~MainWindow();
  17. int createTab(QString name = "");
  18. protected:
  19. virtual void keyPressEvent(QKeyEvent *event);
  20. virtual void keyReleaseEvent(QKeyEvent *event);
  21. private:
  22. Ui::MainWindow *ui;
  23. QMutex mutex;
  24. QVector<Tab*> tabs;
  25. Tab* getTabById (int tabId = -1);
  26. Tab* getTabByWidget(QWidget *w);
  27. int tabFocus (int tabId);
  28. bool deleteTab (Tab* tab);
  29. bool isTabExist (int tabId);
  30. bool isTabNameExist(QString tabName);
  31. void StartServer(const QString&);
  32. void getNewConnections();
  33. QLocalServer server;
  34. QVector<QLocalSocket*> connection_list;
  35. QString version = "v 1.35";
  36. QPoint getPoint(QString *str);
  37. enum Commands : uint{
  38. undefined,
  39. IS_LOAD,
  40. GET_URL,
  41. OPEN_URL,
  42. SET_URL,
  43. TAB_FOCUS_BY_NAME,
  44. EVAL_JS,
  45. SET_PROXY,
  46. SET_USERAGENT,
  47. JS_ERROR_LOGGING,
  48. JS_LOG_LEVEL,
  49. JS_ON_ERROR_ALERT,
  50. GET_HTML,
  51. SET_HTML,
  52. V2,
  53. V3,
  54. HCAP,
  55. RECAPTCHA_RESPONSE,
  56. FORWARD,
  57. BACK,
  58. RELOAD,
  59. GET_IDS,
  60. GET_USERAGENT,
  61. GET_TAB_ID,
  62. GET_TAB_COUNT,
  63. CLOSE_WINDOW,
  64. WINDOW_MINIMAZE,
  65. WINDOW_RESTORE,
  66. ELEMENT_SET_VALUE_BY_ID,
  67. ELEMENT_SET_VALUE_BY_CLASS,
  68. ELEMENT_SET_INNER_HTML_BY_ID,
  69. ELEMENT_SET_INNER_HTML_BY_CLASS,
  70. ELEMENT_CLICK_BY_ID,
  71. ELEMENT_CLICK_BY_CLASS,
  72. DEL_TOR,
  73. PROXY_ON,
  74. PROXY_OFF,
  75. GET_COOKIES,
  76. DELETE_ALL_COOKIES,
  77. JS_ERROR,
  78. CLEAR_JS_ERRORS,
  79. ADD_TAB,
  80. ADD_TAB_FOCUS,
  81. CLOSE_TAB,
  82. TAB_FOCUS,
  83. CLOSE_TAB_BY_NAME,
  84. IS_TAB_EXISTS,
  85. IS_TAB_NAME_EXISTS,
  86. SET_WINDOW_SIZE,
  87. SET_POSITION,
  88. TOR,
  89. SET_ACCEPT_HEADER,
  90. SET_CACHE_DIR,
  91. SET_COOKIE_DIR,
  92. SET_OWN_CACHE_DIR,
  93. SET_OWN_COOKIE_DIR,
  94. SET_COOKIES,
  95. SET_COOKIES_FROM_STRING,
  96. SAVE_COOKIES,
  97. SAVE_COOKIES_TO_PATH,
  98. GET_COOKIE_VALUE_BY_NAME,
  99. GET_COOKIE_BY_DOMAIN,
  100. GET_DOMAIN_COOKIE_VALUE_BY_NAME,
  101. MOUSE_EMULATION,
  102. SCREEN_SHOT,
  103. PIXEL_EXISTS,
  104. // CONTAINS_IMAGE,
  105. // CAPMONSTER,
  106. L_BUTTON_CLICK,
  107. R_BUTTON_CLICK,
  108. L_BUTTON_PRESS,
  109. L_BUTTON_RELEASE,
  110. MOUSE_MOVE,
  111. SET_WINDOW_TITLE,
  112. SCROLL_Y,
  113. SCROLL_TO_Y,
  114. SCROLL_X,
  115. SCROLL_TO_X,
  116. SCROLL_Y_POSITION,
  117. SCROLL_Y_MAX,
  118. SCROLL_X_POSITION,
  119. SCROLL_X_MAX,
  120. GET_POSITION,
  121. GET_WINDOW_SIZE,
  122. IMAGES,
  123. IS_JS,
  124. ENABLE_JS,
  125. DISABLE_JS,
  126. WINDOW_MAXIMIZE,
  127. ENABLE_ACCELERATION,
  128. DISABLE_ACCELERATION,
  129. HIDE_BAR,
  130. SHOW_BAR,
  131. IS_BAR,
  132. };
  133. enum Errors : uint{
  134. NO_TABS,
  135. BAD_ID,
  136. NO_COMMAND,
  137. TAB_NOT_EXISTS,
  138. BAD_CAPTCHA_TYPE,
  139. BAD_COMMAND_NAME,
  140. BAD_PROXY_TYPE_OR_PARAMS,
  141. BAD_COMMAND_PARAM_LIST,
  142. BAD_COMMAND_NAME_OR_PARAMS,
  143. BAD_MOUSE_EMULATION,
  144. TOO_MUCH_PARAMS
  145. };
  146. const QByteArray NO_TABS_err = "No_Tabs_In_Browser";
  147. const QByteArray BAD_ID_err = "Bad_Tab_Id";
  148. const QByteArray NO_COMMAND_err = "Command_Name_Required";
  149. const QByteArray TAB_NOT_EXISTS_err = "Tab_Not_Exists";
  150. const QByteArray BAD_CAPTCHA_TYPE_err = "Bad_Captcha_Type";
  151. const QByteArray BAD_COMMAND_NAME_err = "Command_Executor_Not_Found";
  152. const QByteArray BAD_PROXY_TYPE_OR_PARAMS_err = "Bad_Proxy_Type_Or_Params";
  153. const QByteArray BAD_COMMAND_PARAM_LIST_err = "Bad_Params_Count_For_Command";
  154. const QByteArray BAD_COMMAND_NAME_OR_PARAMS_err = "Bad_Command_Name_Or_Params";
  155. const QByteArray BAD_MOUSE_EMULATION_err = "Mouse_Emulation_Failed";
  156. const QByteArray TOO_MUCH_PARAMS_err = "Too_Much_Params_For_Command";
  157. const QByteArray UNDEFINED_ERROR = "Undefined_Error";
  158. int mouseClick_X;
  159. int mouseClick_Y;
  160. bool ControlKeyPressed = false;
  161. void save_position_and_pseudo_minimaze();
  162. void restore_position_and_show_normal();
  163. QPoint normal_pos;
  164. bool isMinimized = false;
  165. static void setCachePath(Tab *tab, QString path);
  166. static void setCookiePath(Tab *tab, QString path);
  167. void scrollToClickPoint(QPoint *point);
  168. bool performeMouseEmulation(Tab *tab, Commands command, QPoint *point);
  169. bool isMatchString(QString &string, QStringList strings);
  170. void SendToServer(QLocalSocket *socket, const QByteArray *str);
  171. void error(Errors err, QLocalSocket *socket);
  172. const QByteArray * getError(Errors err);
  173. Commands getCommand(QString *posterCommand);
  174. private slots:
  175. void readSocket();
  176. void disconnectSocket();
  177. void tabChanged(int index);
  178. bool eventFilter(QObject *obj, QEvent *event);
  179. void mouseMoveEvent (QMouseEvent* event);
  180. void mousePressEvent(QMouseEvent* event);
  181. void on_pushButton_clicked();
  182. void on_pushButton_2_clicked();
  183. void on_url_line_returnPressed();
  184. void on_btn_saveCookie_clicked();
  185. void on_btn_removeCookie_clicked();
  186. void on_tabWidget_tabCloseRequested(int index);
  187. };
  188. #endif // MAINWINDOW_H