]> git.lyx.org Git - features.git/commitdiff
Properly mark a buffer as internal
authorVincent van Ravesteijn <vfr@lyx.org>
Sun, 6 May 2012 18:06:28 +0000 (20:06 +0200)
committerVincent van Ravesteijn <vfr@lyx.org>
Sun, 6 May 2012 21:12:49 +0000 (23:12 +0200)
Checking the extension of the temporary filename doesn't work anymore
since the naming of temporary files was corrected.

(cherry picked from commit 5279d5a8a58b9e59442b9f3f504ea397274e2b19)

src/Buffer.cpp
src/Buffer.h
src/CutAndPaste.cpp
src/frontends/qt4/GuiWorkArea.cpp

index e863ce3bcf679a86a638bf555eb27fcd9ad29e63..8dbf9b1bfc9a19d21ddbc89cf8a7739ba822b593 100644 (file)
@@ -195,6 +195,9 @@ public:
        /// is this an unnamed file (New...)?
        bool unnamed;
 
+       /// is this an internal bufffer?
+       bool internal_buffer;
+
        /// buffer is r/o
        bool read_only;
 
@@ -352,12 +355,12 @@ static FileName createBufferTmpDir()
 Buffer::Impl::Impl(Buffer * owner, FileName const & file, bool readonly_,
        Buffer const * cloned_buffer)
        : owner_(owner), lyx_clean(true), bak_clean(true), unnamed(false),
-         read_only(readonly_), filename(file), file_fully_loaded(false),
-         toc_backend(owner), macro_lock(false), timestamp_(0),
-         checksum_(0), wa_(0), gui_(0), undo_(*owner), bibinfo_cache_valid_(false),
-         bibfile_cache_valid_(false), cite_labels_valid_(false),
-         cloned_buffer_(cloned_buffer), clone_list_(0), doing_export(false),
-         parent_buffer(0)
+         internal_buffer(false), read_only(readonly_), filename(file),
+         file_fully_loaded(false), toc_backend(owner), macro_lock(false),
+         timestamp_(0), checksum_(0), wa_(0), gui_(0), undo_(*owner),
+         bibinfo_cache_valid_(false), bibfile_cache_valid_(false), 
+         cite_labels_valid_(false), cloned_buffer_(cloned_buffer),
+         clone_list_(0), doing_export(false), parent_buffer(0)
 {
        if (!cloned_buffer_) {
                temppath = createBufferTmpDir();
@@ -376,6 +379,7 @@ Buffer::Impl::Impl(Buffer * owner, FileName const & file, bool readonly_,
        bibfile_status_ = cloned_buffer_->d->bibfile_status_;
        unnamed = cloned_buffer_->d->unnamed;
        cite_labels_valid_ = cloned_buffer_->d->cite_labels_valid_;
+       internal_buffer = cloned_buffer_->d->internal_buffer;
 }
 
 
@@ -2580,7 +2584,13 @@ bool Buffer::isUnnamed() const
 /// retrieving fileName() nor for checking if it is unnamed or not.
 bool Buffer::isInternal() const
 {
-       return fileName().extension() == "internal";
+       return d->internal_buffer;
+}
+
+
+void Buffer::setInternal(bool flag)
+{
+       d->internal_buffer = flag;
 }
 
 
index 66b9b284869e2e5d51d91d6010675fca92e7d4ae..9cba73c3f5f49c4e4eb427eeec0a0ed35872c557 100644 (file)
@@ -364,6 +364,8 @@ public:
        /// automatically saved, nor it needs to trigger any "do you want to save ?" question.
        bool isInternal() const;
 
+       void setInternal(bool flag);
+
        /// Mark this buffer as dirty.
        void markDirty();
 
index d31af1b8d9f77b1b9c019c1b51f2e791b4aa11f4..6ded8944c01867a3a4b7156cee6017b393e307d6 100644 (file)
@@ -471,6 +471,7 @@ void putClipboard(ParagraphList const & paragraphs,
        // would not be needed.
        static Buffer * buffer = theBufferList().newBuffer(
                FileName::tempName("clipboard.internal").absFileName());
+       buffer->setInternal(true);
        buffer->setUnnamed(true);
        buffer->paragraphs() = paragraphs;
        buffer->inset().setBuffer(*buffer);
index ac454947331b3539d647ef90d1bed70bc4879fe2..0b6b5a70e0bb52fc14bb32a78e9f9dfbd0d6eae3 100644 (file)
@@ -1371,6 +1371,7 @@ EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
 {
        buffer_ = theBufferList().newBuffer(
                support::FileName::tempName("embedded.internal").absFileName());
+       buffer_->setInternal(true);
        buffer_->setUnnamed(true);
        buffer_->setFullyLoaded(true);
        setBuffer(*buffer_);