App-sitelenmute

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


* Handle UTF-8 encoded filenames including spaces and parenthesis in
  their names
* Handle long options (they all failed)

3.00

* Added tests
* Added to CPAN as App::sitelenmute
* Many new requirements, now handled via Makefile.PL and CPAN
* Removed requirement for threads
* Removed -u option; always update an existing gallery

sitelen-mute 2.0.0. 2018-05-11
------------------------------

* Forked and Changed name from fgallery
* Applied a number of patches from various people
* Support for browsers with Javascript disabled
* Support for meta data used by social media sites
* Overview page

fgallery 1.8.2: 2016-05-25
--------------------------

* Allow to generate a gallery directly on filesystems without hard-links.
* Fix generation failure on BSD systems (use a common set of "cp" arguments).
* Handle more malformed/missing EXIF timestamps.
* Use `Cpanel::JSON::XS` instead of `JSON::XS` (fixing errors in recent
  unsupported combinations of Perl / JSON::XS and threads).
* New `fgallery` man page provided by Guus Sliepen.


fgallery 1.8.1: 2016-02-02
--------------------------

* Fixed txt/xmp caption extraction for filenames with special characters.
* Fixed unicode handling in xmp/exif captions.


script/fcaption  view on Meta::CPAN

        if self.modified: self.save()
        self.load((self.current - 1) % len(self.files))

    def on_list(self, ev):
        if self.modified: self.save()
        self.load(self.list_files.currentRow())

    def on_undo(self, ev):
        self.load(self.current)

    def thumb_ready(self, thread, idx, path):
        icon = thread.image
        if not icon.isNull():
            crow = self.list_files.currentRow()
            item = self.list_files.takeItem(idx)
            item.setIcon(QtGui.QIcon(QtGui.QPixmap(icon)))
            self.list_files.insertItem(idx, item)
            self.list_files.setCurrentRow(crow)
        self.thumb_schedule()

    def thumb_schedule(self):
        if not self.missing_thumbs: return
        idx, path = self.missing_thumbs.pop(0)
        thread = BackgroundLoader(path, self.list_files.iconSize())
        thread.finished.connect(lambda: self.thumb_ready(thread, idx, path))
        thread.start()

    def set_files(self, files):
        self.files = list(files)
        self.list_files.clear()
        self.missing_thumbs = list(enumerate(files))
        for path in files:
            self.list_files.addItem(os.path.basename(path))
        if len(files) < 2:
            self.list_files.hide()
            self.btn_next.setEnabled(False)



( run in 0.489 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )