예제 #1
0
 def select_database(uim):
     dlg = QFileDialog()
     opt = QFileDialog.ShowDirsOnly
     if uim.hs.db_dpath is None:
         db_dpath = str(dlg.getExistingDirectory(caption='Open/New Database', options=opt))
     else:
         db_dpath = str(dlg.getExistingDirectory(\
                    caption='Open/New Database', options=opt, directory=uim.hs.db_dpath))
     return db_dpath
예제 #2
0
 def select_database(uim):
     dlg = QFileDialog()
     opt = QFileDialog.ShowDirsOnly
     if uim.hs.db_dpath is None:
         db_dpath = str(
             dlg.getExistingDirectory(caption='Open/New Database',
                                      options=opt))
     else:
         db_dpath = str(dlg.getExistingDirectory(\
                    caption='Open/New Database', options=opt, directory=uim.hs.db_dpath))
     return db_dpath
 def selectDirectory(self):
     directory = QFileDialog.getExistingDirectory(QFileDialog())
     if len(directory) > 0:
         directory = pathlib.Path(directory).resolve()
         if directory.exists():
             self._rddtDataExtractor.defaultPath = directory
             self.directoryBox.setText(str(directory))
             self.setUnsavedChanges(True)
예제 #4
0
 def _select_other_dialog(self):
     path = str(QFileDialog.getExistingDirectory(self, "Select purrlog", self.dirname))
     if not path:
         return
     if not Purr.Purrer.is_purrlog(path):
         QMessageBox.warning(self, "Invalid purrlog",
                             "The path you have selected, <tt>%s</tt>, does not refer to a valid purrlog." % Kittens.utils.collapseuser(
                                 path))
         return
     self.load_path = path
     self.wother.setText(Kittens.utils.collapseuser(path))
     self.checkCompleteness()
예제 #5
0
    def on_browseDestButton_clicked(self, checked=None):
        """
        Called when browse button for destination is clicked.
        Opens a dialog for selecting a path.
        """
        if checked is None: return
        fileDialog = QFileDialog()

        path = str(fileDialog.getExistingDirectory(self, 'Set directory',
                                                   '/home/'))
        if path != '':
            path = path.replace(" ", "\ ")
            self.ui.lineEditDestPath.setText(path)
예제 #6
0
    def _outputLocationPath(self):
        """
        Opens QFileDialog so that user can specify the output
        directory location. The result is stored in self._dirPath.
        """

        self._dirPath = (str(
            QFileDialog.getExistingDirectory(
                self, "Open Directory", "",
                QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)))

        self._dirPath = os.path.normpath(self._dirPath)

        self._dialog.outputLineEdit.setText(self._dirPath)
예제 #7
0
 def _showAddDirectoryDialog(self):
     dd = str(QFileDialog.getExistingDirectory(self, "PURR: Add a directory to monitor")).strip()
     if dd:
         # adds a watched directory. Default initial setting of 'watching' is POUNCE if all
         # directories are in POUNCE state, or WATCHED otherwise.
         watching = max(Purr.WATCHED,
                        min([state for path, state in self.purrer.watchedDirectories()] or [Purr.WATCHED]))
         self.purrer.addWatchedDirectory(dd, watching)
         self.purrpipes[dd] = Purr.Pipe.open(dd)
         self.wdirlist.add(dd, watching)
         # update dialogs since dir list has changed
         dirs = [path for path, state in self.purrer.watchedDirectories()]
         self.new_entry_dialog.setDefaultDirs(*dirs)
         self.view_entry_dialog.setDefaultDirs(*dirs)
예제 #8
0
    def stepSaveAs(self, phase=0):
        if phase == 0:
            self.setWindowTitle(QString(u'Сохранение файла'))
            self.progressBar.setValue(90)
            self.emitStep(self.stepSaveAs, 1)
            return

        saveCat = QFileDialog.getExistingDirectory(
            None, u"Сохранить в каталог", u"./logs", QFileDialog.ShowDirsOnly
            | QFileDialog.DontResolveSymlinks)
        print("save to " + saveCat)
        QtCore.QFile.remove(saveCat + '/' + getFile)
        if False == QtCore.QFile.copy(getFile, saveCat + '/' + getFile):
            print("error")
        QtCore.QFile.remove(getFile)

        app.closeAllWindows()
예제 #9
0
    def browseDirectories(self):
       """Slot method for the browse button of library page. """
       # Determine what directory to open.
       if self.w.assy.filename:
           odir = os.path.dirname(self.w.assy.filename)
       else:
           from utilities.prefs_constants import workingDirectory_prefs_key
           odir = env.prefs[workingDirectory_prefs_key]

       fdir = QFileDialog.getExistingDirectory(self, "Choose library directory", odir)
       libDir = str(fdir)
       if libDir and os.path.isdir(libDir):
           env.prefs[self.libPathKey] = libDir
           self.dirView.setRootPath(libDir)
           #Refresh GL-thumbView display
           self.newModel = None
           self.elemGLPane.updateModel(self.newModel)
예제 #10
0
 def stepSaveAs(self, phase = 0):
     if phase == 0:
         self.setWindowTitle(QString(u'Сохранение файла'))
         self.progressBar.setValue(90)
         self.emitStep(self.stepSaveAs, 1)
         return
     
     saveCat = QFileDialog.getExistingDirectory(None, u"Сохранить в каталог",
                                                 u"./logs",
                                                 QFileDialog.ShowDirsOnly
                                               | QFileDialog.DontResolveSymlinks);
     print("save to " + saveCat)
     QtCore.QFile.remove( saveCat+'/' + getFile)
     if False == QtCore.QFile.copy(getFile, saveCat+'/' + getFile):
         print("error");
     QtCore.QFile.remove( getFile)
        
     app.closeAllWindows()
예제 #11
0
 def _showAddDirectoryDialog(self):
     dd = str(
         QFileDialog.getExistingDirectory(
             self, "PURR: Add a directory to monitor")).strip()
     if dd:
         # adds a watched directory. Default initial setting of 'watching' is POUNCE if all
         # directories are in POUNCE state, or WATCHED otherwise.
         watching = max(
             Purr.WATCHED,
             min([
                 state for path, state in self.purrer.watchedDirectories()
             ] or [Purr.WATCHED]))
         self.purrer.addWatchedDirectory(dd, watching)
         self.purrpipes[dd] = Purr.Pipe.open(dd)
         self.wdirlist.add(dd, watching)
         # update dialogs since dir list has changed
         dirs = [path for path, state in self.purrer.watchedDirectories()]
         self.new_entry_dialog.setDefaultDirs(*dirs)
         self.view_entry_dialog.setDefaultDirs(*dirs)
예제 #12
0
    def __init__(self, title=_('Choose Files'),
                       filters=[],
                       add_all_files_filter=True,
                       parent=None,
                       modal=True,
                       name='',
                       mode=QFileDialog.ExistingFiles,
                       default_dir=u'~',
                       no_save_dir=False,
                       combine_file_and_saved_dir=False
                       ):
        QObject.__init__(self)
        ftext = ''
        if filters:
            for filter in filters:
                text, extensions = filter
                extensions = ['*'+(i if i.startswith('.') else '.'+i) for i in
                        extensions]
                ftext += '%s (%s);;'%(text, ' '.join(extensions))
        if add_all_files_filter or not ftext:
            ftext += 'All files (*)'
        if ftext.endswith(';;'):
            ftext = ftext[:-2]

        self.dialog_name = name if name else 'dialog_' + title
        self.selected_files = None
        self.fd = None

        if combine_file_and_saved_dir:
            bn = os.path.basename(default_dir)
            prev = dynamic.get(self.dialog_name,
                    expanduser(u'~'))
            if os.path.exists(prev):
                if os.path.isfile(prev):
                    prev = os.path.dirname(prev)
            else:
                prev = expanduser(u'~')
            initial_dir = os.path.join(prev, bn)
        elif no_save_dir:
            initial_dir = expanduser(default_dir)
        else:
            initial_dir = dynamic.get(self.dialog_name,
                    expanduser(default_dir))
        if not isinstance(initial_dir, basestring):
            initial_dir = expanduser(default_dir)
        if not initial_dir or (not os.path.exists(initial_dir) and not (
                mode == QFileDialog.AnyFile and (no_save_dir or combine_file_and_saved_dir))):
            initial_dir = select_initial_dir(initial_dir)
        self.selected_files = []
        use_native_dialog = 'CALIBRE_NO_NATIVE_FILEDIALOGS' not in os.environ
        with SanitizeLibraryPath():
            opts = QFileDialog.Option()
            if not use_native_dialog:
                opts |= QFileDialog.DontUseNativeDialog
            if mode == QFileDialog.AnyFile:
                f = unicode(QFileDialog.getSaveFileName(parent, title,
                    initial_dir, ftext, "", opts))
                if f:
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFile:
                f = unicode(QFileDialog.getOpenFileName(parent, title,
                    initial_dir, ftext, "", opts))
                if f and os.path.exists(f):
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFiles:
                fs = QFileDialog.getOpenFileNames(parent, title, initial_dir,
                        ftext, "", opts)
                for f in fs:
                    f = unicode(f)
                    if not f:
                        continue
                    if not os.path.exists(f):
                        # QFileDialog for some reason quotes spaces
                        # on linux if there is more than one space in a row
                        f = unquote(f)
                    if f and os.path.exists(f):
                        self.selected_files.append(f)
            else:
                if mode == QFileDialog.Directory:
                    opts |= QFileDialog.ShowDirsOnly
                f = unicode(QFileDialog.getExistingDirectory(parent, title, initial_dir, opts))
                if os.path.exists(f):
                    self.selected_files.append(f)
        if self.selected_files:
            self.selected_files = [unicode(q) for q in self.selected_files]
            saved_loc = self.selected_files[0]
            if os.path.isfile(saved_loc):
                saved_loc = os.path.dirname(saved_loc)
            if not no_save_dir:
                dynamic[self.dialog_name] = saved_loc
        self.accepted = bool(self.selected_files)
예제 #13
0
 def search_directory(self):
     self.save_dir = str(
         QFileDialog.getExistingDirectory(self, "Select Directory"))
     self.init.save_directory.setText(self.save_dir +
                                      str(datetime.now().date()) + '/')
예제 #14
0
파일: __init__.py 프로젝트: randy1/calibre
    def __init__(
        self,
        title=_("Choose Files"),
        filters=[],
        add_all_files_filter=True,
        parent=None,
        modal=True,
        name="",
        mode=QFileDialog.ExistingFiles,
        default_dir="~",
        no_save_dir=False,
    ):
        QObject.__init__(self)
        ftext = ""
        if filters:
            for filter in filters:
                text, extensions = filter
                extensions = ["*" + (i if i.startswith(".") else "." + i) for i in extensions]
                ftext += "%s (%s);;" % (text, " ".join(extensions))
        if add_all_files_filter or not ftext:
            ftext += "All files (*)"
        if ftext.endswith(";;"):
            ftext = ftext[:-2]

        self.dialog_name = name if name else "dialog_" + title
        self.selected_files = None
        self.fd = None

        if no_save_dir:
            initial_dir = os.path.expanduser(default_dir)
        else:
            initial_dir = dynamic.get(self.dialog_name, os.path.expanduser(default_dir))
        if not isinstance(initial_dir, basestring):
            initial_dir = os.path.expanduser(default_dir)
        self.selected_files = []
        use_native_dialog = "CALIBRE_NO_NATIVE_FILEDIALOGS" not in os.environ
        with SanitizeLibraryPath():
            opts = QFileDialog.Option()
            if not use_native_dialog:
                opts |= QFileDialog.DontUseNativeDialog
            if mode == QFileDialog.AnyFile:
                f = unicode(QFileDialog.getSaveFileName(parent, title, initial_dir, ftext, "", opts))
                if f:
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFile:
                f = unicode(QFileDialog.getOpenFileName(parent, title, initial_dir, ftext, "", opts))
                if f and os.path.exists(f):
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFiles:
                fs = QFileDialog.getOpenFileNames(parent, title, initial_dir, ftext, "", opts)
                for f in fs:
                    f = unicode(f)
                    if not f:
                        continue
                    if not os.path.exists(f):
                        # QFileDialog for some reason quotes spaces
                        # on linux if there is more than one space in a row
                        f = unquote(f)
                    if f and os.path.exists(f):
                        self.selected_files.append(f)
            else:
                if mode == QFileDialog.Directory:
                    opts |= QFileDialog.ShowDirsOnly
                f = unicode(QFileDialog.getExistingDirectory(parent, title, initial_dir, opts))
                if os.path.exists(f):
                    self.selected_files.append(f)
        if self.selected_files:
            self.selected_files = [unicode(q) for q in self.selected_files]
            saved_loc = self.selected_files[0]
            if os.path.isfile(saved_loc):
                saved_loc = os.path.dirname(saved_loc)
            if not no_save_dir:
                dynamic[self.dialog_name] = saved_loc
        self.accepted = bool(self.selected_files)
