Adding upstream version 0.7.0.

upstream/0.7.0
Alf Gaida 8 years ago
parent c844d2379a
commit 8876f8d930

@ -0,0 +1,184 @@
qtermwidget-0.7.0 / 2016-09-24
==============================
* Bump version to 0.7.0 (#92)
* Add Solarized Color Schemes
* Update README.md
* qtermwidget: Unify title & icon propagation
* lib: Fix FTBFS (struct vs. class mismatch)
* Add 'const' decorators
* Expose titleChanged() signal
* Fix building instructions
* cmake support changes
* Make addCustomColorSchemeDir() static and check for duplicates
* Address review comments
* Allow app to add custom color sheme locations
* Avoid enums duplication
* Add support for setting keyboard cursor shape
* Remove assignment to self
* Backport konsole changes to fix memory leaks
* Remove __FILE__ macros
* Replace assert() with Q_ASSERT()
* Fix ASan error about delete size mismatch
* Add support for GNU/Hurd to kpty.cpp.
* fixes kfreebsd builds on debian and derivatives
* Fix indenations (misleading-indentation warning)
* Remove Q_DECL_OVERRIDE macros
* typo Higlight
* Remove noisy qDebugs
* Bracketed paste mode implementation
* Use function setWorldTranfer for Qpainter instead of setWorldMatrix
* Modify treatment drawing double width character
* pyqt5 bindings
* pyqt5 bindings
* Avoid checking uninitialized member + simplify condition
* Use markdown for README and improve it a bit
* Remove support for Qt <= 5.4
* Remove Designer plugin
* Fix LICENSE text and name
* Remove Changelog
* Remove empty TODO file
* Remove PyQt4 bindings
* Sort out terminal resizing
* Rebase Vt102Emulation to Konsole
* Enable terminal resizing from the emulator
* Clean up trailing whitespaces
* implemented start TTY for external recipient;
* Fix: typo in TerminalDisplay
* add method for get pty slave fd;
* add method for get pty slave fd;
* Use GNUInstallDirs in CMakeLists.txt to stop hardcoding paths
* Set the '_notifiedActivity' flag early
* Also expose signals and slots to pyqt
* Get/set selection end in python bindings
* Avoid calling winId() on Qt5.
* Fix TerminalDisplay::getCharacterPosition for proportional fonts
* Handle proportional fonts a bit better
* Expose more functionality through the python bindings (#23)
* Allow stopping test.py with ctrl-C
* Fix 'getSelectionEnd'
* Make whitespace consistent (tabs->spaces)
* Fix python binding compile errors #23
* Add event to notify the application that the shell application uses mouse.
* Change mouseMarks only when needed. This might be useful if an application wants to be notified of the event.
* Prevents deleting the last line when resizing.
0.6.0 / 2014-10-21
==================
* Release 0.6.0
* Update AUTHORS
* Update INSTALL instructions
* CMakeLists.txt cleanup
* osx: link fixes
* fixed #57 Linux emulation does not seem to support Ctrl+Arrows (warning: I have no clue what I did...)
* Fix Qt4 compilation
* qterminal #64 No drag & drop support
* fixed qterminal #71 qt5 version ignoring page up / down
* Fixed a typo in CMakeLists.txt.
0.5.1 / 2014-07-14
==================
* fixed 'make dist'; version bump
* Url activation & filters #21
* Proxy activity/silence methods to Session in QTermWidget.
* Emit activity() and silence() signals instead of KNotification.
* Support bells.
* Support bells.
* Added QTermWidget::urlActivated(QUrl) signal.
* Emit UrlFilter::activated() instead of QDesktopServices::openUrl().
* Derive Filter from QObject.
* Add UrlFilter.
* Activate link filters on ctrl+click.
* Update filters on resize and screen events.
* Const-correctness for QTermWidget API.
* Load arbitrary schemes by path via setColorScheme().
* ColorSchemeManager::loadCustomColorScheme(const QString& path).
* Unified schemeName() usage.
* fixed #17 lib/ShellCommand.cpp:66: possible =/== mixup
* Delete CMakeLists.txt.user
* new API selectedText()
* new API methods (thanks to William Brumley)
* fixed #11 compile against Qt 5 (Qt4 and Qt5 supported and waguely tested)
* build simplified: qtermwidget is versioned (libqtermwidget4 for Qt4, 5 for Qt5...). Better cmake support.
* fixed broken API for sendText() - const missing
* mail address change
* Current Working Directory for linux. Part of #8. More implementations welcomed...
* Add a method for get working directory in class QTermWidget
* Fix missing cleanup for temporary history files
* a potential improvement for #9 font fractional pixels causes spacing errors
* fix #2 update various documentations for debian packaging
* fix #10 Update FSF address
0.4.0 / 2013-04-16
==================
* readme updated
* Added pasteSelection-slot and corrected two nonsense comments
* qt/embedded doesn't ship with a Monospace font (and it won't use system fonts even if they exist). Using 'fixed' instead works fine
* Without this, the terminal display area will permanently lose focus when consoleq's Find dialog is called up.
* This is only needed when using Qt/E built for DirectFB display. DirectFB blocks SIGINT and some other signals, so any terminal app (be it Qt or otherwise) must call sigprocmask() to unblock them. Without this, ^C doesn't work.
* The control and tab keys don't work in Qt/E. This fixes it, but maybe not in the most elegant way. The trouble seems to be that _codec->fromUnicode(event->text()) doesn't handle control characters in qt-embedded.
* Fix resize label
* Search code cleanup
* Change searchbar background color to red(ish) when no match found
* Fix search, find-next when selection is one character long
* Hotkeys for search: Return->find-next, Shift-Return->find-previous, Escape->hide searchbar
* Added search functionality
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Fix logical error
* Add zoom. Add choice action after paste clipboard
* Add zoom. Add choice action after paste clipboard
* Add Shift+KeyEnd and Shift+KeyHome to go line 0 and line end. No move screenwindow when copy and paste with keyboard
* fix for text drawing in qt>=4.8,x
* constructor for Qt Designer
* test commit
* clear() slot implemented
* fix the scroll at the end again
* The escape key is always needed for terminal programs like vim.
* Add resource files and the appropriate paths to enable bundling of color schemes and keyboard layouts into the actual executable.
* Add a define which will be used to bundle the color schemes and keyboard layouts as resource files with the executable itself instead of putting them on disk.
* scrollToEnd() method provided to trigger 'snapping' the terminal to cursor tracked position (typically the extreme value of the scrollbar, or the 'end') Some signal-fu particular to keyPressEvent(QKeyEvent *) done to make the above usable, no existing dependent implementations should be disturbed by this.
* revert workaround for key on end
* scroll to bottom on input
* scrollToEnd() method provided to trigger 'snapping' the terminal to cursor tracked position (typically the extreme value of the scrollbar, or the 'end') Some signal-fu particular to keyPressEvent(QKeyEvent *) done to make the above usable, no existing dependent implementations should be disturbed by this.
* improved sample app for testing
* macosx compile fix
* arguments work correctly for custom shells too
* lib has to be built first in any case
* merge changes from the experimental "bundle" repository
* fix for kb-layout location on mac (mainly)
* rpm builds
* mac universal build helper
* build cleanup; make dist; various readmes updated
* make availableKeyBindings static
* transparency support
* font display fix on mac (widths in int)
* qt designer plugin
* correct lib ID for mac
* remove the KDE legacy code
* code reformatted after resync
* display stuff synced from konsole again to improve color scheme handling
* focus in/out signals
* correct shell detection (BSD, Christopher VdoP)
* library location on BSD
* patches to build on BSD by Christopher VdoP
* K&R formatting
* K&R formatting
* merge with qscite
* fixed KB finding + sort
* key layouts can be read and provided to widget
* install keyboard bindings; handle KB in src code; allow to get and set KB
* fix for includes and 64bit builds
* port to macosx
* initial import

@ -8,7 +8,7 @@ include(CheckFunctionExists)
option(BUILD_TEST "Build test application. Default OFF." OFF)
# just change version for releases
set(QTERMWIDGET_VERSION_MAJOR "0")
set(QTERMWIDGET_VERSION_MINOR "6")
set(QTERMWIDGET_VERSION_MINOR "7")
set(QTERMWIDGET_VERSION_PATCH "0")
set(QTERMWIDGET_VERSION "${QTERMWIDGET_VERSION_MAJOR}.${QTERMWIDGET_VERSION_MINOR}.${QTERMWIDGET_VERSION_PATCH}")

@ -1,34 +1,28 @@
# QTermWidget
## Overview
A terminal emulator widget for Qt 5.
QTermWidget is an opensource project originally based on KDE4 Konsole application,
but it took its own direction later.
The main goal of this project is to provide unicode-enabled, embeddable
Qt widget for using as a built-in console (or terminal emulation widget).
QTermWidget is an open-source project originally based on KDE4 Konsole application, but it took its own direction later.
The main goal of this project is to provide a unicode-enabled, embeddable Qt widget for using as a built-in console (or terminal emulation widget).
# Installation
It is compatible with BSD, Linux and OS X.
Requirements:
* Qt >= 5.4
* cmake >= 3.0
This project is licensed under the terms of the [GPLv2](https://www.gnu.org/licenses/gpl-2.0.en.html) or any later version. See the LICENSE file for the full text of the license.
Supported platforms:
* Linux
* BSD
* OS X
## Installation
Building
### Compiling sources
1. `mkdir -p build && cd build`
2. `cmake <path/to/source>`
3. `make`
The only runtime dependency is qtbase ≥ 5.4.
In order to build CMake ≥ 3.0 is needed as well as optionally Git to pull latest VCS checkouts.
Run `make install` to install.
Code configuration is handled by CMake. Building out of source is strongly recommended. CMake variable `CMAKE_INSTALL_PREFIX` will normally have to be set to `/usr`, depending on the way library paths are dealt with on 64bit systems variables like `CMAKE_INSTALL_LIBDIR` may have to be set as well.
# License
To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
This project is licensed under the terms of the
[GPLv2](https://www.gnu.org/licenses/gpl-2.0.en.html) or any later version.
### Binary packages
See the LICENSE file for the full text of the license.
The library is provided by all major Linux distributions like Arch Linux, Debian, Fedora and openSUSE.
Just use the distributions' package managers to search for string `qtermwidget`.

@ -58,6 +58,7 @@ Session::Session(QObject* parent) :
, _autoClose(true)
, _wantedClose(false)
, _silenceSeconds(10)
, _isTitleChanged(false)
, _addToUtmp(false) // disabled by default because of a bug encountered on certain systems
// which caused Konsole to hang when closing a tab and then opening a new
// one. A 'QProcess destroyed while still running' warning was being
@ -332,6 +333,7 @@ void Session::setUserTitle( int what, const QString & caption )
// (btw: what=0 changes _userTitle and icon, what=1 only icon, what=2 only _nameTitle
if ((what == 0) || (what == 2)) {
_isTitleChanged = true;
if ( _userTitle != caption ) {
_userTitle = caption;
modified = true;
@ -339,6 +341,7 @@ void Session::setUserTitle( int what, const QString & caption )
}
if ((what == 0) || (what == 1)) {
_isTitleChanged = true;
if ( _iconText != caption ) {
_iconText = caption;
modified = true;
@ -364,6 +367,7 @@ void Session::setUserTitle( int what, const QString & caption )
}
if (what == 30) {
_isTitleChanged = true;
if ( _nameTitle != caption ) {
setTitle(Session::NameRole,caption);
return;
@ -378,6 +382,7 @@ void Session::setUserTitle( int what, const QString & caption )
// change icon via \033]32;Icon\007
if (what == 32) {
_isTitleChanged = true;
if ( _iconName != caption ) {
_iconName = caption;
@ -681,6 +686,11 @@ QString Session::iconText() const
return _iconText;
}
bool Session::isTitleChanged() const
{
return _isTitleChanged;
}
void Session::setHistoryType(const HistoryType & hType)
{
_emulation->setHistory(hType);

@ -282,6 +282,9 @@ public:
/** Returns the text of the icon associated with this session. */
QString iconText() const;
/** Flag if the title/icon was changed by user/shell. */
bool isTitleChanged() const;
/** Specifies whether a utmp entry should be created for the pty used by this session. */
void setAddToUtmp(bool);
@ -529,6 +532,7 @@ private:
QString _iconName;
QString _iconText; // as set by: echo -en '\033]1;IconText\007
bool _isTitleChanged; ///< flag if the title/icon was changed by user
bool _addToUtmp;
bool _flowControl;
bool _fullScripting;

@ -0,0 +1,93 @@
[Color0]
Color=7,54,66
[Color0Intense]
Color=0,43,54
[Color0Faint]
Color=6,48,59
[Color1]
Color=220,50,47
[Color1Intense]
Color=203,75,22
[Color1Faint]
Color=147,33,31
[Color2]
Color=133,153,0
[Color2Intense]
Color=88,110,117
[Color2Faint]
Color=94,106,0
[Color3]
Color=181,137,0
[Color3Intense]
Color=101,123,131
[Color3Faint]
Color=138,103,0
[Color4]
Color=38,139,210
[Color4Intense]
Color=131,148,150
[Color4Faint]
Color=20,77,115
[Color5]
Color=211,54,130
[Color5Intense]
Color=108,113,196
[Color5Faint]
Color=120,30,75
[Color6]
Color=42,161,152
[Color6Intense]
Color=147,161,161
[Color6Faint]
Color=24,94,88
[Color7]
Color=238,232,213
[Color7Intense]
Color=253,246,227
[Color7Faint]
Color=171,167,154
[Background]
Color=0,43,54
[BackgroundIntense]
Color=7,54,66
[BackgroundFaint]
Color=0,43,54
[Foreground]
Color=131,148,150
[ForegroundIntense]
Color=147,161,161
[ForegroundFaint]
Color=106,119,121
[General]
Description=Solarized
Opacity=1

@ -0,0 +1,93 @@
[Color0]
Color=7,54,66
[Color0Intense]
Color=0,43,54
[Color0Faint]
Color=8,65,80
[Color1]
Color=220,50,47
[Color1Intense]
Color=203,75,22
[Color1Faint]
Color=222,81,81
[Color2]
Color=133,153,0
[Color2Intense]
Color=88,110,117
[Color2Faint]
Color=153,168,39
[Color3]
Color=181,137,0
[Color3Intense]
Color=101,123,131
[Color3Faint]
Color=213,170,49
[Color4]
Color=38,139,210
[Color4Intense]
Color=131,148,150
[Color4Faint]
Color=80,173,226
[Color5]
Color=211,54,130
[Color5Intense]
Color=108,113,196
[Color5Faint]
Color=223,92,158
[Color6]
Color=42,161,152
[Color6Intense]
Color=147,161,161
[Color6Faint]
Color=78,211,200
[Color7]
Color=238,232,213
[Color7Intense]
Color=253,246,227
[Color7Faint]
Color=238,232,213
[Background]
Color=253,246,227
[BackgroundIntense]
Color=238,232,213
[BackgroundFaint]
Color=253,246,227
[Foreground]
Color=101,123,131
[ForegroundIntense]
Color=88,110,117
[ForegroundFaint]
Color=141,172,182
[General]
Description=Solarized Light
Opacity=1

@ -302,7 +302,7 @@ void QTermWidget::init(int startnow)
connect(m_impl->m_session, SIGNAL(resizeRequest(QSize)), this, SLOT(setSize(QSize)));
connect(m_impl->m_session, SIGNAL(finished()), this, SLOT(sessionFinished()));
connect(m_impl->m_session, SIGNAL(titleChanged()), this, SLOT(sessionTitleChanged()));
connect(m_impl->m_session, &Session::titleChanged, this, &QTermWidget::titleChanged);
}
@ -485,12 +485,6 @@ void QTermWidget::sessionFinished()
emit finished();
}
void QTermWidget::sessionTitleChanged()
{
emit titleChanged();
}
void QTermWidget::copyClipboard()
{
m_impl->m_terminalDisplay->copyClipboard();
@ -661,12 +655,23 @@ void QTermWidget::setKeyboardCursorShape(KeyboardCursorShape shape)
m_impl->m_terminalDisplay->setKeyboardCursorShape(shape);
}
QString QTermWidget::userTitle() const
QString QTermWidget::title() const
{
QString title = m_impl->m_session->userTitle();
if (title.isEmpty())
title = m_impl->m_session->title(Konsole::Session::NameRole);
return title;
}
QString QTermWidget::icon() const
{
return m_impl->m_session->userTitle();
QString icon = m_impl->m_session->iconText();
if (icon.isEmpty())
icon = m_impl->m_session->iconName();
return icon;
}
QString QTermWidget::iconText() const
bool QTermWidget::isTitleChanged() const
{
return m_impl->m_session->iconText();
return m_impl->m_session->isTitleChanged();
}

@ -205,8 +205,11 @@ public:
*/
void setKeyboardCursorShape(KeyboardCursorShape shape);
QString userTitle() const;
QString iconText() const;
QString title() const;
QString icon() const;
/** True if the title() or icon() was (ever) changed by the session. */
bool isTitleChanged() const;
signals:
void finished();
@ -265,7 +268,6 @@ protected:
protected slots:
void sessionFinished();
void sessionTitleChanged();
void selectionChanged(bool textSelected);
private slots:

Loading…
Cancel
Save