'Set up the UI.'

def __setupUi(self):

    if self.__macUnified:
        self.tab = QToolBar()
        self.addToolBar(Qt.TopToolBarArea, self.tab)
        self.setUnifiedTitleAndToolBarOnMac(True)
        self.setWindowFlags((self.windowFlags() & (~ Qt.MacWindowToolBarButtonHint)))
        self.tab.actionTriggered[QAction].connect(self.__macOnToolBarAction)
        central = QStackedWidget()
        central.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
    else:
        self.tab = central = QTabWidget(self)
    self.stack = central
    self.setCentralWidget(central)
    tab = QWidget()
    self.addTab(tab, self.tr('General'), toolTip=self.tr('General    Options'))
    form = QFormLayout()
    tab.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
    nodes = QWidget(self, objectName='nodes')
    nodes.setLayout(QVBoxLayout())
    nodes.layout().setContentsMargins(0, 0, 0, 0)
    cb_anim = QCheckBox(self.tr('Enable    node    animations'), objectName='enable-node-animations', toolTip=self.tr('Enable    shadow    and    ping    animations    for    nodes    in    the    workflow.'))
    self.bind(cb_anim, 'checked', 'schemeedit/enable-node-animations')
    nodes.layout().addWidget(cb_anim)
    form.addRow(self.tr('Nodes'), nodes)
    links = QWidget(self, objectName='links')
    links.setLayout(QVBoxLayout())
    links.layout().setContentsMargins(0, 0, 0, 0)
    cb_show = QCheckBox(self.tr('Show    channel    names    between    widgets'), objectName='show-channel-names', toolTip=self.tr('Show    source    and    sink    channel    names    over    the    links.'))
    self.bind(cb_show, 'checked', 'schemeedit/show-channel-names')
    links.layout().addWidget(cb_show)
    form.addRow(self.tr('Links'), links)
    quickmenu = QWidget(self, objectName='quickmenu-options')
    quickmenu.setLayout(QVBoxLayout())
    quickmenu.layout().setContentsMargins(0, 0, 0, 0)
    cb1 = QCheckBox(self.tr('On    double    click'), toolTip=self.tr('Open    quick    menu    on    a    double    click    on    an    empty    spot    in    the    canvas'))
    cb2 = QCheckBox(self.tr('On    right    click'), toolTip=self.tr('Open    quick    menu    on    a    right    click    on    an    empty    spot    in    the    canvas'))
    cb3 = QCheckBox(self.tr('On    space    key    press'), toolTip=self.tr('On    Space    key    press    while    the    mouseis    hovering    over    the    canvas.'))
    cb4 = QCheckBox(self.tr('On    any    key    press'), toolTip=self.tr('On    any    key    press    while    the    mouseis    hovering    over    the    canvas.'))
    self.bind(cb1, 'checked', 'quickmenu/trigger-on-double-click')
    self.bind(cb2, 'checked', 'quickmenu/trigger-on-right-click')
    self.bind(cb3, 'checked', 'quickmenu/trigger-on-space-key')
    self.bind(cb4, 'checked', 'quickmenu/trigger-on-any-key')
    quickmenu.layout().addWidget(cb1)
    quickmenu.layout().addWidget(cb2)
    quickmenu.layout().addWidget(cb3)
    quickmenu.layout().addWidget(cb4)
    form.addRow(self.tr('Open    quick    menu    on'), quickmenu)
    startup = QWidget(self, objectName='startup-group')
    startup.setLayout(QVBoxLayout())
    startup.layout().setContentsMargins(0, 0, 0, 0)
    cb_splash = QCheckBox(self.tr('Show    splash    screen'), self, objectName='show-splash-screen')
    cb_welcome = QCheckBox(self.tr('Show    welcome    screen'), self, objectName='show-welcome-screen')
    cb_updates = QCheckBox(self.tr('Check    for    updates'), self, objectName='check-updates')
    self.bind(cb_splash, 'checked', 'startup/show-splash-screen')
    self.bind(cb_welcome, 'checked', 'startup/show-welcome-screen')
    self.bind(cb_updates, 'checked', 'startup/check-updates')
    startup.layout().addWidget(cb_splash)
    startup.layout().addWidget(cb_welcome)
    startup.layout().addWidget(cb_updates)
    form.addRow(self.tr('On    startup'), startup)
    toolbox = QWidget(self, objectName='toolbox-group')
    toolbox.setLayout(QVBoxLayout())
    toolbox.layout().setContentsMargins(0, 0, 0, 0)
    exclusive = QCheckBox(self.tr('Only    one    tab    can    be    open    at    a    time'))
    self.bind(exclusive, 'checked', 'mainwindow/toolbox-dock-exclusive')
    toolbox.layout().addWidget(exclusive)
    form.addRow(self.tr('Tool    box'), toolbox)
    tab.setLayout(form)
    tab = QWidget()
    self.addTab(tab, self.tr('Output'), toolTip='Output    Redirection')
    form = QFormLayout()
    box = QWidget()
    layout = QVBoxLayout()
    layout.setContentsMargins(0, 0, 0, 0)
    combo = QComboBox()
    combo.addItems([self.tr('Critical'), self.tr('Error'), self.tr('Warn'), self.tr('Info'), self.tr('Debug')])
    self.bind(combo, 'currentIndex', 'logging/level')
    layout.addWidget(combo)
    box.setLayout(layout)
    form.addRow(self.tr('Logging'), box)
    box = QWidget()
    layout = QVBoxLayout()
    layout.setContentsMargins(0, 0, 0, 0)
    cb1 = QCheckBox(self.tr('Open    in    external    browser'), objectName='open-in-external-browser')
    self.bind(cb1, 'checked', 'help/open-in-external-browser')
    layout.addWidget(cb1)
    box.setLayout(layout)
    form.addRow(self.tr('Help    window'), box)
    tab.setLayout(form)
    tab = QWidget()
    self.addTab(tab, self.tr('Error    Reporting'), toolTip='Settings    related    to    error    reporting')
    form = QFormLayout()
    line_edit_mid = QLineEdit()
    self.bind(line_edit_mid, 'text', 'error-reporting/machine-id')
    form.addRow('Machine    ID:', line_edit_mid)
    tab.setLayout(form)
    if self.__macUnified:
        self.adjustSize()
