[Bug 65675] LibreOffice 4.2 most annoying bugs
https://bugs.documentfoundation.org/show_bug.cgi?id=65675 Bug 65675 depends on bug 37960, which changed state. Bug 37960 Summary: Shift click to select multiple drawings does not work if picture there[Summary in Comment # 30] https://bugs.documentfoundation.org/show_bug.cgi?id=37960 What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED -- You are receiving this mail because: You are on the CC list for the bug. ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Bug 65675] LibreOffice 4.2 most annoying bugs
https://bugs.documentfoundation.org/show_bug.cgi?id=65675 Bug 65675 depends on bug 37960, which changed state. Bug 37960 Summary: Shift click to select multiple drawings does not work if picture there[Summary in Comment # 30] https://bugs.documentfoundation.org/show_bug.cgi?id=37960 What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- -- You are receiving this mail because: You are on the CC list for the bug. ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: Branch 'aoo/trunk' - sal/osl
sal/osl/unx/profile.c |9 +++-- sal/osl/w32/profile.cxx |9 +++-- 2 files changed, 6 insertions(+), 12 deletions(-) New commits: commit fc4e91e7288d13c40cc78bfa680c7a1e6047c087 Author: Pedro Giffuni Date: Sun Oct 4 02:07:53 2015 + malloc + memset (0) --> calloc Drop useless casts while here. diff --git a/sal/osl/unx/profile.c b/sal/osl/unx/profile.c index da342ef..6fb8d49 100644 --- a/sal/osl/unx/profile.c +++ b/sal/osl/unx/profile.c @@ -1526,8 +1526,7 @@ static sal_Char* addLine(osl_TProfileImpl* pProfile, const sal_Char* Line) if (pProfile->m_Lines == NULL) { pProfile->m_MaxLines = LINES_INI; -pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *)); -memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *)); +pProfile->m_Lines = calloc(pProfile->m_MaxLines, sizeof(sal_Char *)); } else { @@ -1568,8 +1567,7 @@ static sal_Char* insertLine(osl_TProfileImpl* pProfile, const sal_Char* Line, sa if (pProfile->m_Lines == NULL) { pProfile->m_MaxLines = LINES_INI; -pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *)); -memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *)); +pProfile->m_Lines = calloc(pProfile->m_MaxLines, sizeof(sal_Char *)); } else { @@ -1743,8 +1741,7 @@ static sal_Bool addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* if (pProfile->m_Sections == NULL) { pProfile->m_MaxSections = SECTIONS_INI; -pProfile->m_Sections = (osl_TProfileSection *)malloc(pProfile->m_MaxSections * sizeof(osl_TProfileSection)); -memset(pProfile->m_Sections,0,pProfile->m_MaxSections * sizeof(osl_TProfileSection)); +pProfile->m_Sections = calloc(pProfile->m_MaxSections, sizeof(osl_TProfileSection)); } else { diff --git a/sal/osl/w32/profile.cxx b/sal/osl/w32/profile.cxx index b108657..3c7ef52 100644 --- a/sal/osl/w32/profile.cxx +++ b/sal/osl/w32/profile.cxx @@ -1584,8 +1584,7 @@ static const sal_Char* addLine(osl_TProfileImpl* pProfile, const sal_Char* Line) if (pProfile->m_Lines == NULL) { pProfile->m_MaxLines = LINES_INI; -pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *)); -memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *)); +pProfile->m_Lines = calloc(pProfile->m_MaxLines, sizeof(sal_Char *)); } else { @@ -1626,8 +1625,7 @@ static const sal_Char* insertLine(osl_TProfileImpl* pProfile, const sal_Char* Li if (pProfile->m_Lines == NULL) { pProfile->m_MaxLines = LINES_INI; -pProfile->m_Lines = (sal_Char **)malloc(pProfile->m_MaxLines * sizeof(sal_Char *)); -memset(pProfile->m_Lines,0,pProfile->m_MaxLines * sizeof(sal_Char *)); +pProfile->m_Lines = calloc(pProfile->m_MaxLines, sizeof(sal_Char *)); } else { @@ -1801,8 +1799,7 @@ static sal_Bool addSection(osl_TProfileImpl* pProfile, int Line, const sal_Char* if (pProfile->m_Sections == NULL) { pProfile->m_MaxSections = SECTIONS_INI; -pProfile->m_Sections = (osl_TProfileSection *)malloc(pProfile->m_MaxSections * sizeof(osl_TProfileSection)); -memset(pProfile->m_Sections,0,pProfile->m_MaxSections * sizeof(osl_TProfileSection)); +pProfile->m_Sections = calloc(pProfile->m_MaxSections, sizeof(osl_TProfileSection)); } else { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Bug 39749] calc unit test writing
https://bugs.documentfoundation.org/show_bug.cgi?id=39749 kadertarlan changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|libreoffice-b...@lists.free |kadertarl...@gmail.com |desktop.org | -- You are receiving this mail because: You are on the CC list for the bug. ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
CppCheck Report Update
A new cppcheck report is available at : http://dev-builds.libreoffice.org/cppcheck_reports/master/ Note: The script generating this report was run at : 2015-04-10_02:19:27 with user buildslave at host vm140 as /home/buildslave/source/dev-tools/cppcheck/cppcheck-report.sh -s /home/buildslave/source/libo-core -c /home/buildslave/source/cppcheck -w /home/buildslave/tmp/www It can be found and improved here: https://gerrit.libreoffice.org/gitweb?p=dev-tools.git;a=blob;f=cppcheck/cppcheck-report.sh ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: 7 commits - android/Bootstrap android/source
android/Bootstrap/AndroidManifest.xml |4 android/Bootstrap/src/org/libreoffice/android/Bootstrap.java | 105 -- android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java | 45 +++- android/source/res/drawable/bg_striped.xml |6 android/source/res/drawable/bg_striped_split.xml |6 android/source/res/drawable/black_white_gradient.xml | 15 - android/source/res/layout/about.xml |8 android/source/res/layout/document_part_list_layout.xml |4 android/source/res/layout/file_explorer_grid_item.xml |9 android/source/res/layout/file_list_item.xml |8 android/source/res/layout/navigation_grid_item.xml | 23 -- android/source/res/menu/main.xml |1 android/source/res/values-v21/themes.xml | 18 - android/source/res/values/strings.xml |3 android/source/src/java/org/libreoffice/InvalidationHandler.java | 15 - android/source/src/java/org/libreoffice/LOKitShell.java |2 android/source/src/java/org/libreoffice/LOKitThread.java |2 android/source/src/java/org/libreoffice/LOKitTileProvider.java |2 android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java |6 android/source/src/java/org/libreoffice/MockTileProvider.java |4 android/source/src/java/org/libreoffice/TileProvider.java |1 android/source/src/java/org/libreoffice/TileProviderFactory.java |2 android/source/src/java/org/libreoffice/canvas/SelectionHandleEnd.java |1 android/source/src/java/org/libreoffice/canvas/SelectionHandleMiddle.java |1 android/source/src/java/org/libreoffice/canvas/SelectionHandleStart.java |1 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudFile.java |2 android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java |2 android/source/src/java/org/libreoffice/ui/FileUtilities.java |6 android/source/src/java/org/libreoffice/ui/FolderIconView.java |6 android/source/src/java/org/libreoffice/ui/GridItemAdapter.java | 22 -- android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java | 16 - android/source/src/java/org/libreoffice/ui/WriterViewerActivity.java | 50 android/source/src/java/org/mozilla/gecko/gfx/LayerView.java |2 android/source/src/java/org/mozilla/gecko/gfx/ScrollbarLayer.java |2 android/source/src/java/org/mozilla/gecko/gfx/TextureGenerator.java |2 dev/null |binary 36 files changed, 96 insertions(+), 306 deletions(-) New commits: commit 1a6ec13d0805b7aa8c3bdcbfcc444c4916dfc817 Author: Christian Lohmaier Date: Sat Oct 3 22:53:37 2015 +0200 tdf#93281 clean cache directory on each start to avoid segfault in native lib. It's only a workaround, but I couldn't see what's wrong with the cache... Change-Id: Ic1e190bbbd6efe336d84ddcbd8c4d3a1c621 diff --git a/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java b/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java index 2a60f84..431c384 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java +++ b/android/Bootstrap/src/org/libreoffice/kit/LibreOfficeKit.java @@ -13,6 +13,7 @@ import android.app.Activity; import android.content.pm.ApplicationInfo; import android.util.Log; +import java.io.File; import java.io.InputStream; import java.nio.ByteBuffer; @@ -54,23 +55,23 @@ public final class LibreOfficeKit return; } -String dataDir = null; - ApplicationInfo applicationInfo = activity.getApplicationInfo(); -dataDir = applicationInfo.dataDir; +String dataDir = applicationInfo.dataDir; Log.i(LOGTAG, String.format("Initializing LibreOfficeKit, dataDir=%s\n", dataDir)); redirectStdio(true); - +// ToDo: ugly workaround - find out why it segfaults with existing cachedir +deleteRecursive(activity.getApplication().getCacheDir()); String cacheDir = activity.getApplication().getCacheDir().getAbsolutePath(); String apkFile = activity.getApplication().getPackageResourcePath(); -// If we notice that a fonts.conf file was extracted, automatically +// If there
[Libreoffice-commits] core.git: Branch 'feature/gsoc15-open-remote-files-dialog' - 2 commits - fpicker/source
fpicker/source/office/RemoteFilesDialog.cxx |5 + 1 file changed, 5 insertions(+) New commits: commit 06b8f344d50d14315c4fcdf2433da8f6d71baca3 Author: Szymon KÅos Date: Sat Oct 3 21:43:52 2015 +0200 Focus for file list after opening folder Change-Id: Ibac322b873315fd8a0ec63c930f4c76562a5e704 diff --git a/fpicker/source/office/RemoteFilesDialog.cxx b/fpicker/source/office/RemoteFilesDialog.cxx index d7b32f4..7ee410e 100644 --- a/fpicker/source/office/RemoteFilesDialog.cxx +++ b/fpicker/source/office/RemoteFilesDialog.cxx @@ -576,6 +576,8 @@ FileViewResult RemoteFilesDialog::OpenURL( OUString const & sURL ) if( m_eMode != REMOTEDLG_MODE_SAVE ) m_pName_ed->SetText( "" ); + +m_pFileView->GrabFocus(); } else { commit 544a360bbd81d0d6d68cf29e0eeb1ddeaeaff350 Author: Szymon KÅos Date: Sat Oct 3 21:36:42 2015 +0200 Focus for file name field after using it to open folder Change-Id: Ic3ae0c899c5feea659d22100f98dbeca4df217eb diff --git a/fpicker/source/office/RemoteFilesDialog.cxx b/fpicker/source/office/RemoteFilesDialog.cxx index 83cd52c..d7b32f4 100644 --- a/fpicker/source/office/RemoteFilesDialog.cxx +++ b/fpicker/source/office/RemoteFilesDialog.cxx @@ -1142,6 +1142,9 @@ IMPL_LINK_NOARG_TYPED ( RemoteFilesDialog, OkHdl, Button*, void ) OpenURL( sPathNoExt ); m_pName_ed->SetText( "" ); +if( !bSelected ) +m_pName_ed->GrabFocus(); + return; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
Fw: My work
Hello. Due my slow internet connection, I am unable to upload my patches the regular way, so i am sending you my work in the attachment and in the following google drive folder(https://drive.google.com/file/d/0Bw9dWoxQQ7gNMUttaGctTm83Z00/view?usp=sharing). These are only small patches, I have changed two functions in writerfilter/source/dmapper/PropertyMap.cxx The file "fix.cxx" contains only the two functions, the file "PropertyMap.cxx" contains the whole patched file. The docx-files are my test cases, they look different in LibreOffice than in Word. Failure_2 should be fixed with my patch. These files may be used under any licence. Thanks, Jack___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: wizards/com
wizards/com/sun/star/wizards/web/FTPDialog.py |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit 2ff595dbf2b42b4b3ee961b63e5da92067aa8fd9 Author: Julien Nabet Date: Sat Oct 3 18:15:37 2015 +0200 Web Wizard, ftp part: fix logic for dialog Comment indicated "If one of these fields is empty, the button is disabled", let's stick to this. Change-Id: I99dd23339d888c33e7706935842a91f5da681ade diff --git a/wizards/com/sun/star/wizards/web/FTPDialog.py b/wizards/com/sun/star/wizards/web/FTPDialog.py index 6f3cf75..25b1c6b 100644 --- a/wizards/com/sun/star/wizards/web/FTPDialog.py +++ b/wizards/com/sun/star/wizards/web/FTPDialog.py @@ -249,7 +249,7 @@ class FTPDialog(WizardDialog): # according to the status of the hostname, username, password text fields. # If one of these fields is empty, the button is disabled. def enableTestButton(self): -self.setEnabled(self.btnTestConnection, not self.isEmpty(self.host) or self.isEmpty(self.username) or self.isEmpty(self.password)) +self.setEnabled(self.btnTestConnection, not (self.isEmpty(self.host) or self.isEmpty(self.username) or self.isEmpty(self.password))) # @param s # @return True if the string is None or "". ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: 2 commits - bin/get-bugzilla-attachments-by-mimetype sc/source vcl/workben
bin/get-bugzilla-attachments-by-mimetype |1 + sc/source/filter/excel/excel.cxx |8 ++-- vcl/workben/fftester.cxx | 11 ++- 3 files changed, 13 insertions(+), 7 deletions(-) New commits: commit 7e5a7dcc5143911430b19bcb836ab573298cabe6 Author: Caolán McNamara Date: Sat Oct 3 17:02:31 2015 +0100 add application/x-qpro to get-bugzilla-attachments-by-mimetype Change-Id: Ie8350ce999fb6eaad8ba8f790753cfbbc1c8b70a diff --git a/bin/get-bugzilla-attachments-by-mimetype b/bin/get-bugzilla-attachments-by-mimetype index 7f0dfa2..3b253bd 100755 --- a/bin/get-bugzilla-attachments-by-mimetype +++ b/bin/get-bugzilla-attachments-by-mimetype @@ -434,6 +434,7 @@ mimetypes = { # misc 'text/csv': 'csv', 'text/spreadsheet': 'slk', +'application/x-qpro': 'qpro', 'application/x-dbase': 'dbf', 'application/vnd.corel-draw': 'cdr', 'application/vnd.lotus-wordpro': 'lwp', commit 0d97aeea052892911f089fdb87f972c02435b127 Author: Caolán McNamara Date: Sat Oct 3 16:53:01 2015 +0100 add QuattroPro support to fftester Change-Id: I832ab43e2fccf9b2c24e98ae443a9611012ea5a1 diff --git a/sc/source/filter/excel/excel.cxx b/sc/source/filter/excel/excel.cxx index b21ca5f..d52069e 100644 --- a/sc/source/filter/excel/excel.cxx +++ b/sc/source/filter/excel/excel.cxx @@ -218,13 +218,17 @@ FltError ScFormatFilterPluginImpl::ScExportExcel5( SfxMedium& rMedium, ScDocumen return eRet; } -extern "C" SAL_DLLPUBLIC_EXPORT bool SAL_CALL TestImportXLS(const OUString &rURL) +extern "C" SAL_DLLPUBLIC_EXPORT bool SAL_CALL TestImportSpreadsheet(const OUString &rURL, const OUString &rFlt) { ScDLL::Init(); SfxMedium aMedium(rURL, StreamMode::READ); ScDocument aDocument; aDocument.MakeTable(0); -FltError eError = ScFormatFilter::Get().ScImportExcel(aMedium, &aDocument, EIF_AUTO); +FltError eError(eERR_OK); +if (rFlt == "xls") +eError = ScFormatFilter::Get().ScImportExcel(aMedium, &aDocument, EIF_AUTO); +else if (rFlt == "wb2") +eError = ScFormatFilter::Get().ScImportQuattroPro(aMedium, &aDocument); return eError == eERR_OK; } diff --git a/vcl/workben/fftester.cxx b/vcl/workben/fftester.cxx index 1143bfc..c04d6d1 100644 --- a/vcl/workben/fftester.cxx +++ b/vcl/workben/fftester.cxx @@ -335,18 +335,19 @@ try_again: else ret = (int) (*pfnImport)(out, OUString("CWW8")); } -else if (strcmp(argv[2], "xls") == 0) +else if ( (strcmp(argv[2], "xls") == 0) || + (strcmp(argv[2], "wb2") == 0) ) { -static HFilterCall pfnImport(0); +static WFilterCall pfnImport(0); if (!pfnImport) { osl::Module aLibrary; aLibrary.loadRelative(&thisModule, "libscfiltlo.so", SAL_LOADMODULE_LAZY); -pfnImport = reinterpret_cast( -aLibrary.getFunctionSymbol("TestImportXLS")); +pfnImport = reinterpret_cast( +aLibrary.getFunctionSymbol("TestImportSpreadsheet")); aLibrary.release(); } -ret = (int) (*pfnImport)(out); +ret = (int) (*pfnImport)(out, OUString(argv[2], strlen(argv[2]), RTL_TEXTENCODING_UTF8)); } else if (strcmp(argv[2], "hwp") == 0) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
Re: Calc Macros - lagging behind?
Hi Christian, On Sat, 2015-10-03 at 08:44 -0400, Christian Heller wrote: > I'd love to use LibreOffice more, but I'm spoiled by Excel's VBA. =) > Are there any improvements coming soon? The new python stuff may be helpful. > eg I love the strict types that get me all the member > functions and variables by just typing "." (auto-complete). This is a huge scriptability problem that we have. The Excel interfaces have concrete typing - so you get an "Window" object and all the types of the members are known, and there are helpful methods to get a Worksheet property of type WorkSheet etc. I guess that the UNO interfaces are far less annotated, and many properties are hidden by generics; though Stephan has done some nice work in recent times to make it easier to pass type information through tricky places, and its possible to type annotated properties ahead of time. Do you have plans for the IDE in that regard Stephan ? (can we pass type information about eg. collections through too ? ) > dim args1(0) as new com.sun.star.beans.PropertyValue > args1(0).Name = "Text" > args1(0).Value = "Your name" > dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, > args1()) This of course is not a great way to insert text either ;-) my hope would be that we could encourage people to use the UNO APIs through making them easier to understand and use - perhaps with some less cumbersome top-level, strongly typed methods to get useful interfaces. Either way - I agree its a huge hole, and it'd be lovely to have someone to care about not only our API - but how we can use stronger type information to get the IDE into some more usable shape. ATB, Michael. -- michael.me...@collabora.com <><, Pseudo Engineer, itinerant idiot ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] help.git: AllLangHelp_scalc.mk source/text
AllLangHelp_scalc.mk |2 source/text/scalc/01/04060184.xhp |4 source/text/scalc/01/ex_data_stat_func.xhp | 125 + source/text/scalc/01/func_averageif.xhp| 72 4 files changed, 203 insertions(+) New commits: commit 7c74f4a55c7171419a78aa18f6d8842fe4f62833 Author: tagezi Date: Sat Sep 26 20:56:19 2015 +0300 Added description and examples of the AVERAGEIF function UPD: Changed in accordance with the comment of Olivier Hallot (Sep 29 7:31 PM) Added value for the missing ID (string 80) UPD2: typo: forboth -> for both table for an example was moved to a separate file the attribute "role" of the tag "paragraph" for all an example has been changed from "paragraph" to "example" UDP3: double IDs was deleted in ex_data_stat_func.xhp Change-Id: I31b377715db133bfaab59047f9613171db8659e1 Reviewed-on: https://gerrit.libreoffice.org/1 Reviewed-by: Olivier Hallot Tested-by: Olivier Hallot diff --git a/AllLangHelp_scalc.mk b/AllLangHelp_scalc.mk index 90abc10..8ecad3e 100644 --- a/AllLangHelp_scalc.mk +++ b/AllLangHelp_scalc.mk @@ -179,8 +179,10 @@ $(eval $(call gb_AllLangHelp_add_helpfiles,scalc,\ helpcontent2/source/text/scalc/01/12120100 \ helpcontent2/source/text/scalc/01/12120200 \ helpcontent2/source/text/scalc/01/12120300 \ +helpcontent2/source/text/scalc/01/ex_data_stat_func \ helpcontent2/source/text/scalc/01/format_graphic \ helpcontent2/source/text/scalc/01/func_aggregate \ +helpcontent2/source/text/scalc/01/func_averageif \ helpcontent2/source/text/scalc/01/func_date \ helpcontent2/source/text/scalc/01/func_datedif \ helpcontent2/source/text/scalc/01/func_datevalue \ diff --git a/source/text/scalc/01/04060184.xhp b/source/text/scalc/01/04060184.xhp index a52a06f..4e12e57 100644 --- a/source/text/scalc/01/04060184.xhp +++ b/source/text/scalc/01/04060184.xhp @@ -166,6 +166,10 @@ oldref="162">Example =AVERAGEA(A1:A50) + + + + MODE function most common value diff --git a/source/text/scalc/01/ex_data_stat_func.xhp b/source/text/scalc/01/ex_data_stat_func.xhp new file mode 100644 index 000..b85b770 --- /dev/null +++ b/source/text/scalc/01/ex_data_stat_func.xhp @@ -0,0 +1,125 @@ + + + + + + +Examples Dataset for Statistical Functions +/text/scalc/01/ex_data_stat_func.xhp + + + + +Examples Dataset for a family of the AVERAGE + +Examples +Consider the following table + + + + + + A + + + B + + + C + + + + + 1 + + + Product Name + + + Sales + + + Revenue + + + + + 2 + + + pencil + + + 20 + + + 65 + + + + + 3 + + + pen + + + 35 + + + 85 + + + + + 4 + + + notebook + + + 20 + + + 190 + + + + + 5 + + + book + + + 17 + + + 180 + + + + + 6 + + + pencil-case + + + not + + + not + + + + + + diff --git a/source/text/scalc/01/func_averageif.xhp b/source/text/scalc/01/func_averageif.xhp new file mode 100644 index 000..a772961 --- /dev/null +++ b/source/text/scalc/01/func_averageif.xhp @@ -0,0 +1,72 @@ + + + + + + +AVERAGEIF function +/text/scalc/01/func_averageif.xhp + + + + + + + + AVERAGEIF function + arithmetic mean;satisfying condition + +AVERAGEIF function +Returns the arithmetic mean of all cells in a range that satisfy a given condition. The AVERAGEIF function sums up all the results that match the logical test and divides this sum by the quantity of selected values. + +Syntax +AVERAGEIF(Range; Criteria [; Average_Range ]) +Range â required argument. An array, a name of named range or a label of a column or a row containing numbers for averaging or numbers or text for the condition. +Criteria â required argument. A condition in the form of expression or cell reference with expression that defines what cells should be used to calculate the mean. The expression can contain text, numbers or regular expressions. +Average_Range â optional. It is a range of values for calculating the mean. +Note that if the Average_Range is not specified, Range is used for both, the calculation of the mean and the search according to the condition. If the Average_Range is specified, the Range is used only for the condition test, while Average_Range is used for the mean calculation. +The Criteria needs to be a string expression, in particular, the Criteria needs to be enclosed in quotation marks ("Criteria") with the exception of the names of functions, cell references and an operation of a string concatenation (&). +If a cell in a range of values for calculating the mean is e
[Libreoffice-commits] core.git: helpcontent2
helpcontent2 |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit c4da74ba1a9ece585a86a03664f79b333bfee0bb Author: tagezi Date: Sat Sep 26 20:56:19 2015 +0300 Updated core Project: help 7c74f4a55c7171419a78aa18f6d8842fe4f62833 Added description and examples of the AVERAGEIF function UPD: Changed in accordance with the comment of Olivier Hallot (Sep 29 7:31 PM) Added value for the missing ID (string 80) UPD2: typo: forboth -> for both table for an example was moved to a separate file the attribute "role" of the tag "paragraph" for all an example has been changed from "paragraph" to "example" UDP3: double IDs was deleted in ex_data_stat_func.xhp Change-Id: I31b377715db133bfaab59047f9613171db8659e1 Reviewed-on: https://gerrit.libreoffice.org/1 Reviewed-by: Olivier Hallot Tested-by: Olivier Hallot diff --git a/helpcontent2 b/helpcontent2 index fba1e83..7c74f4a 16 --- a/helpcontent2 +++ b/helpcontent2 @@ -1 +1 @@ -Subproject commit fba1e83f120a310343f75de27c7e3cb0c5524cc7 +Subproject commit 7c74f4a55c7171419a78aa18f6d8842fe4f62833 ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source
chart2/source/controller/sidebar/ChartElementsPanel.cxx | 64 +++- chart2/source/controller/sidebar/ChartElementsPanel.hxx |2 2 files changed, 65 insertions(+), 1 deletion(-) New commits: commit d7748842e96536daeb0c638c6f8d01d99b9a3e08 Author: Markus Mohrhard Date: Sat Oct 3 16:21:06 2015 +0200 hide grid and axes options in chart elements if not supported, tdf#94297 Change-Id: I358340bd1b17f0e2eb5a119a60b623e489044dd3 diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.cxx b/chart2/source/controller/sidebar/ChartElementsPanel.cxx index 6f0d25f..b22570a 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.cxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.cxx @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include "ChartElementsPanel.hxx" #include "ChartController.hxx" @@ -40,6 +42,7 @@ #include "ChartModelHelper.hxx" #include "AxisHelper.hxx" #include "DiagramHelper.hxx" +#include "ChartTypeHelper.hxx" #include "ChartModel.hxx" @@ -297,6 +300,9 @@ ChartElementsPanel::ChartElementsPanel( get(mpCBGridVerticalMinor, "checkbutton_gridline_vertical_minor"); get(mpCBGridHorizontalMinor, "checkbutton_gridline_horizontal_minor"); +get(mpLBAxis, "label_axes"); +get(mpLBGrid, "label_gri"); + get(mpLBLegendPosition, "comboboxtext_legend"); get(mpBoxLegend, "box_legend"); @@ -316,7 +322,6 @@ ChartElementsPanel::~ChartElementsPanel() void ChartElementsPanel::dispose() { - css::uno::Reference xBroadcaster(mxModel, css::uno::UNO_QUERY_THROW); xBroadcaster->removeModifyListener(mxListener); mpCBTitle.clear(); @@ -340,6 +345,9 @@ void ChartElementsPanel::dispose() mpLBLegendPosition.clear(); mpBoxLegend.clear(); +mpLBAxis.clear(); +mpLBGrid.clear(); + mpTextTitle.clear(); mpTextSubTitle.clear(); @@ -374,6 +382,26 @@ void ChartElementsPanel::Initialize() mpLBLegendPosition->SetSelectHdl(LINK(this, ChartElementsPanel, LegendPosHdl)); } +namespace { + +css::uno::Reference getChartType(css::uno::Reference xModel) +{ +css::uno::Reference xChartDoc(xModel, css::uno::UNO_QUERY_THROW); +css::uno::Reference xDiagram = xChartDoc->getFirstDiagram(); + +css::uno::Reference xCooSysContainer( xDiagram, css::uno::UNO_QUERY_THROW ); + +css::uno::Sequence> xCooSysSequence(xCooSysContainer->getCoordinateSystems()); + +css::uno::Reference xChartTypeContainer(xCooSysSequence[0], css::uno::UNO_QUERY_THROW); + +css::uno::Sequence> xChartTypeSequence(xChartTypeContainer->getChartTypes()); + +return xChartTypeSequence[0]; +} + +} + void ChartElementsPanel::updateData() { if (!mbModelValid) @@ -401,6 +429,40 @@ void ChartElementsPanel::updateData() mpCB2ndXAxis->Check(isAxisVisible(mxModel, AxisType::X_SECOND)); mpCB2ndYAxis->Check(isAxisVisible(mxModel, AxisType::Y_SECOND)); + +bool bSupportsMainAxis = ChartTypeHelper::isSupportingMainAxis( +getChartType(mxModel), 0, 0); +if (bSupportsMainAxis) +{ +mpCBXAxis->Show(); +mpCBYAxis->Show(); +mpCBZAxis->Show(); +mpCBXAxisTitle->Show(); +mpCBYAxisTitle->Show(); +mpCBZAxisTitle->Show(); +mpCBGridVerticalMajor->Show(); +mpCBGridVerticalMinor->Show(); +mpCBGridHorizontalMajor->Show(); +mpCBGridHorizontalMinor->Show(); +mpLBAxis->Show(); +mpLBGrid->Show(); +} +else +{ +mpCBXAxis->Hide(); +mpCBYAxis->Hide(); +mpCBZAxis->Hide(); +mpCBXAxisTitle->Hide(); +mpCBYAxisTitle->Hide(); +mpCBZAxisTitle->Hide(); +mpCBGridVerticalMajor->Hide(); +mpCBGridVerticalMinor->Hide(); +mpCBGridHorizontalMajor->Hide(); +mpCBGridHorizontalMinor->Hide(); +mpLBAxis->Hide(); +mpLBGrid->Hide(); +} + if (nDimension == 3) { mpCBZAxis->Enable(); diff --git a/chart2/source/controller/sidebar/ChartElementsPanel.hxx b/chart2/source/controller/sidebar/ChartElementsPanel.hxx index 39d78d9..952c64a 100644 --- a/chart2/source/controller/sidebar/ChartElementsPanel.hxx +++ b/chart2/source/controller/sidebar/ChartElementsPanel.hxx @@ -92,6 +92,8 @@ private: VclPtr mpCBGridHorizontalMinor; VclPtr mpTextTitle; VclPtr mpTextSubTitle; +VclPtr mpLBAxis; +VclPtr mpLBGrid; VclPtr mpLBLegendPosition; VclPtr mpBoxLegend; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: wizards/source
wizards/source/access2base/Application.xba | 34 + 1 file changed, 34 insertions(+) New commits: commit 2cf83ce830542b5ba50b18958434f89cbd86212b Author: Jean-Pierre Ledure Date: Sat Oct 3 16:02:25 2015 +0200 Access2Base - new HtmlEncode property of Application object Change-Id: I6eb68f78d32b1d73969d37f6991ff0ef3e795606 diff --git a/wizards/source/access2base/Application.xba b/wizards/source/access2base/Application.xba index 70c98db..7a76ed0 100644 --- a/wizards/source/access2base/Application.xba +++ b/wizards/source/access2base/Application.xba @@ -900,6 +900,40 @@ Error_Function: End Function ' Forms V0.9.0 REM --- +Function HtmlEncode(ByVal pvString As Variant, ByVal Optional pvLength As Variant) As String +' Converts a string to an HTML-encoded string. + + If _ErrorHandler() Then On Local Error Goto Error_Function +Const cstThisSub = "HtmlEncode" + Utils._SetCalledSub(cstThisSub) + + HtmlEncode = "" + +Dim sOutput As String, l As Long, lLength As Long + If IsMissing(pvLength) Then pvLength = 0 + If Not Utils._CheckArgument(pvString, 1, vbString) Then Goto Exit_Function + If Not Utils._CheckArgument(pvLength, 1, _AddNumeric()) Then Goto Exit_Function + + sOutput = "" + lLength = CLng(pvLength) + If Len(pvString) > 0 Then + For l = 1 To Len(pvString) + If lLength > 0 And Len(sOutput) > lLength Then Exit For + sOutput = sOutput & Utils._UTF8Encode(Mid(pvString, l, 1) + Next l + End If + + HtmlEncode = sOutput + +Exit_Function: + Utils._ResetCalledSub(cstThisSub) + Exit Function +Error_Function: + TraceError(TRACEABORT, Err, cstThisSub, Erl) + GoTo Exit_Function +End Function ' HtmlEncode V1.4.0 + +REM --- Public Function OpenConnection ( _ Optional pvComponent As Variant _ , ByVal Optional pvUser As Variant _ ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: chart2/source include/sfx2 officecfg/registry sfx2/source
chart2/source/controller/main/ChartController.cxx| 27 +++ include/sfx2/sidebar/EnumContext.hxx |1 officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu |6 ++ sfx2/source/sidebar/EnumContext.cxx |1 4 files changed, 34 insertions(+), 1 deletion(-) New commits: commit 749a0845500d69f99bf1901bab82361f67b5e4f6 Author: Markus Mohrhard Date: Sat Oct 3 15:59:06 2015 +0200 don't show area and line panel in pie chart Chart selection, tdf#94320 Change-Id: I0eacedbb3d96a059278bab0ef98a66ed49b827fc diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx index c5999ac..045837e 100644 --- a/chart2/source/controller/main/ChartController.cxx +++ b/chart2/source/controller/main/ChartController.cxx @@ -61,6 +61,8 @@ #include #include #include +#include +#include #include #include @@ -298,6 +300,26 @@ bool ChartController::TheModelRef::is() const return (m_pTheModel != 0); } +namespace { + +css::uno::Reference getChartType( +css::uno::Reference xChartDoc) +{ +Reference xDiagram = xChartDoc->getFirstDiagram(); + +Reference< chart2::XCoordinateSystemContainer > xCooSysContainer( xDiagram, uno::UNO_QUERY_THROW ); + +Sequence< Reference< chart2::XCoordinateSystem > > xCooSysSequence( xCooSysContainer->getCoordinateSystems()); + +Reference< chart2::XChartTypeContainer > xChartTypeContainer( xCooSysSequence[0], uno::UNO_QUERY_THROW ); + +Sequence< Reference< chart2::XChartType > > xChartTypeSequence( xChartTypeContainer->getChartTypes() ); + +return xChartTypeSequence[0]; +} + +} + OUString ChartController::GetContextName() { if (m_bDisposed) @@ -314,6 +336,8 @@ OUString ChartController::GetContextName() return OUString("Chart"); ObjectType eObjectID = ObjectIdentifier::getObjectType(aCID); + +css::uno::Reference xChartType = getChartType(css::uno::Reference(getModel(), uno::UNO_QUERY_THROW)); switch (eObjectID) { case OBJECTTYPE_DATA_SERIES: @@ -327,6 +351,9 @@ OUString ChartController::GetContextName() return OUString("Axis"); case OBJECTTYPE_GRID: return OUString("Grid"); +case OBJECTTYPE_DIAGRAM: +if (xChartType->getChartType() == "com.sun.star.chart2.PieChartType") +return OUString("ChartElements"); default: break; } diff --git a/include/sfx2/sidebar/EnumContext.hxx b/include/sfx2/sidebar/EnumContext.hxx index d9dbe80..080a818 100644 --- a/include/sfx2/sidebar/EnumContext.hxx +++ b/include/sfx2/sidebar/EnumContext.hxx @@ -69,6 +69,7 @@ public: Context_Axis, Context_Cell, Context_Chart, +Context_ChartElements, Context_Draw, Context_DrawLine, Context_DrawPage, diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu index 8de92bc..ecfd7d3 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu @@ -1307,7 +1307,11 @@ -Chart, any, visible ; +Chart, Chart, visible ; +Chart, Series, visible ; +Chart, ErrorBar, visible ; +Chart, Axis, visible ; +Chart, Grid, visible ; diff --git a/sfx2/source/sidebar/EnumContext.cxx b/sfx2/source/sidebar/EnumContext.cxx index ba5e655..7af70d9 100644 --- a/sfx2/source/sidebar/EnumContext.cxx +++ b/sfx2/source/sidebar/EnumContext.cxx @@ -179,6 +179,7 @@ void EnumContext::ProvideContextContainers() AddContext(Cell); AddContext(Chart); AddContext(Chart); +AddContext(ChartElements); AddContext(Draw); AddContext(DrawLine); AddContext(DrawPage); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
Calc Macros - lagging behind?
I'd love to use LibreOffice more, but I'm spoiled by Excel's VBA. Are there any improvements coming soon? Are there better links than the ones below!? eg I love the strict types that get me all the member functions and variables by just typing "." (auto-complete). I dislike typing so much, like... dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "Text" args1(0).Value = "Your name" dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1()) https://wiki.documentfoundation.org/images/archive/9/9a/20130215221733!GS4013-GettingStartedWithMacros.pdf https://www.libreoffice.org/get-help/documentation/ https://wiki.documentfoundation.org/Macros#Documentation_for_macro_writers_and_users https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide BTW: I have a convenient git interface for Excel VBA; let me know if you are interested... Thanks for your great work, Chris ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: sc/qa
sc/qa/unit/data/xls/pass/crash-1.xls |binary sc/qa/unit/data/xls/pass/crash-4.xls |binary sc/qa/unit/data/xls/pass/crash-5.xls |binary 3 files changed New commits: commit c70c4d203340999fc039838cc487d3e4c28d2f79 Author: Caolán McNamara Date: Sat Oct 3 13:02:38 2015 +0100 fix test-cases overwrote crash-1.xls by accident in commit d2281e20d96c640998530f3fb577b87ee85426f1 Author: Caolán McNamara Date: Fri Oct 2 10:41:25 2015 +0100 fix crash on loading certain xls Change-Id: I2dd58060c1f3c9f12356c4ab18a0c838e7cdd718 so restore that, add another test case for... commit c4d1a99ec667bdd661669afd72a708bd9a963db2 Author: Caolán McNamara Date: Sat Oct 3 11:53:48 2015 +0100 fix crash on loading certain xls Change-Id: I4f4563b07109df7e2288458cf8adda37582262cf as crash-4.xls and add d2281e20d96c640998530f3fb577b87ee85426f1 test-case in as crash-5.xls Change-Id: I2de3986290bdf5e227e4471e411bb6a9a83b3085 diff --git a/sc/qa/unit/data/xls/pass/crash-1.xls b/sc/qa/unit/data/xls/pass/crash-1.xls index 4b801ea3..724bfc1 100644 Binary files a/sc/qa/unit/data/xls/pass/crash-1.xls and b/sc/qa/unit/data/xls/pass/crash-1.xls differ diff --git a/sc/qa/unit/data/xls/pass/crash-4.xls b/sc/qa/unit/data/xls/pass/crash-4.xls new file mode 100644 index 000..ba0f86a Binary files /dev/null and b/sc/qa/unit/data/xls/pass/crash-4.xls differ diff --git a/sc/qa/unit/data/xls/pass/crash-5.xls b/sc/qa/unit/data/xls/pass/crash-5.xls new file mode 100644 index 000..4b801ea3 Binary files /dev/null and b/sc/qa/unit/data/xls/pass/crash-5.xls differ ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: filter/qa filter/source
filter/qa/complex/filter/detection/typeDetection/TypeDetection.java |4 +- filter/qa/complex/filter/misc/FinalizedMandatoryTest.java |2 - filter/source/config/cache/basecontainer.cxx|2 - filter/source/config/cache/cacheitem.cxx| 20 +- filter/source/config/cache/cacheitem.hxx|4 +- filter/source/config/cache/contenthandlerfactory.cxx|2 - filter/source/config/cache/filtercache.cxx | 10 ++--- filter/source/config/cache/filtercache.hxx |8 ++-- filter/source/config/cache/filterfactory.cxx|6 +-- filter/source/config/cache/frameloaderfactory.cxx |2 - filter/source/config/cache/typedetection.cxx| 10 ++--- filter/source/config/cache/typedetection.hxx|2 - filter/source/flash/swfexporter.cxx |2 - filter/source/graphicfilter/eos2met/eos2met.cxx |2 - filter/source/graphicfilter/eps/eps.cxx |2 - 15 files changed, 39 insertions(+), 39 deletions(-) New commits: commit ba65cb97bc806cad3bfa1a0cf443b41eff518059 Author: Andrea Gelmini Date: Fri Oct 2 13:04:33 2015 +0200 Fix typos Change-Id: Icde566ef79dc4ed8cb67a89c743f0a6c1b3c8f14 diff --git a/filter/qa/complex/filter/detection/typeDetection/TypeDetection.java b/filter/qa/complex/filter/detection/typeDetection/TypeDetection.java index 72fb166..5c87c22 100644 --- a/filter/qa/complex/filter/detection/typeDetection/TypeDetection.java +++ b/filter/qa/complex/filter/detection/typeDetection/TypeDetection.java @@ -224,7 +224,7 @@ public class TypeDetection extends ComplexTestCase { String kName = k.next(); log.println(kName + ":" + param.get(kName).toString()); } -// create instrace of helper class +// create instance of helper class helper = new Helper(param, log); } @@ -543,4 +543,4 @@ public class TypeDetection extends ComplexTestCase { } } -} \ No newline at end of file +} diff --git a/filter/qa/complex/filter/misc/FinalizedMandatoryTest.java b/filter/qa/complex/filter/misc/FinalizedMandatoryTest.java index 5967a7e..1fed782 100644 --- a/filter/qa/complex/filter/misc/FinalizedMandatoryTest.java +++ b/filter/qa/complex/filter/misc/FinalizedMandatoryTest.java @@ -121,7 +121,7 @@ public class FinalizedMandatoryTest /** * test the given service serviceName. - * For every filter a new instace was created and the tests started. + * For every filter a new instance was created and the tests started. * @param serviceName the name of the service to test */ private void checkReadonlySupport(String serviceName) throws Exception diff --git a/filter/source/config/cache/basecontainer.cxx b/filter/source/config/cache/basecontainer.cxx index fa2a468..03f8c0f 100644 --- a/filter/source/config/cache/basecontainer.cxx +++ b/filter/source/config/cache/basecontainer.cxx @@ -92,7 +92,7 @@ void BaseContainer::impl_loadOnDemand() // A generic container needs all items of a set of our cache! // Of course it can block for a while, till the cache is really filled. -// Note: dont load all sets supported by the cache here! +// Note: don't load all sets supported by the cache here! FilterCache::EFillState eRequiredState = FilterCache::E_CONTAINS_NOTHING; switch(m_eType) diff --git a/filter/source/config/cache/cacheitem.cxx b/filter/source/config/cache/cacheitem.cxx index 36420be..ed235ca 100644 --- a/filter/source/config/cache/cacheitem.cxx +++ b/filter/source/config/cache/cacheitem.cxx @@ -244,7 +244,7 @@ bool isSubSet(const css::uno::Any& aSubSet, { if (::std::find(stl_s2.begin(), stl_s2.end(), *it1) == stl_s2.end()) { -_FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [OUString] ... dont found \"%s\" => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(*it1)) +_FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [OUString] ... didn't found \"%s\" => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(*it1)) return false; } _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [OUString] ... found \"%s\" => continue loop\n", _FILTER_CONFIG_TO_ASCII_(*it1)) @@ -271,7 +271,7 @@ bool isSubSet(const css::uno::Any& aSubSet, ::comphelper::SequenceAsHashMap::const_iterator it2 = stl_p2.find(it1->first); if (it2 == stl_p2.end()) { -_FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [PropertyValue] ... dont found \"%s\" => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(it1->
[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - sc/qa sc/source
sc/qa/unit/data/xls/pass/crash-1.xls |binary sc/source/filter/excel/impop.cxx | 24 +--- 2 files changed, 13 insertions(+), 11 deletions(-) New commits: commit 070693d7209a2afa9d39384a186081139d96cf95 Author: Caolán McNamara Date: Fri Oct 2 10:41:25 2015 +0100 fix crash on loading certain xls Change-Id: I2dd58060c1f3c9f12356c4ab18a0c838e7cdd718 (cherry picked from commit d2281e20d96c640998530f3fb577b87ee85426f1) Reviewed-on: https://gerrit.libreoffice.org/19097 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/sc/qa/unit/data/xls/pass/crash-1.xls b/sc/qa/unit/data/xls/pass/crash-1.xls index 724bfc1..4b801ea3 100644 Binary files a/sc/qa/unit/data/xls/pass/crash-1.xls and b/sc/qa/unit/data/xls/pass/crash-1.xls differ diff --git a/sc/source/filter/excel/impop.cxx b/sc/source/filter/excel/impop.cxx index 34dc2c9..e252185 100644 --- a/sc/source/filter/excel/impop.cxx +++ b/sc/source/filter/excel/impop.cxx @@ -520,13 +520,11 @@ void ImportExcel::Columndefault() void ImportExcel::Array25() { -sal_uInt16 nFirstRow, nLastRow, nFormLen; -sal_uInt8 nFirstCol, nLastCol; - -nFirstRow = aIn.ReaduInt16(); -nLastRow = aIn.ReaduInt16(); -nFirstCol = aIn.ReaduInt8(); -nLastCol = aIn.ReaduInt8(); +sal_uInt16 nFormLen; +sal_uInt16 nFirstRow = aIn.ReaduInt16(); +sal_uInt16 nLastRow = aIn.ReaduInt16(); +sal_uInt8 nFirstCol = aIn.ReaduInt8(); +sal_uInt8 nLastCol = aIn.ReaduInt8(); if( GetBiff() == EXC_BIFF2 ) {// BIFF2 @@ -539,17 +537,21 @@ void ImportExcel::Array25() nFormLen = aIn.ReaduInt16(); } -if( ValidColRow( nLastCol, nLastRow ) ) +const ScTokenArray* pErgebnis = nullptr; + +if (ValidColRow(nLastCol, nLastRow)) { // the read mark is now on the formula, length in nFormLen -const ScTokenArray* pErgebnis; pFormConv->Reset( ScAddress( static_cast(nFirstCol), static_cast(nFirstRow), GetCurrScTab() ) ); -pFormConv->Convert( pErgebnis, maStrm, nFormLen, true, FT_CellFormula); +pFormConv->Convert(pErgebnis, maStrm, nFormLen, true, FT_CellFormula); -OSL_ENSURE( pErgebnis, "*ImportExcel::Array25(): ScTokenArray is NULL!" ); +SAL_WARN_IF(!pErgebnis, "sc", "*ImportExcel::Array25(): ScTokenArray is NULL!"); +} +if (pErgebnis) +{ ScDocumentImport& rDoc = GetDocImport(); ScRange aArrayRange(nFirstCol, nFirstRow, GetCurrScTab(), nLastCol, nLastRow, GetCurrScTab()); rDoc.setMatrixCells(aArrayRange, *pErgebnis, formula::FormulaGrammar::GRAM_ENGLISH_XL_A1); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: 2 commits - sc/qa sc/source
sc/qa/unit/data/xls/pass/crash-3.xls |binary sc/source/filter/excel/impop.cxx | 15 +-- 2 files changed, 13 insertions(+), 2 deletions(-) New commits: commit c4d1a99ec667bdd661669afd72a708bd9a963db2 Author: Caolán McNamara Date: Sat Oct 3 11:53:48 2015 +0100 fix crash on loading certain xls Change-Id: I4f4563b07109df7e2288458cf8adda37582262cf diff --git a/sc/source/filter/excel/impop.cxx b/sc/source/filter/excel/impop.cxx index 9b11b31..cc3c312 100644 --- a/sc/source/filter/excel/impop.cxx +++ b/sc/source/filter/excel/impop.cxx @@ -1026,17 +1026,21 @@ void ImportExcel::Array34() aIn.Ignore( (GetBiff() >= EXC_BIFF5) ? 6 : 2 ); nFormLen = aIn.ReaduInt16(); +const ScTokenArray* pErgebnis = nullptr; + if( ValidColRow( nLastCol, nLastRow ) ) { // the read mark is now on the formula, length in nFormLen -const ScTokenArray* pErgebnis; pFormConv->Reset( ScAddress( static_cast(nFirstCol), static_cast(nFirstRow), GetCurrScTab() ) ); pFormConv->Convert( pErgebnis, maStrm, nFormLen, true, FT_CellFormula); -OSL_ENSURE( pErgebnis, "+ImportExcel::Array34(): ScTokenArray is NULL!" ); +SAL_WARN_IF(!pErgebnis, "sc", "+ImportExcel::Array34(): ScTokenArray is NULL!"); +} +if (pErgebnis) +{ ScDocumentImport& rDoc = GetDocImport(); ScRange aArrayRange(nFirstCol, nFirstRow, GetCurrScTab(), nLastCol, nLastRow, GetCurrScTab()); rDoc.setMatrixCells(aArrayRange, *pErgebnis, formula::FormulaGrammar::GRAM_ENGLISH_XL_A1); commit 4eb26f9cae2aacc8d672884283460e86e5c331ca Author: Caolán McNamara Date: Sat Oct 3 11:48:14 2015 +0100 xls: Defrowheight345 without pColRowBuff Change-Id: I22be90d7c54b1118f81337bd9e1d97ba3a1fd86e diff --git a/sc/qa/unit/data/xls/pass/crash-3.xls b/sc/qa/unit/data/xls/pass/crash-3.xls new file mode 100644 index 000..99e485a Binary files /dev/null and b/sc/qa/unit/data/xls/pass/crash-3.xls differ diff --git a/sc/source/filter/excel/impop.cxx b/sc/source/filter/excel/impop.cxx index e252185..9b11b31 100644 --- a/sc/source/filter/excel/impop.cxx +++ b/sc/source/filter/excel/impop.cxx @@ -1048,6 +1048,13 @@ void ImportExcel::Defrowheight345() sal_uInt16 nFlags, nDefHeight; nFlags = maStrm.ReaduInt16(); nDefHeight = maStrm.ReaduInt16(); + +if (!pColRowBuff) +{ +SAL_WARN("sc", "*ImportExcel::Defrowheight345(): pColRowBuff is NULL!"); +return; +} + pColRowBuff->SetDefHeight( nDefHeight, nFlags ); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
Crash test update
New crashtest update available at http://dev-builds.libreoffice.org/crashtest/c95ba3ef2613e9d5abd2f19ab2432c7bc1a40fe7/ exportCrashes.csv Description: Binary data importCrash.csv Description: Binary data validationErrors.csv Description: Binary data ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
[Bug 82319] use modern OpenGL for OpenGL canvas
https://bugs.documentfoundation.org/show_bug.cgi?id=82319 --- Comment #4 from Riccardo Magliocchetti --- FYI samuel_m is currently working on cross compiling libo to js with emscripten here [1]. In the browser we have this thing called WebGL which is a port of OpenGL ES 2.0. OpenGL ES 2.0 is AFAIU OpenGL 2.0 without the deprecated fixed pipeline. So if taking this in consideration during the rewrite would be not much hassle we can have a nice rendering path for free on the browser. [1] https://gerrit.libreoffice.org/#/c/18643/ -- You are receiving this mail because: You are on the CC list for the bug. ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice
RE: [Calc] Bad rendering performance of "selected copy" snake/circulation animation
Kohei, Thanks a lot for your patient answer. I spent a few hours tracking down where was the bottleneck for my performance issues. Fascinating browsing of code. Anyway, it looks like the culprit is the numerous calls to X11's XRenderCompositeTrapezoids in vcl/unx/generic/gdi/xrender_peer.hxx. For some reasons that I ignore, the "selection border for copied cell range" uses a special graphical-to-be-rendered object that, at the end of the day, invokes this XRenderCompositeTrapezoids method many many times (I guess one call per dash). A few things to note: 1. I am not sure if the method itself is very slow. Using a for loop around the call in the following code https://github.com/ereslibre/x11/blob/master/xrender/xrhello.c I am able to basically time a call at 0.16 ms on my current machine. It may be alright for a few calls, but if we have to show a few 100s of dashes, it's not surprising sluggishness effects can be seen. 2. If I change ScOverlayDashedBorder::createOverlayObjectPrimitive2DSequence() to return a PolygonStrokePrimitive2D instead of a PolyPolygonMarkerPrimitive2D, I get a solid line instead of a dashed line, but no performance problem at all. 3. If I just comment out the call to XRenderCompositeTrapezoids in the XRenderPeer, the dashed line does not show anymore but pretty much everything else work without any problem, and no performance problems at all. 4. When I just "return false;" at the first line of the bool X11SalGraphicsImpl::drawFilledTrapezoids( const ::basegfx::B2DTrapezoid* pB2DTraps, int nTrapCount, double fTransparency ) implementation, I assume that it triggers a fallback rendering implementation. The performance is definitely better, though I can still feel the sluggishness when I do very wide (and wild) selection copy (i.e. select a few cells veritcally, press shift space, and then Ctrl+C). No idea what is the code path for the fall back implementation... #3 and #4 leads me to think that the numerous calls to XRenderCompositeTrapezoids are costly on some machines. FYI I have a ATI Radeon HD 7700/7800 running the RADEON X driver at home, but use a Nvidia NVS 510 video card with the proprietary nvidia driver at work. I experience the performance issues with selected copy both at home and at work, despite the different graphical configuration. Anyway, I am not sure how the performance could be drastically improved. I feel just running a "personally built Libreoffice" on my machine which just replace the PolyPolygonMarkerPrimitive2D with a PolygonStrokePrimitive2D in ScOverlayDashedBorder::createOverlayObjectPrimitive2DSequence() is a last resort option. Obviously I'd love to get a proper solution in the Libreoffice trunk. Any comments? S > Date: Wed, 30 Sep 2015 08:49:22 -0400 > From: libreoff...@kohei.us > To: ross_...@hotmail.com; libreoffice@lists.freedesktop.org > Subject: Re: [Calc] Bad rendering performance of "selected copy" > snake/circulation animation > > > > > On September 29, 2015 at 12:25 AM Sylvain R wrote: > > > > > > Hi, > > Sorry in advance if this is the wrong mailing list, I am basically trying to > > find a tiny bit of help to fix a rendering problem I have and hopefully > > submit > > a patch for it, or at least discuss the problem. > > I am having some serious rendering performance problems when I perform a > > copy > > of cells, for some time now, which is a problem as I use Libreoffice calc > > pretty much every day as part of my job (running Libreoffice > > 1:5.0.2~rc2-0ubuntu1~trusty2 on Ubuntu 14.04 64bit). > > I decided I could try to fix this problem myself as I am familiar with C++. > > Excellent! We appreciate your willingness to dive into the code. > > > I am basically looking for a pointer as to where is the code that render the > > "copy cell circling effect". I am not sure how it is called, but this is > > what > > I am talking about at http://s14.postimg.org/6u32kqdq9 > > We (at least I) call it selection border for copied cell range. > > > What I am trying to figure out:- Where is the code in charge of the > > rendering > > of the circulating selecion?- Where is the code that receives/handles the > > scrolling? > > The state of this border is stored in ScGridWindow, as mpOOSelectionBorder > data > member, which itself is an instance of ScOverlayDashedBorder. All of these > are > in the sc module. You can run git grep for find these guys. > > Now, the lower level rendering is done some place else, and you'll likely have > to move between svx (where the Sdr* classes live), basegfx and drawinglayer. > And eventually the code path will reach in vcl to do the actual rendering. > This is a high level overview of how drawing objects are rendered. > > > > > I am really just looking for pointers (i.e. a class name or two) for where > > to > > start. > > Hopefully the above is a good staring point. If you encounter more specific > questions in some of these drawing layer code, feel free to p
[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - sc/qa sc/source
sc/qa/unit/data/xls/pass/crash-2.xls |binary sc/source/filter/excel/impop.cxx |6 ++ 2 files changed, 6 insertions(+) New commits: commit cf54f3a3e2afa313cadb7c83934c9d8a1470e287 Author: Caolán McNamara Date: Fri Oct 2 20:37:14 2015 +0100 xls: DefColWidth without pColRowBuff Change-Id: I36f9439e417b380bd3f999c02c55c29337796002 (cherry picked from commit 9b738520316b329251a9f815751fda4e25d25937) Reviewed-on: https://gerrit.libreoffice.org/19103 Tested-by: Jenkins Reviewed-by: Markus Mohrhard Tested-by: Markus Mohrhard diff --git a/sc/qa/unit/data/xls/pass/crash-2.xls b/sc/qa/unit/data/xls/pass/crash-2.xls new file mode 100644 index 000..99e485a Binary files /dev/null and b/sc/qa/unit/data/xls/pass/crash-2.xls differ diff --git a/sc/source/filter/excel/impop.cxx b/sc/source/filter/excel/impop.cxx index a08bd14..34dc2c9 100644 --- a/sc/source/filter/excel/impop.cxx +++ b/sc/source/filter/excel/impop.cxx @@ -660,6 +660,12 @@ void ImportExcel::DefColWidth() // stored as entire characters -> convert to 1/256 of characters (as in COLINFO) double fDefWidth = 256.0 * maStrm.ReaduInt16(); +if (!pColRowBuff) +{ +SAL_WARN("sc", "*ImportExcel::DefColWidth(): pColRowBuff is NULL!"); +return; +} + // #i3006# additional space for default width - Excel adds space depending on font size long nFontHt = GetFontBuffer().GetAppFontData().mnHeight; fDefWidth += XclTools::GetXclDefColWidthCorrection( nFontHt ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: formula/source include/formula
formula/source/core/api/token.cxx | 38 ++ include/formula/tokenarray.hxx|6 +++--- 2 files changed, 21 insertions(+), 23 deletions(-) New commits: commit bf3dd18cf86fd45882b813d08c3df5d7cd097246 Author: Markus Mohrhard Date: Sat Oct 3 10:01:01 2015 +0200 no need to allocate that vector on the heap This seems to give about 10% performance improvements in some calc cell calculations. Change-Id: Ibd91558b3c107e4c8e1401345c9332f97645453e diff --git a/formula/source/core/api/token.cxx b/formula/source/core/api/token.cxx index ac95b8d..b0e84f3 100644 --- a/formula/source/core/api/token.cxx +++ b/formula/source/core/api/token.cxx @@ -1533,39 +1533,37 @@ FormulaTokenIterator::Item::Item(const FormulaTokenArray* pArray, short pc, shor FormulaTokenIterator::FormulaTokenIterator( const FormulaTokenArray& rArr ) { -maStack = new std::vector (); Push( &rArr ); } FormulaTokenIterator::~FormulaTokenIterator() { -delete maStack; } void FormulaTokenIterator::Push( const FormulaTokenArray* pArr ) { FormulaTokenIterator::Item item(pArr, -1, SHRT_MAX); -maStack->push_back(item); +maStack.push_back(item); } void FormulaTokenIterator::Pop() { -maStack->pop_back(); +maStack.pop_back(); } void FormulaTokenIterator::Reset() { -while( maStack->size() > 1 ) -maStack->pop_back(); +while( maStack.size() > 1 ) +maStack.pop_back(); -maStack->back().nPC = -1; +maStack.back().nPC = -1; } const FormulaToken* FormulaTokenIterator::Next() { -const FormulaToken* t = GetNonEndOfPathToken( ++maStack->back().nPC ); -if( !t && maStack->size() > 1 ) +const FormulaToken* t = GetNonEndOfPathToken( ++maStack.back().nPC ); +if( !t && maStack.size() > 1 ) { Pop(); t = Next(); @@ -1576,18 +1574,18 @@ const FormulaToken* FormulaTokenIterator::Next() const FormulaToken* FormulaTokenIterator::PeekNextOperator() { const FormulaToken* t = NULL; -short nIdx = maStack->back().nPC; +short nIdx = maStack.back().nPC; while (!t && ((t = GetNonEndOfPathToken( ++nIdx)) != NULL)) { if (t->GetOpCode() == ocPush) t = NULL; // ignore operands } -if (!t && maStack->size() > 1) +if (!t && maStack.size() > 1) { -FormulaTokenIterator::Item pHere = maStack->back(); -maStack->pop_back(); +FormulaTokenIterator::Item pHere = maStack.back(); +maStack.pop_back(); t = PeekNextOperator(); -maStack->push_back(pHere); +maStack.push_back(pHere); } return t; } @@ -1596,18 +1594,18 @@ const FormulaToken* FormulaTokenIterator::PeekNextOperator() void FormulaTokenIterator::Jump( short nStart, short nNext, short nStop ) { -maStack->back().nPC = nNext; +maStack.back().nPC = nNext; if( nStart != nNext ) { -Push( maStack->back().pArr ); -maStack->back().nPC = nStart; -maStack->back().nStop = nStop; +Push( maStack.back().pArr ); +maStack.back().nPC = nStart; +maStack.back().nStop = nStop; } } const FormulaToken* FormulaTokenIterator::GetNonEndOfPathToken( short nIdx ) const { -FormulaTokenIterator::Item cur = maStack->back(); +FormulaTokenIterator::Item cur = maStack.back(); if (nIdx < cur.pArr->nRPN && nIdx < cur.nStop) { @@ -1620,7 +1618,7 @@ const FormulaToken* FormulaTokenIterator::GetNonEndOfPathToken( short nIdx ) con bool FormulaTokenIterator::IsEndOfPath() const { -return GetNonEndOfPathToken( maStack->back().nPC + 1) == NULL; +return GetNonEndOfPathToken( maStack.back().nPC + 1) == NULL; } diff --git a/include/formula/tokenarray.hxx b/include/formula/tokenarray.hxx index 7a745b6..0f303ac 100644 --- a/include/formula/tokenarray.hxx +++ b/include/formula/tokenarray.hxx @@ -330,7 +330,7 @@ class FORMULA_DLLPUBLIC FormulaTokenIterator Item(const FormulaTokenArray* arr, short pc, short stop); }; -std::vector *maStack; +std::vector maStack; public: FormulaTokenIterator( const FormulaTokenArray& ); @@ -339,8 +339,8 @@ public: const FormulaToken* Next(); const FormulaToken* PeekNextOperator(); boolIsEndOfPath() const;/// if a jump or subroutine path is done -boolHasStacked() const { return maStack->size() > 1; } -short GetPC() const { return maStack->back().nPC; } +boolHasStacked() const { return maStack.size() > 1; } +short GetPC() const { return maStack.back().nPC; } /** Jump or subroutine call. Program counter values will be incremented before code is executed => ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits