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

List:       kde-docbook
Subject:    branches/KDE/3.5/kdelibs
From:       Krzysztof Lichota <lichota () mimuw ! edu ! pl>
Date:       2007-08-15 11:58:30
Message-ID: 1187179110.642080.2737.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 700380 by klichota:

Finally I have found some time to recompile KDE and test the feature again.

This is re-commit of implementation of switching language for individual \
applications. Previous commit (r647712) was reverted as feature was not ported to KDE \
4 then. Now it is.

For language switching option see menu Help->Switch application language.

Feature freeze exception was granted for this feature. See:
http://lists.kde.org/?l=kde-devel&m=118096509723997&w=2

Thanks to release team for that :)

Also thanks to David Faure for review and providing valuable tips.

CCBUG: 24348
FEATURE: 24348
GUI:



 M  +1 -1      kdecore/klocale.h  
 M  +2 -2      kdeui/Makefile.am  
 M  +29 -1     kdeui/khelpmenu.cpp  
 M  +7 -1      kdeui/khelpmenu.h  
 M  +2 -0      kdeui/kstdaction.cpp  
 M  +2 -1      kdeui/kstdaction.h  
 M  +1 -0      kdeui/kstdaction_p.h  
 A             kdeui/kswitchlanguagedialog.cpp   \
kdeui/kswitchlanguagedialog.cpp#647712 [License: LGPL (v2+)]  A             \
kdeui/kswitchlanguagedialog.h   kdeui/kswitchlanguagedialog.h#647712 [License: LGPL \
(v2+)]  M  +2 -0      kdeui/ui_standards.rc  


--- branches/KDE/3.5/kdelibs/kdecore/klocale.h #700379:700380
@@ -1301,7 +1301,7 @@
    */
   static QString catalogueFileName(const QString & language,
 				   const KCatalogue & catalog);
-
+public:
   /**
    * @internal Checks whether or not theFind catalog for given language and given \
                catalog name.
    *
--- branches/KDE/3.5/kdelibs/kdeui/Makefile.am #700379:700380
@@ -55,7 +55,7 @@
 		kauthicon.h kmessagebox.h ksharedpixmap.h \
 		kdualcolorbtn.h kdualcolorbutton.h ktoolbarbutton.h \
 		ktoolbarradiogroup.h ktextbrowser.h \
-		kaction.h kactioncollection.h kactionclasses.h khelpmenu.h \
+		kaction.h kactioncollection.h kactionclasses.h khelpmenu.h kswitchlanguagedialog.h \
\  kcmodule.h kcmenumngr.h kpanelmenu.h kpanelappmenu.h \
 		kactionshortcutlist.h kstdaction.h kcombobox.h \
 		kiconview.h klistview.h klistbox.h kbugreport.h kpassdlg.h \
@@ -102,7 +102,7 @@
 		kjanuswidget.cpp kaboutdialog.cpp \
 		kauthicon.cpp kmessagebox.cpp kdualcolorbutton.cpp \
 		ktoolbarradiogroup.cpp ktoolbarbutton.cpp \
-		ktextbrowser.cpp khelpmenu.cpp \
+		ktextbrowser.cpp khelpmenu.cpp kswitchlanguagedialog.cpp \
 		kcmenumngr.cpp kpanelmenu.cpp \
 		kiconview.cpp klistbox.cpp kwordwrap.cpp kbugreport.cpp \
 		kcombobox.cpp kpassdlg.cpp kxmlguiclient.cpp kxmlguifactory.cpp \
--- branches/KDE/3.5/kdelibs/kdeui/khelpmenu.cpp #700379:700380
@@ -42,20 +42,24 @@
 #include <kstdaccel.h>
 #include <kstdaction.h>
 
+#include "kswitchlanguagedialog.h"
+
 #include "config.h"
 #include <qxembed.h>
 
 class KHelpMenuPrivate
 {
 public:
-    KHelpMenuPrivate()
+    KHelpMenuPrivate():mSwitchApplicationLanguage(NULL)
     {
     }
     ~KHelpMenuPrivate()
     {
+        delete mSwitchApplicationLanguage;
     }
 
     const KAboutData *mAboutData;
+    KSwitchLanguageDialog *mSwitchApplicationLanguage;
 };
 
 KHelpMenu::KHelpMenu( QWidget *parent, const QString &aboutAppText,
@@ -147,6 +151,15 @@
       need_separator = true;
     }
 
+    if (kapp->authorizeKAction("switch_application_language"))
+    {
+      if (need_separator)
+        mMenu->insertSeparator();
+      mMenu->insertItem( i18n( "Switch application &language..." ), \
menuSwitchLanguage ); +      mMenu->connectItem( menuSwitchLanguage, this, \
SLOT(switchApplicationLanguage()) ); +      need_separator = true;
+    }
+    
     if (need_separator)
       mMenu->insertSeparator();
 
@@ -240,7 +253,17 @@
   mBugReport->show();
 }
 
+void KHelpMenu::switchApplicationLanguage()
+{
+  if ( !d->mSwitchApplicationLanguage )
+  {
+    d->mSwitchApplicationLanguage = new KSwitchLanguageDialog( mParent, \
"switchlanguagedialog", false ); +    connect( d->mSwitchApplicationLanguage, \
SIGNAL(finished()), this, SLOT( dialogFinished()) ); +  }
+  d->mSwitchApplicationLanguage->show();
+}
 
+
 void KHelpMenu::dialogFinished()
 {
   QTimer::singleShot( 0, this, SLOT(timerExpired()) );
@@ -263,6 +286,11 @@
   {
     delete mAboutApp; mAboutApp = 0;
   }
+  
+  if (d->mSwitchApplicationLanguage && !d->mSwitchApplicationLanguage->isVisible())
+  {
+    delete d->mSwitchApplicationLanguage; d->mSwitchApplicationLanguage = 0;
+  }
 }
 
 
--- branches/KDE/3.5/kdelibs/kdeui/khelpmenu.h #700379:700380
@@ -139,7 +139,8 @@
       menuWhatsThis = 1,
       menuAboutApp = 2,
       menuAboutKDE = 3,
-      menuReportBug = 4
+      menuReportBug = 4,
+      menuSwitchLanguage = 5
     };
 
     /**
@@ -222,6 +223,11 @@
      * Opens the standard "Report Bugs" dialog box.
      */
     void reportBug();
