From 981c44eec0da6217759946d58fd8709c07ed0e4f Mon Sep 17 00:00:00 2001 From: inso <insomniak.fr@gmaiL.com> Date: Sat, 8 Apr 2017 14:14:23 +0200 Subject: [PATCH] Open node in browser is back --- .../gui/navigation/network/controller.py | 32 ++++++------------- src/sakia/gui/navigation/network/model.py | 26 ++------------- 2 files changed, 13 insertions(+), 45 deletions(-) diff --git a/src/sakia/gui/navigation/network/controller.py b/src/sakia/gui/navigation/network/controller.py index 409c3862..e391650e 100644 --- a/src/sakia/gui/navigation/network/controller.py +++ b/src/sakia/gui/navigation/network/controller.py @@ -24,6 +24,7 @@ class NetworkController(QObject): table_model = self.model.init_network_table_model() self.view.set_network_table_model(table_model) self.view.manual_refresh_clicked.connect(self.refresh_nodes_manually) + self.view.table_network.customContextMenuRequested.connect(self.node_context_menu) @classmethod def create(cls, parent, app, network_service): @@ -45,27 +46,13 @@ class NetworkController(QObject): def node_context_menu(self, point): index = self.view.table_network.indexAt(point) - valid, node, is_root = self.model.table_model_data(index) - if valid: - self.view.show_menu(point, is_root) + valid, node = self.model.table_model_data(index) + if self.model.app.parameters.expert_mode: menu = QMenu() - if is_root: - unset_root = QAction(self.tr("Unset root node"), self) - unset_root.triggered.connect(self.unset_root_node) - unset_root.setData(node) - if len(self.community.network.root_nodes) > 1: - menu.addAction(unset_root) - else: - set_root = QAction(self.tr("Set as root node"), self) - set_root.triggered.connect(self.set_root_node) - set_root.setData(node) - menu.addAction(set_root) - - if self.app.preferences['expert_mode']: - open_in_browser = QAction(self.tr("Open in browser"), self) - open_in_browser.triggered.connect(self.open_node_in_browser) - open_in_browser.setData(node) - menu.addAction(open_in_browser) + open_in_browser = QAction(self.tr("Open in browser"), self) + open_in_browser.triggered.connect(self.open_node_in_browser) + open_in_browser.setData(node) + menu.addAction(open_in_browser) # Show the context menu. menu.exec_(QCursor.pos()) @@ -83,6 +70,7 @@ class NetworkController(QObject): @pyqtSlot() def open_node_in_browser(self): node = self.sender().data() - peering = bma.network.Peering(node.endpoint.conn_handler()) - url = QUrl(peering.reverse_url("http", "/peering")) + conn_handler = next(node.endpoints[0].conn_handler()) + peering_url = bma.API(conn_handler, bma.network.URL_PATH).reverse_url(conn_handler.http_scheme, '/peering') + url = QUrl(peering_url) QDesktopServices.openUrl(url) diff --git a/src/sakia/gui/navigation/network/model.py b/src/sakia/gui/navigation/network/model.py index 72c6749b..669fae3f 100644 --- a/src/sakia/gui/navigation/network/model.py +++ b/src/sakia/gui/navigation/network/model.py @@ -43,26 +43,6 @@ class NetworkModel(QObject): """ if index.isValid() and index.row() < self.table_model.rowCount(QModelIndex()): source_index = self.table_model.mapToSource(index) - is_root_col = self.table_model.sourceModel().columns_types.index('is_root') - is_root_index = self.table_model.sourceModel().index(source_index.row(), is_root_col) - is_root = self.table_model.sourceModel().data(is_root_index, Qt.DisplayRole) - node = self.community.network.nodes()[source_index.row()] - return True, node, is_root - return False, None, None - - def add_root_node(self, node): - """ - The node set as root - :param sakia.data.entities.Node node: the node - """ - node.root = True - self.network_service.commit_node(node) - - def unset_root_node(self, node): - """ - The node set as root - :param sakia.data.entities.Node node: the node - """ - node.root = False - self.network_service.commit_node(node) - + node = self.network_service.nodes()[source_index.row()] + return True, node + return False, None -- GitLab