Fixed functionality.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
r14.0.x
Michele Calgaro 3 years ago
parent 872756fd1a
commit efc48a5ae9
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -3,7 +3,7 @@ TDEIO appinfo
The appinfo:/ TDEIO slave combines an application's configuration, data, manual and The appinfo:/ TDEIO slave combines an application's configuration, data, manual and
temp files and folders into a single view. temp files and folders into a single view.
Type 'app:/' followed by the application name you're interested in the Type 'appinfo:/' followed by the application name you're interested in the
konqueror address bar to get information about the specified application. konqueror address bar to get information about the specified application.
Type 'appinfo:/' without any application name to list all the applications Type 'appinfo:/' without any application name to list all the applications

@ -129,17 +129,15 @@ void tdeio_appProtocol::listDir(const KURL &url)
return; return;
} }
kdDebug() << "tdeio_appProtocol::listDir: " << "url is " << url << ": doing a listDir" << endl; kdDebug() << "tdeio_appProtocol::listDir: " << "name is " << name << endl;
kdDebug() << "tdeio_appProtocol::listDir: " << "name is " << name << ": doing a listDir" << endl; kdDebug() << "tdeio_appProtocol::listDir: " << "path is " << path << endl;
kdDebug() << "tdeio_appProtocol::listDir: " << "path is " << path << ": doing a listDir" << endl;
// We've been given something like app:/appname
// We've been given something like appinfo:/name
listAppContents(name); listAppContents(name);
} }
void tdeio_appProtocol::listRoot() void tdeio_appProtocol::listRoot()
{ {
TDEIO::UDSEntry entry;
TDEIO::UDSEntryList system_entries; TDEIO::UDSEntryList system_entries;
bool ok = m_impl.listRoot(system_entries); bool ok = m_impl.listRoot(system_entries);
if (!ok) if (!ok)
@ -150,21 +148,15 @@ void tdeio_appProtocol::listRoot()
totalSize(system_entries.count() + 1); totalSize(system_entries.count() + 1);
TDEIO::UDSEntry entry;
m_impl.createTopLevelEntry(entry); m_impl.createTopLevelEntry(entry);
listEntry(entry, false); listEntry(entry, false);
for(const UDSEntry &sysEntry : system_entries) listEntries(system_entries);
{
listEntry(sysEntry, false);
}
entry.clear();
listEntry(entry, true);
finished(); finished();
} }
void tdeio_appProtocol::listAppContents(const TQString &name) void tdeio_appProtocol::listAppContents(const TQString &name)
{ {
TDEIO::UDSEntry entry;
TDEIO::UDSEntryList app_entries; TDEIO::UDSEntryList app_entries;
bool ok = m_impl.listAppContents(name, app_entries); bool ok = m_impl.listAppContents(name, app_entries);
if (!ok) if (!ok)
@ -175,14 +167,9 @@ void tdeio_appProtocol::listAppContents(const TQString &name)
totalSize(app_entries.count() + 1); totalSize(app_entries.count() + 1);
TDEIO::UDSEntry entry;
m_impl.createTopLevelEntry(entry); m_impl.createTopLevelEntry(entry);
listEntry(entry, false); listEntry(entry, false);
for(const UDSEntry &appEntry : app_entries) listEntries(app_entries);
{
listEntry(appEntry, false);
}
entry.clear();
listEntry(entry, true);
finished(); finished();
} }

