mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Open with: Allow renaming Open with applications. Fixes #1900890 [Enhancement Request: Ability to rename Open With programs](https://bugs.launchpad.net/calibre/+bug/1900890)
This commit is contained in:
parent
ffa42fe809
commit
a16425b2ea
@ -10,9 +10,9 @@ import uuid
|
|||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QAction, QBuffer, QByteArray, QIcon, QKeySequence, QLabel, QListWidget,
|
QAction, QBuffer, QByteArray, QIcon, QInputDialog, QKeySequence, QLabel,
|
||||||
QListWidgetItem, QPixmap, QSize, QStackedLayout, Qt, QVBoxLayout, QWidget,
|
QListWidget, QListWidgetItem, QPixmap, QSize, QStackedLayout, Qt, QVBoxLayout,
|
||||||
pyqtSignal
|
QWidget, pyqtSignal
|
||||||
)
|
)
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
@ -114,6 +114,9 @@ if iswindows:
|
|||||||
entry['icon_data'] = data
|
entry['icon_data'] = data
|
||||||
return entry
|
return entry
|
||||||
|
|
||||||
|
def change_name_in_entry(entry, newname):
|
||||||
|
entry['name'] = newname
|
||||||
|
|
||||||
def entry_to_item(entry, parent):
|
def entry_to_item(entry, parent):
|
||||||
try:
|
try:
|
||||||
icon = icon_for_entry(entry)
|
icon = icon_for_entry(entry)
|
||||||
@ -187,6 +190,9 @@ elif ismacos:
|
|||||||
entry['icon_data'] = data
|
entry['icon_data'] = data
|
||||||
return entry
|
return entry
|
||||||
|
|
||||||
|
def change_name_in_entry(entry, newname):
|
||||||
|
entry['name'] = newname
|
||||||
|
|
||||||
def entry_to_item(entry, parent):
|
def entry_to_item(entry, parent):
|
||||||
icon = get_icon(entry.get('icon_file'), as_data=False)
|
icon = get_icon(entry.get('icon_file'), as_data=False)
|
||||||
if icon is None:
|
if icon is None:
|
||||||
@ -224,6 +230,9 @@ else:
|
|||||||
entry_sort_key, entry_to_cmdline, find_programs
|
entry_sort_key, entry_to_cmdline, find_programs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def change_name_in_entry(entry, newname):
|
||||||
|
entry['Name'] = newname
|
||||||
|
|
||||||
def entry_to_item(entry, parent):
|
def entry_to_item(entry, parent):
|
||||||
icon_path = entry.get('Icon') or I('blank.png')
|
icon_path = entry.get('Icon') or I('blank.png')
|
||||||
if not isinstance(icon_path, string_or_bytes):
|
if not isinstance(icon_path, string_or_bytes):
|
||||||
@ -396,6 +405,8 @@ class EditPrograms(Dialog): # {{{
|
|||||||
b.clicked.connect(self.remove), b.setIcon(QIcon(I('list_remove.png')))
|
b.clicked.connect(self.remove), b.setIcon(QIcon(I('list_remove.png')))
|
||||||
self.cb = b = self.bb.addButton(_('Change &icon'), self.bb.ActionRole)
|
self.cb = b = self.bb.addButton(_('Change &icon'), self.bb.ActionRole)
|
||||||
b.clicked.connect(self.change_icon), b.setIcon(QIcon(I('icon_choose.png')))
|
b.clicked.connect(self.change_icon), b.setIcon(QIcon(I('icon_choose.png')))
|
||||||
|
self.cb = b = self.bb.addButton(_('Change &name'), self.bb.ActionRole)
|
||||||
|
b.clicked.connect(self.change_name), b.setIcon(QIcon(I('modified.png')))
|
||||||
l.addWidget(self.bb)
|
l.addWidget(self.bb)
|
||||||
|
|
||||||
self.populate()
|
self.populate()
|
||||||
@ -428,6 +439,19 @@ class EditPrograms(Dialog): # {{{
|
|||||||
self.update_stored_config()
|
self.update_stored_config()
|
||||||
ci.setIcon(ic)
|
ci.setIcon(ic)
|
||||||
|
|
||||||
|
def change_name(self):
|
||||||
|
ci = self.plist.currentItem()
|
||||||
|
if ci is None:
|
||||||
|
return error_dialog(self, _('No selection'), _(
|
||||||
|
'No application selected'), show=True)
|
||||||
|
name, ok = QInputDialog.getText(self, _('Enter new name'), _('New name for {}').format(ci.data(Qt.DisplayRole)))
|
||||||
|
if ok and name:
|
||||||
|
entry = ci.data(ENTRY_ROLE)
|
||||||
|
change_name_in_entry(entry, name)
|
||||||
|
ci.setData(ENTRY_ROLE, entry)
|
||||||
|
self.update_stored_config()
|
||||||
|
ci.setData(Qt.DisplayRole, name)
|
||||||
|
|
||||||
def remove(self):
|
def remove(self):
|
||||||
ci = self.plist.currentItem()
|
ci = self.plist.currentItem()
|
||||||
if ci is None:
|
if ci is None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user