Skip to content

Commit

Permalink
Move spy button from SynthesisQWidget to HostQWidget
Browse files Browse the repository at this point in the history
Ref #290
  • Loading branch information
algorys committed Apr 3, 2018
1 parent e7e6c31 commit e005327
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 49 deletions.
12 changes: 12 additions & 0 deletions alignak_app/qobjects/host/host.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ def __init__(self, parent=None):
self.history_btn = QPushButton()
self.history_widget = HistoryQWidget()
self.host_history = None
self.spy_btn = QPushButton()
self.refresh_timer = QTimer()

def initialize(self):
Expand Down Expand Up @@ -193,11 +194,22 @@ def get_actions_widget(self):
self.history_btn.setIcon(QIcon(settings.get_image('time')))
self.history_btn.setFixedSize(80, 20)
self.history_btn.clicked.connect(self.show_history)
self.history_btn.setToolTip(_('See history of host'))
layout.addWidget(self.history_btn)
layout.setAlignment(self.history_btn, Qt.AlignCenter)

self.history_widget.initialize()

# Spy Button
spy_lbl = QLabel(_('Spy Host:'))
spy_lbl.setObjectName('subtitle')
layout.addWidget(spy_lbl)
self.spy_btn.setIcon(QIcon(settings.get_image('spy')))
self.spy_btn.setFixedSize(80, 20)
self.spy_btn.setToolTip(_('Spy current host'))
layout.addWidget(self.spy_btn)
layout.setAlignment(self.spy_btn, Qt.AlignCenter)

layout.setAlignment(Qt.AlignCenter | Qt.AlignTop)

return widget
Expand Down
35 changes: 4 additions & 31 deletions alignak_app/qobjects/host/synthesis.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,13 @@ class SynthesisQWidget(QWidget):
Class who manage Synthesis view with Host and Services QWidgets
"""

spy_icons = {
True: 'spy',
False: 'spy_ok',
}

def __init__(self, parent=None):
super(SynthesisQWidget, self).__init__(parent)
# Fields
self.host_widget = HostQWidget()
self.services_widget = ServicesQWidget()
self.line_search = QLineEdit()
self.completer = QCompleter()
self.spy_text = {True: _("Spy Host"), False: _("Host spied!")}
self.spy_btn = QPushButton(self.spy_text[True])
self.hint_widget = QWidget()

def initialize_synthesis(self):
Expand Down Expand Up @@ -134,13 +127,6 @@ def get_search_widget(self):
# QLineEdit
self.line_search.setFixedHeight(search_lbl.height())
layout.addWidget(self.line_search)

# Spy Button
self.spy_btn.setIcon(QIcon(settings.get_image('spy')))
self.spy_btn.setObjectName('valid')
self.spy_btn.setFixedSize(110, 25)
layout.addWidget(self.spy_btn)

self.create_line_search([])

return widget
Expand Down Expand Up @@ -183,19 +169,15 @@ def update_synthesis(self, host, services, not_spied):
:type not_spied: bool
"""

self.host_widget.spy_btn.setEnabled(not_spied)

if host:
logger.info('Display %s in synthesis view', host.name)
self.spy_btn.setEnabled(not_spied)
self.spy_btn.setIcon(
QIcon(settings.get_image(self.spy_icons[not_spied]))
)
self.spy_btn.setText(self.spy_text[not_spied])

# Update Qwidgets
self.hint_widget.hide()
self.host_widget.update_host(host)
self.host_widget.show()
self.services_widget.update_widget(host, services)
self.hint_widget.hide()
self.host_widget.show()
self.services_widget.show()

# If the service element does not have the same ID as the host, reset to None
Expand All @@ -207,13 +189,4 @@ def update_synthesis(self, host, services, not_spied):
else:
self.host_widget.hide()
self.services_widget.hide()

self.spy_btn.setEnabled(True)
self.spy_btn.setIcon(
QIcon(settings.get_image(self.spy_icons[True]))
)
self.spy_btn.setText(self.spy_text[True])
self.hint_widget.show()

self.spy_btn.style().unpolish(self.spy_btn)
self.spy_btn.style().polish(self.spy_btn)
22 changes: 8 additions & 14 deletions alignak_app/qobjects/panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def initialize(self):

