Code Monkey home page Code Monkey logo

drawing's People

Contributors

albanobattistella avatar alexislozano avatar arthurbacci avatar bilelmoussaoui avatar ericvoid avatar eson57 avatar etamuk avatar fabiocolacio avatar fulvio-alves avatar jordimas avatar kacperpaczos avatar kami911 avatar mahtiankka avatar maoschanz avatar matthaiks avatar mejans avatar milotype avatar moriel5 avatar oscfdezdz avatar pervoj avatar pkomur avatar rlbxku1r avatar scootergrisen avatar ser82-png avatar serdarsaglam avatar serkan-maker avatar tim77 avatar vabame avatar vistaus avatar xoan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

drawing's Issues

tablet+stylus input method not fully supported

Description

Holding BTN_TOOL_RUBBER stylus button doesn't temporary switch to eraser tool.

Steps to reproduce the bug:

  1. Draw something with stylus tilt
  2. Try to erase part of the drawing with stylus by holding BTN_TOOL_RUBBER button.

Expected behavior

As long as user hold BTN_TOOL_RUBBER button current tool is switched to eraser. When user is no longer holding BTN_TOOL_RUBBER button app should switch back from eraser to previous tool.

System

  • Device: HP Elite x2 1013 G3
  • OS: Ubuntu 19.04
  • Desktop environment: Gnome Shell 3.32.2
  • Package format: deb
  • App version: 0.4.1

Touchscreen gestures

Problem

the compatibility with the librem 5 is very theoric: it's hard to:

  • zoom
  • change tabs
  • drag the selection?
  • get the selection menu?
  • exit full-screen

Suggested solution

implement support for this https://developer.gnome.org/gtk3/stable/GtkGesture.html


the tablet stylus is the issue #69

Key+mouse combinaisons

Image-wide zoom management

  • ctrl+scroll = zoom

Handle #439 and #98

  • ctrl+hover = show tooltip as long as ctrl is pressed (in bold)
  • ctrl+click = show tooltip as long as the click isn't released (both bold and italic)

the tooltip has the coordinates in it, as well as tool-specific data:

  • color picker, color selection: help label for colorblind users
  • line, curve: delta x and y
  • ellipsis, rectangle, rounded rectangle, rectangle selection: width, height
  • circle: radius

Alternative tools behavior

This is totally impossible to guess for the user, but i don't care it's already available normally in menus

However:

  • change the window subtitle as soon as a defined modifier is pressed

Selection

  • [ ] shift = add to the selection #449
  • [ ] alt = substract from the selection #449

Classic tools

  • line
    • shift = invert orthogonal lock
    • alt = invert outline
  • pencil, curve:
    • alt = invert outline
  • eraser
    • shift = invert mode
  • highlighter
    • shift = invert mode
  • shape
    • shift = empty
    • alt = main color
    • shift+alt = secondary color

Transform tools

  • crop:
    • shift = alpha
    • alt = default color
    • shift+alt = secondary color
  • scale:
    • shift = invert proportions locking
  • rotate
    • shift = flip (left click = horizontally; right click = vertically)
  • skew:
    • shift = alpha
    • alt = default color
    • shift+alt = secondary color

Amazing software, many thanks!!

Thank you so much for your work, I was looking for something like this since Shutter is no longer in repositories (so difficult to install).
I believe this program has the potential to be the new screenshots editor (and more) for GNOME desktop. I'm just missing some features, which imo will improve the user experience (in no particular order):

  • Being able to select an object that you previosly drawed (I understand this could be difficult even maybe not possible)
  • Have an option to add shades in the objects?
  • Add arrows (one or two way)
  • Turn circle into ellipse (by pressing shift or ctrl still be able to do a perfect circle)
  • Add "blur" option
  • Add "numbers" option (*)

(*) this and other ideas were taken from Ksnip which is already a great opensource project, but not (so) suitable for GNOME desktops.

Many thanks again for all the effort!!

