Repository.mk                                              |    1 
 cui/Library_cui.mk                                         |    1 
 cui/UIConfig_cui.mk                                        |    1 
 cui/inc/tipoftheday.hrc                                    |  342 +++++++++++++
 cui/source/dialogs/tipofthedaydlg.cxx                      |  119 ++++
 cui/source/factory/cuiexp.cxx                              |    1 
 cui/source/factory/dlgfact.cxx                             |   12 
 cui/source/factory/dlgfact.hxx                             |   16 
 cui/source/inc/tipofthedaydlg.hxx                          |   46 +
 cui/source/options/optgdlg.cxx                             |    9 
 cui/source/options/optgdlg.hxx                             |    1 
 cui/uiconfig/ui/optgeneralpage.ui                          |   14 
 cui/uiconfig/ui/tipofthedaydialog.ui                       |  179 ++++++
 extras/source/tipoftheday/tipoftheday.png                  |binary
 extras/source/tipoftheday/tipoftheday_1.png                |binary
 extras/source/tipoftheday/tipoftheday_2.png                |binary
 include/vcl/abstdlg.hxx                                    |   10 
 include/vcl/weld.hxx                                       |    1 
 officecfg/registry/schema/org/openoffice/Office/Common.xcs |   13 
 sfx2/source/view/viewfrm.cxx                               |   23 
 solenv/sanitizers/ui/cui.suppr                             |    2 
 vcl/Module_vcl.mk                                          |    1 
 vcl/Package_tipoftheday.mk                                 |   18 
 vcl/source/app/salvtables.cxx                              |    5 
 vcl/unx/gtk3/gtk3gtkinst.cxx                               |   12 
 25 files changed, 826 insertions(+), 1 deletion(-)

New commits:
commit a1700d52a47184ee07b91b461a846dc5435f0022
Author:     heiko tietze <tietze.he...@gmail.com>
AuthorDate: Thu Mar 21 10:14:07 2019 +0100
Commit:     Heiko Tietze <tietze.he...@gmail.com>
CommitDate: Wed Apr 10 16:54:37 2019 +0200

    tdf#124238 - Show a Tip-Of-The-Day dialog on startup
    
    New dialog
    
    Change-Id: If1e501de26eb5a9c20a59e621f9e805c3b5e2cf8
    Reviewed-on: https://gerrit.libreoffice.org/69498
    Tested-by: Jenkins
    Reviewed-by: Heiko Tietze <tietze.he...@gmail.com>

