Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.

Wed, 30 Dec 2009 15:40:33 +0000

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 30 Dec 2009 15:40:33 +0000
changeset 7
c679fb30c8f3
parent 6
52e8c820d0dd
child 8
0ae9bd4d2993

Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.

APIs/Python/eric4.api file | annotate | diff | comparison | revisions
DebugClients/Python/DebugClientBase.py file | annotate | diff | comparison | revisions
Debugger/BreakPointModel.py file | annotate | diff | comparison | revisions
Debugger/DebugServer.py file | annotate | diff | comparison | revisions
Debugger/DebugUI.py file | annotate | diff | comparison | revisions
Debugger/DebugViewer.py file | annotate | diff | comparison | revisions
Debugger/VariablesViewer.py file | annotate | diff | comparison | revisions
Debugger/WatchPointModel.py file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Debugger.BreakPointModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Debugger.VariablesViewer.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Debugger.WatchPointModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Graphics.UMLItem.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.AdBlock.AdBlockModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.Bookmarks.BookmarksModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.CookieJar.CookieModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.History.HistoryCompleter.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.History.HistoryFilterModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.History.HistoryModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.History.HistoryTreeModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.OpenSearch.OpenSearchEngineModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Helpviewer.Passwords.PasswordModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Preferences.__init__.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.Project.ProjectBrowserModel.html file | annotate | diff | comparison | revisions
Documentation/Source/eric4.UI.BrowserModel.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric4.Preferences.html file | annotate | diff | comparison | revisions
E4Gui/E4ModelMenu.py file | annotate | diff | comparison | revisions
E4Gui/E4ModelToolBar.py file | annotate | diff | comparison | revisions
E4Gui/E4TabWidget.py file | annotate | diff | comparison | revisions
E4Gui/E4ToolBarDialog.py file | annotate | diff | comparison | revisions
E4Network/E4NetworkMonitor.py file | annotate | diff | comparison | revisions
Graphics/UMLItem.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockModel.py file | annotate | diff | comparison | revisions
Helpviewer/AdBlock/AdBlockSubscription.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksDialog.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksManager.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksMenu.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksModel.py file | annotate | diff | comparison | revisions
Helpviewer/Bookmarks/BookmarksToolBar.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookieExceptionsModel.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookieJar.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookieModel.py file | annotate | diff | comparison | revisions
Helpviewer/CookieJar/CookiesDialog.py file | annotate | diff | comparison | revisions
Helpviewer/DownloadDialog.py file | annotate | diff | comparison | revisions
Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
Helpviewer/HelpDocsInstaller.py file | annotate | diff | comparison | revisions
Helpviewer/HelpIndexWidget.py file | annotate | diff | comparison | revisions
Helpviewer/HelpLanguagesDialog.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWebSearchWidget.py file | annotate | diff | comparison | revisions
Helpviewer/HelpWindow.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryCompleter.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryDialog.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryFilterModel.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryManager.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryMenu.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryModel.py file | annotate | diff | comparison | revisions
Helpviewer/History/HistoryTreeModel.py file | annotate | diff | comparison | revisions
Helpviewer/Network/NetworkAccessManager.py file | annotate | diff | comparison | revisions
Helpviewer/Network/NetworkReply.py file | annotate | diff | comparison | revisions
Helpviewer/OpenSearch/OpenSearchEngineModel.py file | annotate | diff | comparison | revisions
Helpviewer/Passwords/PasswordManager.py file | annotate | diff | comparison | revisions
Helpviewer/Passwords/PasswordModel.py file | annotate | diff | comparison | revisions
MultiProject/MultiProject.py file | annotate | diff | comparison | revisions
MultiProject/MultiProjectBrowser.py file | annotate | diff | comparison | revisions
PluginManager/PluginInstallDialog.py file | annotate | diff | comparison | revisions
PluginManager/PluginManager.py file | annotate | diff | comparison | revisions
PluginManager/PluginRepositoryDialog.py file | annotate | diff | comparison | revisions
PluginManager/PluginUninstallDialog.py file | annotate | diff | comparison | revisions
Plugins/PluginVcsPySvn.py file | annotate | diff | comparison | revisions
Plugins/PluginVcsSubversion.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/ViewManagerPlugins/Tabview/Tabview.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationDialog.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/ApplicationPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerGeneralPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPython3Page.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerPythonPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/DebuggerRubyPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAPIsPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAutocompletionPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorCalltipsPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorExportersPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorFilePage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorGeneralPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorPropertiesPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorSearchPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorSpellCheckingPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorStylesPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorTypingPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EmailPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpAppearancePage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpWebBrowserPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/InterfacePage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/MultiProjectPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/NetworkPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/PluginManagerPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/ProjectBrowserPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/ProjectPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/ShellPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/TemplatesPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/TerminalPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/VcsPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/ViewmanagerPage.py file | annotate | diff | comparison | revisions
Preferences/Shortcuts.py file | annotate | diff | comparison | revisions
Preferences/ShortcutsDialog.py file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
Project/AddDirectoryDialog.py file | annotate | diff | comparison | revisions
Project/CreateDialogCodeDialog.py file | annotate | diff | comparison | revisions
Project/Project.py file | annotate | diff | comparison | revisions
Project/ProjectBrowserModel.py file | annotate | diff | comparison | revisions
Project/ProjectBrowserSortFilterProxyModel.py file | annotate | diff | comparison | revisions
Project/PropertiesDialog.py file | annotate | diff | comparison | revisions
Project/UserPropertiesDialog.py file | annotate | diff | comparison | revisions
QScintilla/Editor.py file | annotate | diff | comparison | revisions
QScintilla/MiniEditor.py file | annotate | diff | comparison | revisions
QScintilla/Shell.py file | annotate | diff | comparison | revisions
QScintilla/Terminal.py file | annotate | diff | comparison | revisions
SqlBrowser/SqlBrowserWidget.py file | annotate | diff | comparison | revisions
Tools/TRPreviewer.py file | annotate | diff | comparison | revisions
Tools/TrayStarter.py file | annotate | diff | comparison | revisions
Tools/UIPreviewer.py file | annotate | diff | comparison | revisions
UI/BrowserModel.py file | annotate | diff | comparison | revisions
UI/FindFileDialog.py file | annotate | diff | comparison | revisions
UI/UserInterface.py file | annotate | diff | comparison | revisions
Utilities/__init__.py file | annotate | diff | comparison | revisions
ViewManager/ViewManager.py file | annotate | diff | comparison | revisions
eric4-compare.py file | annotate | diff | comparison | revisions
eric4-configure.py file | annotate | diff | comparison | revisions
eric4-diff.py file | annotate | diff | comparison | revisions
eric4-editor.py file | annotate | diff | comparison | revisions
eric4-iconeditor.py file | annotate | diff | comparison | revisions
eric4-plugininstall.py file | annotate | diff | comparison | revisions
eric4-pluginrepository.py file | annotate | diff | comparison | revisions
eric4-pluginuninstall.py file | annotate | diff | comparison | revisions
eric4-qregexp.py file | annotate | diff | comparison | revisions
eric4-re.py file | annotate | diff | comparison | revisions
eric4-sqlbrowser.py file | annotate | diff | comparison | revisions
eric4-tray.py file | annotate | diff | comparison | revisions
eric4-trpreviewer.py file | annotate | diff | comparison | revisions
eric4-uipreviewer.py file | annotate | diff | comparison | revisions
eric4-unittest.py file | annotate | diff | comparison | revisions
eric4-webbrowser.py file | annotate | diff | comparison | revisions
eric4.py file | annotate | diff | comparison | revisions
install-i18n.py file | annotate | diff | comparison | revisions
--- a/APIs/Python/eric4.api	Mon Dec 28 18:31:37 2009 +0000
+++ b/APIs/Python/eric4.api	Wed Dec 30 15:40:33 2009 +0000
@@ -3730,6 +3730,8 @@
 eric4.Preferences.setViewManager?4(vm, prefClass = Prefs)
 eric4.Preferences.shouldResetLayout?4(prefClass = Prefs)
 eric4.Preferences.syncPreferences?4(prefClass = Prefs)
+eric4.Preferences.toBool?4(value)
+eric4.Preferences.toList?4(value)
 eric4.Project.AddDirectoryDialog.AddDirectoryDialog.getData?4()
 eric4.Project.AddDirectoryDialog.AddDirectoryDialog.on_filterComboBox_highlighted?4(fileType)
 eric4.Project.AddDirectoryDialog.AddDirectoryDialog.on_sourceDirButton_clicked?4()
--- a/DebugClients/Python/DebugClientBase.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/DebugClients/Python/DebugClientBase.py	Wed Dec 30 15:40:33 2009 +0000
@@ -1467,33 +1467,31 @@
             c, m, y, k, a = value.getCmyk()
             varlist.append(("cmyk", "int", "%d, %d, %d, %d, %d" % (c, m, y, k, a)))
         elif qttype == 'QDate':
-            varlist.append(("", "QDate", "%s" % unicode(value.toString())))
+            varlist.append(("", "QDate", "%s" % value.toString()))
         elif qttype == 'QTime':
-            varlist.append(("", "QTime", "%s" % unicode(value.toString())))
+            varlist.append(("", "QTime", "%s" % value.toString()))
         elif qttype == 'QDateTime':
-            varlist.append(("", "QDateTime", "%s" % unicode(value.toString())))
+            varlist.append(("", "QDateTime", "%s" % value.toString()))
         elif qttype == 'QDir':
-            varlist.append(("path", "str", "%s" % unicode(value.path())))
-            varlist.append(("absolutePath", "str", "%s" % \
-                unicode(value.absolutePath())))
-            varlist.append(("canonicalPath", "str", "%s" % \
-                unicode(value.canonicalPath())))
+            varlist.append(("path", "str", "%s" % value.path()))
+            varlist.append(("absolutePath", "str", "%s" % value.absolutePath()))
+            varlist.append(("canonicalPath", "str", "%s" % value.canonicalPath()))
         elif qttype == 'QFile':
-            varlist.append(("fileName", "str", "%s" % unicode(value.fileName())))
+            varlist.append(("fileName", "str", "%s" % value.fileName()))
         elif qttype == 'QFont':
-            varlist.append(("family", "str", "%s" % unicode(value.family())))
+            varlist.append(("family", "str", "%s" % value.family()))
             varlist.append(("pointSize", "int", "%d" % value.pointSize()))
             varlist.append(("weight", "int", "%d" % value.weight()))
             varlist.append(("bold", "bool", "%s" % value.bold()))
             varlist.append(("italic", "bool", "%s" % value.italic()))
         elif qttype == 'QUrl':
-            varlist.append(("url", "str", "%s" % unicode(value.toString())))
-            varlist.append(("scheme", "str", "%s" % unicode(value.scheme())))
-            varlist.append(("user", "str", "%s" % unicode(value.userName())))
-            varlist.append(("password", "str", "%s" % unicode(value.password())))
-            varlist.append(("host", "str", "%s" % unicode(value.host())))
+            varlist.append(("url", "str", "%s" % value.toString()))
+            varlist.append(("scheme", "str", "%s" % value.scheme()))
+            varlist.append(("user", "str", "%s" % value.userName()))
+            varlist.append(("password", "str", "%s" % value.password()))
+            varlist.append(("host", "str", "%s" % value.host()))
             varlist.append(("port", "int", "%d" % value.port()))
-            varlist.append(("path", "str", "%s" % unicode(value.path())))
+            varlist.append(("path", "str", "%s" % value.path()))
         elif qttype == 'QModelIndex':
             varlist.append(("valid", "bool", "%s" % value.isValid()))
             if value.isValid():
@@ -1503,39 +1501,38 @@
                 varlist.append(("internalPointer", "void *", "%s" % \
                     value.internalPointer()))
         elif qttype == 'QRegExp':
-            varlist.append(("pattern", "str", "%s" % unicode(value.pattern())))
+            varlist.append(("pattern", "str", "%s" % value.pattern()))
         
         # GUI stuff
         elif qttype == 'QAction':
-            varlist.append(("name", "str", "%s" % unicode(value.objectName())))
-            varlist.append(("text", "str", "%s" % unicode(value.text())))
-            varlist.append(("icon text", "str", "%s" % unicode(value.iconText())))
-            varlist.append(("tooltip", "str", "%s" % unicode(value.toolTip())))
-            varlist.append(("whatsthis", "str", "%s" % unicode(value.whatsThis())))
-            varlist.append(("shortcut", "str", "%s" % \
-                unicode(value.shortcut().toString())))
+            varlist.append(("name", "str", "%s" % value.objectName()))
+            varlist.append(("text", "str", "%s" % value.text()))
+            varlist.append(("icon text", "str", "%s" % value.iconText()))
+            varlist.append(("tooltip", "str", "%s" % value.toolTip()))
+            varlist.append(("whatsthis", "str", "%s" % value.whatsThis()))
+            varlist.append(("shortcut", "str", "%s" % value.shortcut().toString()))
         elif qttype == 'QKeySequence':
-            varlist.append(("value", "", "%s" % unicode(value.toString())))
+            varlist.append(("value", "", "%s" % value.toString()))
             
         # XML stuff
         elif qttype == 'QDomAttr':
-            varlist.append(("name", "str", "%s" % unicode(value.name())))
-            varlist.append(("value", "str", "%s" % unicode(value.value())))
+            varlist.append(("name", "str", "%s" % value.name()))
+            varlist.append(("value", "str", "%s" % value.value()))
         elif qttype == 'QDomCharacterData':
-            varlist.append(("data", "str", "%s" % unicode(value.data())))
+            varlist.append(("data", "str", "%s" % value.data()))
         elif qttype == 'QDomComment':
-            varlist.append(("data", "str", "%s" % unicode(value.data())))
+            varlist.append(("data", "str", "%s" % value.data()))
         elif qttype == "QDomDocument":
-            varlist.append(("text", "str", "%s" % unicode(value.toString())))
+            varlist.append(("text", "str", "%s" % value.toString()))
         elif qttype == 'QDomElement':
-            varlist.append(("tagName", "str", "%s" % unicode(value.tagName())))
-            varlist.append(("text", "str", "%s" % unicode(value.text())))
+            varlist.append(("tagName", "str", "%s" % value.tagName()))
+            varlist.append(("text", "str", "%s" % value.text()))
         elif qttype == 'QDomText':
-            varlist.append(("data", "str", "%s" % unicode(value.data())))
+            varlist.append(("data", "str", "%s" % value.data()))
             
         # Networking stuff
         elif qttype == 'QHostAddress':
-            varlist.append(("address", "QHostAddress", "%s" % unicode(value.toString())))
+            varlist.append(("address", "QHostAddress", "%s" % value.toString()))
             
         return varlist
         
--- a/Debugger/BreakPointModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Debugger/BreakPointModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -23,20 +23,20 @@
         
         self.breakpoints = []
         self.header = [
-            QVariant(self.trUtf8("Filename")),
-            QVariant(self.trUtf8("Line")),
-            QVariant(self.trUtf8('Condition')),
-            QVariant(self.trUtf8('Temporary')),
-            QVariant(self.trUtf8('Enabled')),
-            QVariant(self.trUtf8('Ignore Count')),
+            self.trUtf8("Filename"),
+            self.trUtf8("Line"),
+            self.trUtf8('Condition'),
+            self.trUtf8('Temporary'),
+            self.trUtf8('Enabled'),
+            self.trUtf8('Ignore Count'),
         ]
-        self.alignments = [QVariant(Qt.Alignment(Qt.AlignLeft)),
-                           QVariant(Qt.Alignment(Qt.AlignRight)),
-                           QVariant(Qt.Alignment(Qt.AlignLeft)),
-                           QVariant(Qt.Alignment(Qt.AlignHCenter)),
-                           QVariant(Qt.Alignment(Qt.AlignHCenter)),
-                           QVariant(Qt.Alignment(Qt.AlignRight)),
-                           QVariant(Qt.Alignment(Qt.AlignHCenter)),
+        self.alignments = [Qt.Alignment(Qt.AlignLeft),
+                           Qt.Alignment(Qt.AlignRight),
+                           Qt.Alignment(Qt.AlignLeft),
+                           Qt.Alignment(Qt.AlignHCenter),
+                           Qt.Alignment(Qt.AlignHCenter),
+                           Qt.Alignment(Qt.AlignRight),
+                           Qt.Alignment(Qt.AlignHCenter),
         ]
 
     def columnCount(self, parent = QModelIndex()):
@@ -65,20 +65,20 @@
         
         @param index index of the requested data (QModelIndex)
         @param role role of the requested data (Qt.ItemDataRole)
-        @return the requested data (QVariant)
+        @return the requested data
         """
         if not index.isValid():
-            return QVariant()
+            return None
         
         if role == Qt.DisplayRole or role == Qt.ToolTipRole:
             if index.column() < len(self.header):
-                return QVariant(self.breakpoints[index.row()][index.column()])
+                return self.breakpoints[index.row()][index.column()]
         
         if role == Qt.TextAlignmentRole:
             if index.column() < len(self.alignments):
                 return self.alignments[index.column()]
         
-        return QVariant()
+        return None
     
     def flags(self, index):
         """
@@ -99,15 +99,15 @@
         @param section section number of the requested header data (integer)
         @param orientation orientation of the header (Qt.Orientation)
         @param role role of the requested data (Qt.ItemDataRole)
-        @return header data (QVariant)
+        @return header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             if section >= len(self.header):
-                return QVariant("")
+                return ""
             else:
                 return self.header[section]
         
-        return QVariant()
+        return None
     
     def index(self, row, column, parent = QModelIndex()):
         """
--- a/Debugger/DebugServer.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Debugger/DebugServer.py	Wed Dec 30 15:40:33 2009 +0000
@@ -126,8 +126,7 @@
         self.debugging = False
         self.clientProcess = None
         self.clientType = \
-            Preferences.Prefs.settings.value('DebugClient/Type', 
-                QVariant('Python')).toString()
+            Preferences.Prefs.settings.value('DebugClient/Type', 'Python')
         self.lastClientType = ''
         self.__autoClearShell = False
         
@@ -281,7 +280,7 @@
         if clType is not None and clType in self.getSupportedLanguages():
             self.clientType = clType
             ok = Preferences.Prefs.settings.setValue('DebugClient/Type', 
-                QVariant(self.clientType))
+                self.clientType)
         
     def startClient(self, unplanned = True, clType = None, forProject = False, 
                     runInConsole = False):
--- a/Debugger/DebugUI.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Debugger/DebugUI.py	Wed Dec 30 15:40:33 2009 +0000
@@ -66,34 +66,28 @@
         self.dbgFilterDialog = VariablesFilterDialog(self.ui, 'Filter Dialog', True)
 
         # read the saved debug info values
-        self.argvHistory = \
-            Preferences.Prefs.settings \
-            .value('DebugInfo/ArgumentsHistory').toStringList()
-        self.wdHistory = \
-            Preferences.Prefs.settings \
-            .value('DebugInfo/WorkingDirectoryHistory').toStringList()
-        self.envHistory = \
-            Preferences.Prefs.settings \
-            .value('DebugInfo/EnvironmentHistory').toStringList()
-        self.excList = \
-            Preferences.Prefs.settings \
-            .value('DebugInfo/Exceptions').toStringList()
-        self.excIgnoreList = \
-            Preferences.Prefs.settings \
-            .value('DebugInfo/IgnoredExceptions').toStringList()
-        self.exceptions = \
-            Preferences.Prefs.settings.value('DebugInfo/ReportExceptions', 
-            QVariant(True)).toBool()
-        self.autoClearShell = Preferences.Prefs.settings.value('DebugInfo/AutoClearShell',
-            QVariant(True)).toBool()
-        self.tracePython = Preferences.Prefs.settings.value('DebugInfo/TracePython', 
-            QVariant(False)).toBool()
-        self.autoContinue = Preferences.Prefs.settings.value('DebugInfo/AutoContinue', 
-            QVariant(True)).toBool()
-        self.forkAutomatically = Preferences.Prefs.settings.value(
-            'DebugInfo/ForkAutomatically', QVariant(False)).toBool()
-        self.forkIntoChild = Preferences.Prefs.settings.value('DebugInfo/ForkIntoChild', 
-            QVariant(False)).toBool()
+        self.argvHistory = Preferences.toList(
+            Preferences.Prefs.settings.value('DebugInfo/ArgumentsHistory'))
+        self.wdHistory = Preferences.toList(
+            Preferences.Prefs.settings.value('DebugInfo/WorkingDirectoryHistory'))
+        self.envHistory = Preferences.toList(
+            Preferences.Prefs.settings.value('DebugInfo/EnvironmentHistory'))
+        self.excList = Preferences.toList(
+            Preferences.Prefs.settings.value('DebugInfo/Exceptions'))
+        self.excIgnoreList = Preferences.toList(
+            Preferences.Prefs.settings.value('DebugInfo/IgnoredExceptions'))
+        self.exceptions = Preferences.toBool(
+            Preferences.Prefs.settings.value('DebugInfo/ReportExceptions', True))
+        self.autoClearShell = Preferences.toBool(
+            Preferences.Prefs.settings.value('DebugInfo/AutoClearShell', True))
+        self.tracePython = Preferences.toBool(
+            Preferences.Prefs.settings.value('DebugInfo/TracePython', False))
+        self.autoContinue = Preferences.toBool(
+            Preferences.Prefs.settings.value('DebugInfo/AutoContinue', True))
+        self.forkAutomatically = Preferences.toBool(
+            Preferences.Prefs.settings.value('DebugInfo/ForkAutomatically', False))
+        self.forkIntoChild = Preferences.toBool(
+            Preferences.Prefs.settings.value('DebugInfo/ForkIntoChild', False))
         
         self.evalHistory = []
         self.execHistory = []
@@ -871,27 +865,27 @@
         del self.envHistory[10:]
         
         Preferences.Prefs.settings.setValue('DebugInfo/ArgumentsHistory', 
-            QVariant(self.argvHistory))
+            self.argvHistory)
         Preferences.Prefs.settings.setValue('DebugInfo/WorkingDirectoryHistory', 
-            QVariant(self.wdHistory))
+            self.wdHistory)
         Preferences.Prefs.settings.setValue('DebugInfo/EnvironmentHistory', 
-            QVariant(self.envHistory))
+            self.envHistory)
         Preferences.Prefs.settings.setValue('DebugInfo/Exceptions', 
-            QVariant(self.excList))
+            self.excList)
         Preferences.Prefs.settings.setValue('DebugInfo/IgnoredExceptions', 
-            QVariant(self.excIgnoreList))
+            self.excIgnoreList)
         Preferences.Prefs.settings.setValue('DebugInfo/ReportExceptions', 
-            QVariant(self.exceptions))
+            self.exceptions)
         Preferences.Prefs.settings.setValue('DebugInfo/AutoClearShell', 
-            QVariant(self.autoClearShell))
+            self.autoClearShell)
         Preferences.Prefs.settings.setValue('DebugInfo/TracePython', 
-            QVariant(self.tracePython))
+            self.tracePython)
         Preferences.Prefs.settings.setValue('DebugInfo/AutoContinue', 
-            QVariant(self.autoContinue))
+            self.autoContinue)
         Preferences.Prefs.settings.setValue('DebugInfo/ForkAutomatically', 
-            QVariant(self.forkAutomatically))
+            self.forkAutomatically)
         Preferences.Prefs.settings.setValue('DebugInfo/ForkIntoChild', 
-            QVariant(self.forkIntoChild))
+            self.forkIntoChild)
         
     def shutdownServer(self):
         """
@@ -1305,7 +1299,7 @@
                         filename,
                         self.ui.maxMenuFilePathLen - len(bpSuffix)), 
                     bpSuffix))
-            act.setData(QVariant([QVariant(filename), QVariant(line)]))
+            act.setData([filename, line])
     
     def __breakpointSelected(self, act):
         """
@@ -1313,14 +1307,9 @@
         
         @param act reference to the action that triggered (QAction)
         """
-        try:
-            qvList = act.data().toPyObject()
-            filename = qvList[0]
-            line = qvList[1]
-        except AttributeError:
-            qvList = act.data().toList()
-            filename = qvList[0].toString()
-            line = qvList[1].toInt()[0]
+        qvList = act.data()
+        filename = qvList[0]
+        line = qvList[1]
         self.viewmanager.openSourceFile(filename, line)
         
     def __compileChangedProjectFiles(self):
--- a/Debugger/DebugViewer.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Debugger/DebugViewer.py	Wed Dec 30 15:40:33 2009 +0000
@@ -432,6 +432,6 @@
         @param previous reference to the previous current item (QTreeWidgetItem)
         """
         if current is not None and self.__doThreadListUpdate:
-            tid, ok = current.text(0).toLong()
+            tid, ok = int(current.text(0))
             if ok:
                 self.debugServer.remoteSetThread(tid)
--- a/Debugger/VariablesViewer.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Debugger/VariablesViewer.py	Wed Dec 30 15:40:33 2009 +0000
@@ -62,7 +62,7 @@
         
         @param column column number (integer)
         @param role data role (Qt.ItemDataRole)
-        @return requested data (QVariant)
+        @return requested data
         """
         if column == 1 and role == Qt.ToolTipRole:
             role = Qt.DisplayRole
--- a/Debugger/WatchPointModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Debugger/WatchPointModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -23,17 +23,17 @@
         
         self.watchpoints = []
         self.header = [
-            QVariant(self.trUtf8("Condition")),
-            QVariant(self.trUtf8("Special")),
-            QVariant(self.trUtf8('Temporary')),
-            QVariant(self.trUtf8('Enabled')),
-            QVariant(self.trUtf8('Ignore Count')),
+            self.trUtf8("Condition"),
+            self.trUtf8("Special"),
+            self.trUtf8('Temporary'),
+            self.trUtf8('Enabled'),
+            self.trUtf8('Ignore Count'),
         ]
-        self.alignments = [QVariant(Qt.Alignment(Qt.AlignLeft)),
-                           QVariant(Qt.Alignment(Qt.AlignLeft)),
-                           QVariant(Qt.Alignment(Qt.AlignHCenter)),
-                           QVariant(Qt.Alignment(Qt.AlignHCenter)),
-                           QVariant(Qt.Alignment(Qt.AlignRight)),
+        self.alignments = [Qt.Alignment(Qt.AlignLeft),
+                           Qt.Alignment(Qt.AlignLeft),
+                           Qt.Alignment(Qt.AlignHCenter),
+                           Qt.Alignment(Qt.AlignHCenter),
+                           Qt.Alignment(Qt.AlignRight),
         ]
         
     def columnCount(self, parent = QModelIndex()):
@@ -62,20 +62,20 @@
         
         @param index index of the requested data (QModelIndex)
         @param role role of the requested data (Qt.ItemDataRole)
-        @return the requested data (QVariant)
+        @return the requested data
         """
         if not index.isValid():
-            return QVariant()
+            return None
         
         if role == Qt.DisplayRole or role == Qt.ToolTipRole:
             if index.column() < len(self.header):
-                return QVariant(self.watchpoints[index.row()][index.column()])
+                return self.watchpoints[index.row()][index.column()]
         
         if role == Qt.TextAlignmentRole:
             if index.column() < len(self.alignments):
                 return self.alignments[index.column()]
         
-        return QVariant()
+        return None
     
     def flags(self, index):
         """
@@ -96,15 +96,15 @@
         @param section section number of the requested header data (integer)
         @param orientation orientation of the header (Qt.Orientation)
         @param role role of the requested data (Qt.ItemDataRole)
-        @return header data (QVariant)
+        @return header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             if section >= len(self.header):
-                return QVariant("")
+                return ""
             else:
                 return self.header[section]
         
-        return QVariant()
+        return None
     
     def index(self, row, column, parent = QModelIndex()):
         """
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Help/source.qhp	Wed Dec 30 15:40:33 2009 +0000
@@ -2648,6 +2648,8 @@
       <keyword name="setViewManager" id="setViewManager" ref="eric4.Preferences.__init__.html#setViewManager" />
       <keyword name="shouldResetLayout" id="shouldResetLayout" ref="eric4.Preferences.__init__.html#shouldResetLayout" />
       <keyword name="syncPreferences" id="syncPreferences" ref="eric4.Preferences.__init__.html#syncPreferences" />
+      <keyword name="toBool" id="toBool" ref="eric4.Preferences.__init__.html#toBool" />
+      <keyword name="toList" id="toList" ref="eric4.Preferences.__init__.html#toList" />
       <keyword name="PreferencesLexer (Module)" id="PreferencesLexer (Module)" ref="eric4.Preferences.PreferencesLexer.html" />
       <keyword name="PreferencesLexer" id="PreferencesLexer" ref="eric4.Preferences.PreferencesLexer.html#PreferencesLexer" />
       <keyword name="PreferencesLexerError" id="PreferencesLexerError" ref="eric4.Preferences.PreferencesLexer.html#PreferencesLexerError" />
--- a/Documentation/Source/eric4.Debugger.BreakPointModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Debugger.BreakPointModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -163,7 +163,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-the requested data (QVariant)
+the requested data
 </dd>
 </dl><a NAME="BreakPointModel.deleteAll" ID="BreakPointModel.deleteAll"></a>
 <h4>BreakPointModel.deleteAll</h4>
@@ -273,7 +273,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="BreakPointModel.index" ID="BreakPointModel.index"></a>
 <h4>BreakPointModel.index</h4>
--- a/Documentation/Source/eric4.Debugger.VariablesViewer.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Debugger.VariablesViewer.html	Wed Dec 30 15:40:33 2009 +0000
@@ -328,7 +328,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-requested data (QVariant)
+requested data
 </dd>
 </dl><a NAME="VariableItem.deleteChildren" ID="VariableItem.deleteChildren"></a>
 <h4>VariableItem.deleteChildren</h4>
--- a/Documentation/Source/eric4.Debugger.WatchPointModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Debugger.WatchPointModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -159,7 +159,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-the requested data (QVariant)
+the requested data
 </dd>
 </dl><a NAME="WatchPointModel.deleteAll" ID="WatchPointModel.deleteAll"></a>
 <h4>WatchPointModel.deleteAll</h4>
@@ -269,7 +269,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="WatchPointModel.index" ID="WatchPointModel.index"></a>
 <h4>WatchPointModel.index</h4>
--- a/Documentation/Source/eric4.Graphics.UMLItem.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Graphics.UMLItem.html	Wed Dec 30 15:40:33 2009 +0000
@@ -130,12 +130,12 @@
 the item's change (QGraphicsItem.GraphicsItemChange)
 </dd><dt><i>value</i></dt>
 <dd>
-the value of the change (QVariant)
+the value of the change
 </dd>
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-adjusted values (QVariant)
+adjusted values
 </dd>
 </dl><a NAME="UMLItem.moveBy" ID="UMLItem.moveBy"></a>
 <h4>UMLItem.moveBy</h4>
--- a/Documentation/Source/eric4.Helpviewer.AdBlock.AdBlockModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.AdBlock.AdBlockModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -146,7 +146,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-bookmark data (QVariant)
+bookmark data
 </dd>
 </dl><a NAME="AdBlockModel.flags" ID="AdBlockModel.flags"></a>
 <h4>AdBlockModel.flags</h4>
@@ -197,7 +197,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="AdBlockModel.index" ID="AdBlockModel.index"></a>
 <h4>AdBlockModel.index</h4>
@@ -297,7 +297,7 @@
 index of the node cell (QModelIndex)
 </dd><dt><i>value</i></dt>
 <dd>
-value to be set (QVariant)
+value to be set
 </dd><dt><i>role</i></dt>
 <dd>
 role of the data (integer)
--- a/Documentation/Source/eric4.Helpviewer.Bookmarks.BookmarksModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.Bookmarks.BookmarksModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -172,7 +172,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-bookmark data (QVariant)
+bookmark data
 </dd>
 </dl><a NAME="BookmarksModel.dropMimeData" ID="BookmarksModel.dropMimeData"></a>
 <h4>BookmarksModel.dropMimeData</h4>
@@ -286,7 +286,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="BookmarksModel.index" ID="BookmarksModel.index"></a>
 <h4>BookmarksModel.index</h4>
@@ -426,7 +426,7 @@
 index of the node cell (QModelIndex)
 </dd><dt><i>value</i></dt>
 <dd>
-value to be set (QVariant)
+value to be set
 </dd><dt><i>role</i></dt>
 <dd>
 role of the data (integer)
--- a/Documentation/Source/eric4.Helpviewer.CookieJar.CookieModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.CookieJar.CookieModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -125,7 +125,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-requested data (QVariant)
+requested data
 </dd>
 </dl><a NAME="CookieModel.headerData" ID="CookieModel.headerData"></a>
 <h4>CookieModel.headerData</h4>
--- a/Documentation/Source/eric4.Helpviewer.History.HistoryCompleter.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.History.HistoryCompleter.html	Wed Dec 30 15:40:33 2009 +0000
@@ -188,7 +188,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-history entry data (QVariant)
+history entry data
 </dd>
 </dl><a NAME="HistoryCompletionModel.filterAcceptsRow" ID="HistoryCompletionModel.filterAcceptsRow"></a>
 <h4>HistoryCompletionModel.filterAcceptsRow</h4>
--- a/Documentation/Source/eric4.Helpviewer.History.HistoryFilterModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.History.HistoryFilterModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -306,7 +306,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-history entry data (QVariant)
+history entry data
 </dd>
 </dl><a NAME="HistoryFilterModel.headerData" ID="HistoryFilterModel.headerData"></a>
 <h4>HistoryFilterModel.headerData</h4>
@@ -327,7 +327,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="HistoryFilterModel.historyContains" ID="HistoryFilterModel.historyContains"></a>
 <h4>HistoryFilterModel.historyContains</h4>
--- a/Documentation/Source/eric4.Helpviewer.History.HistoryModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.History.HistoryModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -126,7 +126,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-history entry data (QVariant)
+history entry data
 </dd>
 </dl><a NAME="HistoryModel.entryAdded" ID="HistoryModel.entryAdded"></a>
 <h4>HistoryModel.entryAdded</h4>
@@ -162,7 +162,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="HistoryModel.historyReset" ID="HistoryModel.historyReset"></a>
 <h4>HistoryModel.historyReset</h4>
--- a/Documentation/Source/eric4.Helpviewer.History.HistoryTreeModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.History.HistoryTreeModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -203,7 +203,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-history entry data (QVariant)
+history entry data
 </dd>
 </dl><a NAME="HistoryTreeModel.flags" ID="HistoryTreeModel.flags"></a>
 <h4>HistoryTreeModel.flags</h4>
@@ -254,7 +254,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="HistoryTreeModel.index" ID="HistoryTreeModel.index"></a>
 <h4>HistoryTreeModel.index</h4>
--- a/Documentation/Source/eric4.Helpviewer.OpenSearch.OpenSearchEngineModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.OpenSearch.OpenSearchEngineModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -131,7 +131,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-requested data (QVariant)
+requested data
 </dd>
 </dl><a NAME="OpenSearchEngineModel.flags" ID="OpenSearchEngineModel.flags"></a>
 <h4>OpenSearchEngineModel.flags</h4>
@@ -167,7 +167,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="OpenSearchEngineModel.removeRows" ID="OpenSearchEngineModel.removeRows"></a>
 <h4>OpenSearchEngineModel.removeRows</h4>
@@ -216,7 +216,7 @@
 index of the model cell (QModelIndex)
 </dd><dt><i>value</i></dt>
 <dd>
-value to be set (QVariant)
+value to be set
 </dd><dt><i>role</i></dt>
 <dd>
 role of the data (integer)
--- a/Documentation/Source/eric4.Helpviewer.Passwords.PasswordModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Helpviewer.Passwords.PasswordModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -131,7 +131,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-requested data (QVariant)
+requested data
 </dd>
 </dl><a NAME="PasswordModel.headerData" ID="PasswordModel.headerData"></a>
 <h4>PasswordModel.headerData</h4>
@@ -152,7 +152,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-header data (QVariant)
+header data
 </dd>
 </dl><a NAME="PasswordModel.removeRows" ID="PasswordModel.removeRows"></a>
 <h4>PasswordModel.removeRows</h4>
--- a/Documentation/Source/eric4.Preferences.__init__.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Preferences.__init__.html	Wed Dec 30 15:40:33 2009 +0000
@@ -27,10 +27,9 @@
 The preferences interface consists of a class, which defines the default
 values for all configuration items and stores the actual values. These
 values are read and written to the eric4 preferences file by module
-functions. On Windows the data is located in the registry, everywhere 
-else it is stored in a file in a subdirectory of the users home directory.
-The individual configuration data is accessed by accessor functions defined
-on the module level. The module is simply imported wherever it is needed
+functions. The data is stored in a file in a subdirectory of the users home 
+directory. The individual configuration data is accessed by accessor functions 
+defined on the module level. The module is simply imported wherever it is needed
 with the statement 'import Preferences'. Do not use 'from Preferences import *'
 to import it.
 </p>
@@ -299,6 +298,12 @@
 </tr><tr>
 <td><a href="#syncPreferences">syncPreferences</a></td>
 <td>Module function to sync the preferences to disk.</td>
+</tr><tr>
+<td><a href="#toBool">toBool</a></td>
+<td>Module function to convert a value to bool.</td>
+</tr><tr>
+<td><a href="#toList">toList</a></td>
+<td>Module function to convert a value to a list.</td>
 </tr>
 </table>
 <hr /><hr />
@@ -1895,5 +1900,41 @@
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="toBool" ID="toBool"></a>
+<h2>toBool</h2>
+<b>toBool</b>(<i>value</i>)
+<p>
+    Module function to convert a value to bool.
+</p><dl>
+<dt><i>value</i></dt>
+<dd>
+value to be converted
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+converted data
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="toList" ID="toList"></a>
+<h2>toList</h2>
+<b>toList</b>(<i>value</i>)
+<p>
+    Module function to convert a value to a list.
+</p><dl>
+<dt><i>value</i></dt>
+<dd>
+value to be converted
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+converted data
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/Documentation/Source/eric4.Project.ProjectBrowserModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.Project.ProjectBrowserModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -230,7 +230,7 @@
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-text color (QVariant(QColor))
+text color (QColor)
 </dd>
 </dl><a NAME="ProjectBrowserItemMixin.setVcsState" ID="ProjectBrowserItemMixin.setVcsState"></a>
 <h4>ProjectBrowserItemMixin.setVcsState</h4>
@@ -445,7 +445,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-requested data (QVariant)
+requested data
 </dd>
 </dl><a NAME="ProjectBrowserModel.findChildItem" ID="ProjectBrowserModel.findChildItem"></a>
 <h4>ProjectBrowserModel.findChildItem</h4>
--- a/Documentation/Source/eric4.UI.BrowserModel.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/eric4.UI.BrowserModel.html	Wed Dec 30 15:40:33 2009 +0000
@@ -1335,7 +1335,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-requested data (QVariant)
+requested data
 </dd>
 </dl><a NAME="BrowserModel.flags" ID="BrowserModel.flags"></a>
 <h4>BrowserModel.flags</h4>
@@ -1389,7 +1389,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-requested header data (QVariant)
+requested header data
 </dd>
 </dl><a NAME="BrowserModel.index" ID="BrowserModel.index"></a>
 <h4>BrowserModel.index</h4>
--- a/Documentation/Source/index-eric4.Preferences.html	Mon Dec 28 18:31:37 2009 +0000
+++ b/Documentation/Source/index-eric4.Preferences.html	Wed Dec 30 15:40:33 2009 +0000
@@ -27,10 +27,9 @@
 The preferences interface consists of a class, which defines the default
 values for all configuration items and stores the actual values. These
 values are read and written to the eric4 preferences file by module
-functions. On Windows the data is located in the registry, everywhere 
-else it is stored in a file in a subdirectory of the users home directory.
-The individual configuration data is accessed by accessor functions defined
-on the module level. The module is simply imported wherever it is needed
+functions. The data is stored in a file in a subdirectory of the users home 
+directory. The individual configuration data is accessed by accessor functions 
+defined on the module level. The module is simply imported wherever it is needed
 with the statement 'import Preferences'. Do not use 'from Preferences import *'
 to import it.
 </p>
--- a/E4Gui/E4ModelMenu.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/E4Gui/E4ModelMenu.py	Wed Dec 30 15:40:33 2009 +0000
@@ -187,16 +187,16 @@
         @param menu reference to the menu to be populated (QMenu)
         """
         if menu is None:
-            v = QVariant(parent)
+            v = parent
             
-            title = parent.data().toString()
+            title = parent.data()
             modelMenu = self.createBaseMenu()
             # triggered goes all the way up the menu structure
             self.disconnect(modelMenu, SIGNAL("triggered(QAction*)"), 
                             modelMenu.__actionTriggered)
             modelMenu.setTitle(title)
             
-            icon = parent.data(Qt.DecorationRole).toPyObject()
+            icon = parent.data(Qt.DecorationRole)
             if icon == NotImplemented or icon is None:
                 icon = UI.PixmapCache.getIcon("defaultIcon.png")
             modelMenu.setIcon(icon)
@@ -218,7 +218,7 @@
             if self.__model.hasChildren(idx):
                 self.createMenu(idx, -1, menu)
             else:
-                if self.__separatorRole != 0 and idx.data(self.__separatorRole).toBool():
+                if self.__separatorRole != 0 and idx.data(self.__separatorRole):
                     self.addSeparator()
                 else:
                     menu.addAction(self.__makeAction(idx))
@@ -233,13 +233,13 @@
         @param idx index of the item to create an action for (QModelIndex)
         @return reference to the created action (QAction)
         """
-        icon = idx.data(Qt.DecorationRole).toPyObject()
+        icon = idx.data(Qt.DecorationRole)
         if icon == NotImplemented or icon is None:
             icon = UI.PixmapCache.getIcon("defaultIcon.png")
-        action = self.makeAction(icon, idx.data().toString(), self)
-        action.setStatusTip(idx.data(self.__statusBarTextRole).toString())
+        action = self.makeAction(icon, idx.data(), self)
+        action.setStatusTip(idx.data(self.__statusBarTextRole))
         
-        v = QVariant(idx)
+        v = idx
         action.setData(v)
         
         return action
@@ -280,11 +280,10 @@
         if action is None:
             return QModelIndex()
         
-        v = action.data()
-        if not v.isValid():
+        idx = action.data()
+        if idx is None:
             return QModelIndex()
         
-        idx = v.toPyObject()
         if not isinstance(idx, QModelIndex):
             return QModelIndex()
         
--- a/E4Gui/E4ModelToolBar.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/E4Gui/E4ModelToolBar.py	Wed Dec 30 15:40:33 2009 +0000
@@ -113,10 +113,10 @@
         
         for i in range(self.__model.rowCount(self.__root)):
             idx = self.__model.index(i, 0, self.__root)
-            v = QVariant(idx)
+            v = idx
             
-            title = idx.data(Qt.DisplayRole).toString()
-            icon = idx.data(Qt.DecorationRole).toPyObject()
+            title = idx.data(Qt.DisplayRole)
+            icon = idx.data(Qt.DecorationRole)
             if icon == NotImplemented or icon is None:
                 icon = QIcon()
             folder = self.__model.hasChildren(idx)
@@ -145,11 +145,10 @@
         if action is None:
             return QModelIndex()
         
-        v = action.data()
-        if not v.isValid():
+        idx = action.data()
+        if idx is None:
             return QModelIndex()
         
-        idx = v.toPyObject()
         if not isinstance(idx, QModelIndex):
             return QModelIndex()
         
--- a/E4Gui/E4TabWidget.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/E4Gui/E4TabWidget.py	Wed Dec 30 15:40:33 2009 +0000
@@ -94,10 +94,10 @@
         """
         mimeData = event.mimeData()
         formats = mimeData.formats()
-        if formats.contains("action") and \
+        if "action" in formats and \
            mimeData.data("action") == "tab-reordering" and \
-           formats.contains("tabbar-id") and \
-           mimeData.data("tabbar-id").toLong()[0] == id(self):
+           "tabbar-id" in formats and \
+           mimeData.data("tabbar-id") == id(self):
             event.acceptProposedAction()
         E4WheelTabBar.dragEnterEvent(self, event)
     
--- a/E4Gui/E4ToolBarDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/E4Gui/E4ToolBarDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -78,11 +78,11 @@
                 item.setText(0, action.text())
                 item.setIcon(0, action.icon())
                 item.setTextAlignment(0, Qt.AlignLeft | Qt.AlignVCenter)
-                item.setData(0, E4ToolBarDialog.ActionIdRole, QVariant(long(id(action))))
-                item.setData(0, E4ToolBarDialog.WidgetActionRole, QVariant(False))
+                item.setData(0, E4ToolBarDialog.ActionIdRole, long(id(action)))
+                item.setData(0, E4ToolBarDialog.WidgetActionRole, False)
                 if self.__manager.isWidgetAction(action):
-                    item.setData(0, E4ToolBarDialog.WidgetActionRole, QVariant(True))
-                    item.setData(0, Qt.TextColorRole, QVariant(QColor(Qt.blue)))
+                    item.setData(0, E4ToolBarDialog.WidgetActionRole, True)
+                    item.setData(0, Qt.TextColorRole, QColor(Qt.blue))
                     self.__widgetActionToToolBarItemID[id(action)] = None
             categoryItem.setExpanded(True)
         
@@ -103,10 +103,10 @@
                         self.__widgetActionToToolBarItemID[aID] = id(tbItem)
                         self.__toolBarItemToWidgetActionID[id(tbItem)].append(aID)
             tbItem.actionIDs = actionIDs
-            self.toolbarComboBox.addItem(tb.windowTitle(), QVariant(long(id(tbItem))))
+            self.toolbarComboBox.addItem(tb.windowTitle(), long(id(tbItem)))
             if default:
                 self.toolbarComboBox.setItemData(self.toolbarComboBox.count() - 1, 
-                    QVariant(QColor(Qt.darkGreen)), Qt.ForegroundRole)
+                    QColor(Qt.darkGreen), Qt.ForegroundRole)
         self.toolbarComboBox.model().sort(0)
         
         self.connect(self.toolbarComboBox, SIGNAL("currentIndexChanged(int)"), 
@@ -139,7 +139,7 @@
             tbItem.isChanged = True
             self.__toolbarItems[id(tbItem)] = tbItem
             self.__toolBarItemToWidgetActionID[id(tbItem)] = []
-            self.toolbarComboBox.addItem(name, QVariant(long(id(tbItem))))
+            self.toolbarComboBox.addItem(name, long(id(tbItem)))
             self.toolbarComboBox.model().sort(0)
             self.toolbarComboBox.setCurrentIndex(self.toolbarComboBox.findText(name))
     
@@ -159,7 +159,7 @@
             QMessageBox.No)
         if res == QMessageBox.Yes:
             index = self.toolbarComboBox.currentIndex()
-            tbItemID = self.toolbarComboBox.itemData(index).toULongLong()[0]
+            tbItemID = self.toolbarComboBox.itemData(index)
             tbItem = self.__toolbarItems[tbItemID]
             if tbItem.toolBarId is not None and \
                tbItem.toolBarId not in self.__removedToolBarIDs:
@@ -197,7 +197,7 @@
             index = self.toolbarComboBox.currentIndex()
             self.toolbarComboBox.setItemText(index, newName)
             tbItem = \
-                self.__toolbarItems[self.toolbarComboBox.itemData(index).toULongLong()[0]]
+                self.__toolbarItems[self.toolbarComboBox.itemData(index)]
             tbItem.title = newName
             tbItem.isChanged = True
     
@@ -207,7 +207,7 @@
         """
         index = self.toolbarComboBox.currentIndex()
         if index > -1:
-            itemID = self.toolbarComboBox.itemData(index).toULongLong()[0]
+            itemID = self.toolbarComboBox.itemData(index)
             self.__currentToolBarItem = self.__toolbarItems[itemID]
             self.renameButton.setEnabled(not self.__currentToolBarItem.isDefault)
             self.removeButton.setEnabled(not self.__currentToolBarItem.isDefault)
@@ -229,7 +229,7 @@
         
         @param index index of the new current toolbar (integer)
         """
-        itemID = self.toolbarComboBox.itemData(index).toULongLong()[0]
+        itemID = self.toolbarComboBox.itemData(index)
         self.__currentToolBarItem = self.__toolbarItems[itemID]
         self.toolbarActionsList.clear()
         for actionID in self.__currentToolBarItem.actionIDs:
@@ -241,11 +241,11 @@
                 item.setText(action.text())
                 item.setIcon(action.icon())
                 item.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter)
-                item.setData(E4ToolBarDialog.ActionIdRole, QVariant(long(id(action))))
-                item.setData(E4ToolBarDialog.WidgetActionRole, QVariant(False))
+                item.setData(E4ToolBarDialog.ActionIdRole, long(id(action)))
+                item.setData(E4ToolBarDialog.WidgetActionRole, False)
                 if self.__manager.isWidgetAction(action):
-                    item.setData(E4ToolBarDialog.WidgetActionRole, QVariant(True))
-                    item.setData(Qt.TextColorRole, QVariant(QColor(Qt.blue)))
+                    item.setData(E4ToolBarDialog.WidgetActionRole, True)
+                    item.setData(Qt.TextColorRole, QColor(Qt.blue))
         self.toolbarActionsList.setCurrentRow(0)
         
         self.__setupButtons()
@@ -330,16 +330,16 @@
             actionID = None
         else:
             actionID = self.actionsTree.currentItem()\
-                       .data(0, E4ToolBarDialog.ActionIdRole).toULongLong()[0]
+                       .data(0, E4ToolBarDialog.ActionIdRole)
             action = self.__manager.actionById(actionID)
             item.setText(action.text())
             item.setIcon(action.icon())
             item.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter)
-            item.setData(E4ToolBarDialog.ActionIdRole, QVariant(long(id(action))))
-            item.setData(E4ToolBarDialog.WidgetActionRole, QVariant(False))
+            item.setData(E4ToolBarDialog.ActionIdRole, long(id(action)))
+            item.setData(E4ToolBarDialog.WidgetActionRole, False)
             if self.__manager.isWidgetAction(action):
-                item.setData(E4ToolBarDialog.WidgetActionRole, QVariant(True))
-                item.setData(Qt.TextColorRole, QVariant(QColor(Qt.blue)))
+                item.setData(E4ToolBarDialog.WidgetActionRole, True)
+                item.setData(Qt.TextColorRole, QColor(Qt.blue))
                 oldTbItemID = self.__widgetActionToToolBarItemID[actionID]
                 if oldTbItemID is not None:
                     self.__toolbarItems[oldTbItemID].actionIDs.remove(actionID)
--- a/E4Network/E4NetworkMonitor.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/E4Network/E4NetworkMonitor.py	Wed Dec 30 15:40:33 2009 +0000
@@ -161,10 +161,10 @@
             self.__requestHeaders.insertRows(0, 1, QModelIndex())
             self.__requestHeaders.setData(
                 self.__requestHeaders.index(0, 0), 
-                QVariant(header))
+                header)
             self.__requestHeaders.setData(
                 self.__requestHeaders.index(0, 1), 
-                QVariant(req.rawHeader(header)))
+                req.rawHeader(header))
             self.__requestHeaders.item(0, 0).setFlags(
                 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
             self.__requestHeaders.item(0, 1).setFlags(
@@ -174,10 +174,10 @@
             self.__replyHeaders.insertRows(0, 1, QModelIndex())
             self.__replyHeaders.setData(
                 self.__replyHeaders.index(0, 0), 
-                QVariant(header[0]))
+                header[0])
             self.__replyHeaders.setData(
                 self.__replyHeaders.index(0, 1), 
-                QVariant(header[1]))
+                header[1])
             self.__replyHeaders.item(0, 0).setFlags(
                 Qt.ItemIsSelectable | Qt.ItemIsEnabled)
             self.__replyHeaders.item(0, 1).setFlags(
@@ -197,8 +197,8 @@
             return
         
         row = index.row()
-        name = headerList.model().data(headerList.model().index(row, 0)).toString()
-        value = headerList.model().data(headerList.model().index(row, 1)).toString()
+        name = headerList.model().data(headerList.model().index(row, 0))
+        value = headerList.model().data(headerList.model().index(row, 1))
         if self.__headersDlg is None:
             self.__headersDlg = E4NetworkHeaderDetailsDialog(self)
         self.__headersDlg.setData(name, value)
@@ -285,16 +285,14 @@
             self.requests[offset].replyHeaders.append((header, reply.rawHeader(header)))
         
         # save reply info to be displayed
-        status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute).toInt()[0]
-        reason = reply.attribute(QNetworkRequest.HttpReasonPhraseAttribute).toString()
+        status = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
+        reason = reply.attribute(QNetworkRequest.HttpReasonPhraseAttribute)
         self.requests[offset].response = "%d %s" % (status, reason)
-        self.requests[offset].length = \
-            reply.header(QNetworkRequest.ContentLengthHeader).toInt()[0]
-        self.requests[offset].contentType = \
-            reply.header(QNetworkRequest.ContentTypeHeader).toString()
+        self.requests[offset].length = reply.header(QNetworkRequest.ContentLengthHeader)
+        self.requests[offset].contentType = reply.header(QNetworkRequest.ContentTypeHeader)
         
         if status == 302:
-            target = reply.attribute(QNetworkRequest.RedirectionTargetAttribute).toUrl()
+            target = reply.attribute(QNetworkRequest.RedirectionTargetAttribute)
             self.requests[offset].info = \
                 self.trUtf8("Redirect: {0}").format(target.toString())
     
@@ -308,7 +306,7 @@
         @return requested data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            return QVariant(self.__headerData[section])
+            return self.__headerData[section]
         
         return QAbstractTableModel.headerData(self, section, orientation, role)
     
@@ -321,27 +319,27 @@
         @return requested data
         """
         if index.row() < 0 or index.row() >= len(self.requests):
-            return QVariant()
+            return None
         
         if role == Qt.DisplayRole or role == Qt.EditRole:
             col = index.column()
             if col == 0:
                 try:
-                    return QVariant(self.__operations[self.requests[index.row()].op])
+                    return self.__operations[self.requests[index.row()].op]
                 except KeyError:
-                    return QVariant(self.trUtf8("Unknown"))
+                    return self.trUtf8("Unknown")
             elif col == 1:
-                return QVariant(self.requests[index.row()].request.url().toEncoded())
+                return self.requests[index.row()].request.url().toEncoded()
             elif col == 2:
-                return QVariant(self.requests[index.row()].response)
+                return self.requests[index.row()].response
             elif col == 3:
-                return QVariant(self.requests[index.row()].length)
+                return self.requests[index.row()].length
             elif col == 4:
-                return QVariant(self.requests[index.row()].contentType)
+                return self.requests[index.row()].contentType
             elif col == 5:
-                return QVariant(self.requests[index.row()].info)
+                return self.requests[index.row()].info
         
-        return QVariant()
+        return None
     
     def columnCount(self, parent):
         """
--- a/Graphics/UMLItem.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Graphics/UMLItem.py	Wed Dec 30 15:40:33 2009 +0000
@@ -113,8 +113,8 @@
         Protected method called when an items state changes.
         
         @param change the item's change (QGraphicsItem.GraphicsItemChange)
-        @param value the value of the change (QVariant)
-        @return adjusted values (QVariant)
+        @param value the value of the change
+        @return adjusted values
         """
         if change == QGraphicsItem.ItemPositionChange:
             self.shouldAdjustAssociations = True
--- a/Helpviewer/AdBlock/AdBlockModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/AdBlock/AdBlockModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -80,11 +80,11 @@
         @param section section number (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role data role (integer)
-        @return header data (QVariant)
+        @return header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             if section == 0:
-                return QVariant(self.trUtf8("Rule"))
+                return self.trUtf8("Rule")
         return QAbstractItemModel.headerData(self, section, orientation, role)
     
     def data(self, index, role = Qt.DisplayRole):
@@ -93,36 +93,36 @@
         
         @param index index of bookmark to get data for (QModelIndex)
         @param role data role (integer)
-        @return bookmark data (QVariant)
+        @return bookmark data
         """
         if not index.isValid() or index.model() != self or index.column() != 0:
-            return QVariant()
+            return None
         
         if role in [Qt.EditRole, Qt.DisplayRole]:
             if index.parent().isValid():
                 r = self.rule(index)
-                return QVariant(r.filter())
+                return r.filter()
             else:
                 sub = self.subscription(index)
                 if sub is not None:
-                    return QVariant(sub.title())
+                    return sub.title()
         
         elif role == Qt.CheckStateRole:
             if index.parent().isValid():
                 r = self.rule(index)
                 if r.isEnabled():
-                    return QVariant(Qt.Checked)
+                    return Qt.Checked
                 else:
-                    return QVariant(Qt.Unchecked)
+                    return Qt.Unchecked
             else:
                 sub = self.subscription(index)
                 if sub is not None:
                     if sub.isEnabled():
-                        return QVariant(Qt.Checked)
+                        return Qt.Checked
                     else:
-                        return QVariant(Qt.Unchecked)
+                        return Qt.Unchecked
         
-        return QVariant()
+        return None
     
     def columnCount(self, parent = QModelIndex()):
         """
@@ -259,7 +259,7 @@
         Public method to set the data of a node cell.
         
         @param index index of the node cell (QModelIndex)
-        @param value value to be set (QVariant)
+        @param value value to be set
         @param role role of the data (integer)
         @return flag indicating success (boolean)
         """
@@ -277,7 +277,7 @@
                 sub = self.subscription(index.parent())
                 if sub is not None:
                     r = self.rule(index)
-                    r.setFilter(value.toString())
+                    r.setFilter(value)
                     sub.replaceRule(r, index.row())
                     self.emit(SIGNAL("dataChanged(const QModelIndex&, const QModelIndex&)"), 
                         index, index)
@@ -285,7 +285,7 @@
             else:
                 sub = self.subscription(index)
                 if sub is not None:
-                    sub.setTitle(value.toString())
+                    sub.setTitle(value)
                     self.emit(SIGNAL("dataChanged(const QModelIndex&, const QModelIndex&)"), 
                         index, index)
                     changed = True
--- a/Helpviewer/AdBlock/AdBlockSubscription.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/AdBlock/AdBlockSubscription.py	Wed Dec 30 15:40:33 2009 +0000
@@ -250,7 +250,7 @@
         reply = self.sender()
         
         response = reply.readAll()
-        redirect = reply.attribute(QNetworkRequest.RedirectionTargetAttribute).toUrl()
+        redirect = reply.attribute(QNetworkRequest.RedirectionTargetAttribute)
         reply.close()
         reply.deleteLater()
         
--- a/Helpviewer/Bookmarks/BookmarksDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Bookmarks/BookmarksDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -189,12 +189,12 @@
             return
         if newTab:
             self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                      idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.sibling(idx.row(), 0).data(Qt.DisplayRole).toString())
+                      idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole), 
+                      idx.sibling(idx.row(), 0).data(Qt.DisplayRole))
         else:
             self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                      idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.sibling(idx.row(), 0).data(Qt.DisplayRole).toString())
+                      idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole), 
+                      idx.sibling(idx.row(), 0).data(Qt.DisplayRole))
     
     def __editName(self):
         """
--- a/Helpviewer/Bookmarks/BookmarksManager.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Bookmarks/BookmarksManager.py	Wed Dec 30 15:40:33 2009 +0000
@@ -349,7 +349,7 @@
             
             webpage = QWebPage()
             webpage.mainFrame().setHtml(unicode(inFile.readAll()))
-            result = webpage.mainFrame().evaluateJavaScript(extract_js).toByteArray()
+            result = webpage.mainFrame().evaluateJavaScript(extract_js)
             buffer_ = QBuffer(result)
             buffer_.open(QIODevice.ReadOnly)
             importRootNode = reader.read(buffer_)
@@ -397,9 +397,7 @@
         bmNames = Preferences.Prefs.settings.value('Bookmarks/Names')
         bmFiles = Preferences.Prefs.settings.value('Bookmarks/Files')
         
-        if bmNames.isValid() and bmFiles.isValid():
-            bmNames = bmNames.toStringList()
-            bmFiles = bmFiles.toStringList()
+        if bmNames is not None and bmFiles is not None:
             if len(bmNames) == len(bmFiles):
                 convertedRootNode = BookmarkNode(BookmarkNode.Folder)
                 convertedRootNode.title = self.trUtf8("Converted {0}")\
--- a/Helpviewer/Bookmarks/BookmarksMenu.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Bookmarks/BookmarksMenu.py	Wed Dec 30 15:40:33 2009 +0000
@@ -62,12 +62,12 @@
         """
         if self._keyboardModifiers & Qt.ControlModifier:
             self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                      idx.data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.data(Qt.DisplayRole).toString())
+                      idx.data(BookmarksModel.UrlRole), 
+                      idx.data(Qt.DisplayRole))
         else:
             self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                      idx.data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.data(Qt.DisplayRole).toString())
+                      idx.data(BookmarksModel.UrlRole), 
+                      idx.data(Qt.DisplayRole))
         self.resetFlags()
     
     def postPopulated(self):
@@ -84,7 +84,7 @@
         for i in range(parent.model().rowCount(parent)):
             child = parent.model().index(i, 0, parent)
             
-            if child.data(BookmarksModel.TypeRole).toInt()[0] == BookmarkNode.Bookmark:
+            if child.data(BookmarksModel.TypeRole) == BookmarkNode.Bookmark:
                 hasBookmarks = True
                 break
         
@@ -110,17 +110,17 @@
         for i in range(parent.model().rowCount(parent)):
             child = parent.model().index(i, 0, parent)
             
-            if child.data(BookmarksModel.TypeRole).toInt()[0] != BookmarkNode.Bookmark:
+            if child.data(BookmarksModel.TypeRole) != BookmarkNode.Bookmark:
                 continue
             
             if i == 0:
                 self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"),
-                          child.data(BookmarksModel.UrlRole).toUrl(), 
-                          child.data(Qt.DisplayRole).toString())
+                          child.data(BookmarksModel.UrlRole), 
+                          child.data(Qt.DisplayRole))
             else:
                 self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"),
-                          child.data(BookmarksModel.UrlRole).toUrl(), 
-                          child.data(Qt.DisplayRole).toString())
+                          child.data(BookmarksModel.UrlRole), 
+                          child.data(Qt.DisplayRole))
     
     def __contextMenuRequested(self, pos):
         """
@@ -161,8 +161,8 @@
         idx = self.index(self.sender())
         
         self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                  idx.data(BookmarksModel.UrlRole).toUrl(), 
-                  idx.data(Qt.DisplayRole).toString())
+                  idx.data(BookmarksModel.UrlRole), 
+                  idx.data(Qt.DisplayRole))
     
     def __openBookmarkInNewTab(self):
         """
@@ -171,8 +171,8 @@
         idx = self.index(self.sender())
         
         self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                  idx.data(BookmarksModel.UrlRole).toUrl(), 
-                  idx.data(Qt.DisplayRole).toString())
+                  idx.data(BookmarksModel.UrlRole), 
+                  idx.data(Qt.DisplayRole))
     
     def __removeBookmark(self):
         """
--- a/Helpviewer/Bookmarks/BookmarksModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Bookmarks/BookmarksModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -149,11 +149,11 @@
         @param section section number (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role data role (integer)
-        @return header data (QVariant)
+        @return header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             try:
-                return QVariant(self.__headers[section])
+                return self.__headers[section]
             except IndexError:
                 pass
         return QAbstractItemModel.headerData(self, section, orientation, role)
@@ -164,44 +164,44 @@
         
         @param index index of bookmark to get data for (QModelIndex)
         @param role data role (integer)
-        @return bookmark data (QVariant)
+        @return bookmark data
         """
         if not index.isValid() or index.model() != self:
-            return QVariant()
+            return None
         
         bookmarkNode = self.node(index)
         if role in [Qt.EditRole, Qt.DisplayRole]:
             if bookmarkNode.type() == BookmarkNode.Separator:
                 if index.column() == 0:
-                    return QVariant(50 * '\xB7')
+                    return 50 * '\xB7'
                 elif index.column() == 1:
-                    return QVariant("")
+                    return ""
             
             if index.column() == 0:
-                return QVariant(bookmarkNode.title)
+                return bookmarkNode.title
             elif index.column() == 1:
-                return QVariant(bookmarkNode.url)
+                return bookmarkNode.url
         
         elif role == self.UrlRole:
-            return QVariant(QUrl(bookmarkNode.url))
+            return QUrl(bookmarkNode.url)
         
         elif role == self.UrlStringRole:
-            return QVariant(bookmarkNode.url)
+            return bookmarkNode.url
         
         elif role == self.TypeRole:
-            return QVariant(bookmarkNode.type())
+            return bookmarkNode.type()
         
         elif role == self.SeparatorRole:
-            return QVariant(bookmarkNode.type() == BookmarkNode.Separator)
+            return bookmarkNode.type() == BookmarkNode.Separator
         
         elif role == Qt.DecorationRole:
             if index.column() == 0:
                 if bookmarkNode.type() == BookmarkNode.Folder:
-                    return QVariant(UI.PixmapCache.getIcon("dirOpen.png"))
-                return QVariant(Helpviewer.HelpWindow.HelpWindow.icon(
-                                QUrl(bookmarkNode.url)))
+                    return UI.PixmapCache.getIcon("dirOpen.png")
+                return Helpviewer.HelpWindow.HelpWindow.icon(
+                        QUrl(bookmarkNode.url))
         
-        return QVariant()
+        return None
     
     def columnCount(self, parent = QModelIndex()):
         """
@@ -351,7 +351,7 @@
             parentNode = self.node(index)
             writer.write(buffer, parentNode)
             stream << encodedData
-            urls.append(index.data(self.UrlRole).toUrl())
+            urls.append(index.data(self.UrlRole))
         
         mdata = QMimeData()
         mdata.setData(self.MIMETYPE, data)
@@ -421,7 +421,7 @@
         Public method to set the data of a node cell.
         
         @param index index of the node cell (QModelIndex)
-        @param value value to be set (QVariant)
+        @param value value to be set
         @param role role of the data (integer)
         @return flag indicating success (boolean)
         """
@@ -432,17 +432,17 @@
         
         if role in (Qt.EditRole, Qt.DisplayRole):
             if index.column() == 0:
-                self.__bookmarksManager.setTitle(item, value.toString())
+                self.__bookmarksManager.setTitle(item, value)
             elif index.column() == 1:
-                self.__bookmarksManager.setUrl(item, value.toString())
+                self.__bookmarksManager.setUrl(item, value)
             else:
                 return False
         
         elif role == BookmarksModel.UrlRole:
-            self.__bookmarksManager.setUrl(item, value.toUrl().toString())
+            self.__bookmarksManager.setUrl(item, value.toString())
         
         elif role == BookmarksModel.UrlStringRole:
-            self.__bookmarksManager.setUrl(item, value.toString())
+            self.__bookmarksManager.setUrl(item, value)
         
         else:
             return False
--- a/Helpviewer/Bookmarks/BookmarksToolBar.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Bookmarks/BookmarksToolBar.py	Wed Dec 30 15:40:33 2009 +0000
@@ -98,12 +98,12 @@
         
         if self._keyboardModifiers & Qt.ControlModifier:
             self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                      idx.data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.data(Qt.DisplayRole).toString())
+                      idx.data(BookmarksModel.UrlRole), 
+                      idx.data(Qt.DisplayRole))
         else:
             self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                      idx.data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.data(Qt.DisplayRole).toString())
+                      idx.data(BookmarksModel.UrlRole), 
+                      idx.data(Qt.DisplayRole))
     
     def __openToolBarBookmark(self):
         """
@@ -113,12 +113,12 @@
         
         if self._keyboardModifiers & Qt.ControlModifier:
             self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                      idx.data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.data(Qt.DisplayRole).toString())
+                      idx.data(BookmarksModel.UrlRole), 
+                      idx.data(Qt.DisplayRole))
         else:
             self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                      idx.data(BookmarksModel.UrlRole).toUrl(), 
-                      idx.data(Qt.DisplayRole).toString())
+                      idx.data(BookmarksModel.UrlRole), 
+                      idx.data(Qt.DisplayRole))
         self.resetFlags()
     
     def __openBookmark(self):
@@ -128,8 +128,8 @@
         idx = self.index(self.sender())
         
         self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                  idx.data(BookmarksModel.UrlRole).toUrl(), 
-                  idx.data(Qt.DisplayRole).toString())
+                  idx.data(BookmarksModel.UrlRole), 
+                  idx.data(Qt.DisplayRole))
     
     def __openBookmarkInNewTab(self):
         """
@@ -138,8 +138,8 @@
         idx = self.index(self.sender())
         
         self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                  idx.data(BookmarksModel.UrlRole).toUrl(), 
-                  idx.data(Qt.DisplayRole).toString())
+                  idx.data(BookmarksModel.UrlRole), 
+                  idx.data(Qt.DisplayRole))
     
     def __removeBookmark(self):
         """
--- a/Helpviewer/CookieJar/CookieExceptionsModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/CookieJar/CookieExceptionsModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -48,14 +48,14 @@
             fm = QFontMetrics(QFont())
             height = fm.height() + fm.height() / 3
             width = \
-                fm.width(self.headerData(section, orientation, Qt.DisplayRole).toString())
-            return QVariant(QSize(width, height))
+                fm.width(self.headerData(section, orientation, Qt.DisplayRole))
+            return QSize(width, height)
         
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             try:
-                return QVariant(self.__headers[section])
+                return self.__headers[section]
             except IndexError:
-                return QVariant()
+                return None
         
         return QAbstractTableModel.headerData(self, section, orientation, role)
     
@@ -68,39 +68,39 @@
         @return requested data
         """
         if index.row() < 0 or index.row() >= self.rowCount():
-            return QVariant()
+            return None
         
         if role in (Qt.DisplayRole, Qt.EditRole):
             row = index.row()
             if row < len(self.__allowedCookies):
                 if index.column() == 0:
-                    return QVariant(self.__allowedCookies[row])
+                    return self.__allowedCookies[row]
                 elif index.column() == 1:
-                    return QVariant(self.trUtf8("Allow"))
+                    return self.trUtf8("Allow")
                 else:
-                    return QVariant()
+                    return None
             
             row -= len(self.__allowedCookies)
             if row < len(self.__blockedCookies):
                 if index.column() == 0:
-                    return QVariant(self.__blockedCookies[row])
+                    return self.__blockedCookies[row]
                 elif index.column() == 1:
-                    return QVariant(self.trUtf8("Block"))
+                    return self.trUtf8("Block")
                 else:
-                    return QVariant()
+                    return None
             
             row -= len(self.__blockedCookies)
             if row < len(self.__sessionCookies):
                 if index.column() == 0:
-                    return QVariant(self.__sessionCookies[row])
+                    return self.__sessionCookies[row]
                 elif index.column() == 1:
-                    return QVariant(self.trUtf8("Allow For Session"))
+                    return self.trUtf8("Allow For Session")
                 else:
-                    return QVariant()
+                    return None
             
-            return QVariant()
+            return None
         
-        return QVariant()
+        return None
     
     def columnCount(self, parent = QModelIndex()):
         """
--- a/Helpviewer/CookieJar/CookieJar.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/CookieJar/CookieJar.py	Wed Dec 30 15:40:33 2009 +0000
@@ -128,19 +128,19 @@
         
         # load cookies
         cookies = cookieSettings.value("Cookies")
-        if cookies.isValid():
-            cookiesList = self.loadCookies(cookies.toByteArray())
+        if cookies:
+            cookiesList = self.loadCookies(cookies)
         else:
             cookiesList = []
         self.setAllCookies(cookiesList)
         
         # load exceptions
-        self.__exceptionsBlock = \
-            cookieSettings.value("Exceptions/block").toStringList()
-        self.__exceptionsAllow = \
-            cookieSettings.value("Exceptions/allow").toStringList()
-        self.__exceptionsAllowForSession = \
-            cookieSettings.value("Exceptions/allowForSession").toStringList()
+        self.__exceptionsBlock = Preferences.toList(
+            cookieSettings.value("Exceptions/block"))
+        self.__exceptionsAllow = Preferences.toList(
+            cookieSettings.value("Exceptions/allow"))
+        self.__exceptionsAllowForSession = Preferences.toList(
+            cookieSettings.value("Exceptions/allowForSession"))
         self.__exceptionsBlock.sort()
         self.__exceptionsAllow.sort()
         self.__exceptionsAllowForSession.sort()
@@ -172,14 +172,11 @@
                 del cookiesList[index]
         cookies = self.saveCookies(cookiesList)
         
-        cookieSettings.setValue("Cookies", 
-                                QVariant(cookies))
-        cookieSettings.setValue("Exceptions/block", 
-                                QVariant(self.__exceptionsBlock))
-        cookieSettings.setValue("Exceptions/allow", 
-                                QVariant(self.__exceptionsAllow))
+        cookieSettings.setValue("Cookies", cookies)
+        cookieSettings.setValue("Exceptions/block", self.__exceptionsBlock)
+        cookieSettings.setValue("Exceptions/allow", self.__exceptionsAllow)
         cookieSettings.setValue("Exceptions/allowForSession", 
-                                QVariant(self.__exceptionsAllowForSession))
+                                self.__exceptionsAllowForSession)
         
         Preferences.setHelp("AcceptCookies", self.__acceptCookies)
         Preferences.setHelp("KeepCookiesUntil", self.__keepCookies)
--- a/Helpviewer/CookieJar/CookieModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/CookieJar/CookieModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -48,17 +48,17 @@
             fm = QFontMetrics(QFont())
             height = fm.height() + fm.height() / 3
             width = \
-                fm.width(self.headerData(section, orientation, Qt.DisplayRole).toString())
-            return QVariant(QSize(width, height))
+                fm.width(self.headerData(section, orientation, Qt.DisplayRole))
+            return QSize(width, height)
         
         if orientation == Qt.Horizontal:
             if role == Qt.DisplayRole:
                 try:
-                    return QVariant(self.__headers[section])
+                    return self.__headers[section]
                 except IndexError:
-                    return QVariant()
+                    return None
             
-            return QVariant()
+            return None
         
         return QAbstractTableModel.headerData(self, section, orientation, role)
     
@@ -68,33 +68,33 @@
         
         @param index index to get data for (QModelIndex)
         @param role role of the data to retrieve (integer)
-        @return requested data (QVariant)
+        @return requested data
         """
         lst = []
         if self.__cookieJar is not None:
             lst = self.__cookieJar.cookies()
         if index.row() < 0 or index.row() >= len(lst):
-            return QVariant()
+            return None
         
         if role in (Qt.DisplayRole, Qt.EditRole):
             cookie = lst[index.row()]
             col = index.column()
             if col == 0:
-                return QVariant(cookie.domain())
+                return cookie.domain()
             elif col == 1:
-                return QVariant(cookie.name())
+                return cookie.name()
             elif col == 2:
-                return QVariant(cookie.path())
+                return cookie.path()
             elif col == 3:
-                return QVariant(cookie.isSecure())
+                return cookie.isSecure()
             elif col == 4:
-                return QVariant(cookie.expirationDate())
+                return cookie.expirationDate()
             elif col == 5:
-                return QVariant(cookie.value())
+                return cookie.value()
             else:
-                return QVariant()
+                return None
         
-        return QVariant()
+        return None
     
     def columnCount(self, parent = QModelIndex()):
         """
--- a/Helpviewer/CookieJar/CookiesDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/CookieJar/CookiesDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -94,14 +94,13 @@
         model = cookiesTable.model()
         row = index.row()
         
-        domain = model.data(model.index(row, 0)).toString()
-        name = model.data(model.index(row, 1)).toString()
-        path = model.data(model.index(row, 2)).toString()
-        secure = model.data(model.index(row, 3)).toBool()
-        expires = model.data(model.index(row, 4)).toDateTime()\
-            .toString("yyyy-MM-dd hh:mm")
+        domain = model.data(model.index(row, 0))
+        name = model.data(model.index(row, 1))
+        path = model.data(model.index(row, 2))
+        secure = model.data(model.index(row, 3))
+        expires = model.data(model.index(row, 4)).toString("yyyy-MM-dd hh:mm")
         value = unicode(
-            QByteArray.fromPercentEncoding(model.data(model.index(row, 5)).toByteArray()))
+            QByteArray.fromPercentEncoding(model.data(model.index(row, 5))))
         
         if self.__detailsDialog is None:
             self.__detailsDialog = CookieDetailsDialog(self)
@@ -119,7 +118,7 @@
         
         firstSelected = selection[0]
         domainSelection = firstSelected.sibling(firstSelected.row(), 0)
-        domain = self.__proxyModel.data(domainSelection, Qt.DisplayRole).toString()
+        domain = self.__proxyModel.data(domainSelection, Qt.DisplayRole)
         dlg = CookiesExceptionsDialog(self.__cookieJar, self)
         dlg.setDomainName(domain)
         dlg.exec_()
--- a/Helpviewer/DownloadDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/DownloadDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -262,7 +262,7 @@
                 .format(self.__output.errorString()))
             self.__stopButton.click()
         else:
-            size = self.__reply.header(QNetworkRequest.ContentLengthHeader).toInt()[0]
+            size = self.__reply.header(QNetworkRequest.ContentLengthHeader)
             if size == bytesWritten:
                 self.__downloadProgress(size, size)
                 self.__downloadFinished = True
@@ -287,7 +287,7 @@
         """
         locationHeader = self.__reply.header(QNetworkRequest.LocationHeader)
         if locationHeader.isValid():
-            self.__url = locationHeader.toUrl()
+            self.__url = locationHeader
             self.__reply.deleteLater()
             self.__reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().get(
                            QNetworkRequest(self.__url))
--- a/Helpviewer/HelpBrowserWV.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/HelpBrowserWV.py	Wed Dec 30 15:40:33 2009 +0000
@@ -155,9 +155,8 @@
         
         @param request reference to the network request object (QNetworkRequest)
         """
-        request.setAttribute(QNetworkRequest.User + 100, QVariant(self))
-        request.setAttribute(QNetworkRequest.User + 101, 
-                             QVariant(self.__lastRequestType))
+        request.setAttribute(QNetworkRequest.User + 100, self)
+        request.setAttribute(QNetworkRequest.User + 101, self.__lastRequestType)
     
     def pageAttributeId(self):
         """
@@ -277,13 +276,12 @@
         """
         resources = []
         
-        lst = self.page().mainFrame().evaluateJavaScript(fetchLinks_js).toList()
-        for variant in lst:
-            m = variant.toMap()
-            rel = m["rel"].toString()
-            type_ = m["type"].toString()
-            href = m["href"].toString()
-            title =  m["title"].toString()
+        lst = self.page().mainFrame().evaluateJavaScript(fetchLinks_js)
+        for m in lst:
+            rel = m["rel"]
+            type_ = m["type"]
+            href = m["href"]
+            title =  m["title"]
             
             if href == "" or type_ == "":
                 continue
@@ -362,7 +360,7 @@
             return
         elif name.scheme() == "javascript":
             scriptSource = name.toString()[11:]
-            res = self.page().mainFrame().evaluateJavaScript(scriptSource).toString()
+            res = self.page().mainFrame().evaluateJavaScript(scriptSource)
             if res:
                 self.setHtml(res)
             return
@@ -554,11 +552,11 @@
         if not hit.linkUrl().isEmpty():
             act = menu.addAction(self.trUtf8("Open Link in New Tab\tCtrl+LMB"),
                 self.__openLinkInNewTab)
-            act.setData(QVariant(hit.linkUrl()))
+            act.setData(hit.linkUrl())
             menu.addSeparator()
             menu.addAction(self.trUtf8("Save Lin&k"), self.__downloadLink)
             act = menu.addAction(self.trUtf8("Bookmark this Link"), self.__bookmarkLink)
-            act.setData(QVariant(hit.linkUrl()))
+            act.setData(hit.linkUrl())
             menu.addSeparator()
             menu.addAction(self.trUtf8("Copy Link to Clipboard"), self.__copyLink)
         
@@ -567,16 +565,16 @@
                 menu.addSeparator()
             act = menu.addAction(self.trUtf8("Open Image in New Tab"), 
                 self.__openLinkInNewTab)
-            act.setData(QVariant(hit.imageUrl()))
+            act.setData(hit.imageUrl())
             menu.addSeparator()
             menu.addAction(self.trUtf8("Save Image"), self.__downloadImage)
             menu.addAction(self.trUtf8("Copy Image to Clipboard"), self.__copyImage)
             act = menu.addAction(self.trUtf8("Copy Image Location to Clipboard"), 
                 self.__copyImageLocation)
-            act.setData(QVariant(hit.imageUrl().toString()))
+            act.setData(hit.imageUrl().toString())
             menu.addSeparator()
             act = menu.addAction(self.trUtf8("Block Image"), self.__blockImage)
-            act.setData(QVariant(hit.imageUrl().toString()))
+            act.setData(hit.imageUrl().toString())
         
         if not menu.isEmpty():
             menu.addSeparator()
@@ -606,7 +604,7 @@
                 engine = HelpWebSearchWidget.openSearchManager().engine(engineName)
                 act = OpenSearchEngineAction(engine, self.__searchMenu)
                 self.__searchMenu.addAction(act)
-                act.setData(QVariant(engineName))
+                act.setData(engineName)
             self.connect(self.__searchMenu, SIGNAL("triggered(QAction *)"), 
                          self.__searchRequested)
             
@@ -620,7 +618,7 @@
         Private method called by the context menu to open a link in a new window.
         """
         act = self.sender()
-        url = act.data().toUrl()
+        url = act.data()
         if url.isEmpty():
             return
         
@@ -634,7 +632,7 @@
         Private slot to bookmark a link via the context menu.
         """
         act = self.sender()
-        url = act.data().toUrl()
+        url = act.data()
         if url.isEmpty():
             return
         
@@ -671,7 +669,7 @@
         Private slot to copy an image location to the clipboard.
         """
         act = self.sender()
-        url = act.data().toString()
+        url = act.data()
         QApplication.clipboard().setText(url)
     
     def __blockImage(self):
@@ -679,7 +677,7 @@
         Private slot to add a block rule for an image URL.
         """
         act = self.sender()
-        url = act.data().toString()
+        url = act.data()
         dlg = Helpviewer.HelpWindow.HelpWindow.adblockManager().showDialog()
         dlg.addCustomRule(url)
     
@@ -694,7 +692,7 @@
         if not searchText:
             return
         
-        engineName = act.data().toString()
+        engineName = act.data()
         if engineName:
             engine = HelpWebSearchWidget.openSearchManager().engine(engineName)
             self.emit(SIGNAL("search(const QUrl &)"), engine.searchUrl(searchText))
@@ -852,7 +850,7 @@
             if reply.url().isEmpty():
                 return
             header = reply.header(QNetworkRequest.ContentLengthHeader)
-            size, ok = header.toInt()
+            size = header
             if ok and size == 0:
                 return
             
--- a/Helpviewer/HelpDocsInstaller.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/HelpDocsInstaller.py	Wed Dec 30 15:40:33 2009 +0000
@@ -85,7 +85,7 @@
         @return flag indicating success (boolean)
         """
         versionKey = "qt_version_{0}@@{1}".format(qVersion(), name)
-        info = engine.customValue(versionKey, QVariant("")).toString()
+        info = engine.customValue(versionKey, "")
         lst = info.split('|')
         
         dt = QDateTime()
@@ -102,7 +102,7 @@
         files = docsPath.entryList(["*.qch"])
         if not files:
             engine.setCustomValue(versionKey, 
-                QVariant(QDateTime().toString(Qt.ISODate) + '|'))
+                QDateTime().toString(Qt.ISODate) + '|')
             return False
         
         for f in files:
@@ -130,8 +130,8 @@
                     return False
                 
                 engine.setCustomValue(versionKey, 
-                    QVariant(fi.lastModified().toString(Qt.ISODate) + '|' + \
-                    fi.absoluteFilePath()))
+                    fi.lastModified().toString(Qt.ISODate) + '|' + \
+                    fi.absoluteFilePath())
                 return True
         
         return False
@@ -144,7 +144,7 @@
         @return flag indicating success (boolean)
         """
         versionKey = "eric4_ide"
-        info = engine.customValue(versionKey, QVariant("")).toString()
+        info = engine.customValue(versionKey, "")
         lst = info.split('|')
         
         dt = QDateTime()
@@ -160,7 +160,7 @@
         files = docsPath.entryList(["*.qch"])
         if not files:
             engine.setCustomValue(versionKey, 
-                QVariant(QDateTime().toString(Qt.ISODate) + '|'))
+                QDateTime().toString(Qt.ISODate) + '|')
             return False
         
         for f in files:
@@ -187,8 +187,8 @@
                     return False
                 
                 engine.setCustomValue(versionKey, 
-                    QVariant(fi.lastModified().toString(Qt.ISODate) + '|' + \
-                    fi.absoluteFilePath()))
+                    fi.lastModified().toString(Qt.ISODate) + '|' + \
+                    fi.absoluteFilePath())
                 return True
         
         return False
--- a/Helpviewer/HelpIndexWidget.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/HelpIndexWidget.py	Wed Dec 30 15:40:33 2009 +0000
@@ -136,7 +136,7 @@
                 elif act == newTab:
                     model = self.__index.model()
                     if model is not None:
-                        keyword = model.data(idx, Qt.DisplayRole).toString()
+                        keyword = model.data(idx, Qt.DisplayRole)
                         links = model.linksForKeyword(keyword)
                         if len(links) == 1:
                             self.__mw.newTab(links.values()[0])
@@ -150,7 +150,7 @@
             if idx.isValid() and event.button() == Qt.MidButton:
                 model = self.__index.model()
                 if model is not None:
-                    keyword = model.data(idx, Qt.DisplayRole).toString()
+                    keyword = model.data(idx, Qt.DisplayRole)
                     links = model.linksForKeyword(keyword)
                     if len(links) == 1:
                         self.__mw.newTab(links.values()[0])
--- a/Helpviewer/HelpLanguagesDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/HelpLanguagesDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -33,9 +33,8 @@
             SIGNAL("currentChanged(const QModelIndex&, const QModelIndex&)"), 
             self.__currentChanged)
         
-        languages = Preferences.Prefs.settings.value(
-            "Help/AcceptLanguages", QVariant(self.defaultAcceptLanguages()))\
-            .toStringList()
+        languages = Preferences.Prefs.settings.value(Preferences.toList(
+            "Help/AcceptLanguages", self.defaultAcceptLanguages()))
         self.__model.setStringList(languages)
         
         allLanguages = []
@@ -100,7 +99,7 @@
         
         self.__model.insertRow(self.__model.rowCount())
         self.__model.setData(self.__model.index(self.__model.rowCount() - 1), 
-                             QVariant(language))
+                             language)
         self.languagesList.setCurrentIndex(
             self.__model.index(self.__model.rowCount() - 1))
     
@@ -112,7 +111,7 @@
         if result == self.defaultAcceptLanguages():
             Preferences.Prefs.settings.remove("Help/AcceptLanguages")
         else:
-            Preferences.Prefs.settings.setValue("Help/AcceptLanguages", QVariant(result))
+            Preferences.Prefs.settings.setValue("Help/AcceptLanguages", result)
         QDialog.accept(self)
     
     @classmethod
--- a/Helpviewer/HelpWebSearchWidget.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/HelpWebSearchWidget.py	Wed Dec 30 15:40:33 2009 +0000
@@ -196,7 +196,7 @@
            self.__recentSearchesItem.index().row() == index.row():
             return False
         
-        self.__searchEdit.setText(index.data().toString())
+        self.__searchEdit.setText(index.data())
         return True
     
     def __textEdited(self, txt):
@@ -248,7 +248,7 @@
         for engineName in engineNames:
             engine = osm.engine(engineName)
             action = OpenSearchEngineAction(engine, self.__enginesMenu)
-            action.setData(QVariant(engineName))
+            action.setData(engineName)
             self.connect(action, SIGNAL("triggered()"), self.__changeCurrentEngine)
             self.__enginesMenu.addAction(action)
             
@@ -283,7 +283,7 @@
             
             action = self.__enginesMenu.addAction(self.trUtf8("Add '{0}'").format(title), 
                                                   self.__addEngineFromUrl)
-            action.setData(QVariant(url))
+            action.setData(url)
             action.setIcon(ct.icon())
         
         self.__enginesMenu.addSeparator()
@@ -299,7 +299,7 @@
         """
         action = self.sender()
         if action is not None:
-            name = action.data().toString()
+            name = action.data()
             HelpWebSearchWidget.openSearchManager().setCurrentEngineName(name)
     
     def __addEngineFromUrl(self):
@@ -308,10 +308,9 @@
         """
         action = self.sender()
         if action is not None:
-            variant = action.data()
-            if not variant.canConvert(QVariant.Url):
-                return
-            url = variant.toUrl()
+            url = action.data()
+            if not isinstance(url, QUrl):
+                return 
             
             HelpWebSearchWidget.openSearchManager().addEngine(url)
     
@@ -345,15 +344,15 @@
         Public method to save the recently performed web searches.
         """
         Preferences.Prefs.settings.setValue('Help/WebSearches',
-            QVariant(self.__recentSearches))
+            self.__recentSearches)
     
     def __loadSearches(self):
         """
         Public method to load the recently performed web searches.
         """
         searches = Preferences.Prefs.settings.value('Help/WebSearches')
-        if searches.isValid():
-            self.__recentSearches = searches.toStringList()
+        if searches is not None:
+            self.__recentSearches = searches
     
     @classmethod
     def openSearchManager(cls):
--- a/Helpviewer/HelpWindow.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/HelpWindow.py	Wed Dec 30 15:40:33 2009 +0000
@@ -1398,13 +1398,13 @@
         """
         self.historyMenu.clear()
         self.historyMenu.addAction(self.clearHistoryAct)
-        self.clearHistoryAct.setData(QVariant(-1))
+        self.clearHistoryAct.setData(-1)
         self.historyMenu.addSeparator()
         idx = 0
         for hist in self.mHistory:
             act = self.historyMenu.addAction(
                 Utilities.compactPath(hist, self.maxMenuFilePathLen))
-            act.setData(QVariant(idx))
+            act.setData(idx)
             idx += 1
             act.setIcon(HelpWindow.__getWebIcon(QUrl(hist)))
         
@@ -2577,7 +2577,7 @@
         for index in range(self.tabWidget.count()):
             act = self.__navigationMenu.addAction(self.tabWidget.tabIcon(index), 
                                               self.tabWidget.tabText(index))
-            act.setData(QVariant(index))
+            act.setData(index)
         
     def __navigationMenuTriggered(self, act):
         """
@@ -2585,7 +2585,7 @@
         
         @param act reference to the selected action (QAction)
         """
-        index, ok = act.data().toInt()
+        index = act.data()
         if ok:
             self.tabWidget.setCurrentIndex(index)
         
@@ -2600,7 +2600,7 @@
         for index in range(len(backItems) - 1, -1, -1):
             item = backItems[index]
             act = QAction(self)
-            act.setData(QVariant(-1 * (index + 1)))
+            act.setData(-1 * (index + 1))
             icon = HelpWindow.__getWebIcon(item.url())
             act.setIcon(icon)
             act.setText(item.title())
@@ -2617,7 +2617,7 @@
         for index in range(len(forwardItems)):
             item = forwardItems[index]
             act = QAction(self)
-            act.setData(QVariant(index + 1))
+            act.setData(index + 1)
             icon = HelpWindow.__getWebIcon(item.url())
             act.setIcon(icon)
             act.setText(item.title())
@@ -2629,7 +2629,7 @@
         
         @param act reference to the action selected in the navigation menu (QAction)
         """
-        offset = act.data().toInt()[0]
+        offset = act.data()
         history = self.currentBrowser().history()
         historyCount = history.count()
         if offset < 0:
--- a/Helpviewer/History/HistoryCompleter.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/History/HistoryCompleter.py	Wed Dec 30 15:40:33 2009 +0000
@@ -84,15 +84,15 @@
         
         @param index index of history entry to get data for (QModelIndex)
         @param role data role (integer)
-        @return history entry data (QVariant)
+        @return history entry data
         """
         # If the model is valid, tell QCompleter that everything we have filtered
         # matches what the user typed; if not, nothing matches
         if role == self.HistoryCompletionRole and index.isValid():
             if self.isValid():
-                return QVariant("t")
+                return "t"
             else:
-                return QVariant("f")
+                return "f"
         
         if role == Qt.DisplayRole:
             if index.column() == 0:
@@ -160,11 +160,11 @@
         # metacharacters (s. setSearchString()).
         idx = self.sourceModel().index(sourceRow, 0, sourceParent)
         
-        url = self.sourceModel().data(idx, HistoryModel.UrlStringRole).toString()
+        url = self.sourceModel().data(idx, HistoryModel.UrlStringRole)
         if self.__searchMatcher.indexIn(url) != -1:
             return True
         
-        title = self.sourceModel().data(idx, HistoryModel.TitleRole).toString()
+        title = self.sourceModel().data(idx, HistoryModel.TitleRole)
         if self.__searchMatcher.indexIn(title) != -1:
             return True
         
@@ -187,18 +187,18 @@
         @return true, if left is less than right (boolean)
         """
         frequency_L = \
-            self.sourceModel().data(left, HistoryFilterModel.FrequencyRole).toInt()[0]
-        url_L = self.sourceModel().data(left, HistoryModel.UrlRole).toUrl().host()
-        title_L = self.sourceModel().data(left, HistoryModel.TitleRole).toString()
+            self.sourceModel().data(left, HistoryFilterModel.FrequencyRole)
+        url_L = self.sourceModel().data(left, HistoryModel.UrlRole).host()
+        title_L = self.sourceModel().data(left, HistoryModel.TitleRole)
         
         if self.__wordMatcher.indexIn(url_L) != -1 or \
            self.__wordMatcher.indexIn(title_L) != -1:
             frequency_L *= 2
         
         frequency_R = \
-            self.sourceModel().data(right, HistoryFilterModel.FrequencyRole).toInt()[0]
-        url_R = self.sourceModel().data(right, HistoryModel.UrlRole).toUrl().host()
-        title_R = self.sourceModel().data(right, HistoryModel.TitleRole).toString()
+            self.sourceModel().data(right, HistoryFilterModel.FrequencyRole)
+        url_R = self.sourceModel().data(right, HistoryModel.UrlRole).host()
+        title_R = self.sourceModel().data(right, HistoryModel.TitleRole)
         
         if self.__wordMatcher.indexIn(url_R) != -1 or \
            self.__wordMatcher.indexIn(title_R) != -1:
@@ -239,7 +239,7 @@
         @param idx reference to the index (QModelIndex)
         @return the actual URL from the history (string)
         """
-        return self.model().data(idx, HistoryModel.UrlStringRole).toString()
+        return self.model().data(idx, HistoryModel.UrlStringRole)
     
     def splitPath(self, path):
         """
--- a/Helpviewer/History/HistoryDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/History/HistoryDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -123,12 +123,12 @@
         idx = self.historyTree.currentIndex()
         if newTab:
             self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                      idx.data(HistoryModel.UrlRole).toUrl(), 
-                      idx.data(HistoryModel.TitleRole).toString())
+                      idx.data(HistoryModel.UrlRole), 
+                      idx.data(HistoryModel.TitleRole))
         else:
             self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                      idx.data(HistoryModel.UrlRole).toUrl(), 
-                      idx.data(HistoryModel.TitleRole).toString())
+                      idx.data(HistoryModel.UrlRole), 
+                      idx.data(HistoryModel.TitleRole))
     
     def __copyHistory(self):
         """
@@ -138,7 +138,7 @@
         if not idx.parent().isValid():
             return
         
-        url = idx.data(HistoryModel.UrlStringRole).toString()
+        url = idx.data(HistoryModel.UrlStringRole)
         
         clipboard = QApplication.clipboard()
         clipboard.setText(url)
--- a/Helpviewer/History/HistoryFilterModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/History/HistoryFilterModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -102,10 +102,10 @@
         
         @param index index of history entry to get data for (QModelIndex)
         @param role data role (integer)
-        @return history entry data (QVariant)
+        @return history entry data
         """
         if role == self.FrequencyRole and index.isValid():
-            return QVariant(self.__filteredRows[index.row()].frequency)
+            return self.__filteredRows[index.row()].frequency
         
         return QAbstractProxyModel.data(self, index, role)
     
@@ -163,7 +163,7 @@
         @param section section number (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role data role (integer)
-        @return header data (QVariant)
+        @return header data
         """
         return self.sourceModel().headerData(section, orientation, role)
     
@@ -220,7 +220,7 @@
         @return proxy model index (QModelIndex)
         """
         self.__load()
-        url = sourceIndex.data(HistoryModel.UrlStringRole).toString()
+        url = sourceIndex.data(HistoryModel.UrlStringRole)
         if url not in self.__historyDict:
             return QModelIndex()
         
@@ -271,7 +271,7 @@
         
         for sourceRow in range(self.sourceModel().rowCount()):
             idx = self.sourceModel().index(sourceRow, 0)
-            url = idx.data(HistoryModel.UrlStringRole).toString()
+            url = idx.data(HistoryModel.UrlStringRole)
             if url not in self.__historyDict:
                 sourceOffset = self.sourceModel().rowCount() - sourceRow
                 self.__filteredRows.append(
@@ -297,7 +297,7 @@
                 return
             
             idx = self.sourceModel().index(start, 0, parent)
-            url = idx.data(HistoryModel.UrlStringRole).toString()
+            url = idx.data(HistoryModel.UrlStringRole)
             currentFrequency = 0
             if url in self.__historyDict:
                 row = self.__filteredRows.index(HistoryData(self.__historyDict[url], -1))
@@ -364,7 +364,7 @@
         @return frequency score (integer)
         """
         loadTime = \
-            self.sourceModel().data(sourceIndex, HistoryModel.DateTimeRole).toDateTime()
+            self.sourceModel().data(sourceIndex, HistoryModel.DateTimeRole)
         days = loadTime.daysTo(self.__scaleTime)
         
         if days <= 1:
--- a/Helpviewer/History/HistoryManager.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/History/HistoryManager.py	Wed Dec 30 15:40:33 2009 +0000
@@ -341,27 +341,20 @@
             return
         
         history = []
-        historyStream = QDataStream(historyFile)
         
         # double check, that the history file is sorted as it is read
         needToSort = False
         lastInsertedItem = HistoryEntry()
-        data = QByteArray()
-        stream = QDataStream()
-        buffer = QBuffer()
-        stream.setDevice(buffer)
-        while not historyFile.atEnd():
-            historyStream >> data
-            buffer.close()
-            buffer.setBuffer(data)
-            buffer.open(QIODevice.ReadOnly)
+        data = QByteArray(historyFile.readAll())
+        stream = QDataStream(data, QIODevice.ReadOnly)
+        while not stream.atEnd():
             ver = stream.readUInt32()
             if ver != HISTORY_VERSION:
                 continue
             itm = HistoryEntry()
-            stream.readString(itm.url)
-            stream.readString(itm.dateTime)
-            stream.readString(itm.title)
+            itm.url = stream.readString()
+            stream >> itm.dateTime
+            itm.title = stream.readString()
             
             if not itm.dateTime.isValid():
                 continue
@@ -395,7 +388,7 @@
         if not historyFile.exists():
             self.__lastSavedUrl = ""
         
-        saveAll = self.__lastSavedUrl = ""
+        saveAll = self.__lastSavedUrl == ""
         first = len(self.__history) - 1
         if not saveAll:
             # find the first one to save
@@ -406,29 +399,22 @@
         if first == len(self.__history) - 1:
             saveAll = True
         
-        # use a temporary file when saving everything
-        tempFile = QTemporaryFile()
         if saveAll:
-            opened = tempFile.open()
+            # use a temporary file when saving everything
+            f = QTemporaryFile()
+            opened = f.open()
         else:
-            opened = historyFile.open(QIODevice.Append)
+            f = historyFile
+            opened = f.open(QIODevice.Append)
         
         if not opened:
-            if saveAll:
-                f = tempFile
-            else:
-                f = historyFile
             QMessageBox.warning(None,
                 self.trUtf8("Saving History"),
                 self.trUtf8("""Unable to open history file <b>{0}</b>.<br/>"""
                             """Reason: {1}""")\
-                    .format(f.fileName, f.errorString()))
+                    .format(f.fileName(), f.errorString()))
             return
         
-        if saveAll:
-            historyStream = QDataStream(tempFile)
-        else:
-            historyStream = QDataStream(historyFile)
         for index in range(first, -1, -1):
             data = QByteArray()
             stream = QDataStream(data, QIODevice.WriteOnly)
@@ -437,24 +423,22 @@
             stream.writeString(itm.url)
             stream << itm.dateTime
             stream.writeString(itm.title)
-            historyStream << data
+            f.write(data)
         
+        f.close()
         if saveAll:
-            tempFile.close()
             if historyFile.exists() and not historyFile.remove():
                 QMessageBox.warning(None,
                     self.trUtf8("Saving History"),
                     self.trUtf8("""Error removing old history file <b>{0}</b>."""
                                 """<br/>Reason: {1}""")\
-                        .format(historyFile.fileName, historyFile.errorString()))
-            if not tempFile.copy(historyFile.fileName()):
+                        .format(historyFile.fileName(), historyFile.errorString()))
+            if not f.copy(historyFile.fileName()):
                 QMessageBox.warning(None,
                     self.trUtf8("Saving History"),
                     self.trUtf8("""Error moving new history file over old one """
                                 """(<b>{0}</b>).<br/>Reason: {1}""")\
                         .format(historyFile.fileName(), tempFile.errorString()))
-        else:
-            historyFile.close()
         
         try:
             self.__lastSavedUrl = self.__history[0].url
--- a/Helpviewer/History/HistoryMenu.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/History/HistoryMenu.py	Wed Dec 30 15:40:33 2009 +0000
@@ -192,7 +192,7 @@
         """
         urls = []
         for index in indexes:
-            url = index.data(HistoryModel.UrlRole).toUrl()
+            url = index.data(HistoryModel.UrlRole)
             urls.append(url)
         
         mdata = QMimeData()
@@ -232,12 +232,12 @@
         """
         if self._keyboardModifiers & Qt.ControlModifier:
             self.emit(SIGNAL("newUrl(const QUrl&, const QString&)"), 
-                      idx.data(HistoryModel.UrlRole).toUrl(), 
-                      idx.data(HistoryModel.TitleRole).toString())
+                      idx.data(HistoryModel.UrlRole), 
+                      idx.data(HistoryModel.TitleRole))
         else:
             self.emit(SIGNAL("openUrl(const QUrl&, const QString&)"), 
-                      idx.data(HistoryModel.UrlRole).toUrl(), 
-                      idx.data(HistoryModel.TitleRole).toString())
+                      idx.data(HistoryModel.UrlRole), 
+                      idx.data(HistoryModel.TitleRole))
     
     def prePopulated(self):
         """
--- a/Helpviewer/History/HistoryModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/History/HistoryModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -77,11 +77,11 @@
         @param section section number (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role data role (integer)
-        @return header data (QVariant)
+        @return header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             try:
-                return QVariant(self.__headers[section])
+                return self.__headers[section]
             except IndexError:
                 pass
         return QAbstractTableModel.headerData(self, section, orientation, role)
@@ -92,33 +92,33 @@
         
         @param index index of history entry to get data for (QModelIndex)
         @param role data role (integer)
-        @return history entry data (QVariant)
+        @return history entry data
         """
         lst = self.__historyManager.history()
         if index.row() < 0 or index.row() > len(lst):
-            return QVariant()
+            return None
         
         itm = lst[index.row()]
         if role == self.DateTimeRole:
-            return QVariant(itm.dateTime)
+            return itm.dateTime
         elif role == self.DateRole:
-            return QVariant(itm.dateTime.date())
+            return itm.dateTime.date()
         elif role == self.UrlRole:
-            return QVariant(QUrl(itm.url))
+            return QUrl(itm.url)
         elif role == self.UrlStringRole:
-            return QVariant(itm.url)
+            return itm.url
         elif role == self.TitleRole:
-            return QVariant(itm.userTitle())
+            return itm.userTitle()
         elif role in [Qt.DisplayRole, Qt.EditRole]:
             if index.column() == 0:
-                return QVariant(itm.userTitle())
+                return itm.userTitle()
             elif index.column() == 1:
-                return QVariant(itm.url)
+                return itm.url
         elif role == Qt.DecorationRole:
             if index.column() == 0:
-                return QVariant(Helpviewer.HelpWindow.HelpWindow.icon(QUrl(itm.url)))
+                return Helpviewer.HelpWindow.HelpWindow.icon(QUrl(itm.url))
         
-        return QVariant()
+        return None
     
     def columnCount(self, parent = QModelIndex()):
         """
--- a/Helpviewer/History/HistoryTreeModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/History/HistoryTreeModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -41,7 +41,7 @@
         @param section section number (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role data role (integer)
-        @return header data (QVariant)
+        @return header data
         """
         return self.sourceModel().headerData(section, orientation, role)
     
@@ -51,7 +51,7 @@
         
         @param index index of history entry to get data for (QModelIndex)
         @param role data role (integer)
-        @return history entry data (QVariant)
+        @return history entry data
         """
         if role in [Qt.DisplayRole, Qt.EditRole]:
             start = index.internalId()
@@ -59,17 +59,17 @@
                 offset = self.__sourceDateRow(index.row())
                 if index.column() == 0:
                     idx = self.sourceModel().index(offset, 0)
-                    date = idx.data(HistoryModel.DateRole).toDate()
+                    date = idx.data(HistoryModel.DateRole)
                     if date == QDate.currentDate():
-                        return QVariant(self.trUtf8("Earlier Today"))
-                    return QVariant(date.toString("yyyy-MM-dd"))
+                        return self.trUtf8("Earlier Today")
+                    return date.toString("yyyy-MM-dd")
                 if index.column() == 1:
-                    return QVariant(self.trUtf8(
-                        "%n item(s)", "", self.rowCount(index.sibling(index.row(), 0))))
+                    return self.trUtf8(
+                        "%n item(s)", "", self.rowCount(index.sibling(index.row(), 0)))
         
         elif role == Qt.DecorationRole:
             if index.column() == 0 and not index.parent().isValid():
-                return QVariant(UI.PixmapCache.getIcon("history.png"))
+                return UI.PixmapCache.getIcon("history.png")
         
         elif role == HistoryModel.DateRole:
             if index.column() == 0 and index.internalId() == 0:
@@ -111,7 +111,7 @@
             
             for row in range(totalRows):
                 rowDate = \
-                    self.sourceModel().index(row, 0).data(HistoryModel.DateRole).toDate()
+                    self.sourceModel().index(row, 0).data(HistoryModel.DateRole)
                 if rowDate != currentDate:
                     self.__sourceRowCache.append(row)
                     currentDate = rowDate
--- a/Helpviewer/Network/NetworkAccessManager.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Network/NetworkAccessManager.py	Wed Dec 30 15:40:33 2009 +0000
@@ -66,7 +66,7 @@
             sslCfg = QSslConfiguration.defaultConfiguration()
             caList = sslCfg.caCertificates()
             caNew = QSslCertificate.fromData(Preferences.Prefs.settings\
-                .value("Help/CaCertificates").toByteArray())
+                .value("Help/CaCertificates"))
             for cert in caNew:
                 caList.append(cert)
             sslCfg.setCaCertificates(caList)
@@ -238,7 +238,7 @@
         @param errors list of SSL errors (list of QSslError)
         """
         caMerge = QSslCertificate.fromData(Preferences.Prefs.settings\
-            .value("Help/CaCertificates").toByteArray())
+            .value("Help/CaCertificates"))
         caNew = []
         
         errorStrings = []
@@ -293,8 +293,7 @@
                     pems = QByteArray()
                     for cert in caMerge:
                         pems.append(cert.toPem() + '\n')
-                    Preferences.Prefs.settings.setValue("Help/CaCertificates", 
-                                                        QVariant(pems))
+                    Preferences.Prefs.settings.setValue("Help/CaCertificates", pems)
             
             reply.ignoreSslErrors()
     
@@ -337,10 +336,9 @@
         """
         Public slot to (re-)load the list of accepted languages.
         """
-        languages = Preferences.Prefs.settings.value(
+        languages = Preferences.Prefs.settings.value(Preferences.toList(
             "Help/AcceptLanguages", 
-            QVariant(HelpLanguagesDialog.defaultAcceptLanguages()))\
-            .toStringList()
+            HelpLanguagesDialog.defaultAcceptLanguages()))
         self.__acceptLanguage = HelpLanguagesDialog.httpString(languages)
     
     def __setDiskCache(self):
--- a/Helpviewer/Network/NetworkReply.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Network/NetworkReply.py	Wed Dec 30 15:40:33 2009 +0000
@@ -29,9 +29,9 @@
         self.setRequest(request)
         self.setOpenMode(QIODevice.ReadOnly)
         
-        self.setHeader(QNetworkRequest.ContentTypeHeader, QVariant(mimeType))
+        self.setHeader(QNetworkRequest.ContentTypeHeader, mimeType)
         self.setHeader(QNetworkRequest.ContentLengthHeader, 
-                       QVariant(QByteArray.number(fileData.length())))
+                       QByteArray.number(fileData.length()))
         QTimer.singleShot(0, self, SIGNAL("metaDataChanged()"))
         QTimer.singleShot(0, self, SIGNAL("readyRead()"))
     
--- a/Helpviewer/OpenSearch/OpenSearchEngineModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/OpenSearch/OpenSearchEngineModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -103,19 +103,19 @@
         
         @param index index to get data for (QModelIndex)
         @param role role of the data to retrieve (integer)
-        @return requested data (QVariant)
+        @return requested data
         """
         if index.row() >= self.__manager.enginesCount() or index.row() < 0:
-            return QVariant()
+            return None
         
         engine = self.__manager.engine(self.__manager.allEnginesNames()[index.row()])
         
         if engine is None:
-            return QVariant()
+            return None
         
         if index.column() == 0:
             if role == Qt.DisplayRole:
-                return QVariant(engine.name())
+                return engine.name()
                 
             elif role == Qt.DecorationRole:
                 image = engine.image()
@@ -124,7 +124,7 @@
                     icon = HelpWindow.icon(QUrl(engine.imageUrl()))
                 else:
                     icon = QIcon(QPixmap.fromImage(image))
-                return QVariant(icon)
+                return icon
                 
             elif role == Qt.ToolTipRole:
                 description = self.trUtf8("<strong>Description:</strong> {0}")\
@@ -134,24 +134,23 @@
                     description.append(
                         self.trUtf8("<strong>Provides contextual suggestions</strong>"))
                 
-                return QVariant(description)
+                return description
         elif index.column() == 1:
             if role in [Qt.EditRole, Qt.DisplayRole]:
-                return QVariant(
-                    ",".join(self.__manager.keywordsForEngine(engine)))
+                return ",".join(self.__manager.keywordsForEngine(engine))
             elif role == Qt.ToolTipRole:
-                return QVariant(self.trUtf8("Comma-separated list of keywords that may"
+                return self.trUtf8("Comma-separated list of keywords that may"
                     " be entered in the location bar followed by search terms to search"
-                    " with this engine"))
+                    " with this engine")
         
-        return QVariant()
+        return None
     
     def setData(self, index, value, role = Qt.EditRole):
         """
         Public method to set the data of a model cell.
         
         @param index index of the model cell (QModelIndex)
-        @param value value to be set (QVariant)
+        @param value value to be set
         @param role role of the data (integer)
         @return flag indicating success (boolean)
         """
@@ -165,7 +164,7 @@
             return False
         
         engineName = self.__manager.allEnginesNames()[index.row()]
-        keywords = re.split("[ ,]+", value.toString())
+        keywords = re.split("[ ,]+", value)
         self.__manager.setKeywordsForEngine(self.__manager.engine(engineName), keywords)
         
         return True
@@ -177,15 +176,15 @@
         @param section section number (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role data role (integer)
-        @return header data (QVariant)
+        @return header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             try:
-                return QVariant(self.__headers[section])
+                return self.__headers[section]
             except IndexError:
                 pass
         
-        return QVariant()
+        return None
     
     def __enginesChanged(self):
         """
--- a/Helpviewer/Passwords/PasswordManager.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Passwords/PasswordManager.py	Wed Dec 30 15:40:33 2009 +0000
@@ -336,17 +336,15 @@
             return
         
         # check the request type
-        v = request.attribute(QNetworkRequest.User + 101)
-        if not v.isValid():
+        navType = request.attribute(QNetworkRequest.User + 101)
+        if navType is None:
             return
-        navType = v.toInt()[0]
         if navType != QWebPage.NavigationTypeFormSubmitted:
             return
         
         # determine the QWebPage
-        v = request.attribute(QNetworkRequest.User + 100)
-        webPage = v.toPyObject()
-        if webPage == NotImplemented or webPage is None:
+        webPage = request.attribute(QNetworkRequest.User + 100)
+        if  webPage is None:
             return
         
         # determine the requests content type
@@ -444,26 +442,24 @@
                 args.add((key, value))
         
         # extract the forms
-        lst = webPage.mainFrame().evaluateJavaScript(parseForms_js).toList()
-        for formVariant in lst:
-            map = formVariant.toMap()
+        lst = webPage.mainFrame().evaluateJavaScript(parseForms_js)
+        for map in lst:
             formHasPasswords = False
-            formName = map["name"].toString()
-            formIndex = map["index"].toInt()[0]
-            elements = map["elements"].toList()
+            formName = map["name"]
+            formIndex = map["index"]
+            elements = map["elements"]
             formElements = set()
             formElementTypes = {}
             deadElements = set()
-            for element in elements:
-                elementMap = element.toMap()
-                name = elementMap["name"].toString()
-                value = elementMap["value"].toString()
-                type_ = elementMap["type"].toString()
+            for elementMap in elements:
+                name = elementMap["name"]
+                value = elementMap["value"]
+                type_ = elementMap["type"]
                 if type_ == "password":
                     formHasPasswords = True
                 t = (name, value)
                 try:
-                    if elementMap["autocomplete"].toString() == "off":
+                    if elementMap["autocomplete"] == "off":
                         deadElements.add(t)
                 except KeyError:
                     pass
@@ -544,17 +540,17 @@
             value = element[1]
             
             disabled = page.mainFrame().evaluateJavaScript(
-                'document.forms[%s].elements["%s"].disabled' % (formName, name)).toBool()
+                'document.forms[%s].elements["%s"].disabled' % (formName, name))
             if disabled:
                 continue
             
             readOnly = page.mainFrame().evaluateJavaScript(
-                'document.forms[%s].elements["%s"].readOnly' % (formName, name)).toBool()
+                'document.forms[%s].elements["%s"].readOnly' % (formName, name))
             if readOnly:
                 continue
             
             type_ = page.mainFrame().evaluateJavaScript(
-                'document.forms[%s].elements["%s"].type' % (formName, name)).toString()
+                'document.forms[%s].elements["%s"].type' % (formName, name))
             if type_ == "" or \
                type_ in ["hidden", "reset", "submit"]:
                 continue
--- a/Helpviewer/Passwords/PasswordModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Helpviewer/Passwords/PasswordModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -114,24 +114,24 @@
         
         @param index index to get data for (QModelIndex)
         @param role role of the data to retrieve (integer)
-        @return requested data (QVariant)
+        @return requested data
         """
         if index.row() >= self.__manager.sitesCount() or index.row() < 0:
-            return QVariant()
+            return None
         
         site = self.__manager.allSiteNames()[index.row()]
         siteInfo = self.__manager.siteInfo(site)
         
         if siteInfo is None:
-            return QVariant()
+            return None
         
         if role == Qt.DisplayRole:
             if index.column() == 0:
-                return QVariant(site)
+                return site
             elif index.column() in [1, 2]:
-                return QVariant(siteInfo[index.column() - 1])
+                return siteInfo[index.column() - 1]
         
-        return QVariant()
+        return None
     
     def headerData(self, section, orientation, role = Qt.DisplayRole):
         """
@@ -140,12 +140,12 @@
         @param section section number (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role data role (integer)
-        @return header data (QVariant)
+        @return header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             try:
-                return QVariant(self.__headers[section])
+                return self.__headers[section]
             except IndexError:
                 pass
         
-        return QVariant()
+        return None
--- a/MultiProject/MultiProject.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/MultiProject/MultiProject.py	Wed Dec 30 15:40:33 2009 +0000
@@ -100,8 +100,8 @@
         self.recent = []
         Preferences.Prefs.rsettings.sync()
         rp = Preferences.Prefs.rsettings.value(recentNameMultiProject)
-        if rp.isValid():
-            for f in rp.toStringList():
+        if rp is not None:
+            for f in rp:
                 if QFileInfo(f).exists():
                     self.recent.append(f)
     
@@ -109,8 +109,7 @@
         """
         Private method to save the list of recently opened filenames.
         """
-        Preferences.Prefs.rsettings.setValue(recentNameMultiProject, 
-                                             QVariant(self.recent))
+        Preferences.Prefs.rsettings.setValue(recentNameMultiProject, self.recent)
         Preferences.Prefs.rsettings.sync()
     
     def getMostRecent(self):
@@ -862,7 +861,7 @@
             act = self.recentMenu.addAction(\
                 formatStr % (idx, 
                     Utilities.compactPath(rp, self.ui.maxMenuFilePathLen)))
-            act.setData(QVariant(rp))
+            act.setData(rp)
             act.setEnabled(QFileInfo(rp).exists())
             idx += 1
         
@@ -876,7 +875,7 @@
         
         @param act reference to the action that triggered (QAction)
         """
-        file = act.data().toString()
+        file = act.data()
         if file:
             self.openMultiProject(file)
     
--- a/MultiProject/MultiProjectBrowser.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/MultiProject/MultiProjectBrowser.py	Wed Dec 30 15:40:33 2009 +0000
@@ -148,7 +148,7 @@
             if itm is None:
                 return
         
-        filename = itm.data(Qt.UserRole).toString()
+        filename = itm.data(Qt.UserRole)
         if filename:
             self.multiProject.openProject(filename)
     
@@ -178,7 +178,7 @@
         else:
             itm.setIcon(UI.PixmapCache.getIcon("empty.png"))
         itm.setToolTip(project['file'])
-        itm.setData(Qt.UserRole, QVariant(project['file']))
+        itm.setData(Qt.UserRole, project['file'])
     
     def __findProjectItem(self, project):
         """
@@ -190,7 +190,7 @@
         row = 0
         while row < self.count():
             itm = self.item(row)
-            data = itm.data(Qt.UserRole).toString()
+            data = itm.data(Qt.UserRole)
             if data == project['file']:
                 return row
             row += 1
@@ -203,7 +203,7 @@
         """
         itm = self.currentItem()
         if itm is not None:
-            filename = itm.data(Qt.UserRole).toString()
+            filename = itm.data(Qt.UserRole)
             if filename:
                 self.multiProject.removeProject(filename)
     
@@ -213,7 +213,7 @@
         """
         itm = self.currentItem()
         if itm is not None:
-            filename = itm.data(Qt.UserRole).toString()
+            filename = itm.data(Qt.UserRole)
             if filename:
                 project = self.multiProject.getProject(filename)
                 if project is not None:
--- a/PluginManager/PluginInstallDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/PluginManager/PluginInstallDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -64,12 +64,12 @@
         userDir = self.__pluginManager.getPluginDir("user")
         if userDir is not None:
             self.destinationCombo.addItem(self.trUtf8("User plugins directory"), 
-                QVariant(userDir))
+                userDir)
         
         globalDir = self.__pluginManager.getPluginDir("global")
         if globalDir is not None and os.access(globalDir, os.W_OK):
             self.destinationCombo.addItem(self.trUtf8("Global plugins directory"), 
-                QVariant(globalDir))
+                globalDir)
         
         self.__installedDirs = []
         self.__installedFiles = []
@@ -134,7 +134,7 @@
                 .format("\n".join(self.__createArchivesList()), 
                         self.destinationCombo.currentText(), 
                         self.destinationCombo.itemData(
-                            self.destinationCombo.currentIndex()).toString()
+                            self.destinationCombo.currentIndex())
                 )
             self.summaryEdit.setPlainText(msg)
     
--- a/PluginManager/PluginManager.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/PluginManager/PluginManager.py	Wed Dec 30 15:40:33 2009 +0000
@@ -421,11 +421,7 @@
         Public method to activate all plugins having the "autoactivate" attribute
         set to True.
         """
-        ial = Preferences.Prefs.settings.value(self.__inactivePluginsKey)
-        if ial.isValid():
-            savedInactiveList = ial.toStringList()
-        else:
-            savedInactiveList = None
+        savedInactiveList = Preferences.Prefs.settings.value(self.__inactivePluginsKey)
         if self.__develPluginName is not None and \
            savedInactiveList is not None and \
            self.__develPluginName in savedInactiveList:
@@ -712,7 +708,7 @@
         names = []
         for name in self.__inactiveModules.keys():
             names.append(name)
-        Preferences.Prefs.settings.setValue(self.__inactivePluginsKey, QVariant(names))
+        Preferences.Prefs.settings.setValue(self.__inactivePluginsKey, names)
         
         self.emit(SIGNAL("shutdown()"))
 
--- a/PluginManager/PluginRepositoryDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/PluginManager/PluginRepositoryDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -129,10 +129,10 @@
         if self.__repositoryMissing or current is None:
             return
         
-        self.urlEdit.setText(current.data(0, urlRole).toString())
+        self.urlEdit.setText(current.data(0, urlRole))
         self.descriptionEdit.setPlainText(
-            self.__formatDescription(current.data(0, descrRole).toStringList()))
-        self.authorEdit.setText(current.data(0, authorRole).toString())
+            self.__formatDescription(current.data(0, descrRole)))
+        self.authorEdit.setText(current.data(0, authorRole))
     
     def __selectedItems(self):
         """
@@ -206,10 +206,10 @@
         self.__installButton.setEnabled(False)
         for itm in self.repositoryList.selectedItems():
             if itm not in [self.__stableItem, self.__unstableItem, self.__unknownItem]:
-                url = itm.data(0, urlRole).toString()
+                url = itm.data(0, urlRole)
                 filename = os.path.join(
                     Preferences.getPluginManager("DownloadPath"),
-                    itm.data(0, filenameRole).toString())
+                    itm.data(0, filenameRole))
                 self.__pluginsToDownload.append((url, filename))
         self.__downloadPlugin()
     
@@ -473,10 +473,10 @@
             parent = self.__unknownItem
         itm = QTreeWidgetItem(parent, [name, version, short])
         
-        itm.setData(0, urlRole, QVariant(url))
-        itm.setData(0, filenameRole, QVariant(filename))
-        itm.setData(0, authorRole, QVariant(author))
-        itm.setData(0, descrRole, QVariant(description))
+        itm.setData(0, urlRole, url)
+        itm.setData(0, filenameRole, filename)
+        itm.setData(0, authorRole, author)
+        itm.setData(0, descrRole, description)
         
         if self.__isUpToDate(filename, version):
             itm.setIcon(1, UI.PixmapCache.getIcon("empty.png"))
--- a/PluginManager/PluginUninstallDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/PluginManager/PluginUninstallDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -41,12 +41,12 @@
             self.__external = False
         
         self.pluginDirectoryCombo.addItem(self.trUtf8("User plugins directory"), 
-            QVariant(self.__pluginManager.getPluginDir("user")))
+            self.__pluginManager.getPluginDir("user"))
         
         globalDir = self.__pluginManager.getPluginDir("global")
         if globalDir is not None and os.access(globalDir, os.W_OK):
             self.pluginDirectoryCombo.addItem(self.trUtf8("Global plugins directory"), 
-                QVariant(globalDir))
+                globalDir)
     
     @pyqtSlot(int)
     def on_pluginDirectoryCombo_currentIndexChanged(self, index):
@@ -57,13 +57,13 @@
         @param index index of the selected item (integer)
         """
         pluginDirectory = self.pluginDirectoryCombo\
-                .itemData(index).toString()
+                .itemData(index)
         pluginNames = self.__pluginManager.getPluginModules(pluginDirectory)
         pluginNames.sort()
         self.pluginNameCombo.clear()
         for pluginName in pluginNames:
             fname = "%s.py" % os.path.join(pluginDirectory, pluginName)
-            self.pluginNameCombo.addItem(pluginName, QVariant(fname))
+            self.pluginNameCombo.addItem(pluginName, fname)
         self.buttonBox.button(QDialogButtonBox.Ok)\
             .setEnabled(self.pluginNameCombo.currentText() != "")
     
@@ -82,12 +82,10 @@
         @return flag indicating success (boolean)
         """
         pluginDirectory = self.pluginDirectoryCombo\
-                .itemData(self.pluginDirectoryCombo.currentIndex())\
-                .toString()
+                .itemData(self.pluginDirectoryCombo.currentIndex())
         pluginName = self.pluginNameCombo.currentText()
         pluginFile = self.pluginNameCombo\
-                .itemData(self.pluginNameCombo.currentIndex())\
-                .toString()
+                .itemData(self.pluginNameCombo.currentIndex())
         
         if not self.__pluginManager.unloadPlugin(pluginName, pluginDirectory):
             QMessageBox.critical(None,
--- a/Plugins/PluginVcsPySvn.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/PluginVcsPySvn.py	Wed Dec 30 15:40:33 2009 +0000
@@ -10,7 +10,6 @@
 import os
 import sys
 
-from PyQt4.QtCore import QVariant
 from PyQt4.QtGui import QApplication
 
 from E4Gui.E4Application import e4App
@@ -189,11 +188,17 @@
         @param prefClass preferences class used as the storage area
         @return the requested refactoring setting
         """
-        if key in ["Commits"]:
-            return Preferences.Prefs.settings.value("Subversion/" + key).toStringList()
-        else:
-            return Preferences.Prefs.settings.value("Subversion/" + key,
-                QVariant(self.__subversionDefaults[key])).toInt()[0]
+        if key in ["StopLogOnCopy"]:
+            return Preferences.toBool(Preferences.Prefs.settings.value(
+                "Subversion/" + key, self.__subversionDefaults[key]))
+        elif key in ["LogLimit", "CommitMessages"]:
+            return int(Preferences.Prefs.settings.value("Subversion/" + key,
+                self.__subversionDefaults[key]))
+        elif key in ["Commits"]:
+            return Preferences.toList(Preferences.Prefs.settings.value(
+                "Subversion/" + key))
+        else: 
+            return Preferences.Prefs.settings.value("Subversion/" + key)
     
     def setPreferences(self, key, value):
         """
@@ -203,7 +208,7 @@
         @param value the value to be set
         @param prefClass preferences class used as the storage area
         """
-        Preferences.Prefs.settings.setValue("Subversion/" + key, QVariant(value))
+        Preferences.Prefs.settings.setValue("Subversion/" + key, value)
     
     def getServersPath(self):
         """
--- a/Plugins/PluginVcsSubversion.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/PluginVcsSubversion.py	Wed Dec 30 15:40:33 2009 +0000
@@ -10,7 +10,6 @@
 import os
 import sys
 
-from PyQt4.QtCore import QVariant
 from PyQt4.QtGui import QApplication
 
 from E4Gui.E4Application import e4App
@@ -144,7 +143,7 @@
         self.__ui = ui
         
         self.__subversionDefaults = {
-            "StopLogOnCopy"  : 1, 
+            "StopLogOnCopy"  : True, 
             "LogLimit"       : 100, 
             "CommitMessages" : 20, 
         }
@@ -191,11 +190,17 @@
         @param prefClass preferences class used as the storage area
         @return the requested refactoring setting
         """
-        if key in ["Commits"]:
-            return Preferences.Prefs.settings.value("Subversion/" + key).toStringList()
-        else:
-            return Preferences.Prefs.settings.value("Subversion/" + key,
-                QVariant(self.__subversionDefaults[key])).toInt()[0]
+        if key in ["StopLogOnCopy"]:
+            return Preferences.toBool(Preferences.Prefs.settings.value(
+                "Subversion/" + key, self.__subversionDefaults[key]))
+        elif key in ["LogLimit", "CommitMessages"]:
+            return int(Preferences.Prefs.settings.value("Subversion/" + key,
+                self.__subversionDefaults[key]))
+        elif key in ["Commits"]:
+            return Preferences.toList(Preferences.Prefs.settings.value(
+                "Subversion/" + key))
+        else: 
+            return Preferences.Prefs.settings.value("Subversion/" + key)
     
     def setPreferences(self, key, value):
         """
@@ -205,7 +210,7 @@
         @param value the value to be set
         @param prefClass preferences class used as the storage area
         """
-        Preferences.Prefs.settings.setValue("Subversion/" + key, QVariant(value))
+        Preferences.Prefs.settings.setValue("Subversion/" + key, value)
     
     def getServersPath(self):
         """
--- a/Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnCommitDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -41,8 +41,8 @@
         
         @param evt the event (QShowEvent)
         """
-        self.recentCommitMessages = \
-            Preferences.Prefs.settings.value('Subversion/Commits').toStringList()
+        self.recentCommitMessages = Preferences.toList(
+            Preferences.Prefs.settings.value('Subversion/Commits'))
         self.recentComboBox.clear()
         self.recentComboBox.addItem("")
         self.recentComboBox.addItems(self.recentCommitMessages)
@@ -62,10 +62,10 @@
                 self.recentCommitMessages.remove(msg)
             self.recentCommitMessages.insert(0, msg)
             no = Preferences.Prefs.settings\
-                .value('Subversion/CommitMessages', QVariant(20)).toInt()[0]
+                .value('Subversion/CommitMessages', 20)
             del self.recentCommitMessages[no:]
             Preferences.Prefs.settings.setValue('Subversion/Commits', 
-                QVariant(self.recentCommitMessages))
+                self.recentCommitMessages)
         return msg
         
     def hasChangelists(self):
--- a/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -166,9 +166,8 @@
                 "copyfrom_revision" : copyRev, 
             }
             changes.append(change)
-        itm.setData(0, self.__messageRole, QVariant(message))
-        # TODO: change this to simply store the list for QVariant v2
-        itm.setData(0, self.__changesRole, QVariant(unicode(changes)))
+        itm.setData(0, self.__messageRole, message)
+        itm.setData(0, self.__changesRole, unicode(changes))
         
         itm.setTextAlignment(0, Qt.AlignRight)
         itm.setTextAlignment(1, Qt.AlignLeft)
@@ -339,11 +338,10 @@
         @param current reference to the new current item (QTreeWidgetItem)
         @param previous reference to the old current item (QTreeWidgetItem)
         """
-        self.messageEdit.setPlainText(current.data(0, self.__messageRole).toString())
+        self.messageEdit.setPlainText(current.data(0, self.__messageRole))
         
         self.filesTree.clear()
-        # TODO: change this for QVariant v2 to not use eval
-        changes = eval(unicode(current.data(0, self.__changesRole).toString()))
+        changes = current.data(0, self.__changesRole)
         if len(changes) > 0:
             for change in changes:
                 self.__generateFileItem(change["action"], change["path"], 
--- a/Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnRepoBrowserDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -122,7 +122,7 @@
         elif nodekind == pysvn.node_kind.file:
             itm.setIcon(0, self.__fileIcon)
         
-        itm.setData(0, self.__urlRole, QVariant(url))
+        itm.setData(0, self.__urlRole, url)
         
         itm.setTextAlignment(0, Qt.AlignLeft)
         itm.setTextAlignment(1, Qt.AlignRight)
@@ -235,7 +235,7 @@
         @param item reference to the item to be expanded (QTreeWidgetItem)
         """
         if not self.__ignoreExpand:
-            url = item.data(0, self.__urlRole).toString()
+            url = item.data(0, self.__urlRole)
             self.__listRepo(url, item)
     
     @pyqtSlot(QTreeWidgetItem)
@@ -283,6 +283,6 @@
         """
         items = self.repoTree.selectedItems()
         if len(items) == 1:
-            return items[0].data(0, self.__urlRole).toString()
+            return items[0].data(0, self.__urlRole)
         else:
             return ""
--- a/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -40,8 +40,8 @@
         
         @param evt the event (QShowEvent)
         """
-        self.recentCommitMessages = \
-            Preferences.Prefs.settings.value('Subversion/Commits').toStringList()
+        self.recentCommitMessages = Preferences.toList(
+            Preferences.Prefs.settings.value('Subversion/Commits'))
         self.recentComboBox.clear()
         self.recentComboBox.addItem("")
         self.recentComboBox.addItems(self.recentCommitMessages)
@@ -58,10 +58,10 @@
                 self.recentCommitMessages.remove(msg)
             self.recentCommitMessages.insert(0, msg)
             no = Preferences.Prefs.settings\
-                .value('Subversion/CommitMessages', QVariant(20)).toInt()[0]
+                .value('Subversion/CommitMessages', 20)
             del self.recentCommitMessages[no:]
             Preferences.Prefs.settings.setValue('Subversion/Commits', 
-                QVariant(self.recentCommitMessages))
+                self.recentCommitMessages)
         return msg
         
     def hasChangelists(self):
--- a/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -161,9 +161,8 @@
             " ".join(msg), 
         ])
         
-        itm.setData(0, self.__messageRole, QVariant(message))
-        # TODO: change this to simply store the list for QVariant v2
-        itm.setData(0, self.__changesRole, QVariant(repr(changedPaths)))
+        itm.setData(0, self.__messageRole, message)
+        itm.setData(0, self.__changesRole, changedPaths)
         
         itm.setTextAlignment(0, Qt.AlignRight)
         itm.setTextAlignment(1, Qt.AlignLeft)
@@ -434,12 +433,11 @@
         @param previous reference to the old current item (QTreeWidgetItem)
         """
         self.messageEdit.clear()
-        for line in current.data(0, self.__messageRole).toStringList():
+        for line in current.data(0, self.__messageRole):
             self.messageEdit.append(line.strip())
         
         self.filesTree.clear()
-        # TODO: change this for QVariant v2 to not use eval
-        changes = eval(current.data(0, self.__changesRole).toString())
+        changes = current.data(0, self.__changesRole)
         if len(changes) > 0:
             for change in changes:
                 self.__generateFileItem(change["action"], change["path"], 
--- a/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -118,7 +118,7 @@
         elif nodekind == "file":
             itm.setIcon(0, self.__fileIcon)
         
-        itm.setData(0, self.__urlRole, QVariant(url))
+        itm.setData(0, self.__urlRole, url)
         
         itm.setTextAlignment(0, Qt.AlignLeft)
         itm.setTextAlignment(1, Qt.AlignRight)
@@ -288,7 +288,7 @@
         @param item reference to the item to be expanded (QTreeWidgetItem)
         """
         if not self.__ignoreExpand:
-            url = item.data(0, self.__urlRole).toString()
+            url = item.data(0, self.__urlRole)
             self.__listRepo(url, item)
     
     @pyqtSlot(QTreeWidgetItem)
@@ -326,7 +326,7 @@
         """
         items = self.repoTree.selectedItems()
         if len(items) == 1:
-            return items[0].data(0, self.__urlRole).toString()
+            return items[0].data(0, self.__urlRole)
         else:
             return ""
     
--- a/Plugins/ViewManagerPlugins/Tabview/Tabview.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Plugins/ViewManagerPlugins/Tabview/Tabview.py	Wed Dec 30 15:40:33 2009 +0000
@@ -96,11 +96,11 @@
         """
         mimeData = event.mimeData()
         formats = mimeData.formats()
-        if formats.contains("action") and \
+        if "action" in formats and \
            mimeData.data("action") == "tab-reordering" and \
-           formats.contains("tabbar-id") and \
-           formats.contains("source-index") and \
-           formats.contains("tabwidget-id"):
+           "tabbar-id" in formats and \
+           "source-index" in formats and \
+           "tabwidget-id" in formats:
             event.acceptProposedAction()
         E4WheelTabBar.dragEnterEvent(self, event)
     
@@ -111,11 +111,11 @@
         @param event reference to the drop event (QDropEvent)
         """
         mimeData = event.mimeData()
-        oldID = mimeData.data("tabbar-id").toLong()[0]
-        fromIndex = mimeData.data("source-index").toInt()[0]
+        oldID = mimeData.data("tabbar-id")
+        fromIndex = mimeData.data("source-index")
         toIndex = self.tabAt(event.pos())
         if oldID != id(self):
-            parentID = mimeData.data("tabwidget-id").toLong()[0]
+            parentID = mimeData.data("tabwidget-id")
             if event.proposedAction() == Qt.MoveAction:
                 self.emit(SIGNAL("tabRelocateRequested(long, int, int)"), 
                           parentID, fromIndex, toIndex)
@@ -284,7 +284,7 @@
         for index in range(self.count()):
             act = self.__navigationMenu.addAction(self.tabIcon(index), 
                                                   self.tabText(index))
-            act.setData(QVariant(index))
+            act.setData(index)
         
     def __navigationMenuTriggered(self, act):
         """
@@ -292,7 +292,7 @@
         
         @param act reference to the selected action (QAction)
         """
-        index, ok = act.data().toInt()
+        index, ok = act.data()
         if ok:
             self.setCurrentIndex(index)
         
--- a/Preferences/ConfigurationDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -312,7 +312,6 @@
         """
         self.setObjectName("ConfigurationDialog")
         self.resize(900, 650)
-        self.setProperty("sizeGripEnabled", QVariant(True))
         self.verticalLayout_2 = QVBoxLayout(self)
         self.verticalLayout_2.setSpacing(6)
         self.verticalLayout_2.setMargin(6)
--- a/Preferences/ConfigurationPages/ApplicationPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/ApplicationPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -9,7 +9,7 @@
 
 import os
 
-from PyQt4.QtCore import QVariant, pyqtSlot
+from PyQt4.QtCore import pyqtSlot
 
 from ConfigurationPageBase import ConfigurationPageBase
 from Ui_ApplicationPage import Ui_ApplicationPage
@@ -69,9 +69,9 @@
         Public slot to save the Application configuration.
         """
         Preferences.setUI("SingleApplicationMode",
-            int(self.singleApplicationCheckBox.isChecked()))
+            self.singleApplicationCheckBox.isChecked())
         Preferences.setUI("ShowSplash",
-            int(self.splashScreenCheckBox.isChecked()))
+            self.splashScreenCheckBox.isChecked())
         
         if self.noOpenRadioButton.isChecked():
             openOnStartup = 0
@@ -98,10 +98,10 @@
         Preferences.setUI("PerformVersionCheck", period)
         
         Preferences.setUser("UseSystemEmailClient", 
-            int(self.systemEmailClientCheckBox.isChecked()))
+            self.systemEmailClientCheckBox.isChecked())
         
         Preferences.setUI("CheckErrorLog", 
-            int(self.errorlogCheckBox.isChecked()))
+            self.errorlogCheckBox.isChecked())
     
 def create(dlg):
     """
--- a/Preferences/ConfigurationPages/DebuggerGeneralPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/DebuggerGeneralPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -138,14 +138,14 @@
         Public slot to save the Debugger General (1) configuration.
         """
         Preferences.setDebugger("RemoteDbgEnabled", 
-            int(self.remoteCheckBox.isChecked()))
+            self.remoteCheckBox.isChecked())
         Preferences.setDebugger("RemoteHost", 
             self.hostLineEdit.text())
         Preferences.setDebugger("RemoteExecution", 
             self.execLineEdit.text())
         
         Preferences.setDebugger("PassiveDbgEnabled", 
-            int(self.passiveDbgCheckBox.isChecked()))
+            self.passiveDbgCheckBox.isChecked())
         Preferences.setDebugger("PassiveDbgPort", 
             self.passiveDbgPortSpinBox.value())
         Preferences.setDebugger("PassiveDbgType", 
@@ -169,29 +169,29 @@
         Preferences.setDebugger("AllowedHosts", allowedHosts)
         
         Preferences.setDebugger("DebugEnvironmentReplace", 
-            int(self.debugEnvironReplaceCheckBox.isChecked()))
+            self.debugEnvironReplaceCheckBox.isChecked())
         Preferences.setDebugger("DebugEnvironment", 
             self.debugEnvironEdit.text())
         Preferences.setDebugger("AutomaticReset", 
-            int(self.automaticResetCheckBox.isChecked()))
+            self.automaticResetCheckBox.isChecked())
         Preferences.setDebugger("Autosave", 
-            int(self.debugAutoSaveScriptsCheckBox.isChecked()))
+            self.debugAutoSaveScriptsCheckBox.isChecked())
         Preferences.setDebugger("ConsoleDbgEnabled", 
-            int(self.consoleDbgCheckBox.isChecked()))
+            self.consoleDbgCheckBox.isChecked())
         Preferences.setDebugger("ConsoleDbgCommand", 
             self.consoleDbgEdit.text())
         Preferences.setDebugger("PathTranslation", 
-            int(self.dbgPathTranslationCheckBox.isChecked()))
+            self.dbgPathTranslationCheckBox.isChecked())
         Preferences.setDebugger("PathTranslationRemote",
             self.dbgTranslationRemoteEdit.text())
         Preferences.setDebugger("PathTranslationLocal",
             self.dbgTranslationLocalEdit.text())
         Preferences.setDebugger("ThreeStateBreakPoints",
-            int(self.debugThreeStateBreakPoint.isChecked()))
+            self.debugThreeStateBreakPoint.isChecked())
         Preferences.setDebugger("SuppressClientExit",
-            int(self.dontShowClientExitCheckBox.isChecked()))
+            self.dontShowClientExitCheckBox.isChecked())
         Preferences.setDebugger("BreakAlways",
-            int(self.exceptionBreakCheckBox.isChecked()))
+            self.exceptionBreakCheckBox.isChecked())
         
     def on_allowedHostsList_currentItemChanged(self, current, previous):
         """
--- a/Preferences/ConfigurationPages/DebuggerPython3Page.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/DebuggerPython3Page.py	Wed Dec 30 15:40:33 2009 +0000
@@ -68,9 +68,9 @@
         Preferences.setDebugger("DebugClient3", 
             self.debugClientEdit.text())
         Preferences.setDebugger("Python3Redirect", 
-            int(self.pyRedirectCheckBox.isChecked()))
+            self.pyRedirectCheckBox.isChecked())
         Preferences.setDebugger("Python3NoEncoding", 
-            int(self.pyNoEncodingCheckBox.isChecked()))
+            self.pyNoEncodingCheckBox.isChecked())
         Preferences.setDebugger("Python3Extensions", 
             self.sourceExtensionsEdit.text())
         
--- a/Preferences/ConfigurationPages/DebuggerPythonPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/DebuggerPythonPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -59,7 +59,7 @@
         Public slot to save the Debugger Python configuration.
         """
         Preferences.setDebugger("CustomPythonInterpreter", 
-            int(self.customPyCheckBox.isChecked()))
+            self.customPyCheckBox.isChecked())
         Preferences.setDebugger("PythonInterpreter", 
             self.interpreterEdit.text())
         if self.standardButton.isChecked():
@@ -72,9 +72,9 @@
         Preferences.setDebugger("DebugClient", 
             self.debugClientEdit.text())
         Preferences.setDebugger("PythonRedirect", 
-            int(self.pyRedirectCheckBox.isChecked()))
+            self.pyRedirectCheckBox.isChecked())
         Preferences.setDebugger("PythonNoEncoding", 
-            int(self.pyNoEncodingCheckBox.isChecked()))
+            self.pyNoEncodingCheckBox.isChecked())
         Preferences.setDebugger("PythonExtensions", 
             self.sourceExtensionsEdit.text())
         
--- a/Preferences/ConfigurationPages/DebuggerRubyPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/DebuggerRubyPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -45,7 +45,7 @@
         Preferences.setDebugger("RubyInterpreter", 
             self.rubyInterpreterEdit.text())
         Preferences.setDebugger("RubyRedirect", 
-            int(self.rbRedirectCheckBox.isChecked()))
+            self.rbRedirectCheckBox.isChecked())
         
     @pyqtSlot()
     def on_rubyInterpreterButton_clicked(self):
--- a/Preferences/ConfigurationPages/EditorAPIsPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorAPIsPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -63,7 +63,7 @@
         Public slot to save the Editor APIs configuration.
         """
         Preferences.setEditor("AutoPrepareAPIs",
-            int(self.apiAutoPrepareCheckBox.isChecked()))
+            self.apiAutoPrepareCheckBox.isChecked())
         
         lang = self.apiLanguageComboBox.currentText()
         self.apis[lang] = self.__editorGetApisFromApiList()
--- a/Preferences/ConfigurationPages/EditorAutocompletionPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorAutocompletionPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -39,11 +39,11 @@
         Public slot to save the Editor Autocompletion configuration.
         """
         Preferences.setEditor("AutoCompletionEnabled",
-            int(self.acEnabledCheckBox.isChecked()))
+            self.acEnabledCheckBox.isChecked())
         Preferences.setEditor("AutoCompletionCaseSensitivity",
-            int(self.acCaseSensitivityCheckBox.isChecked()))
+            self.acCaseSensitivityCheckBox.isChecked())
         Preferences.setEditor("AutoCompletionReplaceWord",
-            int(self.acReplaceWordCheckBox.isChecked()))
+            self.acReplaceWordCheckBox.isChecked())
         Preferences.setEditor("AutoCompletionThreshold",
             self.acThresholdSlider.value())
     
--- a/Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorAutocompletionQScintillaPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -46,9 +46,9 @@
         Public slot to save the Editor Autocompletion configuration.
         """
         Preferences.setEditor("AutoCompletionShowSingle",
-            int(self.acShowSingleCheckBox.isChecked()))
+            self.acShowSingleCheckBox.isChecked())
         Preferences.setEditor("AutoCompletionFillups",
-            int(self.acFillupsCheckBox.isChecked()))
+            self.acFillupsCheckBox.isChecked())
         if self.acSourceDocumentRadioButton.isChecked():
             Preferences.setEditor("AutoCompletionSource", QsciScintilla.AcsDocument)
         elif self.acSourceAPIsRadioButton.isChecked():
--- a/Preferences/ConfigurationPages/EditorCalltipsPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorCalltipsPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -44,14 +44,14 @@
         Public slot to save the EditorCalltips configuration.
         """
         Preferences.setEditor("CallTipsEnabled",
-            int(self.ctEnabledCheckBox.isChecked()))
+            self.ctEnabledCheckBox.isChecked())
         
         Preferences.setEditor("CallTipsVisible",
             self.ctVisibleSlider.value())
         Preferences.setEditorColour("CallTipsBackground", self.callTipsBackgroundColour)
         
         Preferences.setEditor("CallTipsScintillaOnFail", 
-            int(self.ctScintillaCheckBox.isChecked()))
+            self.ctScintillaCheckBox.isChecked())
         
     @pyqtSlot()
     def on_calltipsBackgroundButton_clicked(self):
--- a/Preferences/ConfigurationPages/EditorExportersPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorExportersPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -7,7 +7,7 @@
 Module implementing the Editor Exporters configuration page.
 """
 
-from PyQt4.QtCore import QVariant, pyqtSlot
+from PyQt4.QtCore import pyqtSlot
 from PyQt4.QtGui import QFontDialog
 
 from ConfigurationPageBase import ConfigurationPageBase
@@ -37,14 +37,14 @@
         exporters = self.pageIds.keys()
         exporters.sort()
         for exporter in exporters:
-            self.exportersCombo.addItem(exporter, QVariant(self.pageIds[exporter]))
+            self.exportersCombo.addItem(exporter, self.pageIds[exporter])
         
-        self.pdfFontCombo.addItem(self.trUtf8("Courier"), QVariant("Courier"))
-        self.pdfFontCombo.addItem(self.trUtf8("Helvetica"), QVariant("Helvetica"))
-        self.pdfFontCombo.addItem(self.trUtf8("Times"), QVariant("Times"))
+        self.pdfFontCombo.addItem(self.trUtf8("Courier"), "Courier")
+        self.pdfFontCombo.addItem(self.trUtf8("Helvetica"), "Helvetica")
+        self.pdfFontCombo.addItem(self.trUtf8("Times"), "Times")
         
-        self.pdfPageSizeCombo.addItem(self.trUtf8("A4"), QVariant("A4"))
-        self.pdfPageSizeCombo.addItem(self.trUtf8("Letter"), QVariant("Letter"))
+        self.pdfPageSizeCombo.addItem(self.trUtf8("A4"), "A4")
+        self.pdfPageSizeCombo.addItem(self.trUtf8("Letter"), "Letter")
         
         # HTML
         self.htmlWysiwygCheckBox.setChecked(\
@@ -61,11 +61,11 @@
         # PDF
         self.pdfMagnificationSlider.setValue(\
             Preferences.getEditorExporter("PDF/Magnification"))
-        ind = self.pdfFontCombo.findData(QVariant(\
-            Preferences.getEditorExporter("PDF/Font")))
+        ind = self.pdfFontCombo.findData(\
+            Preferences.getEditorExporter("PDF/Font"))
         self.pdfFontCombo.setCurrentIndex(ind)
-        ind = self.pdfPageSizeCombo.findData(QVariant(\
-            Preferences.getEditorExporter("PDF/PageSize")))
+        ind = self.pdfPageSizeCombo.findData(\
+            Preferences.getEditorExporter("PDF/PageSize"))
         self.pdfPageSizeCombo.setCurrentIndex(ind)
         self.pdfMarginTopSpin.setValue(\
             Preferences.getEditorExporter("PDF/MarginTop"))
@@ -98,25 +98,23 @@
         """
         # HTML
         Preferences.setEditorExporter("HTML/WYSIWYG",
-            int(self.htmlWysiwygCheckBox.isChecked()))
+            self.htmlWysiwygCheckBox.isChecked())
         Preferences.setEditorExporter("HTML/Folding",
-            int(self.htmlFoldingCheckBox.isChecked()))
+            self.htmlFoldingCheckBox.isChecked())
         Preferences.setEditorExporter("HTML/OnlyStylesUsed",
-            int(self.htmlStylesCheckBox.isChecked()))
+            self.htmlStylesCheckBox.isChecked())
         Preferences.setEditorExporter("HTML/FullPathAsTitle",
-            int(self.htmlTitleCheckBox.isChecked()))
+            self.htmlTitleCheckBox.isChecked())
         Preferences.setEditorExporter("HTML/UseTabs",
-            int(self.htmlTabsCheckBox.isChecked()))
+            self.htmlTabsCheckBox.isChecked())
         
         # PDF
         Preferences.setEditorExporter("PDF/Magnification", 
             self.pdfMagnificationSlider.value())
         Preferences.setEditorExporter("PDF/Font", 
-            self.pdfFontCombo.itemData(self.pdfFontCombo.currentIndex())\
-                             .toString())
+            self.pdfFontCombo.itemData(self.pdfFontCombo.currentIndex()))
         Preferences.setEditorExporter("PDF/PageSize", 
-            self.pdfPageSizeCombo.itemData(self.pdfPageSizeCombo.currentIndex())\
-                                 .toString())
+            self.pdfPageSizeCombo.itemData(self.pdfPageSizeCombo.currentIndex()))
         Preferences.setEditorExporter("PDF/MarginTop", 
             self.pdfMarginTopSpin.value())
         Preferences.setEditorExporter("PDF/MarginBottom", 
@@ -128,16 +126,16 @@
         
         # RTF
         Preferences.setEditorExporter("RTF/WYSIWYG",
-            int(self.rtfWysiwygCheckBox.isChecked()))
+            self.rtfWysiwygCheckBox.isChecked())
         Preferences.setEditorExporter("RTF/UseTabs",
-            int(self.rtfTabsCheckBox.isChecked()))
+            self.rtfTabsCheckBox.isChecked())
         Preferences.setEditorExporter("RTF/Font", self.rtfFont)
         
         # TeX
         Preferences.setEditorExporter("TeX/OnlyStylesUsed",
-            int(self.texStylesCheckBox.isChecked()))
+            self.texStylesCheckBox.isChecked())
         Preferences.setEditorExporter("TeX/FullPathAsTitle",
-            int(self.texTitleCheckBox.isChecked()))
+            self.texTitleCheckBox.isChecked())
     
     @pyqtSlot(str)
     def on_exportersCombo_activated(self, exporter):
--- a/Preferences/ConfigurationPages/EditorFilePage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorFilePage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -80,29 +80,29 @@
         Preferences.setEditor("AutosaveInterval", 
             self.autosaveSlider.value())
         Preferences.setEditor("CreateBackupFile",
-            int(self.createBackupFileCheckBox.isChecked()))
+            self.createBackupFileCheckBox.isChecked())
         Preferences.setEditor("AutoCheckSyntax",
-            int(self.automaticSyntaxCheckCheckBox.isChecked()))
+            self.automaticSyntaxCheckCheckBox.isChecked())
         enc = self.defaultEncodingComboBox.currentText()
         if not enc:
             enc = "utf-8"
         Preferences.setEditor("DefaultEncoding", enc)
         Preferences.setEditor("AdvancedEncodingDetection", 
-            int(self.advEncodingCheckBox.isChecked()))
+            self.advEncodingCheckBox.isChecked())
         Preferences.setEditor("WarnFilesize",
             self.warnFilesizeSpinBox.value())
         Preferences.setEditor("ClearBreaksOnClose",
-            int(self.clearBreakpointsCheckBox.isChecked()))
+            self.clearBreakpointsCheckBox.isChecked())
         Preferences.setEditor("AutoReopen",
-            int(self.automaticReopenCheckBox.isChecked()))
+            self.automaticReopenCheckBox.isChecked())
         Preferences.setEditor("StripTrailingWhitespace", 
-            int(self.stripWhitespaceCheckBox.isChecked()))
+            self.stripWhitespaceCheckBox.isChecked())
         Preferences.setEditor("DefaultOpenFilter",
             self.openFilesFilterComboBox.currentText())
         Preferences.setEditor("DefaultSaveFilter",
             self.saveFilesFilterComboBox.currentText())
         Preferences.setEditor("AutomaticEOLConversion",
-            int(self.automaticEolConversionCheckBox.isChecked()))
+            self.automaticEolConversionCheckBox.isChecked())
         
         if self.crlfRadioButton.isChecked():
             Preferences.setEditor("EOLMode", QsciScintilla.EolWindows)
--- a/Preferences/ConfigurationPages/EditorGeneralPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorGeneralPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -53,17 +53,17 @@
         Preferences.setEditor("IndentWidth", 
             self.indentwidthSlider.value())
         Preferences.setEditor("IndentationGuides",
-            int(self.indentguidesCheckBox.isChecked()))
+            self.indentguidesCheckBox.isChecked())
         Preferences.setEditor("TabForIndentation", 
-            int(self.tabforindentationCheckBox.isChecked()))
+            self.tabforindentationCheckBox.isChecked())
         Preferences.setEditor("TabIndents", 
-            int(self.tabindentsCheckBox.isChecked()))
+            self.tabindentsCheckBox.isChecked())
         Preferences.setEditor("ConvertTabsOnLoad",
-            int(self.converttabsCheckBox.isChecked()))
+            self.converttabsCheckBox.isChecked())
         Preferences.setEditor("AutoIndentation", 
-            int(self.autoindentCheckBox.isChecked()))
+            self.autoindentCheckBox.isChecked())
         Preferences.setEditor("CommentColumn0", 
-            int(self.comment0CheckBox.isChecked()))
+            self.comment0CheckBox.isChecked())
         
     def on_tabforindentationCheckBox_toggled(self, checked):
         """
--- a/Preferences/ConfigurationPages/EditorPropertiesPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorPropertiesPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -176,128 +176,128 @@
         """
         # All
         Preferences.setEditor("AllFoldCompact",
-            int(self.allFoldCompactCheckBox.isChecked()))
+            self.allFoldCompactCheckBox.isChecked())
         
         # Bash
         Preferences.setEditor("BashFoldComment",
-            int(self.foldBashCommentCheckBox.isChecked()))
+            self.foldBashCommentCheckBox.isChecked())
         
         # CMake
         Preferences.setEditor("CMakeFoldAtElse",
-            int(self.cmakeFoldAtElseCheckBox.isChecked()))
+            self.cmakeFoldAtElseCheckBox.isChecked())
         
         # C++
         Preferences.setEditor("CppFoldComment",
-            int(self.foldCppCommentCheckBox.isChecked()))
+            self.foldCppCommentCheckBox.isChecked())
         Preferences.setEditor("CppFoldPreprocessor",
-            int(self.foldCppPreprocessorCheckBox.isChecked()))
+            self.foldCppPreprocessorCheckBox.isChecked())
         Preferences.setEditor("CppFoldAtElse",
-            int(self.foldCppAtElseCheckBox.isChecked()))
+            self.foldCppAtElseCheckBox.isChecked())
         Preferences.setEditor("CppIndentOpeningBrace",
-            int(self.cppIndentOpeningBraceCheckBox.isChecked()))
+            self.cppIndentOpeningBraceCheckBox.isChecked())
         Preferences.setEditor("CppIndentClosingBrace",
-            int(self.cppIndentClosingBraceCheckBox.isChecked()))
+            self.cppIndentClosingBraceCheckBox.isChecked())
         Preferences.setEditor("CppCaseInsensitiveKeywords",
-            int(self.cppCaseInsensitiveCheckBox.isChecked()))
+            self.cppCaseInsensitiveCheckBox.isChecked())
         Preferences.setEditor("CppDollarsAllowed",
-            int(self.cppDollarAllowedCheckBox.isChecked()))
+            self.cppDollarAllowedCheckBox.isChecked())
         
         # CSS
         Preferences.setEditor("CssFoldComment",
-            int(self.foldCssCommentCheckBox.isChecked()))
+            self.foldCssCommentCheckBox.isChecked())
         
         # D
         Preferences.setEditor("DFoldComment",
-            int(self.foldDCommentCheckBox.isChecked()))
+            self.foldDCommentCheckBox.isChecked())
         Preferences.setEditor("DFoldAtElse",
-            int(self.foldDAtElseCheckBox.isChecked()))
+            self.foldDAtElseCheckBox.isChecked())
         Preferences.setEditor("DIndentOpeningBrace",
-            int(self.dIndentOpeningBraceCheckBox.isChecked()))
+            self.dIndentOpeningBraceCheckBox.isChecked())
         Preferences.setEditor("DIndentClosingBrace",
-            int(self.dIndentClosingBraceCheckBox.isChecked()))
+            self.dIndentClosingBraceCheckBox.isChecked())
         
         # HTML
         Preferences.setEditor("HtmlFoldPreprocessor",
-            int(self.foldHtmlPreprocessorCheckBox.isChecked()))
+            self.foldHtmlPreprocessorCheckBox.isChecked())
         Preferences.setEditor("HtmlCaseSensitiveTags",
-            int(self.htmlCaseSensitiveTagsCheckBox.isChecked()))
+            self.htmlCaseSensitiveTagsCheckBox.isChecked())
         Preferences.setEditor("HtmlFoldScriptComments",
-            int(self.foldHtmlScriptCommentsCheckBox.isChecked()))
+            self.foldHtmlScriptCommentsCheckBox.isChecked())
         Preferences.setEditor("HtmlFoldScriptHeredocs",
-            int(self.foldHtmlScriptHereDocsCheckBox.isChecked()))
+            self.foldHtmlScriptHereDocsCheckBox.isChecked())
         
         # Pascal
         if "Pascal" in self.languages:
             Preferences.setEditor("PascalFoldComment",
-                int(self.foldPascalCommentCheckBox.isChecked()))
+                self.foldPascalCommentCheckBox.isChecked())
             Preferences.setEditor("PascalFoldPreprocessor",
-                int(self.foldPascalPreprocessorCheckBox.isChecked()))
+                self.foldPascalPreprocessorCheckBox.isChecked())
             Preferences.setEditor("PascalSmartHighlighting",
-                int(self.pascalSmartHighlightingCheckBox.isChecked()))
+                self.pascalSmartHighlightingCheckBox.isChecked())
         
         # Perl
         Preferences.setEditor("PerlFoldComment",
-            int(self.foldPerlCommentCheckBox.isChecked()))
+            self.foldPerlCommentCheckBox.isChecked())
         Preferences.setEditor("PerlFoldPackages",
-            int(self.foldPerlPackagesCheckBox.isChecked()))
+            self.foldPerlPackagesCheckBox.isChecked())
         Preferences.setEditor("PerlFoldPODBlocks",
-            int(self.foldPerlPODBlocksCheckBox.isChecked()))
+            self.foldPerlPODBlocksCheckBox.isChecked())
         
         # PostScript
         if "PostScript" in self.languages:
             Preferences.setEditor("PostScriptFoldAtElse",
-                int(self.psFoldAtElseCheckBox.isChecked()))
+                self.psFoldAtElseCheckBox.isChecked())
             Preferences.setEditor("PostScriptTokenize",
-                int(self.psMarkTokensCheckBox.isChecked()))
+                self.psMarkTokensCheckBox.isChecked())
             Preferences.setEditor("PostScriptLevel", 
                 self.psLevelSpinBox.value())
         
         # Povray
         Preferences.setEditor("PovFoldComment",
-            int(self.foldPovrayCommentCheckBox.isChecked()))
+            self.foldPovrayCommentCheckBox.isChecked())
         Preferences.setEditor("PovFoldDirectives",
-            int(self.foldPovrayDirectivesCheckBox.isChecked()))
+            self.foldPovrayDirectivesCheckBox.isChecked())
         
         # Python
         Preferences.setEditor("PythonFoldComment",
-            int(self.foldPythonCommentCheckBox.isChecked()))
+            self.foldPythonCommentCheckBox.isChecked())
         Preferences.setEditor("PythonFoldString",
-            int(self.foldPythonStringCheckBox.isChecked()))
+            self.foldPythonStringCheckBox.isChecked())
         Preferences.setEditor("PythonBadIndentation",
-            int(self.pythonBadIndentationCheckBox.isChecked()))
+            self.pythonBadIndentationCheckBox.isChecked())
         Preferences.setEditor("PythonAutoIndent",
-            int(self.pythonAutoindentCheckBox.isChecked()))
+            self.pythonAutoindentCheckBox.isChecked())
         Preferences.setEditor("PythonAllowV2Unicode",
-            int(self.pythonV2UnicodeAllowedCheckBox.isChecked()))
+            self.pythonV2UnicodeAllowedCheckBox.isChecked())
         Preferences.setEditor("PythonAllowV3Binary",
-            int(self.pythonV3BinaryAllowedCheckBox.isChecked()))
+            self.pythonV3BinaryAllowedCheckBox.isChecked())
         Preferences.setEditor("PythonAllowV3Bytes",
-            int(self.pythonV3BytesAllowedCheckBox.isChecked()))
+            self.pythonV3BytesAllowedCheckBox.isChecked())
         
         # SQL
         Preferences.setEditor("SqlFoldComment",
-            int(self.foldSqlCommentCheckBox.isChecked()))
+            self.foldSqlCommentCheckBox.isChecked())
         Preferences.setEditor("SqlBackslashEscapes",
-            int(self.sqlBackslashEscapesCheckBox.isChecked()))
+            self.sqlBackslashEscapesCheckBox.isChecked())
         
         # VHDL
         Preferences.setEditor("VHDLFoldComment",
-            int(self.vhdlFoldCommentCheckBox.isChecked()))
+            self.vhdlFoldCommentCheckBox.isChecked())
         Preferences.setEditor("VHDLFoldAtElse",
-            int(self.vhdlFoldAtElseCheckBox.isChecked()))
+            self.vhdlFoldAtElseCheckBox.isChecked())
         Preferences.setEditor("VHDLFoldAtBegin",
-            int(self.vhdlFoldAtBeginCheckBox.isChecked()))
+            self.vhdlFoldAtBeginCheckBox.isChecked())
         Preferences.setEditor("VHDLFoldAtParenthesis",
-            int(self.vhdlFoldAtParenthesisCheckBox.isChecked()))
+            self.vhdlFoldAtParenthesisCheckBox.isChecked())
         
         # XML
         Preferences.setEditor("XMLStyleScripts",
-            int(self.xmlSyleScriptsCheckBox.isChecked()))
+            self.xmlSyleScriptsCheckBox.isChecked())
         
         # YAML
         if "YAML" in self.languages:
             Preferences.setEditor("YAMLFoldComment", 
-                int(self.foldYamlCommentCheckBox.isChecked()))
+                self.foldYamlCommentCheckBox.isChecked())
 
 def create(dlg):
     """
--- a/Preferences/ConfigurationPages/EditorSearchPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorSearchPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -49,11 +49,11 @@
         Public slot to save the Editor Search configuration.
         """
         Preferences.setEditor("SearchMarkersEnabled", 
-            int(self.searchMarkersEnabledCheckBox.isChecked()))
+            self.searchMarkersEnabledCheckBox.isChecked())
         Preferences.setEditor("QuickSearchMarkersEnabled", 
-            int(self.quicksearchMarkersEnabledCheckBox.isChecked()))
+            self.quicksearchMarkersEnabledCheckBox.isChecked())
         Preferences.setEditor("MarkOccurrencesEnabled", 
-            int(self.occurrencesMarkersEnabledCheckBox.isChecked()))
+            self.occurrencesMarkersEnabledCheckBox.isChecked())
         
         Preferences.setEditor("MarkOccurrencesTimeout", 
             self.markOccurrencesTimeoutSpinBox.value())
--- a/Preferences/ConfigurationPages/EditorSpellCheckingPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorSpellCheckingPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -76,13 +76,13 @@
         Public slot to save the Editor Search configuration.
         """
         Preferences.setEditor("SpellCheckingEnabled", 
-            int(self.checkingEnabledCheckBox.isChecked()))
+            self.checkingEnabledCheckBox.isChecked())
         
         Preferences.setEditor("SpellCheckingDefaultLanguage", 
             self.defaultLanguageCombo.currentText())
         
         Preferences.setEditor("SpellCheckStringsOnly", 
-            int(self.stringsOnlyCheckBox.isChecked()))
+            self.stringsOnlyCheckBox.isChecked())
         Preferences.setEditor("SpellCheckingMinWordSize", 
             self.minimumWordSizeSlider.value())
         
@@ -93,7 +93,7 @@
         Preferences.setEditor("SpellCheckingPersonalExcludeList", self.pelEdit.text())
         
         Preferences.setEditor("AutoSpellCheckingEnabled", 
-            int(self.enabledCheckBox.isChecked()))
+            self.enabledCheckBox.isChecked())
         Preferences.setEditor("AutoSpellCheckChunkSize", self.chunkSizeSpinBox.value())
         
     @pyqtSlot()
--- a/Preferences/ConfigurationPages/EditorStylesPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorStylesPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -150,45 +150,45 @@
         Preferences.setEditorOtherFonts("DefaultFont", self.defaultFont)
         Preferences.setEditorOtherFonts("MonospacedFont", self.monospacedFont)
         Preferences.setEditor("UseMonospacedFont",
-            int(self.monospacedCheckBox.isChecked()))
+            self.monospacedCheckBox.isChecked())
         
         Preferences.setEditor("LinenoWidth", 
             self.linenowidthSlider.value())
         Preferences.setEditor("LinenoMargin", 
-            int(self.linenoCheckBox.isChecked()))
+            self.linenoCheckBox.isChecked())
         Preferences.setEditor("FoldingMargin", 
-            int(self.foldingCheckBox.isChecked()))
+            self.foldingCheckBox.isChecked())
         Preferences.setEditor("UnifiedMargins", 
-            int(self.unifiedMarginsCheckBox.isChecked()))
+            self.unifiedMarginsCheckBox.isChecked())
         
         Preferences.setEditor("CaretLineVisible",
-            int(self.caretlineVisibleCheckBox.isChecked()))
+            self.caretlineVisibleCheckBox.isChecked())
         Preferences.setEditor("ColourizeSelText",
-            int(self.colourizeSelTextCheckBox.isChecked()))
+            self.colourizeSelTextCheckBox.isChecked())
         Preferences.setEditor("CustomSelectionColours", 
-            int(self.customSelColourCheckBox.isChecked()))
+            self.customSelColourCheckBox.isChecked())
         Preferences.setEditor("ExtendSelectionToEol", 
-            int(self.extentSelEolCheckBox.isChecked()))
+            self.extentSelEolCheckBox.isChecked())
         
         Preferences.setEditor("CaretWidth", 
             self.caretWidthSpinBox.value())
         
         Preferences.setEditor("ShowEOL", 
-            int(self.eolCheckBox.isChecked()))
+            self.eolCheckBox.isChecked())
         Preferences.setEditor("WrapLongLines",
-            int(self.wrapLongLinesCheckBox.isChecked()))
+            self.wrapLongLinesCheckBox.isChecked())
         Preferences.setEditor("EdgeMode",
             self.edgeModes[self.edgeModeCombo.currentIndex()])
         Preferences.setEditor("EdgeColumn",
             self.edgeLineColumnSlider.value())
         
         Preferences.setEditor("BraceHighlighting",
-            int(self.bracehighlightingCheckBox.isChecked()))
+            self.bracehighlightingCheckBox.isChecked())
         
         Preferences.setEditor("ShowWhitespace", 
-            int(self.whitespaceCheckBox.isChecked()))
+            self.whitespaceCheckBox.isChecked())
         Preferences.setEditor("MiniContextMenu",
-            int(self.miniMenuCheckBox.isChecked()))
+            self.miniMenuCheckBox.isChecked())
         
         for key in self.editorColours.keys():
             Preferences.setEditorColour(key, self.editorColours[key])
--- a/Preferences/ConfigurationPages/EditorTypingPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EditorTypingPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -7,7 +7,7 @@
 Module implementing the Editor Typing configuration page.
 """
 
-from PyQt4.QtCore import QVariant, pyqtSlot
+from PyQt4.QtCore import pyqtSlot
 
 from ConfigurationPageBase import ConfigurationPageBase
 from Ui_EditorTypingPage import Ui_EditorTypingPage
@@ -34,7 +34,7 @@
         languages = self.pageIds.keys()
         languages.sort()
         for language in languages:
-            self.languageCombo.addItem(language, QVariant(self.pageIds[language]))
+            self.languageCombo.addItem(language, self.pageIds[language])
         
         # Python
         self.pythonGroup.setChecked(\
@@ -90,49 +90,49 @@
         """
         # Python
         Preferences.setEditorTyping("Python/EnabledTypingAids",
-            int(self.pythonGroup.isChecked()))
+            self.pythonGroup.isChecked())
         Preferences.setEditorTyping("Python/InsertClosingBrace",
-            int(self.pythonInsertClosingBraceCheckBox.isChecked()))
+            self.pythonInsertClosingBraceCheckBox.isChecked())
         Preferences.setEditorTyping("Python/SkipBrace",
-            int(self.pythonSkipBraceCheckBox.isChecked()))
+            self.pythonSkipBraceCheckBox.isChecked())
         Preferences.setEditorTyping("Python/IndentBrace",
-            int(self.pythonIndentBraceCheckBox.isChecked()))
+            self.pythonIndentBraceCheckBox.isChecked())
         Preferences.setEditorTyping("Python/InsertQuote",
-            int(self.pythonInsertQuoteCheckBox.isChecked()))
+            self.pythonInsertQuoteCheckBox.isChecked())
         Preferences.setEditorTyping("Python/DedentElse",
-            int(self.pythonDedentElseCheckBox.isChecked()))
+            self.pythonDedentElseCheckBox.isChecked())
         Preferences.setEditorTyping("Python/DedentExcept",
-            int(self.pythonDedentExceptCheckBox.isChecked()))
+            self.pythonDedentExceptCheckBox.isChecked())
         Preferences.setEditorTyping("Python/Py24StyleTry",
-            int(self.pythonDedentExceptPy24CheckBox.isChecked()))
+            self.pythonDedentExceptPy24CheckBox.isChecked())
         Preferences.setEditorTyping("Python/InsertImport",
-            int(self.pythonInsertImportCheckBox.isChecked()))
+            self.pythonInsertImportCheckBox.isChecked())
         Preferences.setEditorTyping("Python/InsertSelf",
-            int(self.pythonInsertSelfCheckBox.isChecked()))
+            self.pythonInsertSelfCheckBox.isChecked())
         Preferences.setEditorTyping("Python/InsertBlank",
-            int(self.pythonInsertBlankCheckBox.isChecked()))
+            self.pythonInsertBlankCheckBox.isChecked())
         Preferences.setEditorTyping("Python/ColonDetection",
-            int(self.pythonColonDetectionCheckBox.isChecked()))
+            self.pythonColonDetectionCheckBox.isChecked())
         Preferences.setEditorTyping("Python/DedentDef",
-            int(self.pythonDedentDefCheckBox.isChecked()))
+            self.pythonDedentDefCheckBox.isChecked())
         
         # Ruby
         Preferences.setEditorTyping("Ruby/EnabledTypingAids",
-            int(self.rubyGroup.isChecked()))
+            self.rubyGroup.isChecked())
         Preferences.setEditorTyping("Ruby/InsertClosingBrace",
-            int(self.rubyInsertClosingBraceCheckBox.isChecked()))
+            self.rubyInsertClosingBraceCheckBox.isChecked())
         Preferences.setEditorTyping("Ruby/SkipBrace",
-            int(self.rubySkipBraceCheckBox.isChecked()))
+            self.rubySkipBraceCheckBox.isChecked())
         Preferences.setEditorTyping("Ruby/IndentBrace",
-            int(self.rubyIndentBraceCheckBox.isChecked()))
+            self.rubyIndentBraceCheckBox.isChecked())
         Preferences.setEditorTyping("Ruby/InsertQuote",
-            int(self.rubyInsertQuoteCheckBox.isChecked()))
+            self.rubyInsertQuoteCheckBox.isChecked())
         Preferences.setEditorTyping("Ruby/InsertBlank",
-            int(self.rubyInsertBlankCheckBox.isChecked()))
+            self.rubyInsertBlankCheckBox.isChecked())
         Preferences.setEditorTyping("Ruby/InsertHereDoc",
-            int(self.rubyInsertHereDocCheckBox.isChecked()))
+            self.rubyInsertHereDocCheckBox.isChecked())
         Preferences.setEditorTyping("Ruby/InsertInlineDoc",
-            int(self.rubyInsertInlineDocCheckBox.isChecked()))
+            self.rubyInsertInlineDocCheckBox.isChecked())
         
     @pyqtSlot(str)
     def on_languageCombo_activated(self, language):
--- a/Preferences/ConfigurationPages/EmailPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/EmailPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -55,13 +55,13 @@
         Preferences.setUser("Signature",
             self.signatureEdit.toPlainText())
         Preferences.setUser("MailServerAuthentication",
-            int(self.mailAuthenticationCheckBox.isChecked()))
+            self.mailAuthenticationCheckBox.isChecked())
         Preferences.setUser("MailServerUser",
             self.mailUserEdit.text())
         Preferences.setUser("MailServerPassword",
             self.mailPasswordEdit.text())
         Preferences.setUser("MailServerUseTLS",
-            int(self.useTlsCheckBox.isChecked()))
+            self.useTlsCheckBox.isChecked())
     
 def create(dlg):
     """
--- a/Preferences/ConfigurationPages/HelpAppearancePage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/HelpAppearancePage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -63,7 +63,7 @@
         Preferences.setHelp("FixedFont", self.fixedFont)
         
         Preferences.setHelp("AutoLoadImages",
-            int(self.autoLoadImagesCheckBox.isChecked()))
+            self.autoLoadImagesCheckBox.isChecked())
         
         Preferences.setHelp("UserStyleSheet", self.styleSheetEdit.text())
         
--- a/Preferences/ConfigurationPages/HelpWebBrowserPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/HelpWebBrowserPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -108,33 +108,33 @@
         Public slot to save the Help Viewers configuration.
         """
         Preferences.setHelp("SingleHelpWindow",
-            int(self.singleHelpWindowCheckBox.isChecked()))
+            self.singleHelpWindowCheckBox.isChecked())
         Preferences.setHelp("SaveGeometry",
-            int(self.saveGeometryCheckBox.isChecked()))
+            self.saveGeometryCheckBox.isChecked())
         Preferences.setHelp("WebSearchSuggestions",
-            int(self.webSuggestionsCheckBox.isChecked()))
+            self.webSuggestionsCheckBox.isChecked())
         
         Preferences.setHelp("JavaEnabled",
-            int(self.javaCheckBox.isChecked()))
+            self.javaCheckBox.isChecked())
         Preferences.setHelp("JavaScriptEnabled",
-            int(self.javaScriptCheckBox.isChecked()))
+            self.javaScriptCheckBox.isChecked())
         Preferences.setHelp("JavaScriptCanOpenWindows",
-            int(self.jsOpenWindowsCheckBox.isChecked()))
+            self.jsOpenWindowsCheckBox.isChecked())
         Preferences.setHelp("JavaScriptCanAccessClipboard",
-            int(self.jsClipboardCheckBox.isChecked()))
+            self.jsClipboardCheckBox.isChecked())
         Preferences.setHelp("PluginsEnabled", 
-            int(self.pluginsCheckBox.isChecked()))
+            self.pluginsCheckBox.isChecked())
         
         Preferences.setHelp("SavePasswords", 
-            int(self.savePasswordsCheckBox.isChecked()))
+            self.savePasswordsCheckBox.isChecked())
         
         if qVersion() >= '4.5.0':
             Preferences.setHelp("DiskCacheEnabled",
-                int(self.diskCacheCheckBox.isChecked()))
+                self.diskCacheCheckBox.isChecked())
             Preferences.setHelp("DiskCacheSize",
                 self.cacheSizeSpinBox.value())
             Preferences.setHelp("PrintBackgrounds",
-                int(self.printBackgroundsCheckBox.isChecked()))
+                self.printBackgroundsCheckBox.isChecked())
         
         Preferences.setHelp("StartupBehavior", 
             self.startupCombo.currentIndex())
--- a/Preferences/ConfigurationPages/InterfacePage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/InterfacePage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -10,7 +10,7 @@
 import glob
 import os
 
-from PyQt4.QtCore import pyqtSlot, QVariant, QTranslator, qVersion
+from PyQt4.QtCore import pyqtSlot, QTranslator, qVersion
 from PyQt4.QtGui import QStyleFactory, QFileDialog
 
 from E4Gui.E4Completers import E4FileCompleter
@@ -117,20 +117,20 @@
         """
         # save the style settings
         styleIndex = self.styleComboBox.currentIndex()
-        style = self.styleComboBox.itemData(styleIndex).toString()
+        style = self.styleComboBox.itemData(styleIndex)
         Preferences.setUI("Style", style)
         
         # save the other UI related settings
         Preferences.setUI("BrowsersListFoldersFirst",
-            int(self.uiBrowsersListFoldersFirstCheckBox.isChecked()))
+            self.uiBrowsersListFoldersFirstCheckBox.isChecked())
         Preferences.setUI("BrowsersHideNonPublic",
-            int(self.uiBrowsersHideNonPublicCheckBox.isChecked()))
+            self.uiBrowsersHideNonPublicCheckBox.isChecked())
         Preferences.setUI("BrowsersListContentsByOccurrence", 
-            int(self.uiBrowsersSortByOccurrenceCheckBox.isChecked()))
+            self.uiBrowsersSortByOccurrenceCheckBox.isChecked())
         Preferences.setUI("LogViewerAutoRaise", 
-            int(self.lvAutoRaiseCheckBox.isChecked()))
+            self.lvAutoRaiseCheckBox.isChecked())
         Preferences.setUI("CaptionShowsFilename",
-            int(self.uiCaptionShowsFilenameGroupBox.isChecked()))
+            self.uiCaptionShowsFilenameGroupBox.isChecked())
         Preferences.setUI("CaptionFilenameLength",
             self.filenameLengthSpinBox.value())
         Preferences.setUI("StyleSheet",
@@ -138,19 +138,19 @@
         
         # save the dockarea corner settings
         Preferences.setUI("TopLeftByLeft", 
-            int(self.tlLeftButton.isChecked()))
+            self.tlLeftButton.isChecked())
         Preferences.setUI("BottomLeftByLeft", 
-            int(self.blLeftButton.isChecked()))
+            self.blLeftButton.isChecked())
         Preferences.setUI("TopRightByRight", 
-            int(self.trRightButton.isChecked()))
+            self.trRightButton.isChecked())
         Preferences.setUI("BottomRightByRight", 
-            int(self.brRightButton.isChecked()))
+            self.brRightButton.isChecked())
         
         # save the language settings
         uiLanguageIndex = self.languageComboBox.currentIndex()
         if uiLanguageIndex:
             uiLanguage = \
-                self.languageComboBox.itemData(uiLanguageIndex).toString()
+                self.languageComboBox.itemData(uiLanguageIndex)
         else:
             uiLanguage = None
         Preferences.setUILanguage(uiLanguage)
@@ -180,7 +180,7 @@
         Preferences.setUILayout(layout)
         
         Preferences.setUI("SingleCloseButton", 
-            int(self.tabsCloseButtonCheckBox.isChecked()))
+            self.tabsCloseButtonCheckBox.isChecked())
         
         for key in self.uiColours.keys():
             Preferences.setUI(key, self.uiColours[key])
@@ -192,10 +192,10 @@
         curStyle = Preferences.getUI("Style")
         styles = QStyleFactory.keys()
         styles.sort()
-        self.styleComboBox.addItem(self.trUtf8('System'), QVariant("System"))
+        self.styleComboBox.addItem(self.trUtf8('System'), "System")
         for style in styles:
-            self.styleComboBox.addItem(style, QVariant(style))
-        currentIndex = self.styleComboBox.findData(QVariant(curStyle))
+            self.styleComboBox.addItem(style, style)
+        currentIndex = self.styleComboBox.findData(curStyle)
         if currentIndex == -1:
             currentIndex = 0
         self.styleComboBox.setCurrentIndex(currentIndex)
@@ -235,10 +235,10 @@
             currentIndex = 0
         self.languageComboBox.clear()
         
-        self.languageComboBox.addItem("English (default)", QVariant("None"))
-        self.languageComboBox.addItem(self.trUtf8('System'), QVariant("System"))
+        self.languageComboBox.addItem("English (default)", "None")
+        self.languageComboBox.addItem(self.trUtf8('System'), "System")
         for locale in localeList:
-            self.languageComboBox.addItem(locales[locale], QVariant(locale))
+            self.languageComboBox.addItem(locales[locale], locale)
         self.languageComboBox.setCurrentIndex(currentIndex)
         
     @pyqtSlot()
--- a/Preferences/ConfigurationPages/MultiProjectPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/MultiProjectPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -37,9 +37,9 @@
         Public slot to save the Project configuration.
         """
         Preferences.setMultiProject("OpenMasterAutomatically",
-            int(self.openMasterAutomaticallyCheckBox.isChecked()))
+            self.openMasterAutomaticallyCheckBox.isChecked())
         Preferences.setMultiProject("XMLTimestamp",
-            int(self.multiProjectTimestampCheckBox.isChecked()))
+            self.multiProjectTimestampCheckBox.isChecked())
         Preferences.setMultiProject("RecentNumber", 
             self.multiProjectRecentSpinBox.value())
     
--- a/Preferences/ConfigurationPages/NetworkPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/NetworkPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -9,7 +9,7 @@
 
 import os
 
-from PyQt4.QtCore import QVariant, pyqtSlot
+from PyQt4.QtCore import pyqtSlot
 from PyQt4.QtGui import QFileDialog
 
 from E4Gui.E4Completers import E4DirCompleter
@@ -34,9 +34,9 @@
         
         self.downloadDirCompleter = E4DirCompleter(self.downloadDirEdit)
         
-        self.proxyTypeCombo.addItem(self.trUtf8("Transparent HTTP"), QVariant(0))
-        self.proxyTypeCombo.addItem(self.trUtf8("Caching HTTP"), QVariant(1))
-        self.proxyTypeCombo.addItem(self.trUtf8("Socks5"), QVariant(2))
+        self.proxyTypeCombo.addItem(self.trUtf8("Transparent HTTP"), 0)
+        self.proxyTypeCombo.addItem(self.trUtf8("Caching HTTP"), 1)
+        self.proxyTypeCombo.addItem(self.trUtf8("Socks5"), 2)
         
         # set initial values
         self.downloadDirEdit.setText(Preferences.getUI("DownloadPath"))
@@ -46,7 +46,7 @@
         self.proxyGroup.setChecked(\
             Preferences.getUI("UseProxy"))
         self.proxyTypeCombo.setCurrentIndex(self.proxyTypeCombo.findData(\
-            QVariant(Preferences.getUI("ProxyType"))))
+            Preferences.getUI("ProxyType")))
         self.proxyHostEdit.setText(\
             Preferences.getUI("ProxyHost"))
         self.proxyUserEdit.setText(\
@@ -63,12 +63,12 @@
         Preferences.setUI("DownloadPath", 
             self.downloadDirEdit.text())
         Preferences.setUI("RequestDownloadFilename", 
-            int(self.requestFilenameCheckBox.isChecked()))
+            self.requestFilenameCheckBox.isChecked())
         
         Preferences.setUI("UseProxy",
-            int(self.proxyGroup.isChecked()))
+            self.proxyGroup.isChecked())
         Preferences.setUI("ProxyType", 
-            self.proxyTypeCombo.itemData(self.proxyTypeCombo.currentIndex()).toInt()[0])
+            self.proxyTypeCombo.itemData(self.proxyTypeCombo.currentIndex()))
         Preferences.setUI("ProxyHost",
             self.proxyHostEdit.text())
         Preferences.setUI("ProxyUser",
--- a/Preferences/ConfigurationPages/PluginManagerPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/PluginManagerPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -45,7 +45,7 @@
         Public slot to save the Viewmanager configuration.
         """
         Preferences.setPluginManager("ActivateExternal", 
-            int(self.activateExternalPluginsCheckBox.isChecked()))
+            self.activateExternalPluginsCheckBox.isChecked())
         Preferences.setPluginManager("DownloadPath", 
             self.downloadDirEdit.text())
     
--- a/Preferences/ConfigurationPages/ProjectBrowserPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/ProjectBrowserPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -7,7 +7,7 @@
 Module implementing the Project Browser configuration page.
 """
 
-from PyQt4.QtCore import pyqtSlot, QVariant
+from PyQt4.QtCore import pyqtSlot
 
 from E4Gui.E4Application import e4App
 
@@ -36,13 +36,13 @@
         self.__currentProjectTypeIndex = 0
         
         # set initial values
-        self.projectTypeCombo.addItem('', QVariant(''))
+        self.projectTypeCombo.addItem('', '')
         self.__projectBrowserFlags = {'' : 0}
         try:
             projectTypes = e4App().getObject("Project").getProjectTypes()
             for projectType in sorted(projectTypes.keys()):
                 self.projectTypeCombo.addItem(projectTypes[projectType], 
-                                              QVariant(projectType))
+                                              projectType)
                 self.__projectBrowserFlags[projectType] = \
                     Preferences.getProjectBrowserFlags(projectType)
         except KeyError:
@@ -65,13 +65,13 @@
             Preferences.setProjectBrowserColour(key, self.projectBrowserColours[key])
         
         Preferences.setProject("FollowEditor", 
-            int(self.followEditorCheckBox.isChecked()))
+            self.followEditorCheckBox.isChecked())
         Preferences.setProject("HideGeneratedForms", 
-            int(self.hideGeneratedCheckBox.isChecked()))
+            self.hideGeneratedCheckBox.isChecked())
         
         if self.pbGroup.isEnabled():
             self.__storeProjectBrowserFlags(\
-                self.projectTypeCombo.itemData(self.__currentProjectTypeIndex).toString())
+                self.projectTypeCombo.itemData(self.__currentProjectTypeIndex))
             for projectType, flags in self.__projectBrowserFlags.items():
                 if projectType != '':
                     Preferences.setProjectBrowserFlags(projectType, flags)
@@ -135,9 +135,9 @@
            return
         
         self.__storeProjectBrowserFlags(\
-            self.projectTypeCombo.itemData(self.__currentProjectTypeIndex).toString())
+            self.projectTypeCombo.itemData(self.__currentProjectTypeIndex))
         self.__setProjectBrowsersCheckBoxes(\
-            self.projectTypeCombo.itemData(index).toString())
+            self.projectTypeCombo.itemData(index))
         self.__currentProjectTypeIndex = index
     
 def create(dlg):
--- a/Preferences/ConfigurationPages/ProjectPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/ProjectPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -57,29 +57,29 @@
         Public slot to save the Project configuration.
         """
         Preferences.setProject("CompressedProjectFiles",
-            int(self.projectCompressedProjectFilesCheckBox.isChecked()))
+            self.projectCompressedProjectFilesCheckBox.isChecked())
         Preferences.setProject("SearchNewFilesRecursively",
-            int(self.projectSearchNewFilesRecursiveCheckBox.isChecked()))
+            self.projectSearchNewFilesRecursiveCheckBox.isChecked())
         Preferences.setProject("SearchNewFiles",
-            int(self.projectSearchNewFilesCheckBox.isChecked()))
+            self.projectSearchNewFilesCheckBox.isChecked())
         Preferences.setProject("AutoIncludeNewFiles",
-            int(self.projectAutoIncludeNewFilesCheckBox.isChecked()))
+            self.projectAutoIncludeNewFilesCheckBox.isChecked())
         Preferences.setProject("AutoLoadSession",
-            int(self.projectLoadSessionCheckBox.isChecked()))
+            self.projectLoadSessionCheckBox.isChecked())
         Preferences.setProject("AutoSaveSession",
-            int(self.projectSaveSessionCheckBox.isChecked()))
+            self.projectSaveSessionCheckBox.isChecked())
         Preferences.setProject("SessionAllBreakpoints",
-            int(self.projectSessionAllBpCheckBox.isChecked()))
+            self.projectSessionAllBpCheckBox.isChecked())
         Preferences.setProject("AutoLoadDbgProperties",
-            int(self.projectLoadDebugPropertiesCheckBox.isChecked()))
+            self.projectLoadDebugPropertiesCheckBox.isChecked())
         Preferences.setProject("AutoSaveDbgProperties",
-            int(self.projectSaveDebugPropertiesCheckBox.isChecked()))
+            self.projectSaveDebugPropertiesCheckBox.isChecked())
         Preferences.setProject("AutoCompileForms",
-            int(self.projectAutoCompileFormsCheckBox.isChecked()))
+            self.projectAutoCompileFormsCheckBox.isChecked())
         Preferences.setProject("AutoCompileResources",
-            int(self.projectAutoCompileResourcesCheckBox.isChecked()))
+            self.projectAutoCompileResourcesCheckBox.isChecked())
         Preferences.setProject("XMLTimestamp",
-            int(self.projectTimestampCheckBox.isChecked()))
+            self.projectTimestampCheckBox.isChecked())
         Preferences.setProject("RecentNumber", 
             self.projectRecentSpinBox.value())
     
--- a/Preferences/ConfigurationPages/ShellPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/ShellPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -58,23 +58,23 @@
         Preferences.setShell("LinenoWidth",
             self.shellLinenowidthSlider.value())
         Preferences.setShell("LinenoMargin",
-            int(self.shellLinenoCheckBox.isChecked()))
+            self.shellLinenoCheckBox.isChecked())
         Preferences.setShell("WrapEnabled",
-            int(self.shellWordWrapCheckBox.isChecked()))
+            self.shellWordWrapCheckBox.isChecked())
         Preferences.setShell("AutoCompletionEnabled",
-            int(self.shellACEnabledCheckBox.isChecked()))
+            self.shellACEnabledCheckBox.isChecked())
         Preferences.setShell("CallTipsEnabled",
-            int(self.shellCTEnabledCheckBox.isChecked()))
+            self.shellCTEnabledCheckBox.isChecked())
         Preferences.setShell("SyntaxHighlightingEnabled",
-            int(self.shellSyntaxHighlightingCheckBox.isChecked()))
+            self.shellSyntaxHighlightingCheckBox.isChecked())
         Preferences.setShell("MaxHistoryEntries",
             self.shellHistorySpinBox.value())
         Preferences.setShell("ShowStdOutErr", 
-            int(self.stdOutErrCheckBox.isChecked()))
+            self.stdOutErrCheckBox.isChecked())
         
         Preferences.setShell("MonospacedFont", self.monospacedFont)
         Preferences.setShell("UseMonospacedFont",
-            int(self.monospacedCheckBox.isChecked()))
+            self.monospacedCheckBox.isChecked())
         Preferences.setShell("MarginsFont", self.marginsFont)
         
     @pyqtSlot()
--- a/Preferences/ConfigurationPages/TemplatesPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/TemplatesPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -41,14 +41,14 @@
         Public slot to save the Templates configuration.
         """
         Preferences.setTemplates("AutoOpenGroups",
-            int(self.templatesAutoOpenGroupsCheckBox.isChecked()))
+            self.templatesAutoOpenGroupsCheckBox.isChecked())
         sepChar = self.templatesSeparatorCharEdit.text()
         if sepChar:
             Preferences.setTemplates("SeparatorChar", sepChar)
         Preferences.setTemplates("SingleDialog",
-            int(self.templatesSingleDialogButton.isChecked()))
+            self.templatesSingleDialogButton.isChecked())
         Preferences.setTemplates("ShowTooltip",
-            int(self.templatesToolTipCheckBox.isChecked()))
+            self.templatesToolTipCheckBox.isChecked())
     
 def create(dlg):
     """
--- a/Preferences/ConfigurationPages/TerminalPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/TerminalPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -63,21 +63,21 @@
         Preferences.setTerminal("LinenoWidth",
             self.linenowidthSlider.value())
         Preferences.setTerminal("LinenoMargin",
-            int(self.linenoCheckBox.isChecked()))
+            self.linenoCheckBox.isChecked())
         Preferences.setTerminal("SyntaxHighlightingEnabled",
-            int(self.syntaxHighlightingCheckBox.isChecked()))
+            self.syntaxHighlightingCheckBox.isChecked())
         Preferences.setTerminal("MaxHistoryEntries",
             self.historySpinBox.value())
         
         Preferences.setTerminal("MonospacedFont", self.monospacedFont)
         Preferences.setTerminal("UseMonospacedFont",
-            int(self.monospacedCheckBox.isChecked()))
+            self.monospacedCheckBox.isChecked())
         Preferences.setTerminal("MarginsFont", self.marginsFont)
         
         Preferences.setTerminal("Shell", 
             self.shellCombo.currentText())
         Preferences.setTerminal("ShellInteractive", 
-            int(self.interactiveCheckBox.isChecked()))
+            self.interactiveCheckBox.isChecked())
         
     @pyqtSlot()
     def on_monospacedFontButton_clicked(self):
--- a/Preferences/ConfigurationPages/VcsPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/VcsPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -64,17 +64,17 @@
         Public slot to save the VCS configuration.
         """
         Preferences.setVCS("AutoClose",
-            int(self.vcsAutoCloseCheckBox.isChecked()))
+            self.vcsAutoCloseCheckBox.isChecked())
         Preferences.setVCS("AutoSaveFiles",
-            int(self.vcsAutoSaveCheckBox.isChecked()))
+            self.vcsAutoSaveCheckBox.isChecked())
         Preferences.setVCS("AutoSaveProject",
-            int(self.vcsAutoSaveProjectCheckBox.isChecked()))
+            self.vcsAutoSaveProjectCheckBox.isChecked())
         Preferences.setVCS("StatusMonitorInterval",
             self.vcsStatusMonitorIntervalSpinBox.value())
         Preferences.setVCS("MonitorLocalStatus", 
-            int(self.vcsMonitorLocalStatusCheckBox.isChecked()))
+            self.vcsMonitorLocalStatusCheckBox.isChecked())
         Preferences.setVCS("AutoUpdate", 
-            int(self.autoUpdateCheckBox.isChecked()))
+            self.autoUpdateCheckBox.isChecked())
     
         for key in self.projectBrowserColours.keys():
             Preferences.setProjectBrowserColour(key, self.projectBrowserColours[key])
--- a/Preferences/ConfigurationPages/ViewmanagerPage.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ConfigurationPages/ViewmanagerPage.py	Wed Dec 30 15:40:33 2009 +0000
@@ -9,7 +9,7 @@
 
 import os
 
-from PyQt4.QtCore import pyqtSlot,  QVariant
+from PyQt4.QtCore import pyqtSlot
 from PyQt4.QtGui import QPixmap
 
 from E4Gui.E4Application import e4App
@@ -41,8 +41,7 @@
         
         keys = sorted(self.viewmanagers.keys())
         for key in keys:
-            self.windowComboBox.addItem(self.trUtf8(self.viewmanagers[key]), 
-                                        QVariant(key))
+            self.windowComboBox.addItem(self.trUtf8(self.viewmanagers[key]), key)
         currentIndex = self.windowComboBox.findText(\
             self.trUtf8(self.viewmanagers[currentVm]))
         self.windowComboBox.setCurrentIndex(currentIndex)
@@ -62,12 +61,12 @@
         Public slot to save the Viewmanager configuration.
         """
         vm = \
-            self.windowComboBox.itemData(self.windowComboBox.currentIndex()).toString()
+            self.windowComboBox.itemData(self.windowComboBox.currentIndex())
         Preferences.setViewManager(vm)
         Preferences.setUI("TabViewManagerFilenameLength",
             self.filenameLengthSpinBox.value())
         Preferences.setUI("TabViewManagerFilenameOnly",
-            int(self.filenameOnlyCheckBox.isChecked()))
+            self.filenameOnlyCheckBox.isChecked())
         Preferences.setUI("RecentNumber", 
             self.recentFilesSpinBox.value())
         
@@ -79,7 +78,7 @@
         @param index index of selected workspace view type (integer)
         """
         workspace = \
-            self.windowComboBox.itemData(self.windowComboBox.currentIndex()).toString()
+            self.windowComboBox.itemData(self.windowComboBox.currentIndex())
         pixmap = self.pluginManager.getPluginPreviewPixmap("viewmanager", workspace)
         
         self.previewPixmap.setPixmap(pixmap)
--- a/Preferences/Shortcuts.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/Shortcuts.py	Wed Dec 30 15:40:33 2009 +0000
@@ -33,12 +33,12 @@
     if act.objectName():
         accel = prefClass.settings.value(
             "Shortcuts/{0}/{1}/Accel".format(category, act.objectName()))
-        if accel.isValid():
-            act.setShortcut(QKeySequence(accel.toString()))
+        if accel is not None:
+            act.setShortcut(QKeySequence(accel))
         accel = prefClass.settings.value(
             "Shortcuts/{0}/{1}/AltAccel".format(category, act.objectName()))
-        if accel.isValid():
-            act.setAlternateShortcut(QKeySequence(accel.toString()))
+        if accel is not None:
+            act.setAlternateShortcut(QKeySequence(accel))
 
 def readShortcuts(prefClass = Prefs, helpViewer = None, pluginName = None):
     """
@@ -119,10 +119,10 @@
     if act.objectName():
         prefClass.settings.setValue(
             "Shortcuts/{0}/{1}/Accel".format(category, act.objectName()), 
-            QVariant(act.shortcut()))
+            act.shortcut())
         prefClass.settings.setValue(
             "Shortcuts/{0}/{1}/AltAccel".format(category, act.objectName()), 
-            QVariant(act.alternateShortcut()))
+            act.alternateShortcut())
 
 def saveShortcuts(prefClass = Prefs):
     """
--- a/Preferences/ShortcutsDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/ShortcutsDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -92,12 +92,12 @@
             [action.iconText(), action.shortcut().toString(), 
              action.alternateShortcut().toString()])
         itm.setIcon(0, action.icon())
-        itm.setData(0, self.objectNameRole, QVariant(action.objectName()))
-        itm.setData(0, self.noCheckRole, QVariant(noCheck))
+        itm.setData(0, self.objectNameRole, action.objectName())
+        itm.setData(0, self.noCheckRole, noCheck)
         if objectType:
-            itm.setData(0, self.objectTypeRole, QVariant(objectType))
+            itm.setData(0, self.objectTypeRole, objectType)
         else:
-            itm.setData(0, self.objectTypeRole, QVariant())
+            itm.setData(0, self.objectTypeRole, None)
         
     def populate(self):
         """
@@ -195,8 +195,8 @@
         self.__editTopItem = itm.parent()
         
         self.shortcutDialog.setKeys(QKeySequence(itm.text(1)), QKeySequence(itm.text(2)), 
-            itm.data(0, self.noCheckRole).toBool(), 
-            itm.data(0, self.objectTypeRole).toString())
+            itm.data(0, self.noCheckRole), 
+            itm.data(0, self.objectTypeRole))
         self.shortcutDialog.show()
         
     def on_shortcutsList_itemClicked(self, itm, column):
@@ -220,9 +220,9 @@
         """
         if column != 0:
             keystr = itm.text(column).title()
-            if not itm.data(0, self.noCheckRole).toBool() and \
+            if not itm.data(0, self.noCheckRole) and \
                not self.__checkShortcut(QKeySequence(keystr), 
-                                        itm.data(0, self.objectTypeRole).toString(), 
+                                        itm.data(0, self.objectTypeRole), 
                                         itm.parent()):
                 itm.setText(column, "")
             else:
@@ -273,11 +273,11 @@
                 itm = topItem.child(index)
                 
                 # 1. shall a check be performed?
-                if itm.data(0, self.noCheckRole).toBool():
+                if itm.data(0, self.noCheckRole):
                     continue
                 
                 # 2. check object type
-                itmObjectType = itm.data(0, self.objectTypeRole).toString()
+                itmObjectType = itm.data(0, self.objectTypeRole)
                 if itmObjectType and \
                    itmObjectType == objectType and \
                    topItem != origTopItem:
@@ -357,8 +357,7 @@
         """
         for index in range(category.childCount()):
             itm = category.child(index)
-##            txt = itm.text(4) # this is one more due to empty last section
-            txt = itm.data(0, self.objectNameRole).toString()
+            txt = itm.data(0, self.objectNameRole)
             for act in actions:
                 if txt == act.objectName():
                     act.setShortcut(QKeySequence(itm.text(1)))
--- a/Preferences/__init__.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Preferences/__init__.py	Wed Dec 30 15:40:33 2009 +0000
@@ -9,10 +9,9 @@
 The preferences interface consists of a class, which defines the default
 values for all configuration items and stores the actual values. These
 values are read and written to the eric4 preferences file by module
-functions. On Windows the data is located in the registry, everywhere 
-else it is stored in a file in a subdirectory of the users home directory.
-The individual configuration data is accessed by accessor functions defined
-on the module level. The module is simply imported wherever it is needed
+functions. The data is stored in a file in a subdirectory of the users home 
+directory. The individual configuration data is accessed by accessor functions 
+defined on the module level. The module is simply imported wherever it is needed
 with the statement 'import Preferences'. Do not use 'from Preferences import *'
 to import it.
 """
@@ -47,18 +46,18 @@
     
     # defaults for the debugger
     debuggerDefaults = {
-        "RemoteDbgEnabled" : 0,
+        "RemoteDbgEnabled" : False,
         "RemoteHost" : "",
         "RemoteExecution" : "",
-        "PassiveDbgEnabled" : 0,
+        "PassiveDbgEnabled" : False,
         "PassiveDbgPort" : 42424,
         "PassiveDbgType" : "Python", 
-        "AutomaticReset" : 0,
-        "Autosave" : 0,
-        "ThreeStateBreakPoints": 0,
-        "SuppressClientExit" : 0, 
-        "BreakAlways" : 0, 
-        "CustomPythonInterpreter" : 0,
+        "AutomaticReset" : False,
+        "Autosave" : False,
+        "ThreeStateBreakPoints": False,
+        "SuppressClientExit" : False, 
+        "BreakAlways" : False, 
+        "CustomPythonInterpreter" : False,
         "PythonInterpreter" : "",
         "Python3Interpreter" : "",
         "RubyInterpreter" : "/usr/bin/ruby",
@@ -68,21 +67,21 @@
         "DebugClient3" : "",
         "PythonExtensions" : ".py .pyw .ptl", # space separated list of Python extensions
         "Python3Extensions" : ".py3 .pyw3",   # space separated list of Python3 extensions
-        "DebugEnvironmentReplace" : 0,
+        "DebugEnvironmentReplace" : False,
         "DebugEnvironment" : "",
-        "PythonRedirect" : 1,
-        "PythonNoEncoding" : 0,
-        "Python3Redirect" : 1,
-        "Python3NoEncoding" : 0,
-        "RubyRedirect" : 1,
-        "ConsoleDbgEnabled" : 0,
+        "PythonRedirect" : True,
+        "PythonNoEncoding" : False,
+        "Python3Redirect" : True,
+        "Python3NoEncoding" : False,
+        "RubyRedirect" : True,
+        "ConsoleDbgEnabled" : False,
         "ConsoleDbgCommand" : "",
-        "PathTranslation" : 0,
+        "PathTranslation" : False,
         "PathTranslationRemote" : "",
         "PathTranslationLocal" : "",
         "NetworkInterface" : "127.0.0.1",
     }
-    debuggerDefaults["AllowedHosts"] = ["127.0.0.1", "0:0:0:0:0:0:0:1%0"]
+    debuggerDefaults["AllowedHosts"] = ["127.0.0.1", "::1%0"]
     
     uiDefaults = {
         "Language" : "System",
@@ -96,27 +95,27 @@
         "LayoutFileBrowserEmbedded" : 1,    # 0 = separate
                                             # 1 = embedded in debug browser
                                             # 2 = embedded in project browser
-        "BrowsersListFoldersFirst" : 1,
-        "BrowsersHideNonPublic" : 0,
-        "BrowsersListContentsByOccurrence" : 0, 
-        "LogViewerAutoRaise" : 1, 
-        "SingleApplicationMode" : 0,
-        "CaptionShowsFilename" : 1,
+        "BrowsersListFoldersFirst" : True,
+        "BrowsersHideNonPublic" : False,
+        "BrowsersListContentsByOccurrence" : False, 
+        "LogViewerAutoRaise" : True, 
+        "SingleApplicationMode" : False,
+        "CaptionShowsFilename" : True,
         "CaptionFilenameLength" : 100,
         "RecentNumber" : 9, 
-        "TopLeftByLeft" : 1, 
-        "BottomLeftByLeft" : 0, 
-        "TopRightByRight" : 1, 
-        "BottomRightByRight" : 0, 
+        "TopLeftByLeft" : True, 
+        "BottomLeftByLeft" : False, 
+        "TopRightByRight" : True, 
+        "BottomRightByRight" : False, 
         "TabViewManagerFilenameLength" : 40,
-        "TabViewManagerFilenameOnly" : 1, 
+        "TabViewManagerFilenameOnly" : True, 
         # the order in ViewProfiles is Project-Viewer, File-Browser,
         # Debug-Viewer, Python-Shell, Log-Viewer, Task-Viewer,
         # Templates-Viewer, Multiproject-Viewer, Terminal
         "ViewProfiles" : {
             "edit"  : [
                         # visibility (0)
-                        [ 1,  0,  0,  1,  1,  1,  1,  1, 1],
+                        [ True,  False,  False,  True,  True,  True,  True,  True, True],
                         # saved state main window with dock windows (1)
                         "",
                         # saved states floating windows (2)
@@ -126,14 +125,14 @@
                         # saved state main window with toolbox windows (4)
                         "", 
                         # visibility of the toolboxes (5)
-                        [ 1,  1], 
+                        [ True,  True], 
                         # saved states of the splitters and sidebars of the 
                         # sidebars layout (6)
                         ["", "", "", ""], 
                       ],
             "debug" : [
                         # visibility (0)
-                        [ 0,  0,  1,  1,  1,  1,  0,  0, 1], 
+                        [ False,  False,  True,  True,  True,  True,  False,  False, True], 
                         # saved state main window with dock windows (1)
                         "",
                         # saved states floating windows (2)
@@ -143,22 +142,22 @@
                         # saved state main window with toolbox windows (4)
                         "", 
                         # visibility of the toolboxes (5)
-                        [ 0,  1], 
+                        [ False,  True], 
                         # saved states of the splitters and sidebars of the 
                         # sidebars layout (6)
                         ["", "", "", ""], 
                       ],
         },
         "ToolbarManagerState" : QtCore.QByteArray(), 
-        "ShowSplash" : 1,
-        "SingleCloseButton" : 1, 
+        "ShowSplash" : True,
+        "SingleCloseButton" : True, 
         
         "PerformVersionCheck" : 4,      # 0 = off
                                         # 1 = at startup
                                         # 2 = daily
                                         # 3 = weekly
                                         # 4 = monthly
-        "UseProxy" : 0,
+        "UseProxy" : False,
         "ProxyHost" : "",
         "ProxyPort" : 80,
         "ProxyUser" : "",
@@ -181,8 +180,8 @@
                                     # 4 = last global session
         
         "DownloadPath" : "", 
-        "RequestDownloadFilename" : 1, 
-        "CheckErrorLog" : 1, 
+        "RequestDownloadFilename" : True, 
+        "CheckErrorLog" : True, 
         
         "LogStdErrColour" : QtGui.QColor(QtCore.Qt.red),
     }
@@ -198,66 +197,66 @@
         "TabWidth" : 4,
         "IndentWidth" : 4,
         "LinenoWidth" : 4,
-        "IndentationGuides" : 1,
-        "UnifiedMargins" : 0, 
-        "LinenoMargin" : 1,
-        "FoldingMargin" : 1,
+        "IndentationGuides" : True,
+        "UnifiedMargins" : False, 
+        "LinenoMargin" : True,
+        "FoldingMargin" : True,
         "FoldingStyle" : 1,
-        "TabForIndentation" : 0,
-        "TabIndents" : 1,
-        "ConvertTabsOnLoad" : 0,
-        "AutomaticEOLConversion" : 1,
-        "ShowWhitespace" : 0,
-        "ShowEOL" : 0,
-        "UseMonospacedFont" : 0,
-        "WrapLongLines" : 0,
+        "TabForIndentation" : False,
+        "TabIndents" : True,
+        "ConvertTabsOnLoad" : False,
+        "AutomaticEOLConversion" : True,
+        "ShowWhitespace" : False,
+        "ShowEOL" : False,
+        "UseMonospacedFont" : False,
+        "WrapLongLines" : False,
         "WarnFilesize" : 512,
-        "ClearBreaksOnClose" : 1,
-        "StripTrailingWhitespace" : 0, 
-        "CommentColumn0" : 1, 
+        "ClearBreaksOnClose" : True,
+        "StripTrailingWhitespace" : False, 
+        "CommentColumn0" : True, 
         
         "EdgeMode" : Qsci.QsciScintilla.EdgeNone,
         "EdgeColumn" : 80,
         
-        "AutoIndentation" : 1,
-        "BraceHighlighting" : 1,
-        "CreateBackupFile" : 0,
-        "CaretLineVisible" : 0,
+        "AutoIndentation" : True,
+        "BraceHighlighting" : True,
+        "CreateBackupFile" : False,
+        "CaretLineVisible" : False,
         "CaretWidth" : 1,
-        "ColourizeSelText" : 0,
-        "CustomSelectionColours" : 0,
-        "ExtendSelectionToEol" : 0,
+        "ColourizeSelText" : False,
+        "CustomSelectionColours" : False,
+        "ExtendSelectionToEol" : False,
         
-        "AutoPrepareAPIs" : 0,
+        "AutoPrepareAPIs" : False,
         
-        "AutoCompletionEnabled" : 0,
-        "AutoCompletionCaseSensitivity" : 1,
-        "AutoCompletionReplaceWord" : 0,
-        "AutoCompletionShowSingle" : 0,
+        "AutoCompletionEnabled" : False,
+        "AutoCompletionCaseSensitivity" : True,
+        "AutoCompletionReplaceWord" : False,
+        "AutoCompletionShowSingle" : False,
         "AutoCompletionSource" : Qsci.QsciScintilla.AcsDocument,
         "AutoCompletionThreshold" : 2,
-        "AutoCompletionFillups" : 0,
+        "AutoCompletionFillups" : False,
         
-        "CallTipsEnabled" : 0,
+        "CallTipsEnabled" : False,
         "CallTipsVisible" : 0,
         "CallTipsStyle"   : Qsci.QsciScintilla.CallTipsNoContext,
-        "CallTipsScintillaOnFail" : 0,  # show QScintilla calltips, if plugin fails
+        "CallTipsScintillaOnFail" : False,  # show QScintilla calltips, if plugin fails
         
-        "AutoCheckSyntax" : 1,
-        "AutoReopen" : 0,
+        "AutoCheckSyntax" : True,
+        "AutoReopen" : False,
         
-        "MiniContextMenu" : 0,
+        "MiniContextMenu" : False,
         
-        "SearchMarkersEnabled" : 1, 
-        "QuickSearchMarkersEnabled" : 1, 
-        "MarkOccurrencesEnabled" : 1, 
+        "SearchMarkersEnabled" : True, 
+        "QuickSearchMarkersEnabled" : True, 
+        "MarkOccurrencesEnabled" : True, 
         "MarkOccurrencesTimeout" : 500,     # 500 milliseconds
-        "AdvancedEncodingDetection" : 1, 
+        "AdvancedEncodingDetection" : True, 
         
-        "SpellCheckingEnabled" : 1, 
-        "AutoSpellCheckingEnabled" : 1, 
+        "SpellCheckingEnabled" : True, 
+        "AutoSpellCheckingEnabled" : True, 
         "AutoSpellCheckChunkSize" : 30, 
-        "SpellCheckStringsOnly" : 1, 
+        "SpellCheckStringsOnly" : True, 
         "SpellCheckingMinWordSize" : 3, 
         "SpellCheckingDefaultLanguage" : "en", 
         "SpellCheckingPersonalWordList" : "", 
@@ -268,81 +267,81 @@
         "DefaultSaveFilter" : "",
         
         # All (most) lexers
-        "AllFoldCompact" : 1,
+        "AllFoldCompact" : True,
         
         # Bash specifics
-        "BashFoldComment" : 1,
+        "BashFoldComment" : True,
         
         # CMake specifics
-        "CMakeFoldAtElse" : 0,
+        "CMakeFoldAtElse" : False,
         
         # C++ specifics
-        "CppCaseInsensitiveKeywords" : 0, 
-        "CppFoldComment" : 1,
-        "CppFoldPreprocessor" : 0,
-        "CppFoldAtElse" : 0,
-        "CppIndentOpeningBrace" : 0,
-        "CppIndentClosingBrace" : 0,
-        "CppDollarsAllowed" : 1, 
+        "CppCaseInsensitiveKeywords" : False, 
+        "CppFoldComment" : True,
+        "CppFoldPreprocessor" : False,
+        "CppFoldAtElse" : False,
+        "CppIndentOpeningBrace" : False,
+        "CppIndentClosingBrace" : False,
+        "CppDollarsAllowed" : True, 
         
         # CSS specifics
-        "CssFoldComment" : 1,
+        "CssFoldComment" : True,
         
         # D specifics
-        "DFoldComment" : 1,
-        "DFoldAtElse" : 0,
-        "DIndentOpeningBrace" : 0,
-        "DIndentClosingBrace" : 0,
+        "DFoldComment" : True,
+        "DFoldAtElse" : False,
+        "DIndentOpeningBrace" : False,
+        "DIndentClosingBrace" : False,
         
         # HTML specifics
-        "HtmlFoldPreprocessor" : 0,
-        "HtmlFoldScriptComments" : 0, 
-        "HtmlFoldScriptHeredocs" : 0, 
-        "HtmlCaseSensitiveTags" : 0,
+        "HtmlFoldPreprocessor" : False,
+        "HtmlFoldScriptComments" : False, 
+        "HtmlFoldScriptHeredocs" : False, 
+        "HtmlCaseSensitiveTags" : False,
         
         # Pascal specifics
-        "PascalFoldComment" : 1, 
-        "PascalFoldPreprocessor" : 0, 
-        "PascalSmartHighlighting" : 1, 
+        "PascalFoldComment" : True, 
+        "PascalFoldPreprocessor" : False, 
+        "PascalSmartHighlighting" : True, 
         
         # Perl specifics
-        "PerlFoldComment" : 1,
-        "PerlFoldPackages" : 1, 
-        "PerlFoldPODBlocks" : 1, 
+        "PerlFoldComment" : True,
+        "PerlFoldPackages" : True, 
+        "PerlFoldPODBlocks" : True, 
         
         # PostScript specifics
-        "PostScriptTokenize" : 0, 
+        "PostScriptTokenize" : False, 
         "PostScriptLevel" : 3, 
-        "PostScriptFoldAtElse" : 0, 
+        "PostScriptFoldAtElse" : False, 
         
         # Povray specifics
-        "PovFoldComment" : 1,
-        "PovFoldDirectives" : 0,
+        "PovFoldComment" : True,
+        "PovFoldDirectives" : False,
         
         # Python specifics
-        "PythonBadIndentation" : 1,
-        "PythonFoldComment" : 1,
-        "PythonFoldString" : 1,
-        "PythonAutoIndent" : 1,
-        "PythonAllowV2Unicode" : 1, 
-        "PythonAllowV3Binary" : 1, 
-        "PythonAllowV3Bytes" : 1, 
+        "PythonBadIndentation" : True,
+        "PythonFoldComment" : True,
+        "PythonFoldString" : True,
+        "PythonAutoIndent" : True,
+        "PythonAllowV2Unicode" : True, 
+        "PythonAllowV3Binary" : True, 
+        "PythonAllowV3Bytes" : True, 
         
         # SQL specifics
-        "SqlFoldComment" : 1,
-        "SqlBackslashEscapes" : 0,
+        "SqlFoldComment" : True,
+        "SqlBackslashEscapes" : False,
         
         # VHDL specifics
-        "VHDLFoldComment" : 1,
-        "VHDLFoldAtElse" : 1,
-        "VHDLFoldAtBegin" : 1, 
-        "VHDLFoldAtParenthesis" : 1, 
+        "VHDLFoldComment" : True,
+        "VHDLFoldAtElse" : True,
+        "VHDLFoldAtBegin" : True, 
+        "VHDLFoldAtParenthesis" : True, 
         
         # XML specifics
-        "XMLStyleScripts" : 1, 
+        "XMLStyleScripts" : True, 
         
         # YAML specifics
-        "YAMLFoldComment" : 0, 
+        "YAMLFoldComment" : False, 
     }
     
     if isWindowsPlatform():
@@ -377,39 +376,39 @@
     }
     
     editorTypingDefaults = {
-        "Python/EnabledTypingAids"  : 1, 
-        "Python/InsertClosingBrace" : 1,
-        "Python/IndentBrace"        : 1,
-        "Python/SkipBrace"          : 1,
-        "Python/InsertQuote"        : 1,
-        "Python/DedentElse"         : 1,
-        "Python/DedentExcept"       : 1,
-        "Python/Py24StyleTry"       : 1, 
-        "Python/InsertImport"       : 1,
-        "Python/InsertSelf"         : 1,
-        "Python/InsertBlank"        : 1,
-        "Python/ColonDetection"     : 1,
-        "Python/DedentDef"          : 0, 
+        "Python/EnabledTypingAids"  : True, 
+        "Python/InsertClosingBrace" : True,
+        "Python/IndentBrace"        : True,
+        "Python/SkipBrace"          : True,
+        "Python/InsertQuote"        : True,
+        "Python/DedentElse"         : True,
+        "Python/DedentExcept"       : True,
+        "Python/Py24StyleTry"       : True, 
+        "Python/InsertImport"       : True,
+        "Python/InsertSelf"         : True,
+        "Python/InsertBlank"        : True,
+        "Python/ColonDetection"     : True,
+        "Python/DedentDef"          : False, 
         
-        "Ruby/EnabledTypingAids"    : 1, 
-        "Ruby/InsertClosingBrace"   : 1,
-        "Ruby/IndentBrace"          : 1,
-        "Ruby/SkipBrace"            : 1,
-        "Ruby/InsertQuote"          : 1,
-        "Ruby/InsertBlank"          : 1,
-        "Ruby/InsertHereDoc"        : 1, 
-        "Ruby/InsertInlineDoc"      : 1, 
+        "Ruby/EnabledTypingAids"    : True, 
+        "Ruby/InsertClosingBrace"   : True,
+        "Ruby/IndentBrace"          : True,
+        "Ruby/SkipBrace"            : True,
+        "Ruby/InsertQuote"          : True,
+        "Ruby/InsertBlank"          : True,
+        "Ruby/InsertHereDoc"        : True, 
+        "Ruby/InsertInlineDoc"      : True, 
     }
     
     editorExporterDefaults = {
-        "HTML/WYSIWYG"          : 1, 
-        "HTML/Folding"          : 0, 
-        "HTML/OnlyStylesUsed"   : 0, 
-        "HTML/FullPathAsTitle"  : 0, 
-        "HTML/UseTabs"          : 0, 
+        "HTML/WYSIWYG"          : True, 
+        "HTML/Folding"          : False, 
+        "HTML/OnlyStylesUsed"   : False, 
+        "HTML/FullPathAsTitle"  : False, 
+        "HTML/UseTabs"          : False, 
         
-        "RTF/WYSIWYG"           : 1, 
-        "RTF/UseTabs"           : 0, 
+        "RTF/WYSIWYG"           : True, 
+        "RTF/UseTabs"           : False, 
         "RTF/Font"              : "Courier New,10,-1,5,50,0,0,0,0,0", 
         
         "PDF/Magnification"     : 0, 
@@ -420,15 +419,15 @@
         "PDF/MarginTop"         : 36, 
         "PDF/MarginBottom"      : 36, 
         
-        "TeX/OnlyStylesUsed"    : 0, 
-        "TeX/FullPathAsTitle"   : 0, 
+        "TeX/OnlyStylesUsed"    : False, 
+        "TeX/FullPathAsTitle"   : False, 
     }
     
     # defaults for the printer settings
     printerDefaults = {
         "PrinterName" : "",
-        "ColorMode" : 1,
-        "FirstPageFirst" : 1,
+        "ColorMode" : True,
+        "FirstPageFirst" : True,
         "Magnification" : -3,
         "Orientation" : 0,
         "PageSize": 0,
@@ -441,27 +440,27 @@
     
     # defaults for the project settings
     projectDefaults = {
-        "SearchNewFiles" : 0,
-        "SearchNewFilesRecursively" : 0,
-        "AutoIncludeNewFiles" : 0,
-        "AutoLoadSession" : 0,
-        "AutoSaveSession" : 0,
-        "SessionAllBreakpoints" : 0,
-        "CompressedProjectFiles" : 0,
-        "XMLTimestamp" : 1,
-        "AutoCompileForms" : 0,
-        "AutoCompileResources" : 0,
-        "AutoLoadDbgProperties" : 0,
-        "AutoSaveDbgProperties" : 0,
-        "HideGeneratedForms" : 0,
-        "FollowEditor" : 1, 
+        "SearchNewFiles" : False,
+        "SearchNewFilesRecursively" : False,
+        "AutoIncludeNewFiles" : False,
+        "AutoLoadSession" : False,
+        "AutoSaveSession" : False,
+        "SessionAllBreakpoints" : False,
+        "CompressedProjectFiles" : False,
+        "XMLTimestamp" : True,
+        "AutoCompileForms" : False,
+        "AutoCompileResources" : False,
+        "AutoLoadDbgProperties" : False,
+        "AutoSaveDbgProperties" : False,
+        "HideGeneratedForms" : False,
+        "FollowEditor" : True, 
         "RecentNumber" : 9, 
     }
     
     # defaults for the multi project settings
     multiProjectDefaults = {
-        "OpenMasterAutomatically" : 1, 
-        "XMLTimestamp" : 1,
+        "OpenMasterAutomatically" : True, 
+        "XMLTimestamp" : True,
         "RecentNumber" : 9, 
     }
     
@@ -530,24 +529,24 @@
         "Qt4DocDir" : "",
         "PyQt4DocDir" : "",
         "PySideDocDir" : "", 
-        "SingleHelpWindow" : 1,
-        "SaveGeometry" : 1,
+        "SingleHelpWindow" : True,
+        "SaveGeometry" : True,
         "HelpViewerState" : QtCore.QByteArray(), 
-        "WebSearchSuggestions" : 1, 
+        "WebSearchSuggestions" : True, 
         "WebSearchEngine" : "Google", 
         "WebSearchKeywords" : [],   # array of two tuples (keyword, search engine name)
-        "DiskCacheEnabled" : 1, 
+        "DiskCacheEnabled" : True, 
         "DiskCacheSize" : 50,       # 50 MB
         "AcceptCookies" : 2,        # CookieJar.AcceptOnlyFromSitesNavigatedTo
         "KeepCookiesUntil" : 0,     # CookieJar.KeepUntilExpire
-        "FilterTrackingCookies" : 1, 
-        "PrintBackgrounds" : 0, 
+        "FilterTrackingCookies" : True, 
+        "PrintBackgrounds" : False, 
         "StartupBehavior" : 0,      # show home page
         "HomePage": "pyrc:home",
         "HistoryLimit" : 30, 
         "DefaultScheme" : "file://", 
-        "SavePasswords" : 0, 
-        "AdBlockEnabled" : 0, 
+        "SavePasswords" : False, 
+        "AdBlockEnabled" : False, 
         "AdBlockSubscriptions" : [], 
     }
     
@@ -584,14 +583,14 @@
     # defaults for the shell settings
     shellDefaults = {
         "LinenoWidth" : 4,
-        "LinenoMargin" : 1,
-        "AutoCompletionEnabled" : 1,
-        "CallTipsEnabled" : 1,
-        "WrapEnabled" : 1,
+        "LinenoMargin" : True,
+        "AutoCompletionEnabled" : True,
+        "CallTipsEnabled" : True,
+        "WrapEnabled" : True,
         "MaxHistoryEntries" : 100,
-        "SyntaxHighlightingEnabled" : 1,
-        "ShowStdOutErr" : 1, 
-        "UseMonospacedFont" : 0,
+        "SyntaxHighlightingEnabled" : True,
+        "ShowStdOutErr" : True, 
+        "UseMonospacedFont" : False,
         "MonospacedFont" : "Courier,10,-1,5,50,0,0,0,0,0", 
         "MarginsFont" : "Sans Serif,10,-1,5,50,0,0,0,0,0",
     }
@@ -599,12 +598,12 @@
     # defaults for the terminal settings
     terminalDefaults = {
         "LinenoWidth" : 4,
-        "LinenoMargin" : 1,
+        "LinenoMargin" : True,
         "MaxHistoryEntries" : 100,
-        "SyntaxHighlightingEnabled" : 1,
+        "SyntaxHighlightingEnabled" : True,
         "Shell" : "", 
-        "ShellInteractive" : 1, 
-        "UseMonospacedFont" : 0,
+        "ShellInteractive" : True, 
+        "UseMonospacedFont" : False,
         "MonospacedFont" : "Courier,10,-1,5,50,0,0,0,0,0", 
         "MarginsFont" : "Sans Serif,10,-1,5,50,0,0,0,0,0",
     }
@@ -629,22 +628,22 @@
         "Email" : "",
         "MailServer" : "",
         "Signature" : "",
-        "MailServerAuthentication" : 0,
+        "MailServerAuthentication" : False,
         "MailServerUser" : "",
         "MailServerPassword" : "",
-        "MailServerUseTLS" : 0, 
+        "MailServerUseTLS" : False, 
         "MailServerPort" : 25, 
-        "UseSystemEmailClient" : 0, 
+        "UseSystemEmailClient" : False, 
     }
     
     # defaults for vcs related stuff
     vcsDefaults = {
-        "AutoClose" : 0,
-        "AutoSaveFiles" : 1,
-        "AutoSaveProject" : 1,
-        "AutoUpdate" : 0, 
+        "AutoClose" : False,
+        "AutoSaveFiles" : True,
+        "AutoSaveProject" : True,
+        "AutoUpdate" : False, 
         "StatusMonitorInterval" : 30,
-        "MonitorLocalStatus" : 0, 
+        "MonitorLocalStatus" : False, 
     }
     
     # defaults for tasks related stuff
@@ -660,15 +659,15 @@
     
     # defaults for templates related stuff
     templatesDefaults = {
-        "AutoOpenGroups" : 1,
-        "SingleDialog"   : 0,
-        "ShowTooltip"    : 0,
+        "AutoOpenGroups" : True,
+        "SingleDialog"   : False,
+        "ShowTooltip"    : False,
         "SeparatorChar"  : "$",
     }
     
     # defaults for plugin manager related stuff
     pluginManagerDefaults = {
-        "ActivateExternal" : 1,
+        "ActivateExternal" : True,
         "DownloadPath" : ""
     }
     
@@ -687,7 +686,7 @@
         "HelpViewerGeometry" : QtCore.QByteArray(),
         "IconEditorGeometry" : QtCore.QByteArray(),
         "MainGeometry"       : QtCore.QByteArray(),
-        "MainMaximized"      : 0, 
+        "MainMaximized"      : False, 
     }
 
     # if true, revert layouts to factory defaults
@@ -701,25 +700,23 @@
     @return list of tuples defing the tool groups
     """
     toolGroups = []
-    groups = prefClass.settings.value("Toolgroups/Groups", 
-        QtCore.QVariant(0)).toInt()[0]
+    groups = int(prefClass.settings.value("Toolgroups/Groups", 0))
     for groupIndex in range(groups):
         groupName = \
-            prefClass.settings.value("Toolgroups/%02d/Name" % groupIndex).toString()
+            prefClass.settings.value("Toolgroups/%02d/Name" % groupIndex)
         group = [groupName, []]
-        items = prefClass.settings.value("Toolgroups/%02d/Items" % groupIndex, 
-            QtCore.QVariant(0)).toInt()[0]
+        items = int(prefClass.settings.value("Toolgroups/%02d/Items" % groupIndex, 0))
         for ind in range(items):
             menutext = prefClass.settings.value(\
-                "Toolgroups/%02d/%02d/Menutext" % (groupIndex, ind)).toString()
+                "Toolgroups/%02d/%02d/Menutext" % (groupIndex, ind))
             icon = prefClass.settings.value(\
-                "Toolgroups/%02d/%02d/Icon" % (groupIndex, ind)).toString()
+                "Toolgroups/%02d/%02d/Icon" % (groupIndex, ind))
             executable = prefClass.settings.value(\
-                "Toolgroups/%02d/%02d/Executable" % (groupIndex, ind)).toString()
+                "Toolgroups/%02d/%02d/Executable" % (groupIndex, ind))
             arguments = prefClass.settings.value(\
-                "Toolgroups/%02d/%02d/Arguments" % (groupIndex, ind)).toString()
+                "Toolgroups/%02d/%02d/Arguments" % (groupIndex, ind))
             redirect = prefClass.settings.value(\
-                "Toolgroups/%02d/%02d/Redirect" % (groupIndex, ind)).toString()
+                "Toolgroups/%02d/%02d/Redirect" % (groupIndex, ind))
             
             if menutext:
                 if menutext == '--':
@@ -741,8 +738,7 @@
                     }
                     group[1].append(tool)
         toolGroups.append(group)
-    currentGroup = prefClass.settings.value("Toolgroups/Current Group", 
-        QtCore.QVariant(-1)).toInt()[0]
+    currentGroup = int(prefClass.settings.value("Toolgroups/Current Group", -1))
     return toolGroups, currentGroup
     
 def saveToolGroups(toolGroups, currentGroup, prefClass = Prefs):
@@ -757,34 +753,26 @@
     prefClass.settings.remove("Toolgroups")
     
     # second step, write the tool group entries
-    prefClass.settings.setValue("Toolgroups/Groups", QtCore.QVariant(len(toolGroups)))
+    prefClass.settings.setValue("Toolgroups/Groups", len(toolGroups))
     groupIndex = 0
     for group in toolGroups:
-        prefClass.settings.setValue("Toolgroups/%02d/Name" % groupIndex,
-            QtCore.QVariant(group[0]))
-        prefClass.settings.setValue("Toolgroups/%02d/Items" % groupIndex,
-            QtCore.QVariant(len(group[1])))
+        prefClass.settings.setValue("Toolgroups/%02d/Name" % groupIndex, group[0])
+        prefClass.settings.setValue("Toolgroups/%02d/Items" % groupIndex, len(group[1]))
         ind = 0
         for tool in group[1]:
             prefClass.settings.setValue(\
-                "Toolgroups/%02d/%02d/Menutext" % (groupIndex, ind), 
-                QtCore.QVariant(tool['menutext']))
+                "Toolgroups/%02d/%02d/Menutext" % (groupIndex, ind), tool['menutext'])
             prefClass.settings.setValue(\
-                "Toolgroups/%02d/%02d/Icon" % (groupIndex, ind), 
-                QtCore.QVariant(tool['icon']))
+                "Toolgroups/%02d/%02d/Icon" % (groupIndex, ind), tool['icon'])
             prefClass.settings.setValue(\
-                "Toolgroups/%02d/%02d/Executable" % (groupIndex, ind), 
-                QtCore.QVariant(tool['executable']))
+                "Toolgroups/%02d/%02d/Executable" % (groupIndex, ind), tool['executable'])
             prefClass.settings.setValue(\
-                "Toolgroups/%02d/%02d/Arguments" % (groupIndex, ind), 
-                QtCore.QVariant(tool['arguments']))
+                "Toolgroups/%02d/%02d/Arguments" % (groupIndex, ind), tool['arguments'])
             prefClass.settings.setValue(\
-                "Toolgroups/%02d/%02d/Redirect" % (groupIndex, ind), 
-                QtCore.QVariant(tool['redirect']))
+                "Toolgroups/%02d/%02d/Redirect" % (groupIndex, ind), tool['redirect'])
             ind += 1
         groupIndex += 1
-    prefClass.settings.setValue(\
-        "Toolgroups/Current Group", QtCore.QVariant(currentGroup))
+    prefClass.settings.setValue("Toolgroups/Current Group", currentGroup)
     
 def initPreferences():
     """
@@ -808,7 +796,7 @@
     
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("General/Configured", QtCore.QVariant(1))
+    prefClass.settings.setValue("General/Configured", True)
     initPreferences()
     
 def exportPreferences(prefClass = Prefs):
@@ -853,7 +841,7 @@
     @param prefClass preferences class used as the storage area
     @return flag indicating the configured status (boolean)
     """
-    return prefClass.settings.value("General/Configured", QtCore.QVariant(0)).toInt()[0]
+    return toBool(prefClass.settings.value("General/Configured", False))
     
 def initRecentSettings():
     """
@@ -874,9 +862,9 @@
     @return a tuple defing the variables filter
     """
     localsFilter = eval(prefClass.settings.value("Variables/LocalsFilter", 
-        QtCore.QVariant(prefClass.varDefaults["LocalsFilter"])).toString())
+        prefClass.varDefaults["LocalsFilter"]))
     globalsFilter = eval(prefClass.settings.value("Variables/GlobalsFilter", 
-        QtCore.QVariant(prefClass.varDefaults["GlobalsFilter"])).toString())
+        prefClass.varDefaults["GlobalsFilter"]))
     return (localsFilter, globalsFilter)
     
 def setVarFilters(filters, prefClass = Prefs):
@@ -885,10 +873,8 @@
     
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Variables/LocalsFilter",
-        QtCore.QVariant(filters[0]))
-    prefClass.settings.setValue("Variables/GlobalsFilter",
-        QtCore.QVariant(filters[1]))
+    prefClass.settings.setValue("Variables/LocalsFilter", unicode(filters[0]))
+    prefClass.settings.setValue("Variables/GlobalsFilter", unicode(filters[1]))
     
 def getDebugger(key, prefClass = Prefs):
     """
@@ -899,7 +885,7 @@
     @return the requested debugger setting
     """
     if key in ["RemoteDbgEnabled", "PassiveDbgEnabled",
-                "PassiveDbgPort", "CustomPythonInterpreter",
+                "CustomPythonInterpreter",
                 "AutomaticReset", "DebugEnvironmentReplace",
                 "PythonRedirect", "PythonNoEncoding", 
                 "Python3Redirect", "Python3NoEncoding", 
@@ -908,23 +894,17 @@
                 "Autosave", "ThreeStateBreakPoints", 
                 "SuppressClientExit", "BreakAlways", 
               ]:
-        return prefClass.settings.value("Debugger/" + key,
-            QtCore.QVariant(prefClass.debuggerDefaults[key])).toInt()[0]
-    
-    if key in ["RemoteHost", "RemoteExecution", "PythonInterpreter",
-                "Python3Interpreter", "RubyInterpreter", 
-                "DebugClient", "DebugClientType",
-                "DebugClient3", "DebugClientType3",
-                "DebugEnvironment", "ConsoleDbgCommand",
-                "PathTranslationRemote", "PathTranslationLocal",
-                "NetworkInterface", "PassiveDbgType", 
-                "PythonExtensions", "Python3Extensions"]:
-        return prefClass.settings.value("Debugger/" + key,
-            QtCore.QVariant(prefClass.debuggerDefaults[key])).toString()
-    
-    if key in ["AllowedHosts"]:
-        return prefClass.settings.value("Debugger/" + key,
-            QtCore.QVariant(prefClass.debuggerDefaults[key])).toStringList()
+        return toBool(prefClass.settings.value("Debugger/" + key,
+            prefClass.debuggerDefaults[key]))
+    elif key in ["PassiveDbgPort"]:
+        return int(
+            prefClass.settings.value("Debugger/" + key, prefClass.debuggerDefaults[key]))
+    elif key in ["AllowedHosts"]:
+        return toList(
+            prefClass.settings.value("Debugger/" + key, prefClass.debuggerDefaults[key]))
+    else:
+        return \
+            prefClass.settings.value("Debugger/" + key, prefClass.debuggerDefaults[key])
     
 def setDebugger(key, value, prefClass = Prefs):
     """
@@ -934,7 +914,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Debugger/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Debugger/" + key, value)
 
 def getPython(key, prefClass = Prefs):
     """
@@ -972,8 +952,7 @@
     @return the language for the UI
     """
     lang = \
-        prefClass.settings.value("UI/Language",
-            QtCore.QVariant(prefClass.uiDefaults["Language"])).toString()
+        prefClass.settings.value("UI/Language", prefClass.uiDefaults["Language"])
     if lang == "None" or lang == "" or lang is None:
         return None
     else:
@@ -987,9 +966,9 @@
     @param prefClass preferences class used as the storage area
     """
     if lang is None:
-        prefClass.settings.setValue("UI/Language", QtCore.QVariant("None"))
+        prefClass.settings.setValue("UI/Language", "None")
     else:
-        prefClass.settings.setValue("UI/Language", QtCore.QVariant(lang))
+        prefClass.settings.setValue("UI/Language", lang)
 
 def getUILayout(prefClass = Prefs):
     """
@@ -1001,13 +980,11 @@
     """
     layout = (\
         prefClass.settings.value("UI/LayoutType", 
-            QtCore.QVariant(prefClass.uiDefaults["LayoutType"])).toString(), 
-        prefClass.settings.value("UI/LayoutShellEmbedded", 
-            QtCore.QVariant(prefClass.uiDefaults["LayoutShellEmbedded"]))\
-            .toInt()[0], 
-        prefClass.settings.value("UI/LayoutFileBrowserEmbedded", 
-            QtCore.QVariant(prefClass.uiDefaults["LayoutFileBrowserEmbedded"]))\
-            .toInt()[0], 
+            prefClass.uiDefaults["LayoutType"]), 
+        toBool(prefClass.settings.value("UI/LayoutShellEmbedded", 
+            prefClass.uiDefaults["LayoutShellEmbedded"])), 
+        toBool(prefClass.settings.value("UI/LayoutFileBrowserEmbedded", 
+            prefClass.uiDefaults["LayoutFileBrowserEmbedded"])), 
     )
     return layout
     
@@ -1018,12 +995,9 @@
     @param layout the layout type
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("UI/LayoutType", 
-        QtCore.QVariant(layout[0]))
-    prefClass.settings.setValue("UI/LayoutShellEmbedded", 
-        QtCore.QVariant(layout[1]))
-    prefClass.settings.setValue("UI/LayoutFileBrowserEmbedded", 
-        QtCore.QVariant(layout[2]))
+    prefClass.settings.setValue("UI/LayoutType", layout[0])
+    prefClass.settings.setValue("UI/LayoutShellEmbedded", layout[1])
+    prefClass.settings.setValue("UI/LayoutFileBrowserEmbedded", layout[2])
 
 def getViewManager(prefClass = Prefs):
     """
@@ -1033,7 +1007,7 @@
     @return the viewmanager type
     """
     return prefClass.settings.value("UI/ViewManager",
-        QtCore.QVariant(prefClass.uiDefaults["ViewManager"])).toString()
+        prefClass.uiDefaults["ViewManager"])
     
 def setViewManager(vm, prefClass = Prefs):
     """
@@ -1042,7 +1016,7 @@
     @param vm the viewmanager type
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("UI/ViewManager", QtCore.QVariant(vm))
+    prefClass.settings.setValue("UI/ViewManager", vm)
 
 def getUI(key, prefClass = Prefs):
     """
@@ -1054,41 +1028,34 @@
     """
     if key in ["BrowsersListFoldersFirst", "BrowsersHideNonPublic",
                 "BrowsersListContentsByOccurrence", "LogViewerAutoRaise", 
-                "SingleApplicationMode", "TabViewManagerFilenameLength",
-                "TabViewManagerFilenameOnly", 
-                "CaptionShowsFilename", "CaptionFilenameLength",
-                "RecentNumber", "ShowSplash", 
-                "PerformVersionCheck", "SingleCloseButton", 
-                "UseProxy", "ProxyPort", "ProxyType", 
+                "SingleApplicationMode", "TabViewManagerFilenameOnly", 
+                "CaptionShowsFilename", "RecentNumber", "ShowSplash", 
+                "SingleCloseButton", "UseProxy", 
                 "TopLeftByLeft", "BottomLeftByLeft", 
                 "TopRightByRight", "BottomRightByRight", 
-                "OpenOnStartup", "RequestDownloadFilename", 
+                "RequestDownloadFilename", 
                 "LayoutShellEmbedded", "LayoutFileBrowserEmbedded", 
                 "CheckErrorLog"]:
-        return prefClass.settings.value("UI/" + key,
-            QtCore.QVariant(prefClass.uiDefaults[key])).toInt()[0]
-    if key in ["Style", "StyleSheet", 
-                "ProxyHost", "ProxyUser", 
-                "PluginRepositoryUrl5", "DownloadPath"]:
-        return prefClass.settings.value("UI/" + key,
-            QtCore.QVariant(prefClass.uiDefaults[key])).toString()
-    if key == "ProxyPassword":
+        return toBool(prefClass.settings.value("UI/" + key,
+            prefClass.uiDefaults[key]))
+    elif key in ["TabViewManagerFilenameLength", "CaptionFilenameLength",
+                 "ProxyPort", "ProxyType", "OpenOnStartup", 
+                 "PerformVersionCheck", ]:
+        return int(prefClass.settings.value("UI/" + key,
+            prefClass.uiDefaults[key]))
+    elif key == "ProxyPassword":
         from Utilities import pwDecode
-        return pwDecode(prefClass.settings.value("UI/" + key,
-            QtCore.QVariant(prefClass.uiDefaults[key])).toString())
-    if key in ["VersionsUrls5"]:
-        return prefClass.settings.value("UI/" + key, 
-            QtCore.QVariant(prefClass.uiDefaults[key])).toStringList()
-    if key in ["LogStdErrColour"]:
+        return pwDecode(prefClass.settings.value("UI/" + key, prefClass.uiDefaults[key]))
+    elif key in ["LogStdErrColour"]:
         col = prefClass.settings.value("UI/" + key)
-        if col.isValid():
-            return QtGui.QColor(col.toString())
+        if col is not None:
+            return QtGui.QColor(col)
         else:
             return prefClass.uiDefaults[key]
-    if key == "ViewProfiles":
-        v = prefClass.settings.value("UI/ViewProfiles")
-        if v.isValid():
-            viewProfiles = eval(v.toString())
+    elif key == "ViewProfiles":
+        profiles = prefClass.settings.value("UI/ViewProfiles")
+        if profiles is not None:
+            viewProfiles = eval(profiles)
             for name in ["edit", "debug"]:
                 # adjust entries for individual windows
                 vpLength = len(viewProfiles[name][0])
@@ -1109,12 +1076,16 @@
         else:
             viewProfiles = prefClass.uiDefaults["ViewProfiles"]
         return viewProfiles
-    if key == "ToolbarManagerState":
-        v = prefClass.settings.value("UI/ToolbarManagerState")
-        if v.isValid():
-            return v.toByteArray()
+    elif key == "ToolbarManagerState":
+        toolbarManagerState = prefClass.settings.value("UI/ToolbarManagerState")
+        if toolbarManagerState is not None:
+            return toolbarManagerState
         else:
             return prefClass.uiDefaults["ToolbarManagerState"]
+    elif key in ["VersionsUrls5"]:
+        return toList(prefClass.settings.value("UI/" + key, prefClass.uiDefaults[key]))
+    else:
+        return prefClass.settings.value("UI/" + key, prefClass.uiDefaults[key])
     
 def setUI(key, value, prefClass = Prefs):
     """
@@ -1125,15 +1096,14 @@
     @param prefClass preferences class used as the storage area
     """
     if key == "ViewProfiles":
-        prefClass.settings.setValue("UI/" + key, QtCore.QVariant(unicode(value)))
+        prefClass.settings.setValue("UI/" + key, unicode(value))
     elif key == "LogStdErrColour":
-        prefClass.settings.setValue("UI/" + key, QtCore.QVariant(value.name()))
+        prefClass.settings.setValue("UI/" + key, value.name())
     elif key == "ProxyPassword":
         from Utilities import pwEncode
-        prefClass.settings.setValue(
-            "UI/" + key, QtCore.QVariant(pwEncode(value)))
+        prefClass.settings.setValue("UI/" + key, pwEncode(value))
     else:
-        prefClass.settings.setValue("UI/" + key, QtCore.QVariant(value))
+        prefClass.settings.setValue("UI/" + key, value)
     
 def getIcons(key, prefClass = Prefs):
     """
@@ -1144,8 +1114,8 @@
     @return the requested Icons setting
     """
     dirlist = prefClass.settings.value("UI/Icons/" + key)
-    if dirlist.isValid():
-        return dirlist.toStringList()
+    if dirlist is not None:
+        return dirlist
     else:
         return prefClass.iconsDefaults[key]
     
@@ -1157,7 +1127,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("UI/Icons/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("UI/Icons/" + key, value)
     
 def getEditor(key, prefClass = Prefs):
     """
@@ -1170,11 +1140,18 @@
     if key in ["DefaultEncoding", "DefaultOpenFilter", "DefaultSaveFilter", 
                "SpellCheckingDefaultLanguage", "SpellCheckingPersonalWordList", 
                "SpellCheckingPersonalExcludeList"]:
-        return prefClass.settings.value("Editor/" + key,
-            QtCore.QVariant(prefClass.editorDefaults[key])).toString()
+        return prefClass.settings.value("Editor/" + key, prefClass.editorDefaults[key])
+    elif key in ["AutosaveInterval", "TabWidth", "IndentWidth", "LinenoWidth", 
+                 "FoldingStyle", "WarnFilesize", "EdgeMode", "EdgeColumn", 
+                 "CaretWidth", "AutoCompletionSource", "AutoCompletionThreshold", 
+                 "CallTipsVisible", "CallTipsStyle", "MarkOccurrencesTimeout", 
+                 "AutoSpellCheckChunkSize", "SpellCheckingMinWordSize", 
+                 "PostScriptLevel", "EOLMode"]:
+        return int(prefClass.settings.value("Editor/" + key, 
+            prefClass.editorDefaults[key]))
     else:
-        return prefClass.settings.value("Editor/" + key,
-            QtCore.QVariant(prefClass.editorDefaults[key])).toInt()[0]
+        return toBool(prefClass.settings.value("Editor/" + key, 
+            prefClass.editorDefaults[key]))
     
 def setEditor(key, value, prefClass = Prefs):
     """
@@ -1184,7 +1161,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Editor/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Editor/" + key, value)
     
 def getEditorColour(key, prefClass = Prefs):
     """
@@ -1195,8 +1172,8 @@
     @return the requested editor colour
     """
     col = prefClass.settings.value("Editor/Colour/" + key)
-    if col.isValid():
-        return QtGui.QColor(col.toString())
+    if col is not None:
+        return QtGui.QColor(col)
     else:
         return prefClass.editorColourDefaults[key]
     
@@ -1208,7 +1185,7 @@
     @param value the colour to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Editor/Colour/" + key, QtCore.QVariant(value.name()))
+    prefClass.settings.setValue("Editor/Colour/" + key, value.name())
     
 def getEditorOtherFonts(key, prefClass = Prefs):
     """
@@ -1220,7 +1197,7 @@
     """
     f = QtGui.QFont()
     f.fromString(prefClass.settings.value("Editor/Other Fonts/" + key,
-        QtCore.QVariant(prefClass.editorOtherFontsDefaults[key])).toString())
+        prefClass.editorOtherFontsDefaults[key]))
     return f
     
 def setEditorOtherFonts(key, font, prefClass = Prefs):
@@ -1231,8 +1208,7 @@
     @param font the font to be set (QFont)
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Editor/Other Fonts/" + key,
-        QtCore.QVariant(font.toString()))
+    prefClass.settings.setValue("Editor/Other Fonts/" + key, font.toString())
     
 def getEditorAPI(key, prefClass = Prefs):
     """
@@ -1242,9 +1218,8 @@
     @param prefClass preferences class used as the storage area
     @return the requested list of api files (list of strings)
     """
-    ap = prefClass.settings.value("Editor/APIs/" + key)
-    if ap.isValid():
-        apis = ap.toStringList()
+    apis = prefClass.settings.value("Editor/APIs/" + key)
+    if apis is not None:
         if len(apis) and apis[0] == "":
             return []
         else:
@@ -1260,7 +1235,7 @@
     @param apilist the list of api files (list of strings)
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Editor/APIs/" + key, QtCore.QVariant(apilist))
+    prefClass.settings.setValue("Editor/APIs/" + key, apilist)
     
 def getEditorLexerAssocs(prefClass = Prefs):
     """
@@ -1287,8 +1262,7 @@
             else:
                 defaultValue = ""
             editorLexerAssoc[key] = \
-                prefClass.settings.value("Editor/LexerAssociations/" + key,
-                    QtCore.QVariant(defaultValue)).toString()
+                prefClass.settings.value("Editor/LexerAssociations/" + key, defaultValue)
         if len(editorLexerAssoc.keys()) < len(editorLexerAssocDefaults.keys()):
             # new default lexer associations
             for key in editorLexerAssocDefaults.keys():
@@ -1311,8 +1285,7 @@
         if key not in assocs:
             prefClass.settings.remove("Editor/LexerAssociations/" + key)
     for key in assocs:
-        prefClass.settings.setValue("Editor/LexerAssociations/" + key,
-            QtCore.QVariant(assocs[key]))
+        prefClass.settings.setValue("Editor/LexerAssociations/" + key, assocs[key])
     
 def getEditorLexerAssoc(filename, prefClass = Prefs):
     """
@@ -1336,8 +1309,8 @@
     @param prefClass preferences class used as the storage area
     @return the requested editor setting
     """
-    return prefClass.settings.value("Editor/Typing/" + key,
-        QtCore.QVariant(prefClass.editorTypingDefaults[key])).toInt()[0]
+    return toBool(prefClass.settings.value("Editor/Typing/" + key,
+        prefClass.editorTypingDefaults[key]))
     
 def setEditorTyping(key, value, prefClass = Prefs):
     """
@@ -1347,7 +1320,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Editor/Typing/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Editor/Typing/" + key, value)
     
 def getEditorExporter(key, prefClass = Prefs):
     """
@@ -1360,14 +1333,20 @@
     if key in ["RTF/Font"]:
         f = QtGui.QFont()
         f.fromString(prefClass.settings.value("Editor/Exporters/" + key,
-            QtCore.QVariant(prefClass.editorExporterDefaults[key])).toString())
+            prefClass.editorExporterDefaults[key]))
         return f
-    elif key in ["PDF/Font", "PDF/PageSize"]:
-        return prefClass.settings.value("Editor/Exporters/" + key, 
-            QtCore.QVariant(prefClass.editorExporterDefaults[key])).toString()
+    elif key in ["HTML/WYSIWYG", "HTML/Folding", "HTML/OnlyStylesUsed", 
+                 "HTML/FullPathAsTitle", "HTML/UseTabs", "RTF/WYSIWYG", 
+                 "RTF/UseTabs", "TeX/OnlyStylesUsed", "TeX/FullPathAsTitle"]:
+        return toBool(prefClass.settings.value("Editor/Exporters/" + key,
+            prefClass.editorExporterDefaults[key]))
+    elif key in ["PDF/Magnification", "PDF/MarginLeft", "PDF/MarginRight", 
+                 "PDF/MarginTop", "PDF/MarginBottom"]:
+        return int(prefClass.settings.value("Editor/Exporters/" + key,
+            prefClass.editorExporterDefaults[key]))
     else:
         return prefClass.settings.value("Editor/Exporters/" + key,
-            QtCore.QVariant(prefClass.editorExporterDefaults[key])).toInt()[0]
+            prefClass.editorExporterDefaults[key])
 
 def setEditorExporter(key, value, prefClass = Prefs):
     """
@@ -1378,10 +1357,9 @@
     @param prefClass preferences class used as the storage area
     """
     if key in ["RTF/Font"]:
-        v = value.toString()
+        prefClass.settings.setValue("Editor/Exporters/" + key, value.toString())
     else:
-        v = value
-    prefClass.settings.setValue("Editor/Exporters/" + key, QtCore.QVariant(v))
+        prefClass.settings.setValue("Editor/Exporters/" + key, value)
     
 def getPrinter(key, prefClass = Prefs):
     """
@@ -1391,21 +1369,23 @@
     @param prefClass preferences class used as the storage area
     @return the requested printer setting
     """
-    if key in ["ColorMode", "FirstPageFirst", "Magnification", 
-                "Orientation", "PageSize"]:
-        return prefClass.settings.value("Printer/" + key,
-            QtCore.QVariant(prefClass.printerDefaults[key])).toInt()[0]
-    if key in ["LeftMargin", "RightMargin", "TopMargin", "BottomMargin"]:
-        return prefClass.settings.value("Printer/" + key,
-            QtCore.QVariant(prefClass.printerDefaults[key])).toDouble()[0]
-    if key in ["PrinterName"]:
-        return prefClass.settings.value("Printer/" + key,
-            QtCore.QVariant(prefClass.printerDefaults[key])).toString()
-    if key in ["HeaderFont"]:
+    if key in ["ColorMode", "FirstPageFirst"]:
+        return toBool(prefClass.settings.value("Printer/" + key,
+            prefClass.printerDefaults[key]))
+    elif key in ["Magnification", "Orientation", "PageSize"]:
+        return int(prefClass.settings.value("Printer/" + key,
+            prefClass.printerDefaults[key]))
+    elif key in ["LeftMargin", "RightMargin", "TopMargin", "BottomMargin"]:
+        return float(prefClass.settings.value("Printer/" + key,
+            prefClass.printerDefaults[key]))
+    elif key in ["HeaderFont"]:
         f = QtGui.QFont()
         f.fromString(prefClass.settings.value("Printer/" + key,
-            QtCore.QVariant(prefClass.printerDefaults[key])).toString())
+            prefClass.printerDefaults[key]))
         return f
+    else:
+        return prefClass.settings.value("Printer/" + key,
+            prefClass.printerDefaults[key])
 
 def setPrinter(key, value, prefClass = Prefs):
     """
@@ -1416,10 +1396,9 @@
     @param prefClass preferences class used as the storage area
     """
     if key in ["HeaderFont"]:
-        v = value.toString()
+        prefClass.settings.setValue("Printer/" + key, value.toString())
     else:
-        v = value
-    prefClass.settings.setValue("Printer/" + key, QtCore.QVariant(v))
+        prefClass.settings.setValue("Printer/" + key, value)
 
 def getShell(key, prefClass = Prefs):
     """
@@ -1432,11 +1411,14 @@
     if key in ["MonospacedFont", "MarginsFont"]:
         f = QtGui.QFont()
         f.fromString(prefClass.settings.value("Shell/" + key,
-            QtCore.QVariant(prefClass.shellDefaults[key])).toString())
+            prefClass.shellDefaults[key]))
         return f
+    elif key in ["LinenoWidth", "MaxHistoryEntries"]:
+        return int(prefClass.settings.value("Shell/" + key,
+            prefClass.shellDefaults[key]))
     else:
-        return prefClass.settings.value("Shell/" + key,
-            QtCore.QVariant(prefClass.shellDefaults[key])).toInt()[0]
+        return toBool(prefClass.settings.value("Shell/" + key,
+            prefClass.shellDefaults[key]))
 
 def setShell(key, value, prefClass = Prefs):
     """
@@ -1447,10 +1429,9 @@
     @param prefClass preferences class used as the storage area
     """
     if key in ["MonospacedFont", "MarginsFont"]:
-        prefClass.settings.setValue("Shell/" + key,
-            QtCore.QVariant(value.toString()))
+        prefClass.settings.setValue("Shell/" + key, value.toString())
     else:
-        prefClass.settings.setValue("Shell/" + key, QtCore.QVariant(value))
+        prefClass.settings.setValue("Shell/" + key, value)
 
 def getTerminal(key, prefClass = Prefs):
     """
@@ -1462,15 +1443,18 @@
     """
     if key in ["Shell"]:
         return prefClass.settings.value("Terminal/" + key,
-            QtCore.QVariant(prefClass.terminalDefaults[key])).toString()
+            prefClass.terminalDefaults[key])
     elif key in ["MonospacedFont", "MarginsFont"]:
         f = QtGui.QFont()
         f.fromString(prefClass.settings.value("Terminal/" + key,
-            QtCore.QVariant(prefClass.terminalDefaults[key])).toString())
+            prefClass.terminalDefaults[key]))
         return f
+    elif key in ["LinenoWidth", "MaxHistoryEntries"]:
+        return int(prefClass.settings.value("Terminal/" + key,
+            prefClass.terminalDefaults[key]))
     else:
-        return prefClass.settings.value("Terminal/" + key,
-            QtCore.QVariant(prefClass.terminalDefaults[key])).toInt()[0]
+        return toBool(prefClass.settings.value("Terminal/" + key,
+            prefClass.terminalDefaults[key]))
 
 def setTerminal(key, value, prefClass = Prefs):
     """
@@ -1481,10 +1465,9 @@
     @param prefClass preferences class used as the storage area
     """
     if key in ["MonospacedFont", "MarginsFont"]:
-        prefClass.settings.setValue("Terminal/" + key,
-            QtCore.QVariant(value.toString()))
+        prefClass.settings.setValue("Terminal/" + key, value.toString())
     else:
-        prefClass.settings.setValue("Terminal/" + key, QtCore.QVariant(value))
+        prefClass.settings.setValue("Terminal/" + key, value)
 
 def getProject(key, prefClass = Prefs):
     """
@@ -1494,8 +1477,12 @@
     @param prefClass preferences class used as the storage area
     @return the requested project setting
     """
-    return prefClass.settings.value("Project/" + key,
-        QtCore.QVariant(prefClass.projectDefaults[key])).toInt()[0]
+    if key in ["RecentNumber"]:
+        return int(prefClass.settings.value("Project/" + key,
+            prefClass.projectDefaults[key]))
+    else:
+        return toBool(prefClass.settings.value("Project/" + key,
+            prefClass.projectDefaults[key]))
     
 def setProject(key, value, prefClass = Prefs):
     """
@@ -1505,7 +1492,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Project/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Project/" + key, value)
     
 def getProjectBrowserFlags(key, prefClass = Prefs):
     """
@@ -1520,8 +1507,7 @@
     except KeyError:
         default = AllBrowsersFlag
     
-    return prefClass.settings.value("Project/BrowserFlags/" + key,
-        QtCore.QVariant(default)).toInt()[0]
+    return int(prefClass.settings.value("Project/BrowserFlags/" + key, default))
     
 def setProjectBrowserFlags(key, value, prefClass = Prefs):
     """
@@ -1531,7 +1517,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Project/BrowserFlags/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Project/BrowserFlags/" + key, value)
     
 def setProjectBrowserFlagsDefault(key, value, prefClass = Prefs):
     """
@@ -1561,8 +1547,8 @@
     @return the requested project browser colour
     """
     col = prefClass.settings.value("Project/Colour/" + key)
-    if col.isValid():
-        return QtGui.QColor(col.toString())
+    if col is not None:
+        return QtGui.QColor(col)
     else:
         return prefClass.projectBrowserColourDefaults[key]
     
@@ -1574,7 +1560,7 @@
     @param value the colour to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Project/Colour/" + key, QtCore.QVariant(value.name()))
+    prefClass.settings.setValue("Project/Colour/" + key, value.name())
     
 def getMultiProject(key, prefClass = Prefs):
     """
@@ -1584,8 +1570,12 @@
     @param prefClass preferences class used as the storage area
     @return the requested project setting
     """
-    return prefClass.settings.value("MultiProject/" + key,
-        QtCore.QVariant(prefClass.multiProjectDefaults[key])).toInt()[0]
+    if key in ["RecentNumber"]:
+        return int(prefClass.settings.value("MultiProject/" + key,
+            prefClass.multiProjectDefaults[key]))
+    else:
+        return toBool(prefClass.settings.value("MultiProject/" + key,
+            prefClass.multiProjectDefaults[key]))
     
 def setMultiProject(key, value, prefClass = Prefs):
     """
@@ -1595,7 +1585,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("MultiProject/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("MultiProject/" + key, value)
     
 def getQt4DocDir(prefClass = Prefs):
     """
@@ -1605,7 +1595,7 @@
     @return the requested Qt4DocDir setting (string)
     """
     s = prefClass.settings.value("Help/Qt4DocDir",
-        QtCore.QVariant(prefClass.helpDefaults["Qt4DocDir"])).toString()
+        prefClass.helpDefaults["Qt4DocDir"])
     if s == "":
         return os.getenv("QT4DOCDIR", "")
     else:
@@ -1619,44 +1609,44 @@
     @param prefClass preferences class used as the storage area
     @return the requested help setting
     """
-    if key in ["CustomViewer", \
-               "PythonDocDir", "QtDocDir", "Qt4DocDir", "PyQt4DocDir", 
-               "UserStyleSheet", "WebSearchEngine", "HomePage", "PySideDocDir", 
-               "DefaultScheme"]:
-        return prefClass.settings.value("Help/" + key,
-            QtCore.QVariant(prefClass.helpDefaults[key])).toString()
-    elif key in ["AdBlockSubscriptions"]:
-        return prefClass.settings.value("Help/" + key,
-            QtCore.QVariant(prefClass.helpDefaults[key])).toStringList()
-    elif key in ["StandardFont", "FixedFont"]:
+    if key in ["StandardFont", "FixedFont"]:
         f = QtGui.QFont()
         f.fromString(prefClass.settings.value("Help/" + key,
-            QtCore.QVariant(prefClass.helpDefaults[key])).toString())
+            prefClass.helpDefaults[key]))
         return f
     elif key in ["SaveUrlColor"]:
         col = prefClass.settings.value("Help/" + key)
-        if col.isValid():
-            return QtGui.QColor(col.toString())
+        if col is not None:
+            return QtGui.QColor(col)
         else:
             return prefClass.helpDefaults[key]
-    elif key in ["HelpViewerState"]:
-        return prefClass.settings.value("Help/" + key,
-            QtCore.QVariant(prefClass.helpDefaults[key])).toByteArray()
     elif key in ["WebSearchKeywords"]:
         # return a list of tuples of (keyword, engine name)
         keywords = []
         size = prefClass.settings.beginReadArray("Help/" + key);
         for index in range(size):
             prefClass.settings.setArrayIndex(index)
-            keyword = prefClass.settings.value("Keyword").toString()
-            engineName = prefClass.settings.value("Engine").toString()
+            keyword = prefClass.settings.value("Keyword")
+            engineName = prefClass.settings.value("Engine")
             keywords.append((keyword, engineName))
         prefClass.settings.endArray()
         return keywords
+    elif key in ["HelpViewerType", "DiskCacheSize", "AcceptCookies", 
+                 "KeepCookiesUntil", "StartupBehavior", "HistoryLimit"]:
+        return int(prefClass.settings.value("Help/" + key, 
+            prefClass.helpDefaults[key]))
+    elif key in ["SingleHelpWindow", "SaveGeometry", "WebSearchSuggestions", 
+                 "DiskCacheEnabled", "FilterTrackingCookies", "PrintBackgrounds", 
+                 "SavePasswords", "AdBlockEnabled", "AutoLoadImages", 
+                 "JavaEnabled", "JavaScriptEnabled", "JavaScriptCanOpenWindows", 
+                 "JavaScriptCanAccessClipboard", "PluginsEnabled"]:
+        return toBool(prefClass.settings.value("Help/" + key, 
+            prefClass.helpDefaults[key]))
+    elif key in ["AdBlockSubscriptions"]:
+        return toList(prefClass.settings.value("Help/" + key, 
+            prefClass.helpDefaults[key]))
     else:
-        # default is integer value
-        return prefClass.settings.value("Help/" + key,
-            QtCore.QVariant(prefClass.helpDefaults[key])).toInt()[0]
+        return prefClass.settings.value("Help/" + key, prefClass.helpDefaults[key])
     
 def setHelp(key, value, prefClass = Prefs):
     """
@@ -1667,22 +1657,21 @@
     @param prefClass preferences class used as the storage area
     """
     if key in ["StandardFont", "FixedFont"]:
-        prefClass.settings.setValue("Help/" + key,
-            QtCore.QVariant(value.toString()))
+        prefClass.settings.setValue("Help/" + key, value.toString())
     elif key == "SaveUrlColor":
-        prefClass.settings.setValue("Help/" + key, QtCore.QVariant(value.name()))
+        prefClass.settings.setValue("Help/" + key, value.name())
     elif key == "WebSearchKeywords":
         # value is list of tuples of (keyword, engine name)
         prefClass.settings.beginWriteArray("Help/" + key, len(value))
         index = 0
         for v in value:
             prefClass.settings.setArrayIndex(index)
-            prefClass.settings.setValue("Keyword", QtCore.QVariant(v[0]))
-            prefClass.settings.setValue("Engine", QtCore.QVariant(v[1]))
+            prefClass.settings.setValue("Keyword", v[0])
+            prefClass.settings.setValue("Engine", v[1])
             index += 1
         prefClass.settings.endArray()
     else:
-        prefClass.settings.setValue("Help/" + key, QtCore.QVariant(value))
+        prefClass.settings.setValue("Help/" + key, value)
     
 def getSystem(key, prefClass = Prefs):
     """
@@ -1695,7 +1684,7 @@
     from Utilities import supportedCodecs
     if key in ["StringEncoding", "IOEncoding"]:
         encoding = prefClass.settings.value("System/" + key, 
-            QtCore.QVariant(prefClass.sysDefaults[key])).toString()
+            prefClass.sysDefaults[key])
         if encoding not in supportedCodecs:
             encoding = prefClass.sysDefaults[key]
         return encoding
@@ -1708,7 +1697,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("System/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("System/" + key, value)
     
 def getQt4TranslationsDir(prefClass = Prefs):
     """
@@ -1718,7 +1707,7 @@
     @return the requested Qt4TranslationsDir setting (string)
     """
     s = prefClass.settings.value("Qt/Qt4TranslationsDir", 
-        QtCore.QVariant(prefClass.qtDefaults["Qt4TranslationsDir"])).toString()
+        prefClass.qtDefaults["Qt4TranslationsDir"])
     if s == "":
         return os.getenv("QT4TRANSLATIONSDIR", "")
     else:
@@ -1734,15 +1723,8 @@
     """
     if key == "Qt4TranslationsDir":
         return getQt4TranslationsDir(prefClass)
-    elif key in ["QtToolsPrefix4", "QtToolsPostfix4"]: 
-        return prefClass.settings.value("Qt/" + key, 
-            QtCore.QVariant(prefClass.qtDefaults[key])).toString()
-    elif key in ["Qt4Dir"]:
-        return prefClass.settings.value("Qt/" + key, 
-            QtCore.QVariant(prefClass.qtDefaults[key])).toString()
     else: 
-        return prefClass.settings.value("Qt/" + key, 
-            QtCore.QVariant(prefClass.qtDefaults[key])).toInt()[0]
+        return prefClass.settings.value("Qt/" + key, prefClass.qtDefaults[key])
     
 def setQt(key, value, prefClass = Prefs):
     """
@@ -1752,7 +1734,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Qt/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Qt/" + key, value)
     
 def getCorba(key, prefClass = Prefs):
     """
@@ -1762,8 +1744,7 @@
     @param prefClass preferences class used as the storage area
     @return the requested corba setting
     """
-    return prefClass.settings.value("Corba/" + key,
-        QtCore.QVariant(prefClass.corbaDefaults[key])).toString()
+    return prefClass.settings.value("Corba/" + key, prefClass.corbaDefaults[key])
     
 def setCorba(key, value, prefClass = Prefs):
     """
@@ -1773,7 +1754,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Corba/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Corba/" + key, value)
     
 def getUser(key, prefClass = Prefs):
     """
@@ -1783,17 +1764,19 @@
     @param prefClass preferences class used as the storage area
     @return the requested user setting
     """
-    if key in ["MailServerAuthentication", "MailServerUseTLS", 
-               "MailServerPort", "UseSystemEmailClient"]:
-        return prefClass.settings.value("User/" + key,
-            QtCore.QVariant(prefClass.userDefaults[key])).toInt()[0]
-    elif key == "MailServerPassword":
+    if key == "MailServerPassword":
         from Utilities import pwDecode
         return pwDecode(prefClass.settings.value("User/" + key,
-            QtCore.QVariant(prefClass.userDefaults[key])).toString())
+            prefClass.userDefaults[key]))
+    elif key in ["MailServerPort"]:
+        return int(prefClass.settings.value("User/" + key, 
+            prefClass.userDefaults[key]))
+    elif key in ["MailServerAuthentication", "MailServerUseTLS", 
+                 "UseSystemEmailClient"]:
+        return toBool(prefClass.settings.value("User/" + key, 
+            prefClass.userDefaults[key]))
     else:
-        return prefClass.settings.value("User/" + key,
-            QtCore.QVariant(prefClass.userDefaults[key])).toString()
+        return prefClass.settings.value("User/" + key, prefClass.userDefaults[key])
     
 def setUser(key, value, prefClass = Prefs):
     """
@@ -1806,9 +1789,9 @@
     if key == "MailServerPassword":
         from Utilities import pwEncode
         prefClass.settings.setValue(
-            "User/" + key, QtCore.QVariant(pwEncode(value)))
+            "User/" + key, pwEncode(value))
     else:
-        prefClass.settings.setValue("User/" + key, QtCore.QVariant(value))
+        prefClass.settings.setValue("User/" + key, value)
     
 def getVCS(key, prefClass = Prefs):
     """
@@ -1818,8 +1801,10 @@
     @param prefClass preferences class used as the storage area
     @return the requested user setting
     """
-    return prefClass.settings.value("VCS/" + key,
-        QtCore.QVariant(prefClass.vcsDefaults[key])).toInt()[0]
+    if key in ["StatusMonitorInterval"]:
+        return int(prefClass.settings.value("VCS/" + key, prefClass.vcsDefaults[key]))
+    else:
+        return toBool(prefClass.settings.value("VCS/" + key, prefClass.vcsDefaults[key]))
     
 def setVCS(key, value, prefClass = Prefs):
     """
@@ -1829,7 +1814,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("VCS/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("VCS/" + key, value)
     
 def getTasks(key, prefClass = Prefs):
     """
@@ -1842,13 +1827,13 @@
     if key in ["TasksColour", "TasksBugfixColour", 
                "TasksBgColour", "TasksProjectBgColour"]:
         col = prefClass.settings.value("Tasks/" + key)
-        if col.isValid():
-            return QtGui.QColor(col.toString())
+        if col is not None:
+            return QtGui.QColor(col)
         else:
             return prefClass.tasksDefaults[key]
     else:
         return prefClass.settings.value("Tasks/" + key,
-            QtCore.QVariant(prefClass.tasksDefaults[key])).toString()
+            prefClass.tasksDefaults[key])
     
 def setTasks(key, value, prefClass = Prefs):
     """
@@ -1860,9 +1845,9 @@
     """
     if key in ["TasksColour", "TasksBugfixColour",
                "TasksBgColour", "TasksProjectBgColour"]:
-        prefClass.settings.setValue("Tasks/" + key, QtCore.QVariant(value.name()))
+        prefClass.settings.setValue("Tasks/" + key, value.name())
     else:
-        prefClass.settings.setValue("Tasks/" + key, QtCore.QVariant(value))
+        prefClass.settings.setValue("Tasks/" + key, value)
     
 def getTemplates(key, prefClass = Prefs):
     """
@@ -1874,10 +1859,10 @@
     """
     if key in ["SeparatorChar"]:
         return prefClass.settings.value("Templates/" + key,
-            QtCore.QVariant(prefClass.templatesDefaults[key])).toString()
+            prefClass.templatesDefaults[key])
     else:
-        return prefClass.settings.value("Templates/" + key,
-            QtCore.QVariant(prefClass.templatesDefaults[key])).toInt()[0]
+        return toBool(prefClass.settings.value("Templates/" + key,
+            prefClass.templatesDefaults[key]))
     
 def setTemplates(key, value, prefClass = Prefs):
     """
@@ -1887,7 +1872,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Templates/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("Templates/" + key, value)
     
 def getPluginManager(key, prefClass = Prefs):
     """
@@ -1897,12 +1882,12 @@
     @param prefClass preferences class used as the storage area
     @return the requested user setting
     """
-    if key in ["ActivateExternal"]:
+    if key in ["DownloadPath"]:
         return prefClass.settings.value("PluginManager/" + key,
-            QtCore.QVariant(prefClass.pluginManagerDefaults[key])).toInt()[0]
+            prefClass.pluginManagerDefaults[key])
     else:
-        return prefClass.settings.value("PluginManager/" + key,
-            QtCore.QVariant(prefClass.pluginManagerDefaults[key])).toString()
+        return toBool(prefClass.settings.value("PluginManager/" + key,
+            prefClass.pluginManagerDefaults[key]))
     
 def setPluginManager(key, value, prefClass = Prefs):
     """
@@ -1912,7 +1897,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("PluginManager/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("PluginManager/" + key, value)
     
 def getGraphics(key, prefClass = Prefs):
     """
@@ -1923,13 +1908,18 @@
     @return the requested user setting
     """
     if key in ["Font"]:
-        f = QtGui.QFont()
-        f.fromString(prefClass.settings.value("Graphics/" + key,
-            QtCore.QVariant(prefClass.graphicsDefaults[key])).toString())
-        return f
+        font = prefClass.settings.value("Graphics/" + key,
+            prefClass.graphicsDefaults[key])
+        if isinstance(font, QtGui.QFont):
+            # workaround for an old bug in eric4 < 4.4
+            return font
+        else:
+            f = QtGui.QFont()
+            f.fromString(font)
+            return f
     else:
         return prefClass.settings.value("Graphics/" + key,
-            QtCore.QVariant(prefClass.graphicsDefaults[key])).toString()
+            prefClass.graphicsDefaults[key])
     
 def setGraphics(key, value, prefClass = Prefs):
     """
@@ -1939,7 +1929,10 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("Graphics/" + key, QtCore.QVariant(value))
+    if key in ["Font"]:
+        prefClass.settings.setValue("Graphics/" + key, value.toString())
+    else:
+        prefClass.settings.setValue("Graphics/" + key, value)
     
 def getIconEditor(key, prefClass = Prefs):
     """
@@ -1949,12 +1942,8 @@
     @param prefClass preferences class used as the storage area
     @return the requested user setting
     """
-    if key in ["IconEditorState"]:
-        return prefClass.settings.value("IconEditor/" + key,
-            QtCore.QVariant(prefClass.iconEditorDefaults[key])).toByteArray()
-    else:
-        return prefClass.settings.value("IconEditor/" + key,
-            QtCore.QVariant(prefClass.iconEditorDefaults[key])).toString()
+    return prefClass.settings.value("IconEditor/" + key,
+        prefClass.iconEditorDefaults[key])
     
 def setIconEditor(key, value, prefClass = Prefs):
     """
@@ -1964,7 +1953,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    prefClass.settings.setValue("IconEditor/" + key, QtCore.QVariant(value))
+    prefClass.settings.setValue("IconEditor/" + key, value)
     
 def getGeometry(key, prefClass = Prefs):
     """
@@ -1975,12 +1964,12 @@
     @return the requested geometry setting
     """
     if key in ["MainMaximized"]:
-        return prefClass.settings.value("Geometry/" + key,
-            QtCore.QVariant(prefClass.geometryDefaults[key])).toInt()[0]
+        return toBool(prefClass.settings.value("Geometry/" + key,
+            prefClass.geometryDefaults[key]))
     else:
         v = prefClass.settings.value("Geometry/" + key)
-        if v.isValid():
-            return v.toByteArray()
+        if v is not None:
+            return v
         else:
             return prefClass.geometryDefaults[key]
 
@@ -1993,13 +1982,13 @@
     @param prefClass preferences class used as the storage area
     """
     if key in ["MainMaximized"]:
-        prefClass.settings.setValue("Geometry/" + key, QtCore.QVariant(value))
+        prefClass.settings.setValue("Geometry/" + key, value)
     else:
         if prefClass.resetLayout:
             v = prefClass.geometryDefaults[key]
         else:
             v = value
-        prefClass.settings.setValue("Geometry/" + key, QtCore.QVariant(v))
+        prefClass.settings.setValue("Geometry/" + key, v)
 
 def resetLayout(prefClass = Prefs):
     """
@@ -2025,7 +2014,33 @@
     if prefClass.resetLayout:
         for key in prefClass.geometryDefaults.keys():
             prefClass.settings.setValue("Geometry/" + key, 
-                QtCore.QVariant(prefClass.geometryDefaults[key]))
+                prefClass.geometryDefaults[key])
+
+def toBool(value):
+    """
+    Module function to convert a value to bool.
+    
+    @param value value to be converted
+    @return converted data
+    """
+    if value in ["true", "1", "True"]:
+        return True
+    elif value in ["false", "0", "False"]:
+        return False
+    else:
+        return bool(value)
+
+def toList(value):
+    """
+    Module function to convert a value to a list.
+    
+    @param value value to be converted
+    @return converted data
+    """
+    if value is None:
+        return []
+    else:
+        return value
     
 initPreferences()
 initRecentSettings()
--- a/Project/AddDirectoryDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Project/AddDirectoryDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -44,32 +44,22 @@
         self.startdir = startdir
         self.on_filterComboBox_highlighted('(*.py)') # enable all dialog elements
         if filter == 'source':  # it is a source file
-            self.filterComboBox.addItem(self.trUtf8("Source Files"), 
-                                        QVariant("SOURCES"))
+            self.filterComboBox.addItem(self.trUtf8("Source Files"), "SOURCES")
         elif filter == 'form':
-            self.filterComboBox.addItem(self.trUtf8("Forms Files"), 
-                                        QVariant("FORMS"))
+            self.filterComboBox.addItem(self.trUtf8("Forms Files"), "FORMS")
         elif filter == 'resource':
-            self.filterComboBox.addItem(self.trUtf8("Resource Files"), 
-                                        QVariant("RESOURCES"))
+            self.filterComboBox.addItem(self.trUtf8("Resource Files"), "RESOURCES")
         elif filter == 'interface':
-            self.filterComboBox.addItem(self.trUtf8("Interface Files"), 
-                                        QVariant("INTERFACES"))
+            self.filterComboBox.addItem(self.trUtf8("Interface Files"), "INTERFACES")
         elif filter == 'others':
-            self.filterComboBox.addItem(self.trUtf8("Other Files (*)"), 
-                                        QVariant("OTHERS"))
+            self.filterComboBox.addItem(self.trUtf8("Other Files (*)"), "OTHERS")
             self.on_filterComboBox_highlighted('(*)')
         else:
-            self.filterComboBox.addItem(self.trUtf8("Source Files"), 
-                                        QVariant("SOURCES"))
-            self.filterComboBox.addItem(self.trUtf8("Forms Files"), 
-                                        QVariant("FORMS"))
-            self.filterComboBox.addItem(self.trUtf8("Resource Files"), 
-                                        QVariant("RESOURCES"))
-            self.filterComboBox.addItem(self.trUtf8("Interface Files"), 
-                                        QVariant("INTERFACES"))
-            self.filterComboBox.addItem(self.trUtf8("Other Files (*)"), 
-                                        QVariant("OTHERS"))
+            self.filterComboBox.addItem(self.trUtf8("Source Files"), "SOURCES")
+            self.filterComboBox.addItem(self.trUtf8("Forms Files"), "FORMS")
+            self.filterComboBox.addItem(self.trUtf8("Resource Files"), "RESOURCES")
+            self.filterComboBox.addItem(self.trUtf8("Interface Files"), "INTERFACES")
+            self.filterComboBox.addItem(self.trUtf8("Other Files (*)"), "OTHERS")
         self.filterComboBox.setCurrentIndex(0)
         
     @pyqtSlot(str)
@@ -148,7 +138,7 @@
             a flag indicating a recursive add
         """
         filetype = \
-            self.filterComboBox.itemData(self.filterComboBox.currentIndex()).toString()
+            self.filterComboBox.itemData(self.filterComboBox.currentIndex())
         return (filetype, self.sourceDirEdit.text(), 
             self.targetDirEdit.text(),
             self.recursiveCheckBox.isChecked())
--- a/Project/CreateDialogCodeDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Project/CreateDialogCodeDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -227,8 +227,8 @@
                                 (name, 
                                  metaMethod.signature().split("(")[0]
                                 )
-                        itm2.setData(QVariant(pyqtSignature), pyqtSignatureRole)
-                        itm2.setData(QVariant(pythonSignature), pythonSignatureRole)
+                        itm2.setData(pyqtSignature, pyqtSignatureRole)
+                        itm2.setData(pythonSignature, pythonSignatureRole)
                         
                         itm2.setFlags(Qt.ItemFlags(\
                             Qt.ItemIsUserCheckable | \
@@ -352,9 +352,9 @@
                     slotsCode.append('%s\n' % indentStr)
                     # TODO: adjust to new signal/slot mechanism
                     slotsCode.append('%s@pyqtSlot(%s)\n' % \
-                        (indentStr, child.data(pyqtSignatureRole).toString()))
+                        (indentStr, child.data(pyqtSignatureRole)))
                     slotsCode.append('%sdef %s:\n' % \
-                        (indentStr, child.data(pythonSignatureRole).toString()))
+                        (indentStr, child.data(pythonSignatureRole)))
                     slotsCode.append('%s"""\n' % (indentStr * 2,))
                     slotsCode.append('%sSlot documentation goes here.\n' % \
                         (indentStr * 2,))
--- a/Project/Project.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Project/Project.py	Wed Dec 30 15:40:33 2009 +0000
@@ -436,8 +436,8 @@
         self.recent = []
         Preferences.Prefs.rsettings.sync()
         rp = Preferences.Prefs.rsettings.value(recentNameProject)
-        if rp.isValid():
-            for f in rp.toStringList():
+        if rp is not None:
+            for f in rp:
                 if QFileInfo(f).exists():
                     self.recent.append(f)
     
@@ -445,7 +445,7 @@
         """
         Private method to save the list of recently opened filenames.
         """
-        Preferences.Prefs.rsettings.setValue(recentNameProject, QVariant(self.recent))
+        Preferences.Prefs.rsettings.setValue(recentNameProject, self.recent)
         Preferences.Prefs.rsettings.sync()
         
     def getMostRecent(self):
@@ -3793,7 +3793,7 @@
             act = self.recentMenu.addAction(\
                 formatStr % (idx, 
                     Utilities.compactPath(rp, self.ui.maxMenuFilePathLen)))
-            act.setData(QVariant(rp))
+            act.setData(rp)
             act.setEnabled(QFileInfo(rp).exists())
             idx += 1
         
@@ -3806,7 +3806,7 @@
         
         @param act reference to the action that triggered (QAction)
         """
-        file = act.data().toString()
+        file = act.data()
         if file:
             self.openProject(file)
         
--- a/Project/ProjectBrowserModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Project/ProjectBrowserModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -55,12 +55,12 @@
         """
         Public method to get the items text color.
         
-        @return text color (QVariant(QColor))
+        @return text color (QColor)
         """
         if self.bold:
-            return QVariant(Preferences.getProjectBrowserColour("Highlighted"))
+            return Preferences.getProjectBrowserColour("Highlighted")
         else:
-            return QVariant()
+            return None
     
     def setVcsState(self, state):
         """
@@ -202,9 +202,9 @@
         """
         QAbstractItemModel.__init__(self, parent)
         
-        rootData = QVariant(self.trUtf8("Name"))
+        rootData = self.trUtf8("Name")
         self.rootItem = BrowserItem(None, rootData)
-        self.rootItem.itemData.append(QVariant(self.trUtf8("VCS Status")))
+        self.rootItem.itemData.append(self.trUtf8("VCS Status"))
         
         self.progDir = None
         self.project = parent
@@ -247,28 +247,28 @@
         
         @param index index of the data to retrieve (QModelIndex)
         @param role role of data (Qt.ItemDataRole)
-        @return requested data (QVariant)
+        @return requested data
         """
         if not index.isValid():
-            return QVariant()
+            return None
         
         if role == Qt.TextColorRole:
             if index.column() == 0:
                 try:
                     return index.internalPointer().getTextColor()
                 except AttributeError:
-                    return QVariant()
+                    return None
         elif role == Qt.BackgroundColorRole:
             try:
                 col = self.itemBackgroundColors[index.internalPointer().vcsState]
                 if col.isValid():
-                    return QVariant(col)
+                    return col
                 else:
-                    return QVariant()
+                    return None
             except AttributeError:
-                return QVariant()
+                return None
             except KeyError:
-                return QVariant()
+                return None
         
         return BrowserModel.data(self, index, role)
     
--- a/Project/ProjectBrowserSortFilterProxyModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Project/ProjectBrowserSortFilterProxyModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -52,7 +52,7 @@
                 return False
             if self.hideGeneratedForms and \
                self.__filterType == ProjectBrowserSourceType and \
-               sitem.data(0).toString().startswith("Ui_"):
+               sitem.data(0).startswith("Ui_"):
                 return False
         except AttributeError:
             pass
--- a/Project/PropertiesDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Project/PropertiesDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -57,8 +57,7 @@
         
         projectTypes = project.getProjectTypes()
         for projectTypeKey in sorted(projectTypes.keys()):
-            self.projectTypeComboBox.addItem(projectTypes[projectTypeKey], 
-                                        QVariant(projectTypeKey))
+            self.projectTypeComboBox.addItem(projectTypes[projectTypeKey], projectTypeKey)
         
         if not new:
             name = os.path.splitext(self.project.pfile)[0]
@@ -208,8 +207,7 @@
         
         @return selected UI type (string)
         """
-        data = self.projectTypeComboBox.itemData(self.projectTypeComboBox.currentIndex())
-        return data.toString()
+        return self.projectTypeComboBox.itemData(self.projectTypeComboBox.currentIndex())
         
     def getPPath(self):
         """
--- a/Project/UserPropertiesDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Project/UserPropertiesDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -54,8 +54,7 @@
                 
                 if found:
                     for vcsSystem, vcsSystemDisplay in vcsData:
-                        self.vcsInterfaceCombo.addItem(vcsSystemDisplay, 
-                                                       QVariant(vcsSystem))
+                        self.vcsInterfaceCombo.addItem(vcsSystemDisplay, vcsSystem)
                     enableVcsGroup = len(vcsData) > 1
                     break
         self.vcsGroup.setEnabled(enableVcsGroup)
@@ -65,7 +64,7 @@
                 vcsSystem = self.project.pudata["VCSOVERRIDE"][0]
             else:
                 vcsSystem = self.project.pdata["VCS"][0]
-            index = self.vcsInterfaceCombo.findData(QVariant(vcsSystem))
+            index = self.vcsInterfaceCombo.findData(vcsSystem)
             if index == -1:
                 index = 0
             self.vcsInterfaceCombo.setCurrentIndex(index)
@@ -82,7 +81,7 @@
         
         if self.vcsGroup.isEnabled():
             vcsSystem = self.vcsInterfaceCombo\
-                .itemData(self.vcsInterfaceCombo.currentIndex()).toString()
+                .itemData(self.vcsInterfaceCombo.currentIndex())
             if self.vcsInterfaceDefaultCheckBox.isChecked():
                 if vcsSystem != self.project.pdata["VCS"][0]:
                     self.project.pdata["VCS"] = [vcsSystem]
--- a/QScintilla/Editor.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/QScintilla/Editor.py	Wed Dec 30 15:40:33 2009 +0000
@@ -734,7 +734,7 @@
         self.languagesActGrp = QActionGroup(self)
         self.noLanguageAct = menu.addAction(self.trUtf8("No Language"))
         self.noLanguageAct.setCheckable(True)
-        self.noLanguageAct.setData(QVariant("None"))
+        self.noLanguageAct.setData("None")
         self.languagesActGrp.addAction(self.noLanguageAct)
         menu.addSeparator()
         
@@ -747,17 +747,17 @@
                 self.supportedLanguages[language] = supportedLanguages[language][:]
                 act = menu.addAction(self.supportedLanguages[language][0])
                 act.setCheckable(True)
-                act.setData(QVariant(language))
+                act.setData(language)
                 self.supportedLanguages[language].append(act)
                 self.languagesActGrp.addAction(act)
         
         menu.addSeparator()
         self.pygmentsAct = menu.addAction(self.trUtf8("Guessed"))
         self.pygmentsAct.setCheckable(True)
-        self.pygmentsAct.setData(QVariant("Guessed"))
+        self.pygmentsAct.setData("Guessed")
         self.languagesActGrp.addAction(self.pygmentsAct)
         self.pygmentsSelAct = menu.addAction(self.trUtf8("Alternatives"))
-        self.pygmentsSelAct.setData(QVariant("Alternatives"))
+        self.pygmentsSelAct.setData("Alternatives")
         
         self.connect(menu, SIGNAL('triggered(QAction *)'), self.__languageMenuTriggered)
         self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuLanguages)
@@ -777,7 +777,7 @@
         for encoding in sorted(Utilities.supportedCodecs):
             act = menu.addAction(encoding)
             act.setCheckable(True)
-            act.setData(QVariant(encoding))
+            act.setData(encoding)
             self.supportedEncodings[encoding] = act
             self.encodingsActGrp.addAction(act)
         
@@ -798,19 +798,19 @@
         
         act = menu.addAction(self.trUtf8("Unix"))
         act.setCheckable(True)
-        act.setData(QVariant('\n'))
+        act.setData('\n')
         self.supportedEols['\n'] = act
         self.eolActGrp.addAction(act)
         
         act = menu.addAction(self.trUtf8("Windows"))
         act.setCheckable(True)
-        act.setData(QVariant('\r\n'))
+        act.setData('\r\n')
         self.supportedEols['\r\n'] = act
         self.eolActGrp.addAction(act)
         
         act = menu.addAction(self.trUtf8("Macintosh"))
         act.setCheckable(True)
-        act.setData(QVariant('\r'))
+        act.setData('\r')
         self.supportedEols['\r'] = act
         self.eolActGrp.addAction(act)
         
@@ -830,7 +830,7 @@
         exporters.sort()
         for exporter in exporters:
             act = menu.addAction(supportedExporters[exporter])
-            act.setData(QVariant(exporter))
+            act.setData(exporter)
         
         self.connect(menu, SIGNAL('triggered(QAction *)'), self.__exportMenuTriggered)
         
@@ -1011,7 +1011,7 @@
         
         @param act reference to the action that was triggered (QAction)
         """
-        exporterFormat = act.data().toString()
+        exporterFormat = act.data()
         self.exportFile(exporterFormat)
         
     def exportFile(self, exporterFormat):
@@ -1089,7 +1089,7 @@
             if language:
                 self.setLanguage("dummy.pygments", pyname = language)
         else:
-            language = act.data().toString()
+            language = act.data()
             if language:
                 self.setLanguage(self.supportedLanguages[language][1])
         
@@ -1198,7 +1198,7 @@
         
         @param act reference to the action that was triggered (QAction)
         """
-        encoding = act.data().toString()
+        encoding = act.data()
         self.__encodingChanged("%s-selected" % encoding)
         
     def __checkEncoding(self):
@@ -1246,7 +1246,7 @@
         
         @param act reference to the action that was triggered (QAction)
         """
-        eol = act.data().toString()
+        eol = act.data()
         self.setEolModeByEolString(eol)
         self.convertEols(self.eolMode())
         
@@ -1313,9 +1313,8 @@
         
         # get the font for style 0 and set it as the default font
         key = 'Scintilla/%s/style0/font' % self.lexer_.language()
-        fontVariant = Preferences.Prefs.settings.value(key)
-        if fontVariant.isValid():
-            fdesc = fontVariant.toStringList()
+        fdesc = Preferences.Prefs.settings.value(key)
+        if fdesc is not None:
             font = QFont(fdesc[0], int(fdesc[1]))
             self.lexer_.setDefaultFont(font)
         self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla")
@@ -5157,7 +5156,9 @@
         to the current project.
         """
         project = e4App().getObject("Project")
-        if project.isOpen() and project.isProjectSource(self.fileName):
+        if self.fileName and \
+           project.isOpen() and \
+           project.isProjectSource(self.fileName):
             pwl, pel = project.getProjectDictionaries()
             self.__setSpellingLanguage(project.getProjectSpellLanguage(), 
                                        pwl = pwl, pel = pel)
--- a/QScintilla/MiniEditor.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/QScintilla/MiniEditor.py	Wed Dec 30 15:40:33 2009 +0000
@@ -301,12 +301,12 @@
         if act.objectName():
             accel = Preferences.Prefs.settings.value(\
                 "Shortcuts/{0}/{1}/Accel".format(category, act.objectName()))
-            if accel.isValid():
-                act.setShortcut(QKeySequence(accel.toString()))
+            if accel is not None:
+                act.setShortcut(QKeySequence(accel))
             accel = Preferences.Prefs.settings.value(\
                 "Shortcuts/{0}/{1}/AltAccel".format(category, act.objectName()))
-            if accel.isValid():
-                act.setAlternateShortcut(QKeySequence(accel.toString()))
+            if accel is not None:
+                act.setAlternateShortcut(QKeySequence(accel))
     
     def __createActions(self):
         """
@@ -1455,8 +1455,8 @@
         Private method to read the settings remembered last time.
         """
         settings = Preferences.Prefs.settings
-        pos = settings.value("MiniEditor/Position", QVariant(QPoint(0, 0))).toPoint()
-        size = settings.value("MiniEditor/Size", QVariant(QSize(800, 600))).toSize()
+        pos = settings.value("MiniEditor/Position", QPoint(0, 0))
+        size = settings.value("MiniEditor/Size", QSize(800, 600))
         self.resize(size)
         self.move(pos)
     
@@ -1465,8 +1465,8 @@
         Private method to write the settings for reuse.
         """
         settings = Preferences.Prefs.settings
-        settings.setValue("MiniEditor/Position", QVariant(self.pos()))
-        settings.setValue("MiniEditor/Size", QVariant(self.size()))
+        settings.setValue("MiniEditor/Position", self.pos())
+        settings.setValue("MiniEditor/Size", self.size())
     
     def __maybeSave(self):
         """
@@ -1881,7 +1881,7 @@
         self.languagesActGrp = QActionGroup(self)
         self.noLanguageAct = menu.addAction(self.trUtf8("No Language"))
         self.noLanguageAct.setCheckable(True)
-        self.noLanguageAct.setData(QVariant("None"))
+        self.noLanguageAct.setData("None")
         self.languagesActGrp.addAction(self.noLanguageAct)
         menu.addSeparator()
         
@@ -1894,17 +1894,17 @@
                 self.supportedLanguages[language] = supportedLanguages[language][:]
                 act = menu.addAction(self.supportedLanguages[language][0])
                 act.setCheckable(True)
-                act.setData(QVariant(language))
+                act.setData(language)
                 self.supportedLanguages[language].append(act)
                 self.languagesActGrp.addAction(act)
         
         menu.addSeparator()
         self.pygmentsAct = menu.addAction(self.trUtf8("Guessed"))
         self.pygmentsAct.setCheckable(True)
-        self.pygmentsAct.setData(QVariant("Guessed"))
+        self.pygmentsAct.setData("Guessed")
         self.languagesActGrp.addAction(self.pygmentsAct)
         self.pygmentsSelAct = menu.addAction(self.trUtf8("Alternatives"))
-        self.pygmentsSelAct.setData(QVariant("Alternatives"))
+        self.pygmentsSelAct.setData("Alternatives")
         
         self.connect(menu, SIGNAL('triggered(QAction *)'), self.__languageMenuTriggered)
         self.connect(menu, SIGNAL('aboutToShow()'), self.__showContextMenuLanguages)
@@ -1960,7 +1960,7 @@
             if language:
                 self.setLanguage("dummy.pygments", pyname = language)
         else:
-            language = act.data().toString()
+            language = act.data()
             if language:
                 self.setLanguage(self.supportedLanguages[language][1])
         
@@ -2058,9 +2058,8 @@
         
         # get the font for style 0 and set it as the default font
         key = 'Scintilla/%s/style0/font' % self.lexer_.language()
-        fontVariant = Preferences.Prefs.settings.value(key)
-        if fontVariant.isValid():
-            fdesc = fontVariant.toStringList()
+        fdesc = Preferences.Prefs.settings.value(key)
+        if fdesc is not None:
             font = QFont(fdesc[0], int(str(fdesc[1])))
             self.lexer_.setDefaultFont(font)
         self.lexer_.readSettings(Preferences.Prefs.settings, "Scintilla")
--- a/QScintilla/Shell.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/QScintilla/Shell.py	Wed Dec 30 15:40:33 2009 +0000
@@ -143,7 +143,7 @@
         self.clientLanguages.sort()
         for language in self.clientLanguages:
             act = self.lmenu.addAction(language)
-            act.setData(QVariant(language))
+            act.setData(language)
         self.connect(self.lmenu, SIGNAL("triggered(QAction *)"), self.__startDebugClient)
         
         # Create the history context menu
@@ -241,9 +241,8 @@
         
         # get the font for style 0 and set it as the default font
         key = 'Scintilla/%s/style0/font' % self.lexer_.language()
-        fontVariant = Preferences.Prefs.settings.value(key)
-        if fontVariant.isValid():
-            fdesc = fontVariant.toStringList()
+        fdesc = Preferences.Prefs.settings.value(key)
+        if fdesc is not None:
             font = QFont(fdesc[0], int(fdesc[1]))
             self.lexer_.setDefaultFont(font)
         self.setLexer(self.lexer_)
@@ -424,9 +423,8 @@
         
         @param clientType type of the debug client (string)
         """
-        hVariant = Preferences.Prefs.settings.value("Shell/Histories/" + clientType)
-        if hVariant.isValid():
-            hl = hVariant.toStringList()
+        hl = Preferences.Prefs.settings.value("Shell/Histories/" + clientType)
+        if hl is not None:
             self.historyLists[clientType] = hl[-self.maxHistoryEntries:]
         else:
             self.historyLists[clientType] = []
@@ -447,7 +445,7 @@
         """
         if self.historyLists.has_key(clientType):
             Preferences.Prefs.settings.setValue(\
-                "Shell/Histories/" + clientType, QVariant(self.historyLists[clientType]))
+                "Shell/Histories/" + clientType, self.historyLists[clientType])
         
     def getHistory(self, clientType):
         """
@@ -1237,7 +1235,7 @@
         
         @param action context menu action that was triggered (QAction)
         """
-        language = action.data().toString()
+        language = action.data()
         self.dbs.startClient(False, language)
         
     def handlePreferencesChanged(self):
--- a/QScintilla/Terminal.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/QScintilla/Terminal.py	Wed Dec 30 15:40:33 2009 +0000
@@ -253,9 +253,8 @@
         
         # get the font for style 0 and set it as the default font
         key = 'Scintilla/%s/style0/font' % self.lexer_.language()
-        fontVariant = Preferences.Prefs.settings.value(key)
-        if fontVariant.isValid():
-            fdesc = fontVariant.toStringList()
+        fdesc = Preferences.Prefs.settings.value(key)
+        if fdesc is not None:
             font = QFont(fdesc[0], int(fdesc[1]))
             self.lexer_.setDefaultFont(font)
         self.setLexer(self.lexer_)
@@ -351,9 +350,8 @@
         """
         Public method to load the history.
         """
-        hVariant = Preferences.Prefs.settings.value("Terminal/History")
-        if hVariant.isValid():
-            hl = hVariant.toStringList()
+        hl = Preferences.Prefs.settings.value("Terminal/History")
+        if hl is not None:
             self.history = hl[-self.maxHistoryEntries:]
         else:
             self.history = []
@@ -370,8 +368,7 @@
         """
         Public method to save the history.
         """
-        Preferences.Prefs.settings.setValue(\
-            "Terminal/History", QVariant(self.history))
+        Preferences.Prefs.settings.setValue("Terminal/History", self.history)
         
     def getHistory(self):
         """
--- a/SqlBrowser/SqlBrowserWidget.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/SqlBrowser/SqlBrowserWidget.py	Wed Dec 30 15:40:33 2009 +0000
@@ -188,38 +188,38 @@
         model.insertRows(0, rec.count())
         model.insertColumns(0, 7)
         
-        model.setHeaderData(0, Qt.Horizontal, QVariant("Fieldname"))
-        model.setHeaderData(1, Qt.Horizontal, QVariant("Type"))
-        model.setHeaderData(2, Qt.Horizontal, QVariant("Length"))
-        model.setHeaderData(3, Qt.Horizontal, QVariant("Precision"))
-        model.setHeaderData(4, Qt.Horizontal, QVariant("Required"))
-        model.setHeaderData(5, Qt.Horizontal, QVariant("Auto Value"))
-        model.setHeaderData(6, Qt.Horizontal, QVariant("Default Value"))
+        model.setHeaderData(0, Qt.Horizontal, "Fieldname")
+        model.setHeaderData(1, Qt.Horizontal, "Type")
+        model.setHeaderData(2, Qt.Horizontal, "Length")
+        model.setHeaderData(3, Qt.Horizontal, "Precision")
+        model.setHeaderData(4, Qt.Horizontal, "Required")
+        model.setHeaderData(5, Qt.Horizontal, "Auto Value")
+        model.setHeaderData(6, Qt.Horizontal, "Default Value")
         
         for i in range(rec.count()):
             fld = rec.field(i)
-            model.setData(model.index(i, 0), QVariant(fld.name()))
+            model.setData(model.index(i, 0), fld.name())
             if fld.typeID() == -1:
                 model.setData(model.index(i, 1), 
-                              QVariant(QVariant.typeToName(fld.type())))
+                              QVariant.typeToName(fld.type()))
             else:
-                model.setData(model.index(i, 1), QVariant("%s1 (%s)" % (\
+                model.setData(model.index(i, 1), "%s1 (%s)" % (\
                                                  QVariant.typeToName(fld.type()), 
-                                                 fld.typeID())))
+                                                 fld.typeID()))
             if fld.length() < 0:
-                model.setData(model.index(i, 2), QVariant("?"))
+                model.setData(model.index(i, 2), "?")
             else:
-                model.setData(model.index(i, 2), QVariant(fld.length()))
+                model.setData(model.index(i, 2), fld.length())
             if fld.precision() < 0:
-                model.setData(model.index(i, 3), QVariant("?"))
+                model.setData(model.index(i, 3), "?")
             else:
-                model.setData(model.index(i, 3), QVariant(fld.precision()))
+                model.setData(model.index(i, 3), fld.precision())
             if fld.requiredStatus() == -1:
-                model.setData(model.index(i, 4), QVariant("?"))
+                model.setData(model.index(i, 4), "?")
             else:
-                model.setData(model.index(i, 4), QVariant(bool(fld.requiredStatus())))
-            model.setData(model.index(i, 5), QVariant(fld.isAutoValue()))
-            model.setData(model.index(i, 6), QVariant(fld.defaultValue()))
+                model.setData(model.index(i, 4), bool(fld.requiredStatus()))
+            model.setData(model.index(i, 5), fld.isAutoValue())
+            model.setData(model.index(i, 6), fld.defaultValue())
         
         self.table.setModel(model)
         self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)
--- a/Tools/TRPreviewer.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Tools/TRPreviewer.py	Wed Dec 30 15:40:33 2009 +0000
@@ -826,7 +826,7 @@
         idx = 0
         for wid in self.widgets:
             act = windowMenu.addAction(wid.windowTitle())
-            act.setData(QVariant(idx))
+            act.setData(idx)
             act.setCheckable(True)
             act.setChecked(not wid.isHidden())
             idx = idx + 1
@@ -837,7 +837,7 @@
         
         @param act reference to the action that triggered (QAction)
         """
-        idx, ok = act.data().toInt()
+        idx, ok = act.data()
         if ok:
             self.__toggleWidget(self.widgets[idx])
     
--- a/Tools/TrayStarter.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Tools/TrayStarter.py	Wed Dec 30 15:40:33 2009 +0000
@@ -10,7 +10,7 @@
 import sys
 import os
 
-from PyQt4.QtCore import SIGNAL, QProcess, QSettings, QFileInfo, QVariant
+from PyQt4.QtCore import SIGNAL, QProcess, QSettings, QFileInfo
 from PyQt4.QtGui  import QSystemTrayIcon, QMenu, qApp, QCursor, QMessageBox
 
 import Globals
@@ -131,8 +131,8 @@
         Private method to load the recently opened project filenames.
         """
         rp = self.rsettings.value(Globals.recentNameProject)
-        if rp.isValid():
-            for f in rp.toStringList():
+        if rp is not None:
+            for f in rp:
                 if QFileInfo(f).exists():
                     self.recentProjects.append(f)
     
@@ -141,8 +141,8 @@
         Private method to load the recently opened multi project filenames.
         """
         rmp = self.rsettings.value(Globals.recentNameMultiProject)
-        if rmp.isValid():
-            for f in rmp.toStringList():
+        if rmp is not None:
+            for f in rmp:
                 if QFileInfo(f).exists():
                     self.recentMultiProjects.append(f)
     
@@ -151,8 +151,8 @@
         Private method to load the recently opened filenames.
         """
         rf = self.rsettings.value(Globals.recentNameFiles)
-        if rf.isValid():
-            for f in rf.toStringList():
+        if rf is not None:
+            for f in rf:
                 if QFileInfo(f).exists():
                     self.recentFiles.append(f)
     
@@ -319,7 +319,7 @@
             act = self.recentProjectsMenu.addAction(
                 formatStr % (idx, 
                     Utilities.compactPath(rp, self.maxMenuFilePathLen)))
-            act.setData(QVariant(rp))
+            act.setData(rp)
             idx += 1
     
     def __showRecentMultiProjectsMenu(self):
@@ -341,7 +341,7 @@
             act = self.recentMultiProjectsMenu.addAction(
                 formatStr % (idx, 
                     Utilities.compactPath(rmp, self.maxMenuFilePathLen)))
-            act.setData(QVariant(rmp))
+            act.setData(rmp)
             idx += 1
     
     def __showRecentFilesMenu(self):
@@ -363,7 +363,7 @@
             act = self.recentFilesMenu.addAction(\
                 formatStr % (idx, 
                     Utilities.compactPath(rf, self.maxMenuFilePathLen)))
-            act.setData(QVariant(rf))
+            act.setData(rf)
             idx += 1
     
     def __openRecent(self, act):
@@ -373,6 +373,6 @@
         
         @param act reference to the action that triggered (QAction)
         """
-        filename = act.data().toString()
+        filename = act.data()
         if filename:
             self.__startProc("eric4.py", filename)
--- a/Tools/UIPreviewer.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Tools/UIPreviewer.py	Wed Dec 30 15:40:33 2009 +0000
@@ -69,7 +69,7 @@
         self.styleLayout.addWidget(self.styleCombo)
         self.styleCombo.addItems(QStyleFactory().keys())
         self.styleCombo.setCurrentIndex(\
-            Preferences.Prefs.settings.value('UIPreviewer/style').toInt()[0])
+            int(Preferences.Prefs.settings.value('UIPreviewer/style')))
         
         styleSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
         self.styleLayout.addItem(styleSpacer)
@@ -360,7 +360,7 @@
         self.lastQStyle = qstyle
         self.lastStyle = sstyle
         Preferences.Prefs.settings.setValue('UIPreviewer/style', 
-            QVariant(self.styleCombo.currentIndex()))
+            self.styleCombo.currentIndex())
         QApplication.restoreOverrideCursor()
     
     def __updateActions(self):
@@ -478,28 +478,26 @@
         printer = QPrinter(QPrinter.HighResolution)
         printer.setFullPage(True)
         
-        printer.setPrinterName(settings.value("UIPreviewer/printername").toString())
+        printer.setPrinterName(settings.value("UIPreviewer/printername"))
         printer.setPageSize(
-            QPrinter.PageSize(settings.value("UIPreviewer/pagesize").toInt()[0]))
+            QPrinter.PageSize(int(settings.value("UIPreviewer/pagesize"))))
         printer.setPageOrder(
-            QPrinter.PageOrder(settings.value("UIPreviewer/pageorder").toInt()[0]))
+            QPrinter.PageOrder(int(settings.value("UIPreviewer/pageorder"))))
         printer.setOrientation(
-            QPrinter.Orientation(settings.value("UIPreviewer/orientation").toInt()[0]))
+            QPrinter.Orientation(int(settings.value("UIPreviewer/orientation"))))
         printer.setColorMode(
-            QPrinter.ColorMode(settings.value("UIPreviewer/colormode").toInt()[0]))
+            QPrinter.ColorMode(int(settings.value("UIPreviewer/colormode"))))
         
         printDialog = QPrintDialog(printer, self)
         if printDialog.exec_() == QDialog.Accepted:
             self.statusBar().showMessage(self.trUtf8("Printing the image..."))
             self.__print(printer)
             
-            settings.setValue("UIPreviewer/printername", 
-                QVariant(printer.printerName()))
-            settings.setValue("UIPreviewer/pagesize", QVariant(printer.pageSize()))
-            settings.setValue("UIPreviewer/pageorder", QVariant(printer.pageOrder()))
-            settings.setValue("UIPreviewer/orientation", 
-                QVariant(printer.orientation()))
-            settings.setValue("UIPreviewer/colormode", QVariant(printer.colorMode()))
+            settings.setValue("UIPreviewer/printername", printer.printerName())
+            settings.setValue("UIPreviewer/pagesize", printer.pageSize())
+            settings.setValue("UIPreviewer/pageorder", printer.pageOrder())
+            settings.setValue("UIPreviewer/orientation", printer.orientation())
+            settings.setValue("UIPreviewer/colormode", printer.colorMode())
         
         self.statusBar().showMessage(self.trUtf8("Image sent to printer..."), 2000)
 
@@ -519,15 +517,15 @@
         printer = QPrinter(QPrinter.HighResolution)
         printer.setFullPage(True)
         
-        printer.setPrinterName(settings.value("UIPreviewer/printername").toString())
+        printer.setPrinterName(settings.value("UIPreviewer/printername"))
         printer.setPageSize(
-            QPrinter.PageSize(settings.value("UIPreviewer/pagesize").toInt()[0]))
+            QPrinter.PageSize(int(settings.value("UIPreviewer/pagesize"))))
         printer.setPageOrder(
-            QPrinter.PageOrder(settings.value("UIPreviewer/pageorder").toInt()[0]))
+            QPrinter.PageOrder(int(settings.value("UIPreviewer/pageorder"))))
         printer.setOrientation(
-            QPrinter.Orientation(settings.value("UIPreviewer/orientation").toInt()[0]))
+            QPrinter.Orientation(int(settings.value("UIPreviewer/orientation"))))
         printer.setColorMode(
-            QPrinter.ColorMode(settings.value("UIPreviewer/colormode").toInt()[0]))
+            QPrinter.ColorMode(int(settings.value("UIPreviewer/colormode"))))
         
         preview = QPrintPreviewDialog(printer, self)
         self.connect(preview, SIGNAL("paintRequested(QPrinter*)"), self.__print)
--- a/UI/BrowserModel.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/UI/BrowserModel.py	Wed Dec 30 15:40:33 2009 +0000
@@ -42,7 +42,7 @@
         """
         QAbstractItemModel.__init__(self, parent)
         
-        rootData = QVariant(QApplication.translate("BrowserModel", "Name"))
+        rootData = QApplication.translate("BrowserModel", "Name")
         self.rootItem = BrowserItem(None, rootData)
         
         self.progDir = None
@@ -69,25 +69,25 @@
         
         @param index index of the data to retrieve (QModelIndex)
         @param role role of data (Qt.ItemDataRole)
-        @return requested data (QVariant)
+        @return requested data
         """
         if not index.isValid():
-            return QVariant()
+            return None
         
         if role == Qt.DisplayRole:
             item = index.internalPointer()
             if index.column() < item.columnCount():
-                return QVariant(item.data(index.column()))
+                return item.data(index.column())
             elif index.column() == item.columnCount() and \
                  index.column() < self.columnCount(self.parent(index)):
                 # This is for the case where an item under a multi-column parent
                 # doesn't have a value for all the columns
-                return QVariant("")
+                return ""
         elif role == Qt.DecorationRole:
             if index.column() == 0:
-                return QVariant(index.internalPointer().getIcon())
+                return index.internalPointer().getIcon()
         
-        return QVariant()
+        return None
     
     def flags(self, index):
         """
@@ -108,15 +108,15 @@
         @param section number of section to get data for (integer)
         @param orientation header orientation (Qt.Orientation)
         @param role role of data (Qt.ItemDataRole)
-        @return requested header data (QVariant)
+        @return requested header data
         """
         if orientation == Qt.Horizontal and role == Qt.DisplayRole:
             if section >= self.rootItem.columnCount():
-                return QVariant("")
+                return ""
             else:
                 return self.rootItem.data(section)
         
-        return QVariant()
+        return None
     
     def index(self, row, column, parent = QModelIndex()):
         """
@@ -236,7 +236,7 @@
         self._addItem(BrowserSysPathItem(self.rootItem), self.rootItem)
         
         self.toplevelDirs = []
-        tdp = Preferences.Prefs.settings.value('BrowserModel/ToplevelDirs').toStringList()
+        tdp = Preferences.Prefs.settings.value('BrowserModel/ToplevelDirs')
         if tdp:
             self.toplevelDirs = tdp
         else:
@@ -300,7 +300,7 @@
         Public slot to save the toplevel directories.
         """
         Preferences.Prefs.settings.setValue('BrowserModel/ToplevelDirs', 
-            QVariant(self.toplevelDirs))
+            self.toplevelDirs)
     
     def _addItem(self, itm, parentItem):
         """
--- a/UI/FindFileDialog.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/UI/FindFileDialog.py	Wed Dec 30 15:40:33 2009 +0000
@@ -131,10 +131,10 @@
         
         itm = QTreeWidgetItem(self.__lastFileItem, [' %5d ' % line, text])
         itm.setTextAlignment(0,  Qt.AlignRight)
-        itm.setData(0, self.lineRole, QVariant(line))
-        itm.setData(0, self.startRole, QVariant(start))
-        itm.setData(0, self.endRole, QVariant(end))
-        itm.setData(0, self.replaceRole, QVariant(replTxt))
+        itm.setData(0, self.lineRole, line)
+        itm.setData(0, self.startRole, start)
+        itm.setData(0, self.endRole, end)
+        itm.setData(0, self.replaceRole, replTxt)
         if self.__replaceMode:
             itm.setFlags(itm.flags() | Qt.ItemFlags(Qt.ItemIsUserCheckable))
             itm.setCheckState(0, Qt.Checked)
@@ -440,9 +440,9 @@
         """
         if itm.parent():
             file = itm.parent().text(0)
-            line = itm.data(0, self.lineRole).toInt()[0]
-            start = itm.data(0, self.startRole).toInt()[0]
-            end = itm.data(0, self.endRole).toInt()[0]
+            line = itm.data(0, self.lineRole)
+            start = itm.data(0, self.startRole)
+            end = itm.data(0, self.endRole)
         else:
             file = itm.text(0)
             line = 1
@@ -540,8 +540,8 @@
                 for cindex in range(itm.childCount()):
                     citm = itm.child(cindex)
                     if citm.checkState(0) == Qt.Checked:
-                        line = citm.data(0, self.lineRole).toInt()[0]
-                        rline = citm.data(0, self.replaceRole).toString()
+                        line = citm.data(0, self.lineRole)
+                        rline = citm.data(0, self.replaceRole)
                         lines[line - 1] = rline
                 
                 # write the file
--- a/UI/UserInterface.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/UI/UserInterface.py	Wed Dec 30 15:40:33 2009 +0000
@@ -2937,11 +2937,11 @@
         self.__menus["tools"].addMenu(self.toolGroupsMenu)
         act = self.__menus["tools"].addAction(self.trUtf8("Configure Tool Groups ..."),
             self.__toolGroupsConfiguration)
-        act.setData(QVariant(-1))
+        act.setData(-1)
         act = self.__menus["tools"].addAction(\
             self.trUtf8("Configure current Tool Group ..."), 
             self.__toolsConfiguration)
-        act.setData(QVariant(-2))
+        act.setData(-2)
         self.__menus["tools"].addSeparator()
         
         if self.currentToolGroup == -1:
@@ -2973,7 +2973,7 @@
                     else:
                         act = self.__menus["tools"].addAction(\
                             UI.PixmapCache.getIcon(tool['icon']), tool['menutext'])
-                        act.setData(QVariant(idx))
+                        act.setData(idx)
                     idx += 1
             except IndexError:
                 # the current tool group might have been deleted
@@ -2987,7 +2987,7 @@
         
         # add the default entry
         act = self.toolGroupsMenu.addAction(self.trUtf8("&Builtin Tools"))
-        act.setData(QVariant(-1))
+        act.setData(-1)
         if self.currentToolGroup == -1:
             font = act.font()
             font.setBold(True)
@@ -2995,7 +2995,7 @@
         
         # add the plugins entry
         act = self.toolGroupsMenu.addAction(self.trUtf8("&Plugin Tools"))
-        act.setData(QVariant(-2))
+        act.setData(-2)
         if self.currentToolGroup == -2:
             font = act.font()
             font.setBold(True)
@@ -3005,7 +3005,7 @@
         idx = 0
         for toolGroup in self.toolGroups:
             act = self.toolGroupsMenu.addAction(toolGroup[0])
-            act.setData(QVariant(idx))
+            act.setData(idx)
             if self.currentToolGroup == idx:
                 font = act.font()
                 font.setBold(True)
@@ -3019,8 +3019,8 @@
         @param act reference to the action that was triggered (QAction)
         """
         self.toolGroupsMenuTriggered = True
-        idx, ok = act.data().toInt()
-        if ok:
+        idx = act.data()
+        if idx is not None:
             self.currentToolGroup = idx
         
     def __showWindowMenu(self):
@@ -3127,7 +3127,7 @@
         for text, tb, name in tbList:
             act = self.__menus["toolbars"].addAction(text)
             act.setCheckable(True)
-            act.setData(QVariant(name))
+            act.setData(name)
             act.setChecked(not tb.isHidden())
         self.__menus["toolbars"].addSeparator()
         self.__toolbarsShowAllAct = \
@@ -3152,7 +3152,7 @@
             if self.__menus["toolbars"].isTearOffMenuVisible():
                 self.__showToolbarsMenu()
         else:
-            name = act.data().toString()
+            name = act.data()
             if name:
                 tb = self.__toolbars[name][1]
                 if act.isChecked():
@@ -4170,8 +4170,8 @@
             # it was a built in or plugin tool, don't handle it here
             return
         
-        idx, ok = act.data().toInt()
-        if ok and idx >= 0:
+        idx = act.data()
+        if idx is not None and idx >= 0:
             tool = self.toolGroups[self.currentToolGroup][1][idx]
             self.__startToolProcess(tool)
     
@@ -5195,7 +5195,7 @@
                     return
                 elif period in [2, 3, 4]:
                     lastCheck = Preferences.Prefs.settings.value(\
-                        "Updates/LastCheckDate", QVariant(QDate(1970, 1, 1))).toDate()
+                        "Updates/LastCheckDate", QDate(1970, 1, 1))
                     if lastCheck.isValid():
                         now = QDate.currentDate()
                         if period == 2 and lastCheck.day() == now.day():
@@ -5301,7 +5301,7 @@
             self.__showAvailableVersionInfos(versions)
         else:
             Preferences.Prefs.settings.setValue(\
-                "Updates/LastCheckDate", QVariant(QDate.currentDate()))
+                "Updates/LastCheckDate", QDate.currentDate())
             self.__versionCheckResult(versions)
         
     def __updateVersionsUrls(self, versions):
--- a/Utilities/__init__.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/Utilities/__init__.py	Wed Dec 30 15:40:33 2009 +0000
@@ -980,7 +980,7 @@
         hp = QDir.homePath()
         dn = QDir(hp)
         dn.mkdir(cdn)
-        hp.append("/").append(cdn)
+        hp += "/" + cdn
     return toNativeSeparators(hp)
 
 def setConfigDir(d):
--- a/ViewManager/ViewManager.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/ViewManager/ViewManager.py	Wed Dec 30 15:40:33 2009 +0000
@@ -128,8 +128,8 @@
         
         self.bookmarked = []
         bs = Preferences.Prefs.settings.value("Bookmarked/Sources")
-        if bs.isValid():
-            self.bookmarked = bs.toStringList()
+        if bs is not None:
+            self.bookmarked = bs
         
         # initialize the autosave timer
         self.autosaveInterval = Preferences.getEditor("AutosaveInterval")
@@ -166,8 +166,8 @@
         self.recent = []
         Preferences.Prefs.rsettings.sync()
         rs = Preferences.Prefs.rsettings.value(recentNameFiles)
-        if rs.isValid():
-            for f in rs.toStringList():
+        if rs is not None:
+            for f in rs:
                 if QFileInfo(f).exists():
                     self.recent.append(f)
         
@@ -175,7 +175,7 @@
         """
         Private method to save the list of recently opened filenames.
         """
-        Preferences.Prefs.rsettings.setValue(recentNameFiles, QVariant(self.recent))
+        Preferences.Prefs.rsettings.setValue(recentNameFiles, self.recent)
         Preferences.Prefs.rsettings.sync()
         
     def getMostRecent(self):
@@ -701,7 +701,7 @@
         exporters.sort()
         for exporter in exporters:
             act = menu.addAction(supportedExporters[exporter])
-            act.setData(QVariant(exporter))
+            act.setData(exporter)
         
         self.connect(menu, SIGNAL('triggered(QAction *)'), self.__exportMenuTriggered)
         
@@ -3475,7 +3475,7 @@
         """
         aw = self.activeWindow()
         if aw:
-            exporterFormat = act.data().toString()
+            exporterFormat = act.data()
             aw.exportFile(exporterFormat)
         
     def newEditor(self):
@@ -3540,7 +3540,7 @@
             act = self.recentMenu.addAction(\
                 formatStr % (idx, 
                     Utilities.compactPath(rs, self.ui.maxMenuFilePathLen)))
-            act.setData(QVariant(rs))
+            act.setData(rs)
             act.setEnabled(QFileInfo(rs).exists())
             idx += 1
         
@@ -3554,7 +3554,7 @@
         
         @param act reference to the action that triggered (QAction)
         """
-        file = act.data().toString()
+        file = act.data()
         if file:
             self.openSourceFile(file)
         
@@ -3573,7 +3573,7 @@
         for rp in self.bookmarked:
             act = self.bookmarkedMenu.addAction(\
                 Utilities.compactPath(rp, self.ui.maxMenuFilePathLen))
-            act.setData(QVariant(rp))
+            act.setData(rp)
             act.setEnabled(QFileInfo(rp).exists())
         
         if len(self.bookmarked):
@@ -4282,7 +4282,7 @@
                             filename,
                             self.ui.maxMenuFilePathLen - len(bmSuffix)), 
                         bmSuffix))
-                act.setData(QVariant([QVariant(filename), QVariant(bookmark)]))
+                act.setData([filename, bookmark])
         
     def __bookmarkSelected(self, act):
         """
@@ -4290,14 +4290,9 @@
         
         @param act reference to the action that triggered (QAction)
         """
-        try:
-            qvList = act.data().toPyObject()
-            filename = qvList[0]
-            line = qvList[1]
-        except AttributeError:
-            qvList = act.data().toList()
-            filename = qvList[0].toString()
-            line = qvList[1].toInt()[0]
+        bmList = act.data()
+        filename = bmList[0]
+        line = bmList[1]
         self.openSourceFile(filename, line)
         
     def __bookmarkToggled(self, editor):
@@ -4452,8 +4447,7 @@
         self.__saveRecent()
         
         # save the list of recently opened projects
-        Preferences.Prefs.settings.setValue('Bookmarked/Sources', 
-                QVariant(self.bookmarked))
+        Preferences.Prefs.settings.setValue('Bookmarked/Sources', self.bookmarked)
         
         if len(self.editors):
             return False
--- a/eric4-compare.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-compare.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-configure.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-configure.py	Wed Dec 30 15:40:33 2009 +0000
@@ -15,6 +15,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-diff.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-diff.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-editor.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-editor.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-iconeditor.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-iconeditor.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-plugininstall.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-plugininstall.py	Wed Dec 30 15:40:33 2009 +0000
@@ -15,6 +15,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-pluginrepository.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-pluginrepository.py	Wed Dec 30 15:40:33 2009 +0000
@@ -15,6 +15,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-pluginuninstall.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-pluginuninstall.py	Wed Dec 30 15:40:33 2009 +0000
@@ -15,6 +15,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-qregexp.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-qregexp.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-re.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-re.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-sqlbrowser.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-sqlbrowser.py	Wed Dec 30 15:40:33 2009 +0000
@@ -16,6 +16,7 @@
 
 import sip
 sip.setapi('QString', 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-tray.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-tray.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-trpreviewer.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-trpreviewer.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-uipreviewer.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-uipreviewer.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-unittest.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-unittest.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4-webbrowser.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4-webbrowser.py	Wed Dec 30 15:40:33 2009 +0000
@@ -17,6 +17,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 for arg in sys.argv:
     if arg.startswith("--config="):
--- a/eric4.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/eric4.py	Wed Dec 30 15:40:33 2009 +0000
@@ -20,6 +20,7 @@
 
 import sip
 sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
 
 from PyQt4.QtCore import QTextCodec, SIGNAL, SLOT, qWarning, \
     QLibraryInfo, QTimer
--- a/install-i18n.py	Mon Dec 28 18:31:37 2009 +0000
+++ b/install-i18n.py	Wed Dec 30 15:40:33 2009 +0000
@@ -14,6 +14,10 @@
 import shutil
 import glob
 
+import sip
+sip.setapi("QString", 2)
+sip.setapi("QVariant", 2)
+
 from PyQt4.QtCore import QDir
 
 try:
@@ -36,7 +40,7 @@
     hp = QDir.homePath()
     dn = QDir(hp)
     dn.mkdir(cdn)
-    hp.append("/").append(cdn)
+    hp += "/" + cdn
     try:
         return QDir.toNativeSeparators(hp)
     except AttributeError:

eric ide

mercurial