mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Fix library names being lowercased on windows
This commit is contained in:
parent
f5b37d0538
commit
3c65145eaa
@ -58,6 +58,7 @@ class LibraryBroker(object):
|
|||||||
def __init__(self, libraries):
|
def __init__(self, libraries):
|
||||||
self.lock = Lock()
|
self.lock = Lock()
|
||||||
self.lmap = OrderedDict()
|
self.lmap = OrderedDict()
|
||||||
|
self.library_name_map = {}
|
||||||
seen = set()
|
seen = set()
|
||||||
for original_path in libraries:
|
for original_path in libraries:
|
||||||
path = canonicalize_path(original_path)
|
path = canonicalize_path(original_path)
|
||||||
@ -73,6 +74,7 @@ class LibraryBroker(object):
|
|||||||
continue
|
continue
|
||||||
library_id = library_id_from_path(original_path, self.lmap)
|
library_id = library_id_from_path(original_path, self.lmap)
|
||||||
self.lmap[library_id] = path
|
self.lmap[library_id] = path
|
||||||
|
self.library_name_map[library_id] = os.path.basename(original_path)
|
||||||
self.loaded_dbs = {}
|
self.loaded_dbs = {}
|
||||||
self.category_caches, self.search_caches, self.tag_browser_caches = (
|
self.category_caches, self.search_caches, self.tag_browser_caches = (
|
||||||
defaultdict(OrderedDict), defaultdict(OrderedDict), defaultdict(OrderedDict))
|
defaultdict(OrderedDict), defaultdict(OrderedDict), defaultdict(OrderedDict))
|
||||||
@ -111,7 +113,7 @@ class LibraryBroker(object):
|
|||||||
@property
|
@property
|
||||||
def library_map(self):
|
def library_map(self):
|
||||||
with self:
|
with self:
|
||||||
return {k: os.path.basename(v) for k, v in self.lmap.iteritems()}
|
return {k: v for k, v in self.library_name_map.iteritems()}
|
||||||
|
|
||||||
def allowed_libraries(self, filter_func):
|
def allowed_libraries(self, filter_func):
|
||||||
with self:
|
with self:
|
||||||
@ -154,8 +156,8 @@ class GuiLibraryBroker(LibraryBroker):
|
|||||||
finally:
|
finally:
|
||||||
self.last_used_times[library_id or self.default_library] = monotonic()
|
self.last_used_times[library_id or self.default_library] = monotonic()
|
||||||
|
|
||||||
def get_library(self, library_path):
|
def get_library(self, original_library_path):
|
||||||
library_path = canonicalize_path(library_path)
|
library_path = canonicalize_path(original_library_path)
|
||||||
with self:
|
with self:
|
||||||
for library_id, path in self.lmap.iteritems():
|
for library_id, path in self.lmap.iteritems():
|
||||||
if samefile(library_path, path):
|
if samefile(library_path, path):
|
||||||
@ -168,6 +170,7 @@ class GuiLibraryBroker(LibraryBroker):
|
|||||||
library_id = library_id_from_path(library_path, self.lmap)
|
library_id = library_id_from_path(library_path, self.lmap)
|
||||||
db.new_api.server_library_id = library_id
|
db.new_api.server_library_id = library_id
|
||||||
self.lmap[library_id] = library_path
|
self.lmap[library_id] = library_path
|
||||||
|
self.library_name_map[library_id] = os.path.basename(original_library_path)
|
||||||
self.loaded_dbs[library_id] = db
|
self.loaded_dbs[library_id] = db
|
||||||
return db
|
return db
|
||||||
|
|
||||||
@ -185,7 +188,8 @@ class GuiLibraryBroker(LibraryBroker):
|
|||||||
|
|
||||||
def gui_library_changed(self, db, olddb=None):
|
def gui_library_changed(self, db, olddb=None):
|
||||||
# Must be called with lock held
|
# Must be called with lock held
|
||||||
newloc = canonicalize_path(db.backend.library_path)
|
original_path = db.backend.library_path
|
||||||
|
newloc = canonicalize_path(original_path)
|
||||||
for library_id, path in self.lmap.iteritems():
|
for library_id, path in self.lmap.iteritems():
|
||||||
if samefile(newloc, path):
|
if samefile(newloc, path):
|
||||||
self.loaded_dbs[library_id] = db
|
self.loaded_dbs[library_id] = db
|
||||||
@ -194,6 +198,7 @@ class GuiLibraryBroker(LibraryBroker):
|
|||||||
else:
|
else:
|
||||||
library_id = self.gui_library_id = library_id_from_path(newloc, self.lmap)
|
library_id = self.gui_library_id = library_id_from_path(newloc, self.lmap)
|
||||||
self.lmap[library_id] = newloc
|
self.lmap[library_id] = newloc
|
||||||
|
self.library_name_map[library_id] = os.path.basename(original_path)
|
||||||
self.loaded_dbs[library_id] = db
|
self.loaded_dbs[library_id] = db
|
||||||
db.new_api.server_library_id = library_id
|
db.new_api.server_library_id = library_id
|
||||||
if olddb is not None and samefile(olddb.backend.library_path, db.backend.library_path):
|
if olddb is not None and samefile(olddb.backend.library_path, db.backend.library_path):
|
||||||
@ -227,7 +232,7 @@ class GuiLibraryBroker(LibraryBroker):
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
self.lmap.pop(library_id, None)
|
self.lmap.pop(library_id, None), self.library_name_map.pop(library_id, None)
|
||||||
db = self.loaded_dbs.pop(library_id, None)
|
db = self.loaded_dbs.pop(library_id, None)
|
||||||
if db is not None:
|
if db is not None:
|
||||||
db.close()
|
db.close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user