22 |
|
|
23 |
set_default_size(800, 600); |
set_default_size(800, 600); |
24 |
|
|
25 |
|
//FIXME: Commented out since Gtk::Label is a disaster when it comes to multi line content. |
26 |
|
/*m_labelIntro.set_text( |
27 |
|
_("A macro is a list of parameters and corresponding values which " |
28 |
|
"should be applied to the instrument editor when the macro is " |
29 |
|
"triggered by the user. A macro is triggered either by selecting " |
30 |
|
"the macro from the \"Macro\" menu, or by hitting the macro's " |
31 |
|
"respective keyboard accelerator (F1 to F12).") |
32 |
|
); |
33 |
|
m_labelIntro.set_line_wrap(); |
34 |
|
m_vbox.pack_start(m_labelIntro, Gtk::PACK_SHRINK);*/ |
35 |
|
|
36 |
// create Macro treeview (including its data model) |
// create Macro treeview (including its data model) |
37 |
m_treeStoreMacro = MacroTreeStore::create(m_treeModelMacro); |
m_treeStoreMacro = MacroTreeStore::create(m_treeModelMacro); |
38 |
m_treeViewMacro.set_model(m_treeStoreMacro); |
m_treeViewMacro.set_model(m_treeStoreMacro); |
147 |
printf("MacroEditor destruct\n"); |
printf("MacroEditor destruct\n"); |
148 |
} |
} |
149 |
|
|
150 |
void MacroEditor::setMacro(Serialization::Archive* macro) { |
void MacroEditor::setMacro(Serialization::Archive* macro, bool isClipboard) { |
151 |
m_macroOriginal = macro; |
m_macroOriginal = macro; |
152 |
if (!macro) { |
if (!macro) { |
153 |
set_title(_("No Macro")); |
set_title(_("No Macro")); |
154 |
return; |
return; |
155 |
} |
} |
156 |
|
|
157 |
//set_title(std::string(_("Macro Editor:")) + " \"" + macro->name() + "\""); |
if (isClipboard) |
158 |
set_title(std::string(_("Macro Editor:"))); |
set_title(std::string(_("Macro Editor:")) + " " + _("Clipboard Content")); |
159 |
|
else { |
160 |
|
if (macro->name().empty()) |
161 |
|
set_title(std::string(_("Macro Editor:")) + " " + _("Unnamed Macro")); |
162 |
|
else |
163 |
|
set_title(std::string(_("Macro Editor:")) + " \"" + macro->name() + "\""); |
164 |
|
} |
165 |
|
|
166 |
// copy for non-destructive editing |
// copy for non-destructive editing |
167 |
m_macro = *macro; |
m_macro = *macro; |
169 |
reloadTreeView(); |
reloadTreeView(); |
170 |
} |
} |
171 |
|
|
172 |
|
sigc::signal<void>& MacroEditor::signal_changes_applied() { |
173 |
|
return m_changes_applied; |
174 |
|
} |
175 |
|
|
176 |
void MacroEditor::buildTreeView(const Gtk::TreeModel::Row& parentRow, const Serialization::Object& parentObject) { |
void MacroEditor::buildTreeView(const Gtk::TreeModel::Row& parentRow, const Serialization::Object& parentObject) { |
177 |
for (int iMember = 0; iMember < parentObject.members().size(); ++iMember) { |
for (int iMember = 0; iMember < parentObject.members().size(); ++iMember) { |
178 |
const Serialization::Member& member = parentObject.members()[iMember]; |
const Serialization::Member& member = parentObject.members()[iMember]; |
402 |
msg.run(); |
msg.run(); |
403 |
} |
} |
404 |
updateStatus(); |
updateStatus(); |
405 |
|
m_changes_applied.emit(); |
406 |
} |
} |
407 |
|
|
408 |
void MacroEditor::onWindowHide() { |
void MacroEditor::onWindowHide() { |