# Synthesis
self.synthesis_widget.initialize_synthesis()
self.synthesis_widget.spy_btn.clicked.connect(self.spy_host)
self.synthesis_widget.host_widget.spy_btn.clicked.connect(self.spy_host)
self.synthesis_widget.line_search.returnPressed.connect(self.display_host)
self.synthesis_widget.line_search.cursorPositionChanged.connect(self.display_host)
self.synthesis_widget.create_line_search(self.hostnames_list)
Expand Down Expand Up @@ -143,23 +143,17 @@ def spy_host(self):
"""

if self.synthesis_widget.line_search.text() in self.hostnames_list:
self.spy_widget.spy_list_widget.add_spy_host(self.get_current_host().item_id)
self.synthesis_widget.spy_btn.setEnabled(False)

self.synthesis_widget.spy_btn.setIcon(
QIcon(settings.get_image(self.synthesis_widget.spy_icons[False]))
# Spy host
self.spy_widget.spy_list_widget.add_spy_host(
self.synthesis_widget.host_widget.host_item.item_id
)
self.synthesis_widget.spy_btn.setText(self.synthesis_widget.spy_text[False])

# Update QWidgets
self.synthesis_widget.host_widget.spy_btn.setEnabled(False)
self.tab_widget.setTabText(
self.tab_widget.indexOf(self.spy_widget),
"Spied Hosts (%d)" % self.spy_widget.spy_list_widget.count()
)
else:
self.synthesis_widget.spy_btn.setEnabled(True)
self.synthesis_widget.spy_btn.setIcon(
QIcon(settings.get_image(self.synthesis_widget.spy_icons[True]))
)
self.synthesis_widget.spy_btn.setText(self.synthesis_widget.spy_text[True])

def display_host(self):
"""
Expand Down Expand Up @@ -193,7 +187,7 @@ def display_host(self):
self.synthesis_widget.update_synthesis(host, services, not_spied)
self.dashboard_widget.update_dashboard()
else:
self.synthesis_widget.update_synthesis(None, None, False)
self.synthesis_widget.update_synthesis(None, None, True)

def set_host_from_problems(self):
"""
Expand Down
8 changes: 4 additions & 4 deletions test/test_panel_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ def test_spy_host(self):
under_test.spy_host()
spy_index = under_test.get_tab_order().index('s')

self.assertTrue(under_test.synthesis_widget.spy_btn.isEnabled())
self.assertTrue(under_test.synthesis_widget.host_widget.spy_btn.isEnabled())
self.assertEqual('Spy Hosts', under_test.tab_widget.tabText(spy_index))
# Host Id is not added in spied_hosts of SpyQWidget.SpyQListWidget
self.assertFalse('_id0' in under_test.spy_widget.spy_list_widget.spied_hosts)
Expand Down Expand Up @@ -183,19 +183,19 @@ def test_display_host(self):
under_test = PanelQWidget()
under_test.initialize()

self.assertTrue(under_test.synthesis_widget.spy_btn.isEnabled())
self.assertTrue(under_test.synthesis_widget.host_widget.spy_btn.isEnabled())

under_test.display_host()

self.assertTrue(under_test.synthesis_widget.spy_btn.isEnabled())
self.assertTrue(under_test.synthesis_widget.host_widget.spy_btn.isEnabled())
self.assertTrue(under_test.synthesis_widget.host_widget.isHidden())
self.assertTrue(under_test.synthesis_widget.services_widget.isHidden())
self.assertFalse(under_test.synthesis_widget.hint_widget.isHidden())

under_test.synthesis_widget.line_search.setText(self.host_list[0].name)
under_test.display_host()

self.assertTrue(under_test.synthesis_widget.spy_btn.isEnabled())
self.assertTrue(under_test.synthesis_widget.host_widget.spy_btn.isEnabled())
self.assertFalse(under_test.synthesis_widget.host_widget.isHidden())
self.assertFalse(under_test.synthesis_widget.services_widget.isHidden())
self.assertTrue(under_test.synthesis_widget.hint_widget.isHidden())
Expand Down

0 comments on commit e005327

Please sign in to comment.