Skip to content

Commit

Permalink
Moved "<multiple ..." string translations
Browse files Browse the repository at this point in the history
Instead of prematurely evaluated constants in the utils module they're
now a mixin class for whichever Qt widgets need them.
  • Loading branch information
jim-easterbrook committed Oct 15, 2015
1 parent aefc969 commit 17556d7
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 28 deletions.
6 changes: 3 additions & 3 deletions src/photini/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

from __future__ import unicode_literals

__version__ = '15.10.0.dev365'
_dev_no = '365'
_commit = '8d74a6b'
__version__ = '15.10.0.dev366'
_dev_no = '366'
_commit = 'aefc969'
13 changes: 6 additions & 7 deletions src/photini/descriptive.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,10 @@

from datetime import datetime

from .pyqt import Qt, QtCore, QtGui, QtWidgets, QT_VERSION
from .pyqt import Multiple, Qt, QtCore, QtGui, QtWidgets, QT_VERSION
from .spelling import SpellingHighlighter
from .utils import multiple_values

class MultiLineEdit(QtWidgets.QPlainTextEdit):
class MultiLineEdit(QtWidgets.QPlainTextEdit, Multiple):
editingFinished = QtCore.pyqtSignal()

def __init__(self, spell_check=False, *arg, **kw):
Expand Down Expand Up @@ -77,10 +76,10 @@ def get_value(self):
def set_multiple(self):
self._is_multiple = True
if QT_VERSION >= [5, 3]:
self.setPlaceholderText(multiple_values)
self.setPlaceholderText(self.multiple_values)
self.clear()
else:
self.setPlainText(multiple_values)
self.setPlainText(self.multiple_values)

def is_multiple(self):
return self._is_multiple and not bool(self.get_value())
Expand All @@ -105,7 +104,7 @@ def insertFromMimeData(self, source):
self.insertPlainText(source.text().replace('\n', ' '))


class LineEdit(QtWidgets.QLineEdit):
class LineEdit(QtWidgets.QLineEdit, Multiple):
def __init__(self, *arg, **kw):
super(LineEdit, self).__init__(*arg, **kw)
self._is_multiple = False
Expand All @@ -125,7 +124,7 @@ def get_value(self):

def set_multiple(self):
self._is_multiple = True
self.setPlaceholderText(multiple_values)
self.setPlaceholderText(self.multiple_values)
self.clear()

def is_multiple(self):
Expand Down
14 changes: 8 additions & 6 deletions src/photini/photinimap.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@
import six

from .imagelist import DRAG_MIMETYPE
from .pyqt import Qt, QtCore, QtWebKitWidgets, QtWidgets
from .utils import data_dir, multiple_values
from .pyqt import Multiple, Qt, QtCore, QtWebKitWidgets, QtWidgets
from .utils import data_dir
from . import __version__

translate = QtCore.QCoreApplication.translate

class WebPage(QtWebKitWidgets.QWebPage):
def __init__(self, parent=None):
QtWebKitWidgets.QWebPage.__init__(self, parent)
super(WebPage, self).__init__(parent)
self.logger = logging.getLogger(self.__class__.__name__)

def javaScriptConsoleMessage(self, msg, line, source):
Expand All @@ -50,6 +50,7 @@ def userAgentForUrl(self, url):
return 'Photini/' + __version__
return QtWebKitWidgets.QWebPage.userAgentForUrl(self, url)


class WebView(QtWebKitWidgets.QWebView):
drop_text = QtCore.pyqtSignal(int, int, six.text_type)
def dragEnterEvent(self, event):
Expand All @@ -68,9 +69,10 @@ def dropEvent(self, event):
if text:
self.drop_text.emit(event.pos().x(), event.pos().y(), text)

class PhotiniMap(QtWidgets.QWidget):

class PhotiniMap(QtWidgets.QWidget, Multiple):
def __init__(self, config_store, image_list, parent=None):
QtWidgets.QWidget.__init__(self, parent)
super(PhotiniMap, self).__init__(parent)
self.config_store = config_store
self.image_list = image_list
self.drag_icon = self.get_drag_icon()
Expand Down Expand Up @@ -260,7 +262,7 @@ def display_coords(self):
latlong = images[0].metadata.latlong
for image in images[1:]:
if image.metadata.latlong != latlong:
self.coords.setText(multiple_values)
self.coords.setText(self.multiple_values)
return
if latlong:
self.coords.setText(str(latlong))
Expand Down
10 changes: 10 additions & 0 deletions src/photini/pyqt.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,13 @@
from PyQt4.QtNetwork import QNetworkProxy

QT_VERSION = list(map(int, QtCore.QT_VERSION_STR.split('.')))

class Multiple(QtCore.QObject):
"""Mixin for Qt widgets to provide common translations of
"<multiple>" and "<multiple values>".
"""
def __init__(self, *arg, **kw):
super(Multiple, self).__init__(*arg, **kw)
self.multiple = self.tr('<multiple>')
self.multiple_values = self.tr('<multiple values>')
17 changes: 8 additions & 9 deletions src/photini/technical.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,16 @@
timedelta, datetime as pyDateTime, date as pyDate, time as pyTime)

from .metadata import LensSpec
from .pyqt import QtCore, QtGui, QtWidgets
from .utils import multiple
from .pyqt import Multiple, QtCore, QtGui, QtWidgets


class DropdownEdit(QtWidgets.QComboBox):
class DropdownEdit(QtWidgets.QComboBox, Multiple):
new_value = QtCore.pyqtSignal()

def __init__(self, *arg, **kw):
super(DropdownEdit, self).__init__(*arg, **kw)
self.addItem('', None)
self.addItem(multiple)
self.addItem(self.multiple)
self.currentIndexChanged.connect(self._new_value)

@QtCore.pyqtSlot(int)
Expand Down Expand Up @@ -69,7 +68,7 @@ def is_multiple(self):
return self.currentIndex() == self.count() - 1


class FloatEdit(QtWidgets.QLineEdit):
class FloatEdit(QtWidgets.QLineEdit, Multiple):
def __init__(self, *arg, **kw):
super(FloatEdit, self).__init__(*arg, **kw)
self.setValidator(DoubleValidator())
Expand All @@ -88,14 +87,14 @@ def get_value(self):

def set_multiple(self):
self._is_multiple = True
self.setPlaceholderText(multiple)
self.setPlaceholderText(self.multiple)
self.clear()

def is_multiple(self):
return self._is_multiple and not bool(self.get_value())


class DateTimeEdit(QtWidgets.QHBoxLayout):
class DateTimeEdit(QtWidgets.QHBoxLayout, Multiple):
new_value = QtCore.pyqtSignal(object)

def __init__(self, is_date, *arg, **kw):
Expand Down Expand Up @@ -145,8 +144,8 @@ def set_value(self, value):
def set_multiple(self):
self.is_none = True
# first time setText is called sometimes doesn't show
self.line_edit.setText(multiple)
self.line_edit.setText(multiple)
self.line_edit.setText(self.multiple)
self.line_edit.setText(self.multiple)

def editing_finished(self):
self.is_none = False
Expand Down
3 changes: 0 additions & 3 deletions src/photini/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@

data_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'data', '')

multiple = QtWidgets.QApplication.translate('utils', '<multiple>')
multiple_values = QtWidgets.QApplication.translate('utils', '<multiple values>')

_image_types = None

def image_types():
Expand Down

0 comments on commit 17556d7

Please sign in to comment.