kateconsole.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "kateconsole.h"
00022 #include "kateconsole.moc"
00023
00024 #include <kurl.h>
00025 #include <qlayout.h>
00026 #include <klibloader.h>
00027 #include <klocale.h>
00028 #include <kapplication.h>
00029 #include <kdebug.h>
00030
00031 #include <kate/view.h>
00032 #include <kate/document.h>
00033
00034 #include "katemainwindow.h"
00035
00036 KateConsole::KateConsole (QWidget* parent, const char* name, Kate::ViewManager *kvm) : QWidget (parent, name),part(0)
00037 {
00038
00039 lo = new QVBoxLayout(this);
00040 m_kvm=kvm;
00041 }
00042
00043 KateConsole::~KateConsole ()
00044 {
00045 }
00046
00047
00048 void KateConsole::loadConsoleIfNeeded()
00049 {
00050 kdDebug(13001)<<"================================ loadConsoleIfNeeded()"<<endl;
00051 if (part!=0) return;
00052 if (!kapp->loopLevel()) {
00053 connect(kapp,SIGNAL(onEventLoopEnter()),this,SLOT(loadConsoleIfNeeded()));
00054 return;
00055 }
00056
00057 if (!topLevelWidget() || !parentWidget()) return;
00058 if (!topLevelWidget() || !isVisibleTo(topLevelWidget())) return;
00059
00060 kdDebug(13001)<<"CREATING A CONSOLE PART"<<endl;
00061
00062 KLibFactory *factory = 0;
00063 factory = KLibLoader::self()->factory("libkonsolepart");
00064 part = 0L;
00065 if (factory)
00066 {
00067 part = static_cast<KParts::ReadOnlyPart *>(factory->create(this,"libkonsolepart",
00068 "KParts::ReadOnlyPart"));
00069 if (part)
00070 {
00071 KGlobal::locale()->insertCatalogue("konsole");
00072 part->widget()->show();
00073 lo->addWidget(part->widget());
00074 connect ( part, SIGNAL(destroyed()), this, SLOT(slotDestroyed()) );
00075 if (m_kvm->activeView())
00076 if (m_kvm->activeView()->getDoc()->url().isValid())
00077 cd(m_kvm->activeView()->getDoc()->url().path());
00078 }
00079 }
00080 }
00081
00082 void KateConsole::showEvent(QShowEvent *)
00083 {
00084 if (!part) loadConsoleIfNeeded();
00085 }
00086
00087 void KateConsole::cd (KURL url)
00088 {
00089 if (part) part->openURL (url);
00090 }
00091
00092 void KateConsole::slotDestroyed ()
00093 {
00094 part=0;
00095
00096
00097 if (parentWidget())
00098 parentWidget()->hide ();
00099 }
This file is part of the documentation for kate Library Version 3.2.2.