diff -Nru veusz-1.26.1/ChangeLog veusz-1.27/ChangeLog --- veusz-1.26.1/ChangeLog 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/ChangeLog 2017-09-02 17:31:54.000000000 +0000 @@ -1,11 +1,13 @@ -Changes in : +Changes in 1.27: * New FITS import code and user interface, allowing much more flexible and convenient FITS importing * Fix half pixel error in linear WCS FITS support * Save custom definitions after importing data, to allow customs to depend on datasets. + * Add preference for loading translation file * Fix logical errors in transparency in image widget - * Fix for Python 3 unable to generally sort (name, instance) + * If cannot find translation or plugin, do not end app after showing error + * Fix for Python 3 for reloading datasets Changes in 1.26.1: * Change homepage in program to new site https://veusz.github.io/ diff -Nru veusz-1.26.1/debian/bzr-builder.manifest veusz-1.27/debian/bzr-builder.manifest --- veusz-1.26.1/debian/bzr-builder.manifest 2017-09-01 17:39:57.000000000 +0000 +++ veusz-1.27/debian/bzr-builder.manifest 2017-09-02 17:31:56.000000000 +0000 @@ -1,3 +1,3 @@ -# bzr-builder format 0.3 deb-version {debupstream}-0~2288~201709011739 -lp:veusz revid:git-v1:3d484239c000c7dc3c4516eca87cd44c78bf79a3 -nest-part packaging lp:~jeremysanders/veusz/deb-packaging debian debian revid:jeremy@jeremysanders.net-20170517182847-i0vo8x4s2wyrfhfj +# bzr-builder format 0.3 deb-version {debupstream}-0~2291~201709021731 +lp:veusz revid:git-v1:7dd0f6a63d56692f9f94ad7b6203df1375d44d91 +nest-part packaging lp:~jeremysanders/veusz/deb-packaging debian debian revid:jeremy@jeremysanders.net-20170902151128-z2g8h28u6v405ebt diff -Nru veusz-1.26.1/debian/changelog veusz-1.27/debian/changelog --- veusz-1.26.1/debian/changelog 2017-09-01 17:39:57.000000000 +0000 +++ veusz-1.27/debian/changelog 2017-09-02 17:31:56.000000000 +0000 @@ -1,8 +1,14 @@ -veusz (1.26.1-0~2288~201709011739~ubuntu14.04.1) trusty; urgency=low +veusz (1.27-0~2291~201709021731~ubuntu14.04.1) trusty; urgency=low * Auto build. - -- Jeremy Sanders Fri, 01 Sep 2017 17:39:57 +0000 + -- Jeremy Sanders Sat, 02 Sep 2017 17:31:56 +0000 + +veusz (1.27-0) UNRELEASED; urgency=low + + * Update to Veusz 1.27 + + -- Jeremy Sanders Sat, 02 Sep 2017 17:10:00 +0200 veusz (1.26.1-0) UNRELEASED; urgency=low diff -Nru veusz-1.26.1/INSTALL veusz-1.27/INSTALL --- veusz-1.26.1/INSTALL 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/INSTALL 2017-09-02 17:31:54.000000000 +0000 @@ -37,7 +37,7 @@ To install on linux to the standard location on the hard disk -# cd veusz-1.26.1 +# cd veusz-1.27 # python setup.py build # su [enter root password] @@ -95,8 +95,8 @@ If you don't want to install veusz fully or are doing development, it can currently be run from its own directory. Do -# tar xzf veusz-1.26.1.tar.gz [change version here] -# cd veusz-1.26.1 +# tar xzf veusz-1.27.tar.gz [change version here] +# cd veusz-1.27 # ./run_veusz_inplace Certain features will be disabled if you do this. You will not be able @@ -118,8 +118,8 @@ incompatibilities. Simply unpack the tar file and run the main executable: -# tar xzf veusz-linux-i386-1.26.1.tar.gz [change version here] -# cd veusz-linux-i386-1.26.1 +# tar xzf veusz-linux-i386-1.27.tar.gz [change version here] +# cd veusz-linux-i386-1.27 # ./veusz 2.2 Installing in Windows diff -Nru veusz-1.26.1/README veusz-1.27/README --- veusz-1.26.1/README 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/README 2017-09-02 17:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -Veusz 1.26.1 ------------- +Veusz 1.27 +---------- https://veusz.github.io Veusz is a scientific plotting package. It is designed to produce @@ -12,22 +12,20 @@ manipulation and editing of datasets. Data can be captured from external sources such as Internet sockets or other programs. -Changes in 1.26.1: - * Change homepage in program to new site https://veusz.github.io/ - * Change new version checking to use veusz.github.io + ** NOTE ** + This is intended to be the final Qt4 release of Veusz. + Future releases will be Qt5 only, except in the case of major bugs. -Changes in 1.26: - * Add color themes and automatic coloring of widgets - * Custom color definitions - * Improved custom definition dialog box - * Fix loading translator via command line - * Show horizontal error lines/fills in key - * Use iMinuit if available for fitting - * Fix for dataset plugins returning nD datasets - * Add editable automatic axis range, including support for shrinking - range (-X%), percentage ranges (X-Y%) and limits (Y%) - * Fix for key if invalid dataset - * For log scaling on image widget, show invalid values as being transparent +Changes in 1.27: + * New FITS import code and user interface, allowing much more + flexible and convenient FITS importing + * Fix half pixel error in linear WCS FITS support + * Save custom definitions after importing data, to allow customs + to depend on datasets. + * Add preference for loading translation file + * Fix logical errors in transparency in image widget + * If cannot find translation or plugin, do not end app after showing error + * Fix for Python 3 for reloading datasets Features of package: Plotting features: diff -Nru veusz-1.26.1/ui/preferences.ui veusz-1.27/ui/preferences.ui --- veusz-1.26.1/ui/preferences.ui 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/ui/preferences.ui 2017-09-02 17:31:54.000000000 +0000 @@ -7,7 +7,7 @@ 0 0 660 - 281 + 341 @@ -23,99 +23,120 @@ View - - - - - - - Use antialiasing to smooth jagged edges - - - Antialiasing - - - - - - - Please restart Veusz after changing this option - - - Override system locale settings to show Veusz in US/English - - - - - - - Update interval - - - - - + + + + + Use antialiasing to smooth jagged edges + + + Antialiasing + + + + + + + Please restart Veusz after changing this option + + + Override system locale settings to show Veusz in US/English + + + + + + + Update interval + + + + + + + How often Veusz will update the plot if it has changed + + + + + + + Toolbar icon size + + + + + + + + 8 + + + + + 16 + + + + + 24 + + + + + 32 + + + + + 48 + + + + + 64 + + + + + + + + Number of drawing threads + + + + + + + Maximum number of parallel threads to use for drawing plots. +Set to 0 to disable threads. + + + 16 + + + + + + + Translation + + + + + + + - How often Veusz will update the plot if it has changed + <html><head/><body><p>Load an externally-provided translation file on startup</p></body></html> - - - - Toolbar icon size - - - - - - - - 8 - - - - - 16 - - - - - 24 - - - - - 32 - - - - - 48 - - - - - 64 - - - - - - + + - Number of drawing threads - - - - - - - Maximum number of parallel threads to use for drawing plots. -Set to 0 to disable threads. - - - 16 + Browse... diff -Nru veusz-1.26.1/VERSION veusz-1.27/VERSION --- veusz-1.26.1/VERSION 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/VERSION 2017-09-02 17:31:54.000000000 +0000 @@ -1 +1 @@ -1.26.1 +1.27 diff -Nru veusz-1.26.1/veusz/dialogs/preferences.py veusz-1.27/veusz/dialogs/preferences.py --- veusz-1.26.1/veusz/dialogs/preferences.py 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/veusz/dialogs/preferences.py 2017-09-02 17:31:54.000000000 +0000 @@ -62,6 +62,9 @@ setdb['plot_updatepolicy']) self.intervalCombo.setCurrentIndex(index) self.threadSpinBox.setValue( setdb['plot_numthreads'] ) + self.translationEdit.setText( setdb['translation_file'] ) + self.translationBrowseButton.clicked.connect( + self.translationBrowseClicked) # disable thread option if not supported if not qt4.QFontDatabase.supportsThreadedFontRendering(): @@ -183,6 +186,7 @@ setdb['plot_antialias'] = self.antialiasCheck.isChecked() setdb['ui_english'] = self.englishCheck.isChecked() setdb['plot_numthreads'] = self.threadSpinBox.value() + setdb['translation_file'] = self.translationEdit.text() # use cwd setdb['dirname_usecwd'] = self.dirDocCWDRadio.isChecked() @@ -232,6 +236,13 @@ # write settings out now, rather than wait until the end setdb.writeSettings() + def translationBrowseClicked(self): + """Browse for a translation.""" + filename = self.parent().fileOpenDialog( + [_('Translation file (*.qm)')], _('Choose translation file')) + if filename: + self.translationEdit.setText(filename) + def styleBrowseClicked(self): """Browse for a stylesheet.""" filename = self.parent().fileOpenDialog( diff -Nru veusz-1.26.1/veusz/document/doc.py veusz-1.27/veusz/document/doc.py --- veusz-1.26.1/veusz/document/doc.py 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/veusz/document/doc.py 2017-09-02 17:31:54.000000000 +0000 @@ -367,7 +367,7 @@ except Exception: err = _('Error loading plugin %s\n\n%s') % ( plugin, traceback.format_exc()) - qt4.QMessageBox.critical(None, _("Error loading plugin"), err) + raise RuntimeError(err) def paintTo(self, painthelper, page): """Paint page specified to the paint helper.""" diff -Nru veusz-1.26.1/veusz/helpers/src/qtloops/qtloops.cpp veusz-1.27/veusz/helpers/src/qtloops/qtloops.cpp --- veusz-1.26.1/veusz/helpers/src/qtloops/qtloops.cpp 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/veusz/helpers/src/qtloops/qtloops.cpp 2017-09-02 17:31:54.000000000 +0000 @@ -408,7 +408,7 @@ } - if(not hasalpha) + if(!hasalpha) { // return image without transparency for speed / space improvements #if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) diff -Nru veusz-1.26.1/veusz/setting/settingdb.py veusz-1.27/veusz/setting/settingdb.py --- veusz-1.26.1/veusz/setting/settingdb.py 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/veusz/setting/settingdb.py 2017-09-02 17:31:54.000000000 +0000 @@ -83,6 +83,9 @@ # add these directories to the python path (colon-separated) 'external_pythonpath': '', + + # translation file to load + 'translation_file': '', } class _SettingDB(object): diff -Nru veusz-1.26.1/veusz/veusz_main.py veusz-1.27/veusz/veusz_main.py --- veusz-1.26.1/veusz/veusz_main.py 2017-09-01 17:39:53.000000000 +0000 +++ veusz-1.27/veusz/veusz_main.py 2017-09-02 17:31:54.000000000 +0000 @@ -34,7 +34,7 @@ os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) ) import veusz -from veusz.compat import czip, cbytes +from veusz.compat import czip, cbytes, cstr from veusz import qtall as qt4 from veusz import utils @@ -234,12 +234,6 @@ self.splash = makeSplashLogo() self.splash.show() - # optionally load a translation - if self.options.translation: - self.trans = qt4.QTranslator() - self.trans.load(self.options.translation) - self.installTranslator(self.trans) - self.thread = ImportThread() self.thread.finished.connect(self.slotStartApplication) self.thread.start() @@ -254,6 +248,9 @@ vzdbus.setup() vzsamp.setup() + # add text if we want to display an error after startup + startuperrors = [] + from veusz import document from veusz import setting @@ -264,13 +261,26 @@ setting.transient_settings['unsafe_mode'] = bool( options.unsafe_mode) + # optionally load a translation + txfile = options.translation or setting.settingdb['translation_file'] + if txfile: + self.trans = qt4.QTranslator() + if self.trans.load(txfile): + self.installTranslator(self.trans) + else: + startuperrors.append( + 'Error loading translation "%s"' % txfile) + # add directories to path if setting.settingdb['external_pythonpath']: sys.path += setting.settingdb['external_pythonpath'].split(':') # load any requested plugins if options.plugin: - document.Document.loadPlugins(pluginlist=options.plugin) + try: + document.Document.loadPlugins(pluginlist=options.plugin) + except RuntimeError as e: + startuperrors.append(cstr(e)) # different modes if options.listen: @@ -289,6 +299,11 @@ if self.splash is not None: self.splash.finish(self.topLevelWidgets()[0]) + # this has to be displayed after the main window is created, + # otherwise it never gets shown + for error in startuperrors: + qt4.QMessageBox.critical(None, "Veusz", error) + def run(): '''Run the main application.'''