SOURCES: kdegraphics-branch.diff - CVE-2007-3387 + branch fixes

arekm arekm at pld-linux.org
Tue Jul 31 09:35:30 CEST 2007


Author: arekm                        Date: Tue Jul 31 07:35:30 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- CVE-2007-3387 + branch fixes

---- Files affected:
SOURCES:
   kdegraphics-branch.diff (1.13 -> 1.14) 

---- Diffs:

================================================================
Index: SOURCES/kdegraphics-branch.diff
diff -u SOURCES/kdegraphics-branch.diff:1.13 SOURCES/kdegraphics-branch.diff:1.14
--- SOURCES/kdegraphics-branch.diff:1.13	Mon Apr  3 17:07:02 2006
+++ SOURCES/kdegraphics-branch.diff	Tue Jul 31 09:35:24 2007
@@ -1,3268 +1,1729 @@
-Index: kpdf/core/generator_pdf/generator_pdf.cpp
-===================================================================
---- kpdf/core/generator_pdf/generator_pdf.cpp	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kpdf/core/generator_pdf/generator_pdf.cpp	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -731,7 +731,7 @@
-         return i18n( "Unknown Date" );
- 
-     Object obj;
--    char *s;
-+    const char *s;
-     int year, mon, day, hour, min, sec;
-     Dict *infoDict = info.getDict();
-     UnicodeMap *uMap = globalParams->getTextEncoding();
-@@ -742,7 +742,7 @@
- 
-     if ( infoDict->lookup( data.latin1(), &obj )->isString() )
-     {
--        s = obj.getString()->getCString();
-+        s = UGString(*obj.getString()).getCString();
-         if ( s[0] == 'D' && s[1] == ':' )
-             s += 2;
- 
-Index: kpdf/xpdf/xpdf/XRef.cc
-===================================================================
---- kpdf/xpdf/xpdf/XRef.cc	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kpdf/xpdf/xpdf/XRef.cc	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -878,19 +878,23 @@
- 
- int XRef::getNumEntry(int offset) const
- {
--  int res = -1;
--  int resOffset = -1;
--  XRefEntry e;
--  for (int i = 0; i < size; ++i)
-+  if (size > 0)
-   {
--    e = entries[i];
--    if (e.offset < offset && e.offset > resOffset)
-+    int res = 0;
-+    Guint resOffset = entries[0].offset;
-+    XRefEntry e;
-+    for (int i = 1; i < size; ++i)
-     {
--      res = i;
--      resOffset = e.offset;
-+      e = entries[i];
-+      if (e.offset < offset && e.offset >= resOffset)
-+      {
-+        res = i;
-+        resOffset = e.offset;
-+      }
-     }
-+    return res;
-   }
--  return res;
-+  else return -1;
- }
- 
- Guint XRef::strToUnsigned(char *s) {
-Index: kpdf/xpdf/xpdf/Makefile.am
-===================================================================
---- kpdf/xpdf/xpdf/Makefile.am	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kpdf/xpdf/xpdf/Makefile.am	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -1,4 +1,4 @@
--INCLUDES = -I$(srcdir)/.. -I$(srcdir)/../fofi -I$(srcdir)/../splash -I$(srcdir)/../goo $(all_includes) $(LIBFREETYPE_CFLAGS) $(XFT_CFLAGS) $(X_INCLUDES) $(QT_INCLUDES)
-+INCLUDES = -I$(srcdir)/.. -I$(srcdir)/../fofi -I$(srcdir)/../splash -I$(srcdir)/../goo $(LIBFREETYPE_CFLAGS) $(XFT_CFLAGS) $(all_includes)
- 
- libxpdf_la_LDFLAGS = $(all_libraries)
- libxpdf_la_LIBADD = $(LIB_X11) $(LIBFREETYPE_LIBS) $(LIBPAPER_LIBS) $(XFT_LIBS) $(LIBJPEG) ../goo/libgoo.la ../fofi/libfofi.la ../splash/libsplash.la 
-Index: kfaxview/kfaxmultipage_tiff.desktop
-===================================================================
---- kfaxview/kfaxmultipage_tiff.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kfaxview/kfaxmultipage_tiff.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -33,6 +33,7 @@
- Comment[pt]='Plugin' do KViewShell para ficheiros de Fax
- Comment[pt_BR]='Plugin' do KViewShell para ficheiros de Fax
- Comment[ru]=Компонент просмотра факсов
-+Comment[sl]=Vstavek za KViewShell za fakse
- Comment[sr]=KViewShell-ов прикључак за факс фајлове
- Comment[sr at Latn]=KViewShell-ov priključak za faks fajlove
- Comment[sv]=Kviewshell-insticksprogram för telefaxfiler
-Index: kfaxview/kfaxmultipage.desktop
-===================================================================
---- kfaxview/kfaxmultipage.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kfaxview/kfaxmultipage.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -36,6 +36,7 @@
- Comment[pt]='Plugin' do KViewShell para ficheiros de Fax
- Comment[pt_BR]='Plugin' do KViewShell para ficheiros de Fax
- Comment[ru]=Компонент просмотра факсов
-+Comment[sl]=Vstavek za KViewShell za fakse
- Comment[sr]=KViewShell-ов прикључак за факс фајлове
- Comment[sr at Latn]=KViewShell-ov priključak za faks fajlove
- Comment[sv]=Kviewshell-insticksprogram för telefaxfiler
-Index: kfaxview/kfaxview.desktop
-===================================================================
---- kfaxview/kfaxview.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kfaxview/kfaxview.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -41,7 +41,7 @@
- GenericName[ru]=Чтение факсов
- GenericName[se]=Fáksačájeheaddji
- GenericName[sk]=Prehliadač faxov
--GenericName[sl]=Ogledovalnik faksov
-+GenericName[sl]=Pregledovalnik faksov
- GenericName[sr]=Приказивач факсова
- GenericName[sr at Latn]=Prikazivač faksova
- GenericName[sv]=Faxvisare
-Index: kview/kimageviewer/kimageviewercanvas.desktop
-===================================================================
---- kview/kimageviewer/kimageviewercanvas.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kview/kimageviewer/kimageviewercanvas.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -40,7 +40,7 @@
- Comment[ru]=Встраиваемый элемент просмотра изображений (просмотр изображения в виджете)
- Comment[se]=Vuojuhahtti govvačájehanliinni (áhtá mii čájeha gova)
- Comment[sk]=Vložiteľný komponent prehliadač obrázkov (prvok, ktorý zobrazuje obrázky)
--Comment[sl]=Vključena komponenta za pregled slik (gradnik, ki prikaže sliko)
-+Comment[sl]=Vključljivo platno za pregled slik (gradnik, ki prikaže sliko)
- Comment[sr]=Уградиво платно приказивача слика (контрола која показује слику)
- Comment[sr at Latn]=Ugradivo platno prikazivača slika (kontrola koja pokazuje sliku)
- Comment[sv]=Inbäddningsbar bildvisande duk (komponent som visar en bild)
-Index: kview/photobook/photobook.desktop
-===================================================================
---- kview/photobook/photobook.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kview/photobook/photobook.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -31,6 +31,7 @@
- GenericName[sv]=Fotoalbum
- GenericName[ta]=புகைப்படப் புத்தகம்
- GenericName[tr]=Albüm
-+GenericName[uz]=Расмлар тўплами
- GenericName[zh_HK]=照相簿
- 
- MimeType=inode/directory
-@@ -62,6 +63,7 @@
- Name[sv]=Fotoalbum
- Name[ta]=புகைப்படப் புத்தகம்
- Name[tr]=Albüm
-+Name[uz]=Расмлар тўплами
- Name[zh_HK]=照相簿
- Comment=Easily browse a folder of photographs
- Comment[bg]=Колекциониране на снимки като във фотоалбум
-Index: kview/config/kview.setdlg
-===================================================================
---- kview/config/kview.setdlg	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kview/config/kview.setdlg	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -77,7 +77,7 @@
- Comment[ro]=Aceasta este configurarea pentru partea KView care poate fi reutilizată de alte aplicaţii. Setările afectează acea parte de KView care este înglobată în Konqueror sau alte aplicaţii.
- Comment[ru]=Настройки компонента KView, который используется другими приложениями (устанавливают поведение компонента, внедрённого в Konqueror или другие приложения).
- Comment[sk]=Toto je konfigurácia pre KView, ktorý je možné použiť vo viacerých aplikáciách (takže zmeny tohto nastavenia sa prejavia vo všetkých aplikáciách, ktoré by KView použili, ako je Konqueror alebo iné).
--Comment[sl]=To so nastavitve za del KView, ki ga lahko uporabijo tudi drugi programi (kar pomeni, da nastavitve veljajo tudi v delu KView, ki je vključen v Konqueror in druge programe).
-+Comment[sl]=To so nastavitve za del KView, ki ga lahko uporabijo tudi drugi programi (kar pomeni, da nastavitve veljajo tudi za del KView, ki je vključen v Konqueror in druge programe).
- Comment[sr]=Ово је подешавање за део KView-а који могу користити и други програми (што значи да ће поставке утицати и на KView-ов део који се уграђује у Konqueror и друге програме).
- Comment[sr at Latn]=Ovo je podešavanje za deo KView-a koji mogu koristiti i drugi programi (što znači da će postavke uticati i na KView-ov deo koji se ugrađuje u Konqueror i druge programe).
- Comment[sv]=Det här är inställningen av den del av Kview som kan återanvändas av flera program (vilket betyder att inställningarna också påverkar Kview-delen som bäddas in i Konqueror eller andra program).
-Index: kview/modules/effects/kvieweffects.desktop
-===================================================================
---- kview/modules/effects/kvieweffects.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kview/modules/effects/kvieweffects.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -91,7 +91,7 @@
- Comment[ro]=Oferă unele efecte pentru imagini
- Comment[ru]=Некоторые эффекты обработки изображений
- Comment[sk]=Poskytuje niektoré efekty pre obrázky
--Comment[sl]=Nekaj učinkov slik
-+Comment[sl]=Prinaša nekaj učinkov za slike
- Comment[sr]=Пружа неке сликовне ефекте
- Comment[sr at Latn]=Pruža neke slikovne efekte
- Comment[sv]=Tillhandahåller vissa bildeffekter
-Index: kview/modules/browser/kviewbrowser.desktop
-===================================================================
---- kview/modules/browser/kviewbrowser.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kview/modules/browser/kviewbrowser.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -103,7 +103,7 @@
- Comment[ru]=Просмотр всех изображений в текущем каталоге.
- Comment[se]=Diktá du bláđđet buot govaid čađa dán ozus.
- Comment[sk]=Umožňuje prechádzať mezi obrázkami v aktuálnom priečinku.
--Comment[sl]=Omogoča vam brskanje po vseh slikah v trenutnem imeniku.
-+Comment[sl]=Omogoča vam brskanje po vseh slikah v trenutni mapi.
- Comment[sr]=Омогућава вам да прегледате све слике у текућем директоријуму 
- Comment[sr at Latn]=Omogućava vam da pregledate sve slike u tekućem direktorijumu 
- Comment[sv]=Låter dig bläddra igenom alla bilder i den aktuella katalogen.
-Index: kview/modules/scanner/kviewscanner.desktop
-===================================================================
---- kview/modules/scanner/kviewscanner.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kview/modules/scanner/kviewscanner.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -17,7 +17,7 @@
- Name[bg]=Скенер
- Name[br]=Eiltreser
- Name[bs]=Skener
--Name[ca]=Escànner
-+Name[ca]=Escàner
- Name[cy]=Sganiwr
- Name[da]=Skanner
- Name[el]=Σαρωτής
-@@ -70,7 +70,7 @@
- Comment[ar]=يفتح الصور الموجودة على ماسحك الضوئي في برنامج KView
- Comment[bg]=Сканиране и отваряне на изображения от скенера
- Comment[bs]=Otvara slike sa skenera u KView
--Comment[ca]=Obre les imatges de l'escànner a KView
-+Comment[ca]=Obre les imatges de l'escàner a KView
- Comment[cs]=Otevírá obrázky ze skeneru do KView
- Comment[cy]=Agor delweddau oddiwrth eich sganiwr yn KGweld
- Comment[da]=åbn billeder fra din skanner til KView
-Index: libkscan/scanservice.desktop
-===================================================================
---- libkscan/scanservice.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ libkscan/scanservice.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -7,7 +7,7 @@
- Name[az]=KDE Darama Servisi
- Name[bg]=Услуга за сканиране
- Name[br]=Damanterien skramm
--Name[ca]=Servei d'escànner KDE
-+Name[ca]=Servei d'escaneig del KDE
- Name[cs]=Skenovací služba pro KDE
- Name[cy]=Gwasanaeth Sganio KDE
- Name[da]=KDE Skanneservice
-@@ -44,7 +44,7 @@
- Name[ru]=Служба сканирования KDE
- Name[se]=KDE skánnenbálválus
- Name[sk]=KDE skenovacia služba
--Name[sl]=Storitev skeniranja KDE
-+Name[sl]=Storitev skeniranja za KDE
- Name[sr]=KDE-ов сервис за скенирање
- Name[sr at Latn]=KDE-ov servis za skeniranje
- Name[sv]=KDE:s bildläsartjänst
-Index: kgamma/kcmkgamma/kgamma.desktop
-===================================================================
---- kgamma/kcmkgamma/kgamma.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kgamma/kcmkgamma/kgamma.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -59,6 +59,7 @@
- Name[pa]=ਗ਼ਾਮਾ
- Name[pt]=Gama
- Name[ru]=Гамма
-+Name[sl]=Gama
- Name[sr]=Гама
- Name[sr at Latn]=Gama
- Name[ta]=காமா
-@@ -93,7 +94,7 @@
- Keywords[ro]=KGamma,kgamma,gama,gamma
- Keywords[ru]=KGamma,kgamma,Gamma,gamma,гамма,монитор
- Keywords[sk]=KGamma, kgamma, gamma
--Keywords[sl]=KGamma,kgamma,Gamma,gamma,gama,Gama,kgama
-+Keywords[sl]=KGamma,kgamma,Gama,gama
- Keywords[sr]=KGamma, kgamma, Gamma, gamma, гама
- Keywords[sr at Latn]=KGamma, kgamma, Gamma, gamma, gama
- Keywords[ta]=கேகாமா, கேகாமா, காமா, காமா
-Index: kooka/kooka.desktop
-===================================================================
---- kooka/kooka.desktop	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kooka/kooka.desktop	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -11,7 +11,7 @@
- GenericName[ar]=برنامج للمسح الضوئي
- GenericName[bg]=Сканиране
- GenericName[bs]=Program za skeniranje i OCR
--GenericName[ca]=Programa d'escànner i OCR
-+GenericName[ca]=Programa d'escaneig i OCR
- GenericName[cs]=Program pro skenování a OCR
- GenericName[cy]=Rhaglen Sganio ac OCR
- GenericName[da]=Skanne- & OCR-program
-Index: kuickshow/ChangeLog
-===================================================================
---- kuickshow/ChangeLog	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kuickshow/ChangeLog	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -1,4 +1,23 @@
- <pre>
-+Fri Mar 31 02:04:21 2006  Carsten Pfeiffer  <pfeiffer at kde.org>
-+
-+	* fixed one of the most long-standing bugs: non-local browsing
-+	  (i.e. you can browse remote directories like local ones now, flipping
-+	   through the images with PageUp/Down etc., including pre-loading
-+	   images)
-+	   Browsing through /media should work now, but can be improved by
-+	   not"downloading" from there. Framework to do this is there, though.
-+
-+	* also allow saving to remote URLs
-+	
-+	* fixed image not being completely maximized when opening image in
-+	  fullscreen mode
-+	* performance improvement
-+	
-+	* layed groundwork for fixing #48812 and #101986
-+	
-+	* make sure all temporary files get deleted
-+
- Wed Feb 22 16:02:58 2006  Carsten Pfeiffer  <pfeiffer at kde.org>
- 
- 	* make autohide-cursor finally work
-Index: kuickshow/src/kuickio.cpp
-===================================================================
---- kuickshow/src/kuickio.cpp	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kuickshow/src/kuickio.cpp	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -1,41 +0,0 @@
--/* This file is part of the KDE project
--   Copyright (C) 2000,2001 Carsten Pfeiffer <pfeiffer at kde.org>
--
--   This program is free software; you can redistribute it and/or
--   modify it under the terms of the GNU General Public
--   License as published by the Free Software Foundation, version 2.
--
--   This program 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
--    General Public License for more details.
--
--   You should have received a copy of the GNU General Public License
--   along with this program; see the file COPYING.  If not, write to
--   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
--   Boston, MA 02110-1301, USA.
--*/
--
--#include <unistd.h>
--
--#include <qfile.h>
--
--#include <klocale.h>
--#include <kmessagebox.h>
--#include <kio/netaccess.h>
--
--#include "kuickio.h"
--
--KuickIO * KuickIO::s_self = 0L;
--QWidget * KuickIO::s_parent = 0L;
--
--KuickIO * KuickIO::self( QWidget *parent )
--{
--    if ( !s_self )
--	s_self = new KuickIO();
--
--    s_self->s_parent = parent;
--    return s_self;
--}
--
--#include "kuickio.moc"
-Index: kuickshow/src/kuickio.h
-===================================================================
---- kuickshow/src/kuickio.h	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kuickshow/src/kuickio.h	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -1,40 +0,0 @@
--/* This file is part of the KDE project
--   Copyright (C) 2000,2001 Carsten Pfeiffer <pfeiffer at kde.org>
--
--   This program is free software; you can redistribute it and/or
--   modify it under the terms of the GNU General Public
--   License as published by the Free Software Foundation, version 2.
--
--   This program 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
--    General Public License for more details.
--
--   You should have received a copy of the GNU General Public License
--   along with this program; see the file COPYING.  If not, write to
--   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
--   Boston, MA 02110-1301, USA.
--*/
--
--#ifndef KUICKIO_H
--#define KUICKIO_H
--
--class QWidget;
--
--#include <qobject.h>
--
--#include <kurl.h>
--
--class KuickIO : public QObject
--{
--    Q_OBJECT
--
--public:
--    static KuickIO * self( QWidget *parent );
--
--private:
--    static QWidget * s_parent;
--    static KuickIO * s_self;
--};
--
--#endif // KUICKIO_H
-Index: kuickshow/src/imdata.cpp
-===================================================================
---- kuickshow/src/imdata.cpp	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kuickshow/src/imdata.cpp	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -30,6 +30,7 @@
-   fastRender  	 = true;
-   dither16bit    = false;
-   dither8bit     = true;
-+  smoothScale    = true; // ### false
-   maxCache       = 10240;
- 
-   gamma          = 0;
-@@ -53,6 +54,7 @@
-   fastRender  = kc->readBoolEntry( "FastRendering", def.fastRender );
-   dither16bit = kc->readBoolEntry( "Dither16Bit", def.dither16bit );
-   dither8bit  = kc->readBoolEntry( "Dither8Bit", def.dither8bit );
-+  smoothScale = kc->readBoolEntry( "SmoothScaling", def.smoothScale );
- 
-   maxCache    = kc->readNumEntry( "MaxCacheSize", 10240 );
- 
-@@ -76,6 +78,7 @@
-   kc->writeEntry( "Dither16Bit", dither16bit );
-   kc->writeEntry( "Dither8Bit", dither8bit );
-   kc->writeEntry( "MaxCacheSize", maxCache );
-+  kc->writeEntry( "SmoothScaling", smoothScale );
- 
-   kc->writeEntry( "GammaDefault", gamma );
-   kc->writeEntry( "BrightnessDefault", brightness );
-Index: kuickshow/src/imlibwidget.cpp
-===================================================================
---- kuickshow/src/imlibwidget.cpp	(.../tags/KDE/3.5.2/kdegraphics)	(revision 526003)
-+++ kuickshow/src/imlibwidget.cpp	(.../branches/KDE/3.5/kdegraphics)	(revision 526003)
-@@ -22,6 +22,7 @@
- #include <unistd.h>
- 
- #include <stdlib.h>
-+#include <assert.h>
- 
- #include <qcolor.h>
- #include <qfile.h>
-@@ -35,6 +36,9 @@
- #include <kfilemetainfo.h>
- #include <kimageio.h>
- 
-+#include "filecache.h"
-+#include "kuickfile.h"
-+#include "kuickimage.h"
- #include "imlibwidget.h"
- 
- const int ImlibWidget::ImlibOffset = 256;
-@@ -102,6 +106,7 @@
-     int h = 1;
-     myBackgroundColor = Qt::black;
-     m_kuim              = 0L;
-+    m_kuickFile = 0L;
- 
-     if ( !id )
- 	qFatal("ImlibWidget: Imlib not initialized, aborting.");
-@@ -128,27 +133,32 @@
- 
- KURL ImlibWidget::url() const
- {
--    KURL url;
--    if ( m_filename.at(0) == '/' )
--        url.setPath( m_filename );
--    else
--        url = m_filename;
-+    if ( m_kuickFile )
-+        return m_kuickFile->url();
- 
--    return url;
-+    return KURL();
- }
- 
--// tries to load "filename" and returns the according KuickImage *
-+KuickFile * ImlibWidget::currentFile() const
-+{
-+    return m_kuickFile;
-+}
-+
-+// tries to load "file" and returns the according KuickImage *
- // or 0L if unsuccessful
--KuickImage * ImlibWidget::loadImageInternal( const QString& filename )
-+// Note that the given file MUST already be downloaded prior to calling this function
-+KuickImage * ImlibWidget::loadImageInternal( KuickFile * file )
- {
-+    assert( file->isAvailable() );
-+
-     // apply default image modifications
-     mod.brightness = idata->brightness + ImlibOffset;
-     mod.contrast = idata->contrast + ImlibOffset;
-     mod.gamma = idata->gamma + ImlibOffset;
- 
--    KuickImage *kuim = imageCache->getKuimage( filename, mod );
-+    KuickImage *kuim = imageCache->getKuimage( file, mod );
-     if ( !kuim ) {// couldn't load file, maybe corrupt or wrong format
--	kdWarning() << "ImlibWidget: can't load image " << filename << endl;
-+	kdWarning() << "ImlibWidget: can't load image " << file->url().prettyURL() << endl;
- 	return 0L;
-     }
- 
-@@ -162,15 +172,23 @@
- {
- }
- 
--bool ImlibWidget::loadImage( const QString& filename )
-+bool ImlibWidget::loadImage( const KURL& url )
- {
--    KuickImage *kuim = loadImageInternal( filename );
-+    return loadImage( FileCache::self()->getFile( url ));
-+}
-+
-+bool ImlibWidget::loadImage( KuickFile * file )
-+{
-+    if ( file->waitForDownload( this ) != KuickFile::OK)
-+    	return false;
-+    	
-+    KuickImage *kuim = loadImageInternal( file );
-     // FIXME - check everywhere if we have a kuim or not!
- 
-     if ( kuim ) {
- 	m_kuim = kuim;
- 	autoUpdate( true ); // -> updateWidget() -> updateGeometry()
--	m_filename = filename;
-+	m_kuickFile = file;
-         return true;
-     }
- 
-@@ -178,9 +196,25 @@
- }
- 
- 
--bool ImlibWidget::cacheImage( const QString& filename )
-+bool ImlibWidget::cacheImage( const KURL& url )
- {
--    KuickImage *kuim = loadImageInternal( filename );
-+//    qDebug("cache image: %s", url.url().latin1());
-+    KuickFile *file = FileCache::self()->getFile( url );
-+    if ( file->isAvailable() )
-+        return cacheImage( file );
-+    else {
-+        if ( !file->download() ) {
-+            return false;
-+        }
-+        connect( file, SIGNAL( downloaded( KuickFile * )), SLOT( cacheImage( KuickFile * )) );
-+        return true; // optimistic
-+    }
-+}
-+
-+bool ImlibWidget::cacheImage( KuickFile * file )
-+{
-+//    qDebug("cache image: %s", file->url().url().latin1());
-+    KuickImage *kuim = loadImageInternal( file );
-     if ( kuim ) {
-         kuim->renderPixmap();
-         return true;
-@@ -226,6 +260,16 @@
- }
- 
- 
-+Rotation ImlibWidget::rotation() const 
-+{ 
-+    return m_kuim ? m_kuim->absRotation() : ROT_0; 
-+}
-+
-+FlipMode ImlibWidget::flipMode()  const 
-+{ 
-+    return m_kuim ? m_kuim->flipMode() : FlipNone; 
-+}
-+
- void ImlibWidget::zoomImage( float factor )
- {
-     if ( factor == 1 || factor == 0 || !m_kuim )
-@@ -236,7 +280,7 @@
- 
-     if ( canZoomTo( newWidth, newHeight ) )
-     {
--        m_kuim->resize( newWidth, newHeight );
-+        m_kuim->resize( newWidth, newHeight, idata->smoothScale ? KuickImage::SMOOTH : KuickImage::FAST );
-         autoUpdate( true );
-     }
- }
-@@ -263,7 +307,7 @@
- 
- bool ImlibWidget::autoRotate( KuickImage *kuim )
- {
--    KFileMetaInfo metadatas( kuim->filename() );
-+    KFileMetaInfo metadatas( kuim->file().localFile() );
-     if ( !metadatas.isValid() )
-         return false;
- 
-@@ -502,188 +546,6 @@
- //----------
- 
- 
--
--KuickImage::KuickImage( const QString& filename, ImlibImage *im, ImlibData *id)
--    : QObject( 0L, 0L )
--{
--    myFilename = filename;
--    myIm       = im;
--    myId       = id;
--    myPixmap   = 0L;
--    myWidth    = im->rgb_width;
--    myHeight   = im->rgb_height;
--    myIsDirty  = true;
--
--    myOrigWidth  = myWidth;
--    myOrigHeight = myHeight;
--    myRotation   = ROT_0;
--    myFlipMode   = FlipNone;
--}
--
--KuickImage::~KuickImage()
--{
--    if ( myPixmap )
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/kdegraphics-branch.diff?r1=1.13&r2=1.14&f=u



More information about the pld-cvs-commit mailing list