unixcmd 0.1.0 → 0.2.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.
- checksums.yaml +9 -9
- data/bin/unixcmd +81 -10
- data/data/forms/copydlg.glade +256 -0
- data/data/forms/mkdirdlg.glade +156 -0
- data/data/forms/movedlg.glade +141 -0
- data/data/forms/removedlg.glade +197 -0
- data/ext/gnome_get_filetype_icon/extconf.rb +5 -0
- data/lib/unixcmd/aux.rb +24 -3
- data/lib/unixcmd/cmd.rb +148 -142
- data/lib/unixcmd/copydlg.rb +79 -0
- data/lib/unixcmd/devel.rb +1 -0
- data/lib/unixcmd/dirview.rb +12 -11
- data/lib/unixcmd/mkdirdlg.rb +38 -0
- data/lib/unixcmd/movedlg.rb +36 -0
- data/lib/unixcmd/panel.rb +8 -2
- data/lib/unixcmd/removedlg.rb +62 -0
- data/lib/unixcmd/version.rb +2 -2
- metadata +21 -10
data/lib/unixcmd/cmd.rb
CHANGED
@@ -1,17 +1,29 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'thread'
|
4
|
+
|
5
|
+
|
1
6
|
$accels = Gtk::AccelGroup.new
|
2
7
|
|
3
8
|
$actMap = Hash.new
|
4
9
|
|
5
|
-
|
10
|
+
$actMap['<unixcmd>/panel/reload'] = Proc.new { $wnd.curpanel.reload }
|
6
11
|
|
7
|
-
|
8
|
-
|
9
|
-
|
12
|
+
$actMap['<unixcmd>/file/copy'] = Proc.new do
|
13
|
+
cmd_file_copy $wnd.curpanel.selection, $wnd.curpanel.path, $wnd.otherpanel.path
|
14
|
+
end
|
10
15
|
|
11
|
-
$actMap['<unixcmd>/
|
16
|
+
$actMap['<unixcmd>/file/move'] = Proc.new do
|
17
|
+
cmd_file_move $wnd.curpanel.selection, $wnd.curpanel.path, $wnd.otherpanel.path
|
18
|
+
end
|
19
|
+
|
20
|
+
$actMap['<unixcmd>/file/remove'] = Proc.new do
|
21
|
+
cmd_file_remove $wnd.curpanel.selection, $wnd.curpanel.path
|
22
|
+
end
|
12
23
|
|
13
|
-
$actMap['<unixcmd>/file/
|
14
|
-
|
24
|
+
$actMap['<unixcmd>/file/mkdir'] = Proc.new do
|
25
|
+
cmd_file_mkdir $wnd.curpanel.path
|
26
|
+
end
|
15
27
|
|
16
28
|
$actMap['<unixcmd>/file/view'] = Proc.new { cmd_file_view $wnd.selected_file }
|
17
29
|
$actMap['<unixcmd>/file/edit'] = Proc.new { cmd_file_edit $wnd.selected_file }
|
@@ -20,151 +32,145 @@ $actMap['<unixcmd>/file/info'] = Proc.new { cmd_file_info $wnd.selected_file }
|
|
20
32
|
|
21
33
|
$actMap['<unixcmd>/app/quit'] = Proc.new { $wnd.destroy }
|
22
34
|
|
23
|
-
$actMap['<unixcmd>/test/print_selection'] = Proc.new { p $wnd.curpanel.selection }
|
35
|
+
$actMap['<unixcmd>/test/print_selection'] = Proc.new { p $wnd.curpanel.selection; $wnd.cmd "cd #{$wnd.curpanel.path.to_s}" }
|
24
36
|
|
25
37
|
$actMap.each_key do |key|
|
26
38
|
$accels.connect(key, &$actMap[key])
|
27
39
|
end
|
28
40
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
#
|
37
|
-
# srcfile = File.new src.expand_path, 'rb'
|
38
|
-
# dstfile = File.new dst.expand_path, 'wb'
|
39
|
-
# copied_sum = 0
|
40
|
-
# size = srcfile.stat.size
|
41
|
-
# block_size = $cfg['copy']['block_size']
|
42
|
-
# time_start = Time::now.to_f
|
43
|
-
# elapsed = 0.0
|
44
|
-
#
|
45
|
-
# begin
|
46
|
-
# copied = IO::copy_stream srcfile, dstfile, block_size
|
47
|
-
# copied_sum += copied
|
48
|
-
#
|
49
|
-
# view.file_progress copied_sum.to_f/size.to_f
|
50
|
-
#
|
51
|
-
# elapsed = Time::now.to_f - time_start
|
52
|
-
# view.file_speed (copied_sum/elapsed).to_i if elapsed > 0
|
53
|
-
# end while copied > 0
|
54
|
-
#
|
55
|
-
# nil
|
56
|
-
# end
|
57
|
-
#
|
58
|
-
# def mkdir(path)
|
59
|
-
# p [:mkdir, [path]]
|
60
|
-
# path.mkdir
|
61
|
-
# end
|
62
|
-
#end
|
63
|
-
|
64
|
-
#module MyCopyView
|
65
|
-
# include CopyView
|
66
|
-
#
|
67
|
-
# class << View
|
68
|
-
# @queue
|
69
|
-
#
|
70
|
-
# def queue=(queue) @queue = queue end
|
71
|
-
#
|
72
|
-
# def start() end
|
73
|
-
# def end() @queue.push [:end] end
|
74
|
-
#
|
75
|
-
# def file_start(src, dst) @queue.push [:file_start, [src, dst]] end
|
76
|
-
#
|
77
|
-
# def file_end() end
|
78
|
-
#
|
79
|
-
# def file_progress(percent) @queue.push [:file_progress, [percent]] end
|
80
|
-
# def progress(percent) @queue.push [:progress, [percent]] end
|
81
|
-
# def dir_create(path) @queue.push [:dir_create, [path]] end
|
82
|
-
#
|
83
|
-
# def file_speed(speed) @queue.push [:file_speed, [speed]] end
|
84
|
-
# end
|
85
|
-
#end
|
41
|
+
[ 'copydlg', 'removedlg', 'movedlg', 'mkdirdlg' ].each do |lib|
|
42
|
+
if Unixcmd.devel
|
43
|
+
require_relative "./#{lib}"
|
44
|
+
else
|
45
|
+
require lib
|
46
|
+
end
|
47
|
+
end
|
86
48
|
|
87
49
|
def cmd_file_copy(files, srcdir, dstdir)
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
#
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
#
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
# true
|
152
|
-
# end
|
153
|
-
#
|
154
|
-
# dlg.run do |res|
|
155
|
-
# case res
|
156
|
-
# when Gtk::Dialog::RESPONSE_CANCEL then copy.stop
|
157
|
-
# end
|
158
|
-
# end
|
159
|
-
#
|
160
|
-
# Gtk.idle_remove idle
|
161
|
-
# cpthread.join
|
162
|
-
# cpthread.exit
|
50
|
+
files_s = files.map do |file|
|
51
|
+
file.to_s
|
52
|
+
end
|
53
|
+
|
54
|
+
dlg = CopyDlg.new files_s, dstdir.to_s
|
55
|
+
res = dlg.run
|
56
|
+
|
57
|
+
flags = ''
|
58
|
+
|
59
|
+
flags << '-r ' if dlg.recursive?
|
60
|
+
flags << '-a ' if dlg.archive?
|
61
|
+
flags << '-v ' if dlg.verbose?
|
62
|
+
flags.strip!
|
63
|
+
|
64
|
+
dstdir = Pathname.new(dlg.dest)
|
65
|
+
|
66
|
+
unless res == 0
|
67
|
+
dlg.destroy
|
68
|
+
return
|
69
|
+
end
|
70
|
+
|
71
|
+
cpthread = Thread.new do
|
72
|
+
Dir.chdir(srcdir.expand_path.to_s) do
|
73
|
+
$wnd.cmd "cp #{flags} #{files_s.join ' '} #{dstdir.to_s}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
cpthread.abort_on_exception = true
|
78
|
+
cpthread.join
|
79
|
+
cpthread.exit
|
80
|
+
|
81
|
+
dlg.destroy
|
82
|
+
end
|
83
|
+
|
84
|
+
def cmd_file_move(files, srcdir, dstdir)
|
85
|
+
files_s = files.map do |file|
|
86
|
+
file.to_s
|
87
|
+
end
|
88
|
+
|
89
|
+
dlg = MoveDlg.new files_s, dstdir
|
90
|
+
res = dlg.run
|
91
|
+
|
92
|
+
flags = ''
|
93
|
+
|
94
|
+
flags << '-v ' if dlg.verbose?
|
95
|
+
flags.strip!
|
96
|
+
|
97
|
+
unless res == 0
|
98
|
+
dlg.destroy
|
99
|
+
return
|
100
|
+
end
|
101
|
+
|
102
|
+
mvthread = Thread.new do
|
103
|
+
Dir.chdir(srcdir.expand_path.to_s) do
|
104
|
+
puts $wnd.cmd "mv #{flags} #{files_s.join ' '} #{dstdir.to_s}"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
mvthread.abort_on_exception = true
|
109
|
+
mvthread.join
|
110
|
+
mvthread.exit
|
111
|
+
|
112
|
+
dlg.destroy
|
163
113
|
end
|
164
114
|
|
165
|
-
def cmd_file_remove(files)
|
166
|
-
files.
|
115
|
+
def cmd_file_remove(files, dir)
|
116
|
+
files_s = files.map do |file|
|
117
|
+
file.to_s
|
118
|
+
end
|
119
|
+
|
120
|
+
dlg = RemoveDlg.new files_s
|
121
|
+
res = dlg.run
|
122
|
+
|
123
|
+
flags = ''
|
124
|
+
|
125
|
+
flags << '-r ' if dlg.recursive?
|
126
|
+
flags << '-v ' if dlg.verbose?
|
127
|
+
flags.strip!
|
128
|
+
|
129
|
+
unless res == 0
|
130
|
+
dlg.destroy
|
131
|
+
return
|
132
|
+
end
|
133
|
+
|
134
|
+
thread = Thread.new do
|
135
|
+
Dir.chdir(dir.expand_path.to_s) do
|
136
|
+
$wnd.cmd "rm #{flags} #{files_s.join ' '}"
|
137
|
+
end
|
167
138
|
end
|
139
|
+
|
140
|
+
thread.abort_on_exception = true
|
141
|
+
thread.join
|
142
|
+
thread.exit
|
143
|
+
|
144
|
+
dlg.destroy
|
145
|
+
end
|
146
|
+
|
147
|
+
def cmd_file_mkdir(dir)
|
148
|
+
dlg = MkDirDlg.new
|
149
|
+
res = dlg.run
|
150
|
+
|
151
|
+
flags = ''
|
152
|
+
|
153
|
+
flags << '-v ' if dlg.verbose?
|
154
|
+
flags.strip!
|
155
|
+
|
156
|
+
dirname = dlg.dirname
|
157
|
+
|
158
|
+
unless res == 0
|
159
|
+
dlg.destroy
|
160
|
+
return
|
161
|
+
end
|
162
|
+
|
163
|
+
thread = Thread.new do
|
164
|
+
Dir.chdir(dir.expand_path.to_s) do
|
165
|
+
$wnd.cmd "mkdir #{flags} #{dirname}"
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
thread.abort_on_exception = true
|
170
|
+
thread.join
|
171
|
+
thread.exit
|
172
|
+
|
173
|
+
dlg.destroy
|
168
174
|
end
|
169
175
|
|
170
176
|
def cmd_file_view(file)
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
class CopyDlg
|
4
|
+
FILES_FEW = 3
|
5
|
+
|
6
|
+
@builder
|
7
|
+
@dlg
|
8
|
+
@srcline
|
9
|
+
@srclist
|
10
|
+
@dstline
|
11
|
+
@dstentry
|
12
|
+
@flags
|
13
|
+
@singlesrc
|
14
|
+
@fewsrc
|
15
|
+
|
16
|
+
def initialize files, dest
|
17
|
+
@builder = Gtk::Builder.new
|
18
|
+
@builder.add_from_file 'data/forms/copydlg.glade'
|
19
|
+
@dlg = @builder.get_object 'CopyDlg'
|
20
|
+
@srcline = @builder.get_object 'SrcLine'
|
21
|
+
@srclist = @builder.get_object 'SrcList'
|
22
|
+
@dstline = @builder.get_object 'DstLine'
|
23
|
+
@dstentry = @builder.get_object 'DstEntry'
|
24
|
+
|
25
|
+
@singlesrc = files.count == 1
|
26
|
+
@fewsrc = files.count <= FILES_FEW
|
27
|
+
|
28
|
+
unless @singlesrc == true
|
29
|
+
@dstline.text = dest
|
30
|
+
else
|
31
|
+
@dstentry.text = dest
|
32
|
+
end
|
33
|
+
|
34
|
+
unless @fewsrc == true
|
35
|
+
@srcline.hide
|
36
|
+
@srclist.show
|
37
|
+
|
38
|
+
files.each do |file|
|
39
|
+
row = @srclist.model.append
|
40
|
+
row[0] = file
|
41
|
+
end
|
42
|
+
else
|
43
|
+
@srcline.text = files.join ' '
|
44
|
+
end
|
45
|
+
|
46
|
+
@flags = {
|
47
|
+
:recursive => @builder.get_object('RecursiveFlag'),
|
48
|
+
:archive => @builder.get_object('ArchiveFlag'),
|
49
|
+
:verbose => @builder.get_object('VerboseFlag'),
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
53
|
+
def run
|
54
|
+
@dlg.run
|
55
|
+
end
|
56
|
+
|
57
|
+
def destroy
|
58
|
+
@dlg.destroy
|
59
|
+
end
|
60
|
+
|
61
|
+
def recursive?
|
62
|
+
@flags[:recursive].active?
|
63
|
+
end
|
64
|
+
|
65
|
+
def archive?
|
66
|
+
@flags[:archive].active?
|
67
|
+
end
|
68
|
+
|
69
|
+
def verbose?
|
70
|
+
@flags[:verbose].active?
|
71
|
+
end
|
72
|
+
|
73
|
+
def dest
|
74
|
+
@singlesrc == true ? @dstentry.text : @dstline.text
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# vim: sw=2 sts=2 ts=8:
|
79
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|
data/lib/unixcmd/dirview.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'launchy'
|
2
2
|
require 'mime/types'
|
3
|
-
|
3
|
+
|
4
|
+
require_relative './aux'
|
4
5
|
|
5
6
|
|
6
7
|
class CmdDirWidget < Gtk::Frame
|
@@ -70,14 +71,14 @@ class CmdDirWidget < Gtk::Frame
|
|
70
71
|
def path() @path end
|
71
72
|
def expanded_path() @path.expand_path end
|
72
73
|
|
73
|
-
def back() chdir
|
74
|
+
def back() chdir @path + '..' end
|
74
75
|
|
75
76
|
def reload
|
76
77
|
model = @view.model
|
77
78
|
|
78
79
|
model.clear
|
79
80
|
|
80
|
-
@view.columns[0].set_visible
|
81
|
+
@view.columns[0].set_visible false
|
81
82
|
|
82
83
|
files = expanded_path.entries.sort
|
83
84
|
|
@@ -97,17 +98,17 @@ class CmdDirWidget < Gtk::Frame
|
|
97
98
|
|
98
99
|
row[0] = file.to_s
|
99
100
|
|
100
|
-
if full_path.directory?
|
101
|
+
if full_path.directory?
|
101
102
|
row[1] = file.to_s + '/'
|
102
103
|
row[3] = '<DIR>'
|
103
104
|
else
|
104
105
|
row[1] = file.basename('.*').to_s
|
105
|
-
row[3] = full_path.
|
106
|
+
row[3] = full_path.exist? ? full_path.size.to_i.to_szstr : 0.to_szstr
|
106
107
|
end
|
107
108
|
|
108
109
|
row[2] = file.extname
|
109
|
-
row[4] = Time.at(full_path.
|
110
|
-
row[5] = full_path.stat.mode.to_rwx
|
110
|
+
row[4] = Time.at(full_path.mtime).strftime '%x %R' if full_path.exist?
|
111
|
+
row[5] = full_path.stat.mode.to_rwx if full_path.exist?
|
111
112
|
row[6] = Gdk::Pixbuf.new file_icon_path.to_s
|
112
113
|
row[7] = 0
|
113
114
|
end
|
@@ -121,7 +122,7 @@ class CmdDirWidget < Gtk::Frame
|
|
121
122
|
|
122
123
|
file = iter.get_value 0
|
123
124
|
|
124
|
-
if (expanded_path + Pathname.new(file)).directory?
|
125
|
+
if (expanded_path + Pathname.new(file)).directory?
|
125
126
|
chdir @path + Pathname.new(file)
|
126
127
|
else
|
127
128
|
Launchy.open (expanded_path + Pathname.new(file)).to_s
|
@@ -136,11 +137,11 @@ class CmdDirWidget < Gtk::Frame
|
|
136
137
|
|
137
138
|
reload
|
138
139
|
|
139
|
-
if path == old_path.parent
|
140
|
+
if path == old_path.parent
|
140
141
|
dirname = old_path.basename
|
141
142
|
|
142
143
|
@view.model.each do |model, path, iter|
|
143
|
-
if iter.get_value(0) == dirname.to_s
|
144
|
+
if iter.get_value(0) == dirname.to_s
|
144
145
|
@view.selection.select_path path
|
145
146
|
@view.set_cursor path, nil, false
|
146
147
|
break
|
@@ -149,7 +150,7 @@ class CmdDirWidget < Gtk::Frame
|
|
149
150
|
|
150
151
|
end
|
151
152
|
|
152
|
-
if @view.selection.count_selected_rows == 0
|
153
|
+
if @view.selection.count_selected_rows == 0
|
153
154
|
@view.selection.select_iter @view.model.iter_first
|
154
155
|
@view.set_cursor @view.model.iter_first.path, nil, false
|
155
156
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
class MkDirDlg
|
4
|
+
@builder
|
5
|
+
@dlg
|
6
|
+
@mkdirentry
|
7
|
+
@flags
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@builder = Gtk::Builder.new
|
11
|
+
@builder.add_from_file 'data/forms/mkdirdlg.glade'
|
12
|
+
@dlg = @builder.get_object 'MkDirDlg'
|
13
|
+
@mkdirentry = @builder.get_object 'MkDirEntry'
|
14
|
+
|
15
|
+
@flags = {
|
16
|
+
:verbose => @builder.get_object('VerboseFlag'),
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
def run
|
21
|
+
@dlg.run
|
22
|
+
end
|
23
|
+
|
24
|
+
def destroy
|
25
|
+
@dlg.destroy
|
26
|
+
end
|
27
|
+
|
28
|
+
def verbose?
|
29
|
+
@flags[:verbose].active?
|
30
|
+
end
|
31
|
+
|
32
|
+
def dirname
|
33
|
+
@mkdirentry.text
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# vim: sw=2 sts=2 ts=8:
|
38
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
class MoveDlg
|
4
|
+
@builder
|
5
|
+
@dlg
|
6
|
+
@cmdline
|
7
|
+
@flags
|
8
|
+
|
9
|
+
def initialize files, dest
|
10
|
+
@builder = Gtk::Builder.new
|
11
|
+
@builder.add_from_file 'data/forms/movedlg.glade'
|
12
|
+
@dlg = @builder.get_object 'MoveDlg'
|
13
|
+
@cmdline = @builder.get_object 'CmdLine'
|
14
|
+
|
15
|
+
@cmdline.text = "#{files.join ' '} → #{dest}"
|
16
|
+
|
17
|
+
@flags = {
|
18
|
+
:verbose => @builder.get_object('VerboseFlag'),
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def run
|
23
|
+
@dlg.run
|
24
|
+
end
|
25
|
+
|
26
|
+
def destroy
|
27
|
+
@dlg.destroy
|
28
|
+
end
|
29
|
+
|
30
|
+
def verbose?
|
31
|
+
@flags[:verbose].active?
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# vim: sw=2 sts=2 ts=8:
|
36
|
+
|
data/lib/unixcmd/panel.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'sys/filesystem'
|
2
|
-
|
2
|
+
require_relative './dirview'
|
3
3
|
|
4
4
|
class CmdPanelCaptionWidget < Gtk::HBox
|
5
5
|
@mounts
|
@@ -108,7 +108,7 @@ class CmdPanelWidget < Gtk::VBox
|
|
108
108
|
pack_start @caption, false
|
109
109
|
pack_end @dir
|
110
110
|
|
111
|
-
@dir.signal_connect('dir-changed') { update_caption }
|
111
|
+
@dir.signal_connect('dir-changed') { update_caption; signal_emit 'dir-changed' }
|
112
112
|
@caption.signal_connect('go-root') { @dir.chdir Pathname.new '/' }
|
113
113
|
@caption.signal_connect('go-home') { @dir.chdir Pathname.new '~' }
|
114
114
|
@caption.signal_connect('go-back') { @dir.back }
|
@@ -156,4 +156,10 @@ class CmdPanelWidget < Gtk::VBox
|
|
156
156
|
def reload
|
157
157
|
@dir.reload
|
158
158
|
end
|
159
|
+
|
160
|
+
type_register
|
161
|
+
|
162
|
+
signal_new('dir_changed', GLib::Signal::RUN_FIRST, nil, nil)
|
163
|
+
|
164
|
+
def signal_do_dir_changed() nil end
|
159
165
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
class RemoveDlg
|
4
|
+
FILES_FEW = 3
|
5
|
+
FILES_MANY = 5
|
6
|
+
|
7
|
+
@builder
|
8
|
+
@dlg
|
9
|
+
@filesline
|
10
|
+
@fileslist
|
11
|
+
@flags
|
12
|
+
@fewfiles
|
13
|
+
|
14
|
+
def initialize files
|
15
|
+
@builder = Gtk::Builder.new
|
16
|
+
@builder.add_from_file 'data/forms/removedlg.glade'
|
17
|
+
@dlg = @builder.get_object 'RemoveDlg'
|
18
|
+
@filesline = @builder.get_object 'FilesLine'
|
19
|
+
@fileslist = @builder.get_object 'FilesList'
|
20
|
+
|
21
|
+
@fewfiles = files.count <= FILES_FEW
|
22
|
+
|
23
|
+
unless @fewfiles == true
|
24
|
+
@fileslist.show
|
25
|
+
@filesline.hide
|
26
|
+
|
27
|
+
files.each_with_index do |file, i|
|
28
|
+
row = @fileslist.model.append
|
29
|
+
row[0] = file
|
30
|
+
|
31
|
+
# *TODO!* remove 110 magic number
|
32
|
+
@fileslist.set_height_request 110 if i+1 == FILES_MANY
|
33
|
+
end
|
34
|
+
else
|
35
|
+
@filesline.text = "#{files.join ' '}"
|
36
|
+
end
|
37
|
+
|
38
|
+
@flags = {
|
39
|
+
:recursive => @builder.get_object('RecursiveFlag'),
|
40
|
+
:verbose => @builder.get_object('VerboseFlag'),
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
def run
|
45
|
+
@dlg.run
|
46
|
+
end
|
47
|
+
|
48
|
+
def destroy
|
49
|
+
@dlg.destroy
|
50
|
+
end
|
51
|
+
|
52
|
+
def recursive?
|
53
|
+
@flags[:recursive].active?
|
54
|
+
end
|
55
|
+
|
56
|
+
def verbose?
|
57
|
+
@flags[:verbose].active?
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# vim: sw=2 sts=2 ts=8:
|
62
|
+
|
data/lib/unixcmd/version.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
APP_NAME = '
|
2
|
-
APP_VERSION = '0.1'
|
1
|
+
APP_NAME = 'unixcmd'
|
2
|
+
APP_VERSION = '0.2.1'
|