Changeset dd6c0135749a94cfae94719893c655fbdf7f912a
- Timestamp:
- 12/07/10 05:31:28 (2 years ago)
- Children:
- 5dd853997b0b38e965b436f647841b9d115190ea
- Parents:
- cf12c2e3e0d97f01ea24b8a9e3a8663a670a1e7e
- git-author:
- Nedko Arnaudov <nedko@arnaudov.name> / 2010-12-07T05:31:13Z+0200
- git-committer:
- Nedko Arnaudov <nedko@arnaudov.name> / 2010-12-07T05:31:28Z+0200
- Files:
-
- 1 added
- 1 removed
- 7 modified
- 1 moved
-
gui/graph_view.c (modified) (1 diff)
-
gui/menu.c (modified) (2 diffs)
-
gui/project_properties.c (added)
-
gui/project_properties.cpp (deleted)
-
gui/project_properties.h (moved) (moved from gui/project_properties.hpp) (2 diffs)
-
gui/room.c (modified) (1 diff)
-
gui/save_project_dialog.c (modified) (2 diffs)
-
proxies/room_proxy.c (modified) (13 diffs)
-
proxies/room_proxy.h (modified) (2 diffs)
-
wscript (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
gui/graph_view.c
ra5d878c rdd6c013 114 114 } 115 115 116 static void project_properties_changed(void * context, const char * project_dir, const char * project_name) 116 static 117 void 118 project_properties_changed( 119 void * context, 120 const char * project_dir, 121 const char * project_name, 122 const char * project_description, 123 const char * project_notes) 117 124 { 118 125 bool empty; -
gui/menu.c
r6c5bfcb rdd6c013 30 30 #include "studio.h" 31 31 #include "dynmenu.h" 32 #include "project_properties.h" 32 33 33 34 static GtkWidget * g_menu_item_new_studio; … … 416 417 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 417 418 419 menuitem = gtk_menu_item_new_with_label("Project Properties..."); 420 g_signal_connect(menuitem, "activate", (GCallback)ladish_project_properties_dialog_run, NULL); 421 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 422 418 423 menuitem = gtk_separator_menu_item_new(); /* separator */ 419 424 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); -
gui/project_properties.h
r05a0860 rdd6c013 3 3 * LADI Session Handler (ladish) 4 4 * 5 * Copyright (C) 20 08Nedko Arnaudov <nedko@arnaudov.name>5 * Copyright (C) 2010 Nedko Arnaudov <nedko@arnaudov.name> 6 6 * 7 7 ************************************************************************** 8 * This file contains interface of the project_properties_dialog class8 * This file contains interface for the project properties dialog helpers 9 9 ************************************************************************** 10 10 * … … 25 25 */ 26 26 27 #ifndef PROJECT_PROPERTIES_H PP__B854A265_3660_4DAA_87E7_104020C5962D__INCLUDED28 #define PROJECT_PROPERTIES_H PP__B854A265_3660_4DAA_87E7_104020C5962D__INCLUDED27 #ifndef PROJECT_PROPERTIES_H__B854A265_3660_4DAA_87E7_104020C5962D__INCLUDED 28 #define PROJECT_PROPERTIES_H__B854A265_3660_4DAA_87E7_104020C5962D__INCLUDED 29 29 30 struct project_properties_dialog_impl;30 void ladish_project_properties_dialog_run(void); 31 31 32 class project_properties_dialog 33 { 34 public: 35 project_properties_dialog(); 36 ~project_properties_dialog(); 37 38 void run(boost::shared_ptr<project> project_ptr); 39 40 private: 41 project_properties_dialog_impl * _impl_ptr; 42 }; 43 44 #endif // #ifndef PROJECT_PROPERTIES_HPP__B854A265_3660_4DAA_87E7_104020C5962D__INCLUDED 32 #endif // #ifndef PROJECT_PROPERTIES_H__B854A265_3660_4DAA_87E7_104020C5962D__INCLUDED -
gui/room.c
r128ad4d rdd6c013 90 90 { 91 91 bool new_project; 92 c har * project_dir;93 c har * project_name;92 const char * project_dir; 93 const char * project_name; 94 94 95 if (!ladish_room_proxy_get_project_properties(graph_view_get_room(get_current_view()), &project_dir, &project_name)) 96 { 97 error_message_box("Get project properties failed, please inspect logs."); 98 return; 99 } 95 ladish_room_proxy_get_project_properties(graph_view_get_room(get_current_view()), &project_dir, &project_name, NULL, NULL); 100 96 101 97 new_project = strlen(project_dir) == 0; 102 103 free(project_name);104 free(project_dir);105 98 106 99 if (new_project) -
gui/save_project_dialog.c
r841852a1 rdd6c013 56 56 GtkResponseType response; 57 57 58 c har * project_dir;59 c har * project_name;58 const char * project_dir; 59 const char * project_name; 60 60 61 61 dialog = get_gtk_builder_widget("project_save_as_dialog"); … … 66 66 g_signal_connect( G_OBJECT(path_button), "clicked", G_CALLBACK(on_path_button_clicked), NULL); 67 67 68 if (!ladish_room_proxy_get_project_properties(room, &project_dir, &project_name)) 69 { 70 error_message_box("Get project properties failed, please inspect logs."); 71 return; 72 } 68 ladish_room_proxy_get_project_properties(room, &project_dir, &project_name, NULL, NULL); 73 69 74 70 gtk_entry_set_text(path, project_dir); 75 71 gtk_entry_set_text(name, project_name); 76 77 free(project_name);78 free(project_dir);79 72 80 73 gtk_widget_show(dialog); -
proxies/room_proxy.c
r7a6f304 rdd6c013 37 37 void * project_properties_changed_context, 38 38 const char * project_dir, 39 const char * project_name); 39 const char * project_name, 40 const char * project_description, 41 const char * project_notes); 40 42 41 43 uint64_t project_properties_version; 42 44 char * project_name; 43 45 char * project_dir; 46 char * project_description; 47 char * project_notes; 44 48 }; 45 49 … … 51 55 const char * name; 52 56 const char * dir; 57 const char * description; 58 const char * notes; 53 59 char * name_buffer; 54 60 char * dir_buffer; 61 char * description_buffer; 62 char * notes_buffer; 55 63 56 64 signature = dbus_message_get_signature(message_ptr); … … 58 66 { 59 67 log_error("%s signature mismatch. '%s'", context, signature); 60 return false;68 goto fail; 61 69 } 62 70 … … 69 77 { 70 78 log_error("%s contains project properties version 0", context); 71 return false;79 goto fail; 72 80 } 73 81 74 82 if (proxy_ptr->project_properties_version >= version) 75 83 { 76 return true;84 goto fail; 77 85 } 78 86 … … 85 93 { 86 94 dir = ""; 95 } 96 97 if (!dbus_iter_get_dict_entry_string(&iter, "description", &description)) 98 { 99 description = ""; 100 } 101 102 if (!dbus_iter_get_dict_entry_string(&iter, "notes", ¬es)) 103 { 104 notes = ""; 87 105 } 88 106 … … 91 109 { 92 110 log_error("strdup() failed for project name"); 93 return false;111 goto fail; 94 112 } 95 113 … … 98 116 { 99 117 log_error("strdup() failed for project dir"); 100 free(name_buffer); 101 return false; 118 goto fail_free_name_buffer; 119 } 120 121 description_buffer = strdup(description); 122 if (description_buffer == NULL) 123 { 124 log_error("strdup() failed for project description"); 125 goto fail_free_dir_buffer; 126 } 127 128 notes_buffer = strdup(notes); 129 if (notes_buffer == NULL) 130 { 131 log_error("strdup() failed for project notes"); 132 goto fail_free_description_buffer; 102 133 } 103 134 … … 115 146 } 116 147 proxy_ptr->project_dir = dir_buffer; 148 149 if (proxy_ptr->project_description != NULL) 150 { 151 free(proxy_ptr->project_description); 152 } 153 proxy_ptr->project_description = description_buffer; 154 155 if (proxy_ptr->project_notes != NULL) 156 { 157 free(proxy_ptr->project_notes); 158 } 159 proxy_ptr->project_notes = notes_buffer; 117 160 118 161 /* log_info("Room '%s' project properties changed:", proxy_ptr->object); /\* TODO: cache project name *\/ */ … … 120 163 /* log_info(" Project name: '%s'", proxy_ptr->project_name); */ 121 164 /* log_info(" Project dir: '%s'", proxy_ptr->project_dir); */ 165 /* log_info(" Project description: '%s'", proxy_ptr->project_description); */ 166 /* log_info(" Project notes: '%s'", proxy_ptr->project_notes); */ 122 167 123 168 proxy_ptr->project_properties_changed( 124 169 proxy_ptr->project_properties_changed_context, 125 170 proxy_ptr->project_dir, 126 proxy_ptr->project_name); 127 128 return true; 171 proxy_ptr->project_name, 172 proxy_ptr->project_description, 173 proxy_ptr->project_notes); 174 175 return true; 176 177 fail_free_description_buffer: 178 free(description_buffer); 179 fail_free_dir_buffer: 180 free(dir_buffer); 181 fail_free_name_buffer: 182 free(name_buffer); 183 fail: 184 return false; 129 185 } 130 186 … … 176 232 void * project_properties_changed_context, 177 233 const char * project_dir, 178 const char * project_name), 234 const char * project_name, 235 const char * project_description, 236 const char * project_notes), 179 237 ladish_room_proxy_handle * handle_ptr) 180 238 { … … 205 263 proxy_ptr->project_name = NULL; 206 264 proxy_ptr->project_dir = NULL; 265 proxy_ptr->project_description = NULL; 266 proxy_ptr->project_notes = NULL; 207 267 208 268 proxy_ptr->project_properties_changed_context = project_properties_changed_context; … … 257 317 } 258 318 319 if (proxy_ptr->project_description != NULL) 320 { 321 free(proxy_ptr->project_description); 322 } 323 324 if (proxy_ptr->project_notes != NULL) 325 { 326 free(proxy_ptr->project_notes); 327 } 328 259 329 free(proxy_ptr->object); 260 330 free(proxy_ptr->service); … … 328 398 } 329 399 330 bool ladish_room_proxy_get_project_properties(ladish_room_proxy_handle proxy, char ** project_dir, char ** project_name) 331 { 332 char * name; 333 char * dir; 334 400 void 401 ladish_room_proxy_get_project_properties( 402 ladish_room_proxy_handle proxy, 403 const char ** project_dir, 404 const char ** project_name, 405 const char ** project_description, 406 const char ** project_notes) 407 { 335 408 ASSERT(proxy_ptr->project_properties_version > 0); 336 409 337 name = strdup(proxy_ptr->project_name); 338 if (name == NULL) 339 { 340 log_error("strdup() failed for project name"); 341 return false; 342 } 343 344 dir = strdup(proxy_ptr->project_dir); 345 if (dir == NULL) 346 { 347 log_error("strdup() failed for project dir"); 348 free(name); 349 return false; 350 } 351 352 *project_name = name; 353 *project_dir = dir; 410 if (project_dir != NULL) 411 { 412 *project_dir = proxy_ptr->project_dir; 413 } 414 415 if (project_name != NULL) 416 { 417 *project_name = proxy_ptr->project_name; 418 } 419 420 if (project_description != NULL) 421 { 422 *project_description = proxy_ptr->project_description; 423 } 424 425 if (project_notes != NULL) 426 { 427 *project_notes = proxy_ptr->project_notes; 428 } 429 } 430 431 bool 432 ladish_room_proxy_set_project_description( 433 ladish_room_proxy_handle proxy, 434 const char * description) 435 { 436 uint64_t new_version; 437 438 if (!dbus_call(0, proxy_ptr->service, proxy_ptr->object, IFACE_ROOM, "SetProjectDescription", "s", &description, "t", &new_version)) 439 { 440 log_error("SetProjectDescription() failed."); 441 return false; 442 } 443 444 return true; 445 } 446 447 bool 448 ladish_room_proxy_set_project_notes( 449 ladish_room_proxy_handle proxy, 450 const char * notes) 451 { 452 uint64_t new_version; 453 454 if (!dbus_call(0, proxy_ptr->service, proxy_ptr->object, IFACE_ROOM, "SetProjectNotes", "s", ¬es, "t", &new_version)) 455 { 456 log_error("SetProjectNotes(%s) failed.", notes); 457 return false; 458 } 354 459 355 460 return true; -
proxies/room_proxy.h
r6c5bfcb rdd6c013 40 40 void * project_properties_changed_context, 41 41 const char * project_dir, 42 const char * project_name), 42 const char * project_name, 43 const char * project_description, 44 const char * project_notes), 43 45 ladish_room_proxy_handle * proxy_ptr); 44 46 … … 48 50 bool ladish_room_proxy_save_project(ladish_room_proxy_handle proxy, const char * project_dir, const char * project_name); 49 51 bool ladish_room_proxy_unload_project(ladish_room_proxy_handle proxy); 50 bool ladish_room_proxy_get_project_properties(ladish_room_proxy_handle proxy, char ** project_dir, char ** project_name); 52 53 void 54 ladish_room_proxy_get_project_properties( 55 ladish_room_proxy_handle proxy, 56 const char ** project_dir, 57 const char ** project_name, 58 const char ** project_description, 59 const char ** project_notes); 60 61 bool 62 ladish_room_proxy_set_project_description( 63 ladish_room_proxy_handle proxy, 64 const char * description); 65 66 bool 67 ladish_room_proxy_set_project_notes( 68 ladish_room_proxy_handle proxy, 69 const char * notes); 51 70 52 71 bool -
wscript
r75e08bc rdd6c013 501 501 'load_project_dialog.c', 502 502 'save_project_dialog.c', 503 'project_properties.c', 503 504 'world_tree.c', 504 505 'graph_view.c',
