docs: def accept(self, evt):
          """
          write setting to the preferences
          """
          # determine if application is a script file or frozen exe (pyinstaller)
          frozen = getattr(sys, 'frozen', False)
          if frozen:
              app_file = sys.executable
          else:
              app_file = PathStr(__main__.__file__).abspath()
  
          if self.cb_startmenu.isChecked():
              # TODO: allow only logo location
              # icon = app_file.dirname().join('media', 'logo.ico')
              StartMenuEntry(self.name, app_file, icon=self.icon,
                             console=False).create()
  
          if self.cb_mime.isChecked():
              # get admin rights
              if not isAdmin():
                  try:
                      # run this file as __main__ with admin rights:
                      if frozen:
                          cmd = "from %s import embeddIntoOS\nembeddIntoOS('%s', '%s', '%s')" % (
                              __name__, '', self.ftype, self.name)
                          # in this case there is no python.exe and no moduly.py to call
                          # thats why we have to import the method and execute it
                          runAsAdmin((sys.executable, '-exec', cmd))
                      else:
                          runAsAdmin((sys.executable, __file__,
                                      app_file, self.ftype, self.name))
                  except:
                      print('needs admin rights to work')
              else:
                  embeddIntoOS(app_file, self.ftype, self.name)
  
          QtWidgets.QDialog.accept(self)