Skip to content

Commit

Permalink
Fix the recordset numbers in the Browse Data tab
Browse files Browse the repository at this point in the history
This improves the accuracy of the number of the last row in the
recordset number label at the bottom of the Browse Data tab by using the
seemingly more accurate visualIndexAt approach instead of the rowAt
approach from before and by taking the horizontal scrollbar into
account.

It also updates the label when resizing the row heights or column
widths.

See issue #232.
  • Loading branch information
MKleusberg committed Feb 13, 2020
1 parent b006530 commit cee3523
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
7 changes: 6 additions & 1 deletion src/ExtendedTableWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -869,9 +869,14 @@ void ExtendedTableWidget::vscrollbarChanged(int value)

int ExtendedTableWidget::numVisibleRows() const
{
if(!isVisible())
return 0;

// Get the row numbers of the rows currently visible at the top and the bottom of the widget
int row_top = rowAt(0) == -1 ? 0 : rowAt(0);
int row_bottom = rowAt(height()) == -1 ? model()->rowCount() : rowAt(height());
int row_bottom = verticalHeader()->visualIndexAt(height()) == -1 ? model()->rowCount() : (verticalHeader()->visualIndexAt(height()) - 1);
if(horizontalScrollBar()->isVisible()) // Assume the scrollbar covers about one row
row_bottom--;

// Calculate the number of visible rows
return row_bottom - row_top;
Expand Down
6 changes: 3 additions & 3 deletions src/TableBrowser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ TableBrowser::TableBrowser(QWidget* parent) :
connect(ui->dataTable->filterHeader(), &FilterTableHeader::sectionClicked, this, &TableBrowser::headerClicked);
connect(ui->dataTable->filterHeader(), &QHeaderView::sectionDoubleClicked, ui->dataTable, &QTableView::selectColumn);
connect(ui->dataTable->verticalScrollBar(), &QScrollBar::valueChanged, this, &TableBrowser::updateRecordsetLabel);
connect(ui->dataTable->horizontalHeader(), &QHeaderView::sectionResized, this, &TableBrowser::updateRecordsetLabel);
connect(ui->dataTable->verticalHeader(), &QHeaderView::sectionResized, this, &TableBrowser::updateRecordsetLabel);
connect(ui->dataTable->horizontalHeader(), &QHeaderView::sectionResized, this, &TableBrowser::updateColumnWidth);
connect(ui->dataTable->horizontalHeader(), &QHeaderView::customContextMenuRequested, this, &TableBrowser::showDataColumnPopupMenu);
connect(ui->dataTable->verticalHeader(), &QHeaderView::customContextMenuRequested, this, &TableBrowser::showRecordPopupMenu);
Expand Down Expand Up @@ -714,9 +716,7 @@ void TableBrowser::updateRecordsetLabel()
// Get all the numbers, i.e. the number of the first row and the last row as well as the total number of rows
int from = ui->dataTable->verticalHeader()->visualIndexAt(0) + 1;
int total = m_model->rowCount();
int to = ui->dataTable->verticalHeader()->visualIndexAt(ui->dataTable->height()) - 1;
if (to == -2)
to = total;
int to = from + ui->dataTable->numVisibleRows() - 1;

// Update the validator of the goto row field
gotoValidator->setRange(0, total);
Expand Down

4 comments on commit cee3523

@mgrojo
Copy link
Member

@mgrojo mgrojo commented on cee3523 Feb 14, 2020

Choose a reason for hiding this comment

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

I just got a crash, and it might be related to this change:

Thread 1 "sqlitebrowser" received signal SIGSEGV, Segmentation fault.
0x00005555559fe857 in ExtendedTableWidget::numVisibleRows (this=0x55555668b860)
    at /home/mgr/src/sqlitebrowser/src/ExtendedTableWidget.cpp:877
877	    int row_bottom = verticalHeader()->visualIndexAt(height()) == -1 ? model()->rowCount() : (verticalHeader()->visualIndexAt(height()) - 1);
(gdb) bt
#0  0x00005555559fe857 in ExtendedTableWidget::numVisibleRows (
    this=0x55555668b860)
    at /home/mgr/src/sqlitebrowser/src/ExtendedTableWidget.cpp:877
#1  0x0000555555b84da2 in TableBrowser::updateRecordsetLabel (
    this=0x55555673bdc0)
    at /home/mgr/src/sqlitebrowser/src/TableBrowser.cpp:719
#2  0x0000555555b81157 in TableBrowser::reset (this=0x55555673bdc0)
    at /home/mgr/src/sqlitebrowser/src/TableBrowser.cpp:339
#3  0x0000555555a251ff in MainWindow::fileClose (this=0x5555565f63a0)
    at /home/mgr/src/sqlitebrowser/src/MainWindow.cpp:672
