@MostlyHarmless - Thanks for testing more and reinstalling the driver. Unfortunately, you are not in the lucky person group where reinstalling the driver helped.
I do need to dig into this further. Given your great test reproduction notes, I may have been a little unfair to Intel Graphics in issue #216. While Intel Graphics was/is definitely an issue, I may have lumped a couple of other issue reports into this bucket when they may have been this restoring window position + OpenGL issue.
I just took a look at the code, and it does two things to restore the window position. In view.py currently starting at line 149:
ads_state = pubsub_singleton.query(f'{topic}/settings/ads_state', default='')
if ads_state is not None and len(ads_state):
View._dock_manager.restoreState(QtCore.QByteArray(ads_state.encode('utf-8')))
geometry = pubsub_singleton.query(f'{topic}/settings/geometry', default=None)
if ui is not None and geometry is not None:
ui.restoreGeometry(geometry)
The View._dock_manager.restoreState
is for the Qt Advanced Docking System (Qt-ADS). The ui.restoreGeometry
call is the normal Qt way to set the window size & position. I am not sure why Qt-ADS does not restore the main window size & position.
I will need do some research tomorrow. I will hopefully have some more options tomorrow morning.
In the meantime, if you are motivated, you might be able to run from source, comment out this code, and have the Joulescope UI run. You can find the source code on GitHub. If you are familiar with git, you can simply clone the repo. Otherwise, click on Code, download the ZIP, and extract tthe ZIP to the location of your chosing. Start by editting joulescope_ui/view.py to comment out lines 152-154 using a “#” character, like this:
ads_state = pubsub_singleton.query(f'{topic}/settings/ads_state', default='')
if ads_state is not None and len(ads_state):
View._dock_manager.restoreState(QtCore.QByteArray(ads_state.encode('utf-8')))
#geometry = pubsub_singleton.query(f'{topic}/settings/geometry', default=None)
#if ui is not None and geometry is not None:
# ui.restoreGeometry(geometry)
At a Command Prompt or PowerShell, uninstall the pypi version of joulescope_ui you installed previously:
python -m pip uninstall joulescope_ui
Then:
cd {path/where/you/unzipped}
python setup.py sdist
python -m joulescope_ui ui
Does it now work for you? If so, we have a temporary workaround, it just will not remember the size and position of the main window. If not, you can also try commenting out the rest of lines 149-154. If you try any of this, please let me know how it goes!