ahrm / sioyek

Sioyek is a PDF viewer with a focus on textbooks and research papers
https://sioyek.info/
GNU General Public License v3.0
7.17k stars 236 forks source link

Document turn into white screen after clicking <backspace> several times #13

Closed szobov closed 3 years ago

szobov commented 3 years ago

Hi there, Thanks for the amazing project!

I've tried to test it on Linux Xubuntu 20.04 by building from scratch using ./build_linux.sh. After I started and play a bit with steps in the tutorial, I reached the line with backspace, pressed on it several times and the whole document turns into a white screen. So, I was not able to navigate it somehow, but I was still able to open a new document. When I tested the same behaviour on the newly opened documents the issue reproduced.

Selection_109 bug-sioyek

The log for an example:

~/dev/sioyek/build$ ./sioyek 
default_config_path: ~/dev/sioyek/build/prefs.config
default_keys_path: ~/dev/sioyek/build/keys.config
user_config_path: ~/.local/share/Sioyek/prefs_user.config
user_keys_path: ~/.local/share/Sioyek/keys_user.config
database_file_path: ~/.local/share/Sioyek/test.db
tutorial_path: ~/.local/share/Sioyek/tutorial.pdf
last_opened_file_address_path~/.local/share/Sioyek/last_document_path.txt
shader_path~/dev/sioyek/build/shaders
config file change listener constructor called1starting index thread ...
Figure 1: Mandlebrot Set
figure indexing finished ... 
warning! calling open() on an open document
texture: 2
texture: 3
texture: 5
getting links .... for 0
getting links .... for 1
texture: 6
deleting cached texture ... 
deleting cached texture ... 
deleting cached texture ... 
texture: 2
texture: 3
texture: 7
texture: 8
deleting cached texture ... 
deleting cached texture ... 
deleting cached texture ... 
getting links .... for 3
[xcb] Unknown request in queue while appending request
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.

Ask me any questions to help you reproduce and fix it! I'm really excited to have such a nice thing in my toolbox.

Cheers, Sergei

ahrm commented 3 years ago

Thank you for your report.

I think this is fixed in 2ff60614678c3dc9acde7097610c5d1f4b097739 .

szobov commented 3 years ago

Thank you for your report.

I think this is fixed in 2ff6061 .

Thanks a lot, But there is a bug in the code, so I can't compile and test it unfortunatelly:

$ ./build_linux.sh
./build_linux.sh: /usr/share/bashdb/bashdb-main.inc: No such file or directory
./build_linux.sh: warning: cannot start debugger; debugging mode disabled
make: Nothing to be done for 'default'.
g++-9 -c -pipe -std=c++17 -O2 -std=gnu++1z -Wall -W -D_REENTRANT -fPIC -DQAPPLICATION_CLASS=QApplication -DQT_3DCORE_LIB -DQT_3DANIMATION_LIB -DQT_3DEXTRAS_LIB -DQT_3DINPUT_LIB -DQT_3DLOGIC_LIB -DQT_3DRENDER_LIB -DQT_OPENGL_LIB -DQT_OPENGLEXTENSIONS_LIB -DQT_QUICKWIDGETS_LIB -DQT_SQL_LIB -DQT_WIDGETS_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_QUICKWIDGETS_LIB -DQT_WIDGETS_LIB -DQT_QUICK_LIB -DQT_3DANIMATION_LIB -DQT_3DEXTRAS_LIB -DQT_3DRENDER_LIB -DQT_3DINPUT_LIB -DQT_3DLOGIC_LIB -DQT_3DCORE_LIB -DQT_OPENGLEXTENSIONS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_CORE_LIB -I. -Ipdf_viewer/SingleApplication -Ipdf_viewer -Imupdf/include -Izlib -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtOpenGL -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtQuick -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DAnimation -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DExtras -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DRender -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DInput -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DLogic -isystem /usr/include/x86_64-linux-gnu/qt5/Qt3DCore -isystem /usr/include/x86_64-linux-gnu/qt5/QtOpenGLExtensions -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtQml -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtSql -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o main_widget.o pdf_viewer/main_widget.cpp
In file included from mupdf/include/mupdf/fitz.h:11,
                 from pdf_viewer/utils.h:15,
                 from pdf_viewer/input.h:12,
                 from pdf_viewer/main_widget.cpp:33:
