예제 #1
0
class PyDiry(launchy.Plugin):
	__version__ = "1.0"
	
	def __init__(self):
		launchy.Plugin.__init__(self)
		self.icon = os.path.join(launchy.getIconsPath(), "pydiry.ico")
		self.hash = launchy.hash(self.getName())
		self.labelHash = launchy.hash("pydiry")
		
		self.dirs = CaselessDict()
	
	def init(self):
		self.__readConfig()
		pass
	
	def getID(self):
		return self.hash
	
	def getName(self):
		return "PyDiry"
	
	def getIcon(self):
		return self.icon
	
	def getLabels(self, inputDataList):
		pass
	
	def getResults(self, inputDataList, resultsList):
		inputs = len(inputDataList)
		
		if inputs != 2:
			return
		
		firstText = inputDataList[0].getText()
		if not self.dirs.has_key(firstText):
			return
		
		path = self.dirs[firstText]
		query = inputDataList[1].getText()
		
		if query == '':
			# Default query is '*'
			query = '*'
		elif not query.startswith('*') and not query.endswith('*'):
			# Add * at both sides to ease searching
			query = '*%s*' % query
		
		pathContents = glob.glob(os.path.join(path, query))
		pathContents.sort()
		
		for itemPath in pathContents:
			resultsList.append( launchy.CatItem(itemPath, self.__makeShortName(itemPath), self.getID(), itemPath ) )
		
	def getCatalog(self, resultsList):
		for name,path in self.dirs.items():
			resultsList.push_back( launchy.CatItem( name + ".pydiry", name, self.getID(), self.getIcon() ) )
		
	def launchItem(self, inputDataList, catItemOrig):
		catItem = inputDataList[-1].getTopResult()
		if catItem.fullPath.endswith(".pydiry"):
			# Launch the directory itself
			try:
				path = self.dirs[catItem.shortName]
				launchy.runProgram(path, "")
			except:
				pass
		else:
			# Launchy a file or directory
			launchy.runProgram( catItem.fullPath, "" )
		
	def hasDialog(self):
		return True
		
	def doDialog(self, parentWidgetPtr):
		parentWidget = wrapinstance(parentWidgetPtr, QtGui.QWidget)
		
		self.widget = PyDiryGui.PyDiryUi(parentWidget)
		self.widget.show()
			
		return unwrapinstance(self.widget)
		
	def endDialog(self, accept):
		self.widget.hide()
		if accept:
			self.widget.writeSettings()
			self.__readConfig()
		
		del self.widget
		self.widget = None
	
	def __readConfig(self):
		settings = launchy.settings
		
		# Test if the settings file has PyDiry configuration
		version = settings.value("PyDiry/version", QVariant("0.0")).toString()
		print_debug("PyDiry version: " + version)
		if version == "0.0":
			settings.beginWriteArray("PyDiry/dirs")
			settings.setArrayIndex(0)
			settings.setValue("name", QVariant("My Documents"))
			settings.setValue("path", QVariant("%USERPROFILE%\\My Documents"))
			settings.endArray()
		
		# Set our version
		settings.setValue("PyDiry/version", QVariant(self.__version__))
		
		self.dirs.clear()
		
		# Read directories from the settings file
		size = settings.beginReadArray("PyDiry/dirs")
		for i in range(0, size):
			settings.setArrayIndex(i);
			name = unicode(settings.value("name").toString())
			path = unicode(settings.value("path").toString())
			self.dirs[name] = expandvars(path)
		settings.endArray()
		
	def __makeShortName(self, itemPath):
		try:
			return os.path.split(itemPath)[1]
		except:
			return itemPath
예제 #2
0
class PyDiry(launchy.Plugin):
    __version__ = "1.0"
    setting_dir = "PyDiryPy"
    #setting_dir = "py_directories/dirs"
    #setting_dir = "py_speedcommander/dirs"

    def __init__(self):
        launchy.Plugin.__init__(self)

        self.hash = launchy.hash(self.getName())
