Skip to content

Commit

Permalink
Show in Explorer context menu
Browse files Browse the repository at this point in the history
  • Loading branch information
dnkorpushov committed Nov 3, 2022
1 parent e5b86c1 commit dce4c2d
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 18 deletions.
12 changes: 12 additions & 0 deletions TODO.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ TO-DO:
* Смена языка интерфейса вручную??

DONE:

V2.4.2
* В контекстное меню списка файлов добавлены два пункта:
* "Показать в проводнике Windows/Finder/файловом менеджере" (в зависимости от операционной системы) -
открывает указанный файловый менеджер и подсвечивает файл, выбранный в списке Libro2.
В Linux может не работать для некоторых файловых менеджеров.
Обратите внимание, кто использует исходные коды Libro2 - в requirements.txt добавлена зависимость от пакета show-in-file-manager.
* "Скопировать путь к файлу в буфер обмена" - помещает полный путь к выбранному в списке Libro2 файлу в буфер обмена.

Пункты отображаются в контекстном меню, только если в списке выбран один файл.


V2.4.1
* Диалог конвертации: добавлена опция конвертации в исходную папку.
* Диалог редактирования: для поля "Теги (жанры)" добавлена возможность вставки списка всех жанров выбранных файлов
Expand Down
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
ebookmeta>=1.0.2
PyQt5==5.15.4
pyinstaller
darkdetect
darkdetect
show-in-file-manager
50 changes: 35 additions & 15 deletions src/locale/libro2_ru_RU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -991,7 +991,7 @@
<message>
<location filename="../python/libro2/ui/editdialog.py" line="361"/>
<source>Insert all tags from selected files</source>
<translation type="unfinished">Вставить список тегов (жанров) выбранных файлов</translation>
<translation>Вставить список тегов (жанров) выбранных файлов</translation>
</message>
</context>
<context>
Expand Down Expand Up @@ -1065,17 +1065,17 @@
<context>
<name>main</name>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="233"/>
<location filename="../python/libro2/ui/mainwindow.py" line="267"/>
<source>Add files</source>
<translation>Добавить файлы</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="233"/>
<location filename="../python/libro2/ui/mainwindow.py" line="267"/>
<source>Ebook files (*.fb2 *.fb2.zip *.epub);;All files (*.*)</source>
<translation>Электронные книги (*.fb2 *.fb2.zip *.epub);;Все файлы (*.*)</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="244"/>
<location filename="../python/libro2/ui/mainwindow.py" line="278"/>
<source>Add folder</source>
<translation>Добавить папку</translation>
</message>
Expand All @@ -1085,57 +1085,57 @@
<translation type="obsolete">Сохранить изменения?</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="460"/>
<location filename="../python/libro2/ui/mainwindow.py" line="494"/>
<source>Title</source>
<translation>Название</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="461"/>
<location filename="../python/libro2/ui/mainwindow.py" line="495"/>
<source>Author</source>
<translation>Автор</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="462"/>
<location filename="../python/libro2/ui/mainwindow.py" line="496"/>
<source>Series</source>
<translation>Серия</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="463"/>
<location filename="../python/libro2/ui/mainwindow.py" line="497"/>
<source>Tags</source>
<translation>Теги</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="464"/>
<location filename="../python/libro2/ui/mainwindow.py" line="498"/>
<source>Lang</source>
<translation>Язык</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="465"/>
<location filename="../python/libro2/ui/mainwindow.py" line="499"/>
<source>Translator</source>
<translation>Переводчик</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="466"/>
<location filename="../python/libro2/ui/mainwindow.py" line="500"/>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="467"/>
<location filename="../python/libro2/ui/mainwindow.py" line="501"/>
<source>File</source>
<translation>Файл</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="482"/>
<location filename="../python/libro2/ui/mainwindow.py" line="516"/>
<source>Auto-apply filter</source>
<translation>Автоматический фильтр</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="150"/>
<location filename="../python/libro2/ui/mainwindow.py" line="152"/>
<source>Reload plugins</source>
<translation>Перезагрузить плагины</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="398"/>
<location filename="../python/libro2/ui/mainwindow.py" line="432"/>
<source>Check settings for fb2converter!</source>
<translation>Проверьте настройки для fb2converter!</translation>
</message>
Expand All @@ -1144,6 +1144,26 @@
<source>Check settings for fb2converter config file!</source>
<translation type="obsolete">Проверьте настройки для файла конфигурации fb2converter!</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="192"/>
<source>Show in Finder</source>
<translation>Показать в Finder</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="194"/>
<source>Show in File Browser</source>
<translation>Показать в файловом менеджере</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="190"/>
<source>Show in Windows Explorer</source>
<translation>Показать в проводнике Windows</translation>
</message>
<message>
<location filename="../python/libro2/ui/mainwindow.py" line="198"/>
<source>Copy file path to clipboard</source>
<translation>Скопировать путь к файлу в буфер обмена</translation>
</message>
</context>
<context>
<name>move</name>
Expand Down
Binary file modified src/python/libro2/locale/libro2_ru_RU.qm
Binary file not shown.
36 changes: 35 additions & 1 deletion src/python/libro2/ui/mainwindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import traceback
import subprocess

from showinfm import show_in_file_manager

from PyQt5.QtWidgets import QMainWindow, QFileDialog, QMessageBox, QApplication, QMenu, QAction, QWidget
from PyQt5.QtCore import Qt, QPoint, QCoreApplication, QTimer, QEvent
from PyQt5.QtGui import QIcon, QKeySequence
Expand Down Expand Up @@ -160,13 +162,45 @@ def reloadPlugins(self):
self.initPluginsMenu()
self.actionsSetEnabled()

def showInFileManager(self):
book_info_list = self.getSelectedBookList()
if len(book_info_list) == 1:
show_in_file_manager(book_info_list[0].file)


def copyToClipboard(self):
book_info_list = self.getSelectedBookList()
if len(book_info_list) == 1:
clipboard = QApplication.clipboard()
clipboard.clear(mode=clipboard.Clipboard)
clipboard.setText(book_info_list[0].file, mode=clipboard.Clipboard)

def onBookListContextMenu(self, point):
book_info_list = self.getSelectedBookList()

menu = QMenu()
menu.addAction(self.actionEdit_metadata)
menu.addAction(self.actionRename)
menu.addAction(self.actionConvert)
menu.addSeparator()

if len(book_info_list) == 1:
menu.addSeparator()
caption = ''
if sys.platform == 'win32':
caption = _t('main', 'Show in Windows Explorer')
elif sys.platform == 'darwin':
caption = _t('main', 'Show in Finder')
else:
caption = _t('main', 'Show in File Browser')

action = menu.addAction(caption)
action.triggered.connect(self.showInFileManager)
action = menu.addAction(_t('main','Copy file path to clipboard'))
action.triggered.connect(self.copyToClipboard)


menu.addSeparator()

for plugin in self.pluginCollection.plugins():
try:
if plugin.is_context_menu():
Expand Down
2 changes: 1 addition & 1 deletion src/python/libro2/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version = '2.4.1'
version = '2.4.2'

0 comments on commit dce4c2d

Please sign in to comment.