diff --git a/plover/Plover.config b/plover/Plover.config
new file mode 100644
index 000000000..e0284f425
--- /dev/null
+++ b/plover/Plover.config
@@ -0,0 +1,2 @@
+// Add predefined macros for your project here. For example:
+// #define THE_ANSWER 42
diff --git a/plover/Plover.creator b/plover/Plover.creator
new file mode 100644
index 000000000..e94cbbd30
--- /dev/null
+++ b/plover/Plover.creator
@@ -0,0 +1 @@
+[General]
diff --git a/plover/Plover.files b/plover/Plover.files
new file mode 100644
index 000000000..7d2c57e13
--- /dev/null
+++ b/plover/Plover.files
@@ -0,0 +1,294 @@
+__pycache__/__init__.cpython-35.pyc
+__pycache__/app.cpython-35.pyc
+__pycache__/config.cpython-35.pyc
+__pycache__/exception.cpython-35.pyc
+__pycache__/formatting.cpython-35.pyc
+__pycache__/key_combo.cpython-35.pyc
+__pycache__/log.cpython-35.pyc
+__pycache__/main.cpython-35.pyc
+__pycache__/misc.cpython-35.pyc
+__pycache__/orthography.cpython-35.pyc
+__pycache__/steno.cpython-35.pyc
+__pycache__/steno_dictionary.cpython-35.pyc
+__pycache__/suggestions.cpython-35.pyc
+__pycache__/translation.cpython-35.pyc
+assets/american_english_words.txt
+assets/commands.json
+assets/connected.png
+assets/disconnected.png
+assets/down.png
+assets/main.json
+assets/plover-icon.svg
+assets/plover.ico
+assets/plover.png
+assets/refresh.png
+assets/remove.png
+assets/spinner.gif
+assets/up.png
+assets/user.json
+dictionary/__pycache__/__init__.cpython-35.pyc
+dictionary/__pycache__/base.cpython-35.pyc
+dictionary/__pycache__/json_dict.cpython-35.pyc
+dictionary/__pycache__/loading_manager.cpython-35.pyc
+dictionary/__pycache__/rtfcre_dict.cpython-35.pyc
+dictionary/__init__.py
+dictionary/__init__.pyc
+dictionary/base.py
+dictionary/base.pyc
+dictionary/json_dict.py
+dictionary/json_dict.pyc
+dictionary/loading_manager.py
+dictionary/loading_manager.pyc
+dictionary/rtfcre_dict.py
+dictionary/rtfcre_dict.pyc
+gui/__init__.pyc
+gui/add_translation.pyc
+gui/config.pyc
+gui/dictionary_editor.pyc
+gui/keyboard_config.pyc
+gui/log.pyc
+gui/log_osx.pyc
+gui/lookup.pyc
+gui/main.pyc
+gui/paper_tape.pyc
+gui/serial_config.pyc
+gui/suggestions.pyc
+gui/util.pyc
+gui_qt/__pycache__/__init__.cpython-35.pyc
+gui_qt/__pycache__/about_dialog.cpython-35.pyc
+gui_qt/__pycache__/about_dialog_ui.cpython-35.pyc
+gui_qt/__pycache__/add_translation.cpython-35.pyc
+gui_qt/__pycache__/add_translation_ui.cpython-35.pyc
+gui_qt/__pycache__/config_file_widget_ui.cpython-35.pyc
+gui_qt/__pycache__/config_keyboard_widget_ui.cpython-35.pyc
+gui_qt/__pycache__/config_serial_widget_ui.cpython-35.pyc
+gui_qt/__pycache__/config_window.cpython-35.pyc
+gui_qt/__pycache__/config_window_ui.cpython-35.pyc
+gui_qt/__pycache__/dictionary_editor.cpython-35.pyc
+gui_qt/__pycache__/dictionary_editor_ui.cpython-35.pyc
+gui_qt/__pycache__/dictionary_manager.cpython-35.pyc
+gui_qt/__pycache__/dictionary_manager_ui.cpython-35.pyc
+gui_qt/__pycache__/engine.cpython-35.pyc
+gui_qt/__pycache__/i18n.cpython-35.pyc
+gui_qt/__pycache__/log_qt.cpython-35.pyc
+gui_qt/__pycache__/lookup_dialog.cpython-35.pyc
+gui_qt/__pycache__/lookup_dialog_ui.cpython-35.pyc
+gui_qt/__pycache__/main.cpython-35.pyc
+gui_qt/__pycache__/main_window.cpython-35.pyc
+gui_qt/__pycache__/main_window_ui.cpython-35.pyc
+gui_qt/__pycache__/paper_tape.cpython-35.pyc
+gui_qt/__pycache__/paper_tape_ui.cpython-35.pyc
+gui_qt/__pycache__/resources_rc.cpython-35.pyc
+gui_qt/__pycache__/suggestions_dialog.cpython-35.pyc
+gui_qt/__pycache__/suggestions_dialog_ui.cpython-35.pyc
+gui_qt/__pycache__/suggestions_widget.cpython-35.pyc
+gui_qt/__pycache__/suggestions_widget_ui.cpython-35.pyc
+gui_qt/__pycache__/trayicon.cpython-35.pyc
+gui_qt/__pycache__/utils.cpython-35.pyc
+gui_qt/messages/fr/LC_MESSAGES/plover.mo
+gui_qt/messages/fr/LC_MESSAGES/plover.po
+gui_qt/messages/plover.pot
+gui_qt/resources/add-translation.svg
+gui_qt/resources/add.png
+gui_qt/resources/add.svg
+gui_qt/resources/books.svg
+gui_qt/resources/clear.png
+gui_qt/resources/delete.png
+gui_qt/resources/delete.svg
+gui_qt/resources/dictionary.png
+gui_qt/resources/edit.png
+gui_qt/resources/erase.svg
+gui_qt/resources/font.png
+gui_qt/resources/font.svg
+gui_qt/resources/lightbulb.png
+gui_qt/resources/lightbulb.svg
+gui_qt/resources/magnify.svg
+gui_qt/resources/new.png
+gui_qt/resources/on-top.png
+gui_qt/resources/pencil.svg
+gui_qt/resources/pin-off.svg
+gui_qt/resources/pin.svg
+gui_qt/resources/plover.png
+gui_qt/resources/preferences.png
+gui_qt/resources/refresh.png
+gui_qt/resources/refresh.svg
+gui_qt/resources/resources.qrc
+gui_qt/resources/save.png
+gui_qt/resources/save.svg
+gui_qt/resources/search.png
+gui_qt/resources/settings.svg
+gui_qt/resources/state-disabled.png
+gui_qt/resources/state-disconnected.png
+gui_qt/resources/state-enabled.png
+gui_qt/resources/states.xcf
+gui_qt/resources/suggestions.png
+gui_qt/resources/tape.png
+gui_qt/resources/tape.svg
+gui_qt/resources/undo.png
+gui_qt/resources/undo.svg
+gui_qt/__init__.py
+gui_qt/about_dialog.py
+gui_qt/about_dialog.ui
+gui_qt/about_dialog_ui.py
+gui_qt/add_translation.py
+gui_qt/add_translation.ui
+gui_qt/add_translation_ui.py
+gui_qt/config_file_widget.ui
+gui_qt/config_file_widget_ui.py
+gui_qt/config_keyboard_widget.ui
+gui_qt/config_keyboard_widget_ui.py
+gui_qt/config_serial_widget.ui
+gui_qt/config_serial_widget_ui.py
+gui_qt/config_window.py
+gui_qt/config_window.ui
+gui_qt/config_window_ui.py
+gui_qt/dictionary_editor.py
+gui_qt/dictionary_editor.ui
+gui_qt/dictionary_editor_ui.py
+gui_qt/dictionary_manager.py
+gui_qt/dictionary_manager.ui
+gui_qt/dictionary_manager_ui.py
+gui_qt/engine.py
+gui_qt/i18n.py
+gui_qt/log_qt.py
+gui_qt/lookup_dialog.py
+gui_qt/lookup_dialog.ui
+gui_qt/lookup_dialog_ui.py
+gui_qt/main.py
+gui_qt/main_window.py
+gui_qt/main_window.ui
+gui_qt/main_window_ui.py
+gui_qt/paper_tape.py
+gui_qt/paper_tape.ui
+gui_qt/paper_tape_ui.py
+gui_qt/resources_rc.py
+gui_qt/suggestions_dialog.py
+gui_qt/suggestions_dialog.ui
+gui_qt/suggestions_dialog_ui.py
+gui_qt/suggestions_widget.py
+gui_qt/suggestions_widget.ui
+gui_qt/suggestions_widget_ui.py
+gui_qt/trayicon.py
+gui_qt/utils.py
+gui_wx/__init__.py
+gui_wx/__init__.pyc
+gui_wx/add_translation.py
+gui_wx/add_translation.pyc
+gui_wx/config.py
+gui_wx/config.pyc
+gui_wx/dictionary_editor.py
+gui_wx/dictionary_editor.pyc
+gui_wx/dictionary_editor_store.py
+gui_wx/dictionary_editor_store.pyc
+gui_wx/keyboard_config.py
+gui_wx/keyboard_config.pyc
+gui_wx/log.py
+gui_wx/log.pyc
+gui_wx/log_wx.py
+gui_wx/lookup.py
+gui_wx/lookup.pyc
+gui_wx/main.py
+gui_wx/main.pyc
+gui_wx/paper_tape.py
+gui_wx/paper_tape.pyc
+gui_wx/serial_config.py
+gui_wx/serial_config.pyc
+gui_wx/suggestions.py
+gui_wx/suggestions.pyc
+gui_wx/util.py
+gui_wx/util.pyc
+machine/__pycache__/__init__.cpython-35.pyc
+machine/__pycache__/base.cpython-35.pyc
+machine/__pycache__/geminipr.cpython-35.pyc
+machine/__pycache__/keyboard.cpython-35.pyc
+machine/__pycache__/keymap.cpython-35.pyc
+machine/__pycache__/passport.cpython-35.pyc
+machine/__pycache__/registry.cpython-35.pyc
+machine/__pycache__/stentura.cpython-35.pyc
+machine/__pycache__/treal.cpython-35.pyc
+machine/__pycache__/txbolt.cpython-35.pyc
+machine/__init__.py
+machine/__init__.pyc
+machine/base.py
+machine/base.pyc
+machine/geminipr.py
+machine/geminipr.pyc
+machine/keyboard.py
+machine/keyboard.pyc
+machine/keymap.py
+machine/keymap.pyc
+machine/passport.py
+machine/passport.pyc
+machine/registry.py
+machine/registry.pyc
+machine/stentura.py
+machine/stentura.pyc
+machine/treal.py
+machine/treal.pyc
+machine/txbolt.py
+machine/txbolt.pyc
+oslayer/__pycache__/__init__.cpython-35.pyc
+oslayer/__pycache__/config.cpython-35.pyc
+oslayer/__pycache__/keyboardcontrol.cpython-35.pyc
+oslayer/__pycache__/log_osx.cpython-35.pyc
+oslayer/__pycache__/osxkeyboardcontrol.cpython-35.pyc
+oslayer/__pycache__/osxkeyboardlayout.cpython-35.pyc
+oslayer/__pycache__/processlock.cpython-35.pyc
+oslayer/__pycache__/utils.cpython-35.pyc
+oslayer/__init__.py
+oslayer/__init__.pyc
+oslayer/comscan.pyc
+oslayer/config.py
+oslayer/config.pyc
+oslayer/keyboardcontrol.py
+oslayer/keyboardcontrol.pyc
+oslayer/list_ports_posix.pyc
+oslayer/log_dbus.py
+oslayer/log_osx.py
+oslayer/log_osx.pyc
+oslayer/mac_keycode.pyc
+oslayer/osxkeyboardcontrol.py
+oslayer/osxkeyboardcontrol.pyc
+oslayer/osxkeyboardlayout.py
+oslayer/osxkeyboardlayout.pyc
+oslayer/processlock.py
+oslayer/processlock.pyc
+oslayer/utils.py
+oslayer/winkeyboardcontrol.py
+oslayer/winkeyboardlayout.py
+oslayer/xkeyboardcontrol.py
+system/__pycache__/__init__.cpython-35.pyc
+system/__pycache__/english_stenotype.cpython-35.pyc
+system/__init__.py
+system/__init__.pyc
+system/english_stenotype.py
+system/english_stenotype.pyc
+__init__.py
+__init__.pyc
+app.py
+app.pyc
+config.py
+config.pyc
+dictionary_editor_store.pyc
+exception.py
+exception.pyc
+formatting.py
+formatting.pyc
+key_combo.py
+key_combo.pyc
+log.py
+log.pyc
+main.py
+main.pyc
+misc.py
+misc.pyc
+orthography.py
+orthography.pyc
+steno.py
+steno.pyc
+steno_dictionary.py
+steno_dictionary.pyc
+suggestions.py
+suggestions.pyc
+translation.py
+translation.pyc
\ No newline at end of file
diff --git a/plover/Plover.includes b/plover/Plover.includes
new file mode 100644
index 000000000..e69de29bb
diff --git a/plover/gui_qt/dictionary_editor.py b/plover/gui_qt/dictionary_editor.py
index 6c8019213..8cdd42f3b 100644
--- a/plover/gui_qt/dictionary_editor.py
+++ b/plover/gui_qt/dictionary_editor.py
@@ -20,8 +20,7 @@
from plover.steno import normalize_steno
from plover.gui_qt.dictionary_editor_ui import Ui_DictionaryEditor
-from plover.gui_qt.utils import ToolBar, WindowState
-
+from plover.gui_qt.utils import ToolBar, WindowState, SetSvgIcons
DictionaryItem = namedtuple('DictionaryItem', 'strokes translation dictionary')
@@ -263,6 +262,7 @@ class DictionaryEditor(QDialog, Ui_DictionaryEditor, WindowState):
def __init__(self, engine, dictionary_paths, parent=None):
super(DictionaryEditor, self).__init__(parent)
self.setupUi(self)
+ SetSvgIcons(self)
self._engine = engine
with engine:
dictionary_list = [
diff --git a/plover/gui_qt/dictionary_manager.py b/plover/gui_qt/dictionary_manager.py
index 5d5bd6bda..70502bf0e 100644
--- a/plover/gui_qt/dictionary_manager.py
+++ b/plover/gui_qt/dictionary_manager.py
@@ -12,7 +12,7 @@
from plover.gui_qt.dictionary_manager_ui import Ui_DictionaryManager
from plover.gui_qt.dictionary_editor import DictionaryEditor
-from plover.gui_qt.utils import ToolBar, WindowState
+from plover.gui_qt.utils import ToolBar, WindowState, SetSvgIcons
class DictionaryManager(QDialog, Ui_DictionaryManager, WindowState):
@@ -22,6 +22,7 @@ class DictionaryManager(QDialog, Ui_DictionaryManager, WindowState):
def __init__(self, engine):
super(DictionaryManager, self).__init__()
self.setupUi(self)
+ SetSvgIcons(self)
self._engine = engine
self._states = []
self._dictionaries = []
@@ -37,7 +38,6 @@ def __init__(self, engine):
self.action_EditDictionaries,
self.action_RemoveDictionaries,
self.action_AddDictionaries,
- self.action_AddTranslation,
))
self._update_dictionaries(engine.config['dictionary_file_names'],
record=False, save=False)
@@ -174,6 +174,3 @@ def on_add_dictionaries(self):
if filename not in dictionaries:
dictionaries.append(filename)
self._update_dictionaries(dictionaries)
-
- def on_add_translation(self):
- self._engine.command_add_translation.emit()
diff --git a/plover/gui_qt/dictionary_manager.ui b/plover/gui_qt/dictionary_manager.ui
index 68f7c736c..338f58d31 100644
--- a/plover/gui_qt/dictionary_manager.ui
+++ b/plover/gui_qt/dictionary_manager.ui
@@ -117,21 +117,6 @@
Ctrl+O
-
-
-
- :/new.png:/new.png
-
-
- &New translation
-
-
- Add a new translation
-
-
- Ctrl+N
-
-
@@ -218,22 +203,6 @@
-
- action_AddTranslation
- triggered()
- DictionaryManager
- on_add_translation()
-
-
- -1
- -1
-
-
- 199
- 149
-
-
-
table
itemDoubleClicked(QTableWidgetItem*)
diff --git a/plover/gui_qt/lookup_dialog.py b/plover/gui_qt/lookup_dialog.py
index 9716ae419..d30753592 100644
--- a/plover/gui_qt/lookup_dialog.py
+++ b/plover/gui_qt/lookup_dialog.py
@@ -8,7 +8,7 @@
from plover.gui_qt.lookup_dialog_ui import Ui_LookupDialog
from plover.gui_qt.suggestions_widget import SuggestionsWidget
-from plover.gui_qt.utils import WindowState
+from plover.gui_qt.utils import WindowState, SetSvgIcons
class LookupDialog(QDialog, Ui_LookupDialog, WindowState):
@@ -18,6 +18,7 @@ class LookupDialog(QDialog, Ui_LookupDialog, WindowState):
def __init__(self, engine):
super(LookupDialog, self).__init__()
self.setupUi(self)
+ SetSvgIcons(self)
suggestions = SuggestionsWidget()
self.layout().replaceWidget(self.suggestions, suggestions)
self.suggestions = suggestions
diff --git a/plover/gui_qt/lookup_dialog.ui b/plover/gui_qt/lookup_dialog.ui
index 4415043eb..d87984a69 100644
--- a/plover/gui_qt/lookup_dialog.ui
+++ b/plover/gui_qt/lookup_dialog.ui
@@ -22,73 +22,50 @@
true
-
- -
-
-
- Qt::Horizontal
-
-
- QDialogButtonBox::Cancel
-
-
-
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
-
-
-
-
- 0
- 0
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+ pattern
+ pattern
+ pattern
+
+
+
-
- buttonBox
- accepted()
- LookupDialog
- accept()
-
-
- 248
- 254
-
-
- 157
- 274
-
-
-
-
- buttonBox
- rejected()
- LookupDialog
- reject()
-
-
- 316
- 260
-
-
- 286
- 274
-
-
-
pattern
textEdited(QString)
diff --git a/plover/gui_qt/main.py b/plover/gui_qt/main.py
index c993afb49..5cd67481f 100644
--- a/plover/gui_qt/main.py
+++ b/plover/gui_qt/main.py
@@ -12,6 +12,7 @@
QLibraryInfo,
QTimer,
QTranslator,
+ Qt,
)
from PyQt5.QtWidgets import QApplication, QMessageBox
@@ -42,6 +43,7 @@ def __init__(self, config, use_qt_notifications):
QCoreApplication.setOrganizationDomain('openstenoproject.org')
self._app = QApplication(sys.argv[:1])
+ self._app.setAttribute(Qt.AA_UseHighDpiPixmaps)
# Enable localization of standard Qt controls.
self._translator = QTranslator()
diff --git a/plover/gui_qt/main_window.py b/plover/gui_qt/main_window.py
index d3de7c7d8..d0a6b4bdb 100644
--- a/plover/gui_qt/main_window.py
+++ b/plover/gui_qt/main_window.py
@@ -23,7 +23,7 @@
from plover.gui_qt.about_dialog import AboutDialog
from plover.gui_qt.paper_tape import PaperTape
from plover.gui_qt.trayicon import TrayIcon
-from plover.gui_qt.utils import WindowState, find_menu_actions
+from plover.gui_qt.utils import WindowState, find_menu_actions, SetSvgIcons
class MainWindow(QMainWindow, Ui_MainWindow, WindowState):
@@ -33,6 +33,7 @@ class MainWindow(QMainWindow, Ui_MainWindow, WindowState):
def __init__(self, engine, use_qt_notifications):
super(MainWindow, self).__init__()
self.setupUi(self)
+ SetSvgIcons(self)
self._engine = engine
self._active_dialogs = {}
self._dialog_class = {
diff --git a/plover/gui_qt/main_window.ui b/plover/gui_qt/main_window.ui
index 24a143557..17019c212 100644
--- a/plover/gui_qt/main_window.ui
+++ b/plover/gui_qt/main_window.ui
@@ -9,8 +9,8 @@
0
0
- 258
- 124
+ 323
+ 159
@@ -26,6 +26,15 @@
:/plover.png:/plover.png
+
+
+ 48
+ 48
+
+
+
+ true
+
@@ -67,8 +76,8 @@
0
0
- 258
- 19
+ 323
+ 22