mupdf/include/mupdf/fitz/context.h: In function ‘void* fz_keep_imp_locked(fz_context*, void*, int*)’:
mupdf/include/mupdf/fitz/context.h:633:32: warning: unused parameter ‘ctx’ [-Wunused-parameter]
  633 | fz_keep_imp_locked(fz_context *ctx, void *p, int *refs)
      |                    ~~~~~~~~~~~~^~~
pdf_viewer/main_widget.cpp: In function ‘std::optional<std::__cxx11::basic_string<wchar_t> > get_last_opened_file_name()’:
pdf_viewer/main_widget.cpp:90:17: error: ‘MAX_PATH’ was not declared in this scope
   90 |  char file_path[MAX_PATH] = { 0 };
      |                 ^~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘virtual void MainWidget::closeEvent(QCloseEvent*)’:
pdf_viewer/main_widget.cpp:142:42: warning: unused parameter ‘close_event’ [-Wunused-parameter]
  142 | void MainWidget::closeEvent(QCloseEvent* close_event) {
      |                             ~~~~~~~~~~~~~^~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘virtual void MainWidget::on_config_file_changed(ConfigManager*)’:
pdf_viewer/main_widget.cpp:421:56: warning: unused parameter ‘new_config’ [-Wunused-parameter]
  421 | void MainWidget::on_config_file_changed(ConfigManager* new_config)
      |                                         ~~~~~~~~~~~~~~~^~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::do_synctex_forward_search(const Path&, const Path&, int)’:
pdf_viewer/main_widget.cpp:473:15: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  473 |   while (node = synctex_next_result(scanner)) {
      |          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::on_new_instance_message(qint32, QByteArray)’:
pdf_viewer/main_widget.cpp:515:49: warning: unused parameter ‘instance_id’ [-Wunused-parameter]
  515 | void MainWidget::on_new_instance_message(qint32 instance_id, QByteArray arguments_str)
      |                                          ~~~~~~~^~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::key_event(bool, QKeyEvent*)’:
pdf_viewer/main_widget.cpp:857:43: warning: the address of ‘QTextStream& endl(QTextStream&)’ will never be NULL [-Waddress]
  857 |      std::cerr << "File select failed" << endl;
      |                                           ^~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::handle_right_click(float, float, bool)’:
pdf_viewer/main_widget.cpp:913:18: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  913 |      while (node = synctex_next_result(scanner)) {
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::next_state()’:
pdf_viewer/main_widget.cpp:1013:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<DocumentViewState>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
 1013 |  if (current_history_index < history.size()-1) {
      |      ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘virtual void MainWidget::mouseReleaseEvent(QMouseEvent*)’:
pdf_viewer/main_widget.cpp:1138:12: warning: unused variable ‘page_height’ [-Wunused-variable]
 1138 |      float page_height = main_document_view->get_document()->get_page_height(refdata.page);
      |            ^~~~~~~~~~~
pdf_viewer/main_widget.cpp:1154:12: warning: unused variable ‘page_height’ [-Wunused-variable]
 1154 |      float page_height = main_document_view->get_document()->get_page_height(refdata.page);
      |            ^~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::handle_command(const Command*, int)’:
pdf_viewer/main_widget.cpp:1475:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<BookMark>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
 1475 |   for (int i = 0; i < main_document_view->get_document()->get_bookmarks().size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp:1578:7: warning: unused variable ‘b’ [-Wunused-variable]
 1578 |   int b = 2;
      |       ^
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = int]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<int>; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<int, std::allocator<int> >&, MainWidget::handle_command(const Command*, int)::<lambda(int*)>, ConfigManager*&, MainWidget*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<int>, std::default_delete<FilteredSelectWindowClass<int> > >]’
pdf_viewer/main_widget.cpp:1425:29:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<int>::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(int*)> FilteredSelectWindowClass<int>::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘FilteredTreeSelect<T>::FilteredTreeSelect(QStandardItemModel*, std::function<void(const std::vector<int, std::allocator<int> >&)>, ConfigManager*, QWidget*) [with T = int]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredTreeSelect<int>; _Args = {QStandardItemModel*, MainWidget::handle_command(const Command*, int)::<lambda(const std::vector<int, std::allocator<int> >&)>, ConfigManager*&, MainWidget*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredTreeSelect<int>, std::default_delete<FilteredTreeSelect<int> > >]’
pdf_viewer/main_widget.cpp:1440:29:   required from here
pdf_viewer/ui.h:63:17: warning: ‘FilteredTreeSelect<int>::config_manager’ will be initialized after [-Wreorder]
   63 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:62:47: warning:   ‘std::function<void(const std::vector<int, std::allocator<int> >&)> FilteredTreeSelect<int>::on_done’ [-Wreorder]
   62 |  std::function<void(const std::vector<int>&)> on_done;
      |                                               ^~~~~~~
pdf_viewer/ui.h:97:2: warning:   when initialized here [-Wreorder]
   97 |  FilteredTreeSelect(QStandardItemModel* item_model, std::function<void(const std::vector<int>&)> on_done, ConfigManager* config_manager, QWidget* parent ) :
      |  ^~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = std::__cxx11::basic_string<wchar_t>]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, MainWidget::handle_command(const Command*, int)::<lambda(std::wstring*)>, ConfigManager*&, MainWidget*, MainWidget::handle_command(const Command*, int)::<lambda(std::wstring*)>}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >, std::default_delete<FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> > > >]’
pdf_viewer/main_widget.cpp:1468:6:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(std::__cxx11::basic_string<wchar_t>*)> FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = float]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<float>; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<float, std::allocator<float> >&, MainWidget::handle_command(const Command*, int)::<lambda(float*)>, ConfigManager*&, MainWidget*, MainWidget::handle_command(const Command*, int)::<lambda(float*)>}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<float>, std::default_delete<FilteredSelectWindowClass<float> > >]’
pdf_viewer/main_widget.cpp:1496:5:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<float>::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(float*)> FilteredSelectWindowClass<float>::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = BookState]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<BookState>; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<BookState, std::allocator<BookState> >&, MainWidget::handle_command(const Command*, int)::<lambda(BookState*)>, ConfigManager*&, MainWidget*, MainWidget::handle_command(const Command*, int)::<lambda(BookState*)>}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<BookState>, std::default_delete<FilteredSelectWindowClass<BookState> > >]’
pdf_viewer/main_widget.cpp:1526:5:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<BookState>::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(BookState*)> FilteredSelectWindowClass<BookState>::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredTreeSelect<T>::on_select(const QModelIndex&) [with T = int]’:
pdf_viewer/ui.h:130:4:   required from ‘FilteredTreeSelect<T>::FilteredTreeSelect(QStandardItemModel*, std::function<void(const std::vector<int, std::allocator<int> >&)>, ConfigManager*, QWidget*) [with T = int]’
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredTreeSelect<int>; _Args = {QStandardItemModel*, MainWidget::handle_command(const Command*, int)::<lambda(const std::vector<int, std::allocator<int> >&)>, ConfigManager*&, MainWidget*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredTreeSelect<int>, std::default_delete<FilteredTreeSelect<int> > >]’
pdf_viewer/main_widget.cpp:1440:29:   required from here
pdf_viewer/ui.h:156:30: warning: the address of ‘QTextStream& endl(QTextStream&)’ will never be NULL [-Waddress]
  156 |   std::wcout << "activated " << endl;
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = BookState]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = BookState]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = float]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = float]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = std::__cxx11::basic_string<wchar_t>]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = std::__cxx11::basic_string<wchar_t>]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘void FilteredTreeSelect<T>::on_config_file_changed(ConfigManager*) [with T = int]’:
pdf_viewer/ui.h:91:7:   required from here
pdf_viewer/ui.h:91:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
   91 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = int]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = int]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
make: *** [Makefile:1100: main_widget.o] Error 1
szobov@szobov-laptop:~/dev/sioyek$ ./build_linux.sh > compilation.txt
./build_linux.sh: /usr/share/bashdb/bashdb-main.inc: No such file or directory
./build_linux.sh: warning: cannot start debugger; debugging mode disabled
In file included from mupdf/include/mupdf/fitz.h:11,
                 from pdf_viewer/utils.h:15,
                 from pdf_viewer/input.h:12,
                 from pdf_viewer/main_widget.cpp:33:
mupdf/include/mupdf/fitz/context.h: In function ‘void* fz_keep_imp_locked(fz_context*, void*, int*)’:
mupdf/include/mupdf/fitz/context.h:633:32: warning: unused parameter ‘ctx’ [-Wunused-parameter]
  633 | fz_keep_imp_locked(fz_context *ctx, void *p, int *refs)
      |                    ~~~~~~~~~~~~^~~
pdf_viewer/main_widget.cpp: In function ‘std::optional<std::__cxx11::basic_string<wchar_t> > get_last_opened_file_name()’:
pdf_viewer/main_widget.cpp:90:17: error: ‘MAX_PATH’ was not declared in this scope
   90 |  char file_path[MAX_PATH] = { 0 };
      |                 ^~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘virtual void MainWidget::closeEvent(QCloseEvent*)’:
pdf_viewer/main_widget.cpp:142:42: warning: unused parameter ‘close_event’ [-Wunused-parameter]
  142 | void MainWidget::closeEvent(QCloseEvent* close_event) {
      |                             ~~~~~~~~~~~~~^~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘virtual void MainWidget::on_config_file_changed(ConfigManager*)’:
pdf_viewer/main_widget.cpp:421:56: warning: unused parameter ‘new_config’ [-Wunused-parameter]
  421 | void MainWidget::on_config_file_changed(ConfigManager* new_config)
      |                                         ~~~~~~~~~~~~~~~^~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::do_synctex_forward_search(const Path&, const Path&, int)’:
pdf_viewer/main_widget.cpp:473:15: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  473 |   while (node = synctex_next_result(scanner)) {
      |          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::on_new_instance_message(qint32, QByteArray)’:
pdf_viewer/main_widget.cpp:515:49: warning: unused parameter ‘instance_id’ [-Wunused-parameter]
  515 | void MainWidget::on_new_instance_message(qint32 instance_id, QByteArray arguments_str)
      |                                          ~~~~~~~^~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::key_event(bool, QKeyEvent*)’:
pdf_viewer/main_widget.cpp:857:43: warning: the address of ‘QTextStream& endl(QTextStream&)’ will never be NULL [-Waddress]
  857 |      std::cerr << "File select failed" << endl;
      |                                           ^~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::handle_right_click(float, float, bool)’:
pdf_viewer/main_widget.cpp:913:18: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  913 |      while (node = synctex_next_result(scanner)) {
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::next_state()’:
pdf_viewer/main_widget.cpp:1013:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<DocumentViewState>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
 1013 |  if (current_history_index < history.size()-1) {
      |      ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘virtual void MainWidget::mouseReleaseEvent(QMouseEvent*)’:
pdf_viewer/main_widget.cpp:1138:12: warning: unused variable ‘page_height’ [-Wunused-variable]
 1138 |      float page_height = main_document_view->get_document()->get_page_height(refdata.page);
      |            ^~~~~~~~~~~
pdf_viewer/main_widget.cpp:1154:12: warning: unused variable ‘page_height’ [-Wunused-variable]
 1154 |      float page_height = main_document_view->get_document()->get_page_height(refdata.page);
      |            ^~~~~~~~~~~
pdf_viewer/main_widget.cpp: In member function ‘void MainWidget::handle_command(const Command*, int)’:
pdf_viewer/main_widget.cpp:1475:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<BookMark>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
 1475 |   for (int i = 0; i < main_document_view->get_document()->get_bookmarks().size(); i++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/main_widget.cpp:1578:7: warning: unused variable ‘b’ [-Wunused-variable]
 1578 |   int b = 2;
      |       ^
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = int]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<int>; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<int, std::allocator<int> >&, MainWidget::handle_command(const Command*, int)::<lambda(int*)>, ConfigManager*&, MainWidget*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<int>, std::default_delete<FilteredSelectWindowClass<int> > >]’
pdf_viewer/main_widget.cpp:1425:29:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<int>::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(int*)> FilteredSelectWindowClass<int>::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘FilteredTreeSelect<T>::FilteredTreeSelect(QStandardItemModel*, std::function<void(const std::vector<int, std::allocator<int> >&)>, ConfigManager*, QWidget*) [with T = int]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredTreeSelect<int>; _Args = {QStandardItemModel*, MainWidget::handle_command(const Command*, int)::<lambda(const std::vector<int, std::allocator<int> >&)>, ConfigManager*&, MainWidget*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredTreeSelect<int>, std::default_delete<FilteredTreeSelect<int> > >]’
pdf_viewer/main_widget.cpp:1440:29:   required from here
pdf_viewer/ui.h:63:17: warning: ‘FilteredTreeSelect<int>::config_manager’ will be initialized after [-Wreorder]
   63 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:62:47: warning:   ‘std::function<void(const std::vector<int, std::allocator<int> >&)> FilteredTreeSelect<int>::on_done’ [-Wreorder]
   62 |  std::function<void(const std::vector<int>&)> on_done;
      |                                               ^~~~~~~
pdf_viewer/ui.h:97:2: warning:   when initialized here [-Wreorder]
   97 |  FilteredTreeSelect(QStandardItemModel* item_model, std::function<void(const std::vector<int>&)> on_done, ConfigManager* config_manager, QWidget* parent ) :
      |  ^~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = std::__cxx11::basic_string<wchar_t>]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, MainWidget::handle_command(const Command*, int)::<lambda(std::wstring*)>, ConfigManager*&, MainWidget*, MainWidget::handle_command(const Command*, int)::<lambda(std::wstring*)>}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >, std::default_delete<FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> > > >]’
pdf_viewer/main_widget.cpp:1468:6:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(std::__cxx11::basic_string<wchar_t>*)> FilteredSelectWindowClass<std::__cxx11::basic_string<wchar_t> >::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = float]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<float>; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<float, std::allocator<float> >&, MainWidget::handle_command(const Command*, int)::<lambda(float*)>, ConfigManager*&, MainWidget*, MainWidget::handle_command(const Command*, int)::<lambda(float*)>}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<float>, std::default_delete<FilteredSelectWindowClass<float> > >]’
pdf_viewer/main_widget.cpp:1496:5:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<float>::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(float*)> FilteredSelectWindowClass<float>::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘FilteredSelectWindowClass<T>::FilteredSelectWindowClass(std::vector<std::__cxx11::basic_string<wchar_t> >, std::vector<T>, std::function<void(T*)>, ConfigManager*, QWidget*, std::function<void(T*)>) [with T = BookState]’:
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredSelectWindowClass<BookState>; _Args = {std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >&, std::vector<BookState, std::allocator<BookState> >&, MainWidget::handle_command(const Command*, int)::<lambda(BookState*)>, ConfigManager*&, MainWidget*, MainWidget::handle_command(const Command*, int)::<lambda(BookState*)>}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredSelectWindowClass<BookState>, std::default_delete<FilteredSelectWindowClass<BookState> > >]’
pdf_viewer/main_widget.cpp:1526:5:   required from here
pdf_viewer/ui.h:186:17: warning: ‘FilteredSelectWindowClass<BookState>::config_manager’ will be initialized after [-Wreorder]
  186 |  ConfigManager* config_manager = nullptr;
      |                 ^~~~~~~~~~~~~~
pdf_viewer/ui.h:184:26: warning:   ‘std::function<void(BookState*)> FilteredSelectWindowClass<BookState>::on_done’ [-Wreorder]
  184 |  std::function<void(T*)> on_done = nullptr;
      |                          ^~~~~~~
pdf_viewer/ui.h:216:2: warning:   when initialized here [-Wreorder]
  216 |  FilteredSelectWindowClass(std::vector<std::wstring> std_string_list,
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredTreeSelect<T>::on_select(const QModelIndex&) [with T = int]’:
pdf_viewer/ui.h:130:4:   required from ‘FilteredTreeSelect<T>::FilteredTreeSelect(QStandardItemModel*, std::function<void(const std::vector<int, std::allocator<int> >&)>, ConfigManager*, QWidget*) [with T = int]’
/usr/include/c++/9/bits/unique_ptr.h:857:30:   required from ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = FilteredTreeSelect<int>; _Args = {QStandardItemModel*, MainWidget::handle_command(const Command*, int)::<lambda(const std::vector<int, std::allocator<int> >&)>, ConfigManager*&, MainWidget*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<FilteredTreeSelect<int>, std::default_delete<FilteredTreeSelect<int> > >]’
pdf_viewer/main_widget.cpp:1440:29:   required from here
pdf_viewer/ui.h:156:30: warning: the address of ‘QTextStream& endl(QTextStream&)’ will never be NULL [-Waddress]
  156 |   std::wcout << "activated " << endl;
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = BookState]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = BookState]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = float]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = float]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = std::__cxx11::basic_string<wchar_t>]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = std::__cxx11::basic_string<wchar_t>]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘void FilteredTreeSelect<T>::on_config_file_changed(ConfigManager*) [with T = int]’:
pdf_viewer/ui.h:91:7:   required from here
pdf_viewer/ui.h:91:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
   91 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from pdf_viewer/main_widget.cpp:37:
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::keyReleaseEvent(QKeyEvent*) [with T = int]’:
pdf_viewer/ui.h:291:7:   required from here
pdf_viewer/ui.h:301:10: warning: unused variable ‘delete_row’ [-Wunused-variable]
  301 |      int delete_row = selected_index.row();
      |          ^~~~~~~~~~