#4  0x0000555555a23d46 in MainWindow::fileOpen (this=0x5555565f63a0, 
    fileName=..., openFromProject=false, readOnly=false)
    at /home/mgr/src/sqlitebrowser/src/MainWindow.cpp:503
#5  0x0000555555a2e172 in MainWindow::openRecentFile (this=0x5555565f63a0)
    at /home/mgr/src/sqlitebrowser/src/MainWindow.cpp:1532
#6  0x0000555555a7bf82 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MainWindow::*)()>::call(void (MainWindow::*)(), MainWindow*, void**) (
    f=(void (MainWindow::*)(MainWindow * const)) 0x555555a2e068 <MainWindow::openRecentFile()>, o=0x5555565f63a0, arg=0x7fffffffceb0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:136
#7  0x0000555555a78f7f in QtPrivate::FunctionPointer<void (MainWindow::*)()>::call<QtPrivate::List<>, void>(void (MainWindow::*)(), MainWindow*, void**) (
---Type <return> to continue, or q <return> to quit---
    f=(void (MainWindow::*)(MainWindow * const)) 0x555555a2e068 <MainWindow::openRecentFile()>, o=0x5555565f63a0, arg=0x7fffffffceb0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:169
#8  0x0000555555a7486b in QtPrivate::QSlotObject<void (MainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x555556b7c3e0, r=0x5555565f63a0, a=0x7fffffffceb0, ret=0x0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:120
#9  0x00007ffff5c3466f in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff697d122 in QAction::triggered(bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff697f80c in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff6afc0fc in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff6b035ab in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff6b043d3 in QMenu::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff69c2048 in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff6b066fb in QMenu::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#17 0x00007ffff698383c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff698b65f in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff5c058d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff698a632 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff69dcea5 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff69df7da in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff698383c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff698b104 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff5c058d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff61c7583 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#27 0x00007ffff61c9055 in QGuiApplicationPrivate::processWindowSystemEvent(QWind---Type <return> to continue, or q <return> to quit---
owSystemInterfacePrivate::WindowSystemEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#28 0x00007ffff61a02eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#29 0x00007fffef426260 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#30 0x00007ffff339a417 in g_main_context_dispatch ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff339a650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff339a6dc in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff5c5e88f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff5c0390a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x00007ffff5c0c9b4 in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#36 0x0000555555b0f57a in main (argc=1, argv=0x7fffffffde28)
    at /home/mgr/src/sqlitebrowser/src/main.cpp:13

@MKleusberg
Copy link
Member Author

Choose a reason for hiding this comment

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

Oh thanks! I'll take a lot at that 😄

@MKleusberg
Copy link
Member Author

Choose a reason for hiding this comment

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

Can you try again with the patch I have just committed? It didn't crash on my system but I think I covered all the possible causes of this crash 😄

@mgrojo
Copy link
Member

@mgrojo mgrojo commented on cee3523 Feb 16, 2020

Choose a reason for hiding this comment

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

It happened again after this change at a later point, which I've managed to solve (in my system, at least) in 0113d15

Thread 1 "sqlitebrowser" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: No existe el archivo o el directorio.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff4c8b801 in __GI_abort () at abort.c:79
#2  0x00007ffff567e957 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff5684ab6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff5684af1 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff5684d24 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff568082f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x000055555598f92d in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<sqlb::Object>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<sqlb::Object> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<sqlb::Object>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<sqlb::Object> > > > > > >::at (this=0x5555565b78a0, __k=...) at /usr/include/c++/7/bits/stl_map.h:542
#8  0x00005555559e808d in DBBrowserDB::getObjectByName<sqlb::Object> (this=0x5555565b7890, name=...)
    at /home/mgr/src/sqlitebrowser/src/sqlitedb.h:207
#9  0x0000555555b85160 in TableBrowser::updateRecordsetLabel (this=0x555556758ce0) at /home/mgr/src/sqlitebrowser/src/TableBrowser.cpp:749
#10 0x0000555555ba7309 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (TableBrowser::*)()>::call(void (TableBrowser::*)(), TableBrowser*, void**) (f=(void (TableBrowser::*)(TableBrowser * const)) 0x555555b84bc6 <TableBrowser::updateRecordsetLabel()>, 
    o=0x555556758ce0, arg=0x7fffffffc320) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:136
#11 0x0000555555ba5e6f in QtPrivate::FunctionPointer<void (TableBrowser::*)()>::call<QtPrivate::List<>, void>(void (TableBrowser::*)(), TableBrowser*, void**) (f=(void (TableBrowser::*)(TableBrowser * const)) 0x555555b84bc6 <TableBrowser::updateRecordsetLabel()>, o=0x555556758ce0, 
    arg=0x7fffffffc320) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:169
