Note that Andre just moved all the Q* stuff to Gui* stuff. I'll be adjusting patches, too....

rh

Bo Peng wrote:
Attached please find the embedding feature patch 3 that adds the
embedding dialog. Some basic actions such as enable/disable embedding
and display/change embed status is implemented, but most of the needed
actions are missing. This dialog interacts badly with the main window
which will be addressed later.

Because it is inconvenient to have embedding enabled by default, I
plan to commit this patch tomorrow morning. With all the files in
place, following patches will be small patches that address one
problem at a time.

Cheers,
Bo
------------------------------------------------------------------------

Index: src/EmbeddedFiles.cpp
===================================================================
--- src/EmbeddedFiles.cpp       (revision 19934)
+++ src/EmbeddedFiles.cpp       (working copy)
@@ -89,6 +89,11 @@
void EmbeddedFiles::enable(bool flag)
 {
+ // FIXME: there are much more to do here. + // If we enable embedding, it is maybe a good idea to copy embedded files
+       // to temppath()
+       // if we disable embedding, embedded files need to be copied to their
+       // original positions.
        if (enabled() != flag) {
                // file will be changed
                buffer_->markDirty();
@@ -216,6 +221,28 @@
 }
+string EmbeddedFiles::filename(size_t idx) const
+{
+       return (file_list_.begin() + idx)->absFilename();
+}
+
+
+EmbeddedFile::STATUS EmbeddedFiles::status(size_t idx) const
+{
+       return (file_list_.begin() + idx)->status();
+}
+
+
+void EmbeddedFiles::setStatus(size_t idx, EmbeddedFile::STATUS status)
+{
+       if ((file_list_.begin() + idx)->status() != status) {
+               // file will be changed
+               buffer_->markDirty();
+               (file_list_.begin() + idx)->setStatus(status);
+       }
+}
+
+
 bool EmbeddedFiles::validInzipName(string const & name)
 {
        EmbeddedFileList::iterator it = file_list_.begin();
Index: src/frontends/qt4/QEmbeddedFiles.h
===================================================================
--- src/frontends/qt4/QEmbeddedFiles.h  (revision 0)
+++ src/frontends/qt4/QEmbeddedFiles.h  (revision 0)
@@ -0,0 +1,67 @@
+// -*- C++ -*-
+/**
+ * \file QEmbeddedFiles.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Bo Peng
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#ifndef QEMBEDDEDFILES_H
+#define QEMBEDDEDFILES_H
+
+#include "EmbeddedFiles.h"
+#include "ControlEmbeddedFiles.h"
+#include "ui_EmbeddedFilesUi.h"
+
+namespace lyx {
+namespace frontend {
+
+class QEmbeddedFiles;
+
+class QEmbeddedFilesDialog : public QWidget, public Ui::QEmbeddedFilesUi {
+       Q_OBJECT
+public:
+       QEmbeddedFilesDialog(QEmbeddedFiles * form);
+
+public Q_SLOTS:
+       ///
+       void on_filesLW_itemSelectionChanged();
+       ///
+       void on_filesLW_itemDoubleClicked();
+       ///
+       void update();
+       ///
+       void on_actionPB_clicked();
+       ///
+       void on_actionCB_stateChanged(int);
+       ///
+       void on_enableCB_toggled(bool enable);
+       ///
+       void on_autoRB_clicked();
+       void on_embeddedRB_clicked();
+       void on_externalRB_clicked();
+private:
+       void set_embedding_status(EmbeddedFile::STATUS);
+       ///
+       QEmbeddedFiles * form_;
+};
+
+
+class QEmbeddedFiles : public QObject, public ControlEmbeddedFiles
+{
+       Q_OBJECT
+public:
+       /// Constructor
+       QEmbeddedFiles(Dialog & dialog)
+               : ControlEmbeddedFiles(dialog) {}
+       ///
+       virtual ~QEmbeddedFiles() {}
+};
+
+} // namespace frontend
+} // namespace lyx
+
+#endif // QEMBEDDEDFILES_H
Index: src/frontends/qt4/Makefile.am
===================================================================
--- src/frontends/qt4/Makefile.am       (revision 19934)
+++ src/frontends/qt4/Makefile.am       (working copy)
@@ -45,6 +45,7 @@
        GuiSelection.cpp \
        KeySymbol.cpp \
        QCitation.cpp \
+       QEmbeddedFiles.cpp \
        QFloat.cpp \
        QFontExample.cpp \
        QLImage.cpp \
@@ -166,6 +167,7 @@
        QDelimiterDialog.h \
        QDialogView.h \
        QDocument.h \
+       QEmbeddedFiles.h \
        QErrorList.h \
        QERT.h \
        QExternal.h \
@@ -225,6 +227,7 @@
        CitationUi.ui \
        DelimiterUi.ui \
        DocumentUi.ui \
+       EmbeddedFilesUi.ui \
        ErrorListUi.ui \
        ERTUi.ui \
        ExternalUi.ui \
Index: src/frontends/qt4/ui/EmbeddedFilesUi.ui
===================================================================
--- src/frontends/qt4/ui/EmbeddedFilesUi.ui     (revision 0)
+++ src/frontends/qt4/ui/EmbeddedFilesUi.ui     (revision 0)
@@ -0,0 +1,140 @@
+<ui version="4.0" >
+ <class>QEmbeddedFilesUi</class>
+ <widget class="QWidget" name="QEmbeddedFilesUi" >
+  <property name="windowModality" >
+   <enum>Qt::NonModal</enum>
+  </property>
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>100</width>
+    <height>390</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string/>
+  </property>
+  <layout class="QVBoxLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item>
+    <widget class="QCheckBox" name="enableCB" >
+     <property name="text" >
+      <string>Enable embedding</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QListWidget" name="filesLW" >
+     <property name="toolTip" >
+      <string>List of embedded files</string>
+     </property>
+     <property name="selectionMode" >
+      <enum>QAbstractItemView::ExtendedSelection</enum>
+     </property>
+     <property name="currentRow" >
+      <number>-1</number>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="pathLBL" >
+     <property name="text" >
+      <string>External FIle Name:</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLineEdit" name="fullpathLE" />
+   </item>
+   <item>
+    <widget class="QGroupBox" name="statusGB" >
+     <property name="title" >
+      <string>Status</string>
+     </property>
+     <layout class="QVBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item>
+       <widget class="QRadioButton" name="autoRB" >
+        <property name="toolTip" >
+         <string>Automatic inclusion</string>
+        </property>
+        <property name="text" >
+         <string>Automatic</string>
+        </property>
+        <property name="autoExclusive" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="embeddedRB" >
+        <property name="text" >
+         <string>Embedded</string>
+        </property>
+        <property name="autoExclusive" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="externalRB" >
+        <property name="text" >
+         <string>External</string>
+        </property>
+        <property name="autoExclusive" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
+     </property>
+     <property name="spacing" >
+      <number>6</number>
+     </property>
+     <item>
+      <widget class="QComboBox" name="actionCB" >
+       <property name="toolTip" >
+        <string>Actions to perform</string>
+       </property>
+       <property name="currentIndex" >
+        <number>-1</number>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="actionPB" >
+       <property name="toolTip" >
+        <string>Extract this file to disk</string>
+       </property>
+       <property name="text" >
+        <string>Action!</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <includes>
+  <include location="local" >qt_helpers.h</include>
+ </includes>
+ <resources/>
+ <connections/>
+</ui>
Index: src/frontends/qt4/QEmbeddedFiles.cpp
===================================================================
--- src/frontends/qt4/QEmbeddedFiles.cpp        (revision 0)
+++ src/frontends/qt4/QEmbeddedFiles.cpp        (revision 0)
@@ -0,0 +1,214 @@
+/**
+ * \file QEmbeddedFiles.cpp
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Bo Peng
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#include <config.h>
+
+
+#include "QEmbeddedFiles.h"
+#include "Qt2BC.h"
+
+#include "debug.h"
+
+using std::string;
+
+namespace lyx {
+namespace frontend {
+
+
+/////////////////////////////////////////////////////////////////////
+//
+// QEmbeddedFilesDialog
+//
+/////////////////////////////////////////////////////////////////////
+#define INVALID_COLOR "gray"
+#define AUTO_COLOR "green"
+#define EMBEDDED_COLOR "black"
+#define EXTERNAL_COLOR "blue"
+
+QEmbeddedFilesDialog::QEmbeddedFilesDialog(QEmbeddedFiles * form)
+       : form_(form)
+{
+       setupUi(this);
+       
+       form_->updateEmbeddedFiles();
+       
+       EmbeddedFiles const * files = form_->embeddedFiles();
+       enableCB->setChecked(files->enabled());
+       EmbeddedFiles::EmbeddedFileList::const_iterator it = files->begin();
+       EmbeddedFiles::EmbeddedFileList::const_iterator it_end = files->end();
+       for (; it != it_end; ++it) {
+               QListWidgetItem * item = new 
QListWidgetItem(toqstr(it->inzipName()));
+               if (!it->valid())
+                       item->setTextColor(INVALID_COLOR);
+               else if(it->status() == EmbeddedFile::AUTO)
+                       item->setTextColor(AUTO_COLOR);
+               else if(it->status() == EmbeddedFile::EMBEDDED)
+                       item->setTextColor(EMBEDDED_COLOR);
+               else
+                       item->setTextColor(EXTERNAL_COLOR);
+               filesLW->addItem(item);
+       }
+       filesLW->setCurrentRow(0);
+       //
+       actionCB->addItem("No action");
+       actionCB->addItem("Add file");
+       actionCB->addItem("Extract file");
+       actionCB->addItem("Extract all");
+       actionCB->addItem("Embed all");
+       actionCB->addItem("Embed layout file");
+       actionCB->addItem("View file");
+       actionCB->addItem("Edit file");
+       update();
+}
+
+
+void QEmbeddedFilesDialog::on_filesLW_itemSelectionChanged()
+{
+       EmbeddedFiles * files = form_->embeddedFiles();
+
+       QList<QListWidgetItem *> selection = filesLW->selectedItems();
+       fullpathLE->setEnabled(selection.size() == 1);
+               
+       EmbeddedFile::STATUS mode = EmbeddedFile::NONE;
+       // try to find a common mode, otherwise return NONE.
+ for (QList<QListWidgetItem*>::iterator it = selection.begin(); + it != selection.end(); ++it) {
+               if (selection.size() == 1)
+                       
fullpathLE->setText(toqstr(files->filename(filesLW->row(*it))));
+               if (mode == EmbeddedFile::NONE) {
+                       mode = files->status(filesLW->row(*it));
+                       continue;
+               }
+               if (mode != files->status(filesLW->row(*it))) {
+                       mode = EmbeddedFile::NONE;
+                       break;
+               }
+       }
+                       
+       autoRB->setChecked(mode == EmbeddedFile::AUTO);
+       embeddedRB->setChecked(mode == EmbeddedFile::EMBEDDED);
+       externalRB->setChecked(mode == EmbeddedFile::EXTERNAL);
+}
+
+
+void QEmbeddedFilesDialog::on_filesLW_itemDoubleClicked()
+{
+       // FIXME: view or edit file
+}
+
+
+void QEmbeddedFilesDialog::update()
+{
+       EmbeddedFiles const * files = form_->embeddedFiles();
+
+       bool enabled = files->enabled();
+       enableCB->setChecked(enabled);
+       statusGB->setEnabled(enabled);
+       filesLW->setEnabled(enabled);
+       fullpathLE->setEnabled(enabled);
+       actionCB->setEnabled(enabled);
+       actionPB->setEnabled(enabled);
+}
+
+
+void QEmbeddedFilesDialog::on_actionPB_clicked()
+{
+       // FIXME.
+       
+       // ACTION
+       string action = fromqstr(actionCB->currentText());
+       if (action == "Add file") {
+       } else if (action == "Extract file") {
+       } else if (action == "Extract all") {
+       } else if (action == "Embed all") {
+       } else if (action == "Embed layout file") {
+       } else if (action == "View file") {
+       } else if (action == "Edit file") {
+       } else {
+       }       
+}
+
+
+void QEmbeddedFilesDialog::on_actionCB_stateChanged(int idx)
+{
+       // valid action, enable action button
+       actionPB->setEnabled(idx != 0);
+}
+
+
+void QEmbeddedFilesDialog::on_enableCB_toggled(bool enable)
+{
+       // FIXME:
+       //
+       // When a embedded file is turned to disabled, it should save its
+       // embedded files. Otherwise, embedded files will be lost!!!
+       //
+       form_->embeddedFiles()->enable(enable);
+       update();
+       // immediately post the change to buffer (and bufferView)
+       if (enable)
+               form_->setMessage("Enable file embedding");
+       else
+               form_->setMessage("Disable file embedding");
+       // update bufferView
+       form_->dispatchParams();
+}
+
+
+void QEmbeddedFilesDialog::set_embedding_status(EmbeddedFile::STATUS status)
+{
+       EmbeddedFiles * files = form_->embeddedFiles();
+       QList<QListWidgetItem *> selection = filesLW->selectedItems();
+ for (QList<QListWidgetItem*>::iterator it = selection.begin(); + it != selection.end(); ++it) {
+               files->setStatus(filesLW->row(*it), status);      
+               if(status == EmbeddedFile::AUTO)
+                       (*it)->setTextColor(AUTO_COLOR);
+               else if(status == EmbeddedFile::EMBEDDED)
+                       (*it)->setTextColor(EMBEDDED_COLOR);
+               else
+                       (*it)->setTextColor(EXTERNAL_COLOR);
+       }
+       if (status == EmbeddedFile::AUTO)
+               form_->setMessage("Switch to auto embedding");
+       else if (status == EmbeddedFile::EMBEDDED)
+               form_->setMessage("Switch to always embedding");
+       else
+               form_->setMessage("Switch to never embedding");
+       autoRB->setChecked(status == EmbeddedFile::AUTO);
+       embeddedRB->setChecked(status == EmbeddedFile::EMBEDDED);
+       externalRB->setChecked(status == EmbeddedFile::EXTERNAL);
+       // update bufferView
+       form_->dispatchParams();
+}
+
+
+void QEmbeddedFilesDialog::on_autoRB_clicked()
+{
+       set_embedding_status(EmbeddedFile::AUTO);
+}
+
+
+void QEmbeddedFilesDialog::on_embeddedRB_clicked()
+{
+       set_embedding_status(EmbeddedFile::EMBEDDED);
+}
+
+
+void QEmbeddedFilesDialog::on_externalRB_clicked()
+{
+       set_embedding_status(EmbeddedFile::EXTERNAL);
+}
+
+
+} // namespace frontend
+} // namespace lyx
+
+#include "QEmbeddedFiles_moc.cpp"
Index: src/frontends/qt4/Dialogs.cpp
===================================================================
--- src/frontends/qt4/Dialogs.cpp       (revision 19934)
+++ src/frontends/qt4/Dialogs.cpp       (working copy)
@@ -19,6 +19,7 @@
 #include "ControlChanges.h"
 #include "ControlCharacter.h"
 #include "ControlDocument.h"
+#include "ControlEmbeddedFiles.h"
 #include "ControlErrorList.h"
 #include "ControlERT.h"
 #include "ControlExternal.h"
@@ -58,6 +59,7 @@
 #include "QCitationDialog.h"
 #include "QDelimiterDialog.h"
 #include "QDocument.h"
+#include "QEmbeddedFiles.h"
 #include "QErrorList.h"
 #include "QERT.h"
 #include "QExternal.h"
@@ -106,7 +108,7 @@
char const * const dialognames[] = {
 "aboutlyx", "bibitem", "bibtex", "box", "branch", "changes", "character",
-"citation", "document", "errorlist", "ert", "external", "file",
+"citation", "document", "embedding", "errorlist", "ert", "external", "file",
 "findreplace", "float", "graphics", "include", "index", "nomenclature", "label", 
"log",
 "mathdelimiter", "mathmatrix", "note", "paragraph",
 "prefs", "print", "ref", "sendto", "spellchecker","tabular", "tabularcreate",
@@ -185,6 +187,13 @@
                dialog->setController(new ControlDocument(*dialog));
                dialog->setView(new QDocument(*dialog));
                dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy);
+       } else if (name == "embedding") {
+               QEmbeddedFiles * qef = new QEmbeddedFiles(*dialog);
+               dialog->setController(qef);
+               GuiView & gui_view = static_cast<GuiView &>(lyxview_);
+               dialog->setView(new DockView<QEmbeddedFiles, 
QEmbeddedFilesDialog>(
+                       *dialog, qef, &gui_view, _("Embedded Files"), 
Qt::RightDockWidgetArea));
+               dialog->bc().bp(new OkCancelPolicy);
        } else if (name == "errorlist") {
                dialog->setController(new ControlErrorList(*dialog));
                dialog->setView(new QErrorList(*dialog));
Index: src/frontends/controllers/ControlEmbeddedFiles.h
===================================================================
--- src/frontends/controllers/ControlEmbeddedFiles.h    (revision 0)
+++ src/frontends/controllers/ControlEmbeddedFiles.h    (revision 0)
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+/**
+ * \file ControlEmbeddedFiles.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Bo Peng
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#ifndef CONTROLEMBEDDEDFILES_H
+#define CONTROLEMBEDDEDFILES_H
+
+#include "Dialog.h"
+#include "EmbeddedFiles.h"
+
+namespace lyx {
+
+namespace frontend {
+
+class ControlEmbeddedFiles : public Dialog::Controller {
+public:
+       ///
+       ControlEmbeddedFiles(Dialog &);
+       ///
+       virtual ~ControlEmbeddedFiles() {}
+       ///
+       EmbeddedFiles const * embeddedFiles() const { return embedded_files; }
+       EmbeddedFiles * embeddedFiles() { return embedded_files; }
+       ///
+       virtual bool initialiseParams(std::string const &);
+       /// obtain embedded files from buffer
+       void updateEmbeddedFiles();
+       ///
+       virtual void clearParams() {};
+       ///
+       virtual bool isBufferDependent() const { return true; }
+       ///
+       bool canApply() const { return true; }
+       ///
+       virtual bool canApplyToReadOnly() const { return true; }
+       ///
+       void setMessage(std::string const & msg) { message_ = msg; }
+       ///
+       void dispatchParams();
+       
+protected:
+       // directly handle buffer embedded files
+       EmbeddedFiles * embedded_files;
+       //
+       std::string message_;
+};
+
+} // namespace frontend
+} // namespace lyx
+
+#endif // CONTROLEMBEDDEDFILES_H
Index: src/frontends/controllers/ControlEmbeddedFiles.cpp
===================================================================
--- src/frontends/controllers/ControlEmbeddedFiles.cpp  (revision 0)
+++ src/frontends/controllers/ControlEmbeddedFiles.cpp  (revision 0)
@@ -0,0 +1,54 @@
+/**
+ * \file ControlEmbeddedFiles.cpp
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Bo Peng
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#include <config.h>
+
+#include "ControlEmbeddedFiles.h"
+
+#include "Buffer.h"
+
+#include "FuncRequest.h"
+#include "gettext.h"
+#include "debug.h"
+
+
+using std::string;
+
+namespace lyx {
+namespace frontend {
+
+ControlEmbeddedFiles::ControlEmbeddedFiles(Dialog & parent)
+       : Dialog::Controller(parent), embedded_files(NULL)
+{}
+
+
+bool ControlEmbeddedFiles::initialiseParams(string const &)
+{
+       return true;
+}
+
+
+void ControlEmbeddedFiles::updateEmbeddedFiles()
+{
+       // copy buffer embeddedFiles to a local copy
+       kernel().buffer().embeddedFiles().update();
+       embedded_files = &kernel().buffer().embeddedFiles();
+}
+
+
+void ControlEmbeddedFiles::dispatchParams()
+{
+       // lyx view will only be updated if we do something to the main window. 
:-)
+       kernel().dispatch(FuncRequest(LFUN_MESSAGE, message_));
+}
+
+
+} // namespace frontend
+} // namespace lyx
Index: src/frontends/controllers/Makefile.am
===================================================================
--- src/frontends/controllers/Makefile.am       (revision 19934)
+++ src/frontends/controllers/Makefile.am       (working copy)
@@ -22,6 +22,7 @@
        ControlCommand.cpp \
        ControlCommandBuffer.cpp \
        ControlDocument.cpp \
+       ControlEmbeddedFiles.cpp \
        ControlErrorList.cpp \
        ControlERT.cpp \
        ControlExternal.cpp \
@@ -66,6 +67,7 @@
        ControlDocument.h \
        ControlErrorList.h \
        ControlERT.h \
+       ControlEmbedded.h \
        ControlExternal.h \
        ControlFloat.h \
        ControlGraphics.h \
Index: src/EmbeddedFiles.h
===================================================================
--- src/EmbeddedFiles.h (revision 19934)
+++ src/EmbeddedFiles.h (working copy)
@@ -211,6 +211,10 @@
void clear() { file_list_.clear(); } + /// FIXME: I am wondering if we should use index or filename (a std::map)
+       std::string filename(size_t idx) const;
+       EmbeddedFile::STATUS status(size_t idx) const;
+       void setStatus(size_t idx, EmbeddedFile::STATUS status);
        ///
        EmbeddedFileList::iterator begin() { return file_list_.begin(); }
        EmbeddedFileList::iterator end() { return file_list_.end(); }
Index: src/BufferParams.cpp
===================================================================
--- src/BufferParams.cpp        (revision 19934)
+++ src/BufferParams.cpp        (working copy)
@@ -353,9 +353,7 @@
        listings_params = string();
        pagestyle = "default";
        compressed = false;
-       // temporarily enable embedding for testing. Will set to false
-       // when embedding GUI is added
-       embedded = true;
+       embedded = false;
        for (int iter = 0; iter < 4; ++iter) {
                user_defined_bullet(iter) = ITEMIZE_DEFAULTS[iter];
                temp_bullet(iter) = ITEMIZE_DEFAULTS[iter];
Index: lib/ui/stdmenus.inc
===================================================================
--- lib/ui/stdmenus.inc (revision 19934)
+++ lib/ui/stdmenus.inc (working copy)
@@ -420,6 +420,7 @@
                Item "Outline|O" "dialog-toggle toc"
                Item "Start Appendix Here|A" "appendix"
                Separator
+               Item "Embedded Files|E" "dialog-show embedding"
                Item "Compressed|m" "buffer-toggle-compression"
                Item "Settings...|S" "dialog-show document"
        End
Index: po/POTFILES.in
===================================================================
--- po/POTFILES.in      (revision 19934)
+++ po/POTFILES.in      (working copy)
@@ -33,7 +33,6 @@
 src/client/debug.cpp
 src/debug.cpp
 src/frontends/LyXView.cpp
-src/frontends/WorkArea.cpp
 src/frontends/controllers/ControlAboutlyx.cpp
 src/frontends/controllers/ControlBibtex.cpp
 src/frontends/controllers/ControlBox.cpp
@@ -145,7 +144,6 @@
 src/output_plaintext.cpp
 src/rowpainter.cpp
 src/support/FileFilterList.cpp
-src/support/Package.cpp
 src/support/filetools.cpp
 src/support/os_win32.cpp
 src/support/userinfo.cpp
Index: development/scons/scons_manifest.py
===================================================================
--- development/scons/scons_manifest.py (revision 19934)
+++ development/scons/scons_manifest.py (working copy)
@@ -739,6 +739,7 @@
     ControlCommand.h
     ControlCommandBuffer.h
     ControlDocument.h
+    ControlEmbeddedFiles.h
     ControlERT.h
     ControlErrorList.h
     ControlExternal.h
@@ -785,6 +786,7 @@
     ControlCommand.cpp
     ControlCommandBuffer.cpp
     ControlDocument.cpp
+    ControlEmbeddedFiles.cpp
     ControlERT.cpp
     ControlErrorList.cpp
     ControlExternal.cpp
@@ -875,6 +877,7 @@
     QDelimiterDialog.h
     QDialogView.h
     QDocument.h
+    QEmbeddedFiles.h
     QERT.h
     QErrorList.h
     QExternal.h
@@ -966,6 +969,7 @@
     QDelimiterDialog.cpp
     QDialogView.cpp
     QDocument.cpp
+    QEmbeddedFiles.cpp
     QERT.cpp
     QErrorList.cpp
     QExternal.cpp
@@ -1043,6 +1047,7 @@
     CitationUi.ui
     DelimiterUi.ui
     DocumentUi.ui
+    EmbeddedFilesUi.ui
     ERTUi.ui
     ErrorListUi.ui
     ExternalUi.ui


--
==================================================================
Richard G Heck, Jr
Professor of Philosophy
Brown University
http://frege.brown.edu/heck/
==================================================================
Get my public key from http://sks.keyserver.penguin.de
Hash: 0x1DE91F1E66FFBDEC
Learn how to sign your email using Thunderbird and GnuPG at:
http://dudu.dyn.2-h.org/nist/gpg-enigmail-howto

Reply via email to