UI: switch "Preferences" and the Separator in the hamburger-menu

Hi!

Can you please switch the positions of the Separator and the Preferences button in the hamburger menu from this:

a

to this:

b

?

Most of gnome apps follow this order:

--------------
Preferences
Keyboard Shortcuts
Help
About APPNAME

Sorry for being pedant. ^_^

Sharing the image

Problem

Once the image is edited, people might want to share it (on twitter? fractal? reddit? by e-mail?) instead of save it

Suggested solution

wait for the promised "share" xdg portal and its GTK implementation

Possible drawbacks

i'll have to wait 2 years probably lol

Refactor the selection management

no one care about internal methods for paths and all that bullshit, it shouldn't clutter image.py, a "selection_manager.py" is a better idea

The history should not store actual pixbufs

Tools should produce an object they know how to read. And then:

  • read it to apply the operation
  • store it in the history

The only permanently stored pixbuf would then be the current pixbuf

Operations such as initial_save, import, open, paste, will of course store their pixbufs in their "operation" object.

Fedora RPM package

Not issue, just info:

📦 Drawing RPM package in COPR

How to install:

sudo dnf copr enable atim/drawing -y && sudo dnf install drawing -y

Run:

drawing

Icon

I took a stab at an icon in the new style:

image

The crayon metaphor seemed appropriate for the featureset the app currently has, but we can iterate on that :)

Toolpanel width not reset when disabling tools names

Description

When disabling tools names, items in toolbar are still wide.

Steps to reproduce the bug:

  1. Open the settings menu
  2. Go to "Tools" tab
  3. Disable tools names

Expected behavior

Toolbar should not be wide.

Screenshots

s0

s1

s2

System

  • Device (desktop computer/tablet/phone/...): desktop computer
  • OS: Ubuntu 19.04
  • Desktop environment: none
  • Package format (flatpak, DEB, AUR ?): deb
  • App version: 0.4.1

Additional context

--

Sorry for my poor English :P

Crop tool unintuitive and unusual

As others have mentioned, the crop tool is very unusual and unintuitive. It took me a couple of minutes to figure it out.

It would be better if it just dimmed the part of the image to be cropped out, and only applied the change when the user confirms, instead of trying to show a realistic live preview. Something like what e.g. GIMP does:
GIMP crop tool

Popup message when closing Drawing without saving

Hi!

When you have unsaved changes in the open file and you close Drawing, you get this popup message:

Schermata da 2019-06-14 10-55-52

I suggest a few changes here, according to what other apps (well, mostly gedit) do:

  • switch buttons position to ( Discard | Cancel | Save )
  • change "Save" label to "Save As…"
  • change "Discard" label to "Close without Saving"
  • set the default selection on "Close without Saving"
  • make "Close without Saving" a destructive button, i.e.: red background

(I'm going to submit the same issue about the "close without saving" background color in gedit right after I submit this)
I already did that some time ago...! 😄 https://gitlab.gnome.org/GNOME/gedit/issues/143

Are these changes ok for you? They are for making Drawing just a tiny bit more coherent with the other gnome apps. :)

The point of a GtkLayout is to put widgets on it

this one needs design decisions.

I could hugely simplify a lot of things concerning custom bottom panels for:

  • selection tools
  • crop tool
  • scale tool

Concerning the selection, it could replace the popover, allowing to drag while activatable widgets are still displayed

More unique name

"Drawing" is a bit generic for the display name. Perhaps something more descriptive like "Drawing Pad" or "Sketch Pad" would work?

Otherwise I'd be happy to help brainstorm a different new name, if you're interested :)

Simplify preview window