예제 #15
0
    def run_scanner(self, pressed):
        # Startup
        self.ui.scan_progressBar.setValue(0)
        scan_path = str(QFileDialog.getExistingDirectory(self, u"انتخاب پوشه برای اسکن"))
        self.ui.checkedFiles.clear()
        self.ui.checkedFiles.append(u'<font color=blue>شروع…</font>')
        if 'WINDIR' in os.environ and scan_path == '':
            scan_path = os.environ['WINDIR']
        elif scan_path == '':
            self.WarningEvent(u'پوشه‌ای برای اسکن انتخاب نشده',u'اخطار')
            return

        # Compromised marker
        compromised = False
        c = 0

        # Compiling yara rules
        if os.path.exists('regin_rules.yar'):
            self.ui.checkedFiles.append(u'<font color=green>آماه سازی …</font>')
            self.ui.checkedFiles.append(u'<font color=green>ممکن است عملیات کمی زمانبر باشد... صبور باشید</font>')
            QtGui.QApplication.processEvents()

            rules = yara.compile('regin_rules.yar')
        else: 
            self.WarningEvent(u'فایل مربوط به مشخصات بدافزار یافت نشد',u'اخطار')
            return
        
        QtGui.QApplication.processEvents()
        x = value = 0
        for root, dirs, files in os.walk(scan_path):
            for f in files:
                x = x+1
        x = 100.0/x

        for root, directories, files in scandir.walk(scan_path, onerror=walkError, followlinks=False):
                # Loop through files
            for filename in files:
                try:

                    # Get the file and path
                    filePath = os.path.join(root,filename)

                    # Counter
                    c += 1

                    self.ui.checkedFiles.append(u"[اسکن فایلِ] %s" % filePath.decode('utf-8'))
                    QtGui.QApplication.processEvents()

                    file_size = 0
                    try:
                        file_size = os.stat(filePath).st_size
                    except:
                        pass

                    # File Name Checks -------------------------------------------------
                    for file in EVIL_FILES:
                        if file in filePath:
                            # print  "\bREGIN File Name MATCH: %s" % filePath
                            compromised = True

                    # Yara Check -------------------------------------------------------
                    if 'rules' in locals():
                        if file_size < 500000:
                            try:
                                matches = rules.match(filePath)
                                if matches:
                                    for match in matches:
                                        # print  "\bREGIN Yara Rule MATCH: %s FILE: %s" % ( match, filePath)
                                        compromised = True
                            except Exception, e:
                                print e

                    # Hash Check -------------------------------------------------------
                    if file_size < 500000:
                        if sha256(filePath) in EVIL_HASHES:
                            # print  "\bREGIN SHA256 Hash MATCH: %s FILE: %s" % ( sha256(filePath), filePath)
                            compromised = True

                    # CRC Check --------------------------------------------------------
                    try:
                        if file_size <= 11:
                            continue

                        # Code from Paul Rascagneres
                        fp = open(filePath, 'r')
                        SectorSize=fp.read(2)[::-1]
                        MaxSectorCount=fp.read(2)[::-1]
                        MaxFileCount=fp.read(2)[::-1]
                        FileTagLength=fp.read(1)[::-1]
                        CRC32custom=fp.read(4)[::-1]
                        fp.close()

                        fp = open(filePath, 'r')
                        data=fp.read(0x7)
                        crc = binascii.crc32(data, 0x45)
                        crc2 = '%08x' % (crc & 0xffffffff)


                        if CRC32custom.encode('hex') == crc2:
                            # print  "\bREGIN Virtual Filesystem MATCH: %s" % filePath
                            compromised = True

                    except Exception, e:
                        print e

                except Exception, e:
                    print e
예제 #16
0
    def __init__(self,
                 title=_('Choose Files'),
                 filters=[],
                 add_all_files_filter=True,
                 parent=None,
                 modal=True,
                 name='',
                 mode=QFileDialog.ExistingFiles,
                 default_dir='~'):
        QObject.__init__(self)
        ftext = ''
        if filters:
            for filter in filters:
                text, extensions = filter
                extensions = [
                    '*' + (i if i.startswith('.') else '.' + i)
                    for i in extensions
                ]
                ftext += '%s (%s);;' % (text, ' '.join(extensions))
        if add_all_files_filter or not ftext:
            ftext += 'All files (*)'
        if ftext.endswith(';;'):
            ftext = ftext[:-2]

        self.dialog_name = name if name else 'dialog_' + title
        self.selected_files = None
        self.fd = None

        initial_dir = dynamic.get(self.dialog_name,
                                  os.path.expanduser(default_dir))
        if not isinstance(initial_dir, basestring):
            initial_dir = os.path.expanduser(default_dir)
        self.selected_files = []
        with SanitizeLibraryPath():
            if mode == QFileDialog.AnyFile:
                f = unicode(
                    QFileDialog.getSaveFileName(parent, title, initial_dir,
                                                ftext, ""))
                if f:
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFile:
                f = unicode(
                    QFileDialog.getOpenFileName(parent, title, initial_dir,
                                                ftext, ""))
                if f and os.path.exists(f):
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFiles:
                fs = QFileDialog.getOpenFileNames(parent, title, initial_dir,
                                                  ftext, "")
                for f in fs:
                    f = unicode(f)
                    if not f: continue
                    if not os.path.exists(f):
                        # QFileDialog for some reason quotes spaces
                        # on linux if there is more than one space in a row
                        f = unquote(f)
                    if f and os.path.exists(f):
                        self.selected_files.append(f)
            else:
                opts = QFileDialog.ShowDirsOnly if mode == QFileDialog.Directory else QFileDialog.Option(
                )
                f = unicode(
                    QFileDialog.getExistingDirectory(parent, title,
                                                     initial_dir, opts))
                if os.path.exists(f):
                    self.selected_files.append(f)
        if self.selected_files:
            self.selected_files = [unicode(q) for q in self.selected_files]
            saved_loc = self.selected_files[0]
            if os.path.isfile(saved_loc):
                saved_loc = os.path.dirname(saved_loc)
            dynamic[self.dialog_name] = saved_loc
        self.accepted = bool(self.selected_files)
