123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596 |
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include "UiHelper.h"
- MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){
- ui->setupUi(this);
- setWindowTitle("OpenMBFR " + version);
- createTab();
- installEventFilter(this);
- if(!cacheDir .exists()) cacheDir.mkdir(cacheDir .path());
- if(!cookieDir.exists()) cookieDir.mkdir(cookieDir.path());
- QStringList cmdline_args = QCoreApplication::arguments();
- if(cmdline_args.length() > 1) StartServer(cmdline_args[1]);
- connect(ui->tabWidget, &QTabWidget::currentChanged, this, &MainWindow::tabChanged);
- }
- MainWindow::~MainWindow()
- {//диструктор
- delete ui;
- }
- void MainWindow::readSocket()
- {//чтение команд от miniPoster
- QLocalSocket * socket = (QLocalSocket*)sender();
- if(tabs.count() == 0)
- { error(NO_TABS, socket); return; }
- QByteArray data_to_server = "1";
- QStringList TaskList = ((QString)socket->readAll()).split("||");
- TaskList.removeAll("");//Удаляем пустые строки после функции split
- int tabId = -1;
- Commands command = undefined;
- if(TaskList.length() >= 1){
- if(TaskList.length() >= 2){//tabId||command
- bool findDigits = false;
- for(int i = 0; i < TaskList.at(0).length(); i++){
- if(!TaskList.at(i)[0].isDigit()){
- if(findDigits){//1gfg5||command
- error(BAD_ID, socket); return;
- }
- break;//command||param
- }
- else findDigits = true;
- }
- if(findDigits){
- //Исключаем номер вкладки из списка, чтобы не переписывать половину кода
- tabId = TaskList.takeAt(0).toInt();
- }
- }
- command = getCommand(&TaskList.at(0).toUpper().remove('_'));
- }
- else { error(NO_COMMAND, socket); return; }
- Tab *tab = getTabById(tabId);
- if(tab == nullptr)//такой вкладки не существует
- { error(TAB_NOT_EXISTS, socket); return; }
- if(command == undefined){ error(BAD_COMMAND_NAME, socket); return; }
- if(command == IS_LOAD)//проверка загрузки страницы
- { data_to_server = tab->isLoaded ? "YES" : "NO"; }
- else if(TaskList.length() == 1)//Функции без параметров
- {
- if(command == GET_URL)//получить текущий url
- data_to_server = tab->url().url().toLocal8Bit();
- else if(command == GET_HTML)//получить HTML страницу
- tab->get_html(data_to_server);
- else if(command == CLOSE_WINDOW){//закрыть браузер
- SendToServer(socket, &data_to_server);
- QApplication::quit();
- }
- else if(command == WINDOW_MINIMAZE)//свернуть браузер
- save_position_and_pseudo_minimaze();
- else if(command == WINDOW_RESTORE)//обычное состояние браузера
- restore_position_and_show_normal();
- else if(command == WINDOW_MAXIMIZE){//развернуть браузер на весь экран
- normal_pos = pos();
- showMaximized();
- }
- else if(command == RECAPTCHA_RESPONSE){//получить ключ reCAPCHA(2|3), HCAP
- if(!tab->getCaptchaResponse(data_to_server))
- { error(BAD_CAPTCHA_TYPE, socket); return; }
- }
- else if(command == DEL_TOR)//убрать подключение через TOR
- QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy);
- else if(command == PROXY_ON)//включить прокси
- data_to_server = QString::number(Proxy::on_off(PROXYSTATE::ON)).toLocal8Bit();
- else if(command == PROXY_OFF)//отключить прокси
- data_to_server = QString::number(Proxy::on_off(PROXYSTATE::OFF)).toLocal8Bit();
- else if(command == IS_JS)//проверить включен ли JavaScript в браузере
- data_to_server = QString::number(tab->settings()->testAttribute(QWebEngineSettings::JavascriptEnabled)).toLocal8Bit();
- else if(command == ENABLE_JS)//включить JavaScript на вкадке
- tab->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true);
- else if(command == DISABLE_JS)//выключить JavaScript на вкладке
- tab->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, false);
- else if(command == ENABLE_ACCELERATION)//включить 2d ускорение
- tab->settings()->setAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled, true);
- else if(command == DISABLE_ACCELERATION)//выключить 2d ускорение
- tab->settings()->setAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled, false);
- else if(command == GET_COOKIES)//Получить куки из браузера
- tab->get_cookies(data_to_server);
- else if(command == DELETE_ALL_COOKIES)//Удалить все куки
- tab->deleteCookies();
- else if(command == FORWARD)//Загрузить следующую страницу
- tab->forward();
- else if(command == BACK)//Загрузить предыдущую страницу
- tab->back();
- else if(command == RELOAD)//Перезагрузить страницу
- tab->reload();
- else if(command == GET_IDS){//Получить список id всех вкладок
- data_to_server = "";
- for(auto &tab : tabs){
- data_to_server += QByteArray::number(tab->id) + "|";
- }
- if(data_to_server.length() > 0) data_to_server = data_to_server.remove(data_to_server.length() - 1, 1);
- }
- else if(command == GET_POSITION)//получить положение окна
- data_to_server = (QString::number(this->pos().x()) + ":" + QString::number(this->pos().y())).toLocal8Bit();
- else if(command == GET_WINDOW_SIZE)//получить размеры окна
- data_to_server = (QString::number(this->size().width()) + ":" + QString::number(this->size().height())).toLocal8Bit();
- else if(command == SCROLL_Y_POSITION)//Получить текущее значение полосы прокрутки по вертикали
- data_to_server = tab->scroll_y_position();
- else if(command == SCROLL_Y_MAX)//Получить максимальное значение полосы прокрутки по вертикали
- data_to_server = tab->scroll_y_max();
- else if(command == SCROLL_X_POSITION)//Получить текущее значение полосы прокрутки по горизонтали3
- data_to_server = tab->scroll_x_position();
- else if(command == SCROLL_X_MAX)//Получить максимальное значение полосы прокрутки по горизонтали
- data_to_server = tab->scroll_x_max();
- else if(command == GET_USERAGENT)//Получить значение UserAgent
- data_to_server = tab->page()->profile()->httpUserAgent().toLocal8Bit();
- else if(command == GET_TAB_ID)//Получить id текущей вкладки
- data_to_server = QByteArray::number(tab->id);
- else if(command == GET_TAB_COUNT)//Получить число вкладок
- data_to_server = QByteArray::number(tabs.count());
- else if(command == JS_ERROR)//Получить ошибки в JS
- data_to_server = tab->JS_Errors().toLocal8Bit();
- else if(command == CLEAR_JS_ERRORS)//Очистить список ошибок JS
- tab->clearJS_errors();
- else if(command == ADD_TAB)//Открыть новую вкладку
- data_to_server = QByteArray::number(createTab());
- else if(command == ADD_TAB_FOCUS){//Открыть новую вкладку и сделать её активной
- int id = createTab();
- data_to_server = QByteArray::number(id);
- tabFocus(id);
- }
- else if(command == CLOSE_TAB)//Закрыть вкладку
- data_to_server = QByteArray::number(deleteTab(tab));
- else if(command == TAB_FOCUS)//переключиться на вкладку
- data_to_server = QByteArray::number(tabFocus(tabId));
- else if(command == HIDE_BAR){//Скрыть нижнюю панель
- ui->progressBar->hide();
- ui->pushButton->hide();
- ui->btn_saveCookie->hide();
- ui->btn_removeCookie->hide();
- }
- else if(command == SHOW_BAR){//Показать нижнюю панель
- ui->progressBar->show();
- ui->pushButton->show();
- ui->btn_saveCookie->show();
- ui->btn_removeCookie->show();
- }
- else if(command == IS_BAR){//Проверить видна ли нижняя панель
- data_to_server = QByteArray::number(ui->progressBar->isHidden());
- }
- else { error(BAD_COMMAND_NAME, socket); return; }
- }
- else if(TaskList.length() == 2){//Дальше идут функции с параметрами
- if(command == OPEN_URL){//обычная загрузка сайта
- if(ui->tabWidget->currentWidget() == tab)
- ui->url_line->setText(TaskList.at(1));
- tab->load(QUrl(TaskList.at(1)));
- }
- else if(command == ADD_TAB)//Открыть новую вкладку с заданным именем
- data_to_server = QByteArray::number(createTab(TaskList.at(1)));
- else if(command == ADD_TAB_FOCUS){//Открыть новую вкладку с заданным именем и сделать её активной
- int id = createTab(TaskList.at(1));
- data_to_server = QByteArray::number(id);
- tabFocus(id);
- }
- else if(command == CLOSE_TAB){//Закрыть вкладку по id
- tab = getTabById(TaskList.at(1).toInt());
- data_to_server = QByteArray::number(deleteTab(tab));
- }
- else if(command == CLOSE_TAB_BY_NAME){//Закрыть вкладку по её имени
- for(int i = 0; i < ui->tabWidget->count(); ++i){
- if(TaskList.at(1) == ui->tabWidget->tabText(i))
- tab = static_cast<Tab*>(ui->tabWidget->widget(i));
- }
- data_to_server = QByteArray::number(deleteTab(tab));
- }
- else if(command == IS_TAB_EXISTS)//Проверить открыта ли вкладка с указанным id
- data_to_server = QByteArray::number(isTabExist(TaskList.at(1).toInt()));
- else if(command == IS_TAB_NAME_EXISTS)//Проверить открыта ли вкладка с указанным именем
- data_to_server = QByteArray::number(isTabNameExist(TaskList.at(1)));
- else if(command == TAB_FOCUS)//переключиться на вкладку с указанным id
- data_to_server = QByteArray::number(tabFocus(tab->id));
- else if(command == TAB_FOCUS_BY_NAME){//Переключиться на вкладку с указанным именем
- data_to_server = "0";
- for(int i = 0; i < ui->tabWidget->count(); ++i){
- if(TaskList.at(1) == ui->tabWidget->tabText(i)){
- ui->tabWidget->setCurrentIndex(i);
- data_to_server = "1";
- break;
- }
- }
- }
- else if(command == EVAL_JS)//выполнить JavaScript на странице
- data_to_server = tab->runJavaScript(TaskList.at(1));
- else if(command == SET_PROXY){//установить подключение через прокси
- if(!Proxy::set(&TaskList))
- { error(BAD_PROXY_TYPE_OR_PARAMS, socket); return; }
- }
- else if(command == SET_USERAGENT)//установить UserAgent
- tab->page()->profile()->setHttpUserAgent(TaskList[1]);
- else if(command == SET_ACCEPT_HEADER)//Установить заголовок Accept
- tab->page()->profile()->setHttpAcceptLanguage(TaskList.at(1));
- else if(command == JS_ERROR_LOGGING)//Включить/выключить запись ошибок в JS
- tab->set_JS_capture(TaskList.at(1) == "1");
- else if(command == JS_LOG_LEVEL)//Установить уровень логирования
- tab->set_JS_capture_level(TaskList.at(1).toInt());
- else if(command == JS_ON_ERROR_ALERT)//Отображать ошибку в JS в отдельном окне
- tab->set_JS_on_error_alert(TaskList.at(1) == "1");
- else if(command == SET_WINDOW_SIZE){//установить собственные размеры окна
- QList<QString> list = TaskList[1].split(":");
- if(list.size() == 2)
- {
- int currentWidth = this->size().width();
- int currentHeight = this->size().height();
- int newWidth = list[0].toInt();
- int newHeight = list[1].toInt();
- if(newWidth < 0){
- if(currentWidth - newWidth < 0)
- newWidth = 120;
- else newWidth = currentWidth - newWidth;
- }
- if(newHeight < 0){
- if(currentHeight - newHeight < 0)
- newHeight = 200;
- else newHeight = currentHeight - newHeight;
- }
- resize(newWidth, newHeight);
- }
- else { error(BAD_COMMAND_PARAM_LIST, socket); return; }
- }
- else if(command == SET_POSITION){//установить положение окна
- QList<QString> list = TaskList[1].split(":");
- if(list.size() == 2) {
- int currentX = this->pos().x();
- int currentY = this->pos().y();
- int newX = list[0].toInt();
- int newY = list[1].toInt();
- if(newX < 0){
- if(currentX - newX < 0)//Вышли за границы экрана
- newX = 0;
- else newX = currentX - newX;//Двигаем окно левее
- }
- if(newY < 0){
- if(currentY - newY < 0)//Вышли за границы экрана
- newY = 0;
- else newY = currentY - newY;//Двигаем окно вверх
- }
- move(newX, newY);
- }
- else { error(BAD_COMMAND_PARAM_LIST, socket); return; }
- }
- else if(command == SET_HTML)//установить HTML страницу
- tab->setHtml(TaskList.at(1));
- else if(command == TOR)//установить подключение через TOR
- QNetworkProxy::setApplicationProxy(QNetworkProxy(QNetworkProxy::Socks5Proxy, "127.0.0.1", TaskList[1].toUInt()));
- else if(command == ELEMENT_CLICK_BY_ID)//Нажать на элемент страницы с указанным id
- tab->element_click_by_id(TaskList.at(1));
- else if(command == ELEMENT_CLICK_BY_CLASS)//Нажать на элемент страницы с указанным классом
- tab->element_clock_by_class(TaskList.at(1));
- else if(command == SET_CACHE_DIR)//Изменить директорию для кэша
- setCachePath(tab, TaskList.at(1));
- else if(command == SET_COOKIE_DIR)//Изменить директорию для куков
- setCookiePath(tab, TaskList.at(1));
- else if(command == SET_OWN_CACHE_DIR)//Изменить директорию для кэша вне папки miniPoster
- tab->page()->profile()->setCachePath(TaskList.at(1));
- else if(command == SET_OWN_COOKIE_DIR)//Изменить директорию для куков вне папки miniPoster
- tab->page()->profile()->setPersistentStoragePath(TaskList.at(1));
- else if(command == SET_COOKIES)//Установить куки полученные из файла
- data_to_server = QByteArray::number(tab->set_cookies(TaskList));
- else if(command == SET_COOKIES_FROM_STRING)//Установить куки полученные из строки
- data_to_server = QByteArray::number(tab->set_cookies(TaskList, true));
- else if(command == SAVE_COOKIES)//получить куки из браузера и сохранить по стандартному пути
- tab->saveCookies("", TaskList.at(1), false, true);
- else if(command == SAVE_COOKIES_TO_PATH)//получить куки из браузера и сохранить в определенный файл
- tab->saveCookies("", TaskList.at(1), false, false);
- else if(command == GET_COOKIE_VALUE_BY_NAME)//Получить значение куки по имени
- tab->get_cookie_value_by_name(data_to_server, TaskList);
- else if(command == GET_COOKIE_BY_DOMAIN)//Получить куки для домена
- tab->get_cookie_by_domain(data_to_server, TaskList);
- else if(command == IMAGES)//Включение/Выключение автозагрузки изображений
- tab->settings()->setAttribute(QWebEngineSettings::AutoLoadImages, TaskList[1] != "0");
- else if(command == SET_WINDOW_TITLE)//Изменить заголовок окна
- setWindowTitle(TaskList.at(1));
- else if(command == SCROLL_Y)//Прокрутить страницу по вертикали на заданное расстояние
- data_to_server = tab->scroll_y(TaskList.at(1));
- else if(command == SCROLL_TO_Y)//Прокрутить страницу по вертикали до определенной высоты
- data_to_server = tab->scroll_to_y(TaskList.at(1));
- else if(command == SCROLL_X)//Прокрутить страницу по горизонтали на заданное расстояние
- data_to_server = tab->scroll_x(TaskList.at(1));
- else if(command == SCROLL_TO_X)//Прокрутить страницу по горизонтали до определенной длины
- data_to_server = tab->scroll_to_x(TaskList.at(1));
- else if(command == SET_URL){//Установить адрес сайта без перезагрузки страницы
- ui->url_line->setText(TaskList.at(1));
- }
- else {
- QPoint point = getPoint(&TaskList[1]);
- if(!performeMouseEmulation(tab, command, &point))
- { error(BAD_MOUSE_EMULATION, socket); return; }
- }
- }
- else if(TaskList.length() == 3){
- if(command == V2 || command == OPEN_URL){//загрузить страничку для решения reCAPTCHA2
- tab->load_v2reCAPTHCA(&TaskList[1], &TaskList[2]);
- if(ui->tabWidget->currentWidget() == tab){// показать ссылку откуда загружаем капчу и siteKey
- ui->url_line->setText(TaskList.at(1) + TaskList.at(2));
- }
- }
- else if(command == V3){//загрузить страничку для решения reCAPTCHA3, с action "homepage"
- tab->load_v3reCAPTHCA(TaskList);
- if(ui->tabWidget->currentWidget() == tab){// показать ссылку откуда загружаем капчу и siteKey
- ui->url_line->setText(TaskList.at(1) + TaskList.at(2));
- }
- }
- else if(command == HCAP){//загрузить страничку для решения hCaptcha
- tab->load_hcaptcha(TaskList);
- if(ui->tabWidget->currentWidget() == tab){// показать ссылку откуда загружаем капчу и siteKey
- ui->url_line->setText(TaskList.at(1) + TaskList.at(2));
- }
- }
- else if(command == SET_HTML)//установить HTML страницу
- tab->setHtml(TaskList.at(1), QUrl(TaskList.at(2)));
- else if(command == SAVE_COOKIES)//получить куки из браузера и сохранить по стандартному пути
- tab->saveCookies(TaskList.at(1), TaskList.at(2), false, true);
- else if(command == SAVE_COOKIES_TO_PATH)//получить куки из браузера и сохранить в определенный файл
- tab->saveCookies(TaskList.at(1), TaskList.at(2), false, false);
- else if(command == GET_DOMAIN_COOKIE_VALUE_BY_NAME)//Получить значение куки по имени на указанном домене
- tab->get_domain_cookie_value_by_name(data_to_server, TaskList);
- else if(command == ELEMENT_SET_VALUE_BY_ID)//Установить значение value у элемента страницы с указанным id
- tab->element_set_value_by_id(TaskList.at(1), TaskList.at(2));
- else if(command == ELEMENT_SET_VALUE_BY_CLASS)//Установить значение value у элемента страницы с указанным классом
- tab->element_set_value_by_class(TaskList.at(1), TaskList.at(2));
- else if(command == ELEMENT_SET_INNER_HTML_BY_ID)//Установить значение innerHTML у элемента страницы с указанным id
- tab->element_set_inner_html_by_id(TaskList.at(1), TaskList.at(2));
- else if(command == ELEMENT_SET_INNER_HTML_BY_CLASS)//Установить значение innerHTML у элемента страницы с указанным классом
- tab->element_set_inner_html_by_class(TaskList.at(1), TaskList.at(2));
- else if(command == MOUSE_EMULATION){//эмуляция мыши
- Commands secondCommand = getCommand(&(TaskList.at(1).toUpper().replace('_', "")));
- QPoint point = getPoint(&TaskList[2]);
- if(!performeMouseEmulation(tab, secondCommand, &point))
- { error(BAD_MOUSE_EMULATION, socket); return; }
- }
- else { error(BAD_COMMAND_NAME, socket); return; }
- }
- else if(TaskList.length() == 4){
- if(command == SAVE_COOKIES)//получить куки из браузера и сохранить по стандартному пути
- tab->saveCookies(TaskList[1], TaskList[2], TaskList[3] == "1", true);
- else if(command == SAVE_COOKIES_TO_PATH)//получить куки из браузера и сохранить в определенный файл
- tab->saveCookies(TaskList[1], TaskList[2], TaskList[3] == "1", false);
- else if(command == V3 || command == OPEN_URL){//загрузить страничку для решения reCAPTCHA3, с произвольным action
- tab->load_v3reCAPTHCA(TaskList);
- if(ui->tabWidget->currentWidget() == tab){// показать ссылку откуда загружаем капчу и siteKey
- ui->url_line->setText(TaskList.at(1) + TaskList.at(2));
- }
- }
- else if(command == SCREEN_SHOT)//сделать скриншот области
- tab->screen_shot(data_to_server, TaskList);
- else if(command == PIXEL_EXISTS)//проверить существует ли пиксель в заданной области
- tab->pixel_exists(data_to_server, TaskList);
- /*
- else if(command == CONTAINS_IMAGE){//проверить существует ли пиксель в заданной области
- QList<QString> listData = TaskList[1].split(":");
- listData.append(TaskList[2].split(":"));
- if(listData.size() < 4) return;
- tab->settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true);
- tab->page()->settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true);
- tab->profile()->settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true);
- int x = listData[0].toInt(), y = listData[1].toInt();
- QImage img = tab->grab(QRect(QPoint(x,y), QSize(listData[2].toInt() - x, listData[3].toInt() - y))).toImage();
- QImage image;
- int bestPercent = 0;
- int currentPercent = 0;
- for(int y = 0; y < img.height(); ++y)
- for(int x = 0; x < img.width(); ++x)
- if(img.pixel(x, y) == pixel.rgb())
- { }
- }*/
- else { error(BAD_COMMAND_NAME, socket); return; }
- }
- else { error(TOO_MUCH_PARAMS, socket); return; }
- /*else if(command == CAPMONSTER)//
- QList<QString> list = TaskList[1].split(":");
- if(list.size() == 2){
- QString cap_monster_key = list[0];
- QString cap_monster_ip = list[1];
- QNetworkAccessManager nam;
- QString data_sitekey = "123";
- QString page_url = ui->url_line->text();
- QNetworkRequest request(QUrl("http://" + cap_monster_ip + "/in.php"));
- QByteArray data;
- data += "/key=" + cap_monster_key + "&method=userrecaptcha&googlekey=" + data_sitekey + "&pageurl=" + page_url;
- nam.post(request, data);
- }
- }*/
- SendToServer(socket, &data_to_server);
- }
- QPoint MainWindow::getPoint(QString *str){
- QList<QString> xyList = str->split(":");
- if(xyList.size() < 2) return QPoint(0, 0);
- return QPoint(xyList[0].toInt(), xyList[1].toInt());
- }
- void MainWindow::scrollToClickPoint(QPoint *point)
- {
- //x
- //if(point)
- }
- bool MainWindow::performeMouseEmulation(Tab *tab, Commands command, QPoint *point){
- QWidget *eventsReciverWidget = nullptr;
- for(auto *o : tab->children()){
- QWidget *wgt = qobject_cast<QWidget*>(o);
- if (wgt) {
- eventsReciverWidget = wgt;
- break;
- }
- }
- if(!eventsReciverWidget) return false;
- if(command == L_BUTTON_CLICK){//клик левой кнопкой мыши
- // scrollToClickPoint(point);
- QMouseEvent event(QEvent::MouseButtonPress, *point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
- QCoreApplication::sendEvent(eventsReciverWidget, &event);
- QMouseEvent event1(QEvent::MouseButtonRelease, *point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
- QCoreApplication::sendEvent(eventsReciverWidget, &event1);
- }
- else if(command == R_BUTTON_CLICK){//клик правой кнопкой мыши
- scrollToClickPoint(point);
- QMouseEvent event(QEvent::MouseButtonPress, *point, Qt::RightButton, Qt::RightButton, Qt::NoModifier);
- QCoreApplication::sendEvent(eventsReciverWidget, &event);
- QMouseEvent event1(QEvent::MouseButtonRelease, *point, Qt::RightButton, Qt::RightButton, Qt::NoModifier);
- QCoreApplication::sendEvent(eventsReciverWidget, &event1);
- }
- else if(command == L_BUTTON_PRESS){//нажали левой кнопкой мыши
- scrollToClickPoint(point);
- QMouseEvent event(QEvent::MouseButtonPress, *point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
- QCoreApplication::sendEvent(eventsReciverWidget, &event);
- }
- else if(command == L_BUTTON_RELEASE){//отпускаем левую кнопку мыши
- scrollToClickPoint(point);
- QMouseEvent event(QEvent::MouseButtonRelease, *point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
- QCoreApplication::sendEvent(eventsReciverWidget, &event);
- }
- else if(command == MOUSE_MOVE){//эмуляция движения мышу в заданную точку
- // scrollToClickPoint(point);
- QMouseEvent event(QEvent::MouseMove, *point, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
- QCoreApplication::sendEvent(eventsReciverWidget, &event);
- }
- else return false;
- return true;
- }
- //int indext = 0;
- //void MainWindow::on_pushButton_3_clicked()
- //{
- //// tabFocus(indext++);
- // return;
- //// Tab *tab = getTabById();
- //// QMouseEvent event(QEvent::MouseButtonPress, point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
- //// QCoreApplication::sendEvent(tab->page(), &event);
- //// QMouseEvent event1(QEvent::MouseButtonRelease, point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
- //// QCoreApplication::sendEvent(tab->page(), &event1);
- //}
|