[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdelibs
From: Krzysztof Lichota <lichota () mimuw ! edu ! pl>
Date: 2007-03-29 8:15:28
Message-ID: 1175156128.704787.9853.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 647712 by klichota:
Implementation of switching language for individual applications.
See menu Help->Switch application language.
Thanks to David Faure for review and providing valuable tips :)
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 [License: LGPL (v2+)]
A kdeui/kswitchlanguagedialog.h [License: LGPL (v2+)]
M +2 -0 kdeui/ui_standards.rc
--- branches/KDE/3.5/kdelibs/kdecore/klocale.h #647711:647712
@@ -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 #647711:647712
@@ -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 #647711:647712
@@ -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 #647711:647712
@@ -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 #647711:647712
@@ -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 #647711:647712
@@ -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.7
};
/**
--- branches/KDE/3.5/kdelibs/kdeui/kstdaction_p.h #647711:647712
@@ -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 #647711:647712
@@ -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"/>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic