Compare commits

...

89 Commits

Author SHA1 Message Date
Aaron Rainbolt
6e911bcce0
Update build deps 2025-07-30 15:35:45 -05:00
Aaron Rainbolt
55ab463ff2
Bump standards-version 2025-07-30 15:34:49 -05:00
Aaron Rainbolt
14ef427c80
Update copyright file 2025-07-30 15:34:17 -05:00
Aaron Rainbolt
e09294e572
Bump version for new upstream release 2025-07-30 15:31:26 -05:00
47c17caed2 Update Standards-Version to 4.7.1, no changes needed. 2025-02-21 16:47:21 -06:00
cdb18d7ae1 Work around xorg recommending xterm before x-terminal-emulator by providing it. 2025-02-15 00:33:53 -06:00
9396fff3e5 No-change rebuild for lxqt-build-tools C++17 -> C++20. 2025-02-15 00:32:47 -06:00
b028db70ae Upload to Plucky 2024-11-15 15:34:45 -06:00
783db24866 Make Lintian happy 2024-11-05 16:14:37 -06:00
018efeb070 Bump build dependencies. 2024-11-05 16:04:42 -06:00
698df51e85 New upstream release. 2024-11-05 15:59:11 -06:00
Aaron Rainbolt
4531fdfac0 Release to Oracular 2024-08-15 16:28:20 -05:00
Aaron Rainbolt
d7eb27c8c8 Add LayerShellQt to build deps 2024-06-29 21:54:26 -05:00
Aaron Rainbolt
671030222c New upstream release, bump required qtermwidget version, PPA build 2024-06-29 21:44:25 -05:00
Aaron Rainbolt
dce365c1bc PPA upload 2024-06-26 13:42:58 -05:00
Aaron Rainbolt
f5666b24ae Adjust build deps 2024-06-26 13:22:47 -05:00
Aaron Rainbolt
99ffd7432e Bump Standards-Version 2024-06-26 13:20:06 -05:00
Aaron Rainbolt
123fb43ca3 Update copyright file 2024-06-26 13:18:43 -05:00
Aaron Rainbolt
4e2fbeee8d Bump version for new upstream release 2024-06-26 13:13:37 -05:00
fe63fb11a5 Bump build dependencies, for real this time. 2023-11-14 15:30:27 -06:00
613d52a8a9 Upload to Mantic. 2023-08-11 09:52:35 -05:00
d40a6b9af4 Bump build dependencies. 2023-08-10 16:44:43 -05:00
dfe1a482bd New upstream release. 2023-08-10 16:40:20 -05:00
Aaron Rainbolt
e723516819 Added 'Rules-Requires-Root: no'. 2023-02-17 13:01:17 -06:00
Aaron Rainbolt
cf7a85557a Overhauled copyright file. 2023-02-17 12:44:31 -06:00
Aaron Rainbolt
1be098b771 Removed override_dh_missing. 2023-02-17 12:05:22 -06:00
Aaron Rainbolt
bae21579ef Removed obsolete linker flag. 2023-02-17 12:04:53 -06:00
Aaron Rainbolt
984a893a9d Bumped Standards-Version. 2023-02-17 12:04:29 -06:00
Aaron Rainbolt
fe47a2163d Added myself and Simon to Uploaders. 2023-02-17 12:00:54 -06:00
Aaron Rainbolt
f672f735a5 Revert a sync from Debian.
This reverts commit 5ebf48f7bd2765fb56b3475cd4a643548baaf442.
2023-02-17 01:22:50 -06:00
Aaron Rainbolt
5ebf48f7bd Sync with archive. 2023-02-17 01:22:02 -06:00
aab17e7055 Upload to Lunar. 2022-11-18 19:15:59 -06:00
7609430d7a Bump build dependencies in debian/control. 2022-11-18 19:11:51 -06:00
d1a4e4cc5f Lubuntuify the package slightly, to make debhelper happy. 2022-11-18 19:11:22 -06:00
b2e157a047 Fix the watch file, for real this time. 2022-11-18 19:09:32 -06:00
77a0b74b3e New upstream release. 2022-11-18 19:09:00 -06:00
5621aaa761 Sync with Debian version 1.1.0-1. 2022-11-18 19:07:23 -06:00
930104ddd0 Upload to Kinetic. 2022-06-02 10:29:33 -05:00
1a17c133f7 Update install files for new metadata locations. 2022-06-02 10:29:13 -05:00
c3f0f5ea05 Remove reverse-applicable patches. 2022-06-02 10:11:14 -05:00
a95dac3ed5 Drop old Breaks/Replaces, since we're past the LTS. 2022-06-02 10:09:25 -05:00
4983c3a3aa Bump build dependencies. 2022-06-02 10:09:06 -05:00
e1d3c3cebc New upstream release. 2022-06-02 09:42:20 -05:00
apt-ghetto
83b4bd504b New upstream release of qterminal
Summary:
Packaged new upstream release 0.17.0 of qterminal
Updated changelog, control, copyright, qterminal.install
Updated and refreshed patch

Test Plan:
1. Wait for D133
2. Successfully built on https://launchpad.net/~apt-ghetto/+archive/ubuntu/ludev

Reviewers: kc2bez

Reviewed By: kc2bez

Differential Revision: https://phab.lubuntu.me/D134
2021-08-18 17:22:53 -04:00
Rik Mills
9d90f4c7ad release to hirsute 2021-02-21 22:39:41 +00:00
1c34441e17 Upload to Groovy. 2020-06-04 14:24:57 -05:00
6c8d582486 Update copyright. 2020-06-04 14:24:41 -05:00
5bf4f43c93 Migrate to debhelper-compat. 2020-05-01 00:30:08 -05:00
33d6bca85f Update Standards-version to 4.5.0, no changes needed. 2020-05-01 00:29:44 -05:00
fe33ec9840 Update LXQt build dependencies. 2020-05-01 00:29:32 -05:00
6c4c6f1d7b Update upstream signing key. 2020-05-01 00:29:05 -05:00
26d1451efa New upstream release. 2020-05-01 00:28:42 -05:00
Simon Quigley
6edf92bcb2 Upload to Disco. 2019-03-09 16:03:00 -06:00
Simon Quigley
7d87aef15b Drop fix-memory-api.patch, which causes crashes. 2019-03-09 13:26:33 -06:00
Simon Quigley
469e0ac106 Run wrap-and-sort. 2019-03-09 13:25:38 -06:00
Simon Quigley
a69413f14b New upstream release. 2019-03-09 13:25:32 -06:00
Simon Quigley
8fa029080a Upload to Disco. 2019-01-26 01:12:07 -06:00
Simon Quigley
987a4d758b appdata -> metainfo. 2019-01-26 01:09:34 -06:00
Simon Quigley
c97ee5dda1 Remove reverse-applicable patches. 2019-01-26 01:06:03 -06:00
Simon Quigley
1936ca5363 Add new qterminal-l10n package. 2019-01-26 01:04:46 -06:00
Simon Quigley
ddeb962e1e Bump build dependencies. 2019-01-26 01:03:29 -06:00
Simon Quigley
9be82c8608 Bump debhelper compat to 12, no changes needed. 2019-01-26 01:03:00 -06:00
Simon Quigley
82986be627 Bump Standards-version to 4.3.0, no changes needed. 2019-01-26 01:03:00 -06:00
Simon Quigley
a93035d81f New upstream release. 2019-01-26 01:02:51 -06:00
Simon Quigley
6b4d716e42 Upload to Cosmic. 2018-07-29 15:04:21 -05:00
Simon Quigley
661611c754 The preferences menu should never be larger than the screen (LP: #1784198). 2018-07-29 15:03:59 -05:00
Simon Quigley
1c3b18ff91 Upload to Cosmic. 2018-07-20 05:25:26 -05:00
Simon Quigley
6a643cd600 Remember the maximization state of the window (LP: #1754496). 2018-07-20 05:25:05 -05:00
Simon Quigley
32d383c8eb Upload to Cosmic. 2018-07-10 22:34:24 -05:00
Simon Quigley
47e03d9b35 Remove duplicate Uploaders. 2018-07-10 22:33:59 -05:00
Simon Quigley
c84b3f3e66 Add patch adapting to API changes in qtermwidget, and bump the dependencies accordingly. 2018-07-10 21:48:04 -05:00
Simon Quigley
b0fb91bb84 Update appdata.patch. 2018-07-10 21:41:27 -05:00
Simon Quigley
82183449ff Remove orig files. 2018-07-10 21:35:59 -05:00
Simon Quigley
13c3cb2a1c Update the maintainer and Vcs-* for maintaining in Lubuntu. 2018-07-10 21:35:20 -05:00
Alf Gaida
ec258e0be7 Fixed typo in long description.
Nice catch, thanks annadane <fjfj109@protonmail.com>
Close #901565
2018-06-16 00:52:44 +02:00
Alf Gaida
1a89bbe97a Cherry-picking upstream version 0.9.0.
* Bumped build dependency libqtermwidget5-0-dev to >= 0.9.0~
* Bumped build dependency lxqt-build-tools to >= 0.5.0~
* Removed not needed build dependency qtbase5-private-dev
* Refreshed metadata patch
2018-05-24 02:00:41 +02:00
Alf Gaida
9f9f06d3b8 Some updates in debian $foo
* Bumped compat to 11
* Bumped debhelper to >= 11~
* Bumped Standards to 4.1.4, no changes needed
* Changed VCS fields for salsa
* Changed Homepage, Source and watch to lxqt
* Bumped years in copyright
* Removed trailing whitespaces in changelog
2018-04-28 19:20:56 +02:00
Alf Gaida
114a57904f Cleanup debian/*
* Bumped Standards to 4.1.2, no changes needed
* Removed branch from VCS fields
* Removed debian/gbp.conf
2017-12-15 17:56:40 +01:00
Alf Gaida
67f7d4dcc8 Transition to unstable 2017-12-05 19:15:42 +01:00
Alf Gaida
25b040b6c4 Merge branch 'debian/experimental' into debian/sid 2017-12-05 17:31:40 +01:00
Alf Gaida
7732752a72 Cherry-picking upstream version 0.8.0. 2017-12-05 17:30:58 +01:00
Alf Gaida
a3a5a59b59 Patched appdata and metainfo-path again 2017-11-05 03:02:43 +01:00
Alf Gaida
1ae4ff16d1 Cherry-picking upstream version 0.8.0.
* Switched to experimental
* Bumped Standards to 4.1.1
* Bumped libqtermwidget5-0-dev to >= 0.8.0
* Added dependency libutf8proc-dev
* Bumped lxqt-build-tools to >= 0.4.0
* Fixed copyright
* Dropped appdata-patch, applied upstream
2017-10-23 01:47:30 +02:00
Alf Gaida
78aea4c018 Bumped Standards to 4.1.0 - no changes needed
* Fixed d/control with cme
* Close slowness bug, not reproducible anymore (Closes: #853220)
2017-09-06 17:55:40 +02:00
Alf Gaida
f6711e725f Fixed appdata format and location
* Bumped Standards to 4.0.0, no changes needed
* Bumpded copyright year
2017-08-13 21:54:16 +02:00
Alf Gaida
e4aaacf0d4 Cherry-picking upstream version 0.7.1
* Bumped minimum version libqtermwidget5-0-dev (>= 0.7.1)
* Removed build dependencies:
  - cmake
  - liblxqt0-dev
  - libqt5xdg-dev
  - qttools5-dev
  - qttools5-dev-tools
* Added build dependency lxqt-build-tools
2016-12-22 00:36:10 +01:00
Alf Gaida
e382624fd2 Cherry-picking upstream release 0.7.0
* Sync debian foo with experimental
* Bumped compat to 10
* Removed --parallel from rules, standard compat 10
* Bumped Standards to 3.9.8, no changes needed
* Bumped minimum version debhelper (>= 10)
* Bumped minimum version libqtermwidget5-0-dev (>= 0.7.0)
* Added build dependency libkf5windowsystem-dev
* Added build dependency liblxqt0-dev (>= 0.11.0)
* Added build dependency libqt5svg5-dev
* Added build dependency libqt5xdg-dev (>= 3.0.0)
* Added Recommends qterminal-l10n
* Fixed VCS fields, using https, plain /git/ and pointing to the right branch
* Fixed copyright Format field, using https
* Exported LC_ALL=C.UTF-8, make builds reproducible
* Added hardening options
* Added translation control to rules
* Set CMAKE_BUILD_TYPE=RelWithDebInfo
2016-10-18 20:59:44 +02:00
Alf Gaida
75a362d87a prepare 0.7.0
added current upstream signing key
fixed watch file
2016-09-24 06:36:16 +02:00
Alf Gaida
a35bdf82b1 Cherry-picking upstream version 0.6.1~102-g58f4f72.
Grabbing the latest upstream with included translations
Fixed debian/.gitignore
Added minimum versions for libqtermwidget5-0-dev (>= 0.6.1~)
Bump Standards to 3.9.8, no changes needed
Fixed VCS-fields, using https and plain /git/
Fixed copyright Format to https
Added LC_ALL=C.UTF-8 to rules for reproducible builds
Added hardening options
Set CMAKE_BUILD_TYPE=RelWithDebInfo
2016-08-06 16:48:54 +02:00
81 changed files with 858 additions and 16263 deletions

23
AUTHORS
View File

@ -1,23 +0,0 @@
Project maintainer: Petr Vanek <petr@scribus.info>
Contributors:
Alexander Sokolov <sokoloff.a@gmail.com>
Alf Gaida <agaida@siduction.org>
Christian Surlykke <christian@surlykke.dk>
Daniel O'Neill <doneill@cammy.riverroadcable.com>
Erik Ridderby <erik@ridderby.se>
Felix Schnizlein <felix@fix3d.net>
Francisco Ballina <zballinita@gmail.com>
Ilya87 <yast4ik@gmail.com>
Jerome Leclanche <jerome@leclan.ch>
Johannes Jordan <ypnos@lanrules.de>
Ludger Krämer <dbluelle@blau-weissoedingen.de>
Maxim Bourmitrov <maxim.bourmistrov@unixconn.com>
Mikhail Ivchenko <ematirov@gmail.com>
Sweet Tea Dorminy <sweettea@mit.edu>
Vladimir Kuznetsov <vovanec@gmail.com>
Matteo Pasotti <matteo@mageia.it>
@kulti <kultihell@gmail.com>
@pisculichi <pisculichi@openmailbox.org>
Sérgio Marques <smarquespt@gmail.com>

View File

@ -1,232 +0,0 @@
cmake_minimum_required(VERSION 2.8)
project(qterminal)
include(GNUInstallDirs)
set(STR_VERSION "0.6.0")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
# we need qpa/qplatformnativeinterface.h for global shortcut
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5LinguistTools REQUIRED)
if(APPLE)
elseif(UNIX)
find_package(Qt5X11Extras REQUIRED)
endif()
find_package(QTermWidget5 REQUIRED)
message(STATUS "Qt version: ${Qt5Core_VERSION_STRING}")
include(${QTERMWIDGET_USE_FILE})
# TODO remove Qxt
message(STATUS "Using bundled Qxt...")
set(QXT_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/src/third-party")
if(APPLE)
find_library(CARBON_LIBRARY Carbon REQUIRED)
message(STATUS "CARBON_LIBRARY: ${CARBON_LIBRARY}")
elseif(UNIX)
find_package(X11 REQUIRED)
message(STATUS "X11_X11_LIB: ${X11_X11_LIB}")
endif()
add_definitions(-DSTR_VERSION=\"${STR_VERSION}\")
add_definitions(${Qt5X11Extras_DEFINITIONS})
set(EXE_NAME qterminal)
set(QTERM_SRC
src/main.cpp
src/mainwindow.cpp
src/tabwidget.cpp
src/termwidget.cpp
src/termwidgetholder.cpp
src/properties.cpp
src/propertiesdialog.cpp
src/bookmarkswidget.cpp
src/fontdialog.cpp
)
set(QTERM_MOC_SRC
src/mainwindow.h
src/tabwidget.h
src/termwidget.h
src/termwidgetholder.h
src/propertiesdialog.h
src/bookmarkswidget.h
src/fontdialog.h
)
if(NOT QXT_FOUND)
set(QTERM_SRC ${QTERM_SRC} src/third-party/qxtglobalshortcut.cpp)
set(QTERM_MOC_SRC ${QTERM_MOC_SRC} src/third-party/qxtglobalshortcut.h)
if(WIN32)
set(QTERM_SRC ${QTERM_SRC} src/third-party/qxtglobalshortcut_win.cpp)
elseif(APPLE)
set(QTERM_SRC ${QTERM_SRC} src/third-party/qxtglobalshortcut_mac.cpp)
else()
set(QTERM_SRC ${QTERM_SRC} src/third-party/qxtglobalshortcut_x11.cpp)
endif()
endif()
set(QTERM_UI_SRC
src/forms/qterminal.ui
src/forms/propertiesdialog.ui
src/forms/bookmarkswidget.ui
src/forms/fontdialog.ui
)
set(QTERM_RCC_SRC
src/icons.qrc
)
set(QTERM_TS
src/translations/qterminal_cs.ts
src/translations/qterminal_de.ts
src/translations/qterminal_el.ts
src/translations/qterminal_es.ts
src/translations/qterminal_et.ts
src/translations/qterminal_it.ts
src/translations/qterminal_pt.ts
src/translations/qterminal_hu.ts
src/translations/qterminal_ru.ts
src/translations/qterminal_ja.ts
src/translations/qterminal_zh_CN.ts
)
qt5_wrap_ui( QTERM_UI ${QTERM_UI_SRC} )
qt5_wrap_cpp( QTERM_MOC ${QTERM_MOC_SRC} )
qt5_add_resources( QTERM_RCC ${QTERM_RCC_SRC} )
qt5_add_translation( QTERM_QM ${QTERM_TS} )
include_directories(
"${CMAKE_SOURCE_DIR}"
"${CMAKE_SOURCE_DIR}/src"
"${CMAKE_BINARY_DIR}"
${QTERMWIDGET_INCLUDE_DIRS}
${QXT_INCLUDE_DIRS}
)
if(X11_FOUND)
include_directories("${X11_INCLUDE_DIR}")
endif()
# TODO/FIXME: apple bundle
set(GUI_TYPE "")
set(APPLE_BUNDLE_SOURCES "")
if(APPLEBUNDLE)
add_definitions(-DAPPLE_BUNDLE)
set(GUI_TYPE MACOSX_BUNDLE)
# create Info.plist file
set(MACOSX_BUNDLE_ICON_FILE qterminal.icns)
set(MACOSX_BUNDLE_INFO_STRING "QTerminal ${STR_VERSION}")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.qterminal")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${STR_VERSION}")
set(MACOSX_BUNDLE_BUNDLE_NAME "${EXE_NAME}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${STR_VERSION}")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${STR_VERSION}")
set(MACOSX_BUNDLE_COPYRIGHT "(c) Petr Vanek &lt;petr@yarpen.cz&gt;")
set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/macosx/qterminal.icns"
PROPERTIES MACOSX_PACKAGE_LOCATION Resources
)
# use icon for app bundle to be visible in finder
set(APPLE_BUNDLE_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/macosx/qterminal.icns")
else()
set(TRANSLATIONS_DIR "${CMAKE_INSTALL_FULL_DATADIR}/qterminal/translations")
add_definitions(-DTRANSLATIONS_DIR=\"${TRANSLATIONS_DIR}\")
endif()
add_executable(${EXE_NAME} ${GUI_TYPE}
${QTERM_SRC}
${QTERM_UI}
${QTERM_MOC}
${QTERM_RCC}
${APPLE_BUNDLE_SOURCES}
${QTERM_QM}
)
target_link_libraries(${EXE_NAME}
${QTERMWIDGET_QT_LIBRARIES}
${QTERMWIDGET_LIBRARIES}
util
)
if(QXT_FOUND)
target_link_libraries(${EXE_NAME} ${QXT_CORE_LIB} ${QXT_GUI_LIB})
endif()
if(APPLE)
target_link_libraries(${EXE_NAME} ${CARBON_LIBRARY})
elseif(UNIX)
target_link_libraries(${EXE_NAME} Qt5::X11Extras)
endif()
if(X11_FOUND)
target_link_libraries(${EXE_NAME} ${X11_X11_LIB})
endif()
install(FILES
qterminal.desktop
qterminal_drop.desktop
DESTINATION "${CMAKE_INSTALL_DATADIR}/applications"
)
install(FILES
qterminal.appdata.xml
DESTINATION "${CMAKE_INSTALL_DATADIR}/appdata"
)
if(NOT APPLEBUNDLE)
install(TARGETS ${EXE_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(FILES ${QTERM_QM} DESTINATION ${TRANSLATIONS_DIR})
install(FILES src/icons/qterminal.png DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/64x64/apps")
else()
message(STATUS "APPLEBUNDLE")
install(CODE "message(STATUS \"Cleaning previously installed bundle (rm -r)\")")
install(CODE "execute_process(COMMAND rm -r ${CMAKE_INSTALL_PREFIX}/${EXE_NAME}.app)")
install(TARGETS ${EXE_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}")
# helper stuff to create real apple bundle.
# Black magic is summoned here...
if(APPLEBUNDLE_STANDALONE)
message(STATUS "APPLEBUNDLE_STANDALONE")
configure_file("${CMAKE_SOURCE_DIR}/bundle.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/bundle.cmake" @ONLY)
install(SCRIPT "${CMAKE_SOURCE_DIR}/bundle.cmake")
endif()
# bundle required keytabs from the qtermwidget package as well
install(CODE "message(STATUS \"Bundling (cp) keytab files from ${QTERMWIDGET_SHARE}/qtermwidget/\")")
install(CODE "execute_process(COMMAND cp -r ${QTERMWIDGET_SHARE}/qtermwidget/ ${CMAKE_INSTALL_PREFIX}/${EXE_NAME}.app/Contents/Resources)")
install(FILES ${QTERM_QM} DESTINATION ${CMAKE_INSTALL_PREFIX}/${EXE_NAME}.app/Contents/translations)
endif()
# make lupdate
# it generates new translation files
add_custom_target(lupdate
${QT_QMAKE_EXECUTABLE} -project -o "${CMAKE_CURRENT_BINARY_DIR}/qterminal.pro"
COMMAND ${QT_LUPDATE_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/qterminal.pro"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
)
# make dist custom target
set(CPACK_PACKAGE_NAME "qterminal")
set(CPACK_PACKAGE_VERSION ${STR_VERSION})
set(CPACK_SOURCE_GENERATOR "TGZ;TBZ2")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
set(CPACK_IGNORE_FILES "/CVS/;/\\\\.svn/;/\\\\.git/;\\\\.swp$;\\\\.#;/#;\\\\.tar.gz$;/CMakeFiles/;CMakeCache.txt;\\\\.qm$;/build/;\\\\.diff$;.DS_Store'")
set(CPACK_SOURCE_IGNORE_FILES ${CPACK_IGNORE_FILES})
include(CPack)
# simulate autotools' "make dist"
add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)

View File

@ -1,23 +0,0 @@
# Bug reports
Please file bugs on the qterminal github tracker:
https://github.com/lxde/qterminal/issues
Please file qtermwidget-related bugs on the qtermwidget github tracker:
https://github.com/lxde/qtermwidget/issues
# Code contributions
For all code contributions, please open a pull request on Github:
https://github.com/lxde/qterminal/
Make sure your code is clean, devoid of debug statements and respects the style
of the rest of the file (including line length and indentation).
Do not pollute the git history with unnecessary commits! Make sure each of your
commits compiles to ensure ease of bisection and have clear separation of one
feature or bugfix per commit.
Please also make sure you set your `git.name` and `git.email` options properly:
https://help.github.com/articles/setting-your-email-in-git/

1630
Doxyfile

File diff suppressed because it is too large Load Diff

280
LICENSE
View File

@ -1,280 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS

View File

@ -1,29 +0,0 @@
# QTerminal
The lightweight Qt terminal emulator
## Installation
### Requirements
* Qt >= 5.2
* CMake >= 2.8
* [qtermwidget](https://github.com/lxde/qtermwidget)
### Building
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`
2. `cmake <path/to/source>`
3. `make`
4. (to install) `make install`
Read cmake docs to fine tune the build process (CMAKE_INSTALL_PREFIX, etc...)
## Translations
* Edit `src/CMakeLists.txt` to add a new ts file.
* `make lupdate` updates ts files to be translated (lrelease is called automatically in make)

7
debian/.gitignore vendored
View File

@ -1,6 +1 @@
/files
/*.log
/*.substvars
/qterminal/
/qterminal-dbg/
files

274
debian/changelog vendored
View File

@ -1,8 +1,280 @@
qterminal (2.2.1-0ubuntu1) questing; urgency=medium
* New upstream release.
- Update build dependencies.
* Update copyright file.
* Update Standards-Version to 4.7.2, no changes needed.
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Wed, 30 Jul 2025 15:30:36 -0500
qterminal (2.1.0-0ubuntu4) plucky; urgency=medium
* Update Standards-Version to 4.7.1, no changes needed.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 21 Feb 2025 16:36:59 -0600
qterminal (2.1.0-0ubuntu3) plucky; urgency=medium
* Work around xorg recommending xterm before x-terminal-emulator by
providing it.
-- Simon Quigley <tsimonq2@ubuntu.com> Sat, 15 Feb 2025 00:33:47 -0600
qterminal (2.1.0-0ubuntu2) plucky; urgency=medium
* No-change rebuild for lxqt-build-tools C++17 -> C++20.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 03 Jan 2025 04:01:52 -0600
qterminal (2.1.0-0ubuntu1) plucky; urgency=medium
* New upstream release.
- Bump build dependencies.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 15 Nov 2024 15:33:41 -0600
qterminal (2.0.1-0ubuntu1) oracular; urgency=medium
* New upstream release.
* Bump build dependencies.
* Add layer-shell-qt to build dependencies.
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Thu, 15 Aug 2024 16:28:10 -0500
qterminal (2.0.0-0ubuntu1~ppa1) oracular; urgency=medium
* New upstream release.
* Update copyright file.
* Bump Standards-Version to 4.7.0, no changes necessary.
* Adjust build dependencies.
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Wed, 26 Jun 2024 13:13:17 -0500
qterminal (1.3.0-0ubuntu2) noble; urgency=medium
* Bump build dependencies, for real this time.
-- Simon Quigley <tsimonq2@ubuntu.com> Tue, 14 Nov 2023 15:29:27 -0600
qterminal (1.3.0-0ubuntu1) mantic; urgency=medium
* New upstream release.
* Bump build dependencies.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 11 Aug 2023 09:52:33 -0500
qterminal (1.2.0-2ubuntu1) lunar; urgency=medium
* Reverted a sync from Debian.
* Added myself and Simon to Uploaders.
* Bumped Standards-Version to 4.6.2, no changes necessary.
* Removed obsolete '-Wl,--as-needed' linker flag from debian/rules.
* Removed obsolete 'override_dh_missing' section from debian/rules.
* Overhauled copyright file.
* Added 'Rules-Requires-Root: no' to debian/control.
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Fri, 17 Feb 2023 01:22:28 -0600
qterminal (1.2.0-0ubuntu1) lunar; urgency=medium
* New upstream release.
* Fix the watch file, for real this time.
* Lubuntuify the package slightly, to make debhelper happy.
* Bump build dependencies in debian/control.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 18 Nov 2022 19:15:47 -0600
qterminal (1.1.0-1) experimental; urgency=medium
* New upstream release.
* Run wrap-and-sort.
* Bump build dependencies.
* Bump Standards-version to 4.6.1, no changes needed.
* Bump debhelper compat to 13, no changes needed.
* Drop some old Breaks/Replaces.
* Upstream some useful changes from Ubuntu so we can sync.
-- Simon Quigley <tsimonq2@debian.org> Thu, 14 Jul 2022 14:26:41 -0500
qterminal (0.16.1-1) unstable; urgency=medium
* Team upload.
[ Sophie Brun ]
* Update debian/upstream/signing-key.asc
* New upstream version 0.16.1. Closes: #959963
* Refresh patch
* Update minimal required versions of libqtermwidget5-0-dev and
lxqt-build-tools
* Bump Standard-Version to 4.5.0
[ Raphaël Hertzog ]
* Refer to common license file for CC0-1.0.
* Fix field name typo in debian/upstream/metadata (Repository-Browser =>
Repository-Browse).
* Set upstream metadata fields: Repository.
* Remove obsolete field Name from debian/upstream/metadata (already present in
machine-readable debian/copyright).
-- Sophie Brun <sophie@offensive-security.com> Wed, 16 Dec 2020 15:06:50 +0100
qterminal (0.14.1-1) unstable; urgency=medium
* Cherry-picking upstream version 0.14.1.
* Bumped minimum versions libqtermwidget5-0-dev (>= 0.14.1~)
-- Alf Gaida <agaida@siduction.org> Tue, 26 Feb 2019 03:09:41 +0100
qterminal (0.14.0-1) unstable; urgency=medium
* Cherry-picking upstream version 0.14.0.
* Bumped Standards to 4.3.0, no changes needed
* Dropped d/compat, use debhelper-compat = 12, no changes needed
* Fixed years in d/copyright
* Added CC0 for qterminal.appdata.xml
* Bumped minimum versions libqtermwidget5-0-dev (>= 0.14.0~)
* Bumped minimum version lxqt-build-tools (>= 0.6.0~)
* Removed obsolete PULL_TRANSLATIONS= OFF from dh_auto_configure
* Added l10n-package, moved from lxqt-l10n
* Added d/upstream/metadata
-- Alf Gaida <agaida@siduction.org> Sun, 27 Jan 2019 22:06:09 +0100
qterminal (0.9.0-3) unstable; urgency=medium
* Fixed typo in long description
Nice catch, thanks annadane <fjfj109@protonmail.com>
(Closes: #901565)
-- Alf Gaida <agaida@siduction.org> Sat, 16 Jun 2018 00:50:09 +0200
qterminal (0.9.0-1) unstable; urgency=medium
* Cherry-picking upstream version 0.9.0.
* Bumped build dependency libqtermwidget5-0-dev to >= 0.9.0~
* Bumped build dependency lxqt-build-tools to >= 0.5.0~
* Removed not needed build dependency qtbase5-private-dev
* Refreshed metadata patch
-- Alf Gaida <agaida@siduction.org> Thu, 24 May 2018 01:56:48 +0200
qterminal (0.8.0-5) unstable; urgency=medium
* Bumped compat to 11
* Bumped debhelper to >= 11~
* Bumped Standards to 4.1.4, no changes needed
* Changed VCS fields for salsa
* Changed Homepage, Source and watch to lxqt
* Bumped years in copyright
* Removed trailing whitespaces in changelog
-- Alf Gaida <agaida@siduction.org> Sat, 28 Apr 2018 19:20:40 +0200
qterminal (0.8.0-4) unstable; urgency=medium
* Bumped Standards to 4.1.2, no changes needed
* Removed branch from VCS fields
* Removed debian/gbp.conf
-- Alf Gaida <agaida@siduction.org> Fri, 15 Dec 2017 17:56:14 +0100
qterminal (0.8.0-3) unstable; urgency=medium
* Transition to unstable
-- Alf Gaida <agaida@siduction.org> Tue, 05 Dec 2017 19:14:51 +0100
qterminal (0.8.0-2) experimental; urgency=medium
* Patched appdata and metainfo-path again
-- Alf Gaida <agaida@siduction.org> Sun, 05 Nov 2017 03:00:28 +0100
qterminal (0.8.0-1) experimental; urgency=medium
* Cherry-picking upstream version 0.8.0.
* Switched to experimental
* Bumped Standards to 4.1.1
* Bumped libqtermwidget5-0-dev to >= 0.8.0
* Added dependency libutf8proc-dev
* Bumped lxqt-build-tools to >= 0.4.0
* Fixed copyright
* Dropped appdata-patch, applied upstream
-- Alf Gaida <agaida@siduction.org> Mon, 23 Oct 2017 01:47:22 +0200
qterminal (0.7.1-3) unstable; urgency=medium
* Bumped Standards to 4.1.0 - no changes needed
* Fixed d/control with cme
* Close slowness bug, not reproducible anymore (Closes: #853220)
-- Alf Gaida <agaida@siduction.org> Wed, 06 Sep 2017 17:55:33 +0200
qterminal (0.7.1-2) unstable; urgency=medium
* Fixed appdata format and location
* Bumped Standards to 4.0.0, no changes needed
* Bumpded copyright year
-- Alf Gaida <agaida@siduction.org> Sun, 13 Aug 2017 21:54:04 +0200
qterminal (0.7.1-1) unstable; urgency=medium
* Cherry-picking upstream version 0.7.1
* Bumped minimum version libqtermwidget5-0-dev (>= 0.7.1)
* Removed build dependencies:
- cmake
- liblxqt0-dev
- libqt5xdg-dev
- qttools5-dev
- qttools5-dev-tools
* Added build dependency lxqt-build-tools
-- Alf Gaida <agaida@siduction.org> Thu, 22 Dec 2016 00:35:57 +0100
qterminal (0.7.0-2) unstable; urgency=medium
* Cherry-picking upstream release 0.7.0
* Sync debian foo with experimental
* Bumped compat to 10
* Removed --parallel from rules, standard compat 10
* Bumped Standards to 3.9.8, no changes needed
* Bumped minimum version debhelper (>= 10)
* Bumped minimum version libqtermwidget5-0-dev (>= 0.7.0)
* Added build dependency libkf5windowsystem-dev
* Added build dependency liblxqt0-dev (>= 0.11.0)
* Added build dependency libqt5svg5-dev
* Added build dependency libqt5xdg-dev (>= 3.0.0)
* Added Recommends qterminal-l10n
* Fixed VCS fields, using https, plain /git/ and pointing to the right branch
* Fixed copyright Format field, using https
* Exported LC_ALL=C.UTF-8, make builds reproducible
* Added hardening options
* Added translation control to rules
* Set CMAKE_BUILD_TYPE=RelWithDebInfo
-- Alf Gaida <agaida@siduction.org> Tue, 18 Oct 2016 20:59:13 +0200
qterminal (0.6.1~102-g58f4f72-1) unstable; urgency=medium
* Cherry-picking upstream version 0.6.1~102-g58f4f72.
* Fixed debian/.gitignore
* Added minimum versions for libqtermwidget5-0-dev (>= 0.6.1~)
* Bump Standards to 3.9.8, no changes needed
* Fixed VCS-fields, using https and plain /git/
* Fixed copyright Format to https
* Added LC_ALL=C.UTF-8 to rules for reproducible builds
* Added hardening options
* Set CMAKE_BUILD_TYPE=RelWithDebInfo
-- Alf Gaida <agaida@siduction.org> Sat, 06 Aug 2016 16:48:43 +0200
qterminal (0.6.0+20160104-1) unstable; urgency=medium
[ Alf Gaida ]
* Cherry-picking upstream version 0.6.0+20160104.
* Fixed copyright for 2016, added Peter Mattern
* Fixed copyright for 2016, added Peter Mattern
* Fixed 'possible-unindented-list-in-extended-description'
[ Peter Mattern ]

1
debian/compat vendored
View File

@ -1 +0,0 @@
9

52
debian/control vendored
View File

@ -1,33 +1,53 @@
Source: qterminal
Maintainer: LXQt Packaging Team <pkg-lxqt-devel@lists.alioth.debian.org>
Maintainer: Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
Original-Maintainer: LXQt Packaging Team <pkg-lxqt-devel@lists.alioth.debian.org>
Uploaders: Alf Gaida <agaida@siduction.org>,
ChangZhuo Chen (陳昌倬) <czchen@debian.org>,
Andrew Lee (李健秋) <ajqlee@debian.org>,
Aaron Rainbolt <arraybolt3@ubuntu.com>,
Simon Quigley <tsimonq2@ubuntu.com>
Section: x11
Priority: optional
Build-Depends: debhelper (>= 9),
cmake (>= 3.0.2),
libqtermwidget5-0-dev,
libqt5x11extras5-dev,
Build-Depends: debhelper-compat (= 13),
layer-shell-qt,
libcanberra-dev,
libkf6windowsystem-dev (>= 6.0.0),
liblayershellqtinterface-dev,
libqtermwidget6-2-dev (>= 2.2.0),
libutf8proc-dev,
libx11-dev,
qtbase5-private-dev,
qttools5-dev,
qttools5-dev-tools
Standards-Version: 3.9.6
Vcs-Browser: http://anonscm.debian.org/cgit/pkg-lxqt/qterminal.git
Vcs-Git: git://anonscm.debian.org/pkg-lxqt/qterminal.git
Homepage: https://github.com/lxde/qterminal
libxkbcommon-dev (>= 0.5.0),
lxqt-build-tools (>= 2.2.0),
qt6-svg-dev (>= 6.6.0),
qt6-wayland-dev (>= 6.6.0)
Standards-Version: 4.7.2
Vcs-Browser: https://git.lubuntu.me/Lubuntu/qterminal-packaging
Vcs-Git: https://git.lubuntu.me/Lubuntu/qterminal-packaging.git
Debian-Vcs-Browser: https://salsa.debian.org/lxqt-team/qterminal
Debian-Vcs-Git: https://salsa.debian.org/lxqt-team/qterminal.git
Homepage: https://github.com/lxqt/qterminal
Rules-Requires-Root: no
Package: qterminal
Provides: x-terminal-emulator
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
Depends: ${misc:Depends}, ${shlibs:Depends}
Recommends: qterminal-l10n
Provides: x-terminal-emulator, xterm
Description: Lightweight Qt terminal emulator
QTerminal is a lightwight terminal emulator based on QTermWidget.
QTerminal is a lightweight terminal emulator based on QTermWidget.
.
Among other it features
* Split terminals (horizontally and vertically).
* Multiple tabs.
* Customizable shortcuts.
* Various color schemes.
Package: qterminal-l10n
Architecture: all
Multi-Arch: foreign
Section: localization
Depends: qt6-translations-l10n, ${misc:Depends}
Description: Language package for qterminal
The l10n files for qterminal.
.
This package contains the l10n files needed by qterminal.

482
debian/copyright vendored
View File

@ -1,27 +1,45 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: qterminal
Source: https://github.com/qterminal/qterminal.git
Source: https://github.com/lxqt/qterminal.git
Files: *
Copyright: 2010-2015 Petr Vanek <petr@scribus.info>
Copyright: 2016-2025 LXQt team
2010-2016 Petr Vanek <petr@scribus.info>
2017 Nathan Osman <nathan@quickmediasolutions.com>
Alexander Sokolov <sokoloff.a@gmail.com>
Alf Gaida <agaida@siduction.org>
Christian Surlykke <christian@surlykke.dk>
Daniel O'Neill <doneill@cammy.riverroadcable.com>
Erik Ridderby <erik@ridderby.se>
Felix Schnizlein <felix@fix3d.net>
Francisco Ballina <zballinita@gmail.com>
Ilya87 <yast4ik@gmail.com>
Jerome Leclanche <jerome@leclan.ch>
Johannes Jordan <ypnos@lanrules.de>
Ludger Krämer <dbluelle@blau-weissoedingen.de>
Maxim Bourmitrov <maxim.bourmistrov@unixconn.com>
Mikhail Ivchenko <ematirov@gmail.com>
Sweet Tea Dorminy <sweettea@mit.edu>
2006 Vladimir Kuznetsov <vovanec@gmail.com>
Matteo Pasotti <matteo@mageia.it>
@kulti <kultihell@gmail.com>
License: GPL-2+
Files: src/config.h
src/main.cpp
src/mainwindow.*
src/tabwidget.*
Copyright: Copyright (C) 2006 by Vladimir Kuznetsov <vovanec@gmail.com>
License: GPL-2+
Files: qterminal.metainfo.xml
Copyright: 2016-2020 LXQt Team
License: CC-BY-4.0
Files: src/third-party/*
Copyright: Copyright (c) 2006 - 2011, the LibQxt project.
Copyright: 2006-2011 the LibQxt project.
License: BSD-3-clause
Files: debian/*
Copyright: 2012-2016 Alf Gaida <agaida@siduction.org>
2012 Torsten Wohlfarth <towo@siduction.org>
2015 ChangZhuo Chen (陳昌倬) <czchen@debian.org>
2016 Peter Mattern <pmattern@arcor.de>
Copyright: 2021-2025 Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
2012-2018 Alf Gaida <agaida@siduction.org>
2016 Peter Mattern <pmattern@arcor.de>
2015 ChangZhuo Chen (陳昌倬) <czchen@debian.org>
2012 Torsten Wohlfarth <towo@siduction.org>
2025 Aaron Rainbolt <arraybolt3@ubuntu.com>
License: GPL-2+
License: GPL-2+
@ -43,28 +61,422 @@ License: GPL-2+
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the LibQxt project nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
.
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Comment: Yes, it does indeed say "<COPYRIGHT HOLDER>" in the actual text of
the license copied from the source code.
License: CC-BY-4.0
Attribution 4.0 International
.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
=======================================================================
.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Using Creative Commons Public Licenses
.
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
.
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
.
=======================================================================
.
Creative Commons Attribution 4.0 International Public License
.
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution 4.0 International Public License ("Public License"). To the
extent this Public License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of
these terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the
Licensed Material available under these terms and conditions.
.
.
Section 1 -- Definitions.
.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
.
.
Section 2 -- Scope.
.
a. License grant.
.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
.
a. reproduce and Share the Licensed Material, in whole or
in part; and
.
b. produce, reproduce, and Share Adapted Material.
.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
.
3. Term. The term of this Public License is specified in Section
6(a).
.
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
.
5. Downstream recipients.
.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
.
b. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
.
b. Other rights.
.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
.
2. Patent and trademark rights are not licensed under this
Public License.
.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
.
.
Section 3 -- License Conditions.
.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
.
a. Attribution.
.
1. If You Share the Licensed Material (including in modified
form), You must:
.
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
.
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
.
ii. a copyright notice;
.
iii. a notice that refers to this Public License;
.
iv. a notice that refers to the disclaimer of
warranties;
.
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
.
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
.
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
.
4. If You Share Adapted Material You produce, the Adapter's
License You apply must not prevent recipients of the Adapted
Material from complying with this Public License.
.
.
Section 4 -- Sui Generis Database Rights.
.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
.
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
.
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
.
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
.
.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
.
.
Section 6 -- Term and Termination.
.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
.
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
.
2. upon express reinstatement by the Licensor.
.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
.
.
Section 7 -- Other Terms and Conditions.
.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
.
.
Section 8 -- Interpretation.
.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
.
.
=======================================================================
.
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
.
Creative Commons may be contacted at creativecommons.org.

7
debian/gbp.conf vendored
View File

@ -1,7 +1,6 @@
[DEFAULT]
debian-branch = debian
debian-branch = debian/sid
upstream-branch = upstream/latest
pristine-tar = True
compression = xz
[import-orig]
# Use git cherrypick -n upstream instead.
merge = False

1
debian/qterminal-l10n.install vendored Normal file
View File

@ -0,0 +1 @@
usr/share/qterminal/translations

6
debian/qterminal.install vendored Normal file
View File

@ -0,0 +1,6 @@
usr/bin/qterminal
usr/share/applications/qterminal-drop.desktop
usr/share/applications/qterminal.desktop
usr/share/icons/hicolor/64x64/apps/qterminal.png
usr/share/metainfo/qterminal.metainfo.xml
usr/share/qterminal/qterminal_bookmarks_example.xml

3
debian/qterminal.lintian-overrides vendored Normal file
View File

@ -0,0 +1,3 @@
# This is expected
qterminal: desktop-entry-lacks-keywords-entry [usr/share/applications/*.desktop]
qterminal: appstream-metadata-validation-failed *

14
debian/rules vendored
View File

@ -1,8 +1,14 @@
#!/usr/bin/make -f
#export DH_VERBOSE=1
# export DH_VERBOSE=1
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
export LC_ALL=C.UTF-8
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh ${@} --buildsystem cmake \
--parallel
dh ${@} --buildsystem cmake
override_dh_auto_configure:
dh_auto_configure -- \
-DPULL_TRANSLATIONS=OFF \
-DUPDATE_TRANSLATIONS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo

12
debian/salsa-ci.yml vendored Normal file
View File

@ -0,0 +1,12 @@
# For more information on what jobs are run see:
# https://salsa.debian.org/salsa-ci-team/pipeline
#
# To enable the jobs, go to your repository (at salsa.debian.org)
# and click over Settings > CI/CD > Expand (in General pipelines).
# In "Custom CI config path" write debian/salsa-ci.yml and click
# in "Save Changes". The CI tests will run after the next commit.
---
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml

2
debian/source/lintian-overrides vendored Normal file
View File

@ -0,0 +1,2 @@
# We don't plan on fixing this
qterminal source: maintainer-manual-page [debian/qterminal.1]

6
debian/upstream/metadata vendored Normal file
View File

@ -0,0 +1,6 @@
Bug-Database: https://github.com/lxqt/qterminal/issues
Bug-Submit: https://github.com/lxqt/qterminal/issues/new
Changelog: https://github.com/lxqt/qterminal/blob/master/CHANGELOG
Repository: https://github.com/lxqt/qterminal.git
Repository-Browse: https://github.com/lxqt/qterminal

53
debian/upstream/signing-key.asc vendored Normal file
View File

@ -0,0 +1,53 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: Signed by Sophie Brun
mQINBF6cxrwBEADfl3ydxNfLBbWGPesXty2baQgixZ3D6aCxadI2kX+aikmT8rd0
ttDKN18cXV52Ssxnj0qhgf4hwnu/b0be6BzqSEyGM+UQR3X2CYpxrMakfW32Q18K
X5ec0RPR2ucBq9G0r9t6FYC8FkJ4uQUU3xxrLW3z302S0Makjgzm8BV9WrFQ7oFF
uJQj0BHbHYC4RyaZb2AfxY4Y92BPGTjtGekWqgw6vEXCCnvAbGYVQzvxZt3nw21/
1YmV4g7xhGFQPbOf9v3ejFUJeJIGzuJf5NAh7kvfCdUBAGYH0gnj0GpOve4ftnaG
sAId2CQwm3oYF4Tu7yBPTOBpkaKkNaT+UdwTyeKERuCZ9ocZWX++/YF9ItRkJ5mM
zoP1GluWn2atNWpRh/K97gyAGgr2fSmrAA4d1JrVbMujZAHoHAOKwJKqX9jPziPZ
BFHfhcIOzG3ZhXAuumHsd7uwfPBVt20g+G+cOjBghbSSu9EOtMkAZl1g3ybvZixu
Jtxa5exZWEmU7vtytEb8eq9Dj5XcGoTDbErE2RpJ/20HPzhyRKg9RN4iGS+0OiHS
oRbDi5IEOizvQjp2bsBmfa3rsoDSOqF2pevp+u8I56I6bU1GFpxxNC5IGvgo2Q79
quz0oIk5hs3eLlUdEYsLGwR6pWJaJyf36vuDsq7iLrLyvHI5irAowO4r1QARAQAB
tCVQZWRyYW0gUG91cmFuZyA8dHN1amFuMjAwMEBnbWFpbC5jb20+iQJOBBMBCAA4
FiEEGd/fOleb1QnbtXLYvnkwB60i334FAl6cxrwCGwMFCwkIBwIGFQoJCAsCBBYC
AwECHgECF4AACgkQvnkwB60i335f9RAAgRpn8gUa/l10UkVAnpM2Cz0MuNMwwCOq
IfVnuZuPBtYYiTU5Su++/aPZe3fF5B4v61F+XjNi7qeVL2t52X3jZ/iIx9Syasb+
vDAIfQ5t6lKXvOptWxf6vteOg6CHbXwpGHbPjUkUS2vQwRikjBnR0SnkrMoXtgSX
amPFqsitNrOhEJfeDfo0NzKESZuliWrCFt2v8c5q18G8cCZAvPLBlGuwRl58cDep
3EIibMI/9MUSJbKoiHlK+LcHtG7BQTNis/e7Pe1PkRmExfhxe1lNajtOx8FO72Tq
B6zY6drippM9VaIc1M+zp9BRpsFu8whOmapCqlXHRgAK8xTdQRIGInQFqLWPOxSC
f0B6N+EvQvgkyFQ1rW+u91OJBma46uKkhrwf+mDttVRncaIAkgE6e6pqm18yIPFk
D42rt/yHcOl+2qkcJS3gPcg5UvlCzqOwg1rKZQIk+TcPuDx3r2UghDEYZN9X6vw3
zCBufr7ygZNf4tkbnVARFWTR4GzyCseFkWgOVZL9DccAhs8NeMy1WLkUzB75adeR
3LONmEL7xOI8FuknKY4e6EcWhmstNIDgXfRe0hwO0VBdW3unoZC/K2ZM/ZuZyMdK
TFjvYJrNewmymKge68wo0054bGZn8oz17i2AosJz7kW+ITsxmxhVcpfl4bav9Neq
RpQwhnhK9bC5Ag0EXpzGvAEQANbeRHFbpgQVIqV9WVOVnTj4FIqrTPTPKKa02vJA
7tGpgFapgvjdxnMxJfV6wuwOBUUFLR7DrXlV8EVFAYc5qTIeSQXvJsWw6gQ3+f0D
z13oGOhZPBIzIKnV/MZI/jhIio8kSPWAuM5hR2X9Hvw3/CLo+H+hZZ6cFYoCxrQS
tTzcKMkdQizLLa+WNbqUSxg6I/P5k/smUDY9gKW7RtI5t/PupA3WTnsVD6CYWa3Q
c1O/1mUgqT6nQ5N9KCPpjZQRT6D6eIMmePtS85z4PPeYMJxPsKRYWPGRxKhCSdZl
/0wsC8aRtmwYT729e0ZgTAmUnj+rQp5hboF/ZPFjIoXR9G+0HnoY0a/nqVO4lUON
AV25GnMFGVyiHHlbH/0gboywwnzEg8BZbk+Z/61oOzBIW09sfG8fn8bsbkpL+nHf
Mi/Vauge6wSfw7I5AfSiwrSDNHmKVsu39koWV6JGxEeFr2MffF+CuaoJCNOr/ZII
SYR5ku3Y/lMKyUH1Oas0RWzFrdRcInqYK90A0x083zP4V445MvCwbRPzQAkm9wOP
kILLhE5FW+9/O0/9bpx4joJUDLV4d3hFZy7GSHKiZUs1QW6BV75JQKqoi+cVt+/L
+o1S8CMNekjqdC2mWRosM3doo51zT/FWNzQA1QcoZP2hORJDfw66y+4wPq6o8y1W
jR35ABEBAAGJAjYEGAEIACAWIQQZ3986V5vVCdu1cti+eTAHrSLffgUCXpzGvAIb
DAAKCRC+eTAHrSLffgbJD/4qW5YOo/BayBhaUh2L7VP7JNlECb/2xNNOFKI1NjNr
nOmgSJLzf74Uhmt5W+iVjmJBHrDceprIPkizmPrn90kIsPIMtHIDNxzUgKZHbnza
j1vZyAeC+JV79X1hOVpprj1TJwy65lpxXNyYnGqeIOgyFokn9fOHXv8aMQwpNuUr
bdUJ1C75jYrvwy/NR1DczIFFYgsbkDGDtjVBjyMc5JAgvUBz37/iVPJfWP6dKVnf
abRnUVzHgvgK7bnab00SA1TiWvjHURGjo+5rnRtv8X/AgStc2Phjq68TMIgMn0F2
kjUVvfQotNqzo9madNshvUDmsGtAzKh4e0dS1ear7u3nRp4Z7fqSrTEtXKNbEPwZ
wdWrWmmQLacNQBSe/FtcMzGF6xIVr4lnrL0bFjqBdQpdTC7vns3QSKk8/GFiEfpv
kzXrDbGV7jX2OWDjNHKcmXX2+E1CsNaJgS7zOgZw5jvbvlTLJUwyYNlM1VLI2OFW
Oa86l8pqli+B7rpTbsAE9Ut8qUaWjm87oUNSJbaKgqNnMaE+b/8VJaEeWHgQJwsD
bJSJ/O/vzlRtDjOJ1JDlMRLs7TnOFeUh5pgwyaJoidYbJEiGlMGJbI6BjwhDTBFO
NLJtd3SsRjc7ICtGdCvej59IvCDTjxtkhx5okF03APi1aXpHQrE18/arFD7BpoGO
sw==
=gSIv
-----END PGP PUBLIC KEY BLOCK-----

7
debian/watch vendored
View File

@ -1,2 +1,5 @@
version=3
https://github.com/qterminal/qterminal/releases .*/v?(\d\S*)/qterminal-(?:\d\S*)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
version=4
opts="searchmode=plain, \
pgpsigurlmangle=s/$/.asc/, \
uversionmangle=s/(\d+\.\d+\.\d+).*/$1/" \
https://api.github.com/repos/lxqt/@PACKAGE@/releases https:\/\/github.com\/lxqt\/@PACKAGE@\/releases\/download\/@ANY_VERSION@\/@PACKAGE@-@ANY_VERSION@.tar.xz

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<application>
<id type="desktop">qterminal.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2</project_license>
<name>QTerminal</name>
<summary>A lightweight multiplatform terminal emulator.</summary>
<description>
</p>
QTerminal is a lightweight multiplatform terminal emulator.
<p>
Its main features are:
</p>
<ul>
<li>Multiple tabs</li>
<li>Layout terminals side-by-side</li>
<li>Dropdown mode</li>
<li>Text search</li>
<li>Configurable uster interface</li>
<li>Integration of system clipboard</li>
</ul>
</description>
<screenshots>
<screenshot type="default">
<image>http://worblehat.github.io/storage/qterminal_1.png</image>
<caption>The default QTerminal window.</caption>
</screenshot>
</screenshots>
<screenshots>
<screenshot type="default">
<image>http://worblehat.github.io/storage/qterminal_2.png</image>
<caption>QTerminal with multiple tabs, splitted terminals and highlighted text.</caption>
</screenshot>
</screenshots>
<screenshots>
<screenshot type="default">
<image>http://worblehat.github.io/storage/qterminal_3.png</image>
<caption>Find bar and highlighted match.</caption>
</screenshot>
</screenshots>
<url type="homepage">https://github.com/lxde/qterminal</url>
</application>

View File

@ -1,57 +0,0 @@
[Desktop Entry]
Name=QTerminal
Type=Application
GenericName=Terminal emulator
Comment=Terminal emulator
Comment[de]=Befehlszeile verwenden
Comment[el]=Προσομοιωτής τερματικού
Comment[fr]=Terminal
Comment[pt]=Emulador de terminal
Comment[ru_RU]=Эмулятор терминала
Comment[ja]= 
Icon=utilities-terminal
Exec=qterminal
Terminal=false
Categories=Qt;System;TerminalEmulator;
Actions=Dropdown;
[Desktop Action Dropdown]
Name=Drop-down terminal
Exec=qterminal --drop
Icon=utilities-terminal
Name[en_GB]=Drop-down Terminal
Name[bg]=Падащ терминал
Name[ca]=Terminal desplegable
Name[ca@valencia]=Terminal desplegable
Name[cs]=Vysouvací terminál
Name[da]=Terminal der ruller ned
Name[de]=Aufklapp-Terminal
Name[el]=Αναπτυσσόμενο τερματικό
Name[es]=Terminal de menú desplegable
Name[et]=Lahtikeriv terminal
Name[fr]=Terminal déroulant
Name[hr]=Spuštajući terminal
Name[hu]=Legördülő terminál
Name[it]=Terminale a discesa
Name[ja]=
Name[km]=
Name[ko]=
Name[nb]=Nedtrekksterminal
Name[nds]=Utklapp-Konsool
Name[nl]=Uitvouwbare terminalemulator
Name[pa]=
Name[pt]=Terminal suspenso
Name[pt_BR]=Terminal suspenso
Name[ro]=Terminal derulant
Name[ru]=Выпадающий терминал
Name[sk]=Rozbaľovací terminál
Name[sv]=Rullgardinsterminal
Name[th]=
Name[tr]=Yukarıdan Açılan Uçbirim
Name[uk]=Спадний термінал
Name[x-test]=xxDrop-down Terminalxx
Name[zh_CN]=
Name[zh_TW]=

View File

@ -1,32 +0,0 @@
TARGET = qterminal
TEMPLATE = app
# qt5 only. Please use cmake - it's an official build tool for this software
QT += widgets
CONFIG += link_pkgconfig
PKGCONFIG += qtermwidget5
DEFINES += STR_VERSION=\\\"0.5.0\\\"
SOURCES += $$files(src/*.cpp)
HEADERS += $$files(src/*.h)
INCLUDEPATH += src
RESOURCES += src/icons.qrc
FORMS += $$files(src/forms/*.ui)
unix {
isEmpty(PREFIX) {
PREFIX = /usr/local
}
BINDIR = $$PREFIX/bin
INSTALLS += target shortcut
target.path = $$BINDIR
DATADIR = $$PREFIX/share
shortcut.path = $$DATADIR/applications
shortcut.files = qterminal.desktop
}

View File

@ -1,55 +0,0 @@
[Desktop Entry]
Type=Application
Exec=qterminal --drop
Terminal=false
Categories=Qt;System;TerminalEmulator;
Icon=utilities-terminal
Name=QTerminal drop down
Name[de]=QTerminal herabhängend
Name[el]=QTerminal αναπτυσσόμενο
Name[pt]=QTerminal suspenso
Name[ja]=QTerminal
GenericName=Drop-down Terminal
GenericName[bg]=Падащ терминал
GenericName[ca]=Terminal desplegable
GenericName[ca@valencia]=Terminal desplegable
GenericName[cs]=Vysouvací terminál
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[et]=Lahtikeriv terminal
GenericName[fr]=Terminal déroulant
GenericName[hr]=Spuštajući terminal
GenericName[hu]=Legördülő terminál
GenericName[it]=Terminale a discesa
GenericName[ja]=
GenericName[km]=
GenericName[ko]=
GenericName[nb]=Nedtrekksterminal
GenericName[nds]=Utklapp-Konsool
GenericName[nl]=Uitvouwbare terminalemulator
GenericName[pa]=
GenericName[pt]=Terminal suspenso
GenericName[pt_BR]=Terminal suspenso
GenericName[ro]=Terminal derulant
GenericName[ru]=Выпадающий терминал
GenericName[sk]=Rozbaľovací terminál
GenericName[sv]=Rullgardinsterminal
GenericName[th]=
GenericName[tr]=Yukarıdan Açılan Uçbirim
GenericName[uk]=Спадний термінал
GenericName[x-test]=xxDrop-down Terminalxx
GenericName[zh_CN]=
GenericName[zh_TW]=
Comment=A drop-down terminal emulator.
Comment[de]=Ein Ausklapp-Terminalemulator.
Comment[el]=Ένας αναπτυσσόμενος προσομοιωτής τερματικού.
Comment[pt]=Um emulador de terminal suspenso.
Comment[ru]=Вападающий эмулятор терминала.
Comment[ja]= 

View File

@ -1,396 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <QDebug>
#include <QStandardPaths>
#include "bookmarkswidget.h"
#include "properties.h"
#include "config.h"
class AbstractBookmarkItem
{
public:
enum ItemType {
Root = 0,
Group = 1,
Command = 2
};
AbstractBookmarkItem(AbstractBookmarkItem* parent = 0)
{
m_parent = parent;
}
~AbstractBookmarkItem()
{
qDeleteAll(m_children);
}
ItemType type() { return m_type; }
QString value() { return m_value; }
QString display() { return m_display; }
void addChild(AbstractBookmarkItem* item) { m_children << item; }
int childCount() { return m_children.count(); }
QList<AbstractBookmarkItem*> children() { return m_children; }
AbstractBookmarkItem *child(int number) { return m_children.value(number); }
AbstractBookmarkItem *parent() { return m_parent; }
int childNumber() const
{
if (m_parent)
return m_parent->children().indexOf(const_cast<AbstractBookmarkItem*>(this));
return 0;
}
protected:
ItemType m_type;
AbstractBookmarkItem *m_parent;
QList<AbstractBookmarkItem*> m_children;
QString m_value;
QString m_display;
};
class BookmarkRootItem : public AbstractBookmarkItem
{
public:
BookmarkRootItem()
: AbstractBookmarkItem()
{
m_type = AbstractBookmarkItem::Root;
m_value = m_display = "root";
}
};
class BookmarkCommandItem : public AbstractBookmarkItem
{
public:
BookmarkCommandItem(const QString &name, const QString &command, AbstractBookmarkItem *parent)
: AbstractBookmarkItem(parent)
{
m_type = AbstractBookmarkItem::Command;
m_value = command;
m_display = name;
}
};
class BookmarkGroupItem : public AbstractBookmarkItem
{
public:
BookmarkGroupItem(const QString &name, AbstractBookmarkItem *parent)
: AbstractBookmarkItem(parent)
{
m_type = AbstractBookmarkItem::Group;
m_display = name;
}
};
class BookmarkLocalGroupItem : public BookmarkGroupItem
{
public:
BookmarkLocalGroupItem(AbstractBookmarkItem *parent)
: BookmarkGroupItem(QObject::tr("Local Bookmarks"), parent)
{
QList<QStandardPaths::StandardLocation> locations;
locations << QStandardPaths::DesktopLocation
<< QStandardPaths::DocumentsLocation
<< QStandardPaths::TempLocation
<< QStandardPaths::HomeLocation
<< QStandardPaths::MusicLocation
<< QStandardPaths::PicturesLocation;
QString path;
QString name;
QString cmd;
QDir d;
// standard $HOME subdirs
foreach (QStandardPaths::StandardLocation i, locations)
{
path = QStandardPaths::writableLocation(i);
if (!d.exists(path))
{
continue;
}
name = QStandardPaths::displayName(i);
path.replace(" ", "\\ ");
cmd = "cd " + path;
addChild(new BookmarkCommandItem(name, cmd, this));
}
// system env - include dirs in the tree
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
foreach (QString i, env.keys())
{
path = env.value(i);
if (!d.exists(path) || !QFileInfo(path).isDir())
{
continue;
}
path.replace(" ", "\\ ");
cmd = "cd " + path;
addChild(new BookmarkCommandItem(i, cmd, this));
}
}
};
class BookmarkFileGroupItem : public BookmarkGroupItem
{
// hierarchy handling
// m_pos to group map. Example: group1.group2=item
QHash<QString,AbstractBookmarkItem*> m_map;
// current position level. Example "group1", "group2"
QStringList m_pos;
public:
BookmarkFileGroupItem(AbstractBookmarkItem *parent, const QString &fname)
: BookmarkGroupItem(QObject::tr("Synchronized Bookmarks"), parent)
{
QFile f(fname);
if (!f.open(QIODevice::ReadOnly))
{
qDebug() << "Canot open file" << fname;
// TODO/FIXME: message box
return;
}
QXmlStreamReader xml;
xml.setDevice(&f);
while (true)
{
xml.readNext();
switch (xml.tokenType())
{
case QXmlStreamReader::StartElement:
{
AbstractBookmarkItem *parent = m_map.contains(xmlPos()) ? m_map[xmlPos()] : this;
QString tag = xml.name().toString();
if (tag == "group")
{
QString name = xml.attributes().value("name").toString();
m_pos.append(name);
BookmarkGroupItem *i = new BookmarkGroupItem(name, parent);
parent->addChild(i);
m_map[xmlPos()] = i;
}
else if (tag == "command")
{
QString name = xml.attributes().value("name").toString();
QString cmd = xml.attributes().value("value").toString();
BookmarkCommandItem *i = new BookmarkCommandItem(name, cmd, parent);
parent->addChild(i);
}
break;
}
case QXmlStreamReader::EndElement:
{
QString tag = xml.name().toString();
if (tag == "group")
{
m_pos.removeLast();
}
break;
}
case QXmlStreamReader::Invalid:
qDebug() << "XML error: " << xml.errorString().data()
<< xml.lineNumber() << xml.columnNumber();
m_map.clear();
return;
break;
case QXmlStreamReader::EndDocument:
m_map.clear();
return;
break;
} // switch
} // while
} // constructor
QString xmlPos()
{
return m_pos.join(".");
}
};
BookmarksModel::BookmarksModel(QObject *parent)
: QAbstractItemModel(parent),
m_root(0)
{
setup();
}
void BookmarksModel::setup()
{
if (m_root)
delete m_root;
m_root = new BookmarkRootItem();
m_root->addChild(new BookmarkLocalGroupItem(m_root));
m_root->addChild(new BookmarkFileGroupItem(m_root, Properties::Instance()->bookmarksFile));
beginResetModel();
endResetModel();
}
BookmarksModel::~BookmarksModel()
{
if (m_root)
delete m_root;
}
int BookmarksModel::columnCount(const QModelIndex & /* parent */) const
{
return 2;
}
QVariant BookmarksModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
switch (role)
{
case Qt::DisplayRole:
case Qt::EditRole:
return index.column() == 0 ? getItem(index)->display() : getItem(index)->value();
case Qt::FontRole:
{
QFont f;
if (static_cast<AbstractBookmarkItem*>(index.internalPointer())->type() == AbstractBookmarkItem::Group)
{
f.setBold(true);
}
return f;
}
default:
return QVariant();
}
}
AbstractBookmarkItem *BookmarksModel::getItem(const QModelIndex &index) const
{
if (index.isValid())
{
AbstractBookmarkItem *item = static_cast<AbstractBookmarkItem*>(index.internalPointer());
if (item)
return item;
}
return m_root;
}
QVariant BookmarksModel::headerData(int section, Qt::Orientation orientation,
int role) const
{
return QVariant();
}
QModelIndex BookmarksModel::index(int row, int column, const QModelIndex &parent) const
{
if (parent.isValid() && parent.column() != 0)
return QModelIndex();
AbstractBookmarkItem *parentItem = getItem(parent);
AbstractBookmarkItem *childItem = parentItem->child(row);
if (childItem)
return createIndex(row, column, childItem);
else
return QModelIndex();
}
QModelIndex BookmarksModel::parent(const QModelIndex &index) const
{
if (!index.isValid())
return QModelIndex();
AbstractBookmarkItem *childItem = getItem(index);
AbstractBookmarkItem *parentItem = childItem->parent();
if (parentItem == m_root)
return QModelIndex();
return createIndex(parentItem->childNumber(), 0, parentItem);
}
int BookmarksModel::rowCount(const QModelIndex &parent) const
{
AbstractBookmarkItem *parentItem = getItem(parent);
return parentItem->childCount();
}
#if 0
bool BookmarksModel::setData(const QModelIndex &index, const QVariant &value,
int role)
{
if (role != Qt::EditRole)
return false;
AbstractBookmarkItem *item = getItem(index);
bool result = item->setData(index.column(), value);
if (result)
emit dataChanged(index, index);
return result;
}
#endif
BookmarksWidget::BookmarksWidget(QWidget *parent)
: QWidget(parent)
{
setupUi(this);
m_model = new BookmarksModel(this);
treeView->setModel(m_model);
treeView->header()->hide();
connect(treeView, SIGNAL(doubleClicked(QModelIndex)),
this, SLOT(handleCommand(QModelIndex)));
}
BookmarksWidget::~BookmarksWidget()
{
}
void BookmarksWidget::setup()
{
m_model->setup();
treeView->expandAll();
treeView->resizeColumnToContents(0);
treeView->resizeColumnToContents(1);
}
void BookmarksWidget::handleCommand(const QModelIndex& index)
{
AbstractBookmarkItem *item = static_cast<AbstractBookmarkItem*>(index.internalPointer());
if (!item && item->type() != AbstractBookmarkItem::Command)
return;
emit callCommand(item->value() + "\n"); // TODO/FIXME: decide how to handle EOL
}

View File

@ -1,76 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef BOOKMARKSWIDGET_H
#define BOOKMARKSWIDGET_H
#include "ui_bookmarkswidget.h"
class AbstractBookmarkItem;
class BookmarksModel;
class BookmarksWidget : public QWidget, Ui::BookmarksWidget
{
Q_OBJECT
public:
BookmarksWidget(QWidget *parent=NULL);
~BookmarksWidget();
void setup();
signals:
void callCommand(const QString &cmd);
private:
BookmarksModel *m_model;
private slots:
void handleCommand(const QModelIndex& index);
};
class BookmarksModel : public QAbstractItemModel
{
Q_OBJECT
public:
BookmarksModel(QObject *parent = 0);
~BookmarksModel();
void setup();
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const;
QModelIndex index(int row, int column,
const QModelIndex &parent = QModelIndex()) const;
QModelIndex parent(const QModelIndex &index) const;
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
private:
AbstractBookmarkItem *getItem(const QModelIndex &index) const;
AbstractBookmarkItem *m_root;
};
#endif

View File

@ -1,114 +0,0 @@
/***************************************************************************
* Copyright (C) 2006 by Vladimir Kuznetsov *
* vovanec@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 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
#define ADD_TAB "Add Tab"
#define RENAME_TAB "Rename Tab"
#define CLOSE_TAB "Close Tab"
#define NEW_WINDOW "New Window"
#define QUIT "Quit"
#define PREFERENCES "Preferences..."
#define TAB_NEXT "Next Tab"
#define TAB_PREV "Previous Tab"
#define CLEAR_TERMINAL "Clear Active Terminal"
#define SPLIT_HORIZONTAL "Split Terminal Horizontally"
#define SPLIT_VERTICAL "Split Terminal Vertically"
#define SUB_COLLAPSE "Collapse Subterminal"
#define SUB_NEXT "Next Subterminal"
#define SUB_PREV "Previous Subterminal"
#define MOVE_LEFT "Move Tab Left"
#define MOVE_RIGHT "Move Tab Right"
#define COPY_SELECTION "Copy Selection"
#define PASTE_CLIPBOARD "Paste Clipboard"
#define PASTE_SELECTION "Paste Selection"
#define ZOOM_IN "Zoom in"
#define ZOOM_OUT "Zoom out"
#define ZOOM_RESET "Zoom reset"
#define FIND "Find"
#define TOGGLE_MENU "Toggle Menu"
#define TOGGLE_BOOKMARKS "Toggle Bookmarks"
#define HIDE_WINDOW_BORDERS "Hide Window Borders"
#define SHOW_TAB_BAR "Show Tab Bar"
#define FULLSCREEN "Fullscreen"
/* Some defaults for QTerminal application */
#define DEFAULT_WIDTH 800
#define DEFAULT_HEIGHT 600
#define DEFAULT_FONT "Monospace"
// ACTIONS
#define CLEAR_TERMINAL_SHORTCUT "Ctrl+Shift+X"
#define TAB_PREV_SHORTCUT "Shift+Left"
#define TAB_NEXT_SHORTCUT "Shift+Right"
#define SUB_PREV_SHORTCUT "Shift+Down"
#define SUB_NEXT_SHORTCUT "Shift+Up"
#ifdef Q_WS_MAC
// It's tricky - Ctrl is "command" key on mac's keyboards
#define COPY_SELECTION_SHORTCUT "Ctrl+C"
#define PASTE_CLIPBOARD_SHORTCUT "Ctrl+V"
#define FIND_SHORTCUT "Ctrl+F"
#define NEW_WINDOW_SHORTCUT "Ctrl+N"
#define ADD_TAB_SHORTCUT "Ctrl+T"
#define CLOSE_TAB_SHORTCUT "Ctrl+W"
#define TOGGLE_MENU_SHORTCUT "Ctrl+M"
#define TOGGLE_BOOKMARKS_SHORTCUT "Ctrl+B"
#else
#define COPY_SELECTION_SHORTCUT "Ctrl+Shift+C"
#define PASTE_CLIPBOARD_SHORTCUT "Ctrl+Shift+V"
#define PASTE_SELECTION_SHORTCUT "Shift+Ins"
#define FIND_SHORTCUT "Ctrl+Shift+F"
#define NEW_WINDOW_SHORTCUT "Ctrl+Shift+N"
#define ADD_TAB_SHORTCUT "Ctrl+Shift+T"
#define CLOSE_TAB_SHORTCUT "Ctrl+Shift+W"
#define TOGGLE_MENU_SHORTCUT "Ctrl+Shift+M"
#define TOGGLE_BOOKMARKS_SHORTCUT "Ctrl+Shift+B"
#endif
#define ZOOM_IN_SHORTCUT "Ctrl++"
#define ZOOM_OUT_SHORTCUT "Ctrl+-"
#define ZOOM_RESET_SHORTCUT "Ctrl+0"
#define MOVE_LEFT_SHORTCUT "Shift+Alt+Left"
#define MOVE_RIGHT_SHORTCUT "Shift+Alt+Right"
#define RENAME_SESSION_SHORTCUT "Shift+Alt+S"
#define FULLSCREEN_SHORTCUT "F11"
// XON/XOFF features:
#define FLOW_CONTROL_ENABLED false
#define FLOW_CONTROL_WARNING_ENABLED false
#endif

View File

@ -1,56 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include "fontdialog.h"
FontDialog::FontDialog(const QFont &f)
: QDialog(0)
{
setupUi(this);
fontComboBox->setFontFilters(QFontComboBox::MonospacedFonts
| QFontComboBox::NonScalableFonts
| QFontComboBox::ScalableFonts);
fontComboBox->setCurrentFont(f);
fontComboBox->setEditable(false);
sizeSpinBox->setValue(f.pointSize());
setFontSample();
connect(fontComboBox, SIGNAL(currentFontChanged(QFont)),
this, SLOT(setFontSample()));
connect(sizeSpinBox, SIGNAL(valueChanged(int)),
this, SLOT(setFontSample()));
}
QFont FontDialog::getFont()
{
QFont f = fontComboBox->currentFont();
f.setPointSize(sizeSpinBox->value());
return f;
}
void FontDialog::setFontSample()
{
QFont f = getFont();
previewLabel->setFont(f);
QString sample("%1 %2 pt");
previewLabel->setText(sample.arg(f.family()).arg(f.pointSize()));
}

View File

@ -1,39 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef FONT_DIALOG
#define FONT_DIALOG
#include "ui_fontdialog.h"
#include "properties.h"
class FontDialog : public QDialog, public Ui::FontDialog
{
Q_OBJECT
public:
FontDialog(const QFont &f);
QFont getFont();
private slots:
void setFontSample();
};
#endif

View File

@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BookmarksWidget</class>
<widget class="QWidget" name="BookmarksWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>323</width>
<height>450</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>1</number>
</property>
<property name="topMargin">
<number>1</number>
</property>
<property name="rightMargin">
<number>1</number>
</property>
<property name="bottomMargin">
<number>1</number>
</property>
<property name="spacing">
<number>1</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Filter:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="filterEdit"/>
</item>
<item row="1" column="0" colspan="2">
<widget class="QTreeView" name="treeView">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,114 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FontDialog</class>
<widget class="QDialog" name="FontDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>296</width>
<height>187</height>
</rect>
</property>
<property name="windowTitle">
<string>Select Terminal Font</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="3" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
<item row="1" column="0">
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Font:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QFontComboBox" name="fontComboBox"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Size:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="sizeSpinBox">
<property name="minimum">
<number>6</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Preview</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="previewLabel"/>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Select Terminal Font</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>FontDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>FontDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -1,667 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PropertiesDialog</class>
<widget class="QDialog" name="PropertiesDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>715</width>
<height>487</height>
</rect>
</property>
<property name="windowTitle">
<string>Terminal settings</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="2" column="0" colspan="3">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QListWidget" name="listWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>180</width>
<height>16777215</height>
</size>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<item>
<property name="text">
<string>Appearance</string>
</property>
</item>
<item>
<property name="text">
<string>Behavior</string>
</property>
</item>
<item>
<property name="text">
<string>Shortcuts</string>
</property>
</item>
<item>
<property name="text">
<string>Dropdown</string>
</property>
</item>
<item>
<property name="text">
<string>Bookmarks</string>
</property>
</item>
</widget>
</item>
<item row="0" column="2">
<widget class="QStackedWidget" name="stackedWidget">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="lookAndFeelPage">
<layout class="QGridLayout" name="gridLayout_3">
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Color scheme</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="colorSchemaCombo"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Widget style</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="styleComboBox"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Scrollbar position</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="tabsPos_comboBox"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Tabs position</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="scrollBarPos_comboBox"/>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="showMenuCheckBox">
<property name="text">
<string>Show the menu bar</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QCheckBox" name="hideTabBarCheckBox">
<property name="text">
<string>Hide tab bar with only one tab</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QCheckBox" name="highlightCurrentCheckBox">
<property name="text">
<string>Show a border around the current terminal</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Application transparency</string>
</property>
<property name="buddy">
<cstring>appTransparencyBox</cstring>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Terminal transparency</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QSpinBox" name="appTransparencyBox">
<property name="suffix">
<string> %</string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>99</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Start with preset:</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QSpinBox" name="termTransparencyBox">
<property name="suffix">
<string> %</string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="QComboBox" name="terminalPresetComboBox">
<item>
<property name="text">
<string>None (single terminal)</string>
</property>
</item>
<item>
<property name="text">
<string>2 terminals horizontally</string>
</property>
</item>
<item>
<property name="text">
<string>2 terminals vertically</string>
</property>
</item>
<item>
<property name="text">
<string>4 terminals</string>
</property>
</item>
</widget>
</item>
<item row="12" column="0" colspan="2">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" rowspan="2" colspan="2">
<widget class="QWidget" name="fontWidget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="fontLabel">
<property name="text">
<string>Font</string>
</property>
</widget>
</item>
<item>
<spacer name="fontSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="fontSampleLabel">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="changeFontButton">
<property name="text">
<string>&amp;Change...</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="historyPage">
<layout class="QGridLayout" name="gridLayout_5">
<item row="2" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>57</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Emulation</string>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="0">
<widget class="QComboBox" name="emulationComboBox"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Behavior</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Action after paste</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QSpinBox" name="historyLimitedTo">
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>150</width>
<height>139</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="0" colspan="3">
<widget class="QCheckBox" name="useCwdCheckBox">
<property name="text">
<string>Open new terminals in current working directory</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="3">
<widget class="QCheckBox" name="saveSizeOnExitCheckBox">
<property name="text">
<string>Save Size when closing</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="3">
<widget class="QCheckBox" name="savePosOnExitCheckBox">
<property name="text">
<string>Save Position when closing</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="3">
<widget class="QCheckBox" name="askOnExitCheckBox">
<property name="text">
<string>Ask for confirmation when closing</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QComboBox" name="motionAfterPasting_comboBox"/>
</item>
<item row="1" column="0" colspan="3">
<widget class="QRadioButton" name="historyUnlimited">
<property name="text">
<string>Unlimited history</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QRadioButton" name="historyLimited">
<property name="text">
<string>History size (in lines)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="shortcutsPage">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTableWidget" name="shortcutsWidget">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="horizontalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>105</number>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Shortcut</string>
</property>
</column>
<column>
<property name="text">
<string>Key</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="dropShowOnStartCheckBox">
<property name="text">
<string>Show on start</string>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Size</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="dropHeightLabel">
<property name="text">
<string>Height</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="dropHeightSpinBox">
<property name="suffix">
<string>%</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="dropWidthLabel">
<property name="text">
<string>Width</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="dropWidthSpinBox">
<property name="suffix">
<string>%</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="dropShortCutLabel">
<property name="text">
<string>Shortcut:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="dropShortCutEdit"/>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>78</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QGridLayout" name="gridLayout_9">
<item row="3" column="0">
<widget class="QGroupBox" name="groupBox_5">
<property name="title">
<string>Edit bookmark file contents</string>
</property>
<layout class="QGridLayout" name="gridLayout_10">
<item row="0" column="0">
<widget class="QPlainTextEdit" name="bookmarkPlainEdit">
<property name="font">
<font>
<family>Bera Sans Mono [bitstream]</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="useBookmarksCheckBox">
<property name="text">
<string>Enable bookmarks</string>
</property>
</widget>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_10">
<property name="text">
<string>Bookmark file</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="bookmarksLineEdit"/>
</item>
<item>
<widget class="QPushButton" name="bookmarksButton">
<property name="text">
<string>Find...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>PropertiesDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>224</x>
<y>227</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>248</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>PropertiesDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>292</x>
<y>233</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>248</y>
</hint>
</hints>
</connection>
<connection>
<sender>listWidget</sender>
<signal>currentRowChanged(int)</signal>
<receiver>stackedWidget</receiver>
<slot>setCurrentIndex(int)</slot>
<hints>
<hint type="sourcelabel">
<x>96</x>
<y>70</y>
</hint>
<hint type="destinationlabel">
<x>147</x>
<y>24</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -1,146 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>mainWindow</class>
<widget class="QMainWindow" name="mainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="TabWidget" name="consoleTabulator">
<property name="minimumSize">
<size>
<width>320</width>
<height>200</height>
</size>
</property>
<property name="tabPosition">
<enum>QTabWidget::South</enum>
</property>
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>-1</number>
</property>
<property name="elideMode">
<enum>Qt::ElideNone</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="m_menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>26</height>
</rect>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<widget class="QMenu" name="menu_File">
<property name="title">
<string>&amp;File</string>
</property>
<property name="Title" stdset="0">
<string/>
</property>
</widget>
<widget class="QMenu" name="menu_Actions">
<property name="title">
<string>&amp;Actions</string>
</property>
</widget>
<widget class="QMenu" name="menu_Help">
<property name="title">
<string>&amp;Help</string>
</property>
<addaction name="actAbout"/>
<addaction name="actAboutQt"/>
</widget>
<widget class="QMenu" name="menu_Window">
<property name="title">
<string>&amp;View</string>
</property>
</widget>
<widget class="QMenu" name="menu_Edit">
<property name="title">
<string>&amp;Edit</string>
</property>
</widget>
<addaction name="menu_File"/>
<addaction name="menu_Actions"/>
<addaction name="menu_Edit"/>
<addaction name="menu_Window"/>
<addaction name="menu_Help"/>
</widget>
<action name="actAbout">
<property name="icon">
<iconset theme="help-about">
<normaloff/>
</iconset>
</property>
<property name="text">
<string>&amp;About...</string>
</property>
</action>
<action name="actAboutQt">
<property name="text">
<string>About &amp;Qt...</string>
</property>
</action>
<action name="actProperties">
<property name="text">
<string>&amp;Preferences...</string>
</property>
</action>
<action name="actQuit">
<property name="icon">
<iconset theme="application-exit">
<normaloff/>
</iconset>
</property>
<property name="text">
<string>&amp;Quit</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
<class>TabWidget</class>
<extends>QTabWidget</extends>
<header>tabwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -1,16 +0,0 @@
<RCC>
<qresource prefix="/icons/QTerminal">
<file alias="index.theme">icons/index.theme</file>
<file alias="64x64/utilities-terminal">icons/qterminal.png</file>
<file alias="32x32/list-add.png">icons/list-add.png</file>
<file alias="32x32/list-remove.png">icons/list-remove.png</file>
<file alias="32x32/edit-copy.png">icons/edit-copy.png</file>
<file alias="32x32/edit-paste.png">icons/edit-paste.png</file>
<file alias="32x32/document-close.png">icons/document-close.png</file>
<file alias="32x32/application-exit.png">icons/application-exit.png</file>
<file alias="16x16/object-locked.png">icons/locked.png</file>
<file alias="16x16/object-unlocked.png">icons/notlocked.png</file>
<file alias="22x22/zoom-in.png">icons/zoom-in.png</file>
<file alias="22x22/zoom-out.png">icons/zoom-out.png</file>
</qresource>
</RCC>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 937 B

View File

@ -1,31 +0,0 @@
[Icon Theme]
Name=QTerminal
Comment=Default Icons used in QTerminal
Inherits=default
Directories=16x16,22x22,24x24,32x32,scalable
[16x16]
Size=16
Type=Fixed
[22x22]
Size=22
Type=Fixed
[24x24]
Size=24
Type=Fixed
[32x32]
Size=32
Type=Fixed
[64x64]
Size=64
Type=Fixed
[scalable]
Size=48
Type=Scalable
MinSize=32
MaxSize=256

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,60 +0,0 @@
#
# This is evil! I don't know why it works this way.
# But it works.
#
# First - collect all Qt and App plugins. Then call that bloody
# cmake FIXUP_BUNDLE macro which copis all files into MacOS directory.
# So it's moved back to plugins tree where its expected by a) Qt b) application
#
# I hate it.
#
# Dunno what id this var for...
SET(DIRS @QT_LIBRARY_DIRS@;@QT_PLUGINS_DIR@;@CMAKE_INSTALL_PREFIX@/Contents/plugins/)
# qt_menu.nib is mandatory for mac
if (@QT_USE_FRAMEWORKS@)
file(COPY @QT_LIBRARY_DIR@/QtGui.framework/Resources/qt_menu.nib
DESTINATION @CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/Resources)
else ()
file(COPY @QT_LIBRARY_DIR@/Resources/qt_menu.nib
DESTINATION @CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/Resources)
endif ()
# the qt.conf is mandatory too
file(WRITE @CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/Resources/qt.conf "[Paths]
Plugins = plugins")
# copy all (required) Qt plugs into bundle
message(STATUS "Searching for Qt plugs in: @QT_PLUGINS_DIR@/*@CMAKE_SHARED_LIBRARY_SUFFIX@")
file(COPY @QT_PLUGINS_DIR@/
DESTINATION @CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/plugins/
REGEX "(designer|script|debug|sql|odbc|phonon|svg|mng|tiff|gif|bearer|accessible|)" EXCLUDE)
#REGEX "(.*)" EXCLUDE)
# try to FIXUP_BUNDLE - to change otool -L paths
# currently it creates lots of false warnings when plugins are compiled as dylibs
# warning: cannot resolve item 'libfoobar.dylib'
# etc. Ignore it.
message(STATUS "Searching for plugs in bundle: @CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/plugins/*@CMAKE_SHARED_LIBRARY_SUFFIX@")
file(GLOB_RECURSE inplugs
@CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/plugins/*@CMAKE_SHARED_LIBRARY_SUFFIX@)
#message(STATUS "Dylibs: ${inplugs}")
#message(STATUS "DIR: ${DIRS}")
include(BundleUtilities)
fixup_bundle(@CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app "${inplugs}" @CMAKE_INSTALL_PREFIX@/Contents/plugins/)#${DIRS} )
# FIXUP_BUNDLE copies it into MacOS dir. But we need it in plugins *tree*,
# not a flat dir.
foreach (item IN LISTS inplugs)
#message(STATUS "IN: ${item}")
get_filename_component(fname ${item} NAME)
message(STATUS "Moving ${fname} back to plugins tree: ${item}")
#message(STATUS " ${fname}")
#message(STATUS " src: @CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/MacOS/${fname}")
#message(STATUS " tgt: ${item}")
execute_process(COMMAND mv @CMAKE_INSTALL_PREFIX@/@EXE_NAME@.app/Contents/MacOS/${fname} ${item})
endforeach()

Binary file not shown.

View File

@ -1,155 +0,0 @@
/***************************************************************************
* Copyright (C) 2006 by Vladimir Kuznetsov *
* vovanec@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 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <QApplication>
#include <QtGlobal>
#include <stdio.h>
#include <getopt.h>
#include <stdlib.h>
#include "mainwindow.h"
#define out
const char* const short_options = "vhw:e:dp:";
const struct option long_options[] = {
{"version", 0, NULL, 'v'},
{"help", 0, NULL, 'h'},
{"workdir", 1, NULL, 'w'},
{"execute", 1, NULL, 'e'},
{"drop", 0, NULL, 'd'},
{"profile", 1, NULL, 'p'},
{NULL, 0, NULL, 0}
};
void print_usage_and_exit(int code)
{
printf("QTerminal %s\n", STR_VERSION);
puts("Usage: qterminal [OPTION]...\n");
puts(" -d, --drop Start in \"dropdown mode\" (like Yakuake or Tilda)");
puts(" -e, --execute <command> Execute command instead of shell");
puts(" -h, --help Print this help");
puts(" -p, --profile Load qterminal with specific options");
puts(" -v, --version Prints application version and exits");
puts(" -w, --workdir <dir> Start session with specified work directory");
puts("\nHomepage: <https://github.com/lxde/qterminal>");
puts("Report bugs to <https://github.com/lxde/qterminal/issues>");
exit(code);
}
void print_version_and_exit(int code=0)
{
printf("%s\n", STR_VERSION);
exit(code);
}
void parse_args(int argc, char* argv[], QString& workdir, QString & shell_command, out bool& dropMode)
{
int next_option;
dropMode = false;
do{
next_option = getopt_long(argc, argv, short_options, long_options, NULL);
switch(next_option)
{
case 'h':
print_usage_and_exit(0);
case 'w':
workdir = QString(optarg);
break;
case 'e':
shell_command = QString(optarg);
// #15 "Raw" -e params
// Passing "raw" params (like konsole -e mcedit /tmp/tmp.txt") is more preferable - then I can call QString("qterminal -e ") + cmd_line in other programs
while (optind < argc)
{
//printf("arg: %d - %s\n", optind, argv[optind]);
shell_command += ' ' + QString(argv[optind++]);
}
break;
case 'd':
dropMode = true;
break;
case 'p':
Properties::Instance(QString(optarg));
break;
case '?':
print_usage_and_exit(1);
case 'v':
print_version_and_exit();
}
}
while(next_option != -1);
}
int main(int argc, char *argv[])
{
setenv("TERM", "xterm", 1); // TODO/FIXME: why?
QApplication::setApplicationName("qterminal");
QApplication::setApplicationVersion(STR_VERSION);
QApplication::setOrganizationDomain("qterminal.org");
// Warning: do not change settings format. It can screw bookmarks later.
QSettings::setDefaultFormat(QSettings::IniFormat);
QApplication app(argc, argv);
QString workdir, shell_command;
bool dropMode;
parse_args(argc, argv, workdir, shell_command, dropMode);
if (workdir.isEmpty())
workdir = QDir::currentPath();
// icons
/* setup our custom icon theme if there is no system theme (OS X, Windows) */
if (QIcon::themeName().isEmpty())
QIcon::setThemeName("QTerminal");
// translations
QString fname = QString("qterminal_%1.qm").arg(QLocale::system().name().left(5));
QTranslator translator;
#ifdef TRANSLATIONS_DIR
qDebug() << "TRANSLATIONS_DIR: Loading translation file" << fname << "from dir" << TRANSLATIONS_DIR;
qDebug() << "load success:" << translator.load(fname, TRANSLATIONS_DIR, "_");
#endif
#ifdef APPLE_BUNDLE
qDebug() << "APPLE_BUNDLE: Loading translator file" << fname << "from dir" << QApplication::applicationDirPath()+"../translations";
qDebug() << "load success:" << translator.load(fname, QApplication::applicationDirPath()+"../translations", "_");
#endif
app.installTranslator(&translator);
MainWindow *window;
if (dropMode)
{
QWidget *hiddenPreviewParent = new QWidget(0, Qt::Tool);
window = new MainWindow(workdir, shell_command, dropMode, hiddenPreviewParent);
if (Properties::Instance()->dropShowOnStart)
window->show();
}
else
{
window = new MainWindow(workdir, shell_command, dropMode);
window->show();
}
int ret = app.exec();
delete window;
return ret;
}

View File

@ -1,702 +0,0 @@
/***************************************************************************
* Copyright (C) 2006 by Vladimir Kuznetsov *
* vovanec@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 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <QDockWidget>
#include <QDesktopWidget>
#include <QToolButton>
#include <QMessageBox>
#include "mainwindow.h"
#include "tabwidget.h"
#include "termwidgetholder.h"
#include "config.h"
#include "properties.h"
#include "propertiesdialog.h"
#include "bookmarkswidget.h"
// TODO/FXIME: probably remove. QSS makes it unusable on mac...
#define QSS_DROP "MainWindow {border: 1px solid rgba(0, 0, 0, 50%);}\n"
MainWindow::MainWindow(const QString& work_dir,
const QString& command,
bool dropMode,
QWidget * parent,
Qt::WindowFlags f)
: QMainWindow(parent,f),
m_initShell(command),
m_initWorkDir(work_dir),
m_dropLockButton(0),
m_dropMode(dropMode)
{
setAttribute(Qt::WA_TranslucentBackground);
setupUi(this);
Properties::Instance()->migrate_settings();
Properties::Instance()->loadSettings();
m_bookmarksDock = new QDockWidget(tr("Bookmarks"), this);
m_bookmarksDock->setObjectName("BookmarksDockWidget");
m_bookmarksDock->setAutoFillBackground(true);
BookmarksWidget *bookmarksWidget = new BookmarksWidget(m_bookmarksDock);
bookmarksWidget->setAutoFillBackground(true);
m_bookmarksDock->setWidget(bookmarksWidget);
addDockWidget(Qt::LeftDockWidgetArea, m_bookmarksDock);
connect(bookmarksWidget, SIGNAL(callCommand(QString)),
this, SLOT(bookmarksWidget_callCommand(QString)));
connect(m_bookmarksDock, SIGNAL(visibilityChanged(bool)),
this, SLOT(bookmarksDock_visibilityChanged(bool)));
connect(actAbout, SIGNAL(triggered()), SLOT(actAbout_triggered()));
connect(actAboutQt, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
connect(&m_dropShortcut, SIGNAL(activated()), SLOT(showHide()));
setContentsMargins(0, 0, 0, 0);
if (m_dropMode) {
this->enableDropMode();
setStyleSheet(QSS_DROP);
}
else {
if (Properties::Instance()->saveSizeOnExit) {
resize(Properties::Instance()->mainWindowSize);
}
if (Properties::Instance()->savePosOnExit) {
move(Properties::Instance()->mainWindowPosition);
}
restoreState(Properties::Instance()->mainWindowState);
}
consoleTabulator->setAutoFillBackground(true);
connect(consoleTabulator, SIGNAL(closeTabNotification()), SLOT(close()));
consoleTabulator->setWorkDirectory(work_dir);
consoleTabulator->setTabPosition((QTabWidget::TabPosition)Properties::Instance()->tabsPos);
//consoleTabulator->setShellProgram(command);
setWindowTitle("QTerminal");
setWindowIcon(QIcon::fromTheme("utilities-terminal"));
setup_FileMenu_Actions();
setup_ActionsMenu_Actions();
setup_ViewMenu_Actions();
/* The tab should be added after all changes are made to
the main window; otherwise, the initial prompt might
get jumbled because of changes in internal geometry. */
consoleTabulator->addNewTab(command);
// Add global rename Session shortcut
renameSession = new QAction(tr("Rename Session"), this);
renameSession->setShortcut(QKeySequence(tr(RENAME_SESSION_SHORTCUT)));
connect(renameSession, SIGNAL(triggered()), consoleTabulator, SLOT(renameSession()));
}
MainWindow::~MainWindow()
{
}
void MainWindow::enableDropMode()
{
setWindowFlags(Qt::Dialog | Qt::WindowStaysOnTopHint | Qt::CustomizeWindowHint);
m_dropLockButton = new QToolButton(this);
consoleTabulator->setCornerWidget(m_dropLockButton, Qt::BottomRightCorner);
m_dropLockButton->setCheckable(true);
m_dropLockButton->connect(m_dropLockButton, SIGNAL(clicked(bool)), this, SLOT(setKeepOpen(bool)));
setKeepOpen(Properties::Instance()->dropKeepOpen);
m_dropLockButton->setAutoRaise(true);
setDropShortcut(Properties::Instance()->dropShortCut);
realign();
}
void MainWindow::setDropShortcut(QKeySequence dropShortCut)
{
if (!m_dropMode)
return;
if (m_dropShortcut.shortcut() != dropShortCut)
{
m_dropShortcut.setShortcut(dropShortCut);
qWarning() << tr("Press \"%1\" to see the terminal.").arg(dropShortCut.toString());
}
}
void MainWindow::setup_ActionsMenu_Actions()
{
QSettings settings;
settings.beginGroup("Shortcuts");
QKeySequence seq;
Properties::Instance()->actions[CLEAR_TERMINAL] = new QAction(QIcon::fromTheme("edit-clear"), tr("&Clear Current Tab"), this);
seq = QKeySequence::fromString(settings.value(CLEAR_TERMINAL, CLEAR_TERMINAL_SHORTCUT).toString());
Properties::Instance()->actions[CLEAR_TERMINAL]->setShortcut(seq);
connect(Properties::Instance()->actions[CLEAR_TERMINAL], SIGNAL(triggered()), consoleTabulator, SLOT(clearActiveTerminal()));
menu_Actions->addAction(Properties::Instance()->actions[CLEAR_TERMINAL]);
addAction(Properties::Instance()->actions[CLEAR_TERMINAL]);
menu_Actions->addSeparator();
Properties::Instance()->actions[TAB_NEXT] = new QAction(QIcon::fromTheme("go-next"), tr("&Next Tab"), this);
seq = QKeySequence::fromString( settings.value(TAB_NEXT, TAB_NEXT_SHORTCUT).toString() );
Properties::Instance()->actions[TAB_NEXT]->setShortcut(seq);
connect(Properties::Instance()->actions[TAB_NEXT], SIGNAL(triggered()), consoleTabulator, SLOT(switchToRight()));
menu_Actions->addAction(Properties::Instance()->actions[TAB_NEXT]);
addAction(Properties::Instance()->actions[TAB_NEXT]);
Properties::Instance()->actions[TAB_PREV] = new QAction(QIcon::fromTheme("go-previous"), tr("&Previous Tab"), this);
seq = QKeySequence::fromString( settings.value(TAB_PREV, TAB_PREV_SHORTCUT).toString() );
Properties::Instance()->actions[TAB_PREV]->setShortcut(seq);
connect(Properties::Instance()->actions[TAB_PREV], SIGNAL(triggered()), consoleTabulator, SLOT(switchToLeft()));
menu_Actions->addAction(Properties::Instance()->actions[TAB_PREV]);
addAction(Properties::Instance()->actions[TAB_PREV]);
Properties::Instance()->actions[MOVE_LEFT] = new QAction(tr("Move Tab &Left"), this);
seq = QKeySequence::fromString( settings.value(MOVE_LEFT, MOVE_LEFT_SHORTCUT).toString() );
Properties::Instance()->actions[MOVE_LEFT]->setShortcut(seq);
connect(Properties::Instance()->actions[MOVE_LEFT], SIGNAL(triggered()), consoleTabulator, SLOT(moveLeft()));
menu_Actions->addAction(Properties::Instance()->actions[MOVE_LEFT]);
addAction(Properties::Instance()->actions[MOVE_LEFT]);
Properties::Instance()->actions[MOVE_RIGHT] = new QAction(tr("Move Tab &Right"), this);
seq = QKeySequence::fromString( settings.value(MOVE_RIGHT, MOVE_RIGHT_SHORTCUT).toString() );
Properties::Instance()->actions[MOVE_RIGHT]->setShortcut(seq);
connect(Properties::Instance()->actions[MOVE_RIGHT], SIGNAL(triggered()), consoleTabulator, SLOT(moveRight()));
menu_Actions->addAction(Properties::Instance()->actions[MOVE_RIGHT]);
addAction(Properties::Instance()->actions[MOVE_RIGHT]);
menu_Actions->addSeparator();
Properties::Instance()->actions[SPLIT_HORIZONTAL] = new QAction(tr("Split Terminal &Horizontally"), this);
seq = QKeySequence::fromString( settings.value(SPLIT_HORIZONTAL).toString() );
Properties::Instance()->actions[SPLIT_HORIZONTAL]->setShortcut(seq);
connect(Properties::Instance()->actions[SPLIT_HORIZONTAL], SIGNAL(triggered()), consoleTabulator, SLOT(splitHorizontally()));
menu_Actions->addAction(Properties::Instance()->actions[SPLIT_HORIZONTAL]);
addAction(Properties::Instance()->actions[SPLIT_HORIZONTAL]);
Properties::Instance()->actions[SPLIT_VERTICAL] = new QAction(tr("Split Terminal &Vertically"), this);
seq = QKeySequence::fromString( settings.value(SPLIT_VERTICAL).toString() );
Properties::Instance()->actions[SPLIT_VERTICAL]->setShortcut(seq);
connect(Properties::Instance()->actions[SPLIT_VERTICAL], SIGNAL(triggered()), consoleTabulator, SLOT(splitVertically()));
menu_Actions->addAction(Properties::Instance()->actions[SPLIT_VERTICAL]);
addAction(Properties::Instance()->actions[SPLIT_VERTICAL]);
Properties::Instance()->actions[SUB_COLLAPSE] = new QAction(tr("&Collapse Subterminal"), this);
seq = QKeySequence::fromString( settings.value(SUB_COLLAPSE).toString() );
Properties::Instance()->actions[SUB_COLLAPSE]->setShortcut(seq);
connect(Properties::Instance()->actions[SUB_COLLAPSE], SIGNAL(triggered()), consoleTabulator, SLOT(splitCollapse()));
menu_Actions->addAction(Properties::Instance()->actions[SUB_COLLAPSE]);
addAction(Properties::Instance()->actions[SUB_COLLAPSE]);
Properties::Instance()->actions[SUB_NEXT] = new QAction(QIcon::fromTheme("go-up"), tr("N&ext Subterminal"), this);
seq = QKeySequence::fromString( settings.value(SUB_NEXT, SUB_NEXT_SHORTCUT).toString() );
Properties::Instance()->actions[SUB_NEXT]->setShortcut(seq);
connect(Properties::Instance()->actions[SUB_NEXT], SIGNAL(triggered()), consoleTabulator, SLOT(switchNextSubterminal()));
menu_Actions->addAction(Properties::Instance()->actions[SUB_NEXT]);
addAction(Properties::Instance()->actions[SUB_NEXT]);
Properties::Instance()->actions[SUB_PREV] = new QAction(QIcon::fromTheme("go-down"), tr("P&revious Subterminal"), this);
seq = QKeySequence::fromString( settings.value(SUB_PREV, SUB_PREV_SHORTCUT).toString() );
Properties::Instance()->actions[SUB_PREV]->setShortcut(seq);
connect(Properties::Instance()->actions[SUB_PREV], SIGNAL(triggered()), consoleTabulator, SLOT(switchPrevSubterminal()));
menu_Actions->addAction(Properties::Instance()->actions[SUB_PREV]);
addAction(Properties::Instance()->actions[SUB_PREV]);
menu_Actions->addSeparator();
// Copy and Paste are only added to the table for the sake of bindings at the moment; there is no Edit menu, only a context menu.
Properties::Instance()->actions[COPY_SELECTION] = new QAction(QIcon::fromTheme("edit-copy"), tr("Copy &Selection"), this);
seq = QKeySequence::fromString( settings.value(COPY_SELECTION, COPY_SELECTION_SHORTCUT).toString() );
Properties::Instance()->actions[COPY_SELECTION]->setShortcut(seq);
connect(Properties::Instance()->actions[COPY_SELECTION], SIGNAL(triggered()), consoleTabulator, SLOT(copySelection()));
menu_Edit->addAction(Properties::Instance()->actions[COPY_SELECTION]);
addAction(Properties::Instance()->actions[COPY_SELECTION]);
Properties::Instance()->actions[PASTE_CLIPBOARD] = new QAction(QIcon::fromTheme("edit-paste"), tr("Paste Clip&board"), this);
seq = QKeySequence::fromString( settings.value(PASTE_CLIPBOARD, PASTE_CLIPBOARD_SHORTCUT).toString() );
Properties::Instance()->actions[PASTE_CLIPBOARD]->setShortcut(seq);
connect(Properties::Instance()->actions[PASTE_CLIPBOARD], SIGNAL(triggered()), consoleTabulator, SLOT(pasteClipboard()));
menu_Edit->addAction(Properties::Instance()->actions[PASTE_CLIPBOARD]);
addAction(Properties::Instance()->actions[PASTE_CLIPBOARD]);
Properties::Instance()->actions[PASTE_SELECTION] = new QAction(QIcon::fromTheme("edit-paste"), tr("Paste S&election"), this);
seq = QKeySequence::fromString( settings.value(PASTE_SELECTION, PASTE_SELECTION_SHORTCUT).toString() );
Properties::Instance()->actions[PASTE_SELECTION]->setShortcut(seq);
connect(Properties::Instance()->actions[PASTE_SELECTION], SIGNAL(triggered()), consoleTabulator, SLOT(pasteSelection()));
menu_Edit->addAction(Properties::Instance()->actions[PASTE_SELECTION]);
addAction(Properties::Instance()->actions[PASTE_SELECTION]);
Properties::Instance()->actions[ZOOM_IN] = new QAction(QIcon::fromTheme("zoom-in"), tr("Zoom &in"), this);
seq = QKeySequence::fromString( settings.value(ZOOM_IN, ZOOM_IN_SHORTCUT).toString() );
Properties::Instance()->actions[ZOOM_IN]->setShortcut(seq);
connect(Properties::Instance()->actions[ZOOM_IN], SIGNAL(triggered()), consoleTabulator, SLOT(zoomIn()));
menu_Edit->addAction(Properties::Instance()->actions[ZOOM_IN]);
addAction(Properties::Instance()->actions[ZOOM_IN]);
Properties::Instance()->actions[ZOOM_OUT] = new QAction(QIcon::fromTheme("zoom-out"), tr("Zoom &out"), this);
seq = QKeySequence::fromString( settings.value(ZOOM_OUT, ZOOM_OUT_SHORTCUT).toString() );
Properties::Instance()->actions[ZOOM_OUT]->setShortcut(seq);
connect(Properties::Instance()->actions[ZOOM_OUT], SIGNAL(triggered()), consoleTabulator, SLOT(zoomOut()));
menu_Edit->addAction(Properties::Instance()->actions[ZOOM_OUT]);
addAction(Properties::Instance()->actions[ZOOM_OUT]);
Properties::Instance()->actions[ZOOM_RESET] = new QAction(QIcon::fromTheme("zoom-original"), tr("Zoom rese&t"), this);
seq = QKeySequence::fromString( settings.value(ZOOM_RESET, ZOOM_RESET_SHORTCUT).toString() );
Properties::Instance()->actions[ZOOM_RESET]->setShortcut(seq);
connect(Properties::Instance()->actions[ZOOM_RESET], SIGNAL(triggered()), consoleTabulator, SLOT(zoomReset()));
menu_Edit->addAction(Properties::Instance()->actions[ZOOM_RESET]);
addAction(Properties::Instance()->actions[ZOOM_RESET]);
menu_Actions->addSeparator();
Properties::Instance()->actions[FIND] = new QAction(QIcon::fromTheme("edit-find"), tr("&Find..."), this);
seq = QKeySequence::fromString( settings.value(FIND, FIND_SHORTCUT).toString() );
Properties::Instance()->actions[FIND]->setShortcut(seq);
connect(Properties::Instance()->actions[FIND], SIGNAL(triggered()), this, SLOT(find()));
menu_Actions->addAction(Properties::Instance()->actions[FIND]);
addAction(Properties::Instance()->actions[FIND]);
#if 0
act = new QAction(this);
act->setSeparator(true);
// TODO/FIXME: unimplemented for now
act = new QAction(tr("&Save Session"), this);
// do not use sequences for this task - it collides with eg. mc shorcuts
// and mainly - it's not used too often
//act->setShortcut(QKeySequence::Save);
connect(act, SIGNAL(triggered()), consoleTabulator, SLOT(saveSession()));
act = new QAction(tr("&Load Session"), this);
// do not use sequences for this task - it collides with eg. mc shorcuts
// and mainly - it's not used too often
//act->setShortcut(QKeySequence::Open);
connect(act, SIGNAL(triggered()), consoleTabulator, SLOT(loadSession()));
#endif
Properties::Instance()->actions[TOGGLE_MENU] = new QAction(tr("&Toggle Menu"), this);
seq = QKeySequence::fromString( settings.value(TOGGLE_MENU, TOGGLE_MENU_SHORTCUT).toString() );
Properties::Instance()->actions[TOGGLE_MENU]->setShortcut(seq);
connect(Properties::Instance()->actions[TOGGLE_MENU], SIGNAL(triggered()), this, SLOT(toggleMenu()));
addAction(Properties::Instance()->actions[TOGGLE_MENU]);
// tis is correct - add action to main window - not to menu to keep toggle working
settings.endGroup();
// apply props
propertiesChanged();
}
void MainWindow::setup_FileMenu_Actions()
{
QSettings settings;
settings.beginGroup("Shortcuts");
QKeySequence seq;
Properties::Instance()->actions[ADD_TAB] = new QAction(QIcon::fromTheme("list-add"), tr("&New Tab"), this);
seq = QKeySequence::fromString( settings.value(ADD_TAB, ADD_TAB_SHORTCUT).toString() );
Properties::Instance()->actions[ADD_TAB]->setShortcut(seq);
connect(Properties::Instance()->actions[ADD_TAB], SIGNAL(triggered()), this, SLOT(addNewTab()));
menu_File->addAction(Properties::Instance()->actions[ADD_TAB]);
addAction(Properties::Instance()->actions[ADD_TAB]);
QMenu *presetsMenu = new QMenu(tr("New Tab From &Preset"), this);
presetsMenu->addAction(QIcon(), tr("1 &Terminal"),
consoleTabulator, SLOT(addNewTab()));
presetsMenu->addAction(QIcon(), tr("2 &Horizontal Terminals"),
consoleTabulator, SLOT(preset2Horizontal()));
presetsMenu->addAction(QIcon(), tr("2 &Vertical Terminals"),
consoleTabulator, SLOT(preset2Vertical()));
presetsMenu->addAction(QIcon(), tr("4 Terminal&s"),
consoleTabulator, SLOT(preset4Terminals()));
menu_File->addMenu(presetsMenu);
Properties::Instance()->actions[CLOSE_TAB] = new QAction(QIcon::fromTheme("list-remove"), tr("&Close Tab"), this);
seq = QKeySequence::fromString( settings.value(CLOSE_TAB, CLOSE_TAB_SHORTCUT).toString() );
Properties::Instance()->actions[CLOSE_TAB]->setShortcut(seq);
connect(Properties::Instance()->actions[CLOSE_TAB], SIGNAL(triggered()), consoleTabulator, SLOT(removeCurrentTab()));
menu_File->addAction(Properties::Instance()->actions[CLOSE_TAB]);
addAction(Properties::Instance()->actions[CLOSE_TAB]);
Properties::Instance()->actions[NEW_WINDOW] = new QAction(QIcon::fromTheme("window-new"), tr("&New Window"), this);
seq = QKeySequence::fromString( settings.value(NEW_WINDOW, NEW_WINDOW_SHORTCUT).toString() );
Properties::Instance()->actions[NEW_WINDOW]->setShortcut(seq);
connect(Properties::Instance()->actions[NEW_WINDOW], SIGNAL(triggered()), this, SLOT(newTerminalWindow()));
menu_File->addAction(Properties::Instance()->actions[NEW_WINDOW]);
addAction(Properties::Instance()->actions[NEW_WINDOW]);
menu_File->addSeparator();
Properties::Instance()->actions[PREFERENCES] = actProperties;
seq = QKeySequence::fromString( settings.value(PREFERENCES).toString() );
Properties::Instance()->actions[PREFERENCES]->setShortcut(seq);
connect(actProperties, SIGNAL(triggered()), SLOT(actProperties_triggered()));
menu_File->addAction(Properties::Instance()->actions[PREFERENCES]);
addAction(Properties::Instance()->actions[PREFERENCES]);
menu_File->addSeparator();
Properties::Instance()->actions[QUIT] = actQuit;
seq = QKeySequence::fromString( settings.value(QUIT).toString() );
Properties::Instance()->actions[QUIT]->setShortcut(seq);
connect(actQuit, SIGNAL(triggered()), SLOT(close()));
menu_File->addAction(Properties::Instance()->actions[QUIT]);
addAction(Properties::Instance()->actions[QUIT]);
settings.endGroup();
}
void MainWindow::setup_ViewMenu_Actions()
{
QKeySequence seq;
QSettings settings;
settings.beginGroup("Shortcuts");
QAction *hideBordersAction = new QAction(tr("&Hide Window Borders"), this);
hideBordersAction->setCheckable(true);
hideBordersAction->setVisible(!m_dropMode);
seq = QKeySequence::fromString( settings.value(HIDE_WINDOW_BORDERS).toString() );
hideBordersAction->setShortcut(seq);
connect(hideBordersAction, SIGNAL(triggered()), this, SLOT(toggleBorderless()));
menu_Window->addAction(hideBordersAction);
addAction(hideBordersAction);
Properties::Instance()->actions[HIDE_WINDOW_BORDERS] = hideBordersAction;
//Properties::Instance()->actions[HIDE_WINDOW_BORDERS]->setObjectName("toggle_Borderless");
// TODO/FIXME: it's broken somehow. When I call toggleBorderless() here the non-responsive window appear
// Properties::Instance()->actions[HIDE_WINDOW_BORDERS]->setChecked(Properties::Instance()->borderless);
// if (Properties::Instance()->borderless)
// toggleBorderless();
QAction *showTabBarAction = new QAction(tr("&Show Tab Bar"), this);
//toggleTabbar->setObjectName("toggle_TabBar");
showTabBarAction->setCheckable(true);
showTabBarAction->setChecked(!Properties::Instance()->tabBarless);
seq = QKeySequence::fromString( settings.value(SHOW_TAB_BAR).toString() );
showTabBarAction->setShortcut(seq);
menu_Window->addAction(showTabBarAction);
addAction(showTabBarAction);
Properties::Instance()->actions[SHOW_TAB_BAR] = showTabBarAction;
toggleTabBar();
connect(showTabBarAction, SIGNAL(triggered()), this, SLOT(toggleTabBar()));
QAction *toggleFullscreen = new QAction(tr("Fullscreen"), this);
toggleFullscreen->setCheckable(true);
toggleFullscreen->setChecked(false);
seq = QKeySequence::fromString(settings.value(FULLSCREEN, FULLSCREEN_SHORTCUT).toString());
toggleFullscreen->setShortcut(seq);
menu_Window->addAction(toggleFullscreen);
addAction(toggleFullscreen);
connect(toggleFullscreen, SIGNAL(triggered(bool)), this, SLOT(showFullscreen(bool)));
Properties::Instance()->actions[FULLSCREEN] = toggleFullscreen;
Properties::Instance()->actions[TOGGLE_BOOKMARKS] = m_bookmarksDock->toggleViewAction();
seq = QKeySequence::fromString( settings.value(TOGGLE_BOOKMARKS, TOGGLE_BOOKMARKS_SHORTCUT).toString() );
Properties::Instance()->actions[TOGGLE_BOOKMARKS]->setShortcut(seq);
menu_Window->addAction(Properties::Instance()->actions[TOGGLE_BOOKMARKS]);
settings.endGroup();
menu_Window->addSeparator();
/* tabs position */
tabPosition = new QActionGroup(this);
QAction *tabBottom = new QAction(tr("&Bottom"), this);
QAction *tabTop = new QAction(tr("&Top"), this);
QAction *tabRight = new QAction(tr("&Right"), this);
QAction *tabLeft = new QAction(tr("&Left"), this);
tabPosition->addAction(tabTop);
tabPosition->addAction(tabBottom);
tabPosition->addAction(tabLeft);
tabPosition->addAction(tabRight);
for(int i = 0; i < tabPosition->actions().size(); ++i)
tabPosition->actions().at(i)->setCheckable(true);
if( tabPosition->actions().count() > Properties::Instance()->tabsPos )
tabPosition->actions().at(Properties::Instance()->tabsPos)->setChecked(true);
connect(tabPosition, SIGNAL(triggered(QAction *)),
consoleTabulator, SLOT(changeTabPosition(QAction *)) );
tabPosMenu = new QMenu(tr("&Tabs Layout"), menu_Window);
tabPosMenu->setObjectName("tabPosMenu");
for(int i=0; i < tabPosition->actions().size(); ++i) {
tabPosMenu->addAction(tabPosition->actions().at(i));
}
connect(menu_Window, SIGNAL(hovered(QAction *)),
this, SLOT(updateActionGroup(QAction *)));
menu_Window->addMenu(tabPosMenu);
/* */
/* Scrollbar */
scrollBarPosition = new QActionGroup(this);
QAction *scrollNone = new QAction(tr("&None"), this);
QAction *scrollRight = new QAction(tr("&Right"), this);
QAction *scrollLeft = new QAction(tr("&Left"), this);
/* order of insertion is dep. on QTermWidget::ScrollBarPosition enum */
scrollBarPosition->addAction(scrollNone);
scrollBarPosition->addAction(scrollLeft);
scrollBarPosition->addAction(scrollRight);
for(int i = 0; i < scrollBarPosition->actions().size(); ++i)
scrollBarPosition->actions().at(i)->setCheckable(true);
if( Properties::Instance()->scrollBarPos < scrollBarPosition->actions().size() )
scrollBarPosition->actions().at(Properties::Instance()->scrollBarPos)->setChecked(true);
connect(scrollBarPosition, SIGNAL(triggered(QAction *)),
consoleTabulator, SLOT(changeScrollPosition(QAction *)) );
scrollPosMenu = new QMenu(tr("S&crollbar Layout"), menu_Window);
scrollPosMenu->setObjectName("scrollPosMenu");
for(int i=0; i < scrollBarPosition->actions().size(); ++i) {
scrollPosMenu->addAction(scrollBarPosition->actions().at(i));
}
menu_Window->addMenu(scrollPosMenu);
}
void MainWindow::on_consoleTabulator_currentChanged(int)
{
}
void MainWindow::toggleTabBar()
{
Properties::Instance()->tabBarless
= !Properties::Instance()->actions[SHOW_TAB_BAR]->isChecked();
consoleTabulator->showHideTabBar();
}
void MainWindow::toggleBorderless()
{
setWindowFlags(windowFlags() ^ Qt::FramelessWindowHint);
show();
setWindowState(Qt::WindowActive); /* don't loose focus on the window */
Properties::Instance()->borderless
= Properties::Instance()->actions[HIDE_WINDOW_BORDERS]->isChecked(); realign();
}
void MainWindow::toggleMenu()
{
m_menuBar->setVisible(!m_menuBar->isVisible());
Properties::Instance()->menuVisible = m_menuBar->isVisible();
}
void MainWindow::showFullscreen(bool fullscreen)
{
if(fullscreen)
setWindowState(windowState() | Qt::WindowFullScreen);
else
setWindowState(windowState() & ~Qt::WindowFullScreen);
}
void MainWindow::closeEvent(QCloseEvent *ev)
{
if (!Properties::Instance()->askOnExit
|| !consoleTabulator->count())
{
// #80 - do not save state and geometry in drop mode
if (!m_dropMode) {
if (Properties::Instance()->savePosOnExit) {
Properties::Instance()->mainWindowPosition = pos();
}
if (Properties::Instance()->saveSizeOnExit) {
Properties::Instance()->mainWindowSize = size();
}
Properties::Instance()->mainWindowState = saveState();
}
Properties::Instance()->saveSettings();
for (int i = consoleTabulator->count(); i > 0; --i) {
consoleTabulator->removeTab(i - 1);
}
ev->accept();
return;
}
// ask user for cancel only when there is at least one terminal active in this window
QDialog * dia = new QDialog(this);
dia->setObjectName("exitDialog");
dia->setWindowTitle(tr("Exit QTerminal"));
QCheckBox * dontAskCheck = new QCheckBox(tr("Do not ask again"), dia);
QDialogButtonBox * buttonBox = new QDialogButtonBox(QDialogButtonBox::Yes | QDialogButtonBox::No, Qt::Horizontal, dia);
buttonBox->button(QDialogButtonBox::Yes)->setDefault(true);
connect(buttonBox, SIGNAL(accepted()), dia, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), dia, SLOT(reject()));
QVBoxLayout * lay = new QVBoxLayout();
lay->addWidget(new QLabel(tr("Are you sure you want to exit?")));
lay->addWidget(dontAskCheck);
lay->addWidget(buttonBox);
dia->setLayout(lay);
if (dia->exec() == QDialog::Accepted) {
Properties::Instance()->mainWindowPosition = pos();
Properties::Instance()->mainWindowSize = size();
Properties::Instance()->mainWindowState = saveState();
Properties::Instance()->askOnExit = !dontAskCheck->isChecked();
Properties::Instance()->saveSettings();
for (int i = consoleTabulator->count(); i > 0; --i) {
consoleTabulator->removeTab(i - 1);
}
ev->accept();
} else {
ev->ignore();
}
dia->deleteLater();
}
void MainWindow::actAbout_triggered()
{
QMessageBox::about(this, QString("QTerminal ") + STR_VERSION, tr("A lightweight multiplatform terminal emulator"));
}
void MainWindow::actProperties_triggered()
{
PropertiesDialog *p = new PropertiesDialog(this);
connect(p, SIGNAL(propertiesChanged()), this, SLOT(propertiesChanged()));
p->exec();
}
void MainWindow::propertiesChanged()
{
QApplication::setStyle(Properties::Instance()->guiStyle);
setWindowOpacity(1.0 - Properties::Instance()->appTransparency/100.0);
consoleTabulator->setTabPosition((QTabWidget::TabPosition)Properties::Instance()->tabsPos);
consoleTabulator->propertiesChanged();
setDropShortcut(Properties::Instance()->dropShortCut);
m_menuBar->setVisible(Properties::Instance()->menuVisible);
m_bookmarksDock->setVisible(Properties::Instance()->useBookmarks
&& Properties::Instance()->bookmarksVisible);
m_bookmarksDock->toggleViewAction()->setVisible(Properties::Instance()->useBookmarks);
if (Properties::Instance()->useBookmarks)
{
qobject_cast<BookmarksWidget*>(m_bookmarksDock->widget())->setup();
}
Properties::Instance()->saveSettings();
realign();
}
void MainWindow::realign()
{
if (m_dropMode)
{
QRect desktop = QApplication::desktop()->availableGeometry(this);
QRect geometry = QRect(0, 0,
desktop.width() * Properties::Instance()->dropWidht / 100,
desktop.height() * Properties::Instance()->dropHeight / 100
);
geometry.moveCenter(desktop.center());
// do not use 0 here - we need to calculate with potential panel on top
geometry.setTop(desktop.top());
setGeometry(geometry);
}
}
void MainWindow::updateActionGroup(QAction *a)
{
if (a->parent()->objectName() == tabPosMenu->objectName()) {
tabPosition->actions().at(Properties::Instance()->tabsPos)->setChecked(true);
}
}
void MainWindow::showHide()
{
if (isVisible())
hide();
else
{
realign();
show();
activateWindow();
}
}
void MainWindow::setKeepOpen(bool value)
{
Properties::Instance()->dropKeepOpen = value;
if (!m_dropLockButton)
return;
if (value)
m_dropLockButton->setIcon(QIcon::fromTheme("object-locked"));
else
m_dropLockButton->setIcon(QIcon::fromTheme("object-unlocked"));
m_dropLockButton->setChecked(value);
}
void MainWindow::find()
{
// A bit ugly perhaps with 4 levels of indirection...
consoleTabulator->terminalHolder()->currentTerminal()->impl()->toggleShowSearchBar();
}
bool MainWindow::event(QEvent *event)
{
if (event->type() == QEvent::WindowDeactivate)
{
if (m_dropMode &&
!Properties::Instance()->dropKeepOpen &&
qApp->activeWindow() == 0
)
hide();
}
return QMainWindow::event(event);
}
void MainWindow::newTerminalWindow()
{
MainWindow *w = new MainWindow(m_initWorkDir, m_initShell, false);
w->show();
}
void MainWindow::bookmarksWidget_callCommand(const QString& cmd)
{
consoleTabulator->terminalHolder()->currentTerminal()->impl()->sendText(cmd);
consoleTabulator->terminalHolder()->currentTerminal()->setFocus();
}
void MainWindow::bookmarksDock_visibilityChanged(bool visible)
{
Properties::Instance()->bookmarksVisible = visible;
}
void MainWindow::addNewTab()
{
if (Properties::Instance()->terminalsPreset == 3)
consoleTabulator->preset4Terminals();
else if (Properties::Instance()->terminalsPreset == 2)
consoleTabulator->preset2Vertical();
else if (Properties::Instance()->terminalsPreset == 1)
consoleTabulator->preset2Horizontal();
else
consoleTabulator->addNewTab();
}

View File

@ -1,90 +0,0 @@
/***************************************************************************
* Copyright (C) 2006 by Vladimir Kuznetsov *
* vovanec@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 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "ui_qterminal.h"
#include <QMainWindow>
#include "qxtglobalshortcut.h"
class QToolButton;
class MainWindow : public QMainWindow , private Ui::mainWindow
{
Q_OBJECT
public:
MainWindow(const QString& work_dir, const QString& command,
bool dropMode,
QWidget * parent = 0, Qt::WindowFlags f = 0);
~MainWindow();
bool dropMode() { return m_dropMode; }
protected:
bool event(QEvent* event);
private:
QActionGroup *tabPosition, *scrollBarPosition;
QMenu *tabPosMenu, *scrollPosMenu;
QAction *renameSession;
QString m_initWorkDir;
QString m_initShell;
QDockWidget *m_bookmarksDock;
void setup_FileMenu_Actions();
void setup_ActionsMenu_Actions();
void setup_ViewMenu_Actions();
void closeEvent(QCloseEvent*);
void enableDropMode();
QToolButton *m_dropLockButton;
bool m_dropMode;
QxtGlobalShortcut m_dropShortcut;
void realign();
void setDropShortcut(QKeySequence dropShortCut);
private slots:
void on_consoleTabulator_currentChanged(int);
void propertiesChanged();
void actAbout_triggered();
void actProperties_triggered();
void updateActionGroup(QAction *);
void toggleBorderless();
void toggleTabBar();
void toggleMenu();
void showFullscreen(bool fullscreen);
void showHide();
void setKeepOpen(bool value);
void find();
void newTerminalWindow();
void bookmarksWidget_callCommand(const QString&);
void bookmarksDock_visibilityChanged(bool visible);
void addNewTab();
};
#endif //MAINWINDOW_H

View File

@ -1,286 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <qtermwidget.h>
#include "properties.h"
#include "config.h"
Properties * Properties::m_instance = 0;
Properties * Properties::Instance(const QString& filename)
{
if (!m_instance)
m_instance = new Properties(filename);
return m_instance;
}
Properties::Properties(const QString& filename)
: filename(filename)
{
if (filename.isEmpty())
m_settings = new QSettings();
else
m_settings = new QSettings(filename);
qDebug("Properties constructor called");
}
Properties::~Properties()
{
qDebug("Properties destructor called");
saveSettings();
m_settings->deleteLater();
delete m_instance;
m_instance = 0;
}
QFont Properties::defaultFont()
{
QFont default_font = QApplication::font();
default_font.setFamily(DEFAULT_FONT);
default_font.setPointSize(12);
default_font.setStyleHint(QFont::TypeWriter);
return default_font;
}
void Properties::loadSettings()
{
guiStyle = m_settings->value("guiStyle", QString()).toString();
if (!guiStyle.isNull())
QApplication::setStyle(guiStyle);
colorScheme = m_settings->value("colorScheme", "Linux").toString();
highlightCurrentTerminal = m_settings->value("highlightCurrentTerminal", true).toBool();
font = qvariant_cast<QFont>(m_settings->value("font", defaultFont()));
m_settings->beginGroup("Shortcuts");
QStringList keys = m_settings->childKeys();
foreach( QString key, keys )
{
QKeySequence sequence = QKeySequence( m_settings->value( key ).toString() );
if( Properties::Instance()->actions.contains( key ) )
Properties::Instance()->actions[ key ]->setShortcut( sequence );
}
m_settings->endGroup();
mainWindowSize = m_settings->value("MainWindow/size").toSize();
mainWindowPosition = m_settings->value("MainWindow/pos").toPoint();
mainWindowState = m_settings->value("MainWindow/state").toByteArray();
historyLimited = m_settings->value("HistoryLimited", true).toBool();
historyLimitedTo = m_settings->value("HistoryLimitedTo", 1000).toUInt();
emulation = m_settings->value("emulation", "default").toString();
// sessions
int size = m_settings->beginReadArray("Sessions");
for (int i = 0; i < size; ++i)
{
m_settings->setArrayIndex(i);
QString name(m_settings->value("name").toString());
if (name.isEmpty())
continue;
sessions[name] = m_settings->value("state").toByteArray();
}
m_settings->endArray();
appTransparency = m_settings->value("MainWindow/ApplicationTransparency", 0).toInt();
termTransparency = m_settings->value("TerminalTransparency", 0).toInt();
/* default to Right. see qtermwidget.h */
scrollBarPos = m_settings->value("ScrollbarPosition", 2).toInt();
/* default to North. I'd prefer South but North is standard (they say) */
tabsPos = m_settings->value("TabsPosition", 0).toInt();
hideTabBarWithOneTab = m_settings->value("HideTabBarWithOneTab", false).toBool();
m_motionAfterPaste = m_settings->value("MotionAfterPaste", 0).toInt();
/* toggles */
borderless = m_settings->value("Borderless", false).toBool();
tabBarless = m_settings->value("TabBarless", false).toBool();
menuVisible = m_settings->value("MenuVisible", true).toBool();
askOnExit = m_settings->value("AskOnExit", true).toBool();
saveSizeOnExit = m_settings->value("SaveSizeOnExit", true).toBool();
savePosOnExit = m_settings->value("SavePosOnExit", true).toBool();
useCWD = m_settings->value("UseCWD", false).toBool();
// bookmarks
useBookmarks = m_settings->value("UseBookmarks", false).toBool();
bookmarksVisible = m_settings->value("BookmarksVisible", true).toBool();
bookmarksFile = m_settings->value("BookmarksFile", QFileInfo(m_settings->fileName()).canonicalPath()+"/qterminal_bookmarks.xml").toString();
terminalsPreset = m_settings->value("TerminalsPreset", 0).toInt();
m_settings->beginGroup("DropMode");
dropShortCut = QKeySequence(m_settings->value("ShortCut", "F12").toString());
dropKeepOpen = m_settings->value("KeepOpen", false).toBool();
dropShowOnStart = m_settings->value("ShowOnStart", true).toBool();
dropWidht = m_settings->value("Width", 70).toInt();
dropHeight = m_settings->value("Height", 45).toInt();
m_settings->endGroup();
}
void Properties::saveSettings()
{
m_settings->setValue("guiStyle", guiStyle);
m_settings->setValue("colorScheme", colorScheme);
m_settings->setValue("highlightCurrentTerminal", highlightCurrentTerminal);
m_settings->setValue("font", font);
m_settings->beginGroup("Shortcuts");
QMapIterator< QString, QAction * > it(actions);
while( it.hasNext() )
{
it.next();
QKeySequence shortcut = it.value()->shortcut();
m_settings->setValue( it.key(), shortcut.toString() );
}
m_settings->endGroup();
m_settings->setValue("MainWindow/size", mainWindowSize);
m_settings->setValue("MainWindow/pos", mainWindowPosition);
m_settings->setValue("MainWindow/state", mainWindowState);
m_settings->setValue("HistoryLimited", historyLimited);
m_settings->setValue("HistoryLimitedTo", historyLimitedTo);
m_settings->setValue("emulation", emulation);
// sessions
m_settings->beginWriteArray("Sessions");
int i = 0;
Sessions::iterator sit = sessions.begin();
while (sit != sessions.end())
{
m_settings->setArrayIndex(i);
m_settings->setValue("name", sit.key());
m_settings->setValue("state", sit.value());
++sit;
++i;
}
m_settings->endArray();
m_settings->setValue("MainWindow/ApplicationTransparency", appTransparency);
m_settings->setValue("TerminalTransparency", termTransparency);
m_settings->setValue("ScrollbarPosition", scrollBarPos);
m_settings->setValue("TabsPosition", tabsPos);
m_settings->setValue("HideTabBarWithOneTab", hideTabBarWithOneTab);
m_settings->setValue("MotionAfterPaste", m_motionAfterPaste);
m_settings->setValue("Borderless", borderless);
m_settings->setValue("TabBarless", tabBarless);
m_settings->setValue("MenuVisible", menuVisible);
m_settings->setValue("AskOnExit", askOnExit);
m_settings->setValue("SavePosOnExit", savePosOnExit);
m_settings->setValue("SaveSizeOnExit", saveSizeOnExit);
m_settings->setValue("UseCWD", useCWD);
// bookmarks
m_settings->setValue("UseBookmarks", useBookmarks);
m_settings->setValue("BookmarksVisible", bookmarksVisible);
m_settings->setValue("BookmarksFile", bookmarksFile);
m_settings->setValue("TerminalsPreset", terminalsPreset);
m_settings->beginGroup("DropMode");
m_settings->setValue("ShortCut", dropShortCut.toString());
m_settings->setValue("KeepOpen", dropKeepOpen);
m_settings->setValue("ShowOnStart", dropShowOnStart);
m_settings->setValue("Width", dropWidht);
m_settings->setValue("Height", dropHeight);
m_settings->endGroup();
}
void Properties::migrate_settings()
{
// Deal with rearrangements of settings.
// If this method becomes unbearably huge we should look at the config-update
// system used by kde and razor.
QSettings settings;
QString lastVersion = settings.value("version", "0.0.0").toString();
QString currentVersion = STR_VERSION;
if (currentVersion < lastVersion)
{
qDebug() << "Warning: Configuration file was written by a newer version "
<< "of QTerminal. Some settings might be incompatible";
}
if (lastVersion < "0.4.0")
{
// ===== Paste Selection -> Paste Clipboard =====
settings.beginGroup("Shortcuts");
if(!settings.contains(PASTE_CLIPBOARD))
{
QString value = settings.value("Paste Selection", PASTE_CLIPBOARD_SHORTCUT).toString();
settings.setValue(PASTE_CLIPBOARD, value);
}
settings.remove("Paste Selection");
settings.endGroup();
}
if (lastVersion <= "0.6.0")
{
// ===== AlwaysShowTabs -> HideTabBarWithOneTab =====
if(!settings.contains("HideTabBarWithOneTab"))
{
QString hideValue = settings.value("AlwaysShowTabs", false).toString();
settings.setValue("HideTabBarWithOneTab", hideValue);
}
settings.remove("AlwaysShowTabs");
// ===== appOpacity -> ApplicationTransparency =====
//
// Note: In 0.6.0 the opacity values had been erroneously
// restricted to [0,99] instead of [1,100]. We fix this here by
// setting the opacity to 100 if it was 99 and to 1 if it was 0.
//
if(!settings.contains("MainWindow/ApplicationTransparency"))
{
int appOpacityValue = settings.value("MainWindow/appOpacity", 100).toInt();
appOpacityValue = appOpacityValue == 99 ? 100 : appOpacityValue;
appOpacityValue = appOpacityValue == 0 ? 1 : appOpacityValue;
settings.setValue("MainWindow/ApplicationTransparency", 100 - appOpacityValue);
}
settings.remove("MainWindow/appOpacity");
// ===== termOpacity -> TerminalTransparency =====
if(!settings.contains("TerminalTransparency"))
{
int termOpacityValue = settings.value("termOpacity", 100).toInt();
termOpacityValue = termOpacityValue == 99 ? 100 : termOpacityValue;
settings.setValue("TerminalTransparency", 100 - termOpacityValue);
}
settings.remove("termOpacity");
// geometry -> size, pos
if (!settings.contains("MainWindow/size"))
{
QWidget geom;
geom.restoreGeometry(settings.value("MainWindow/geometry").toByteArray());
settings.setValue("MainWindow/size", geom.size());
settings.setValue("MainWindow/pos", geom.pos());
settings.remove("MainWindow/geometry");
}
}
if (currentVersion > lastVersion)
settings.setValue("version", currentVersion);
}

View File

@ -1,111 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef PROPERTIES_H
#define PROPERTIES_H
#include <QApplication>
#include <QtCore>
#include <QFont>
#include <QAction>
typedef QString Session;
typedef QMap<QString,Session> Sessions;
typedef QMap<QString,QString> ShortcutMap;
class Properties
{
public:
static Properties *Instance(const QString& filename = QString());
QFont defaultFont();
void saveSettings();
void loadSettings();
void migrate_settings();
QSize mainWindowSize;
QPoint mainWindowPosition;
QByteArray mainWindowState;
//ShortcutMap shortcuts;
QString shell;
QFont font;
QString colorScheme;
QString guiStyle;
bool highlightCurrentTerminal;
bool historyLimited;
unsigned historyLimitedTo;
QString emulation;
Sessions sessions;
int appTransparency;
int termTransparency;
int scrollBarPos;
int tabsPos;
bool hideTabBarWithOneTab;
int m_motionAfterPaste;
bool borderless;
bool tabBarless;
bool menuVisible;
bool askOnExit;
bool saveSizeOnExit;
bool savePosOnExit;
bool useCWD;
bool useBookmarks;
bool bookmarksVisible;
QString bookmarksFile;
int terminalsPreset;
QKeySequence dropShortCut;
bool dropKeepOpen;
bool dropShowOnStart;
int dropWidht;
int dropHeight;
QMap< QString, QAction * > actions;
private:
// Singleton handling
static Properties *m_instance;
QString filename;
explicit Properties(const QString& filename);
Properties(const Properties &) {};
~Properties();
QSettings *m_settings;
};
#endif

View File

@ -1,358 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <qtermwidget.h>
#include <QDebug>
#include <QStyleFactory>
#include <QFileDialog>
#include "propertiesdialog.h"
#include "properties.h"
#include "fontdialog.h"
#include "config.h"
PropertiesDialog::PropertiesDialog(QWidget *parent)
: QDialog(parent)
{
setupUi(this);
connect(buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()),
this, SLOT(apply()));
connect(changeFontButton, SIGNAL(clicked()),
this, SLOT(changeFontButton_clicked()));
QStringList emulations = QTermWidget::availableKeyBindings();
QStringList colorSchemes = QTermWidget::availableColorSchemes();
listWidget->setCurrentRow(0);
listWidget->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContentsOnFirstShow);
colorSchemaCombo->addItems(colorSchemes);
int csix = colorSchemaCombo->findText(Properties::Instance()->colorScheme);
if (csix != -1)
colorSchemaCombo->setCurrentIndex(csix);
emulationComboBox->addItems(emulations);
int eix = emulationComboBox->findText(Properties::Instance()->emulation);
emulationComboBox->setCurrentIndex(eix != -1 ? eix : 0 );
/* shortcuts */
setupShortcuts();
/* scrollbar position */
QStringList scrollBarPosList;
scrollBarPosList << tr("No scrollbar") << tr("Left") << tr("Right");
scrollBarPos_comboBox->addItems(scrollBarPosList);
scrollBarPos_comboBox->setCurrentIndex(Properties::Instance()->scrollBarPos);
/* tabs position */
QStringList tabsPosList;
tabsPosList << tr("Top") << tr("Bottom") << tr("Left") << tr("Right");
tabsPos_comboBox->addItems(tabsPosList);
tabsPos_comboBox->setCurrentIndex(Properties::Instance()->tabsPos);
hideTabBarCheckBox->setChecked(Properties::Instance()->hideTabBarWithOneTab);
// show main menu bar
showMenuCheckBox->setChecked(Properties::Instance()->menuVisible);
/* actions by motion after paste */
QStringList motionAfter;
motionAfter << tr("No move") << tr("Move start") << tr("Move end");
motionAfterPasting_comboBox->addItems(motionAfter);
motionAfterPasting_comboBox->setCurrentIndex(Properties::Instance()->m_motionAfterPaste);
// Setting windows style actions
styleComboBox->addItem(tr("System Default"));
styleComboBox->addItems(QStyleFactory::keys());
int ix = styleComboBox->findText(Properties::Instance()->guiStyle);
if (ix != -1)
styleComboBox->setCurrentIndex(ix);
setFontSample(Properties::Instance()->font);
appTransparencyBox->setValue(Properties::Instance()->appTransparency);
termTransparencyBox->setValue(Properties::Instance()->termTransparency);
highlightCurrentCheckBox->setChecked(Properties::Instance()->highlightCurrentTerminal);
askOnExitCheckBox->setChecked(Properties::Instance()->askOnExit);
savePosOnExitCheckBox->setChecked(Properties::Instance()->savePosOnExit);
saveSizeOnExitCheckBox->setChecked(Properties::Instance()->saveSizeOnExit);
useCwdCheckBox->setChecked(Properties::Instance()->useCWD);
historyLimited->setChecked(Properties::Instance()->historyLimited);
historyUnlimited->setChecked(!Properties::Instance()->historyLimited);
historyLimitedTo->setValue(Properties::Instance()->historyLimitedTo);
dropShowOnStartCheckBox->setChecked(Properties::Instance()->dropShowOnStart);
dropHeightSpinBox->setValue(Properties::Instance()->dropHeight);
dropWidthSpinBox->setValue(Properties::Instance()->dropWidht);
dropShortCutEdit->setText(Properties::Instance()->dropShortCut.toString());
useBookmarksCheckBox->setChecked(Properties::Instance()->useBookmarks);
bookmarksLineEdit->setText(Properties::Instance()->bookmarksFile);
openBookmarksFile(Properties::Instance()->bookmarksFile);
connect(bookmarksButton, SIGNAL(clicked()),
this, SLOT(bookmarksButton_clicked()));
terminalPresetComboBox->setCurrentIndex(Properties::Instance()->terminalsPreset);
}
PropertiesDialog::~PropertiesDialog()
{
}
void PropertiesDialog::accept()
{
apply();
QDialog::accept();
}
void PropertiesDialog::apply()
{
Properties::Instance()->colorScheme = colorSchemaCombo->currentText();
Properties::Instance()->font = fontSampleLabel->font();//fontComboBox->currentFont();
Properties::Instance()->guiStyle = (styleComboBox->currentText() == tr("System Default")) ?
QString() : styleComboBox->currentText();
Properties::Instance()->emulation = emulationComboBox->currentText();
/* do not allow to go above 99 or we lose transparency option */
(appTransparencyBox->value() >= 100) ?
Properties::Instance()->appTransparency = 99
:
Properties::Instance()->appTransparency = appTransparencyBox->value();
Properties::Instance()->termTransparency = termTransparencyBox->value();
Properties::Instance()->highlightCurrentTerminal = highlightCurrentCheckBox->isChecked();
Properties::Instance()->askOnExit = askOnExitCheckBox->isChecked();
Properties::Instance()->savePosOnExit = savePosOnExitCheckBox->isChecked();
Properties::Instance()->saveSizeOnExit = saveSizeOnExitCheckBox->isChecked();
Properties::Instance()->useCWD = useCwdCheckBox->isChecked();
Properties::Instance()->scrollBarPos = scrollBarPos_comboBox->currentIndex();
Properties::Instance()->tabsPos = tabsPos_comboBox->currentIndex();
Properties::Instance()->hideTabBarWithOneTab = hideTabBarCheckBox->isChecked();
Properties::Instance()->menuVisible = showMenuCheckBox->isChecked();
Properties::Instance()->m_motionAfterPaste = motionAfterPasting_comboBox->currentIndex();
Properties::Instance()->historyLimited = historyLimited->isChecked();
Properties::Instance()->historyLimitedTo = historyLimitedTo->value();
saveShortcuts();
Properties::Instance()->saveSettings();
Properties::Instance()->dropShowOnStart = dropShowOnStartCheckBox->isChecked();
Properties::Instance()->dropHeight = dropHeightSpinBox->value();
Properties::Instance()->dropWidht = dropWidthSpinBox->value();
Properties::Instance()->dropShortCut = QKeySequence(dropShortCutEdit->text());
Properties::Instance()->useBookmarks = useBookmarksCheckBox->isChecked();
Properties::Instance()->bookmarksFile = bookmarksLineEdit->text();
saveBookmarksFile(Properties::Instance()->bookmarksFile);
Properties::Instance()->terminalsPreset = terminalPresetComboBox->currentIndex();
emit propertiesChanged();
}
void PropertiesDialog::setFontSample(const QFont & f)
{
fontSampleLabel->setFont(f);
QString sample("%1 %2 pt");
fontSampleLabel->setText(sample.arg(f.family()).arg(f.pointSize()));
}
void PropertiesDialog::changeFontButton_clicked()
{
FontDialog dia(fontSampleLabel->font());
if (!dia.exec())
return;
QFont f = dia.getFont();
if (QFontInfo(f).fixedPitch())
setFontSample(f);
}
void PropertiesDialog::saveShortcuts()
{
QList< QString > shortcutKeys = Properties::Instance()->actions.keys();
int shortcutCount = shortcutKeys.count();
shortcutsWidget->setRowCount( shortcutCount );
for( int x=0; x < shortcutCount; x++ )
{
QString keyValue = shortcutKeys.at(x);
QAction *keyAction = Properties::Instance()->actions[keyValue];
QTableWidgetItem *item = shortcutsWidget->item(x, 1);
QKeySequence sequence = QKeySequence(item->text());
QString sequenceString = sequence.toString();
keyAction->setShortcut(sequenceString);
}
}
void PropertiesDialog::setupShortcuts()
{
QList< QString > shortcutKeys = Properties::Instance()->actions.keys();
int shortcutCount = shortcutKeys.count();
shortcutsWidget->setRowCount( shortcutCount );
for( int x=0; x < shortcutCount; x++ )
{
QString keyValue = shortcutKeys.at(x);
QAction *keyAction = Properties::Instance()->actions[keyValue];
QTableWidgetItem *itemName = new QTableWidgetItem( tr(keyValue.toStdString().c_str()) );
QTableWidgetItem *itemShortcut = new QTableWidgetItem( keyAction->shortcut().toString() );
itemName->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
shortcutsWidget->setItem(x, 0, itemName);
shortcutsWidget->setItem(x, 1, itemShortcut);
}
shortcutsWidget->resizeColumnsToContents();
/*
connect(shortcutsWidget, SIGNAL(currentChanged(int, int)),
this, SLOT(recordAction(int, int)));
connect(shortcutsWidget, SIGNAL(valueChanged(int, int)),
this, SLOT(validateAction(int, int)));
*/
}
void PropertiesDialog::recordAction(int row, int column)
{
oldAccelText = shortcutsWidget->item(row, column)->text();
}
void PropertiesDialog::validateAction(int row, int column)
{
QTableWidgetItem *item = shortcutsWidget->item(row, column);
QString accelText = QKeySequence(item->text()).toString();
if (accelText.isEmpty() && !item->text().isEmpty())
item->setText(oldAccelText);
else
item->setText(accelText);
}
void PropertiesDialog::bookmarksButton_clicked()
{
QFileDialog dia(this, tr("Open or create bookmarks file"));
dia.setConfirmOverwrite(false);
dia.setFileMode(QFileDialog::AnyFile);
if (!dia.exec())
return;
QString fname = dia.selectedFiles().count() ? dia.selectedFiles().at(0) : QString();
if (fname.isNull())
return;
bookmarksLineEdit->setText(fname);
openBookmarksFile(bookmarksLineEdit->text());
}
void PropertiesDialog::openBookmarksFile(const QString &fname)
{
QFile f(fname);
QString content;
if (!f.open(QFile::ReadOnly))
content = "<qterminal>\n <group name=\"group1\">\n <command name=\"cmd1\" value=\"cd $HOME\"/>\n </group>\n</qterminal>";
else
content = f.readAll();
bookmarkPlainEdit->setPlainText(content);
bookmarkPlainEdit->document()->setModified(false);
}
void PropertiesDialog::saveBookmarksFile(const QString &fname)
{
if (!bookmarkPlainEdit->document()->isModified())
return;
QFile f(fname);
if (!f.open(QFile::WriteOnly|QFile::Truncate))
qDebug() << "Cannot write to file" << f.fileName();
else
f.write(bookmarkPlainEdit->toPlainText().toUtf8());
}
/*
void PropertiesDialog::setupShortcuts()
{
QList< QString > shortcutKeys = Properties::Instance()->shortcuts.keys();
int shortcutCount = shortcutKeys.count();
shortcutsWidget->setRowCount( shortcutCount );
for( int x=0; x < shortcutCount; x++ )
{
QString keyValue = shortcutKeys.at(x);
QLabel *lblShortcut = new QLabel( keyValue, this );
QPushButton *btnLaunch = new QPushButton( Properties::Instance()->shortcuts.value( keyValue ), this );
btnLaunch->setObjectName(keyValue);
connect( btnLaunch, SIGNAL(clicked()), this, SLOT(shortcutPrompt()) );
shortcutsWidget->setCellWidget( x, 0, lblShortcut );
shortcutsWidget->setCellWidget( x, 1, btnLaunch );
}
}
void PropertiesDialog::shortcutPrompt()
{
QObject *objectSender = sender();
if( !objectSender )
return;
QString name = objectSender->objectName();
qDebug() << "shortcutPrompt(" << name << ")";
DialogShortcut *dlgShortcut = new DialogShortcut(this);
dlgShortcut->setTitle( tr("Select a key sequence for %1").arg(name) );
QString sequenceString = Properties::Instance()->shortcuts[name];
dlgShortcut->setKey(sequenceString);
int result = dlgShortcut->exec();
if( result == QDialog::Accepted )
{
sequenceString = dlgShortcut->getKey();
Properties::Instance()->shortcuts[name] = sequenceString;
Properties::Instance()->saveSettings();
}
}
*/

View File

@ -1,58 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef PROPERTIESDIALOG_H
#define PROPERTIESDIALOG_H
#include "ui_propertiesdialog.h"
class PropertiesDialog : public QDialog, Ui::PropertiesDialog
{
Q_OBJECT
QString oldAccelText; // Placeholder when editing shortcut
public:
PropertiesDialog(QWidget *parent=NULL);
~PropertiesDialog();
signals:
void propertiesChanged();
private:
void setFontSample(const QFont & f);
void openBookmarksFile(const QString &fname);
void saveBookmarksFile(const QString &fname);
private slots:
void apply();
void accept();
void changeFontButton_clicked();
void bookmarksButton_clicked();
protected:
void setupShortcuts();
void saveShortcuts();
void recordAction(int row, int column);
void validateAction(int row, int column);
};
#endif

View File

@ -1,422 +0,0 @@
/***************************************************************************
* Copyright (C) 2006 by Vladimir Kuznetsov *
* vovanec@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 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <QTabBar>
#include <QInputDialog>
#include <QMouseEvent>
#include <QMenu>
#include "termwidgetholder.h"
#include "tabwidget.h"
#include "config.h"
#include "properties.h"
#define TAB_INDEX_PROPERTY "tab_index"
TabWidget::TabWidget(QWidget* parent) : QTabWidget(parent), tabNumerator(0)
{
setFocusPolicy(Qt::NoFocus);
/* On Mac OS X this will look similar to
* the tabs in Safari or Leopard's Terminal.app .
* I love this!
*/
setDocumentMode(true);
tabBar()->setUsesScrollButtons(true);
setTabsClosable(true);
setMovable(true);
setUsesScrollButtons(true);
tabBar()->installEventFilter(this);
connect(this, SIGNAL(tabCloseRequested(int)), this, SLOT(removeTab(int)));
connect(tabBar(), SIGNAL(tabMoved(int,int)), this, SLOT(updateTabIndices()));
connect(this, SIGNAL(tabRenameRequested(int)), this, SLOT(renameSession(int)));
}
TermWidgetHolder * TabWidget::terminalHolder()
{
return reinterpret_cast<TermWidgetHolder*>(widget(currentIndex()));
}
void TabWidget::setWorkDirectory(const QString& dir)
{
this->work_dir = dir;
}
int TabWidget::addNewTab(const QString & shell_program)
{
tabNumerator++;
QString label = QString(tr("Shell No. %1")).arg(tabNumerator);
TermWidgetHolder *ch = terminalHolder();
QString cwd(work_dir);
if (Properties::Instance()->useCWD && ch)
{
cwd = ch->currentTerminal()->impl()->workingDirectory();
if (cwd.isEmpty())
cwd = work_dir;
}
TermWidgetHolder *console = new TermWidgetHolder(cwd, shell_program, this);
connect(console, SIGNAL(finished()), SLOT(removeFinished()));
connect(console, SIGNAL(lastTerminalClosed()), this, SLOT(removeFinished()));
int index = addTab(console, label);
updateTabIndices();
setCurrentIndex(index);
console->setInitialFocus();
showHideTabBar();
return index;
}
void TabWidget::switchNextSubterminal()
{
terminalHolder()->switchNextSubterminal();
}
void TabWidget::switchPrevSubterminal()
{
terminalHolder()->switchPrevSubterminal();
}
void TabWidget::splitHorizontally()
{
terminalHolder()->splitHorizontal(terminalHolder()->currentTerminal());
}
void TabWidget::splitVertically()
{
terminalHolder()->splitVertical(terminalHolder()->currentTerminal());
}
void TabWidget::splitCollapse()
{
terminalHolder()->splitCollapse(terminalHolder()->currentTerminal());
}
void TabWidget::copySelection()
{
terminalHolder()->currentTerminal()->impl()->copyClipboard();
}
void TabWidget::pasteClipboard()
{
terminalHolder()->currentTerminal()->impl()->pasteClipboard();
}
void TabWidget::pasteSelection()
{
terminalHolder()->currentTerminal()->impl()->pasteSelection();
}
void TabWidget::zoomIn()
{
terminalHolder()->currentTerminal()->impl()->zoomIn();
}
void TabWidget::zoomOut()
{
terminalHolder()->currentTerminal()->impl()->zoomOut();
}
void TabWidget::zoomReset()
{
terminalHolder()->currentTerminal()->impl()->zoomReset();
}
void TabWidget::updateTabIndices()
{
for(int i = 0; i < count(); i++)
widget(i)->setProperty(TAB_INDEX_PROPERTY, i);
}
void TabWidget::renameSession(int index)
{
bool ok = false;
QString text = QInputDialog::getText(this, tr("Tab name"),
tr("New tab name:"), QLineEdit::Normal,
QString(), &ok);
if(ok && !text.isEmpty())
{
setTabText(index, text);
}
}
void TabWidget::renameTabsAfterRemove()
{
// it breaks custom names - it replaces original/custom title with shell no #
#if 0
for(int i = 0; i < count(); i++) {
setTabText(i, QString(tr("Shell No. %1")).arg(i+1));
}
#endif
}
void TabWidget::contextMenuEvent ( QContextMenuEvent * event )
{
QMenu menu(this);
QAction *close = menu.addAction(QIcon::fromTheme("document-close"), tr("Close session"));
QAction *rename = menu.addAction(tr("Rename session"));
rename->setShortcut(tr(RENAME_SESSION_SHORTCUT));
int tabIndex = tabBar()->tabAt(event->pos());
QAction *action = menu.exec(event->globalPos());
if (action == close) {
emit tabCloseRequested(tabIndex);
} else if (action == rename) {
emit tabRenameRequested(tabIndex);
}
}
bool TabWidget::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonDblClick)
{
QMouseEvent *e = reinterpret_cast<QMouseEvent*>(event);
// if user doubleclicks on tab button - rename it. If user
// clicks on free space - open new tab
int index = tabBar()->tabAt(e->pos());
if (index == -1)
addNewTab();
else
renameSession(index);
return true;
}
return QTabWidget::eventFilter(obj, event);
}
void TabWidget::removeFinished()
{
QObject* term = sender();
QVariant prop = term->property(TAB_INDEX_PROPERTY);
if(prop.isValid() && prop.canConvert(QVariant::Int))
{
int index = prop.toInt();
removeTab(index);
// if (count() == 0)
// emit closeTabNotification();
}
}
void TabWidget::removeTab(int index)
{
setUpdatesEnabled(false);
QWidget * w = widget(index);
QTabWidget::removeTab(index);
w->deleteLater();
updateTabIndices();
int current = currentIndex();
if (current >= 0 )
{
qobject_cast<TermWidgetHolder*>(widget(current))->setInitialFocus();
}
// do not decrease it as renaming is disabled in renameTabsAfterRemove
// tabNumerator--;
setUpdatesEnabled(true);
if (count() == 0)
emit closeTabNotification();
renameTabsAfterRemove();
showHideTabBar();
}
void TabWidget::removeCurrentTab()
{
// question disabled due user requests. Yes I agree it was anoying.
// if (QMessageBox::question(this,
// tr("Close current session"),
// tr("Are you sure you want to close current sesstion?"),
// QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
// {
if (count() > 1) {
removeTab(currentIndex());
} else {
emit closeTabNotification();
}
}
int TabWidget::switchToRight()
{
int next_pos = currentIndex() + 1;
if (next_pos < count())
setCurrentIndex(next_pos);
else
setCurrentIndex(0);
return currentIndex();
}
int TabWidget::switchToLeft()
{
int previous_pos = currentIndex() - 1;
if (previous_pos < 0)
setCurrentIndex(count() - 1);
else
setCurrentIndex(previous_pos);
return currentIndex();
}
void TabWidget::move(Direction dir)
{
if(count() > 1)
{
int index = currentIndex();
QWidget* child = widget(index);
QString label = tabText(index);
QString toolTip = tabToolTip(index);
QIcon icon = tabIcon(index);
int newIndex = 0;
if(dir == Left)
if(index == 0)
newIndex = count() -1;
else
newIndex = index - 1;
else
if(index == count() - 1)
newIndex = 0;
else
newIndex = index + 1;
setUpdatesEnabled(false);
QTabWidget::removeTab(index);
newIndex = insertTab(newIndex, child, label);
setTabToolTip(newIndex, toolTip);
setTabIcon(newIndex, icon);
setUpdatesEnabled(true);
setCurrentIndex(newIndex);
child->setFocus();
updateTabIndices();
}
}
void TabWidget::moveLeft()
{
move(Left);
}
void TabWidget::moveRight()
{
move(Right);
}
void TabWidget::changeScrollPosition(QAction *triggered)
{
QActionGroup *scrollPosition = static_cast<QActionGroup *>(sender());
if(!scrollPosition)
qFatal("scrollPosition is NULL");
Properties::Instance()->scrollBarPos =
scrollPosition->actions().indexOf(triggered);
Properties::Instance()->saveSettings();
propertiesChanged();
}
void TabWidget::changeTabPosition(QAction *triggered)
{
QActionGroup *tabPosition = static_cast<QActionGroup *>(sender());
if(!tabPosition)
qFatal("tabPosition is NULL");
Properties *prop = Properties::Instance();
/* order is dictated from mainwindow.cpp */
QTabWidget::TabPosition position = (QTabWidget::TabPosition)tabPosition->actions().indexOf(triggered);
setTabPosition(position);
prop->tabsPos = position;
prop->saveSettings();
return;
}
void TabWidget::propertiesChanged()
{
for (int i = 0; i < count(); ++i)
{
TermWidgetHolder *console = static_cast<TermWidgetHolder*>(widget(i));
console->propertiesChanged();
}
showHideTabBar();
}
void TabWidget::clearActiveTerminal()
{
reinterpret_cast<TermWidgetHolder*>(widget(currentIndex()))->clearActiveTerminal();
}
void TabWidget::saveSession()
{
int ix = currentIndex();
reinterpret_cast<TermWidgetHolder*>(widget(ix))->saveSession(tabText(ix));
}
void TabWidget::loadSession()
{
reinterpret_cast<TermWidgetHolder*>(widget(currentIndex()))->loadSession();
}
void TabWidget::preset2Horizontal()
{
int ix = TabWidget::addNewTab();
TermWidgetHolder* term = reinterpret_cast<TermWidgetHolder*>(widget(ix));
term->splitHorizontal(term->currentTerminal());
// switch to the 1st terminal
term->switchNextSubterminal();
}
void TabWidget::preset2Vertical()
{
int ix = TabWidget::addNewTab();
TermWidgetHolder* term = reinterpret_cast<TermWidgetHolder*>(widget(ix));
term->splitVertical(term->currentTerminal());
// switch to the 1st terminal
term->switchNextSubterminal();
}
void TabWidget::preset4Terminals()
{
int ix = TabWidget::addNewTab();
TermWidgetHolder* term = reinterpret_cast<TermWidgetHolder*>(widget(ix));
term->splitVertical(term->currentTerminal());
term->splitHorizontal(term->currentTerminal());
term->switchNextSubterminal();
term->switchNextSubterminal();
term->splitHorizontal(term->currentTerminal());
// switch to the 1st terminal
term->switchNextSubterminal();
}
void TabWidget::showHideTabBar()
{
if (Properties::Instance()->tabBarless)
tabBar()->setVisible(false);
else
tabBar()->setVisible(!Properties::Instance()->hideTabBarWithOneTab || count() > 1);
}

View File

@ -1,104 +0,0 @@
/***************************************************************************
* Copyright (C) 2006 by Vladimir Kuznetsov *
* vovanec@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 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef TAB_WIDGET
#define TAB_WIDGET
#include <QTabWidget>
#include <QMap>
#include "properties.h"
class TermWidgetHolder;
class QAction;
class QActionGroup;
class TabWidget : public QTabWidget
{
Q_OBJECT
public:
TabWidget(QWidget* parent = 0);
TermWidgetHolder * terminalHolder();
void showHideTabBar();
public slots:
int addNewTab(const QString& shell_program = QString());
void removeTab(int);
void removeCurrentTab();
int switchToRight();
int switchToLeft();
void removeFinished();
void moveLeft();
void moveRight();
void renameSession(int);
void setWorkDirectory(const QString&);
void switchNextSubterminal();
void switchPrevSubterminal();
void splitHorizontally();
void splitVertically();
void splitCollapse();
void copySelection();
void pasteClipboard();
void pasteSelection();
void zoomIn();
void zoomOut();
void zoomReset();
void changeTabPosition(QAction *);
void changeScrollPosition(QAction *);
void propertiesChanged();
void clearActiveTerminal();
void saveSession();
void loadSession();
void preset2Horizontal();
void preset2Vertical();
void preset4Terminals();
signals:
void closeTabNotification();
void tabRenameRequested(int);
protected:
enum Direction{Left = 1, Right};
void contextMenuEvent(QContextMenuEvent * event);
void move(Direction);
/*! Event filter for TabWidget's QTabBar. It's installed on tabBar()
in the constructor.
It's purpose is to handle doubleclicks on QTabBar for session
renaming or new tab opening
*/
bool eventFilter(QObject *obj, QEvent *event);
protected slots:
void updateTabIndices();
private:
int tabNumerator;
QString work_dir;
/* re-order naming of the tabs then removeCurrentTab() */
void renameTabsAfterRemove();
};
#endif

View File

@ -1,213 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <QMenu>
#include <QVBoxLayout>
#include <QPainter>
#include <QDesktopServices>
#include "termwidget.h"
#include "config.h"
#include "properties.h"
static int TermWidgetCount = 0;
TermWidgetImpl::TermWidgetImpl(const QString & wdir, const QString & shell, QWidget * parent)
: QTermWidget(0, parent)
{
TermWidgetCount++;
QString name("TermWidget_%1");
setObjectName(name.arg(TermWidgetCount));
setFlowControlEnabled(FLOW_CONTROL_ENABLED);
setFlowControlWarningEnabled(FLOW_CONTROL_WARNING_ENABLED);
propertiesChanged();
setHistorySize(5000);
if (!wdir.isNull())
setWorkingDirectory(wdir);
if (shell.isNull())
{
if (!Properties::Instance()->shell.isNull())
setShellProgram(Properties::Instance()->shell);
}
else
{
qDebug() << "Settings custom shell program:" << shell;
QStringList parts = shell.split(QRegExp("\\s+"), QString::SkipEmptyParts);
qDebug() << parts;
setShellProgram(parts.at(0));
parts.removeAt(0);
if (parts.count())
setArgs(parts);
}
setMotionAfterPasting(Properties::Instance()->m_motionAfterPaste);
setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)),
this, SLOT(customContextMenuCall(const QPoint &)));
connect(this, SIGNAL(urlActivated(QUrl)), this, SLOT(activateUrl(const QUrl&)));
startShellProgram();
}
void TermWidgetImpl::propertiesChanged()
{
setColorScheme(Properties::Instance()->colorScheme);
setTerminalFont(Properties::Instance()->font);
setMotionAfterPasting(Properties::Instance()->m_motionAfterPaste);
if (Properties::Instance()->historyLimited)
{
setHistorySize(Properties::Instance()->historyLimitedTo);
}
else
{
// Unlimited history
setHistorySize(-1);
}
qDebug() << "TermWidgetImpl::propertiesChanged" << this << "emulation:" << Properties::Instance()->emulation;
setKeyBindings(Properties::Instance()->emulation);
setTerminalOpacity(1.0 - Properties::Instance()->termTransparency/100.0);
/* be consequent with qtermwidget.h here */
switch(Properties::Instance()->scrollBarPos) {
case 0:
setScrollBarPosition(QTermWidget::NoScrollBar);
break;
case 1:
setScrollBarPosition(QTermWidget::ScrollBarLeft);
break;
case 2:
default:
setScrollBarPosition(QTermWidget::ScrollBarRight);
break;
}
update();
}
void TermWidgetImpl::customContextMenuCall(const QPoint & pos)
{
QMenu menu;
menu.addAction(Properties::Instance()->actions[COPY_SELECTION]);
menu.addAction(Properties::Instance()->actions[PASTE_CLIPBOARD]);
menu.addAction(Properties::Instance()->actions[PASTE_SELECTION]);
menu.addAction(Properties::Instance()->actions[ZOOM_IN]);
menu.addAction(Properties::Instance()->actions[ZOOM_OUT]);
menu.addAction(Properties::Instance()->actions[ZOOM_RESET]);
menu.addSeparator();
menu.addAction(Properties::Instance()->actions[CLEAR_TERMINAL]);
menu.addAction(Properties::Instance()->actions[SPLIT_HORIZONTAL]);
menu.addAction(Properties::Instance()->actions[SPLIT_VERTICAL]);
#warning TODO/FIXME: disable the action when there is only one terminal
menu.addAction(Properties::Instance()->actions[SUB_COLLAPSE]);
menu.addSeparator();
menu.addAction(Properties::Instance()->actions[TOGGLE_MENU]);
menu.addAction(Properties::Instance()->actions[PREFERENCES]);
menu.exec(mapToGlobal(pos));
}
void TermWidgetImpl::zoomIn()
{
emit QTermWidget::zoomIn();
// note: do not save zoom here due the #74 Zoom reset option resets font back to Monospace
// Properties::Instance()->font = getTerminalFont();
// Properties::Instance()->saveSettings();
}
void TermWidgetImpl::zoomOut()
{
emit QTermWidget::zoomOut();
// note: do not save zoom here due the #74 Zoom reset option resets font back to Monospace
// Properties::Instance()->font = getTerminalFont();
// Properties::Instance()->saveSettings();
}
void TermWidgetImpl::zoomReset()
{
// note: do not save zoom here due the #74 Zoom reset option resets font back to Monospace
// Properties::Instance()->font = Properties::Instance()->font;
setTerminalFont(Properties::Instance()->font);
// Properties::Instance()->saveSettings();
}
void TermWidgetImpl::activateUrl(const QUrl & url) {
if (QApplication::keyboardModifiers() & Qt::ControlModifier) {
QDesktopServices::openUrl(url);
}
}
TermWidget::TermWidget(const QString & wdir, const QString & shell, QWidget * parent)
: QWidget(parent)
{
m_border = palette().color(QPalette::Window);
m_term = new TermWidgetImpl(wdir, shell, this);
setFocusProxy(m_term);
m_layout = new QVBoxLayout;
setLayout(m_layout);
m_layout->addWidget(m_term);
propertiesChanged();
connect(m_term, SIGNAL(finished()), this, SIGNAL(finished()));
connect(m_term, SIGNAL(termGetFocus()), this, SLOT(term_termGetFocus()));
connect(m_term, SIGNAL(termLostFocus()), this, SLOT(term_termLostFocus()));
}
void TermWidget::propertiesChanged()
{
if (Properties::Instance()->highlightCurrentTerminal)
m_layout->setContentsMargins(2, 2, 2, 2);
else
m_layout->setContentsMargins(0, 0, 0, 0);
m_term->propertiesChanged();
}
void TermWidget::term_termGetFocus()
{
m_border = palette().color(QPalette::Highlight);
emit termGetFocus(this);
update();
}
void TermWidget::term_termLostFocus()
{
m_border = palette().color(QPalette::Window);
update();
}
void TermWidget::paintEvent (QPaintEvent *)
{
QPainter p(this);
QPen pen(m_border);
pen.setWidth(30);
pen.setBrush(m_border);
p.setPen(pen);
p.drawRect(0, 0, width()-1, height()-1);
}

View File

@ -1,89 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef TERMWIDGET_H
#define TERMWIDGET_H
#include <qtermwidget.h>
#include <QAction>
class TermWidgetImpl : public QTermWidget
{
Q_OBJECT
// QMap< QString, QAction * > actionMap;
public:
TermWidgetImpl(const QString & wdir, const QString & shell=QString(), QWidget * parent=0);
void propertiesChanged();
signals:
void renameSession();
void removeCurrentSession();
public slots:
void zoomIn();
void zoomOut();
void zoomReset();
private slots:
void customContextMenuCall(const QPoint & pos);
void activateUrl(const QUrl& url);
};
class TermWidget : public QWidget
{
Q_OBJECT
TermWidgetImpl * m_term;
QVBoxLayout * m_layout;
QColor m_border;
public:
TermWidget(const QString & wdir, const QString & shell=QString(), QWidget * parent=0);
void propertiesChanged();
QStringList availableKeyBindings() { return m_term->availableKeyBindings(); }
TermWidgetImpl * impl() { return m_term; }
signals:
void finished();
void renameSession();
void removeCurrentSession();
void splitHorizontal(TermWidget * self);
void splitVertical(TermWidget * self);
void splitCollapse(TermWidget * self);
void termGetFocus(TermWidget * self);
public slots:
protected:
void paintEvent (QPaintEvent * event);
private slots:
void term_termGetFocus();
void term_termLostFocus();
};
#endif

View File

@ -1,301 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include <QGridLayout>
#include <QSplitter>
#include <QInputDialog>
#include "termwidgetholder.h"
#include "termwidget.h"
#include "properties.h"
#include <assert.h>
TermWidgetHolder::TermWidgetHolder(const QString & wdir, const QString & shell, QWidget * parent)
: QWidget(parent),
m_wdir(wdir),
m_shell(shell),
m_currentTerm(0)
{
setFocusPolicy(Qt::NoFocus);
QGridLayout * lay = new QGridLayout(this);
lay->setSpacing(0);
lay->setContentsMargins(0, 0, 0, 0);
QSplitter *s = new QSplitter(this);
s->setFocusPolicy(Qt::NoFocus);
TermWidget *w = newTerm();
s->addWidget(w);
lay->addWidget(s);
setLayout(lay);
}
TermWidgetHolder::~TermWidgetHolder()
{
}
void TermWidgetHolder::setInitialFocus()
{
QList<TermWidget*> list = findChildren<TermWidget*>();
TermWidget * w = list.count() == 0 ? 0 : list.at(0);
if (w)
w->setFocus(Qt::OtherFocusReason);
}
void TermWidgetHolder::loadSession()
{
bool ok;
QString name = QInputDialog::getItem(this, tr("Load Session"),
tr("List of saved sessions:"),
Properties::Instance()->sessions.keys(),
0, false, &ok);
if (!ok || name.isEmpty())
return;
#if 0
foreach (QWidget * w, findChildren<QWidget*>())
{
if (w)
{
delete w;
w = 0;
}
}
qDebug() << "load" << name << QString(Properties::Instance()->sessions[name]);
QStringList splitters = QString(Properties::Instance()->sessions[name]).split("|", QString::SkipEmptyParts);
foreach (QString splitter, splitters)
{
QStringList components = splitter.split(",");
qDebug() << "comp" << components;
// orientation
Qt::Orientation orientation;
if (components.size() > 0)
orientation = components.takeAt(0).toInt();
// sizes
QList<int> sizes;
QList<TermWidget*> widgets;
foreach (QString s, components)
{
sizes << s.toInt();
widgets << newTerm();
}
// new terms
}
#endif
}
void TermWidgetHolder::saveSession(const QString & name)
{
Session dump;
QString num("%1");
foreach(QSplitter *w, findChildren<QSplitter*>())
{
dump += '|' + num.arg(w->orientation());
foreach (int i, w->sizes())
dump += ',' + num.arg(i);
}
Properties::Instance()->sessions[name] = dump;
qDebug() << "dump" << dump;
}
TermWidget* TermWidgetHolder::currentTerminal()
{
return m_currentTerm;
}
void TermWidgetHolder::setWDir(const QString & wdir)
{
m_wdir = wdir;
}
void TermWidgetHolder::switchNextSubterminal()
{
// TODO/FIXME: merge switchPrevSubterminal with switchNextSubterminal
QList<TermWidget*> l = findChildren<TermWidget*>();
int ix = -1;
foreach (TermWidget * w, l)
{
++ix;
if (w->impl()->hasFocus())
{
break;
}
}
if (ix < l.count()-1)
{
l.at(ix+1)->impl()->setFocus(Qt::OtherFocusReason);
}
else if (ix == l.count()-1)
{
l.at(0)->impl()->setFocus(Qt::OtherFocusReason);
}
}
void TermWidgetHolder::switchPrevSubterminal()
{
// TODO/FIXME: merge switchPrevSubterminal with switchNextSubterminal
QList<TermWidget*> l = findChildren<TermWidget*>();
int ix = -1;
foreach (TermWidget * w, l)
{
++ix;
if (w->impl()->hasFocus())
{
break;
}
}
if (ix > 0)
{
l.at(ix-1)->impl()->setFocus(Qt::OtherFocusReason);
}
else if (ix == 0)
{
l.at(l.count()-1)->impl()->setFocus(Qt::OtherFocusReason);
}
}
void TermWidgetHolder::clearActiveTerminal()
{
currentTerminal()->impl()->clear();
}
void TermWidgetHolder::propertiesChanged()
{
foreach(TermWidget *w, findChildren<TermWidget*>())
w->propertiesChanged();
}
void TermWidgetHolder::splitHorizontal(TermWidget * term)
{
split(term, Qt::Vertical);
}
void TermWidgetHolder::splitVertical(TermWidget * term)
{
split(term, Qt::Horizontal);
}
void TermWidgetHolder::splitCollapse(TermWidget * term)
{
QSplitter * parent = qobject_cast<QSplitter*>(term->parent());
assert(parent);
term->setParent(0);
delete term;
int cnt = parent->findChildren<TermWidget*>().count();
if (cnt == 0)
{
parent->setParent(0);
delete parent;
}
QList<TermWidget*> tlist = findChildren<TermWidget *>();
int localCnt = tlist.count();
if (localCnt > 0)
{
tlist.at(0)->setFocus(Qt::OtherFocusReason);
update();
if (parent)
parent->update();
}
else
emit finished();
}
void TermWidgetHolder::split(TermWidget *term, Qt::Orientation orientation)
{
QSplitter *parent = qobject_cast<QSplitter *>(term->parent());
assert(parent);
int ix = parent->indexOf(term);
QList<int> parentSizes = parent->sizes();
QList<int> sizes;
sizes << 1 << 1;
QSplitter *s = new QSplitter(orientation, this);
s->setFocusPolicy(Qt::NoFocus);
s->insertWidget(0, term);
// wdir settings
QString wd(m_wdir);
if (Properties::Instance()->useCWD)
{
wd = term->impl()->workingDirectory();
if (wd.isEmpty())
wd = m_wdir;
}
TermWidget * w = newTerm(wd);
s->insertWidget(1, w);
s->setSizes(sizes);
parent->insertWidget(ix, s);
parent->setSizes(parentSizes);
w->setFocus(Qt::OtherFocusReason);
}
TermWidget *TermWidgetHolder::newTerm(const QString & wdir, const QString & shell)
{
QString wd(wdir);
if (wd.isEmpty())
wd = m_wdir;
QString sh(shell);
if (shell.isEmpty())
sh = m_shell;
TermWidget *w = new TermWidget(wd, sh, this);
// proxy signals
connect(w, SIGNAL(renameSession()), this, SIGNAL(renameSession()));
connect(w, SIGNAL(removeCurrentSession()), this, SIGNAL(lastTerminalClosed()));
connect(w, SIGNAL(finished()), this, SLOT(handle_finished()));
// consume signals
connect(w, SIGNAL(splitHorizontal(TermWidget *)),
this, SLOT(splitHorizontal(TermWidget *)));
connect(w, SIGNAL(splitVertical(TermWidget *)),
this, SLOT(splitVertical(TermWidget *)));
connect(w, SIGNAL(splitCollapse(TermWidget *)),
this, SLOT(splitCollapse(TermWidget *)));
connect(w, SIGNAL(termGetFocus(TermWidget *)),
this, SLOT(setCurrentTerminal(TermWidget *)));
return w;
}
void TermWidgetHolder::setCurrentTerminal(TermWidget* term)
{
m_currentTerm = term;
}
void TermWidgetHolder::handle_finished()
{
TermWidget * w = qobject_cast<TermWidget*>(sender());
if (!w)
{
qDebug() << "TermWidgetHolder::handle_finished: Unknown object to handle" << w;
assert(0);
}
splitCollapse(w);
}

View File

@ -1,82 +0,0 @@
/***************************************************************************
* Copyright (C) 2010 by Petr Vanek *
* petr@scribus.info *
* *
* 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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef TERMWIDGETHOLDER_H
#define TERMWIDGETHOLDER_H
#include <QWidget>
#include "termwidget.h"
class QSplitter;
/*! \brief TermWidget group/session manager.
This widget (one per TabWidget tab) is a "proxy" widget beetween TabWidget and
unspecified count of TermWidgets. Basically it should look like a single TermWidget
for TabWidget - with its signals and slots.
Splitting and collapsing of TermWidgets is done here.
*/
class TermWidgetHolder : public QWidget
{
Q_OBJECT
public:
TermWidgetHolder(const QString & wdir, const QString & shell=QString(), QWidget * parent=0);
~TermWidgetHolder();
void propertiesChanged();
void setInitialFocus();
void loadSession();
void saveSession(const QString & name);
void zoomIn(uint step);
void zoomOut(uint step);
TermWidget* currentTerminal();
public slots:
void splitHorizontal(TermWidget * term);
void splitVertical(TermWidget * term);
void splitCollapse(TermWidget * term);
void setWDir(const QString & wdir);
void switchNextSubterminal();
void switchPrevSubterminal();
void clearActiveTerminal();
signals:
void finished();
void lastTerminalClosed();
void renameSession();
private:
QString m_wdir;
QString m_shell;
TermWidget * m_currentTerm;
void split(TermWidget * term, Qt::Orientation orientation);
TermWidget * newTerm(const QString & wdir=QString(), const QString & shell=QString());
private slots:
void setCurrentTerminal(TermWidget* term);
void handle_finished();
};
#endif

View File

@ -1,233 +0,0 @@
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
#ifndef QXTGLOBAL_H
#define QXTGLOBAL_H
#include <QtGlobal>
#define QXT_VERSION 0x000700
#define QXT_VERSION_STR "0.7.0"
//--------------------------global macros------------------------------
#ifndef QXT_NO_MACROS
#ifndef _countof
#define _countof(x) (sizeof(x)/sizeof(*x))
#endif
#endif // QXT_NO_MACROS
//--------------------------export macros------------------------------
#define QXT_DLLEXPORT DO_NOT_USE_THIS_ANYMORE
#if !defined(QXT_STATIC) && !defined(QXT_DOXYGEN_RUN)
# if defined(BUILD_QXT_CORE)
# define QXT_CORE_EXPORT Q_DECL_EXPORT
# else
# define QXT_CORE_EXPORT Q_DECL_IMPORT
# endif
#else
# define QXT_CORE_EXPORT
#endif // BUILD_QXT_CORE
#if !defined(QXT_STATIC) && !defined(QXT_DOXYGEN_RUN)
# if defined(BUILD_QXT_GUI)
# define QXT_GUI_EXPORT Q_DECL_EXPORT
# else
# define QXT_GUI_EXPORT Q_DECL_IMPORT
# endif
#else
# define QXT_GUI_EXPORT
#endif // BUILD_QXT_GUI
#if !defined(QXT_STATIC) && !defined(QXT_DOXYGEN_RUN)
# if defined(BUILD_QXT_NETWORK)
# define QXT_NETWORK_EXPORT Q_DECL_EXPORT
# else
# define QXT_NETWORK_EXPORT Q_DECL_IMPORT
# endif
#else
# define QXT_NETWORK_EXPORT
#endif // BUILD_QXT_NETWORK
#if !defined(QXT_STATIC) && !defined(QXT_DOXYGEN_RUN)
# if defined(BUILD_QXT_SQL)
# define QXT_SQL_EXPORT Q_DECL_EXPORT
# else
# define QXT_SQL_EXPORT Q_DECL_IMPORT
# endif
#else
# define QXT_SQL_EXPORT
#endif // BUILD_QXT_SQL
#if !defined(QXT_STATIC) && !defined(QXT_DOXYGEN_RUN)
# if defined(BUILD_QXT_WEB)
# define QXT_WEB_EXPORT Q_DECL_EXPORT
# else
# define QXT_WEB_EXPORT Q_DECL_IMPORT
# endif
#else
# define QXT_WEB_EXPORT
#endif // BUILD_QXT_WEB
#if !defined(QXT_STATIC) && !defined(QXT_DOXYGEN_RUN)
# if defined(BUILD_QXT_BERKELEY)
# define QXT_BERKELEY_EXPORT Q_DECL_EXPORT
# else
# define QXT_BERKELEY_EXPORT Q_DECL_IMPORT
# endif
#else
# define QXT_BERKELEY_EXPORT
#endif // BUILD_QXT_BERKELEY
#if !defined(QXT_STATIC) && !defined(QXT_DOXYGEN_RUN)
# if defined(BUILD_QXT_ZEROCONF)
# define QXT_ZEROCONF_EXPORT Q_DECL_EXPORT
# else
# define QXT_ZEROCONF_EXPORT Q_DECL_IMPORT
# endif
#else
# define QXT_ZEROCONF_EXPORT
#endif // QXT_ZEROCONF_EXPORT
#if defined(BUILD_QXT_CORE) || defined(BUILD_QXT_GUI) || defined(BUILD_QXT_SQL) || defined(BUILD_QXT_NETWORK) || defined(BUILD_QXT_WEB) || defined(BUILD_QXT_BERKELEY) || defined(BUILD_QXT_ZEROCONF)
# define BUILD_QXT
#endif
QXT_CORE_EXPORT const char* qxtVersion();
#ifndef QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
#endif
#ifndef QT_END_NAMESPACE
#define QT_END_NAMESPACE
#endif
#ifndef QT_FORWARD_DECLARE_CLASS
#define QT_FORWARD_DECLARE_CLASS(Class) class Class;
#endif
/****************************************************************************
** This file is derived from code bearing the following notice:
** The sole author of this file, Adam Higerd, has explicitly disclaimed all
** copyright interest and protection for the content within. This file has
** been placed in the public domain according to United States copyright
** statute and case law. In jurisdictions where this public domain dedication
** is not legally recognized, anyone who receives a copy of this file is
** permitted to use, modify, duplicate, and redistribute this file, in whole
** or in part, with no restrictions or conditions. In these jurisdictions,
** this file shall be copyright (C) 2006-2008 by Adam Higerd.
****************************************************************************/
#define QXT_DECLARE_PRIVATE(PUB) friend class PUB##Private; QxtPrivateInterface<PUB, PUB##Private> qxt_d;
#define QXT_DECLARE_PUBLIC(PUB) friend class PUB;
#define QXT_INIT_PRIVATE(PUB) qxt_d.setPublic(this);
#define QXT_D(PUB) PUB##Private& d = qxt_d()
#define QXT_P(PUB) PUB& p = qxt_p()
template <typename PUB>
class QxtPrivate
{
public:
virtual ~QxtPrivate()
{}
inline void QXT_setPublic(PUB* pub)
{
qxt_p_ptr = pub;
}
protected:
inline PUB& qxt_p()
{
return *qxt_p_ptr;
}
inline const PUB& qxt_p() const
{
return *qxt_p_ptr;
}
inline PUB* qxt_ptr()
{
return qxt_p_ptr;
}
inline const PUB* qxt_ptr() const
{
return qxt_p_ptr;
}
private:
PUB* qxt_p_ptr;
};
template <typename PUB, typename PVT>
class QxtPrivateInterface
{
friend class QxtPrivate<PUB>;
public:
QxtPrivateInterface()
{
pvt = new PVT;
}
~QxtPrivateInterface()
{
delete pvt;
}
inline void setPublic(PUB* pub)
{
pvt->QXT_setPublic(pub);
}
inline PVT& operator()()
{
return *static_cast<PVT*>(pvt);
}
inline const PVT& operator()() const
{
return *static_cast<PVT*>(pvt);
}
inline PVT * operator->()
{
return static_cast<PVT*>(pvt);
}
inline const PVT * operator->() const
{
return static_cast<PVT*>(pvt);
}
private:
QxtPrivateInterface(const QxtPrivateInterface&) { }
QxtPrivateInterface& operator=(const QxtPrivateInterface&) { }
QxtPrivate<PUB>* pvt;
};
#endif // QXT_GLOBAL

View File

@ -1,212 +0,0 @@
#include "qxtglobalshortcut.h"
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
#include "qxtglobalshortcut_p.h"
#include <QAbstractEventDispatcher>
#include <QtDebug>
#ifndef Q_OS_MAC
int QxtGlobalShortcutPrivate::ref = 0;
#endif
QHash<QPair<quint32, quint32>, QxtGlobalShortcut*> QxtGlobalShortcutPrivate::shortcuts;
QxtGlobalShortcutPrivate::QxtGlobalShortcutPrivate() : enabled(true), key(Qt::Key(0)), mods(Qt::NoModifier)
{
#ifndef Q_OS_MAC
if (ref == 0) {
QAbstractEventDispatcher::instance()->installNativeEventFilter(this);
}
++ref;
#endif
}
QxtGlobalShortcutPrivate::~QxtGlobalShortcutPrivate()
{
#ifndef Q_OS_MAC
--ref;
if (ref == 0) {
QAbstractEventDispatcher *ed = QAbstractEventDispatcher::instance();
if (ed != 0) {
ed->removeNativeEventFilter(this);
}
}
#endif
}
bool QxtGlobalShortcutPrivate::setShortcut(const QKeySequence& shortcut)
{
Qt::KeyboardModifiers allMods = Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier;
key = shortcut.isEmpty() ? Qt::Key(0) : Qt::Key((shortcut[0] ^ allMods) & shortcut[0]);
mods = shortcut.isEmpty() ? Qt::KeyboardModifiers(0) : Qt::KeyboardModifiers(shortcut[0] & allMods);
const quint32 nativeKey = nativeKeycode(key);
const quint32 nativeMods = nativeModifiers(mods);
const bool res = registerShortcut(nativeKey, nativeMods);
if (res)
shortcuts.insert(qMakePair(nativeKey, nativeMods), &qxt_p());
else
qWarning() << "QxtGlobalShortcut failed to register:" << QKeySequence(key + mods).toString();
return res;
}
bool QxtGlobalShortcutPrivate::unsetShortcut()
{
bool res = false;
const quint32 nativeKey = nativeKeycode(key);
const quint32 nativeMods = nativeModifiers(mods);
if (shortcuts.value(qMakePair(nativeKey, nativeMods)) == &qxt_p())
res = unregisterShortcut(nativeKey, nativeMods);
if (res)
shortcuts.remove(qMakePair(nativeKey, nativeMods));
else
qWarning() << "QxtGlobalShortcut failed to unregister:" << QKeySequence(key + mods).toString();
key = Qt::Key(0);
mods = Qt::KeyboardModifiers(0);
return res;
}
void QxtGlobalShortcutPrivate::activateShortcut(quint32 nativeKey, quint32 nativeMods)
{
QxtGlobalShortcut* shortcut = shortcuts.value(qMakePair(nativeKey, nativeMods));
if (shortcut && shortcut->isEnabled())
emit shortcut->activated();
}
/*!
\class QxtGlobalShortcut
\inmodule QxtWidgets
\brief The QxtGlobalShortcut class provides a global shortcut aka "hotkey".
A global shortcut triggers even if the application is not active. This
makes it easy to implement applications that react to certain shortcuts
still if some other application is active or if the application is for
example minimized to the system tray.
Example usage:
\code
QxtGlobalShortcut* shortcut = new QxtGlobalShortcut(window);
connect(shortcut, SIGNAL(activated()), window, SLOT(toggleVisibility()));
shortcut->setShortcut(QKeySequence("Ctrl+Shift+F12"));
\endcode
\bold {Note:} Since Qxt 0.6 QxtGlobalShortcut no more requires QxtApplication.
*/
/*!
\fn QxtGlobalShortcut::activated()
This signal is emitted when the user types the shortcut's key sequence.
\sa shortcut
*/
/*!
Constructs a new QxtGlobalShortcut with \a parent.
*/
QxtGlobalShortcut::QxtGlobalShortcut(QObject* parent)
: QObject(parent)
{
QXT_INIT_PRIVATE(QxtGlobalShortcut);
}
/*!
Constructs a new QxtGlobalShortcut with \a shortcut and \a parent.
*/
QxtGlobalShortcut::QxtGlobalShortcut(const QKeySequence& shortcut, QObject* parent)
: QObject(parent)
{
QXT_INIT_PRIVATE(QxtGlobalShortcut);
setShortcut(shortcut);
}
/*!
Destructs the QxtGlobalShortcut.
*/
QxtGlobalShortcut::~QxtGlobalShortcut()
{
if (qxt_d().key != 0)
qxt_d().unsetShortcut();
}
/*!
\property QxtGlobalShortcut::shortcut
\brief the shortcut key sequence
\bold {Note:} Notice that corresponding key press and release events are not
delivered for registered global shortcuts even if they are disabled.
Also, comma separated key sequences are not supported.
Only the first part is used:
\code
qxtShortcut->setShortcut(QKeySequence("Ctrl+Alt+A,Ctrl+Alt+B"));
Q_ASSERT(qxtShortcut->shortcut() == QKeySequence("Ctrl+Alt+A"));
\endcode
*/
QKeySequence QxtGlobalShortcut::shortcut() const
{
return QKeySequence(qxt_d().key | qxt_d().mods);
}
bool QxtGlobalShortcut::setShortcut(const QKeySequence& shortcut)
{
if (qxt_d().key != 0)
qxt_d().unsetShortcut();
return qxt_d().setShortcut(shortcut);
}
/*!
\property QxtGlobalShortcut::enabled
\brief whether the shortcut is enabled
A disabled shortcut does not get activated.
The default value is \c true.
\sa setDisabled()
*/
bool QxtGlobalShortcut::isEnabled() const
{
return qxt_d().enabled;
}
void QxtGlobalShortcut::setEnabled(bool enabled)
{
qxt_d().enabled = enabled;
}
/*!
Sets the shortcut \a disabled.
\sa enabled
*/
void QxtGlobalShortcut::setDisabled(bool disabled)
{
qxt_d().enabled = !disabled;
}

View File

@ -1,64 +0,0 @@
#ifndef QXTGLOBALSHORTCUT_H
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
#define QXTGLOBALSHORTCUT_H
#include "qxtglobal.h"
#include <QObject>
#include <QKeySequence>
class QxtGlobalShortcutPrivate;
class QXT_GUI_EXPORT QxtGlobalShortcut : public QObject
{
Q_OBJECT
QXT_DECLARE_PRIVATE(QxtGlobalShortcut)
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
Q_PROPERTY(QKeySequence shortcut READ shortcut WRITE setShortcut)
public:
explicit QxtGlobalShortcut(QObject* parent = 0);
explicit QxtGlobalShortcut(const QKeySequence& shortcut, QObject* parent = 0);
virtual ~QxtGlobalShortcut();
QKeySequence shortcut() const;
bool setShortcut(const QKeySequence& shortcut);
bool isEnabled() const;
public Q_SLOTS:
void setEnabled(bool enabled = true);
void setDisabled(bool disabled = true);
Q_SIGNALS:
void activated();
};
#endif // QXTGLOBALSHORTCUT_H

View File

@ -1,258 +0,0 @@
#include <Carbon/Carbon.h>
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
#include "qxtglobalshortcut_p.h"
#include <QMap>
#include <QHash>
#include <QtDebug>
#include <QApplication>
typedef QPair<uint, uint> Identifier;
static QMap<quint32, EventHotKeyRef> keyRefs;
static QHash<Identifier, quint32> keyIDs;
static quint32 hotKeySerial = 0;
static bool qxt_mac_handler_installed = false;
OSStatus qxt_mac_handle_hot_key(EventHandlerCallRef nextHandler, EventRef event, void* data)
{
Q_UNUSED(nextHandler);
Q_UNUSED(data);
if (GetEventClass(event) == kEventClassKeyboard && GetEventKind(event) == kEventHotKeyPressed)
{
EventHotKeyID keyID;
GetEventParameter(event, kEventParamDirectObject, typeEventHotKeyID, NULL, sizeof(keyID), NULL, &keyID);
Identifier id = keyIDs.key(keyID.id);
QxtGlobalShortcutPrivate::activateShortcut(id.second, id.first);
}
return noErr;
}
quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers modifiers)
{
quint32 native = 0;
if (modifiers & Qt::ShiftModifier)
native |= shiftKey;
if (modifiers & Qt::ControlModifier)
native |= cmdKey;
if (modifiers & Qt::AltModifier)
native |= optionKey;
if (modifiers & Qt::MetaModifier)
native |= controlKey;
if (modifiers & Qt::KeypadModifier)
native |= kEventKeyModifierNumLockMask;
return native;
}
quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
{
UTF16Char ch;
// Constants found in NSEvent.h from AppKit.framework
switch (key)
{
case Qt::Key_Return:
return kVK_Return;
case Qt::Key_Enter:
return kVK_ANSI_KeypadEnter;
case Qt::Key_Tab:
return kVK_Tab;
case Qt::Key_Space:
return kVK_Space;
case Qt::Key_Backspace:
return kVK_Delete;
case Qt::Key_Control:
return kVK_Command;
case Qt::Key_Shift:
return kVK_Shift;
case Qt::Key_CapsLock:
return kVK_CapsLock;
case Qt::Key_Option:
return kVK_Option;
case Qt::Key_Meta:
return kVK_Control;
case Qt::Key_F17:
return kVK_F17;
case Qt::Key_VolumeUp:
return kVK_VolumeUp;
case Qt::Key_VolumeDown:
return kVK_VolumeDown;
case Qt::Key_F18:
return kVK_F18;
case Qt::Key_F19:
return kVK_F19;
case Qt::Key_F20:
return kVK_F20;
case Qt::Key_F5:
return kVK_F5;
case Qt::Key_F6:
return kVK_F6;
case Qt::Key_F7:
return kVK_F7;
case Qt::Key_F3:
return kVK_F3;
case Qt::Key_F8:
return kVK_F8;
case Qt::Key_F9:
return kVK_F9;
case Qt::Key_F11:
return kVK_F11;
case Qt::Key_F13:
return kVK_F13;
case Qt::Key_F16:
return kVK_F16;
case Qt::Key_F14:
return kVK_F14;
case Qt::Key_F10:
return kVK_F10;
case Qt::Key_F12:
return kVK_F12;
case Qt::Key_F15:
return kVK_F15;
case Qt::Key_Help:
return kVK_Help;
case Qt::Key_Home:
return kVK_Home;
case Qt::Key_PageUp:
return kVK_PageUp;
case Qt::Key_Delete:
return kVK_ForwardDelete;
case Qt::Key_F4:
return kVK_F4;
case Qt::Key_End:
return kVK_End;
case Qt::Key_F2:
return kVK_F2;
case Qt::Key_PageDown:
return kVK_PageDown;
case Qt::Key_F1:
return kVK_F1;
case Qt::Key_Left:
return kVK_LeftArrow;
case Qt::Key_Right:
return kVK_RightArrow;
case Qt::Key_Down:
return kVK_DownArrow;
case Qt::Key_Up:
return kVK_UpArrow;
default:
;
}
if (key == Qt::Key_Escape) ch = 27;
else if (key == Qt::Key_Return) ch = 13;
else if (key == Qt::Key_Enter) ch = 3;
else if (key == Qt::Key_Tab) ch = 9;
else ch = key;
CFDataRef currentLayoutData;
TISInputSourceRef currentKeyboard = TISCopyCurrentKeyboardInputSource();
if (currentKeyboard == NULL)
return 0;
currentLayoutData = (CFDataRef)TISGetInputSourceProperty(currentKeyboard, kTISPropertyUnicodeKeyLayoutData);
CFRelease(currentKeyboard);
if (currentLayoutData == NULL)
return 0;
UCKeyboardLayout* header = (UCKeyboardLayout*)CFDataGetBytePtr(currentLayoutData);
UCKeyboardTypeHeader* table = header->keyboardTypeList;
uint8_t *data = (uint8_t*)header;
// God, would a little documentation for this shit kill you...
for (quint32 i=0; i < header->keyboardTypeCount; i++)
{
UCKeyStateRecordsIndex* stateRec = 0;
if (table[i].keyStateRecordsIndexOffset != 0)
{
stateRec = reinterpret_cast<UCKeyStateRecordsIndex*>(data + table[i].keyStateRecordsIndexOffset);
if (stateRec->keyStateRecordsIndexFormat != kUCKeyStateRecordsIndexFormat) stateRec = 0;
}
UCKeyToCharTableIndex* charTable = reinterpret_cast<UCKeyToCharTableIndex*>(data + table[i].keyToCharTableIndexOffset);
if (charTable->keyToCharTableIndexFormat != kUCKeyToCharTableIndexFormat) continue;
for (quint32 j=0; j < charTable->keyToCharTableCount; j++)
{
UCKeyOutput* keyToChar = reinterpret_cast<UCKeyOutput*>(data + charTable->keyToCharTableOffsets[j]);
for (quint32 k=0; k < charTable->keyToCharTableSize; k++)
{
if (keyToChar[k] & kUCKeyOutputTestForIndexMask)
{
long idx = keyToChar[k] & kUCKeyOutputGetIndexMask;
if (stateRec && idx < stateRec->keyStateRecordCount)
{
UCKeyStateRecord* rec = reinterpret_cast<UCKeyStateRecord*>(data + stateRec->keyStateRecordOffsets[idx]);
if (rec->stateZeroCharData == ch) return k;
}
}
else if (!(keyToChar[k] & kUCKeyOutputSequenceIndexMask) && keyToChar[k] < 0xFFFE)
{
if (keyToChar[k] == ch) return k;
}
} // for k
} // for j
} // for i
return 0;
}
bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)
{
if (!qxt_mac_handler_installed)
{
EventTypeSpec t;
t.eventClass = kEventClassKeyboard;
t.eventKind = kEventHotKeyPressed;
InstallApplicationEventHandler(&qxt_mac_handle_hot_key, 1, &t, NULL, NULL);
}
EventHotKeyID keyID;
keyID.signature = 'cute';
keyID.id = ++hotKeySerial;
EventHotKeyRef ref = 0;
bool rv = !RegisterEventHotKey(nativeKey, nativeMods, keyID, GetApplicationEventTarget(), 0, &ref);
if (rv)
{
keyIDs.insert(Identifier(nativeMods, nativeKey), keyID.id);
keyRefs.insert(keyID.id, ref);
}
return rv;
}
bool QxtGlobalShortcutPrivate::unregisterShortcut(quint32 nativeKey, quint32 nativeMods)
{
Identifier id(nativeMods, nativeKey);
if (!keyIDs.contains(id)) return false;
EventHotKeyRef ref = keyRefs.take(keyIDs[id]);
keyIDs.remove(id);
return !UnregisterEventHotKey(ref);
}

View File

@ -1,76 +0,0 @@
#ifndef QXTGLOBALSHORTCUT_P_H
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
#define QXTGLOBALSHORTCUT_P_H
#include "qxtglobalshortcut.h"
#include <QAbstractEventDispatcher>
#include <QAbstractNativeEventFilter>
#include <QKeySequence>
#include <QHash>
class QxtGlobalShortcutPrivate : public QxtPrivate<QxtGlobalShortcut>
#if !defined(Q_OS_MAC)
,public QAbstractNativeEventFilter
#endif
{
public:
QXT_DECLARE_PUBLIC(QxtGlobalShortcut)
QxtGlobalShortcutPrivate();
~QxtGlobalShortcutPrivate();
bool enabled;
Qt::Key key;
Qt::KeyboardModifiers mods;
bool setShortcut(const QKeySequence& shortcut);
bool unsetShortcut();
static bool error;
#ifndef Q_OS_MAC
static int ref;
virtual bool nativeEventFilter(const QByteArray & eventType, void * message, long * result);
#endif
static void activateShortcut(quint32 nativeKey, quint32 nativeMods);
private:
static quint32 nativeKeycode(Qt::Key keycode);
static quint32 nativeModifiers(Qt::KeyboardModifiers modifiers);
static bool registerShortcut(quint32 nativeKey, quint32 nativeMods);
static bool unregisterShortcut(quint32 nativeKey, quint32 nativeMods);
static QHash<QPair<quint32, quint32>, QxtGlobalShortcut*> shortcuts;
};
#endif // QXTGLOBALSHORTCUT_P_H

View File

@ -1,243 +0,0 @@
#include "qxtglobalshortcut_p.h"
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
#include <qt_windows.h>
bool QxtGlobalShortcutPrivate::nativeEventFilter(const QByteArray & eventType,
void * message, long * result)
{
Q_UNUSED(eventType);
Q_UNUSED(result);
MSG* msg = static_cast<MSG*>(message);
if (msg->message == WM_HOTKEY)
{
const quint32 keycode = HIWORD(msg->lParam);
const quint32 modifiers = LOWORD(msg->lParam);
activateShortcut(keycode, modifiers);
}
return false;
}
quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers modifiers)
{
// MOD_ALT, MOD_CONTROL, (MOD_KEYUP), MOD_SHIFT, MOD_WIN
quint32 native = 0;
if (modifiers & Qt::ShiftModifier)
native |= MOD_SHIFT;
if (modifiers & Qt::ControlModifier)
native |= MOD_CONTROL;
if (modifiers & Qt::AltModifier)
native |= MOD_ALT;
if (modifiers & Qt::MetaModifier)
native |= MOD_WIN;
// TODO: resolve these?
//if (modifiers & Qt::KeypadModifier)
//if (modifiers & Qt::GroupSwitchModifier)
return native;
}
quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
{
switch (key)
{
case Qt::Key_Escape:
return VK_ESCAPE;
case Qt::Key_Tab:
case Qt::Key_Backtab:
return VK_TAB;
case Qt::Key_Backspace:
return VK_BACK;
case Qt::Key_Return:
case Qt::Key_Enter:
return VK_RETURN;
case Qt::Key_Insert:
return VK_INSERT;
case Qt::Key_Delete:
return VK_DELETE;
case Qt::Key_Pause:
return VK_PAUSE;
case Qt::Key_Print:
return VK_PRINT;
case Qt::Key_Clear:
return VK_CLEAR;
case Qt::Key_Home:
return VK_HOME;
case Qt::Key_End:
return VK_END;
case Qt::Key_Left:
return VK_LEFT;
case Qt::Key_Up:
return VK_UP;
case Qt::Key_Right:
return VK_RIGHT;
case Qt::Key_Down:
return VK_DOWN;
case Qt::Key_PageUp:
return VK_PRIOR;
case Qt::Key_PageDown:
return VK_NEXT;
case Qt::Key_F1:
return VK_F1;
case Qt::Key_F2:
return VK_F2;
case Qt::Key_F3:
return VK_F3;
case Qt::Key_F4:
return VK_F4;
case Qt::Key_F5:
return VK_F5;
case Qt::Key_F6:
return VK_F6;
case Qt::Key_F7:
return VK_F7;
case Qt::Key_F8:
return VK_F8;
case Qt::Key_F9:
return VK_F9;
case Qt::Key_F10:
return VK_F10;
case Qt::Key_F11:
return VK_F11;
case Qt::Key_F12:
return VK_F12;
case Qt::Key_F13:
return VK_F13;
case Qt::Key_F14:
return VK_F14;
case Qt::Key_F15:
return VK_F15;
case Qt::Key_F16:
return VK_F16;
case Qt::Key_F17:
return VK_F17;
case Qt::Key_F18:
return VK_F18;
case Qt::Key_F19:
return VK_F19;
case Qt::Key_F20:
return VK_F20;
case Qt::Key_F21:
return VK_F21;
case Qt::Key_F22:
return VK_F22;
case Qt::Key_F23:
return VK_F23;
case Qt::Key_F24:
return VK_F24;
case Qt::Key_Space:
return VK_SPACE;
case Qt::Key_Asterisk:
return VK_MULTIPLY;
case Qt::Key_Plus:
return VK_ADD;
case Qt::Key_Comma:
return VK_SEPARATOR;
case Qt::Key_Minus:
return VK_SUBTRACT;
case Qt::Key_Slash:
return VK_DIVIDE;
case Qt::Key_MediaNext:
return VK_MEDIA_NEXT_TRACK;
case Qt::Key_MediaPrevious:
return VK_MEDIA_PREV_TRACK;
case Qt::Key_MediaPlay:
return VK_MEDIA_PLAY_PAUSE;
case Qt::Key_MediaStop:
return VK_MEDIA_STOP;
// couldn't find those in VK_*
//case Qt::Key_MediaLast:
//case Qt::Key_MediaRecord:
case Qt::Key_VolumeDown:
return VK_VOLUME_DOWN;
case Qt::Key_VolumeUp:
return VK_VOLUME_UP;
case Qt::Key_VolumeMute:
return VK_VOLUME_MUTE;
// numbers
case Qt::Key_0:
case Qt::Key_1:
case Qt::Key_2:
case Qt::Key_3:
case Qt::Key_4:
case Qt::Key_5:
case Qt::Key_6:
case Qt::Key_7:
case Qt::Key_8:
case Qt::Key_9:
return key;
// letters
case Qt::Key_A:
case Qt::Key_B:
case Qt::Key_C:
case Qt::Key_D:
case Qt::Key_E:
case Qt::Key_F:
case Qt::Key_G:
case Qt::Key_H:
case Qt::Key_I:
case Qt::Key_J:
case Qt::Key_K:
case Qt::Key_L:
case Qt::Key_M:
case Qt::Key_N:
case Qt::Key_O:
case Qt::Key_P:
case Qt::Key_Q:
case Qt::Key_R:
case Qt::Key_S:
case Qt::Key_T:
case Qt::Key_U:
case Qt::Key_V:
case Qt::Key_W:
case Qt::Key_X:
case Qt::Key_Y:
case Qt::Key_Z:
return key;
default:
return 0;
}
}
bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)
{
return RegisterHotKey(0, nativeMods ^ nativeKey, nativeMods, nativeKey);
}
bool QxtGlobalShortcutPrivate::unregisterShortcut(quint32 nativeKey, quint32 nativeMods)
{
return UnregisterHotKey(0, nativeMods ^ nativeKey);
}

View File

@ -1,224 +0,0 @@
#include "qxtglobalshortcut_p.h"
/****************************************************************************
** Copyright (c) 2006 - 2011, the LibQxt project.
** See the Qxt AUTHORS file for a list of authors and copyright holders.
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the LibQxt project nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** <http://libqxt.org> <foundation@libqxt.org>
*****************************************************************************/
/****************************************************************************
*
* Note: This file is a modified version for QTerminal!
*
****************************************************************************/
#include <QVector>
#include <QtX11Extras/QX11Info>
#include <xcb/xcb.h>
#include <X11/Xlib.h>
namespace {
const QVector<quint32> maskModifiers = QVector<quint32>()
<< 0 << Mod2Mask << LockMask << (Mod2Mask | LockMask);
typedef int (*X11ErrorHandler)(Display *display, XErrorEvent *event);
class QxtX11ErrorHandler {
public:
static bool error;
static int qxtX11ErrorHandler(Display *display, XErrorEvent *event)
{
Q_UNUSED(display);
switch (event->error_code)
{
case BadAccess:
case BadValue:
case BadWindow:
if (event->request_code == 33 /* X_GrabKey */ ||
event->request_code == 34 /* X_UngrabKey */)
{
error = true;
//TODO:
//char errstr[256];
//XGetErrorText(dpy, err->error_code, errstr, 256);
}
}
return 0;
}
QxtX11ErrorHandler()
{
error = false;
m_previousErrorHandler = XSetErrorHandler(qxtX11ErrorHandler);
}
~QxtX11ErrorHandler()
{
XSetErrorHandler(m_previousErrorHandler);
}
private:
X11ErrorHandler m_previousErrorHandler;
};
bool QxtX11ErrorHandler::error = false;
class QxtX11Data {
public:
QxtX11Data()
{
m_display = QX11Info::display();
}
bool isValid()
{
return m_display != 0;
}
Display *display()
{
Q_ASSERT(isValid());
return m_display;
}
Window rootWindow()
{
return DefaultRootWindow(display());
}
bool grabKey(quint32 keycode, quint32 modifiers, Window window)
{
QxtX11ErrorHandler errorHandler;
for (int i = 0; !errorHandler.error && i < maskModifiers.size(); ++i) {
XGrabKey(display(), keycode, modifiers | maskModifiers[i], window, True,
GrabModeAsync, GrabModeAsync);
}
if (errorHandler.error) {
ungrabKey(keycode, modifiers, window);
return false;
}
return true;
}
bool ungrabKey(quint32 keycode, quint32 modifiers, Window window)
{
QxtX11ErrorHandler errorHandler;
foreach (quint32 maskMods, maskModifiers) {
XUngrabKey(display(), keycode, modifiers | maskMods, window);
}
return !errorHandler.error;
}
private:
Display *m_display;
};
} // namespace
bool QxtGlobalShortcutPrivate::nativeEventFilter(const QByteArray & eventType,
void *message, long *result)
{
Q_UNUSED(result);
xcb_key_press_event_t *kev = 0;
if (eventType == "xcb_generic_event_t") {
xcb_generic_event_t *ev = static_cast<xcb_generic_event_t *>(message);
if ((ev->response_type & 127) == XCB_KEY_PRESS)
kev = static_cast<xcb_key_press_event_t *>(message);
}
if (kev != 0) {
unsigned int keycode = kev->detail;
unsigned int keystate = 0;
if(kev->state & XCB_MOD_MASK_1)
keystate |= Mod1Mask;
if(kev->state & XCB_MOD_MASK_CONTROL)
keystate |= ControlMask;
if(kev->state & XCB_MOD_MASK_4)
keystate |= Mod4Mask;
if(kev->state & XCB_MOD_MASK_SHIFT)
keystate |= ShiftMask;
activateShortcut(keycode,
// Mod1Mask == Alt, Mod4Mask == Meta
keystate & (ShiftMask | ControlMask | Mod1Mask | Mod4Mask));
}
return false;
}
quint32 QxtGlobalShortcutPrivate::nativeModifiers(Qt::KeyboardModifiers modifiers)
{
// ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, and Mod5Mask
quint32 native = 0;
if (modifiers & Qt::ShiftModifier)
native |= ShiftMask;
if (modifiers & Qt::ControlModifier)
native |= ControlMask;
if (modifiers & Qt::AltModifier)
native |= Mod1Mask;
if (modifiers & Qt::MetaModifier)
native |= Mod4Mask;
// TODO: resolve these?
//if (modifiers & Qt::MetaModifier)
//if (modifiers & Qt::KeypadModifier)
//if (modifiers & Qt::GroupSwitchModifier)
return native;
}
quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
{
QxtX11Data x11;
if (!x11.isValid())
return 0;
KeySym keysym = XStringToKeysym(QKeySequence(key).toString().toLatin1().data());
if (keysym == NoSymbol)
keysym = static_cast<ushort>(key);
return XKeysymToKeycode(x11.display(), keysym);
}
bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)
{
QxtX11Data x11;
return x11.isValid() && x11.grabKey(nativeKey, nativeMods, x11.rootWindow());
}
bool QxtGlobalShortcutPrivate::unregisterShortcut(quint32 nativeKey, quint32 nativeMods)
{
QxtX11Data x11;
return x11.isValid() && x11.ungrabKey(nativeKey, nativeMods, x11.rootWindow());
}

View File

@ -1,609 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="cs_CZ">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="310"/>
<source>Close Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="191"/>
<source>Split Terminal Horizontally</source>
<translation type="unfinished">Rozdělit Terminál Horizontálně</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="197"/>
<source>Split Terminal Vertically</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="203"/>
<source>Collapse Subterminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="209"/>
<source>Next Subterminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="215"/>
<source>Previous Subterminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="165"/>
<source>Next Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="91"/>
<source>Rename Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="146"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>Clear Current Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Previous Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="177"/>
<source>Move Tab Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="183"/>
<source>Move Tab Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<source>Copy Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="230"/>
<source>Paste Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="236"/>
<source>Paste Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="242"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="248"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="254"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="273"/>
<source>Save Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="279"/>
<source>Load Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="286"/>
<source>Toggle Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="304"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>New Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="339"/>
<source>Hide Window Borders</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="350"/>
<source>Show Tab Bar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="370"/>
<source>Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="371"/>
<source>Top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="372"/>
<location filename="../mainwindow.cpp" line="403"/>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="373"/>
<location filename="../mainwindow.cpp" line="404"/>
<source>Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<source>Tabs Layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="402"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="420"/>
<source>Scrollbar Layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="474"/>
<source>Exit QTerminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="476"/>
<source>Do not ask again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="483"/>
<source>Are you sure you want to exit?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="503"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>QTerminal Properties</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="49"/>
<source>Terminal Font</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="54"/>
<source>Look and Feel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="59"/>
<location filename="../forms/propertiesdialog.ui" line="314"/>
<source>History</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="64"/>
<source>Emulation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="69"/>
<source>Shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="74"/>
<source>DropDown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="79"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="97"/>
<source>Font</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="129"/>
<source>&amp;Set Font...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="152"/>
<source>Note: only fixed width font are allowed to be used in terminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="169"/>
<source>Action after paste clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="176"/>
<source>Color Scheme:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="209"/>
<source>GUI Style:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="252"/>
<source>Scrollbar Position:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="445"/>
<source>Show on start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="452"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="460"/>
<source>Height %:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="470"/>
<source>Width %:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="487"/>
<source>Shortcut:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="516"/>
<source>Edit File Content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="538"/>
<source>Use Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="547"/>
<source>Bookmark FIle:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="557"/>
<source>Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="566"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="202"/>
<source>Tabs Position:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>&amp;Application Transparency:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="216"/>
<location filename="../forms/propertiesdialog.ui" line="236"/>
<source> %</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="229"/>
<source>Terminal Transparency:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="272"/>
<source>&amp;Highlight Current Terminal With Border</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="279"/>
<source>Ask for Window Closing Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>Open New Sub-Terminals in Current Working Dir</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="296"/>
<source>Show Main Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="303"/>
<source>Always Show Tabs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="320"/>
<source>Limited to: </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="340"/>
<source>Unlimited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="367"/>
<source>Emulation Type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="376"/>
<source>Select emulation behaviour. It does not mean that for example &quot;linux&quot; has to be used only on Linux OS. Feel free to use it on Mac too etc.&lt;p&gt;Default is the failback type with minimal feature set.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="428"/>
<source>Shortcut</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="433"/>
<source>Key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<source>No scrollbar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Top</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>No move</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move end</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="65"/>
<location filename="../propertiesdialog.cpp" line="117"/>
<source>System Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="245"/>
<source>Open or create bookmarks file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="190"/>
<source>Synchronized Bookmarks</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="69"/>
<location filename="../tabwidget.cpp" line="174"/>
<source>Shell No. %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TermWidgetImpl</name>
<message>
<source>Split Terminal Horizontally</source>
<translation type="obsolete">Rozdělit Terminál Horizontálně</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>Actions</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>Help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="125"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="107"/>
<source>About...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="112"/>
<source>About Qt...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="117"/>
<source>&amp;Preferences...</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@ -1,658 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>Filter:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation>Terminal-Schriftart wählen</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>Schriftart:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>Größe:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation>Vorschau</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation>Lesezeichen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="98"/>
<source>Rename Session</source>
<translation>Sitzung umbenennen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="131"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>&quot;%1&quot; tippen, um das Terminal zu sehen.</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="142"/>
<source>&amp;Clear Current Tab</source>
<translation>&amp;Aktuellen Reiter leeren</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="151"/>
<source>&amp;Next Tab</source>
<translation>&amp;Nächster Reiter</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="158"/>
<source>&amp;Previous Tab</source>
<translation>&amp;Voriger Reiter</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="165"/>
<source>Move Tab &amp;Left</source>
<translation>Reiter nach &amp;links verschieben</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="172"/>
<source>Move Tab &amp;Right</source>
<translation>Reiter nach &amp;rechts verschieben</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="181"/>
<source>Split Terminal &amp;Horizontally</source>
<translation>Terminal &amp;horizontal teilen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="188"/>
<source>Split Terminal &amp;Vertically</source>
<translation>Terminal &amp;vertikal teilen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="195"/>
<source>&amp;Collapse Subterminal</source>
<translation>&amp;Unterterminal schließen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="202"/>
<source>N&amp;ext Subterminal</source>
<translation>Nächst&amp;es Unterterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="209"/>
<source>P&amp;revious Subterminal</source>
<translation>Vo&amp;riges Unterterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="219"/>
<source>Copy &amp;Selection</source>
<translation>Textau&amp;swahl kopieren</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="226"/>
<source>Paste Clip&amp;board</source>
<translation>Zwischena&amp;blage einfügen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="233"/>
<source>Paste S&amp;election</source>
<translation>Textauswahl &amp;einfügen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="240"/>
<source>Zoom &amp;in</source>
<translation>Ver&amp;größern</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="247"/>
<source>Zoom &amp;out</source>
<translation>Ver&amp;kleinern</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="254"/>
<source>Zoom rese&amp;t</source>
<translation>Zurückse&amp;tzen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="263"/>
<source>&amp;Find...</source>
<translation>&amp;Suchen...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="275"/>
<source>&amp;Save Session</source>
<translation>&amp;Sitzung speichern</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="281"/>
<source>&amp;Load Session</source>
<translation>Sitzung &amp;laden</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="288"/>
<source>&amp;Toggle Menu</source>
<translation>&amp;Menü ein-/ausblenden</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="307"/>
<source>&amp;New Tab</source>
<translation>Neuer Rei&amp;ter</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="314"/>
<source>New Tab From &amp;Preset</source>
<translation>Neuer Reiter von Vor&amp;lage</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="315"/>
<source>1 &amp;Terminal</source>
<translation>1 &amp;Terminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="317"/>
<source>2 &amp;Horizontal Terminals</source>
<translation>2 &amp;horizontale Terminals</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="319"/>
<source>2 &amp;Vertical Terminals</source>
<translation>2 &amp;vertikale Terminals</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="321"/>
<source>4 Terminal&amp;s</source>
<translation>4 Terminal&amp;s</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="325"/>
<source>&amp;Close Tab</source>
<translation>&amp;Reiter schließen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="332"/>
<source>&amp;New Window</source>
<translation>&amp;Neues Fenster</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="366"/>
<source>&amp;Hide Window Borders</source>
<translation>Fensterra&amp;hmen ausblenden</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="381"/>
<source>&amp;Show Tab Bar</source>
<translation>Reiterlei&amp;ste anzeigen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="393"/>
<source>Fullscreen</source>
<translation>Vollbild</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="413"/>
<source>&amp;Bottom</source>
<translation>&amp;Unten</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="414"/>
<source>&amp;Top</source>
<translation>&amp;Oben</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="446"/>
<source>&amp;Right</source>
<translation>&amp;Rechts</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="416"/>
<location filename="../mainwindow.cpp" line="447"/>
<source>&amp;Left</source>
<translation>&amp;Links</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="431"/>
<source>&amp;Tabs Layout</source>
<translation>&amp;Anzeige Reiterleiste</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="445"/>
<source>&amp;None</source>
<translation>&amp;Keine</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="463"/>
<source>S&amp;crollbar Layout</source>
<translation>&amp;Anzeige Bildlaufleiste</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="530"/>
<source>Exit QTerminal</source>
<translation>QTerminal beenden</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="532"/>
<source>Do not ask again</source>
<translation>Nicht erneut nachfragen</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="539"/>
<source>Are you sure you want to exit?</source>
<translation>Soll QTerminal wirklich beendet werden?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="560"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Ein schlanker plattformunabhängiger Terminalemulator</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="319"/>
<source>Emulation</source>
<translation>Emulation</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="62"/>
<source>Shortcuts</source>
<translation>Tastenkürzel</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>Terminal settings</source>
<translation>Terminaleinstellungen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="52"/>
<source>Appearance</source>
<translation>Erscheinungsbild</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="57"/>
<location filename="../forms/propertiesdialog.ui" line="344"/>
<source>Behavior</source>
<translation>Verhalten</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="67"/>
<source>Dropdown</source>
<translation>Aufklappen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="90"/>
<source>Color scheme</source>
<translation>Farbschema</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="100"/>
<source>Widget style</source>
<translation>Stil der Bedienelemente</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="110"/>
<source>Scrollbar position</source>
<translation>Position der Bildlaufleiste</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="120"/>
<source>Tabs position</source>
<translation>Position der Reiter</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="130"/>
<source>Show the menu bar</source>
<translation>Menüleiste anzeigen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="144"/>
<source>Show a border around the current terminal</source>
<translation>Aktuelles Terminal einrahmen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="151"/>
<source>Application transparency</source>
<translation>Transparenz der Anwendung</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="161"/>
<source>Terminal transparency</source>
<translation>Transparenz des Terminals</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="184"/>
<source>Start with preset:</source>
<translation>Start mit Vorlage:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="208"/>
<source>None (single terminal)</source>
<translation>Keine (ein Terminal)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="213"/>
<source>2 terminals horizontally</source>
<translation>2 horizontale Terminals</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="218"/>
<source>2 terminals vertically</source>
<translation>2 vertikale Terminals</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="223"/>
<source>4 terminals</source>
<translation>4 Terminals</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>Font</source>
<translation>Schriftart</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="328"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Verhalten des Emulators wählen. Hinweis: Emulationsarten können auch unter anderen Systemen genutzt werden (z.B. &quot;linux&quot; unter OS X).&lt;/p&gt;&lt;p&gt;Die Standardemulation ist &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; mit minimalem Funktionsumfang.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="350"/>
<source>Action after paste</source>
<translation>Aktion nach Einfügen aus der Zwischenablage</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="383"/>
<source>Open new terminals in current working directory</source>
<translation>Neues Terminal im aktuellen Verzeichnis öffnen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="390"/>
<source>Save Size when closing</source>
<translation>Beim Beenden Größe speichern</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="397"/>
<source>Save Position when closing</source>
<translation>Beim Beenden Position speichern</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="404"/>
<source>Ask for confirmation when closing</source>
<translation>Beim Schließen eines Fensters nachfragen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="414"/>
<source>Unlimited history</source>
<translation>Uneingeschränkte Historie</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="421"/>
<source>History size (in lines)</source>
<translation>Historie (Zeilen)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="489"/>
<source>Height</source>
<translation>Höhe</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="496"/>
<location filename="../forms/propertiesdialog.ui" line="510"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="503"/>
<source>Width</source>
<translation>Breite</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="553"/>
<source>Edit bookmark file contents</source>
<translation>Lesezeichendatei bearbeiten</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="575"/>
<source>Enable bookmarks</source>
<translation>Lesezeichen verwenden</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="584"/>
<source>Bookmark file</source>
<translation>Lesezeichendatei</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="168"/>
<location filename="../forms/propertiesdialog.ui" line="191"/>
<source> %</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="454"/>
<source>Shortcut</source>
<translation>Tastenkürzel</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="459"/>
<source>Key</source>
<translation>Taste</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="72"/>
<source>Bookmarks</source>
<translation>Lesezeichen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="137"/>
<source>Hide tab bar with only one tab</source>
<translation>Reiterleiste bei nur einem Reiter verbergen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="292"/>
<source>&amp;Change...</source>
<translation>&amp;Ändern...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="471"/>
<source>Show on start</source>
<translation>Beim Start anzeigen</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="478"/>
<source>Size</source>
<translation>Größe</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="524"/>
<source>Shortcut:</source>
<translation>Tastenkürzel:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="594"/>
<source>Find...</source>
<translation>Suchen...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="603"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>Sie können eine Datei für eigene Lesezeichen angeben. Das erlaubt einfachen Austausch mit Werkzeugen wie OwnCloud oder DropBox.</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="61"/>
<source>No scrollbar</source>
<translation>Keine Bildlaufleiste</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="61"/>
<location filename="../propertiesdialog.cpp" line="67"/>
<source>Left</source>
<translation>Links</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="61"/>
<location filename="../propertiesdialog.cpp" line="67"/>
<source>Right</source>
<translation>Rechts</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="67"/>
<source>Top</source>
<translation>Oben</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="67"/>
<source>Bottom</source>
<translation>Unten</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="79"/>
<source>No move</source>
<translation>Nicht bewegen</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="79"/>
<source>Move start</source>
<translation>An den Anfang bewegen</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="79"/>
<source>Move end</source>
<translation>An das Ende bewegen</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="84"/>
<location filename="../propertiesdialog.cpp" line="139"/>
<source>System Default</source>
<translation>Systemstandard</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="272"/>
<source>Open or create bookmarks file</source>
<translation>Lesezeichendatei öffnen oder erstellen</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="110"/>
<source>Local Bookmarks</source>
<translation>Lokale Lesezeichen</translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="167"/>
<source>Synchronized Bookmarks</source>
<translation>Synchronisierte Lesezeichen</translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="68"/>
<location filename="../tabwidget.cpp" line="173"/>
<source>Shell No. %1</source>
<translation>Shell Nr. %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="159"/>
<source>Tab name</source>
<translation>Reiterbezeichnung</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>New tab name:</source>
<translation>Neue Reiterbezeichnung:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="182"/>
<source>Close session</source>
<translation>Sitzung schließen</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="184"/>
<source>Rename session</source>
<translation>Sitzung umbenennen</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="64"/>
<source>Load Session</source>
<translation>Sitzung laden</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="65"/>
<source>List of saved sessions:</source>
<translation>Liste der gespeicherten Sitzungen:</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>&amp;File</source>
<translation>&amp;Datei</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>&amp;Actions</source>
<translation>&amp;Aktionen</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>&amp;Help</source>
<translation>&amp;Hilfe</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>&amp;View</source>
<translation>&amp;Ansicht</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>&amp;Edit</source>
<translation>&amp;Bearbeiten</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="109"/>
<source>&amp;About...</source>
<translation>Ü&amp;ber...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="114"/>
<source>About &amp;Qt...</source>
<translation>Über &amp;Qt...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="119"/>
<source>&amp;Preferences...</source>
<translation>&amp;Einstellungen...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>Hauptfenster</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="129"/>
<source>&amp;Quit</source>
<translation>&amp;Beenden</translation>
</message>
</context>
</TS>

View File

@ -1,658 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="el">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="src/forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>Φίλτρο:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="src/forms/fontdialog.ui" line="14"/>
<location filename="src/forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation>Επιλογή της γραμματοσειράς τερματικού</translation>
</message>
<message>
<location filename="src/forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>Γραμματοσειρά:</translation>
</message>
<message>
<location filename="src/forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>Μέγεθος:</translation>
</message>
<message>
<location filename="src/forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation>Προεπισκόπηση</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="src/mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation>Σελιδοδείκτες</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="100"/>
<source>Rename Session</source>
<translation>Μετονομασία της συνεδρίας</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="132"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>Πιέστε «%1» για εμφάνιση του τερματικού.</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="143"/>
<source>&amp;Clear Current Tab</source>
<translation>&amp;Καθαρισμός της τρέχουσας καρτέλας</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="152"/>
<source>&amp;Next Tab</source>
<translation>&amp;Επόμενη καρτέλα</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="159"/>
<source>&amp;Previous Tab</source>
<translation>&amp;Προηγούμενη καρτέλα</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="166"/>
<source>Move Tab &amp;Left</source>
<translation>Μετακίνηση της καρτέλας αρι&amp;στερά</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="173"/>
<source>Move Tab &amp;Right</source>
<translation>Μετακίνηση της καρτέλας &amp;δεξιά</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="182"/>
<source>Split Terminal &amp;Horizontally</source>
<translation>Διαίρεση του τερματικού &amp;οριζόντια</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="189"/>
<source>Split Terminal &amp;Vertically</source>
<translation>Διαίρεση του τερματικού &amp;κατακόρυφα</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="196"/>
<source>&amp;Collapse Subterminal</source>
<translation>Από&amp;ρριψη του υποτερματικού</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="203"/>
<source>N&amp;ext Subterminal</source>
<translation>Επό&amp;μενο υποτερματικό</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="210"/>
<source>P&amp;revious Subterminal</source>
<translation>Προη&amp;γούμενο υποτερματικό</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="220"/>
<source>Copy &amp;Selection</source>
<translation>&amp;Αντιγραφή της επιλογής</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="227"/>
<source>Paste Clip&amp;board</source>
<translation>Επικόλληση του &amp;προχείρου</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="234"/>
<source>Paste S&amp;election</source>
<translation>Επικόλληση της επι&amp;λογής</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="241"/>
<source>Zoom &amp;in</source>
<translation>Μεγέ&amp;θυνση</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="248"/>
<source>Zoom &amp;out</source>
<translation>&amp;Σμίκρυνση</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="255"/>
<source>Zoom rese&amp;t</source>
<translation>Επαναφορά της εσ&amp;τίασης</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="264"/>
<source>&amp;Find...</source>
<translation>Ανα&amp;ζήτηση...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="276"/>
<source>&amp;Save Session</source>
<translation>Απο&amp;θήκευση της συνεδρίας</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="282"/>
<source>&amp;Load Session</source>
<translation>&amp;Φόρτωση συνεδρίας</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="289"/>
<source>&amp;Toggle Menu</source>
<translation>Ε&amp;ναλλαγή εμφάνισης του μενού</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="308"/>
<source>&amp;New Tab</source>
<translation>&amp;Νέα καρτέλα</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="315"/>
<source>New Tab From &amp;Preset</source>
<translation>Νέα καρτέλα από προρύ&amp;θμιση</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="316"/>
<source>1 &amp;Terminal</source>
<translation>1 &amp;Τερματικό</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="318"/>
<source>2 &amp;Horizontal Terminals</source>
<translation>2 &amp;Οριζόντια τερματικά</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="320"/>
<source>2 &amp;Vertical Terminals</source>
<translation>2 &amp;Κάθετα τερματικά</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="322"/>
<source>4 Terminal&amp;s</source>
<translation>4 Τερματι&amp;κά</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="326"/>
<source>&amp;Close Tab</source>
<translation>&amp;Κλείσιμο της καρτέλας</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="333"/>
<source>&amp;New Window</source>
<translation>&amp;Νέο παράθυρο</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="367"/>
<source>&amp;Hide Window Borders</source>
<translation>Απόκρυ&amp;ψη του περιγράμματος του παραθύρου</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="382"/>
<source>&amp;Show Tab Bar</source>
<translation>Εμφάνιση της &amp;γραμμής καρτελών</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="394"/>
<source>Fullscreen</source>
<translation>Πλήρης οθόνη</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="414"/>
<source>&amp;Bottom</source>
<translation>&amp;Βάση</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="415"/>
<source>&amp;Top</source>
<translation>&amp;Κορυφή</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="416"/>
<location filename="src/mainwindow.cpp" line="447"/>
<source>&amp;Right</source>
<translation>&amp;Δεξιά</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="417"/>
<location filename="src/mainwindow.cpp" line="448"/>
<source>&amp;Left</source>
<translation>&amp;Αριστερά</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="432"/>
<source>&amp;Tabs Layout</source>
<translation>&amp;Διάταξη των καρτελών</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="446"/>
<source>&amp;None</source>
<translation>&amp;Ουδεμία</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="464"/>
<source>S&amp;crollbar Layout</source>
<translation>&amp;Διάταξη της γραμμής κύλισης</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="534"/>
<source>Exit QTerminal</source>
<translation>Έξοδος του QTerminal</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="536"/>
<source>Do not ask again</source>
<translation>Να μην ξαναγίνει η ερώτηση</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="544"/>
<source>Are you sure you want to exit?</source>
<translation>Θέλετε σίγουρα να εγκαταλείψετε;</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="568"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Ένας ελαφρύς ανεξαρτήτου πλατφόρμας προσομοιωτής τερματικού</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="src/forms/propertiesdialog.ui" line="14"/>
<source>Terminal settings</source>
<translation>Ρυθμίσεις τερματικού</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="52"/>
<source>Appearance</source>
<translation>Εμφάνιση</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="57"/>
<location filename="src/forms/propertiesdialog.ui" line="344"/>
<source>Behavior</source>
<translation>Συμπεριφορά</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="62"/>
<source>Shortcuts</source>
<translation>Συντομεύσεις</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="67"/>
<source>Dropdown</source>
<translation>Αναπτυσσόμενη προβολή</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="72"/>
<source>Bookmarks</source>
<translation>Σελιδοδείκτες</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="90"/>
<source>Color scheme</source>
<translation>Χρωματικός συνδυασμός</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="100"/>
<source>Widget style</source>
<translation>Ύφος συστατικού</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="110"/>
<source>Scrollbar position</source>
<translation>Θέση της γραμμής κύλισης</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="120"/>
<source>Tabs position</source>
<translation>Θέση καρτελών</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="130"/>
<source>Show the menu bar</source>
<translation>Εμφάνιση της γραμμής μενού</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="137"/>
<source>Hide tab bar with only one tab</source>
<translation>Απόκρυψη της γραμμής καρτελών με μία μόνο καρτέλα</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="144"/>
<source>Show a border around the current terminal</source>
<translation>Εμφάνιση περιγράμματος στο τρέχον τερματικό</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="151"/>
<source>Application transparency</source>
<translation>Διαφάνεια της εφαρμογής</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="161"/>
<source>Terminal transparency</source>
<translation>Διαφάνεια του τερματικού</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="168"/>
<location filename="src/forms/propertiesdialog.ui" line="191"/>
<source> %</source>
<translation> %</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="184"/>
<source>Start with preset:</source>
<translation>Έναρξη με προρύθμιση:</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="208"/>
<source>None (single terminal)</source>
<translation>Ουδεμία (απλό τερματικό)</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="213"/>
<source>2 terminals horizontally</source>
<translation>2 τερματικά οριζόντια</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="218"/>
<source>2 terminals vertically</source>
<translation>2 τερματικά κάθετα</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="223"/>
<source>4 terminals</source>
<translation>4 τερματικά</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="259"/>
<source>Font</source>
<translation>Γραμματοσειρά</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="292"/>
<source>&amp;Change...</source>
<translation>&amp;Αλλαγή...</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="319"/>
<source>Emulation</source>
<translation>Προσομοίωση</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="328"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Συμπεριφορά προς προσομοίωση. Σημειώστε ότι δεν χρειάζεται να συνάδει με το λειτουργικό σύστημα/&lt;/p&gt;&lt;p&gt;Η προσομοίωση &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; είναι η εφεδρική με ένα ελάχιστο σύνολο χαρακτηριστικών.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="350"/>
<source>Action after paste</source>
<translation>Ενέργεια μετά την επικόλληση</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="383"/>
<source>Open new terminals in current working directory</source>
<translation>Άνοιγμα των νέων τερματικών στον τρέχοντα κατάλογο εργασίας</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="390"/>
<source>Save Size when closing</source>
<translation>Αποθήκευση του μεγέθους κατά το κλείσιμο</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="397"/>
<source>Save Position when closing</source>
<translation>Αποθήκευση της θέσης κατά το κλείσιμο</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="404"/>
<source>Ask for confirmation when closing</source>
<translation>Ερώτηση επιβεβαίωσης κατά το κλείσιμο</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="414"/>
<source>Unlimited history</source>
<translation>Απεριόριστο ιστορικό</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="421"/>
<source>History size (in lines)</source>
<translation>Μέγεθος ιστορικού (γραμμές)</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="454"/>
<source>Shortcut</source>
<translation>Συντόμευση</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="459"/>
<source>Key</source>
<translation>Συνδυασμός πλήκτρων</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="471"/>
<source>Show on start</source>
<translation>Εμφάνιση κατά την έναρξη</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="478"/>
<source>Size</source>
<translation>Μέγεθος</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="489"/>
<source>Height</source>
<translation>Ύψος</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="496"/>
<location filename="src/forms/propertiesdialog.ui" line="510"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="503"/>
<source>Width</source>
<translation>Πλάτος</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="524"/>
<source>Shortcut:</source>
<translation>Συντόμευση:</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="553"/>
<source>Edit bookmark file contents</source>
<translation>Επεξεργασία των περιεχομένων του αρχείου των σελιδοδεικτών</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="575"/>
<source>Enable bookmarks</source>
<translation>Ενεργοποίηση των σελιδοδεικτών</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="584"/>
<source>Bookmark file</source>
<translation>Αρχείο των σελιδοδεικτών</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="594"/>
<source>Find...</source>
<translation>Αναζήτηση...</translation>
</message>
<message>
<location filename="src/forms/propertiesdialog.ui" line="603"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>Μπορείτε να καθορίσετε την δική σας τοποθεσία του αρχείου των σελιδοδεικτών. Επιτρέπει εύκολη κοινή χρήση των σελιδοδεικτών με εργαλεία όπως το OwnCloud και το Dropbox.</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="61"/>
<source>No scrollbar</source>
<translation>Χωρίς γραμμή κύλισης</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="61"/>
<location filename="src/propertiesdialog.cpp" line="67"/>
<source>Left</source>
<translation>Αριστερά</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="61"/>
<location filename="src/propertiesdialog.cpp" line="67"/>
<source>Right</source>
<translation>Δεξιά</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="67"/>
<source>Top</source>
<translation>Κορυφή</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="67"/>
<source>Bottom</source>
<translation>Βάση</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="79"/>
<source>No move</source>
<translation>Χωρίς μετάβαση</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="79"/>
<source>Move start</source>
<translation>Μετάβαση στην αρχή</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="79"/>
<source>Move end</source>
<translation>Μετάβαση στο τέλος</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="84"/>
<location filename="src/propertiesdialog.cpp" line="139"/>
<source>System Default</source>
<translation>Εξ ορισμού του συστήματος</translation>
</message>
<message>
<location filename="src/propertiesdialog.cpp" line="272"/>
<source>Open or create bookmarks file</source>
<translation>Άνοιγμα ή δημιουργία αρχείου σελιδοδεικτών</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="src/bookmarkswidget.cpp" line="110"/>
<source>Local Bookmarks</source>
<translation>Τοπικοί σελιδοδείκτες</translation>
</message>
<message>
<location filename="src/bookmarkswidget.cpp" line="167"/>
<source>Synchronized Bookmarks</source>
<translation>Συγχρονισμένοι σελιδοδείκτες</translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="src/tabwidget.cpp" line="69"/>
<location filename="src/tabwidget.cpp" line="172"/>
<source>Shell No. %1</source>
<translation>Κέλυφος ν. %1</translation>
</message>
<message>
<location filename="src/tabwidget.cpp" line="158"/>
<source>Tab name</source>
<translation>Όνομα καρτέλας</translation>
</message>
<message>
<location filename="src/tabwidget.cpp" line="159"/>
<source>New tab name:</source>
<translation>Νέο όνομα καρτέλας:</translation>
</message>
<message>
<location filename="src/tabwidget.cpp" line="181"/>
<source>Close session</source>
<translation>Κλείσιμο της συνεδρίας</translation>
</message>
<message>
<location filename="src/tabwidget.cpp" line="182"/>
<source>Rename session</source>
<translation>Μετονομασία της συνεδρίας</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="src/termwidgetholder.cpp" line="64"/>
<source>Load Session</source>
<translation>Φόρτωση συνεδρίας</translation>
</message>
<message>
<location filename="src/termwidgetholder.cpp" line="65"/>
<source>List of saved sessions:</source>
<translation>Κατάλογος των αποθηκευμένων συνεδριών:</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="src/forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>Κύριο παράθυρο</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="71"/>
<source>&amp;File</source>
<translation>&amp;Αρχείο</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="79"/>
<source>&amp;Actions</source>
<translation>Ε&amp;νέργειες</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="84"/>
<source>&amp;Help</source>
<translation>&amp;Βοήθεια</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="91"/>
<source>&amp;View</source>
<translation>Π&amp;ροβολή</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="96"/>
<source>&amp;Edit</source>
<translation>&amp;Επεξεργασία</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="112"/>
<source>&amp;About...</source>
<translation>&amp;Περί...</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="117"/>
<source>About &amp;Qt...</source>
<translation>Περί την &amp;Qt...</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="122"/>
<source>&amp;Preferences...</source>
<translation>&amp;Προτιμήσεις...</translation>
</message>
<message>
<location filename="src/forms/qterminal.ui" line="132"/>
<source>&amp;Quit</source>
<translation>Έ&amp;ξοδος</translation>
</message>
</context>
</TS>

View File

@ -1,657 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="es_ES">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>Filtro:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation>Selecciona fuente del terminal</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>Fuente:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>Tamaño:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation>Vista Previa</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Add Tab</source>
<translation type="obsolete">Añadir Pestaña</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="310"/>
<source>Close Tab</source>
<translation>Cerrar Pestaña</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="191"/>
<source>Split Terminal Horizontally</source>
<translation>Dividir terminal horizontalmente </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="197"/>
<source>Split Terminal Vertically</source>
<translation>Dividir terminal verticalmente </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="203"/>
<source>Collapse Subterminal</source>
<translation>Colapsar subterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="209"/>
<source>Next Subterminal</source>
<translation>Subterminal siguiente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="215"/>
<source>Previous Subterminal</source>
<translation>Subterminal previa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="165"/>
<source>Next Tab</source>
<translation>Pestaña siguiente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation>Marcadores</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="91"/>
<source>Rename Session</source>
<translation>Renombrar Session</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="146"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>Presiona &quot;%1&quot; para ver la terminal.</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>Clear Current Tab</source>
<translation>Limpiar pestaña actual</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Previous Tab</source>
<translation>Pestaña previa</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="177"/>
<source>Move Tab Left</source>
<translation>Mover pestaña a izquierda</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="183"/>
<source>Move Tab Right</source>
<translation>Mover pestaña a derecha</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<source>Copy Selection</source>
<translation>Copiar selección</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="230"/>
<source>Paste Clipboard</source>
<translation>Pegar desde portapapeles</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="236"/>
<source>Paste Selection</source>
<translation>Pegar selección</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="242"/>
<source>Zoom in</source>
<translation>Acercar</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="248"/>
<source>Zoom out</source>
<translation>Alejar</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="254"/>
<source>Zoom reset</source>
<translation>Reestablecer zoom</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>Find...</source>
<translation>Buscar...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="273"/>
<source>Save Session</source>
<translation>Guardar session</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="279"/>
<source>Load Session</source>
<translation>Cargar session</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="286"/>
<source>Toggle Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="304"/>
<source>New Tab</source>
<translation>Nueva Pestaña</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>New Window</source>
<translation>Nueva Ventana</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="339"/>
<source>Hide Window Borders</source>
<translation>Ocultar bordes de ventana</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="350"/>
<source>Show Tab Bar</source>
<translation>Mostrar barra de pestañas</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="370"/>
<source>Bottom</source>
<translation>Abajo</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="371"/>
<source>Top</source>
<translation>Arriba</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="372"/>
<location filename="../mainwindow.cpp" line="403"/>
<source>Right</source>
<translation>Derecha</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="373"/>
<location filename="../mainwindow.cpp" line="404"/>
<source>Left</source>
<translation>Izquierda</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<source>Tabs Layout</source>
<translation>Layout Pestañas</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="402"/>
<source>None</source>
<translation>Ninguno</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="420"/>
<source>Scrollbar Layout</source>
<translation>Layout barra de desplazamiento</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="474"/>
<source>Exit QTerminal</source>
<translation>Salir de QTerminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="476"/>
<source>Do not ask again</source>
<translation>No volver a preguntar</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="483"/>
<source>Are you sure you want to exit?</source>
<translation>¿Estás seguro que quieres salir?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="503"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Un emulador de terminal liviano multiplataforma </translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>QTerminal Properties</source>
<translation>Propiedades de QTerminal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="49"/>
<source>Terminal Font</source>
<translation>Fuente de terminal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="54"/>
<source>Look and Feel</source>
<translation>Apariencia</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="59"/>
<location filename="../forms/propertiesdialog.ui" line="314"/>
<source>History</source>
<translation>Historia</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="64"/>
<source>Emulation</source>
<translation>Emulación</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="69"/>
<source>Shortcuts</source>
<translation>Atajos</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="74"/>
<source>DropDown</source>
<translation>Desplegar</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="79"/>
<source>Bookmarks</source>
<translation>Marcadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="97"/>
<source>Font</source>
<translation>Fuente</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="129"/>
<source>&amp;Set Font...</source>
<translation>&amp;Definir fuente...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="152"/>
<source>Note: only fixed width font are allowed to be used in terminal</source>
<translation>Nota: sólo está permitido usar fuentes de tamaño fijo en la terminal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="169"/>
<source>Action after paste clipboard</source>
<translation>Acción después de pegar portapapeles</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="176"/>
<source>Color Scheme:</source>
<translation>Esquema de color:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="209"/>
<source>GUI Style:</source>
<translation>Estilo de GUI:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="252"/>
<source>Scrollbar Position:</source>
<translation>Posición de barra de dezplazamiento:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="303"/>
<source>Always Show Tabs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="445"/>
<source>Show on start</source>
<translation>Mostrar al inicio</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="452"/>
<source>Size</source>
<translation>Tamaño</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="460"/>
<source>Height %:</source>
<translation>Altura %:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="470"/>
<source>Width %:</source>
<translation>Ancho %:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="487"/>
<source>Shortcut:</source>
<translation>Atajo:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="516"/>
<source>Edit File Content</source>
<translation>Editar contenido de archivo</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="538"/>
<source>Use Bookmarks</source>
<translation>Usar marcadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="547"/>
<source>Bookmark FIle:</source>
<translation>Archivo de marcadores:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="557"/>
<source>Find...</source>
<translation>Buscar...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="566"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>Puedes especificar tu propia locación de archivo de marcadores. Permite facilmente compartir marcadores con herramientas como OwnCloud o Dropbox.</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="202"/>
<source>Tabs Position:</source>
<translation>Posición de pestaña:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>&amp;Application Transparency:</source>
<translation>&amp;Transparencia de aplicación:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="216"/>
<location filename="../forms/propertiesdialog.ui" line="236"/>
<source> %</source>
<translation> %</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="229"/>
<source>Terminal Transparency:</source>
<translation>Transparencia de la terminal:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="272"/>
<source>&amp;Highlight Current Terminal With Border</source>
<translation>&amp;Resaltar la terminal actual con borde</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="279"/>
<source>Ask for Window Closing Confirmation</source>
<translation>Preguntar por confirmación de cierre de ventana</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>Open New Sub-Terminals in Current Working Dir</source>
<translation>Abrir nueva subterminal en la actual dirección de trabajo</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="296"/>
<source>Show Main Menu</source>
<translation>Mostrar menu principal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="320"/>
<source>Limited to: </source>
<translation>Limitada: </translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="340"/>
<source>Unlimited</source>
<translation>Ilimitada</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="367"/>
<source>Emulation Type</source>
<translation>Tipo de emulación</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="376"/>
<source>Select emulation behaviour. It does not mean that for example &quot;linux&quot; has to be used only on Linux OS. Feel free to use it on Mac too etc.&lt;p&gt;Default is the failback type with minimal feature set.</source>
<translation>Seleccionar comportamiento de emulación. No significa que, por ejemplo, «linux» puede ser usada sólo en Linux SO. Sentite libre de usar esta en Mac, etc.</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="428"/>
<source>Shortcut</source>
<translation>Acción</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="433"/>
<source>Key</source>
<translation>Acceso rápido</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<source>No scrollbar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Left</source>
<translation type="unfinished">Izquierda</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Right</source>
<translation type="unfinished">Derecha</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Top</source>
<translation type="unfinished">Arriba</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Bottom</source>
<translation type="unfinished">Abajo</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>No move</source>
<translation type="unfinished">No mover</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move start</source>
<translation type="unfinished">Mover al inicio</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move end</source>
<translation type="unfinished">Mover al final</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="65"/>
<location filename="../propertiesdialog.cpp" line="117"/>
<source>System Default</source>
<translation>Por defecto del sistema</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="245"/>
<source>Open or create bookmarks file</source>
<translation>Abrir o crear archivo de marcadores</translation>
</message>
<message>
<source>Select Terminal Font</source>
<translation type="obsolete">Seleccionar fuente de la terminal</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation>Marcadores locales</translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="190"/>
<source>Synchronized Bookmarks</source>
<translation>Marcadores sincronizados</translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="69"/>
<location filename="../tabwidget.cpp" line="174"/>
<source>Shell No. %1</source>
<translation>Shell N° %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation>Nombre de pestaña</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>Nuevo nombre de pestaña:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation>Cerrar session</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation>Renombrar session</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation>Cargar session</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>Lista de sessiones guardadas:</translation>
</message>
</context>
<context>
<name>TermWidgetImpl</name>
<message>
<source>Copy Selection</source>
<translation type="obsolete">Copiar selección</translation>
</message>
<message>
<source>Paste Clipboard</source>
<translation type="obsolete">Pegar desde portapapeles</translation>
</message>
<message>
<source>Paste Selection</source>
<translation type="obsolete">Pegar selección</translation>
</message>
<message>
<source>Zoom in</source>
<translation type="obsolete">Acercar</translation>
</message>
<message>
<source>Zoom out</source>
<translation type="obsolete">Alejar</translation>
</message>
<message>
<source>Zoom reset</source>
<translation type="obsolete">Reestablecer zoom</translation>
</message>
<message>
<source>Split Terminal Horizontally</source>
<translation type="obsolete">Dividir terminal horizontalmente </translation>
</message>
<message>
<source>Split Terminal Vertically</source>
<translation type="obsolete">Dividir terminal verticalmente </translation>
</message>
<message>
<source>Collapse Subterminal</source>
<translation type="obsolete">Colapsar subterminal</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>Ventana principal</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>File</source>
<translation>Archivo</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>Actions</source>
<translation>Acciones</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>Help</source>
<translation>Ayuda</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>View</source>
<translation>Vista</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="125"/>
<source>&amp;Quit</source>
<translation>&amp;Salir</translation>
</message>
<message>
<source>&amp;Window</source>
<translation type="obsolete">&amp;Ventana</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="107"/>
<source>About...</source>
<translation>Acerca de...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="112"/>
<source>About Qt...</source>
<translation>Acerca de QT...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="117"/>
<source>&amp;Preferences...</source>
<translation>&amp;Preferencias...</translation>
</message>
<message>
<source>&amp;Quit...</source>
<translation type="obsolete">&amp;Salir...</translation>
</message>
</context>
</TS>

View File

@ -1,649 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="et_EE">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation type="unfinished">Vali terminali font</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Add Tab</source>
<translation type="obsolete">Lisa kaart</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="310"/>
<source>Close Tab</source>
<translation>Sulge kaart</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="191"/>
<source>Split Terminal Horizontally</source>
<translation>Poolita terminal horisontaalselt</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="197"/>
<source>Split Terminal Vertically</source>
<translation>Poolita terminal vertikaalselt</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="203"/>
<source>Collapse Subterminal</source>
<translation>Ahenda alamterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="209"/>
<source>Next Subterminal</source>
<translation>Järgmine alamterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="215"/>
<source>Previous Subterminal</source>
<translation>Eelmine alamterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="165"/>
<source>Next Tab</source>
<translation>Järgmine kaart</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="91"/>
<source>Rename Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="146"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>Clear Current Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Previous Tab</source>
<translation>Eelmine kaart</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="177"/>
<source>Move Tab Left</source>
<translation>Liiguta kaart vasakule</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="183"/>
<source>Move Tab Right</source>
<translation>Liiguta kaart paremale</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<source>Copy Selection</source>
<translation>Kopeeri valik</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="230"/>
<source>Paste Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="236"/>
<source>Paste Selection</source>
<translation>Aseta valik</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="242"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="248"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="254"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="273"/>
<source>Save Session</source>
<translation>Salvesta seanss</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="279"/>
<source>Load Session</source>
<translation>Lae seanss</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="286"/>
<source>Toggle Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="304"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>New Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="339"/>
<source>Hide Window Borders</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="350"/>
<source>Show Tab Bar</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle Borderless</source>
<translation type="obsolete">Lülita ääristeta režiimile</translation>
</message>
<message>
<source>Toggle TabBar</source>
<translation type="obsolete">Lülita kaardiriba</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="370"/>
<source>Bottom</source>
<translation>All</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="371"/>
<source>Top</source>
<translation>Ülal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="372"/>
<location filename="../mainwindow.cpp" line="403"/>
<source>Right</source>
<translation>Paremal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="373"/>
<location filename="../mainwindow.cpp" line="404"/>
<source>Left</source>
<translation>Vasakul</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<source>Tabs Layout</source>
<translation>Kaartide paigutus</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="402"/>
<source>None</source>
<translation>Puudub</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="420"/>
<source>Scrollbar Layout</source>
<translation>Kerimisriba paigutus</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="474"/>
<source>Exit QTerminal</source>
<translation>Lõpeta Qterminali töö</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="476"/>
<source>Do not ask again</source>
<translation>Ära küsi uuesti</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="483"/>
<source>Are you sure you want to exit?</source>
<translation>Soovid sa tõesti väljuda?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="503"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Ressursisäästlik multiplatvormne terminaliemulaator</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>QTerminal Properties</source>
<translation>QTerminali omadused</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="49"/>
<source>Terminal Font</source>
<translation>Terminali font</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="54"/>
<source>Look and Feel</source>
<translation>Tööilme</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="59"/>
<location filename="../forms/propertiesdialog.ui" line="314"/>
<source>History</source>
<translation>Ajalugu</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="64"/>
<source>Emulation</source>
<translation>Emuleering</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="69"/>
<source>Shortcuts</source>
<translation>Otseteed</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="74"/>
<source>DropDown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="79"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="97"/>
<source>Font</source>
<translation>Font</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="129"/>
<source>&amp;Set Font...</source>
<translation>&amp;Määra font...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="152"/>
<source>Note: only fixed width font are allowed to be used in terminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="169"/>
<source>Action after paste clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="176"/>
<source>Color Scheme:</source>
<translation>Värviskeem:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="209"/>
<source>GUI Style:</source>
<translation>GUI stiil:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="252"/>
<source>Scrollbar Position:</source>
<translation>Kerimisriba asukoht:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="445"/>
<source>Show on start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="452"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="460"/>
<source>Height %:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="470"/>
<source>Width %:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="487"/>
<source>Shortcut:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="516"/>
<source>Edit File Content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="538"/>
<source>Use Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="547"/>
<source>Bookmark FIle:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="557"/>
<source>Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="566"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="202"/>
<source>Tabs Position:</source>
<translation>Kaartide asukoht:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>&amp;Application Transparency:</source>
<translation>&amp;Rakenduse läbipaistvus:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="216"/>
<location filename="../forms/propertiesdialog.ui" line="236"/>
<source> %</source>
<translation> %</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="229"/>
<source>Terminal Transparency:</source>
<translation>Terminali läbipaistvus:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="272"/>
<source>&amp;Highlight Current Terminal With Border</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="279"/>
<source>Ask for Window Closing Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>Open New Sub-Terminals in Current Working Dir</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="296"/>
<source>Show Main Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="303"/>
<source>Always Show Tabs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="320"/>
<source>Limited to: </source>
<translation>Piiratud kuni: </translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="340"/>
<source>Unlimited</source>
<translation>Piiramatu</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="367"/>
<source>Emulation Type</source>
<translation>Emuleeringu tüüp</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="376"/>
<source>Select emulation behaviour. It does not mean that for example &quot;linux&quot; has to be used only on Linux OS. Feel free to use it on Mac too etc.&lt;p&gt;Default is the failback type with minimal feature set.</source>
<translation>Vali emuleeringu käitumine. See ei tähenda, et näiteks &quot;linux&quot; tohib olla kasutusel vaid Linux OS puhul. Kasuta seda vabalt ka Mac&apos;l jne.&lt;p&gt;Vaikimisi varuvariant on minimaalsete võimalustega.</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="428"/>
<source>Shortcut</source>
<translation>Otsetee</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="433"/>
<source>Key</source>
<translation>Klahv</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<source>No scrollbar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Left</source>
<translation type="unfinished">Vasakul</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Right</source>
<translation type="unfinished">Paremal</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Top</source>
<translation type="unfinished">Ülal</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Bottom</source>
<translation type="unfinished">All</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>No move</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move end</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="65"/>
<location filename="../propertiesdialog.cpp" line="117"/>
<source>System Default</source>
<translation>Süsteemne vaikeväärtus</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="245"/>
<source>Open or create bookmarks file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Terminal Font</source>
<translation type="obsolete">Vali terminali font</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="190"/>
<source>Synchronized Bookmarks</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="69"/>
<location filename="../tabwidget.cpp" line="174"/>
<source>Shell No. %1</source>
<translation>Shell No. %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation>Kaardi nimi</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>Kaardi uus nimi:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation>Sulge seanss</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation>Nimeta seanss ümber</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation>Lae seanss</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>Salvestatud seansside nimekiri:</translation>
</message>
</context>
<context>
<name>TermWidgetImpl</name>
<message>
<source>Copy Selection</source>
<translation type="obsolete">Kopeeri valik</translation>
</message>
<message>
<source>Paste Selection</source>
<translation type="obsolete">Aseta valik</translation>
</message>
<message>
<source>Split Terminal Horizontally</source>
<translation type="obsolete">Poolita terminal horisontaalselt</translation>
</message>
<message>
<source>Split Terminal Vertically</source>
<translation type="obsolete">Poolita terminal vertikaalselt</translation>
</message>
<message>
<source>Collapse Subterminal</source>
<translation type="obsolete">Ahenda alamterminal</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>PeaAken</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>Actions</source>
<translation>Tegevused</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>Help</source>
<translation>Abi</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="125"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Window</source>
<translation type="obsolete">&amp;Aken</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="107"/>
<source>About...</source>
<translation>QTerminali info...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="112"/>
<source>About Qt...</source>
<translation>Qt info...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="117"/>
<source>&amp;Preferences...</source>
<translation>&amp;Seadistused...</translation>
</message>
<message>
<source>&amp;Quit...</source>
<translation type="obsolete">&amp;Välju...</translation>
</message>
</context>
</TS>

View File

@ -1,643 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="hu_HU">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>Szűrő:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation>Terminál-betűválasztás</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>Betű:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>Méret:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation>Előkép</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="319"/>
<source>Close Tab</source>
<translation>Lap bezárás</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="175"/>
<source>Split Terminal Horizontally</source>
<translation>Terminál vízszintes felosztás</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="182"/>
<source>Split Terminal Vertically</source>
<translation>Terminál függélyes felosztás</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="189"/>
<source>Collapse Subterminal</source>
<translation>Alterminál bezárás</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="196"/>
<source>Next Subterminal</source>
<translation>Következő alterminál</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="203"/>
<source>Previous Subterminal</source>
<translation>Előző alterminál</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="145"/>
<source>Next Tab</source>
<translation>Következő lap</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="152"/>
<source>Previous Tab</source>
<translation>Előző lap</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="159"/>
<source>Move Tab Left</source>
<translation>Lap balra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="166"/>
<source>Move Tab Right</source>
<translation>Lap jobbra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="213"/>
<source>Copy Selection</source>
<translation>Másolás</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="227"/>
<source>Paste Selection</source>
<translation>Beillesztés</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="269"/>
<source>Save Session</source>
<translation>Helyzet mentés</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="275"/>
<source>Load Session</source>
<translation>Helyzet betöltés</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="308"/>
<source>New Tab From Preset</source>
<translation>Új lap beállítása</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="309"/>
<source>1 Terminal</source>
<translation>1 terminál</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="311"/>
<source>2 Horizontal Terminals</source>
<translation>2 vízszintes terminál</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="313"/>
<source>2 Vertical Terminals</source>
<translation>2 függőleges terminál</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="315"/>
<source>4 Terminals</source>
<translation>4 terminál</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="395"/>
<source>Bottom</source>
<translation>Alul</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="396"/>
<source>Top</source>
<translation>Felül</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="397"/>
<location filename="../mainwindow.cpp" line="428"/>
<source>Right</source>
<translation>Jobbra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="398"/>
<location filename="../mainwindow.cpp" line="429"/>
<source>Left</source>
<translation>Balra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="413"/>
<source>Tabs Layout</source>
<translation>Lapfül</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="427"/>
<source>None</source>
<translation>Nincs</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="445"/>
<source>Scrollbar Layout</source>
<translation>Gördítősáv</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="500"/>
<source>Exit QTerminal</source>
<translation>QTerminal befejezése</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="502"/>
<source>Do not ask again</source>
<translation>Többé nem kérdez</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="509"/>
<source>Are you sure you want to exit?</source>
<translation>Biztosan kilép?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="529"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Könnyed általános terminál emulátor</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation>Könyvjelzők</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="92"/>
<source>Rename Session</source>
<translation>Helyzet átnevezés</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="125"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>Billentyűzzön &quot;%1&quot;-t, hogy lássa a terminált.</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="136"/>
<source>Clear Current Tab</source>
<translation>Aktuális lap törlése</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="220"/>
<source>Paste Clipboard</source>
<translation>Vágólapról beillesztés</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="234"/>
<source>Zoom in</source>
<translation>Nagyít</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="241"/>
<source>Zoom out</source>
<translation>Kicsinyít</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="248"/>
<source>Zoom reset</source>
<translation>Visszaállít</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="257"/>
<source>Find...</source>
<translation>Keres...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="282"/>
<source>Toggle Menu</source>
<translation>Menü ki/be</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="301"/>
<source>New Tab</source>
<translation>Új lap</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="326"/>
<source>New Window</source>
<translation>Új ablak</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="360"/>
<source>Hide Window Borders</source>
<translation>Ablakkeret ki</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="374"/>
<source>Show Tab Bar</source>
<translation>Fülsáv látszik</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="316"/>
<source>Emulation</source>
<translation>Emuláció</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="62"/>
<source>Shortcuts</source>
<translation>Gyorsbillentyűk</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>Terminal settings</source>
<translation>Terminál beállítások</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="52"/>
<source>Appearance</source>
<translation>Megjelenés</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="57"/>
<location filename="../forms/propertiesdialog.ui" line="341"/>
<source>Behavior</source>
<translation>Viselkedés</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="67"/>
<source>Dropdown</source>
<translation>Felgördítés</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="90"/>
<source>Color scheme</source>
<translation>Színséma</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="100"/>
<source>Widget style</source>
<translation>Elemstílus</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="110"/>
<source>Scrollbar position</source>
<translation>Gördítősáv helyzete</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="120"/>
<source>Tabs position</source>
<translation>Lapfülek helyzete</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="130"/>
<source>Show the menu bar</source>
<translation>Menüsáv</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="144"/>
<source>Show a border around the current terminal</source>
<translation>Aktuális terminál bekeretezése</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="151"/>
<source>Application transparency</source>
<translation>Alkalmazás áttetszősége</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="161"/>
<source>Terminal transparency</source>
<translation>Terminál áttetszősége</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="184"/>
<source>Start with preset:</source>
<translation>Új terminál indulási beállítás:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="205"/>
<source>None (single terminal)</source>
<translation>Nincs (1 terminál)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="210"/>
<source>2 terminals horizontally</source>
<translation>2 vízszintes terminál</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="215"/>
<source>2 terminals vertically</source>
<translation>2 függőleges terminál</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="220"/>
<source>4 terminals</source>
<translation>4 terminál</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="256"/>
<source>Font</source>
<translation>Betűtípus</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="325"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Az emulátor viselkedésének kiválasztása, mivel egyes emulátorok más rendszerek alatt is használatosak.&lt;/p&gt;&lt;p&gt;Az alapemuláció az &lt;span style=&quot; font-weight:600;&quot;&gt;alapértelmezett&lt;/span&gt; a legkevesebb lehetőséggel.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="347"/>
<source>Action after paste</source>
<translation>Beillesztés utáni teendő</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="380"/>
<source>Open new terminals in current working directory</source>
<translation>Új terminál a munkakönyvtárban nyílik</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="387"/>
<source>Ask for confirmation when closing</source>
<translation>Ablakbecsukáskor megerősítés kérés</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="397"/>
<source>Unlimited history</source>
<translation>Korlátlan naplózás</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="404"/>
<source>History size (in lines)</source>
<translation>Naplóméret (sorok)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="472"/>
<source>Height</source>
<translation>Magasság</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="479"/>
<location filename="../forms/propertiesdialog.ui" line="493"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="486"/>
<source>Width</source>
<translation>Szélesség</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="536"/>
<source>Edit bookmark file contents</source>
<translation>Könyvjelzőfájl szerkesztés</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="558"/>
<source>Enable bookmarks</source>
<translation>Könyvjelzőhasználat</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="567"/>
<source>Bookmark file</source>
<translation>Könyvjelzőfájl</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="168"/>
<location filename="../forms/propertiesdialog.ui" line="191"/>
<source> %</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="437"/>
<source>Shortcut</source>
<translation>Gyorsbillentyű</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="442"/>
<source>Key</source>
<translation>Billentyű</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="72"/>
<source>Bookmarks</source>
<translation>Könyvjelzők</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="137"/>
<source>Hide tab bar with only one tab</source>
<translation>Egy lapnál nincs lapfülsáv</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>&amp;Change...</source>
<translation>&amp;Változtat...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="454"/>
<source>Show on start</source>
<translation>Induláskor látszik</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="461"/>
<source>Size</source>
<translation>Méret</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="507"/>
<source>Shortcut:</source>
<translation>Gyorsbillentyű:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="577"/>
<source>Find...</source>
<translation>Keres...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="586"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>Saját könyvjelzőfájl adható meg, ezáltal más eszözök is könnyedén használhatók, mint például az OwnCloud vagy a DropBox.</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<source>No scrollbar</source>
<translation>Nincs gördítősáv</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Left</source>
<translation>Balra</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Right</source>
<translation>Jobbra</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Top</source>
<translation>Felül</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Bottom</source>
<translation>Alul</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>No move</source>
<translation>Áll</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move start</source>
<translation>Kezdetre</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move end</source>
<translation>Végére</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="68"/>
<location filename="../propertiesdialog.cpp" line="122"/>
<source>System Default</source>
<translation>Rendszer alapértelmezett.</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="252"/>
<source>Open or create bookmarks file</source>
<translation>Könyvjelzőfájl nyitás</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation>Helyi könyvjelzők</translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="187"/>
<source>Synchronized Bookmarks</source>
<translation>Szinkronizált könyvjelzők</translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="69"/>
<location filename="../tabwidget.cpp" line="174"/>
<source>Shell No. %1</source>
<translation>Héj Nr. %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation>Lapnév</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>Új lapnév:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation>Menet bezárása</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation>Menet átnevezése</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation>Munkamenet betöltés</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>Tárolt munkamenet lista:</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>Actions</source>
<translation>Művelet</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>Help</source>
<translation>Segítség</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>Edit</source>
<translation>Szerkeszt</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="107"/>
<source>About...</source>
<translation>Névjegy...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="112"/>
<source>About Qt...</source>
<translation>A Qt-ról...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="117"/>
<source>&amp;Preferences...</source>
<translation>&amp;Beállítások...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>Főablak</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>File</source>
<translation>Fájl</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>View</source>
<translation>Nézet</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="125"/>
<source>&amp;Quit</source>
<translation>&amp;Kilép</translation>
</message>
</context>
</TS>

View File

@ -1,645 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="it_IT">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation type="unfinished">Seleziona Carattere Terminale</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<source>Add Tab</source>
<translation type="obsolete">Aggiungi Tab</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="310"/>
<source>Close Tab</source>
<translation>Chiudi Tab</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="191"/>
<source>Split Terminal Horizontally</source>
<translation>Dividi Terminale Orizzontalmente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="197"/>
<source>Split Terminal Vertically</source>
<translation>Dividi Terminale Verticalmente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="203"/>
<source>Collapse Subterminal</source>
<translation>Collassa Sottoterminale</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="209"/>
<source>Next Subterminal</source>
<translation>Sottoterminale Successivo</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="215"/>
<source>Previous Subterminal</source>
<translation>Sottoterminale Precedente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="165"/>
<source>Next Tab</source>
<translation>Tab Successivo</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="91"/>
<source>Rename Session</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="146"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>Clear Current Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Previous Tab</source>
<translation>Tab Precedente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="177"/>
<source>Move Tab Left</source>
<translation>Sposta Tab a Sinistra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="183"/>
<source>Move Tab Right</source>
<translation>Sposta Tab a Destra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<source>Copy Selection</source>
<translation>Copia Selezione</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="230"/>
<source>Paste Clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="236"/>
<source>Paste Selection</source>
<translation>Incolla Selezione</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="242"/>
<source>Zoom in</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="248"/>
<source>Zoom out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="254"/>
<source>Zoom reset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="273"/>
<source>Save Session</source>
<translation>Salva Sessione</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="279"/>
<source>Load Session</source>
<translation>Carica Sessione</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="286"/>
<source>Toggle Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="304"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>New Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="339"/>
<source>Hide Window Borders</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="350"/>
<source>Show Tab Bar</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle Borderless</source>
<translation type="obsolete">Toggle Senzabordi</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="370"/>
<source>Bottom</source>
<translation>Basso</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="371"/>
<source>Top</source>
<translation>Alto</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="372"/>
<location filename="../mainwindow.cpp" line="403"/>
<source>Right</source>
<translation>Destra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="373"/>
<location filename="../mainwindow.cpp" line="404"/>
<source>Left</source>
<translation>Sinistra</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<source>Tabs Layout</source>
<translation>Layout Tabs</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="402"/>
<source>None</source>
<translation>Nessuno</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="420"/>
<source>Scrollbar Layout</source>
<translation>Layout Barra di scorrimento</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="474"/>
<source>Exit QTerminal</source>
<translation>Esci da QTerminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="476"/>
<source>Do not ask again</source>
<translation>Non chiedermelo più</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="483"/>
<source>Are you sure you want to exit?</source>
<translation>Sei sicuro di voler uscire?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="503"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Un emulatore di terminale multipiattaforma e leggero</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>QTerminal Properties</source>
<translation>Proprietà QTerminal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="49"/>
<source>Terminal Font</source>
<translation>Caratteri Terminale</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="54"/>
<source>Look and Feel</source>
<translation>Aspetto</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="59"/>
<location filename="../forms/propertiesdialog.ui" line="314"/>
<source>History</source>
<translation>Storia</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="64"/>
<source>Emulation</source>
<translation>Emulazione</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="69"/>
<source>Shortcuts</source>
<translation>Scorciatoie</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="74"/>
<source>DropDown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="79"/>
<source>Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="97"/>
<source>Font</source>
<translation>Caratteri</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="129"/>
<source>&amp;Set Font...</source>
<translation>&amp;Imposta carattere...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="152"/>
<source>Note: only fixed width font are allowed to be used in terminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="169"/>
<source>Action after paste clipboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="176"/>
<source>Color Scheme:</source>
<translation>Schema Colore:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="209"/>
<source>GUI Style:</source>
<translation>Stile GUI:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="252"/>
<source>Scrollbar Position:</source>
<translation>Posizione Barra di Scorrimento:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="445"/>
<source>Show on start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="452"/>
<source>Size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="460"/>
<source>Height %:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="470"/>
<source>Width %:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="487"/>
<source>Shortcut:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="516"/>
<source>Edit File Content</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="538"/>
<source>Use Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="547"/>
<source>Bookmark FIle:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="557"/>
<source>Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="566"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="202"/>
<source>Tabs Position:</source>
<translation>Posizione Tabs:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>&amp;Application Transparency:</source>
<translation>&amp;Trasparenza Applicazione:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="216"/>
<location filename="../forms/propertiesdialog.ui" line="236"/>
<source> %</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="229"/>
<source>Terminal Transparency:</source>
<translation>Trasparenza Terminale:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="272"/>
<source>&amp;Highlight Current Terminal With Border</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="279"/>
<source>Ask for Window Closing Confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>Open New Sub-Terminals in Current Working Dir</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="296"/>
<source>Show Main Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="303"/>
<source>Always Show Tabs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="320"/>
<source>Limited to: </source>
<translation>Limitato a:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="340"/>
<source>Unlimited</source>
<translation>Illimitato</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="367"/>
<source>Emulation Type</source>
<translation>Tipo Emulazione</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="376"/>
<source>Select emulation behaviour. It does not mean that for example &quot;linux&quot; has to be used only on Linux OS. Feel free to use it on Mac too etc.&lt;p&gt;Default is the failback type with minimal feature set.</source>
<translation>Seleziona comportamento emulazione. Non significa che per esempio &quot;linux&quot; deve essere utilizzato solo su SO Linux. Sentiti libero di usarlo anche su Mac ecc.&lt;p&gt;L&apos;impostazione di base è quella più sicura con un set minimo di proprietà.</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="428"/>
<source>Shortcut</source>
<translation>Scorciatoia</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="433"/>
<source>Key</source>
<translation>Chiave</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<source>No scrollbar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Left</source>
<translation type="unfinished">Sinistra</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Right</source>
<translation type="unfinished">Destra</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Top</source>
<translation type="unfinished">Alto</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Bottom</source>
<translation type="unfinished">Basso</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>No move</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move end</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="65"/>
<location filename="../propertiesdialog.cpp" line="117"/>
<source>System Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="245"/>
<source>Open or create bookmarks file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select Terminal Font</source>
<translation type="obsolete">Seleziona Carattere Terminale</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="190"/>
<source>Synchronized Bookmarks</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="69"/>
<location filename="../tabwidget.cpp" line="174"/>
<source>Shell No. %1</source>
<translation>Shell N° %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation>Nome tab</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>Nuovo nome tab:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation>Chiudi sessione</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation>Rinomina sessione</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation>Carica Sessione</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>Lista delle sessioni salvate:</translation>
</message>
</context>
<context>
<name>TermWidgetImpl</name>
<message>
<source>Copy Selection</source>
<translation type="obsolete">Copia Selezione</translation>
</message>
<message>
<source>Paste Selection</source>
<translation type="obsolete">Incolla Selezione</translation>
</message>
<message>
<source>Split Terminal Horizontally</source>
<translation type="obsolete">Dividi Terminale Orizzontalmente</translation>
</message>
<message>
<source>Split Terminal Vertically</source>
<translation type="obsolete">Dividi Terminale Verticalmente</translation>
</message>
<message>
<source>Collapse Subterminal</source>
<translation type="obsolete">Collassa Sottoterminale</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>Actions</source>
<translation>Azioni</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>Help</source>
<translation>Aiuto</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>Edit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="125"/>
<source>&amp;Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&amp;Window</source>
<translation type="obsolete">&amp;Finestra</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="107"/>
<source>About...</source>
<translation></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="112"/>
<source>About Qt...</source>
<translation></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="117"/>
<source>&amp;Preferences...</source>
<translation>&amp;Preferenze...</translation>
</message>
<message>
<source>&amp;Quit...</source>
<translation type="obsolete">&amp;Chiudi...</translation>
</message>
</context>
</TS>

View File

@ -1,658 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ja">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="324"/>
<source>&amp;Close Tab</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="180"/>
<source>Split Terminal &amp;Horizontally</source>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="187"/>
<source>Split Terminal &amp;Vertically</source>
<translation>(&amp;V)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="194"/>
<source>&amp;Collapse Subterminal</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="201"/>
<source>N&amp;ext Subterminal</source>
<translation>(&amp;E)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="208"/>
<source>P&amp;revious Subterminal</source>
<translation>(&amp;R)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="150"/>
<source>&amp;Next Tab</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>&amp;Previous Tab</source>
<translation>(&amp;P)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="164"/>
<source>Move Tab &amp;Left</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Move Tab &amp;Right</source>
<translation>(&amp;R)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="218"/>
<source>Copy &amp;Selection</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="232"/>
<source>Paste S&amp;election</source>
<translation>(&amp;E)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="274"/>
<source>&amp;Save Session</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="280"/>
<source>&amp;Load Session</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="313"/>
<source>New Tab From &amp;Preset</source>
<translation>(&amp;P)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="314"/>
<source>1 &amp;Terminal</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>2 &amp;Horizontal Terminals</source>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="318"/>
<source>2 &amp;Vertical Terminals</source>
<translation>(&amp;V)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="320"/>
<source>4 Terminal&amp;s</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="412"/>
<source>&amp;Bottom</source>
<translation>(&amp;B)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="413"/>
<source>&amp;Top</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="414"/>
<location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Right</source>
<translation>(&amp;R)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="446"/>
<source>&amp;Left</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="430"/>
<source>&amp;Tabs Layout</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="444"/>
<source>&amp;None</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="462"/>
<source>S&amp;crollbar Layout</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="529"/>
<source>Exit QTerminal</source>
<translation>QTerminal終了</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="531"/>
<source>Do not ask again</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="538"/>
<source>Are you sure you want to exit?</source>
<translation>?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="559"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation> </translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="97"/>
<source>Rename Session</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="130"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>&quot;%1&quot;</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="141"/>
<source>&amp;Clear Current Tab</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="225"/>
<source>Paste Clip&amp;board</source>
<translation>(&amp;B)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="239"/>
<source>Zoom &amp;in</source>
<translation>(&amp;I)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="246"/>
<source>Zoom &amp;out</source>
<translation>(&amp;O)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="253"/>
<source>Zoom rese&amp;t</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>&amp;Find...</source>
<translation>(&amp;F)...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="287"/>
<source>&amp;Toggle Menu</source>
<translation>/(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="306"/>
<source>&amp;New Tab</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="331"/>
<source>&amp;New Window</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="365"/>
<source>&amp;Hide Window Borders</source>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="380"/>
<source>&amp;Show Tab Bar</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="392"/>
<source>Fullscreen</source>
<translation></translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="319"/>
<source>Emulation</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="62"/>
<source>Shortcuts</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>Terminal settings</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="52"/>
<source>Appearance</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="57"/>
<location filename="../forms/propertiesdialog.ui" line="344"/>
<source>Behavior</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="67"/>
<source>Dropdown</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="90"/>
<source>Color scheme</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="100"/>
<source>Widget style</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="110"/>
<source>Scrollbar position</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="120"/>
<source>Tabs position</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="130"/>
<source>Show the menu bar</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="144"/>
<source>Show a border around the current terminal</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="151"/>
<source>Application transparency</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="161"/>
<source>Terminal transparency</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="184"/>
<source>Start with preset:</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="208"/>
<source>None (single terminal)</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="212"/>
<source>2 terminals horizontally</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="217"/>
<source>2 terminals vertically</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="223"/>
<source>4 terminals</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>Font</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="328"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt; &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="350"/>
<source>Action after paste</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="383"/>
<source>Open new terminals in current working directory</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="390"/>
<source>Save Size when closing</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="397"/>
<source>Save Position when closing</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="404"/>
<source>Ask for confirmation when closing</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="414"/>
<source>Unlimited history</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="421"/>
<source>History size (in lines)</source>
<translation> ()</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="472"/>
<source>Height</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="479"/>
<location filename="../forms/propertiesdialog.ui" line="493"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="486"/>
<source>Width</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="536"/>
<source>Edit bookmark file contents</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="558"/>
<source>Enable bookmarks</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="567"/>
<source>Bookmark file</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="168"/>
<location filename="../forms/propertiesdialog.ui" line="191"/>
<source> %</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="437"/>
<source>Shortcut</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="442"/>
<source>Key</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="72"/>
<source>Bookmarks</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="137"/>
<source>Hide tab bar with only one tab</source>
<translation>1使</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>&amp;Change...</source>
<translation>&amp;C)...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="454"/>
<source>Show on start</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="461"/>
<source>Size</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="507"/>
<source>Shortcut:</source>
<translation>:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="577"/>
<source>Find...</source>
<translation>...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="586"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>OwnCloudやDropboxのようなツールとブックマークを共有することが容易にできます</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<source>No scrollbar</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Left</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Right</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Top</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Bottom</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>No move</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move end</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="68"/>
<location filename="../propertiesdialog.cpp" line="122"/>
<source>System Default</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="252"/>
<source>Open or create bookmarks file</source>
<translation></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation></translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="187"/>
<source>Synchronized Bookmarks</source>
<translation></translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="70"/>
<location filename="../tabwidget.cpp" line="175"/>
<source>Shell No. %1</source>
<translation>Shell No. %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation></translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation></translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>:</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>&amp;Actions</source>
<translation>(&amp;A)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>&amp;Help</source>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>&amp;Edit</source>
<translation>(&amp;E)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="109"/>
<source>&amp;About...</source>
<translation>QTerminalについて(&amp;A)...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="114"/>
<source>About &amp;Qt...</source>
<translation>Qtについて(&amp;Q)...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="119"/>
<source>&amp;Preferences...</source>
<translation>(&amp;P)...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>&amp;File</source>
<translation>(&amp;F)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>&amp;View</source>
<translation>(&amp;V)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="129"/>
<source>&amp;Quit</source>
<translation>(&amp;Q)</translation>
</message>
</context>
</TS>

View File

@ -1,643 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="pt">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>Filtrar:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation>Escolha o tipo de letra</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>Tipo de letra:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>Tamanho:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation>Pré-visualização</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="322"/>
<source>Close Tab</source>
<translation>Fechar separador</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="192"/>
<source>Split Terminal Horizontally</source>
<translation>Separar na horizontal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="198"/>
<source>Split Terminal Vertically</source>
<translation>Separar na vertical</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="204"/>
<source>Collapse Subterminal</source>
<translation>Recolher subterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="210"/>
<source>Next Subterminal</source>
<translation>Próximo subterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="216"/>
<source>Previous Subterminal</source>
<translation>Subterminal anterior</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="166"/>
<source>Next Tab</source>
<translation>Novo separador</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation>Marcadores</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="92"/>
<source>Rename Session</source>
<translation>Renomear sessão</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="147"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>Prima %1 para ver o terminal.</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="158"/>
<source>Clear Current Tab</source>
<translation>Fechar separador atual</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="172"/>
<source>Previous Tab</source>
<translation>Separador anterior</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="178"/>
<source>Move Tab Left</source>
<translation>Mover separador para a esquerda</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="184"/>
<source>Move Tab Right</source>
<translation>Mover separador para a direita</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="225"/>
<source>Copy Selection</source>
<translation>Copiar seleção</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="231"/>
<source>Paste Clipboard</source>
<translation>Colar da área de transferência</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="237"/>
<source>Paste Selection</source>
<translation>Colar da seleção</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="243"/>
<source>Zoom in</source>
<translation>Ampliar</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="249"/>
<source>Zoom out</source>
<translation>Reduzir</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="255"/>
<source>Zoom reset</source>
<translation>Repor ampliação</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="263"/>
<source>Find...</source>
<translation>Localizar...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="274"/>
<source>Save Session</source>
<translation>Guardar sessão</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="280"/>
<source>Load Session</source>
<translation>Carregar sessão</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="287"/>
<source>Toggle Menu</source>
<translation>Alternar menu</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="305"/>
<source>New Tab</source>
<translation>Novo separador</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="311"/>
<source>New Tab From Preset</source>
<translation>Novo separador de pré-ajuste</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="312"/>
<source>1 Terminal</source>
<translation>1 terminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="314"/>
<source>2 Horizontal Terminals</source>
<translation>2 terminais horizontais</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>2 Vertical Terminals</source>
<translation>2 terminais verticais</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="318"/>
<source>4 Terminals</source>
<translation>4 terminais</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="328"/>
<source>New Window</source>
<translation>Nova janela</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="351"/>
<source>Hide Window Borders</source>
<translation>Ocultar contornos da janela</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="362"/>
<source>Show Tab Bar</source>
<translation>Mostrar barra de separadores</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="382"/>
<source>Bottom</source>
<translation>Baixo</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="383"/>
<source>Top</source>
<translation>Cima</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="384"/>
<location filename="../mainwindow.cpp" line="415"/>
<source>Right</source>
<translation>Direita</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="385"/>
<location filename="../mainwindow.cpp" line="416"/>
<source>Left</source>
<translation>Esquerda</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="400"/>
<source>Tabs Layout</source>
<translation>Posição dos separadores</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="414"/>
<source>None</source>
<translation>Nenhum</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="432"/>
<source>Scrollbar Layout</source>
<translation>Posição da barra de deslocação</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="486"/>
<source>Exit QTerminal</source>
<translation>Sair do QTerminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="488"/>
<source>Do not ask again</source>
<translation>Não perguntar novamente</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="495"/>
<source>Are you sure you want to exit?</source>
<translation>Tem a certeza de que deseja sair?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="515"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Um emulador de terminal multiplataforma</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="300"/>
<source>Emulation</source>
<translation>Emulação</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="62"/>
<source>Shortcuts</source>
<translation>Atalhos</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>Terminal settings</source>
<translation>Definições do terminal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="52"/>
<source>Appearance</source>
<translation>Aparência</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="57"/>
<location filename="../forms/propertiesdialog.ui" line="325"/>
<source>Behavior</source>
<translation>Comportamento</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="67"/>
<source>Dropdown</source>
<translation>Suspenso</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="72"/>
<source>Bookmarks</source>
<translation>Marcadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="90"/>
<source>Color scheme</source>
<translation>Esquema de cores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="100"/>
<source>Widget style</source>
<translation>Estilo do widget</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="110"/>
<source>Scrollbar position</source>
<translation>Posição da barra de deslocação</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="120"/>
<source>Tabs position</source>
<translation>Posição dos separadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="130"/>
<source>Show the menu bar</source>
<translation>Mostrar barra de menu</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="137"/>
<source>Always show the tab bar</source>
<translation>Mostrar sempre a barra de separadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="144"/>
<source>Show a border around the current terminal</source>
<translation>Mostrar contornos do terminal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="151"/>
<source>Application transparency</source>
<translation>Transparência da aplicação</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="177"/>
<source>Terminal transparency</source>
<translation>Transparência do terminal</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="197"/>
<source>Start with preset:</source>
<translation>Iniciar com pré-ajuste:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="205"/>
<source>None (single terminal)</source>
<translation>Não (um terminal)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="210"/>
<source>2 terminals horizontally</source>
<translation>2 terminais horizontais</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="215"/>
<source>2 terminals vertically</source>
<translation>2 terminais verticais</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="220"/>
<source>4 terminals</source>
<translation>4 terminais</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="241"/>
<source>Font</source>
<translation>Tipo de letra</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="273"/>
<source>&amp;Set Font...</source>
<translation>&amp;Definir tipo de letra...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="309"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;O comportamento a emular. Tenha em atenção que esta opção não tem que ser igual à do sistema operativo.&lt;/p&gt;&lt;p&gt;A emulação &lt;span style=&quot; font-weight:600;&quot;&gt;pré-definida&lt;/span&gt; possui um conjunto mínimo de funcionalidades.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="331"/>
<source>Action after paste</source>
<translation>Ação depois de colar</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="364"/>
<source>Open new terminals in current working directory</source>
<translation>Abrir novos terminais no diretório de trabalho atual</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="371"/>
<source>Ask for confirmation when closing</source>
<translation>Confirmar antes de fechar</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="381"/>
<source>Unlimited history</source>
<translation>Histórico ilimitado</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="388"/>
<source>History size (in lines)</source>
<translation>Limitar histórico (linhas)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="456"/>
<source>Height</source>
<translation>Altura</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="463"/>
<location filename="../forms/propertiesdialog.ui" line="477"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="470"/>
<source>Width</source>
<translation>Largura</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="520"/>
<source>Edit bookmark file contents</source>
<translation>Editar conteúdo do ficheiro de marcadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="542"/>
<source>Enable bookmarks</source>
<translation>Ativar marcadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="551"/>
<source>Bookmark file</source>
<translation>Ficheiro de marcadores</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="438"/>
<source>Show on start</source>
<translation>Mostrar ao iniciar</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="445"/>
<source>Size</source>
<translation>Tamanho</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="491"/>
<source>Shortcut:</source>
<translation>Atalho:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="561"/>
<source>Find...</source>
<translation>Localizar...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="570"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>Pode especificar a localização do ficheiro de marcadores. Permite a partilha de marcadores através do Own Cloud, Dropbox e mais serviços.</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="161"/>
<location filename="../forms/propertiesdialog.ui" line="184"/>
<source> %</source>
<translation> %</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="421"/>
<source>Shortcut</source>
<translation>Atalho</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="426"/>
<source>Key</source>
<translation>Tecla</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<source>No scrollbar</source>
<translation>Sem barra de deslocação</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Left</source>
<translation>Esquerda</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Right</source>
<translation>Direita</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Top</source>
<translation>Cima</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Bottom</source>
<translation>Baixo</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>No move</source>
<translation>Não mover</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move start</source>
<translation>Mover para o inicio</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move end</source>
<translation>Mover para o fim</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="68"/>
<location filename="../propertiesdialog.cpp" line="122"/>
<source>System Default</source>
<translation>Predefinições</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="252"/>
<source>Open or create bookmarks file</source>
<translation>Abrir ou criar um ficheiro de marcadores</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation>Marcadores locais</translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="190"/>
<source>Synchronized Bookmarks</source>
<translation>Marcadores sincronizados</translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="69"/>
<location filename="../tabwidget.cpp" line="174"/>
<source>Shell No. %1</source>
<translation>Consola n.º %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation>Nome do separador</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>Nome do novo separador:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation>Fechar sessão</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation>Renomear sessão</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation>Carregar sessão</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>Lista de sessões guardadas:</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>Janela principal</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>File</source>
<translation>Ficheiro</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>Actions</source>
<translation>Ações</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>Help</source>
<translation>Ajuda</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>View</source>
<translation>Ver</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>Edit</source>
<translation>Editar</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="125"/>
<source>&amp;Quit</source>
<translation>&amp;Sair</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="107"/>
<source>About...</source>
<translation>Sobre...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="112"/>
<source>About Qt...</source>
<translation>Sobre Qt...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="117"/>
<source>&amp;Preferences...</source>
<translation>&amp;Preferências...</translation>
</message>
</context>
</TS>

View File

@ -1,658 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>Фильтр:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation>Выберите шрифт терминала</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>Шрифт:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>Кегль:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation>Предпросмотр</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation>Закладки</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="97"/>
<source>Rename Session</source>
<translation>Переименовать сессию</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="130"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>Нажмите &quot;%1&quot; чтобы увидеть терминал.</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="141"/>
<source>&amp;Clear Current Tab</source>
<translation>&amp;Очистить текущую вкладку</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="150"/>
<source>&amp;Next Tab</source>
<translation>&amp;Следующая вкладка</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>&amp;Previous Tab</source>
<translation>&amp;Предыдущая вкладка</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="164"/>
<source>Move Tab &amp;Left</source>
<translation>Сдвинуть вкладку в&amp;лево</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Move Tab &amp;Right</source>
<translation>Сдвинуть вкладку в&amp;право</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="180"/>
<source>Split Terminal &amp;Horizontally</source>
<translation>Разделить терминал по &amp;горизонтали</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="187"/>
<source>Split Terminal &amp;Vertically</source>
<translation>Разделить терминал по &amp;вертикали</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="194"/>
<source>&amp;Collapse Subterminal</source>
<translation>&amp;Закрыть подтерминал</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="201"/>
<source>N&amp;ext Subterminal</source>
<translation>С&amp;ледующий подтерминал</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="208"/>
<source>P&amp;revious Subterminal</source>
<translation>П&amp;редыдущий подтерминал</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="218"/>
<source>Copy &amp;Selection</source>
<translation>Скопировать &amp;выделенное</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="225"/>
<source>Paste Clip&amp;board</source>
<translation>Вставить из буф&amp;ера</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="232"/>
<source>Paste S&amp;election</source>
<translation>Вставить в&amp;ыделенное</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="239"/>
<source>Zoom &amp;in</source>
<translation>&amp;Увеличить</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="246"/>
<source>Zoom &amp;out</source>
<translation>&amp;Уменьшить</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="253"/>
<source>Zoom rese&amp;t</source>
<translation>&amp;Сбросить увеличение</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>&amp;Find...</source>
<translation>&amp;Найти...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="274"/>
<source>&amp;Save Session</source>
<translation>&amp;Сохранить сеанс</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="280"/>
<source>&amp;Load Session</source>
<translation>&amp;Загрузить сеанс</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="287"/>
<source>&amp;Toggle Menu</source>
<translation>&amp;Показать строку меню</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="306"/>
<source>&amp;New Tab</source>
<translation>&amp;Новая вкладка</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="313"/>
<source>New Tab From &amp;Preset</source>
<translation>Новая вкладка из &amp;шаблонов</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="314"/>
<source>1 &amp;Terminal</source>
<translation>1 &amp;терминал</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>2 &amp;Horizontal Terminals</source>
<translation>2 &amp;горизонтальных терминала</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="318"/>
<source>2 &amp;Vertical Terminals</source>
<translation>2 &amp;вертикальных терминала</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="320"/>
<source>4 Terminal&amp;s</source>
<translation>4 терминал&amp;а</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="324"/>
<source>&amp;Close Tab</source>
<translation>&amp;Закрыть вкладку</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="331"/>
<source>&amp;New Window</source>
<translation>&amp;Новое окно</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="365"/>
<source>&amp;Hide Window Borders</source>
<translation>&amp;Спрятать рамку окна</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="380"/>
<source>&amp;Show Tab Bar</source>
<translation>&amp;Показать панель вкладок</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="392"/>
<source>Fullscreen</source>
<translation>Во весь экран</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="412"/>
<source>&amp;Bottom</source>
<translation>&amp;Снизу</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="413"/>
<source>&amp;Top</source>
<translation>&amp;Сверху</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="414"/>
<location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Right</source>
<translation>&amp;Справа</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="446"/>
<source>&amp;Left</source>
<translation>&amp;Слева</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="430"/>
<source>&amp;Tabs Layout</source>
<translation>Расположение &amp;вкладок</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="444"/>
<source>&amp;None</source>
<translation>&amp;Убрать</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="462"/>
<source>S&amp;crollbar Layout</source>
<translation>Расположение по&amp;лосы прокрутки</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="529"/>
<source>Exit QTerminal</source>
<translation>Выйти из QTerminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="531"/>
<source>Do not ask again</source>
<translation>Не спрашивать снова</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="538"/>
<source>Are you sure you want to exit?</source>
<translation>Вы уверены, что хотите выйти?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="559"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Лёгкий мультиплатформенный эмулятор терминала</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="319"/>
<source>Emulation</source>
<translation>Эмуляция</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="62"/>
<source>Shortcuts</source>
<translation>Сочетания клавиш</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>Terminal settings</source>
<translation>Настройки терминала</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="52"/>
<source>Appearance</source>
<translation>Внешний вид</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="57"/>
<location filename="../forms/propertiesdialog.ui" line="344"/>
<source>Behavior</source>
<translation>Поведение</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="67"/>
<source>Dropdown</source>
<translation>Выпадающий терминал</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="72"/>
<source>Bookmarks</source>
<translation>Закладки</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="90"/>
<source>Color scheme</source>
<translation>Цветовая схема</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="100"/>
<source>Widget style</source>
<translation>Графический стиль</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="110"/>
<source>Scrollbar position</source>
<translation>Расположение полосы прокрутки</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="120"/>
<source>Tabs position</source>
<translation>Расположение вкладок</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="130"/>
<source>Show the menu bar</source>
<translation>Показывать панель меню</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="144"/>
<source>Show a border around the current terminal</source>
<translation>Показывать границу вокруг текущего терминала</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="151"/>
<source>Application transparency</source>
<translation>Прозрачность приложения</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="161"/>
<source>Terminal transparency</source>
<translation>Прозрачность терминала</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="184"/>
<source>Start with preset:</source>
<translation>Начинать с предустановкой:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="208"/>
<source>None (single terminal)</source>
<translation>Нет (один терминал)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="213"/>
<source>2 terminals horizontally</source>
<translation>2 горизонтальных терминала</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="218"/>
<source>2 terminals vertically</source>
<translation>2 вертикальных терминала</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="223"/>
<source>4 terminals</source>
<translation>4 терминала</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>Font</source>
<translation>Шрифт</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="328"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Какое поведение эмулировать. Обратите внимание, что это не обязательно должно соответствовать вашей операционной системе.&lt;/p&gt;&lt;p&gt;Эмуляция &lt;span style=&quot; font-weight:600;&quot;&gt;по умолчанию&lt;/span&gt; - это запасной режим с минимальным набором функций.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="350"/>
<source>Action after paste</source>
<translation>Действие после вставки</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="383"/>
<source>Open new terminals in current working directory</source>
<translation>Открывать новые терминалы в текущем рабочем каталоге</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="390"/>
<source>Save Size when closing</source>
<translation>Запоминать размер при закрытии</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="397"/>
<source>Save Position when closing</source>
<translation>Запоминать расположение при закрытии</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="404"/>
<source>Ask for confirmation when closing</source>
<translation>Запрашивать подтверждение при закрытии</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="414"/>
<source>Unlimited history</source>
<translation>Неограниченная история</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="421"/>
<source>History size (in lines)</source>
<translation>Размер истории (в строках)</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="489"/>
<source>Height</source>
<translation>Высота</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="496"/>
<location filename="../forms/propertiesdialog.ui" line="510"/>
<source>%</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="503"/>
<source>Width</source>
<translation>Ширина</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="553"/>
<source>Edit bookmark file contents</source>
<translation>Изменить содержимое файла закладок</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="575"/>
<source>Enable bookmarks</source>
<translation>Включить закладки</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="584"/>
<source>Bookmark file</source>
<translation>Файл закладок</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="471"/>
<source>Show on start</source>
<translation>Показать при запуске</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="137"/>
<source>Hide tab bar with only one tab</source>
<translation>Прятать панель вкладок только с одной вкладкой</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="292"/>
<source>&amp;Change...</source>
<translation>&amp;Изменить...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="478"/>
<source>Size</source>
<translation>Размер</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="524"/>
<source>Shortcut:</source>
<translation>Сочетание клавиш:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="594"/>
<source>Find...</source>
<translation>Найти...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="603"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>Вы можете выбрать ваше собственное место для хранения закладок. Это позволит легко делиться закладками с помощью таких инструментов как OwnCloud или Dropbox.</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="168"/>
<location filename="../forms/propertiesdialog.ui" line="191"/>
<source> %</source>
<translation> %</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="454"/>
<source>Shortcut</source>
<translation>Сочетание клавиш</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="459"/>
<source>Key</source>
<translation>Клавиши</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<source>No scrollbar</source>
<translation>Без полосы прокрутки</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Left</source>
<translation>Слева</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Right</source>
<translation>Справа</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Top</source>
<translation>Сверху</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Bottom</source>
<translation>Снизу</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>No move</source>
<translation>Не двигаться</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move start</source>
<translation>Переместиться в начало</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move end</source>
<translation>Переместиться в конец</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="68"/>
<location filename="../propertiesdialog.cpp" line="123"/>
<source>System Default</source>
<translation>Системный</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="256"/>
<source>Open or create bookmarks file</source>
<translation>Открыть или создать файл закладок</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation>Локальные закладки</translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="187"/>
<source>Synchronized Bookmarks</source>
<translation>Синхронизированные закладки</translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="70"/>
<location filename="../tabwidget.cpp" line="175"/>
<source>Shell No. %1</source>
<translation>Оболочка %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>Tab name</source>
<translation>Имя вкладки</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="162"/>
<source>New tab name:</source>
<translation>Имя новой вкладки:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="184"/>
<source>Close session</source>
<translation>Закрыть сессию</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="186"/>
<source>Rename session</source>
<translation>Переименовать сессию</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation>Загрузить сессию</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>Список сохранённых сессий:</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>Главное окно</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>&amp;File</source>
<translation>&amp;Файл</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>&amp;Actions</source>
<translation>&amp;Действия</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>&amp;Help</source>
<translation>&amp;Справка</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>&amp;View</source>
<translation>&amp;Вид</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>&amp;Edit</source>
<translation>&amp;Правка</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="109"/>
<source>&amp;About...</source>
<translation>О &amp;программе...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="114"/>
<source>About &amp;Qt...</source>
<translation>О &amp;Qt...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="129"/>
<source>&amp;Quit</source>
<translation>&amp;Выход</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="119"/>
<source>&amp;Preferences...</source>
<translation>&amp;Настройки...</translation>
</message>
</context>
</TS>

View File

@ -1,609 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="tr_TR">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>Süzgeç:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation>Terminal yazıtipini seç</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>Yazıtipi:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>Boyut:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation>Önizle</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="310"/>
<source>Close Tab</source>
<translation>Sekmeyi Kapat</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="191"/>
<source>Split Terminal Horizontally</source>
<translation>Terminali Yatay Olarak Böl</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="197"/>
<source>Split Terminal Vertically</source>
<translation>Terminali Dikey Olarak Böl</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="203"/>
<source>Collapse Subterminal</source>
<translation>Altterminali Kapat</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="209"/>
<source>Next Subterminal</source>
<translation>Sonraki Altterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="215"/>
<source>Previous Subterminal</source>
<translation>Önceki Altterminal</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="165"/>
<source>Next Tab</source>
<translation>Sonraki Sekme</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation>Yer İmleri</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="91"/>
<source>Rename Session</source>
<translation>Oturumu Yeniden Adlandır</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="146"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>Terminali görmek için &quot;%1&quot; e basın.</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>Clear Current Tab</source>
<translation>Mevcut sekmeyi temizle</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Previous Tab</source>
<translation>Önceki Sekme</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="177"/>
<source>Move Tab Left</source>
<translation>Sekmeyi Sola Taşı</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="183"/>
<source>Move Tab Right</source>
<translation>Sekmeyi Sağa Taşı</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="224"/>
<source>Copy Selection</source>
<translation>Seçimi Kopyala</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="230"/>
<source>Paste Clipboard</source>
<translation>Panoyu Yapıştır</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="236"/>
<source>Paste Selection</source>
<translation>Seçimi Yapıştır</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="242"/>
<source>Zoom in</source>
<translation type="unfinished">Büyüt</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="248"/>
<source>Zoom out</source>
<translation type="unfinished">Küçült</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="254"/>
<source>Zoom reset</source>
<translation>Sıfırla</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>Find...</source>
<translation>Bul...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="273"/>
<source>Save Session</source>
<translation>Oturumu Kaydet</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="279"/>
<source>Load Session</source>
<translation>Oturum Yükle</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="286"/>
<source>Toggle Menu</source>
<translation>Menüyü Değiştir</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="304"/>
<source>New Tab</source>
<translation>Yeni Sekme</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>New Window</source>
<translation>Yeni Pencere</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="339"/>
<source>Hide Window Borders</source>
<translation>Pencere Kenarlıklarını Gizle</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="350"/>
<source>Show Tab Bar</source>
<translation>Sekme Çubuğunu Göster</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="370"/>
<source>Bottom</source>
<translation>En Aşağı</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="371"/>
<source>Top</source>
<translation>En Yukarı</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="372"/>
<location filename="../mainwindow.cpp" line="403"/>
<source>Right</source>
<translation>Sağ</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="373"/>
<location filename="../mainwindow.cpp" line="404"/>
<source>Left</source>
<translation>Sol</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="388"/>
<source>Tabs Layout</source>
<translation>Sekme Düzeni</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="402"/>
<source>None</source>
<translation>Hiç</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="420"/>
<source>Scrollbar Layout</source>
<translation>Kaydırma Çubuğu Düzeni</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="474"/>
<source>Exit QTerminal</source>
<translation>QTerminalden Çık</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="476"/>
<source>Do not ask again</source>
<translation>Tekrar Sorma</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="483"/>
<source>Are you sure you want to exit?</source>
<translation>Çıkmak istediğinizden emin misiniz?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="503"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation>Hafif bir çok platformlu terminal öykünücüsü</translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>QTerminal Properties</source>
<translation>Qterminal özellikleri</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="49"/>
<source>Terminal Font</source>
<translation>Terminal Yazıtipi</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="54"/>
<source>Look and Feel</source>
<translation>Görünüm</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="59"/>
<location filename="../forms/propertiesdialog.ui" line="314"/>
<source>History</source>
<translation>Geçmiş</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="64"/>
<source>Emulation</source>
<translation>Öykünme</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="69"/>
<source>Shortcuts</source>
<translation>Kısayollar</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="74"/>
<source>DropDown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="79"/>
<source>Bookmarks</source>
<translation>Yer İmleri</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="97"/>
<source>Font</source>
<translation>Yazıtipi</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="129"/>
<source>&amp;Set Font...</source>
<translation>Yazıtipini Ay&amp;arla...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="152"/>
<source>Note: only fixed width font are allowed to be used in terminal</source>
<translation>Not: Sadece sabit genişlikteki yazıtiplerinin terminalde kullanılmasına müsade edilmiştir</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="169"/>
<source>Action after paste clipboard</source>
<translation>Panoyu yapıştırdıktan sonraki eylem</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="176"/>
<source>Color Scheme:</source>
<translation>Renk Şeması:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="209"/>
<source>GUI Style:</source>
<translation>GUI Biçemi:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="252"/>
<source>Scrollbar Position:</source>
<translation>Kaydırma Çubuğu Konumu:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="445"/>
<source>Show on start</source>
<translation>Başlangıçta göster</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="452"/>
<source>Size</source>
<translation>Boyut</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="460"/>
<source>Height %:</source>
<translation>Yükseklik %:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="470"/>
<source>Width %:</source>
<translation>Genişlik %:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="487"/>
<source>Shortcut:</source>
<translation>Kısayol:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="516"/>
<source>Edit File Content</source>
<translation>Dosya İçeriğini Düzenle</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="538"/>
<source>Use Bookmarks</source>
<translation>Yerimleri Kullan</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="547"/>
<source>Bookmark FIle:</source>
<translation>Yerimi Dosyası:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="557"/>
<source>Find...</source>
<translation>Bul...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="566"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation>Kendi yerimleri dosya yolunuzu berlirleyebilirsiniz. OwnCloud veya Dropbox gibi araçlarla yerimlerinizi paylaşmayı kolaylaştırır.</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="202"/>
<source>Tabs Position:</source>
<translation>Sekmelerin Konumu:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>&amp;Application Transparency:</source>
<translation>&amp;Uygulama Saydamlığı:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="216"/>
<location filename="../forms/propertiesdialog.ui" line="236"/>
<source> %</source>
<translation> %</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="229"/>
<source>Terminal Transparency:</source>
<translation>Terminal Saydamlığı:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="272"/>
<source>&amp;Highlight Current Terminal With Border</source>
<translation>Mevcut Terminali Kenarlık ile Vurgula</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="279"/>
<source>Ask for Window Closing Confirmation</source>
<translation>Pencere Kapatma İçin Onay Sor</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>Open New Sub-Terminals in Current Working Dir</source>
<translation>Mecut Çalışma Dizininde Yeni Bir Altterminal </translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="296"/>
<source>Show Main Menu</source>
<translation>Ana Menüyü Göster</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="303"/>
<source>Always Show Tabs</source>
<translation>Sekmeleri Daima Göster</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="320"/>
<source>Limited to: </source>
<translation>Sınırla:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="340"/>
<source>Unlimited</source>
<translation>Sınırsız</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="367"/>
<source>Emulation Type</source>
<translation>Öykünme Türü</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="376"/>
<source>Select emulation behaviour. It does not mean that for example &quot;linux&quot; has to be used only on Linux OS. Feel free to use it on Mac too etc.&lt;p&gt;Default is the failback type with minimal feature set.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="428"/>
<source>Shortcut</source>
<translation>Kısayol</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="433"/>
<source>Key</source>
<translation>Anahtar</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<source>No scrollbar</source>
<translation>Kaydırma çubuğu yok</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Left</source>
<translation>Sol</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="42"/>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Right</source>
<translation>Sağ</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Top</source>
<translation>En Yukarı</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="48"/>
<source>Bottom</source>
<translation>En Aşağı</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>No move</source>
<translation>Taşıma yok</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move start</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="60"/>
<source>Move end</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="65"/>
<location filename="../propertiesdialog.cpp" line="117"/>
<source>System Default</source>
<translation>Sistem Varsayılanı</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="245"/>
<source>Open or create bookmarks file</source>
<translation>Yerimleri dosyası ya da oluştur</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation>Yerel Yerimleri</translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="190"/>
<source>Synchronized Bookmarks</source>
<translation>Yerimlerini Eşitle</translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="69"/>
<location filename="../tabwidget.cpp" line="174"/>
<source>Shell No. %1</source>
<translation>Kabuk No. %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation>Sekme adı</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>Yeni sekme adı:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation>Oturumu kapat</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation>Oturumu yeniden adlandır</translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation>Oturum Yükle</translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>Kaydedilmiş oturum listesi:</translation>
</message>
</context>
<context>
<name>TermWidgetImpl</name>
<message>
<source>Split Terminal Horizontally</source>
<translation type="obsolete">Rozdělit Terminál Horizontálně</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation>Ana Pencere</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>File</source>
<translation>Dosya</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>Actions</source>
<translation>Eylemler</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>Help</source>
<translation>Yardım</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>View</source>
<translation>Görünüm</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>Edit</source>
<translation>Düzenle</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="125"/>
<source>&amp;Quit</source>
<translation>&amp;Çık</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="107"/>
<source>About...</source>
<translation>Hakkında...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="112"/>
<source>About Qt...</source>
<translation>Qt Hakkında...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="117"/>
<source>&amp;Preferences...</source>
<translation>&amp;Tercihler...</translation>
</message>
</context>
</TS>

View File

@ -1,658 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>BookmarksWidget</name>
<message>
<location filename="../forms/bookmarkswidget.ui" line="32"/>
<source>Filter:</source>
<translation>:</translation>
</message>
</context>
<context>
<name>FontDialog</name>
<message>
<location filename="../forms/fontdialog.ui" line="14"/>
<location filename="../forms/fontdialog.ui" line="73"/>
<source>Select Terminal Font</source>
<translation></translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="32"/>
<source>Font:</source>
<translation>:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="42"/>
<source>Size:</source>
<translation>:</translation>
</message>
<message>
<location filename="../forms/fontdialog.ui" line="59"/>
<source>Preview</source>
<translation></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.cpp" line="324"/>
<source>&amp;Close Tab</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="180"/>
<source>Split Terminal &amp;Horizontally</source>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="187"/>
<source>Split Terminal &amp;Vertically</source>
<translation>(&amp;V)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="194"/>
<source>&amp;Collapse Subterminal</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="201"/>
<source>N&amp;ext Subterminal</source>
<translation>(&amp;E)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="208"/>
<source>P&amp;revious Subterminal</source>
<translation>(&amp;R)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="150"/>
<source>&amp;Next Tab</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="157"/>
<source>&amp;Previous Tab</source>
<translation>(&amp;P)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="164"/>
<source>Move Tab &amp;Left</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="171"/>
<source>Move Tab &amp;Right</source>
<translation>(&amp;R)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="218"/>
<source>Copy &amp;Selection</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="232"/>
<source>Paste S&amp;election</source>
<translation>(&amp;E)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="274"/>
<source>&amp;Save Session</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="280"/>
<source>&amp;Load Session</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="313"/>
<source>New Tab From &amp;Preset</source>
<translation>(&amp;P)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="314"/>
<source>1 &amp;Terminal</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="316"/>
<source>2 &amp;Horizontal Terminals</source>
<translation>2(&amp;H)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="318"/>
<source>2 &amp;Vertical Terminals</source>
<translation>2(&amp;V)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="320"/>
<source>4 Terminal&amp;s</source>
<translation>4(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="412"/>
<source>&amp;Bottom</source>
<translation>(&amp;B)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="413"/>
<source>&amp;Top</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="414"/>
<location filename="../mainwindow.cpp" line="445"/>
<source>&amp;Right</source>
<translation>(&amp;R)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="415"/>
<location filename="../mainwindow.cpp" line="446"/>
<source>&amp;Left</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="430"/>
<source>&amp;Tabs Layout</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="444"/>
<source>&amp;None</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="462"/>
<source>S&amp;crollbar Layout</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="529"/>
<source>Exit QTerminal</source>
<translation>退</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="531"/>
<source>Do not ask again</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="538"/>
<source>Are you sure you want to exit?</source>
<translation>?</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="559"/>
<source>A lightweight multiplatform terminal emulator</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Bookmarks</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="97"/>
<source>Rename Session</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="130"/>
<source>Press &quot;%1&quot; to see the terminal.</source>
<translation>&quot;%1&quot;</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="141"/>
<source>&amp;Clear Current Tab</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="225"/>
<source>Paste Clip&amp;board</source>
<translation>(&amp;B)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="239"/>
<source>Zoom &amp;in</source>
<translation>(&amp;I)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="246"/>
<source>Zoom &amp;out</source>
<translation>(&amp;O)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="253"/>
<source>Zoom rese&amp;t</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="262"/>
<source>&amp;Find...</source>
<translation>(&amp;F)...</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="287"/>
<source>&amp;Toggle Menu</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="306"/>
<source>&amp;New Tab</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="331"/>
<source>&amp;New Window</source>
<translation>(&amp;N)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="365"/>
<source>&amp;Hide Window Borders</source>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="380"/>
<source>&amp;Show Tab Bar</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="392"/>
<source>Fullscreen</source>
<translation></translation>
</message>
</context>
<context>
<name>PropertiesDialog</name>
<message>
<location filename="../forms/propertiesdialog.ui" line="319"/>
<source>Emulation</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="62"/>
<source>Shortcuts</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="14"/>
<source>Terminal settings</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="52"/>
<source>Appearance</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="57"/>
<location filename="../forms/propertiesdialog.ui" line="344"/>
<source>Behavior</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="67"/>
<source>Dropdown</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="90"/>
<source>Color scheme</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="100"/>
<source>Widget style</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="110"/>
<source>Scrollbar position</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="120"/>
<source>Tabs position</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="130"/>
<source>Show the menu bar</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="144"/>
<source>Show a border around the current terminal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="151"/>
<source>Application transparency</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="161"/>
<source>Terminal transparency</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="184"/>
<source>Start with preset:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="208"/>
<source>None (single terminal)</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="212"/>
<source>2 terminals horizontally</source>
<translation>2</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="217"/>
<source>2 terminals vertically</source>
<translation>2</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="223"/>
<source>4 terminals</source>
<translation>4</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="259"/>
<source>Font</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="328"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Which behavior to emulate. Note that this does not have to match your operating system.&lt;/p&gt;&lt;p&gt;The &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt; emulation is a fallback with a minimal featureset.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;终端行为: 注意! . &lt;/p&gt;&lt;p&gt; &lt;span style=&quot; font-weight:600;&quot;&gt;default&lt;/span&gt;退&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="350"/>
<source>Action after paste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="383"/>
<source>Open new terminals in current working directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="390"/>
<source>Save Size when closing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="397"/>
<source>Save Position when closing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="404"/>
<source>Ask for confirmation when closing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="414"/>
<source>Unlimited history</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="421"/>
<source>History size (in lines)</source>
<translation> ()</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="472"/>
<source>Height</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="479"/>
<location filename="../forms/propertiesdialog.ui" line="493"/>
<source>%</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="486"/>
<source>Width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="536"/>
<source>Edit bookmark file contents</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="558"/>
<source>Enable bookmarks</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="567"/>
<source>Bookmark file</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="168"/>
<location filename="../forms/propertiesdialog.ui" line="191"/>
<source> %</source>
<translation>%</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="437"/>
<source>Shortcut</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="442"/>
<source>Key</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="72"/>
<source>Bookmarks</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="137"/>
<source>Hide tab bar with only one tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="289"/>
<source>&amp;Change...</source>
<translation type="unfinished">&amp;C)...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="454"/>
<source>Show on start</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="461"/>
<source>Size</source>
<translation></translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="507"/>
<source>Shortcut:</source>
<translation>:</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="577"/>
<source>Find...</source>
<translation>...</translation>
</message>
<message>
<location filename="../forms/propertiesdialog.ui" line="586"/>
<source>You can specify your own bookmarks file location. It allows easy bookmark sharing with tools like OwnCloud or Dropbox.</source>
<translation type="unfinished">, Dropbox分享</translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<source>No scrollbar</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Left</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="45"/>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Right</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Top</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="51"/>
<source>Bottom</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>No move</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move start</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="63"/>
<source>Move end</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="68"/>
<location filename="../propertiesdialog.cpp" line="122"/>
<source>System Default</source>
<translation></translation>
</message>
<message>
<location filename="../propertiesdialog.cpp" line="252"/>
<source>Open or create bookmarks file</source>
<translation></translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../bookmarkswidget.cpp" line="97"/>
<source>Local Bookmarks</source>
<translation></translation>
</message>
<message>
<location filename="../bookmarkswidget.cpp" line="187"/>
<source>Synchronized Bookmarks</source>
<translation></translation>
</message>
</context>
<context>
<name>TabWidget</name>
<message>
<location filename="../tabwidget.cpp" line="70"/>
<location filename="../tabwidget.cpp" line="175"/>
<source>Shell No. %1</source>
<translation>Shell No. %1</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="160"/>
<source>Tab name</source>
<translation></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="161"/>
<source>New tab name:</source>
<translation>:</translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="183"/>
<source>Close session</source>
<translation></translation>
</message>
<message>
<location filename="../tabwidget.cpp" line="185"/>
<source>Rename session</source>
<translation></translation>
</message>
</context>
<context>
<name>TermWidgetHolder</name>
<message>
<location filename="../termwidgetholder.cpp" line="46"/>
<source>Load Session</source>
<translation></translation>
</message>
<message>
<location filename="../termwidgetholder.cpp" line="47"/>
<source>List of saved sessions:</source>
<translation>:</translation>
</message>
</context>
<context>
<name>mainWindow</name>
<message>
<location filename="../forms/qterminal.ui" line="76"/>
<source>&amp;Actions</source>
<translation>(&amp;A)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="81"/>
<source>&amp;Help</source>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="93"/>
<source>&amp;Edit</source>
<translation>(&amp;E)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="109"/>
<source>&amp;About...</source>
<translation>(&amp;A)...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="114"/>
<source>About &amp;Qt...</source>
<translation>Qt(&amp;Q)...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="119"/>
<source>&amp;Preferences...</source>
<translation type="unfinished">(&amp;P)...</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="14"/>
<source>MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="68"/>
<source>&amp;File</source>
<translation>(&amp;F)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="88"/>
<source>&amp;View</source>
<translation>(&amp;V)</translation>
</message>
<message>
<location filename="../forms/qterminal.ui" line="129"/>
<source>&amp;Quit</source>
<translation>退(&amp;Q)</translation>
</message>
</context>
</TS>