Preparing the upcoming release, switch to experimental Added build dependencies: - gcc (>= 4:6), - g++ (>= 4:6), - liblxqt0-dev (>= 0.10.96~), Rework symbols (Closes: #831083) Fixed VCS fields, using plain /git/ Fixed copyright Format field, using https Exported LC_ALL=C.UTF-8, make builds reproducible Set CMAKE_BUILD_TYPE=RelWithDebInfo
parent
f8568ee0eb
commit
3033e27bf3
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,15 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
#export DH_VERBOSE=1
|
# export DH_VERBOSE=1
|
||||||
|
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh ${@} --buildsystem cmake \
|
dh ${@} --buildsystem cmake \
|
||||||
--parallel \
|
--parallel\
|
||||||
--fail-missing
|
--fail-missing
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
dh_auto_configure -- \
|
||||||
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
PyQt5 Bindings for QTermWidget
|
||||||
|
==============================
|
||||||
|
|
||||||
|
|
||||||
|
INSTALL:
|
||||||
|
------------
|
||||||
|
####1. Download QTermWidget -> https://github.com/lxde/qtermwidget
|
||||||
|
|
||||||
|
####2. Compile and install it:
|
||||||
|
$ mkdir build && cd build
|
||||||
|
$ cmake ..
|
||||||
|
$ make
|
||||||
|
$ sudo make install
|
||||||
|
If `make install` command will not work just copy the `qtermwidget.so*` files to /usr/lib directory.
|
||||||
|
####3. Install PyQt5 and PyQt5-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.
|
||||||
|
|
||||||
|
|
||||||
|
ABOUT:
|
||||||
|
---------
|
||||||
|
Based on previous PyQt4 bindings by:
|
||||||
|
- Piotr "Riklaunim" Maliński <riklaunim@gmail.com>,
|
||||||
|
- Alexander Slesarev <alex.slesarev@gmail.com>
|
||||||
|
|
||||||
|
|
||||||
|
PyQt5 QTermWidget Bindings
|
||||||
|
License: GPL3
|
||||||
|
|
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# PyQt4 bindings for th QTermWidget project.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Piotr "Riklaunim" Maliński <riklaunim@gmail.com>,
|
||||||
|
# Alexander Slesarev <alex.slesarev@gmail.com>
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
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)
|
@ -0,0 +1,93 @@
|
|||||||
|
import os
|
||||||
|
import sipconfig
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
import site
|
||||||
|
import pprint
|
||||||
|
from distutils import sysconfig
|
||||||
|
import pyqtconfig
|
||||||
|
from PyQt5 import QtCore
|
||||||
|
import PyQt5
|
||||||
|
|
||||||
|
class Configuration(sipconfig.Configuration):
|
||||||
|
"""The class that represents PyQt configuration values.
|
||||||
|
"""
|
||||||
|
def getEnv(self,name, default):
|
||||||
|
return os.environ.get(name) or default
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
qtconfig = subprocess.check_output(["/usr/lib64/qt5/bin/qmake", "-query"], universal_newlines=True)
|
||||||
|
qtconfig = dict(x.split(":", 1) for x in qtconfig.splitlines())
|
||||||
|
|
||||||
|
self.pyQtIncludePath = self.getEnv('PYQT_INCLUDE_PATH','/usr/share/sip/PyQt5' )
|
||||||
|
|
||||||
|
pyqtconfig = {
|
||||||
|
"pyqt_config_args": "--confirm-license -v "+str(self.pyQtIncludePath)+" --qsci-api -q /usr/lib64/qt5/bin/qmake",
|
||||||
|
"pyqt_version": QtCore.PYQT_VERSION,
|
||||||
|
"pyqt_version_str": QtCore.PYQT_VERSION_STR,
|
||||||
|
"pyqt_bin_dir": PyQt5.__path__[0],
|
||||||
|
"pyqt_mod_dir": PyQt5.__path__[0],
|
||||||
|
"pyqt_sip_dir": str(self.pyQtIncludePath),
|
||||||
|
"pyqt_modules": "QtCore QtGui QtWidgets", #... and many more
|
||||||
|
"pyqt_sip_flags": QtCore.PYQT_CONFIGURATION['sip_flags'],
|
||||||
|
"qt_version": QtCore.QT_VERSION,
|
||||||
|
"qt_edition": "free",
|
||||||
|
"qt_winconfig": "shared",
|
||||||
|
"qt_framework": 0,
|
||||||
|
"qt_threaded": 1,
|
||||||
|
"qt_dir": qtconfig['QT_INSTALL_PREFIX'],
|
||||||
|
"qt_data_dir": qtconfig['QT_INSTALL_DATA'],
|
||||||
|
"qt_archdata_dir": qtconfig['QT_INSTALL_DATA'],
|
||||||
|
"qt_inc_dir": qtconfig['QT_INSTALL_HEADERS'],
|
||||||
|
"qt_lib_dir": qtconfig['QT_INSTALL_LIBS']
|
||||||
|
}
|
||||||
|
|
||||||
|
macros = sipconfig._default_macros.copy()
|
||||||
|
macros['INCDIR_QT'] = qtconfig['QT_INSTALL_HEADERS']
|
||||||
|
macros['LIBDIR_QT'] = qtconfig['QT_INSTALL_LIBS']
|
||||||
|
macros['MOC'] = os.path.join(qtconfig['QT_INSTALL_BINS'], 'moc')
|
||||||
|
|
||||||
|
sipconfig.Configuration.__init__(self, [pyqtconfig])
|
||||||
|
self.set_build_macros(macros)
|
||||||
|
|
||||||
|
|
||||||
|
## The name of the SIP build file generated by SIP and used by the build system.
|
||||||
|
build_file = "qtermwidget.sbf"
|
||||||
|
|
||||||
|
# Get the SIP configuration information.
|
||||||
|
config = Configuration()
|
||||||
|
|
||||||
|
# Run SIP to generate the build_file
|
||||||
|
os.system(" ".join([config.sip_bin, '-I' , str(config.pyQtIncludePath), str(config.pyqt_sip_flags), "-b", build_file,"-o", "-c", ". " " qtermwidget.sip"]))
|
||||||
|
|
||||||
|
installs = []
|
||||||
|
installs.append(["qtermwidget.sip", os.path.join(config.pyqt_sip_dir,"qtermwidget")])
|
||||||
|
installs.append(["qtermwidgetconfig.py", config.pyqt_mod_dir])
|
||||||
|
|
||||||
|
makefile = sipconfig.SIPModuleMakefile( configuration = config, build_file = build_file, installs = installs, qt=["QtCore" ,"QtGui", "QtWidgets"] )
|
||||||
|
|
||||||
|
# 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("../lib/")
|
||||||
|
makefile.extra_lib_dirs.append("..")
|
||||||
|
makefile.extra_libs = ["qtermwidget5"]
|
||||||
|
|
||||||
|
# Generate the Makefile itself.
|
||||||
|
makefile.generate()
|
||||||
|
|
||||||
|
content = {
|
||||||
|
# Publish where the SIP specifications for this module will be
|
||||||
|
# installed.
|
||||||
|
"qtermwidget_sip_dir": config.pyqt_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": config.pyqt_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)
|
@ -0,0 +1,86 @@
|
|||||||
|
%Module QTermWidget
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%Import QtGui/QtGuimod.sip
|
||||||
|
%Import QtCore/QtCoremod.sip
|
||||||
|
%Import QtWidgets/QtWidgetsmod.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 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();
|
||||||
|
void setSize(const QSize&);
|
||||||
|
protected:
|
||||||
|
void resizeEvent(QResizeEvent *e);
|
||||||
|
private:
|
||||||
|
void *createTermWidget(int startnow, void *parent);
|
||||||
|
};
|
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# PyQt4 bindings for th QTermWidget project.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Piotr "Riklaunim" Maliński <riklaunim@gmail.com>,
|
||||||
|
# Alexander Slesarev <alex.slesarev@gmail.com>
|
||||||
|
#
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import sys, signal
|
||||||
|
from PyQt5 import QtCore,QtWidgets
|
||||||
|
|
||||||
|
import QTermWidget
|
||||||
|
|
||||||
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
|
a = QtWidgets.QApplication(sys.argv)
|
||||||
|
|
||||||
|
w = QTermWidget.QTermWidget()
|
||||||
|
w.finished.connect(a.quit)
|
||||||
|
w.show()
|
||||||
|
|
||||||
|
a.exec_()
|
Loading…
Reference in new issue