All pastes #293719 Raw Edit

scriptdebugoutput.cpp

public cpp v1 · immutable
#293719 ·published 2006-12-27 20:51 UTC
rendered paste body
/* This file is part of the KDE project   Copyright (C) 2001 Christoph Cullmann <cullmann@kde.org>   Copyright (C) 2002 Joseph Wenninger <jowenn@kde.org>   Copyright (C) 2002 Anders Lund <anders.lund@lund.tdcadsl.dk>   This library is free software; you can redistribute it and/or   modify it under the terms of the GNU Library General Public   License version 2 as published by the Free Software Foundation.   This library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Library General Public License for more details.   You should have received a copy of the GNU Library General Public License   along with this library; see the file COPYING.LIB.  If not, write to   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   Boston, MA 02110-1301, USA.*/#include "scriptdebugoutput.h"#include "scriptdebugoutput.moc"#include <kicon.h>#include <kiconloader.h>#include <ktexteditor/document.h>#include <ktexteditor/view.h>#include <kate/application.h>#include <kaction.h>#include <kdebug.h>#include <kmessagebox.h>#include <kapplication.h>//Added by qt3to4:#include <QShowEvent>#include <kgenericfactory.h>#include <kauthorized.h>K_EXPORT_COMPONENT_FACTORY( scriptdebugoutputplugin, KGenericFactory<Kate::Private::Plugin::ScriptDebugOutputPlugin>( "scriptdebugoutputplugin" ) )using namespace Kate::Private::Plugin;ScriptDebugOutputPlugin::ScriptDebugOutputPlugin( QObject* parent, const QStringList& ):  Kate::Plugin ( (Kate::Application*)parent ) {  if (!KAuthorized::authorizeKAction("shell_access")) {    KMessageBox::sorry(0, i18n ("You do not have enough karma to access a shell or terminal emulation"));  }}void ScriptDebugOutputPlugin::addView(Kate::MainWindow *win) {  kDebug()<<"ScriptDebugOutputPlugin::createView"<<endl;  // ONLY ALLOW SHELL ACCESS IF ALLOWED ;)  if (KAuthorized::authorizeKAction("shell_access")) {    kDebug()<<"After auth check"<<endl;    QWidget *toolview=win->createToolView ("kate_private_plugin_scriptdebugoutputplugin", MainWindow::Bottom, SmallIcon("bug"), i18n("Script Output"));    m_views.append(new ScriptDebugOutput(win,toolview));  }}void ScriptDebugOutputPlugin::removeView(Kate::MainWindow *win) {  for(QLinkedList<ScriptDebugOutput*>::iterator it=m_views.begin();it!=m_views.end();++it) {    if ((*it)->mainWindow()==win) {      QWidget *pw=(*it)->parentWidget();      delete *it;      delete pw;      m_views.erase(it);      break;    }  }}ScriptDebugOutput::ScriptDebugOutput (Kate::MainWindow *mw, QWidget *parent) : KVBox (parent), KXMLGUIClient() , m_part (0) , m_mw (mw) , m_toolView (parent){    /*KAction* a = new KAction(KIcon("pipe"), i18n("&Pipe to Console"), actionCollection(), "ScriptDebugOutput_tools_pipe_to_terminal");    connect(a, SIGNAL(triggered()), this, SLOT(slotPipeToConsole()));    setInstance (new KInstance("kate"));    setXMLFile("plugins/scriptdebugoutput/ui.rc");    m_mw->guiFactory()->addClient (this);*/}ScriptDebugOutput::~ScriptDebugOutput (){  m_mw->guiFactory()->removeClient (this);  disconnect ( m_part, SIGNAL(destroyed()), this, SLOT(slotDestroyed()) );}void ScriptDebugOutput::loadConsoleIfNeeded(){ /* if (m_part) return;  if (!window() || !parentWidget()) return;  if (!window() || !isVisibleTo(window())) return;  KLibFactory *factory = KLibLoader::self()->factory("libdebugoutputpart");  if (!factory) return;  m_part = static_cast<KParts::ReadOnlyPart *>(factory->create(this, "KParts::ReadOnlyPart"));  if (!m_part) return;  KGlobal::locale()->insertCatalog("debugoutput");  setFocusProxy(m_part->widget());  m_part->widget()->show();  connect ( m_part, SIGNAL(destroyed()), this, SLOT(slotDestroyed()) );*/   QObject::connect(application()->editor(), SIGNAL(sDebugScript(QString)),                      this, SLOT(showMessage(QString)));}void ScriptDebugOutput::slotDestroyed (){  m_part = 0;  // hide the dockwidget  if (parentWidget())  {    m_mw->hideToolView (m_toolView);    m_mw->centralWidget()->setFocus ();  }}void ScriptDebugOutput::showDebug(const QString& str){  kDebug(13051) << "PIPPO: " + str << endl;}void ScriptDebugOutput::showEvent(QShowEvent *){  if (m_part) return;  loadConsoleIfNeeded();}