Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move the UI window style to a top to bottom layout #27

Closed
wants to merge 2 commits into from

Conversation

Saibato
Copy link
Contributor

@Saibato Saibato commented Jul 3, 2020

This is part of {wip} side project i had to make the ui more
user friendly when run on mobile i.e in termux or other linux mobile environtments
that can show our qt ui.

When we want to run the UI on mobile a top
to bottom style is key.

Signed-off-by: saibato <saibato.naga@pm.me>
@Saibato
Copy link
Contributor Author

Saibato commented Jul 3, 2020

GUI-1

@Saibato Saibato changed the title Move the debug window style to a top to bottom layout Move the UI window style to a top to bottom layout Jul 3, 2020
Signed-off-by: saibato <saibato.naga@pm.me>
@Saibato
Copy link
Contributor Author

Saibato commented Jul 3, 2020

GUI-2

@luke-jr
Copy link
Member

luke-jr commented Jul 31, 2020

This seems very undesirable on desktops... Shouldn't it be an option, or at least based on screen ratio?

@Saibato
Copy link
Contributor Author

Saibato commented Aug 1, 2020

I fiddled around with long v3 Tor and i2p addresses and they where truncated way to much and even on desktop, i guess that could make sense to have this layout for ppl, to cherrypick on top of there compile of core if testing v3 or other things when you want multiple nodes side by side.

And since it make no sense to use the pre-builds, your are right, its an option, for sovereign multiplatform coiners.

be an option, or at least based on screen ratio?

i.e../configure --gui-top-bottom-design ?

@luke-jr
Copy link
Member

luke-jr commented Aug 1, 2020

I was thinking a checkbox in the GUI settings at runtime.

@Saibato
Copy link
Contributor Author

Saibato commented Aug 1, 2020

I was thinking a checkbox in the GUI settings at runtime.

even better, but since the ui is fixed and the headers are created at compile time.
I am not quite sure how to do that? Two layouts ? ping @hebasto

@hebasto
Copy link
Member

hebasto commented Aug 1, 2020

I was thinking a checkbox in the GUI settings at runtime.

even better, but since the ui is fixed and the headers are created at compile time.
I am not quite sure how to do that? Two layouts ? ping @hebasto

Probably building layouts dynamically rather using *.ui forms is a way, no?

@luke-jr
Copy link
Member

luke-jr commented Aug 1, 2020

Or modifying the default layout in code should also be possible.

@RandyMcMillan
Copy link
Contributor

I believe that the over all interface should maintain a "Landscape" layout - This approach seems to be forcing a "Portrait" layout...which isn't optimal.

Either way - optimizing the use of the empty space may guide layout decisions...

For example:

Screen Shot 2020-09-14 at 6 01 11 PM

Screen Shot 2020-09-14 at 6 02 27 PM

Notice how much empty space can be utilized in other ways...

By formatting the layout of the text - this extra space can be used by the peer detail widget...

Some simple changes could be in the NodeID column - this could be simplified to ID
I don't think sorting by NodeID is particularly useful and could be disabled for better display of the label.

Also removing the slashes from the User Agent display would look better..

Copy link
Member

@jarolrod jarolrod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK on reordering widgets on overviewpage.ui. NACK on reordering widgets under debugwindow.ui. This leads to a lot of wasted space under the peers tab (shown below).
peer-view

@jonasschnelli
Copy link
Contributor

The layout should depend on the screensize ratio (or on the window-size ratio). I agree that Core should also have an option to run on rather portrait mode screens and devices.

Ideally, the design-implementation can handle run-time window size changes and switches from landscape to top-down mode. Similar to how webpages have a floating design.

If too complicated, I agree with @luke-jr about the checkbox-in-settings approach.
A compile option seems not ideal to me.

maflcko pushed a commit that referenced this pull request May 15, 2021
…st RPC

fa2e614 test: Fix off-by-one in mockscheduler test RPC (MarcoFalke)