diff --git a/Repository.mk b/Repository.mk
index a2967791e9bb..b97a68e371e5 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -945,6 +945,7 @@ $(eval $(call gb_Helper_register_packages_for_install,ooo,\
        wizards_basicusr \
        wizards_properties \
        wizards_wizardshare \
+       tipoftheday_images \
        vcl_opengl_shader \
        vcl_theme_definitions \
        $(if $(filter WNT,$(OS)), \
diff --git a/cui/Library_cui.mk b/cui/Library_cui.mk
index 8ede124d16be..629da3fbc4af 100644
--- a/cui/Library_cui.mk
+++ b/cui/Library_cui.mk
@@ -115,6 +115,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
     cui/source/dialogs/hltpbase \
     cui/source/dialogs/hyphen \
     cui/source/dialogs/iconcdlg \
+    cui/source/dialogs/tipofthedaydlg \
     cui/source/dialogs/insdlg \
     cui/source/dialogs/insrc \
     cui/source/dialogs/linkdlg \
diff --git a/cui/UIConfig_cui.mk b/cui/UIConfig_cui.mk
index d6ba15a82667..4b087d9ca444 100644
--- a/cui/UIConfig_cui.mk
+++ b/cui/UIConfig_cui.mk
@@ -87,6 +87,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
        cui/uiconfig/ui/hyphenate \
        cui/uiconfig/ui/iconchangedialog \
        cui/uiconfig/ui/iconselectordialog \
+       cui/uiconfig/ui/tipofthedaydialog \
        cui/uiconfig/ui/insertfloatingframe \
        cui/uiconfig/ui/insertoleobject \
        cui/uiconfig/ui/insertrowcolumn \
diff --git a/cui/inc/tipoftheday.hrc b/cui/inc/tipoftheday.hrc
new file mode 100644
index 000000000000..1162a09d7779
--- /dev/null
+++ b/cui/inc/tipoftheday.hrc
@@ -0,0 +1,342 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_CUI_INC_TIPOFTHEDAY_HRC
+#define INCLUDED_CUI_INC_TIPOFTHEDAY_HRC
+
+#define NC_(Context, String) reinterpret_cast<char const *>(Context "\004" 
u8##String)
+
+/*
+ * text beginning with "html" will be used until the end as hyperlink
+ * use \\ to show \
+ * place accompanying images at extra/source/tipoftheday and name 
tipoftheday_<id>.png, e.g. tipoftheday_1.png
+ * add the files to vcl/Package_tipoftheday.mk
+*/
+
+const char* TIPOFTHEDAY_STRINGARRAY[] =
+{
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice has the ask.libreoffice.org portal 
where you may get help from the community. https://ask.libreoffice.org/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can easily convert your documents to PDF 
with one click by clicking the PDF icon in the toolbar."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Editable PDFs? Yes, you can create Hybrid PDFs 
with LibreOffice. 
https://wiki.documentfoundation.org/Documentation/HowTo/CreateAHybridPDF";),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can select the new Sifr icon set from 
Tools > Options... > LibreOffice > View > User Interface > Icon size and 
style."),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can easily create fillable form documents 
(even PDF's) with LibreOffice"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can use your Android or iPhone to remotely 
control your Impress presentation"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Something about rollAPP? You can use 
LibreOffice on your iPad or Chrome OS via rollApp"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice has great extensions to increase 
your productivity on its Extension Center, check it out. 
https://extensions.libreoffice.org/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice has a template center to create 
good looking documents, check it out.  
http://templates.libreoffice.org/template-center";),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can use font embedding for greater 
interoperability with other office suites/oses "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Conditional formatting..."),
+    NC_("RID_CUI_TIPOFTHEDAY", "XSLT and xml filters 
http://fridrich.blogspot.com.tr/2013/08/extending-swiss-army-knife-overview.html
 "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Zotero is an extensions for better 
bibliography citation management for Academic works and students 
https://www.zotero.org/download/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "Mendeley is an extensions for better 
bibliography citation management for Academic works and students 
http://www.mendeley.com/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can change the appearance of LibreOffice 
with Firefox Personas https://addons.mozilla.org/firefox/themes/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can change the splash screen of 
LibreOffice for your own taste"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can disable the splash screen "),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can speed-up/fine tune LibreOffice's 
performance 
http://oldpapyrus.wordpress.com/2012/06/28/reduce-libreoffice-memory-usage/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can use Quickstart to open LibreOffice 
quicker"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Have you tried our new sidebar- Appearance- 
Sidebar"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Have you known that LibreOffice has great 
documentation and free user guide books 
http://www.libreoffice.org/get-help/documentation/ "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Embedded help can save lifes. Just click F1 to 
reach the embedded help, if you've installed it. Otherwise you may benefit from 
this huge content online at http://help.libreoffice.org";),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice has a portable version which gives 
you mobility. If you don't have administrator rights on your computer you may 
install LibreOffice Portable to your hard drive too 
http://www.libreoffice.org/download/portable-versions/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "How to remove pagebreaks from a .docx document 
that someone sent you, where there are pagebreaks for each sentence in the 
document."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Open 1 document in 2 windows"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Format one or more characters with a border 
available since 4.2"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Generate fully customized PDF documents: you 
can define the exact pdf format, image compression, comments, access rights, 
password. File > Export as PDF"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Right-click context menu on bottom left 
scrollbar arrows to switch sheets"),
+    NC_("RID_CUI_TIPOFTHEDAY", "CMIS protocol support to access Document 
Management Systems"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Use Data › Statistics for Sampling, 
Descriptive Statistics, Analysis of Variance, Correlation, Covariance, 
Exponential Smoothing, Moving Avg"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Right-click in the status bar and select 
'Selection count' to display the number of selected cells"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Insert › Image › Photo Album to create 
slideshows from a series of pictures with the 'Photo Album' feature"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Take a look at the new 'Gallery' (Images & 
sounds, fifteen themes: Arrows, Bullets, Computers, Environment, Finance, 
School, Symbols...)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Did you know that you can attach comments to 
portions of text?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Need to insert the date in a cell? Type Ctrl+; 
(Shift+Ctrl+; to insert the time)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You want to sort a series such as A1, A2, A3, 
A11, A15, not in alphabetical order but on the number? Enable natural sort in 
the Options tab"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Need to move one or more paragraphs? No need 
to cut and paste: Use the keyboard shortcut Ctrl+Alt+Arrow (Up/Down)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Delete a col of a table (writer) without 
changing the column widths? Click the column, press Alt+Del 3 seconds then 
press left/right arrow"),
+    NC_("RID_CUI_TIPOFTHEDAY", "With #libreoffice is easy to set-up a custom 
palette. Here's a videoguide: 
http://impress.paolopelloni.it/2012/06/22/how-create-custom-colour-palette-libreoffice-impress/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "Presenter console is a great feature when 
presenting with Impress. Have you checked it out?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Impress offers you different keys to control 
your slide presentation: 
http://impress.paolopelloni.it/2012/07/24/the-right-keys-to-press-when-presenting-with-impress/";),
+    NC_("RID_CUI_TIPOFTHEDAY", "Do you know that since version 3.5 colour 
palette is embedded in the document for greater portability?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can automatically mark alphabetical index 
entries using a concordance file."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Frames can be linked so that the text can flow 
from one to the other as in desktop publishing."),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice supports 110 languages 
https://wiki.documentfoundation.org/Language_support_of_LibreOffice";),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice supports 4 macros security levels 
(from low to very high) and trusted sources"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice allows you to use assistive tools, 
such as external screen readers, Braille devices or speech recognition input 
devices."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Title page: one single instruction to insert, 
number the pages, choose the layout..."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Batch convert your MS Office documents to 
OpenDocument format by the Document Converter wizard"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice intends to apply as an 
organization for Google Summer of Code (GSoC) see 
https://wiki.documentfoundation.org/Development/GSoC";),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice has a certification program. 
Interested? See http://www.documentfoundation.org/certification";),
+    NC_("RID_CUI_TIPOFTHEDAY", "Uncheck Tools›Options›Calc›View›Zoom: 
'Synchronize sheets' so that each sheet has its own zoom factor"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To open a CSV file as a new sheet in the 
current spreadsheet use Insert›Sheet from file"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You write a book? LibreOffice master document 
lets you manage large documents as a container for individual LibreOffice 
Writer files."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Show summary slide: right click and 'goto 
slide' or Ctrl+Shift+F5 to display the browser and that gives you a pointer to 
draw on the slides"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Need to move a writer table? Select whole 
table, Insert›Frame›Check Autosize›Ok, Move where you want !"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In Draw to change the 0 point of the rulers, 
drag the intersection of the two rulers in the top left corner into the 
workspace"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To change the default options for Drawing 
toolbar tools, select one of the tools and define the options before drawing 
the first object"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Use array formula to repeat calculation using 
different values: they need less disk space & consume little memory"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Enable massive parallel calculations of 
formula cells via OpenCL formula option"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You have a mouse with a scroll wheel? you can 
hold down Ctrl and turn the wheel to change the zoom factor in all main modules 
of LibreOffice"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In writer use the 'content view' of the 
navigator to synchronize the cursor position & the title"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Edit Find & Replace lets you insert special 
characters directly: right click in 'search for' or 'replace by' zone 
(Ctrl+Shift+S)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Don't use tabs to space items on a writer 
document. Depending on what you are trying to do, a borderless table can be a 
better choice"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Drag a formatted object to the Styles and 
Formatting window. A dialog box opens, just enter the name of the new style."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Besides styles, customizations menus and 
toolbars can be saved in a template"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Tools›Options›LibreOffice›Color lets you edit 
and create colors available in all LibreOffice documents"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To edit a not showed comment in Calc, 
right-click the cell and choose Insert comment. Edit then click outside the 
comment (hidden again)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In Calc use TRIMMEAN() to return the mean of a 
data set excluding the the highest and lowest values "),
+    NC_("RID_CUI_TIPOFTHEDAY", "To keep the zeros before a number, use the 
'leading zeroes' cell format option or format the cell as text before entering 
the number"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To copy a comment without losing the content 
of the target cell : Paste Special›uncheck everything except Comments. 
Operations select Add"),
+    NC_("RID_CUI_TIPOFTHEDAY", "With Calc calculate loan repayments: eg. 
PMT(2%/12;36;2500) interest rate per payment period 2%/12, 36 months, loan 
amount 2500"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To create a chart on another sheet than where 
the data is, start to create the chart in the other sheet. You can then select 
the data"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc, Writer... to select an object in the 
background use the tool Select in the Draw toolbar to surround the object to 
select"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Using Writer, apply Heading paragraph styles 
with Shortcut Keys: Ctrl+1 applies Heading 1, Ctrl+2 applies Heading 2, etc."),
+    NC_("RID_CUI_TIPOFTHEDAY", "In Calc mix portrait and landscape 
orientations in a spreadsheet by applying different page styles on sheets"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In Writer Sections can protect part of text, 
show/hide text, reuse parts from other documents, use different column layout"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To choose the medium and the background of 
your presentation select File›Wizards›Presentation›Page 2"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can create many master pages in a 
presentation template: View›Master›Slide Master›New Master  (toolbar or right 
click in Slide Pane)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Draw/Impress: 'Fit object to paper format' 
(Format›Page) resizes the objects so that they fit on the paper format that you 
select"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You want to modify an AutoPlay presentation? 
Open it, it starts, right click›Edit the presentation "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Rename your slides to help you define 'Go to 
page' interactions and have a summary more explicit than Slide1, Slide2..."),
+    NC_("RID_CUI_TIPOFTHEDAY", "To play a music throughout a slideshow, assign 
the sound to the first slide transition without clicking the Apply to All 
Slides button"),
+    NC_("RID_CUI_TIPOFTHEDAY", "With Slide Show›Custom Slide Show you can 
reorder and pick slides to fit a slideshow to public needs"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To include a paragraph that is not a title in 
the TOC, edit the paragraph, Outline & Numbering tab select the outline level"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Impress: Select a layout directly when 
inserting a slide by long click on the +Slide button on the Presentation 
toolbar"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Draw/Impress: Use the Connector tool from the 
Drawing toolbar to draw flowcharts. You can copy and paste into writer"),
+    NC_("RID_CUI_TIPOFTHEDAY", "The Navigator's Open Documents List allow to 
select a document in the list. You can then drag & drop an item to another 
document"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Draw: Want to see an object but do not print? 
Draw it or move it to a new layer unprintable"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to stop base forms from going to the next 
record when you tab from the last field ? Select Active record in the Cycle 
list (data tab)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to print 2 portrait pages on a landscape 
one (reducing A4 to A5)? File›Print›Page Layout tab, select 2 pages per page"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To be able to get the Vertical Text tool in 
Drawing toolbar check Tool›Options›Language Settings›Languages›Default 
languages›Asian"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Draw/Impress: double-click a tool in drawing 
toolbar to use it for multiple tasks"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to to display only the highest 10 values 
in a spreadsheet g? Data›Filter›AutoFilter›Standard click the drop-down 
arrow›Top10"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can not modify or delete a custom cell 
style? Check all sheets: none should be protected"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Want to get the number of days in month? 
Try =DAYSINMONTH(TODAY())"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Do you know that the Styles & Formatting 
dialog allows you to hide the styles you do not use?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc displays Err: followed by a number? This 
page gives the explanation 
https://help.libreoffice.org/Calc/Error_Codes_in_Calc "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want something else than a color as cell 
background? Drag a background from the Gallery, resize then right click›Arrange 
To Background"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To quickly get a math object in Writer type 
your formulas, mark it then Insert›Object›Formula"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer inserts a blank page between two odd 
(even) pages that follow. Use File›Print›Writer tab›Print inserted blank pages 
as per your need"),
+    NC_("RID_CUI_TIPOFTHEDAY", "The 4th optional parameter of VLOOKUP Calc 
function tells whether the first column of data is sorted. If not, enter FALSE 
or zero"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to show hidden col A? Click a cell in col 
B, keep the left mouse button, move the mouse to the left, release. 
Format›Column›Show"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer helps you to make backups: with 
File›Save a copy you create a new document continuing to work on the original. 
Be safe!"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You have to present a report written with 
Writer? File›Send›Outline to Presentation automatically creates your slideshow 
from the outline"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Drag & drop cells from calc into the normal 
view of a slide creates a table. Into the outline view, each cell creates a 
line in the outline"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: to copy the table cells' background, 
use the Format Paintbrush of the Standard ToolBar"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Draw/Impress›Right click›Alignment to center 
the selection: on the page if 1 object or a group, on the selection if several 
objects"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to find the words in bold in a Writer 
doc? Edit›Find&Replace›Other options›Attributes›Font weight (check Including 
styles if needed)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to repeat the heading on next page when a 
table spans more than one page? Table›Table Properties›Text Flow tab›Check 
Repeat heading"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can use the column (row) labels in 
formulas. Eg. you have 2 columns, Time & KM, use =Time/KM to get minutes per 
kilometer (apply hour format)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: To change the number of a page, edit 
its first paragraph›Flow tab check Break›Insert and give the number (0 for 
continuous numbering)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Do you want the cursor to go into the cell to 
the right, after you've entered a value in a cell? Use the Tab key instead of 
the Enter key"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Impress provides you with a simple animation 
editor to create an animated GIF: Insert›Animated Image"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Since LibreOffice version 4.1, you can show or 
hide comments in Writer by clicking the comment toggle button in the rule"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In Calc, it is no longer necessary to use RAND 
or RANDBETWEEN function to generate a random series. Use Edit›Fill›Random 
Number"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Fit your sheet or print ranges to a page with 
Format›Page›Sheet Tab›Scaling Mode"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To keep visible column headers of a sheet when 
scrolling lines, use Windows›Freeze (or Windows›Split if scrollable header 
needed)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want your chapter titles to always begin a 
page? Edit Heading1 (paragraph style)›Flow tab›Breaks›check 
Insert›Page›Before"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Do you want to keep the text but remove a 
hyperlink in Writer? Right click on the link›Remove Hyperlink"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to remove all <> at once & keep the text 
inside? Edit›Find & Replace›Search›[<|>]›Replace›blank›Other Options›check 
Regular expressions"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Use Format›Conditional Formating›Manage 
to find out which are the cells for which conditional 9formating has been 
defined"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: To create a chart based on a Writer 
table, click in the table and then Insert›Object›Chart"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Move a column between 2 others in 1 
step? Click header then a cell in the col, keep mouse button and move to the 
target with Alt key"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Use the Backspace key instead of Delete. 
 You can choose what to delete"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Want to distribute some text in 
multi-columns? Select the text then Format›Columns"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Uncheck Slide Show›Settings›Always on top if 
you need another program displays its window to the front of your 
presentation"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Tools›Detective›Mark Invalid Data Marks all 
cells in the sheet that contain values outside the validation rules"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Need to allow changes to parts of a 
read-only document? Insert frames or sections that can authorize changes"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Select options in 
Tools›Options›Writer›Formatting Aids›Display to specify which nonprinting 
characters are displayed"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Want the same layout for the screen 
display and printing? Check Tools›Options›Calc›General›Use printer metrics for 
text formatting"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Customize your footnotes page with 
Tools›Footnotes/Endnotes"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to sum a cell through several sheets? 
Refer to the range of sheets (insert/delete sheet handled) e.g. 
=SUM(Sheet1.A1:Sheet3.A1)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can copy from one sheet to another without 
the clipboard. Select the area to copy›ctrl+click the target sheet's 
tab›Edit›Fill›Sheets"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to insert a value in the same place on 
several sheets? Select the sheets: hold down Ctrl key and click their tabs 
before entering"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Click a col field (row) PivotTable and press 
F12 to group data. Choices adapt to content: Date (month, quarter, year), 
number (classes)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Apart from table of contents LibreOffice can 
create Alphabetical, Illustrations, Tables, Objects, Bibliography, User-Defined 
indexes"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to count words for just one paragraph 
style? Use Find & Replace›Search for Styles›select the style›Find All. Look at 
the status bar"),
+    NC_("RID_CUI_TIPOFTHEDAY", "With LibreOffice you can use your Google Mail 
account to do a mail merge. Fill in Tools›Options›Writer›Mail Merge E-mail"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Toolbars are contextual, they open depending 
on the context. If you do not want that, uncheck them from the View Toolbars 
menu"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Insert and number your formulas in one 
step: type fn then F3. An AutoText is inserted with formula and number aligned 
in a table"),
+    NC_("RID_CUI_TIPOFTHEDAY", "There are Themes to customize LibreOffice: 
Tools›Customize (menu, keyboard, toolbars, events)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To automatically number your table rows in 
Writer, select the relevant column, then apply a numbering style from List 
Styles"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Delete in one step all of your printing areas: 
select all sheets then Format›Print Ranges›Clear"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice helps you not to enter two or more 
spaces in Writer. Check Tools›AutoCorrect Options›Ignore double spaces"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Transpose a writer table? Copy-Paste in Calc. 
Transpose with Copy-Paste special then Copy-paste special›Formatted text in 
writer"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer lets you number your footnotes per 
page, chapter, document: Tools›Footnotes/Endnotes›Footnotes tab›Counting"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Left-handed? Check Tools›Options›Language 
Settings›Languages›Asian & Writer›View›Ruler›Right-aligned Displays the 
scrollbar to the left"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: To display the scrollbar to the left 
Check Tools›Options›Language Settings›Languages›Complex text & 
Format›Sheet›Right-To-Left"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To insert Calc cells in a Writer table copy 
the cells›Paste special›Format RTF in Writer out of the table›copy this new 
table in your table"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Your numbers are displayed as ### in your 
spreadsheet? The column is too narrow to display all digits"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In a chart you can choose to leave a gap, 
assume zero or continue a line & you can include values from hidden cells or 
not"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: use Ctrl+Alt+Shift+V to paste the 
contents of the clipboard as unformatted text"),
+    NC_("RID_CUI_TIPOFTHEDAY", "59.a (alternative) Need more pasting options? 
Use 'Paste Special' via Edit - Special paste or press Ctrl+Shift+V"),
+    NC_("RID_CUI_TIPOFTHEDAY", "When editing a cell in place, you can right 
click›Insert fields: Date, Sheet name, Title"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Wrap Text Around an Object in Writer: Select 
the graphic›Right-click›Wrap›Edit Contour"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Slide Show›Slide Show Settings›Type›Auto: 
Restarts the slide show after the pause interval you specify"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In LibreOffice Calc, document sharing allows 
simultaneous write access for many users"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can delete multiple custom styles at once: 
select them›right click›Delete"),
+    NC_("RID_CUI_TIPOFTHEDAY", "The Calc's keyboard shortcut to toggle between 
relative and absolute references is Shift + F4"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc's keyboard shortcut to toggle between 
relative and absolute references is F4"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: You can not see all the text in a cell? 
Expand the input line in the formula bar, you can scroll"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You often create a document from another? Have 
you considered using a template?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "New versions do not bring that new features 
and bug fixes. They also include security patches. Be safe, put yourself 
updated!"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Want to duplicate the above line? Click 
the row header and then press Ctrl + D"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can embed copied graphics from web to your 
docs via Edit - Links - Break Link "),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can easily arrange size table rows and 
coloumns - Right click - Row(or Coloums) - Optimal Height and Width"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Best way to fix bad looking MS Word table 
cells via Right click - Row(or Coloums) - Optimal Height and Width (Or Table 
AutoFit)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Don't get lost in long%large documents. Use 
Navigator(F5) to find your way through the content."),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to change a word which appeares multiple 
places many place Use Find&Replace to save time."),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can use various table styles via Table - 
AutoFormat to have good looking tables"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to select a large range of cells without 
scrolling? Type the range reference (e.g. A1:A1000) in the name box then 
Enter"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc›Data›Validity allows you to create 
drop-down lists for the user selects instead of typing"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc›Format›Page›Sheet Tab›Print:Grid can 
avoid you draw borders"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to center cells on a printed page? 
Format›Page›Page Tab›Layout settings›Table alignment"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Want to change basic fonts for the 
predefined template or Current document? Tools›Options›Writer›Basic Fonts"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Define texts that you often use as AutoText. 
You will be able to insert them by their name, shortcut or toolbar in any 
writer document"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: you can import data from Data Sources 
view as you do in Writer with Data to Text button (creates a refreshable 
datarange)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can drag and drop a contiguous range of 
cells in a chart to redefine"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice uses Regexp ICU’s engine 
(International Components for Unicode)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc›View›Value Highlighting displays cell 
contents in colors: Text/black, Formulas/green, Numbers/blue, Protected 
cells/grey background"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: to show formulas instead of results in 
cells Tools›Options›Calc›View›Display›Formulas or check Format›Page›Sheet 
tab›Print›Formulas"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Want to reach a page by its number? F5 
to open the navigator›Type the number in the fied›Enter"),
+    NC_("RID_CUI_TIPOFTHEDAY", "With Edit›AutoText›Import you can select Word 
document or template, containing the AutoText entries that you want to import"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc can display a number or a calculation as 
a fraction: Format›Cells›Number tab›Category›Fraction"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To print the notes of your slides 
File›Print›General tab›Select Notes in the Print listbox"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Draw: To Move an object to another Layer›Hold 
it until its edges flash›Drag to the name tab of the layer you want to move it 
to›Release"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to exclude duplicate rows in a 
spreasheet? Use Data›Filter›Standard Filter›Options›No duplications"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to find words more than 10 characters? 
Edit›Find & Replace›Search›\\<[a-z]{10,}›Other Options›Check Regular 
expressions"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You delete instead of insert? You are in 
overwrite mode. Press the Insert key on the keyboard or click in the status bar 
on Overwrite"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Surprised that Writer adds blank pages in a 
mailing? Would you like to have a recipient letter to the back of another 
(Duplexing)?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Help users to insert a picture in a Writer 
template? Insert›Fields›Other›Functions tab›PlaceHolder›Image. One Click to 
select an image"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Have you checked 
Tools›Options›Load/Save›General›Always create backup copy ?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Create a master document from the current 
Writer document? File›Send›Create Master Document (sub-document created 
depending of outline)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer includes LibreLogo: simple Logo-like 
programming environment with turtle vector graphics, DTP and graphic design"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Need custom acceptance date format? 
Tools›Options›Language Settings›Language›Date acceptance patterns"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Typing in bold italics or underlined in Writer 
you can continue with the default attributes using only the shortcut 
Ctrl+Shift+X"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Looking WordArt in LibreOffice? Click Fontwork 
gallery in the Drawing Toolbar"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To protect cells: Tools›Protect 
Document›Sheet. To prevent insert, delete, rename, move/copy sheets: 
Tools›Protect›Document›Document"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Search by default in several sheets, select 
them before you start the search"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to change spell checking for some part of 
the text? Click in the language zone of the status bar or better, apply a 
style"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You don't like the selection color ? Uncheck 
or modify Tools›Options›LibreOffice›View›Selection›Transparency"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: a date is a formated number of days 
since a date origin. An hour is a day divided by 24: noon = 0.5"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Need custom contents for metadata properties? 
File›Properties›Custom Properties tab lets you create what you want"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Customize›ToolbarModify›Change Icon›Import to 
use your icons for toolbars (only PNG file format and 16x16 or 26x26 pixels)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Insert your metadata in your Writer document: 
Insert›Fields›Other›Document or DocInformation tabs"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You are missing a label at the beginning of 
each page? Delete the 'Next Record' field from the last label, it is implicit"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: To delete multiple comments, Copy the 
range›Edit›Paste Special›Selection›Everything except Comments"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: you would like to view the calculation 
of individual elements of a formula, select the respective elements and press 
F9"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: you can rotate cells table orientation 
with Table›Table Properties›Text Flow tab›Text orientation"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice can automatically add a numbered 
caption when you insert an object. See Tools›Options›LibreOffice 
Writer›AutoCaption"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Want to add x months to a date? Use 
=EDATE(date;months)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Many images in your writer document? Speed up 
the display by disabling Tools›Options›LibreOffice Writer›View›Graphics and 
objects"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Shift+Ctrl+Del deletes from cursor to 
the end of the current sentence. If the cursor is at the end of a cell, same 
for the next cell"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Want to sort paragraphs or table rows 
alphabetically or numerically? Select them›Tools›Sort"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To bring back a cell on screen after entering 
formula for which you need to scroll the sheet, select the cell before typing"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Need an unnumbered item in a list? Use 
'Insert Unnumbered Entry' in Bullets and Numbering toolbar"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to open/save to favourite places? Enable 
Tools›Options›LibreOffice›General›Use LibreOffice dialogs lets you record 
shortcuts"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Click a row header›Ctrl++›Ctrl+D 
duplicates the above row, including formulas. Just type new values"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Trace cells used in a formula, 
precedents (Shift+F7) or dependants (Shift+F5). For each hit you go one more 
step in the chain"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to sort a pivot table? Click on 
drop-list's arrow in the row/col header and select sort method: ascending, 
descending or custom"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Sticky templates (user & shared template 
folders) let you apply style changes when you open a document created from the 
template"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Tools›AutoCorrect›Replace provides a list of 
common substitutions. Take a look and complete with your own replacements"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Center a picture in a Writer Table's cell? 
Anchor as ›Center buttons in Formating (horizontally) & Table (vertically) 
toolbars"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Do not insert empty paragraph to separate two 
paragraphs, set Indents & Spacing›Spacing›Below paragraph for the paragraph 
style"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want your documents open where you were when 
last saved? Fill Tools›Options›LibreOffice›User Data First/Last name"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: with the navigator you can select & 
move up/down headings and the text below the heading, in the Navigator and in 
the document"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice doesn't calculate from left to 
right but respects the order 
Parentheses›Exponents›Multiplication›Division›Addition›Subtraction"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: you can change the default function in 
the status bar: right click on the area"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: you do not want to print all columns? 
Hide or group ones you do not need"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: use Shift+Space to select the current 
row & Ctrl+Shift+Space to select the current column (previous versions)"),
+    NC_("RID_CUI_TIPOFTHEDAY", " Calc: use Shift+Space to select the current 
row & Ctrl+Space to select the current column"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer handles Conditional styles: paragraph 
styles that have different properties depending on the context"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Install/LibreOffice not working? Have you 
checked the integrity of the download? On Download page click on Info to get 
the checksums"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: want to show the current date in your 
document? Insert›Fields›Other›Document tab›select Date (not fixed)›select a 
format"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Need to fill a serie? Select the cell 
range›Edit›Fill›Series›Choose between Linear, Growth, Date and AutoFill"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Click at the beginning (end) of a 
section and press Alt+Enter to insert a paragraph before (after) the section"),
+    NC_("RID_CUI_TIPOFTHEDAY", "With File›Versions Save multiple versions of 
the document in the same file. You can also open, delete, and compare previous 
versions"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You change computers and want to recover your 
customizations? See https://wiki.documentfoundation.org/UserProfile";),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: You can set a color for each tab: 
right-click the tab›Tab ColourfA"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Looking for examples of LibreOffice Basic 
macros? Look at LibreOffice Macros›Tools"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Insert›Function List opens a resizable 
dockable window which displays all functions that can be inserted into your 
document"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Don't want the page number in your TOC? Edit 
index›Delete Tab Stop & Page number from Structure Line in Entries tab"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: to quickly assign a name to a range of 
cells, select it›type the name in the name box and press Enter"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Outline numbering lets you set text to 
be displayed before the chapter number. For example, type 'Chapter ' to display 
'Chapter 1'"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Base not only manages its own. Connect to main 
database engines: JDBC PostgreSQL MySQL LDAP Address book, MS Access ODBC 
Spreadsheet Text"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Want to know if a cell is referred in 
formulas of other cells? Tools›Detective›Trace Dependents [Shift+F5]"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to customize the middle mouse button? 
Tools›Options›LibreOffice›View›Middle Mouse button"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: To delete picture's caption select the 
picture›Ctrl+X›There is only the legend's frame›Select›Delete›Ctrl+C to paste 
the picture"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Base: Need a crosstab query ? Calc›Data›Pivot 
Table›Create›choose your registered Data source"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc Print: Repeat rows/columns on every 
pages? Format›Print Ranges›Edit›Click the Row/Col text box›drag the mouse in 
the sheet"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: To copy rows/cols to another sheet 
preserving heights/widths, select them by clicking the labels before before 
copying"),
+    NC_("RID_CUI_TIPOFTHEDAY", "With LibreOffice it is very easy to install a 
new dictionary: they are supplied as an extension"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Registered databases can also be used in Calc, 
for example to export your tables to CSV format"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Need to precisely position? Alt+Arrow Keys 
move objects (shape, picture, formula...) by one pixel"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Choose Hierarchical View in the Styles and 
Formatting window to see the links between styles"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Print 2 A5 on A4? Check File›Print›Options 
tab›Use only paper size from printer & set A4 landscape orientation in the 
printer properties"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: The field names are displayed instead 
of their content? View›Fields Names or Ctrl + F9"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Creating a Style based on another, you 
can enter a percentage value or a point value (e.g. 110% or -2pt or +5pt)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to know the valid Command Line 
Parameters? Start soffice with --help or -h or -?"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Want to return to default after 
applying a List Style? Click Bullets or Numbering On/Off tool on the Formatting 
toolbar"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Configure use of the Ctrl key to follow 
hyperlinks? Tools›Options›LibreOffice›Security›Options›Ctrl+click required to 
follow hyperlinks"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You get 'weird' characters opening a text 
file? Check the character set when importing"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Open Document Format is the key. LibreOffice 
is the solution."),
+    NC_("RID_CUI_TIPOFTHEDAY", "For your safety, save your files to disk and 
then copy them to your USB key. Never do the opposite !"),
+    NC_("RID_CUI_TIPOFTHEDAY", "After a copy you can hit Esc to stop the 
'marching ants'. The copied content will remain available for pasting"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: To quickly insert or delete rows, drag 
the mouse over the header to select the desired number of lines then Ctrl+ or 
Ctrl-"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Select contiguous cell range that 
contains data and is bounded by empty row and columns ? Use Ctrl+* (numeric key 
pad )"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Tools›Customize›Keyboard›Save saves the 
current shortcut key configuration, so that you can load it later or on another 
computer"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Property mapping for charts allows to change 
data serie's fill & border colors based on spreadsheet values"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Ctrl+Shift+F9 Recalculates all formulas 
in all sheets (some functions like RANDBETWEEN are not calculated by F9)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: Write along a curve ? Draw the 
line›Double clic›Type the text›Format›Object›Fontwork... Have fun with the 
proposed effects"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Click the bo4rders button adds borders to 
selected cells - Shift+Click replaces all borders of current cell with your 
choice"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: you can create an illustration index 
from Object names, not only from Captions"),
+    NC_("RID_CUI_TIPOFTHEDAY", "To enable macro recording check 
Tools›Options›LibreOffice›Advanced›Enable macro recording (limited)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "In the Replace input field of AutoCorrection 
you can use the wildcards .*"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You no longer find an option? Search in 
Tools›Options›LibreOffice›Advanced›Configuration Expert"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc - Want to export formulas to CSV? 
File›Save As›Type:Text CSV›Check Edit filter settings›Check Save cell 
formulas"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Impress: set Handouts in File›Print›Document 
listbox›select the number of slides per page (lines automatically drawn if you 
pick 3)"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Impress: Outline View. You cannot use 
Tab/Shift+Tab to move the title in the hierarchy with Title slide layout (apply 
Title, content)"),
+    NC_("RID_CUI_TIPOFTHEDAY", " Impress: Outline View. You cannot use 
Tab/Shift+Tab to move the title in the hierarchy with Title slide layout (apply 
Title, content"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Want to manage the presentation of hyperlinks 
in a spreadsheet? Insert them with the HYPERLINK function"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Tools›Customize›Keyboard› No need to scroll 
through the list to find a shortcut: just type the shortcut"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Draw/Impress: Want to quickly zoom in on 
selection? Press the Divide Key (number pad) - Press * to restore entire page 
in screen"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Want to quickly zoom in on range 
selection? Right click on the zoom part of the status bar, choose Optimal"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: to reformat all comments in a document 
click the down arrow in a comment and choose 'Format all Comments'"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: File›Print›Comments and choose Place 
in margins, end of page, end of document"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Convert formula into static values ? No 
need to copy-paste: Tools›Cell Contents›Formula to Value"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc: Can not get what you want with VLOOKUP? 
With INDEX and MATCH You can do everything!"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: LibreOffice 5.1 introduces Hide 
Whitespace option which removes gaps between pages, to help you really focus on 
your content"),
+    NC_("RID_CUI_TIPOFTHEDAY", "LibreOffice 5.1 reorganize main menus in 
Writer, Calc and Impress to improve usability"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Mailing: with LibreOffice 5.1 embed your 
datasource definition in the document"),
+    NC_("RID_CUI_TIPOFTHEDAY", "5.3 implements table styles in Writer, try 
them!"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc 5.3 brings new cell styles, and the 
possibility to create your own x"),
+    NC_("RID_CUI_TIPOFTHEDAY", "New arrow endings in LibreOffice 5.3, 
including Crow's foot notation's ones "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Grab the latest docker image from Docker Hub 
here: https://hub.docker.com/r/libreoffice/online "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Release 5.3 features the first source release 
of LibreOffice Online "),
+    NC_("RID_CUI_TIPOFTHEDAY", "Calc now supports scrolling through the Scroll 
key"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Now possible to sign existing PDF files and 
also verify those signatures"),
+    NC_("RID_CUI_TIPOFTHEDAY", "A safe mode has been added which starts 
LibreOffice temporarily with a fresh user profile"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Menu Help: direct link to user guides, 
collateral documentation, help on line"),
+    NC_("RID_CUI_TIPOFTHEDAY", "You can now import AutoText import from .dotx 
and .dotm files"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Version 5.4 introduces Pivot Charts"),
+    NC_("RID_CUI_TIPOFTHEDAY", "Writer: To find the expressions in brackets 
Edit›Find & Replace›Find›\\([^)]+\\)›set Regular expression"),
+};
+
+#endif //INCLUDED_CUI_INC_TIPOFTHEDAY_HRC
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/dialogs/tipofthedaydlg.cxx 
b/cui/source/dialogs/tipofthedaydlg.cxx
new file mode 100644
index 000000000000..430ae484d08a
--- /dev/null
+++ b/cui/source/dialogs/tipofthedaydlg.cxx
@@ -0,0 +1,119 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <tipofthedaydlg.hxx>
+
+#include <config_folders.h>
+#include <dialmgr.hxx>
+#include <officecfg/Office/Common.hxx>
+#include <osl/file.hxx>
+#include <rtl/bootstrap.hxx>
+#include <tipoftheday.hrc>
+#include <vcl/graphicfilter.hxx>
+#include <vcl/virdev.hxx>
+
+TipOfTheDayDialog::TipOfTheDayDialog(weld::Window* pParent)
+    : GenericDialogController(pParent, "cui/ui/tipofthedaydialog.ui", 
"TipOfTheDayDialog")
+    , m_pImage(m_xBuilder->weld_image("imImage"))
+    , m_pText(m_xBuilder->weld_label("lbText"))
+    , m_pShowTip(m_xBuilder->weld_check_button("cbShowTip"))
+    , m_pNext(m_xBuilder->weld_button("btnNext"))
+    , m_pLink(m_xBuilder->weld_link_button("btnLink"))
+{
+    m_pShowTip->connect_toggled(LINK(this, TipOfTheDayDialog, 
OnShowTipToggled));
+    m_pNext->connect_clicked(LINK(this, TipOfTheDayDialog, OnNextClick));
+
+    nNumberOfTips = SAL_N_ELEMENTS(TIPOFTHEDAY_STRINGARRAY);
+    nCurrentTip = rand() % nNumberOfTips;
+    UpdateTip();
+}
+
+TipOfTheDayDialog::~TipOfTheDayDialog()
+{
+    std::shared_ptr<comphelper::ConfigurationChanges> xChanges(
+        comphelper::ConfigurationChanges::create());
+    const auto t0 = std::chrono::system_clock::now().time_since_epoch();
+    const sal_Int32 nDay
+        = std::chrono::duration_cast<std::chrono::hours>(t0).count() / 24; // 
days since 1970-01-01
+    officecfg::Office::Common::Misc::LastTipOfTheDayShown::set(nDay, xChanges);
+    xChanges->commit();
+}
+
+static bool file_exists(const OUString& fileName)
+{
+    ::osl::File aFile(fileName);
+    return aFile.open(osl_File_OpenFlag_Read) == osl::FileBase::E_None;
+}
+
+void TipOfTheDayDialog::UpdateTip()
+{
+    //get string
+    OUString aText;
+    aText = CuiResId(TIPOFTHEDAY_STRINGARRAY[nCurrentTip]);
+    //move hyperlink into linkbutton
+    sal_Int32 nPos = aText.indexOf("http");
+    if (nPos > 0)
+    {
+        m_pLink->set_visible(true);
+        if (aText.getLength() - nPos > 40)
+            m_pLink->set_label(aText.copy(nPos, 40) + "...");
+        else
+            m_pLink->set_label(aText.copy(nPos));
+        m_pLink->set_uri(aText.copy(nPos));
+        aText = aText.copy(0, nPos - 1);
+    }
+    else
+        m_pLink->set_visible(false);
+    m_pText->set_label(aText);
+
+    // import the image
+    OUString aURL("$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/tipoftheday/");
+    rtl::Bootstrap::expandMacros(aURL);
+    OUString aName = "tipoftheday_" + OUString::number(nCurrentTip) + ".png";
+    // use default image if none is available with the number
+    if (!file_exists(aURL + aName))
+        aName = "tipoftheday.png";
+    // draw image
+    Graphic aGraphic;
+    if (GraphicFilter::LoadGraphic(aURL + aName, OUString(), aGraphic) == 
ERRCODE_NONE)
+    {
+        ScopedVclPtr<VirtualDevice> m_pVirDev;
+        m_pVirDev = m_pImage->create_virtual_device();
+        m_pVirDev->SetOutputSizePixel(aGraphic.GetSizePixel());
+        m_pVirDev->DrawBitmapEx(Point(0, 0), aGraphic.GetBitmapEx());
+        m_pImage->set_image(m_pVirDev.get());
+        m_pVirDev.disposeAndClear();
+    }
+}
+
+IMPL_STATIC_LINK(TipOfTheDayDialog, OnShowTipToggled, weld::ToggleButton&, 
rButton, void)
+{
+    std::shared_ptr<comphelper::ConfigurationChanges> xChanges(
+        comphelper::ConfigurationChanges::create());
+    
officecfg::Office::Common::Misc::ShowTipOfTheDay::set(rButton.get_active(), 
xChanges);
+    xChanges->commit();
+}
+
+IMPL_LINK_NOARG(TipOfTheDayDialog, OnNextClick, weld::Button&, void)
+{
+    nCurrentTip = rand() % nNumberOfTips;
+    UpdateTip();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
diff --git a/cui/source/factory/cuiexp.cxx b/cui/source/factory/cuiexp.cxx
index 09cddbf04044..e3c13320172f 100644
--- a/cui/source/factory/cuiexp.cxx
+++ b/cui/source/factory/cuiexp.cxx
@@ -50,6 +50,7 @@
 #include <thesdlg.hxx>
 #include <hangulhanjadlg.hxx>
 #include <dstribut.hxx>
+#include <tipofthedaydlg.hxx>
 #include "dlgfact.hxx"
 #include <sal/types.h>
 
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index a862bea608ab..4669f431df56 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -88,6 +88,7 @@
 #include <hyphen.hxx>
 #include <thesdlg.hxx>
 #include <about.hxx>
+#include <tipofthedaydlg.hxx>
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::frame;
@@ -1344,6 +1345,11 @@ short SvxMacroAssignDialog::Execute()
     return m_xDialog->run();
 }
 
+short AbstractTipOfTheDayDialog_Impl::Execute()
+{
+    return m_xDlg->run();
+}
+
 VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateSvxMacroAssignDlg(
     weld::Window* _pParent, const Reference< XFrame >& _rxDocumentFrame, const 
bool _bUnoDialogMode,
     const Reference< XNameReplace >& _rxEvents, const sal_uInt16 
_nInitiallySelectedEvent )
@@ -1588,4 +1594,10 @@ 
AbstractDialogFactory_Impl::CreateSignSignatureLineDialog(weld::Window* pParent,
         std::make_unique<SignSignatureLineDialog>(pParent, xModel));
 }
 
+VclPtr<AbstractTipOfTheDayDialog>
+AbstractDialogFactory_Impl::CreateTipOfTheDayDialog(weld::Window* pParent)
+{
+    return 
VclPtr<AbstractTipOfTheDayDialog_Impl>::Create(std::make_unique<TipOfTheDayDialog>(pParent));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 6d263ea3a70a..65b2f4337760 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -658,6 +658,20 @@ public:
     virtual short Execute() override;
 };
 
+class TipOfTheDayDialog;
+class AbstractTipOfTheDayDialog_Impl : public AbstractTipOfTheDayDialog
+{
+protected:
+    std::unique_ptr<TipOfTheDayDialog> m_xDlg;
+
+public:
+    explicit AbstractTipOfTheDayDialog_Impl(std::unique_ptr<TipOfTheDayDialog> 
p)
+        : m_xDlg(std::move(p))
+    {
+    }
+    virtual short Execute() override;
+};
+
 //AbstractDialogFactory_Impl implementations
 class AbstractDialogFactory_Impl : public SvxAbstractDialogFactory
 {
@@ -836,6 +850,8 @@ public:
     virtual VclPtr<AbstractSignSignatureLineDialog>
     CreateSignSignatureLineDialog(weld::Window* pParent,
                                   const 
css::uno::Reference<css::frame::XModel> xModel) override;
+
+    virtual VclPtr<AbstractTipOfTheDayDialog> 
CreateTipOfTheDayDialog(weld::Window* pParent) override;
 };
 
 #endif
diff --git a/cui/source/inc/tipofthedaydlg.hxx 
b/cui/source/inc/tipofthedaydlg.hxx
new file mode 100644
index 000000000000..1e7b1eba8c07
--- /dev/null
+++ b/cui/source/inc/tipofthedaydlg.hxx
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_CUI_SOURCE_INC_TIPOFTHEDAYDLG_HXX
+#define INCLUDED_CUI_SOURCE_INC_TIPOFTHEDAYDLG_HXX
+
+#include <vcl/weld.hxx>
+
+class TipOfTheDayDialog : public weld::GenericDialogController
+{
+private:
+    std::unique_ptr<weld::Image> m_pImage;
+    std::unique_ptr<weld::Label> m_pText;
+    std::unique_ptr<weld::CheckButton> m_pShowTip;
+    std::unique_ptr<weld::Button> m_pNext;
+    std::unique_ptr<weld::LinkButton> m_pLink;
+
+    sal_uInt32 nCurrentTip;
+    sal_uInt32 nNumberOfTips;
+    void UpdateTip();
+    DECL_STATIC_LINK(TipOfTheDayDialog, OnShowTipToggled, weld::ToggleButton&, 
void);
+    DECL_LINK(OnNextClick, weld::Button&, void);
+
+public:
+    TipOfTheDayDialog(weld::Window* pWindow);
+    virtual ~TipOfTheDayDialog() override;
+};
+
+#endif // INCLUDED_CUI_SOURCE_INC_TIPOFTHEDAYDLG_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index 6c31ddbcdc60..c1ae769a0eb4 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -260,6 +260,7 @@ OfaMiscTabPage::OfaMiscTabPage(TabPageParent pParent, const 
SfxItemSet& rSet)
     : SfxTabPage(pParent, "cui/ui/optgeneralpage.ui", "OptGeneralPage", &rSet)
     , m_xExtHelpCB(m_xBuilder->weld_check_button("exthelp"))
     , m_xPopUpNoHelpCB(m_xBuilder->weld_check_button("popupnohelp"))
+    , m_xShowTipOfTheDay(m_xBuilder->weld_check_button("cbShowTipOfTheDay"))
     , m_xFileDlgFrame(m_xBuilder->weld_widget("filedlgframe"))
     , m_xPrintDlgFrame(m_xBuilder->weld_widget("printdlgframe"))
     , m_xFileDlgROImage(m_xBuilder->weld_widget("lockimage"))
@@ -329,6 +330,12 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
     if ( m_xExtHelpCB->get_state_changed_from_saved() )
         aHelpOptions.SetExtendedHelp( m_xExtHelpCB->get_active() );
 
+    if ( m_xShowTipOfTheDay->get_state_changed_from_saved() )
+    {
+        
officecfg::Office::Common::Misc::ShowTipOfTheDay::set(m_xShowTipOfTheDay->get_active(),
 batch);
+        bModified = true;
+    }
+
     if ( m_xFileDlgCB->get_state_changed_from_saved() )
     {
         SvtMiscOptions aMiscOpt;
@@ -382,6 +389,8 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet )
     m_xExtHelpCB->save_state();
     m_xPopUpNoHelpCB->set_active( aHelpOptions.IsOfflineHelpPopUp() );
     m_xPopUpNoHelpCB->save_state();
+    m_xShowTipOfTheDay->set_active( 
officecfg::Office::Common::Misc::ShowTipOfTheDay::get() );
+    m_xShowTipOfTheDay->save_state();
     SvtMiscOptions aMiscOpt;
     m_xFileDlgCB->set_active( !aMiscOpt.UseSystemFileDialog() );
     m_xFileDlgCB->save_state();
diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx
index 52cf72ef3b6e..f5c02d20da2d 100644
--- a/cui/source/options/optgdlg.hxx
+++ b/cui/source/options/optgdlg.hxx
@@ -44,6 +44,7 @@ private:
 
     std::unique_ptr<weld::CheckButton> m_xExtHelpCB;
     std::unique_ptr<weld::CheckButton> m_xPopUpNoHelpCB;
+    std::unique_ptr<weld::CheckButton> m_xShowTipOfTheDay;
     std::unique_ptr<weld::Widget> m_xFileDlgFrame;
     std::unique_ptr<weld::Widget> m_xPrintDlgFrame;
     std::unique_ptr<weld::Widget> m_xFileDlgROImage;
diff --git a/cui/uiconfig/ui/optgeneralpage.ui 
b/cui/uiconfig/ui/optgeneralpage.ui
index 24eadff85c61..b2f6114e3dab 100644
--- a/cui/uiconfig/ui/optgeneralpage.ui
+++ b/cui/uiconfig/ui/optgeneralpage.ui
@@ -59,6 +59,20 @@
                     <property name="top_attach">1</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkCheckButton" id="cbShowTipOfTheDay">
+                    <property name="label" translatable="yes" 
context="optgeneralpage|TipOfTheDayCheckbox">Show "Tip of the day" Dialog on 
Start-up</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="active">True</property>
+                    <property name="draw_indicator">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">2</property>
+                  </packing>
+                </child>
               </object>
             </child>
           </object>
diff --git a/cui/uiconfig/ui/tipofthedaydialog.ui 
b/cui/uiconfig/ui/tipofthedaydialog.ui
new file mode 100644
index 000000000000..8b5936466c8d
--- /dev/null
+++ b/cui/uiconfig/ui/tipofthedaydialog.ui
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface domain="cui">
+  <requires lib="gtk+" version="3.18"/>
+  <object class="GtkDialog" id="TipOfTheDayDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes" 
context="TipOfTheDayDialog|Name">Tip of the day</property>
+    <property name="type_hint">dialog</property>
+    <child>
+      <placeholder/>
+    </child>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkCheckButton" id="cbShowTip">
+                <property name="label" translatable="yes" 
context="TipOfTheDay|Checkbox">_Show tips on startup</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="tooltip_text" translatable="yes" 
context="TipOfTheDay|Checkbox_Tooltip">Enable the dialog again at Tools &gt; 
Options &gt; General</property>
+                <property name="use_underline">True</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="btnNext">
+                <property name="label" translatable="yes" 
context="TipOfTheDayDialog|Next_Button">_Next Tip</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="btnOk">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkImage" id="imImage">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_left">12</property>
+                <property name="margin_right">12</property>
+                <property name="margin_top">12</property>
+                <property name="margin_bottom">12</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkLabel" id="lbTitle">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_top">12</property>
+                    <property name="label" translatable="yes" 
context="TipOfTheDayDialog|Title">Did you know?</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                      <attribute name="scale" value="1.5"/>
+                    </attributes>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSeparator">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="lbText">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="vexpand">True</property>
+                    <property name="wrap">True</property>
+                    <property name="max_width_chars">50</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLinkButton" id="btnLink">
+                    <property name="label" translatable="yes" 
context="TipOfTheDayDialog|Link_Button">Link</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="relief">none</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-5">btnOk</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/extras/source/tipoftheday/tipoftheday.png 
b/extras/source/tipoftheday/tipoftheday.png
new file mode 100644
index 000000000000..a126c65cbe93
Binary files /dev/null and b/extras/source/tipoftheday/tipoftheday.png differ
diff --git a/extras/source/tipoftheday/tipoftheday_1.png 
b/extras/source/tipoftheday/tipoftheday_1.png
new file mode 100644
index 000000000000..cedc931671e0
Binary files /dev/null and b/extras/source/tipoftheday/tipoftheday_1.png differ
diff --git a/extras/source/tipoftheday/tipoftheday_2.png 
b/extras/source/tipoftheday/tipoftheday_2.png
new file mode 100644
index 000000000000..5a8e3ca37414
Binary files /dev/null and b/extras/source/tipoftheday/tipoftheday_2.png differ
diff --git a/include/vcl/abstdlg.hxx b/include/vcl/abstdlg.hxx
index 4e9f72d218a3..b4b839c71fe4 100644
--- a/include/vcl/abstdlg.hxx
+++ b/include/vcl/abstdlg.hxx
@@ -119,6 +119,12 @@ protected:
     virtual ~AbstractSignSignatureLineDialog() override = default;
 };
 
+class VCL_DLLPUBLIC AbstractTipOfTheDayDialog : public VclAbstractDialog
+{
+protected:
+    virtual ~AbstractTipOfTheDayDialog() override = default;
+};
+
 class VCL_DLLPUBLIC VclAbstractDialogFactory
 {
 public:
@@ -147,6 +153,10 @@ public:
     virtual VclPtr<AbstractScreenshotAnnotationDlg> 
CreateScreenshotAnnotationDlg(
         vcl::Window* pParent,
         Dialog& rParentDialog) = 0;
+
+    // create info dialog to show tip-of-the-day
+    virtual VclPtr<AbstractTipOfTheDayDialog>
+    CreateTipOfTheDayDialog(weld::Window* pParent) = 0;
 };
 
 #endif
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 4b2c759628b9..3b2fea407aec 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -1089,6 +1089,7 @@ class VCL_DLLPUBLIC Image : virtual public Widget
 {
 public:
     virtual void set_from_icon_name(const OUString& rIconName) = 0;
+    virtual void set_image(VirtualDevice* pDevice) = 0;
 };
 
 class VCL_DLLPUBLIC Calendar : virtual public Widget
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 59adc563ef6f..3507ed063745 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -5458,6 +5458,19 @@
         </info>
         <value>false</value>
       </prop>
+      <prop oor:name="ShowTipOfTheDay" oor:type="xs:boolean" 
oor:nillable="false">
+        <!-- UIHints: Tools - Options - General -->
+        <info>
+          <desc>Determines whether the Tip-Of-The-Day dialog is shown on 
startup.</desc>
+        </info>
+        <value>true</value>
+      </prop>
+      <prop oor:name="LastTipOfTheDayShown" oor:type="xs:int" 
oor:nillable="false">
+          <info>
+              <desc>The last time when the Tip-of-the-day dialog was 
shown.</desc>
+          </info>
+          <value>0</value>
+      </prop>
       <prop oor:name="UseOpenCL" oor:type="xs:boolean" oor:nillable="false">
         <info>
           <desc>Determines whether OpenCL can be used, when available, to 
speed up
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index abff96219425..50201c343c76 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -1219,9 +1219,30 @@ void SfxViewFrame::Notify( SfxBroadcaster& /*rBC*/, 
const SfxHint& rHint )
                 rBind.Invalidate( SID_RELOAD );
                 rBind.Invalidate( SID_EDITDOC );
 
+                const auto t0 = 
std::chrono::system_clock::now().time_since_epoch();
+
+                // show tip-of-the-day dialog
+                const bool bShowTipOfTheDay = 
officecfg::Office::Common::Misc::ShowTipOfTheDay::get();
+                bool bIsUITest = false; //uitest.uicheck fails when the dialog 
is open
+                for( sal_uInt16 i = 0; i < 
Application::GetCommandLineParamCount(); i++ )
+                {
+                    if( Application::GetCommandLineParam(i) == "--nologo" )
+                        bIsUITest = true;
+                }
+                if (bShowTipOfTheDay && !Application::IsHeadlessModeEnabled() 
&& !bIsUITest) {
+                    const sal_Int32 nLastTipOfTheDay = 
officecfg::Office::Common::Misc::LastTipOfTheDayShown::get();
+                    const sal_Int32 nDay = 
std::chrono::duration_cast<std::chrono::hours>(t0).count()/24; // days since 
1970-01-01
+                    if (nDay-nLastTipOfTheDay > 0) { //only once per day
+                        VclAbstractDialogFactory* pFact = 
VclAbstractDialogFactory::Create();
+                        VclPtr<VclAbstractDialog> pDlg =
+                            pFact->CreateTipOfTheDayDialog( 
GetWindow().GetFrameWeld() );
+                        pDlg->Execute();
+                    }
+                }
+
                 // inform about the community involvement
                 const sal_Int64 nLastGetInvolvedShown = 
officecfg::Setup::Product::LastTimeGetInvolvedShown::get();
-                const sal_Int64 nNow = 
std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();
+                const sal_Int64 nNow = 
std::chrono::duration_cast<std::chrono::seconds>(t0).count();
                 const sal_Int64 nPeriodSec(60 * 60 * 24 * 180); // 180 days in 
seconds
                 bool bUpdateLastTimeGetInvolvedShown = false;
 
diff --git a/solenv/sanitizers/ui/cui.suppr b/solenv/sanitizers/ui/cui.suppr
index c789c27b59a0..1fce68321a1c 100644
--- a/solenv/sanitizers/ui/cui.suppr
+++ b/solenv/sanitizers/ui/cui.suppr
@@ -245,6 +245,8 @@ cui/uiconfig/ui/hyphenate.ui://GtkButton[@id='right'] 
button-no-label
 cui/uiconfig/ui/iconchangedialog.ui://GtkTextView[@id='addrTextview'] 
no-labelled-by
 cui/uiconfig/ui/iconchangedialog.ui://GtkLabel[@id='label1'] orphan-label
 cui/uiconfig/ui/iconselectordialog.ui://GtkLabel[@id='noteLabel'] orphan-label
+cui/uiconfig/ui/tipofthedaydialog.ui://GtkLabel[@id='lbTitle'] orphan-label
+cui/uiconfig/ui/tipofthedaydialog.ui://GtkLabel[@id='lbText'] orphan-label
 cui/uiconfig/ui/insertfloatingframe.ui://GtkEntry[@id='edname'] no-labelled-by
 cui/uiconfig/ui/insertfloatingframe.ui://GtkEntry[@id='edurl'] no-labelled-by
 cui/uiconfig/ui/insertfloatingframe.ui://GtkLabel[@id='label6'] orphan-label
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
index 6c7ed89dfb23..7bfd4bed1cc9 100644
--- a/vcl/Module_vcl.mk
+++ b/vcl/Module_vcl.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_Module_add_targets,vcl,\
     Library_vcl \
     Package_opengl \
     Package_theme_definitions \
+    Package_tipoftheday \
     UIConfig_vcl \
        $(if $(filter WNT,$(OS)), \
                Package_opengl_blacklist ) \
diff --git a/vcl/Package_tipoftheday.mk b/vcl/Package_tipoftheday.mk
new file mode 100644
index 000000000000..165249cce491
--- /dev/null
+++ b/vcl/Package_tipoftheday.mk
@@ -0,0 +1,18 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Package_Package,tipoftheday_images,extras/source/tipoftheday))
+
+$(eval $(call 
gb_Package_add_files_with_dir,tipoftheday_images,$(LIBO_SHARE_FOLDER)/tipoftheday,\
+       tipoftheday.png \
+       tipoftheday_1.png \
+       tipoftheday_2.png \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 47ab9beab90a..0926dac611fb 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -2023,6 +2023,11 @@ public:
     {
         m_xImage->SetImage(::Image(StockImage::Yes, rIconName));
     }
+
+    virtual void set_image(VirtualDevice* pDevice) override
+    {
+        m_xImage->SetImage(createImage(*pDevice));
+    }
 };
 
 class SalInstanceCalendar : public SalInstanceWidget, public virtual 
weld::Calendar
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index d5bf067032d3..7f294bae8c21 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -5109,6 +5109,18 @@ public:
         gtk_image_set_from_pixbuf(m_pImage, pixbuf);
         g_object_unref(pixbuf);
     }
+
+    virtual void set_image(VirtualDevice* pDevice) override
+    {
+        if (gtk_check_version(3, 20, 0) == nullptr)
+            gtk_image_set_from_surface(m_pImage, 
get_underlying_cairo_surface(*pDevice));
+        else
+        {
+            GdkPixbuf* pixbuf = getPixbuf(*pDevice);
+            gtk_image_set_from_pixbuf(m_pImage, pixbuf);
+            g_object_unref(pixbuf);
+        }
+    }
 };
 
 class GtkInstanceCalendar : public GtkInstanceWidget, public virtual 
weld::Calendar
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to