From f0e1c32f49c90960b6396a92b59af0ea1b15a010 Mon Sep 17 00:00:00 2001 From: Alf Gaida Date: Sun, 27 Dec 2015 12:19:39 +0100 Subject: [PATCH] Adding upstream version 0.6.0+20151225. --- CMakeLists.txt | 66 ++----------------- Changelog | 27 -------- INSTALL | 23 ------- COPYING => LICENSE | 59 ----------------- README | 10 --- README.md | 34 ++++++++++ TODO | 0 cmake/qtermwidget4-config.cmake.in | 47 ------------- cmake/qtermwidget5-config.cmake.in | 8 +-- lib/Character.h | 5 +- lib/Emulation.h | 12 ++++ lib/Session.cpp | 53 ++++----------- lib/Session.h | 2 +- lib/TerminalDisplay.cpp | 9 +-- lib/Vt102Emulation.cpp | 60 ++++++++++++++++- lib/Vt102Emulation.h | 16 +++-- lib/designer/qtermwidget.png | Bin 2268 -> 0 bytes lib/designer/qtermwidgetplugin.cpp | 102 ----------------------------- lib/designer/qtermwidgetplugin.h | 33 ---------- lib/designer/qtermwidgetplugin.qrc | 6 -- lib/qtermwidget.cpp | 5 +- lib/qtermwidget.h | 6 +- pyqt4/README | 23 ------- pyqt4/config.py | 85 ------------------------ pyqt4/config.py.in | 0 pyqt4/qtermwidget.sip | 83 ----------------------- pyqt4/qtermwidgetconfig.py | 0 pyqt4/test.py | 34 ---------- qtermwidget.spec | 6 +- 29 files changed, 149 insertions(+), 665 deletions(-) delete mode 100644 Changelog delete mode 100644 INSTALL rename COPYING => LICENSE (84%) delete mode 100644 README create mode 100644 README.md delete mode 100644 TODO delete mode 100644 cmake/qtermwidget4-config.cmake.in delete mode 100644 lib/designer/qtermwidget.png delete mode 100644 lib/designer/qtermwidgetplugin.cpp delete mode 100644 lib/designer/qtermwidgetplugin.h delete mode 100644 lib/designer/qtermwidgetplugin.qrc delete mode 100644 pyqt4/README delete mode 100755 pyqt4/config.py delete mode 100644 pyqt4/config.py.in delete mode 100644 pyqt4/qtermwidget.sip delete mode 100644 pyqt4/qtermwidgetconfig.py delete mode 100755 pyqt4/test.py diff --git a/CMakeLists.txt b/CMakeLists.txt index db60068..0e73db2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,6 @@ cmake_minimum_required( VERSION 2.8 ) project(qtermwidget) -option(BUILD_DESIGNER_PLUGIN "Build Qt4 designer plugin" ON) -option(USE_QT5 "Build using Qt5. Default OFF." OFF) option(BUILD_TEST "Build test application. Default OFF." OFF) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") @@ -26,13 +24,8 @@ include_directories( add_definitions(-Wall) -if(USE_QT5) - set(QTERMWIDGET_LIBRARY_NAME qtermwidget5) - include(qtermwidget5_use) -else() - include(qtermwidget4_use) - set(QTERMWIDGET_LIBRARY_NAME qtermwidget4) -endif() +set(QTERMWIDGET_LIBRARY_NAME qtermwidget5) +include(qtermwidget5_use) # main library @@ -111,17 +104,9 @@ if(HAVE_UPDWTMPX) add_definitions(-DHAVE_UPDWTMPX) endif() - -if(USE_QT5) - qt5_wrap_cpp(MOCS ${HDRS}) - qt5_wrap_ui(UI_SRCS ${UI}) - set(PKG_CONFIG_REQ "Qt5Core, Qt5Xml, Qt5Widgets") -else() - qt4_wrap_cpp(MOCS ${HDRS}) - qt4_wrap_ui(UI_SRCS ${UI}) - set(PKG_CONFIG_REQ "QtCore, QtXml") -endif() - +qt5_wrap_cpp(MOCS ${HDRS}) +qt5_wrap_ui(UI_SRCS ${UI}) +set(PKG_CONFIG_REQ "Qt5Core, Qt5Xml, Qt5Widgets") add_library(${QTERMWIDGET_LIBRARY_NAME} SHARED ${SRCS} ${MOCS} ${UI_SRCS}) target_link_libraries(${QTERMWIDGET_LIBRARY_NAME} ${QTERMWIDGET_QT_LIBRARIES}) @@ -163,47 +148,6 @@ install(FILES # end of main library -# designer plugin -if (BUILD_DESIGNER_PLUGIN) - if(USE_QT5) - message(FATAL_ERROR "Building Qt designer plugin is not supported for Qt5 yet. Use -DBUILD_DESIGNER_PLUGIN=0") - endif() - message(STATUS "Building Qt designer plugin") - - include_directories(designer "${QT_QTDESIGNER_INCLUDE_DIR}") - - set(DESIGNER_SRC lib/designer/qtermwidgetplugin.cpp) - qt4_wrap_cpp(DESIGNER_MOC lib/designer/qtermwidgetplugin.h) - qt4_add_resources(DESIGNER_QRC lib/designer/qtermwidgetplugin.qrc) - - link_directories(${CMAKE_BINARY_DIR}) - add_library(qtermwidget4plugin SHARED - ${DESIGNER_MOC} - ${DESIGNER_QRC} - ${DESIGNER_SRC} - ) - add_dependencies(qtermwidget4plugin qtermwidget4) - - target_link_libraries(qtermwidget4plugin - ${QT_QTCORE_LIBRARY} - ${QT_QTDESIGNER_LIBRARY} - ${QT_QTDESIGNERCOMPONENTS_LIBRARY} - ${QTERMWIDGET_LIBRARY_NAME} - ) - - if(APPLE) - # this is a must to load the lib correctly - set_target_properties(qtermwidget4plugin PROPERTIES - INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/qt4/plugins/designer" - ) - endif() - - install(TARGETS qtermwidget4plugin DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/qt4/plugins/designer") - -endif (BUILD_DESIGNER_PLUGIN) -# end of designer plugin - - # test application if(BUILD_TEST) set(TEST_SRC src/main.cpp) diff --git a/Changelog b/Changelog deleted file mode 100644 index 454c716..0000000 --- a/Changelog +++ /dev/null @@ -1,27 +0,0 @@ -0.6.0 (2014-10-21) - * Full Qt4 + Qt5 support - * Fixed Ctrl+Arrows in Linux emulation - * Fixed Drag & Drop support - - -## Old changelog - -31.07.2008 -Interface class from c-style conversions rewritten with pimpl support. - - -16.07.2008 -Added optional scrollbar - - -06.06.2008 -Some artefacts were removed, some added... -Also added support for color schemes, and 3 color schemes provided (classical - white on black, green on black, black on light yellow). Is it enough or not? - - -26.05.2008 -Added file release as an archive with source code. But preferrable way is still getting code from CVS, cause file release can be outdated. - - -11.05.2008 -Initial CVS import - first version comes with number 0.0.1 diff --git a/INSTALL b/INSTALL deleted file mode 100644 index e26c91a..0000000 --- a/INSTALL +++ /dev/null @@ -1,23 +0,0 @@ -Requirements: - - Qt4 or Qt5 - cmake - -Supported (tested) platforms: - - Linux - *BSD - Mac OS X - -Build: - - A shadow build (out of source) is strongly recommended - http://www.cmake.org/Wiki/CMake_FAQ#Out-of-source_build_trees - - 1) mkdir -p build && cd build - 2a) cmake path/to/source -DUSE_QT5=true # Qt 5 - 2b) cmake path/to/source # Qt 4 only - 3) make - 4) optional: make install - - Read cmake docs to fine tune the build process (CMAKE_INSTALL_PREFIX, etc...) diff --git a/COPYING b/LICENSE similarity index 84% rename from COPYING rename to LICENSE index d159169..d8cf7d4 100644 --- a/COPYING +++ b/LICENSE @@ -278,62 +278,3 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/README b/README deleted file mode 100644 index 6983ca5..0000000 --- a/README +++ /dev/null @@ -1,10 +0,0 @@ -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). - - -Current maintainer: Petr Vanek -License: GPLv2+ - - diff --git a/README.md b/README.md new file mode 100644 index 0000000..222e2fd --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# QTermWidget + +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). + +# Installation + +Requirements: + * Qt >= 5.4 + * cmake >= 3.0 + +Supported platforms: + * Linux + * BSD + * OS X + +Building + + 1. `mkdir -p build && cd build` + 2. `cmake `` + 3. make + +Run `make install` to install. + +# License + +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. diff --git a/TODO b/TODO deleted file mode 100644 index e69de29..0000000 diff --git a/cmake/qtermwidget4-config.cmake.in b/cmake/qtermwidget4-config.cmake.in deleted file mode 100644 index 7f3a10f..0000000 --- a/cmake/qtermwidget4-config.cmake.in +++ /dev/null @@ -1,47 +0,0 @@ -# - Find the QTermWidget include and library dirs and define a some macros -# -# The module defines the following variables -# QTERMWIDGET_FOUND - Set to TRUE if all of the above has been found -# -# QTERMWIDGET_INCLUDE_DIR - The QTermWidget include directory -# -# QTERMWIDGET_INCLUDE_DIRS - The QTermWidget include directory -# -# QTERMWIDGET_LIBRARIES - The libraries needed to use QTermWidget -# -# QTERMWIDGET_USE_FILE - The variable QTERMWIDGET_USE_FILE is set which is the path -# to a CMake file that can be included to compile qtermwidget -# applications and libraries. It sets up the compilation -# environment for include directories and populates a -# QTERMWIDGET_LIBRARIES variable. -# -# QTERMWIDGET_QT_LIBRARIES - The Qt libraries needed by QTermWidget -# -# Typical usage: -# option(USE_QT5 "Build using Qt5. Default off" OFF) -# if (USE_QT5) -# find_package(QTERMWIDGET4) -# else() -# find_package(QTERMWIDGET5) -# endif() -# -# include(${QTERMWIDGET_USE_FILE}) -# add_executable(foo main.cpp) -# target_link_libraries(foo ${QTERMWIDGET_QT_LIBRARIES} ${QTERMWIDGET_LIBRARIES}) - -set(QTERMWIDGET_INCLUDE_DIR @QTERMWIDGET_INCLUDE_DIR@) -set(QTERMWIDGET_LIBRARY @QTERMWIDGET_LIBRARY_NAME@) - -set(QTERMWIDGET_LIBRARIES ${QTERMWIDGET_LIBRARY}) -set(QTERMWIDGET_INCLUDE_DIRS "${QTERMWIDGET_INCLUDE_DIR}") - -set(QTERMWIDGET_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/qtermwidget4_use.cmake") -set(QTERMWIDGET_FOUND 1) - -set(QTERMWIDGET_VERSION_MAJOR @QTERMWIDGET_VERSION_MAJOR@) -set(QTERMWIDGET_VERSION_MINOR @QTERMWIDGET_VERSION_MINOR@) -set(QTERMWIDGET_VERSION_PATCH @QTERMWIDGET_VERSION_PATCH@) -set(QTERMWIDGET_VERSION @QTERMWIDGET_VERSION@) - -mark_as_advanced(QTERMWIDGET_LIBRARY QTERMWIDGET_INCLUDE_DIR) - diff --git a/cmake/qtermwidget5-config.cmake.in b/cmake/qtermwidget5-config.cmake.in index 5f8edb9..83295e4 100644 --- a/cmake/qtermwidget5-config.cmake.in +++ b/cmake/qtermwidget5-config.cmake.in @@ -18,12 +18,7 @@ # QTERMWIDGET_QT_LIBRARIES - The Qt libraries needed by QTermWidget # # Typical usage: -# option(USE_QT5 "Build using Qt5. Default off" OFF) -# if (USE_QT5) -# find_package(QTERMWIDGET4) -# else() -# find_package(QTERMWIDGET5) -# endif() +# find_package(QTERMWIDGET5) # # include(${QTERMWIDGET_USE_FILE}) # add_executable(foo main.cpp) @@ -44,4 +39,3 @@ set(QTERMWIDGET_VERSION_PATCH @QTERMWIDGET_VERSION_PATCH@) set(QTERMWIDGET_VERSION @QTERMWIDGET_VERSION@) mark_as_advanced(QTERMWIDGET_LIBRARY QTERMWIDGET_INCLUDE_DIR) - diff --git a/lib/Character.h b/lib/Character.h index 9a0a42d..536cd63 100644 --- a/lib/Character.h +++ b/lib/Character.h @@ -45,8 +45,9 @@ static const int LINE_DOUBLEHEIGHT = (1 << 2); #define RE_UNDERLINE (1 << 2) #define RE_REVERSE (1 << 3) // Screen only #define RE_INTENSIVE (1 << 3) // Widget only -#define RE_CURSOR (1 << 4) -#define RE_EXTENDED_CHAR (1 << 5) +#define RE_ITALIC (1 << 4) +#define RE_CURSOR (1 << 5) +#define RE_EXTENDED_CHAR (1 << 6) /** * A single character in the terminal which consists of a unicode character diff --git a/lib/Emulation.h b/lib/Emulation.h index 3037a04..cb680ef 100644 --- a/lib/Emulation.h +++ b/lib/Emulation.h @@ -379,6 +379,18 @@ signals: */ void imageSizeChanged(int lineCount , int columnCount); + /** + * Emitted when the setImageSize() is called on this emulation for + * the first time. + */ + void imageSizeInitialized(); + + /** + * Emitted after receiving the escape sequence which asks to change + * the terminal emulator's size + */ + void imageResizeRequest(const QSize& sizz); + /** * Emitted when the terminal program requests to change various properties * of the terminal display. diff --git a/lib/Session.cpp b/lib/Session.cpp index 9e29377..42d93c3 100644 --- a/lib/Session.cpp +++ b/lib/Session.cpp @@ -94,9 +94,11 @@ Session::Session(QObject* parent) : this, SIGNAL( changeTabTextColorRequest( int ) ) ); connect( _emulation, SIGNAL(profileChangeCommandReceived(const QString &)), this, SIGNAL( profileChangeCommandReceived(const QString &)) ); - // TODO - // connect( _emulation,SIGNAL(imageSizeChanged(int,int)) , this , - // SLOT(onEmulationSizeChange(int,int)) ); + + connect(_emulation, SIGNAL(imageResizeRequest(QSize)), + this, SLOT(onEmulationSizeChange(QSize))); + connect(_emulation, SIGNAL(imageSizeChanged(int, int)), + this, SLOT(onViewSizeChange(int, int))); //connect teletype to emulation backend _shellProcess->setUtf8Mode(_emulation->utf8()); @@ -119,42 +121,11 @@ Session::Session(QObject* parent) : WId Session::windowId() const { - // Returns a window ID for this session which is used - // to set the WINDOWID environment variable in the shell - // process. - // - // Sessions can have multiple views or no views, which means - // that a single ID is not always going to be accurate. - // - // If there are no views, the window ID is just 0. If - // there are multiple views, then the window ID for the - // top-level window which contains the first view is - // returned - // - // On Qt5, requesting window IDs breaks QQuickWidget and the likes, - // for example, see the following bug reports: - // - // https://bugreports.qt-project.org/browse/QTBUG-41779 - // https://bugreports.qt-project.org/browse/QTBUG-40765 - // https://bugreports.qt-project.org/browse/QTBUG-41942 - -#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) - return 0; -#else - if ( _views.count() == 0 ) { - return 0; - } else { - QWidget * window = _views.first(); - - Q_ASSERT( window ); - - while ( window->parentWidget() != 0 ) { - window = window->parentWidget(); - } - - return window->winId(); - } -#endif + // On Qt5, requesting window IDs breaks QQuickWidget and the likes, + // for example, see the following bug reports: + // https://bugreports.qt.io/browse/QTBUG-40765 + // https://codereview.qt-project.org/#/c/94880/ + return 0; } void Session::setDarkBackground(bool darkBackground) @@ -517,9 +488,9 @@ void Session::onViewSizeChange(int /*height*/, int /*width*/) { updateTerminalSize(); } -void Session::onEmulationSizeChange(int lines , int columns) +void Session::onEmulationSizeChange(QSize size) { - setSize( QSize(lines,columns) ); + setSize(size); } void Session::updateTerminalSize() diff --git a/lib/Session.h b/lib/Session.h index 5cdae55..7d2e333 100644 --- a/lib/Session.h +++ b/lib/Session.h @@ -486,7 +486,7 @@ private slots: void monitorTimerDone(); void onViewSizeChange(int height, int width); - void onEmulationSizeChange(int lines , int columns); + void onEmulationSizeChange(QSize); void activityStateSet(int); diff --git a/lib/TerminalDisplay.cpp b/lib/TerminalDisplay.cpp index 18b0f47..1434ee6 100644 --- a/lib/TerminalDisplay.cpp +++ b/lib/TerminalDisplay.cpp @@ -312,6 +312,7 @@ TerminalDisplay::TerminalDisplay(QWidget *parent) ,_terminalSizeHint(false) ,_terminalSizeStartup(true) ,_bidiEnabled(false) +,_mouseMarks(false) ,_actSel(0) ,_wordSelectionMode(false) ,_lineSelectionMode(false) @@ -726,15 +727,11 @@ void TerminalDisplay::drawCharacters(QPainter& painter, // the application's default layout direction to be used instead of // the widget-specific layout direction, which should always be // Qt::LeftToRight for this widget - // This was discussed in: http://lists.kde.org/?t=120552223600002&r=1&w=2 + // This was discussed in: http://lists.kde.org/?t=120552223600002&r=1&w=2 if (_bidiEnabled) painter.drawText(rect,0,text); else -#if QT_VERSION >= 0x040800 painter.drawText(rect, Qt::AlignBottom, LTR_OVERRIDE_CHAR + text); -#else - painter.drawText(rect, 0, LTR_OVERRIDE_CHAR + text); -#endif } } @@ -1804,7 +1801,7 @@ void TerminalDisplay::mousePressEvent(QMouseEvent* ev) } else if ( ev->button() == Qt::MidButton ) { - if ( _mouseMarks || (!_mouseMarks && (ev->modifiers() & Qt::ShiftModifier)) ) + if ( _mouseMarks || (ev->modifiers() & Qt::ShiftModifier) ) emitSelection(true,ev->modifiers() & Qt::ControlModifier); else emit mouseSignal( 1, charColumn +1, charLine +1 +_scrollBar->value() -_scrollBar->maximum() , 0); diff --git a/lib/Vt102Emulation.cpp b/lib/Vt102Emulation.cpp index da2e223..38c6bfd 100644 --- a/lib/Vt102Emulation.cpp +++ b/lib/Vt102Emulation.cpp @@ -60,7 +60,8 @@ using namespace Konsole; Vt102Emulation::Vt102Emulation() : Emulation(), - _titleUpdateTimer(new QTimer(this)) + _titleUpdateTimer(new QTimer(this)), + _reportFocusEvents(false) { _titleUpdateTimer->setSingleShot(true); QObject::connect(_titleUpdateTimer , SIGNAL(timeout()) , this , SLOT(updateTitle())); @@ -531,7 +532,9 @@ void Vt102Emulation::processToken(int token, int p, int q) case TY_ESC_DE('8' ) : _currentScreen->helpAlign ( ); break; // resize = \e[8;;t - case TY_CSI_PS('t', 8) : setImageSize( q /* columns */, p /* lines */ ); break; + case TY_CSI_PS('t', 8) : setImageSize( q /* columns */, p /* lines */ ); + emit imageResizeRequest(QSize(q, p)); + break; // change tab text color : \e[28;t color: 0-16,777,215 case TY_CSI_PS('t', 28) : emit changeTabTextColorRequest ( p ); break; @@ -555,6 +558,7 @@ void Vt102Emulation::processToken(int token, int p, int q) case TY_CSI_PS('m', 0) : _currentScreen->setDefaultRendition ( ); break; case TY_CSI_PS('m', 1) : _currentScreen-> setRendition (RE_BOLD ); break; //VT100 + case TY_CSI_PS('m', 3) : _currentScreen-> setRendition (RE_ITALIC ); break; //VT100 case TY_CSI_PS('m', 4) : _currentScreen-> setRendition (RE_UNDERLINE); break; //VT100 case TY_CSI_PS('m', 5) : _currentScreen-> setRendition (RE_BLINK ); break; //VT100 case TY_CSI_PS('m', 7) : _currentScreen-> setRendition (RE_REVERSE ); break; @@ -562,6 +566,7 @@ void Vt102Emulation::processToken(int token, int p, int q) case TY_CSI_PS('m', 11) : /* IGNORED: mapping related */ break; //LINUX case TY_CSI_PS('m', 12) : /* IGNORED: mapping related */ break; //LINUX case TY_CSI_PS('m', 22) : _currentScreen->resetRendition (RE_BOLD ); break; + case TY_CSI_PS('m', 23) : _currentScreen->resetRendition (RE_ITALIC ); break; //VT100 case TY_CSI_PS('m', 24) : _currentScreen->resetRendition (RE_UNDERLINE); break; case TY_CSI_PS('m', 25) : _currentScreen->resetRendition (RE_BLINK ); break; case TY_CSI_PS('m', 27) : _currentScreen->resetRendition (RE_REVERSE ); break; @@ -625,6 +630,8 @@ void Vt102Emulation::processToken(int token, int p, int q) case TY_CSI_PN('B' ) : _currentScreen->cursorDown (p ); break; //VT100 case TY_CSI_PN('C' ) : _currentScreen->cursorRight (p ); break; //VT100 case TY_CSI_PN('D' ) : _currentScreen->cursorLeft (p ); break; //VT100 + case TY_CSI_PN('E' ) : /* Not implemented: cursor next p lines */ break; //VT100 + case TY_CSI_PN('F' ) : /* Not implemented: cursor preceding p lines */ break; //VT100 case TY_CSI_PN('G' ) : _currentScreen->setCursorX (p ); break; //LINUX case TY_CSI_PN('H' ) : _currentScreen->setCursorYX (p, q); break; //VT100 case TY_CSI_PN('I' ) : _currentScreen->tab (p ); break; @@ -739,6 +746,24 @@ void Vt102Emulation::processToken(int token, int p, int q) case TY_CSI_PR('s', 1003) : saveMode (MODE_Mouse1003); break; //XTERM case TY_CSI_PR('r', 1003) : restoreMode (MODE_Mouse1003); break; //XTERM + case TY_CSI_PR('h', 1004) : _reportFocusEvents = true; break; + case TY_CSI_PR('l', 1004) : _reportFocusEvents = false; break; + + case TY_CSI_PR('h', 1005) : setMode (MODE_Mouse1005); break; //XTERM + case TY_CSI_PR('l', 1005) : resetMode (MODE_Mouse1005); break; //XTERM + case TY_CSI_PR('s', 1005) : saveMode (MODE_Mouse1005); break; //XTERM + case TY_CSI_PR('r', 1005) : restoreMode (MODE_Mouse1005); break; //XTERM + + case TY_CSI_PR('h', 1006) : setMode (MODE_Mouse1006); break; //XTERM + case TY_CSI_PR('l', 1006) : resetMode (MODE_Mouse1006); break; //XTERM + case TY_CSI_PR('s', 1006) : saveMode (MODE_Mouse1006); break; //XTERM + case TY_CSI_PR('r', 1006) : restoreMode (MODE_Mouse1006); break; //XTERM + + case TY_CSI_PR('h', 1015) : setMode (MODE_Mouse1015); break; //URXVT + case TY_CSI_PR('l', 1015) : resetMode (MODE_Mouse1015); break; //URXVT + case TY_CSI_PR('s', 1015) : saveMode (MODE_Mouse1015); break; //URXVT + case TY_CSI_PR('r', 1015) : restoreMode (MODE_Mouse1015); break; //URXVT + case TY_CSI_PR('h', 1034) : /* IGNORED: 8bitinput activation */ break; //XTERM case TY_CSI_PR('h', 1047) : setMode (MODE_AppScreen); break; //XTERM @@ -757,6 +782,11 @@ void Vt102Emulation::processToken(int token, int p, int q) case TY_CSI_PR('h', 1049) : saveCursor(); _screen[1]->clearEntireScreen(); setMode(MODE_AppScreen); break; //XTERM case TY_CSI_PR('l', 1049) : resetMode(MODE_AppScreen); restoreCursor(); break; //XTERM + case TY_CSI_PR('h', 2004) : setMode (MODE_BracketedPaste); break; //XTERM + case TY_CSI_PR('l', 2004) : resetMode (MODE_BracketedPaste); break; //XTERM + case TY_CSI_PR('s', 2004) : saveMode (MODE_BracketedPaste); break; //XTERM + case TY_CSI_PR('r', 2004) : restoreMode (MODE_BracketedPaste); break; //XTERM + //FIXME: weird DEC reset sequence case TY_CSI_PE('p' ) : /* IGNORED: reset ( ) */ break; @@ -883,6 +913,32 @@ void Vt102Emulation::sendMouseEvent( int cb, int cx, int cy , int eventType ) sendString(command); } +/** + * The focus lost event can be used by Vim (or other terminal applications) + * to recognize that the konsole window has lost focus. + * The escape sequence is also used by iTerm2. + * Vim needs the following plugin to be installed to convert the escape + * sequence into the FocusLost autocmd: https://github.com/sjl/vitality.vim + */ +void Vt102Emulation::focusLost(void) +{ + if (_reportFocusEvents) + sendString("\033[O"); +} + +/** + * The focus gained event can be used by Vim (or other terminal applications) + * to recognize that the konsole window has gained focus again. + * The escape sequence is also used by iTerm2. + * Vim needs the following plugin to be installed to convert the escape + * sequence into the FocusGained autocmd: https://github.com/sjl/vitality.vim + */ +void Vt102Emulation::focusGained(void) +{ + if (_reportFocusEvents) + sendString("\033[I"); +} + void Vt102Emulation::sendText( const QString& text ) { if (!text.isEmpty()) diff --git a/lib/Vt102Emulation.h b/lib/Vt102Emulation.h index 802cfc5..2f235fc 100644 --- a/lib/Vt102Emulation.h +++ b/lib/Vt102Emulation.h @@ -42,10 +42,14 @@ #define MODE_Mouse1001 (MODES_SCREEN+4) // Use Hilight mouse tracking #define MODE_Mouse1002 (MODES_SCREEN+5) // Use cell motion mouse tracking #define MODE_Mouse1003 (MODES_SCREEN+6) // Use all motion mouse tracking -#define MODE_Ansi (MODES_SCREEN+7) // Use US Ascii for character sets G0-G3 (DECANM) -#define MODE_132Columns (MODES_SCREEN+8) // 80 <-> 132 column mode switch (DECCOLM) -#define MODE_Allow132Columns (MODES_SCREEN+9) // Allow DECCOLM mode -#define MODE_total (MODES_SCREEN+10) +#define MODE_Mouse1005 (MODES_SCREEN+7) // Xterm-style extended coordinates +#define MODE_Mouse1006 (MODES_SCREEN+8) // 2nd Xterm-style extended coordinates +#define MODE_Mouse1015 (MODES_SCREEN+9) // Urxvt-style extended coordinates +#define MODE_Ansi (MODES_SCREEN+10) // Use US Ascii for character sets G0-G3 (DECANM) +#define MODE_132Columns (MODES_SCREEN+11) // 80 <-> 132 column mode switch (DECCOLM) +#define MODE_Allow132Columns (MODES_SCREEN+12) // Allow DECCOLM mode +#define MODE_BracketedPaste (MODES_SCREEN+13) // Xterm-style bracketed paste mode +#define MODE_total (MODES_SCREEN+14) namespace Konsole { @@ -91,6 +95,8 @@ public slots: virtual void sendText(const QString& text); virtual void sendKeyEvent(QKeyEvent*); virtual void sendMouseEvent(int buttons, int column, int line, int eventType); + virtual void focusLost() Q_DECL_OVERRIDE; + virtual void focusGained() Q_DECL_OVERRIDE; protected: // reimplemented from Emulation @@ -184,6 +190,8 @@ private: //output from the terminal QHash _pendingTitleUpdates; QTimer* _titleUpdateTimer; + + bool _reportFocusEvents; }; } diff --git a/lib/designer/qtermwidget.png b/lib/designer/qtermwidget.png deleted file mode 100644 index 7b9abcc04ebd5adc241e236f3099c026b78feb85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2268 zcmV<22qX82P)ev7MoSO*xl2n`Tcuo;opJ*Jd%)<^6}5J@+PLtNP{kjaC`hvbd5h0 z1pz7vS7?az%wiG(&}d%JRD=&VVpeh(%oYn&MTX>Thd08GanWO-LdHPHWjxd>!x85| zhfl-)qo?udp(8K&yx!Njq%q+U|0v${#^UjDNf;U)f=t@$OmhOD>j>CD3xLt+m!`Ad zDg?UAWQhlagLrg0fiYP?LUGvDjlL)|A|gZJ@yhVEyRqPujF|9H*up|!iHSw!zRz&L z+4M68AT~L5&as@Dt&YLL>$JfOMV9#ieCPr5>!cZXqbLTvsrU$uLVzro9&#Kr;{5Q* z8kp%jtEB1C>!XF!51q?t++T6wU3ks{k2m7zW z>+?bOc}TX*9V9ZXRh8+@UBOJkz;IjwvyF(URwt4skmcwsw_8US9oQdYfr;GZ@z9Fv zGG=uvh%k#>8H>q`1DAU6extLP0hp9B^I_>nnMDpomAQE}Re{b2fuJD}YMtvZLLjm+ z*U&@m7L8mGZ*D>SxM3or2!#mQ+pprXDncaU=_2hUD@?ztV}dzAX@#Z^UhKvvuBIm$ zfS9R?Q>3}`=H1`jeTDq5kS|51HebxN7R3PRRFw{-!&S};20~-uK$`j~8gw?p0)wnb z++aThzL0JL?6k?sm__m!8J%sNs6XM%WRfEvd*r7_D$Dbe_I|h@BO`8@&1TY6q zAvjtE<4Xv*An;5i-v)@P8<8UjIuAc^1w?29i&BltU9xmOjy1aQ{_eet0{|ZVu~fCX zbn0LCeacCwDJm4w%tB$sHsAGSaOUR3lbN*$U)CSPTf2610OJ-em@Cy*uT1`E_kIiw z3?XX#c!WoUqqC!n%;|^CZsXRtH~CPC!L&c^ z+JozZg9Km^9!#B1=GVD@yV@_{_|cQ-=;)*@30SSx{|i82Q4UTupTVY=e#-%jeJVR$ zswgc;+4asx7#0Lm)z z;5yxm4V$)c0MWTmW=N~bS0uc(b2lC8#{HAy@$gUPAZDV2n_Q+`z_`eOcsv@8A3KTT z4UO>2e(sh#1E6C~bt#TJop^5jmd6=@#Jt>0X=Uk(sJGwz0Dkhd-{U3Cf%y1X%uM?M z5~d{Z@M1Z@Y!S%?c649t#epvlqPOQVFG6<$ptf!m2k>mwuX7oIsfC5vQbkcgnQa$)RXRuvg(lBXqO-okmLIh&`vau)oomZ=Ch|!T(N;$AhEb`nN+=|JZjsP-%~zU_`xO;8Xq5r**~0vgv7~^ z6-rRlXjrWl3=g}}SWi4SdV;`EvNGR385K%$>z`kRmbMlYm(?xf07{B-rJA)BQ7^yr zJ0h7EDJjWFotX-U!$FOXKsBDyvxRybBF5KWx8u;i52LTIAEBY4{BYSXbJJ=@)(d3o zAdAp6vl@#UMOIK#TaNb5c4h%yj3$*9wc^5b6Hwv%@>OEZ=rDR~MlmN7Uu443mXPPxv&J>o$~SSZ(oafA(4 zDYCND5q4kLw>n3oR`FuSz@Bn8;fsGBr2JvS`i-m6+IALCm(*skb@7$uE2NU5yx3P? z{sU+J`~`Cn6FU)SNZYf`tr(=_M2#vBH~psKq7Yw}Ezd?wObqXaR9+F;8jS;BQ>_X#q%gAs^;Z5v9i2?5>Zjq<`>`KCbE#fST%H0X=a7U%u=uZ zon1BcD>7nZ9b|zqfx~GZYw1`6JG#e2{YBs9t3+^>hip|%8G5et5P+(D2H=6G3v#3l z>sH_Q;-=TQ8C4R(F4h<5w>UWX@_T(ee*`Lra3du7J+R+GnlmEG1g@&40$mq6h=g^O zY(-jO!4uN@s%Na5f3uxhsN0NZ+})cCbJLotGF<5HM9IqMtC@^hPnDI9T9)CPU1Fs7rZ?~AccpE2Bzkl*M{_|zS@=?Pqr147{VKl~qztQnwHtvEkL}QFzOu7=}3*8tR zS05mMLJs - -#include "qtermwidget.h" - - -QTermWidgetPlugin::QTermWidgetPlugin(QObject *parent) - : QObject(parent), initialized(false) -{ - Q_INIT_RESOURCE(qtermwidgetplugin); -} - - -QTermWidgetPlugin::~QTermWidgetPlugin() -{ -} - - -void QTermWidgetPlugin::initialize(QDesignerFormEditorInterface * /* core */) -{ - initialized = true; -} - - -bool QTermWidgetPlugin::isInitialized() const -{ - return initialized; -} - - -QWidget *QTermWidgetPlugin::createWidget(QWidget *parent) -{ - return new QTermWidget(0, parent); -} - - -QString QTermWidgetPlugin::name() const -{ - return "QTermWidget"; -} - - -QString QTermWidgetPlugin::group() const -{ - return "Input Widgets"; -} - - -QIcon QTermWidgetPlugin::icon() const -{ - return QIcon(":qtermwidget.png"); -} - - -QString QTermWidgetPlugin::toolTip() const -{ - return "QTermWidget component/widget"; -} - - -QString QTermWidgetPlugin::whatsThis() const -{ - return "Qt based terminal emulator"; -} - - -bool QTermWidgetPlugin::isContainer() const -{ - return false; -} - - -QString QTermWidgetPlugin::domXml() const -{ - return "\n" - " \n" - " \n" - " 0\n" - " 0\n" - " 400\n" - " 200\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n"; -} - - -QString QTermWidgetPlugin::includeFile() const -{ - return "qtermwidget.h"; -} - - -Q_EXPORT_PLUGIN2(QTermWidgetPlugin, QTermWidgetPlugin) diff --git a/lib/designer/qtermwidgetplugin.h b/lib/designer/qtermwidgetplugin.h deleted file mode 100644 index 8a216de..0000000 --- a/lib/designer/qtermwidgetplugin.h +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef QTERMWIDGETPLUGIN_H -#define QTERMWIDGETPLUGIN_H - -#include - - -class QTermWidgetPlugin : public QObject, public QDesignerCustomWidgetInterface -{ - Q_OBJECT - Q_INTERFACES(QDesignerCustomWidgetInterface) - -public: - QTermWidgetPlugin(QObject *parent = 0); - virtual ~QTermWidgetPlugin(); - - bool isContainer() const; - bool isInitialized() const; - QIcon icon() const; - QString domXml() const; - QString group() const; - QString includeFile() const; - QString name() const; - QString toolTip() const; - QString whatsThis() const; - QWidget *createWidget(QWidget *parent); - void initialize(QDesignerFormEditorInterface *core); - -private: - bool initialized; -}; - -#endif diff --git a/lib/designer/qtermwidgetplugin.qrc b/lib/designer/qtermwidgetplugin.qrc deleted file mode 100644 index fbf222c..0000000 --- a/lib/designer/qtermwidgetplugin.qrc +++ /dev/null @@ -1,6 +0,0 @@ - - - - qtermwidget.png - - diff --git a/lib/qtermwidget.cpp b/lib/qtermwidget.cpp index 9245a16..126025a 100644 --- a/lib/qtermwidget.cpp +++ b/lib/qtermwidget.cpp @@ -299,6 +299,7 @@ void QTermWidget::init(int startnow) m_impl->m_session->addView(m_impl->m_terminalDisplay); + connect(m_impl->m_session, SIGNAL(resizeRequest(QSize)), this, SLOT(setSize(QSize))); connect(m_impl->m_session, SIGNAL(finished()), this, SLOT(sessionFinished())); } @@ -431,11 +432,11 @@ QStringList QTermWidget::availableColorSchemes() return ret; } -void QTermWidget::setSize(int h, int v) +void QTermWidget::setSize(const QSize &size) { if (!m_impl->m_terminalDisplay) return; - m_impl->m_terminalDisplay->setSize(h, v); + m_impl->m_terminalDisplay->setSize(size.width(), size.height()); } void QTermWidget::setHistorySize(int lines) diff --git a/lib/qtermwidget.h b/lib/qtermwidget.h index d8a1e46..f442b16 100644 --- a/lib/qtermwidget.h +++ b/lib/qtermwidget.h @@ -99,9 +99,6 @@ public: void setColorScheme(const QString & name); static QStringList availableColorSchemes(); - //set size - void setSize(int h, int v); - // History size for scrolling void setHistorySize(int lines); //infinite if lines < 0 @@ -216,6 +213,9 @@ public slots: void zoomIn(); void zoomOut(); + // Set size + void setSize(const QSize &); + /*! Set named key binding for given widget */ void setKeyBindings(const QString & kb); diff --git a/pyqt4/README b/pyqt4/README deleted file mode 100644 index b3995ce..0000000 --- a/pyqt4/README +++ /dev/null @@ -1,23 +0,0 @@ -PyQt4 Bindings for QTermWidget - -By Piotr "Riklaunim" Maliński , - Alexander Slesarev - -PyQt4 QTermWidget Bindings License: GPL3 - -INSTALL: -1. Download QTermWidget from http://qtermwidget.sourceforge.net/. -2. Compile and install it: - $ cmake . - $ make - $ sudo make install -If `make install` command will not work just copy the qtermwidget.so* files to /usr/lib directory. -3. Install PyQt4 and PyQt4-devel if not yet installed. -4. Configure, compile and install bindings. Execute in terminal in the qtermwidget bindings folder: - -$ python config.py -$ make -$ sudo make install - -5. You can run ./test.py to test the installed module. - diff --git a/pyqt4/config.py b/pyqt4/config.py deleted file mode 100755 index b5eb76e..0000000 --- a/pyqt4/config.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# PyQt4 bindings for th QTermWidget project. -# -# Copyright (C) 2009 Piotr "Riklaunim" Maliński , -# Alexander Slesarev -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -import os -import sipconfig -from PyQt4 import pyqtconfig - -# The name of the SIP build file generated by SIP and used by the build -# system. -build_file = "qtermwidget.sbf" - -# Get the PyQt configuration information. -config = pyqtconfig.Configuration() - -# Get the extra SIP flags needed by the imported qt module. Note that -# this normally only includes those flags (-x and -t) that relate to SIP's -# versioning system. -qt_sip_flags = config.pyqt_sip_flags - -# Run SIP to generate the code. Note that we tell SIP where to find the qt -# module's specification files using the -I flag. -os.system(" ".join([config.sip_bin, "-c", ".", "-b", build_file, "-I", - config.pyqt_sip_dir, qt_sip_flags, "qtermwidget.sip"])) - -# We are going to install the SIP specification file for this module and -# its configuration module. -installs = [] - -installs.append(["qtermwidget.sip", os.path.join(config.default_sip_dir, - "qtermwidget")]) - -installs.append(["qtermwidgetconfig.py", config.default_mod_dir]) - -# Create the Makefile. The QtModuleMakefile class provided by the -# pyqtconfig module takes care of all the extra preprocessor, compiler and -# linker flags needed by the Qt library. -makefile = pyqtconfig.QtGuiModuleMakefile( - configuration = config, - build_file = build_file, - installs = installs) - -# Add the library we are wrapping. The name doesn't include any platform -# specific prefixes or extensions (e.g. the "lib" prefix on UNIX, or the -# ".dll" extension on Windows). -makefile.extra_lib_dirs.append("..") -makefile.extra_libs = ["qtermwidget4"] - -# Generate the Makefile itself. -makefile.generate() - -# Now we create the configuration module. This is done by merging a Python -# dictionary (whose values are normally determined dynamically) with a -# (static) template. -content = { - # Publish where the SIP specifications for this module will be - # installed. - "qtermwidget_sip_dir": config.default_sip_dir, - - # Publish the set of SIP flags needed by this module. As these are the - # same flags needed by the qt module we could leave it out, but this - # allows us to change the flags at a later date without breaking - # scripts that import the configuration module. - "qtermwidget_sip_flags": qt_sip_flags} - -# This creates the qtermwidgetconfig.py module from the qtermwidgetconfig.py.in -# template and the dictionary. -sipconfig.create_config_module("qtermwidgetconfig.py", "config.py.in", content) diff --git a/pyqt4/config.py.in b/pyqt4/config.py.in deleted file mode 100644 index e69de29..0000000 diff --git a/pyqt4/qtermwidget.sip b/pyqt4/qtermwidget.sip deleted file mode 100644 index f57ccc9..0000000 --- a/pyqt4/qtermwidget.sip +++ /dev/null @@ -1,83 +0,0 @@ -%Module QTermWidget 0 - -%Import QtCore/QtCoremod.sip -%Import QtGui/QtGuimod.sip - - -class QTermWidget : QWidget { - -%TypeHeaderCode -#include <../lib/qtermwidget.h> -%End - -public: - enum ScrollBarPosition - { - NoScrollBar=0, - ScrollBarLeft=1, - ScrollBarRight=2 - }; - - QTermWidget(int startnow = 1, QWidget *parent = 0); - ~QTermWidget(); - - QSize sizeHint() const; - void startShellProgram(); - int getShellPID(); - void changeDir(const QString & dir); - void setTerminalFont(QFont &font); - QFont getTerminalFont(); - void setTerminalOpacity(qreal level); - void setEnvironment(const QStringList & environment); - void setShellProgram(const QString & progname); - void setWorkingDirectory(const QString & dir); - QString workingDirectory(); - void setArgs(QStringList &args); - void setTextCodec(QTextCodec *codec); - void setColorScheme(const QString & name); - static QStringList availableColorSchemes(); - void setSize(int h, int v); - void setHistorySize(int lines); - void setScrollBarPosition(ScrollBarPosition); - void scrollToEnd(); - void sendText(QString &text); - void setFlowControlEnabled(bool enabled); - bool flowControlEnabled(); - void setFlowControlWarningEnabled(bool enabled); - static QStringList availableKeyBindings(); - QString keyBindings(); - void setMotionAfterPasting(int); - int historyLinesCount(); - int screenColumnsCount(); - void setSelectionStart(int row, int column); - void setSelectionEnd(int row, int column); - void getSelectionStart(int& row, int& column); - void getSelectionEnd(int& row, int& column); - QString selectedText(bool preserveLineBreaks = true); - void setMonitorActivity(bool); - void setMonitorSilence(bool); - void setSilenceTimeout(int seconds); -signals: - void finished(); - void copyAvailable(bool); - void termGetFocus(); - void termLostFocus(); - void termKeyPressed(QKeyEvent *); - void urlActivated(const QUrl&); - void bell(const QString& message); - void activity(); - void silence(); -public slots: - void copyClipboard(); - void pasteClipboard(); - void pasteSelection(); - void zoomIn(); - void zoomOut(); - void setKeyBindings(const QString & kb); - void clear(); - void toggleShowSearchBar(); -protected: - void resizeEvent(QResizeEvent *e); -private: - void *createTermWidget(int startnow, void *parent); -}; diff --git a/pyqt4/qtermwidgetconfig.py b/pyqt4/qtermwidgetconfig.py deleted file mode 100644 index e69de29..0000000 diff --git a/pyqt4/test.py b/pyqt4/test.py deleted file mode 100755 index 59bfb10..0000000 --- a/pyqt4/test.py +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# PyQt4 bindings for th QTermWidget project. -# -# Copyright (C) 2009 Piotr "Riklaunim" Maliński , -# Alexander Slesarev -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -import sys, signal -from PyQt4 import Qt -from PyQt4.QtCore import SIGNAL, SLOT -import QTermWidget - -signal.signal(signal.SIGINT, signal.SIG_DFL) - -a = Qt.QApplication(sys.argv) -w = QTermWidget.QTermWidget() - -w.show() -w.connect(w, SIGNAL('finished()'), a, SLOT('quit()')) -a.exec_() diff --git a/qtermwidget.spec b/qtermwidget.spec index a7c023c..94d95d7 100644 --- a/qtermwidget.spec +++ b/qtermwidget.spec @@ -50,8 +50,7 @@ Summary: Qt4 terminal widget - development package Group: "Development/Libraries/C and C++" Requires: %{libname} %description devel -Development package for QTermWidget. Contains headers, dev-libs, -and Qt4 designer plugin. +Development package for QTermWidget. Contains headers and dev-libs. %prep %setup @@ -82,7 +81,7 @@ ldconfig %files -n %{libname} %defattr(-,root,root,-) -%doc AUTHORS COPYING Changelog INSTALL README +%doc AUTHORS LICENSE Changelog INSTALL README %{_libdir}/lib%{name}.so.%{version} %{_datadir}/%{name} %{_datadir}/%{name}/* @@ -92,7 +91,6 @@ ldconfig %{_includedir}/*.h %{_libdir}/*.so %{_libdir}/*.so.0 -%{_libdir}/qt4/plugins/designer/lib%{name}plugin.so %changelog * Mon Oct 29 2010 Petr Vanek 0.2