summaryrefslogtreecommitdiff
path: root/tikzit/src/gtk
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@cs.ox.ac.uk>2013-02-04 14:45:56 +0000
committerAlex Merry <alex.merry@cs.ox.ac.uk>2013-02-04 14:45:56 +0000
commit19e555267a2170d38e77e563192bfafe20d2f5c5 (patch)
tree526dff96fc68289ba6ff932f16dfe748b8991f11 /tikzit/src/gtk
parentfe1b43c7b7c83e392b60ffc71ac29f7e63810f58 (diff)
Only change style settings when OK is clicked
If the user clicks Cancel, nothing changes.
Diffstat (limited to 'tikzit/src/gtk')
-rw-r--r--tikzit/src/gtk/SettingsDialog.h1
-rw-r--r--tikzit/src/gtk/SettingsDialog.m14
2 files changed, 10 insertions, 5 deletions
diff --git a/tikzit/src/gtk/SettingsDialog.h b/tikzit/src/gtk/SettingsDialog.h
index 9c1582d..0f687b3 100644
--- a/tikzit/src/gtk/SettingsDialog.h
+++ b/tikzit/src/gtk/SettingsDialog.h
@@ -26,6 +26,7 @@
@interface SettingsDialog: NSObject {
Configuration *configuration;
StyleManager *styleManager;
+ StyleManager *tempStyleManager;
NodeStylesPalette *nodePalette;
EdgeStylesPalette *edgePalette;
diff --git a/tikzit/src/gtk/SettingsDialog.m b/tikzit/src/gtk/SettingsDialog.m
index 096cca3..c45ab53 100644
--- a/tikzit/src/gtk/SettingsDialog.m
+++ b/tikzit/src/gtk/SettingsDialog.m
@@ -20,6 +20,7 @@
#import "Configuration.h"
#import "EdgeStylesPalette.h"
#import "NodeStylesPalette.h"
+#import "StyleManager.h"
// {{{ Internal interfaces
// {{{ Signals
@@ -53,6 +54,7 @@ static void cancel_button_clicked_cb (GtkButton *widget, SettingsDialog *dialog)
if (self) {
configuration = [c retain];
styleManager = [m retain];
+ tempStyleManager = [m copy];
}
return self;
@@ -67,6 +69,7 @@ static void cancel_button_clicked_cb (GtkButton *widget, SettingsDialog *dialog)
}
[configuration release];
+ [tempStyleManager release];
[styleManager release];
[nodePalette release];
[edgePalette release];
@@ -93,9 +96,6 @@ static void cancel_button_clicked_cb (GtkButton *widget, SettingsDialog *dialog)
[m retain];
[styleManager release];
styleManager = m;
-
- [nodePalette setStyleManager:m];
- [edgePalette setStyleManager:m];
}
- (GtkWindow*) parentWindow {
@@ -163,8 +163,8 @@ static void cancel_button_clicked_cb (GtkButton *widget, SettingsDialog *dialog)
return;
}
- nodePalette = [[NodeStylesPalette alloc] initWithManager:styleManager];
- edgePalette = [[EdgeStylesPalette alloc] initWithManager:styleManager];
+ nodePalette = [[NodeStylesPalette alloc] initWithManager:tempStyleManager];
+ edgePalette = [[EdgeStylesPalette alloc] initWithManager:tempStyleManager];
window = GTK_WINDOW (gtk_window_new (GTK_WINDOW_TOPLEVEL));
gtk_window_set_default_size (window, 570, -1);
@@ -278,6 +278,8 @@ static void cancel_button_clicked_cb (GtkButton *widget, SettingsDialog *dialog)
}
#endif
+ [styleManager updateFromManager:tempStyleManager];
+
[[NSNotificationCenter defaultCenter]
postNotificationName:@"ConfigurationChanged"
object:configuration];
@@ -293,6 +295,8 @@ static void cancel_button_clicked_cb (GtkButton *widget, SettingsDialog *dialog)
withDefault:@"pdflatex"];
gtk_entry_set_text (pdflatexPathEntry, [path UTF8String]);
#endif
+
+ [tempStyleManager updateFromManager:styleManager];
}
@end