ruber 0.0.1.1
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.
- 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>
|