diff --git a/ankiqt/ui/main.py b/ankiqt/ui/main.py
index 17eaab14b..645287c1a 100755
--- a/ankiqt/ui/main.py
+++ b/ankiqt/ui/main.py
@@ -16,7 +16,7 @@ from anki.errors import *
from anki.sound import hasSound, playFromText, clearAudioQueue, stripSounds
from anki.utils import addTags, deleteTags, parseTags, canonifyTags, \
stripHTML, checksum
-from anki.media import rebuildMediaDir, downloadMissing
+from anki.media import rebuildMediaDir, downloadMissing, downloadRemote
from anki.db import OperationalError, SessionHelper, sqlite
from anki.stdmodels import BasicModel
from anki.hooks import runHook, addHook, removeHook, _hooks, wrap
@@ -2478,6 +2478,7 @@ This deck already exists on your computer. Overwrite the local copy?"""),
self.connect(m.actionOptimizeDatabase, s, self.onOptimizeDB)
self.connect(m.actionCheckMediaDatabase, s, self.onCheckMediaDB)
self.connect(m.actionDownloadMissingMedia, s, self.onDownloadMissingMedia)
+ self.connect(m.actionLocalizeMedia, s, self.onLocalizeMedia)
self.connect(m.actionCram, s, self.onCram)
self.connect(m.actionOpenPluginFolder, s, self.onOpenPluginFolder)
self.connect(m.actionEnableAllPlugins, s, self.onEnableAllPlugins)
@@ -3111,6 +3112,13 @@ doubt."""))
msg = _("Unable to download %s\nDownload aborted.") % res[1]
ui.utils.showInfo(msg)
+ def onLocalizeMedia(self):
+ res = downloadRemote(self.deck)
+ msg = _("%d successfully downloaded.") % len(res[0])
+ if len(res[1]):
+ msg += "\n\n" + _("Couldn't find:") + "\n" + "\n".join(res[1])
+ ui.utils.showText(msg, parent=self, type="text")
+
def addHook(self, *args):
addHook(*args)
diff --git a/designer/main.ui b/designer/main.ui
index 86939c5ef..a2dbfebba 100644
--- a/designer/main.ui
+++ b/designer/main.ui
@@ -3083,6 +3083,7 @@
+
@@ -3725,6 +3726,11 @@
F2
+
+
+ Localize Media
+
+
easeButton3