code: def set_layout_settings(self, settings, dont_goto=None):
          
          splitsettings = settings.get('splitsettings')
          if splitsettings is None:
              return
          splitter = self
          editor = None
          for index, (is_vertical, cfname, clines) in enumerate(splitsettings):
              if index > 0:
                  splitter.split(Qt.Vertical if is_vertical else Qt.Horizontal)
                  splitter = splitter.widget(1)
              editorstack = splitter.widget(0)
              for index, finfo in enumerate(editorstack.data):
                  editor = finfo.editor
                  # TODO: go_to_line is not working properly (the line it jumps
                  # to is not the corresponding to that file). This will be fixed
                  # in a future PR (which will fix issue #3857)
                  if dont_goto is not None:
                      # skip go to line for first file because is already there
                      pass
                  else:
                      try:
                          editor.go_to_line(clines[index])
                      except IndexError:
                          pass
          hexstate = settings.get('hexstate')
          if hexstate is not None:
              self.restoreState( QByteArray().fromHex(
                      str(hexstate).encode('utf-8')) )
          sizes = settings.get('sizes')
          if sizes is not None:
              self.setSizes(sizes)
          if editor is not None:
              editor.clearFocus()
              editor.setFocus()
docs: Restore layout state for the splitter panels.
  
          Apply the settings to restore a saved layout within the editor.  If
          the splitsettings key doesn't exist, then return without restoring
          any settings.
  
          The current EditorSplitter (self) calls split() for each element
          in split_settings, thus recreating the splitter panels from the saved
          state.  split() also clones the editorstack, which is then
          iterated over to restore the saved line numbers on each file.
  
          The size and positioning of each splitter panel is restored from
          hexstate.
  
          Args:
              settings: A dictionary with keys {hexstate, sizes, orientation}
                      that define the layout for the EditorSplitter panels.
              dont_goto: Defaults to None, which positions the cursor to the
                      end of the editor.  If there's a value, positions the
                      cursor on the saved line number for each editor.