solvespace icon indicating copy to clipboard operation
solvespace copied to clipboard

Single window UI

Open ghost opened this issue 7 years ago • 23 comments

Make UI look like 'single window' by merge "Property Browser" inside main window UI.

ghost avatar Sep 15 '16 17:09 ghost

I vote for this one also. Would make it easier to manage and use. I frequently maximise windows and this would make life easier.

Also it might provide and opertunity to make the interface a bit easier to modify.

mmiscool avatar Oct 03 '16 05:10 mmiscool

Also it might provide and opertunity to make the interface a bit easier to modify.

It won't. For that matter the UI code will become more complex if/when this lands.

whitequark avatar Oct 03 '16 05:10 whitequark

No! Haven't you heard of dual/multiple monitors?!

ruevs avatar Oct 04 '16 03:10 ruevs

@ruevs No one is going to remove the two-window UI completely, if it's implemented it will just be an option. Like in GIMP.

whitequark avatar Oct 04 '16 03:10 whitequark

These are the kind of pointless options that just cause boat.

ruevs avatar Oct 04 '16 04:10 ruevs

If you don't see a need for it, that doesn't mean it's pointless. For example, SolveSpace is currently rather inconvenient to use with my window manager, i3, because, although it is tiling, there's no good way to tell it to lay out the graphics and text windows as they should be.

whitequark avatar Oct 04 '16 04:10 whitequark

+1

virtualritz avatar Oct 07 '16 12:10 virtualritz

Throwing my 2 cents in - worthless, I guess - I just installed and tried out SolveSpace last night, and I really like it. I went thru the first tutorial, and it was fairly intuitive and easy to use. I didn't find having two windows an issue, as I am a fan of that style (gimp, etc); in fact, I would love if the tool window inside the view was also separate.

But my main gripe - unless there's a way I haven't found (I was more interested in how to use the software than other things - so I only spent a very brief time looking for a solution) - was the fact that the tool icons and other text was so darn small on my 4k monitor. The menus and such were all fine, of course, because they are controlled by the system. But the icons, tooltips, etc - it's really tiny. Not impossible to use, but it would be nice if it could be changed.

I know that isn't a part of this particular issue - but I think it is something that should be considered for the future, if it hasn't already (I haven't explored the issue space for future changes or whatnot - maybe it already exists).

andrew-ayers avatar Nov 01 '19 15:11 andrew-ayers

I just installed and tried out SolveSpace last night, and I really like it.

Which version? 2.x does not have HiDPI support, the master branch does, and should scale the icons appropriately for the rest.

whitequark avatar Nov 01 '19 15:11 whitequark

@whitequark It was 2.x - installed from the Ubuntu 18.04 LTS repo; I'll have to look into compiling from source (and building an install package or something), then, I guess. Unless someone already has a .deb I can install from. Thanks for letting me know (and I'm looking forward to this new batch of updates).

Long story short - I don't like installs from source (ie, make, etc) because there isn't any record in the system to keep things from being messed up royally. My last system I did that and nursed things along for years and then I tried to update to a later rev and it all fell apart (fortunately, I was able to recover easily thanks to keeping my system and home on separate partitions and drives - and upgrade in the process).

