コード例 #1
0
ファイル: MainWin.py プロジェクト: zhlikezhz/tools
	def closeEvent(self, event): 
		if(self.storyMgr != None):
			ret = QtGui.QMessageBox.warning(self, units._fromUtf8('保存'), 
			units._fromUtf8('是否保存?'), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) 
			if(ret == QtGui.QMessageBox.Yes):
				self.saveStory()
		event.accept()
コード例 #2
0
ファイル: StoryView.py プロジェクト: zhlikezhz/tools
 def deleteItem(self):
     if (self.hasFocus()):
         ret = QtGui.QMessageBox.warning(
             self, units._fromUtf8('删除'), units._fromUtf8('是否删除?'),
             QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
         if (ret == QtGui.QMessageBox.Yes):
             index = self.selectionModel().currentIndex()
             parent = self.model.parent(index)
             self.model.removeRow(index.row(), parent)
コード例 #3
0
ファイル: StoryView.py プロジェクト: zhlikezhz/tools
	def deleteItem(self):
		if(self.hasFocus()):
			ret = QtGui.QMessageBox.warning(self, units._fromUtf8('删除'),
											units._fromUtf8('是否删除?'),
											QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
			if(ret == QtGui.QMessageBox.Yes):
				index = self.selectionModel().currentIndex()
				parent = self.model.parent(index)
				self.model.removeRow(index.row(), parent)
コード例 #4
0
ファイル: ChapterView.py プロジェクト: zhlikezhz/tools
 def headerData(self, setion, orientation, role=QtCore.Qt.DisplayRole):
     if role == QtCore.Qt.DisplayRole and orientation == QtCore.Qt.Horizontal:
         if setion == 0:
             return units._fromUtf8("类型")
         elif setion == 1:
             return units._fromUtf8("人物")
         elif setion == 2:
             return units._fromUtf8("语句")
     return None
コード例 #5
0
 def headerData(self, setion, orientation, role=QtCore.Qt.DisplayRole):
     if (role == QtCore.Qt.DisplayRole
             and orientation == QtCore.Qt.Horizontal):
         if (setion == 0):
             return units._fromUtf8("类型")
         elif (setion == 1):
             return units._fromUtf8("人物")
         elif (setion == 2):
             return units._fromUtf8("语句")
     return None
コード例 #6
0
ファイル: ChapterView.py プロジェクト: zhlikezhz/tools
 def data(self, column):
     if column == 0:
         return units._fromUtf8(units.typeMapping(self.getType()))
     elif column == 1:
         if self.unitData.attrib.has_key("renwu"):
             showValue = AttributeData.MatchMgr().getShowValue("renwu", self.unitData.attrib["renwu"])
             return units._fromUtf8(showValue)
         return ""
     elif column == 2:
         return units._fromUtf8(self.unitData.sentence)
     return None
コード例 #7
0
 def data(self, column):
     if (column == 0):
         return units._fromUtf8(units.typeMapping(self.getType()))
     elif (column == 1):
         if (self.unitData.attrib.has_key('renwu')):
             showValue = AttributeData.MatchMgr().getShowValue(
                 'renwu', self.unitData.attrib['renwu'])
             return units._fromUtf8(showValue)
         return ""
     elif (column == 2):
         return units._fromUtf8(self.unitData.sentence)
     return None
コード例 #8
0
    def setCheckUnit(self, unit):
        self.unit = unit
        idx = self.comboBox.findText(units._fromUtf8(unit.mType))
        if (idx != -1):
            self.comboBox.setCurrentIndex(idx)

        idx = self.comboBox_2.findText(units._fromUtf8(unit.mSrcName))
        if (idx != -1):
            self.comboBox_2.setCurrentIndex(idx)

        idx = self.comboBox_3.findText(units._fromUtf8(unit.mSrcSheet))
        if (idx != -1):
            self.comboBox_3.setCurrentIndex(idx)

        idx = self.comboBox_4.findText(units._fromUtf8(unit.mSrcTitle))
        if (idx != -1):
            self.comboBox_4.setCurrentIndex(idx)

        idx = self.comboBox_5.findText(units._fromUtf8(unit.mDescName))
        if (idx != -1):
            self.comboBox_5.setCurrentIndex(idx)

        idx = self.comboBox_6.findText(units._fromUtf8(unit.mDescSheet))
        if (idx != -1):
            self.comboBox_6.setCurrentIndex(idx)

        idx = self.comboBox_7.findText(units._fromUtf8(unit.mDescTitle))
        if (idx != -1):
            self.comboBox_7.setCurrentIndex(idx)

        self.textEdit.setText(units._fromUtf8(unit.mRule))
コード例 #9
0
    def setData(self, data):

        for attr in self.attributeList:
            if (attr.type == 'combo'):
                comboView = self.cellWidget(attr.row, 0)
                comboView.setCurrentIndex(0)
            elif (attr.type == 'text'):
                textView = self.item(attr.row, 0)
                textView.setText(units._fromUtf8(''))

        tmpStack = []
        updateStack = []
        for (saveKey, saveValue) in data.iteritems():
            item = []
            item.append(saveKey)
            item.append(saveValue)
            for attr in self.attributeList:
                if (attr.getSaveValue() == saveKey):
                    item.append(attr.row)
                    if (attr.hasParent == True):
                        if attr.parentRow in tmpStack:
                            index = tmpStack.index(attr.parentRow)
                            tmpStack.insert(index, attr.row)
                            updateStack.insert(index, item)
                        else:
                            updateStack.append(item)
                            tmpStack.append(attr.row)
                    else:
                        updateStack.append(item)
                        tmpStack.append(attr.row)
                    break

        while (len(updateStack) > 0):
            item = updateStack.pop()
            saveKey = item[0]
            saveValue = item[1]
            attr = self.attributeList[item[2]]

            if (attr.type == 'combo'):
                comboView = self.cellWidget(attr.row, 0)
                index = comboView.findText(
                    units._fromUtf8(attr.getChildShowValue(saveValue)))
                if (index == -1):
                    index = 0
                comboView.setCurrentIndex(index)
            elif (attr.type == 'text'):
                textView = self.item(attr.row, 0)
                textView.setText(units._fromUtf8(saveValue))
コード例 #10
0
ファイル: StoryView.py プロジェクト: zhlikezhz/tools
	def clickRowRight(self):
		if (self.model == None or self.selectionModel() == None):
			return False

		index = self.selectionModel().currentIndex()
		item = self.model.getItem(index)

		menu = QtGui.QMenu()
		if(item.getType() == 'card'):
			menu.addAction(units._fromUtf8("新建"), self.addItem)
			menu.addAction(units._fromUtf8("删除"), self.deleteItem)
			menu.addAction(units._fromUtf8("新建子节点"), self.appendItem)
		elif(item.getType() == 'story'):
			menu.addAction(units._fromUtf8("新建"), self.addItem)
			menu.addAction(units._fromUtf8("删除"), self.deleteItem)
		menu.exec_(QtGui.QCursor.pos())
コード例 #11
0
ファイル: StoryView.py プロジェクト: zhlikezhz/tools
    def clickRowRight(self):
        if (self.model == None or self.selectionModel() == None):
            return False

        index = self.selectionModel().currentIndex()
        item = self.model.getItem(index)

        menu = QtGui.QMenu()
        if (item.getType() == 'card'):
            menu.addAction(units._fromUtf8("新建"), self.addItem)
            menu.addAction(units._fromUtf8("删除"), self.deleteItem)
            menu.addAction(units._fromUtf8("新建子节点"), self.appendItem)
        elif (item.getType() == 'story'):
            menu.addAction(units._fromUtf8("新建"), self.addItem)
            menu.addAction(units._fromUtf8("删除"), self.deleteItem)
        menu.exec_(QtGui.QCursor.pos())
コード例 #12
0
ファイル: AttributeView.py プロジェクト: zhlikezhz/tools
	def setData(self, data):

		for attr in self.attributeList:
			if(attr.type == 'combo'):
				comboView = self.cellWidget(attr.row, 0)
				comboView.setCurrentIndex(0)
			elif(attr.type == 'text'):
				textView = self.item(attr.row, 0)
				textView.setText(units._fromUtf8(''))

		tmpStack = []
		updateStack = []
		for (saveKey, saveValue) in data.iteritems():
			item = []
			item.append(saveKey)
			item.append(saveValue)
			for attr in self.attributeList:
				if(attr.getSaveValue() == saveKey):
					item.append(attr.row)
					if(attr.hasParent == True):
						if attr.parentRow in tmpStack:
							index = tmpStack.index(attr.parentRow)
							tmpStack.insert(index, attr.row)
							updateStack.insert(index, item)
						else:
							updateStack.append(item)
							tmpStack.append(attr.row)
					else:
						updateStack.append(item)
						tmpStack.append(attr.row)
					break

		while(len(updateStack) > 0):
			item = updateStack.pop()
			saveKey = item[0]
			saveValue = item[1]
			attr = self.attributeList[item[2]]

			if(attr.type == 'combo'):
				comboView = self.cellWidget(attr.row, 0)
				index = comboView.findText(units._fromUtf8(attr.getChildShowValue(saveValue)))
				if(index == -1):
					index = 0
				comboView.setCurrentIndex(index)
			elif(attr.type == 'text'):
				textView = self.item(attr.row, 0)
				textView.setText(units._fromUtf8(saveValue))
コード例 #13
0
    def changeDescFile(self, string):
        string = unicode(string.toUtf8(), 'utf-8', 'ignore')
        self.descFullPath = os.path.join(self.mDirPath, string)
        if (os.path.exists(self.descFullPath) == False):
            return
        sheets = ExcelMgr.getExcelSheets(self.descFullPath)

        self.comboBox_6.clear()
        for name in sheets:
            self.comboBox_6.addItem(units._fromUtf8(name))
コード例 #14
0
    def changeSrcSheet(self, string):
        if (os.path.exists(self.srcFullPath) == False):
            return
        string = unicode(string.toUtf8(), 'utf-8', 'ignore')
        if (len(string) < 1):
            return
        titles = ExcelMgr.getExcelTitles(self.srcFullPath, string)

        self.comboBox_4.clear()
        for name in titles:
            self.comboBox_4.addItem(units._fromUtf8(name))
コード例 #15
0
    def setAttbribute(self, unitData):
        if (self.isMultiSelectionModel() == False):
            if (self.index != None and self.index.isValid()):
                currIndex = self.selectionModel().currentIndex()
                if (self.index.internalPointer() ==
                        currIndex.internalPointer()):
                    parentIndex = self.model.parent(currIndex)
                    index = self.model.index(currIndex.row(), 0, parentIndex)
                    self.model.setData(
                        index, QtCore.QVariant(units._fromUtf8(unitData.type)))

                    index = self.model.index(currIndex.row(), 1, parentIndex)
                    self.model.setData(index, QtCore.QVariant(""))

                    index = self.model.index(currIndex.row(), 2, parentIndex)
                    self.model.setData(
                        index,
                        QtCore.QVariant(units._fromUtf8(unitData.sentence)))

                    item = index.internalPointer()
                    item.unitData.attrib = copy.deepcopy(unitData.attrib)
        else:
            selectionModel = self.selectionModel()
            indexes = selectionModel.selectedIndexes()
            number = len(indexes)

            indexRowList = []
            for index in indexes:

                parentIndex = self.model.parent(index)
                index = self.model.index(index.row(), 1, parentIndex)
                self.model.setData(index, QtCore.QVariant(""))

                row = index.row()
                if not (row in indexRowList):
                    indexRowList.append(row)
                    item = index.internalPointer()
                    for (key, value) in unitData.attrib.iteritems():
                        item.unitData.attrib[key] = value
                        item.unitData.attrib = AttributeData.MatchMgr(
                        ).filterAttribute(item.unitData.attrib)
コード例 #16
0
ファイル: RuleView.py プロジェクト: zhlikezhz/tools
	def __init__(self, parent = None):
		super(RuleView, self).__init__(parent)

		self.model = QtGui.QStandardItemModel()
		self.model.setColumnCount(8)
		self.model.setHeaderData(0, QtCore.Qt.Horizontal, units._fromUtf8('类型'))
		self.model.setHeaderData(1, QtCore.Qt.Horizontal, units._fromUtf8('源excel'))
		self.model.setHeaderData(2, QtCore.Qt.Horizontal, units._fromUtf8('源sheet'))
		self.model.setHeaderData(3, QtCore.Qt.Horizontal, units._fromUtf8('源title'))
		self.model.setHeaderData(4, QtCore.Qt.Horizontal, units._fromUtf8('目标excel'))
		self.model.setHeaderData(5, QtCore.Qt.Horizontal, units._fromUtf8('目标sheet'))
		self.model.setHeaderData(6, QtCore.Qt.Horizontal, units._fromUtf8('目标title'))
		self.model.setHeaderData(7, QtCore.Qt.Horizontal, units._fromUtf8('格式'))
		self.setModel(self.model)
		self.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignLeft)
コード例 #17
0
    def initData(self, filename='config.xml'):
        self.setRowCount(0)
        self.setColumnCount(0)
        size = len(self.attributeList)

        if (size > 0):
            self.setRowCount(size)
            self.setColumnCount(1)

            for attr in self.attributeList:
                item = QtGui.QTableWidgetItem()
                item.setText(units._fromUtf8(attr.getShowValue()))
                self.setVerticalHeaderItem(attr.row, item)

                if (attr.type == 'combo'):
                    comboView = MComBoBox()
                    self.setCellWidget(attr.row, 0, comboView)
                    comboView.setPosition(attr.row, 0)
                    comboView.addItem('')
                    for combo in attr.comboList:
                        comboView.addItem(units._fromUtf8(
                            combo.getShowValue()))
                    comboView.connectCallback(self.changed)
                elif (attr.type == 'text'):
                    self.setItem(attr.row, 0, QtGui.QTableWidgetItem())

            cnt = 0
            headValue = ["值"]
            for string in headValue:
                item = QtGui.QTableWidgetItem()
                item.setText(units._fromUtf8(string))
                self.setHorizontalHeaderItem(cnt, item)
                cnt += 1

            self.resizeRowsToContents()
            self.resizeColumnsToContents()
            self.setCurrentCell(0, 0)
コード例 #18
0
ファイル: RuleView.py プロジェクト: zhlikezhz/tools
	def setRule(self, row, unit):
		item = self.model.index(row, 0)
		self.model.setData(item, units._fromUtf8(unit.mType), QtCore.Qt.EditRole)
		item = self.model.index(row, 1)
		self.model.setData(item, units._fromUtf8(unit.mSrcName), QtCore.Qt.EditRole)
		item = self.model.index(row, 2)
		self.model.setData(item, units._fromUtf8(unit.mSrcSheet), QtCore.Qt.EditRole)
		item = self.model.index(row, 3)
		self.model.setData(item, units._fromUtf8(unit.mSrcTitle), QtCore.Qt.EditRole)
		item = self.model.index(row, 4)
		self.model.setData(item, units._fromUtf8(unit.mDescName), QtCore.Qt.EditRole)
		item = self.model.index(row, 5)
		self.model.setData(item, units._fromUtf8(unit.mDescSheet), QtCore.Qt.EditRole)
		item = self.model.index(row, 6)
		self.model.setData(item, units._fromUtf8(unit.mDescTitle), QtCore.Qt.EditRole)
		item = self.model.index(row, 7)
		self.model.setData(item, units._fromUtf8(unit.mRule), QtCore.Qt.EditRole)
コード例 #19
0
ファイル: RuleView.py プロジェクト: zhlikezhz/tools
	def addRule(self, row, rule):
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mType))
		self.model.setItem(row, 0, item)
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mSrcName))
		self.model.setItem(row, 1, item)
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mSrcSheet))
		self.model.setItem(row, 2, item)
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mSrcTitle))
		self.model.setItem(row, 3, item)
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mDescName))
		self.model.setItem(row, 4, item)
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mDescSheet))
		self.model.setItem(row, 5, item)
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mDescTitle))
		self.model.setItem(row, 6, item)
		item =  QtGui.QStandardItem(units._fromUtf8(rule.mRule))
		self.model.setItem(row, 7, item)