I believe all those controls take unnecessary space, without any real functionality

  1. The arrows on red circles, aren't really needed. You can move the preview area, either with mouse, or touch (Gesture)

  2. The zoom controls on blue circle (that isn't a circle) is redundant since the slider does the job perfectly

  3. Fit on screen (i guess thats the square, b/c doesn't work) would be better if it was outside the previewer, somewhere on main window

Screenshot from 2019-06-22 23-57-55

The DEB package doesn't specify the minimal versions of its dependencies

Description

I can't launch the app installed from the deb package.

When I try launch it from terminal I recieve this:

Traceback (most recent call last):
  File "/usr/bin/drawing", line 42, in <module>
    from drawing import main
  File "/usr/share/drawing/drawing/main.py", line 23, in <module>
    from .window import DrawingWindow
  File "/usr/share/drawing/drawing/window.py", line 40, in <module>
    from .image import DrawingImage
  File "/usr/share/drawing/drawing/image.py", line 31, in <module>
    @Gtk.Template(resource_path='/com/github/maoschanz/drawing/ui/image.ui')
  File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 39, in __getattr__
    return getattr(self._introspection_module, name)
  File "/usr/lib/python3/dist-packages/gi/module.py", line 137, in __getattr__
    self.__name__, name))
AttributeError: 'gi.repository.Gtk' object has no attribute 'Template'

Also app don't shown in Slingshot.

Steps to reproduce the bug:

  1. Install the deb package
  2. Do nothing

System

  • Device: desktop computer
  • OS: elementary OS 5.0 Juno (with latest updates)
  • Desktop environment: Pantheon
  • Package format (flatpak, DEB, AUR ?): DEB
  • App version: 0.4.1

Additional context

No installation errors:

gd@eos:~$ sudo dpkg -i '/home/gd/Загрузки/drawing_0.4.1_amd64.deb' 
Выбор ранее не выбранного пакета drawing.
(Чтение базы данных … на данный момент установлено 311867 файлов и каталогов.)
Подготовка к распаковке …/drawing_0.4.1_amd64.deb …
Распаковывается drawing (0.4.1) …
Настраивается пакет drawing (0.4.1) …
Обрабатываются триггеры для desktop-file-utils (0.23-1ubuntu3.18.04.2+elementary2~ubuntu5.0.1) …
Обрабатываются триггеры для gnome-menus (3.13.3-11ubuntu1.1) …
Обрабатываются триггеры для bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) …
Rebuilding /usr/share/applications/bamf-2.index...
Обрабатываются триггеры для mime-support (3.60ubuntu1) …
Обрабатываются триггеры для libglib2.0-0:i386 (2.56.4-0ubuntu0.18.04.4) …
Обрабатываются триггеры для libglib2.0-0:amd64 (2.56.4-0ubuntu0.18.04.4) …
Обрабатываются триггеры для hicolor-icon-theme (0.17-2) …

Hebrew Translation

If it alright with you, I'd like to help translate Drawing to Hebrew.
In the meantime, I am starting on the translation.

Additionally, I had posted a package request for Drawing (when it reaches 1.0) in the Solus Phabricator.

units inside gtkspinbuttons

Problem

no units in spinbuttons to indicate what they mean, and gtk devs think the only valid use case for spinbuttons is when they indicate nothing

Suggested solution

write the unit as an icon, and add the icon to the spinbutton since it's just a specialized Gtk.Entry

Possible drawbacks

it's really larger but it can be mitigated by #64

Possible alternatives

  • extend the spinbutton class (oo complex)
  • just tooltips (lame)

History actions labels

Problem

Users don't know what they're undoing/redoing

Suggested solution

Each "operation" structure could contain a translated label, later shown in tooltips or menus

Center image area on window

Hi, I recently discover your app , really nice job! I'm playing with it and even if is still in beta , it work well for basic drawing tasks.

Getting back on topic could it be possibie to have an option to place the image centered on the window? something like this

center

thanks
Andrea

18.04 compatibility

Hi @maoschanz,

We're shipping with GIMP by default in Linux Mint. Although it's a wonderful tool, it has a few issues... it doesn't integrate properly in a GTK environment (HiDPI, icons etc..), and it's a really advanced tool for casual users.

