2 Commits 10b1c15a2d ... 79653c6eb8

Author SHA1 Message Date
  Medoo 79653c6eb8 Версия 1.211 3 years ago
  Medoo 8aa3293656 Добавлен обработчик функции TAB_FOCUS, для случая когда id стоит после имени функции 3 years ago
4 changed files with 85 additions and 54 deletions
  1. 9 8
      UiHelper.h
  2. 38 9
      mainwindow.cpp
  3. 2 1
      mainwindow.h
  4. 36 36
      mainwindow.ui

+ 9 - 8
UiHelper.h

@@ -33,18 +33,19 @@ void MainWindow::getNewConnections()
     }
 }
 
-bool MainWindow::eventFilter(QObject *, QEvent *event)
-{
-    if (event->type() == QEvent::HoverMove && !ControlKeyPressed)
-    {
+bool MainWindow::eventFilter(QObject *o, QEvent *event)
+{    
+    if (event->type() == QEvent::HoverMove && !ControlKeyPressed){
         if(tabs.count() == 0) return QObject::event(event);
         QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
         QWebEngineView *view = getTabById();
-        if(mouseEvent->x() >= view->pos().x() && mouseEvent->y() >= view->pos().y() && mouseEvent->y() <= ui->progressBar->pos().y())        {
-            qreal rx = view->page()->scrollPosition().rx();
-            qreal ry = view->page()->scrollPosition().ry();
+        if(mouseEvent->pos().y() >= ui->url_line->height() && mouseEvent->y() <= view->height()){
+            QPointF s = view->page()->scrollPosition();
+
+            QPointF p = mouseEvent->localPos();
 
-            QString pos = QString::number(mouseEvent->x() - view->pos().x() + rx) + " : " + QString::number(mouseEvent->y() - view->pos().y() + ry);
+//            QString pos = QString::number(mouseEvent->x() - view->pos().x() + rx) + " : " + QString::number(mouseEvent->y() - view->pos().y() );
+            QString pos = QString::number(p.x() + s.x()) + " : " + QString::number(p.y() + s.y() - ui->url_line->height());
             ui->cursorPosition->setText(pos);
         }
     }

+ 38 - 9
mainwindow.cpp

@@ -171,12 +171,12 @@ void MainWindow::readSocket()
             data_to_server = QByteArray::number(tab->id);
 
         else if(isMatchString(posterCommand, {"GETTABCOUNT"}))//Получить число вкладок
-            data_to_server = QByteArray::number(tabs.count());       
+            data_to_server = QByteArray::number(tabs.count());
 
         else if(isMatchString(posterCommand, {"JSERROR"}))//Получить ошибки в JS
             data_to_server = tab->JS_Errors().toLocal8Bit();
 
-        else if(isMatchString(posterCommand, {"CLEARJSERRORS"}))//Очистить список ошибок JS
+        else if(isMatchString(posterCommand, {"CLEARJSERRORS", "JSCLEARERRORS"}))//Очистить список ошибок JS
             tab->clearJS_errors();
 
         else if(isMatchString(posterCommand, {"ADDTAB"}))//Открыть новую вкладку
@@ -224,6 +224,9 @@ void MainWindow::readSocket()
         else if(isMatchString(posterCommand, {"ISTABNAMEEXISTS"}))//Проверить открыта ли вкладка с указанным именем
             data_to_server = QByteArray::number(isTabNameExist(TaskList.at(1)));
 
+        else if(isMatchString(posterCommand, {"TABFOCUS"}))//переключиться на вкладку
+            data_to_server = QByteArray::number(tabFocus(tab->id));
+
         else if(isMatchString(posterCommand, {"EVALJS"}))//выполнить JavaScript на странице
             data_to_server = tab->runJavaScript(TaskList.at(1));
 
@@ -455,39 +458,65 @@ void MainWindow::scrollToClickPoint(QPoint *point)
 }
 
 bool MainWindow::performeMouseEmulation(Tab *tab, QString *posterCommand, 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(isMatchString(*posterCommand, {"LBUTTONCLICK", "LBC"})){//клик левой кнопкой мыши
         //        scrollToClickPoint(point);
         QMouseEvent event(QEvent::MouseButtonPress, *point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
-        QCoreApplication::sendEvent(tab->children().at(2), &event);
+        QCoreApplication::sendEvent(eventsReciverWidget, &event);
 
         QMouseEvent event1(QEvent::MouseButtonRelease, *point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
-        QCoreApplication::sendEvent(tab->children().at(2), &event1);
+        QCoreApplication::sendEvent(eventsReciverWidget, &event1);
     }
     else if(isMatchString(*posterCommand, {"RBUTTONCLICK", "RBC"})){//клик правой кнопкой мыши
         scrollToClickPoint(point);
         QMouseEvent event(QEvent::MouseButtonPress, *point, Qt::RightButton, Qt::RightButton, Qt::NoModifier);
-        QCoreApplication::sendEvent(tab->children().at(2), &event);
+        QCoreApplication::sendEvent(eventsReciverWidget, &event);
 
         QMouseEvent event1(QEvent::MouseButtonRelease, *point, Qt::RightButton, Qt::RightButton, Qt::NoModifier);
-        QCoreApplication::sendEvent(tab->children().at(2), &event1);
+        QCoreApplication::sendEvent(eventsReciverWidget, &event1);
     }
     else if(isMatchString(*posterCommand, {"LBUTTONPRESS", "LBP"})){//нажали левой кнопкой мыши
         scrollToClickPoint(point);
         QMouseEvent event(QEvent::MouseButtonPress, *point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
 
-        QCoreApplication::sendEvent(tab->children().at(2), &event);
+        QCoreApplication::sendEvent(eventsReciverWidget, &event);
     }
     else if(isMatchString(*posterCommand, {"LBUTTONRELEASE", "LBR"})){//отпускаем левую кнопку мыши
         scrollToClickPoint(point);
         QMouseEvent event(QEvent::MouseButtonRelease, *point, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
-        QCoreApplication::sendEvent(tab->children().at(2), &event);
+        QCoreApplication::sendEvent(eventsReciverWidget, &event);
     }
     else if(isMatchString(*posterCommand, {"MOUSEMOVE"})){//эмуляция движения мышу в заданную точку
         //        scrollToClickPoint(point);
         QMouseEvent event(QEvent::MouseMove, *point, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
-        QCoreApplication::sendEvent(tab->children().at(2), &event);
+        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);
+//}

+ 2 - 1
mainwindow.h

@@ -47,7 +47,7 @@ private:
     QLocalServer server;
     QVector<QLocalSocket*> connection_list;
 
-    QString version = "v 1.21";
+    QString version = "v 1.211";
 
     QPoint getPoint(QString *str);
 
@@ -83,6 +83,7 @@ private slots:
     void on_btn_removeCookie_clicked();
     void on_tabWidget_tabCloseRequested(int index);
 
+//    void on_pushButton_3_clicked();
 };
 
 #endif // MAINWINDOW_H

+ 36 - 36
mainwindow.ui

@@ -32,32 +32,6 @@
       </property>
      </widget>
     </item>
-    <item row="2" column="1">
-     <widget class="QProgressBar" name="progressBar">
-      <property name="value">
-       <number>0</number>
-      </property>
-     </widget>
-    </item>
-    <item row="1" column="0" colspan="5">
-     <widget class="QTabWidget" name="tabWidget">
-      <property name="currentIndex">
-       <number>-1</number>
-      </property>
-      <property name="elideMode">
-       <enum>Qt::ElideNone</enum>
-      </property>
-      <property name="tabsClosable">
-       <bool>true</bool>
-      </property>
-      <property name="movable">
-       <bool>true</bool>
-      </property>
-      <property name="tabBarAutoHide">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
     <item row="0" column="4">
      <widget class="QPushButton" name="pushButton_2">
       <property name="text">
@@ -65,13 +39,6 @@
       </property>
      </widget>
     </item>
-    <item row="2" column="2">
-     <widget class="QPushButton" name="btn_removeCookie">
-      <property name="text">
-       <string>Удалить куки</string>
-      </property>
-     </widget>
-    </item>
     <item row="2" column="4">
      <widget class="QPushButton" name="pushButton">
       <property name="text">
@@ -79,10 +46,10 @@
       </property>
      </widget>
     </item>
-    <item row="2" column="3">
-     <widget class="QPushButton" name="btn_saveCookie">
+    <item row="2" column="2">
+     <widget class="QPushButton" name="btn_removeCookie">
       <property name="text">
-       <string>Сохранить куки</string>
+       <string>Удалить куки</string>
       </property>
      </widget>
     </item>
@@ -108,6 +75,39 @@
       </property>
      </widget>
     </item>
+    <item row="2" column="3">
+     <widget class="QPushButton" name="btn_saveCookie">
+      <property name="text">
+       <string>Сохранить куки</string>
+      </property>
+     </widget>
+    </item>
+    <item row="1" column="0" colspan="5">
+     <widget class="QTabWidget" name="tabWidget">
+      <property name="currentIndex">
+       <number>-1</number>
+      </property>
+      <property name="elideMode">
+       <enum>Qt::ElideNone</enum>
+      </property>
+      <property name="tabsClosable">
+       <bool>true</bool>
+      </property>
+      <property name="movable">
+       <bool>true</bool>
+      </property>
+      <property name="tabBarAutoHide">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+    <item row="2" column="1">
+     <widget class="QProgressBar" name="progressBar">
+      <property name="value">
+       <number>0</number>
+      </property>
+     </widget>
+    </item>
    </layout>
   </widget>
  </widget>