@ -42,10 +42,13 @@ bool AppImpl::listRoot(TQValueList<TDEIO::UDSEntry> &list)
{ {
kdDebug() << "AppImpl::listRoot" << endl; kdDebug() << "AppImpl::listRoot" << endl;
TQStringList dirList = TQStringList::split(":", getenv("PATH")); //TQStringList dirList = TQStringList::split(":", getenv("PATH"));
TQStringList dirList;
dirList << "/opt/trinity/bin/";
dirList << "/usr/bin/";
dirList << "/usr/local/bin/";
kdDebug() << dirList << endl; kdDebug() << dirList << endl;
TQStringList names_found;
for (const TQString &dirName : dirList) for (const TQString &dirName : dirList)
{ {
TQDir dir(dirName); TQDir dir(dirName);
@ -56,18 +59,10 @@ bool AppImpl::listRoot(TQValueList<TDEIO::UDSEntry> &list)
TQStringList filenames = dir.entryList(TQDir::Files | TQDir::Readable); TQStringList filenames = dir.entryList(TQDir::Files | TQDir::Readable);
TDEIO::UDSEntry entry; TDEIO::UDSEntry entry;
for(const TQString &filename : filenames) for (const TQString &filename : filenames)
{ {
if (!names_found.contains(filename)) createEntry(entry, filename);
{ list.append(entry);
entry.clear();
createEntry(entry, filename);
if (!entry.isEmpty())
{
list.append(entry);
names_found.append(filename);
}
}
} }
} }
@ -76,9 +71,7 @@ bool AppImpl::listRoot(TQValueList<TDEIO::UDSEntry> &list)
bool AppImpl::parseURL(const KURL &url, TQString &name, TQString &path) const bool AppImpl::parseURL(const KURL &url, TQString &name, TQString &path) const
{ {
kdDebug() << "AppImpl::parseURL" << endl;
TQString url_path = url.path(); TQString url_path = url.path();
int i = url_path.find('/', 1); int i = url_path.find('/', 1);
if (i > 0) if (i > 0)
{ {
@ -106,7 +99,7 @@ bool AppImpl::realURL(const TQString &name, const TQString &path, KURL &url) con
return true; return true;
} }
bool AppImpl::statByName(const TQString &filename, TDEIO::UDSEntry& entry) bool AppImpl::statByName(const TQString &filename, TDEIO::UDSEntry &entry)
{ {
kdDebug() << "AppImpl::statByName" << endl; kdDebug() << "AppImpl::statByName" << endl;
@ -125,7 +118,6 @@ bool AppImpl::statByName(const TQString &filename, TDEIO::UDSEntry& entry)
} }
TQStringList filenames = dir.entryList(TQDir::Files | TQDir::Readable); TQStringList filenames = dir.entryList(TQDir::Files | TQDir::Readable);
TDEIO::UDSEntry entry;
for (const TQString &fname : filenames) for (const TQString &fname : filenames)
{ {
if (fname == filename) if (fname == filename)
@ -199,14 +191,12 @@ void AppImpl::createEntry(TDEIO::UDSEntry &entry, const TQString &file)
entry.clear(); entry.clear();
addAtom(entry, TDEIO::UDS_NAME, 0, file); addAtom(entry, TDEIO::UDS_NAME, 0, file);
addAtom(entry, TDEIO::UDS_URL, 0, "appinfo:/" + file);
TQString new_filename = file;
new_filename.truncate(file.length() - 8);
addAtom(entry, TDEIO::UDS_URL, 0, "app:/" + new_filename);
addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, TDEIO::UDS_ACCESS, 0555);
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory");
KService::Ptr service = KService::serviceByDesktopName(new_filename); KService::Ptr service = KService::serviceByDesktopName(file);
if (service && service->isValid()) if (service && service->isValid())
{ {
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, service->icon()); addAtom(entry, TDEIO::UDS_ICON_NAME, 0, service->icon());
@ -250,7 +240,8 @@ void AppImpl::createExeEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry
} }
} }
void AppImpl::createManPageEntry(TDEIO::UDSEntry &entry, const TQString &shortname) void AppImpl::createManPageEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,
const TQString &shortname)
{ {
entry.clear(); entry.clear();
addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Manual for %1").arg(shortname)); addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Manual for %1").arg(shortname));
@ -258,9 +249,10 @@ void AppImpl::createManPageEntry(TDEIO::UDSEntry &entry, const TQString &shortna
addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG);
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application/x-desktop"); addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application/x-desktop");
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "man"); addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "man");
list.append(entry);
} }
void AppImpl::createHomeDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, void AppImpl::createHomeDirEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,
const TQString &shortname) const TQString &shortname)
{ {
TQStringList homedir; TQStringList homedir;
@ -281,7 +273,7 @@ void AppImpl::createHomeDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEn
addAtom(entry, TDEIO::UDS_URL, 0, fname); addAtom(entry, TDEIO::UDS_URL, 0, fname);
addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory");
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "cachefolder"); addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "folder");
list.append(entry); list.append(entry);
} }
} }
@ -309,7 +301,7 @@ void AppImpl::createTDEDataDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UD
addAtom(entry, TDEIO::UDS_URL, 0, dirname); addAtom(entry, TDEIO::UDS_URL, 0, dirname);
addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory");
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binaryfolder"); addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "folder");
list.append(entry); list.append(entry);
} }
} }
@ -340,13 +332,14 @@ void AppImpl::createStandardDataDirEntry(TQValueList<TDEIO::UDSEntry> &list,
addAtom(entry, TDEIO::UDS_URL, 0, dirname); addAtom(entry, TDEIO::UDS_URL, 0, dirname);
addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory");
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binaryfolder"); addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "folder");
list.append(entry); list.append(entry);
} }
} }
void AppImpl::createTDEConfigEntry(TDEIO::UDSEntry &entry, const TQString &shortname) void AppImpl::createTDEConfigEntry(TQValueList<TDEIO::UDSEntry> &list,
TDEIO::UDSEntry &entry, const TQString &shortname)
{ {
TQString TDEDataDir = locate("config", shortname + "rc"); TQString TDEDataDir = locate("config", shortname + "rc");
kdDebug() << "TDEDataDir: " << TDEDataDir << endl; kdDebug() << "TDEDataDir: " << TDEDataDir << endl;
@ -361,6 +354,7 @@ void AppImpl::createTDEConfigEntry(TDEIO::UDSEntry &entry, const TQString &short
addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain"); addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain");
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "configure"); addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "configure");
list.append(entry);
} }
void AppImpl::createStandardConfigEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry, void AppImpl::createStandardConfigEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,
@ -420,7 +414,7 @@ void AppImpl::createTmpDirEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEn
{ {
TQStringList dirList; TQStringList dirList;
dirList << "/tmp/"; dirList << "/tmp/";
TQStringList TmpDir = getFullLocation(dirList,shortname, TQStringList TmpDir = getFullLocation(dirList, shortname,
TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), true, true); TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), true, true);
if (TmpDir.isEmpty()) if (TmpDir.isEmpty())
{ {
@ -450,7 +444,7 @@ void AppImpl::createTmpDirEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEn
addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Tmp Data (%1)").arg(fname)); addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Tmp Data (%1)").arg(fname));
addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory");
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "tmpfolder"); addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "folder");
} }
else else
{ {
@ -480,72 +474,33 @@ void AppImpl::slotResult(TDEIO::Job *)
bool AppImpl::listAppContents(const TQString &name, TQValueList<TDEIO::UDSEntry> &list) bool AppImpl::listAppContents(const TQString &name, TQValueList<TDEIO::UDSEntry> &list)
{ {
kdDebug() << "AppImpl::listAppEntries" << endl; tqWarning("MIKE AppImpl::listAppContents name="+name);
kdDebug() << "AppImpl::listAppContents" << endl;
TDEIO::UDSEntry entry; TDEIO::UDSEntry entry;
// Create entry for binary file // Create entry for binary file
entry.clear();
createExeEntry(list, entry, name, getAppAddress(name)); createExeEntry(list, entry, name, getAppAddress(name));
if (!entry.isEmpty())
{
list.append(entry);
}
// Create entry for man page // Create entry for man page
entry.clear(); entry.clear();
createManPageEntry(entry, name);
if (!entry.isEmpty())
{
list.append(entry);
}
// Create entry for apps folder in home dir // Create entry for apps data folder in home dir
entry.clear();
createHomeDirEntry(list, entry, name); createHomeDirEntry(list, entry, name);
if (!entry.isEmpty())
{
list.append(entry);
}
// Create entry for apps folder in home dir // Create entry for standard config and data folders
entry.clear(); createStandardConfigEntry(list, entry, name);
createTDEDataDirEntry(list, entry, name);
if (!entry.isEmpty())
{
list.append(entry);
}
// Create entry for apps folder in home dir
entry.clear();
createStandardDataDirEntry(list, entry, name); createStandardDataDirEntry(list, entry, name);
if (!entry.isEmpty())
{
list.append(entry);
}
// Create entry for apps folder in home dir // Create entry for TDE config and data folders
entry.clear(); createTDEConfigEntry(list, entry, name);
createTDEConfigEntry(entry, name); createTDEDataDirEntry(list, entry, name);
if (!entry.isEmpty())
{
list.append(entry);
}
// Create entry for apps folder in home dir // Create entry for manual
entry.clear(); createManPageEntry(list, entry, name);
createStandardConfigEntry(list, entry, name);
if (!entry.isEmpty())
{
list.append(entry);
}
//Create entry for apps folder in home dir //Create entry for apps folder in home dir
entry.clear();
createTmpDirEntry(list, entry, name); createTmpDirEntry(list, entry, name);
if (!entry.isEmpty())
{
list.append(entry);
}
return true; return true;
} }
@ -553,9 +508,9 @@ bool AppImpl::listAppContents(const TQString &name, TQValueList<TDEIO::UDSEntry>
TQStringList AppImpl::getAppAddress(const TQString &name) TQStringList AppImpl::getAppAddress(const TQString &name)
{ {
TQStringList dirList; TQStringList dirList;
dirList << "/opt/trinity/bin/";
dirList << "/usr/bin/"; dirList << "/usr/bin/";
dirList << "/usr/local/bin/"; dirList << "/usr/local/bin/";
dirList << "/opt/trinity/bin/";
return getFullLocation(dirList, name, return getFullLocation(dirList, name,
TQDir::FilterSpec(TQDir::Files | TQDir::Readable), false, false); TQDir::FilterSpec(TQDir::Files | TQDir::Readable), false, false);
@ -573,7 +528,7 @@ TQStringList AppImpl::getFullLocation(const TQStringList &dirList, const TQStrin
} }
TQStringList filenames = dir.entryList(filter); TQStringList filenames = dir.entryList(filter);
for (const TQString &filename : dirList) for (const TQString &filename : filenames)
{ {
if (recursive && filename != ".." && filename != ".") if (recursive && filename != ".." && filename != ".")
{ {

@ -58,14 +58,16 @@ private slots:
KURL findBaseURL(const TQString &filename) const; KURL findBaseURL(const TQString &filename) const;
void slotEntries(TDEIO::Job *job, const TDEIO::UDSEntryList &list); void slotEntries(TDEIO::Job *job, const TDEIO::UDSEntryList &list);
void slotResult(TDEIO::Job *job); void slotResult(TDEIO::Job *job);
void createManPageEntry(TDEIO::UDSEntry &entry, const TQString &shortname); void createManPageEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,
void createExeEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, const TQString &shortname);
void createExeEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,
const TQString &shortname, const TQStringList &fullname); const TQString &shortname, const TQStringList &fullname);
void createHomeDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, void createHomeDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry,
const TQString &shortname); const TQString &shortname);
void createTDEDataDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, void createTDEDataDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry,
const TQString &shortname); const TQString &shortname);
void createTDEConfigEntry(TDEIO::UDSEntry &entry, const TQString &shortname); void createTDEConfigEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,
const TQString &shortname);
void createStandardConfigEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry, void createStandardConfigEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,
const TQString &shortname); const TQString &shortname);
void createStandardDataDirEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry, void createStandardDataDirEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry,

Loading…
Cancel
Save