summaryrefslogtreecommitdiff
authorkorovkin <korovkin>2006-12-30 18:15:58 (UTC)
committer korovkin <korovkin>2006-12-30 18:15:58 (UTC)
commit188c44c1196c3597a84189c2d148813df16dfe95 (patch) (side-by-side diff)
tree15cecf27f6db8ce2b42c182e1cec87706ba01ef9
parentbb6f32ae999168fc44d50d3523c3ef232824185a (diff)
downloadopie-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.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.pro1
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp102
-rw-r--r--noncore/apps/advancedfm/fileInfoDialog.ui418
3 files changed, 500 insertions, 21 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
@@ -3,6 +3,7 @@ CONFIG += qte warn_on quick-app debug
HEADERS = advancedfm.h filePermissions.h output.h
SOURCES = advancedfm.cpp advancedfmData.cpp advancedfmMenu.cpp filePermissions.cpp output.cpp main.cpp
TARGET = advancedfm
+INTERFACES += fileInfoDialog.ui
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
LIBS += -lqpe -lopiecore2 -lopieui2
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
@@ -13,6 +13,7 @@
#include "advancedfm.h"
#include "output.h"
#include "filePermissions.h"
+#include "fileInfoDialog.h"
/* OPIE */
#include <opie2/odebug.h>
@@ -26,6 +27,7 @@ using namespace Opie::Core;
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qlistview.h>
+#include <qlabel.h>
/* STD */
@@ -654,30 +656,88 @@ void AdvancedFm::runCommandStd() {
void AdvancedFm::fileStatus() {
if( !CurrentView()->currentItem()) return;
+
QString curFile;
curFile = CurrentView()->currentItem()->text(0);
- if(QFileInfo("/usr/bin/stat").exists()) {
- QStringList command;
- command << "/bin/sh";
- command << "-c";
- command << "stat -l "+ curFile;
- Output *outDlg;
- outDlg = new Output( command, this, tr("AdvancedFm Output"), true);
- QPEApplication::execDialog( outDlg );
- } else {
-/* struct stat buf;
- stat( curFile.local8bit(), &buf);
-
- st_dev dev;
- st_uid uid;
- st_gid gid;
- st_size size;
- st_atime atime;
- st_mtime mtime;
- st_ctime ctime;
- st_mode mode;
-*/
+
+ QFileInfo curFileInfo(curFile);
+
+ FileInfoDialog *infoDlg = new FileInfoDialog(this);
+ infoDlg->setCaption(tr("Info for %1").arg(curFile));
+
+ uint size = curFileInfo.size();
+ QString sizestr;
+ if( size > 1048576 )
+ sizestr = tr("%1MB (%2 bytes)").arg(QString().sprintf("%.0f", size / 1048576.0)).arg(size);
+ else if( size > 1024 )
+ sizestr = tr("%1kB (%2 bytes)").arg(QString().sprintf("%.0f", size / 1024.0)).arg(size);
+ else
+ sizestr = tr("%1 bytes").arg(size);
+
+ infoDlg->sizeLabel->setText(sizestr);
+
+ if(curFileInfo.isSymLink())
+ infoDlg->typeLabel->setText(tr("symbolic link"));
+ else if(curFileInfo.isFile()) {
+ if(curFileInfo.isExecutable())
+ infoDlg->typeLabel->setText(tr("executable file"));
+ else
+ infoDlg->typeLabel->setText(tr("file"));
}
+ else if(curFileInfo.isDir())
+ infoDlg->typeLabel->setText(tr("directory"));
+ else
+ infoDlg->typeLabel->setText(tr("unknown"));
+
+ infoDlg->ownerLabel->setText( QString("%1 (%2)").arg(curFileInfo.owner()).arg(curFileInfo.ownerId()) );
+ infoDlg->groupLabel->setText( QString("%1 (%2)").arg(curFileInfo.group()).arg(curFileInfo.groupId()) );
+
+ infoDlg->lastReadLabel->setText( curFileInfo.lastRead().toString() );
+ infoDlg->lastModifiedLabel->setText( curFileInfo.lastModified().toString() );
+
+ QString perms;
+ // User
+ if(curFileInfo.permission(QFileInfo::ReadUser))
+ perms += "r";
+ else
+ perms += "-";
+ if(curFileInfo.permission(QFileInfo::WriteUser))
+ perms += "w";
+ else
+ perms += "-";
+ if(curFileInfo.permission(QFileInfo::ExeUser))
+ perms += "x";
+ else
+ perms += "-";
+ // Group
+ if(curFileInfo.permission(QFileInfo::ReadGroup))
+ perms += "r";
+ else
+ perms += "-";
+ if(curFileInfo.permission(QFileInfo::WriteGroup))
+ perms += "w";
+ else
+ perms += "-";
+ if(curFileInfo.permission(QFileInfo::ExeGroup))
+ perms += "x";
+ else
+ perms += "-";
+ // Other
+ if(curFileInfo.permission(QFileInfo::ReadOther))
+ perms += "r";
+ else
+ perms += "-";
+ if(curFileInfo.permission(QFileInfo::WriteOther))
+ perms += "w";
+ else
+ perms += "-";
+ if(curFileInfo.permission(QFileInfo::ExeOther))
+ perms += "x";
+ else
+ perms += "-";
+ infoDlg->permsLabel->setText( perms );
+
+ QPEApplication::execDialog( infoDlg );
qApp->processEvents();
}
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 @@
+<!DOCTYPE UI><UI>
+<class>FileInfoDialog</class>
+<widget>
+ <class>QDialog</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>FileInfoDialog</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>225</width>
+ <height>303</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>caption</name>
+ <string>FileInfoDialog</string>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QGroupBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>title</name>
+ <string>General</string>
+ </property>
+ <grid>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget row="0" column="1" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>typeLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>executable file</string>
+ </property>
+ </widget>
+ <widget row="1" column="1" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>sizeLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>3kb (3100 bytes)</string>
+ </property>
+ </widget>
+ <widget row="2" column="1" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>ownerLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>maximumSize</name>
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>bill (100)</string>
+ </property>
+ <property stdset="1">
+ <name>alignment</name>
+ <set>AlignVCenter|AlignLeft</set>
+ </property>
+ <property>
+ <name>hAlign</name>
+ </property>
+ </widget>
+ <widget row="2" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>ownerCaptionLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>maximumSize</name>
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Owner:</string>
+ </property>
+ <property stdset="1">
+ <name>alignment</name>
+ <set>AlignVCenter|AlignLeft</set>
+ </property>
+ <property>
+ <name>hAlign</name>
+ </property>
+ </widget>
+ <widget row="1" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>sizeCaptionLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>maximumSize</name>
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Size:</string>
+ </property>
+ </widget>
+ <widget row="0" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>typeCaptionLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>maximumSize</name>
+ <size>
+ <width>60</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Type:</string>
+ </property>
+ </widget>
+ <widget row="3" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>groupCaptionLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Group:</string>
+ </property>
+ </widget>
+ <widget row="3" column="1" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>groupLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>users (500)</string>
+ </property>
+ </widget>
+ <widget row="4" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>permsCaptionLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Permissions:</string>
+ </property>
+ </widget>
+ <widget row="4" column="1" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>permsLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>rwxrwxrwx</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget>
+ <class>QGroupBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property stdset="1">
+ <name>title</name>
+ <string>Times</string>
+ </property>
+ <grid>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget row="0" column="1" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>lastReadLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>users (500)</string>
+ </property>
+ </widget>
+ <widget row="1" column="1" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>lastModifiedLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>maximumSize</name>
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>users (500)</string>
+ </property>
+ <property stdset="1">
+ <name>alignment</name>
+ <set>AlignVCenter|AlignLeft</set>
+ </property>
+ <property>
+ <name>hAlign</name>
+ </property>
+ </widget>
+ <widget row="0" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>lastReadCaptionLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>maximumSize</name>
+ <size>
+ <width>60</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Accessed:</string>
+ </property>
+ <property stdset="1">
+ <name>alignment</name>
+ <set>AlignVCenter|AlignLeft</set>
+ </property>
+ <property>
+ <name>hAlign</name>
+ </property>
+ </widget>
+ <widget row="1" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>lastModifiedCaptionLabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Modified:</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer1</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Vertical</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+</widget>
+</UI>