diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2022-05-05 00:15:44 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2022-05-05 00:15:53 +0900 |
commit | 872756fd1a214b32d8dceb49661a3ce9b464d04d (patch) | |
tree | 78e0505f524f8c3154a80875bd5f739ff951c347 /src/appimpl.cpp | |
parent | 0df7d0722be947a5a9b3e54fc2693fdcc4221a9b (diff) | |
download | tdeio-appinfo-872756fd1a214b32d8dceb49661a3ce9b464d04d.tar.gz tdeio-appinfo-872756fd1a214b32d8dceb49661a3ce9b464d04d.zip |
Overall code clean up. Functionality still to be fixed up.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'src/appimpl.cpp')
-rw-r--r-- | src/appimpl.cpp | 1019 |
1 files changed, 464 insertions, 555 deletions
diff --git a/src/appimpl.cpp b/src/appimpl.cpp index 3bcc079..8676bcf 100644 --- a/src/appimpl.cpp +++ b/src/appimpl.cpp @@ -1,5 +1,4 @@ /*************************************************************************** - * $Id: tork.cpp,v 1.160 2007/12/30 12:58:22 hoganrobert Exp $ * Copyright (C) 2006 by Robert Hogan * * robert@roberthogan.net * * * @@ -18,41 +17,20 @@ * Free Software Foundation, Inc., * * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -/* This file is part of the KDE project - Copyright (c) 2004 Kevin Ottens <ervin ipsquad net> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ #include "appimpl.h" +#include <tqapplication.h> +#include <tqeventloop.h> + #include <kdebug.h> -#include <tdeglobalsettings.h> #include <kstandarddirs.h> #include <kdesktopfile.h> #include <tdelocale.h> -#include <kiconloader.h> #include <kservice.h> #include <kservicegroup.h> +#include <tdeio/job.h> -#include <tqapplication.h> -#include <tqeventloop.h> -#include <tqdir.h> - -#include <sys/stat.h> #include <stdlib.h> @@ -62,639 +40,570 @@ AppImpl::AppImpl() : TQObject() bool AppImpl::listRoot(TQValueList<TDEIO::UDSEntry> &list) { + kdDebug() << "AppImpl::listRoot" << endl; + + TQStringList dirList = TQStringList::split(":", getenv("PATH")); + kdDebug() << dirList << endl; + + TQStringList names_found; + for (const TQString &dirName : dirList) + { + TQDir dir(dirName); + if (!dir.exists()) + { + continue; + } + TQStringList filenames = dir.entryList(TQDir::Files | TQDir::Readable); + TDEIO::UDSEntry entry; + for(const TQString &filename : filenames) + { + if (!names_found.contains(filename)) + { + entry.clear(); + createEntry(entry, filename); + if (!entry.isEmpty()) + { + list.append(entry); + names_found.append(filename); + } + } + } + } - kdDebug() << "AppImpl::listRoot" << endl; - - - TQStringList dirList = TQStringList::split(":",getenv("PATH")); - kdDebug() << dirList << endl; - TQStringList names_found; -// TQStringList dirList; -// dirList << "/usr/local/bin/"; -// dirList << "/usr/bin/"; -// dirList << "/usr/sbin/"; -// dirList << "/bin/"; - - - TQStringList::ConstIterator dirpath = dirList.begin(); - TQStringList::ConstIterator end = dirList.end(); - for(; dirpath!=end; ++dirpath) - { - TQDir dir = *dirpath; - if (!dir.exists()) continue; - - TQStringList filenames - = dir.entryList( TQDir::Files | TQDir::Readable ); - - TDEIO::UDSEntry entry; - - TQStringList::ConstIterator filename = filenames.begin(); - TQStringList::ConstIterator endf = filenames.end(); - - for(; filename!=endf; ++filename) - { - if (!names_found.contains(*filename)) - { - entry.clear(); - createEntry(entry, /**dirpath,*/ *filename); - if ( !entry.isEmpty() ) - { - list.append(entry); - names_found.append(*filename); - } - } - } - } - - kdDebug() << "AppImpl::listRoot" << endl; - - return true; + return true; } bool AppImpl::parseURL(const KURL &url, TQString &name, TQString &path) const { - TQString url_path = url.path(); - - int i = url_path.find('/', 1); - if (i > 0) - { - name = url_path.mid(1, i-1); - path = url_path.mid(i+1); - } - else - { - name = url_path.mid(1); - path = TQString::null; - } - - return name != TQString::null; + kdDebug() << "AppImpl::parseURL" << endl; + TQString url_path = url.path(); + + int i = url_path.find('/', 1); + if (i > 0) + { + name = url_path.mid(1, i-1); + path = url_path.mid(i+1); + } + else + { + name = url_path.mid(1); + path = TQString::null; + } + + return !name.isEmpty(); } -bool AppImpl::realURL(const TQString &name, const TQString &path, - KURL &url) const +bool AppImpl::realURL(const TQString &name, const TQString &path, KURL &url) const { - url = findBaseURL(name); - if (!url.isValid()) - { - return false; - } - - url.addPath(path); - return true; + url = findBaseURL(name); + if (!url.isValid()) + { + return false; + } + + url.addPath(path); + return true; } bool AppImpl::statByName(const TQString &filename, TDEIO::UDSEntry& entry) { + kdDebug() << "AppImpl::statByName" << endl; + + TQStringList dirList; + dirList << "/usr/bin/"; + dirList << "/usr/local/bin/"; + dirList << "/opt/trinity/bin/"; + + TQStringList names_found; + for (const TQString &dirName : dirList) + { + TQDir dir(dirName); + if (!dir.exists()) + { + continue; + } + TQStringList filenames = dir.entryList(TQDir::Files | TQDir::Readable); + TDEIO::UDSEntry entry; + for (const TQString &fname : filenames) + { + if (fname == filename) + { + createEntry(entry, fname); + return true; + } + } + } - kdDebug() << "AppImpl::statByName" << endl; - - TQStringList dirList; - dirList << "/usr/local/bin/"; - dirList << "/usr/bin/"; - - TQStringList::ConstIterator dirpath = dirList.begin(); - TQStringList::ConstIterator end = dirList.end(); - for(; dirpath!=end; ++dirpath) - { - TQDir dir = *dirpath; - if (!dir.exists()) continue; - - TQStringList filenames - = dir.entryList( TQDir::Files | TQDir::Readable ); - - - TQStringList::ConstIterator name = filenames.begin(); - TQStringList::ConstIterator endf = filenames.end(); - - for(; name!=endf; ++name) - { - if (*name==filename) - { - createEntry(entry, /**dirpath,*/ *name); - return true; - } - } - } - - return false; + return false; } KURL AppImpl::findBaseURL(const TQString &filename) const { - kdDebug() << "AppImpl::findBaseURL" << endl; - - TQStringList dirList = TDEGlobal::dirs()->resourceDirs("system_entries"); - - TQStringList::ConstIterator dirpath = dirList.begin(); - TQStringList::ConstIterator end = dirList.end(); - for(; dirpath!=end; ++dirpath) - { - TQDir dir = *dirpath; - if (!dir.exists()) continue; - - TQStringList filenames - = dir.entryList( TQDir::Files | TQDir::Readable ); - - - TDEIO::UDSEntry entry; - - TQStringList::ConstIterator name = filenames.begin(); - TQStringList::ConstIterator endf = filenames.end(); - - for(; name!=endf; ++name) - { - if (*name==filename+".desktop") - { - KDesktopFile desktop(*dirpath+filename+".desktop", true); - if ( desktop.readURL().isEmpty() ) - { - KURL url; - url.setPath( desktop.readPath() ); - return url; - } - - return desktop.readURL(); - } - } - } - - return KURL(); + kdDebug() << "AppImpl::findBaseURL" << endl; + + TQStringList dirList = TDEGlobal::dirs()->resourceDirs("system_entries"); + for (const TQString &dirName : dirList) + { + TQDir dir(dirName); + if (!dir.exists()) + { + continue; + } + + TQStringList filenames = dir.entryList(TQDir::Files | TQDir::Readable); + TDEIO::UDSEntry entry; + for (const TQString &fname : filenames) + { + if (fname == filename + ".desktop") + { + KDesktopFile desktop(dirName + fname, true); + if (desktop.readURL().isEmpty()) + { + KURL url; + url.setPath(desktop.readPath()); + return url; + } + return desktop.readURL(); + } + } + } + + return KURL(); } static void addAtom(TDEIO::UDSEntry &entry, unsigned int ID, long l, const TQString &s = TQString::null) { - TDEIO::UDSAtom atom; - atom.m_uds = ID; - atom.m_long = l; - atom.m_str = s; - entry.append(atom); + TDEIO::UDSAtom atom; + atom.m_uds = ID; + atom.m_long = l; + atom.m_str = s; + entry.append(atom); } - void AppImpl::createTopLevelEntry(TDEIO::UDSEntry &entry) const { - entry.clear(); - addAtom(entry, TDEIO::UDS_NAME, 0, "."); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_ACCESS, 0555); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/system_directory"); - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "system"); + entry.clear(); + addAtom(entry, TDEIO::UDS_NAME, 0, "."); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); + addAtom(entry, TDEIO::UDS_ACCESS, 0555); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/system_directory"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "system"); } -void AppImpl::createEntry(TDEIO::UDSEntry &entry, -// const TQString &directory, - const TQString &file) +void AppImpl::createEntry(TDEIO::UDSEntry &entry, const TQString &file) { - - entry.clear(); - - addAtom(entry, TDEIO::UDS_NAME, 0, 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_MIME_TYPE, 0, "inode/directory"); - - KService::Ptr service = KService::serviceByDesktopName( new_filename ); - if (service && service->isValid()) - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, service->icon()); - else - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binary"); - + entry.clear(); + + addAtom(entry, TDEIO::UDS_NAME, 0, 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_MIME_TYPE, 0, "inode/directory"); + + KService::Ptr service = KService::serviceByDesktopName(new_filename); + if (service && service->isValid()) + { + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, service->icon()); + } + else + { + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binary"); + } } void AppImpl::createExeEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, const TQString &shortname, const TQStringList &fullname) { + for (const TQString &name : fullname) + { + if (name.isEmpty()) + { + continue; + } - - for ( TQStringList::ConstIterator it = fullname.begin(); it != fullname.end(); ++it ) - { - if ((*it).isEmpty()) - continue; - entry.clear(); - -/* TQStringList dirList = TDEGlobal::instance()->dirs()->resourceDirs("apps"); - kdDebug() << dirList << endl; - TQStringList desktop = getFullLocation(dirList,shortname+".desktop", - TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), - false,true); - kdDebug() << desktop << endl;*/ - KService::Ptr service = KService::serviceByDesktopName( shortname ); - -// if (!desktop.isEmpty()){ - if (service && service->isValid()) { - -// for ( TQStringList::Iterator dit = desktop.begin(); dit != desktop.end(); ++dit ) -// { -// if ((*dit).isEmpty()) -// continue; -// entry.clear(); - - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Application (%1)").arg(service->name())); - addAtom(entry, TDEIO::UDS_URL, 0, locate("apps", service->desktopEntryPath())); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application/x-desktop"); - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, service->icon()); -// createFileEntry(entry, service->name(), url.url(1)+service->desktopEntryName(), -// "application/x-desktop", service->icon(), locate("apps", -// service->desktopEntryPath()) ); - - if ( !entry.isEmpty() ) - list.append(entry); -// } - return; - } - - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Application (%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_URL, 0, *it); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application"); - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binary"); - if ( !entry.isEmpty() ) - list.append(entry); + entry.clear(); + KService::Ptr service = KService::serviceByDesktopName(shortname); + if (service && service->isValid()) + { + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Application (%1)").arg(service->name())); + addAtom(entry, TDEIO::UDS_URL, 0, locate("apps", service->desktopEntryPath())); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application/x-desktop"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, service->icon()); + list.append(entry); + return; } + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Application (%1)").arg(name)); + addAtom(entry, TDEIO::UDS_URL, 0, name); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binary"); + list.append(entry); + } } -void AppImpl::createManPageEntry(TDEIO::UDSEntry &entry, - const TQString &shortname) +void AppImpl::createManPageEntry(TDEIO::UDSEntry &entry, const TQString &shortname) { - - entry.clear(); - - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Manual for %1").arg(shortname)); - -/* TQString new_filename = file; - new_filename.truncate(file.length()-8);*/ - addAtom(entry, TDEIO::UDS_URL, 0, "man:/"+shortname); - - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application/x-desktop"); - - TQString icon = "man"; - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, icon); + entry.clear(); + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Manual for %1").arg(shortname)); + addAtom(entry, TDEIO::UDS_URL, 0, "man:/"+shortname); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "application/x-desktop"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "man"); } void AppImpl::createHomeDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, const TQString &shortname) { - - TQStringList homedir; - homedir << TQString("%1/").arg(getenv("HOME")); - - TQString dirname = "."+shortname; - TQStringList fullname = getFullLocation(homedir,dirname, - TQDir::FilterSpec(TQDir::Hidden | TQDir::Dirs | TQDir::Readable), - true, false); - - for ( TQStringList::Iterator it = fullname.begin(); it != fullname.end(); ++it ) - { - if ((*it).isEmpty()) - continue; - entry.clear(); - - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("User Data (%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_URL, 0, *it); - - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); - - TQString icon = "cachefolder"; - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, icon); - if ( !entry.isEmpty() ) - list.append(entry); + TQStringList homedir; + homedir << TQString("%1/").arg(getenv("HOME")); + TQString dirname = "." + shortname; + TQStringList fullname = getFullLocation(homedir, dirname, + TQDir::FilterSpec(TQDir::Hidden | TQDir::Dirs | TQDir::Readable), true, false); + + for (const TQString &fname : fullname) + { + if (fname.isEmpty()) + { + continue; } + + entry.clear(); + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("User Data (%1)").arg(fname)); + addAtom(entry, TDEIO::UDS_URL, 0, fname); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "cachefolder"); + list.append(entry); + } } -void AppImpl::createKDEDataDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, +void AppImpl::createTDEDataDirEntry(TQValueList<TDEIO::UDSEntry> &list,TDEIO::UDSEntry &entry, const TQString &shortname) { - - TQStringList dirList = TDEGlobal::instance()->dirs()->resourceDirs("data"); - - TQStringList KDEDataDir = getFullLocation(dirList,shortname, - TQDir::FilterSpec(TQDir::Dirs | TQDir::Readable), false, false); - if (KDEDataDir.isEmpty()) - return; - - - for ( TQStringList::Iterator it = KDEDataDir.begin(); it != KDEDataDir.end(); ++it ) - { - if ((*it).isEmpty()) - continue; - entry.clear(); - - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("App Data (%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_URL, 0, *it); - - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); - - TQString icon = "binaryfolder"; - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, icon); - if ( !entry.isEmpty() ) - list.append(entry); + TQStringList dirList = TDEGlobal::instance()->dirs()->resourceDirs("data"); + TQStringList TDEDataDir = getFullLocation(dirList, shortname, + TQDir::FilterSpec(TQDir::Dirs | TQDir::Readable), false, false); + if (TDEDataDir.isEmpty()) + { + return; + } + + for (const TQString &dirname : TDEDataDir) + { + if (dirname.isEmpty()) + { + continue; } + entry.clear(); + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("App Data (%1)").arg(dirname)); + addAtom(entry, TDEIO::UDS_URL, 0, dirname); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binaryfolder"); + list.append(entry); + } } -void AppImpl::createStandardDataDirEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry, - const TQString &shortname) +void AppImpl::createStandardDataDirEntry(TQValueList<TDEIO::UDSEntry> &list, + TDEIO::UDSEntry &entry, const TQString &shortname) { - - - TQStringList dirList; - dirList << "/usr/share/"; - dirList << "/usr/local/share/"; - - TQStringList StandardDataDir = - getFullLocation(dirList,shortname, - TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), - true, false); - - if (StandardDataDir.isEmpty()) - return; - - for ( TQStringList::Iterator it = StandardDataDir.begin(); it != StandardDataDir.end(); ++it ) - { - if ((*it).isEmpty()) - continue; - entry.clear(); - - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("App Data (%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_URL, 0, *it); - - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); - - TQString icon = "binaryfolder"; - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, icon); - if ( !entry.isEmpty() ) - list.append(entry); + TQStringList dirList; + dirList << "/usr/share/"; + dirList << "/usr/local/share/"; + dirList << "/opt/trinity/share/"; + TQStringList StandardDataDir = getFullLocation(dirList, shortname, + TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), true, false); + if (StandardDataDir.isEmpty()) + { + return; + } + + for (const TQString &dirname : StandardDataDir) + { + if (dirname.isEmpty()) + { + continue; } + + entry.clear(); + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("App Data (%1)").arg(dirname)); + addAtom(entry, TDEIO::UDS_URL, 0, dirname); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "binaryfolder"); + list.append(entry); + } } -void AppImpl::createKDEConfigEntry(TDEIO::UDSEntry &entry, - const TQString &shortname) +void AppImpl::createTDEConfigEntry(TDEIO::UDSEntry &entry, const TQString &shortname) { - - entry.clear(); - - TQString KDEDataDir = locate("config", shortname+"rc"); - kdDebug() << "KDEDataDir: " << KDEDataDir << endl; - - if (KDEDataDir.isEmpty()) - return; - - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Config File (%1)").arg(KDEDataDir)); - addAtom(entry, TDEIO::UDS_URL, 0, KDEDataDir); - - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain"); - - TQString icon = "configure"; - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, icon); + TQString TDEDataDir = locate("config", shortname + "rc"); + kdDebug() << "TDEDataDir: " << TDEDataDir << endl; + if (TDEDataDir.isEmpty()) + { + return; + } + + entry.clear(); + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Config File (%1)").arg(TDEDataDir)); + addAtom(entry, TDEIO::UDS_URL, 0, TDEDataDir); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "configure"); } void AppImpl::createStandardConfigEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry, const TQString &shortname) { + TQStringList dirList; + dirList << "/etc/"; + dirList << "/usr/etc/"; + dirList << "/usr/local/etc/"; + dirList << "/opt/trinity/etc/"; + TQStringList StandardConfigFile = getFullLocation(dirList,shortname, + TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), true, false); + if (StandardConfigFile.isEmpty()) + { + return; + } + + for (const TQString &fname : StandardConfigFile) + { + if (fname.isEmpty()) + { + continue; + } + entry.clear(); + bool isFolder = false; + TQFileInfo fi(fname); + if (fi.isDir()) + { + isFolder = true; + } - TQStringList dirList; - dirList << "/etc/"; - dirList << "/usr/local/etc/"; - dirList << "/usr/etc/"; - - TQStringList StandardConfigFile = - getFullLocation(dirList,shortname, - TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), - true, false); - - if (StandardConfigFile.isEmpty()) - return; - - for ( TQStringList::Iterator it = StandardConfigFile.begin(); it != StandardConfigFile.end(); ++it ) - { - if ((*it).isEmpty()) - continue; - entry.clear(); + kdDebug() << "createStandardConfigEntry: " << fname << endl; - bool isFolder = false; - TQFileInfo fi(*it); - if (fi.isDir()) - isFolder = true; - - kdDebug() << "createStandardConfigEntry: " << *it << endl; - - addAtom(entry, TDEIO::UDS_URL, 0, *it); - - TQString icon; - if (isFolder){ - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Config Data(%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); - icon = "configfolder"; - }else{ - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Config File(%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain"); - icon = "configure"; - } - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, icon); - if ( !entry.isEmpty() ) - list.append(entry); + addAtom(entry, TDEIO::UDS_URL, 0, fname); + TQString icon; + if (isFolder) + { + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Config Data(%1)").arg(fname)); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "configfolder"); + } + else + { + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Config File(%1)").arg(fname)); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "configure"); } + list.append(entry); + } } void AppImpl::createTmpDirEntry(TQValueList<TDEIO::UDSEntry> &list, TDEIO::UDSEntry &entry, const TQString &shortname) { + TQStringList dirList; + dirList << "/tmp/"; + TQStringList TmpDir = getFullLocation(dirList,shortname, + TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), true, true); + if (TmpDir.isEmpty()) + { + return; + } + + for (const TQString &fname : TmpDir) + { + if (fname.isEmpty()) + { + continue; + } + entry.clear(); + bool isFolder = false; + TQFileInfo fi(fname); + if (fi.isDir()) + { + isFolder = true; + } - TQStringList dirList; - dirList << "/tmp/"; - - TQStringList TmpDir = - getFullLocation(dirList,shortname, - TQDir::FilterSpec(TQDir::Files | TQDir::Dirs | TQDir::Readable), - true, true); - - if (TmpDir.isEmpty()) - return; - - for ( TQStringList::Iterator it = TmpDir.begin(); it != TmpDir.end(); ++it ) - { - if ((*it).isEmpty()) - continue; - entry.clear(); + kdDebug() << "createTmpDirEntry: " << fname << endl; - bool isFolder = false; - TQFileInfo fi(*it); - if (fi.isDir()) - isFolder = true; - - kdDebug() << "createTmpDirEntry: " << *it << endl; - - addAtom(entry, TDEIO::UDS_URL, 0, *it); - - TQString icon; - if (isFolder){ - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Tmp Data (%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); - icon = "tmpfolder"; - }else{ - addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Tmp File (%1)").arg(*it)); - addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); - addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain"); - icon = "eraser"; - } - addAtom(entry, TDEIO::UDS_ICON_NAME, 0, icon); - if ( !entry.isEmpty() ) - list.append(entry); + addAtom(entry, TDEIO::UDS_URL, 0, fname); + if (isFolder) + { + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Tmp Data (%1)").arg(fname)); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFDIR); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "inode/directory"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "tmpfolder"); + } + else + { + addAtom(entry, TDEIO::UDS_NAME, 0, i18n("Tmp File (%1)").arg(fname)); + addAtom(entry, TDEIO::UDS_FILE_TYPE, S_IFREG); + addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, "text/plain"); + addAtom(entry, TDEIO::UDS_ICON_NAME, 0, "eraser"); } + list.append(entry); + } } void AppImpl::slotEntries(TDEIO::Job *job, const TDEIO::UDSEntryList &list) { - if (list.size()>0) - { - job->kill(true); - m_lastListingEmpty = false; - tqApp->eventLoop()->exitLoop(); - } + if (list.size() > 0) + { + job->kill(true); + m_lastListingEmpty = false; + tqApp->eventLoop()->exitLoop(); + } } void AppImpl::slotResult(TDEIO::Job *) { - tqApp->eventLoop()->exitLoop(); + tqApp->eventLoop()->exitLoop(); } bool AppImpl::listAppContents(const TQString &name, TQValueList<TDEIO::UDSEntry> &list) { - - - kdDebug() << "AppImpl::listAppEntries" << endl; - TDEIO::UDSEntry entry; - - //Create entry for binary file - entry.clear(); - createExeEntry(list,entry,name,getAppAddress(name)); -// if ( !entry.isEmpty() ) -// list.append(entry); - - //Create entry for man page - entry.clear(); - createManPageEntry(entry,name); - if ( !entry.isEmpty() ) - list.append(entry); - - //Create entry for apps folder in home dir - entry.clear(); - createHomeDirEntry(list,entry,name); -// if ( !entry.isEmpty() ) -// list.append(entry); - - //Create entry for apps folder in home dir - entry.clear(); - createKDEDataDirEntry(list,entry,name); -// if ( !entry.isEmpty() ) -// list.append(entry); - - //Create entry for apps folder in home dir - entry.clear(); - createStandardDataDirEntry(list,entry,name); -// if ( !entry.isEmpty() ) -// list.append(entry); - - //Create entry for apps folder in home dir - entry.clear(); - createKDEConfigEntry(entry,name); - if ( !entry.isEmpty() ) - list.append(entry); - - //Create entry for apps folder in home dir - entry.clear(); - createStandardConfigEntry(list,entry,name); -// if ( !entry.isEmpty() ) -// list.append(entry); - - //Create entry for apps folder in home dir - entry.clear(); - createTmpDirEntry(list,entry,name); - - return true; + kdDebug() << "AppImpl::listAppEntries" << endl; + TDEIO::UDSEntry entry; + + // Create entry for binary file + entry.clear(); + createExeEntry(list, entry, name, getAppAddress(name)); + if (!entry.isEmpty()) + { + list.append(entry); + } + + // Create entry for man page + entry.clear(); + createManPageEntry(entry, name); + if (!entry.isEmpty()) + { + list.append(entry); + } + + // Create entry for apps folder in home dir + entry.clear(); + createHomeDirEntry(list, entry, name); + if (!entry.isEmpty()) + { + list.append(entry); + } + + // Create entry for apps folder in home dir + entry.clear(); + createTDEDataDirEntry(list, entry, name); + if (!entry.isEmpty()) + { + list.append(entry); + } + + // Create entry for apps folder in home dir + entry.clear(); + createStandardDataDirEntry(list, entry, name); + if (!entry.isEmpty()) + { + list.append(entry); + } + + // Create entry for apps folder in home dir + entry.clear(); + createTDEConfigEntry(entry, name); + if (!entry.isEmpty()) + { + list.append(entry); + } + + // Create entry for apps folder in home dir + entry.clear(); + createStandardConfigEntry(list, entry, name); + if (!entry.isEmpty()) + { + list.append(entry); + } + + //Create entry for apps folder in home dir + entry.clear(); + createTmpDirEntry(list, entry, name); + if (!entry.isEmpty()) + { + list.append(entry); + } + + return true; } TQStringList AppImpl::getAppAddress(const TQString &name) { - - TQStringList dirList; - dirList << "/usr/local/bin/"; - dirList << "/usr/bin/"; - - return getFullLocation(dirList,name, TQDir::FilterSpec(TQDir::Files | TQDir::Readable),false, false); + TQStringList dirList; + dirList << "/usr/bin/"; + dirList << "/usr/local/bin/"; + dirList << "/opt/trinity/bin/"; + return getFullLocation(dirList, name, + TQDir::FilterSpec(TQDir::Files | TQDir::Readable), false, false); } - - -TQStringList AppImpl::getFullLocation(const TQStringList &dirList, const TQString &name, +TQStringList AppImpl::getFullLocation(const TQStringList &dirList, const TQString &name, const TQDir::FilterSpec &filter, bool beginswith, bool recursive) { + TQStringList finds; + for (const TQString &dirpath : dirList) + { + TQDir dir = dirpath; + if (!dir.exists()) + { + continue; + } - TQStringList finds; - TQStringList::ConstIterator dirpath = dirList.begin(); - TQStringList::ConstIterator end = dirList.end(); - for(; dirpath!=end; ++dirpath) - { - TQDir dir = *dirpath; - if (!dir.exists()) continue; - - TQStringList filenames - = dir.entryList( filter ); - - TQStringList::ConstIterator filename = filenames.begin(); - TQStringList::ConstIterator endf = filenames.end(); - - for(; filename!=endf; ++filename) - { - - if ((recursive) && ((*filename != "..")&&(*filename != "."))){ - TQFileInfo fi(*dirpath+*filename); - if (fi.isDir()){ - TQStringList recurfinds; - recurfinds = getFullLocation(TQStringList(*dirpath+*filename+"/"), - name, filter, beginswith, recursive); - if (!recurfinds.isEmpty()){ - for ( TQStringList::Iterator it = recurfinds.begin(); - it != recurfinds.end(); ++it ) - { - if ((*it).isEmpty()) - continue; - finds << (*it); - } - } - } + TQStringList filenames = dir.entryList(filter); + for (const TQString &filename : dirList) + { + if (recursive && filename != ".." && filename != ".") + { + TQFileInfo fi(dirpath + filename); + if (fi.isDir()) + { + TQStringList recurfinds; + recurfinds = getFullLocation(TQStringList(dirpath + filename + "/"), + name, filter, beginswith, recursive); + if (!recurfinds.isEmpty()) + { + for (const TQString &recurFilename : recurfinds) + { + if (recurFilename.isEmpty()) + { + continue; + } + finds << recurFilename; } - - if ((name == *filename) || - ((beginswith) && (*filename).startsWith(name))) - { - finds << *dirpath+*filename; - } - } - } - return finds; + } + } + } + + if (name == filename || (beginswith && filename.startsWith(name))) + { + finds << dirpath + filename; + } + } + } + return finds; } #include "appimpl.moc" |