Pull request description:

  Fixes:

  ```
  fuzz: scheduler.cpp:83: void CScheduler::MockForward(std::chrono::seconds): Assertion `delta_seconds.count() > 0 && delta_seconds < std::chrono::hours{1}' failed.
  ==1059066== ERROR: libFuzzer: deadly signal
      #0 0x558f75449c10 in __sanitizer_print_stack_trace (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x5fec10)
      #1 0x558f753f32b8 in fuzzer::PrintStackTrace() fuzzer.o
      #2 0x558f753d68d3 in fuzzer::Fuzzer::CrashCallback() fuzzer.o
      #3 0x7f4a3cbbb3bf  (/lib/x86_64-linux-gnu/libpthread.so.0+0x153bf)
      #4 0x7f4a3c7ff18a in raise (/lib/x86_64-linux-gnu/libc.so.6+0x4618a)
      #5 0x7f4a3c7de858 in abort (/lib/x86_64-linux-gnu/libc.so.6+0x25858)
      #6 0x7f4a3c7de728  (/lib/x86_64-linux-gnu/libc.so.6+0x25728)
      #7 0x7f4a3c7eff35 in __assert_fail (/lib/x86_64-linux-gnu/libc.so.6+0x36f35)
      #8 0x558f7588a913 in CScheduler::MockForward(std::chrono::duration<long, std::ratio<1l, 1l> >) scheduler.cpp:83:5
      #9 0x558f75b0e5b1 in mockscheduler()::$_7::operator()(RPCHelpMan const&, JSONRPCRequest const&) const rpc/misc.cpp:435:30
      #10 0x558f75b0e5b1 in std::_Function_handler<UniValue (RPCHelpMan const&, JSONRPCRequest const&), mockscheduler()::$_7>::_M_invoke(std::_Any_data const&, RPCHelpMan const&, JSONRPCRequest const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:285:9
      #11 0x558f7587a141 in std::function<UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:14
      #12 0x558f7587a141 in RPCHelpMan::HandleRequest(JSONRPCRequest const&) const rpc/util.cpp:565:26
      #13 0x558f756c0086 in CRPCCommand::CRPCCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const ./rpc/server.h:110:91
      #14 0x558f756c0086 in std::_Function_handler<bool (JSONRPCRequest const&, UniValue&, bool), CRPCCommand::CRPCCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)>::_M_invoke(std::_Any_data const&, JSONRPCRequest const&, UniValue&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:285:9
      #15 0x558f756b8592 in std::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:14
      #16 0x558f756b8592 in ExecuteCommand(CRPCCommand const&, JSONRPCRequest const&, UniValue&, bool) rpc/server.cpp:480:20
      #17 0x558f756b8592 in ExecuteCommands(std::vector<CRPCCommand const*, std::allocator<CRPCCommand const*> > const&, JSONRPCRequest const&, UniValue&) rpc/server.cpp:444:13
      #18 0x558f756b8017 in CRPCTable::execute(JSONRPCRequest const&) const rpc/server.cpp:464:13
      #19 0x558f7552457a in (anonymous namespace)::RPCFuzzTestingSetup::CallRPC(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) test/fuzz/rpc.cpp:50:25
      #20 0x558f7552457a in rpc_fuzz_target(Span<unsigned char const>) test/fuzz/rpc.cpp:354:28
      #21 0x558f7544cf0f in std::_Function_handler<void (Span<unsigned char const>), void (*)(Span<unsigned char const>)>::_M_invoke(std::_Any_data const&, Span<unsigned char const>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:300:2
      #22 0x558f75c05197 in std::function<void (Span<unsigned char const>)>::operator()(Span<unsigned char const>) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:14
      #23 0x558f75c05197 in LLVMFuzzerTestOneInput test/fuzz/fuzz.cpp:74:5
      #24 0x558f753d8073 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) fuzzer.o
      #25 0x558f753c1f72 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) fuzzer.o
      #26 0x558f753c7d6a in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) fuzzer.o
      #27 0x558f753f3a92 in main (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x5a8a92)
      #28 0x7f4a3c7e00b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
      #29 0x558f7539cc9d in _start (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x551c9d)

ACKs for top commit:
  practicalswift:
    cr ACK fa2e614

Tree-SHA512: cfa120265261f0ad019b46c426b915c1c007806b37aecb27016ce780a0ddea5e6fc9b09065fd40684b11183dcd3bf543558d7a655e604695021653540266baf7
@rebroad
Copy link
Contributor

rebroad commented Aug 25, 2021

Agree with @luke-jr - this should not be hardcoded but instead based on screen ratio - or better still, user-overridable. So NACK for now.

@hebasto
Copy link
Member

hebasto commented Sep 7, 2021

The flowing GUI could be implemented in https://github.com/bitcoin-core/gui-qml/blob/main/src/qml/README.md

Closing this for now.

@hebasto hebasto closed this Sep 7, 2021
@bitcoin-core bitcoin-core locked as resolved and limited conversation to collaborators Sep 7, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants