Skip to content

Commit

Permalink
Many dock, problems and spy UI improvments
Browse files Browse the repository at this point in the history
  • Loading branch information
algorys committed Apr 3, 2018
1 parent 82e90df commit 8f34971
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 15 deletions.
3 changes: 1 addition & 2 deletions alignak_app/qobjects/alignak/problems.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@

from alignak_app.backend.datamanager import data_manager
from alignak_app.backend.backend import app_backend
from alignak_app.items.host import Host
from alignak_app.utils.config import settings

from alignak_app.qobjects.common.actions import ActionsQWidget
Expand Down Expand Up @@ -74,7 +73,7 @@ def initialize(self, spy_widget):

self.spy_widget = spy_widget

self.problems_title.setObjectName('itemtitle')
self.problems_title.setObjectName('title')
problem_layout.addWidget(self.problems_title)

problem_layout.addWidget(self.get_search_widget())
Expand Down
1 change: 0 additions & 1 deletion alignak_app/qobjects/app_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ def initialize(self):

# Dock
self.dock.initialize()
self.dock.setFixedWidth(330)
app_layout.addWidget(self.dock, 1, 2, 1, 1)

self.setCentralWidget(app_widget)
Expand Down
1 change: 1 addition & 0 deletions alignak_app/qobjects/dock.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class DockQWidget(QWidget):

def __init__(self, parent=None):
super(DockQWidget, self).__init__(parent)
self.setFixedWidth(355)
# Fields
self.status_widget = AlignakQWidget()
self.livestate_widget = LivestateQWidget()
Expand Down
32 changes: 23 additions & 9 deletions alignak_app/qobjects/events/spy.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,12 @@

from logging import getLogger

from PyQt5.Qt import QGridLayout, Qt, QWidget, QAbstractItemView, QListWidget
from PyQt5.Qt import QGridLayout, Qt, QWidget, QAbstractItemView, QListWidget, QPixmap, QIcon
from PyQt5.Qt import QTimer, QLabel

from alignak_app.backend.datamanager import data_manager
from alignak_app.utils.config import settings

from alignak_app.qobjects.common.frames import get_frame_separator
from alignak_app.qobjects.events.item import EventItem
from alignak_app.qobjects.events.events import get_events_widget
from alignak_app.qobjects.events.spy_list import SpyQListWidget
Expand Down Expand Up @@ -62,29 +61,43 @@ def initialize(self):
layout = QGridLayout()
self.setLayout(layout)

spy_title = QLabel(_('Spy Hosts (double click to stop spying)'))
spy_title.setObjectName('itemtitle')
spy_icon = QLabel()
spy_pixmap = QPixmap(settings.get_image('spy'))
spy_icon.setPixmap(spy_pixmap)
spy_icon.setScaledContents(True)
spy_icon.setFixedSize(20, 20)
layout.addWidget(spy_icon, 0, 0, 1, 1)
layout.setAlignment(spy_icon, Qt.AlignRight)

spy_title = QLabel(_('Spy Hosts'))
spy_title.setObjectName('title')
spy_title.setMinimumHeight(40)
layout.addWidget(spy_title, 0, 0, 1, 3)
layout.addWidget(spy_title, 0, 1, 1, 1)

hint_lbl = QLabel('Click to refresh, double-click to stop spying')
hint_lbl.setObjectName('subtitle')
layout.addWidget(hint_lbl, 1, 0, 1, 1)
layout.setAlignment(hint_lbl, Qt.AlignCenter)

self.host_services_lbl.setObjectName('subtitle')
layout.addWidget(self.host_services_lbl, 1, 2, 1, 1)
layout.addWidget(self.host_services_lbl, 1, 1, 1, 1)
layout.setAlignment(self.host_services_lbl, Qt.AlignCenter)

self.spy_list_widget.setDragDropMode(QAbstractItemView.DragDrop)
self.spy_list_widget.setSelectionMode(QAbstractItemView.ExtendedSelection)
self.spy_list_widget.doubleClicked.connect(self.remove_event)
self.spy_list_widget.setAcceptDrops(True)
self.spy_list_widget.setWordWrap(True)

self.spy_list_widget.insertItem(0, self.get_hint_item())
self.spy_list_widget.item_dropped.connect(get_events_widget().remove_event)
self.spy_list_widget.clicked.connect(
lambda: self.manage_host_events(self.spy_list_widget.currentRow())
)
layout.addWidget(self.spy_list_widget, 2, 0, 1, 1)

layout.addWidget(get_frame_separator(vertical=True), 2, 1, 1, 1)
layout.addWidget(self.host_list_widget, 2, 2, 1, 1)
self.host_list_widget.setObjectName('spy')
# self.host_list_widget.setMinimumWidth(500)
layout.addWidget(self.host_list_widget, 2, 1, 1, 1)

spy_interval = int(settings.get_config('Alignak-app', 'spy_interval')) * 1000
self.spy_timer.setInterval(spy_interval)
Expand All @@ -102,6 +115,7 @@ def get_hint_item():

drop_hint_item = EventItem()
drop_hint_item.setText(_('Drop host-related events here to spy on it...'))
drop_hint_item.setIcon(QIcon(settings.get_image('spy')))
drop_hint_item.setFlags(Qt.ItemIsDropEnabled)

return drop_hint_item
Expand Down
9 changes: 7 additions & 2 deletions etc/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ QPushButton#False {
color: white;
font-weight: bold;
background-color: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop:0 white, stop: 0.495 white, stop: 0.496 black, stop: 0.497 #607d8b);
border: 1px solid #607d8b;
border: 1px solid #ccc;
border-radius: 2px;
text-align: right;
padding-right: 5px;
Expand Down Expand Up @@ -406,6 +406,10 @@ QListWidget::item:selected {
color: #3884c3;
}

QListWidget#spy {
border: 1px solid #6c9cb3;
}

/****** QTableWidget ******/
QTableWidget {
gridline-color: white;
Expand Down Expand Up @@ -439,7 +443,8 @@ QHeaderView::section:vertical {

/****** QTabWidget / QTabBar ******/
QTabWidget::pane {
border: 1px solid #3884c3;
border-top: 1px solid #3884c3;
background-color: white;
}

QTabWidget::tab-bar {
Expand Down
2 changes: 1 addition & 1 deletion test/test_problems_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def test_initialize(self):
self.assertFalse(under_test.filter_hosts_btn.is_checked())
self.assertFalse(under_test.filter_services_btn.is_checked())

self.assertEqual('itemtitle', under_test.problems_title.objectName())
self.assertEqual('title', under_test.problems_title.objectName())

def test_add_spy_host(self):
"""Add Spy Host from Problems QWidget"""
Expand Down

0 comments on commit 8f34971

Please sign in to comment.