We've been looking for alternatives and your project looks very interesting. I noticed it doesn't support the current stable version of Ubuntu LTS though. Would you be open to loosening the requirements on meson and the libraries you're using? If we were to implement compatibility with 18.04 and meson 0.45, would you be OK with preserving that compatibility until 2020?

Let me know how you feel about this, and many thanks for your work so far (people are already enjoying your app thanks to Flatpak).

use a GtkScaleButton when the window is compact

Description

changing the size opens the Librem5 keyboard (gtk bug imo)

Steps to reproduce the bug:

  1. buy a librem5 lol
  2. change the size

Expected behavior

no keyboard, which can be done with a GtkScaleButton iirc


System

  • Device (desktop computer/tablet/phone/...): Librem5
  • OS: pureOS
  • Desktop environment: phosh
  • Package format (flatpak, DEB, AUR ?):
  • App version: 0.5

Applying settings without opening a new window

Description

example: clicking on "use big icons" looks like it does nothing, because it's applied to the next window

Expected behavior

(in this example) update the icons immediatly


System

All are concerned

Additional context

The method for displaying the infobar existed and could be used for too complex settings

Appdata Screenshots Should Not Use .devel styling

Description

The appdata screenshots shown in flathub and in GNOME Software currently uses devel styling.
This isn't an accurate representation of the app users will be getting when they open the app, though.

Failed to load module "pantheon-filechooser-module"

Description

I see the following message when starting the application from command line:

$ flatpak run com.github.maoschanz.drawing
Gtk-Message: 01:27:30.708: Failed to load module "pantheon-filechooser-module"

Steps to reproduce the bug:

  1. Install app from command line using flatpak install flathub com.github.maoschanz.drawing
  2. Run app from command line using flatpak run com.github.maoschanz.drawing

Expected behavior

App running without any error messages.

System

  • Device (desktop computer/tablet/phone/...): notebook
  • OS: elementary OS 5.0 Juno
  • Package format (flatpak, DEB, AUR ?): flatpak
  • App version: 0.2.0

Poor feedback

It mainly concerns the selection and canvas-related tools

  • redraw the selection overlay when moving the cursor
  • redraw the selection overlay when using canvas tools on the selection
    • manage the selection overlay in image.py
  • [ ] some widgets on the layout for some canvas tools? #4
  • some way to set the x and the y when cropping without right-clicking solved at least for mouse/touchpad users
  • react to user input on the surface (rotation tool)
  • react to user input on the surface (filters tool)
  • don't rely on the cursor to tell the user what will happen (crop)

Fix About dialog

The About dialog needs two clicks to be closed. Also, it lacks a keyboard shortcut (Shift F1, usually). I have two patches that fix these issues.

Wrong headerbar widgets when changing layouts

Description

When changing the layout, it doesn't re-adapt to size:

  • on small windows, all save buttons are hidden
  • on big windows, all save buttons are shown

Steps to reproduce the bug:

  1. Set the window size
  2. Change the setting
  3. Enjoy
  4. (resize the window to get back normal visibility)

System

  • Device (desktop computer/tablet/phone/...): any, but on the librem 5 it's an issue since you can't resize
  • Desktop environment: GNOME Shell
  • App version: 0.4

Ideas about tools (0.4 to 0.6)

General

  • rework everything around cancel_ongoing_operation
    • [ ] reimplement what was once called has_been_used concerning the selection people will undo their selection if they're not happy with the artifacts, the problem is too complex for now
    • [ ] History labels for the ongoing operation dedicated issue: #42
  • [ ] Being able to select/edit an object that you previously drew dedicated issue: #123

Classic tools

  • Better ellipses
  • Rounded rectangle
  • Shape tool
    • Add operators as an option
    • Add gradient filling as an option
    • Action closing the path, since user probably lost the first point
  • Brushes
    • dynamic width (proof of concept)
  • Have an option to add shadows
    • at least for the text tool

