#include "mwindow.h"
#include "performanceprefs.h"
#include "preferences.h"
+#include <ctype.h>
#include <string.h>
#include "theme.h"
1,
0, // Select compressors to be offered
0, // Prompt for recording options
- 0, // If nonzero, prompt for insertion strategy
+ 0, // prompt for use labels
1); // Supply file formats for background rendering
x = xmargin1;
}
}
-static const char *titles[] =
+static const char *default_titles[] =
{
N_("On"),
N_("Hostname"),
N_("Framerate")
};
-static int widths[] =
+static int default_widths[] =
{
30,
150,
void PerformancePrefs::update_node_list()
{
- node_list->update(nodes,
- titles,
- widths,
- TOTAL_COLUMNS,
- node_list->get_xposition(),
- node_list->get_yposition(),
- node_list->get_selection_number(0, 0));
+ node_list->update_list();
+}
+
+void PrefsRenderFarmNodes::update_list()
+{
+ update(subwindow->nodes, titles, widths, PerformancePrefs::TOTAL_COLUMNS,
+ get_xposition(), get_yposition(), get_selection_number(0, 0));
}
PrefsRenderFarmNodes::PrefsRenderFarmNodes(PreferencesWindow *pwindow,
- PerformancePrefs *subwindow,
- int x,
- int y)
- : BC_ListBox(x,
- y,
- 340,
- 230,
- LISTBOX_TEXT, // Display text list or icons
- subwindow->nodes,
- titles,
- widths,
- 4)
+ PerformancePrefs *subwindow, int x, int y)
+ : BC_ListBox(x, y, 340, 230, LISTBOX_TEXT, 0,0,0,1, 0,0, LISTBOX_MULTIPLE)
{
+ for( int i=0; i<PerformancePrefs::TOTAL_COLUMNS; ++i ) {
+ titles[i] = _(default_titles[i]);
+ widths[i] = default_widths[i];
+ }
+ update(subwindow->nodes, titles, widths, PerformancePrefs::TOTAL_COLUMNS,
+ 0, 0, -1, 0, 0);
this->subwindow = subwindow;
this->pwindow = pwindow;
}
int PrefsRenderFarmNodes::column_resize_event()
{
- for(int i = 0; i < 3; i++)
+ for( int i=0; i<PerformancePrefs::TOTAL_COLUMNS; ++i )
widths[i] = get_column_width(i);
return 1;
}
{
subwindow->hot_node = get_selection_number(1, 0);
subwindow->edit_node->update(get_selection(1, 0)->get_text());
- subwindow->edit_port->update(get_selection(2, 0)->get_text());
+ const char *text = get_selection(2, 0)->get_text();
+ subwindow->edit_port->update(text);
+ pwindow->thread->preferences->renderfarm_port = atol(text);
if(get_cursor_x() < widths[0])
{
pwindow->thread->preferences->renderfarm_enabled.values[subwindow->hot_node] =
PrefsRenderFarmNewNode::PrefsRenderFarmNewNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y)
- : BC_GenericButton(x, y, _("Add Node"))
+ : BC_GenericButton(x, y, _("Add Nodes"))
{
this->pwindow = pwindow;
this->subwindow = subwindow;
}
int PrefsRenderFarmNewNode::handle_event()
{
- pwindow->thread->preferences->add_node(subwindow->edit_node->get_text(),
- pwindow->thread->preferences->renderfarm_port,
- 1,
- 0.0);
+ const char *name = subwindow->edit_node->get_text();
+ char *cp = (char*)subwindow->edit_port->get_text();
+ int64_t start_port = strtol(cp, &cp, 0), end_port = start_port;
+ while( isspace(*cp) ) ++cp;
+ if( *cp++ == '-' )
+ end_port = strtol(cp, &cp, 0);
+ for( int port=start_port; port<=end_port; ++port ) {
+ pwindow->thread->preferences->add_node(name, port, 1, 0.0);
+ }
+ pwindow->thread->preferences->renderfarm_port = end_port;
+ subwindow->edit_port->update(end_port);
pwindow->thread->preferences->reset_rates();
subwindow->generate_node_list();
subwindow->update_node_list();
PrefsRenderFarmDelNode::PrefsRenderFarmDelNode(PreferencesWindow *pwindow, PerformancePrefs *subwindow, int x, int y)
- : BC_GenericButton(x, y, _("Delete Node"))
+ : BC_GenericButton(x, y, _("Delete Nodes"))
{
this->pwindow = pwindow;
this->subwindow = subwindow;
}
int PrefsRenderFarmDelNode::handle_event()
{
- if( subwindow->hot_node >= 0 ) {
- pwindow->thread->preferences->delete_node(subwindow->hot_node);
-
- subwindow->generate_node_list();
- subwindow->update_node_list();
- subwindow->hot_node = -1;
+ ArrayList<BC_ListBoxItem *> &item_list = subwindow->nodes[0];
+ for( int i=item_list.size(); --i>=0; ) {
+ if( !item_list[i]->get_selected() ) continue;
+ pwindow->thread->preferences->delete_node(i);
}
+ subwindow->generate_node_list();
+ subwindow->update_node_list();
+ subwindow->hot_node = -1;
return 1;
}