Commit 2845dc0d authored by SVN-Git Migration's avatar SVN-Git Migration

Imported Upstream version 3.0.0~git20161001.0.eec60717+ds1

parent 89101c12
*.pyc
*~
build/
dist/
This diff is collapsed.
INSTALL for Frescobaldi 2
=========================
INSTALL for Frescobaldi
=======================
You can run Frescobaldi without installing. Just unpack and then run:
python frescobaldi
python3 frescobaldi
The Frescobaldi package is based on distutils. No build process is needed as
Frescobaldi is fully written in the interpreted Python language. To install in
the default location:
sudo python setup.py install
sudo python3 setup.py install
To run Frescobaldi, then simply type
......@@ -17,12 +17,12 @@ To run Frescobaldi, then simply type
If you want to install into /usr instead of /usr/local:
python setup.py install --prefix=/usr
python3 setup.py install --prefix=/usr
If you have a Debian-based system such as Ubuntu, and you get the error
message "ImportError: No module named frescobaldi_app.main", try:
python setup.py install --install-layout=deb
python3 setup.py install --install-layout=deb
See the distutils documentation for more install options.
......@@ -37,9 +37,8 @@ NOTE: Since 2.18, Frescobaldi depends on the python-ly module, which needs to
Dependencies
============
Frescobaldi 2 is written in Python (Python 2.7 and Python 3.2+ are supported)
and depends on Qt4.7 and PyQt4.8, and uses the python-poppler-qt4 binding to
Poppler for the built-in PDF preview.
Frescobaldi is written in Python and depends on Qt >= 5.4 and PyQt >= 5.4, and
uses the python-poppler-qt5 binding to Poppler for the built-in PDF preview.
For MIDI the PortMidi library is used, either via importing 'pypm',
'pyportmidi._pyportmidi', or, if that is not available, loading the pygame.pypm
......@@ -47,18 +46,18 @@ module from pygame; or, as a last resort, embedding the PortMidi C-library via
ctypes. MIDI is optional.
Required:
Python (2.7 or >= 3.2):
Python (>= 3.2):
http://www.python.org/
Qt4 (>= 4.7):
http://qt.nokia.com/
PyQt4 (>= 4.8.3):
Qt5 (>= 5.4):
http://qt.io/
PyQt5 (>= 5.4):
http://www.riverbankcomputing.co.uk/software/pyqt/
python-ly (>= 0.9.4):
https://pypi.python.org/pypi/python-ly
Poppler:
http://poppler.freedesktop.org/
python-poppler-qt4:
https://github.com/wbsoft/python-poppler-qt4
python-poppler-qt5:
https://github.com/wbsoft/python-poppler-qt5
Optional but recommended:
PortMidi:
......@@ -68,10 +67,7 @@ Suggested:
LilyPond:
http://www.lilypond.org/
Python 3.2 (or higher) is recommended above Python 2.7, but Python 2.7 will
continue to be supported during the full Frescobaldi 2 lifecycle.
Of course, PyQt4, python-poppler-qt4, python-ly, and pypm or pyportmidi need
Of course, PyQt5, python-poppler-qt5, python-ly, and pypm or pyportmidi need
to be installed for the same Python version as Frescobaldi itself.
LilyPond is not a dependency of Frescobaldi, but of course you'll need to
......@@ -82,7 +78,7 @@ install one or more versions of LilyPond to make sensible use of Frescobaldi!
==================
The freeze.py script can create a self-contained Windows-installer, bundling all
of Python, PyQt4, popplerqt4 and pypm (from pygame) when used on MS Windows.
of Python, PyQt5, popplerqt5 and pypm (from pygame) when used on MS Windows.
To use the script you need cx_Freeze and Inno Setup.
......@@ -130,5 +126,5 @@ Hyphenation dictionaries:
You can remove the hyph_*.dic files from frescobaldi_app/hyphdicts, and make
Frescobaldi depend on a package that installs hyphenation dictionaries in
/usr/share/hyphen/ (or another dictionary listed by default in frescobaldi_app/
hyphendialog.py).
hyphendialog.py). Do not remove the hyphdicts directory entirely.
Metadata-Version: 1.1
Name: frescobaldi
Version: 2.19.0
Summary: LilyPond Music Editor
Home-page: http://www.frescobaldi.org/
Author: Wilbert Berendsen
Author-email: info@frescobaldi.org
License: GPL
Description: Frescobaldi is an advanced text editor to edit LilyPond sheet music files. Features include an integrated PDF preview and a powerful Score Wizard.
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: MacOS X
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Natural Language :: Chinese (Traditional)
Classifier: Natural Language :: Czech
Classifier: Natural Language :: Dutch
Classifier: Natural Language :: English
Classifier: Natural Language :: French
Classifier: Natural Language :: Galician
Classifier: Natural Language :: German
Classifier: Natural Language :: Italian
Classifier: Natural Language :: Polish
Classifier: Natural Language :: Portuguese (Brazilian)
Classifier: Natural Language :: Russian
Classifier: Natural Language :: Spanish
Classifier: Natural Language :: Turkish
Classifier: Natural Language :: Ukranian
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Text Editors
README for Frescobaldi 2
========================
README for Frescobaldi
======================
Homepage: http://www.frescobaldi.org/
Main author: Wilbert Berendsen
......@@ -23,8 +23,8 @@ Features:
- Import ABC, Midi and MusicXML using the LilyPond-provided tools
- Experimental export to MusicXML
- Modern user interface with configurable colors, fonts and keyboard shortcuts
- Translated into: Dutch, English, French, German, Italian, Czech, Russian,
Spanish, Galician, Turkish, Polish, Brazilian and Ukrainian.
- Translated into: Dutch, English, French, German, Italian, Swedish, Czech,
Russian, Spanish, Galician, Turkish, Polish, Brazilian and Ukrainian.
Music functions:
......@@ -54,7 +54,7 @@ Here is an idea of the basic Frescobaldi workflow:
- When a piece is finished, press Ctrl+Shift+P once to run LilyPond with point
and click turned off (this results in a much smaller PDF file).
Frescobaldi is written in Python and uses PyQt4 for its user interface.
Frescobaldi is written in Python and uses PyQt for its user interface.
See the INSTALL file for other requirements and installation instructions.
......@@ -65,7 +65,7 @@ get it's own branch "v2"
2. Require and make use of PyQt5 and Qt5 (recompile/update poppler-qt4)
3. SVG music view and editor
Make a new music view that displays the SVG output of LilyPond and allows
for very fine-grained editing, both via altering the LilyPond source but
also editing and saving the SVG file manually to provide a final PDF
......@@ -92,4 +92,12 @@ Other ideas/wishes
- \displayMusic tool to show music in Scheme format (by calling LilyPond's
\displayMusic function on a music expression).
- extended manuscript viewer:
* `<filename>.manuscripts` file to tie a (set of) manuscript(s) to a LilyPond
document. This may be a simple JSON file or an MEI file (for further
scholarly edition options)
* create regions on the manuscript(s) identifying the physical location of
measures. Use these for synchronizing the view with the editor and the
music view.
* Display a given measure/region in the different manuscripts
* Provide compiled scores matching the manuscripts' line and page breaks.
Metadata-Version: 1.1
Name: frescobaldi
Version: 2.19.0
Summary: LilyPond Music Editor
Home-page: http://www.frescobaldi.org/
Author: Wilbert Berendsen
Author-email: info@frescobaldi.org
License: GPL
Description: Frescobaldi is an advanced text editor to edit LilyPond sheet music files. Features include an integrated PDF preview and a powerful Score Wizard.
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: MacOS X
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Natural Language :: Chinese (Traditional)
Classifier: Natural Language :: Czech
Classifier: Natural Language :: Dutch
Classifier: Natural Language :: English
Classifier: Natural Language :: French
Classifier: Natural Language :: Galician
Classifier: Natural Language :: German
Classifier: Natural Language :: Italian
Classifier: Natural Language :: Polish
Classifier: Natural Language :: Portuguese (Brazilian)
Classifier: Natural Language :: Russian
Classifier: Natural Language :: Spanish
Classifier: Natural Language :: Turkish
Classifier: Natural Language :: Ukranian
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Text Editors
This diff is collapsed.
......@@ -22,10 +22,9 @@
About dialog.
"""
from __future__ import unicode_literals
from PyQt4.QtCore import QSettings, QSize, Qt, QUrl
from PyQt4.QtGui import (
from PyQt5.QtCore import QSettings, QSize, Qt, QUrl
from PyQt5.QtWidgets import (
QDialog, QDialogButtonBox, QLabel, QLayout, QTabWidget, QTextBrowser,
QVBoxLayout, QWidget)
......
......@@ -42,12 +42,12 @@ which then should call setShortcuts() to do it. The module may also query the
currently set shortcuts for an action using shortcuts().
"""
from __future__ import unicode_literals
import weakref
from PyQt4.QtCore import QSettings, Qt
from PyQt4.QtGui import QAction, QKeySequence
from PyQt5.QtCore import QSettings, Qt
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import QAction
import app
......@@ -103,7 +103,7 @@ class ActionCollectionBase(object):
def settingsGroup(self):
"""Returns settings group to load/save shortcuts from or to."""
s = QSettings()
scheme = s.value("shortcut_scheme", "default", type(""))
scheme = s.value("shortcut_scheme", "default", str)
s.beginGroup("shortcuts/{0}/{1}".format(scheme, self.name))
return s
......@@ -195,7 +195,7 @@ class ActionCollection(ActionCollectionBase):
try:
shortcuts = settings.value(name, [], QKeySequence)
except TypeError:
# PyQt4 raises TypeError when an empty list was stored
# PyQt5 raises TypeError when an empty list was stored
shortcuts = []
try:
self._actions[name].setShortcuts(shortcuts)
......@@ -263,7 +263,7 @@ class ShortcutCollection(ActionCollectionBase):
try:
shortcuts = settings.value(name, [], QKeySequence)
except TypeError:
# PyQt4 raises TypeError when an empty list was stored
# PyQt5 raises TypeError when an empty list was stored
shortcuts = []
if not shortcuts:
if not self.removeAction(name):
......
......@@ -25,7 +25,6 @@ This makes it possible to edit actions and check whether keyboard shortcuts of
actions conflict with other actions.
"""
from __future__ import unicode_literals
import weakref
......
......@@ -21,14 +21,13 @@
The global things in Frescobaldi.
"""
from __future__ import unicode_literals
from __future__ import print_function
import os
import sys
from PyQt4.QtCore import QSettings, QThread
from PyQt4.QtGui import QApplication
from PyQt5.QtCore import QSettings, QThread
from PyQt5.QtWidgets import QApplication
import appinfo
......@@ -202,10 +201,10 @@ def basedir():
import sessions
conf = sessions.currentSessionGroup()
if conf:
basedir = conf.value("basedir", "", type(""))
basedir = conf.value("basedir", "", str)
if basedir:
return basedir
return QSettings().value("basedir", "", type(""))
return QSettings().value("basedir", "", str)
def settings(name):
"""Returns a QSettings object referring a file in ~/.config/frescobaldi/"""
......
......@@ -22,11 +22,10 @@
Information about the Frescobaldi application.
"""
from __future__ import unicode_literals
# these variables are also used by the distutils setup
name = "frescobaldi"
version = "2.19.0"
version = "3.0.0"
description = "LilyPond Music Editor"
long_description = \
"Frescobaldi is an advanced text editor to edit LilyPond sheet music files. " \
......
......@@ -21,10 +21,10 @@
Auto-completes entered text.
"""
from __future__ import unicode_literals
from PyQt4.QtCore import QSettings, Qt
from PyQt4.QtGui import QAction, QKeySequence
from PyQt5.QtCore import QSettings, Qt
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import QAction
import app
import actioncollection
......
......@@ -21,7 +21,6 @@
Analyze text to determine suitable completions.
"""
from __future__ import unicode_literals
import re
import os
......
......@@ -21,11 +21,10 @@
The completer for Frescobaldi.
"""
from __future__ import unicode_literals
import re
from PyQt4.QtGui import QTextCursor
from PyQt5.QtGui import QTextCursor
import app
import textformats
......
......@@ -21,12 +21,11 @@
All completions data.
"""
from __future__ import unicode_literals
import itertools
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QFont, QFontDatabase
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont, QFontDatabase
import listmodel
import ly.words
......
......@@ -21,12 +21,6 @@
Completions data harvested from a Document.
"""
from __future__ import unicode_literals
try:
str = unicode
except NameError:
pass
import itertools
import os
......
......@@ -21,7 +21,6 @@
Harvest strings from document for autocompletion purposes.
"""
from __future__ import unicode_literals
import itertools
import re
......
......@@ -21,7 +21,6 @@
Utility functions used in the autocomplete package.
"""
from __future__ import unicode_literals
import functools
import time
......
......@@ -21,12 +21,11 @@
Backup files before overwriting
"""
from __future__ import unicode_literals
import os
import shutil
from PyQt4.QtCore import QSettings
from PyQt5.QtCore import QSettings
def backup(filename):
......
......@@ -21,10 +21,9 @@
Manages the actions that manipulate the bookmarks (see also bookmarks.py).
"""
from __future__ import unicode_literals
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QAction
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QAction
import actioncollection
import actioncollectionmanager
......@@ -81,14 +80,14 @@ class BookmarkManager(plugin.MainWindowPlugin):
cursor = view.textCursor()
cursor = bookmarks.bookmarks(view.document()).nextMark(cursor)
if cursor:
view.setTextCursor(cursor)
view.gotoTextCursor(cursor)
def previousMark(self):
view = self.mainwindow().currentView()
cursor = view.textCursor()
cursor = bookmarks.bookmarks(view.document()).previousMark(cursor)
if cursor:
view.setTextCursor(cursor)
view.gotoTextCursor(cursor)
class Actions(actioncollection.ActionCollection):
......
......@@ -28,12 +28,11 @@ and 'error' (marking a line containing an error).
"""
from __future__ import unicode_literals
import bisect
import json
from PyQt4.QtGui import QTextCursor
from PyQt5.QtGui import QTextCursor
import metainfo
import signals
......@@ -88,7 +87,7 @@ class Bookmarks(plugin.DocumentPlugin):
index = bisect.bisect_left(nums, linenum)
mark = QTextCursor(self.document().findBlockByNumber(linenum))
try:
# only available in very recent PyQt4 versions
# only available in very recent PyQt5 versions
mark.setKeepPositionOnInsert(True)
except AttributeError:
pass
......@@ -123,7 +122,7 @@ class Bookmarks(plugin.DocumentPlugin):
else:
mark = QTextCursor(self.document().findBlockByNumber(linenum))
try:
# only available in very recent PyQt4 versions
# only available in very recent PyQt5 versions
mark.setKeepPositionOnInsert(True)
except AttributeError:
pass
......
......@@ -25,10 +25,10 @@ Provides buttons to go back or forward.
"""
from __future__ import unicode_literals
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QAction, QKeySequence
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QKeySequence
from PyQt5.QtWidgets import QAction
import app
import actioncollection
......
......@@ -21,9 +21,8 @@
Functions to compose a bugreport via e-mail and to get version information.
"""
from __future__ import unicode_literals
from PyQt4.QtCore import QUrl
from PyQt5.QtCore import QUrl, QUrlQuery
import helpers
import appinfo
......@@ -35,7 +34,9 @@ def email(subject, body):
subject = "[{0} {1}] {2}".format(appinfo.appname, appinfo.version, subject)
body = "{0}\n\n{1}\n\n".format(debuginfo.version_info_string(' -- '), body)
url = QUrl("mailto:" + appinfo.maintainer_email)
url.addQueryItem("subject", subject)
url.addQueryItem("body", body)
query = QUrlQuery()
query.addQueryItem("subject", subject)
query.addQueryItem("body", body)
url.setQuery(query)
helpers.openUrl(url, "email")
......@@ -93,7 +93,6 @@ This module uses the signals module for the callback logic.
"""
from __future__ import unicode_literals
import weakref
......
......@@ -21,10 +21,9 @@
The special characters tool.
"""
from __future__ import unicode_literals
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QKeySequence
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QKeySequence
import panel
......