[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdesdk/kbabel/kbabel
From: Laurent Montel <montel () kde ! org>
Date: 2006-12-15 16:34:59
Message-ID: 1166200499.095699.22721.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 613904 by mlaurent:
fix kbabel interface
M +2 -2 CMakeLists.txt
D kbabeliface.h
AM kbabelinterface.cpp [License: no copyright]
AM kbabelinterface.h [License: no copyright]
M +8 -355 main.cpp
--- trunk/KDE/kdesdk/kbabel/kbabel/CMakeLists.txt #613903:613904
@@ -48,7 +48,7 @@
########### next target ###############
-set(kbabel_SRCS main.cpp ${libkbabel_SRCS})
+set(kbabel_SRCS main.cpp kbabelinterface.cpp ${libkbabel_SRCS})
kde4_add_ui_files(kbabel_SRCS
colorpreferences.ui
@@ -60,7 +60,7 @@
headerwidget.ui
)
-qt4_add_dbus_adaptor(kbabel_SRCS org.kde.kbabel.kbabel.xml kbabeliface.h \
KBabelIface) +qt4_add_dbus_adaptor(kbabel_SRCS org.kde.kbabel.kbabel.xml \
kbabelinterface.h KBabelInterface) qt4_add_dbus_adaptor(kbabel_SRCS \
${CMAKE_SOURCE_DIR}/kbabel//kbabeldict/org.kde.kbabel.kbabeldict.xml \
${CMAKE_SOURCE_DIR}/kbabel//kbabeldict/kbabeldictbox.h KBabelDictBox)
kde4_add_kcfg_files(kbabel_SRCS kbabelsettings.kcfgc)
** trunk/KDE/kdesdk/kbabel/kbabel/kbabelinterface.cpp #property svn:eol-style
+ native
** trunk/KDE/kdesdk/kbabel/kbabel/kbabelinterface.h #property svn:eol-style
+ native
--- trunk/KDE/kdesdk/kbabel/kbabel/main.cpp #613903:613904
@@ -32,7 +32,8 @@
**************************************************************************** */
#include "kbabel.h"
-#include "kbabeliface.h"
+#include "kbabelinterface.h"
+#include "kbabeladaptor.h"
#include "catalog.h"
#include "kbabelsplash.h"
#include "findoptions.h"
@@ -45,38 +46,15 @@
#include <klocale.h>
#include <kmessagebox.h>
#include <kuniqueapplication.h>
+
#include <kwin.h>
+#include <QtDBus/QtDBus>
#include <qfile.h>
#include <qfileinfo.h>
#include <qtimer.h>
-class KBabelInterface : public KBabelIface
-{
-public:
- KBabelInterface();
- virtual void openUrl(QByteArray url, QByteArray package, WId window, int \
newWindow);
- virtual void openUrl(QByteArray url, QByteArray package, WId window, int \
newWindow, QByteArray projectFile);
- virtual void openTemplate(QByteArray openFilename, QByteArray saveFilename, \
QByteArray package, int newWindow );
- virtual void openTemplate(QByteArray openFilename, QByteArray saveFilename, \
QByteArray package, int newWindow, QByteArray projectFile );
- virtual void gotoFileEntry(QString url, QString msgid);
- virtual void gotoFileEntry(QString url, QString package, int msgid);
- virtual void gotoFileEntry(QString url, QString package, int msgid, QString \
projectFile);
- virtual bool findInFile(QString fileSource, QString url,
- QString findStr, int caseSensitive, int wholeWords, int isRegExp,
- int inMsgid, int inMsgstr, int inComment,
- int ignoreAccelMarker, int ignoreContextInfo, int askForNextFile, int askForSave);
- virtual bool replaceInFile(QString fileSource, QString url,
- QString findStr, QString replaceStr, int caseSensitive, int wholeWords, int \
isRegExp,
- int inMsgid, int inMsgstr, int inComment,
- int ignoreAccelMarker, int ignoreContextInfo, int ask, int askForNextFile, int \
askForSave);
- virtual void spellcheck(QStringList fileList);
-private:
- KBabelMW* findInstance( const KUrl& url, const QString& project, const QString& \
package) const;
-};
-
-
class KBabelApp : public KUniqueApplication
{
public:
@@ -92,12 +70,14 @@
KBabelApp::KBabelApp()
: KUniqueApplication()
{
- //kbInterface = new KBabelInterface;
+ kbInterface = new KBabelInterface;
+ new KbabelAdaptor(kbInterface);
+ QDBusConnection::sessionBus().registerObject(QLatin1String("/KBabel"), \
kbInterface); }
KBabelApp::~KBabelApp()
{
- //delete kbInterface;
+ delete kbInterface;
}
int KBabelApp::newInstance()
@@ -202,333 +182,6 @@
return 0;
}
-KBabelInterface::KBabelInterface()
- /*: DCOPObject("KBabelIFace")*/
-{
-}
-
-void KBabelInterface::openUrl(QByteArray url, QByteArray package, WId window, int \
newWindow)
-{
- openUrl( url,package,window,newWindow, KBABEL_DEFAULTPROJECT.toLocal8Bit() );
-}
-
-void KBabelInterface::openUrl(QByteArray url, QByteArray package, WId window, int \
newWindow, QByteArray projectFile)
-{
- const QString project( QString::fromLocal8Bit( projectFile ) );
-
- kDebug() << "openUrl " << url << endl;
-
- KUrl u(QString::fromLocal8Bit(url));
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Suspending DCOP" << endl;
- // kapp->dcopClient()->suspend();
-
- KBabelMW *kb = KBabelMW::winForURL(u,project);
- if(kb)
- {
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- }
- else
- {
- if( !KMainWindow::memberList().isEmpty() )
- {
- // first, try to lookup correct winid
-
- // (As we have a QList, use an index instead of an iterator)
- // (We are assuming that the list can change.)
- for ( int index = 0; index < KMainWindow::memberList().size(); ++index )
- {
- KMainWindow* mw = KMainWindow::memberList().at( index );
- if( mw && mw->inherits("KBabelMW") && mw->winId() == window )
- {
- kb = static_cast<KBabelMW*>(mw);
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- kb->open(u, QString::fromUtf8(package),newWindow);
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Resuming DCOP" << endl;
- // kapp->dcopClient()->resume();
-
- return ;
- }
- }
- }
-
- // now, the empty window
- kb = KBabelMW::emptyWin(projectFile);
- if (kb)
- {
- // here, we don't care about "open in new window", because
- // it's empty
-#ifdef Q_OS_UNIX
- KWin::activateWindow( kb->topLevelWidget()->winId() );
-#endif
- kb->projectOpen(projectFile);
- kb->open(u,QString::fromUtf8(package),false);
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Resuming DCOP" << endl;
- // kapp->dcopClient()->resume();
-
- return;
- }
-
- // ### TODO: why again? We have tried before and failed!
- if( !KMainWindow::memberList().isEmpty() )
- {
- // first, try to lookup correct winid
-
- // (As we have a QList, use an index instead of an iterator)
- // (We are assuming that the list can change.)
- for ( int index = 0; index < KMainWindow::memberList().size(); ++index )
- {
- KMainWindow* mw = KMainWindow::memberList().at( index );
- if( mw && mw->inherits("KBabelMW") && mw->winId() == window )
- {
- kb = static_cast<KBabelMW*>(mw);
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- kb->open(u, QString::fromUtf8(package),newWindow);
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Resuming DCOP" << endl;
- // kapp->dcopClient()->resume();
-
- return ;
- }
- }
- }
-
- kb = new KBabelMW(project);
- kb->show();
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- kb->open(u,QString::fromUtf8(package),newWindow);
- }
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Resuming DCOP" << endl;
- // kapp->dcopClient()->resume();
-}
-
-void KBabelInterface::openTemplate(QByteArray openFilename, QByteArray saveFilename, \
QByteArray package, int newWindow)
-{
- openTemplate( openFilename, saveFilename, package, newWindow, \
KBABEL_DEFAULTPROJECT.toLocal8Bit() );
-}
-
-void KBabelInterface::openTemplate(QByteArray openFilename, QByteArray saveFilename, \
QByteArray package, int newWindow, QByteArray projectFile)
-{
- const QString project( QString::fromLocal8Bit( projectFile ) );
-
- const KUrl u( QString::fromLocal8Bit( saveFilename ) );
- const KUrl t( QString::fromLocal8Bit( openFilename ) );
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Suspending DCOP" << endl;
- // kapp->dcopClient()->suspend();
-
- KBabelMW *kb = KBabelMW::winForURL(u, project);
- if(kb)
- {
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- }
- else
- {
- // ### TODO: Why is the code so much different than for opening a file? And \
why are we only testing the first main window and not even trying to find the first \
right window?
- kb = 0;
- // CAREFUL: QList::first() is undefined if the list is empty!
- if ( !KMainWindow::memberList().isEmpty() )
- {
- KMainWindow* mw = KMainWindow::memberList().first();
-
- if( mw && mw->inherits("KBabelMW") && \
static_cast<KBabelMW*>(mw)->project() == project )
- {
- kb = static_cast<KBabelMW*>(mw);
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- kb->projectOpen(projectFile);
- kb->openTemplate(t,u,QString::fromUtf8(package),newWindow);
- }
- }
- if ( !kb )
- {
- // We have no main window or we have not found the correct one
- kb = new KBabelMW(project);
- kb->show();
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- kb->openTemplate(t,u,QString::fromUtf8(package));
- }
- }
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Resuming DCOP" << endl;
- // kapp->dcopClient()->resume();
-}
-
-void KBabelInterface::gotoFileEntry(QString url, QString m)
-{
- const KUrl u( url );
- KBabelMW *kb = findInstance( u, KBABEL_DEFAULTPROJECT, QString() );
-
- if(!kb) return;
-
- QString msgid = m;
- int index = kb->m_view->catalog()->indexForMsgid(msgid);
- if(index >= 0)
- {
- KBabel::DocPosition pos;
- pos.item=index;
- pos.form=0;
- kb->m_view->gotoEntry(pos);
- }
-}
-
-void KBabelInterface::gotoFileEntry(QString url, QString package, int m)
-{
- gotoFileEntry( url, package, m, KBABEL_DEFAULTPROJECT.toLocal8Bit() );
-}
-
-void KBabelInterface::gotoFileEntry(QString url, QString package, int m, QString \
projectFile)
-{
- const KUrl u ( url );
- const QString p ( package ); // ### VERIFY encoding!
- KBabelMW *kb = findInstance( u, projectFile, p );
-
- if(!kb) return;
-
- KBabel::DocPosition pos;
- pos.item=m;
- pos.form=0;
- kb->m_view->gotoEntry(pos);
-}
-
-bool KBabelInterface::findInFile(QString fileSource, QString url,
- QString findStr, int caseSensitive, int wholeWords, int isRegExp,
- int inMsgid, int inMsgstr, int inComment,
- int ignoreAccelMarker, int ignoreContextInfo, int askForNextFile, int askForSave)
-{
- kDebug(KBABEL) << "findInFile (" <<fileSource<< "): " << url << " for " << \
findStr << endl;
-
- const KUrl u( url );
- KBabelMW *kb = findInstance( u, KBABEL_DEFAULTPROJECT, QString() );
-
- if(!kb) return false;
-
- KBabel::FindOptions options;
- options.findStr = findStr;
- options.caseSensitive = (caseSensitive>0);
- options.fromCursor = false;
- options.backwards = false;
- options.wholeWords = (wholeWords>0);
- options.isRegExp = (isRegExp>0);
- options.inMsgid = (inMsgid>0);
- options.inMsgstr = (inMsgstr>0);
- options.inComment = (inComment>0);
- options.ignoreAccelMarker = (ignoreAccelMarker>0);
- options.ignoreContextInfo = (ignoreContextInfo>0);
- options.askForNextFile = (askForNextFile>0);
- options.askForSave = (askForSave>0);
- kb->m_view->findInFile(fileSource.toLocal8Bit(), options);
-
- return true;
-}
-
-bool KBabelInterface::replaceInFile(QString fileSource, QString url,
- QString findStr, QString replaceStr, int caseSensitive, int wholeWords, int \
isRegExp,
- int inMsgid, int inMsgstr, int inComment,
- int ignoreAccelMarker, int ignoreContextInfo, int ask, int askForNextFile, int \
askForSave)
-{
- kDebug(KBABEL) << "replaceInFile (" <<fileSource<< "): " << url << " for " << \
findStr << endl;
-
- const KUrl u( url );
- KBabelMW *kb = findInstance( u, KBABEL_DEFAULTPROJECT, QString() );
-
- if( !kb ) return false;
-
- KBabel::ReplaceOptions options;
- options.findStr = findStr;
- options.replaceStr = replaceStr;
- options.caseSensitive = (caseSensitive>0);
- options.fromCursor = false;
- options.backwards = false;
- options.wholeWords = (wholeWords>0);
- options.isRegExp = (isRegExp>0);
- options.inMsgid = (inMsgid>0);
- options.inMsgstr = (inMsgstr>0);
- options.inComment = (inComment>0);
- options.ignoreAccelMarker = (ignoreAccelMarker>0);
- options.ignoreContextInfo = (ignoreContextInfo>0);
- options.ask = (ask>0);
- options.askForNextFile = (askForNextFile>0);
- options.askForSave = (askForSave>0);
- kb->m_view->replaceInFile(fileSource.toLocal8Bit(), options);
-
- return true;
-}
-
-void KBabelInterface::spellcheck(QStringList fileList)
-{
- // ### FIXME: the default project might use the wrong language!
- KBabelMW *kb = findInstance( KUrl(), KBABEL_DEFAULTPROJECT, QString() );
- kb->show();
- kb->spellcheckMoreFiles( fileList );
-}
-
-KBabelMW* KBabelInterface::findInstance( const KUrl& url, const QString& project, \
const QString& package) const
-{
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Suspending DCOP" << endl;
- // kapp->dcopClient()->suspend();
-
- KBabelMW *kb = 0;
- if( !url.isEmpty() )
- {
- kb = KBabelMW::winForURL( url, project );
-
- if(kb)
- {
-#ifdef Q_OS_UNIX
- KWin::activateWindow(kb->topLevelWidget()->winId());
-#endif
- }
- }
-
- if( !kb )
- {
- kb = KBabelMW::emptyWin(project);
- if( !kb )
- {
- kb = new KBabelMW(project);
- }
- else
- {
- kb->projectOpen(project);
- }
-
- kb->show();
- if ( !url.isEmpty() )
- kb->open( url, package, false );
- }
-
- // TODO: There's no replacement for suspend or resume in QtDBus
- // kDebug () << "Resuming DCOP" << endl;
- // kapp->dcopClient()->resume();
-
- return kb;
-}
-
static KCmdLineOptions options[] =
{
{"gotomsgid <msgid>",I18N_NOOP("Go to entry with msgid <msgid>"),0},
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic