def initialize(self, item): """ Initialize Actions QWidget, with ack and downtime buttons """ self.item = item layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) self.acknowledge_btn.setIcon(QIcon(settings.get_image('acknowledge'))) self.acknowledge_btn.setFixedSize(80, 20) self.acknowledge_btn.clicked.connect(self.add_acknowledge) self.acknowledge_btn.setToolTip(_('Acknowledge the current item')) layout.addWidget(self.acknowledge_btn) self.downtime_btn.setIcon(QIcon(settings.get_image('downtime'))) self.downtime_btn.setFixedSize(80, 20) self.downtime_btn.clicked.connect(self.add_downtime) self.downtime_btn.setToolTip(_('Schedule a Downtime on current item')) layout.addWidget(self.downtime_btn) layout.setAlignment(Qt.AlignCenter)
def get_btn_widget(self): """ Return QWidget with spy and host synthesis QPushButtons :return: widget with spy and host button :rtype: QWidget """ widget_btn = QWidget() layout_btn = QHBoxLayout() layout_btn.setContentsMargins(0, 0, 0, 5) widget_btn.setLayout(layout_btn) host_filter = QLabel(_('Filter hosts')) host_filter.setObjectName('subtitle') layout_btn.addWidget(host_filter) self.filter_hosts_btn.initialize() self.filter_hosts_btn.update_btn_state(False) self.filter_hosts_btn.toggle_btn.clicked.connect(lambda: self.update_problems_data('host')) layout_btn.addWidget(self.filter_hosts_btn) service_filter = QLabel(_('Filter services')) service_filter.setObjectName('subtitle') layout_btn.addWidget(service_filter) self.filter_services_btn.initialize() self.filter_services_btn.update_btn_state(False) self.filter_services_btn.toggle_btn.clicked.connect( lambda: self.update_problems_data('service') ) layout_btn.addWidget(self.filter_services_btn) layout_btn.addStretch() self.host_btn.setIcon(QIcon(settings.get_image('host'))) self.host_btn.setFixedSize(80, 20) self.host_btn.setEnabled(False) self.host_btn.setToolTip(_('See current item in synthesis view')) layout_btn.addWidget(self.host_btn) self.spy_btn.setIcon(QIcon(settings.get_image('spy'))) self.spy_btn.setFixedSize(80, 20) self.spy_btn.setEnabled(False) self.spy_btn.setToolTip(_('Spy current host')) self.spy_btn.clicked.connect(self.add_spied_host) layout_btn.addWidget(self.spy_btn) self.actions_widget.initialize(None) self.actions_widget.acknowledge_btn.setEnabled(False) self.actions_widget.downtime_btn.setEnabled(False) layout_btn.addWidget(self.actions_widget) layout_btn.setAlignment(Qt.AlignCenter) return widget_btn
def get_notes_mail_widget(self): """ Return QWidget with notes and email areas and edition buttons :return: notes and email QWidget :rtype: QWidget """ notes_widget = QWidget() notes_layout = QGridLayout(notes_widget) # Notes title and button notes_label = QLabel(_('Notes:')) notes_label.setObjectName('subtitle') notes_layout.addWidget(notes_label, 0, 0, 1, 1) notes_btn = QPushButton() notes_btn.setIcon(QIcon(settings.get_image('edit'))) notes_btn.setToolTip(_("Edit your notes.")) notes_btn.setFixedSize(32, 32) notes_btn.clicked.connect(lambda: self.patch_data('notes')) notes_layout.addWidget(notes_btn, 0, 2, 1, 1) # Notes scroll area self.labels['notes'].setText(data_manager.database['user'].data['notes']) self.labels['notes'].setWordWrap(True) self.labels['notes'].setTextInteractionFlags(Qt.TextSelectableByMouse) notes_scrollarea = QScrollArea() notes_scrollarea.setWidget(self.labels['notes']) notes_scrollarea.setWidgetResizable(True) notes_scrollarea.setObjectName('notes') notes_layout.addWidget(notes_scrollarea, 1, 0, 1, 3) # Mail mail_label = QLabel(_('Email:')) mail_label.setObjectName('subtitle') notes_layout.addWidget(mail_label, 2, 0, 1, 1) self.labels['email'].setObjectName('edit') notes_layout.addWidget(self.labels['email'], 2, 1, 1, 1) mail_btn = QPushButton() mail_btn.setIcon(QIcon(settings.get_image('edit'))) mail_btn.setFixedSize(32, 32) mail_btn.clicked.connect(lambda: self.patch_data('email')) notes_layout.addWidget(mail_btn, 2, 2, 1, 1) notes_layout.setAlignment(Qt.AlignTop) return notes_widget
def initialize(self, child_widget, title, exitapp): """ Initialize QWidget :param child_widget: widget child of LogoQWidget, needed for action button and layout :type child_widget: QWidget :param title: title of widget :type title: str :param exitapp: define if close button close application or just child QWidget :type exitapp: bool """ self.child_widget = child_widget logo_layout = QHBoxLayout() self.setLayout(logo_layout) logo_label = QLabel() logo_label.setObjectName('widget_title') logo_label.setText('%s' % title) logo_layout.addWidget(logo_label, 0) logo_layout.addStretch(child_widget.width()) logo_layout.setSpacing(0) minimize_btn = QPushButton() minimize_btn.setIcon(QIcon(settings.get_image('minimize'))) minimize_btn.setFixedSize(24, 24) minimize_btn.setObjectName('app_widget') minimize_btn.clicked.connect(self.minimize) logo_layout.addWidget(minimize_btn, 1) maximize_btn = QPushButton() maximize_btn.setIcon(QIcon(settings.get_image('maximize'))) maximize_btn.setFixedSize(24, 24) maximize_btn.setObjectName('app_widget') maximize_btn.clicked.connect(self.minimize_maximize) logo_layout.addWidget(maximize_btn, 2) close_btn = QPushButton() close_btn.setIcon(QIcon(settings.get_image('exit'))) close_btn.setObjectName('app_widget') close_btn.setFixedSize(24, 24) if exitapp: close_btn.clicked.connect(sys.exit) else: close_btn.clicked.connect(child_widget.close) logo_layout.addWidget(close_btn, 3)
def initialize(self, event_type, msg, timer=False, host=None): """ Initialize QListWidgetItem :param event_type: the type of event: OK, DOWN, ACK, ... :type event_type: str :param msg: message of event :type msg: str :param timer: timer to hide event at end of time :type timer: bool :param host: _id of host. Only necessary if "be_spied" is True :type host: None | str """ self.host = host if host: self.setData(Qt.UserRole, host) if timer: self.timer = QTimer() self.setData(Qt.DisplayRole, "%s" % msg) msg_to_send = '%s. (Send at %s)' % (msg, get_current_time()) self.setToolTip(msg_to_send) self.setData( Qt.DecorationRole, QIcon(settings.get_image(self.get_icon(event_type))) )
def __init__(self, parent=None): super(UserOptionsQDialog, self).__init__(parent) self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setFixedSize(350, 300) self.setObjectName('dialog') # Fields self.titles_labels = { 'host': { 'd': QLabel('Down'), 'u': QLabel('Unreachable'), 'r': QLabel('Recovery'), 'f': QLabel('Flapping'), 's': QLabel('Downtime'), 'n': QLabel('None') }, 'service': { 'w': QLabel('Warning'), 'u': QLabel('Unknown'), 'c': QLabel('Critical'), 'r': QLabel('Recovery'), 'f': QLabel('Flapping'), 's': QLabel('Downtime'), 'n': QLabel('None') } }
def get_icon_item(item_type, problem_nb): """ Return QPixmap with the corresponding image :param item_type: type of item: host, service or problem :type item_type: str :param problem_nb: problem number :type problem_nb: int :return: QPixmap with corresponding image :rtype: QPixmap """ if problem_nb > 0: if item_type == 'host': icon_type = 'hosts_down' elif item_type == 'service': icon_type = 'services_critical' else: icon_type = 'problem' else: if item_type == 'host': icon_type = 'hosts_up' elif item_type == 'service': icon_type = 'services_ok' else: icon_type = 'problem_ok' icon = QPixmap(settings.get_image(icon_type)) return icon
def update_status(self): """ Update daemons and backend status """ self.backend_connected.setPixmap( QPixmap(settings.get_image(app_backend.get_backend_status_icon())) ) self.ws_connected.setPixmap( QPixmap(settings.get_image(app_backend.get_ws_status_icon())) ) self.status_btn.setEnabled(bool(data_manager.database['alignakdaemon'])) if self.status_dialog.labels: self.update_status_btn(self.status_dialog.update_dialog())
def __init__(self, parent=None): super(MessageQDialog, self).__init__(parent) self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setFixedSize(500, 200) self.setObjectName('dialog')
def initialize(self): """ Initialize QWidget """ layout = QHBoxLayout() self.setLayout(layout) self.services_title.setObjectName('itemtitle') layout.addWidget(self.services_title) layout.setAlignment(self.services_title, Qt.AlignLeft) icons_widget = QWidget() icons_layout = QHBoxLayout() icons_widget.setLayout(icons_layout) for icon in Service.get_available_icons(): state = icon.replace('services_', '').upper() icon_pixmap = QIcon(settings.get_image(icon)) self.states_btns[state].setIcon(icon_pixmap) self.states_btns[state].setFixedSize(20, 20) self.states_btns[state].setToolTip(state) self.states_btns[state].setCheckable(True) self.states_btns[state].setObjectName('services') icons_layout.addWidget(self.states_btns[state]) self.nb_labels[state].setObjectName(get_icon_name_from_state('service', state)) icons_layout.addWidget(self.nb_labels[state]) layout.addWidget(icons_widget) layout.setAlignment(icons_widget, Qt.AlignRight)
def get_services_resume_widget(self): """ Return Services resume QWidget """ self.layout.addWidget(QLabel('<b>Services:</b>'), 2, 0, 1, 1) self.items_nb['services_nb'].setObjectName('subtitle') self.layout.addWidget(self.items_nb['services_nb'], 3, 0, 1, 1) row = 1 for icon in Service.get_available_icons(): self.services_buttons[icon].setIcon(QIcon(settings.get_image(icon))) self.services_buttons[icon].setFixedSize(48, 24) self.services_buttons[icon].setObjectName(icon) self.services_buttons[icon].setToolTip( _('Services %s. See in WebUI ?') % icon.replace('services_', '').upper() ) self.services_buttons[icon].clicked.connect( lambda: self.open_item_type_url('services') ) self.layout.addWidget(self.services_buttons[icon], 2, row, 1, 1) self.layout.setAlignment(self.services_buttons[icon], Qt.AlignCenter) self.services_labels[icon].setObjectName(icon) self.layout.addWidget(self.services_labels[icon], 3, row, 1, 1) self.layout.setAlignment(self.services_labels[icon], Qt.AlignCenter) row += 1
def update_widget(self, services): """ Update the QTreeWidget and its items :param services: list of :class:`Services <alignak_app.items.service.Service>` items :type services: list """ self.services = services # Update services dashboard self.services_dashboard.update_widget(self.services) # Clear QTreeWidget self.services_tree_widget.clear() self.services_tree_widget.setIconSize(QSize(16, 16)) if self.services: # Set as "Global" aggregation who are empty for service in self.services: if not service.data['aggregation']: service.data['aggregation'] = 'Global' # First sort list by state then by aggregation newlist = sorted(self.services, key=lambda s: itemgetter( 'ls_state', 'ls_acknowledged', 'aggregation') (s.data)) self.services = newlist # Get list of aggregations aggregations = [] for service in self.services: if service.data['aggregation'] not in aggregations: aggregations.append(service.data['aggregation']) # Add QTreeWidgetItems for aggregation in aggregations: main_tree = QTreeWidgetItem() main_tree.setText(0, aggregation) main_tree.setIcon(0, QIcon(settings.get_image('tree'))) main_tree.setToolTip(0, aggregation) for service in self.services: if service.data['aggregation'] == aggregation: service_tree = ServiceTreeItem() service_tree.initialize(service) service_tree.setToolTip(0, service.get_tooltip()) self.services_tree_widget.clicked.connect( self.update_service_data) main_tree.addChild(service_tree) self.services_tree_widget.addTopLevelItem(main_tree) self.service_data_widget.hide() else: # If no services, reset service item to None and hide data widget self.service_data_widget.service_item = None self.service_data_widget.hide()
def update_widget(self, services): """ Update the QTreeWidget and its items :param services: list of :class:`Services <alignak_app.items.service.Service>` items :type services: list """ self.services = services # Update services dashboard self.services_dashboard.update_widget(self.services) # Clear QTreeWidget self.services_tree_widget.clear() self.services_tree_widget.setIconSize(QSize(16, 16)) if self.services: # Set as "Global" aggregation who are empty for service in self.services: if not service.data['aggregation']: service.data['aggregation'] = 'Global' # First sort list by state then by aggregation newlist = sorted( self.services, key=lambda s: itemgetter('ls_state', 'ls_acknowledged', 'aggregation')(s.data) ) self.services = newlist # Get list of aggregations aggregations = [] for service in self.services: if service.data['aggregation'] not in aggregations: aggregations.append(service.data['aggregation']) # Add QTreeWidgetItems for aggregation in aggregations: main_tree = QTreeWidgetItem() main_tree.setText(0, aggregation) main_tree.setIcon(0, QIcon(settings.get_image('tree'))) main_tree.setToolTip(0, aggregation) for service in self.services: if service.data['aggregation'] == aggregation: service_tree = ServiceTreeItem() service_tree.initialize(service) service_tree.setToolTip(0, service.get_tooltip()) self.services_tree_widget.clicked.connect(self.update_service_data) main_tree.addChild(service_tree) self.services_tree_widget.addTopLevelItem(main_tree) self.service_data_widget.hide() else: # If no services, reset service item to None and hide data widget self.service_data_widget.service_item = None self.service_data_widget.hide()
def __init__(self, parent=None): super(AppQMainWindow, self).__init__(parent) self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) # Fields self.dock = DockQWidget() self.panel_widget = PanelQWidget() self.offset = None
def __init__(self, parent=None): super(EditQDialog, self).__init__(parent) self.setWindowTitle('Edit Dialog') self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setObjectName('dialog') self.setFixedSize(300, 300) # Fields self.text_edit = QTextEdit() self.old_text = ''
def add_quit_menu(self): """ Create and add to menu "exit" QAction """ self.tray_actions['exit'].setIcon(QIcon(settings.get_image('exit'))) self.tray_actions['exit'].setText(_('Quit')) self.tray_actions['exit'].setToolTip(_('Quit Alignak-app')) self.tray_actions['exit'].triggered.connect(self.quit_app) self.menu.addAction(self.tray_actions['exit'])
def add_reload_menu(self): """ Create and add to menu "reload" QAction """ self.tray_actions['reload'].setIcon(QIcon(settings.get_image('refresh'))) self.tray_actions['reload'].setText(_('Reload configuration')) self.tray_actions['reload'].setToolTip(_('Reload configuration')) self.tray_actions['reload'].triggered.connect(self.reload_configuration) self.menu.addAction(self.tray_actions['reload'])
def __init__(self, parent=None): super(PasswordQDialog, self).__init__(parent) self.setWindowTitle('User Password') self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setObjectName('dialog') self.setFixedSize(300, 300) # Fields self.pass_edit = QLineEdit() self.confirm_edit = QLineEdit() self.help_label = QLabel()
def get_hosts_notif_widget(self): """ Create and return notification QWidget for hosts :return: hosts notification QWidget :rtype: QWidget """ host_notif_widget = QWidget() host_notif_layout = QGridLayout() host_notif_widget.setLayout(host_notif_layout) notif_title = QLabel(_('Hosts notifications configurations')) notif_title.setObjectName('itemtitle') host_notif_layout.addWidget(notif_title, 0, 0, 1, 2) state_title = QLabel(_("Notification enabled:")) state_title.setObjectName("subtitle") host_notif_layout.addWidget(state_title, 1, 0, 1, 1) self.hostnotif_toggle_btn = ToggleQWidgetButton() self.hostnotif_toggle_btn.initialize() self.hostnotif_toggle_btn.update_btn_state( data_manager.database['user'].data['host_notifications_enabled'] ) self.hostnotif_toggle_btn.toggle_btn.clicked.connect(lambda: self.enable_notifications( 'host_notifications_enabled', self.hostnotif_toggle_btn.is_checked() )) self.hostnotif_toggle_btn.setObjectName('host_notifications_enabled') host_notif_layout.addWidget(self.hostnotif_toggle_btn, 1, 1, 1, 1) host_notif_layout.setAlignment(self.hostnotif_toggle_btn, Qt.AlignRight) period_title = QLabel(_('Notification period:')) period_title.setObjectName('subtitle') host_notif_layout.addWidget(period_title, 2, 0, 1, 1) self.labels['host_notification_period'].setText( data_manager.get_period_name( data_manager.database['user'].data['host_notification_period'] ) ) host_notif_layout.addWidget(self.labels['host_notification_period'], 2, 1, 1, 1) option_btn = QPushButton() option_btn.setIcon(QIcon(settings.get_image('options'))) option_btn.setFixedSize(64, 32) option_btn.clicked.connect(lambda: show_options_dialog( 'host', data_manager.database['user'].data['host_notification_options'] )) host_notif_layout.addWidget(option_btn, 3, 0, 1, 2) host_notif_layout.setAlignment(option_btn, Qt.AlignCenter) return host_notif_widget
def __init__(self, parent=None): super(ValidatorQDialog, self).__init__(parent) self.setWindowTitle('Edit Dialog') self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setObjectName('dialog') self.setFixedSize(250, 200) # Fields self.line_edit = QLineEdit() self.valid_text = QLabel() self.validator = QRegExpValidator() self.old_text = ''
def initialize(self): """ Intialize Spy QWidget """ layout = QGridLayout() self.setLayout(layout) 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, 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, 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) 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) self.spy_timer.start() self.spy_timer.timeout.connect(self.send_spy_events)
def __init__(self, parent=None): super(ProblemsQWidget, self).__init__(parent) self.setWindowIcon(QIcon(settings.get_image('icon'))) # Fields self.line_search = QLineEdit() self.problems_table = ProblemsQTableView() self.problems_title = QLabel() self.actions_widget = ActionsQWidget() self.spy_widget = None self.filter_hosts_btn = ToggleQWidgetButton() self.filter_services_btn = ToggleQWidgetButton() self.spy_btn = QPushButton() self.host_btn = QPushButton() self.refresh_timer = QTimer()
def add_alignak_menu(self): """ Create and add to menu "app" QAction """ self.app_main.initialize() self.tray_actions['app'].setIcon(QIcon(settings.get_image('icon'))) self.tray_actions['app'].setText(_('Alignak-App')) self.tray_actions['app'].setToolTip(_('Display Alignak-App')) self.tray_actions['app'].triggered.connect(self.app_main.show) self.menu.addAction(self.tray_actions['app'])
def get_hint_item(): """ Return an EventItem with a hint text :return: event item with hint text :rtype: EventItem """ 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
def add_webui_menu(self): """ Create and add to menu "webui" QAction """ self.tray_actions['webui'].setIcon(QIcon(settings.get_image('web'))) self.tray_actions['webui'].setText(_('Go to WebUI')) self.tray_actions['webui'].setToolTip(_('Go to Alignak WebUI')) self.tray_actions['webui'].triggered.connect( lambda: open_url('livestate') ) self.menu.addAction(self.tray_actions['webui'])
def add_about_menu(self): """ Create and add to menu "about" QAction """ self.app_about.initialize() self.tray_actions['about'].setIcon(QIcon(settings.get_image('about'))) self.tray_actions['about'].setText(_('About...')) self.tray_actions['about'].setToolTip(_('About Alignak-app')) self.tray_actions['about'].triggered.connect(self.app_about.show_about) self.menu.addAction(self.tray_actions['about'])
def __init__(self, parent=None): super(AckQDialog, self).__init__(parent) self.setWindowTitle(_('Request an Acknowledge')) self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setMinimumSize(370, 480) self.setObjectName('dialog') # Fields self.sticky = True self.sticky_toggle_btn = ToggleQWidgetButton() self.notify = False self.notify_toggle_btn = ToggleQWidgetButton() self.ack_comment_edit = None self.offset = None
def __init__(self, parent=None): super(DownQDialog, self).__init__(parent) self.setWindowTitle(_('Request a Downtime')) self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setMinimumSize(360, 460) self.setObjectName('dialog') # Fields self.fixed = True self.fixed_toggle_btn = ToggleQWidgetButton() self.duration = QTimeEdit() self.start_time = QDateTimeEdit() self.end_time = QDateTimeEdit() self.comment_edit = QTextEdit() self.offset = None
def get_notes_output_widget(self): """ Return QWidget with output and notes data :return: widget with host output and notes :rtype: QWidget """ widget = QWidget() layout = QGridLayout() widget.setLayout(layout) # Output output_title = QLabel(_("Output")) output_title.setObjectName('title') layout.addWidget(output_title, 0, 0, 1, 1) self.labels['ls_output'].setWordWrap(True) self.labels['ls_output'].setTextInteractionFlags(Qt.TextSelectableByMouse) output_scrollarea = QScrollArea() output_scrollarea.setWidget(self.labels['ls_output']) output_scrollarea.setWidgetResizable(True) output_scrollarea.setObjectName('output') layout.addWidget(output_scrollarea, 1, 0, 1, 2) # Notes notes_title = QLabel(_("Notes:")) notes_title.setObjectName('title') layout.addWidget(notes_title, 0, 2, 1, 1) notes_btn = QPushButton() notes_btn.setIcon(QIcon(settings.get_image('edit'))) notes_btn.setToolTip(_("Edit host notes.")) notes_btn.setFixedSize(32, 32) notes_btn.clicked.connect(self.patch_data) layout.addWidget(notes_btn, 0, 3, 1, 1) self.labels['notes'].setWordWrap(True) self.labels['notes'].setTextInteractionFlags(Qt.TextSelectableByMouse) notes_scrollarea = QScrollArea() notes_scrollarea.setWidget(self.labels['notes']) notes_scrollarea.setWidgetResizable(True) notes_scrollarea.setObjectName('notes') layout.addWidget(notes_scrollarea, 1, 2, 1, 2) return widget
def __init__(self, parent=None): super(ProblemsQTableView, self).__init__(parent) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setObjectName('problems') self.verticalHeader().hide() self.verticalHeader().setDefaultSectionSize(40) self.setIconSize(QSize(24, 24)) self.setHorizontalScrollMode(QAbstractItemView.ScrollPerPixel) self.setEditTriggers(QAbstractItemView.NoEditTriggers) self.horizontalHeader().setStretchLastSection(True) self.horizontalHeader().setMinimumHeight(40) self.horizontalHeader().setDefaultAlignment(Qt.AlignCenter) self.setSelectionMode(QAbstractItemView.SingleSelection) # Fields self.headers_list = [ _('Items in problem'), _('Output') ]
def __init__(self, parent=None): super(ServerQDialog, self).__init__(parent) self.setWindowTitle(_('Alignak Settings')) self.setWindowFlags(Qt.FramelessWindowHint) self.setStyleSheet(settings.css_style) self.setWindowIcon(QIcon(settings.get_image('icon'))) self.setObjectName('dialog') self.setFixedSize(340, 420) # Fields self.server_proc = QLineEdit() self.server_url = QLineEdit() self.server_port = QLineEdit() self.webservice_url = QLineEdit() self.proxy_address = QLineEdit() self.proxy_user = QLineEdit() self.proxy_password = QLineEdit() self.offset = None