Canvas tools

  • Ability to scale from any handle
    • add handles
    • use handles with canvas too
    • not only with bottom-left corner
    • with correct coords
  • Ability to crop from any handle
    • add handles
    • expand canvas with pixels of customizable color
    • with correct coords
    • use handles with canvas too
  • cairo.Matrix transformation (skew):
    • as an experimental tool
    • as a well implemented tool
    • to be continued in version 0.6.x
  • Blur
    • As a filter
    • Pixelisation filter for better privacy and better performance
      • little bug with the incomplete rectangles being at the wrong side

Zooming

Great work on drawing, but here are some features I would want.

I think you should be able to zoom in and out. It's annoying when I want to make a 1080p image, but you have to scroll to access the other sides. The ability to zoom in and out would be a welcome change.

Screenshot editing

Problem

"screenshot + nautilus + open with" is an annoying workflow

Suggested solution

  • A "take & edit screenshot" quicklist item

Possible drawbacks

No idea how to take a screenshot regardless of the DE/protocol, and no idea what it means concerning the sandbox

Possible alternatives

  • a "new from clipboard" quicklist item

Non-semantic icons for almost everything

It looks like you're requesting the non-semantic network-transmit-receive-symbolic icon to represent something like swapping colors.

image

It would be better to find a standardized semantic icon, or to GResource a double-arrow icon if that's what you want it to look like visually.

Various accessibility issues

Problem

i didn't test any accessibility feature

Suggested solution

test and support:

  • screen reader
    • with flatpak??
    • this mf keeps repeating the title of the window
      • say the subtitle instead?
  • HC theme
    • 0.6
    • 0.8
  • visual keyboard
    • 0.6
    • 0.8

Stucks in open \ save dialogue

Description

The app stucks in the open\save dialogue, and does not respond to mouse or keyboard

Steps to reproduce the bug:

  1. Open the dialogue window by clicking Open, Save, Export etc.
  2. At the bottom right corner click the file type selector.

System

  • Device: Desktop 32-bit
  • OS: Fedora 29
  • Desktop: Gnome 3.30.2
  • Package format: Flatpak
  • App version: 0.2.0

Additional context

Awesome app, thanks!

ask for size when creating a new image

Problem

Capture d’écran de 2019-08-03 00-46-41

Suggested solution

2 menu items:

  • new blank image
  • new blank image (???×???)

The first asks the size, the other doesn't

Possible drawbacks

Dialogs are shit

Possible alternatives

widgets on the canvas

Add some figures/shapes preset for a quick montaging/composing

The main point: Adding some pointing arrow presets would greatly increase quality of bug reporting in other Gnome projects, especially for bug testers and reviewers aswell the programmers themselves.

Gnome have a built-in screenshot integration and quick-editing those screenshots to clarify some things in them would be a very good addition to Gnome project.

So far: Drawing is Very nice, very cool. 👏 👏

The font chooser widget is broken (and too large)

Description

  • Most fonts don't work ?
  • The font chooser widget has both a spinbutton and a slider, which is too large

Expected behavior


System

  • Device (desktop computer/tablet/phone/...): Librem 5 concerning the width
  • App version: 0.4.x

UI: proposed Preferences window

Hi!

I've played a bit with Glade and I came up with this:
preferences.zip

It's the preferences.ui file, edited so that it looks a bit more gnomish, I think. 🤔

Take a look at that. It should work without any issue, but I haven't tested it.

If you like it, feel free to use or, if you want me to change something, please let me know. I like doing these things. :)

Fix printing

  • The preview doesn't always work (it should, according to the documentation which, however, was written before flatpak)
    • search for bug reports to xdg-portal-gtk
    • same with GTK itself
    • same with evince, because it's somehow using it
    • alternatively, implement the callback to the "preview" signal?
  • The size of the image isn't very pertinent
    • rotate it
    • scale it so it fits
    • scale it so it makes sense
    • center it on the paper sheet
    • alternatively, add a custom widget like what eog does?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.