diff options
Diffstat (limited to 'languages/cpp/app_templates/kscons_tdemdi/tdemdikonsole.cpp')
-rw-r--r-- | languages/cpp/app_templates/kscons_tdemdi/tdemdikonsole.cpp | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/languages/cpp/app_templates/kscons_tdemdi/tdemdikonsole.cpp b/languages/cpp/app_templates/kscons_tdemdi/tdemdikonsole.cpp new file mode 100644 index 00000000..0eab6525 --- /dev/null +++ b/languages/cpp/app_templates/kscons_tdemdi/tdemdikonsole.cpp @@ -0,0 +1,76 @@ +%{CPP_TEMPLATE} + +#include <tqfileinfo.h> +#include <tqframe.h> + +#include <tdeparts/part.h> +#include <kate/document.h> +#include <kate/view.h> +#include <klocale.h> +#include <klibloader.h> +#include <kurl.h> + +#include "tdemdikonsole.h" + +tdemdikonsole::tdemdikonsole(TQWidget *parent, const char *name) : TQVBox(parent, name) +{ + m_haskonsole = false; + respawn(); +} + +tdemdikonsole::~tdemdikonsole() +{ +} + +void tdemdikonsole::respawn() +{ + KLibFactory *factory = KLibLoader::self()->factory("libkonsolepart"); + + if (!factory) return; + m_part = (KParts::ReadOnlyPart *) factory->create(this); + + if (!m_part) return; + + if (m_part->widget()->inherits(TQFRAME_OBJECT_NAME_STRING)) + ((TQFrame*)m_part->widget())->setFrameStyle(TQFrame::Panel|TQFrame::Sunken); + + m_haskonsole=true; + connect( m_part, TQT_SIGNAL(destroyed()), this, TQT_SLOT(slotDestroyed()) ); + + m_part->widget()->show(); + show(); +} + +void tdemdikonsole::setDirectory(const TQString &dirname) +{ + if (m_haskonsole) + { + KURL url(dirname); + if (m_part->url() != url) + m_part->openURL(url); + } +} + +void tdemdikonsole::showEvent(TQShowEvent *ev) +{ + TQWidget::showEvent(ev); + activate(); +} + +void tdemdikonsole::activate() +{ + if (m_haskonsole) + { + m_part->widget()->show(); + setFocusProxy(m_part->widget()); + m_part->widget()->setFocus(); + } +} + +void tdemdikonsole::slotDestroyed() +{ + m_haskonsole=false; + respawn(); +} + +#include "tdemdikonsole.moc" |