コード例 #20
0
ファイル: ChapterView.py プロジェクト: zhlikezhz/tools
    def setAttbribute(self, unitData):
        if self.isMultiSelectionModel() == False:
            if self.index != None and self.index.isValid():
                currIndex = self.selectionModel().currentIndex()
                if self.index.internalPointer() == currIndex.internalPointer():
                    parentIndex = self.model.parent(currIndex)
                    index = self.model.index(currIndex.row(), 0, parentIndex)
                    self.model.setData(index, QtCore.QVariant(units._fromUtf8(unitData.type)))

                    index = self.model.index(currIndex.row(), 1, parentIndex)
                    self.model.setData(index, QtCore.QVariant(""))

                    index = self.model.index(currIndex.row(), 2, parentIndex)
                    self.model.setData(index, QtCore.QVariant(units._fromUtf8(unitData.sentence)))

                    item = index.internalPointer()
                    item.unitData.attrib = copy.deepcopy(unitData.attrib)
        else:
            selectionModel = self.selectionModel()
            indexes = selectionModel.selectedIndexes()
            number = len(indexes)

            indexRowList = []
            for index in indexes:

                parentIndex = self.model.parent(index)
                index = self.model.index(index.row(), 1, parentIndex)
                self.model.setData(index, QtCore.QVariant(""))

                row = index.row()
                if not (row in indexRowList):
                    indexRowList.append(row)
                    item = index.internalPointer()
                    for (key, value) in unitData.attrib.iteritems():
                        item.unitData.attrib[key] = value
                        item.unitData.attrib = AttributeData.MatchMgr().filterAttribute(item.unitData.attrib)
