1 ////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (C) 2017-2021 The Octave Project Developers
4 //
5 // See the file COPYRIGHT.md in the top-level directory of this
6 // distribution or <https://octave.org/copyright/>.
7 //
8 // This file is part of Octave.
9 //
10 // Octave is free software: you can redistribute it and/or modify it
11 // under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // Octave is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with Octave; see the file COPYING.  If not, see
22 // <https://www.gnu.org/licenses/>.
23 //
24 ////////////////////////////////////////////////////////////////////////
25 
26 #if ! defined (octave_external_editor_interface_h)
27 #define octave_external_editor_interface_h 1
28 
29 #include <QString>
30 #include <QWidget>
31 
32 namespace octave
33 {
34   class base_qobject;
35 
36   class external_editor_interface : public QWidget
37   {
38     Q_OBJECT
39 
40   public:
41 
42     external_editor_interface (QWidget *main_win, base_qobject& oct_qobj);
43 
44     ~external_editor_interface (void) = default;
45 
46   signals:
47 
48     void request_settings_dialog (const QString&);
49 
50   public slots:
51 
52     bool call_custom_editor (const QString& file = QString (), int line = -1);
53 
54     void request_open_file (const QString& fileName,
55                             const QString& encoding = QString (),
56                             int line = -1, bool debug_pointer = false,
57                             bool breakpoint_marker = false, bool insert = true,
58                             const QString& cond = "");
59 
60     void request_new_file (const QString&);
61 
62     void handle_edit_file_request (const QString& file);
63 
64   private:
65 
66     QString external_editor (void);
67 
68     base_qobject& m_octave_qobj;
69   };
70 }
71 
72 #endif
73