Esempio n. 1
0
    def __init__(self, parent=None, start_dir=""):
        super(OpenMenu, self).__init__(parent)

        self.ui = Ui_OpenMenu()
        self.ui.setupUi(self)
        #self.setAttribute(QtCore.Qt.WA_DeleteOnClose)

        self.current_dir = None
        self.current_node = None
        self.updateUI()
        self.populate_list()

        self.normal_palette = self.ui.txtSearch.palette()
        self.red_palette = QPalette(self.normal_palette)
        self.red_palette.setColor(QPalette.Normal, QPalette.Base,
                                  QColor(200, 98, 96))

        self.findDirectory(start_dir)
 def __init__(self, parent = None, start_dir = ""):
   super(OpenMenu, self).__init__(parent)
   
   self.ui = Ui_OpenMenu()
   self.ui.setupUi(self)
   #self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
   
   self.current_dir = None
   self.current_node = None
   self.updateUI()
   self.populate_list()
   
   self.normal_palette = self.ui.txtSearch.palette()
   self.red_palette    = QPalette(self.normal_palette)
   self.red_palette.setColor( QPalette.Normal, QPalette.Base, QColor(200, 98, 96) )
   
   self.findDirectory(start_dir)
Esempio n. 3
0
class OpenMenu(QtGui.QDialog):
    def __init__(self, parent=None, start_dir=""):
        super(OpenMenu, self).__init__(parent)

        self.ui = Ui_OpenMenu()
        self.ui.setupUi(self)
        #self.setAttribute(QtCore.Qt.WA_DeleteOnClose)

        self.current_dir = None
        self.current_node = None
        self.updateUI()
        self.populate_list()

        self.normal_palette = self.ui.txtSearch.palette()
        self.red_palette = QPalette(self.normal_palette)
        self.red_palette.setColor(QPalette.Normal, QPalette.Base,
                                  QColor(200, 98, 96))

        self.findDirectory(start_dir)

    ##############################################################################
    ### @fn   populate_list()
    ### @desc Displays the list of folders which can be opened.
    ##############################################################################
    def populate_list(self):

        self.ui.treeFileList.clear()

        reload(script_map)
        tree_items = tree.list_to_tree(script_map.SCRIPT_MAP)

        for item in tree_items:
            self.ui.treeFileList.addTopLevelItem(item)

    def refresh_list(self):
        directory = self.current_dir
        self.populate_list()
        self.findDirectory(directory)

    ##############################################################################
    ### @fn   changeSelection()
    ### @desc Triggered when the user selects something in the tree.
    ###       If we've hit a leaf node, store the folder.
    ##############################################################################
    def changeSelection(self, current, prev):

        if current and current.childCount() == 0:
            self.current_dir = common.qt_to_unicode(current.text(0))
        else:
            self.current_dir = None

        self.updateUI()

    ##############################################################################
    ### @fn   updateUI()
    ### @desc Updates info about the selected file.
    ##############################################################################
    def updateUI(self):

        if not self.current_dir == None:
            chapter, scene, room, mode = common.get_dir_info(self.current_dir)

            self.ui.lblChapter.setText(common.chapter_to_text(chapter))

            if not scene == -1:
                if chapter == common.CHAPTER_FREETIME:
                    self.ui.lblScene.setText(
                        "%03d: %s" %
                        (scene,
                         object_labels.get_char_name(
                             scene, common.editor_config.data01_dir)))
                elif chapter == common.CHAPTER_ISLAND and scene >= 701 and scene <= 715:
                    scene -= 700
                    self.ui.lblScene.setText(
                        "%03d: %s" %
                        (scene,
                         object_labels.get_char_name(
                             scene, common.editor_config.data01_dir)))
                else:
                    self.ui.lblScene.setText("%03d" % scene)
            else:
                self.ui.lblScene.setText("N/A")

            if not room == -1:
                self.ui.lblRoom.setText(
                    "%03d: %s" % (room,
                                  object_labels.get_map_name(
                                      room, common.editor_config.data01_dir)))
            else:
                self.ui.lblRoom.setText("N/A")

            self.ui.lblMode.setText(common.mode_to_text(mode))

        else:
            self.ui.lblChapter.setText("N/A")
            self.ui.lblScene.setText("N/A")
            self.ui.lblRoom.setText("N/A")
            self.ui.lblMode.setText("N/A")

    ##############################################################################
    ### @fn   doubleClicked()
    ### @desc Triggered when the user double-clicks on an item in the tree.
    ##############################################################################
    def doubleClicked(self, item, column):
        if item.childCount() == 0:
            self.changeSelection(item, None)
            self.accept()

    ##############################################################################
    ### @fn   findDirectory()
    ### @desc Triggered on startup or by editing the search box.
    ##############################################################################
    def findDirectory(self, directory):

        if directory:
            nodes = self.ui.treeFileList.findItems(
                directory, Qt.Qt.MatchContains | Qt.Qt.MatchRecursive)

            if len(nodes) >= 1:
                self.ui.treeFileList.setCurrentItem(nodes[0])
                self.ui.treeFileList.scrollToItem(
                    nodes[0], QtGui.QAbstractItemView.PositionAtCenter)

                self.ui.txtSearch.setPalette(self.normal_palette)
            else:
                self.ui.txtSearch.setPalette(self.red_palette)

    ##############################################################################
    ### @fn   accept()
    ### @desc Overrides the OK button to make sure a folder is selected.
    ##############################################################################
    def accept(self):
        if self.current_dir == None:
            QtGui.QMessageBox.critical(self, "No Selection",
                                       "Please select a script folder.")
            return
        super(OpenMenu, self).accept()

    ##############################################################################
    ### @fn   reject()
    ### @desc Overrides the Cancel button.
    ##############################################################################
    def reject(self):
        self.current_dir = None
        super(OpenMenu, self).reject()
