[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    [patch] KAboutData::programLogo()
From:       Jarosław_Staniek <js () iidea ! pl>
Date:       2004-09-02 8:55:02
Message-ID: 4136EDF1.3010808 () iidea ! pl
[Download RAW message or body]

... and setProgramLogo()
Sometimes developers want to set custom logo (instead of just application 
icon) for their app. Especially in these apps hosted outside kde cvs, 
including few commercial apps.

Ok to commit?

-- 
regards / pozdrawiam,
   Jaroslaw Staniek / OpenOffice Polska
   Kexi project: http://koffice.org/kexi/ http://www.kexi-project.org/
   Qt-KDE Wrapper project: http://iidea.pl/~js/qkw/

["kaboutdata.diff" (text/plain)]

Index: kaboutdata.cpp
===================================================================
RCS file: /home/kde/kdelibs/kdecore/kaboutdata.cpp,v
retrieving revision 1.21
diff -u -r1.21 kaboutdata.cpp
--- kaboutdata.cpp	21 Feb 2004 20:05:12 -0000	1.21
+++ kaboutdata.cpp	2 Sep 2004 08:49:20 -0000
@@ -81,13 +81,14 @@
     const char *translatorName;
     const char *translatorEmail;
     const char *productName;
+    const char **programLogo;
 };
 
 
 
 KAboutData::KAboutData( const char *appName,
                         const char *programName,
-			const char *version,
+                        const char *version,
                         const char *shortDescription,
 			int licenseType,
 			const char *copyrightStatement,
@@ -106,6 +107,7 @@
 {
    d = new KAboutDataPrivate;
    d->productName = 0;
+   d->programLogo = 0;
 
    if( appName ) {
      const char *p = strrchr(appName, '/');
@@ -241,6 +243,18 @@
       return QString::null;
 }
 
+const char **
+KAboutData::programLogo() const
+{
+    return d->programLogo;
+}
+
+void
+KAboutData::setProgramLogo(const char** logo)
+{
+    d->programLogo = logo;
+}
+
 QString
 KAboutData::version() const
 {
@@ -355,7 +369,7 @@
   QString result;
   if (!copyrightStatement().isEmpty())
     result = copyrightStatement() + "\n\n";
-  
+
   QString l;
   QString f;
   switch ( mLicenseKey )
@@ -392,7 +406,7 @@
                    "Please check the documentation or the source for any\n"
                    "licensing terms.\n");
        return result;
-  }
+      }
 
   if (!l.isEmpty())
      result += i18n("This program is distributed under the terms of the %1.").arg( l );
Index: kaboutdata.h
===================================================================
RCS file: /home/kde/kdelibs/kdecore/kaboutdata.h,v
retrieving revision 1.38
diff -u -r1.38 kaboutdata.h
--- kaboutdata.h	22 May 2004 02:03:12 -0000	1.38
+++ kaboutdata.h	2 Sep 2004 08:49:20 -0000
@@ -359,7 +359,18 @@
      *        Example: I18N_NOOP("Advanced Text Editor").
      */
     void setProgramName( const char* programName );
-    
+
+    /**
+     * Defines the program logo.
+     * Use this if you need to have application logo 
+     * in AboutData other than application icon.
+     *
+     * @param logoData logo data in xpm format. 
+     *        Only the pointer is copied, so you can't delete the data.
+     * @see programLogo()
+    */
+    void setProgramLogo(const char** logoData);
+
     /**
      * Defines the program version string.
      *
@@ -450,6 +461,16 @@
     QString programName() const;
 
     /**
+     * Returns the program logo data in xpm format. 
+     * We use xpm and not here more general QPixmap, because
+     * QPixmap requires QPaintDevice to work while KAboutData
+     * is often used before QApplication is allocated.
+     * @return the program logo data or null if there is 
+     * no custom logo defined.
+     */
+    const char** programLogo() const;
+
+    /**
      * Returns the program's version.
      * @return the version string.
      */


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic