remember plugin-UI type (custom/basic) with session.

amend to 3.1-81-g1acf8bd
This commit is contained in:
Robin Gareus 2013-05-21 21:23:10 +02:00
parent 04967de3af
commit 4341d675dc
3 changed files with 42 additions and 1 deletions

View File

@ -2642,6 +2642,38 @@ ProcessorWindowProxy::session_handle()
return 0;
}
XMLNode&
ProcessorWindowProxy::get_state () const
{
XMLNode *node;
node = &ProxyBase::get_state();
node->add_property (X_("custom-ui"), is_custom? X_("yes") : X_("no"));
return *node;
}
void
ProcessorWindowProxy::set_state (const XMLNode& node)
{
XMLNodeList children = node.children ();
XMLNodeList::const_iterator i = children.begin ();
while (i != children.end()) {
XMLProperty* prop = (*i)->property (X_("name"));
if ((*i)->name() == X_("Window") && prop && prop->value() == _name) {
break;
}
++i;
}
if (i != children.end()) {
XMLProperty* prop;
if ((prop = (*i)->property (X_("custom-ui"))) != 0) {
want_custom = PBD::string_is_affirmative (prop->value ());
}
}
ProxyBase::set_state(node);
}
Gtk::Window*
ProcessorWindowProxy::get (bool create)
{

View File

@ -92,6 +92,9 @@ class ProcessorWindowProxy : public WM::ProxyBase
bool marked;
void set_state (const XMLNode&);
XMLNode& get_state () const;
private:
ProcessorBox* _processor_box;
boost::weak_ptr<ARDOUR::Processor> _processor;

View File

@ -28,6 +28,7 @@
#include "ardour_dialog.h"
#include "ardour_window.h"
#include "window_manager.h"
#include "processor_box.h"
#include "i18n.h"
@ -106,7 +107,12 @@ Manager::add_state (XMLNode& root) const
if (dynamic_cast<ProxyTemporary*> (*i)) {
continue;
}
root.add_child_nocopy ((*i)->get_state());
if (dynamic_cast<ProcessorWindowProxy*> (*i)) {
ProcessorWindowProxy *pi = dynamic_cast<ProcessorWindowProxy*> (*i);
root.add_child_nocopy (pi->get_state());
} else {
root.add_child_nocopy ((*i)->get_state());
}
}
}