diff --git a/CHANGELOG b/CHANGELOG
index 7a03b26..bc00be6 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,53 @@
-qterminal-0.8.0 / 2017-10-21
+qterminal-0.9.0 / 2018-05-21
============================
+ * Bump version to 0.9.0
+ * Spanish translation update
+ * Now building out-of-source is mandatory
+ * Fix tab texts, especially for vertical tabs
+ * CMake: Prevent in-source builds
+ * Fixed some lxde mentions
+ * Sort color schemes alphabetically
+ * Support modifying $TERM and use xterm-256color by default
+ * Convert connect to the new syntax - termwidgetholder.cpp
+ * Convert connect to the new syntax - termwidget.cpp
+ * Convert connect to the new syntax - tabwidget.cpp
+ * Convert connect to the new syntax - propertiesdialog.cpp
+ * Convert connect to the new syntax - mainwindow.cpp, part 1
+ * Convert connect to the new syntax - fontdialog.cpp
+ * Convert connect to the new syntax - bookmarkswidget.cpp
+ * Fix tabbar
+ * Close tab on middle clicking
+ * A real shortcut editor
+ * Allow to change tab title color
+ * Make tab closing button configurable
+ * Make active tab text bold to make it more visible
+ * Fix a typo
+ * Fixes an error in the d3fa804 fix of #304
+ * new config: show terminal size on resize
+ * Fixes #304
+ * Fix bracket paste
+ * Fixes tabAt() when tabBar is not at north position
+ * Fix terminal menubar
+ * Drop Qt foreach
+ * Set QTERMWIDGET_MINIMUM_VERSION
+ * Fix a typo in qterminal_drop.desktop
+ * Fix tab icon display in proxy style.
+ * Switch tab eliding to ElideMiddle.
+ * Adjust default tab width to 500 and enable limit by default.
+ * Forward declare TabBar.
+ * Add option for configuring tab width limit.
+ * Add maximum tab width and proper text eliding.
+ * Enable bidi by default
+ * Fix UI
+ * Add RTL support button
+ * Update Catalan translation
+
+0.8.0 / 2017-10-21
+==================
+
+ * Release 0.8.0: Update changelog
* Set version to 0.8.0
* Update information on distribution package
* Added legacy font setting support
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b4de731..6e45aa1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,8 +5,9 @@ project(qterminal)
include(GNUInstallDirs)
# qterminal version
-set(STR_VERSION "0.8.0")
-set(LXQTBT_MINIMUM_VERSION "0.4.0")
+set(STR_VERSION "0.9.0")
+set(LXQTBT_MINIMUM_VERSION "0.5.0")
+set(QTERMWIDGET_MINIMUM_VERSION "0.9.0")
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
@@ -23,8 +24,10 @@ elseif(UNIX)
find_package(Qt5X11Extras REQUIRED)
find_package(Qt5DBus)
endif()
-find_package(QTermWidget5 REQUIRED)
+find_package(QTermWidget5 ${QTERMWIDGET_MINIMUM_VERSION} REQUIRED)
find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED)
+
+include(LXQtPreventInSourceBuilds)
include(LXQtTranslateTs)
include(LXQtCompilerSettings NO_POLICY_SCOPE)
message(STATUS "Qt version: ${Qt5Core_VERSION}")
@@ -42,13 +45,17 @@ elseif(UNIX)
message(STATUS "X11_X11_LIB: ${X11_X11_LIB}")
endif()
-add_definitions(-DSTR_VERSION=\"${STR_VERSION}\")
+add_definitions(
+ -DSTR_VERSION=\"${STR_VERSION}\"
+ -DQT_NO_FOREACH
+)
set(EXE_NAME qterminal)
set(QTERM_SRC
src/main.cpp
src/mainwindow.cpp
+ src/tabbar.cpp
src/tabwidget.cpp
src/termwidget.cpp
src/termwidgetholder.cpp
@@ -63,6 +70,7 @@ set(QTERM_SRC
set(QTERM_MOC_SRC
src/qterminalapp.h
src/mainwindow.h
+ src/tabbar.h
src/tabwidget.h
src/termwidget.h
src/termwidgetholder.h
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 14c7cf8..fb6604c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,10 +1,10 @@
# Bug reports
Please file bugs on the qterminal github tracker:
- https://github.com/lxde/qterminal/issues
+ https://github.com/lxqt/qterminal/issues
Please file qtermwidget-related bugs on the qtermwidget github tracker:
- https://github.com/lxde/qtermwidget/issues
+ https://github.com/lxqt/qtermwidget/issues
# Code contributions
diff --git a/README.md b/README.md
index bcb713b..e3e5389 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,9 @@
## Overview
-QTerminal is a lightweight Qt terminal emulator based on [QTermWidget](https://github.com/lxde/qtermwidget).
+QTerminal is a lightweight Qt terminal emulator based on [QTermWidget](https://github.com/lxqt/qtermwidget).
-It is maintained by the LXQt project but can be used independently from this desktop environment. The only bonds are [lxqt-build-tools](https://github.com/lxde/lxqt-build-tools) representing a build dependency and the localization files which were outsourced to LXQt repository [lxqt-l10n](https://github.com/lxde/lxqt-l10n).
+It is maintained by the LXQt project but can be used independently from this desktop environment. The only bonds are [lxqt-build-tools](https://github.com/lxqt/lxqt-build-tools) representing a build dependency and the localization files which were outsourced to LXQt repository [lxqt-l10n](https://github.com/lxqt/lxqt-l10n).
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.
@@ -12,10 +12,10 @@ This project is licensed under the terms of the [GPLv2](https://www.gnu.org/lice
### Compiling sources
-Dependencies are qtx11extras ≥ 5.2 and [QTermWidget](https://github.com/lxde/qtermwidget).
-In order to build CMake ≥ 3.0.2 and [lxqt-build-tools](https://github.com/lxde/lxqt-build-tools) are needed as well as optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository [lxqt-l10n](https://github.com/lxde/lxqt-l10n) so the corresponding dependencies are needed, too. Please refer to this repository's `README.md` for further information.
+Dependencies are qtx11extras ≥ 5.2 and [QTermWidget](https://github.com/lxqt/qtermwidget).
+In order to build CMake ≥ 3.0.2 and [lxqt-build-tools](https://github.com/lxqt/lxqt-build-tools) are needed as well as optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository [lxqt-l10n](https://github.com/lxqt/lxqt-l10n) so the corresponding dependencies are needed, too. Please refer to this repository's `README.md` for further information.
-Code configuration is handled by CMake. Building out of source is strongly recommended. CMake variable `CMAKE_INSTALL_PREFIX` will normally have to be set to `/usr`.
+Code configuration is handled by CMake. Building out of source is required. CMake variable `CMAKE_INSTALL_PREFIX` will normally have to be set to `/usr`.
To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
diff --git a/qterminal.appdata.xml b/qterminal.appdata.xml
index 61e8fb5..706d539 100644
--- a/qterminal.appdata.xml
+++ b/qterminal.appdata.xml
@@ -39,5 +39,5 @@
Find bar and highlighted match.
- https://github.com/lxde/qterminal
+ https://github.com/lxqt/qterminal
diff --git a/qterminal.desktop b/qterminal.desktop
index ca5ce8a..f0f9a5a 100644
--- a/qterminal.desktop
+++ b/qterminal.desktop
@@ -2,10 +2,13 @@
Name=QTerminal
Type=Application
GenericName=Terminal emulator
+GenericName[es]=Emulador de terminal
Comment=Terminal emulator
+Comment[ca]=Emulador de terminal
Comment[de]=Befehlszeile verwenden
Comment[el]=Προσομοιωτής τερματικού
+Comment[es]=Emulador de terminal
Comment[fr]=Terminal
Comment[lt]=Terminalo emuliatorius
Comment[pl]=Emulator terminala
@@ -33,7 +36,7 @@ Name[cs]=Vysouvací terminál
Name[da]=Terminal der ruller ned
Name[de]=Aufklapp-Terminal
Name[el]=Αναπτυσσόμενο τερματικό
-Name[es]=Terminal de menú desplegable
+Name[es]=Terminal desplegable
Name[et]=Lahtikeriv terminal
Name[fr]=Terminal déroulant
Name[hr]=Spuštajući terminal
diff --git a/qterminal.pro b/qterminal.pro
index 29cfc0d..1f3d0bf 100644
--- a/qterminal.pro
+++ b/qterminal.pro
@@ -8,7 +8,7 @@ CONFIG += link_pkgconfig \
PKGCONFIG += qtermwidget5
-DEFINES += STR_VERSION=\\\"0.7.0\\\"
+DEFINES += STR_VERSION=\\\"0.9.0\\\"
SOURCES += $$files(src/*.cpp)
HEADERS += $$files(src/*.h)
diff --git a/qterminal_drop.desktop b/qterminal_drop.desktop
index 5654540..08aeb87 100644
--- a/qterminal_drop.desktop
+++ b/qterminal_drop.desktop
@@ -6,8 +6,10 @@ Categories=Qt;System;TerminalEmulator;
Icon=utilities-terminal
Name=QTerminal drop down
+Name[ca]=QTerminal desplegable
Name[de]=QTerminal herabhängend
Name[el]=QTerminal αναπτυσσόμενο
+Name[es]=QTerminal desplegable
Name[lt]=QTerminal išskleidžiamasis
Name[pl]=QTerminal (tryb rozwijany)
Name[pt]=QTerminal suspenso
@@ -23,7 +25,7 @@ GenericName[da]=Terminal der ruller ned
GenericName[de]=Aufklapp-Terminal
GenericName[el]=Αναπτυσσόμενο τερματικό
GenericName[en_GB]=Drop-down Terminal
-GenericName[es]=Terminal de menú desplegable
+GenericName[es]=Terminal desplegable
GenericName[et]=Lahtikeriv terminal
GenericName[fr]=Terminal déroulant
GenericName[hr]=Spuštajući terminal
@@ -52,11 +54,13 @@ GenericName[zh_CN]=拉幕式终端
GenericName[zh_TW]=下拉式終端機
Comment=A drop-down terminal emulator.
+Comment[ca]=Un emulador de terminal desplegable.
Comment[de]=Ein Ausklapp-Terminalemulator.
Comment[el]=Ένας αναπτυσσόμενος προσομοιωτής τερματικού.
+Comment[es]=Un emulador de terminal desplegable.
Comment[lt]=Išskleidžiamasis terminalo emuliatorius.
Comment[pt]=Um emulador de terminal suspenso.
Comment[pt_BR]=Um emulador de terminal suspenso.
-Comment[ru]=Вападающий эмулятор терминала.
+Comment[ru]=Выпадающий эмулятор терминала.
Comment[ja]=ドロップダウン式 ターミナルエミュレータ
diff --git a/src/bookmarkswidget.cpp b/src/bookmarkswidget.cpp
index c7f46d1..2834760 100644
--- a/src/bookmarkswidget.cpp
+++ b/src/bookmarkswidget.cpp
@@ -123,7 +123,7 @@ public:
QDir d;
// standard $HOME subdirs
- foreach (QStandardPaths::StandardLocation i, locations)
+ for (const QStandardPaths::StandardLocation i : qAsConst(locations))
{
path = QStandardPaths::writableLocation(i);
if (!d.exists(path))
@@ -140,7 +140,8 @@ public:
// system env - include dirs in the tree
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
- foreach (const QString &i, env.keys())
+ const auto keys = env.keys();
+ for (const QString &i : keys)
{
path = env.value(i);
if (!d.exists(path) || !QFileInfo(path).isDir())
@@ -369,8 +370,8 @@ BookmarksWidget::BookmarksWidget(QWidget *parent)
treeView->setModel(m_model);
treeView->header()->hide();
- connect(treeView, SIGNAL(doubleClicked(QModelIndex)),
- this, SLOT(handleCommand(QModelIndex)));
+ connect(treeView, &QTreeView::doubleClicked,
+ this, &BookmarksWidget::handleCommand);
}
BookmarksWidget::~BookmarksWidget()
diff --git a/src/fontdialog.cpp b/src/fontdialog.cpp
index 30fc914..fe6b6f1 100644
--- a/src/fontdialog.cpp
+++ b/src/fontdialog.cpp
@@ -32,12 +32,12 @@ FontDialog::FontDialog(const QFont &f)
sizeSpinBox->setValue(f.pointSize());
- setFontSample();
+ setFontSample(f);
- connect(fontComboBox, SIGNAL(currentFontChanged(QFont)),
- this, SLOT(setFontSample()));
- connect(sizeSpinBox, SIGNAL(valueChanged(int)),
- this, SLOT(setFontSample()));
+ connect(fontComboBox, &QFontComboBox::currentFontChanged,
+ this, &FontDialog::setFontSample);
+ connect(sizeSpinBox, static_cast(&QSpinBox::valueChanged),
+ this, &FontDialog::setFontSize);
}
QFont FontDialog::getFont()
@@ -47,9 +47,16 @@ QFont FontDialog::getFont()
return f;
}
-void FontDialog::setFontSample()
+void FontDialog::setFontSample(const QFont &f)
{
- QFont f = getFont();
+ previewLabel->setFont(f);
+ QString sample("%1 %2 pt");
+ previewLabel->setText(sample.arg(f.family()).arg(f.pointSize()));
+}
+
+void FontDialog::setFontSize()
+{
+ const QFont &f = getFont();
previewLabel->setFont(f);
QString sample("%1 %2 pt");
previewLabel->setText(sample.arg(f.family()).arg(f.pointSize()));
diff --git a/src/fontdialog.h b/src/fontdialog.h
index 9441e3f..19dc67c 100644
--- a/src/fontdialog.h
+++ b/src/fontdialog.h
@@ -32,7 +32,8 @@ public:
QFont getFont();
private slots:
- void setFontSample();
+ void setFontSample(const QFont &f);
+ void setFontSize();
};
diff --git a/src/forms/propertiesdialog.ui b/src/forms/propertiesdialog.ui
index 759549f..a7b0c35 100644
--- a/src/forms/propertiesdialog.ui
+++ b/src/forms/propertiesdialog.ui
@@ -6,8 +6,8 @@
0
0
- 746
- 634
+ 952
+ 947
@@ -114,7 +114,7 @@
- -
+
-
Start with preset:
@@ -130,14 +130,14 @@
-
- -
+
-
Show a border around the current terminal
- -
+
-
Terminal transparency
@@ -147,7 +147,7 @@
- -
+
-
Application transparency
@@ -157,7 +157,7 @@
- -
+
-
-
@@ -181,7 +181,7 @@
- -
+
-
%
@@ -274,7 +274,7 @@
-
- -
+
-
%
@@ -300,7 +300,7 @@
- -
+
-
Qt::Vertical
@@ -330,28 +330,35 @@
- -
+
-
Change window title based on current terminal
- -
+
-
Change window icon based on current terminal
- -
+
-
+
+
+ Enable bi-directional text support
+
+
+
+ -
Background image:
- -
+
-
-
@@ -365,6 +372,43 @@
+ -
+
+
+ Show terminal size on resize
+
+
+
+ -
+
+
+ Limit tab width:
+
+
+
+ -
+
+
+ false
+
+
+ px
+
+
+ 1000
+
+
+
+ -
+
+
+ Show close button on each tab
+
+
+ false
+
+
+
@@ -450,7 +494,7 @@
- -
+
-
Qt::Vertical
@@ -508,6 +552,33 @@
+ -
+
+
+ Default $TERM
+
+
+
+ -
+
+
+ true
+
+
+ 1
+
+
-
+
+ xterm
+
+
+ -
+
+ xterm-256color
+
+
+
+
@@ -727,6 +798,7 @@
highlightCurrentCheckBox
changeWindowTitleCheckBox
changeWindowIconCheckBox
+ enabledBidiSupportCheckBox
appTransparencyBox
termTransparencyBox
backgroundImageLineEdit
@@ -801,5 +873,21 @@
+
+ limitTabWidthCheckBox
+ toggled(bool)
+ limitTabWidthSpinBox
+ setEnabled(bool)
+
+
+ 350
+ 275
+
+
+ 618
+ 275
+
+
+
diff --git a/src/forms/qterminal.ui b/src/forms/qterminal.ui
index 3e06edb..2ecb45b 100644
--- a/src/forms/qterminal.ui
+++ b/src/forms/qterminal.ui
@@ -13,9 +13,6 @@
MainWindow
-
- true
-
@@ -57,9 +54,6 @@
26
-
- true
-