예제 #17
0
    def __init__(self,
                 title=_('Choose Files'),
                 filters=[],
                 add_all_files_filter=True,
                 parent=None,
                 modal=True,
                 name='',
                 mode=QFileDialog.ExistingFiles,
                 default_dir='~',
                 no_save_dir=False,
                 combine_file_and_saved_dir=False):
        QObject.__init__(self)
        ftext = ''
        if filters:
            for filter in filters:
                text, extensions = filter
                extensions = [
                    '*' + (i if i.startswith('.') else '.' + i)
                    for i in extensions
                ]
                ftext += '%s (%s);;' % (text, ' '.join(extensions))
        if add_all_files_filter or not ftext:
            ftext += 'All files (*)'
        if ftext.endswith(';;'):
            ftext = ftext[:-2]

        self.dialog_name = name if name else 'dialog_' + title
        self.selected_files = None
        self.fd = None

        if combine_file_and_saved_dir:
            bn = os.path.basename(default_dir)
            prev = dynamic.get(self.dialog_name, os.path.expanduser('~'))
            if os.path.exists(prev):
                if os.path.isfile(prev):
                    prev = os.path.dirname(prev)
            else:
                prev = os.path.expanduser('~')
            initial_dir = os.path.join(prev, bn)
        elif no_save_dir:
            initial_dir = os.path.expanduser(default_dir)
        else:
            initial_dir = dynamic.get(self.dialog_name,
                                      os.path.expanduser(default_dir))
        if not isinstance(initial_dir, basestring):
            initial_dir = os.path.expanduser(default_dir)
        if not initial_dir or (
                not os.path.exists(initial_dir)
                and not (mode == QFileDialog.AnyFile and
                         (no_save_dir or combine_file_and_saved_dir))):
            initial_dir = select_initial_dir(initial_dir)
        self.selected_files = []
        use_native_dialog = 'CALIBRE_NO_NATIVE_FILEDIALOGS' not in os.environ
        with SanitizeLibraryPath():
            opts = QFileDialog.Option()
            if not use_native_dialog:
                opts |= QFileDialog.DontUseNativeDialog
            if mode == QFileDialog.AnyFile:
                f = unicode(
                    QFileDialog.getSaveFileName(parent, title, initial_dir,
                                                ftext, "", opts))
                if f:
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFile:
                f = unicode(
                    QFileDialog.getOpenFileName(parent, title, initial_dir,
                                                ftext, "", opts))
                if f and os.path.exists(f):
                    self.selected_files.append(f)
            elif mode == QFileDialog.ExistingFiles:
                fs = QFileDialog.getOpenFileNames(parent, title, initial_dir,
                                                  ftext, "", opts)
                for f in fs:
                    f = unicode(f)
                    if not f:
                        continue
                    if not os.path.exists(f):
                        # QFileDialog for some reason quotes spaces
                        # on linux if there is more than one space in a row
                        f = unquote(f)
                    if f and os.path.exists(f):
                        self.selected_files.append(f)
            else:
                if mode == QFileDialog.Directory:
                    opts |= QFileDialog.ShowDirsOnly
                f = unicode(
                    QFileDialog.getExistingDirectory(parent, title,
                                                     initial_dir, opts))
                if os.path.exists(f):
                    self.selected_files.append(f)
        if self.selected_files:
            self.selected_files = [unicode(q) for q in self.selected_files]
            saved_loc = self.selected_files[0]
            if os.path.isfile(saved_loc):
                saved_loc = os.path.dirname(saved_loc)
            if not no_save_dir:
                dynamic[self.dialog_name] = saved_loc
        self.accepted = bool(self.selected_files)