コード例 #21
0
ファイル: AttributeView.py プロジェクト: zhlikezhz/tools
	def updateData(self, attr, value):
		if(attr.hasChild == False):
			return 

		for child in attr.children:
			if(child.type == 'combo'):
				comboView = self.cellWidget(child.row, 0)
				comboView.clear()
				comboView.addItem('')
				for combo in child.comboList:
					if(combo.parentName == value):
						comboView.addItem(units._fromUtf8(combo.getShowValue()))
				comboView.setCurrentIndex(0)
		self.resizeRowsToContents()
		self.resizeColumnsToContents()
コード例 #22
0
ファイル: AttributeView.py プロジェクト: zhlikezhz/tools
	def initData(self, filename = 'config.xml'):
		self.setRowCount(0)
		self.setColumnCount(0)
		size = len(self.attributeList)

		if(size > 0):
			self.setRowCount(size)
			self.setColumnCount(1)

			for attr in self.attributeList:
				item = QtGui.QTableWidgetItem()
				item.setText(units._fromUtf8(attr.getShowValue()))
				self.setVerticalHeaderItem(attr.row, item)

				if(attr.type == 'combo'):
					comboView = MComBoBox()
					self.setCellWidget(attr.row, 0, comboView)
					comboView.setPosition(attr.row, 0)
					comboView.addItem('')
					for combo in attr.comboList:
						comboView.addItem(units._fromUtf8(combo.getShowValue()))
					comboView.connectCallback(self.changed)
				elif(attr.type == 'text'):
					self.setItem(attr.row, 0, QtGui.QTableWidgetItem())

			cnt = 0
			headValue = ["值"]
			for string in headValue:
				item = QtGui.QTableWidgetItem()
				item.setText(units._fromUtf8(string))
				self.setHorizontalHeaderItem(cnt, item)
				cnt += 1

			self.resizeRowsToContents()
			self.resizeColumnsToContents()
			self.setCurrentCell(0, 0)
