text: #  -*- coding: utf-8 -*-
  # *****************************************************************************
  # NICOS, the Networked Instrument Control System of the MLZ
  # Copyright (c) 2009-2021 by the NICOS contributors (see AUTHORS)
  #
  # This program is free software; you can redistribute it and/or modify it under
  # the terms of the GNU General Public License as published by the Free Software
  # Foundation; either version 2 of the License, or (at your option) any later
  # version.
  #
  # This program is distributed in the hope that it will be useful, but WITHOUT
  # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  # details.
  #
  # You should have received a copy of the GNU General Public License along with
  # this program; if not, write to the Free Software Foundation, Inc.,
  # 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  #
  # Module authors:
  #   Andreas Schulz <andreas.schulz@frm2.tum.de>
  #
  # *****************************************************************************
  """Excludes and includes widgets."""
  
  from os import path
  
  from nicos.guisupport.qt import QDialog, QListWidgetItem, uic
  
  
  class AddXcludeDialog(QDialog):
      def __init__(self, setups, typ, parent=None):
          QDialog.__init__(self, parent)
          uic.loadUi(path.abspath(path.join(path.dirname(__file__),
                                            '..',
                                            'ui',
                                            'dialogs',
                                            'addxcludedialog.ui')), self)
          self.setWindowTitle('New %s ... ' % typ)
          self.labelHeader.setText('Add new %s:' % typ)
          for setup in setups:
              QListWidgetItem(setup, self.listWidgetSetups)
  
      def getValue(self):
          return [i.text() for i in self.listWidgetSetups.selectedItems()]
  
  
  class AddIncludeDialog(AddXcludeDialog):
      def __init__(self, setups, parent=None):
          AddXcludeDialog.__init__(self, setups, 'include', parent)
  
  
  class AddExcludeDialog(AddXcludeDialog):
      def __init__(self, setups, parent=None):
          AddXcludeDialog.__init__(self, setups, 'exclude', parent)
  