odraencoded / pynorama Goto Github PK
View Code? Open in Web Editor NEWAn image viewer for viewing images
Home Page: http://odraencoded.github.io/pynorama/
License: GNU General Public License v3.0
An image viewer for viewing images
Home Page: http://odraencoded.github.io/pynorama/
License: GNU General Public License v3.0
This should allow images from the clipboard, network, or other slow or otherwise inaccessible sources to be temporarily kept as a file
Allow dynamically adding and removing mouse handlers, album layouts, file loaders and etc.
Although it would be ridiculous to program the OCR code in this project, there must be a way to use another project or online service to allow character recognition right from the image viewer.
I want to get preference profiles implemented in the image viewer.
The idea is that this completely unnecessary feature will help further normalize the already completely unnecessarily normalized preferences subsystem.
Preferences are currently divided into two objects:
A thing
The widget that changes the thing behavior.
Plus a pair of functions to save and load the preferences for/from the thing.
My proposal is that this should be refactored to become like this:
A thing. (whatever)
An object the handles preferences for the thing. (PreferencesObject)
An widget to edit said object. (PreferencesWidget)
Once this is done the following can be done.
Allows images to be dragged from the image viewer
The current auto-zoom system reapplies itself wrongly when window has been resized but the image the auto-zoom was enabled on is no longer the focus image.
Changes must be made so that won't happen!
Currently, application wide preferences are stored with GSettings and mouse related settings are stored in XML, I don't like it so it must be changed.
First, GSettings is waaaaaaaay too obtuse for an image viewer application preferences, so it should get ridden of.
Second, XML is waaaaaaaay too complicated for application preferences or mouse related preferences.
Move everything to JSON or YAML.
Probably JSON since python has a built-in module for JSON.
So image frames have a function to render themselves. Which sounded like a great idea, except for a few factors.
As you can see, this method has helped in literally nothing!
A better defined way of rendering must be implemented to allow image view to perform optimizations on drawing code, however, custom rendering code in views must be allowed, despite the fact I have no idea what is it ever going to be used for.
Allows ctrl+drag to act different than just a normal drag, alt + scroll wheel and et cetera
On trying to execute
aclocal && autoconf && automake --foreign --add-missing
./configure && make && make install
make
failed with the message
make[1]: *** No rule to make target `pynorama.in', needed by `pynorama'. Stop.
make[1]: Leaving directory `/home/anubhav/pynorama'
make: *** [all-recursive] Error 1
But renaming pynorama.in.in
to pynorama.in
and running make
again worked.
You should change the filename in the install scripts, or maybe rename the file itself.
Doing it will open the temp directory as an album instead
In the mouse options, it would be interesting to extend the pivot settings to include "mirrored" coordinates.
With a mirrored mouse pivot, when clicking on the top right corner of the view, for example, the pivot would be the bottom left corner. This would allow the mouse coordinates option to be meaningful in mouse handlers where it would be otherwise meaningless.
(The stretch mouse handler can't use mouse coordinates because you can't zoom out with it, only zoom in.)
Also I want to see what it would be like.
After opening an image the main window may freeze, drawing incorrectly and partially until it's resized.
Should allow for having multiple albums displayed in a single window
Somehow, GLib.utf8_collate_key_for_filename
raises an UnicodeEncodeError
when you try to sort filenames that have non-ascii characters.
Doesn't happen in Linux, but happens in Windows.
It doesn't work the same way with the image strip layout as it does with the default layout since it was designed in a single image use.
A new, awesomer setting must be designed to replace it.
Mouse mechanisms that need a button have a standard button widget for setting the mouse button associated with it.
Mouse mechanism that need a scroll wheel have no standard widgets. Make them.
Besides copying the current image, it would be neat if the image viewer could copy partial areas of the view marked by a selection box.
I spent a lot of time working in this whole file opening pipeline so it would be able to open an animated gif hidden inside a folder inside a rar downloaded from a link which was copied from the browser pasted on the image viewer after a series of non-blocking I/O calls, caching, and stateful recursive processing.
Turns out I need that functionality once in never. So I'm dropping it.
The whole file opening pipe line will be redesigned for the third... or fourth time? I don't know, I lost count. Let's hope I get it right this time.
This time focus will be given on removing useless classes and generic functionality. Turns out being generic doesn't pay out, and only serves to create a convoluted mess that can't be managed or worked on.
When this issue is marked as fixed there better be less lines of code in this thing than there were when it was created.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.