Commit Graph

60 Commits

Author SHA1 Message Date
Kornel Benko
ea5e16d075 Replace calls from make_unique to lyx::make_unique
After advice from Yuriy Skalko to satisfy compilation with clang8
2021-01-15 11:36:14 +01:00
Yuriy Skalko
3971b1b35e Fix C++20 warning on implicit capture of this via [=] 2020-12-28 23:26:14 +02:00
Yuriy Skalko
4f0981e7bb Merge namespace signals2 into namespace lyx 2020-12-19 22:52:51 +02:00
Jean-Marc Lasgouttes
110f8f67ac Run codespell on tex2lyx/, client/, convert/ and graphics/
Command was
codespell -w -i 3  -S Makefile.in -L mathed,afe,tthe,ue,fro,uint,larg,alph,te,thes,alle,Claus,pres,pass-thru  src/xxx
2020-06-25 23:50:52 +02:00
Guillaume MM
b30161b591 If the external modification is a deletion, do not ask for reloading.
The behavour when hitting "reload" on a deleted file was also confusing.
2017-06-11 19:51:17 +02:00
Guillaume MM
db58111360 Properly track the lifetime of signals2::slots (#8261)
Starting at 61b2bd5e, boost::bind was progressively replaced with
std::bind. They are not interchangeable though. boost::bind implements
the tracking of boost::signals{,2}::trackable objects. Now that
std::bind has completely replaced boost::bind, tracking never occurred.

This commit replaces boost::signals2::trackable with the new preferred
boost::signals2 methods: scoped_connections or slot::track_foreign. The
support::Trackable class introduced is less safe but easier for transitioning
old code.

Fixes the crash at #8261.
2017-06-11 19:51:17 +02:00
Tommaso Cucinotta
31adae1f23 Fix for crash/segfault introduced with [244de5d2/lyxgit], thanks Guillame. 2017-04-20 23:41:10 +02:00
Guillaume Munch
ad16347b08 Regularly check if graphics is modified when visible on screen (#10596)
In case one cannot rely on QFileSystemWatcher.

see https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg199112.html
2017-03-19 14:41:54 +01:00
Richard Heck
50060053e3 Move the global formats and system_formats variables into the
LyX singleton.

Mostly, this is very boring, but it might be good if someone would
check what I did about the dummy implementation in tex2lyx.
2017-03-13 23:40:29 -04:00
Guillaume Munch
e3a1396813 Replace FileMonitor with FileMonitor2 in GraphicsCacheItem
Remove dead code
2017-03-11 00:50:57 +01:00
Tommaso Cucinotta
244de5d2c1 Add 'needauth' option to converters that need explicit user authorization.
Addressing #10481.

This patch adds the new 'needauth' option for converters launching
external programs that are capable of running arbitrary code on behalf
of the user. These converters won't be run unless the user gives explicit
authorization, which is asked on-demand when the converter is about to
be run (question is not asked if the file is cached and calling the
converter is not needed).

The user prompt has a 3rd button so that he/she's not prompted again
for (any converter over) the same document (identified through
buffer->absFileName()).

Two preference options are added:

lyxrc.use_converter_needauth_forbidden disables any converter with
the 'needauth' option, which is meant to force user to an explicit
action via the preferences pane, before being able to use advanced
converters that can potentially bring security threats;

lyxrc.use_converter_needauth enables prompting the user for 'needauth'
converters, or bypasses the check if not enabled, falling back to the
previous behavior.

So, the first option is for maximum security, the second is for
maximum usability.
2016-11-22 23:54:58 +01:00
Guillaume Munch
489dca71cd Simplifications, mainly removal of boost::function and useless std::bind 2016-07-03 01:39:32 +02:00
Georg Baum
2047ea5eb4 Replace Boost.Signals with Boost.Signals2
Boost.Signals is deprecated. This fixes bug #9943.
The only thing left to do is to rewrite (or get rid of) the boost -mt test
in config/lyxinclude.m4 not to use signals anymore.
2016-06-09 22:25:34 +02:00
Guillaume Munch
b032e2dfaf Replace support/shared_ptr.h and boost::shared_ptr with std::shared_ptr
shared_ptrs now only require the <memory> header.
2016-06-09 15:21:39 +01:00
Guillaume Munch
ca8709aaf5 Replace boost::scoped_ptr with unique_ptr 2016-06-09 15:21:39 +01:00
Enrico Forestieri
ee6583ff94 Make sure that a generated temporary filename doesn't end with a dot.
This may happen if the extension is empty, and a filename ending with
a dot may give troubles on Windows.
2015-03-13 18:12:08 +01:00
Enrico Forestieri
c057d4e7ee Make sure an unzipped file has correct extension.
If a mask is missing, the TempFile class appends it to the filename.
This may be a problem with applications relying on the extension,
so explicitly add a mask.
2015-03-13 17:28:18 +01:00
Georg Baum
f09a9fe2e6 Remove unsafe method FileName::tempName()
FileName::tempName() created a new temp file name by using qt to create a
temporary file with a unique name, and then deleting that file and returning
the name. This was unsafe, since other processes or even other threads of the
running LyX could create files with the same name between deletion and then
using the temp name.
This is fixed by using the TempFile class instead. As a side effect, a few
cases where the temp files were not deleted after usage were fixed as well.
The only place that is still unsafe is createTmpDir().
2014-06-09 13:05:50 +02:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00
Lars Gullik Bjønnes
dd2189656b More idiomatic way of checking if a shared_ptr has an associated managed object 2012-10-25 12:12:49 +02:00
Tommaso Cucinotta
b095996dda Fix bug introduced in r39705 (was making .eps.gz not work anymore).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39720 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-20 19:45:31 +00:00
Tommaso Cucinotta
b4f97b61cf Added support for natively zipped file formats that do not need decompression for being handled by converters
(e.g., compressed dia, odg, sxd, ...). These need to be marked via the "zipped=native" flag in the RC file.
The old 'dia' configuration is automatically updated (it used to be hardcoded in the code, now it is handled
via the flag).
See also http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg170974.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39705 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-19 00:12:09 +00:00
Abdelrazak Younes
6056db3212 Header cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39300 a592a061-630c-0410-9148-cb99ea01b6c8
2011-07-14 17:00:35 +00:00
Peter Kümmel
c9b9748cee msvcUsing "using namespace std" with msvc10 makes also std::tr1::shared_ptr visible and generates conflicts with boost::shared_ptr.
Solution: don't use boost::shared_ptr for msvc10 (could also be extended  to several GCC versions)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34259 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-22 11:37:32 +00:00
Peter Kümmel
61b2bd5e7f Using "using namespace std" with msvc10 makes also std::tr1::bind visible and generates conflicts with boost::bind.
Solution: don't use boost::bind for msvc10 (could also be extended  to several GCC versions)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34257 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-22 11:16:58 +00:00
Pavel Sanda
62ca7f3ae5 Proper camel case for FileName.absFilename
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34234 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:09 +00:00
Vincent van Ravesteijn
0acff0aa75 Add a FileName::refresh function and replace one call to lastModified which was just meant to refresh the file info.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32354 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-05 02:50:34 +00:00
Vincent van Ravesteijn
770aa71839 Fix bug #6134: Reload context menu for graphics inset.
This shouldn't be necessary, but sometimes it is.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31014 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-13 17:21:59 +00:00
Vincent van Ravesteijn
d757c34e79 gcc compile fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28755 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-12 19:44:40 +00:00
Vincent van Ravesteijn
26529a1732 Fix a few peculiarities wrt graphics. E.g., an InsetGraphic with a non-existing image showed the message that the image was loaded, instead of "No file found!".
* CacheItem::Impl::tryDisplayFormat

- Enhance description of the return value.
- Negate the return values to match the description.

* CacheItem::tryDisplayFormat

- Impl::tryDisplayFormat returns whether a conversion is needed, not whether the try was successful. Therefore, we should check the status as well.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28754 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-12 19:25:07 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
Abdelrazak Younes
d25c74c0eb Simplify image creation with a new factory function: newImage().
GraphicsImage: now a pure virtual interface.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26457 a592a061-630c-0410-9148-cb99ea01b6c8
2008-09-19 12:01:01 +00:00
Abdelrazak Younes
8195925175 Replace home made temp file creation with safer (and cleaner) Qt' solution. Should fix http://bugzilla.lyx.org/show_bug.cgi?id=4693
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25822 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-23 05:17:31 +00:00
Pavel Sanda
c29bd2ef53 Revert http://www.lyx.org/trac/changeset/25471 /2
This commit hasn't announced in http://bugzilla.lyx.org/show_bug.cgi?id=4749
and bring this bug in a different flavour, see comment 28.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25564 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-11 11:40:47 +00:00
Abdelrazak Younes
d6ee64599c adjust comment.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25472 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-07 08:52:21 +00:00
Abdelrazak Younes
2fe39e6a2f Use png as default conversion format.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25471 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-07 08:47:57 +00:00
Abdelrazak Younes
f033198c3f Avoid any signal/slot communication when the graphic is directly showable on screen. This should complete the fix to http://bugzilla.lyx.org/show_bug.cgi?id=4829
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25340 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-20 16:12:48 +00:00
Abdelrazak Younes
435e223f7c Fix http://bugzilla.lyx.org/show_bug.cgi?id=4933
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25182 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-07 09:06:18 +00:00
Abdelrazak Younes
896cb74fe2 Optimize the graphics loader: don't put the image in the queue if it is directly loadable and no conversion is needed. No more temporary preview image, yeah!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25166 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-06 13:30:38 +00:00
Abdelrazak Younes
264f32ec37 Simplify image loading on screen which is not asynchronous, never was...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25162 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-06 11:52:02 +00:00
Abdelrazak Younes
20b45450f6 move GuiImage::loadableFormats() to support/imagetools.{h,cpp} and simplify this whole stuff. What a mess!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25161 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-06 11:34:49 +00:00
André Pönitz
7f461f4392 infrastructure for 'graceful asserts'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24216 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-10 21:49:34 +00:00
Abdelrazak Younes
2bf1c09376 header cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23049 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-18 07:14:42 +00:00
Abdelrazak Younes
9439b6e6e0 * get rid of support::absolutePath()
* remove FileName.h inclusion from filetools.h


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22188 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-17 16:04:46 +00:00
Abdelrazak Younes
e7bb71ff4e header cleanup.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22178 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-16 22:09:28 +00:00
Abdelrazak Younes
86506a80eb Simplify FileName::tempName().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22163 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-16 09:52:36 +00:00
Abdelrazak Younes
4020357dd2 Transfer tempName() implementation to FileName.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22161 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-16 07:52:38 +00:00
Abdelrazak Younes
b89cc942eb 'using namespace lyx::support' instead of 'using support::xxx'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22103 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 18:57:56 +00:00
Abdelrazak Younes
9383f4c3c6 'using namespace std' instead of 'using std::xxx'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22097 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-12 10:16:00 +00:00
André Pönitz
9d0ea8aeff Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/.
Now support/* should have no dependencies on src/* anymore.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21851 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-29 07:04:28 +00:00