#        self.labelHash = launchy.hash("pydiry")

        self.dirs = CaselessDict()
        #self.icon = self.getIcon()

    def init(self):
        self.__readConfig()
        pass

    def getID(self):
        return int(self.hash)

    def getName(self):
        return "PyDiry"

    def setPath(self, path):
        self.path = path

    def getIcon(self):
        return self.path + "/pydiry.ico"

    def getLabels(self, inputDataList):
        pass

    def getResults(self, inputDataList, resultsList):
        inputs = len(inputDataList)

        if inputs != 2:
            return

        firstText = inputDataList[0].getText()
        if not self.dirs.has_key(firstText):
            return

        path = self.dirs[firstText]
        query = inputDataList[1].getText()

        if query == '':
            # Default query is '*'
            query = '*'
        elif not query.startswith('*') and not query.endswith('*'):
            # Add * at both sides to ease searching
            query = '*%s*' % query

        pathContents = glob.glob(os.path.join(path, query))
        pathContents.sort()

        for itemPath in pathContents:
            resultsList.append( launchy.CatItem(itemPath,
                                                self.__makeShortName(itemPath),
                                                self.getID(),
                                                itemPath ) )

    def getCatalog(self, resultsList):
        for name,path in self.dirs.items():
            resultsList.push_back( launchy.CatItem( name + ".pydiry",
                                                    name,
                                                    self.getID(),
                                                    self.getIcon() ) )

    def launchItem(self, inputDataList, catItemOrig):
        catItem = inputDataList[-1].getTopResult()
        if catItem.fullPath().endswith(".pydiry"):
            # Launch the directory itself
            try:
                path = self.dirs[catItem.shortName]
                launchy.runProgram(path, "")
                #import os,win32api
                #win32api.ShellExecute(0, '', os.path.join(working,"programs/nsis/~~~/makensisw.exe"), path, '', 1)# 前台打开
            except:
                pass
        else:
            # Launchy a file or directory
            launchy.runProgram(catItem.fullPath(), "" )

    def hasDialog(self):
        return True

    def doDialog(self, parentWidgetPtr):
        print(parentWidgetPtr)
        parentWidget = wrapinstance(parentWidgetPtr, QtWidgets.QWidget)

        self.widget = PyDiryGui.PyDiryUi(parentWidget, self.setting_dir)
        self.widget.show()

        return unwrapinstance(self.widget)

    def endDialog(self, accept):
        self.widget.hide()
        if accept:
            self.widget.writeSettings()
            self.__readConfig()

        del self.widget
        self.widget = None

    def __readConfig(self):
        settings = launchy.settings

        # Test if the settings file has PyDiry configuration
#        version = settings.value("PyDiry/version", QVariant("0.0")).toString()
#        print_debug("PyDiry version: " + version)
#        if version == "0.0":
#            settings.beginWriteArray(self.setting_dir)
#            settings.setArrayIndex(0)
#            settings.setValue("name", QVariant("My Documents"))
#            settings.setValue("path", QVariant("%USERPROFILE%\\My Documents"))
#            settings.endArray()
#
#        # Set our version
#        settings.setValue("PyDiry/version", QVariant(self.__version__))

        self.dirs.clear()

        # Read directories from the settings file
        size = settings.beginReadArray(self.setting_dir)
        for i in range(0, size):
            settings.setArrayIndex(i);
            name = settings.value("name")
            path = settings.value("path")
            self.dirs[name] = expandvars(path)
        settings.endArray()

    def __makeShortName(self, itemPath):
        try:
            return os.path.split(itemPath)[1]
        except:
            return itemPath

    def launchyShow(self):
        pass

    def launchyHide(self):
        pass
예제 #3
0
class PyDiry(launchy.Plugin):
    __version__ = "1.0"
    setting_dir = "PyDiryPy"

    def __init__(self):
        launchy.Plugin.__init__(self)
        self.hash = launchy.hash(self.getName())
        self.dirs = CaselessDict()

    def init(self):
        self.__readConfig()

    def getID(self):
        return int(self.hash)

    def getName(self):
        return "PyDiryPy"

    def setPath(self, path):
        self.path = path

    def getIcon(self):
        return self.path + "/pydiry.ico"

    def getLabels(self, inputDataList):
        pass

    def getResults(self, inputDataList, resultsList):
        if len(inputDataList) != 2:
            return

        firstText = inputDataList[0].getText()
        if not self.dirs.has_key(firstText):
            return

        path = self.dirs[firstText]
        query = inputDataList[1].getText()

        if query == '':
            # Default query is '*'
            query = '*'
        elif not query.startswith('*') and not query.endswith('*'):
            # Add * at both sides to ease searching
            query = '*%s*' % query

        pathContents = glob.glob(os.path.join(path, query))
        pathContents.sort()

        for itemPath in pathContents:
            resultsList.append(
                launchy.CatItem(itemPath, self.__makeShortName(itemPath),
                                self.getID(), itemPath))

    def getCatalog(self, resultsList):
        for name, path in self.dirs.items():
            resultsList.push_back(
                launchy.CatItem(name + ".pydiry", name, self.getID(),
                                self.getIcon()))

    def launchItem(self, inputDataList, catItemOrig):
        catItem = inputDataList[-1].getTopResult()
        if catItem.fullPath().endswith(".pydiry"):
            # Launch the directory itself
            try:
                path = self.dirs[catItem.shortName]
                launchy.runProgram(path, "")
            except:
                pass
        else:
            # Launchy a file or directory
            launchy.runProgram(catItem.fullPath(), "")

    def doDialog(self, parentWidgetPtr):
        parentWidget = wrapinstance(parentWidgetPtr, QtWidgets.QWidget)

        self.widget = PyDiryGui.PyDiryUi(parentWidget, self.setting_dir)
        self.widget.show()

        return unwrapinstance(self.widget)

    def endDialog(self, accept):
        self.widget.hide()
        if accept:
            self.widget.writeSettings()
            self.__readConfig()

        del self.widget
        self.widget = None

    def __readConfig(self):
        settings = launchy.settings
        self.dirs.clear()

        # Read directories from the settings file
        size = settings.beginReadArray(self.setting_dir)
        for i in range(0, size):
            settings.setArrayIndex(i)
            name = settings.value("name")
            path = settings.value("path")
            self.dirs[name] = expandvars(path)
        settings.endArray()

    def __makeShortName(self, itemPath):
        try:
            return os.path.split(itemPath)[1]
        except:
            return itemPath