So if I do compile from source (and don't create a package to install from), it's either got to run out of the directory its compiled in, or I have to come up with some other system to keep it well isolated (vm, container, or some other method).

andrew-ayers avatar Nov 03 '19 23:11 andrew-ayers

@andrew-ayers You can run it from the build directory directly, without installing anything.

whitequark avatar Nov 04 '19 21:11 whitequark

Unless someone already has a .deb I can install from.

@andrew-ayers You could install latest nightly build of SolveSpace 3.x from third-party PPA for Debian/Ubuntu Linux:

  • https://notesalexp.org
  • https://launchpad.net/~alex-p (notesalexp.org mirror)

Or just directly download latest DEB (solvespace_3.0.0~git*-2_amd64.deb) for Ubuntu 18.04 LTS

  • https://notesalexp.org/packages/en/bionic/amd64/solvespace/download.html

ghost avatar Nov 05 '19 14:11 ghost

@whitequark @Symbian9 Well - thank you both for this info - right now I'm compiling on my Ubuntu 18.04 LTS from the git repo - so we'll see how that goes; though I might still try one of those mentioned debs...thanks again!

andrew-ayers avatar Nov 06 '19 00:11 andrew-ayers

@whitequark Ok - got 3.0 compiled and running, looks nice - but no larger icons? Is there a special flag I need to pass to switch to HiDPI mode, or some other setting somewhere? Thank you...

andrew-ayers avatar Nov 06 '19 01:11 andrew-ayers

No, it uses your system settings, like any other GTK application.

whitequark avatar Nov 06 '19 01:11 whitequark

@whitequark I found the setting (Gdk/WindowScalingFactor) but setting it from "1" to "2" to affect the whole screen wasn't ideal.

According to this page, though:

https://wiki.gnome.org/HowDoI/HiDpi

...you can pass the setting to a single app - which worked great:

$ export GDK_SCALE=2;./bin/solvespace &

Perfect. Thank you!

andrew-ayers avatar Nov 06 '19 02:11 andrew-ayers

@whitequark @Symbian9 I am possibly interested in trying to implement this as a precursor to a more grandiose idea of building an iPad GUI for solvespace. I looked at the emscripten branch for ideas as its UI is more or less what we want here, but it looked to me like maybe that was wired up in an undesirable way by just happening to map new windows into the right DOM elements by name rather than by creating some higher-level notion of layout that knows if the property browser is embedded or not.

On a possibly related note it may be desirable to remove the notion of scrollbars as a thing from solvespace.

To my mind the logical abstraction is to treat what are currently OS level windows as a new thing (call it a 'viewport') which is embedded in an OS level container (a 'window') that knows how to pan the viewport if allowed (scrolling) or resize it if not. Then the top level window can be given two viewports one for the main display and one for the property browser and lay them out and control them appropriately.

If that sounds reasonable, the next logical step would be to put the toolbar in its own viewport, and then call it 'done' for this issue.

If that sounds vaguely desirable I'd appreciate any further pointers on where to start. I haven't found any tests for solvespace and I don't plan to compile on more than one or two platforms at best.

anicolao avatar Dec 19 '20 16:12 anicolao

I am possibly interested in trying to implement this as a precursor to a more grandiose idea of building an iPad GUI for solvespace.

Great!

To my mind the logical abstraction is to treat what are currently OS level windows as a new thing (call it a 'viewport') which is embedded in an OS level container (a 'window') that knows how to pan the viewport if allowed (scrolling) or resize it if not. Then the top level window can be given two viewports one for the main display and one for the property browser and lay them out and control them appropriately.

@anicolao, You just read my minds! In last few day I already think about possible ways to implement "single window mode" and there are few ways:

  1. Draw "Property Browser" directly in main window as on-screen tabs (similar to how "Toolbar" actually works)
  2. Add "Property Browser" it as sub-window (call it frame/dock widget or viewport) 2.1 As sub task, add something like command line at the bottom behind main window & "Property Browser" (lets separate text input from OpenGL to native text input field)

So, I fully agree on "2" (sub-window) idea!

ghost avatar Dec 19 '20 18:12 ghost

@anicolao Another interesting possibility is VR. Imagine the text window as some kind of window in a virtual world, but the model view is not in any window at all - you're sketching and manipulating in the same space the user is walking around in ;-) Just throwing this out there as a possible use-case as you consider changing the structure of the different things being shown.

phkahler avatar May 16 '21 22:05 phkahler

https://github.com/solvespace/solvespace/tree/single-window

ruevs avatar Oct 04 '22 15:10 ruevs

+1 Here. It's a pain to use with tiling window manager (in my case, qtile).

xarvh avatar Dec 26 '23 14:12 xarvh

I'm also looking for ability to dock Property browser inside main window. For one instance of Solvespace it is OK, but as soon as I need open another instance for reference, eg. when I'm working on multiple connected parts, it is quickly become mess. Switching of main window does not switch the corresponding Property browser as well.

mkyral avatar Jan 01 '24 13:01 mkyral

I was trying to rebase https://github.com/solvespace/solvespace/tree/single-window over master. Assuming that it worked in the first place, I did most of the rebasing but then there are a few parts where I'd actually need to understand the code. -_-

xarvh avatar Jan 01 '24 14:01 xarvh