~ubuntu-branches/ubuntu/lucid/kdebase/lucid

« back to all changes in this revision

Viewing changes to apps/konsole/src/Application.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Thomas
  • Date: 2009-12-02 13:28:20 UTC
  • mfrom: (1.1.35 upstream)
  • Revision ID: james.westby@ubuntu.com-20091202132820-yaqzqr7livmarip5
Tags: 4:4.3.80-0ubuntu1
* New upstream release:
  - Drop kubuntu_05_konsole_colour_scheme.diff, applied upstream
  - Drop kubuntu_15-17.diff, applied upstream
  - Bump build-depend versions
  - Add build-depend on shared-desktop-ontologies for nepomuk support
  - Update various .install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
 
49
49
using namespace Konsole;
50
50
 
51
 
#ifdef Q_WS_X11
52
 
Application::Application(Display* display , Qt::HANDLE visual, Qt::HANDLE colormap)
53
 
    : KUniqueApplication(display,visual,colormap) 
54
 
{
55
 
    init();
56
 
}
57
 
#endif
58
 
 
59
51
Application::Application() : KUniqueApplication()
60
52
{
61
53
    init();
68
60
 
69
61
    // check for compositing functionality
70
62
    TerminalDisplay::setTransparencyEnabled( KWindowSystem::compositingActive() );
 
63
#if defined(Q_WS_MAC) && QT_VERSION >= 0x040600
 
64
    // this ensures that Ctrl and Meta are not swapped, so CTRL-C and friends
 
65
    // will work correctly in the terminal
 
66
    setAttribute(Qt::AA_MacDontSwapCtrlAndMeta);
 
67
#endif
71
68
}
72
69
 
73
70
Application* Application::self()
82
79
 
83
80
    connect( window , SIGNAL(newSessionRequest(Profile::Ptr,const QString&,ViewManager*)), 
84
81
                      this , SLOT(createSession(Profile::Ptr,const QString&,ViewManager*)));
 
82
    connect( window , SIGNAL(newSSHSessionRequest(Profile::Ptr,const KUrl&,ViewManager*)),
 
83
                      this , SLOT(createSSHSession(Profile::Ptr,const KUrl&,ViewManager*)));
85
84
    connect( window , SIGNAL(newWindowRequest(Profile::Ptr,const QString&)),
86
85
                      this , SLOT(createWindow(Profile::Ptr,const QString&)) );
87
86
    connect( window->viewManager() , SIGNAL(viewDetached(Session*)) , this , SLOT(detachView(Session*)) );
217
216
 
218
217
        QString exec = args->getOption("e");
219
218
        if (exec.startsWith(QLatin1String("./")))
220
 
           exec = QDir::currentPath() + exec.mid(1);
221
 
 
 
219
          exec = QDir::currentPath() + exec.mid(1);
222
220
        newProfile->setProperty(Profile::Command,exec);
223
221
        newProfile->setProperty(Profile::Arguments,arguments);
224
222
    }
258
256
        KAction* action = new KAction(window);
259
257
        KShortcut shortcut = action->shortcut();
260
258
        action->setObjectName("Konsole Background Mode");
261
 
        //TODO - Customisable key sequence for this
 
259
        //TODO - Customizable key sequence for this
262
260
        action->setGlobalShortcut( KShortcut(QKeySequence(Qt::Key_F12)) );
263
261
 
264
262
        _backgroundInstance = window;
324
322
    return session;
325
323
}
326
324
 
 
325
Session* Application::createSSHSession(Profile::Ptr profile, const KUrl& url, ViewManager* view)
 
326
{
 
327
    if (!profile)
 
328
        profile = SessionManager::instance()->defaultProfile();
 
329
 
 
330
    Session* session = SessionManager::instance()->createSession(profile);
 
331
 
 
332
    session->sendText("ssh ");
 
333
 
 
334
    if ( url.port() > -1 )
 
335
        session->sendText("-p " + QString::number(url.port()) + ' ' );
 
336
    if ( url.hasUser() )
 
337
        session->sendText(url.user() + '@');
 
338
    if ( url.hasHost() )
 
339
        session->sendText(url.host() + '\r');
 
340
 
 
341
    // create view before starting the session process so that the session doesn't suffer
 
342
    // a change in terminal size right after the session starts.  some applications such as GNU Screen
 
343
    // and Midnight Commander don't like this happening
 
344
    view->createView(session);
 
345
    session->run();
 
346
 
 
347
    return session;
 
348
}
 
349
 
327
350
#include "Application.moc"
328
351