Преглед на файлове

gridviewer: moved to tools

olinox преди 8 години
родител
ревизия
ce7f8040c8

+ 0 - 9
gridviewer/readme.md

@@ -1,9 +0,0 @@
-### GridViewer
-
-GridViewer is a convenient tool to control the result of pypog tests.
-
-It display a list of coordinates on a simple grid from the cells you selected, or show you the cells corresponding to your list of coordinates.
-
-To run GridViewer:
-
-	python GridViewer.py

+ 1 - 1
gridviewer/GridDialogBox.py → tools/gridviewer/GridDialogBox.py

@@ -5,7 +5,7 @@ Created on 8 mars 2017
 '''
 from PyQt5.Qt import QDialog
 
-from gridviewer.qt_new_grid import Ui_window
+from qt_new_grid import Ui_window
 from pypog.grid_objects import FHexGrid, SquareGrid
 
 class GridDialogBox(QDialog):

+ 35 - 24
gridviewer/GridViewer.py → tools/gridviewer/GridViewer.py

@@ -2,16 +2,13 @@
 
     ** By Cro-Ki l@b, 2017 **
 '''
-import sys
-
 from PyQt5.Qt import Qt
 from PyQt5.QtCore import QPointF
 from PyQt5.QtWidgets import QMainWindow, \
     QApplication, QGraphicsScene, QGraphicsView
-import ipdb  # until I find another way to print traceback with pyqt5
 
-from gridviewer.GridDialogBox import GridDialogBox
-from gridviewer.ListViewDialog import ListViewDialog
+from GridDialogBox import GridDialogBox
+from ListViewDialog import ListViewDialog
 from pypog.grid_objects import SquareGrid
 
 
@@ -34,24 +31,29 @@ class GridViewer(QMainWindow):
         self.ui = Ui_window()
         self.ui.setupUi(self)
 
-        self._scene = QGraphicsScene()
-        self.ui.view.setScene(self._scene)
-        self.ui.view.scale(0.5, 0.5)
-        self.ui.view.centerOn(QPointF(0, 0))
-        self.ui.view.setDragMode(QGraphicsView.NoDrag)
+        self._init_scene()
 
         self.ui.btn_new_grid.clicked.connect(self.new_grid_dialog)
-
-        self.ui.btn_run.clicked.connect(self.run_f)
-
         self.ui.btn_list_view.clicked.connect(self.list_view_dialog)
-
         self.ui.btn_zoom_plus.clicked.connect(self.zoom_plus)
         self.ui.btn_zoom_minus.clicked.connect(self.zoom_minus)
         self.ui.chk_displayCoords.toggled.connect(self.update_cell_labels)
 
         self.make_grid(SquareGrid(30, 30))
 
+    def _init_scene(self):
+        self._scene = QGraphicsScene()
+        self._scene.setItemIndexMethod(QGraphicsScene.BspTreeIndex)
+
+        self.ui.view.setScene(self._scene)
+        self.ui.view.scale(0.5, 0.5)
+        self.ui.view.centerOn(QPointF(0, 0))
+
+        self.ui.view.setViewportUpdateMode(QGraphicsView.BoundingRectViewportUpdate)
+
+        self.ui.view.setDragMode(QGraphicsView.NoDrag)
+        self.ui.view.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
+
     def make_grid(self, grid):
         QApplication.setOverrideCursor(Qt.WaitCursor)
         self.grid = grid
@@ -110,13 +112,22 @@ class GridViewer(QMainWindow):
         new_lst = ListViewDialog(self.selection).exec_()
         self.update_selected_cells(new_lst)
 
-    def run_f(self):
-        pass
-
-if __name__ == "__main__":
-
-    app = QApplication(sys.argv)
-    gv = GridViewer()
-    gv.show()
-    r = app.exec_()
-    exit(r)
+    def wheelEvent(self, event):
+        if event.angleDelta().y() > 0:
+#             self.zoom_plus()
+            event.accept()
+        elif event.angleDelta().y() < 0:
+#             self.zoom_minus()
+            event.accept()
+        else:
+            event.ignore()
+
+    def keyPressEvent(self, event):
+        if event.key() == Qt.Key_Left:
+            pass
+        elif event.key() == Qt.Key_Right:
+            pass
+        elif event.key() == Qt.Key_Down:
+            pass
+        elif event.key() == Qt.Key_Up:
+            pass

+ 0 - 0
gridviewer/GridViewerCell.py → tools/gridviewer/GridViewerCell.py


