Skip to content

Commit

Permalink
Make Tab movable
Browse files Browse the repository at this point in the history
Ref #288
  • Loading branch information
algorys committed Mar 26, 2018
1 parent 314d023 commit 9176939
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 19 deletions.
3 changes: 2 additions & 1 deletion alignak_app/qobjects/alignak/problems.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,8 @@ def update_problems_data(self, item_type=''):

if self.parent():
self.parent().parent().setTabText(
1, _("Problems (%d)") % len(problems_data['problems'])
self.parent().parent().indexOf(self),
_("Problems (%d)") % len(problems_data['problems'])
)

self.problems_title.setText(
Expand Down
8 changes: 5 additions & 3 deletions alignak_app/qobjects/events/spy.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,12 @@ def update_parent_spytab(self): # pragma: no cover - not testable
if self.parent():
if self.spy_list_widget.spied_hosts:
self.parent().parent().setTabText(
2, _('Spied Hosts (%d)') % self.spy_list_widget.count()
self.parent().parent().indexOf(self),
_('Spied Hosts (%d)') % self.spy_list_widget.count()
)
else:
# Remove hint item count
# Remove hint item from count
self.parent().parent().setTabText(
2, _('Spied Hosts (%d)') % (self.spy_list_widget.count() - 1)
self.parent().parent().indexOf(self),
_('Spied Hosts (%d)') % (self.spy_list_widget.count() - 1)
)
38 changes: 23 additions & 15 deletions alignak_app/qobjects/panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def __init__(self, parent=None):
self.hostnames_list = []
self.dashboard_widget = DashboardQWidget()
self.host_widget = HostQWidget()
self.synthesis_widget = QWidget()
self.services_widget = ServicesQWidget()
self.problems_widget = ProblemsQWidget()
self.spy_text = {True: _("Spy Host"), False: _("Host spied!")}
Expand All @@ -86,11 +87,16 @@ def initialize(self):
self.dashboard_widget.initialize()
self.layout.addWidget(self.dashboard_widget)
self.layout.addWidget(get_frame_separator())

self.tab_widget.setMovable(True)
self.layout.addWidget(self.tab_widget)

# Synthesis
self.tab_widget.addTab(self.get_synthesis_widget(), _("Host Synthesis"))
self.tab_widget.setTabToolTip(0, _('See a synthesis view of a host'))
self.init_synthesis_widget()
self.tab_widget.addTab(self.synthesis_widget, _("Host Synthesis"))
self.tab_widget.setTabToolTip(
self.tab_widget.indexOf(self.synthesis_widget), _('See a synthesis view of a host')
)

# Problems
self.problems_widget.initialize(self.spy_widget)
Expand All @@ -99,28 +105,29 @@ def initialize(self):
self.problems_widget,
_('Problems (%d)') % len(data_manager.get_problems()['problems'])
)
self.tab_widget.setTabToolTip(1, _('See the problems found in the backend'))
self.tab_widget.setTabToolTip(
self.tab_widget.indexOf(self.problems_widget), _('See the problems found in backend')
)

# Spied hosts
self.spy_widget.initialize()
self.tab_widget.addTab(self.spy_widget, _('Spied Hosts'))
self.tab_widget.setTabToolTip(2, 'See the hosts spied by Alignak-app')
self.tab_widget.setTabToolTip(
self.tab_widget.indexOf(self.spy_widget), 'See the hosts spied by Alignak-app'
)

# Hide widget for first display
self.host_widget.hide()
self.services_widget.hide()

def get_synthesis_widget(self):
def init_synthesis_widget(self):
"""
Return synthesis QWidget()
Initialize Synthesis QWidget
:return: synthesis QWidget()
:rtype: QWidget
"""

synthesis_widget = QWidget()
synthesis_layout = QVBoxLayout()
synthesis_widget.setLayout(synthesis_layout)
self.synthesis_widget.setLayout(synthesis_layout)

# Search widget
search_widget = self.get_search_widget()
Expand All @@ -137,8 +144,6 @@ def get_synthesis_widget(self):
# Align all widgets to Top
synthesis_layout.setAlignment(Qt.AlignTop)

return synthesis_widget

def get_search_widget(self):
"""
Create and return the search QWidget
Expand Down Expand Up @@ -204,7 +209,10 @@ def update_panel_spytab(self):
"""

self.tab_widget.setTabText(2, "Spied Hosts (%d)" % self.spy_widget.spy_list_widget.count())
self.tab_widget.setTabText(
self.tab_widget.indexOf(self.spy_widget),
"Spied Hosts (%d)" % self.spy_widget.spy_list_widget.count()
)

def create_line_search(self, hostnames_list=None):
"""
Expand Down Expand Up @@ -310,7 +318,7 @@ def define_hostname(self):

if hostname in self.hostnames_list:
self.line_search.setText(hostname)
self.tab_widget.setCurrentIndex(0)
self.tab_widget.setCurrentIndex(self.tab_widget.indexOf(self.synthesis_widget))
elif isinstance(self.sender(), QLineEdit):
# From QLineEdit
hostname = self.line_search.text()
Expand Down Expand Up @@ -350,7 +358,7 @@ def dropEvent(self, event): # pragma: no cover
logger.debug('... with current item: %s', event.source().currentItem())

self.line_search.setText(host.name)
self.tab_widget.setCurrentIndex(0)
self.tab_widget.setCurrentIndex(self.tab_widget.indexOf(self.synthesis_widget))
self.display_host()

def dragEnterEvent(self, event):
Expand Down

0 comments on commit 9176939

Please sign in to comment.