diff --git a/.travis.yml b/.travis.yml index fef4b439773e4c9543c9c1e171e13d8b80fbb58a..e1a91105cc8bb8740f04a884e29cf4f9d247afed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,4 +40,4 @@ deploy: skip_cleanup: true on: tags: true - condition: ${TRAVIS_OS_NAME} = osx + condition: ${TRAVIS_OS_NAME} = linux diff --git a/src/sakia/gui/informations_tab.py b/src/sakia/gui/informations_tab.py index 2989c172202c78b174d3ed0896eaa25b3e3d6de8..15ebe78341ae2dbd728cf6127fc153352c57595d 100644 --- a/src/sakia/gui/informations_tab.py +++ b/src/sakia/gui/informations_tab.py @@ -92,6 +92,18 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): self.community, self.app)\ .diff_localized(True, self.app.preferences['international_system_of_units']) + localized_ud_median_time = QLocale.toString( + QLocale(), + QDateTime.fromTime_t(block_ud['medianTime']), + QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) + ) + + localized_next_ud_median_time = QLocale.toString( + QLocale(), + QDateTime.fromTime_t(block_ud['medianTime'] + params['dt']), + QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) + ) + if block_ud_minus_1: mass_minus_1 = (float(0) if block_ud['membersCount'] == 0 else block_ud_minus_1['monetaryMass'] / block_ud['membersCount']) @@ -106,6 +118,12 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): actual_growth = float(0) else: actual_growth = block_ud['dividend'] / (block_ud_minus_1['monetaryMass'] / block_ud['membersCount']) + + localized_ud_median_time_minus_1 = QLocale.toString( + QLocale(), + QDateTime.fromTime_t(block_ud_minus_1['medianTime']), + QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) + ) else: localized_mass_minus_1_per_member = QLocale().toString( float(0), 'f', self.app.preferences['digits_after_comma'] @@ -114,6 +132,7 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): float(0), 'f', self.app.preferences['digits_after_comma'] ) actual_growth = float(0) + localized_ud_median_time_minus_1 = "####" # set infos in label self.label_general.setText( @@ -143,23 +162,11 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): actual_growth, params['dt'] / 86400, self.tr('Actual growth c = UD(t)/[M(t-1)/N(t)]'), - QLocale.toString( - QLocale(), - QDateTime.fromTime_t(block_ud_minus_1['medianTime']), - QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) - ), + localized_ud_median_time_minus_1, self.tr('Penultimate UD date and time (t-1)'), - QLocale.toString( - QLocale(), - QDateTime.fromTime_t(block_ud['medianTime']), - QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) - ), + localized_ud_median_time, self.tr('Last UD date and time (t)'), - QLocale.toString( - QLocale(), - QDateTime.fromTime_t(block_ud['medianTime'] + params['dt']), - QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) - ), + localized_next_ud_median_time, self.tr('Next UD date and time (t+1)') ) ) diff --git a/src/sakia/gui/views/nodes/base_node.py b/src/sakia/gui/views/nodes/base_node.py index 53e0226b0ed0a6c0b2160a16a5811ce09e0fbaff..ba8339ab8386d556b59492f77057ec73d243abea 100644 --- a/src/sakia/gui/views/nodes/base_node.py +++ b/src/sakia/gui/views/nodes/base_node.py @@ -24,10 +24,7 @@ class BaseNode(QGraphicsEllipseItem): self.status_wallet = self.metadata['status'] & NodeStatus.HIGHLIGHTED self.status_member = not self.metadata['status'] & NodeStatus.OUT self.text = self.metadata['text'] - try: - self.setToolTip(self.metadata['tooltip']) - except TypeError: - raise + self.setToolTip(self.text + " - " + self.metadata['tooltip']) self.arcs = [] self.menu = None self.action_sign = None diff --git a/src/sakia/gui/views/nodes/explorer_node.py b/src/sakia/gui/views/nodes/explorer_node.py index 2e6badea58c0463cf1e702bf2df869e4fbee0662..a816758df8ea2bc19e22a8d63bfd3623d851ab40 100644 --- a/src/sakia/gui/views/nodes/explorer_node.py +++ b/src/sakia/gui/views/nodes/explorer_node.py @@ -7,7 +7,7 @@ import math class ExplorerNode(BaseNode): - def __init__(self, nx_node, center_pos, nx_pos, steps, steps_max): + def __init__(self, nx_node, center_pos, nx_pos, steps, steps_max, small): """ Create node in the graph scene @@ -16,6 +16,7 @@ class ExplorerNode(BaseNode): :param nx_pos: Position of the nodes in the graph :param int steps: The steps from the center identity :param int steps_max: The steps max of the graph + :param bool small: Small dots for big networks """ super().__init__(nx_node, nx_pos) @@ -23,22 +24,32 @@ class ExplorerNode(BaseNode): self.steps_max = steps_max self.highlighted = False - # text inside ellipse - self.text_item = QGraphicsSimpleTextItem(self) - self.text_item.setText(self.text) - # center ellipse around text - self.setRect( - 0, - 0, - self.text_item.boundingRect().width() * 2, - self.text_item.boundingRect().height() * 2 - ) + if small: + self.setRect( + 0, + 0, + 10, + 10 + ) + self.text_item = None + else: + # text inside ellipse + self.text_item = QGraphicsSimpleTextItem(self) + self.text_item.setText(self.text) + # center ellipse around text + self.setRect( + 0, + 0, + self.text_item.boundingRect().width() * 2, + self.text_item.boundingRect().height() * 2 + ) + # center text in ellipse + self.text_item.setPos(self.boundingRect().width() / 4.0, self.boundingRect().height() / 4.0) + # set anchor to the center self.setTransform( QTransform().translate(-self.boundingRect().width() / 2.0, -self.boundingRect().height() / 2.0)) - # center text in ellipse - self.text_item.setPos(self.boundingRect().width() / 4.0, self.boundingRect().height() / 4.0) # cursor change on hover self.setAcceptHoverEvents(True) @@ -76,7 +87,9 @@ class ExplorerNode(BaseNode): if self.status_wallet == NodeStatus.HIGHLIGHTED: text_color = QColor('grey') - self.text_item.setBrush(QBrush(text_color)) + + if self.text_item: + self.text_item.setBrush(QBrush(text_color)) # create gradient inside the ellipse gradient = QRadialGradient(QPointF(0, self.boundingRect().height() / 4), self.boundingRect().width()) diff --git a/src/sakia/gui/views/scenes/explorer_scene.py b/src/sakia/gui/views/scenes/explorer_scene.py index 696c8782fa9ea16a979db1dadf4b4f402f9af7f6..d44ce7759360b6e0c6b4f369ed37ddf05dec2721 100644 --- a/src/sakia/gui/views/scenes/explorer_scene.py +++ b/src/sakia/gui/views/scenes/explorer_scene.py @@ -260,7 +260,9 @@ class ExplorerScene(BaseScene): else: center_pos = QPoint(0, 0) - v = ExplorerNode(nx_node, center_pos, graph_pos, distances[nx_node[0]], dist_max) + small = distances[nx_node[0]] > 1 + + v = ExplorerNode(nx_node, center_pos, graph_pos, distances[nx_node[0]], dist_max, small) self.addItem(v) self.nodes[nx_node[0]] = v diff --git a/src/sakia/tests/unit/gui/views/test_explorer_node.py b/src/sakia/tests/unit/gui/views/test_explorer_node.py index e684d5ab56d23107426561f4ed721e5126d30f84..a27c75e1cc1a7724f518af2ee3c0f352e00b7b1a 100644 --- a/src/sakia/tests/unit/gui/views/test_explorer_node.py +++ b/src/sakia/tests/unit/gui/views/test_explorer_node.py @@ -27,7 +27,7 @@ class TestExplorerNode(unittest.TestCase, QuamashTest): "B": (10, 20) } async def exec_test(): - node = ExplorerNode(("A", metadata), QPointF(0, 0), nx_pos, 0, 1) + node = ExplorerNode(("A", metadata), QPointF(0, 0), nx_pos, 0, 1, False) self.assertEqual(node.id, "A") self.assertEqual(node.metadata['status'], NodeStatus.NEUTRAL) self.assertEqual(node.x(), 0) @@ -35,7 +35,7 @@ class TestExplorerNode(unittest.TestCase, QuamashTest): self.assertEqual(node.status_wallet, False) self.assertEqual(node.status_member, True) self.assertEqual(node.text, "UserA") - self.assertEqual(node.toolTip(), "TestTooltip") + self.assertEqual(node.toolTip(), "UserA - TestTooltip") self.lp.run_until_complete(exec_test()) @@ -52,7 +52,7 @@ class TestExplorerNode(unittest.TestCase, QuamashTest): "B": (10, 20) } async def exec_test(): - node = ExplorerNode(("A", metadata), QPointF(0, 0), nx_pos, 0, 1) + node = ExplorerNode(("A", metadata), QPointF(0, 0), nx_pos, 0, 1, False) node.paint(painter, QStyleOptionGraphicsItem(), widget) self.lp.run_until_complete(exec_test()) @@ -70,7 +70,7 @@ class TestExplorerNode(unittest.TestCase, QuamashTest): "B": (10, 20) } async def exec_test(): - node = ExplorerNode(("A", metadata), QPointF(0, 0), nx_pos, 0, 1) + node = ExplorerNode(("A", metadata), QPointF(0, 0), nx_pos, 0, 1, False) bounding_rect = node.boundingRect() self.assertAlmostEqual(bounding_rect.x(), -0.5, delta=15) self.assertAlmostEqual(bounding_rect.y(), -0.5, delta=15)