+ 1 - 1
gridviewer/ListViewDialog.py → tools/gridviewer/ListViewDialog.py

@@ -5,7 +5,7 @@ Created on 8 mars 2017
 '''
 from PyQt5.Qt import QDialog
 
-from gridviewer.qt_listview import Ui_window
+from qt_listview import Ui_window
 from pypog.geometry_objects import BaseGeometry
 
 class ListViewDialog(QDialog):

+ 0 - 0
gridviewer/__init__.py → tools/gridviewer/__init__.py


+ 18 - 0
tools/gridviewer/main.py

@@ -0,0 +1,18 @@
+'''
+Created on 13 mars 2017
+
+@author: olinox
+'''
+import sys
+
+from PyQt5.Qt import QApplication
+
+from GridViewer import GridViewer
+import ipdb
+
+if __name__ == '__main__':
+    app = QApplication(sys.argv)
+    gv = GridViewer()
+    gv.show()
+    r = app.exec_()
+    sys.exit(r)

+ 0 - 0
gridviewer/qt_listview.py → tools/gridviewer/qt_listview.py


+ 0 - 0
gridviewer/qt_listview.ui → tools/gridviewer/qt_listview.ui


+ 0 - 0
gridviewer/qt_new_grid.py → tools/gridviewer/qt_new_grid.py


+ 0 - 0
gridviewer/qt_new_grid.ui → tools/gridviewer/qt_new_grid.ui


+ 7 - 1
gridviewer/qt_viewer.py → tools/gridviewer/qt_viewer.py

@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-# Form implementation generated from reading ui file 'qt_viewer2.ui'
+# Form implementation generated from reading ui file 'qt_viewer.ui'
 #
 # Created by: PyQt5 UI code generator 5.7.1
 #
@@ -75,6 +75,12 @@ class Ui_window(object):
         self.horizontalLayout_2.addWidget(self.btn_list_view)
         self.verticalLayout.addWidget(self.frame_tools)
         self.view = QtWidgets.QGraphicsView(self.centralwidget)
+        font = QtGui.QFont()
+        font.setStyleStrategy(QtGui.QFont.PreferAntialias)
+        self.view.setFont(font)
+        self.view.setTransformationAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
+        self.view.setResizeAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
+        self.view.setViewportUpdateMode(QtWidgets.QGraphicsView.BoundingRectViewportUpdate)
         self.view.setObjectName("view")
         self.verticalLayout.addWidget(self.view)
         self.horizontalLayout_4 = QtWidgets.QHBoxLayout()

+ 22 - 1
gridviewer/qt_viewer.ui → tools/gridviewer/qt_viewer.ui

@@ -203,7 +203,28 @@
        </widget>
       </item>
       <item>
-       <widget class="QGraphicsView" name="view"/>
+       <widget class="QGraphicsView" name="view">
+        <property name="font">
+         <font>
+          <stylestrategy>PreferAntialias</stylestrategy>
+         </font>
+        </property>
+        <property name="verticalScrollBarPolicy">
+         <enum>Qt::ScrollBarAsNeeded</enum>
+        </property>
+        <property name="horizontalScrollBarPolicy">
+         <enum>Qt::ScrollBarAsNeeded</enum>
+        </property>
+        <property name="transformationAnchor">
+         <enum>QGraphicsView::AnchorUnderMouse</enum>
+        </property>
+        <property name="resizeAnchor">
+         <enum>QGraphicsView::AnchorUnderMouse</enum>
+        </property>
+        <property name="viewportUpdateMode">
+         <enum>QGraphicsView::BoundingRectViewportUpdate</enum>
+        </property>
+       </widget>
       </item>
       <item>
        <layout class="QHBoxLayout" name="horizontalLayout_4">

+ 3 - 0
tools/gridviewer/readme.md

@@ -0,0 +1,3 @@
+### GridViewer
+
+GridViewer is a controling tool for pypog Grid's geometry functions.

+ 18 - 0
tools/gridviewer/tests.yml

@@ -0,0 +1,18 @@
+imports:
+  geometry: pypog.geometry
+  
+jobs:
+  geometry.fhex2_line:
+    infos: {'cell_shape': 61}
+    args:
+    - [0, 0, 1, 1]
+    - [0, 0, 10, 10]
+    - [0, 0, 100, 100]
+    validator:
+  geometry.squ2_line:
+    infos: {'cell_shape': 4}
+    args:
+    - [0, 0, 1, 1]
+    - [0, 0, 10, 10]
+    - [0, 0, 100, 100]
+    validator: