Я не могу найти правильную терминологию для формулировки вопроса, поэтому, пожалуйста, отредактируйте.
В программе Eye of Gnome, а также в большинстве приложений для просмотра изображений, если у меня есть каталог изображений (image_1.png, ....image_n.png), то при нажатии на изображение в этом каталоге я увижу его предварительный просмотр. Затем, когда изображение будет открыто, если я нажму на стрелки влево/вправо на клавиатуре, оно заменит содержимое просмотрщика на предыдущее/последующее изображение в этом каталоге. Я не понимаю, как Eye of Gnome (или другие программы просмотра изображений) получают имя следующего файла, когда я нажимаю на стрелку влево/вправо. Какой механизм получения имени следующего файла?
Я спрашиваю, потому что мне нужен "просмотрщик" для другого типа файлов, и мне бы хотелось иметь такую же функциональность.
Я уже создал файл Desktop и поместил его в /usr/share/приложения. Это означает, что когда я дважды щелкаю по этому пользовательскому типу файла, он корректно открывается в программе, которую я создал. Но я не понимаю, как включить обработку стрелок влево/вправо ни в файле .desktop, ни в C++ приложении самостоятельно. Для справки, вот файл .desktop:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gnome-panel-launcher
Name[en_US]=Custom Viewer
Exec=/home/bob/Desktop/custom_viewer/bin/custom_viewer %F
Name=Custom Viewer
Icon=gnome-panel-launcher
Действительно, функция просмотра различных файлов предоставляется не операционной системой, а самим приложением eog
.
В вашем приложении C++ вам нужно будет реализовать это самостоятельно. Вам нужно будет написать код, который заставит вашу программу читать содержимое папки, в которой находится открытый файл. Затем вам нужно реализовать сочетания клавиш, которые заставят ваше приложение загружать следующий или предыдущий файл в списке.