ruber 0.0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +339 -0
- data/INSTALL +137 -0
- data/LICENSE +8 -0
- data/bin/ruber +65 -0
- data/data/share/apps/ruber/core_components.yaml +31 -0
- data/data/share/apps/ruber/ruberui.rc +109 -0
- data/data/share/icons/ruber.png +0 -0
- data/data/share/pixmaps/ruby.png +0 -0
- data/icons/ruber-16.png +0 -0
- data/icons/ruber-32.png +0 -0
- data/icons/ruber-48.png +0 -0
- data/icons/ruber-8.png +0 -0
- data/lib/ruber/application/application.rb +288 -0
- data/lib/ruber/application/plugin.yaml +11 -0
- data/lib/ruber/component_manager.rb +899 -0
- data/lib/ruber/config/config.rb +82 -0
- data/lib/ruber/config/plugin.yaml +3 -0
- data/lib/ruber/document_project.rb +209 -0
- data/lib/ruber/documents/document_list.rb +416 -0
- data/lib/ruber/documents/plugin.yaml +4 -0
- data/lib/ruber/editor/document.rb +506 -0
- data/lib/ruber/editor/editor_view.rb +167 -0
- data/lib/ruber/editor/ktexteditor_wrapper.rb +202 -0
- data/lib/ruber/exception_widgets.rb +245 -0
- data/lib/ruber/external_program_plugin.rb +397 -0
- data/lib/ruber/filtered_output_widget.rb +342 -0
- data/lib/ruber/gui_states_handler.rb +231 -0
- data/lib/ruber/kde_config_option_backend.rb +167 -0
- data/lib/ruber/kde_sugar.rb +249 -0
- data/lib/ruber/main_window/choose_plugins_dlg.rb +353 -0
- data/lib/ruber/main_window/main_window.rb +524 -0
- data/lib/ruber/main_window/main_window_actions.rb +537 -0
- data/lib/ruber/main_window/main_window_internal.rb +239 -0
- data/lib/ruber/main_window/open_file_in_project_dlg.rb +212 -0
- data/lib/ruber/main_window/output_color_widget.rb +35 -0
- data/lib/ruber/main_window/plugin.yaml +58 -0
- data/lib/ruber/main_window/save_modified_files_dlg.rb +89 -0
- data/lib/ruber/main_window/status_bar.rb +156 -0
- data/lib/ruber/main_window/ui/choose_plugins_widget.rb +90 -0
- data/lib/ruber/main_window/ui/choose_plugins_widget.ui +77 -0
- data/lib/ruber/main_window/ui/main_window_settings_widget.rb +108 -0
- data/lib/ruber/main_window/ui/main_window_settings_widget.ui +89 -0
- data/lib/ruber/main_window/ui/new_project_widget.rb +119 -0
- data/lib/ruber/main_window/ui/new_project_widget.ui +178 -0
- data/lib/ruber/main_window/ui/open_file_in_project_dlg.rb +109 -0
- data/lib/ruber/main_window/ui/open_file_in_project_dlg.ui +168 -0
- data/lib/ruber/main_window/ui/output_color_widget.rb +241 -0
- data/lib/ruber/main_window/ui/output_color_widget.ui +204 -0
- data/lib/ruber/main_window/workspace.rb +442 -0
- data/lib/ruber/output_widget.rb +1093 -0
- data/lib/ruber/plugin.rb +264 -0
- data/lib/ruber/plugin_like.rb +589 -0
- data/lib/ruber/plugin_specification.rb +106 -0
- data/lib/ruber/plugin_specification_reader.rb +451 -0
- data/lib/ruber/project.rb +493 -0
- data/lib/ruber/project_backend.rb +105 -0
- data/lib/ruber/projects/plugin.yaml +11 -0
- data/lib/ruber/projects/project_files_list.rb +314 -0
- data/lib/ruber/projects/project_files_widget.rb +301 -0
- data/lib/ruber/projects/project_list.rb +314 -0
- data/lib/ruber/projects/ui/project_files_rule_chooser_widget.rb +74 -0
- data/lib/ruber/projects/ui/project_files_rule_chooser_widget.ui +61 -0
- data/lib/ruber/projects/ui/project_files_widget.rb +117 -0
- data/lib/ruber/projects/ui/project_files_widget.ui +123 -0
- data/lib/ruber/qt_sugar.rb +673 -0
- data/lib/ruber/settings_container.rb +515 -0
- data/lib/ruber/settings_dialog.rb +244 -0
- data/lib/ruber/settings_dialog_manager.rb +503 -0
- data/lib/ruber/utils.rb +414 -0
- data/lib/ruber/yaml_option_backend.rb +159 -0
- data/outsider_files +15 -0
- data/plugins/autosave/autosave.rb +404 -0
- data/plugins/autosave/plugin.yaml +16 -0
- data/plugins/autosave/ui/autosave_config_widget.rb +83 -0
- data/plugins/autosave/ui/autosave_config_widget.ui +68 -0
- data/plugins/command/command.png +0 -0
- data/plugins/command/command.rb +74 -0
- data/plugins/command/plugin.yaml +11 -0
- data/plugins/find_in_files/find_in_files.rb +337 -0
- data/plugins/find_in_files/find_in_files_dlg.rb +411 -0
- data/plugins/find_in_files/find_in_files_ui.rc +11 -0
- data/plugins/find_in_files/find_in_files_widgets.rb +485 -0
- data/plugins/find_in_files/plugin.yaml +23 -0
- data/plugins/find_in_files/ui/config_widget.rb +58 -0
- data/plugins/find_in_files/ui/config_widget.ui +41 -0
- data/plugins/find_in_files/ui/find_in_files_widget.rb +260 -0
- data/plugins/find_in_files/ui/find_in_files_widget.ui +324 -0
- data/plugins/project_browser/plugin.yaml +10 -0
- data/plugins/project_browser/project_browser.rb +245 -0
- data/plugins/rake/plugin.yaml +39 -0
- data/plugins/rake/rake.png +0 -0
- data/plugins/rake/rake.rb +567 -0
- data/plugins/rake/rake_extension.rb +153 -0
- data/plugins/rake/rake_widgets.rb +615 -0
- data/plugins/rake/rakeui.rc +27 -0
- data/plugins/rake/ui/add_quick_task_widget.rb +71 -0
- data/plugins/rake/ui/add_quick_task_widget.ui +59 -0
- data/plugins/rake/ui/choose_task_widget.rb +77 -0
- data/plugins/rake/ui/choose_task_widget.ui +72 -0
- data/plugins/rake/ui/config_widget.rb +127 -0
- data/plugins/rake/ui/config_widget.ui +123 -0
- data/plugins/rake/ui/project_widget.rb +217 -0
- data/plugins/rake/ui/project_widget.ui +246 -0
- data/plugins/rspec/plugin.yaml +30 -0
- data/plugins/rspec/rspec.png +0 -0
- data/plugins/rspec/rspec.rb +945 -0
- data/plugins/rspec/rspec.svg +90 -0
- data/plugins/rspec/rspecui.rc +20 -0
- data/plugins/rspec/ruber_rspec_formatter.rb +312 -0
- data/plugins/rspec/ui/rspec_project_widget.rb +170 -0
- data/plugins/rspec/ui/rspec_project_widget.ui +193 -0
- data/plugins/ruby_development/plugin.yaml +27 -0
- data/plugins/ruby_development/ruby_development.png +0 -0
- data/plugins/ruby_development/ruby_development.rb +453 -0
- data/plugins/ruby_development/ruby_developmentui.rc +19 -0
- data/plugins/ruby_development/ui/project_widget.rb +112 -0
- data/plugins/ruby_development/ui/project_widget.ui +108 -0
- data/plugins/ruby_runner/config_widget.rb +116 -0
- data/plugins/ruby_runner/plugin.yaml +26 -0
- data/plugins/ruby_runner/project_widget.rb +62 -0
- data/plugins/ruby_runner/ruby.png +0 -0
- data/plugins/ruby_runner/ruby_interpretersui.rc +26 -0
- data/plugins/ruby_runner/ruby_runner.rb +411 -0
- data/plugins/ruby_runner/ui/config_widget.rb +92 -0
- data/plugins/ruby_runner/ui/config_widget.ui +91 -0
- data/plugins/ruby_runner/ui/project_widget.rb +60 -0
- data/plugins/ruby_runner/ui/project_widget.ui +48 -0
- data/plugins/ruby_runner/ui/ruby_runnner_plugin_option_widget.rb +59 -0
- data/plugins/ruby_runner/ui/ruby_runnner_plugin_option_widget.ui +44 -0
- data/plugins/state/plugin.yaml +28 -0
- data/plugins/state/state.rb +520 -0
- data/plugins/state/ui/config_widget.rb +92 -0
- data/plugins/state/ui/config_widget.ui +89 -0
- data/plugins/syntax_checker/plugin.yaml +18 -0
- data/plugins/syntax_checker/syntax_checker.rb +662 -0
- data/ruber.desktop +10 -0
- data/spec/annotation_model_spec.rb +174 -0
- data/spec/common.rb +119 -0
- data/spec/component_manager_spec.rb +1259 -0
- data/spec/document_list_spec.rb +626 -0
- data/spec/document_project_spec.rb +373 -0
- data/spec/document_spec.rb +779 -0
- data/spec/editor_view_spec.rb +167 -0
- data/spec/external_program_plugin_spec.rb +676 -0
- data/spec/filtered_output_widget_spec.rb +642 -0
- data/spec/gui_states_handler_spec.rb +304 -0
- data/spec/kde_config_option_backend_spec.rb +214 -0
- data/spec/kde_sugar_spec.rb +101 -0
- data/spec/ktexteditor_wrapper_spec.rb +305 -0
- data/spec/output_widget_spec.rb +1703 -0
- data/spec/plugin_spec.rb +1393 -0
- data/spec/plugin_specification_reader_spec.rb +1765 -0
- data/spec/plugin_specification_spec.rb +401 -0
- data/spec/project_backend_spec.rb +172 -0
- data/spec/project_files_list_spec.rb +401 -0
- data/spec/project_list_spec.rb +511 -0
- data/spec/project_spec.rb +990 -0
- data/spec/qt_sugar_spec.rb +328 -0
- data/spec/settings_container_spec.rb +617 -0
- data/spec/settings_dialog_manager_spec.rb +773 -0
- data/spec/settings_dialog_spec.rb +419 -0
- data/spec/state_spec.rb +991 -0
- data/spec/utils_spec.rb +406 -0
- data/spec/workspace_spec.rb +869 -0
- data/spec/yaml_option_backend_spec.rb +246 -0
- metadata +284 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright (C) 2010 by Stefano Crocco
|
3
|
+
stefano.crocco@alice.it
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it andor modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this program; if not, write to the
|
17
|
+
Free Software Foundation, Inc.,
|
18
|
+
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
19
|
+
=end
|
20
|
+
|
21
|
+
require_relative 'ui/output_color_widget'
|
22
|
+
|
23
|
+
module Ruber
|
24
|
+
|
25
|
+
class OutputColorWidget < Qt::Widget
|
26
|
+
|
27
|
+
def initialize parent = nil
|
28
|
+
super
|
29
|
+
@ui = Ui::OutputColorWidget.new
|
30
|
+
@ui.setup_ui self
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
name: main_window
|
2
|
+
require: [main_window, output_color_widget]
|
3
|
+
class: Ruber::MainWindow
|
4
|
+
config_options:
|
5
|
+
general:
|
6
|
+
default_script_directory: {type: path, default: 'KDE::GlobalSettings.document_path'}
|
7
|
+
default_project_directory: {type: path, default: 'KDE::GlobalSettings.document_path'}
|
8
|
+
output_font: {default: 'Qt::Font.new("Courier",10)'}
|
9
|
+
auto_annotations: {type: bool, default: 'true'}
|
10
|
+
wrap_output: {type: bool, default: 'true'}
|
11
|
+
output_colors:
|
12
|
+
message: {default: 'Qt::Color.new(Qt.black)'}
|
13
|
+
message_good: {default: 'Qt::Color.new(Qt.blue)'}
|
14
|
+
message_bad: {default: 'Qt::Color.new(Qt.dark_magenta)'}
|
15
|
+
error: {default: 'Qt::Color.new(Qt.red)'}
|
16
|
+
error1: {default: 'Qt::Color.new(Qt.dark_red)'}
|
17
|
+
error2: {default: 'Qt::Color.new(Qt.magenta)'}
|
18
|
+
output: {default: 'Qt::Color.new(Qt.dark_green)'}
|
19
|
+
output1: {default: 'Qt::Color.new(Qt.dark_cyan)'}
|
20
|
+
output2: {default: 'Qt::Color.new(Qt.dark_yellow)'}
|
21
|
+
warning: {default: 'Qt::Color.new(Qt.gray)'}
|
22
|
+
warning1: {default: 'Qt::Color.new(Qt.dark_gray)'}
|
23
|
+
warning2: {default: 'Qt::Color.new(Qt.light_gray)'}
|
24
|
+
main_window:
|
25
|
+
widget_size: {key: Central widget size, default: "Qt::Size.new"}
|
26
|
+
window_size: {key: Size, default: 'Qt::Size.new(400,500)'}
|
27
|
+
h_splitter: {key: Horizontal splitter, type: string list, default: "['20', '60', '20']"}
|
28
|
+
v_splitter: {key: Vertical splitter, type: string list, default: "['80', '20']"}
|
29
|
+
workspace:
|
30
|
+
tools_sizes: {default: {}}
|
31
|
+
config_widgets:
|
32
|
+
- {caption: General, pixmap: configure, class: Ruber::MainWindowSettingsWidget}
|
33
|
+
- {caption: Colors, pixmap: fill-color, class: Ruber::OutputColorWidget}
|
34
|
+
actions:
|
35
|
+
file_new: {standard_action: open_new, slot: new_file()}
|
36
|
+
file_open: {standard_action: open, slot: open_file()}
|
37
|
+
file_open_recent: {standard_action: open_recent, signal: urlSelected(KUrl), slot: open_recent_file(KUrl)}
|
38
|
+
file-save_all: {text: Save &All, icon: document-save-all, slot: save_all()}
|
39
|
+
file_close: {standard_action: close, slot: close_current_editor()}
|
40
|
+
file-close_all: {text: Clos&e All, slot: close_all_views()}
|
41
|
+
file-close_other: {text: Close All O&ther, slot: close_other_views()}
|
42
|
+
file_quit: {standard_action: quit, receiver: 'Ruber[:app]', slot: closeAllWindows()}
|
43
|
+
go_back: {standard_action: back, slot: previous_document(), shortcut: Alt+Left}
|
44
|
+
go_forward: {standard_action: forward, slot: next_document(), shortcut: Alt+Right}
|
45
|
+
view-activate_editor: {text: Activate &Editor, shortcut: F2, slot: focus_on_editor()}
|
46
|
+
view-toggle_left_tool_widget: {text: Toggle &Left Tool Widgets, slot: toggle_tool_widget()}
|
47
|
+
view-toggle_right_tool_widget: {text: Toggle &Right Tool Widgets, slot: toggle_tool_widget()}
|
48
|
+
view-toggle_bottom_tool_widget: {text: Toggle &Bottom Tool Widgets, slot: toggle_tool_widget()}
|
49
|
+
project-new: {text: '&New Project...', icon: document-new, slot: new_project()}
|
50
|
+
project-open: {text: '&Open Project...', icon: project-open, shortcut: Ctrl+Shift+O, slot: open_project()}
|
51
|
+
project-open_recent: {text: Open &Recent Project, icon: project-open, class: KDE::RecentFilesAction, signal: urlSelected(KUrl), slot: open_recent_project(KUrl)}
|
52
|
+
project-close: {text: '&Close Project', slot: close_current_project(), state: active_project_exists}
|
53
|
+
project-quick_open_file: {text: '&Quick Open File', icon: document-open, shortcut: Alt+Ctrl+O, slot: open_file_in_project(), state: active_project_exists}
|
54
|
+
project-configure: {text: Co&nfigure Project..., icon: configure, slot: configure_project(), state: active_project_exists}
|
55
|
+
options-choose_plugins: {text: C&hoose Plugins..., icon: preferences-plugin, slot: choose_plugins()}
|
56
|
+
options_configure: {standard_action: preferences, slot: preferences()}
|
57
|
+
configure_document: {text: Configure &Document, icon: configure, slot: configure_document(), state: current_document}
|
58
|
+
help_user_manual: {text: Ruber User &Manual, icon: help-contents, slot: show_user_manual()}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright (C) 2010 by Stefano Crocco
|
3
|
+
stefano.crocco@alice.it
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it andor modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this program; if not, write to the
|
17
|
+
Free Software Foundation, Inc.,
|
18
|
+
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
19
|
+
=end
|
20
|
+
|
21
|
+
module Ruber
|
22
|
+
|
23
|
+
class SaveModifiedFilesDlg < KDE::Dialog
|
24
|
+
|
25
|
+
attr_reader :save
|
26
|
+
def initialize docs, parent = nil
|
27
|
+
super parent
|
28
|
+
@save = true
|
29
|
+
@docs = docs
|
30
|
+
self.caption = "Save documents"
|
31
|
+
self.modal = true
|
32
|
+
create_buttons
|
33
|
+
self.main_widget = KDE::VBox.new self
|
34
|
+
Qt::Label.new KDE.i18n("The following documents have been modified. Do you want to save them before closing?"), main_widget
|
35
|
+
@document_list = Qt::TreeView.new main_widget
|
36
|
+
m = Qt::StandardItemModel.new @document_list
|
37
|
+
def m.flags idx
|
38
|
+
Qt::ItemIsSelectable|Qt::ItemIsEnabled|Qt::ItemIsUserCheckable
|
39
|
+
end
|
40
|
+
@document_list.model = m
|
41
|
+
@document_list.root_is_decorated = false
|
42
|
+
fill_list
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_save
|
46
|
+
res = []
|
47
|
+
m = @document_list.model
|
48
|
+
@docs.each_with_index do |d, i|
|
49
|
+
res << d if m.item(i, 0).checked?
|
50
|
+
end
|
51
|
+
res
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def create_buttons
|
57
|
+
self.buttons = Yes|No|Cancel
|
58
|
+
|
59
|
+
save = KDE::StandardGuiItem.save
|
60
|
+
save.text = KDE::i18n "&Save selected"
|
61
|
+
set_button_gui_item Yes, save
|
62
|
+
self.connect(SIGNAL('yesClicked()')) do
|
63
|
+
@save = true
|
64
|
+
done KDE::Dialog::Yes
|
65
|
+
end
|
66
|
+
|
67
|
+
set_button_gui_item No, KDE::StandardGuiItem.dont_save
|
68
|
+
self.connect(SIGNAL('noClicked()')) do
|
69
|
+
@save = false
|
70
|
+
done KDE::Dialog::No
|
71
|
+
end
|
72
|
+
|
73
|
+
cancel = KDE::StandardGuiItem.cancel
|
74
|
+
cancel.text = KDE::i18n "&Abort saving"
|
75
|
+
set_button_gui_item Cancel, cancel
|
76
|
+
end
|
77
|
+
|
78
|
+
def fill_list
|
79
|
+
@document_list.model.horizontal_header_labels = %w[Title Location]
|
80
|
+
@docs.each do | d |
|
81
|
+
row = [Qt::StandardItem.new(d.document_name), Qt::StandardItem.new(d.path)|| '']
|
82
|
+
row[0].checked = true
|
83
|
+
@document_list.model.append_row row
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright (C) 2010 by Stefano Crocco
|
3
|
+
stefano.crocco@alice.it
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it andor modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this program; if not, write to the
|
17
|
+
Free Software Foundation, Inc.,
|
18
|
+
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
19
|
+
=end
|
20
|
+
|
21
|
+
module Ruber
|
22
|
+
|
23
|
+
=begin rdoc
|
24
|
+
The Ruber status bar
|
25
|
+
=end
|
26
|
+
class StatusBar < KDE::StatusBar
|
27
|
+
|
28
|
+
slots 'display_information(const QString &)', 'update_cursor_position(KTextEditor::Cursor)',
|
29
|
+
'update_view_mode(const QString &)', 'update()', 'update_selection_mode(bool)',
|
30
|
+
'update_state()'
|
31
|
+
|
32
|
+
=begin rdoc
|
33
|
+
Creates a new StatusBar. _parent_ is the status bar's parent widget
|
34
|
+
=end
|
35
|
+
def initialize parent
|
36
|
+
super parent
|
37
|
+
@view = nil
|
38
|
+
@cursor_position_label = Qt::Label.new(self){self.margin = 3}
|
39
|
+
@status_label = Qt::Label.new self
|
40
|
+
@mode_label = Qt::Label.new(self){self.margin = 3}
|
41
|
+
@selection_mode_label = Qt::Label.new(self){self.margin = 3}
|
42
|
+
# @cursor_position_label.margin = 3
|
43
|
+
# @status_label.margin = 3
|
44
|
+
# @mode_label.margin = 3
|
45
|
+
# @selection_mode_label.margin = 3
|
46
|
+
# @status_label.margin = 3
|
47
|
+
add_widget @cursor_position_label
|
48
|
+
add_widget @status_label
|
49
|
+
add_widget @mode_label
|
50
|
+
add_widget @selection_mode_label
|
51
|
+
update
|
52
|
+
end
|
53
|
+
|
54
|
+
=begin rdoc
|
55
|
+
Associates an editor view with the status bar. This means that the status bar will
|
56
|
+
display information about that view.
|
57
|
+
|
58
|
+
_v_ can be the view to associate with the status bar or *nil*. If it's *nil*, the
|
59
|
+
status bar won't show anything
|
60
|
+
=end
|
61
|
+
def view= v
|
62
|
+
return if @view == v
|
63
|
+
if @view
|
64
|
+
disconnect @view, nil, self, nil
|
65
|
+
disconnect @view.document, nil, self, nil
|
66
|
+
clear_widgets
|
67
|
+
end
|
68
|
+
@view = v
|
69
|
+
if v
|
70
|
+
connect @view, SIGNAL('information_message(QString, QWidget*)'), self, SLOT('display_information(const QString &)')
|
71
|
+
connect @view, SIGNAL('cursor_position_changed(KTextEditor::Cursor, QWidget*)'), self, SLOT('update_cursor_position(KTextEditor::Cursor)')
|
72
|
+
connect @view, SIGNAL('view_mode_changed(QString, QWidget*)'), self, SLOT('update_view_mode(const QString &)')
|
73
|
+
connect @view, SIGNAL('selection_mode_changed(bool, QWidget*)'), self, SLOT('update_selection_mode(bool)')
|
74
|
+
connect @view.document, SIGNAL('modified_changed(bool, QObject*)'), self, SLOT('update_state()')
|
75
|
+
connect @view.document, SIGNAL('modified_on_disk(QObject*, bool, KTextEditor::ModificationInterface::ModifiedOnDiskReason)'), self, SLOT('update_state()')
|
76
|
+
update
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
=begin rdoc
|
81
|
+
Empties all the widgets in the status bar (it doesn't hide messages, though)
|
82
|
+
=end
|
83
|
+
def clear_widgets
|
84
|
+
@cursor_position_label.text = ''
|
85
|
+
@status_label.pixmap = Qt::Pixmap.new
|
86
|
+
@mode_label.text = ''
|
87
|
+
@selection_mode_label.text= ''
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
=begin rdoc
|
93
|
+
Update the various widget so they respect the view's status
|
94
|
+
=end
|
95
|
+
def update
|
96
|
+
if @view
|
97
|
+
pos = @view.cursor_position
|
98
|
+
update_cursor_position pos
|
99
|
+
update_view_mode @view.view_mode
|
100
|
+
update_selection_mode @view.block_selection?
|
101
|
+
else
|
102
|
+
update_cursor_position nil
|
103
|
+
update_view_mode nil
|
104
|
+
update_selection_mode nil
|
105
|
+
end
|
106
|
+
update_state
|
107
|
+
end
|
108
|
+
|
109
|
+
=begin rdoc
|
110
|
+
Displays the information emitted by the document associated with the view
|
111
|
+
=end
|
112
|
+
def display_information msg
|
113
|
+
show_message msg, 4000
|
114
|
+
end
|
115
|
+
|
116
|
+
=begin rdoc
|
117
|
+
Updates the cursor position
|
118
|
+
=end
|
119
|
+
def update_cursor_position pos
|
120
|
+
if pos
|
121
|
+
@cursor_position_label.text = "Line: #{pos.line+1} Col: #{pos.column+1}"
|
122
|
+
else @cursor_position_label.text = ''
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
=begin rdoc
|
127
|
+
Updates the view mode
|
128
|
+
=end
|
129
|
+
def update_view_mode mode
|
130
|
+
@mode_label.text = mode ? mode : ''
|
131
|
+
end
|
132
|
+
|
133
|
+
=begin rdoc
|
134
|
+
Updates the selection mode
|
135
|
+
=end
|
136
|
+
def update_selection_mode mode
|
137
|
+
@selection_mode_label.text = if mode.nil? then ''
|
138
|
+
elsif mode then 'BLOCK'
|
139
|
+
else 'LINE'
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
=begin rdoc
|
144
|
+
Updates the status icon
|
145
|
+
=end
|
146
|
+
def update_state
|
147
|
+
pix = if @view and ((d = @view.document).modified? or d.modified_on_disk?)
|
148
|
+
d.icon.pixmap(16)
|
149
|
+
else Qt::Pixmap.new(16, 16){|px| px.fill Qt::Color.new(Qt.transparent)}
|
150
|
+
end
|
151
|
+
@status_label.pixmap = pix
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
=begin
|
2
|
+
** Form generated from reading ui file 'choose_plugins_widget.ui'
|
3
|
+
**
|
4
|
+
** Created: ven ott 29 17:39:04 2010
|
5
|
+
** by: Qt User Interface Compiler version 4.7.0
|
6
|
+
**
|
7
|
+
** WARNING! All changes made in this file will be lost when recompiling ui file!
|
8
|
+
=end
|
9
|
+
|
10
|
+
class Ui_ChoosePluginsWidget
|
11
|
+
attr_reader :verticalLayout_2
|
12
|
+
attr_reader :groupBox_2
|
13
|
+
attr_reader :verticalLayout
|
14
|
+
attr_reader :plugins
|
15
|
+
attr_reader :groupBox
|
16
|
+
attr_reader :horizontalLayout
|
17
|
+
attr_reader :directories
|
18
|
+
|
19
|
+
def setupUi(choosePluginsWidget)
|
20
|
+
if choosePluginsWidget.objectName.nil?
|
21
|
+
choosePluginsWidget.objectName = "choosePluginsWidget"
|
22
|
+
end
|
23
|
+
choosePluginsWidget.resize(600, 546)
|
24
|
+
@verticalLayout_2 = Qt::VBoxLayout.new(choosePluginsWidget)
|
25
|
+
@verticalLayout_2.objectName = "verticalLayout_2"
|
26
|
+
@groupBox_2 = Qt::GroupBox.new(choosePluginsWidget)
|
27
|
+
@groupBox_2.objectName = "groupBox_2"
|
28
|
+
@sizePolicy = Qt::SizePolicy.new(Qt::SizePolicy::Preferred, Qt::SizePolicy::Preferred)
|
29
|
+
@sizePolicy.setHorizontalStretch(0)
|
30
|
+
@sizePolicy.setVerticalStretch(3)
|
31
|
+
@sizePolicy.heightForWidth = @groupBox_2.sizePolicy.hasHeightForWidth
|
32
|
+
@groupBox_2.sizePolicy = @sizePolicy
|
33
|
+
@verticalLayout = Qt::VBoxLayout.new(@groupBox_2)
|
34
|
+
@verticalLayout.objectName = "verticalLayout"
|
35
|
+
@plugins = Qt::TreeView.new(@groupBox_2)
|
36
|
+
@plugins.objectName = "plugins"
|
37
|
+
@plugins.alternatingRowColors = true
|
38
|
+
@plugins.rootIsDecorated = false
|
39
|
+
@plugins.allColumnsShowFocus = true
|
40
|
+
@plugins.wordWrap = true
|
41
|
+
|
42
|
+
@verticalLayout.addWidget(@plugins)
|
43
|
+
|
44
|
+
|
45
|
+
@verticalLayout_2.addWidget(@groupBox_2)
|
46
|
+
|
47
|
+
@groupBox = Qt::GroupBox.new(choosePluginsWidget)
|
48
|
+
@groupBox.objectName = "groupBox"
|
49
|
+
@sizePolicy1 = Qt::SizePolicy.new(Qt::SizePolicy::Preferred, Qt::SizePolicy::Preferred)
|
50
|
+
@sizePolicy1.setHorizontalStretch(0)
|
51
|
+
@sizePolicy1.setVerticalStretch(2)
|
52
|
+
@sizePolicy1.heightForWidth = @groupBox.sizePolicy.hasHeightForWidth
|
53
|
+
@groupBox.sizePolicy = @sizePolicy1
|
54
|
+
@horizontalLayout = Qt::HBoxLayout.new(@groupBox)
|
55
|
+
@horizontalLayout.objectName = "horizontalLayout"
|
56
|
+
@directories = KDE::EditListBox.new(@groupBox)
|
57
|
+
@directories.objectName = "directories"
|
58
|
+
|
59
|
+
@horizontalLayout.addWidget(@directories)
|
60
|
+
|
61
|
+
|
62
|
+
@verticalLayout_2.addWidget(@groupBox)
|
63
|
+
|
64
|
+
|
65
|
+
retranslateUi(choosePluginsWidget)
|
66
|
+
|
67
|
+
Qt::MetaObject.connectSlotsByName(choosePluginsWidget)
|
68
|
+
end # setupUi
|
69
|
+
|
70
|
+
def setup_ui(choosePluginsWidget)
|
71
|
+
setupUi(choosePluginsWidget)
|
72
|
+
end
|
73
|
+
|
74
|
+
def retranslateUi(choosePluginsWidget)
|
75
|
+
choosePluginsWidget.windowTitle = Qt::Application.translate("ChoosePluginsWidget", "Form", nil, Qt::Application::UnicodeUTF8)
|
76
|
+
@groupBox_2.title = Qt::Application.translate("ChoosePluginsWidget", "Plugins", nil, Qt::Application::UnicodeUTF8)
|
77
|
+
@groupBox.title = Qt::Application.translate("ChoosePluginsWidget", "Plugin directories", nil, Qt::Application::UnicodeUTF8)
|
78
|
+
end # retranslateUi
|
79
|
+
|
80
|
+
def retranslate_ui(choosePluginsWidget)
|
81
|
+
retranslateUi(choosePluginsWidget)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
module Ui
|
87
|
+
class ChoosePluginsWidget < Ui_ChoosePluginsWidget
|
88
|
+
end
|
89
|
+
end # module Ui
|
90
|
+
|
@@ -0,0 +1,77 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ui version="4.0">
|
3
|
+
<class>ChoosePluginsWidget</class>
|
4
|
+
<widget class="QWidget" name="ChoosePluginsWidget">
|
5
|
+
<property name="geometry">
|
6
|
+
<rect>
|
7
|
+
<x>0</x>
|
8
|
+
<y>0</y>
|
9
|
+
<width>600</width>
|
10
|
+
<height>546</height>
|
11
|
+
</rect>
|
12
|
+
</property>
|
13
|
+
<property name="windowTitle">
|
14
|
+
<string>Form</string>
|
15
|
+
</property>
|
16
|
+
<layout class="QVBoxLayout" name="verticalLayout_2">
|
17
|
+
<item>
|
18
|
+
<widget class="QGroupBox" name="groupBox_2">
|
19
|
+
<property name="sizePolicy">
|
20
|
+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
21
|
+
<horstretch>0</horstretch>
|
22
|
+
<verstretch>3</verstretch>
|
23
|
+
</sizepolicy>
|
24
|
+
</property>
|
25
|
+
<property name="title">
|
26
|
+
<string>Plugins</string>
|
27
|
+
</property>
|
28
|
+
<layout class="QVBoxLayout" name="verticalLayout">
|
29
|
+
<item>
|
30
|
+
<widget class="QTreeView" name="plugins">
|
31
|
+
<property name="alternatingRowColors">
|
32
|
+
<bool>true</bool>
|
33
|
+
</property>
|
34
|
+
<property name="rootIsDecorated">
|
35
|
+
<bool>false</bool>
|
36
|
+
</property>
|
37
|
+
<property name="allColumnsShowFocus">
|
38
|
+
<bool>true</bool>
|
39
|
+
</property>
|
40
|
+
<property name="wordWrap">
|
41
|
+
<bool>true</bool>
|
42
|
+
</property>
|
43
|
+
</widget>
|
44
|
+
</item>
|
45
|
+
</layout>
|
46
|
+
</widget>
|
47
|
+
</item>
|
48
|
+
<item>
|
49
|
+
<widget class="QGroupBox" name="groupBox">
|
50
|
+
<property name="sizePolicy">
|
51
|
+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
52
|
+
<horstretch>0</horstretch>
|
53
|
+
<verstretch>2</verstretch>
|
54
|
+
</sizepolicy>
|
55
|
+
</property>
|
56
|
+
<property name="title">
|
57
|
+
<string>Plugin directories</string>
|
58
|
+
</property>
|
59
|
+
<layout class="QHBoxLayout" name="horizontalLayout">
|
60
|
+
<item>
|
61
|
+
<widget class="KEditListBox" name="directories"/>
|
62
|
+
</item>
|
63
|
+
</layout>
|
64
|
+
</widget>
|
65
|
+
</item>
|
66
|
+
</layout>
|
67
|
+
</widget>
|
68
|
+
<customwidgets>
|
69
|
+
<customwidget>
|
70
|
+
<class>KEditListBox</class>
|
71
|
+
<extends>QGroupBox</extends>
|
72
|
+
<header>keditlistbox.h</header>
|
73
|
+
</customwidget>
|
74
|
+
</customwidgets>
|
75
|
+
<resources/>
|
76
|
+
<connections/>
|
77
|
+
</ui>
|