[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