Switched patch "description" window into a properties window (hopefully to extend
in the future) git-svn-id: http://svn.drobilla.net/lad@40 a436a847-0d15-0410-975c-d299462d15a1
This commit is contained in:
parent
4846b3eea8
commit
f0d0c5cc23
|
@ -72,8 +72,8 @@ om_gtk_SOURCES = \
|
|||
NewSubpatchWindow.cpp \
|
||||
ConfigWindow.h \
|
||||
ConfigWindow.cpp \
|
||||
PatchDescriptionWindow.h \
|
||||
PatchDescriptionWindow.cpp \
|
||||
PatchPropertiesWindow.h \
|
||||
PatchPropertiesWindow.cpp \
|
||||
Loader.h \
|
||||
Loader.cpp \
|
||||
RenameWindow.h \
|
||||
|
|
|
@ -77,8 +77,8 @@ public:
|
|||
void control_window(NodeControlWindow* cw) { m_control_window = cw; }
|
||||
|
||||
virtual void show_control_window();
|
||||
virtual void show_properties_window();
|
||||
void show_rename_window();
|
||||
void show_properties_window();
|
||||
|
||||
bool has_control_inputs();
|
||||
|
||||
|
|
|
@ -53,9 +53,11 @@ NodePropertiesWindow::set_node(CountedPtr<NodeModel> node_model)
|
|||
|
||||
CountedPtr<PluginModel> pm = node_model->plugin();
|
||||
|
||||
m_plugin_type_label->set_text(pm->type_string());
|
||||
m_plugin_uri_label->set_text(pm->uri());
|
||||
m_plugin_name_label->set_text(pm->name());
|
||||
if (pm) {
|
||||
m_plugin_type_label->set_text(pm->type_string());
|
||||
m_plugin_uri_label->set_text(pm->uri());
|
||||
m_plugin_name_label->set_text(pm->name());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "PortController.h"
|
||||
#include "App.h"
|
||||
#include "PatchTreeWindow.h"
|
||||
#include "PatchPropertiesWindow.h"
|
||||
#include "DSSIController.h"
|
||||
#include "PatchModel.h"
|
||||
#include "Store.h"
|
||||
|
@ -53,6 +54,7 @@ namespace OmGtk {
|
|||
|
||||
PatchController::PatchController(CountedPtr<PatchModel> model)
|
||||
: NodeController(model),
|
||||
m_properties_window(NULL),
|
||||
m_window(NULL),
|
||||
m_patch_view(NULL),
|
||||
m_patch_model(model),
|
||||
|
@ -349,6 +351,20 @@ PatchController::create_view()
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
PatchController::show_properties_window()
|
||||
{
|
||||
if (!m_properties_window) {
|
||||
Glib::RefPtr<Gnome::Glade::Xml> glade_xml = GladeFactory::new_glade_reference();
|
||||
glade_xml->get_widget_derived("patch_properties_win", m_properties_window);
|
||||
m_properties_window->patch_model(patch_model());
|
||||
}
|
||||
|
||||
m_properties_window->show();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/** Create a connection in the view (canvas).
|
||||
*/
|
||||
void
|
||||
|
@ -387,11 +403,14 @@ PatchController::create_connection(CountedPtr<ConnectionModel> cm)
|
|||
}
|
||||
|
||||
|
||||
/** Add a child node to this patch.
|
||||
*
|
||||
* This is for plugin nodes and patches, and is responsible for creating the
|
||||
* GtkObjectController for @a object (and through that the View if necessary)
|
||||
*/
|
||||
void
|
||||
PatchController::add_node(CountedPtr<NodeModel> object)
|
||||
{
|
||||
cerr << "ADD NODE\n";
|
||||
|
||||
assert(object);
|
||||
assert(object->parent() == m_patch_model);
|
||||
assert(object->path().parent() == m_patch_model->path());
|
||||
|
@ -405,19 +424,15 @@ PatchController::add_node(CountedPtr<NodeModel> object)
|
|||
|
||||
CountedPtr<NodeModel> node(object);
|
||||
if (node) {
|
||||
cerr << "\tNode Child\n";
|
||||
assert(node->parent() == m_patch_model);
|
||||
|
||||
NodeController* nc = NULL;
|
||||
|
||||
CountedPtr<PatchModel> patch(node);
|
||||
if (patch) {
|
||||
cerr << "\t.. is a Patch Child\n";
|
||||
assert(patch->parent() == m_patch_model);
|
||||
|
||||
nc = new PatchController(patch);
|
||||
} else {
|
||||
cerr << "\t... is a Plugin Node Child\n";
|
||||
assert(node->plugin());
|
||||
if (node->plugin()->type() == PluginModel::DSSI)
|
||||
nc = new DSSIController(node);
|
||||
|
@ -465,13 +480,6 @@ PatchController::add_node(CountedPtr<NodeModel> object)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*CountedPtr<PortModel> port(object);
|
||||
if (port) {
|
||||
cerr << "\tPort Child??\n";
|
||||
//assert(port->parent() == m_patch_model);
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ class SubpatchModule;
|
|||
class Controller;
|
||||
class OmFlowCanvas;
|
||||
class NodeControlWindow;
|
||||
class PatchPropertiesWindow;
|
||||
class ControlPanel;
|
||||
class PatchView;
|
||||
class NodeController;
|
||||
|
@ -81,6 +82,7 @@ public:
|
|||
void get_new_module_location(int& x, int& y);
|
||||
|
||||
void show_control_window();
|
||||
void show_properties_window();
|
||||
void show_patch_window();
|
||||
|
||||
void claim_patch_view();
|
||||
|
@ -111,7 +113,9 @@ private:
|
|||
|
||||
void create_connection(CountedPtr<ConnectionModel> cm);
|
||||
|
||||
PatchWindow* m_window; ///< Window currently showing this patch
|
||||
PatchPropertiesWindow* m_properties_window;
|
||||
|
||||
PatchWindow* m_window; ///< Patch Window currently showing m_patch_view
|
||||
PatchView* m_patch_view; ///< View (canvas) of this patch
|
||||
|
||||
CountedPtr<PatchModel> m_patch_model;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "PatchDescriptionWindow.h"
|
||||
#include "PatchPropertiesWindow.h"
|
||||
#include <string>
|
||||
#include "PatchModel.h"
|
||||
|
||||
|
@ -22,17 +22,17 @@ namespace OmGtk {
|
|||
using std::string;
|
||||
|
||||
|
||||
PatchDescriptionWindow::PatchDescriptionWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml)
|
||||
PatchPropertiesWindow::PatchPropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml)
|
||||
: Gtk::Window(cobject)
|
||||
, m_patch_model(NULL)
|
||||
{
|
||||
glade_xml->get_widget("description_author_entry", m_author_entry);
|
||||
glade_xml->get_widget("description_description_textview", m_textview);
|
||||
glade_xml->get_widget("description_cancel_button", m_cancel_button);
|
||||
glade_xml->get_widget("description_ok_button", m_ok_button);
|
||||
glade_xml->get_widget("properties_author_entry", m_author_entry);
|
||||
glade_xml->get_widget("properties_description_textview", m_textview);
|
||||
glade_xml->get_widget("properties_cancel_button", m_cancel_button);
|
||||
glade_xml->get_widget("properties_ok_button", m_ok_button);
|
||||
|
||||
m_cancel_button->signal_clicked().connect(sigc::mem_fun(this, &PatchDescriptionWindow::cancel_clicked));
|
||||
m_ok_button->signal_clicked().connect(sigc::mem_fun(this, &PatchDescriptionWindow::ok_clicked));
|
||||
m_cancel_button->signal_clicked().connect(sigc::mem_fun(this, &PatchPropertiesWindow::cancel_clicked));
|
||||
m_ok_button->signal_clicked().connect(sigc::mem_fun(this, &PatchPropertiesWindow::ok_clicked));
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,7 +42,7 @@ PatchDescriptionWindow::PatchDescriptionWindow(BaseObjectType* cobject, const Gl
|
|||
* the window in any way.
|
||||
*/
|
||||
void
|
||||
PatchDescriptionWindow::patch_model(CountedPtr<PatchModel> patch_model)
|
||||
PatchPropertiesWindow::patch_model(CountedPtr<PatchModel> patch_model)
|
||||
{
|
||||
property_title() = patch_model->path() + " Properties";
|
||||
m_patch_model = patch_model;
|
||||
|
@ -52,7 +52,7 @@ PatchDescriptionWindow::patch_model(CountedPtr<PatchModel> patch_model)
|
|||
|
||||
|
||||
void
|
||||
PatchDescriptionWindow::cancel_clicked()
|
||||
PatchPropertiesWindow::cancel_clicked()
|
||||
{
|
||||
m_author_entry->set_text(m_patch_model->get_metadata("author"));
|
||||
m_textview->get_buffer()->set_text(m_patch_model->get_metadata("description"));
|
||||
|
@ -61,7 +61,7 @@ PatchDescriptionWindow::cancel_clicked()
|
|||
|
||||
|
||||
void
|
||||
PatchDescriptionWindow::ok_clicked()
|
||||
PatchPropertiesWindow::ok_clicked()
|
||||
{
|
||||
m_patch_model->set_metadata("author", m_author_entry->get_text());
|
||||
m_patch_model->set_metadata("description", m_textview->get_buffer()->get_text());
|
|
@ -14,8 +14,8 @@
|
|||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef PATCHDESCRIPTIONWINDOW_H
|
||||
#define PATCHDESCRIPTIONWINDOW_H
|
||||
#ifndef PATCHPROPERTIESWINDOW_H
|
||||
#define PATCHPROPERTIESWINDOW_H
|
||||
|
||||
#include <string>
|
||||
#include <gtkmm.h>
|
||||
|
@ -29,16 +29,16 @@ using LibOmClient::PatchModel;
|
|||
namespace OmGtk {
|
||||
|
||||
|
||||
/** Patch Description Window.
|
||||
/** Patch Properties Window.
|
||||
*
|
||||
* Loaded by libglade as a derived object.
|
||||
*
|
||||
* \ingroup OmGtk
|
||||
*/
|
||||
class PatchDescriptionWindow : public Gtk::Window
|
||||
class PatchPropertiesWindow : public Gtk::Window
|
||||
{
|
||||
public:
|
||||
PatchDescriptionWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
|
||||
PatchPropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade);
|
||||
|
||||
void patch_model(CountedPtr<PatchModel> patch_model);
|
||||
|
||||
|
@ -57,4 +57,4 @@ private:
|
|||
|
||||
} // namespace OmGtk
|
||||
|
||||
#endif // PATCHDESCRIPTIONWINDOW_H
|
||||
#endif // PATCHPROPERTIESWINDOW_H
|
|
@ -26,7 +26,7 @@
|
|||
#include "NewSubpatchWindow.h"
|
||||
#include "LoadSubpatchWindow.h"
|
||||
#include "NodeControlWindow.h"
|
||||
#include "PatchDescriptionWindow.h"
|
||||
#include "PatchPropertiesWindow.h"
|
||||
#include "PatchTreeWindow.h"
|
||||
#include "Controller.h"
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "LoadPatchWindow.h"
|
||||
#include "LoadSubpatchWindow.h"
|
||||
#include "NodeControlWindow.h"
|
||||
#include "PatchDescriptionWindow.h"
|
||||
#include "PatchPropertiesWindow.h"
|
||||
#include "ConfigWindow.h"
|
||||
#include "MessagesWindow.h"
|
||||
#include "PatchTreeWindow.h"
|
||||
|
@ -79,13 +79,11 @@ PatchWindow::PatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glad
|
|||
xml->get_widget_derived("new_subpatch_win", m_new_subpatch_window);
|
||||
xml->get_widget_derived("load_patch_win", m_load_patch_window);
|
||||
xml->get_widget_derived("load_subpatch_win", m_load_subpatch_window);
|
||||
xml->get_widget_derived("patch_description_win", m_description_window);
|
||||
|
||||
//m_load_plugin_window->set_transient_for(*this);
|
||||
m_new_subpatch_window->set_transient_for(*this);
|
||||
m_load_patch_window->set_transient_for(*this);
|
||||
m_load_subpatch_window->set_transient_for(*this);
|
||||
m_description_window->set_transient_for(*this);
|
||||
|
||||
m_menu_view_control_window->property_sensitive() = false;
|
||||
//m_status_bar->push(Controller::instance().engine_url());
|
||||
|
@ -110,9 +108,9 @@ PatchWindow::PatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glad
|
|||
m_menu_fullscreen->signal_toggled().connect(
|
||||
sigc::mem_fun(this, &PatchWindow::event_fullscreen_toggled));
|
||||
m_menu_view_control_window->signal_activate().connect(
|
||||
sigc::mem_fun(this, &PatchWindow::show_control_window));
|
||||
sigc::mem_fun(this, &PatchWindow::event_show_controls));
|
||||
m_menu_view_patch_description->signal_activate().connect(
|
||||
sigc::mem_fun(this, &PatchWindow::show_description_window));
|
||||
sigc::mem_fun(this, &PatchWindow::event_show_properties));
|
||||
m_menu_destroy_patch->signal_activate().connect(
|
||||
sigc::mem_fun(this, &PatchWindow::event_destroy));
|
||||
m_menu_clear->signal_activate().connect(
|
||||
|
@ -201,7 +199,7 @@ PatchWindow::patch_controller(PatchController* pc)
|
|||
|
||||
set_title(m_patch->model()->path());
|
||||
|
||||
m_description_window->patch_model(pc->patch_model());
|
||||
//m_properties_window->patch_model(pc->patch_model());
|
||||
|
||||
|
||||
// Setup breadcrumbs box
|
||||
|
@ -283,10 +281,11 @@ PatchWindow::rebuild_breadcrumbs()
|
|||
void
|
||||
PatchWindow::breadcrumb_clicked(BreadCrumb* crumb)
|
||||
{
|
||||
cerr << "FIXME: crumb\n";
|
||||
/*
|
||||
if (m_enable_signal) {
|
||||
PatchController* const pc = crumb->patch();
|
||||
// FIXME: check to be sure PatchModel exists, then controller - maybe
|
||||
// even make a controller if there isn't one?
|
||||
PatchController* const pc = dynamic_cast<PatchController*>(
|
||||
Store::instance().patch(crumb->path())->controller());
|
||||
assert(pc != NULL);
|
||||
|
||||
if (pc == m_patch) {
|
||||
|
@ -298,22 +297,22 @@ PatchWindow::breadcrumb_clicked(BreadCrumb* crumb)
|
|||
patch_controller(pc);
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
PatchWindow::show_control_window()
|
||||
PatchWindow::event_show_controls()
|
||||
{
|
||||
if (m_patch != NULL)
|
||||
if (m_patch)
|
||||
m_patch->show_control_window();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
PatchWindow::show_description_window()
|
||||
PatchWindow::event_show_properties()
|
||||
{
|
||||
m_description_window->show();
|
||||
if (m_patch)
|
||||
m_patch->show_properties_window();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -69,9 +69,6 @@ public:
|
|||
LoadSubpatchWindow* load_subpatch_window() const { return m_load_subpatch_window; }
|
||||
NewSubpatchWindow* new_subpatch_window() const { return m_new_subpatch_window; }
|
||||
|
||||
void show_control_window();
|
||||
void show_description_window();
|
||||
|
||||
// Breadcrumb management
|
||||
void node_removed(const string& name);
|
||||
void node_renamed(const string& old_path, const string& new_path);
|
||||
|
@ -96,13 +93,15 @@ private:
|
|||
void event_destroy();
|
||||
void event_clear();
|
||||
void event_fullscreen_toggled();
|
||||
void event_show_properties();
|
||||
void event_show_controls();
|
||||
|
||||
|
||||
PatchController* m_patch;
|
||||
LoadPluginWindow* m_load_plugin_window;
|
||||
LoadPatchWindow* m_load_patch_window;
|
||||
NewSubpatchWindow* m_new_subpatch_window;
|
||||
LoadSubpatchWindow* m_load_subpatch_window;
|
||||
PatchDescriptionWindow* m_description_window;
|
||||
|
||||
bool m_enable_signal;
|
||||
bool m_position_stored;
|
||||
|
|
|
@ -1252,7 +1252,7 @@
|
|||
<widget class="GtkVBox" id="dialog-vbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">10</property>
|
||||
<property name="spacing">24</property>
|
||||
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="dialog-action_area1">
|
||||
|
@ -1606,7 +1606,7 @@
|
|||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="vbox11">
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">8</property>
|
||||
<property name="spacing">24</property>
|
||||
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox1">
|
||||
|
@ -2476,7 +2476,7 @@
|
|||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkWindow" id="patch_description_win">
|
||||
<widget class="GtkWindow" id="patch_properties_win">
|
||||
<property name="border_width">8</property>
|
||||
<property name="width_request">400</property>
|
||||
<property name="height_request">200</property>
|
||||
|
@ -2533,7 +2533,7 @@
|
|||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="description_author_entry">
|
||||
<widget class="GtkEntry" id="properties_author_entry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
|
@ -2568,7 +2568,7 @@
|
|||
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkTextView" id="description_description_textview">
|
||||
<widget class="GtkTextView" id="properties_description_textview">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">A short description of the patch to be included in the patch file</property>
|
||||
<property name="can_focus">True</property>
|
||||
|
@ -2602,7 +2602,7 @@
|
|||
<property name="spacing">5</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="description_cancel_button">
|
||||
<widget class="GtkButton" id="properties_cancel_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
|
@ -2614,7 +2614,7 @@
|
|||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="description_ok_button">
|
||||
<widget class="GtkButton" id="properties_ok_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="tooltip" translatable="yes">Apply these changes to be saved the next time the patch is saved</property>
|
||||
<property name="can_default">True</property>
|
||||
|
|
|
@ -2476,7 +2476,7 @@
|
|||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkWindow" id="patch_description_win">
|
||||
<widget class="GtkWindow" id="patch_properties_win">
|
||||
<property name="border_width">8</property>
|
||||
<property name="width_request">400</property>
|
||||
<property name="height_request">200</property>
|
||||
|
|
Loading…
Reference in New Issue