class OpenMenu(QtGui.QDialog):
  def __init__(self, parent = None, start_dir = ""):
    super(OpenMenu, self).__init__(parent)
    
    self.ui = Ui_OpenMenu()
    self.ui.setupUi(self)
    #self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
    
    self.current_dir = None
    self.current_node = None
    self.updateUI()
    self.populate_list()
    
    self.normal_palette = self.ui.txtSearch.palette()
    self.red_palette    = QPalette(self.normal_palette)
    self.red_palette.setColor( QPalette.Normal, QPalette.Base, QColor(200, 98, 96) )
    
    self.findDirectory(start_dir)
  
  ##############################################################################
  ### @fn   populate_list()
  ### @desc Displays the list of folders which can be opened.
  ##############################################################################
  def populate_list(self):
    
    self.ui.treeFileList.clear()
    
    reload(script_map)
    tree_items = tree.list_to_tree(script_map.SCRIPT_MAP)
    
    for item in tree_items:
      self.ui.treeFileList.addTopLevelItem(item)
  
  def refresh_list(self):
    directory = self.current_dir
    self.populate_list()
    self.findDirectory(directory)
  
  ##############################################################################
  ### @fn   changeSelection()
  ### @desc Triggered when the user selects something in the tree.
  ###       If we've hit a leaf node, store the folder.
  ##############################################################################
  def changeSelection(self, current, prev):
  
    if current and current.childCount() == 0:
      self.current_dir = common.qt_to_unicode(current.text(0))
    else:
      self.current_dir = None
      
    self.updateUI()
  
  ##############################################################################
  ### @fn   updateUI()
  ### @desc Updates info about the selected file.
  ##############################################################################
  def updateUI(self):
  
    if not self.current_dir == None:
      chapter, scene, room, mode = common.get_dir_info(self.current_dir)
      
      self.ui.lblChapter.setText(common.chapter_to_text(chapter))
      
      if not scene == -1:
        if chapter == common.CHAPTER_FREETIME:
          self.ui.lblScene.setText("%03d: %s" % (scene, object_labels.get_char_name(scene, common.editor_config.data01_dir)))
        elif chapter == common.CHAPTER_ISLAND and scene >= 701 and scene <= 715:
          scene -= 700
          self.ui.lblScene.setText("%03d: %s" % (scene, object_labels.get_char_name(scene, common.editor_config.data01_dir)))
        else:
          self.ui.lblScene.setText("%03d" % scene)
      else:
        self.ui.lblScene.setText("N/A")
      
      if not room == -1:
        self.ui.lblRoom.setText("%03d: %s" % (room, object_labels.get_map_name(room, common.editor_config.data01_dir)))
      else:
        self.ui.lblRoom.setText("N/A")
      
      self.ui.lblMode.setText(common.mode_to_text(mode))
    
    else:
      self.ui.lblChapter.setText("N/A")
      self.ui.lblScene.setText("N/A")
      self.ui.lblRoom.setText("N/A")
      self.ui.lblMode.setText("N/A")
  
  ##############################################################################
  ### @fn   doubleClicked()
  ### @desc Triggered when the user double-clicks on an item in the tree.
  ##############################################################################
  def doubleClicked(self, item, column):
    if item.childCount() == 0:
      self.changeSelection(item, None)
      self.accept()
  
  ##############################################################################
  ### @fn   findDirectory()
  ### @desc Triggered on startup or by editing the search box.
  ##############################################################################
  def findDirectory(self, directory):
    
    if directory:
      nodes = self.ui.treeFileList.findItems(directory, Qt.Qt.MatchContains | Qt.Qt.MatchRecursive)
      
      if len(nodes) >= 1:
        self.ui.treeFileList.setCurrentItem(nodes[0])
        self.ui.treeFileList.scrollToItem(nodes[0], QtGui.QAbstractItemView.PositionAtCenter)
        
        self.ui.txtSearch.setPalette(self.normal_palette)
      else:
        self.ui.txtSearch.setPalette(self.red_palette)
  
  ##############################################################################
  ### @fn   accept()
  ### @desc Overrides the OK button to make sure a folder is selected.
  ##############################################################################
  def accept(self):
    if self.current_dir == None:
      QtGui.QMessageBox.critical(self, "No Selection", "Please select a script folder.")
      return
    super(OpenMenu, self).accept()
  
  ##############################################################################
  ### @fn   reject()
  ### @desc Overrides the Cancel button.
  ##############################################################################
  def reject(self):
    self.current_dir = None
    super(OpenMenu, self).reject()