labscript-suite-temp-2 / blacs

BLACS, part of the labscript suite, provides an interface to hardware used to control a buffered experiment. It manages a queue of shots to be run as well as providing manual control over devices between shots.
Other
0 stars 0 forks source link

Elide text in status bars and queue status #18

Closed philipstarkey closed 7 years ago

philipstarkey commented 7 years ago

Original report (archived issue) by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


The QLabels in the status bars of the tabs, as well as the one for the status of the queue sometimes have text larger than what has been set to them via a splitter. This causes the splitters to jump around as shots run and tabs change status.

The labels should have their text elided. This isn't a built in function of QLabels, but can be achieved by adapting this C++ function:

#!C++

void setElidedText(QLabel* label, const QString &text){
    QFontMetrics metrix(label->font());
    int width = label->width() - 2;
    QString clippedText = metrix.elidedText(text, Qt::ElideMiddle, width);
    label->setText(clippedText);
}
philipstarkey commented 7 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


Could also elide the device name and connection at the top of each tab. This way they could be put into a single line of text (taking up less vertical space) without influencing the minimum size of the tab.

In all cases the full text should be available as a tooltip.

philipstarkey commented 7 years ago

Original comment by Shaun Johnstone (Bitbucket: shjohnst, GitHub: shjohnst).


Another common width limiter is the words Frequency, Amplitude and Phase on a DDS. This is within a scrollable area, so a bit different, though other widgets like digital channel buttons change their shape/layout to avoid constraining the width in tabs. Don't know if it's worth looking into eliding here, or even just changing the labels to "Freq" or "F" depending on the space available (or permanently)?

philipstarkey commented 7 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


It would be good to make the DDS stuff able to be more compact, but it might be done by rearranging widgets, perhaps laying them out vertically instead of horizontally.

But the abbreviations f, A, and ϕ, in italics, ought to be unambiguous and recognisable labels, so we should probably use them regardless (with tooltips with the full word).

Some of the spinboxes seem to be much longer than the number of digits they can have would necessitate, so perhaps they can be made shorter too. Then there;s just generally probably more padding than necessary around the widgets. Lots of room for improvement!

philipstarkey commented 7 years ago

Original comment by Philip Starkey (Bitbucket: pstarkey, GitHub: philipstarkey).


I believe the spinboxes are longer in order to accommodate unit conversions? I believe I wrote code to add show additional 3 significant figures beyond the precision of the base unit when displaying unit conversions so that the forward/backwards conversion was consistent (you lose precision otherwise and then going through a unit conversion forwards and then backwards ends up with a different number than you started with, which is both bad, and confusing).

philipstarkey commented 7 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


I think they're long because frequency can hold a lot of digits when in Hz (plus three for the sig figs as you point out), and 'degrees' is a long word, and they're in a layout that makes each subwidget the same length as all the others, or something like that.

I moved them around a bit and they got shorter, so it seems to be about the laying out! See screenshots in labscript_utils pull request #12.

philipstarkey commented 7 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


Actually on second thoughts maybe they are just as long how I moved them around. There is still free space in the frequency and amplitude spinboxes. But it's not wasted space now since it doesn't make the box around the 3 subwidgets any larger than it would be if they shrank.

philipstarkey commented 7 years ago

Original comment by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).


Fixed in pull request #10