summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-02 10:13:06 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-02 10:13:06 -0600
commit6d74bae8a11865d0d3d373781de6cc95682f5cc4 (patch)
treec25cebab1bcd8c11d9ebe1ad402681385469da97
parentc5bca102dd4e45626e1e76b0684ef065935918ed (diff)
downloadtdelibs-6d74bae8a11865d0d3d373781de6cc95682f5cc4.tar.gz
tdelibs-6d74bae8a11865d0d3d373781de6cc95682f5cc4.zip
Add icon request ability
-rw-r--r--kfile-plugins/elf/kfile_elf.cpp30
-rw-r--r--kio/kio/kfileitem.cpp8
-rw-r--r--kio/kio/kurifilter.cpp14
-rw-r--r--kio/kio/tdelficon.cpp6
-rw-r--r--tdelfeditor/tdelfeditor.cpp4
5 files changed, 20 insertions, 42 deletions
diff --git a/kfile-plugins/elf/kfile_elf.cpp b/kfile-plugins/elf/kfile_elf.cpp
index a26a6804b..2357f0617 100644
--- a/kfile-plugins/elf/kfile_elf.cpp
+++ b/kfile-plugins/elf/kfile_elf.cpp
@@ -41,34 +41,6 @@ typedef unsigned long uint32_t;
typedef unsigned short uint16_t;
#endif
-TQString elf_get_resource(libr_file *handle, char *section_name)
-{
- size_t buffer_size = 0;
- char *buffer = NULL;
- TQString result;
-
- /* Get the resource from the ELF binary */
- if(!libr_size(handle, section_name, &buffer_size))
- {
- kdWarning() << "failed to obtain ELF resource size: " << libr_errmsg() << endl;
- return result;
- }
- /* Get the resource from the ELF file */
- buffer = (char *) malloc(buffer_size+1);
- buffer[buffer_size] = 0;
- if(!libr_read(handle, section_name, buffer))
- {
- kdWarning() << "failed to obtain ELF resource: " << libr_errmsg() << endl;
- goto fail;
- }
- result = buffer;
-
-fail:
- free(buffer);
-
- return result;
-}
-
typedef KGenericFactory<KElfPlugin> ElfFactory;
K_EXPORT_COMPONENT_FACTORY(kfile_elf, ElfFactory( "kfile_elf" ))
@@ -96,7 +68,7 @@ KElfPlugin::KElfPlugin(TQObject *parent, const char *name,
item = addItemInfo(group, "Product", i18n("Product"), TQVariant::String);
item = addItemInfo(group, "Organization", i18n("Organization"), TQVariant::String);
item = addItemInfo(group, "Version", i18n("Version"), TQVariant::String);
- item = addItemInfo(group, "DateTime", i18n("Creation Date/Time"), TQVariant::String);
+ item = addItemInfo(group, "DateTime", i18n("Compilation Date/Time"), TQVariant::String);
item = addItemInfo(group, "SystemIcon", i18n("Requested Icon"), TQVariant::String);
item = addItemInfo(group, "Notes", i18n("Comments"), TQVariant::String);
diff --git a/kio/kio/kfileitem.cpp b/kio/kio/kfileitem.cpp
index efb59043b..cf903f712 100644
--- a/kio/kio/kfileitem.cpp
+++ b/kio/kio/kfileitem.cpp
@@ -671,8 +671,10 @@ TQPixmap KFileItem::pixmap( int _size, int _state ) const
// See if there is a system icon we can use
TQString sysIconName = elf_get_resource(handle, ".metadata_sysicon");
- if (KGlobal::iconLoader()->iconPath(sysIconName.ascii(), 0, true) != "") {
- p = DesktopIcon( sysIconName.ascii(), _size, _state );
+ if (!sysIconName.isEmpty()) {
+ if (KGlobal::iconLoader()->iconPath(sysIconName.ascii(), 0, true) != "") {
+ p = DesktopIcon( sysIconName.ascii(), _size, _state );
+ }
}
libr_close(handle);
@@ -694,7 +696,7 @@ TQPixmap KFileItem::pixmap( int _size, int _state ) const
}
}
- if (iconresnamefound == 0) {
+ if ((iconresnamefound == 0) && (icon)) {
// Extract the embedded icon
size_t icon_data_length;
char* icondata = libr_icon_malloc(icon, &icon_data_length);
diff --git a/kio/kio/kurifilter.cpp b/kio/kio/kurifilter.cpp
index 24ed48328..42840a588 100644
--- a/kio/kio/kurifilter.cpp
+++ b/kio/kio/kurifilter.cpp
@@ -195,7 +195,7 @@ TQString KURIFilterData::iconName()
libr_file *handle = NULL;
libr_access_t access = LIBR_READ;
char libr_can_continue = 1;
-
+
if((handle = libr_open(const_cast<char*>(m_pURI.path().ascii()), access)) == NULL)
{
kdWarning() << "failed to open file" << m_pURI.path() << endl;
@@ -219,8 +219,10 @@ TQString KURIFilterData::iconName()
// See if there is a system icon we can use
TQString sysIconName = elf_get_resource(handle, ".metadata_sysicon");
- if (KGlobal::iconLoader()->iconPath(sysIconName.ascii(), 0, true) != "") {
- m_customIconPixmap = DesktopIcon( sysIconName.ascii(), _size, _state );
+ if (!sysIconName.isEmpty()) {
+ if (KGlobal::iconLoader()->iconPath(sysIconName.ascii(), 0, true) != "") {
+ m_strIconName = sysIconName;
+ }
}
libr_close(handle);
@@ -241,8 +243,8 @@ TQString KURIFilterData::iconName()
}
}
}
-
- if (iconresnamefound == 0) {
+
+ if ((iconresnamefound == 0) && (icon)) {
// Extract the embedded icon
size_t icon_data_length;
char* icondata = libr_icon_malloc(icon, &icon_data_length);
@@ -255,7 +257,7 @@ TQString KURIFilterData::iconName()
free(icondata);
libr_icon_close(icon);
}
-
+
libr_close(handle);
}
}
diff --git a/kio/kio/tdelficon.cpp b/kio/kio/tdelficon.cpp
index 6e1e68169..49ceffd24 100644
--- a/kio/kio/tdelficon.cpp
+++ b/kio/kio/tdelficon.cpp
@@ -69,7 +69,7 @@ TQString elf_get_resource(libr_file *handle, char *section_name)
/* Get the resource from the ELF binary */
if(!libr_size(handle, section_name, &buffer_size))
{
- kdWarning() << "failed to obtain ELF resource size: " << libr_errmsg() << endl;
+// kdWarning() << "failed to obtain ELF resource size: " << libr_errmsg() << endl;
return result;
}
/* Get the resource from the ELF file */
@@ -77,7 +77,7 @@ TQString elf_get_resource(libr_file *handle, char *section_name)
buffer[buffer_size] = 0;
if(!libr_read(handle, section_name, buffer))
{
- kdWarning() << "failed to obtain ELF resource: " << libr_errmsg() << endl;
+// kdWarning() << "failed to obtain ELF resource: " << libr_errmsg() << endl;
goto fail;
}
result = buffer;
@@ -86,4 +86,4 @@ fail:
free(buffer);
return result;
-} \ No newline at end of file
+}
diff --git a/tdelfeditor/tdelfeditor.cpp b/tdelfeditor/tdelfeditor.cpp
index 4515474c6..a3ba789c5 100644
--- a/tdelfeditor/tdelfeditor.cpp
+++ b/tdelfeditor/tdelfeditor.cpp
@@ -496,7 +496,7 @@ int main_console(int argc, char **argv)
} break;
case MODE_SET_EMPTY_UUID:
section = ICON_SECTION;
- clear_resource(handle, section);
+ clear_resource(handle, section);
if(!libr_icon_setuuid(handle, "00000000-0000-0000-0000-000000000000"))
{
@@ -549,6 +549,8 @@ int main_console(int argc, char **argv)
if (systemIcon.isNull()) {
systemIcon = KGlobal::iconLoader()->iconPath(argv[PARAM_ICON_NAME], 0, false);
printf("NOT FOUND, refusing to add unknown icon (this message is harmless)\n\r");
+ section = ICON_SECTION;
+ clear_resource(handle, section);
goto fail;
}
else {