pdf_viewer/ui.h: In instantiation of ‘void FilteredSelectWindowClass<T>::on_config_file_changed(ConfigManager*) [with T = int]’:
pdf_viewer/ui.h:209:7:   required from here
pdf_viewer/ui.h:209:45: warning: unused parameter ‘new_config_manager’ [-Wunused-parameter]
  209 |  void on_config_file_changed(ConfigManager* new_config_manager) {
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
make: *** [Makefile:1100: main_widget.o] Error 1

Seems like some includes are missing.

Cheers, Sergei

szobov commented 3 years ago

btw, if you need any help, like establishing CI or other things, feel free to share it

ahrm commented 3 years ago

Yeah sorry my bad. It should be fixed in f42c3bba7b933c62ef78a6ff4fb303cd825f1a09 now.

ahrm commented 3 years ago

btw, if you need any help, like establishing CI or other things, feel free to share it

I don't have any tests though. I should really start writing some automated tests.

szobov commented 3 years ago

btw, if you need any help, like establishing CI or other things, feel free to share it

I don't have any tests though. I should really start writing some automated tests.

It can run a build on the different platforms for the beggining. It would filter the issues like we have rn when you're able to build under windows and not on Linux. But ofc it's up to you :)

ahrm commented 3 years ago

btw, if you need any help, like establishing CI or other things, feel free to share it

I don't have any tests though. I should really start writing some automated tests.

It can run a build on the different platforms for the beggining. It would filter the issues like we have rn when you're able to build under windows and not on Linux. But ofc it's up to you :)

Yes I do have build on multiple platforms in github actions currently. The problem is that the build takes ~10 minutes (because it needs to build mupdf, download Qt, etc.) so it is faster to just build it myself in a virtual machine XD .

szobov commented 3 years ago

Yeah sorry my bad. It should be fixed in f42c3bb now.

ok, now it's building and the screen doesn't turn blank, but how should this feature works actually? Now, when I press while having 1 document opened -- it's doing nothing, but if I open another document and press it returns to a previously opened document.

Should it be so?

ahrm commented 3 years ago

Yeah sorry my bad. It should be fixed in f42c3bb now.

ok, now it's building and the screen doesn't turn blank, but how should this feature works actually? Now, when I press while having 1 document opened -- it's doing nothing, but if I open another document and press it returns to a previously opened document.

Should it be so?

Yes this is working as intended. If you want to go back forward in history you can press ctrl+right arrow.

szobov commented 3 years ago

Yeah sorry my bad. It should be fixed in f42c3bb now.

ok, now it's building and the screen doesn't turn blank, but how should this feature works actually? Now, when I press while having 1 document opened -- it's doing nothing, but if I open another document and press it returns to a previously opened document. Should it be so?

Yes this is working as intended. If you want to go back forward in history you can press ctrl+right arrow.

got it, I liked it more when it was jumping even inside 1 document. :)

If you want to go back forward in history you can press ctrl+right arrow.

Unfortunately, it interferes with my keybinding on my GE, but I'll try to fix it with config. Thanks a lot and good luck with the development!

ahrm commented 3 years ago

Yeah sorry my bad. It should be fixed in f42c3bb now.

ok, now it's building and the screen doesn't turn blank, but how should this feature works actually? Now, when I press while having 1 document opened -- it's doing nothing, but if I open another document and press it returns to a previously opened document. Should it be so?

Yes this is working as intended. If you want to go back forward in history you can press ctrl+right arrow.

got it, I liked it more when it was jumping even inside 1 document. :)

Well yes you can still jump inside the same document too. The history works both inside one document and accross documents. For example suppose you are in document 1 page 100 and now you jump to document 1 page 200 and then go to document two page 1, now your history is like this: D1[100], D1[200], D2[1]

Now if you press backspace you will go to document 1 page 200 and if you press it again you will go back to document 1 page 100.

szobov commented 3 years ago

Yeah sorry my bad. It should be fixed in f42c3bb now.

ok, now it's building and the screen doesn't turn blank, but how should this feature works actually? Now, when I press while having 1 document opened -- it's doing nothing, but if I open another document and press it returns to a previously opened document. Should it be so?

Yes this is working as intended. If you want to go back forward in history you can press ctrl+right arrow.

got it, I liked it more when it was jumping even inside 1 document. :)

Well yes you can still jump inside the same document too. The history works both inside one document and accross documents. For example suppose you are in document 1 page 100 and now you jump to document 1 page 200 and then go to document two page 1, now your history is like this: D1[100], D1[200], D2[1]

Now if you press basupposeckspace you will go to document 1 page 200 and if you press it again you will go back to document 1 page 100.

BEST THING EVER, Thank you a lot!

I'll try to incorporate this tool into my daily life and try to give you more feedback.

Cheers, Sergei