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/debian/changelog b/debian/changelog index 8c9849c..05cc9b9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +qtermwidget (0.6.0+20151225-1) unstable; urgency=medium + + * Cherry-picking upstream version 0.6.0+201501225. + * Cleaned up debian/control + * Cleaned up debian/copyright, remove GPL-3+ because it is not used + in the project any longer, relicense debian to GPL-2+ + * Fixed symbols + * Fixed LDFLAGS + * Removed obsoleted overrides from debian/rules + + -- Alf Gaida Sun, 27 Dec 2015 13:34:09 +0100 + qtermwidget (0.6.0+20150709-4) unstable; urgency=medium * Merge to unstable. diff --git a/debian/control b/debian/control index 312a69e..367dd73 100644 --- a/debian/control +++ b/debian/control @@ -29,8 +29,7 @@ Description: qt terminal widgets Package: libqtermwidget5-0-dev Architecture: any Section: libdevel -Depends: ${shlibs:Depends}, - ${misc:Depends}, +Depends: ${misc:Depends}, libqtermwidget5-0 (= ${binary:Version}), Description: qt terminal widgets development files Unicode-enabled, embeddable QT widget for using as a built-in console @@ -43,8 +42,7 @@ Description: qt terminal widgets development files Package: qtermwidget5-data Architecture: all -Depends: ${shlibs:Depends}, - ${misc:Depends}, +Depends: ${misc:Depends}, Description: qt terminal widgets data files This package install data files, such as keyboards layouts, color shemes and some others indep arch files usefully for terminal qt based diff --git a/debian/copyright b/debian/copyright index f7e62e9..d300fbc 100644 --- a/debian/copyright +++ b/debian/copyright @@ -18,18 +18,13 @@ Copyright: Copyright (C) 2007 Oswald Buddenhagen Copyright (C) 2008 e_k (e_k@users.sourceforge.net) License: LGPL-2+ -Files: pyqt4/* -Copyright: 2008-2009 Piotr "Riklaunim" Malinski , - 2008 Alexander Slesarev -License: GPL-3+ - Files: debian/* Copyright: 2012-2015 Alf Gaida 2012 Thorsten Wohlfarth 2012 Henson Sturgill 2015 ChangZhuo Chen (陳昌倬) 2015 Andrew Lee (李健秋) -License: GPL-3+ +License: GPL-2+ License: LGPL-2+ This library is free software; you can redistribute it and/or modify it @@ -66,20 +61,3 @@ License: GPL-2+ . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". - -License: GPL-3+ - 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 package 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 . - . - On Debian systems, the complete text of the GNU General Public - License version 3 can be found in "/usr/share/common-licenses/GPL-3". diff --git a/debian/docs b/debian/docs index 6f12db5..0b6e0f3 100644 --- a/debian/docs +++ b/debian/docs @@ -1,2 +1,2 @@ AUTHORS -README +README.md diff --git a/debian/libqtermwidget5-0.symbols b/debian/libqtermwidget5-0.symbols index cb46462..5e3254c 100644 --- a/debian/libqtermwidget5-0.symbols +++ b/debian/libqtermwidget5-0.symbols @@ -22,8 +22,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::AutoScrollHandler::timerEvent(QTimerEvent*)@Base" 0.6.0+20150709 (c++)"Konsole::base_color_table@Base" 0.6.0+20150709 (c++)"Konsole::BlockArray::append(Konsole::Block*)@Base" 0.6.0+20150709 - (c++)"Konsole::BlockArray::BlockArray()@Base" 0.6.0+20150709 (c++)"Konsole::BlockArray::~BlockArray()@Base" 0.6.0+20150709 + (c++)"Konsole::BlockArray::BlockArray()@Base" 0.6.0+20150709 (c++)"Konsole::BlockArray::increaseBuffer()@Base" 0.6.0+20150709 (c++)"Konsole::BlockArray::lastBlock() const@Base" 0.6.0+20150709 (c++)"Konsole::BlockArray::newBlock()@Base" 0.6.0+20150709 @@ -32,8 +32,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::ColorScheme::colorEntry(int, unsigned int) const@Base" 0.6.0+20150709 (c++)"Konsole::ColorScheme::colorNameForIndex(int)@Base" 0.6.0+20150709 (c++)"Konsole::ColorScheme::colorNames@Base" 0.6.0+20150709 - (c++)"Konsole::ColorScheme::ColorScheme()@Base" 0.6.0+20150709 (c++)"Konsole::ColorScheme::~ColorScheme()@Base" 0.6.0+20150709 + (c++)"Konsole::ColorScheme::ColorScheme()@Base" 0.6.0+20150709 (c++)"Konsole::ColorScheme::ColorScheme(Konsole::ColorScheme const&)@Base" 0.6.0+20150709 (c++)"Konsole::ColorScheme::colorTable() const@Base" 0.6.0+20150709 (c++)"Konsole::ColorScheme::defaultTable@Base" 0.6.0+20150709 @@ -42,8 +42,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::ColorScheme::getColorTable(Konsole::ColorEntry*, unsigned int) const@Base" 0.6.0+20150709 (c++)"Konsole::ColorScheme::hasDarkBackground() const@Base" 0.6.0+20150709 (c++)"Konsole::ColorSchemeManager::allColorSchemes()@Base" 0.6.0+20150709 - (c++)"Konsole::ColorSchemeManager::ColorSchemeManager()@Base" 0.6.0+20150709 (c++)"Konsole::ColorSchemeManager::~ColorSchemeManager()@Base" 0.6.0+20150709 + (c++)"Konsole::ColorSchemeManager::ColorSchemeManager()@Base" 0.6.0+20150709 (c++)"Konsole::ColorSchemeManager::_defaultColorScheme@Base" 0.6.0+20150709 (c++)"Konsole::ColorSchemeManager::defaultColorScheme() const@Base" 0.6.0+20150709 (c++)"Konsole::ColorSchemeManager::deleteColorScheme(QString const&)@Base" 0.6.0+20150709 @@ -104,13 +104,15 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::Emulation::changeTabTextColorRequest(int)@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::clearHistory()@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::createWindow()@Base" 0.6.0+20150709 - (c++)"Konsole::Emulation::Emulation()@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::~Emulation()@Base" 0.6.0+20150709 + (c++)"Konsole::Emulation::Emulation()@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::eraseChar() const@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::flowControlKeyPressed(bool)@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::history() const@Base" 0.6.0+20150709 + (c++)"Konsole::Emulation::imageResizeRequest(QSize const&)@Base" 0.6.0+20151225 (c++)"Konsole::Emulation::imageSizeChanged(int, int)@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::imageSize() const@Base" 0.6.0+20150709 + (c++)"Konsole::Emulation::imageSizeInitialized()@Base" 0.6.0+20151225 (c++)"Konsole::Emulation::keyBindings() const@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::lineCount() const@Base" 0.6.0+20150709 (c++)"Konsole::Emulation::lockPtyRequest(bool)@Base" 0.6.0+20150709 @@ -144,8 +146,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::ExtendedCharTable::createExtendedChar(unsigned short*, unsigned short)@Base" 0.6.0+20150709 (c++)"Konsole::ExtendedCharTable::extendedCharHash(unsigned short*, unsigned short) const@Base" 0.6.0+20150709 (c++)"Konsole::ExtendedCharTable::extendedCharMatch(unsigned short, unsigned short*, unsigned short) const@Base" 0.6.0+20150709 - (c++)"Konsole::ExtendedCharTable::ExtendedCharTable()@Base" 0.6.0+20150709 (c++)"Konsole::ExtendedCharTable::~ExtendedCharTable()@Base" 0.6.0+20150709 + (c++)"Konsole::ExtendedCharTable::ExtendedCharTable()@Base" 0.6.0+20150709 (c++)"Konsole::ExtendedCharTable::instance@Base" 0.6.0+20150709 (c++)"Konsole::ExtendedCharTable::lookupExtendedChar(unsigned short, unsigned short&) const@Base" 0.6.0+20150709 (c++)"Konsole::Filter::addHotSpot(Konsole::Filter::HotSpot*)@Base" 0.6.0+20150709 @@ -160,8 +162,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::FilterChain::removeFilter(Konsole::Filter*)@Base" 0.6.0+20150709 (c++)"Konsole::FilterChain::reset()@Base" 0.6.0+20150709 (c++)"Konsole::FilterChain::setBuffer(QString const*, QList const*)@Base" 0.6.0+20150709 - (c++)"Konsole::Filter::Filter()@Base" 0.6.0+20150709 (c++)"Konsole::Filter::~Filter()@Base" 0.6.0+20150709 + (c++)"Konsole::Filter::Filter()@Base" 0.6.0+20150709 (c++)"Konsole::Filter::getLineColumn(int, int&, int&)@Base" 0.6.0+20150709 (c++)"Konsole::Filter::HotSpot::actions()@Base" 0.6.0+20150709 (c++)"Konsole::Filter::hotSpotAt(int, int) const@Base" 0.6.0+20150709 @@ -188,8 +190,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::Filter::setBuffer(QString const*, QList const*)@Base" 0.6.0+20150709 (c++)"Konsole::HistoryFile::add(unsigned char const*, int)@Base" 0.6.0+20150709 (c++)"Konsole::HistoryFile::get(unsigned char*, int, int)@Base" 0.6.0+20150709 - (c++)"Konsole::HistoryFile::HistoryFile()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryFile::~HistoryFile()@Base" 0.6.0+20150709 + (c++)"Konsole::HistoryFile::HistoryFile()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryFile::isMapped()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryFile::len()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryFile::map()@Base" 0.6.0+20150709 @@ -231,8 +233,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::HistoryScrollNone::getLineLen(int)@Base" 0.6.0+20150709 (c++)"Konsole::HistoryScrollNone::getLines()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryScrollNone::hasScroll()@Base" 0.6.0+20150709 - (c++)"Konsole::HistoryScrollNone::HistoryScrollNone()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryScrollNone::~HistoryScrollNone()@Base" 0.6.0+20150709 + (c++)"Konsole::HistoryScrollNone::HistoryScrollNone()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryScrollNone::isWrappedLine(int)@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeBlockArray::~HistoryTypeBlockArray()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeBlockArray::isEnabled() const@Base" 0.6.0+20150709 @@ -249,10 +251,10 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::HistoryTypeFile::isEnabled() const@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeFile::maximumLineCount() const@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeFile::scroll(Konsole::HistoryScroll*) const@Base" 0.6.0+20150709 - (c++)"Konsole::HistoryType::HistoryType()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryType::~HistoryType()@Base" 0.6.0+20150709 - (c++)"Konsole::HistoryTypeNone::HistoryTypeNone()@Base" 0.6.0+20150709 + (c++)"Konsole::HistoryType::HistoryType()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeNone::~HistoryTypeNone()@Base" 0.6.0+20150709 + (c++)"Konsole::HistoryTypeNone::HistoryTypeNone()@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeNone::isEnabled() const@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeNone::maximumLineCount() const@Base" 0.6.0+20150709 (c++)"Konsole::HistoryTypeNone::scroll(Konsole::HistoryScroll*) const@Base" 0.6.0+20150709 @@ -260,8 +262,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::HTMLDecoder::closeSpan(QString&)@Base" 0.6.0+20150709 (c++)"Konsole::HTMLDecoder::decodeLine(Konsole::Character const*, int, unsigned char)@Base" 0.6.0+20150709 (c++)"Konsole::HTMLDecoder::end()@Base" 0.6.0+20150709 - (c++)"Konsole::HTMLDecoder::HTMLDecoder()@Base" 0.6.0+20150709 (c++)"Konsole::HTMLDecoder::~HTMLDecoder()@Base" 0.6.0+20150709 + (c++)"Konsole::HTMLDecoder::HTMLDecoder()@Base" 0.6.0+20150709 (c++)"Konsole::HTMLDecoder::openSpan(QString&, QString const&)@Base" 0.6.0+20150709 (c++)"Konsole::HTMLDecoder::setColorTable(Konsole::ColorEntry const*)@Base" 0.6.0+20150709 (c++)"Konsole::KDE3ColorSchemeReader::KDE3ColorSchemeReader(QIODevice*)@Base" 0.6.0+20150709 @@ -542,7 +544,7 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::Session::lastSessionId@Base" 0.6.0+20150709 (c++)"Konsole::Session::metaObject() const@Base" 0.6.0+20150709 (c++)"Konsole::Session::monitorTimerDone()@Base" 0.6.0+20150709 - (c++)"Konsole::Session::onEmulationSizeChange(int, int)@Base" 0.6.0+20150709 + (c++)"Konsole::Session::onEmulationSizeChange(QSize)@Base" 0.6.0+20151225 (c++)"Konsole::Session::onReceiveBlock(char const*, int)@Base" 0.6.0+20150709 (c++)"Konsole::Session::onViewSizeChange(int, int)@Base" 0.6.0+20150709 (c++)"Konsole::Session::openUrlRequest(QString const&)@Base" 0.6.0+20150709 @@ -755,6 +757,8 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"Konsole::Vt102Emulation::clearEntireScreen()@Base" 0.6.0+20150709 (c++)"Konsole::Vt102Emulation::clearScreenAndSetColumns(int)@Base" 0.6.0+20150709 (c++)"Konsole::Vt102Emulation::eraseChar() const@Base" 0.6.0+20150709 + (c++)"Konsole::Vt102Emulation::focusGained()@Base" 0.6.0+20151225 + (c++)"Konsole::Vt102Emulation::focusLost()@Base" 0.6.0+20151225 (c++)"Konsole::Vt102Emulation::getMode(int)@Base" 0.6.0+20150709 (c++)"Konsole::Vt102Emulation::initTokenizer()@Base" 0.6.0+20150709 (c++)"Konsole::Vt102Emulation::metaObject() const@Base" 0.6.0+20150709 @@ -1032,7 +1036,7 @@ libqtermwidget5.so.0 libqtermwidget5-0 #MINVER# (c++)"QTermWidget::setSelectionStart(int, int)@Base" 0.6.0+20150709 (c++)"QTermWidget::setShellProgram(QString const&)@Base" 0.6.0+20150709 (c++)"QTermWidget::setSilenceTimeout(int)@Base" 0.6.0+20150709 - (c++)"QTermWidget::setSize(int, int)@Base" 0.6.0+20150709 + (c++)"QTermWidget::setSize(QSize const&)@Base" 0.6.0+20151225 (c++)"QTermWidget::setTerminalFont(QFont const&)@Base" 0.6.0+20150709 (c++)"QTermWidget::setTerminalOpacity(double)@Base" 0.6.0+20150709 (c++)"QTermWidget::setTextCodec(QTextCodec*)@Base" 0.6.0+20150709 diff --git a/debian/rules b/debian/rules index 17a7b3e..54d66fb 100755 --- a/debian/rules +++ b/debian/rules @@ -1,11 +1,10 @@ #!/usr/bin/make -f #export DH_VERBOSE=1 -%: - dh $@ --buildsystem cmake --parallel +export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed -override_dh_auto_configure: - dh_auto_configure -- -DUSE_QT5=ON -DBUILD_DESIGNER_PLUGIN=0 +%: + dh ${@} --buildsystem cmake \ + --parallel \ + --fail-missing -override_dh_install: - dh_install --list-missing --fail-missing 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 7b9abcc..0000000 Binary files a/lib/designer/qtermwidget.png and /dev/null differ diff --git a/lib/designer/qtermwidgetplugin.cpp b/lib/designer/qtermwidgetplugin.cpp deleted file mode 100644 index bb9ad91..0000000 --- a/lib/designer/qtermwidgetplugin.cpp +++ /dev/null @@ -1,102 +0,0 @@ - -#include "qtermwidgetplugin.h" - -#include - -#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