ODIN
odinview.h
1 /***************************************************************************
2  odinview.h - description
3  -------------------
4  begin : Sun Sep 28 21:30:11 CEST 2003
5  copyright : (C) 2000-2021 by Thies H. Jochimsen
6  email : thies@jochimsen.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef OdinView_H
19 #define OdinView_H
20 
21 #include <odinqt/ldrwidget.h>
22 #include <odinqt/ldrblockwidget.h>
23 
24 #include <odinpara/ldrarrays.h>
25 
26 
27 #include "odinconf.h"
28 #include "odindebugger.h"
29 #include "odinmethod.h"
30 #include "odinplot.h"
31 
32 
33 #define ODIN_MINWIDTH 600
34 #define MESSAGES_HEIGHT 200
35 
36 #define IMAGEVIEWER "miview"
37 
38 
39 
40 class ProgressDisplayDialog; // forward declaration
41 
42 class NewMethDialog; // forward declaration
43 
44 class IdeaOpts; // forward declaration
45 
46 
47 class OdinView : public QWidget, public OdinMethodCallback {
48 
49  Q_OBJECT
50  public:
51  OdinView(QWidget *parent);
52  ~OdinView();
53 
54  void initOdinView(GuiToolBar* action_toolbar, bool has_debug_cmdline);
55 
56  static void usage();
57 
58 
59  public slots:
60  void new_method();
61  void open_method();
62  void close_method();
63  void exit_odin();
64 
65  void edit();
66  void recompile();
67  bool plot() {return create_seqplot();}
68  void kspace();
69  void sim();
70  void geo();
71 
72  void seqprops();
73  void seqtree();
74  void recoinfo();
75  void pulsars();
76 
77  void pulsprog();
78  void gradprog();
79  void parx();
80  void pv_pilot();
81  void pv_scan();
82  void pv_rgscan();
83  void pv_howto();
84 
85  void ideaevents();
86  void compile_idea();
87  void export_dlls();
88  void ideahowto();
89 
90  void epiccode();
91 
92  void edit_prefs();
93  void edit_system();
94  void load_system();
95  void edit_study();
96  void debug_opts();
97 
98 
99  void show_manual();
100  void show_apidoc();
101  void show_seqdoc();
102 
103  void switch_to_platform_noask(odinPlatform pF);
104 
105  void recalc_method();
106 
107  void new_geo_pars();
108 
109  int load_prefs(bool ignore_debugLevels);
110  int react_on_changed_prefs();
111  int save_prefs();
112 
113  int save_protocol();
114  int load_protocol();
115 
116  void newmeth_rels();
117 
118 // void changeMethod(int index);
119 
120 
121  signals:
122  void newCaption(const char* text);
123  void newStatus(bool, const char* text);
124 
125  private:
126 
127 
128  void bruker_scan(bool autorg);
129 
130  bool chsrcdir();
131 
132  bool prepare_method();
133  bool prepare_acquisition();
134 
135  bool do_odinreco(const STD_string& outprefix);
136 
137  void update_methodsel();
138 
139  bool switch_to_platform(odinPlatform pF, bool ask=true);
140 
141  STD_string get_samplefile();
142 
143  bool create_seqplot(bool for_simulation=false);
144 
145 
146  // implementing virtual functions of OdinMethodCallback
147  void report(bool status, const STD_string& trans_label, const STD_string& message);
148  void create_widgets();
149  void delete_widgets();
150 
151  static void odintracefunction(const LogMessage& msg);
152  static GuiTextView* messages_ptr;
153 
154  OdinConf settings;
155  IdeaOpts* ideaopts;
156 
157  OdinMethod method;
158 
159  SeqPlatformProxy platform;
160 
161  GuiGridLayout *grid;
162 
163  GuiComboBox* methodsel;
164 
165  GuiTextView* messages;
166 
167  LDRwidget* seqpars;
168  LDRwidget* commpars;
169 
170 
171  ProgressDisplayDialog* progress;
172 
173  PlotWindow* seqplot;
174 
175  double* signal_x;
176  double* signal_y;
177 
178 
179  LDRfileName templatemeth;
180  LDRstring newmethlabel;
181  NewMethDialog* mewmethwizzard;
182  bool newmethlabel_modified;
183 
184  STD_list<Process> subprocs;
185 
186  OdinDebugger debugger;
187  void change_debugger();
188 };
189 
190 #endif
odinPlatform
Definition: system.h:39