author | korovkin <korovkin> | 2006-12-30 18:15:58 (UTC) |
---|---|---|
committer | korovkin <korovkin> | 2006-12-30 18:15:58 (UTC) |
commit | 188c44c1196c3597a84189c2d148813df16dfe95 (patch) (unidiff) | |
tree | 15cecf27f6db8ce2b42c182e1cec87706ba01ef9 | |
parent | bb6f32ae999168fc44d50d3523c3ef232824185a (diff) | |
download | opie-188c44c1196c3597a84189c2d148813df16dfe95.zip opie-188c44c1196c3597a84189c2d148813df16dfe95.tar.gz opie-188c44c1196c3597a84189c2d148813df16dfe95.tar.bz2 |
Fix for bug# 0001553 Submited by Paul Eggleton
avancedfm uses FileInfoDialog and QFileInfo to display the selected
file information.
-rw-r--r-- | noncore/apps/advancedfm/advancedfm.pro | 1 | ||||
-rw-r--r-- | noncore/apps/advancedfm/advancedfmMenu.cpp | 114 | ||||
-rw-r--r-- | noncore/apps/advancedfm/fileInfoDialog.ui | 418 |
3 files changed, 506 insertions, 27 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.pro b/noncore/apps/advancedfm/advancedfm.pro index 396f912..90d29e3 100644 --- a/noncore/apps/advancedfm/advancedfm.pro +++ b/noncore/apps/advancedfm/advancedfm.pro | |||
@@ -5,2 +5,3 @@ SOURCES = advancedfm.cpp advancedfmData.cpp advancedfmMenu.cpp filePermissions | |||
5 | TARGET = advancedfm | 5 | TARGET = advancedfm |
6 | INTERFACES += fileInfoDialog.ui | ||
6 | INCLUDEPATH += $(OPIEDIR)/include | 7 | INCLUDEPATH += $(OPIEDIR)/include |
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp index ed280aa..9181810 100644 --- a/noncore/apps/advancedfm/advancedfmMenu.cpp +++ b/noncore/apps/advancedfm/advancedfmMenu.cpp | |||
@@ -15,2 +15,3 @@ | |||
15 | #include "filePermissions.h" | 15 | #include "filePermissions.h" |
16 | #include "fileInfoDialog.h" | ||
16 | 17 | ||
@@ -28,2 +29,3 @@ using namespace Opie::Core; | |||
28 | #include <qlistview.h> | 29 | #include <qlistview.h> |
30 | #include <qlabel.h> | ||
29 | 31 | ||
@@ -655,29 +657,87 @@ void AdvancedFm::runCommandStd() { | |||
655 | void AdvancedFm::fileStatus() { | 657 | void AdvancedFm::fileStatus() { |
656 | if( !CurrentView()->currentItem()) return; | 658 | if( !CurrentView()->currentItem()) return; |
657 | QString curFile; | 659 | |
658 | curFile = CurrentView()->currentItem()->text(0); | 660 | QString curFile; |
659 | if(QFileInfo("/usr/bin/stat").exists()) { | 661 | curFile = CurrentView()->currentItem()->text(0); |
660 | QStringList command; | 662 | |
661 | command << "/bin/sh"; | 663 | QFileInfo curFileInfo(curFile); |
662 | command << "-c"; | 664 | |
663 | command << "stat -l "+ curFile; | 665 | FileInfoDialog *infoDlg = new FileInfoDialog(this); |
664 | Output *outDlg; | 666 | infoDlg->setCaption(tr("Info for %1").arg(curFile)); |
665 | outDlg = new Output( command, this, tr("AdvancedFm Output"), true); | 667 | |
666 | QPEApplication::execDialog( outDlg ); | 668 | uint size = curFileInfo.size(); |
667 | } else { | 669 | QString sizestr; |
668 | /* struct stat buf; | 670 | if( size > 1048576 ) |
669 | stat( curFile.local8bit(), &buf); | 671 | sizestr = tr("%1MB (%2 bytes)").arg(QString().sprintf("%.0f", size / 1048576.0)).arg(size); |
670 | 672 | else if( size > 1024 ) | |
671 | st_dev dev; | 673 | sizestr = tr("%1kB (%2 bytes)").arg(QString().sprintf("%.0f", size / 1024.0)).arg(size); |
672 | st_uid uid; | 674 | else |
673 | st_gid gid; | 675 | sizestr = tr("%1 bytes").arg(size); |
674 | st_size size; | 676 | |
675 | st_atime atime; | 677 | infoDlg->sizeLabel->setText(sizestr); |
676 | st_mtime mtime; | 678 | |
677 | st_ctime ctime; | 679 | if(curFileInfo.isSymLink()) |
678 | st_mode mode; | 680 | infoDlg->typeLabel->setText(tr("symbolic link")); |
679 | */ | 681 | else if(curFileInfo.isFile()) { |
680 | } | 682 | if(curFileInfo.isExecutable()) |
681 | 683 | infoDlg->typeLabel->setText(tr("executable file")); | |
682 | qApp->processEvents(); | 684 | else |
685 | infoDlg->typeLabel->setText(tr("file")); | ||
686 | } | ||
687 | else if(curFileInfo.isDir()) | ||
688 | infoDlg->typeLabel->setText(tr("directory")); | ||
689 | else | ||
690 | infoDlg->typeLabel->setText(tr("unknown")); | ||
691 | |||
692 | infoDlg->ownerLabel->setText( QString("%1 (%2)").arg(curFileInfo.owner()).arg(curFileInfo.ownerId()) ); | ||
693 | infoDlg->groupLabel->setText( QString("%1 (%2)").arg(curFileInfo.group()).arg(curFileInfo.groupId()) ); | ||
694 | |||
695 | infoDlg->lastReadLabel->setText( curFileInfo.lastRead().toString() ); | ||
696 | infoDlg->lastModifiedLabel->setText( curFileInfo.lastModified().toString() ); | ||
697 | |||
698 | QString perms; | ||
699 | // User | ||
700 | if(curFileInfo.permission(QFileInfo::ReadUser)) | ||
701 | perms += "r"; | ||
702 | else | ||
703 | perms += "-"; | ||
704 | if(curFileInfo.permission(QFileInfo::WriteUser)) | ||
705 | perms += "w"; | ||
706 | else | ||
707 | perms += "-"; | ||
708 | if(curFileInfo.permission(QFileInfo::ExeUser)) | ||
709 | perms += "x"; | ||
710 | else | ||
711 | perms += "-"; | ||
712 | // Group | ||
713 | if(curFileInfo.permission(QFileInfo::ReadGroup)) | ||
714 | perms += "r"; | ||
715 | else | ||
716 | perms += "-"; | ||
717 | if(curFileInfo.permission(QFileInfo::WriteGroup)) | ||
718 | perms += "w"; | ||
719 | else | ||
720 | perms += "-"; | ||
721 | if(curFileInfo.permission(QFileInfo::ExeGroup)) | ||
722 | perms += "x"; | ||
723 | else | ||
724 | perms += "-"; | ||
725 | // Other | ||
726 | if(curFileInfo.permission(QFileInfo::ReadOther)) | ||
727 | perms += "r"; | ||
728 | else | ||
729 | perms += "-"; | ||
730 | if(curFileInfo.permission(QFileInfo::WriteOther)) | ||
731 | perms += "w"; | ||
732 | else | ||
733 | perms += "-"; | ||
734 | if(curFileInfo.permission(QFileInfo::ExeOther)) | ||
735 | perms += "x"; | ||
736 | else | ||
737 | perms += "-"; | ||
738 | infoDlg->permsLabel->setText( perms ); | ||
739 | |||
740 | QPEApplication::execDialog( infoDlg ); | ||
741 | |||
742 | qApp->processEvents(); | ||
683 | } | 743 | } |
diff --git a/noncore/apps/advancedfm/fileInfoDialog.ui b/noncore/apps/advancedfm/fileInfoDialog.ui new file mode 100644 index 0000000..c8997fc --- a/dev/null +++ b/noncore/apps/advancedfm/fileInfoDialog.ui | |||
@@ -0,0 +1,418 @@ | |||
1 | <!DOCTYPE UI><UI> | ||
2 | <class>FileInfoDialog</class> | ||
3 | <widget> | ||
4 | <class>QDialog</class> | ||
5 | <property stdset="1"> | ||
6 | <name>name</name> | ||
7 | <cstring>FileInfoDialog</cstring> | ||
8 | </property> | ||
9 | <property stdset="1"> | ||
10 | <name>geometry</name> | ||
11 | <rect> | ||
12 | <x>0</x> | ||
13 | <y>0</y> | ||
14 | <width>225</width> | ||
15 | <height>303</height> | ||
16 | </rect> | ||
17 | </property> | ||
18 | <property stdset="1"> | ||
19 | <name>caption</name> | ||
20 | <string>FileInfoDialog</string> | ||
21 | </property> | ||
22 | <vbox> | ||
23 | <property stdset="1"> | ||
24 | <name>margin</name> | ||
25 | <number>11</number> | ||
26 | </property> | ||
27 | <property stdset="1"> | ||
28 | <name>spacing</name> | ||
29 | <number>6</number> | ||
30 | </property> | ||
31 | <widget> | ||
32 | <class>QGroupBox</class> | ||
33 | <property stdset="1"> | ||
34 | <name>name</name> | ||
35 | <cstring>GroupBox1</cstring> | ||
36 | </property> | ||
37 | <property stdset="1"> | ||
38 | <name>sizePolicy</name> | ||
39 | <sizepolicy> | ||
40 | <hsizetype>5</hsizetype> | ||
41 | <vsizetype>5</vsizetype> | ||
42 | </sizepolicy> | ||
43 | </property> | ||
44 | <property stdset="1"> | ||
45 | <name>title</name> | ||
46 | <string>General</string> | ||
47 | </property> | ||
48 | <grid> | ||
49 | <property stdset="1"> | ||
50 | <name>margin</name> | ||
51 | <number>11</number> | ||
52 | </property> | ||
53 | <property stdset="1"> | ||
54 | <name>spacing</name> | ||
55 | <number>6</number> | ||
56 | </property> | ||
57 | <widget row="0" column="1" > | ||
58 | <class>QLabel</class> | ||
59 | <property stdset="1"> | ||
60 | <name>name</name> | ||
61 | <cstring>typeLabel</cstring> | ||
62 | </property> | ||
63 | <property stdset="1"> | ||
64 | <name>sizePolicy</name> | ||
65 | <sizepolicy> | ||
66 | <hsizetype>1</hsizetype> | ||
67 | <vsizetype>1</vsizetype> | ||
68 | </sizepolicy> | ||
69 | </property> | ||
70 | <property stdset="1"> | ||
71 | <name>text</name> | ||
72 | <string>executable file</string> | ||
73 | </property> | ||
74 | </widget> | ||
75 | <widget row="1" column="1" > | ||
76 | <class>QLabel</class> | ||
77 | <property stdset="1"> | ||
78 | <name>name</name> | ||
79 | <cstring>sizeLabel</cstring> | ||
80 | </property> | ||
81 | <property stdset="1"> | ||
82 | <name>sizePolicy</name> | ||
83 | <sizepolicy> | ||
84 | <hsizetype>1</hsizetype> | ||
85 | <vsizetype>1</vsizetype> | ||
86 | </sizepolicy> | ||
87 | </property> | ||
88 | <property stdset="1"> | ||
89 | <name>text</name> | ||
90 | <string>3kb (3100 bytes)</string> | ||
91 | </property> | ||
92 | </widget> | ||
93 | <widget row="2" column="1" > | ||
94 | <class>QLabel</class> | ||
95 | <property stdset="1"> | ||
96 | <name>name</name> | ||
97 | <cstring>ownerLabel</cstring> | ||
98 | </property> | ||
99 | <property stdset="1"> | ||
100 | <name>sizePolicy</name> | ||
101 | <sizepolicy> | ||
102 | <hsizetype>1</hsizetype> | ||
103 | <vsizetype>1</vsizetype> | ||
104 | </sizepolicy> | ||
105 | </property> | ||
106 | <property stdset="1"> | ||
107 | <name>maximumSize</name> | ||
108 | <size> | ||
109 | <width>32767</width> | ||
110 | <height>32767</height> | ||
111 | </size> | ||
112 | </property> | ||
113 | <property stdset="1"> | ||
114 | <name>text</name> | ||
115 | <string>bill (100)</string> | ||
116 | </property> | ||
117 | <property stdset="1"> | ||
118 | <name>alignment</name> | ||
119 | <set>AlignVCenter|AlignLeft</set> | ||
120 | </property> | ||
121 | <property> | ||
122 | <name>hAlign</name> | ||
123 | </property> | ||
124 | </widget> | ||
125 | <widget row="2" column="0" > | ||
126 | <class>QLabel</class> | ||
127 | <property stdset="1"> | ||
128 | <name>name</name> | ||
129 | <cstring>ownerCaptionLabel</cstring> | ||
130 | </property> | ||
131 | <property stdset="1"> | ||
132 | <name>sizePolicy</name> | ||
133 | <sizepolicy> | ||
134 | <hsizetype>1</hsizetype> | ||
135 | <vsizetype>1</vsizetype> | ||
136 | </sizepolicy> | ||
137 | </property> | ||
138 | <property stdset="1"> | ||
139 | <name>maximumSize</name> | ||
140 | <size> | ||
141 | <width>32767</width> | ||
142 | <height>32767</height> | ||
143 | </size> | ||
144 | </property> | ||
145 | <property stdset="1"> | ||
146 | <name>text</name> | ||
147 | <string>Owner:</string> | ||
148 | </property> | ||
149 | <property stdset="1"> | ||
150 | <name>alignment</name> | ||
151 | <set>AlignVCenter|AlignLeft</set> | ||
152 | </property> | ||
153 | <property> | ||
154 | <name>hAlign</name> | ||
155 | </property> | ||
156 | </widget> | ||
157 | <widget row="1" column="0" > | ||
158 | <class>QLabel</class> | ||
159 | <property stdset="1"> | ||
160 | <name>name</name> | ||
161 | <cstring>sizeCaptionLabel</cstring> | ||
162 | </property> | ||
163 | <property stdset="1"> | ||
164 | <name>sizePolicy</name> | ||
165 | <sizepolicy> | ||
166 | <hsizetype>1</hsizetype> | ||
167 | <vsizetype>1</vsizetype> | ||
168 | </sizepolicy> | ||
169 | </property> | ||
170 | <property stdset="1"> | ||
171 | <name>maximumSize</name> | ||
172 | <size> | ||
173 | <width>32767</width> | ||
174 | <height>32767</height> | ||
175 | </size> | ||
176 | </property> | ||
177 | <property stdset="1"> | ||
178 | <name>text</name> | ||
179 | <string>Size:</string> | ||
180 | </property> | ||
181 | </widget> | ||
182 | <widget row="0" column="0" > | ||
183 | <class>QLabel</class> | ||
184 | <property stdset="1"> | ||
185 | <name>name</name> | ||
186 | <cstring>typeCaptionLabel</cstring> | ||
187 | </property> | ||
188 | <property stdset="1"> | ||
189 | <name>sizePolicy</name> | ||
190 | <sizepolicy> | ||
191 | <hsizetype>1</hsizetype> | ||
192 | <vsizetype>1</vsizetype> | ||
193 | </sizepolicy> | ||
194 | </property> | ||
195 | <property stdset="1"> | ||
196 | <name>maximumSize</name> | ||
197 | <size> | ||
198 | <width>60</width> | ||
199 | <height>32767</height> | ||
200 | </size> | ||
201 | </property> | ||
202 | <property stdset="1"> | ||
203 | <name>text</name> | ||
204 | <string>Type:</string> | ||
205 | </property> | ||
206 | </widget> | ||
207 | <widget row="3" column="0" > | ||
208 | <class>QLabel</class> | ||
209 | <property stdset="1"> | ||
210 | <name>name</name> | ||
211 | <cstring>groupCaptionLabel</cstring> | ||
212 | </property> | ||
213 | <property stdset="1"> | ||
214 | <name>sizePolicy</name> | ||
215 | <sizepolicy> | ||
216 | <hsizetype>1</hsizetype> | ||
217 | <vsizetype>1</vsizetype> | ||
218 | </sizepolicy> | ||
219 | </property> | ||
220 | <property stdset="1"> | ||
221 | <name>text</name> | ||
222 | <string>Group:</string> | ||
223 | </property> | ||
224 | </widget> | ||
225 | <widget row="3" column="1" > | ||
226 | <class>QLabel</class> | ||
227 | <property stdset="1"> | ||
228 | <name>name</name> | ||
229 | <cstring>groupLabel</cstring> | ||
230 | </property> | ||
231 | <property stdset="1"> | ||
232 | <name>sizePolicy</name> | ||
233 | <sizepolicy> | ||
234 | <hsizetype>1</hsizetype> | ||
235 | <vsizetype>1</vsizetype> | ||
236 | </sizepolicy> | ||
237 | </property> | ||
238 | <property stdset="1"> | ||
239 | <name>text</name> | ||
240 | <string>users (500)</string> | ||
241 | </property> | ||
242 | </widget> | ||
243 | <widget row="4" column="0" > | ||
244 | <class>QLabel</class> | ||
245 | <property stdset="1"> | ||
246 | <name>name</name> | ||
247 | <cstring>permsCaptionLabel</cstring> | ||
248 | </property> | ||
249 | <property stdset="1"> | ||
250 | <name>sizePolicy</name> | ||
251 | <sizepolicy> | ||
252 | <hsizetype>1</hsizetype> | ||
253 | <vsizetype>1</vsizetype> | ||
254 | </sizepolicy> | ||
255 | </property> | ||
256 | <property stdset="1"> | ||
257 | <name>text</name> | ||
258 | <string>Permissions:</string> | ||
259 | </property> | ||
260 | </widget> | ||
261 | <widget row="4" column="1" > | ||
262 | <class>QLabel</class> | ||
263 | <property stdset="1"> | ||
264 | <name>name</name> | ||
265 | <cstring>permsLabel</cstring> | ||
266 | </property> | ||
267 | <property stdset="1"> | ||
268 | <name>sizePolicy</name> | ||
269 | <sizepolicy> | ||
270 | <hsizetype>1</hsizetype> | ||
271 | <vsizetype>1</vsizetype> | ||
272 | </sizepolicy> | ||
273 | </property> | ||
274 | <property stdset="1"> | ||
275 | <name>text</name> | ||
276 | <string>rwxrwxrwx</string> | ||
277 | </property> | ||
278 | </widget> | ||
279 | </grid> | ||
280 | </widget> | ||
281 | <widget> | ||
282 | <class>QGroupBox</class> | ||
283 | <property stdset="1"> | ||
284 | <name>name</name> | ||
285 | <cstring>GroupBox2</cstring> | ||
286 | </property> | ||
287 | <property stdset="1"> | ||
288 | <name>title</name> | ||
289 | <string>Times</string> | ||
290 | </property> | ||
291 | <grid> | ||
292 | <property stdset="1"> | ||
293 | <name>margin</name> | ||
294 | <number>11</number> | ||
295 | </property> | ||
296 | <property stdset="1"> | ||
297 | <name>spacing</name> | ||
298 | <number>6</number> | ||
299 | </property> | ||
300 | <widget row="0" column="1" > | ||
301 | <class>QLabel</class> | ||
302 | <property stdset="1"> | ||
303 | <name>name</name> | ||
304 | <cstring>lastReadLabel</cstring> | ||
305 | </property> | ||
306 | <property stdset="1"> | ||
307 | <name>text</name> | ||
308 | <string>users (500)</string> | ||
309 | </property> | ||
310 | </widget> | ||
311 | <widget row="1" column="1" > | ||
312 | <class>QLabel</class> | ||
313 | <property stdset="1"> | ||
314 | <name>name</name> | ||
315 | <cstring>lastModifiedLabel</cstring> | ||
316 | </property> | ||
317 | <property stdset="1"> | ||
318 | <name>sizePolicy</name> | ||
319 | <sizepolicy> | ||
320 | <hsizetype>1</hsizetype> | ||
321 | <vsizetype>1</vsizetype> | ||
322 | </sizepolicy> | ||
323 | </property> | ||
324 | <property stdset="1"> | ||
325 | <name>maximumSize</name> | ||
326 | <size> | ||
327 | <width>32767</width> | ||
328 | <height>32767</height> | ||
329 | </size> | ||
330 | </property> | ||
331 | <property stdset="1"> | ||
332 | <name>text</name> | ||
333 | <string>users (500)</string> | ||
334 | </property> | ||
335 | <property stdset="1"> | ||
336 | <name>alignment</name> | ||
337 | <set>AlignVCenter|AlignLeft</set> | ||
338 | </property> | ||
339 | <property> | ||
340 | <name>hAlign</name> | ||
341 | </property> | ||
342 | </widget> | ||
343 | <widget row="0" column="0" > | ||
344 | <class>QLabel</class> | ||
345 | <property stdset="1"> | ||
346 | <name>name</name> | ||
347 | <cstring>lastReadCaptionLabel</cstring> | ||
348 | </property> | ||
349 | <property stdset="1"> | ||
350 | <name>sizePolicy</name> | ||
351 | <sizepolicy> | ||
352 | <hsizetype>1</hsizetype> | ||
353 | <vsizetype>1</vsizetype> | ||
354 | </sizepolicy> | ||
355 | </property> | ||
356 | <property stdset="1"> | ||
357 | <name>maximumSize</name> | ||
358 | <size> | ||
359 | <width>60</width> | ||
360 | <height>32767</height> | ||
361 | </size> | ||
362 | </property> | ||
363 | <property stdset="1"> | ||
364 | <name>text</name> | ||
365 | <string>Accessed:</string> | ||
366 | </property> | ||
367 | <property stdset="1"> | ||
368 | <name>alignment</name> | ||
369 | <set>AlignVCenter|AlignLeft</set> | ||
370 | </property> | ||
371 | <property> | ||
372 | <name>hAlign</name> | ||
373 | </property> | ||
374 | </widget> | ||
375 | <widget row="1" column="0" > | ||
376 | <class>QLabel</class> | ||
377 | <property stdset="1"> | ||
378 | <name>name</name> | ||
379 | <cstring>lastModifiedCaptionLabel</cstring> | ||
380 | </property> | ||
381 | <property stdset="1"> | ||
382 | <name>sizePolicy</name> | ||
383 | <sizepolicy> | ||
384 | <hsizetype>1</hsizetype> | ||
385 | <vsizetype>1</vsizetype> | ||
386 | </sizepolicy> | ||
387 | </property> | ||
388 | <property stdset="1"> | ||
389 | <name>text</name> | ||
390 | <string>Modified:</string> | ||
391 | </property> | ||
392 | </widget> | ||
393 | </grid> | ||
394 | </widget> | ||
395 | <spacer> | ||
396 | <property> | ||
397 | <name>name</name> | ||
398 | <cstring>Spacer1</cstring> | ||
399 | </property> | ||
400 | <property stdset="1"> | ||
401 | <name>orientation</name> | ||
402 | <enum>Vertical</enum> | ||
403 | </property> | ||
404 | <property stdset="1"> | ||
405 | <name>sizeType</name> | ||
406 | <enum>Expanding</enum> | ||
407 | </property> | ||
408 | <property> | ||
409 | <name>sizeHint</name> | ||
410 | <size> | ||
411 | <width>20</width> | ||
412 | <height>20</height> | ||
413 | </size> | ||
414 | </property> | ||
415 | </spacer> | ||
416 | </vbox> | ||
417 | </widget> | ||
418 | </UI> | ||