#12 0x0000555555ba4619 in QtPrivate::QSlotObject<void (TableBrowser::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x5555568e11e0, r=0x555556758ce0, a=0x7fffffffc320, ret=0x0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:120
#13 0x00007ffff5c3466f in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff6a77bfe in QAbstractSlider::valueChanged(int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff6a782bb in QAbstractSlider::setValue(int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff6c23c38 in QTableView::updateGeometries() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00005555559fe444 in ExtendedTableWidget::updateGeometries (this=0x5555566a1910)
    at /home/mgr/src/sqlitebrowser/src/ExtendedTableWidget.cpp:839
#18 0x00007ffff6c1a114 in QTableView::columnCountChanged(int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff5c34555 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff6bdb30f in QHeaderView::sectionCountChanged(int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff6bca761 in QAbstractItemView::setModel(QAbstractItemModel*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff6be559d in QHeaderView::setModel(QAbstractItemModel*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff6c235ee in QTableView::setModel(QAbstractItemModel*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x0000555555b83088 in TableBrowser::clear (this=0x555556758ce0) at /home/mgr/src/sqlitebrowser/src/TableBrowser.cpp:584
#25 0x0000555555b814c5 in TableBrowser::setStructure (this=0x555556758ce0, model=0x555556a1aee0, old_table=...)
    at /home/mgr/src/sqlitebrowser/src/TableBrowser.cpp:377
#26 0x0000555555a2489e in MainWindow::populateStructure (this=0x5555565b7800, old_table=...)
    at /home/mgr/src/sqlitebrowser/src/MainWindow.cpp:594
#27 0x0000555555a1dccc in MainWindow::<lambda()>::operator()(void) const (__closure=0x555556a1ba80)
    at /home/mgr/src/sqlitebrowser/src/MainWindow.cpp:171
#28 0x0000555555a4a259 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, MainWindow::init()::<lambda()> >::call(MainWindow::<lambda()> &, void **) (f=..., arg=0x7fffffffcae0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:130
#29 0x0000555555a49374 in QtPrivate::Functor<MainWindow::init()::<lambda()>, 0>::call<QtPrivate::List<>, void>(MainWindow::<lambda()> &, void *, void **) (f=..., arg=0x7fffffffcae0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:240
#30 0x0000555555a48909 in QtPrivate::QFunctorSlotObject<MainWindow::init()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x555556a1ba70, r=0x5555565b7800, a=0x7fffffffcae0, ret=0x0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:168
#31 0x00007ffff5c3466f in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x0000555555bd93cf in DBBrowserDB::structureUpdated (this=0x5555565b7890)
    at /home/mgr/src/sqlitebrowser/sqlitebrowser_autogen/UVLADIE3JM/moc_sqlitedb.cpp:193
#33 0x0000555555ab8a14 in DBBrowserDB::close (this=0x5555565b7890) at /home/mgr/src/sqlitebrowser/src/sqlitedb.cpp:729
#34 0x0000555555a2501f in MainWindow::fileClose (this=0x5555565b7800) at /home/mgr/src/sqlitebrowser/src/MainWindow.cpp:663
#35 0x0000555555a23c22 in MainWindow::fileOpen (this=0x5555565b7800, fileName=..., openFromProject=false, readOnly=false)
    at /home/mgr/src/sqlitebrowser/src/MainWindow.cpp:503
#36 0x0000555555bd4083 in MainWindow::qt_static_metacall (_o=0x5555565b7800, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fffffffcec0)
    at /home/mgr/src/sqlitebrowser/sqlitebrowser_autogen/UVLADIE3JM/moc_MainWindow.cpp:399
#37 0x00007ffff5c34555 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007ffff697d122 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff697f80c in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff6afc0fc in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff6b035ab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff6b043d3 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007ffff69c2048 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007ffff6b066fb in QMenu::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#45 0x00007ffff698383c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007ffff698b65f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007ffff5c058d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007ffff698a632 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff69dcea5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff69df7da in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007ffff698383c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007ffff698b104 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007ffff5c058d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#54 0x00007ffff61c7583 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#55 0x00007ffff61c9055 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#56 0x00007ffff61a02eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#57 0x00007fffef426260 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#58 0x00007ffff339a417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 0x00007ffff339a650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#60 0x00007ffff339a6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#61 0x00007ffff5c5e88f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#62 0x00007ffff5c0390a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#63 0x00007ffff5c0c9b4 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#64 0x0000555555b0f456 in main (argc=1, argv=0x7fffffffde38) at /home/mgr/src/sqlitebrowser/src/main.cpp:13

Please sign in to comment.