Message "The database is currently busy" displayed when opening file from project

When opening a database from a project and the Browse Data tab is the active tab, the message box:

"The database is currently busy: reading rows
Do you want to continue"

is displayed.

  1. The loadProject function calls the fileOpen function to open the database, then continues processing.
  2. fileOpen opens the database then tests if the current widget is the browser tab. If so, it calls populateTable, continues processing and returns to loadProject.
  3. loadProject continues processing, then calls populateTable just before returning.
  4. The call to populateTable from loadProject conflicts with the call from fileOpen causing waitForDbRelease to display the message that the db is busy.

The correction for this problem is to change fileOpen from

            if(ui->mainTab->currentWidget() == ui->browser) 
                populateTable();

to include a check if it had been called from loadProject before calling populateTable

            if( (ui->mainTab->currentWidget() == ui->browser)  && !openFromProject )
                populateTable();

Problem found in:

sqlitebrowser version 3.11.99, 3.12.1
sqlite version 3.34.0
Qt version 5.15.2
OS: Linux Mint 20.1

Details for the issue

What did you do?

What did you expect to see?

What did you see instead?

Useful extra information

The info below often helps, please fill it out if you're able to. :)

What operating system are you using?

  • Windows: ( version: ___ )
  • Linux: ( distro: ___ )
  • macOS: ( version: ___ )
  • Other: ___

What is your DB4S version?

  • 3.12.1
  • 3.12.0
  • 3.11.x
  • Other: ___

Did you also