visualruby 1.0.19 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Splash.rb +40 -0
- data/bin/editor/VR_Document.rb +81 -74
- data/bin/editor/VR_TabSearch.rb +5 -7
- data/bin/editor/VR_Tabs.rb +57 -36
- data/bin/editor/VR_TextShell.rb +12 -34
- data/bin/editor/VR_TextViewCommon.rb +9 -28
- data/bin/main/NewProjectGUI.rb +14 -13
- data/bin/main/OpenProject.rb +69 -0
- data/bin/main/ProjectChooserView.rb +3 -2
- data/bin/main/ProjectTree.rb +25 -0
- data/bin/main/RubygemsAPI.rb +15 -11
- data/bin/main/VR_ENV.rb +38 -60
- data/bin/main/VR_ENV_GLOBAL.rb +45 -44
- data/bin/main/VR_File_Tree.rb +29 -21
- data/bin/main/VR_Local_Gem_Tree.rb +4 -19
- data/bin/main/VR_Main.rb +128 -144
- data/bin/main/VR_Remote_Gem_Tree.rb +6 -19
- data/bin/main/glade/NewProjectGUI.glade +94 -98
- data/bin/main/glade/OpenProject.glade +259 -0
- data/bin/main/glade/RubygemsAPI.glade +98 -62
- data/bin/main/glade/VR_ENV.glade +46 -55
- data/bin/main/glade/VR_ENV_GLOBAL.glade +251 -180
- data/bin/main/glade/VR_File_Tree.glade +25 -16
- data/bin/main/glade/VR_Local_Gem_Tree.glade +16 -8
- data/bin/main/glade/VR_Main.glade +410 -449
- data/bin/main/glade/VR_Remote_Gem_Tree.glade +33 -31
- data/bin/tools/VR_Tools.rb +60 -46
- data/{visualruby_examples → examples}/active_record/active_record.rb +16 -10
- data/{visualruby_examples → examples}/active_record/bin/ChoosePerson.rb +7 -0
- data/examples/active_record/bin/Person.rb +21 -0
- data/examples/active_record/bin/glade/ChoosePerson.glade +89 -0
- data/examples/active_record/bin/glade/Person.glade +197 -0
- data/{visualruby_examples → examples}/active_record/db/development.sqlite3 +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/CompanyGUI.rb +7 -7
- data/{visualruby_examples → examples}/active_record2/bin/Employee.rb +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/Employer.rb +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/Paycheck.rb +0 -0
- data/examples/active_record2/bin/glade/CompanyGUI.glade +149 -0
- data/examples/active_record2/bin/glade/Employee.glade +126 -0
- data/{visualruby_examples → examples}/active_record2/bin/glade/Employer.glade +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/glade/Paycheck.glade +0 -0
- data/{visualruby_examples → examples}/active_record2/db/development.sqlite3 +0 -0
- data/{visualruby_examples → examples}/active_record2/main.rb +15 -9
- data/examples/alert_box/bin/AlertBoxDemo.rb +80 -0
- data/examples/alert_box/bin/glade/AlertBoxDemo.glade +234 -0
- data/examples/alert_box/main.rb +12 -0
- data/{visualruby_examples → examples}/all_widgets/bin/AllWidgets.rb +18 -10
- data/{visualruby_examples → examples}/all_widgets/bin/glade/AllWidgets.glade +52 -16
- data/{visualruby_examples → examples}/all_widgets/bin/splash.png +0 -0
- data/examples/all_widgets/main.rb +12 -0
- data/{visualruby_examples → examples}/calculator/bin/Calculator.rb +23 -22
- data/{visualruby_examples → examples}/calculator/bin/glade/Calculator.glade +81 -51
- data/examples/calculator/main.rb +13 -0
- data/examples/child_window/bin/ChildWindowDemo.rb +52 -0
- data/examples/child_window/bin/ModalWindow.rb +9 -0
- data/examples/child_window/bin/ModelessWindow.rb +9 -0
- data/examples/child_window/bin/MyChildClass.rb +21 -0
- data/examples/child_window/bin/glade/ChildWindowDemo.glade +87 -0
- data/examples/child_window/bin/glade/ModalWindow.glade +61 -0
- data/examples/child_window/bin/glade/ModelessWindow.glade +61 -0
- data/{visualruby_examples → examples}/child_window/bin/glade/MyChildClass.glade +14 -12
- data/examples/child_window/main.rb +12 -0
- data/{visualruby_examples → examples}/drag_drop/bin/DragDropDemo.rb +9 -10
- data/examples/drag_drop/bin/glade/DragDropDemo.glade +161 -0
- data/{visualruby_examples → examples}/drag_drop/img/folder.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/glade.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/gtk-edit.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/obj.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/png.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/rb.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/ruby.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/unknown.png +0 -0
- data/examples/drag_drop/main.rb +11 -0
- data/examples/filetreeview/bin/ProjectTree.rb +32 -0
- data/examples/filetreeview/bin/ProjectTreeGUI.rb +28 -0
- data/examples/filetreeview/bin/glade/ProjectTreeGUI.glade +156 -0
- data/examples/filetreeview/main.rb +13 -0
- data/{visualruby_examples → examples}/listview/bin/SongListView.rb +24 -20
- data/{visualruby_examples → examples}/listview/bin/SongListViewGUI.rb +12 -11
- data/{visualruby_examples → examples}/listview/bin/audio-x-generic.png +0 -0
- data/examples/listview/bin/glade/SongListViewGUI.glade +195 -0
- data/examples/listview/main.rb +10 -0
- data/examples/listview_objects/bin/DataObject.rb +53 -0
- data/{visualruby_examples → examples}/listview_objects/bin/ListViewObjects.rb +7 -4
- data/examples/listview_objects/bin/ListViewObjectsGUI.rb +26 -0
- data/examples/listview_objects/bin/glade/DataObject.glade +196 -0
- data/examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +87 -0
- data/examples/listview_objects/main.rb +12 -0
- data/examples/settings_file/bin/MainApp.rb +38 -0
- data/examples/settings_file/bin/SavableSettings.rb +39 -0
- data/examples/settings_file/bin/glade/MainApp.glade +87 -0
- data/examples/settings_file/bin/glade/SavableSettings.glade +162 -0
- data/examples/settings_file/main.rb +14 -0
- data/examples/settings_file/settings.yaml +15 -0
- data/examples/simple_ruby_gui/bin/DataObjectGUI.rb +21 -0
- data/examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +195 -0
- data/examples/simple_ruby_gui/main.rb +16 -0
- data/{visualruby_examples → examples}/treeview/bin/MyClass.rb +1 -5
- data/examples/treeview/bin/glade/MyClass.glade +24 -0
- data/examples/treeview/main.rb +13 -0
- data/skeleton/document/New.glade +3 -4
- data/skeleton/document/NewWindow.rb +1 -1
- data/skeleton/project/bin/MyClass.rb +2 -2
- data/skeleton/project/bin/glade/MyClass.glade +12 -26
- data/skeleton/project/main.rb +4 -8
- data/vr +41 -37
- data/vrlib/lib/Alert.rb +67 -0
- data/vrlib/lib/DragDrop.rb +90 -0
- data/vrlib/lib/GladeGUI.rb +433 -0
- data/vrlib/lib/IconHash.rb +18 -0
- data/vrlib/lib/SavableClass.rb +56 -0
- data/vrlib/lib/SimpleComboBoxEntry.rb +8 -0
- data/vrlib/lib/glade/Alert.glade +119 -0
- data/vrlib/lib/treeview/FileTreeView.rb +113 -0
- data/vrlib/lib/treeview/IterMethods.rb +82 -0
- data/vrlib/lib/treeview/ListView.rb +85 -0
- data/vrlib/lib/treeview/TreeView.rb +43 -0
- data/vrlib/lib/treeview/ViewCommon.rb +370 -0
- data/vrlib/lib/treeview/columns/CalendarCol.rb +89 -0
- data/vrlib/lib/treeview/columns/CellRendererCombo.rb +66 -0
- data/vrlib/lib/treeview/columns/CellRendererDate.rb +45 -0
- data/vrlib/lib/treeview/columns/CellRendererObject.rb +57 -0
- data/vrlib/lib/treeview/columns/CellRendererPhone.rb +45 -0
- data/vrlib/lib/treeview/columns/CellRendererPixbuf.rb +16 -0
- data/vrlib/lib/treeview/columns/CellRendererProgress.rb +17 -0
- data/vrlib/lib/treeview/columns/CellRendererSpin.rb +37 -0
- data/vrlib/lib/treeview/columns/CellRendererText.rb +38 -0
- data/vrlib/lib/treeview/columns/CellRendererToggle.rb +47 -0
- data/vrlib/lib/treeview/columns/ComboCol.rb +43 -0
- data/vrlib/lib/treeview/columns/CurrencyCol.rb +23 -0
- data/vrlib/lib/treeview/columns/DateCol.rb +20 -0
- data/vrlib/lib/treeview/columns/ImageCol.rb +27 -0
- data/vrlib/lib/treeview/columns/ProgressCol.rb +27 -0
- data/vrlib/lib/treeview/columns/SpinCol.rb +11 -0
- data/vrlib/lib/treeview/columns/TextCol.rb +65 -0
- data/vrlib/lib/treeview/columns/TreeViewColumn.rb +93 -0
- data/{bin/main/glade/ProjectChooserGUI.glade → vrlib/lib/treeview/columns/glade/CalendarCol.glade} +71 -63
- data/{bin/main/glade/Splash.glade → vrlib/lib/treeview/columns/glade/ImageCol.glade} +5 -6
- data/vrlib/lib/treeview/columns/glade/TextCol.glade +82 -0
- data/vrlib/rdoc_replace.yaml +77 -0
- data/vrlib/vrlib.rb +7 -0
- metadata +163 -136
- data/bin/editor/glade/VR_Document.glade +0 -160
- data/bin/main/ProjectChooserGUI.rb +0 -41
- data/bin/main/Splash.rb +0 -22
- data/visualruby_examples/active_record/.vr_settings.yaml +0 -47
- data/visualruby_examples/active_record/bin/Person.rb +0 -13
- data/visualruby_examples/active_record/bin/glade/ChoosePerson.glade +0 -61
- data/visualruby_examples/active_record/bin/glade/Person.glade +0 -148
- data/visualruby_examples/active_record2/.vr_settings.yaml +0 -16
- data/visualruby_examples/active_record2/bin/glade/CompanyGUI.glade +0 -167
- data/visualruby_examples/active_record2/bin/glade/Employee.glade +0 -123
- data/visualruby_examples/all_widgets/.vr_settings.yaml +0 -13
- data/visualruby_examples/all_widgets/main.rb +0 -14
- data/visualruby_examples/calculator/.vr_settings.yaml +0 -11
- data/visualruby_examples/calculator/main.rb +0 -13
- data/visualruby_examples/child_window/.vr_settings.yaml +0 -16
- data/visualruby_examples/child_window/bin/ChildWindowDemo.rb +0 -39
- data/visualruby_examples/child_window/bin/MyChildClass.rb +0 -40
- data/visualruby_examples/child_window/bin/glade/ChildWindowDemo.glade +0 -101
- data/visualruby_examples/child_window/main.rb +0 -13
- data/visualruby_examples/drag_drop/.vr_settings.yaml +0 -12
- data/visualruby_examples/drag_drop/bin/glade/DragDropDemo.glade +0 -143
- data/visualruby_examples/drag_drop/main.rb +0 -14
- data/visualruby_examples/listview/.vr_settings.yaml +0 -12
- data/visualruby_examples/listview/bin/glade/SongListViewGUI.glade +0 -220
- data/visualruby_examples/listview/main.rb +0 -19
- data/visualruby_examples/listview_objects/.vr_settings.yaml +0 -16
- data/visualruby_examples/listview_objects/bin/DataObject.rb +0 -32
- data/visualruby_examples/listview_objects/bin/DataObjectGUI.rb +0 -41
- data/visualruby_examples/listview_objects/bin/ListViewObjectsGUI.rb +0 -18
- data/visualruby_examples/listview_objects/bin/glade/DataObject.glade +0 -198
- data/visualruby_examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +0 -102
- data/visualruby_examples/listview_objects/main.rb +0 -13
- data/visualruby_examples/simple_ruby_gui/.vr_settings.yaml +0 -16
- data/visualruby_examples/simple_ruby_gui/bin/DataObjectGUI.rb +0 -20
- data/visualruby_examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +0 -163
- data/visualruby_examples/simple_ruby_gui/main.rb +0 -16
- data/visualruby_examples/treeview/.vr_settings.yaml +0 -12
- data/visualruby_examples/treeview/bin/glade/MyClass.glade +0 -48
- data/visualruby_examples/treeview/main.rb +0 -14
data/bin/main/VR_Main.rb
CHANGED
|
@@ -1,108 +1,98 @@
|
|
|
1
|
-
|
|
2
1
|
class VR_Main
|
|
3
2
|
|
|
4
3
|
include GladeGUI
|
|
5
4
|
|
|
6
5
|
attr_accessor :proj_path, :tabs, :shell, :builder, :file_tree
|
|
7
6
|
|
|
8
|
-
def initialize(argv)
|
|
9
|
-
@proj_path = argv[0]
|
|
10
|
-
@proj_path = @proj_path
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
def initialize(argv)
|
|
8
|
+
@proj_path = argv[0] ? argv[0] : Dir.pwd
|
|
9
|
+
@proj_path = @proj_path.chomp("/")
|
|
10
|
+
end
|
|
11
|
+
|
|
14
12
|
def before_show
|
|
15
|
-
#
|
|
16
|
-
|
|
13
|
+
# there must be a visualruby directory:
|
|
14
|
+
menuInstallExamples__activate if not File.directory?(File.join(ENV["HOME"],"","visualruby", "examples","drag_drop"))
|
|
15
|
+
# load global settings (requires /home/visuaruby folder exists
|
|
16
|
+
$VR_ENV_GLOBAL = VR::load_yaml(:class => VR_ENV_GLOBAL, :file_name => VR_ENV_GLOBAL::GLOBAL_SETTINGS_FILE)
|
|
17
|
+
# try to open right project
|
|
18
|
+
|
|
19
|
+
if not project_valid?(@proj_path)
|
|
20
|
+
@proj_path = $VR_ENV_GLOBAL.default_project if project_valid?($VR_ENV_GLOBAL.default_project)
|
|
21
|
+
end
|
|
22
|
+
|
|
17
23
|
@file_tree = VR_File_Tree.new(self, File.expand_path(File.dirname(__FILE__) + "/../../img"))
|
|
18
24
|
@builder["scrolledwindowFileTree"].add(@file_tree)
|
|
19
25
|
|
|
20
26
|
#add document notebook
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
@tabs = VR_Tabs.new(self)
|
|
28
|
+
@builder["boxTabs"].add(@tabs)
|
|
29
|
+
@tabs.show
|
|
23
30
|
|
|
24
31
|
#add shell textview
|
|
25
32
|
@shell = VR_TextShell.new(@tabs)
|
|
26
|
-
@builder["scrollShell"].add(@shell)
|
|
33
|
+
@builder["scrollShell"].add(@shell)
|
|
34
|
+
@shell.show
|
|
27
35
|
|
|
28
36
|
#add local gem tab
|
|
29
37
|
@gem_tree = VR_Local_Gem_Tree.new(self)
|
|
30
|
-
@builder['scrolledLocalGems'].add(@gem_tree)
|
|
38
|
+
@builder['scrolledLocalGems'].add(@gem_tree)
|
|
39
|
+
@gem_tree.show
|
|
40
|
+
|
|
31
41
|
#add remote gem tab
|
|
32
42
|
@remote_gem_tree = VR_Remote_Gem_Tree.new(self)
|
|
33
43
|
@builder["scrolledRemoteGems"].add(@remote_gem_tree)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
VR_Tools.copy_recursively(File.dirname(__FILE__) + "/../../skeleton/project", @proj_path)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
if not File.file?(@proj_path + "/" + VR_ENV::SETTINGS_FILE)
|
|
42
|
-
menuInstallExamples__activate if Dir.glob(ENV["HOME"] + File.join( "", "**", VR_ENV::SETTINGS_FILE)).size == 0
|
|
43
|
-
toolOpenFolder_clicked
|
|
44
|
-
else
|
|
45
|
-
load_project(@proj_path)
|
|
44
|
+
@remote_gem_tree.show
|
|
45
|
+
|
|
46
|
+
unless project_valid?(@proj_path)
|
|
47
|
+
toolOpenFolder__clicked
|
|
46
48
|
end
|
|
47
|
-
# splash.destroy_window()cvnc
|
|
48
|
-
# show_window() if not $VR_ENV.nil?
|
|
49
|
-
end
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
50
|
+
if project_valid?(@proj_path)
|
|
51
|
+
load_project
|
|
52
|
+
else
|
|
53
|
+
exit
|
|
54
|
+
end
|
|
55
|
+
$splash.destroy if $splash
|
|
56
|
+
Gtk.main_quit
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def project_valid?(proj_path)
|
|
61
|
+
return false if proj_path.nil? or proj_path == ""
|
|
62
|
+
return false if ENV["HOME"] == proj_path
|
|
63
|
+
return false unless File.directory?(proj_path)
|
|
64
|
+
return false unless File.file?(File.join(proj_path, VR_ENV::SETTINGS_FILE))
|
|
66
65
|
return true
|
|
67
66
|
end
|
|
68
67
|
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
|
|
69
|
+
def load_project() # assumes valid_project? is true
|
|
70
|
+
FileUtils.cd(@proj_path)
|
|
71
71
|
@builder['window1'].title = "VR: " + File.basename(Dir.pwd)
|
|
72
72
|
@builder["labelStatus"].label = Dir.pwd
|
|
73
|
-
|
|
74
|
-
$VR_ENV_GLOBAL = VR_ENV_GLOBAL.load_yaml()
|
|
73
|
+
@file_tree.root = @proj_path
|
|
75
74
|
@file_tree.refresh()
|
|
76
|
-
load_state()
|
|
77
75
|
@shell.buffer.text = ""
|
|
76
|
+
# if default project invalid, set default
|
|
77
|
+
unless project_valid?($VR_ENV_GLOBAL.default_project)
|
|
78
|
+
$VR_ENV_GLOBAL.default_project = @proj_path
|
|
79
|
+
VR::save_yaml($VR_ENV_GLOBAL)
|
|
80
|
+
end
|
|
81
|
+
load_state()
|
|
78
82
|
end
|
|
79
|
-
|
|
80
|
-
def
|
|
81
|
-
return nil unless proj_path
|
|
82
|
-
path = File.join(Dir.pwd,proj_path)
|
|
83
|
-
FileUtils.mkdir(path) unless File.directory?(path)
|
|
84
|
-
return path
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def toolBack_clicked
|
|
88
|
-
@tabs.back()
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def toolOpenFolder_clicked
|
|
83
|
+
|
|
84
|
+
def toolOpenFolder__clicked(*a)
|
|
92
85
|
save_state
|
|
93
|
-
return unless @tabs.try_to_save_all()
|
|
86
|
+
return unless @tabs.try_to_save_all(:ask=>true)
|
|
94
87
|
old_path = @proj_path
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
load_project(@proj_path)
|
|
100
|
-
else
|
|
101
|
-
@proj_path = old_path
|
|
88
|
+
OpenProject.new(self).show_glade(self)
|
|
89
|
+
if old_path != @proj_path
|
|
90
|
+
@tabs.try_to_save_all(:ask => false, :close => true)
|
|
91
|
+
load_project()
|
|
102
92
|
end
|
|
103
93
|
end
|
|
104
94
|
|
|
105
|
-
def notebookTree_changed #file, gem notebook
|
|
95
|
+
def notebookTree_changed #file, gem notebook
|
|
106
96
|
case @builder['notebookTree'].page
|
|
107
97
|
when 1 then @gem_tree.refresh()
|
|
108
98
|
when 2 then @remote_gem_tree.refresh(false) #false = don't force refresh
|
|
@@ -111,44 +101,41 @@ class VR_Main
|
|
|
111
101
|
|
|
112
102
|
def window1_key_press(win, key)
|
|
113
103
|
case x = key.keyval
|
|
114
|
-
when 65474 then
|
|
115
|
-
# when 115 then
|
|
104
|
+
when 65474 then toolRun__clicked # F5
|
|
105
|
+
# when 115 then toolSave__clicked # Ctrl-S
|
|
116
106
|
end
|
|
117
107
|
end
|
|
118
|
-
|
|
119
|
-
def menuCreateLauncher__activate(*a)
|
|
120
|
-
VR_Tools.create_desktop_launcher
|
|
121
|
-
end
|
|
122
108
|
|
|
123
109
|
def menuCloseAll__activate(*a)
|
|
124
|
-
@tabs.
|
|
110
|
+
@tabs.try_to_save_all(:close=>true)
|
|
125
111
|
end
|
|
126
112
|
|
|
127
113
|
def menuSettings__activate(*a)
|
|
128
|
-
$VR_ENV.
|
|
114
|
+
$VR_ENV.show_glade(self)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def menuGlobalSettings__activate(*a)
|
|
118
|
+
$VR_ENV_GLOBAL.show_glade(self)
|
|
119
|
+
@tabs.update_style_all()
|
|
129
120
|
end
|
|
130
|
-
|
|
131
|
-
def menuGlobalSettings__activate(*a)
|
|
132
|
-
$VR_ENV_GLOBAL.show()
|
|
133
|
-
@tabs.update_style_all()
|
|
134
|
-
end
|
|
135
121
|
|
|
136
122
|
def menuWWWRubygems__activate(*a)
|
|
137
123
|
VR_Tools.popen("#{$VR_ENV_GLOBAL.browser} https://rubygems.org/users/new")
|
|
138
|
-
end
|
|
139
|
-
|
|
124
|
+
end
|
|
125
|
+
|
|
140
126
|
def menuSaveAll__activate(*a)
|
|
141
|
-
@tabs.try_to_save_all(false) # don't prompt
|
|
127
|
+
@tabs.try_to_save_all(:ask=>false) # don't prompt
|
|
142
128
|
end
|
|
143
129
|
|
|
144
130
|
def menuNew__activate(*a)
|
|
145
131
|
@tabs.load_tab()
|
|
146
132
|
end
|
|
133
|
+
|
|
147
134
|
def menuSaveAs__activate(*a)
|
|
148
135
|
@tabs.docs[@tabs.page].save_as()
|
|
149
136
|
end
|
|
150
137
|
|
|
151
|
-
def
|
|
138
|
+
def toolRefresh__clicked(*a)
|
|
152
139
|
case @builder['notebookTree'].page
|
|
153
140
|
when 0 then @file_tree.refresh()
|
|
154
141
|
when 1 then @gem_tree.refresh()
|
|
@@ -156,77 +143,68 @@ class VR_Main
|
|
|
156
143
|
end
|
|
157
144
|
end
|
|
158
145
|
|
|
159
|
-
def
|
|
160
|
-
@tabs.docs[@tabs.page].try_to_save(false)
|
|
146
|
+
def toolSave__clicked(*a) # saves open tab
|
|
147
|
+
@tabs.docs[@tabs.page].try_to_save(false) # false = don't ask
|
|
161
148
|
end
|
|
162
149
|
|
|
163
|
-
|
|
164
|
-
#returns false to abort!
|
|
165
|
-
|
|
166
|
-
|
|
167
150
|
def menuNewWindow__activate(*a)
|
|
168
151
|
fn = File.dirname(__FILE__) + "/../../skeleton/document/NewWindow.rb"
|
|
169
152
|
@tabs.load_tab()
|
|
170
153
|
@tabs.set_contents(File.open(fn).read)
|
|
171
154
|
end
|
|
172
|
-
|
|
155
|
+
|
|
173
156
|
def menuNewProject__activate(*a)
|
|
174
157
|
save_state
|
|
175
|
-
return unless @tabs.try_to_save_all()
|
|
158
|
+
return unless @tabs.try_to_save_all(:ask=>true)
|
|
176
159
|
old_path = @proj_path
|
|
177
|
-
NewProjectGUI.new(self).
|
|
178
|
-
if
|
|
179
|
-
@tabs.
|
|
180
|
-
load_project
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
160
|
+
NewProjectGUI.new(self).show_glade(self)
|
|
161
|
+
if old_path != @proj_path
|
|
162
|
+
@tabs.try_to_save_all(:ask=>false, :close=>true)
|
|
163
|
+
load_project
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def toolHome__clicked(*a)
|
|
168
|
+
default_project = $VR_ENV_GLOBAL.default_project
|
|
169
|
+
return if default_project == @proj_path
|
|
170
|
+
if not project_valid?(default_project)
|
|
171
|
+
alert("Your default home project is invalid:\n\n<b>#{default_project}</b>.\n\nGo to: Tools > Global Settings to set it.",
|
|
172
|
+
parent: self, headline: "Invalid Home Project")
|
|
173
|
+
return
|
|
174
|
+
end
|
|
175
|
+
return unless @tabs.try_to_save_all( ask: true, close: true)
|
|
176
|
+
@proj_path = default_project
|
|
177
|
+
load_project
|
|
184
178
|
end
|
|
185
|
-
|
|
186
|
-
def
|
|
187
|
-
|
|
188
|
-
# path = File.join(ENV["HOME"], "visualruby_backup", Dir.pwd.gsub(ENV["HOME"], ""))
|
|
179
|
+
|
|
180
|
+
def toolBackUp__clicked(*a)
|
|
181
|
+
return unless @tabs.try_to_save_all(:ask=>true)
|
|
189
182
|
VR_Tools.back_up()
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
# def toolBackUp_clicked
|
|
194
|
-
# return unless @tabs.try_to_save_all()
|
|
195
|
-
# path = $VR_ENV.backup_path
|
|
196
|
-
# return if path.nil?
|
|
197
|
-
# if File.directory?(path) and path.gsub('\\', '/').include?(ENV["HOME"])
|
|
198
|
-
# VR_Tools.back_up(Dir.pwd, path)
|
|
199
|
-
# VR::Dialog.message_box("Files backed up to: \n\n" + path)
|
|
200
|
-
# else
|
|
201
|
-
# VR::Dialog.message_box("Backup path must be subdirecory of #{ENV['HOME']}:\n\n InValid: " + path)
|
|
202
|
-
# menuSettings__activate
|
|
203
|
-
# end
|
|
204
|
-
# end
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
def toolIndent_clicked
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def toolIndent__clicked(*a)
|
|
208
186
|
@tabs.docs[@tabs.page].indent($VR_ENV_GLOBAL.tab_spaces)
|
|
209
187
|
end
|
|
210
188
|
|
|
211
|
-
def
|
|
189
|
+
def toolUnIndent__clicked(*a)
|
|
212
190
|
@tabs.docs[@tabs.page].unindent($VR_ENV_GLOBAL.tab_spaces)
|
|
213
191
|
end
|
|
214
192
|
|
|
215
|
-
def
|
|
193
|
+
def toolComment__clicked(*a)
|
|
216
194
|
@tabs.docs[@tabs.page].comment()
|
|
217
195
|
end
|
|
218
196
|
|
|
219
|
-
def
|
|
197
|
+
def toolUnComment__clicked(*a)
|
|
220
198
|
@tabs.docs[@tabs.page].un_comment()
|
|
221
199
|
end
|
|
222
200
|
|
|
223
|
-
def
|
|
201
|
+
def toolRun__clicked(*a)
|
|
224
202
|
run_command($VR_ENV.run_command_line)
|
|
225
203
|
end
|
|
226
204
|
|
|
227
205
|
def run_command(cmd)
|
|
228
206
|
save_state()
|
|
229
|
-
return unless @tabs.try_to_save_all(false) # false = don't prompt for changes to files
|
|
207
|
+
return unless @tabs.try_to_save_all(:ask => false) # false = don't prompt for changes to files
|
|
230
208
|
cur_dir = Dir.pwd
|
|
231
209
|
result = "\n#{cur_dir}$ #{cmd}\n"
|
|
232
210
|
result += `#{cmd} 2>&1`
|
|
@@ -235,30 +213,33 @@ class VR_Main
|
|
|
235
213
|
end
|
|
236
214
|
|
|
237
215
|
def save_state
|
|
238
|
-
|
|
216
|
+
return unless $VR_ENV
|
|
239
217
|
$VR_ENV.width, $VR_ENV.height = @builder["window1"].size()
|
|
240
218
|
$VR_ENV.panel_pos = @builder["panelMain"].position
|
|
219
|
+
$VR_ENV.notebook_panel_position = @builder["panelNotebook"].position
|
|
241
220
|
$VR_ENV.open_folders = @file_tree.get_open_folders()
|
|
242
221
|
$VR_ENV.open_files = @tabs.get_open_fn()
|
|
243
222
|
$VR_ENV.current_file = @tabs.docs[@tabs.page].full_path_file
|
|
244
|
-
|
|
223
|
+
$VR_ENV.current_line = @tabs.docs[@tabs.page].line_at_cursor()
|
|
224
|
+
VR::save_yaml($VR_ENV)
|
|
245
225
|
end
|
|
246
226
|
|
|
247
227
|
def load_state
|
|
228
|
+
$VR_ENV = VR::load_yaml(:class => VR_ENV, :file_name => VR_ENV::SETTINGS_FILE)
|
|
248
229
|
@builder["window1"].resize($VR_ENV.width, $VR_ENV.height)
|
|
249
230
|
@builder['panelMain'].set_position($VR_ENV.panel_pos)
|
|
250
|
-
|
|
231
|
+
@builder["panelNotebook"].set_position($VR_ENV.notebook_panel_position)
|
|
251
232
|
@tabs.open_file_names($VR_ENV.open_files)
|
|
252
|
-
@tabs.switch_to($VR_ENV.current_file)
|
|
253
233
|
@file_tree.open_folders($VR_ENV.open_folders)
|
|
254
|
-
@
|
|
234
|
+
@tabs.load_tab($VR_ENV.current_file)
|
|
235
|
+
@tabs.docs[@tabs.page].jump_to_line($VR_ENV.current_line)
|
|
255
236
|
end
|
|
256
237
|
|
|
257
238
|
def menuCreateGemspec__activate(*a)
|
|
258
239
|
if file_name = VR_Tools.create_gemspec()
|
|
259
240
|
@tabs.destroy_file_tab(file_name)
|
|
260
241
|
@tabs.load_tab(file_name)
|
|
261
|
-
@file_tree.
|
|
242
|
+
@file_tree.refresh()
|
|
262
243
|
end
|
|
263
244
|
end
|
|
264
245
|
|
|
@@ -275,7 +256,7 @@ class VR_Main
|
|
|
275
256
|
end
|
|
276
257
|
|
|
277
258
|
def buttonReplace_clicked
|
|
278
|
-
@tabs.docs[@tabs.page].replace(@builder[
|
|
259
|
+
@tabs.docs[@tabs.page].replace(@builder[:entryReplace].text)
|
|
279
260
|
end
|
|
280
261
|
|
|
281
262
|
def entryFind_key_press(me, evt)
|
|
@@ -289,20 +270,23 @@ class VR_Main
|
|
|
289
270
|
|
|
290
271
|
def menuInstallExamples__activate(*a)
|
|
291
272
|
path = File.join(ENV["HOME"], "", "visualruby", "examples")
|
|
292
|
-
VR_Tools.copy_recursively(File.expand_path(File.join(File.dirname(__FILE__),"","..","..","
|
|
293
|
-
|
|
273
|
+
VR_Tools.copy_recursively(File.expand_path(File.join(File.dirname(__FILE__),"","..","..","examples")), path)
|
|
274
|
+
alert("The example projects are installed in this folder:\n\n<b>#{path}</b>\n\n "+
|
|
275
|
+
"Use your <b>/home/visualruby</b> folder for all your visualruby projects.",
|
|
276
|
+
:parent => self,
|
|
277
|
+
:headline => "Installing Example Projects...",
|
|
278
|
+
:width => 500)
|
|
294
279
|
end
|
|
295
280
|
|
|
296
|
-
#needed so tabs can be saved
|
|
297
|
-
def
|
|
281
|
+
# needed so tabs can be saved, called before destroy, must return false to close wndow.
|
|
282
|
+
def window1__delete_event(*args)
|
|
298
283
|
save_state
|
|
299
|
-
return true unless @tabs.try_to_save_all()
|
|
284
|
+
return true unless @tabs.try_to_save_all(:ask=>true)
|
|
300
285
|
return false #ok to close
|
|
301
286
|
end
|
|
302
287
|
|
|
303
|
-
def
|
|
304
|
-
|
|
305
|
-
# exit! # note exit makes it not spit out buffer
|
|
288
|
+
def menuQuit__activate(*a)
|
|
289
|
+
@builder[:window1].destroy
|
|
306
290
|
end
|
|
307
291
|
|
|
308
292
|
end
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
1
|
class VR_Remote_Gem_Tree < GemTree
|
|
3
2
|
|
|
4
|
-
# PIX = Gdk::Pixbuf.new(File.dirname(__FILE__) + '/../../img/rb.png')
|
|
5
|
-
|
|
6
3
|
include GladeGUI
|
|
7
4
|
|
|
8
5
|
def initialize(main)
|
|
9
6
|
super()
|
|
10
7
|
@main = main
|
|
11
|
-
# set_title(PIX => "Gems on rubygems.org")
|
|
12
8
|
@gems = Hash.new
|
|
13
|
-
load_glade(
|
|
9
|
+
load_glade() #for pop-up menu
|
|
10
|
+
parse_signals()
|
|
14
11
|
end
|
|
15
|
-
|
|
16
12
|
|
|
17
13
|
def refresh(force = true)
|
|
18
14
|
return if @t
|
|
@@ -35,29 +31,20 @@ class VR_Remote_Gem_Tree < GemTree
|
|
|
35
31
|
|
|
36
32
|
def selected_gem
|
|
37
33
|
row = self.selection.selected[1].split(" (")
|
|
38
|
-
# ver = row[1].gsub(")","")
|
|
39
34
|
@gems.detect { |gem| gem['name'] == row[0] } #and gem['version'] == ver}
|
|
40
35
|
end
|
|
41
36
|
|
|
42
|
-
def
|
|
37
|
+
def popOpenRubygemsPage__activate(*args)
|
|
43
38
|
gem = selected_gem()
|
|
44
39
|
VR_Tools.popen("#{$VR_ENV_GLOBAL.browser} #{gem['project_uri']}")
|
|
45
40
|
end
|
|
46
41
|
|
|
47
|
-
def
|
|
42
|
+
def popOpenHomepage__activate(*args)
|
|
48
43
|
gem = selected_gem()
|
|
49
44
|
VR_Tools.popen("#{$VR_ENV_GLOBAL.browser} #{gem['homepage_uri']}")
|
|
50
45
|
end
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
# if event.event_type == Gdk::Event::BUTTON_RELEASE
|
|
54
|
-
# if event.button == 3 # right mouse button
|
|
55
|
-
# @builder['popGemRemote'].popup(nil, nil, event.button, event.time)
|
|
56
|
-
# end
|
|
57
|
-
# end
|
|
58
|
-
# end
|
|
59
|
-
|
|
60
|
-
def popYank_clicked
|
|
47
|
+
def popYank__activate(*args)
|
|
61
48
|
name, ver = get_name_ver(selection.selected[1])
|
|
62
49
|
reply = @api.yank_gem(name, ver)
|
|
63
50
|
@main.shell.buffer.text = "Yanking gem: #{name} #{ver}\n" + reply
|
|
@@ -67,4 +54,4 @@ class VR_Remote_Gem_Tree < GemTree
|
|
|
67
54
|
end
|
|
68
55
|
|
|
69
56
|
|
|
70
|
-
|
|
57
|
+
|