diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py
index 89cd4f825e..f05a31654e 100644
--- a/src/calibre/ebooks/metadata/meta.py
+++ b/src/calibre/ebooks/metadata/meta.py
@@ -133,6 +133,11 @@ def metadata_from_filename(name, pat=None):
mi.series_index = int(si)
except IndexError, ValueError:
pass
+ try:
+ si = match.group('isbn')
+ mi.isbn = si
+ except IndexError, ValueError:
+ pass
if not mi.title:
mi.title = name
return mi
diff --git a/src/calibre/gui2/filename_pattern.ui b/src/calibre/gui2/filename_pattern.ui
index b27b4b8296..30fc1b6ac0 100644
--- a/src/calibre/gui2/filename_pattern.ui
+++ b/src/calibre/gui2/filename_pattern.ui
@@ -5,8 +5,8 @@
0
0
- 349
- 441
+ 335
+ 487
@@ -39,6 +39,8 @@
+ re
+ label
-
@@ -46,7 +48,7 @@
&Test
-
+
-
-
@@ -76,7 +78,7 @@
-
-
+
-
@@ -84,7 +86,7 @@
- -
+
-
Regular expression group name (?P<title>)
@@ -104,7 +106,7 @@
- -
+
-
Regular expression group name (?P<authors>)
@@ -124,7 +126,7 @@
- -
+
-
Regular expression group name (?P<series>)
@@ -137,14 +139,14 @@
- -
+
-
Series index:
- -
+
-
Regular expression group name (?P<series_index>)
@@ -157,6 +159,26 @@
+ -
+
+
+ ISBN:
+
+
+
+ -
+
+
+ Regular expression group name (?P<series_index>)
+
+
+ No match
+
+
+ true
+
+
+
diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py
index 054caac084..408b8329e5 100644
--- a/src/calibre/gui2/widgets.py
+++ b/src/calibre/gui2/widgets.py
@@ -14,7 +14,8 @@ from PyQt4.QtCore import QAbstractListModel, QVariant, Qt, QRect, SIGNAL, \
from calibre.gui2.jobs import DetailView
from calibre.gui2 import human_readable, NONE, TableView, qstring_to_unicode, error_dialog
from calibre.gui2.filename_pattern_ui import Ui_Form
-from calibre import fit_image, get_font_families, Settings
+from calibre import fit_image, Settings
+from calibre.utils.fontconfig import find_font_families
from calibre.ebooks.metadata.meta import get_filename_pat, metadata_from_filename, \
set_filename_pat
@@ -56,6 +57,9 @@ class FilenamePattern(QWidget, Ui_Form):
self.series_index.setText(str(mi.series_index))
else:
self.series_index.setText(_('No match'))
+
+ self.isbn.setText(_('No match') if mi.isbn is None else str(mi.isbn))
+
def pattern(self):
pat = qstring_to_unicode(self.re.text())
@@ -236,8 +240,7 @@ class FontFamilyModel(QAbstractListModel):
def __init__(self, *args):
QAbstractListModel.__init__(self, *args)
- self.family_map = get_font_families()
- self.families = self.family_map.keys()
+ self.families = find_font_families()
self.families.sort()
self.families[:0] = ['None']
@@ -257,11 +260,6 @@ class FontFamilyModel(QAbstractListModel):
return QVariant(QFont(family))
return NONE
- def path_of(self, family):
- if family != None:
- return self.family_map[family]
- return None
-
def index_of(self, family):
return self.families.index(family.strip())