]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/GuiEmbeddedFiles.h
Transfer some code from GuiView to TabWorkArea.
[lyx.git] / src / frontends / qt4 / GuiEmbeddedFiles.h
1 // -*- C++ -*-
2 /**
3  * \file GuiEmbeddedFiles.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Bo Peng
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef GUIEMBEDDEDFILES_H
13 #define GUIEMBEDDEDFILES_H
14
15 #include "GuiDialog.h"
16 #include "DockView.h"
17 #include "EmbeddedFiles.h"
18 #include "ui_EmbeddedFilesUi.h"
19
20 namespace lyx {
21 namespace frontend {
22
23 class ControlEmbeddedFiles : public Controller {
24 public:
25         ///
26         ControlEmbeddedFiles(Dialog &);
27         ///
28         ~ControlEmbeddedFiles() {}
29         ///
30         EmbeddedFiles & embeddedFiles();
31         ///
32         bool initialiseParams(std::string const &);
33         /// obtain embedded files from buffer
34         void updateEmbeddedFiles();
35         ///
36         void clearParams() {}
37         ///
38         bool isBufferDependent() const { return true; }
39         ///
40         bool canApply() const { return true; }
41         ///
42         bool canApplyToReadOnly() const { return false; }
43         ///
44         void dispatchMessage(std::string const & msg);
45         ///
46         void dispatchParams() {}
47         ///
48         bool isReadonly();
49         ///
50         void setEmbedding(bool enable);
51         ///
52         void goTo(EmbeddedFile const & item, int idx);
53         ///
54         void view(EmbeddedFile const & item);
55         ///
56         void setEmbed(EmbeddedFile & item, bool embed, bool update);
57         ///
58         bool browseAndAddFile();
59         ///
60         bool extract(EmbeddedFile const & item);
61         ///
62         bool update(EmbeddedFile const & item);
63
64 protected:
65         //
66         std::string message_;
67 };
68
69 class GuiEmbeddedFilesDialog : public QWidget, public Ui::GuiEmbeddedFilesUi
70 {
71         Q_OBJECT
72
73 public:
74         GuiEmbeddedFilesDialog(ControlEmbeddedFiles &);
75         std::string name() const { return "embedding"; }
76
77 public Q_SLOTS:
78         ///
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);
83         ///
84         void updateView();
85         ///
86         void on_enableCB_toggled(bool enable);
87         ///
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();
93
94 private:
95         ControlEmbeddedFiles & controller_;
96         void set_embedding_status(bool embed);
97 };
98
99
100 class GuiEmbeddedFiles
101         : public DockView<ControlEmbeddedFiles, GuiEmbeddedFilesDialog>
102 {
103 public:
104         GuiEmbeddedFiles(LyXView & lv);
105 };
106
107
108 } // namespace frontend
109 } // namespace lyx
110
111 #endif // QEMBEDDEDFILES_H