3 * \file GuiEmbeddedFiles.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
12 #ifndef GUIEMBEDDEDFILES_H
13 #define GUIEMBEDDEDFILES_H
15 #include "GuiDialog.h"
17 #include "EmbeddedFiles.h"
18 #include "ui_EmbeddedFilesUi.h"
23 class ControlEmbeddedFiles : public Controller {
26 ControlEmbeddedFiles(Dialog &);
28 ~ControlEmbeddedFiles() {}
30 EmbeddedFiles & embeddedFiles();
32 bool initialiseParams(std::string const &);
33 /// obtain embedded files from buffer
34 void updateEmbeddedFiles();
38 bool isBufferDependent() const { return true; }
40 bool canApply() const { return true; }
42 bool canApplyToReadOnly() const { return false; }
44 void dispatchMessage(std::string const & msg);
46 void dispatchParams() {}
50 void setEmbedding(bool enable);
52 void goTo(EmbeddedFile const & item, int idx);
54 void view(EmbeddedFile const & item);
56 void setEmbed(EmbeddedFile & item, bool embed, bool update);
58 bool browseAndAddFile();
60 bool extract(EmbeddedFile const & item);
62 bool update(EmbeddedFile const & item);
69 class GuiEmbeddedFilesDialog : public QWidget, public Ui::GuiEmbeddedFilesUi
74 GuiEmbeddedFilesDialog(ControlEmbeddedFiles &);
75 std::string name() const { return "embedding"; }
79 void on_filesLW_itemChanged(QListWidgetItem* item);
80 void on_filesLW_itemSelectionChanged();
81 void on_filesLW_itemClicked(QListWidgetItem* item);
82 void on_filesLW_itemDoubleClicked(QListWidgetItem* item);
86 void on_enableCB_toggled(bool enable);
88 void on_selectPB_clicked();
89 void on_unselectPB_clicked();
90 void on_addPB_clicked();
91 void on_extractPB_clicked();
92 void on_updatePB_clicked();
95 ControlEmbeddedFiles & controller_;
96 void set_embedding_status(bool embed);
100 class GuiEmbeddedFiles
101 : public DockView<ControlEmbeddedFiles, GuiEmbeddedFilesDialog>
104 GuiEmbeddedFiles(LyXView & lv);
108 } // namespace frontend
111 #endif // QEMBEDDEDFILES_H