Re: Minutes of the design meeting 2018-Jan-31
Hi, Le 31/01/2018 à 21:48, Heiko Tietze a écrit : [...] GSoC * Full list of ideas https://pad.documentfoundation.org/p/UX-GSoC_Ideas * Public list https://wiki.documentfoundation.org/Development/GSoC/Ideas#User_Interface Here are some suggestions based on my recent experience in teaching LibreOffice and writing a python macro : Impress : work on "papercut" bugs -- 1 - Animations sets for a text box with several paragraphs don't affect new paragraphs (not inherited) https://bugs.documentfoundation.org/show_bug.cgi?id=57581 This is the most annoying problem that new users face : - they create a slide with few lines of text, - they add an animation on the text, to make it appear line by line - they test : it works correctly - they add one line of text (inside or at the end) - they test and boom... the animation is "broken" - they make a pause, then... close impress and open powerpoint... 2 - Editing: Text spacing changes when click in textbox https://bugs.documentfoundation.org/show_bug.cgi?id=89060 It is a subtle but very annoying visual effect. Python macros I had to create a macro embedded in a file. As I had not written basic for a long time, I tried to write it in python. The fist problem is that on Ubuntu, it is necessary to install a specific package 'libreoffice-script-provider-python' The second problem is that, by default, there is no tool to integrate a python macro in a document. I found the APSO extension [1] that allows that and is very useful. I found some difficult points in writing python macro with that extension : - after modifying a python script, you have to close and re-open the odf file - some inline documentation is missing : about API, and some sample code - the context (available via XSCRIPTCONTEXT) is missing some API, compared to basic So here are my suggestions for GSoC : - allow an easy activation of python support : a simple button would download and install all necessary packages - integrate the functionality of APSO (to allow embedding/managing python script in odf file) - remove the need to re-open the odf file before using a new version of python script Other points can be done directly in the current extension : - add some inline documentation about API [2] - add inline documentation on both ways to use python script : - an external script that connects to LibreOffice - an internal script that get called by menu/button - allow to create scripts empty or with comments (that provide minimum documentation and good practice) - add a library of sample code (a list of "how-to ?"), that can be easily copied in script files Adding API to the context (available via XSCRIPTCONTEXT) can be done by working on LibreOffice code : /usr/lib/libreoffice/program/pythonscript/py Cheers, Michel [1] https://extensions.libreoffice.org/extensions/apso-alternative-script-organizer-for-python [2] based on very useful page https://wiki.openoffice.org/wiki/Python/Transfer_from_Basic_to_Python ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: IDE integration with qtcreator
Hi Heiko, Le 26/11/2017 à 11:37, Heiko Tietze a écrit : Trying to setup an IDE environment but after "make qtcreator-ide-integration" the build fails as system include files are not found. For example in case of sc "libxml/xpathInternals.h: No such file or directory" (exists at /usr/include/libxml2/libxml/). Same happens now for make from bash while it worked before. Removing all .pro and *.pro.user solves it for bash but isn't helpful for qtcreator. Guess there is a path variable missing, but what and where? I would say that your problem is not related to qt-creator integration. The "make qtcreator-ide-integration" command creates .pro files that are used to just load files in qt-creator. The build process in qt-creator is just a GUI shortcut to the standards cli commands : that's why the error appears also in the bash environment. The only link would be that "make qtcreator-ide-integration removes some files. Maybe you can execute some git command to check that your repo is up to date ? ('git pull') Cheers, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: QtCreator for LibreOffice : debugger integration
Hi Michael, Le 15/06/2015 15:30, Michael Stahl a écrit : On 15.06.2015 15:21, Michel Renon wrote: > Hi, > > Here is the next step of QtCreator integration : debugging of OUString > (and internal type rtl_uString) > > http://imgur.com/ZrvIZ2V,2G52CwW,2r2wVSP > > 1 : default view for OUString variable : just address and length > 2 : new view : you have the string (here with some specific french > characters and 'euro' symbol) > 3 : new view : you can have internals of OUString i don't quite understand - why not just display the content of the string by default using the python pretty printers in solenv/gdb, like Eclipse CDT and KDevelop do? Because QtCreator has its own api... http://doc.qt.io/qtcreator/creator-debugging-helpers.html It seems that there cannot be common/shared code between existing gdb helpers and qtcreator's one [1]. So can i create a folder : solenv/gdb/qtcreator that will contain specific qtcreator gdb helpers ? I started with strings, and will continue with other basic LO types. Currently, I need to manually enter the path to those helpers in a QtCreator dialog. (qtcreator just execute in gdb "source path/to/helper.py") Is there a way to predefine that command in gdb to avoid any manual configuration ? If possible, I plan to execute it at the end of "make qtcreator-ide-integration" command. Cheers, Michel [1] An example with OUString for QtCreator : --- def __get_rtl_ustring(d, pdata): """ """ charSize = 2 array = pdata["buffer"] length = pdata["length"] cutoff = min(length*charSize, d.stringCutOff) mem = d.readMemory(array, cutoff) encodingType = Hex4EncodedLittleEndian return mem, encodingType def qdump__rtl__OUString(d, value): """ class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OUString { public: /// @cond INTERNAL rtl_uString * pData; /// @endcond """ pdata = value["pData"] # show rtl_uString mem, encodingType = __get_rtl_ustring(d, pdata) d.putValue(mem, encodingType) d.putAddress(value.address) ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: QtCreator for LibreOffice : debugger integration
Le 07/10/2015 14:22, Michael Stahl a écrit : On 07.10.2015 13:12, Michel Renon wrote: > Hi Michael, > > Le 15/06/2015 15:30, Michael Stahl a écrit : >> On 15.06.2015 15:21, Michel Renon wrote: >>> Hi, >>> >>> Here is the next step of QtCreator integration : debugging of OUString >>> (and internal type rtl_uString) >>> >>> http://imgur.com/ZrvIZ2V,2G52CwW,2r2wVSP >>> >>> 1 : default view for OUString variable : just address and length >>> 2 : new view : you have the string (here with some specific french >>> characters and 'euro' symbol) >>> 3 : new view : you can have internals of OUString >> >> i don't quite understand - why not just display the content of the >> string by default using the python pretty printers in solenv/gdb, like >> Eclipse CDT and KDevelop do? > > Because QtCreator has its own api... > http://doc.qt.io/qtcreator/creator-debugging-helpers.html ... but evidently the gdb ones do work, for me, on Fedora 22: qt-creator-3.5.0-1.fc22.x86_64 Ah... I have Qt Creator 3.1.1 (with Ubuntu SDK) if i attach to soffice.bin and hover over an OUString variable the pop-up displays the content of the string properly; also the "variable" view on the right side of the window. iirc this didn't work out-of-the-box, i had to go to Tools->Options->Debugger->GDB and change something there, probably the "Load system GDB pretty printers" setting. Fyi, here is a screenshot of the popup display when I applied your settings http://imgur.com/z8o1F7G I'll ask that question to Qt support and keep you informed. Thanks for your feedback, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: .gitignore
.gitignore |4 1 file changed, 4 insertions(+) New commits: commit 71ace488448b64e6c4cd9065e109d2c9850b031a Author: Michel Renon michel.re...@free.fr Date: Sat Aug 1 21:56:55 2015 +0200 QtCreator integration : git must ignore .pro and .pro.user files. Change-Id: Ifd21679fb7dd2b5c0c3bfe7726bf2c4d19897e21 Reviewed-on: https://gerrit.libreoffice.org/17467 Reviewed-by: Samuel Mehrbrodt s.mehrbr...@gmail.com Tested-by: Samuel Mehrbrodt s.mehrbr...@gmail.com diff --git a/.gitignore b/.gitignore index 6f7b854..ec3a2fe 100644 --- a/.gitignore +++ b/.gitignore @@ -123,6 +123,10 @@ DerivedData *.vcxproj* *.opensdf +# QtCreator specific +*.pro +*.pro.user + # doxygen output /docs ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/gbuild-to-ide
bin/gbuild-to-ide | 130 +++--- 1 file changed, 123 insertions(+), 7 deletions(-) New commits: commit 228a93bb3a20aa720a95d87a1fc9e047e566805e Author: Michel Renon michel.re...@free.fr Date: Sat Aug 1 12:35:33 2015 +0200 QtCreator integration : generate lo.pro.user project file. That project file handles 12 global build options : 6 about tests, 3 about clean, 2 about l10n, 1 default. There is one run command to launch 'soffice'. Note that QtCreator will add automatically run commands for each subproject. Change-Id: I3650a9041654cbec7d51d8cbb7951a11ed49aad5 Reviewed-on: https://gerrit.libreoffice.org/17458 Tested-by: Jenkins c...@libreoffice.org Reviewed-by: Samuel Mehrbrodt s.mehrbr...@gmail.com diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide index 8ab4463..9e5b7a7 100755 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -1016,6 +1016,88 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): } return xml +def generate_meta_build_configs(self): +xml = +# In QtCreator UI, build configs are listed alphabetically, +# so it can be different from the creation order. +# So we prefix the names with the index. +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '0', +'base_folder' : self.base_folder, +'arg' : , +'name' : 01-Global Build, +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '1', +'base_folder' : self.base_folder, +'arg' : unitcheck, +'name' : 02-Global tests -- quick tests (unitcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '2', +'base_folder' : self.base_folder, +'arg' : unitcheck slowcheck, +'name' : 03-Global tests -- slow tests (unitcheck, slowcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '3', +'base_folder' : self.base_folder, +'arg' : unitcheck slowcheck subsequentcheck, +'name' : 04-Global tests -- integration tests (unitcheck, slowcheck, subsequentcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '4', +'base_folder' : self.base_folder, +'arg' : perfcheck, +'name' : 05-Global tests -- performance tests (perfcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '5', +'base_folder' : self.base_folder, +'arg' : check, +'name' : 06-Global tests -- tests (check), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '6', +'base_folder' : self.base_folder, +'arg' : build-nocheck, +'name' : 07-Global build -- nocheck, +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '7', +'base_folder' : self.base_folder, +'arg' : build-l10n-only, +'name' : 08-Global build -- build-l10n-only, +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '8', +'base_folder' : self.base_folder, +'arg' : build-non-l10n-only, +'name' : 09-Global build -- build-non-l10n-only, +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '9', +'base_folder' : self.base_folder, +'arg' : clean, +'name' : 10-Global build -- clean, +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '10', +'base_folder' : self.base_folder, +'arg' : clean-build, +'name' : 11-Global build -- clean-build, +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '11', +'base_folder' : self.base_folder, +'arg' : clean-host, +'name' : 12-Global build -- clean-host, +} +xml += QtCreatorIntegrationGenerator.build_configs_count_template % { +'nb' : '12', +} +return xml + # By default, QtCreator creates 2 BuildStepList : Build et Clean # but the clean can be empty. build_configs_template = @@ -1161,6 +1243,19 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): } return xml +def generate_meta_pro_user_content(self): + +build_configs = self.generate_meta_build_configs() +deploy_configs = self.generate_deploy_configs
[Libreoffice-commits] core.git: bin/gbuild-to-ide
bin/gbuild-to-ide | 58 +++--- 1 file changed, 29 insertions(+), 29 deletions(-) New commits: commit 5e188b4e27d41e123ec4cd0bd3ece2181d72158a Author: Michel Renon michel.re...@free.fr Date: Tue Jul 28 22:26:26 2015 +0200 QtCreator integration : remove unnecessary whitespaces. Change-Id: Iee8a6add830be94e6a6942dc9c4464b1a91656ff Reviewed-on: https://gerrit.libreoffice.org/17389 Reviewed-by: Maxim Monastirsky momonas...@gmail.com Tested-by: Maxim Monastirsky momonas...@gmail.com diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide index 82d1634..45838f2 100755 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -1015,15 +1015,15 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): 'nb' : '9', } return xml - + # By default, QtCreator creates 2 BuildStepList : Build et Clean # but the clean can be empty. build_configs_template = valuemap type=QVariantMap key=ProjectExplorer.Target.BuildConfiguration.%(index)s value type=QString key=ProjectExplorer.BuildConfiguration.BuildDirectory%(base_folder)s/value - + valuemap type=QVariantMap key=ProjectExplorer.BuildConfiguration.BuildStepList.0 - + valuemap type=QVariantMap key=ProjectExplorer.BuildStepList.Step.0 value type=bool key=ProjectExplorer.BuildStep.Enabledtrue/value value type=QString key=ProjectExplorer.ProjectConfiguration.DefaultDisplayNameMake/value @@ -1037,13 +1037,13 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): value type=QString key=Qt4ProjectManager.MakeStep.MakeArguments%(arg)s/value value type=QString key=Qt4ProjectManager.MakeStep.MakeCommand/value /valuemap - + value type=int key=ProjectExplorer.BuildStepList.StepsCount1/value value type=QString key=ProjectExplorer.ProjectConfiguration.DefaultDisplayNameBuild/value value type=QString key=ProjectExplorer.ProjectConfiguration.DisplayName/value value type=QString key=ProjectExplorer.ProjectConfiguration.IdProjectExplorer.BuildSteps.Build/value /valuemap - + value type=int key=ProjectExplorer.BuildConfiguration.BuildStepListCount1/value value type=bool key=ProjectExplorer.BuildConfiguration.ClearSystemEnvironmentfalse/value valuelist type=QVariantList key=ProjectExplorer.BuildConfiguration.UserEnvironmentChanges/ @@ -1063,7 +1063,7 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): def generate_deploy_configs(self, lib_folder): xml = QtCreatorIntegrationGenerator.deploy_configs_template % {} return xml - + deploy_configs_template = valuemap type=QVariantMap key=ProjectExplorer.Target.DeployConfiguration.0 valuemap type=QVariantMap key=ProjectExplorer.BuildConfiguration.BuildStepList.0 @@ -1079,9 +1079,9 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): /valuemap value type=int key=ProjectExplorer.Target.DeployConfigurationCount1/value - + def generate_run_configs(self, lib_folder): - + # If we use 'soffice', it's ok only for Run, not for Debug. # So we put soffice.bin that is ok for both. loexec = %s/instdir/program/soffice.bin % self.base_folder @@ -1090,7 +1090,7 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): 'workdir' : self.base_folder } return xml - + run_configs_template = valuemap type=QVariantMap key=ProjectExplorer.Target.RunConfiguration.0 valuelist type=QVariantList key=Analyzer.Valgrind.AddedSuppressionFiles/ @@ -1129,7 +1129,7 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): /valuelist value type=int key=PE.EnvironmentAspect.Base2/value valuelist type=QVariantList key=PE.EnvironmentAspect.Changes/ - + value type=QString key=ProjectExplorer.CustomExecutableRunConfiguration.Arguments/value value type=QString key=ProjectExplorer.CustomExecutableRunConfiguration.Executable%(loexec)s/value value type=bool key=ProjectExplorer.CustomExecutableRunConfiguration.UseTerminalfalse/value @@ -1212,7 +1212,7 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): value type=bool key=EditorConfiguration.inEntireDocumentfalse/value /valuemap /data - + data variableProjectExplorer.Project.PluginSettings/variable valuemap type=QVariantMap/ @@ -1276,18 +1276,18 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): if os.path.isfile(path+ext): return ext return - + def get_header_extension(self, src_file): path = os.path.join(self.base_folder, src_file) for ext in (.hxx, .hpp, .h): if os.path.isfile(path+ext): return ext return - + def build_data_libs(self
[Libreoffice-commits] core.git: bin/gbuild-to-ide
bin/gbuild-to-ide | 23 +-- 1 file changed, 13 insertions(+), 10 deletions(-) New commits: commit dcec162ea083b3604ff82c4dc3ca43d2b5054ea7 Author: Michel Renon michel.re...@free.fr Date: Tue Jul 14 23:40:04 2015 +0200 tdf#92561 : QtCreator doesn't find any generated c++ headers. Use lib.include to list : - all include paths (with generated c++ headers), - header files for each lib/module. Change-Id: I44f20ddbcaf2ffa844ec02977dea10f32fe9d92f Reviewed-on: https://gerrit.libreoffice.org/17055 Tested-by: Jenkins c...@libreoffice.org Reviewed-by: Maxim Monastirsky momonas...@gmail.com Tested-by: Maxim Monastirsky momonas...@gmail.com diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide index af1b20a..82d1634 100755 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -1298,8 +1298,13 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): return os.path.relpath(path, lib.location) sources_list = [] -headers_list = [] includepath_list = [] +# The explicit headers list is not mandatory : +# QtCreator just needs 'include_path_list' to find all headers files. +# But files listed in 'header_list' will be shown +# in a specific Headers folder in QtCreator's Project panel. +# We will list here only headers files of current lib. +headers_list = [] for file_ in lib.cxxobjects: # the file has no extension : search it # self._log(\nfile : %s % file_) @@ -1312,21 +1317,19 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): if ext: headers_list.append(lopath(file_+ext)) -# List all headers +# List all include paths for hdir in lib.include: -# except from workdir folder -if workdir not in hdir: +hf_lopath = lopath(hdir) +includepath_list.append(hf_lopath) + +# List headers files from current lib +for hdir in lib.include: +if hdir.startswith(lib.location): for hf in os.listdir(hdir): if hf.endswith(('.h', '.hxx', '.hpp', '.hrc')): hf_lopath = lopath(os.path.join(hdir, hf)) headers_list.append(hf_lopath) -# We also need to have a list of include paths -for header in headers_list: -header_path = os.path.dirname(header) -if header_path not in includepath_list: -includepath_list.append(header_path) - # All datas are prepared, store them for the lib. if lib_folder in self.data_libs: self.data_libs[lib_folder]['sources'] |= set(sources_list) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: bin/gbuild-to-ide
bin/gbuild-to-ide | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) New commits: commit 09491390e6662516339f8aa920bb8ae9493e34c0 Author: Michel Renon michel.re...@free.fr Date: Sat Jul 11 23:56:12 2015 +0200 tdf#92560 : QtCreator integration complains about a ucpp without a .pro file The script gbuild-to-ide now handles correctly specific case where a module is not a direct subfolder of LibreOffice base folder. Currently, 3 modules : external/neon, external/clucene, external/ucpp. Change-Id: I9477519a530439d43919b4e1b51dc2c71ee05fe0 Reviewed-on: https://gerrit.libreoffice.org/17054 Tested-by: Jenkins c...@libreoffice.org Reviewed-by: Michael Stahl mst...@redhat.com diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide index 0452a9e..af1b20a 100755 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -1291,7 +1291,8 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): all_libs = set(self.gbuildparser.libs) | set(self.gbuildparser.exes) for lib in all_libs: self._log(\nlibrary : %s, loc=%s % (lib.short_name(), lib.location)) -lib_folder = os.path.basename(lib.location) +lib_name = os.path.basename(lib.location) +lib_folder = os.path.relpath(lib.location, self.base_folder) def lopath(path): return os.path.relpath(path, lib.location) @@ -1336,7 +1337,8 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): 'sources' : set(sources_list), 'headers' : set(headers_list), 'includepath' : set(includepath_list), -'loc' : lib.location +'loc' : lib.location, +'name' : lib_name } def emit(self): @@ -1356,13 +1358,14 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): headers_list = sorted(self.data_libs[lib_folder]['headers']) includepath_list = sorted(self.data_libs[lib_folder]['includepath']) lib_loc = self.data_libs[lib_folder]['loc'] +lib_name = self.data_libs[lib_folder]['name'] sources = \\\n.join(sources_list) headers = \\\n.join(headers_list) includepath = \\\n.join(includepath_list) # create .pro file -qt_pro_file = '%s/%s.pro' % (lib_loc, lib_folder) +qt_pro_file = '%s/%s.pro' % (lib_loc, lib_name) try: content = QtCreatorIntegrationGenerator.pro_template % {'sources' : sources, 'headers' : headers, 'includepath' : includepath} mode = 'w+' @@ -1378,7 +1381,7 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): print(\n\n, file=sys.stderr) # create .pro.user file -qt_pro_user_file = '%s/%s.pro.user' % (lib_loc, lib_folder) +qt_pro_user_file = '%s/%s.pro.user' % (lib_loc, lib_name) try: with open(qt_pro_user_file, mode) as fprouser: fprouser.write(self.generate_pro_user_content(lib_folder)) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
Re: Howto build a viewer to compare differences using tiles?
Hi Stef, Le 15/07/2015 18:52, Stef Bon a écrit : Hi, I'm building backup/version system, using sqlite, btrfs and FUSE for the user. It's comparable to snapper, but that's more a tool to backup/snapshot the system. Fuse-backup is a tool for the user, he/she can assign a directory to backup easily, and view versions of files with a simple mouseclick. [...] Now I've spoken with Michael Meeks in Den Hage begin May at the OpenSuse conference. I asked him howto build a tool to view the differences between versions. He suggested me to look at the libreofficekit, and especially the lokdocview, to view pages as tiles. Now can someone describe globally howto write an app using qt 5, showing the pages as tiles, the page of the current version left and the previous version right? I'm also interested by creating a Qt+QML app with LOKit : I would like to use it for making UX prototypes :-) We are not alone : Canonical just announced that they start to integrate LOKit as a plugin of their DocViewer app [1]. It seems Bjoern is involved in this project ? I found the code of the plugin [2], but I have no knowledge how to use it to create a standard basic app. Hope this helps, Michel [1] https://lists.ubuntu.com/archives/ubuntu-community-team/2015-June/000649.html [2] http://bazaar.launchpad.net/~verzegnassi-stefano/ubuntu-docviewer-app/lo-plugin-prototype/files ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
QtCreator for LibreOffice : debugger integration
Hi, Here is the next step of QtCreator integration : debugging of OUString (and internal type rtl_uString) http://imgur.com/ZrvIZ2V,2G52CwW,2r2wVSP 1 : default view for OUString variable : just address and length 2 : new view : you have the string (here with some specific french characters and 'euro' symbol) 3 : new view : you can have internals of OUString I had to write few lines of python into ~/.gdbinit file. My question is : as it's not a source file, how/where should I upload that file ? And instructions to use it ? And a noob question : how to define an unicode string in c++ ? I wrote : rtl:OUString sTest = éèà€; or rtl:OUString sTest(éèà€); but it both failed into assert at runtime. Cheers, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Michel Renon license statement
All of my past future contributions to LibreOffice may be licensed under the MPLv2/LGPLv3+ dual license. Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: QtCreator for LibreOffice - first integration
Hi Bjoern, Le 27/05/2015 18:27, Bjoern Michaelsen a écrit : Hi Michel, On Mon, May 25, 2015 at 01:04:04PM +0200, Michel Renon wrote: I worked on using QtCreator IDE for LibreOffice : https://gerrit.libreoffice.org/15804 That very awesome! Here is an album of screenshots (similar to Bjoern's video with KDevelop) : http://imgur.com/0z53TxF,qhImiuH,PhZlDZv,stXNCr7,2z03uah,NZYfoIi,mdF4xlT,WX8zNl2 Seeing that is on Linux, do you know ny chance if that stuff works on Windows too? Absolutely no idea :-( I don't have any recent windows machine to test (just an old netbook with XP...) Cheers, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
QtCreator for LibreOffice - first integration
Hi, I worked on using QtCreator IDE for LibreOffice : https://gerrit.libreoffice.org/15804 Thanks to Arnaud who finalized the gerrit validation. Here is an album of screenshots (similar to Bjoern's video with KDevelop) : http://imgur.com/0z53TxF,qhImiuH,PhZlDZv,stXNCr7,2z03uah,NZYfoIi,mdF4xlT,WX8zNl2 1 : Opening QtCreator with 'sw' project file 2 : In the locator (ctrl+k), you can search classes 3 : After choosing SwInsertBookmarDlg in locator 4 : There are others way to view code, here is the Class View (but I still don't know how to open the ClassView on a specific class from the source code panel) 5 : Here are the predefined build settings 6 : To debug, just add a breakpoint in the code 7 : Then start the debugger (the green triangle with a bug) : QtCreator launches LibreOffice 8 : As soon as the breakpoint is reached, QtCreator is back to front with all graphical tools to debug Tip : the default behavior for the green triangle buttons (run /debug) is to execute 'make' before 'run' or 'debug'. But there are menus items 'run without deploy' and 'debug without deploy' that allows to run/debug last compiled version if you have already modified source code. My next task is to enhance the debugger to have better display of specific LibreOffice objects (specially OUString) Feedback and suggestions are welcomed, Cheers, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: bin/gbuild-to-ide Makefile.in
Makefile.in |3 bin/gbuild-to-ide | 510 +- 2 files changed, 509 insertions(+), 4 deletions(-) New commits: commit 237a1b79a1d5af10434c2b93cfc83c1c8e55a9d5 Author: Michel Renon michel.re...@free.fr Date: Tue May 19 16:30:41 2015 +0200 QtCreator IDE integration. First version of QtCreator IDE integration : 'make qtcreator-ide-integration' generates .pro and .pro.user files for each subfolder of LibreOffice. It also creates a 'lo.pro' meta project that list all other .pro files. Developers can use use QtCreator to edit, compile and debug LibreOffice. Change-Id: Ib05d8c36a7ca055ecd7a4db5776f4c28bf05676c Reviewed-on: https://gerrit.libreoffice.org/15804 Tested-by: Jenkins c...@libreoffice.org Reviewed-by: Björn Michaelsen bjoern.michael...@canonical.com diff --git a/Makefile.in b/Makefile.in index 61cc906..3f806c0 100644 --- a/Makefile.in +++ b/Makefile.in @@ -370,7 +370,8 @@ $(foreach ide,\ vs2012 \ vs2013 \ vim \ - xcode, \ + xcode \ + qtcreator,\ $(eval $(call gb_Top_GbuildToIdeIntegration,$(ide endif # MAKE_RESTARTS diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide index 0ec56d1..0452a9e 100755 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -18,7 +18,7 @@ import uuid import json import xml.etree.ElementTree as ET import xml.dom.minidom as minidom - +import traceback class GbuildParserState: @@ -924,6 +924,508 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator): self.write_pretty_xml(proj_node, filters_path) + + + +class QtCreatorIntegrationGenerator(IdeIntegrationGenerator): + +def __init__(self, gbuildparser, ide): +IdeIntegrationGenerator.__init__(self, gbuildparser, ide) +self.target_by_location = {} +for target in set(self.gbuildparser.libs) | set(self.gbuildparser.exes): +if target.location not in self.target_by_location: +self.target_by_location[target.location] = set() +self.target_by_location[target.location] |= set([target]) + +self._do_log = False # set to 'True' to activate log of QtCreatorIntegrationGenerator +if self._do_log: +qtlog_path = os.path.abspath('../qtlog_.txt') +self.qtlog = open(qtlog_path, 'w') + +def _log(self, message): +if self._do_log: +self.qtlog.write(message) + +def log_close(self): +if self._do_log: +self.qtlog.close() + +def generate_build_configs(self, lib_folder): +module_folder = os.path.join(self.base_folder, lib_folder) +xml = +# In QtCreator UI, build configs are listed alphabetically, +# so it can be different from the creation order. +# So we prefix the names with the index. +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '0', +'base_folder' : module_folder, +'arg' : , +'name' : 1-Build %s % lib_folder, +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '1', +'base_folder' : module_folder, +'arg' : unitcheck, +'name' : 2-Local tests -- quick tests (unitcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '2', +'base_folder' : module_folder, +'arg' : unitcheck slowcheck, +'name' : 3-Local tests -- slow tests (unitcheck, slowcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '3', +'base_folder' : module_folder, +'arg' : unitcheck slowcheck subsequentcheck, +'name' : 4-Local tests -- integration tests (unitcheck, slowcheck, subsequentcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '4', +'base_folder' : self.base_folder, +'arg' : unitcheck, +'name' : 5-Global tests -- quick tests (unitcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '5', +'base_folder' : self.base_folder, +'arg' : unitcheck slowcheck, +'name' : 6-Global tests -- slow tests (unitcheck, slowcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '6', +'base_folder' : self.base_folder, +'arg' : unitcheck slowcheck subsequentcheck, +'name' : 7-Global tests -- integration tests (unitcheck, slowcheck, subsequentcheck), +} +xml += QtCreatorIntegrationGenerator.build_configs_template % { +'index' : '7', +'base_folder' : self.base_folder, +'arg' : build-nocheck
Re: Questions about QtCreator-LibreOffice integration
Hi Arnaud, Le 22/02/2015 16:14, Arnaud Versini a écrit : Hi Michel, Personnaly I'm for the first solution, there is few gitignore about visual studio, adding those for QT Creator doesn'tseems an issue. Bjoern any sugestion ? I should have precised that I already asked Bjoern and : - he choose the first solution - he told me to ask in the libreoffice ml to have further informations/suggestions So, it seems that I'll implement #1 :-) Cheers, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Questions about QtCreator-LibreOffice integration
Hi, For my first participation in LibreOffice code, I'm starting to configure my working environment by working on QtCreator integration, based on current script 'gbuild-to-ide'. I had already some good results : - build LO from Qtcreator - debug LO with QtCreator GUI (and see variables and stackframe) But the problem is related to project files. QtCreator has an interesting feature : it handles 'metaproject' : a project that lists other subprojects in subfolders. It works very well for LO except : - the project file must have the same name that his directory (ie : in the 'sw' folder, the project file must be 'sw.pro', not '.sw.pro', neither 'sw_qt.pro'...) - in the metaproject, we just list subfolders, and QtCreator searches for subprojects ; we can't explicitly indicate the subproject file and each project/subproject file has a corresponding .pro.user file that contains the real build and configuration settings. So, in order to not pollute LO code and git repo, how can we organize those project files ? I thought about 2 solutions : - create project files in the real folders (ie 'sw.pro' and 'sw.pro.user' in 'sw'), then list all those project files in the '.gitignore' (are there already some '.pro' files in LO repo ?) - create ghost folders with project files : create '.sw_qtcreator.pro' and '.sw_qtcreator.pro.user' inside '.sw_qtcreator' folder ; then list those ghost folders in '.gitignore'. Do you have another suggestions ? What should I implement ? Cheers, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [libreoffice-projects] minutes of ESC call ...
Hi, Le 29/01/2015 17:06, Michael Meeks a écrit : [...] * GSoC (Cedric) + We need to have new ideas added to the wiki page: https://wiki.documentfoundation.org/Development/Gsoc/Ideas + sooner the better etc. preferably before FOSDEM: today / tomorrow. here are some ideas : if you think some might be interesting, tell me and I'll make some specs/ux design - writer : when you drag'n'drop several images in a document, all images are anchored at the same paragraph. If user wants each image to be bellow the previous, he has to do that manually (think about writing a user manual with lots of screenshots). -- Add something to allow user to select the anchor type (or better : some predefined layout) of the dropped images. something might be a floating/popup panel or a sidebar panel ? - calc : indicate sheet protection via something visual in the tab sheets. Maybe an icon beside the name inside each tab ? Maybe add an option to visually identify protected cells (dim protected cells or highlight editable cells) TBD : how/where to indicate if the whole document is protected ? - calc : - allow to easily call python/js/beanshell/.. functions from cell formula. just do =MyPythonFunction(). It would allow to easily use scientific python libraries. - show a suggestion panel for functions, just bellow the edited cell (a kind of autocomplete, with infos about function, args...) - the suggestion panel may allow to create new functions (name and arguments) and then switch to macro editor ; default code would include useful comments (some how-to, building blocks, sample codes...) - the existing function wizard should list functions from all languages (python/js/beanshell/..). TBD : how to handle documentation of user-defined macros ? - macros : - reorganize dialogs (I made a quick proposal that would need further polishing) : https://wiki.documentfoundation.org/Design/Whiteboard/Macros_Dialogs#Proposal_by_Michel_R (but the iTunes-like selector is not consistent with the current macro editor) - replace the macro editor engine with scintilla (http://www.scintilla.org/) to allow to edit easily other languages (python/js/beanshell/..) ; writing a scintilla lexer for LOBasic should not be complicated. - general: reorganize Insert menu ex with writer : https://wiki.documentfoundation.org/User:Michelr#Writer_:_new_Insert_menu (A consequence is that OLE embedding needs to have some visual/UX bugs corrected : I'll file bugs asap) - writer/calc : transpose the current table design sidebar panel from impress to writer and calc. It would not answer the need for table styles, but it would replace existing obsolete autoformat dialog. For calc, it would modify selected cells. The table design panel could be slightly enhanced to handle some more options (change colors, text options...) - draw: when user selects multiple shapes, there is only one visual selection (a rect with 9 green handles) around all selected objets. The problem is that user doesn't know exactly which objects are selected. Change that to have each object selected, with their own blue handles. Hope this helps, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice-ux-advise] Template manager issues pending
Hi all, Le 29/05/2013 23:35, Cor Nouws a écrit : Rafael Dominguez wrote (20-05-13 04:05) I did the rest of them already, ill push it tomorrow and ill send you a msg after, so you can test it. Hi Rafael, Just to make sure that I didn't miss anything: did you already have a change to push the work? As a reminder, the implementation started by Raphael seems : - complicated to code (OS specific) - difficult to maintain (because of OS specific) - not the best UX If it's still not implemented, why not switch to another solution: -- after the OpenFile picker, just add a dialog to ask user what he wants to do (open template or create a new doc from template). This solution is : - much easier to implement (I suppose it should be few lines of code) - easy to maintain (std VCL code) - a good UX (confirmed by Cedric and Mirek) Cheers, Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Template manager issues pending
Hi all, Le 20/05/2013 02:28, Cor Nouws a écrit : Cor Nouws wrote (20-05-13 01:39) only managed to add the checkbox option to the gtk+, kde4 and native dialogs, still pending the windows one and mac, but i dont have access to a mac, so its hard to work on that one. Joren - also in cc here - does have and does some useful patches now and then. No idea if he would be able and willing... just posting the hint ;) Another idea - by far the simplest, but less elegant - When a user opens a template, give a popup ( :D ) You choose a template Do you want a new file from that template or edit the template ? [[ New document ]] [ Edit template ] New document = default Ideas? Well, that was already proposed 2 times in this thread ! ;-) First by Raphael on 09/04/2013, then myself on 11/05/2013. Mirek and Cedric acknowledged that it should be the right way to do. The remaining point seems to be how to ask user : - a modal dialog ? - an infobar ? is 'infobar' something like that : https://wiki.documentfoundation.org/Design/Whiteboards/Infobar ? so, IMHO, I think that an infobar is too late in the opening process : - the infobar is shown above the newly created window (the opened template or the newly created file) - if a click in a button of infobar closes the current window and open another, it may disturb the user - is it technically ok to close the current window and open another from an infobar ? It seems to me that a simple dialog before opening template/creating new file is technically much simpler and more obvious for users. Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Template manager issues pending
Hi all, Le 10/05/2013 17:06, Cor Nouws a écrit : Hi all, Worked myself through the list with template related issues and - apart from all great progress - found a few that are still open. And with 4.1 approaching rapidly... 60589 - [Template manager]: Can not copy styles between different files and templates I would say that the only one being able to work on that is Mirek : as he strongly designed the new Template Manager, he must know how to do that. *why is Mirek silent for such a long time on this subject ?* As I really don't understand how the new Template Manager was designed, I absolutely have no idea how to correct that bug in the new Template Manager. My only proposal is based on something existing : (I just saw it has already been proposed by Raphael on 09/04/2013) in the Styles Formatting window, there are buttons on top. In Writer, there is even a popup with an action Load Styles... : It opens a dialog that has nearly what you need : - the list of categories of templates, then the list of templates - it can copy some styles from the selected template to the current document. My idea is to simply extend it by integrating code from old template manager (v3.6). As those dialogs seems similar, I suppose it should not require a complete rewrite. Then, maybe add this action (Load Styles...) in Styles Formatting for Calc, Impress and Draw. If you think it might be a solution, then I can make a more precise proposal. 61396 - FILEOPEN: [Template Manager]Possibility to edit a template that is not in the repository, is lacking I saw a comment with the proposal : when a user does Open from the File menu and selects a template, then LO should open the template ; instead of creating a new file from the template. It seems to be a coherent behavior : the user selects the command open so LO must open. When the user selects new from template, then LO must create a new file from a template. If you really want to prevent modification of bad file, maybe add an dialog asking confirmation : Do you really want to open the template 'test.ott' ? or create a new file from this template ? and related 59427 - [Template Manager] low discoverability of new template manager - we could use File → Organize templates menu I agree Cheers, Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
[Libreoffice-ux-advise] Impress : general feed back
Hi, While working on entrance animations, I also ran an simple test of Impress and found bizarre behaviors : https://wiki.documentfoundation.org/User:Michelr#Impress_4.0_:_urgent_bugs_and_enhancements What do you think of my Proposal for urgent bugs ? Can it be implemented easily ? (others proposal short-term and mid-term are still in brainstorm state) Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Mass changes to Impress animations - related to fdo#41572
Hi, Le 01/05/2013 18:33, Mirek M. a écrit : On Wed, May 1, 2013 at 5:59 PM, Michel Renon michel.re...@free.fr mailto:michel.re...@free.fr wrote: [...] Is it ok to create a new panel (in the tasks panel) ? Aren't entrance animations just a subset of custom animations? What about other kinds of animations, like exit animations? Don't they deserve equal treatment? I don't think so. Entrance animation are at the core of slideshows : - if you show all lines at once, your audience will spend a lot of time reading instead of listening to you - if you show line by line, you keep control on the slideshow, you can let them imagine the next line will be a surprise... - it's quite boring when a slide content doesn't change for a long time So, yes, entrance animation are very important, while other are nearly optional. And I'm not the only one : look at Powerpoint 2003 : it behaves just like that : - with one or two click (in the ribbon, top-left : very important button), you can define the default entrance animation - for all other animations, you use the standard Animation panel It's the shower faucet principle : http://michel.renon.free.fr/libreoffice/robinet_douche.jpg Except for fewer clicks, what would the new panel bring? it brings : - a clear, obvious and consistent UX - very easy to discover : the title of the panel is explicit - very easy to use : only 3 popups with immediate change - a shortcut to the most used functionality Aren't all of the options it contains already available via Effect Options? Yes, but hidden in an terrible UI and behind a lot of clicks, icons and dialogs. My proposal tries to optimize the definition of entrance animation of the main textfield. If the user wants to make something special, he just has to use the Custom Animation as today. I would rather opt for redesigning the current custom animation panel than adding a new panel, especially as the task pane is overpopulated as is. the Custom Animation panel really needs enhancements. But this is different from my proposal : whatever redesign you do for the Custom Animation, it will never be as useful as my proposal. And, as said before, entrance animation are at the core : optimizing them will change life of 100% of Impress users. While other animation are not at the core : today, it's not worth working on other animations, let's focus on more important UI/UX tasks (ex : https://wiki.documentfoundation.org/User:Michelr#Impress_4.0_:_urgent_bugs_and_enhancements). On a more general point of view, I'm a simple user of Impress. Handling entrance animation is so complex, buggy that I avoided using it for years. And some friends refuse to use it because they find it unusable : simple tasks are complex to perform (ex entrance animations), and buggy, buggy. Given that bad UI feedback, I find it much more important to work/focus on basic/most used functionalities than working on adding unnecessary functionalities (ex : adding 3D Ultra advanced OpenGL transitions or simplifying entrance animation ?) My idea is First let's make LibreOffice be really easy to use for basic work. Then, we'll take care of more advanced functionalities. Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Mass changes to Impress animations - related to fdo#41572
Hi Janit, Le 01/05/2013 18:16, Janit Anjaria a écrit : Hey Michel! It is great that you have added something to the wiki page.I will have a look at it,and it would be great if you can provide me with guidance on the UI part so i can give the best possible result to the community under Thorsten's help and your help as well on the UI Part. As the UX is not defined/validated, it may be difficult for me to give precise clues. But here are some general suggestions : - you can look at how LibreOffice handles the Tasks Panel : - how to add a panel - how to hide/disable a panel - how to handle widgets in a panel (create, handle events...) - for the Custom Animation panel - how does it behaves internally ? ie write documentation about it. I wrote nothing about it in my basic feedback [1], but it seems to me that there are some bugs (ex : some bizarre feedback when you change order of elements). You may learn *a lot* and it'll be essential for every future change. Years ago, I had to start a project with a framework (MacApp2). I spent severals days reading code from the framework to understand the general architecture. It was an incredible way of learning : when I started coding, most of basic ideas where already integrated. Cheers, Michel [1] https://wiki.documentfoundation.org/User:Michelr#Impress_4.0_:_urgent_bugs_and_enhancements ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Mass changes to Impress animations - related to fdo#41572
Le 03/05/2013 12:51, Michel Renon a écrit : Hi Janit, [...] But here are some general suggestions : I forgot : - you can look at how LibreOffice handles smartTags : - how to create them - how to handle events - can we add some widgets ? (ie a popup in a smarttag ?) Cheers, Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
[Libreoffice-ux-advise] Articles about LibreOffice design process
Hi, I inform you that I wrote a list of 9 articles about LibreOffice, specially about the design process. The first starts here : http://mr-consultant.net/blog/2013/04/thoughts-about-design-process-part-1-the-context/ If you have very few time, you can just go directly to last, the conclusion. There is a very-condensed version of my feedback and proposals : http://mr-consultant.net/blog/2013/04/thoughts-about-libre-office-design-process-part-9-conclusion/ As there is also some informations for TDF, and as they participate to design mailing-list, I send a copy to Charles and Italo. I hope they'll find my feedback interesting. Thanks for reading, Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Mass changes to Impress animations - related to fdo#41572
Hi Thorsten, Janit, Le 22/03/2013 09:13, Thorsten Behrens a écrit : [...] - Is it possible to implement some visual changes on objects in slides ? ex : add some small widget beside (or inside?) an object to indicate a status or to show a popup to activate some changes. Or have a special border. These widgets/borders would be shown via a menu command, or via a mouse hover, only while designing the slide. Yes, that is possible - there's a concept called SmartTag in Impress, that is e.g. used to implement this four-way icon at the presentation placeholder objects ('insert table/chart/picture/movie'), or for editing motion path animations. So the base technology for that is there. very good news ! - Is it possible to implement some visual changes on every single line/ some lines of a textfield ? It's a detailed version of the previous point : can a line in a textfield have some widget ? or be drawn with some special border ? In general yes, though slightly more involved. great ! - today, the 'animation objects' are linked to object in slides, but is the reverse also true ? ie if user modify a slide object, can the animation object be updated automatically ? Not sure I get the idea - are you referring to changes e.g. to master pages, that then translate to all slides using it (that is one aspect of the original question / task Janit was looking into)? No, I was referring to the edition of a slide, when an animation is already defined on the lines of text : if you change the content of the text, the animation is not updated. From a user pov, it's really annoying. From a technical pov, is it possible to implement it ? (I suppose it has nothing to do with UX, only code, and just define rules to handle different use cases) [...] With all your first answers, I started to brainstorm some ideas. I'll begin to mockup them in few days. I'll create a new page on the wiki. Thanks Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Mass changes to Impress animations - related to fdo#41572
Hi Thorsten, Janit, In order to work on that problem, I would like to have some technical advise about what can be implemented or not. (just to avoid wasting time by designing things that can't be implemented) Well this mail is mostly for Thorsten as you're the official mentor of Impress/Draw. - Is it possible to implement some visual changes on objects in slides ? ex : add some small widget beside (or inside?) an object to indicate a status or to show a popup to activate some changes. Or have a special border. These widgets/borders would be shown via a menu command, or via a mouse hover, only while designing the slide. Here is an example of such widgets in a RAD tool to build forms. On the left, the standard view, on the right, the widgets indicate the tab order of 3 textfields in form : http://michel.renon.free.fr/libreoffice/text_order_form.png - Is it possible to implement some visual changes on every single line/ some lines of a textfield ? It's a detailed version of the previous point : can a line in a textfield have some widget ? or be drawn with some special border ? - today, the 'animation objects' are linked to object in slides, but is the reverse also true ? ie if user modify a slide object, can the animation object be updated automatically ? The answers may have 4 values : -1- it can be implemented immediately, no changes required in VCL -2- it can be implemented after some work in VCL (and other) ; the average delay is few weeks ( 2 months) of devs -3- it can be implemented after a long work in VCL (and other) ; the average delay is 2 months -4- it can't be implemented, can't be done in VCL well, if you find a fifth answer, tell me ! And two open questions : - In this whole subject, what objects are linked to ODF format ? (ie : what can be changed without changing the file format) - what are the technical limitations related to animations in Impress ? Thanks, Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Deleting multiple styles at once
Hi, I hope it's not too late to answer ! Le 08/02/2013 18:06, Jean-Francois Nifenecker a écrit : Hi, [...] So, as you might have guessed ;) my proposal is to get rid of any message box for that matter. While I agree in the general principle (if it's undoable, don't ask confirmation), there is something different here : when you undo the deletion of a style, the style is not associated anymore to the text. So it's a partial undo (just tested in LO 3.5 3.6) [1]. In this case, the user must be informed that the text will definitely loose his style (and can't be undone). Or if devs can re-associate style to the text, then no need for confirmation. But it should be much much more complicated ! Michel [1] - create text - add some attributes (font, color) - create new style test1 from selected text - save document - delete style test1 -- the text become standard - undo -- the style test1 is back in the style list -- the text is still standard ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Template manager - the menu entries
Hi all, Le 13/01/2013 22:58, Cor Nouws a écrit : Hi all, My sincere apologies if I missed a discussion about this (but in any case my mail box does not show it). We had the menu: File Templates Organise Address Book Source Save Edit Now we have: File Save As Template File New Template What is wrong with the old menu? It is easier to find. It is consistent with what people know. And File New Template for editing / organising is not so logic with the rest of the menu File New That was also my first impression while testing LO 4 beta2 Maybe the new menu could be: File Templates Organise / Edit Save Address Book Source Ideas? Seems ok for me : similar and simpler than current version ; no changes for users, easy for dev. Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] LATE FEATURE: Personas in LibreOffice
Hi all, Le 08/01/2013 11:07, Jan Holesovsky a écrit : Hi Cor, Cor Nouws píše v Po 07. 01. 2013 v 22:56 +0100: Idea looks great to me and is an invitement for futher enhancements in the future :-) I gues the code in a daily from 2012-12-28 (1) is not yet complet? I see the option page, but choosing an own background image does not work (file picker handling is broken) and a choosen persona is not shown... That's too old, you need a build post 2012-01-04. The 'own background' is not working even there, and will be removed from 4.0 if the Persona part is approved (otherwise both will go). I tested on build 2013-01-08 on Ubuntu 12.04 and nothing works :-( Btw, it's a nice feature ! As it's a user's choice, we have not to worry about readability of toobars. May i make some suggestions on the pref panel ? - why not keep the own image to select an image in local hd ? - if i understand ok (images and personas are exclusive), we can have the choices : *Toolbar background* O Default O Image Select Image... O Firefox PersonaSelect Persona... (I renamed own image to Image) - would it be possible to add a preview of image/persona ? and a status text if there is an error (error loading image, error loading persona, timeout...). From a user pov, it's an expected feed-back before validating. - to be complete, LO should keep the path of image/url of persona, and show it below the preview ; and the url should be entered automatically in the persona dialog. So my complete suggestion in ascii : *Toolbar background* O Default O Image Select Image... O Firefox PersonaSelect Persona... [Status text, only if error] +---+ | | | preview | | | | | +---+ path/url : xx Thanks, Michel ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
Re: [Libreoffice-ux-advise] Template Manager: UI to reset the default template
Le 09/01/2013 16:49, Cedric Bosdonnat a écrit : On Wed, 2013-01-09 at 14:10 +0100, Cedric Bosdonnat wrote: On Wed, 2013-01-09 at 11:51 +0100, Cedric Bosdonnat wrote: Hi guys, There is one thing really missing in the new template manager: we have no way to reset the default template after having set it. Any idea where / how to integrate that? I just saw the Blank template item idea for each category in the bugs page... that will do the trick I think. Hum, yet another reply to myself... the Gear popup menu has the action to reset the default template. what is the current implementation (lo 4.0) : - is there a default .ott, .otc, otd, otp ? - or is it harcoded ? I realize there is no feed-back to inform user which template is default. Can we add some visual feed-back ? for ex a special background or border, an icon, or bold text ? And if the default template is hardcoded, can we add some information text to say The default Writer/Calc/Impress/Draw template is defined by LO If you can create a blank template (eg corresponding to LO default), the action in gear menu seems useless. Just a reflexion : wouldn't it be interesting to show all default template to user ? A list with 4 templates : 1 for Writer, 1 for Calc, 1 for Impress, 1 for Draw Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] LATE FEATURE: Personas in LibreOffice
Hi all, Le 08/01/2013 11:07, Jan Holesovsky a écrit : Hi Cor, Cor Nouws píše v Po 07. 01. 2013 v 22:56 +0100: Idea looks great to me and is an invitement for futher enhancements in the future :-) I gues the code in a daily from 2012-12-28 (1) is not yet complet? I see the option page, but choosing an own background image does not work (file picker handling is broken) and a choosen persona is not shown... That's too old, you need a build post 2012-01-04. The 'own background' is not working even there, and will be removed from 4.0 if the Persona part is approved (otherwise both will go). I tested on build 2013-01-08 on Ubuntu 12.04 and nothing works :-( Btw, it's a nice feature ! As it's a user's choice, we have not to worry about readability of toobars. May i make some suggestions on the pref panel ? - why not keep the own image to select an image in local hd ? - if i understand ok (images and personas are exclusive), we can have the choices : *Toolbar background* O Default O Image Select Image... O Firefox PersonaSelect Persona... (I renamed own image to Image) - would it be possible to add a preview of image/persona ? and a status text if there is an error (error loading image, error loading persona, timeout...). From a user pov, it's an expected feed-back before validating. - to be complete, LO should keep the path of image/url of persona, and show it below the preview ; and the url should be entered automatically in the persona dialog. So my complete suggestion in ascii : *Toolbar background* O Default O Image Select Image... O Firefox PersonaSelect Persona... [Status text, only if error] +---+ | | | preview | | | | | +---+ path/url : xx Thanks, Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Advice required on auto text resize (Impress)
Hi, Le 13/10/2012 23:58, Jean-Baptiste Faure a écrit : Hi, Le 08/10/2012 15:23, Thorsten Behrens a écrit : Hi there, [...] Thank you very much for these explanations about autofit feature. Jean-Baptiste Faure wrote: I think this autofit feature is very disturbing if you are not aware of it. Granted - so how to best display that? PowerPoint has a little icon next to the textboxes that have this enabled. I think it is a good idea. Perhaps this icon should have two states, one which indicates that this property is enabled and another when autofit is in action (text size is actually reduced) with a tooltip saying that autofit is enabled and what is the actual font size. As the problem seems to be feedback for user, why not indicate the real size in the font size list ? For example, if the official size is 48 and the real size is 32, the font size list would show : 48 (32) From a technical point of view, it might be simpler to implement than adding an icon near the textbox. Here is the proposal : http://wiki.documentfoundation.org/User:Michelr#Impress_:_autofit_text Thanks, Michel ___ Libreoffice-ux-advise mailing list Libreoffice-ux-advise@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-ux-advise
Re: [Libreoffice-ux-advise] Killed the ButtonBar in slide sorter
Hi Jon, Le 26/09/2012 16:34, Jan Holesovsky a écrit : Hi Michel, Michel Renon píše v St 26. 09. 2012 v 13:45 +0200: UI decisions should be taken based on facts, analysis, polls, statistics. So this is the statistics I have at hand: Several people angry about a feature, and nobody praising it. Now, you are the first one, so please tell me how much do you actually use Impress. If you do, it is really hard to believe that you haven't got bitten by this yet. Also, I would be most interested to hear how many times have you actually used the buttons. I use Impress very few, but this buttonBar has never disturbed me. I essentially use the 'duplicate' button of this toolbar. I can list other parts of Impress that are design nightmare ! (I have a list of bugs of LO and I will create bug reports asap). I asked other people (from my LUG) and they had no problem with the buttonbar, or even with the concept of popup objects. They even find the context menu (with right-click) so '90s (while still very useful) and tend to prefer the popup objects, because they become used to that with current web UI. We cannot measure everything, otherwise we wouldn't get much far because all that time spent talking, and considering, and writing specifications. Much better approach is to try what seems good, and if it does not work, ie. we get complaints constantly, not only a few during a transition period, change it. This way of doing is possible with a small user base (I did it twelve years ago while writing big and important software for Airbus : we used a kind of agile process (idea, code, feed-back and loop). Early users (1-4 people) were also testers and we created a wonderful software, still used and appreciated! (10-50 current users) However, with LO's user base, it's impossible : most users want something that just work out-of-the-box, they are not testers and don't want to be considered like that : they have to produce documents, mostly in professional context, that's all. LO must be stable, efficient and not change UI (that disturb users) every release. You can imagine an equivalence with car industry : drivers won't accept a new car that has defaults or that is not complete or that has something for testing. And look at the huge problem that Apple has to face with his incomplete Maps app. Tim Cook had to apologize and explicitly said to use others software (from concurrents!). It's not a design problem, but it shows that a large user base can't be considered as testers ; they accept only a finished product (already tested). Please note that Renaissance is 3-4 years old project. A good idea will never be obsolete ;-) Renaissance was a project, not an idea ;-) Who cares where ideas come from ? Henri Poincaré (a french mathematician) solve a problem while jumping in a bus, Archimedes is famous for taking a bath, Isaac Newton and an apple. (ok, Newton's apple is a legend...) [...] As a general point of view on this subject, I would say that it shows several problems in the design team (that's why I'm CCing to design list) : - there is a lack of long-term vision for LO's UI/UX : a vision, a roadmap, with tenets. Some big users (administrations, companies...) need that kind of information so that they can plan training, migration [1]. For example : - should we use or avoid appearing / disappearing UI elements ? - should we use floating and/or docked panels ? When a decision is made, it should not change for several years (3-5) Alex / Astron / Mirek / others [in alphabetical order :-)] all have common vision, and it shows with 3.6 - it is the most beautiful open source office suite around. How comes you have not noticed that? ;-) I was talking about something precise : roadmap with practical guidelines : - a roadmap defines where are we going to ? - a roadmap defines what is the schedule ? - practical guideline defines what should you do/don't do ? how to react in every kind of situation ? In the context of design, it would mean : - how will the LO's UI be in the future ? - what is the schedule of the incremental/big changes ? (in X months, the panel Y will be changed, etc) - guideline are for devs / ui people (like Human Interface Guideline, for iOS or Android or MS or Gnome or KDE) Today, the design principles are too abstract to be considered as guidelines. And I repeat that such a schedule is important for companies and administration, so that they can plan one or two years ahead (training /migration) - a developer may decide to make big UI changes, just because he talked with few users : it's a complete by-pass of the existing UI process (whiteboards, proposals, discussions, vote) ; it may also bring some big inconsistencies [2] Imagine a new volunteer who contributed code to improve something, do you want to say him/her that OK, but you haven't followed the PROCESS, return to the drawing board.? yes ! because : - we all make
Re: [Libreoffice-ux-advise] Killed the ButtonBar in slide sorter
Hi Cor, Jan, Le 25/09/12 16:00, Jan Holesovsky a écrit : [...] Therefore the good OpenOffice.org developers and people conducted a large project some years ago, Renaissance. Of course the toolbar is one of the changes the was a result from that. I guess all the work was done, because many obvious actions are not easy enough accessible for Joe-average. And that these were only the first steps in a route to make Impress (more) more contemporary. The little pop-ups fit more in modern UI (-expectations) I guess then context menu's - let alone short-cuts and pull down menus... I don't think I agree with you here. The touch-based devices need to have everything shown, nothing appearing based on a presence of a mouse pointer; It's a technical fact : touch interfaces have no 'hover' event. But look at what's happening with Nautilus : devs are making big changes to prepare for touch interface. The mistake is that they change *current* desktop version so that *future* versions may work on tablets. Since last year, users just can see Nautilus has less and less behaviors. Devs just say we know what's good for you : we'll bring them back later for touch. The result is that the Nautilus project is forked and will be replaced very soon. We have to realize what for next 2 years (and more...), most LO users will still use a computer (desktop or laptop) to edit. Your modification will be useful for the tablet version of LO, but maybe not for the desktop version. and it seems to me as a good trend in general. This is a personal and subjective opinion. UI decisions should be taken based on facts, analysis, polls, statistics. I also made that mistake : few months ago, I made a proposal for another Insert menu, based on most used items, well most items I used and supposed others also used. In the design list, I had some immediate and strict feed-back : don't suppose, provide real and pertinent usage values otherwise propose something different. They were right. Please note that Renaissance is 3-4 years old project. A good idea will never be obsolete ;-) I have heard complaints about this Button bar from several people, and no 'oh, I love these appearing buttons' - so I believe we are fine. The same with the appearing / disappearing header / footer controls - lots of complaints that it is too much disruptive, so I believe that not using any controls that appear after a timeout only supports that the above mentioned trend is Good :-) I may be the first, but let me tell you that I find the new header/footer control *very useful* ! The complaints I heard about OOo/LO were all about the old look/design. The header/footer control, while not perfect, brings something new that's really welcomed. And I wish we can use that idea for table edition and much more. Why not allow users to enable/disable such appearing-controls by preferences ? Everybody should be happy : - beginners and average users won't see changes between versions - power users may choose what they prefer As a general point of view on this subject, I would say that it shows several problems in the design team (that's why I'm CCing to design list) : - there is a lack of long-term vision for LO's UI/UX : a vision, a roadmap, with tenets. Some big users (administrations, companies...) need that kind of information so that they can plan training, migration [1]. For example : - should we use or avoid appearing / disappearing UI elements ? - should we use floating and/or docked panels ? When a decision is made, it should not change for several years (3-5) - a developer may decide to make big UI changes, just because he talked with few users : it's a complete by-pass of the existing UI process (whiteboards, proposals, discussions, vote) ; it may also bring some big inconsistencies [2] - most important, it may changes/revert recent modifications -- users will be disturbed by those UI flip/flop (for example see previous changes between Rythmbox and Banshee in Ubuntu) (please see absolutely no offense to you Jan, I'm just trying to analyze the situation ; and the context of my feedback is that I have not enough time to work, propose on the UI/UX team, so it's just a little reflexion/suggestion ; but as a simple user, I would be very disturbed by such changes) Thanks, Michel [1] And in France, last week we had an important announce about OSS and the administration : they'll study different projects and choose some of them. Nothing is decided between LO/OOo : Each project's team has to prove his project is stable, well organized, well structured and has a clear roadmap. [2] I just tried Thunderbird 18 (aurora channel) and the main window has no more menu bar ! Menus are now in a popup button on the right. But the problem is that the compose window still has the standard menu bar : inconsistency, users will be disturbed. ___
Re: [Libreoffice] UX opportunity ... / Easy Hacks
Hi everybody, Just a short intro for my first post in this list : I'm a Mac OpenOffice user for several years. I've been coding with C++ years ago, now i code mostly in PHP and Python (OpenERP). I'm also interested in UX and ergonomics, and i've made a (not so complete) proposal for Renaissance project (http://wiki.services.openoffice.org/wiki/Proposal_by_Michel_Renon). Le 28/10/10 11:37, Michael Meeks a écrit : Hi Christoph, ( and any other UX gurus out there :-) Hi guys; I'd -love- to get a number of easy hacks - ie. small fixes - that can be made to our ergonomics into the page here: http://wiki.documentfoundation.org/Easy_Hacks These are entry level tasks for people - but IMHO[1] an accumulation of small failings creates an overall bad experience. The problem is that much of StarDiv's work (due to the process penalty for small changes) tends to be of the form totally re-write the slides side-bar rather than fix slide side-bar-multi-select glitches :-) I was wondering - do you have a list of small pet peeves, you know the stuff: extra clicks, broken keyboard/mouse grabs, bad keyboard navigation, over-complicated interactions in specific areas that we can turn into easy hacks ? It would be great to get some volunteer developers working on these things - and we are (so far) burning through our most easy hacks rather quickly. Here are some requests. Some are enhancements, others are bugs. I don't know if they can be considered as easy hacks or if i should enter them in the bugtracker. Please let me know. And in which category of easy hacks should I insert them ? (FYI, I already sent some of them in openoffice mailing list months ago, but they had few or no response) Thanks, Michel * MacOS : cursor visibility : when I type some text, mouse pointer should be hidden (the arrow or the I-beam). It's a standard behaviour on Mac since... 1984 ! - today, when you paste an image in writer, the anchor mode is always to paragrah. This is very annoying when you paste several images : they overlap. it would be usefull to define the anchor - in preference - and/or during pasting - add a menu Save a copy as... I really miss that for Calc : it would allow me to save the current spreadsheet in csv, while not changing the current ods file. It should be usefull for writer, draw and impress too. - today, when you want to insert a spreadsheet or draw object in writer, you have to do : select menu Insert Object OLE object, then choose a line in a dialog ! It should be much simpler ! most people don't know what OLE means. Provide a more direct acces to insert LibreOffice Write/Calc/Draw/Impress object function. Maybe show the OLE Object menu line only on windows ? - writer : be able to search text with format hilight color or background color - when you open 2 windows of the same document, there is a problem with the zoom : if you reduce zoom in one window, it may change rendering in the other window. Maybe the problem also appears whith scrolling. - draw : create a hand tool that would allow easy and fast scrolling. It would be activated/desactivated with a keybord shortcut In Inkscape, it seems to be CTRL + ALT - draw : change the object selection exmple : create a big rect 'rectangle1'. create a smaller rect 'rectangle2', inside 'rectangle1'. For the user, 'rectangle2' is above 'rectangle1'. Select 'rectangle1' : his handles are shown. Click inside 'rectangle2' : nothing changes. With Inkscape (and others drawing software), 'rectangle2' is selected. - have only one type of floating windows for tools for example, the tools border, color show a standard window. But most others tools (specialy drawing tools) use the openoffice implementation of floating windows. Why not use only the openoffice implementation ? (I don't know if it's technically possible or if it'll create UX problems) writer, mac : small freeze at startup After a cold start of writer, il you start to type some text, openoffice freezes for some seconds (loading some code ?) and then shows the text. It's not a bug, but it gives the impression that openoffice is *slow* or *unusuable*... * mouse position problem The problem appears when you select (single-clic) an object (drawing or OLE) in writer, Impress or Draw. We have several steps : step 1 : user clicks on an