コード例 #23
0
    def __init__(self, parent=None):
        super(RuleEdit, self).__init__(parent)
        self.setupUi(self)

        self.mDirPath = ''
        self.srcFullPath = ''
        self.descFullPath = ''
        self.mFileList = []

        # self.comboBox.addItem(units._fromUtf8('关联'))
        # self.comboBox.addItem(units._fromUtf8('格式匹配'))
        # self.comboBox.addItem(units._fromUtf8('数据范围'))
        for val in CheckType:
            self.comboBox.addItem(units._fromUtf8(val))

        self.unit = CheckUnit()
コード例 #24
0
    def updateData(self, attr, value):
        if (attr.hasChild == False):
            return

        for child in attr.children:
            if (child.type == 'combo'):
                comboView = self.cellWidget(child.row, 0)
                comboView.clear()
                comboView.addItem('')
                for combo in child.comboList:
                    if (combo.parentName == value):
                        comboView.addItem(units._fromUtf8(
                            combo.getShowValue()))
                comboView.setCurrentIndex(0)
        self.resizeRowsToContents()
        self.resizeColumnsToContents()
コード例 #25
0
ファイル: ChapterView.py プロジェクト: zhlikezhz/tools
    def clickRowRight(self):
        if self.model == None or self.selectionModel() == None:
            return False

        index = self.selectionModel().currentIndex()

        if index.isValid():
            item = self.model.getItem(index)

            menu = QtGui.QMenu()
            if item.getType() == "dialog":
                menu.addAction(units._fromUtf8("新建"), self.addItem)
                menu.addAction(units._fromUtf8("删除"), self.deleteItem)
            elif item.getType() == "choose":
                menu.addAction(units._fromUtf8("新建"), self.addItem)
                menu.addAction(units._fromUtf8("删除"), self.deleteItem)
                menu.addAction(units._fromUtf8("新建子节点"), self.appendItem)
            elif item.getType() == "branch":
                menu.addAction(units._fromUtf8("新建"), self.addItem)
                menu.addAction(units._fromUtf8("删除"), self.deleteItem)
                menu.addAction(units._fromUtf8("新建子节点"), self.appendItem)
            menu.exec_(QtGui.QCursor.pos())
