Comments (5)
Are those key assignments supposed to be accurate?
Ctrl Y is listed in two different places (sort and open file).
Oh also, it says Ctrl C for Save in one place, and Ctrl S for Save in another.
Fixed, thanks!
Wow, thank you @mjourdan !
This is a very good base for what Diffuse could look like in the future. This kind of changes will obviously take some time, but it's nice to have a long-term goal.
Yep. Some parts like the settings, and keyboard shortcuts windows would also need some work.
I would automatically put an empty second pane when opening a file, because it's a diff tool and not a text editor wink
Makes perfect sense.
I like how the pretty big original menu is split into tiny designs, it's much more intuitive I think.
The overlay is interesting too, but I'm not yet convinced as I'm afraid it could get in the way. Maybe just shortcuts/accelerators are enough?
Overlay would only appear on scroll, my biggest concern with it would be the proximity with the scrollbar.
The only part I would let as it is (for now) are the tabs, because devs are more accustomed to tabs (as of today). Though I see the appeal in having them in a popover.
Yeah, features aside, the main problem with tabs in gtk3 and 4 is they take the full window width. So it may be difficult to distinguish things when there are 3 tabs and 3 panes shown.
It actually makes me think about the notion of "tabs" in a diff tool. I think there could be a way to think about these "tabs" (or "merges") as a workspace to view a commit diff or to resolve conflicts. The use cases being for instance:
* You're preparing a commit and you'd like to see all the diffs in one app * You merge master in your branch, that would create conflicts and you'd like to resolve all the conflicts in one app
Considering that, and especially for conflicts, it would be interesting to keep track of which files are resolved and which still need to be resolved.
Ok, I updated the mockups with your feedback, and keep the popover as an alternative idea for later.
from diffuse.
Hey @MightyCreak,
Regarding Libadwaita, GTK4 and Python, people seem to have ported their apps successfully. According to this post the biggest issue was with Flatpak.
Regarding navigation, it makes no doubt Diffuse should be fully controllable from keyboard. The keyboard shortcuts for those could be shown while hovering the jump button. If revealing the overlay on any mouse event was too frequent, one other idea could be to trigger it when moving the mouse from one panel to another (in addition to scrolling).
Thank you for the update, it's nice to hear from you!
from diffuse.
Are those key assignments supposed to be accurate?
Ctrl Y is listed in two different places (sort and open file).
Oh also, it says Ctrl C for Save in one place, and Ctrl S for Save in another.
from diffuse.
Wow, thank you @mjourdan !
This is a very good base for what Diffuse could look like in the future. This kind of changes will obviously take some time, but it's nice to have a long-term goal.
I would automatically put an empty second pane when opening a file, because it's a diff tool and not a text editor 😉
I like how the pretty big original menu is split into tiny designs, it's much more intuitive I think.
The overlay is interesting too, but I'm not yet convinced as I'm afraid it could get in the way. Maybe just shortcuts/accelerators are enough?
The only part I would let as it is (for now) are the tabs, because devs are more accustomed to tabs (as of today). Though I see the appeal in having them in a popover.
It actually makes me think about the notion of "tabs" in a diff tool. I think there could be a way to think about these "tabs" (or "merges") as a workspace to view a commit diff or to resolve conflicts. The use cases being for instance:
- You're preparing a commit and you'd like to see all the diffs in one app
- You merge master in your branch, that would create conflicts and you'd like to resolve all the conflicts in one app
Considering that, and especially for conflicts, it would be interesting to keep track of which files are resolved and which still need to be resolved.
from diffuse.
Thanks again for this work @mjourdan. With the time I can allocate for this project, right now I am focusing on having something more modular and, hopefully, easier to contribute to in the end. But haven't forgot about this fantastic work, I think this would happen after the migration to GTK 4. I don't know if libadwaita has been ported to Python yet?
About this:
Overlay would only appear on scroll, my biggest concern with it would be the proximity with the scrollbar.
I think users would want to jump between diff blocks without having to scroll. It seems more like something they'd need to trigger whenever they want. I personally prefer shortcuts in this case, but I think it's always good to have a UI item somewhere to impersonate the feature (e.g. the overlay could appear whenever you move the mouse in the window instead of when you start scrolling).
from diffuse.
Related Issues (20)
- diffuse fails to start under Fedora 36 beta (gtk 42) HOT 6
- Errors when running Diffuse on WSL's Debian distro HOT 2
- Improve support for Rust syntax
- Use GTK3's Gtk.Application/Gtk.ApplicationWindow HOT 3
- Merge Documentation and Website HOT 5
- Most Toolbar Buttons Do Not Function in Latest Git Builds HOT 4
- Installation steps for macOS HOT 5
- Keyboard shortcuts with Ctrl stopped working HOT 28
- feature request: full diff between two commits HOT 11
- Merge useful content from old website HOT 1
- fails to show diffs with git when changed file is in a parent directory HOT 1
- diffuse from flathub: -t does not work HOT 2
- Parameter -c is no longer repeatable HOT 10
- ImportError: cannot import name 'util' from 'distutils' HOT 4
- initial strict permissions prevent useful usage? HOT 5
- simple call ends with traceback HOT 1
- SVN _getPreviousRevision no longer subtracts 1
- docs: Developers setup has a problem with py3cairo.pc HOT 1
- FR: horizontal scrollbar for n-way diff HOT 1
- Add support for secondary direction layout split HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from diffuse.