~ubuntu-branches/ubuntu/trusty/virtualbox/trusty-proposed

« back to all changes in this revision

Viewing changes to src/VBox/Debugger/VBoxDbgConsole.cpp

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2013-03-07 16:38:36 UTC
  • mfrom: (1.1.13) (3.1.20 experimental)
  • Revision ID: package-import@ubuntu.com-20130307163836-p93jpbgx39tp3gb4
Tags: 4.2.8-dfsg-0ubuntu1
* New upstream release. (Closes: #691148)
  - Fixes compatibility with kernel 3.8. (Closes: #700823; LP: #1101867)
* Switch to my @debian.org email address.
* Move package to contrib as virtualbox 4.2 needs a non-free compiler to
  build the BIOS.
* Build-depend on libdevmapper-dev.
* Refresh patches.
  - Drop 36-fix-ftbfs-xserver-112.patch, cve-2012-3221.patch,
    CVE-2013-0420.patch 37-kcompat-3.6.patch and 38-kcompat-3.7.patch.
* Drop all virtualbox-ose transitional packages.
* Drop the virtualbox-fuse package as vdfuse fails to build with
  virtualbox 4.2.
* Update install files and VBox.sh.
* Bump required kbuild version to 0.1.9998svn2577.
* Fix path to VBoxCreateUSBNode.sh in virtualbox.postinst. (Closes: #700479)
* Add an init script to virtuabox-guest-x11 which loads the vboxvideo
  kernel module. The X Server 1.13 doesn't load it anymore. (Closes: #686994)
* Update man pages. (Closes: #680053)
* Add 36-python-multiarch.patch from Rico Tzschichholz to fix detection of
  python in multiarch paths using pkg-config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 */
5
5
 
6
6
/*
7
 
 * Copyright (C) 2006-2010 Oracle Corporation
 
7
 * Copyright (C) 2006-2011 Oracle Corporation
8
8
 *
9
9
 * This file is part of VirtualBox Open Source Edition (OSE), as
10
10
 * available from http://www.virtualbox.org. This file is free software;
93
93
 
94
94
 
95
95
void
96
 
VBoxDbgConsoleOutput::appendText(const QString &rStr)
 
96
VBoxDbgConsoleOutput::appendText(const QString &rStr, bool fClearSelection)
97
97
{
98
98
    Assert(m_hGUIThread == RTThreadNativeSelf());
99
99
 
101
101
        return;
102
102
 
103
103
    /*
104
 
     * Insert all in one go and make sure it's visible.
 
104
     * Insert all in one go and make sure it's visible. 
 
105
     *  
 
106
     * We need to move the cursor and unselect any selected text before 
 
107
     * inserting anything, otherwise, text will disappear.
105
108
     */
106
109
    QTextCursor Cursor = textCursor();
107
 
    if (!Cursor.atEnd())
108
 
        moveCursor(QTextCursor::End); /* make sure we append the text */
109
 
    Cursor.insertText(rStr);
110
 
    ensureCursorVisible();
 
110
    if (!fClearSelection && Cursor.hasSelection())
 
111
    {
 
112
        QTextCursor SavedCursor = Cursor;
 
113
        Cursor.clearSelection();
 
114
        Cursor.movePosition(QTextCursor::End);
 
115
 
 
116
        Cursor.insertText(rStr);
 
117
 
 
118
        setTextCursor(SavedCursor);
 
119
    }
 
120
    else
 
121
    {
 
122
        if (Cursor.hasSelection())
 
123
            Cursor.clearSelection();
 
124
        if (!Cursor.atEnd())
 
125
            Cursor.movePosition(QTextCursor::End);
 
126
 
 
127
        Cursor.insertText(rStr);
 
128
 
 
129
        setTextCursor(Cursor);
 
130
        ensureCursorVisible();
 
131
    }
111
132
}
112
133
 
113
134
 
259
280
     * The tab order is from input to output, not the other way around as it is by default.
260
281
     */
261
282
    setTabOrder(m_pInput, m_pOutput);
 
283
    m_fInputRestoreFocus = true; /* hack */
262
284
 
263
285
    /*
264
286
     * Setup the timer.
380
402
    m_cbInputBuf += cb;
381
403
    m_pszInputBuf[m_cbInputBuf++] = '\n';
382
404
 
383
 
    m_pOutput->appendText(rCommand + "\n");
 
405
    m_pOutput->appendText(rCommand + "\n", true /*fClearSelection*/);
384
406
    m_pOutput->ensureCursorVisible();
385
407
 
386
408
    m_fInputRestoreFocus = m_pInput->hasFocus();    /* dirty focus hack */
400
422
    m_fUpdatePending = false;
401
423
    if (m_cbOutputBuf)
402
424
    {
403
 
        m_pOutput->appendText(QString::fromUtf8((const char *)m_pszOutputBuf, (int)m_cbOutputBuf));
 
425
        m_pOutput->appendText(QString::fromUtf8((const char *)m_pszOutputBuf, (int)m_cbOutputBuf), false /*fClearSelection*/);
404
426
        m_cbOutputBuf = 0;
405
427
    }
406
428
    unlock();