コード例 #26
0
ファイル: AttributeView.py プロジェクト: zhlikezhz/tools
	def __init__(self, parent = None):
		super(MComBoBox, self).__init__(parent)
		QtCore.QObject.connect(self, QtCore.SIGNAL(units._fromUtf8("currentIndexChanged(int)")), self.comboChanged)
		self.callbackList = []
コード例 #27
0
ファイル: StoryView.py プロジェクト: zhlikezhz/tools
	def headerData(self, setion, orientation, role = QtCore.Qt.DisplayRole):
		if(role == QtCore.Qt.DisplayRole and orientation == QtCore.Qt.Horizontal):
			if(setion == 0):
				return units._fromUtf8("类型")
		return None
コード例 #28
0
ファイル: StoryView.py プロジェクト: zhlikezhz/tools
	def data(self, column):
		if(column == 0):
			return units._fromUtf8(self.unitData.desc)
		return None
コード例 #29
0
 def setFileList(self, fileList):
     self.mFileList = fileList
     for name in fileList:
         self.comboBox_2.addItem(units._fromUtf8(name))
         self.comboBox_5.addItem(units._fromUtf8(name))
コード例 #30
0
ファイル: StoryView.py プロジェクト: zhlikezhz/tools
 def data(self, column):
     if (column == 0):
         return units._fromUtf8(self.unitData.desc)
     return None
コード例 #31
0
 def __init__(self, parent=None):
     super(MComBoBox, self).__init__(parent)
     QtCore.QObject.connect(
         self, QtCore.SIGNAL(units._fromUtf8("currentIndexChanged(int)")),
         self.comboChanged)
     self.callbackList = []