diff --git a/aqt/main.py b/aqt/main.py
index 804726ec0..d9f3e957e 100755
--- a/aqt/main.py
+++ b/aqt/main.py
@@ -11,7 +11,7 @@ QtConfig = pyqtconfig.Configuration()
from anki import Collection
from anki.sound import playFromText, clearAudioQueue, stripSounds
-from anki.utils import stripHTML, checksum, isWin, isMac
+from anki.utils import stripHTML, checksum, isWin, isMac, intTime
from anki.hooks import runHook, addHook, remHook
import anki.consts
@@ -218,6 +218,7 @@ Are you sure?"""):
def unloadCollection(self):
if self.col:
self.closeAllCollectionWindows()
+ self.maybeOptimize()
self.col.close()
self.col = None
self.backup()
@@ -255,6 +256,16 @@ Are you sure?"""):
for file in delete:
os.unlink(os.path.join(dir, file[1]))
+ def maybeOptimize(self):
+ # has two weeks passed?
+ if (intTime() - self.pm.profile['lastOptimize']) < 86400*14:
+ return
+ self.progress.start(label=_("Optimizing..."), immediate=True)
+ self.col.optimize()
+ self.pm.profile['lastOptimize'] = intTime()
+ self.pm.save()
+ self.progress.finish()
+
# State machine
##########################################################################
diff --git a/aqt/profiles.py b/aqt/profiles.py
index db5c30b42..b1ccf9c2b 100644
--- a/aqt/profiles.py
+++ b/aqt/profiles.py
@@ -31,6 +31,7 @@ profileConf = dict(
mainWindowGeom=None,
mainWindowState=None,
numBackups=30,
+ lastOptimize=intTime(),
lang="en",
# editing
@@ -54,9 +55,10 @@ profileConf = dict(
syncMedia=True,
autoSync=True,
proxyHost='',
- proxyPass='',
proxyPort=8080,
proxyUser='',
+ proxyPass='',
+ proxyType=3,
)
class ProfileManager(object):
diff --git a/designer/main.ui b/designer/main.ui
index b129a9dbe..9b2dcc1c3 100644
--- a/designer/main.ui
+++ b/designer/main.ui
@@ -233,7 +233,7 @@
:/icons/sqlitebrowser.png:/icons/sqlitebrowser.png
- &Optimize...
+ &Check DB...
@@ -254,7 +254,7 @@
:/icons/user-identity.png:/icons/user-identity.png
- &Profile...
+ &Switch Profile...