Menu

#60 Hard to read with light-on-dark colour scheme

v1.0_(example)
open
nobody
None
1
2017-01-12
2016-10-01
No

Some time ago I rethemed my desktop to have dark backgrounds and light foregrounds. I used qtconfig-qt4 to do this for Qt.

Unfortunately, while the menus, icons and column headings are fine, the rows are alternately light grey and white backgrounds, with slightly different light grey text on them.

I'm using Ubuntu 16.04's portabase 2.1+git20120910-1 package.

Discussion

  • Reuben Thomas

    Reuben Thomas - 2016-10-01

    I realise this can be fixed in the preferences. I guess it would be nice if the default was to get sensible colours from the desktop (similarly, to use the desktop's default font).

     
  • Reuben Thomas

    Reuben Thomas - 2016-10-01

    Also, the row colours in the Row Viewer don't seem to be fully affected by the preference: having selected two dark background colours for the rows, I see alternnate black and light grey in the row viewer, with the intended black and dark grey in the main database view.

     
  • Jeremy Bowman

    Jeremy Bowman - 2016-10-02

    You're right, the row shading colors should default to the theme colors for them. Early versions of PortaBase used a version of Qt which didn't provide that information, and when I first tried using that data I think it wasn't being initialized correctly on the Mac. Anyway, that's probably fixed now so I can try it again.

    Is the row viewer respecting the theme foreground and background colors for you? The last time I tinkered around with it, it seemed to be hardcoded to black-on-white regardless of the theme in use (which is why the row shading colors there are currently hardcoded; sometimes the background colors needed to work with the current theme would make the row viewer unreadable).

    I'm wrapping up a minor update of PortaBase to use the latest Qt version, I'll try to refresh the row shading logic while I'm at it.

    PortaBase should already be defaulting to whatever font the system decides to start it with, although it then remembers that across system setting changes. There have been many cases where I've needed to customize the font used by PortaBase (to properly display text in foreign languages, to tweak the number of rows visible on a small screen, etc.); maybe just adding a button to reset to the current system default would work for this?

     
  • Reuben Thomas

    Reuben Thomas - 2016-10-04

    I'm happy to test upcoming versions, as I'm still very much interested in Portabase for the long haul: it's probably the program I've used the longest that hasn't been continuously developed, only maintained (as opposed to, say, VLC, Emacs, Firefox etc.), but for my purposes that's fine, because it always had all the functionality I needed, so it's great that you've continued to maintain it.

    The row viewer seems to respect the theme foreground and background colours, yes. The problem is the alternate row background, which is light grey for me, and in any case not the same as the alternate row colour configured in the Preferences.

    Given that it's a good idea to remove application preferences where they can be sensibly read from the system, I think it should be possible to remove Row Colors, as desktop themes already have such colors for table widgets.

    Do current versions of Qt support font defaulting for finding glyphs not available in a particular font? If so, it might also be possible to remove the font preference (though I agree caution suggests keeping it).

    Also, it should be possible to remove the Date and Time preferences in favour of system settings.

    I think some of the General preferences could also be removed:

    1. Allow checkbox edit in data viewer: remove, don't allow: it's a viewer, not an editor, and you can't edit other fields there.
    2. View rows with a single click: remove, a single click should always select. On the other hand, enable view with a double click (I found myself confused that this didn't work).
    3. Use small-screen settings on this device: remove, decide based on the size of the screen.
    4. Use pages in data viewer: remove, don't use pages in data viewer
    5. Wrap notes at whitespace: remove, and ensure that wrapping is done preferentially at whitespace, but if necessary, elsewhere.

    That only leaves "Confirm deletions"; in my view the correct way to get rid of this would be to add Undo, but that's a lot of work. Otherwise, I agree that some users will want confirmation (I certainly do!) while others may be infallible(!).

    I also see that some system preferences may not be available via Qt, and I certainly don't expect you to add your own per-platform code to obtain them. However, Qt seems fairly extensive in its coverage…

     
  • Jeremy Bowman

    Jeremy Bowman - 2017-01-12

    I've checked in fixes for the row color related issues, implementation details are described in the CHANGES file. I've left the preference in place for now, partially because I've always felt that the alternate row color on Mac OS X is much too light to see easily, and like to set it to a slighly darker shade (and the OS is pretty hostile to changing the theme).

    Qt might support finding glyphs not in the current font, but I'd still like to keep the font preferences for adjusting the text size (sometimes handy for fitting a lot of rows on the screen).

    I've known a number of people who like being able to pick a date or time format other than the locale defaults (for example to use military time, or ISO-formatted dates in countries where that isn't the default).

    Being able to toggle checkboxes in the data viewer is very useful for some types of files, like todo lists and packing checklists. I've considered making it a file-specific option, but I definitely don't want to lose the ability to do that somehow.

    The option of displaying the row viewer with a single click was a nod to modern mobile application behavior (it was important for the N810 and N900), and it'll still be pretty important as I add support for Android and iOS (which I'm starting on). PortaBase used to support double-clicking to edit, but I had trouble getting it to work reliably (it was far too easy to view when you meant to edit or vice versa, or launch two instances of the row viewer, etc.) I may make another attempt at it again after resolving some higher priority issues.

    Auto-detecting screen size has been tricky because DPI varies a lot between devices, and many platforms don't offer a very good way to figure out roughly what the physical screen size is (for example, handheld Linux devices with high resolution). Might be worth trying again sometime, but having the override is handy for problem cases.

    I agree that the option to use the original pagination mechanism in the data viewer should go; it requires a lot of code that's been hard to keep bug-free as I make other changes. In the release notes for the next release, I'll ask if anybody strongly wants to keep it and rip it out if I don't hear a compelling counter-argument within a few months.

    The wrapping option is largely for the benefit of languages like Chinese and Japanese which only have spaces within quotes from other languages; you get some very ugly behavior if you don't tell it explicitly not to wrap preferentially at whitespace.

    Undo is planned, but as you say it's a lot of work, and will be much easier to implement after or alongside a planned swap of the underlying file format to SQLite.

     
    • Reuben Thomas

      Reuben Thomas - 2017-01-12

      On 12 January 2017 at 05:15, Jeremy Bowman jmbowman@users.sf.net wrote:

      I've checked in fixes for the row color related issues, implementation
      details are described in the CHANGES file. I've left the preference in
      place for now, partially because I've always felt that the alternate row
      color on Mac OS X is much too light to see easily, and like to set it to a
      slighly darker shade (and the OS is pretty hostile to changing the theme).

      ​Thanks for that!​

      [Analysis of options utility]

      ​Thanks for explaining your reasoning in various cases, with which I won't
      take further issue.

      Auto-detecting screen size has been tricky because DPI varies a lot
      between devices, and many platforms don't offer a very good way to figure
      out roughly what the physical screen size is (for example, handheld Linux
      devices with high resolution). Might be worth trying again sometime, but
      having the override is handy for problem cases.

      ​Does Qt not now have support for this? It certainly has support for
      setting a multiplier manually, I believe, so this doesn't need to be an
      application preference.​

      The wrapping option is largely for the benefit of languages like Chinese

      and Japanese which only have spaces within quotes from other languages; you
      get some very ugly behavior if you don't tell it explicitly not to wrap
      preferentially at whitespace.

      ​That sounds like a better wrapping algorithm is needed; again I sympathise
      that that's rather more work (unless there's a 3rd-party one you can steal)
      than a simple option.

      I'm encouraged also to hear of the iOS and Android ports: nice to see
      Portabase not only expanding its range of platforms but getting back to its
      handheld roots.

      --
      http://rrt.sc3d.org

       

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB