Exemplo n.º 1
0
    def move_webprint_dir(self, dest):
        """Moves the webprint folder to a new location.

        Destination folder should not exist.
        If it does exist, it should be empty.

        If the webprint folder does not exist, creates it.
        Folder watching is temporarily stopped during this operation.
        """
        dest = str(dest)
        settings = Settings()
        webprint_dir = settings.getWebprintFolder()
        if os.path.exists(dest):
            #TODO: Handel errors on this delete
            shutil.rmtree(dest)
        os.mkdir(dest)
        if os.path.exists(webprint_dir):
            self.stop_watching()
            for f in os.listdir(webprint_dir):
                #TODO: Handel errors here
                shutil.move(os.path.join(webprint_dir, f), dest)
            os.rmdir(webprint_dir)
            settings.setWebprintFolder(dest)
            self.start_watching()
        else:
            #webprint folder does not exist
            settings.setWebprintFolder(dest)
            self.build_webprint_dir()
Exemplo n.º 2
0
    def start_watching(self):
        """Starts folder watching.

        Loads folders to watch from settings.
        """
        settings = Settings()
        webprint_dir = str(settings.getWebprintFolder())
        for (name, location) in settings.getInstalledPrinters():
            path = os.path.join(webprint_dir, str(location))
            self.observer.schedule(self.event_handler, path)
Exemplo n.º 3
0
 def __init__(self, parent=None):
     super(FolderWatcher, self).__init__(parent)
     settings = Settings()
     self.event_handler = _NewFileEventHandler()
     self.event_handler.addJob.connect(self.addJob)
     if not os.path.exists(settings.getWebprintFolder()):
         self.build_webprint_dir()
     self.observer = Observer()
     self.observer.start()
     self.start_watching()
Exemplo n.º 4
0
    def build_webprint_dir(self):
        """Create print folders in the 'webprint' directory.

        Delete files and folders not listed in settings.
        Creates the webprint directory if it does not exist.
        Folder watching is temporarily stopped during this operation.
        """
        self.stop_watching()
        settings = Settings()
        webprint_dir = settings.getWebprintFolder()
        if not os.path.exists(webprint_dir):
            os.makedirs(webprint_dir)
        folders = [location for (name, location) in
                    settings.getInstalledPrinters()]
        ls = os.listdir(webprint_dir)
        for folder in folders:
            if folder not in ls:
                os.mkdir(os.path.join(webprint_dir, folder))
            else:
                ls.remove(folder)
        for item in ls:
            shutil.rmtree(os.path.join(webprint_dir, item))
        self.start_watching()