+    
+    /**
+     * Opens changing default application language dialog box.
+     */
+    void switchApplicationLanguage();
 
   private slots:
     /**
--- branches/KDE/3.5/kdelibs/kdeui/kstdaction.cpp #700379:700380
@@ -313,6 +313,8 @@
 	{ return KStdAction::create( TipofDay, name, recvr, slot, parent ); }
 KAction *reportBug( const QObject *recvr, const char *slot, KActionCollection* \
parent, const char *name )  { return KStdAction::create( ReportBug, name, recvr, \
slot, parent ); } +KAction *switchApplicationLanguage( const QObject *recvr, const \
char *slot, KActionCollection* parent, const char *name ) +	{ return \
KStdAction::create( SwitchApplicationLanguage, name, recvr, slot, parent ); }  \
KAction *aboutApp( const QObject *recvr, const char *slot, KActionCollection* parent, \
const char *name )  { return KStdAction::create( AboutApp, name, recvr, slot, parent \
); }  KAction *aboutKDE( const QObject *recvr, const char *slot, KActionCollection* \
                parent, const char *name )
--- branches/KDE/3.5/kdelibs/kdeui/kstdaction.h #700379:700380
@@ -157,7 +157,8 @@
 		ConfigureNotifications,
 		FullScreen, ///< @since 3.2
 		Clear, ///< @since 3.2
-        PasteText ///< @since 3.2
+		PasteText, ///< @since 3.2
+		SwitchApplicationLanguage ///< @since 3.5.8
 	};
 
 	/**
--- branches/KDE/3.5/kdelibs/kdeui/kstdaction_p.h #700379:700380
@@ -109,6 +109,7 @@
 	{ WhatsThis,     KStdAccel::WhatsThis, "help_whats_this", I18N_NOOP("What's \
&This?"), 0, "contexthelp" },  { TipofDay,      KStdAccel::AccelNone, \
"help_show_tip", I18N_NOOP("Tip of the &Day"), 0, "idea" },  { ReportBug,     \
KStdAccel::AccelNone, "help_report_bug", I18N_NOOP("&Report Bug..."), 0, 0 }, +	{ \
SwitchApplicationLanguage,     KStdAccel::AccelNone, "switch_application_language", \
I18N_NOOP("Switch application &language..."), 0, 0 },  { AboutApp,      \
KStdAccel::AccelNone, "help_about_app", I18N_NOOP("&About %1"), 0, 0 },  { AboutKDE,  \
KStdAccel::AccelNone, "help_about_kde", I18N_NOOP("About &KDE"), 0,"about_kde" },  { \
                ActionNone, KStdAccel::AccelNone, 0, 0, 0, 0 }
--- branches/KDE/3.5/kdelibs/kdeui/ui_standards.rc #700379:700380
@@ -176,6 +176,8 @@
     <Separator/>
     <Action name="help_report_bug"/>
     <Separator/>
+    <Action name="switch_application_language"/>
+    <Separator/>
     <MergeLocal name="about_merge"/>
     <Action name="help_about_app"/>
     <Action name="help_about_kde"/>
_______________________________________________
kde-docbook mailing list
kde-docbook@kde.org
https://mail.kde.org/mailman/listinfo/kde-docbook


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

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