pax_global_header00006660000000000000000000000064126156063610014520gustar00rootroot0000000000000052 comment=3cf7384336628043971e6f43df8573563c8a6129 liblxqt-0.10.0/000077500000000000000000000000001261560636100132555ustar00rootroot00000000000000liblxqt-0.10.0/.gitignore000066400000000000000000000005051261560636100152450ustar00rootroot00000000000000*.kdev4* moc_*.cxx qrc_*.cxx cmake_install.cmake cmake_uninstall.cmake Makefile CMakeFiles CMakeCache.txt CPackConfig.cmake CPackSourceConfig.cmake lib*.so lib*.so.* ui_*.h *.qm lxqt-appswitcher/lxqt-appswitcher lxqt-desktop/lxqt-desktop lxqt-panel/panel/lxqt-panel *~ *.autosave *-swp CMakeLists.txt.user* /build nbproject/ liblxqt-0.10.0/AUTHORS000066400000000000000000000006061261560636100143270ustar00rootroot00000000000000Upstream Authors: LXQt team: http://lxqt.org Razor team: http://razor-qt.org Copyright: Copyright (c) 2010-2012 Razor team Copyright (c) 2012-2015 LXQt team License: LGPL-2.1+ and BSD-3-clause The full text of the LGPL-2.1+ licenses can be found in the 'COPYING' file. The full text of the BSD-3-clause license can be found in the headers of the files under this license. liblxqt-0.10.0/CMakeLists.txt000066400000000000000000000243001261560636100160140ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR) project(liblxqt) set(LXQT_MAJOR_VERSION 0) set(LXQT_MINOR_VERSION 10) set(LXQT_PATCH_VERSION 0) include(CMakePackageConfigHelpers) include(GNUInstallDirs) # Standard directories for installation #----------------------------------------------------------------------------- # LXQT_DATA_DIR defaults to CMAKE_INSTALL_FULL_DATADIR. It's added to # XDG_DATA_DIRS by the startlxqt script # Warning: Setting LXQT_DATA_DIR must be done after including GNUInstallDirs #----------------------------------------------------------------------------- if (NOT DEFINED LXQT_DATA_DIR) set(LXQT_DATA_DIR "${CMAKE_INSTALL_FULL_DATADIR}" CACHE PATH "LXQt base directory relative to which data files should be searched" ) endif() #----------------------------------------------------------------------------- # Release is the default build type #----------------------------------------------------------------------------- if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() set(LXQT_PKG_CONFIG_DESCRIPTION "Shared library for LXQt applications") set(PUB_HDRS lxqthtmldelegate.h lxqtsettings.h lxqtplugininfo.h lxqtpowermanager.h lxqtscreensaver.h lxqtapplication.h lxqtsingleapplication.h lxqttranslator.h lxqtprogramfinder.h configdialog/lxqtconfigdialog.h configdialog/lxqtpageselectwidget.h lxqtpower/lxqtpower.h lxqtnotification.h lxqtautostartentry.h lxqtgridlayout.h lxqtrotatedwidget.h lxqtglobals.h ) set(PUBLIC_CLASSES HtmlDelegate Settings PluginInfo PowerManager ScreenSaver Application SingleApplication Translator ProgramFinder ConfigDialog PageSelectWidget Power Notification AutostartEntry GridLayout RotatedWidget ) set(SRCS lxqthtmldelegate.cpp lxqtplugininfo.cpp lxqtpowermanager.cpp lxqtsettings.cpp lxqtscreensaver.cpp lxqtapplication.cpp lxqtsingleapplication.cpp lxqttranslator.cpp lxqtprogramfinder.cpp configdialog/lxqtconfigdialog.cpp configdialog/lxqtpageselectwidget.cpp lxqtpower/lxqtpower.cpp lxqtpower/lxqtpowerproviders.cpp lxqtautostartentry.cpp lxqtnotification.cpp lxqtgridlayout.cpp lxqtrotatedwidget.cpp ) set(MOCS lxqthtmldelegate.h lxqtpowermanager.h lxqtsettings.h lxqtscreensaver.h lxqtapplication.h configdialog/lxqtconfigdialog.h configdialog/lxqtpageselectwidget.h lxqtnotification.h lxqtnotification_p.h lxqtpower/lxqtpower.h lxqtpower/lxqtpowerproviders.h lxqtgridlayout.h lxqtrotatedwidget.h ) set(FORMS configdialog/lxqtconfigdialog.ui ) # additional cmake files list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ) option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) find_package(Qt5Widgets REQUIRED QUIET) find_package(Qt5DBus REQUIRED QUIET) find_package(Qt5X11Extras REQUIRED QUIET) find_package(Qt5LinguistTools REQUIRED QUIET) find_package(Qt5Xdg REQUIRED QUIET) find_package(KF5WindowSystem REQUIRED QUIET) message(STATUS "Building with Qt ${Qt5Core_VERSION_STRING}") QT5_ADD_DBUS_INTERFACE(SRCS dbus/org.freedesktop.Notifications.xml notifications_interface ) QT5_ADD_DBUS_ADAPTOR(SRCS dbus/org.lxqt.SingleApplication.xml lxqtsingleapplication.h LXQt::SingleApplication ) set(LXQT_QT_VERSION "5") # KF5WindowSystem is missing here. KF5WindowSystem doesn't provide an .pc file. set(LXQT_PKG_CONFIG_REQUIRES "Qt5Xdg >= 1.2.0, Qt5Widgets, Qt5Xml, Qt5DBus, Qt5X11Extras") # Standard directories for installation include(LXQtCompilerSettings NO_POLICY_SCOPE) include(LXQtCreatePkgConfigFile) include(cmake/FindInstallConfigPath.cmake) # sets LXQT_ETC_XDG_DIR, if unset include(create_portable_headers) set(LXQT_VERSION ${LXQT_MAJOR_VERSION}.${LXQT_MINOR_VERSION}.${LXQT_PATCH_VERSION}) set(LXQT_LIBRARY_NAME "lxqt" CACHE STRING "lxqt") set(LXQT_RELATIVE_SHARE_DIR "${LXQT_LIBRARY_NAME}") set(LXQT_SHARE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${LXQT_RELATIVE_SHARE_DIR}") set(LXQT_RELATIVE_TRANSLATIONS_DIR "${LXQT_LIBRARY_NAME}/translations") set(LXQT_TRANSLATIONS_DIR "${LXQT_SHARE_DIR}/translations") set(LXQT_INTREE_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/include") set(LXQT_INTREE_TARGETS_FILE "${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}-targets.cmake") set(LXQT_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${LXQT_LIBRARY_NAME}") set(LXQT_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/share/cmake") ## Translations include(LXQtTranslateTs) lxqt_translate_ts(QM_FILES UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS} SOURCES ${SRCS} ${FORMS} INSTALL_DIR "${LXQT_TRANSLATIONS_DIR}/${PROJECT_NAME}" ) message(STATUS "") message(STATUS "liblxqt version: ${LXQT_VERSION}") message(STATUS "") # Copy public headers foreach(h ${PUB_HDRS}) get_filename_component(bh ${h} NAME) configure_file(${h} "${LXQT_INTREE_INCLUDE_DIR}/LXQt/${bh}" COPYONLY) endforeach() # Create the portable headers create_portable_headers(INTREE_PORTABLE_HEADERS "${LXQT_INTREE_INCLUDE_DIR}/LXQt" ${PUBLIC_CLASSES}) check_portable_headers(H_FILES ${PUB_HDRS} LINKS "${INTREE_PORTABLE_HEADERS}") #************************************************ # Create in-tree build infrastructure #************************************************ set(CFG_LXQT_TARGETS_FILE "${LXQT_INTREE_TARGETS_FILE}") set(CFG_LXQT_CMAKE_MODULES_DIR "${PROJECT_SOURCE_DIR}/cmake/modules") configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/lxqt-config.cmake.in" "${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}-config.cmake" INSTALL_DESTINATION "neverland" # required, altough we don't install it ) #************************************************ # Create installable build infrastructure #************************************************ set(CFG_LXQT_TARGETS_FILE "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}/${LXQT_LIBRARY_NAME}-targets.cmake") set(CFG_LXQT_CMAKE_MODULES_DIR "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}/modules") configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/lxqt-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/install/${LXQT_LIBRARY_NAME}-config.cmake" INSTALL_DESTINATION "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}" ) write_basic_package_version_file( "${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}-config-version.cmake" VERSION ${LXQT_VERSION} COMPATIBILITY AnyNewerVersion ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/install/${LXQT_LIBRARY_NAME}-config.cmake" "${CMAKE_BINARY_DIR}/${LXQT_LIBRARY_NAME}-config-version.cmake" DESTINATION "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}" COMPONENT Devel ) install(EXPORT ${LXQT_LIBRARY_NAME}-targets DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/${LXQT_LIBRARY_NAME}" COMPONENT Devel ) file(GLOB toInstallModules "${PROJECT_SOURCE_DIR}/cmake/modules/*.cmake" "${PROJECT_SOURCE_DIR}/cmake/modules/*.in" ) install( FILES ${toInstallModules} DESTINATION "${LXQT_INSTALL_CMAKE_DIR}/${LXQT_LIBRARY_NAME}/modules" COMPONENT Devel ) add_library(${LXQT_LIBRARY_NAME} SHARED ${PUB_HDRS} ${SRCS} ${dbus_generated} ${UIS} ${MOCS} ${QM_FILES} ${QRC_CXX_SOURCES} ) target_link_libraries(${LXQT_LIBRARY_NAME} PUBLIC KF5::WindowSystem Qt5::Widgets Qt5::DBus Qt5::X11Extras Qt5Xdg ) set_target_properties(${LXQT_LIBRARY_NAME} PROPERTIES VERSION ${LXQT_VERSION} SOVERSION ${LXQT_MAJOR_VERSION} ) target_compile_definitions(${LXQT_LIBRARY_NAME} PRIVATE "LXQT_RELATIVE_SHARE_DIR=\"${LXQT_RELATIVE_SHARE_DIR}\"" PRIVATE "LXQT_SHARE_DIR=\"${LXQT_SHARE_DIR}\"" PRIVATE "LXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=\"${LXQT_RELATIVE_TRANSLATIONS_DIR}\"" PRIVATE "LXQT_SHARE_TRANSLATIONS_DIR=\"${LXQT_TRANSLATIONS_DIR}\"" PRIVATE "LXQT_ETC_XDG_DIR=\"${LXQT_ETC_XDG_DIR}\"" PRIVATE "LXQT_DATA_DIR=\"${LXQT_DATA_DIR}\"" PRIVATE "LXQT_VERSION=\"${LXQT_VERSION}\"" PRIVATE "COMPILE_LIBLXQT" ) target_compile_definitions(${LXQT_LIBRARY_NAME} PRIVATE "$<$:QT_NO_DEBUG_OUTPUT>" PRIVATE "$<$:QT_NO_WARNING_OUTPUT>" ) target_include_directories(${LXQT_LIBRARY_NAME} INTERFACE "$" INTERFACE "$" ) target_include_directories(${LXQT_LIBRARY_NAME} INTERFACE "$" INTERFACE "$" ) install(TARGETS ${LXQT_LIBRARY_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}" EXPORT ${LXQT_LIBRARY_NAME}-targets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Runtime ) export(TARGETS ${LXQT_LIBRARY_NAME} APPEND FILE "${LXQT_INTREE_TARGETS_FILE}" EXPORT_LINK_INTERFACE_LIBRARIES ) install(FILES ${PUB_HDRS} DESTINATION "${LXQT_INSTALL_INCLUDE_DIR}/LXQt" COMPONENT Devel ) install(FILES ${INTREE_PORTABLE_HEADERS} DESTINATION "${LXQT_INSTALL_INCLUDE_DIR}/LXQt" COMPONENT Devel ) #************************************************ # Create and install pkgconfig file #************************************************ lxqt_create_pkgconfig_file( PACKAGE_NAME ${LXQT_LIBRARY_NAME} DESCRIPTIVE_NAME ${LXQT_LIBRARY_NAME} DESCRIPTION ${LXQT_PKG_CONFIG_DESCRIPTION} INCLUDEDIRS ${LXQT_LIBRARY_NAME} LIBS ${LXQT_LIBRARY_NAME} REQUIRES ${LXQT_PKG_CONFIG_REQUIRES} VERSION ${LXQT_VERSION} INSTALL ) #************************************************ # building tarball with CPack ------------------------------------------------- include(InstallRequiredSystemLibraries) set(CPACK_PACKAGE_VERSION_MAJOR ${LXQT_MAJOR_VERSION}) set(CPACK_PACKAGE_VERSION_MINOR ${LXQT_MINOR_VERSION}) set(CPACK_PACKAGE_VERSION_PATCH ${LXQT_PATCH_VERSION}) set(CPACK_GENERATOR TBZ2) set(CPACK_SOURCE_GENERATOR TBZ2) set(CPACK_SOURCE_IGNORE_FILES /build/;.gitignore;.*~;.git;.kdev4;temp) include(CPack) liblxqt-0.10.0/COPYING000066400000000000000000000576361261560636100143310ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 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. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, 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 library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with the Library. 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 Library or any portion of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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 Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you 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. If distribution of 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 satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be 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. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library 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. 9. 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 Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library 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 with this License. 11. 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 Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library 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 Library. 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. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library 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. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser 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 Library 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 Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, 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 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS liblxqt-0.10.0/cmake/000077500000000000000000000000001261560636100143355ustar00rootroot00000000000000liblxqt-0.10.0/cmake/FindInstallConfigPath.cmake000066400000000000000000000020751261560636100215150ustar00rootroot00000000000000# XDG standards expects system-wide configuration files in the /etc/xdg/lxqt location. # Unfortunately QSettings we are using internally can be overriden in the Qt compilation # time to use different path for system-wide configs. (for example configure ... -sysconfdir /etc/settings ...) # This path can be found calling Qt4's qmake: # qmake -query QT_INSTALL_CONFIGURATION # if(NOT DEFINED LXQT_ETC_XDG_DIR) get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) message(STATUS "${QT_QMAKE_EXECUTABLE}") if(NOT QT_QMAKE_EXECUTABLE) message(FATAL_ERROR "LXQT_ETC_XDG_DIR: qmake executable not found (included before qt was configured?)") endif() execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_CONFIGURATION OUTPUT_VARIABLE LXQT_ETC_XDG_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "LXQT_ETC_XDG_DIR autodetected as '${LXQT_ETC_XDG_DIR}'") message(STATUS "You can set it manually with -DLXQT_ETC_XDG_DIR=") message(STATUS "") endif () liblxqt-0.10.0/cmake/create_portable_headers.cmake000066400000000000000000000030171261560636100221660ustar00rootroot00000000000000# Creates portable headers; e.g.: # Creates XdgAction from xdgaction.h # XdgAction contents: # #include "xdgaction.h" # # Use: # set(PUBLIC_CLASSES MyClass YourClass) # create_portable_headers(PORTABLE_HEADERS ${PUBLIC_CLASSES}) # PORTABLE_HEADER is an return value that contains the full name of the # generated headers. function(create_portable_headers outfiles outDir) set(options) set(oneValueArgs) set(multiValueArgs) cmake_parse_arguments(_CREATE_PORTABLE_HEADERS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) set(class_list ${_CREATE_PORTABLE_HEADERS_UNPARSED_ARGUMENTS}) foreach(f ${class_list}) string(TOLOWER "${f}.h" _filename) file(WRITE "${outDir}/${f}" "#include \"lxqt${_filename}\"\n") list(APPEND ${outfiles} "${outDir}/${f}") endforeach() set(${outfiles} "${${outfiles}}" PARENT_SCOPE) endfunction() function(check_portable_headers) cmake_parse_arguments(__ARGS "" "" "H_FILES;LINKS" ${ARGN}) foreach(f ${__ARGS_LINKS}) file(READ ${f} content) set(found False) foreach(line ${content}) string(REGEX MATCH "#include \"(.*)\"" v ${line}) set(hFile ${CMAKE_MATCH_1}) string(REGEX MATCH "[;/]${hFile};" v ";${__ARGS_H_FILES};") if(NOT v) set(found True) endif() endforeach() if(found) message(FATAL_ERROR "Incorrect portable header: '${f}'") endif() endforeach() endfunction() liblxqt-0.10.0/cmake/lxqt-config.cmake.in000066400000000000000000000053211261560636100202000ustar00rootroot00000000000000# - Finds the lxqt package # # The module defines the following variables # # LXQT_FOUND - Set to TRUE if all of the above has been found # # LXQT_SHARE_DIR - This allows to install and read the configs from non-standard locations # # LXQT_TRANSLATIONS_DIR - The default translations directory # # LXQT_ETC_XDG_DIR - XDG standards expects system-wide configuration files in the # /etc/xdg/lxqt location. Unfortunately QSettings we are using internally # can be overriden in the Qt compilation time to use different path for # system-wide configs. (for example configure ... -sysconfdir /etc/settings ...) # This path can be found calling Qt's qmake: # qmake -query QT_INSTALL_CONFIGURATION # # LXQT_DATA_DIR - LXQt base directory relative to which data files should # be searched.Defaults to CMAKE_INSTALL_FULL_DATADIR. It's # added to XDG_DATA_DIRS by the startlxqt script. # @PACKAGE_INIT@ set(LXQT_USEQT@LXQT_QT_VERSION@ ON) set(LXQT_QT_VERSION @LXQT_QT_VERSION@) set(LXQT_MAJOR_VERSION @LXQT_MAJOR_VERSION@) set(LXQT_MINOR_VERSION @LXQT_MINOR_VERSION@) set(LXQT_PATCH_VERSION @LXQT_PATCH_VERSION@) set(LXQT_VERSION @LXQT_VERSION@) set(LXQT_RELATIVE_SHARE_DIR @LXQT_RELATIVE_SHARE_DIR@) set(LXQT_SHARE_DIR @LXQT_SHARE_DIR@) set(LXQT_RELATIVE_TRANSLATIONS_DIR @LXQT_RELATIVE_TRANSLATIONS_DIR@) set(LXQT_TRANSLATIONS_DIR @LXQT_TRANSLATIONS_DIR@) set(LXQT_ETC_XDG_DIR @LXQT_ETC_XDG_DIR@) set(LXQT_DATA_DIR @LXQT_DATA_DIR@) set(LXQT_CMAKE_MODULES_DIR @CFG_LXQT_CMAKE_MODULES_DIR@) set(LXQT@LXQT_QT_VERSION@_FOUND 1) include(CMakeFindDependencyMacro) add_definitions(-DLXQT_RELATIVE_SHARE_DIR=\"${LXQT_RELATIVE_SHARE_DIR}\") add_definitions(-DLXQT_SHARE_DIR=\"${LXQT_SHARE_DIR}\") add_definitions(-DLXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=\"${LXQT_RELATIVE_TRANSLATIONS_DIR}\") add_definitions(-DLXQT_SHARE_TRANSLATIONS_DIR=\"${LXQT_TRANSLATIONS_DIR}\") add_definitions(-DLXQT_ETC_XDG_DIR=\"${LXQT_ETC_XDG_DIR}\") add_definitions(-DLXQT_DATA_DIR=\"${LXQT_DATA_DIR}\") add_definitions(-DLXQT_VERSION=\"${LXQT_VERSION}\") SET_SOURCE_FILES_PROPERTIES(LXQT_LIBRARIES PROPERTIES OBJECT_DEPENDS lxqt${LXQT_QT_VERSION}) list(APPEND CMAKE_MODULE_PATH "${LXQT_CMAKE_MODULES_DIR}") find_dependency(Qt5Widgets) find_dependency(Qt5DBus) find_dependency(Qt5X11Extras) find_dependency(Qt5LinguistTools) find_dependency(Qt5Xdg) find_dependency(KF5WindowSystem) if (CMAKE_VERSION VERSION_GREATER 2.8.12) cmake_policy(SET CMP0024 OLD) endif() include("${CMAKE_CURRENT_LIST_DIR}/lxqt-targets.cmake") liblxqt-0.10.0/cmake/modules/000077500000000000000000000000001261560636100160055ustar00rootroot00000000000000liblxqt-0.10.0/cmake/modules/LXQtAppTranslationLoader.cpp.in000066400000000000000000000006131261560636100237550ustar00rootroot00000000000000/* This file has been generated by the CMake lxqt_app_translation_loader(). * It loads LXQt application translations. * * Attention: All changes will be overwritten!!! */ #include #include static void loadAppTranslation() { LXQt::Translator::translateApplication(QStringLiteral("@catalog_name@")); } Q_COREAPP_STARTUP_FUNCTION(loadAppTranslation) liblxqt-0.10.0/cmake/modules/LXQtCompilerSettings.cmake000066400000000000000000000142371261560636100230620ustar00rootroot00000000000000#============================================================================= # Copyright 2015 Luís Pereira # Copyright 2015 Palo Kisa # Copyright 2013 Hong Jen Yee (PCMan) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. #============================================================================= #----------------------------------------------------------------------------- # Honor visibility properties for all target types. # # The ``_VISIBILITY_PRESET`` and # ``VISIBILITY_INLINES_HIDDEN`` target properties affect visibility # of symbols during dynamic linking. When first introduced these properties # affected compilation of sources only in shared libraries, module libraries, # and executables with the ``ENABLE_EXPORTS`` property set. This # was sufficient for the basic use cases of shared libraries and executables # with plugins. However, some sources may be compiled as part of static # libraries or object libraries and then linked into a shared library later. # CMake 3.3 and above prefer to honor these properties for sources compiled # in all target types. This policy preserves compatibility for projects # expecting the properties to work only for some target types. # # The ``OLD`` behavior for this policy is to ignore the visibility properties # for static libraries, object libraries, and executables without exports. # The ``NEW`` behavior for this policy is to honor the visibility properties # for all target types. # # This policy was introduced in CMake version 3.3. CMake version # 3.3.0 warns when the policy is not set and uses ``OLD`` behavior. Use # the ``cmake_policy()`` command to set it to ``OLD`` or ``NEW`` # explicitly. #----------------------------------------------------------------------------- if(COMMAND CMAKE_POLICY) if (POLICY CMP0063) cmake_policy(SET CMP0063 NEW) endif() endif() include(CheckCXXCompilerFlag) #----------------------------------------------------------------------------- # Detect Clang compiler #----------------------------------------------------------------------------- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set(LXQT_COMPILER_IS_CLANGCXX 1) endif() #----------------------------------------------------------------------------- # Set visibility to hidden to hide symbols, unless they're exported manually # in the code #----------------------------------------------------------------------------- set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) #----------------------------------------------------------------------------- # Disable exceptions #----------------------------------------------------------------------------- if (CMAKE_COMPILER_IS_GNUCXX OR LXQT_COMPILER_IS_CLANGCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions") endif() #----------------------------------------------------------------------------- # Common warning flags #----------------------------------------------------------------------------- set(__LXQT_COMMON_WARNING_FLAGS "-Wall") #----------------------------------------------------------------------------- # Warning flags #----------------------------------------------------------------------------- if (CMAKE_COMPILER_IS_GNUCXX OR LXQT_COMPILER_IS_CLANGCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${__LXQT_COMMON_WARNING_FLAGS}") endif() #----------------------------------------------------------------------------- # Linker flags # Do not allow undefined symbols #----------------------------------------------------------------------------- if (CMAKE_COMPILER_IS_GNUCXX OR LXQT_COMPILER_IS_CLANGCXX) set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_SHARED_LINKER_FLAGS}" ) set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_MODULE_LINKER_FLAGS}" ) endif() #----------------------------------------------------------------------------- # CXX11 and CXX0X requirements #----------------------------------------------------------------------------- CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") else() message(FATAL "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. C++11 support is required") endif() #----------------------------------------------------------------------------- # Enable exceptions for an target # # lxqt_enable_target_exceptions( # # ) # #----------------------------------------------------------------------------- function(lxqt_enable_target_exceptions target mode) target_compile_options(${target} ${mode} "$<$,$>:-fexceptions>" ) endfunction() liblxqt-0.10.0/cmake/modules/LXQtCreatePkgConfigFile.cmake000066400000000000000000000206711261560636100233610ustar00rootroot00000000000000#============================================================================= # Copyright 2015 Luís Pereira # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. #=============================================================================# # lxqt_create_pkgconfig_file(PACKAGE_NAME # VERSION # [PREFIX ] # [EXEC_PREFIX ] # [INCLUDEDIR_PREFIX ] # [INCLUDEDIRS ... ] # [LIBDIR_PREFIX ] # [DESCRIPTIVE_NAME ] # [DESCRIPTION ] # [URL ] # [REQUIRES ... ] # [REQUIRES_PRIVATE ... ] # [LIB_INSTALLDIR ] # [CFLAGS ] # [PATH ] # [INSTALL] # [COMPONENT] component) # # # PACKAGE_NAME and VERSION are mandatory. Everything else is optional include(CMakeParseArguments) include(GNUInstallDirs) function(lxqt_create_pkgconfig_file) set(options INSTALL) set(oneValueArgs PACKAGE_NAME PREFIX EXEC_PREFIX INCLUDEDIR_PREFIX LIBDIR_PREFIX DESCRIPTIVE_NAME DESCRIPTION URL VERSION PATH COMPONENT ) set(multiValueArgs INCLUDEDIRS REQUIRES REQUIRES_PRIVATE CONFLICTS CFLAGS LIBS LIBS_PRIVATE ) cmake_parse_arguments(USER "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if (USER_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unknown keywords given to create_pkgconfig_file(): \"${USER_UNPARSED_ARGUMENTS}\"") endif() # Check for mandatory args. Abort if not set if (NOT DEFINED USER_PACKAGE_NAME) message(FATAL_ERROR "Required argument PACKAGE_NAME missing in generate_pkgconfig_file() call") else() set(_PKGCONFIG_PACKAGE_NAME "${USER_PACKAGE_NAME}") endif() if (NOT DEFINED USER_VERSION) message(FATAL_ERROR "Required argument VERSION missing in generate_pkgconfig_file() call") else() set(_PKGCONFIG_VERSION "${USER_VERSION}") endif() # Optional args if (NOT DEFINED USER_PREFIX) set(_PKGCONFIG_PREFIX "${CMAKE_INSTALL_PREFIX}") endif() if (NOT DEFINED USER_EXEC_PREFIX) set(_PKGCONFIG_EXEC_PREFIX "\${prefix}") endif() if (NOT DEFINED USER_INCLUDEDIR_PREFIX) set(_PKGCONFIG_INCLUDEDIR_PREFIX "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") endif() if (NOT DEFINED USER_LIBDIR_PREFIX) set(_PKGCONFIG_LIBDIR_PREFIX "\${prefix}/${CMAKE_INSTALL_LIBDIR}") endif() if (NOT DEFINED USER_DESCRIPTIVE_NAME) set(_PKGCONFIG_DESCRIPTIVE_NAME "") else() set(_PKGCONFIG_DESCRIPTIVE_NAME "${USER_DESCRIPTIVE_NAME}") endif() if (DEFINED USER_INCLUDEDIRS) set(tmp "") foreach(dir ${USER_INCLUDEDIRS}) if (NOT IS_ABSOLUTE "${dir}") list(APPEND tmp "-I\${includedir}/${dir}") endif() endforeach() string(REPLACE ";" " " _INCLUDEDIRS "${tmp}") endif() if (DEFINED USER_REQUIRES) string(REPLACE ";" ", " _PKGCONFIG_REQUIRES "${USER_REQUIRES}") endif() if (DEFINED USER_REQUIRES_PRIVATE) string(REPLACE ";" ", " _PKGCONFIG_REQUIRES_PRIVATE "${USER_REQUIRES_PRIVATE}") else() set(_PKGCONFIG_REQUIRES_PRIVATE "") endif() if (NOT DEFINED USER_CFLAGS) set(_PKGCONFIG_CFLAGS "-I\${includedir} ${_INCLUDEDIRS}") endif() if (NOT DEFINED USER_LIBS) set(_PKGCONFIG_LIBS "-L\${libdir}") else() set(tmp "-L\${libdir}") set(_libs "${USER_LIBS}") foreach(lib ${_libs}) list(APPEND tmp "-l${lib}") endforeach() string(REPLACE ";" " " _PKGCONFIG_LIBS "${tmp}") endif() if (NOT DEFINED USER_LIBS_PRIVATE) set(PKGCONFIG_LIBS "-L\${libdir}") else() set(tmp "") set(_libs "${USER_LIBS_PRIVATE}") foreach(lib ${_libs}) list(APPEND tmp "-l${lib}") endforeach() string(REPLACE ";" " " _PKGCONFIG_LIBS_PRIVATE "${tmp}") endif() if (DEFINED USER_DESCRIPTION) set(_PKGCONFIG_DESCRIPTION "${USER_DESCRIPTION}") else() set(_PKGCONFIG_DESCRIPTION "") endif() if (DEFINED USER_URL) set(_PKFCONFIG_URL "${USER_URL}") else() set(_PKGCONFIG_URL "") endif() if (NOT DEFINED USER_PATH) set(_PKGCONFIG_FILE "${PROJECT_BINARY_DIR}/${_PKGCONFIG_PACKAGE_NAME}.pc") else() if (IS_ABSOLUTE "${USER_PATH}") set(_PKGCONFIG_FILE "${USER_PATH}/${_PKGCONFIG_PACKAGE_NAME}.pc") else() set(_PKGCONFIG_FILE "${PROJECT_BINARY_DIR}/${USER_PATH}/${_PKGCONFIG_PACKAGE_NAME}.pc") endif() endif() # Write the .pc file FILE(WRITE "${_PKGCONFIG_FILE}" "# file generated by create_pkgconfig_file()\n" "prefix=${_PKGCONFIG_PREFIX}\n" "exec_prefix=${_PKGCONFIG_EXEC_PREFIX}\n" "libdir=${_PKGCONFIG_LIBDIR_PREFIX}\n" "includedir=${_PKGCONFIG_INCLUDEDIR_PREFIX}\n" "\n" "Name: ${_PKGCONFIG_DESCRIPTIVE_NAME}\n" ) if (NOT "${_PKGCONFIG_DESCRIPTION}" STREQUAL "") FILE(APPEND ${_PKGCONFIG_FILE} "Description: ${_PKGCONFIG_DESCRIPTION}\n" ) endif() if (NOT "${_PKGCONFIG_URL}" STREQUAL "") FILE(APPEND ${_PKGCONFIG_FILE} "URL: ${_PKGCONFIG_URL}\n") endif() FILE(APPEND ${_PKGCONFIG_FILE} "Version: ${_PKGCONFIG_VERSION}\n") if (NOT "${_PKGCONFIG_REQUIRES}" STREQUAL "") FILE(APPEND ${_PKGCONFIG_FILE} "Requires: ${_PKGCONFIG_REQUIRES}\n") endif() if (NOT "${_PKGCONFIG_REQUIRES_PRIVATE}" STREQUAL "") FILE(APPEND ${_PKGCONFIG_FILE} "Requires.private: ${_PKGCONFIG_REQUIRES_PRIVATE}\n" ) endif() FILE(APPEND ${_PKGCONFIG_FILE} "Cflags: ${_PKGCONFIG_CFLAGS}\n" "Libs: ${_PKGCONFIG_LIBS}\n" ) if (NOT "${_PKGCONFIG_LIBS_PRIVATE}" STREQUAL "") FILE(APPEND ${_PKGCONFIG_FILE} "Libs.private: ${_PKGCONFIG_REQUIRES_PRIVATE}\n" ) endif() if (DEFINED USER_INSTALL) # FreeBSD loves to install files to different locations # http://www.freebsd.org/doc/handbook/dirstructure.html if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") set(_PKGCONFIG_INSTALL_DESTINATION "libdata/pkgconfig") else() set(_PKGCONFIG_INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") endif() if (DEFINED USER_COMPONENT) set(_COMPONENT "${USER_COMPONENT}") else() set(_COMPONENT "Devel") endif() install(FILES "${_PKGCONFIG_FILE}" DESTINATION "${_PKGCONFIG_INSTALL_DESTINATION}" COMPONENT "${_COMPONENT}") endif() endfunction() liblxqt-0.10.0/cmake/modules/LXQtLibTranslationLoader.cpp.in000066400000000000000000000006051261560636100237440ustar00rootroot00000000000000/* This file has been generated by the CMake lxqt_app_translation_loader(). * It loads LXQt libraries translations. * * Attention: All changes will be overwritten!!! */ #include #include static void loadLibTranslation() { LXQt::Translator::translateLibrary(QStringLiteral("@catalog_name@")); } Q_COREAPP_STARTUP_FUNCTION(loadLibTranslation) liblxqt-0.10.0/cmake/modules/LXQtPluginTranslationLoader.cpp.in000066400000000000000000000016411261560636100244750ustar00rootroot00000000000000/* This file has been generated by the CMake lxqt_plugin_translation_loader(). * It loads LXQt plugin translations. * * Attention: All changes will be overwritten!!! */ #include #include /* Dummy helper symbol for referencing. * In case plugin is linked as static (lib*.a) unreferenced objects are stripped in linking time * => we need to reference some symbol from this file to be not stripped as a whole. */ void * loadPluginTranslation_@catalog_name@_helper = nullptr; static void loadPluginTranslation() { //XXX: we don't use the QStringLiteral here because it causes SEGFAULT in static finalization time // (the string is stored in static QHash and it's destructor can reference already deleted static QString (generated by QStringLiteral)) LXQt::Translator::translatePlugin("@catalog_name@", "@plugin_type@"); } Q_COREAPP_STARTUP_FUNCTION(loadPluginTranslation) liblxqt-0.10.0/cmake/modules/LXQtTranslate.cmake000066400000000000000000000033341261560636100215200ustar00rootroot00000000000000#============================================================================= # Copyright 2014 Luís Pereira # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. #============================================================================= # # An convenience module that loads all the LXQt translations modules at once. include(LXQtTranslateTs) include(LXQtTranslateDesktop) include(LXQtTranslationLoader)liblxqt-0.10.0/cmake/modules/LXQtTranslateDesktop.cmake000066400000000000000000000075231261560636100230560ustar00rootroot00000000000000#============================================================================= # The lxqt_translate_desktop() function was copied from the # LXQt LXQtTranslate.cmake # # Original Author: Alexander Sokolov # # funtion lxqt_translate_desktop(_RESULT # SOURCES # [TRANSLATION_DIR] translation_directory # ) # Output: # _RESULT The generated .desktop (.desktop) files # # Input: # # SOURCES List of input desktop files (.destktop.in) to be translated # (merged), relative to the CMakeList.txt. # # TRANSLATION_DIR Optional path to the directory with the .ts files, # relative to the CMakeList.txt. Defaults to # "translations". # #============================================================================= function(lxqt_translate_desktop _RESULT) # Parse arguments *************************************** set(oneValueArgs TRANSLATION_DIR) set(multiValueArgs SOURCES) cmake_parse_arguments(_ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) # check for unknown arguments set(_UNPARSED_ARGS ${_ARGS_UNPARSED_ARGUMENTS}) if (NOT ${_UNPARSED_ARGS} STREQUAL "") MESSAGE(FATAL_ERROR "Unknown arguments '${_UNPARSED_ARGS}'.\n" "See lxqt_translate_desktop() documentation for more information.\n" ) endif() if (NOT DEFINED _ARGS_SOURCES) set(${_RESULT} "" PARENT_SCOPE) return() else() set(_sources ${_ARGS_SOURCES}) endif() if (NOT DEFINED _ARGS_TRANSLATION_DIR) set(_translationDir "translations") else() set(_translationDir ${_ARGS_TRANSLATION_DIR}) endif() get_filename_component (_translationDir ${_translationDir} ABSOLUTE) foreach (_inFile ${_sources}) get_filename_component(_inFile ${_inFile} ABSOLUTE) get_filename_component(_fileName ${_inFile} NAME_WE) #Extract the real extension ............ get_filename_component(_fileExt ${_inFile} EXT) string(REPLACE ".in" "" _fileExt ${_fileExt}) #....................................... set(_outFile "${CMAKE_CURRENT_BINARY_DIR}/${_fileName}${_fileExt}") file(GLOB _translations ${_translationDir}/${_fileName}_*${_fileExt} ) set(_pattern "'\\[.*]\\s*='") if (_translations) list(SORT _translations) add_custom_command(OUTPUT ${_outFile} COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > ${_outFile} COMMAND grep -h ${_pattern} ${_translations} >> ${_outFile} COMMENT "Generating ${_fileName}${_fileExt}" ) else() add_custom_command(OUTPUT ${_outFile} COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > ${_outFile} COMMENT "Generating ${_fileName}${_fileExt}" ) endif() set(__result ${__result} ${_outFile}) # TX file *********************************************** set(_txFile "${CMAKE_BINARY_DIR}/tx/${_fileName}${_fileExt}.tx.sh") string(REPLACE "${CMAKE_SOURCE_DIR}/" "" _tx_translationDir ${_translationDir}) string(REPLACE "${CMAKE_SOURCE_DIR}/" "" _tx_inFile ${_inFile}) string(REPLACE "." "" _fileType ${_fileExt}) file(WRITE ${_txFile} "[ -f ${_inFile} ] || exit 0\n" "echo '[lxde-qt.${_fileName}_${_fileType}]'\n" "echo 'type = DESKTOP'\n" "echo 'source_lang = en'\n" "echo 'source_file = ${_tx_inFile}'\n" "echo 'file_filter = ${_tx_translationDir}/${_fileName}_${_fileExt}'\n" "echo ''\n" ) endforeach() set(${_RESULT} ${__result} PARENT_SCOPE) endfunction(lxqt_translate_desktop) liblxqt-0.10.0/cmake/modules/LXQtTranslateTs.cmake000066400000000000000000000123261261560636100220300ustar00rootroot00000000000000#============================================================================= # Copyright 2014 Luís Pereira # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. #============================================================================= # # funtion lxqt_translate_ts(qmFiles # [USE_QT5 [Yes | No]] # [UPDATE_TRANSLATIONS [Yes | No]] # SOURCES # [TEMPLATE] translation_template # [TRANSLATION_DIR] translation_directory # [INSTALL_DIR] install_directory # [COMPONENT] component # ) # Output: # qmFiles The generated compiled translations (.qm) files # # Input: # USE_QT5 Optional flag to choose between Qt4 and Qt5. Defaults to Qt5 # # UPDATE_TRANSLATIONS Optional flag. Setting it to Yes, extracts and # compiles the translations. Setting it No, only # compiles them. # # TEMPLATE Optional translations files base name. Defaults to # ${PROJECT_NAME}. An .ts extensions is added. # # TRANSLATION_DIR Optional path to the directory with the .ts files, # relative to the CMakeList.txt. Defaults to # "translations". # # INSTALL_DIR Optional destination of the file compiled files (qmFiles). # If not present no installation is performed # # COMPONENT Optional install component. Only effective if INSTALL_DIR # present. Defaults to "Runtime". # CMake v2.8.3 needed to use the CMakeParseArguments module cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR) # We use our patched version to round a annoying bug. include(Qt5PatchedLinguistToolsMacros) function(lxqt_translate_ts qmFiles) set(oneValueArgs USE_QT5 UPDATE_TRANSLATIONS TEMPLATE TRANSLATION_DIR INSTALL_DIR COMPONENT) set(multiValueArgs SOURCES) cmake_parse_arguments(TR "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if (NOT DEFINED TR_UPDATE_TRANSLATIONS) set(TR_UPDATE_TRANSLATIONS "No") endif() if (NOT DEFINED TR_USE_QT5) set(TR_USE_QT5 "Yes") endif() if(NOT DEFINED TR_TEMPLATE) set(TR_TEMPLATE "${PROJECT_NAME}") endif() if (NOT DEFINED TR_TRANSLATION_DIR) set(TR_TRANSLATION_DIR "translations") endif() file(GLOB tsFiles "${TR_TRANSLATION_DIR}/${TR_TEMPLATE}_*.ts") set(templateFile "${TR_TRANSLATION_DIR}/${TR_TEMPLATE}.ts") if(TR_USE_QT5) # Qt5 if (TR_UPDATE_TRANSLATIONS) qt5_patched_create_translation(QMS ${TR_SOURCES} ${templateFile} OPTIONS -locations absolute ) qt5_patched_create_translation(QM ${TR_SOURCES} ${tsFiles} OPTIONS -locations absolute ) else() qt5_patched_add_translation(QM ${tsFiles}) endif() else() # Qt4 if(TR_UPDATE_TRANSLATIONS) qt4_create_translation(QMS ${TR_SOURCES} ${templateFile} OPTIONS -locations absolute ) qt4_create_translation(QM ${TR_SOURCES} ${tsFiles} OPTIONS -locations absolute ) else() qt4_add_translation(QM ${tsFiles}) endif() endif() if(TR_UPDATE_TRANSLATIONS) add_custom_target("update_${TR_TEMPLATE}_ts" ALL DEPENDS ${QMS}) endif() if(DEFINED TR_INSTALL_DIR) if(NOT DEFINED TR_COMPONENT) set(TR_COMPONENT "Runtime") endif() install(FILES ${QM} DESTINATION "${TR_INSTALL_DIR}" COMPONENT "${TR_COMPONENT}" ) endif() set(${qmFiles} ${QM} PARENT_SCOPE) endfunction() liblxqt-0.10.0/cmake/modules/LXQtTranslationLoader.cmake000066400000000000000000000070751261560636100232160ustar00rootroot00000000000000#============================================================================= # Copyright 2014 Luís Pereira # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. #============================================================================= # # These functions enables "automatic" translation loading in LXQt Qt5 apps # and libs. They generate a .cpp file that takes care of everything. The # user doesn't have to do anything in the source code. # # Typical use: # include(LXQtTranslationLoader) # lxqt_app_translation_loader(lxqt-app_QM_LOADER ${PROJECT_NAME}) # add_executable(${PROJECT_NAME} # ${lxqt-app_QM_LOADER} # ... # ) # lxqt_app_translation_loader( ) # The generated .cpp file is added to # Translations catalog to be loaded function(lxqt_app_translation_loader source_files catalog_name) configure_file( ${LXQT_CMAKE_MODULES_DIR}/LXQtAppTranslationLoader.cpp.in LXQtAppTranslationLoader.cpp @ONLY ) set(${source_files} ${${source_files}} ${CMAKE_CURRENT_BINARY_DIR}/LXQtAppTranslationLoader.cpp PARENT_SCOPE) endfunction() # lxqt_lib_translation_loader( ) # The generated .cpp file is added to # Translations catalog to be loaded function(lxqt_lib_translation_loader source_files catalog_name) configure_file( ${LXQT_CMAKE_MODULES_DIR}/LXQtLibTranslationLoader.cpp.in LXQtLibTranslationLoader.cpp @ONLY ) set(${source_files} ${${source_files}} ${CMAKE_CURRENT_BINARY_DIR}/LXQtLibTranslationLoader.cpp PARENT_SCOPE) endfunction() # lxqt_plugin_translation_loader( ) # The generated .cpp file is added to # Translations catalog to be loaded # Plugin type. Example: lxqt-panel function(lxqt_plugin_translation_loader source_files catalog_name plugin_type) configure_file( ${LXQT_CMAKE_MODULES_DIR}/LXQtPluginTranslationLoader.cpp.in LXQtPluginTranslationLoader.cpp @ONLY ) set(${source_files} ${${source_files}} ${CMAKE_CURRENT_BINARY_DIR}/LXQtPluginTranslationLoader.cpp PARENT_SCOPE) endfunction() liblxqt-0.10.0/cmake/modules/Qt5PatchedLinguistToolsMacros.cmake000066400000000000000000000111721261560636100246600ustar00rootroot00000000000000#============================================================================= # Copyright 2005-2011 Kitware, Inc. # 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 Kitware, Inc. 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 THE COPYRIGHT # HOLDER 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. #============================================================================= include(CMakeParseArguments) function(QT5_PATCHED_CREATE_TRANSLATION _qm_files) set(options) set(oneValueArgs) set(multiValueArgs OPTIONS) cmake_parse_arguments(_LUPDATE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) set(_lupdate_files ${_LUPDATE_UNPARSED_ARGUMENTS}) set(_lupdate_options ${_LUPDATE_OPTIONS}) set(_my_sources) set(_my_tsfiles) foreach(_file ${_lupdate_files}) get_filename_component(_ext ${_file} EXT) get_filename_component(_abs_FILE ${_file} ABSOLUTE) if(_ext MATCHES "ts") list(APPEND _my_tsfiles ${_abs_FILE}) else() list(APPEND _my_sources ${_abs_FILE}) endif() endforeach() foreach(_ts_file ${_my_tsfiles}) if(_my_sources) # make a list file to call lupdate on, so we don't make our commands too # long for some systems # get_filename_component(_ts_name ${_ts_file} NAME_WE) get_filename_component(_name ${_ts_file} NAME) string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _ts_name ${_name}) set(_ts_lst_file "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_ts_name}_lst_file") set(_lst_file_srcs) foreach(_lst_file_src ${_my_sources}) set(_lst_file_srcs "${_lst_file_src}\n${_lst_file_srcs}") endforeach() get_directory_property(_inc_DIRS INCLUDE_DIRECTORIES) foreach(_pro_include ${_inc_DIRS}) get_filename_component(_abs_include "${_pro_include}" ABSOLUTE) set(_lst_file_srcs "-I${_pro_include}\n${_lst_file_srcs}") endforeach() file(WRITE ${_ts_lst_file} "${_lst_file_srcs}") endif() add_custom_command(OUTPUT ${_ts_file} COMMAND ${Qt5_LUPDATE_EXECUTABLE} ARGS ${_lupdate_options} "@${_ts_lst_file}" -ts ${_ts_file} DEPENDS ${_my_sources} ${_ts_lst_file} VERBATIM) endforeach() qt5_patched_add_translation(${_qm_files} ${_my_tsfiles}) set(${_qm_files} ${${_qm_files}} PARENT_SCOPE) endfunction() function(QT5_PATCHED_ADD_TRANSLATION _qm_files) foreach(_current_FILE ${ARGN}) get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE) # get_filename_component(qm ${_abs_FILE} NAME_WE) get_filename_component(_name ${_abs_FILE} NAME) string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" qm ${_name}) get_source_file_property(output_location ${_abs_FILE} OUTPUT_LOCATION) if(output_location) file(MAKE_DIRECTORY "${output_location}") set(qm "${output_location}/${qm}.qm") else() set(qm "${CMAKE_CURRENT_BINARY_DIR}/${qm}.qm") endif() add_custom_command(OUTPUT ${qm} COMMAND ${Qt5_LRELEASE_EXECUTABLE} ARGS ${_abs_FILE} -qm ${qm} DEPENDS ${_abs_FILE} VERBATIM ) list(APPEND ${_qm_files} ${qm}) endforeach() set(${_qm_files} ${${_qm_files}} PARENT_SCOPE) endfunction() liblxqt-0.10.0/cmake/modules/Qt5TranslationLoader.cmake000066400000000000000000000045421261560636100230330ustar00rootroot00000000000000#============================================================================= # Copyright 2014 Luís Pereira # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. #============================================================================= # # These functions enables "automatic" translation loading in Qt5 apps # and libs. They generate a .cpp file that takes care of everything. The # user doesn't have to do anything in the source code. # # qt5_translation_loader( ) # # Output: # Appends the generated file to this variable. # # Input: # Full path name to the translations dir. # Translation catalog to be loaded. function(qt5_translation_loader source_files translations_dir catalog_name) configure_file( ${LXQT_CMAKE_MODULES_DIR}/Qt5TranslationLoader.cpp.in Qt5TranslationLoader.cpp @ONLY ) set(${source_files} ${${source_files}} ${CMAKE_CURRENT_BINARY_DIR}/Qt5TranslationLoader.cpp PARENT_SCOPE) endfunction() liblxqt-0.10.0/cmake/modules/Qt5TranslationLoader.cpp.in000066400000000000000000000020421261560636100231330ustar00rootroot00000000000000/* This file has been generated by the CMake qt_translation_loader(). * It loads Qt application translations. * * Attention: All changes will be overwritten!!! */ #include #include #include #include static void loadQtTranslation() { QString locale = QLocale::system().name(); QTranslator *qtTranslator = new QTranslator(qApp); if (qtTranslator->load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { qApp->installTranslator(qtTranslator); } else { delete qtTranslator; } QTranslator *appTranslator = new QTranslator(qApp); if (appTranslator->load(QString("@translations_dir@/@catalog_name@_%1.qm").arg(locale))) { QCoreApplication::installTranslator(appTranslator); } else if (locale == QLatin1String("C") || locale.startsWith(QLatin1String("en"))) { // English is the default. It's translated anyway. delete appTranslator; } } Q_COREAPP_STARTUP_FUNCTION(loadQtTranslation) liblxqt-0.10.0/configdialog/000077500000000000000000000000001261560636100157025ustar00rootroot00000000000000liblxqt-0.10.0/configdialog/lxqtconfigdialog.cpp000066400000000000000000000101611261560636100217430ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2012 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtconfigdialog.h" #include "ui_lxqtconfigdialog.h" #include #include using namespace LXQt; ConfigDialog::ConfigDialog(const QString& title, Settings* settings, QWidget* parent) : QDialog(parent), mSettings(settings), mCache(new SettingsCache(settings)), ui(new Ui::ConfigDialog) { ui->setupUi(this); setWindowTitle(title); connect(ui->buttons, SIGNAL(clicked(QAbstractButton*)), SLOT(dialogButtonsAction(QAbstractButton*))); ui->moduleList->setVisible(false); connect(Settings::globalSettings(), SIGNAL(settingsChanged()), this, SLOT(updateIcons())); foreach(QPushButton* button, ui->buttons->findChildren()) button->setAutoDefault(false); } void ConfigDialog::setButtons(QDialogButtonBox::StandardButtons buttons) { ui->buttons->setStandardButtons(buttons); foreach(QPushButton* button, ui->buttons->findChildren()) button->setAutoDefault(false); } void ConfigDialog::addPage(QWidget* page, const QString& name, const QString& iconName) { addPage(page, name, QStringList() << iconName); } void ConfigDialog::addPage(QWidget* page, const QString& name, const QStringList& iconNames) { Q_ASSERT(page); if (!page) { return; } /* We set the layout margin to 0. In the default configuration, one page * only, it aligns buttons with the page. In multi-page it saves a little * bit of space, without clutter. */ if (page->layout()) { page->layout()->setMargin(0); } QStringList icons = QStringList(iconNames) << "application-x-executable"; new QListWidgetItem(XdgIcon::fromTheme(icons), name, ui->moduleList); mIcons.append(icons); ui->stackedWidget->addWidget(page); if(ui->stackedWidget->count() > 1) { ui->moduleList->setVisible(true); ui->moduleList->setCurrentRow(0); mMaxSize = QSize(qMax(page->geometry().width() + ui->moduleList->geometry().width(), mMaxSize.width()), qMax(page->geometry().height() + ui->buttons->geometry().height(), mMaxSize.height())); } else { mMaxSize = page->geometry().size(); } resize(mMaxSize); } void ConfigDialog::showPage(QWidget* page) { int index = ui->stackedWidget->indexOf(page); if (index < 0) return; ui->stackedWidget->setCurrentIndex(index); ui->moduleList->setCurrentRow(index); } void ConfigDialog::closeEvent(QCloseEvent* event) { emit save(); mSettings->sync(); } void ConfigDialog::dialogButtonsAction(QAbstractButton* button) { QDialogButtonBox::StandardButton standardButton = ui->buttons->standardButton(button); emit clicked(standardButton); if (standardButton == QDialogButtonBox::Reset) { mCache->loadToSettings(); emit reset(); } else if(standardButton == QDialogButtonBox::Close) { close(); } } void ConfigDialog::updateIcons() { for (int ix = 0; ix < mIcons.size(); ix++) ui->moduleList->item(ix)->setIcon(XdgIcon::fromTheme(mIcons.at(ix))); update(); } ConfigDialog::~ConfigDialog() { delete ui; delete mCache; } liblxqt-0.10.0/configdialog/lxqtconfigdialog.h000066400000000000000000000054701261560636100214170ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2012 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTCONFIGDIALOG_H #define LXQTCONFIGDIALOG_H #include "lxqtsettings.h" #include #include #include #include "lxqtglobals.h" namespace Ui { class ConfigDialog; } namespace LXQt { class LXQT_API ConfigDialog : public QDialog { Q_OBJECT public: explicit ConfigDialog(const QString& title, Settings* settings, QWidget* parent = 0); ~ConfigDialog(); /*! * Sets buttons in button bar */ void setButtons(QDialogButtonBox::StandardButtons buttons); /*! * Add a page to the configure dialog */ void addPage(QWidget* page, const QString& name, const QString& iconName="application-x-executable"); /*! * Add a page to the configure dialog, attempting several alternative icons to find one in the theme */ void addPage(QWidget* page, const QString& name, const QStringList& iconNames); /*! * Show page containing the widget in parameter */ void showPage(QWidget *page); signals: /*! * This signal is emitted when the user pressed the "Reset" button. * Settings should be re-read and the widgets should be set accordingly. */ void reset(); /*! * This is emitted whenever the window is closed and settings need to be saved. * It is only necessary if additional actions need to be performed - Settings are handled automatically. */ void save(); /*! * This is emitted when some button in the buttonbar is clicked. */ void clicked(QDialogButtonBox::StandardButton); protected: Settings* mSettings; virtual void closeEvent(QCloseEvent* event); private: SettingsCache* mCache; QList mIcons; QSize mMaxSize; Ui::ConfigDialog* ui; private slots: void dialogButtonsAction(QAbstractButton* button); void updateIcons(); }; } // namespace LXQt #endif // LXQTCONFIGDIALOG_H liblxqt-0.10.0/configdialog/lxqtconfigdialog.ui000066400000000000000000000037651261560636100216120ustar00rootroot00000000000000 ConfigDialog 0 0 272 231 Dialog Qt::ScrollBarAlwaysOff -1 Qt::Horizontal QDialogButtonBox::Close|QDialogButtonBox::Reset LXQt::PageSelectWidget QListWidget
configdialog/lxqtpageselectwidget.h
moduleList buttons moduleList currentRowChanged(int) stackedWidget setCurrentIndex(int) 150 123 344 117
liblxqt-0.10.0/configdialog/lxqtpageselectwidget.cpp000066400000000000000000000062761261560636100226520ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtpageselectwidget.h" #include #include #include using namespace LXQt; class PageSelectWidgetItemDelegate: public QStyledItemDelegate { public: explicit PageSelectWidgetItemDelegate(PageSelectWidget *parent = 0); QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; private: PageSelectWidget* mView; }; /************************************************ ************************************************/ PageSelectWidgetItemDelegate::PageSelectWidgetItemDelegate(PageSelectWidget *parent): QStyledItemDelegate(parent), mView(parent) { } /************************************************ ************************************************/ QSize PageSelectWidgetItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { QSize size = QStyledItemDelegate::sizeHint(option, index); size.setWidth(mView->viewport()->width() - 2*mView->spacing()); return size; } /************************************************ ************************************************/ PageSelectWidget::PageSelectWidget(QWidget *parent) : QListWidget(parent) { setSelectionRectVisible(false); setViewMode(IconMode); setSpacing(2); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding); setWordWrap(true); setDragEnabled(NoDragDrop); setEditTriggers(NoEditTriggers); setTextElideMode(Qt::ElideNone); setItemDelegate(new PageSelectWidgetItemDelegate(this)); } /************************************************ ************************************************/ PageSelectWidget::~PageSelectWidget() { } /************************************************ ************************************************/ QSize PageSelectWidget::sizeHint() const { QSize size = QListWidget::sizeHint(); int w = 0; for(int i=0; i< count(); ++i) { QRect rect = fontMetrics().boundingRect(QRect(), Qt::AlignLeft | Qt::TextWordWrap, item(i)->text()); w = qMax(w, rect.width()); } if (horizontalScrollBar()->isVisible()) w += horizontalScrollBar()->width(); size.setWidth(w + frameWidth() + spacing()*2 + 10); return size; } liblxqt-0.10.0/configdialog/lxqtpageselectwidget.h000066400000000000000000000025651261560636100223140ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTPAGESELECTWIDGET_H #define LXQTPAGESELECTWIDGET_H #include "lxqtglobals.h" #include namespace LXQt { class LXQT_API PageSelectWidget : public QListWidget { Q_OBJECT public: explicit PageSelectWidget(QWidget *parent = 0); virtual ~PageSelectWidget(); protected: QSize sizeHint() const; }; } // namespace LXQt #endif // PAGESELECTWIDGET_H liblxqt-0.10.0/dbus/000077500000000000000000000000001261560636100142125ustar00rootroot00000000000000liblxqt-0.10.0/dbus/org.freedesktop.Notifications.xml000066400000000000000000000047611261560636100226550ustar00rootroot00000000000000 liblxqt-0.10.0/dbus/org.lxqt.SingleApplication.xml000066400000000000000000000004161261560636100221170ustar00rootroot00000000000000 liblxqt-0.10.0/liblxqt.doxygen000066400000000000000000000002141261560636100163300ustar00rootroot00000000000000/*! \mainpage A minimal shared library for LXQt DE. liblxqt containing shared classes for LXQt developed by LXQt team and contributors. */ liblxqt-0.10.0/lxqtapplication.cpp000066400000000000000000000124671261560636100172070ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2012-2013 Razor team * Authors: * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include #include "lxqtapplication.h" #include "lxqtsettings.h" #include #include using namespace LXQt; #define COLOR_DEBUG "\033[32;2m" #define COLOR_WARN "\033[33;2m" #define COLOR_CRITICAL "\033[31;1m" #define COLOR_FATAL "\033[33;1m" #define COLOR_RESET "\033[0m" #define QAPP_NAME qApp ? qApp->objectName().toUtf8().constData() : "" #include #include #include #include #include #include #include #include /*! \brief Log qDebug input to file Used only in pure Debug builds or when is the system environment variable LXQT_DEBUG set */ void dbgMessageOutput(QtMsgType type, const QMessageLogContext &ctx, const QString & msgStr) { QByteArray msgBuf = msgStr.toUtf8(); const char* msg = msgBuf.constData(); QDir dir(XdgDirs::configHome().toUtf8() + "/lxqt"); dir.mkpath("."); const char* typestr; const char* color; switch (type) { case QtDebugMsg: typestr = "Debug"; color = COLOR_DEBUG; break; case QtWarningMsg: typestr = "Warning"; color = COLOR_WARN; break; case QtFatalMsg: typestr = "Fatal"; color = COLOR_FATAL; break; default: // QtCriticalMsg typestr = "Critical"; color = COLOR_CRITICAL; } QByteArray dt = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz").toUtf8(); if (isatty(STDERR_FILENO)) fprintf(stderr, "%s %s(%p) %s: %s%s\n", color, QAPP_NAME, qApp, typestr, msg, COLOR_RESET); else fprintf(stderr, "%s(%p) %s: %s\n", QAPP_NAME, qApp, typestr, msg); FILE *f = fopen(dir.absoluteFilePath("debug.log").toUtf8().constData(), "a+"); fprintf(f, "%s %s(%p) %s: %s\n", dt.constData(), QAPP_NAME, qApp, typestr, msg); fclose(f); if (type == QtFatalMsg) abort(); } Application::Application(int &argc, char** argv) : QApplication(argc, argv) { #ifdef DEBUG qInstallMessageHandler(dbgMessageOutput); #else if (!qgetenv("LXQT_DEBUG").isNull()) qInstallMessageHandler(dbgMessageOutput); #endif XdgIcon::setThemeName(Settings::globalSettings()->value("icon_theme").toString()); setWindowIcon(QIcon(QString(LXQT_SHARE_DIR) + "/graphics/lxqt_logo.png")); connect(Settings::globalSettings(), SIGNAL(lxqtThemeChanged()), this, SLOT(updateTheme())); updateTheme(); } Application::Application(int &argc, char** argv, bool handleQuitSignals) : Application(argc, argv) { if (handleQuitSignals) { QList signo_list = {SIGINT, SIGTERM, SIGHUP}; connect(this, &Application::unixSignal, [this, signo_list] (int signo) { if (signo_list.contains(signo)) quit(); }); listenToUnixSignals(signo_list); } } void Application::updateTheme() { QString styleSheetKey = QFileInfo(applicationFilePath()).fileName(); setStyleSheet(lxqtTheme.qss(styleSheetKey)); emit themeChanged(); } namespace { int signal_sock[2]; void signalHandler(int signo) { int ret = write(signal_sock[0], &signo, sizeof (int)); if (sizeof (int) != ret) qCritical() << QStringLiteral("unable to write into socketpair, %1").arg(strerror(errno)); } } void Application::listenToUnixSignals(QList const & signoList) { static QSocketNotifier * signal_notifier = nullptr; if (nullptr == signal_notifier) { if (0 != socketpair(AF_UNIX, SOCK_STREAM, 0, signal_sock)) { qCritical() << QStringLiteral("unable to create socketpair for correct signal handling: %1)").arg(strerror(errno)); return; } signal_notifier = new QSocketNotifier(signal_sock[1], QSocketNotifier::Read, this); connect(signal_notifier, &QSocketNotifier::activated, [this] { int signo = 0; int ret = read(signal_sock[1], &signo, sizeof (int)); if (sizeof (int) != ret) qCritical() << QStringLiteral("unable to read signal from socketpair, %1").arg(strerror(errno)); emit unixSignal(signo); }); } struct sigaction sa; sa.sa_handler = signalHandler; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; for (auto const & signo : signoList) sigaction(signo, &sa, nullptr); } liblxqt-0.10.0/lxqtapplication.h000066400000000000000000000052451261560636100166500ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2012-2013 Razor team * Authors: * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTAPPLICATION_H #define LXQTAPPLICATION_H #include #include #include "lxqtglobals.h" namespace LXQt { /*! \brief LXQt wrapper around QApplication. * It loads various LXQt related stuff by default (window icon, icon theme...) * * \note This wrapper is intended to be used only inside LXQt project. Using it * in external application will automatically require linking to various * LXQt libraries. * */ class LXQT_API Application : public QApplication { Q_OBJECT public: /*! Construct a LXQt application object. * \param argc standard argc as in QApplication * \param argv standard argv as in QApplication */ Application(int &argc, char **argv); /*! Construct a LXQt application object. * \param argc standard argc as in QApplication * \param argv standard argv as in QApplication * \param handleQuitSignals flag if signals SIGINT, SIGTERM, SIGHUP should be handled internaly (\sa quit() application) */ Application(int &argc, char **argv, bool handleQuitSignals); virtual ~Application() {} /*! Install UNIX signal handler for signals defined in \param signalList * Upon receiving of any of this signals the \sa unixSignal signal is emitted */ void listenToUnixSignals(QList const & signolList); private slots: void updateTheme(); signals: void themeChanged(); /*! Signal is emitted upon receival of registered unix signal * \param signo the received unix signal number */ void unixSignal(int signo); }; #if defined(lxqtApp) #undef lxqtApp #endif #define lxqtApp (static_cast(qApp)) } // namespace LXQt #endif // LXQTAPPLICATION_H liblxqt-0.10.0/lxqtautostartentry.cpp000066400000000000000000000061111261560636100200010ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2012 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtautostartentry.h" #include #include #include using namespace LXQt; AutostartEntry::AutostartEntry() : mLocalState(StateNone), mSystem(false) { } AutostartEntry::AutostartEntry(const QString& name): mLocalState(StateNone), mSystem(false) { foreach (const QString& dir, XdgDirs::autostartDirs()) { QString path = QString("%1/%2").arg(dir, name); if (QFile(path).exists()) { mSystemFile.load(path); mSystem = true; break; } } QString path = QString("%1/%2").arg(XdgDirs::autostartHome(), name); if (QFile(path).exists()) { mLocalFile.load(path); mLocalState = StateExists; } } void AutostartEntry::setFile(const XdgDesktopFile& file) { bool local = isLocal(); if (mSystem && local && file == mSystemFile) { removeLocal(); } else { if (local) mLocalState = StateModified; else mLocalState = StateTransient; mLocalFile = file; } } bool AutostartEntry::removeLocal() { if (!isLocal()) return false; if (mLocalState == StateTransient) mLocalState = StateNone; else mLocalState = StateDeleted; return !mSystem; } const XdgDesktopFile& AutostartEntry::file() const { return isLocal() ? mLocalFile : mSystemFile; } QString AutostartEntry::name() const { return QFileInfo(file().fileName()).fileName(); } void AutostartEntry::setEnabled(bool enable) { XdgDesktopFile f = file(); if (enable) f.removeEntry("Hidden"); else f.setValue("Hidden", true); setFile(f); } bool AutostartEntry::isEnabled() const { return !isEmpty() && !file().value("Hidden", false).toBool(); } bool AutostartEntry::commit() { if (mLocalState == StateDeleted) { mLocalState = StateNone; return QFile::remove(mLocalFile.fileName()); } else if (mLocalState == StateModified || mLocalState == StateTransient) { mLocalState = StateExists; return mLocalFile.save(XdgAutoStart::localPath(mLocalFile)); } return true; } liblxqt-0.10.0/lxqtautostartentry.h000066400000000000000000000076661261560636100174660ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2012 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTAUTOSTARTENTRY_H #define LXQTAUTOSTARTENTRY_H #include "lxqtglobals.h" #include namespace LXQt { /*! \brief The AutostartEntry class provides an interface for staging configuration of individual autostart items. All changes are made in memory until commit() is called. - "system" file refers to a read-only file in /etc/xdg/autostart (or a directory in $XDG_CONFIG_DIRS) - "local" file refers to the file in user's ~/.config/autostart (or in $XDG_CONFIG_HOME/autostart) When a "local" file has the same name as the "system" file, the local one overrides it. This class tries to ensure that the "local" file is deleted if it's identical to the "system" file. */ class LXQT_API AutostartEntry { public: /*! Constructs an AutostartEntry object for a specific entry. * \param name The name of the autostart desktop file (e.g. "lxqt-panel.desktop") */ AutostartEntry(const QString& name); //! \brief Default constructor AutostartEntry(); //! Destructor virtual ~AutostartEntry() { } //! Returns the "active" desktop file const XdgDesktopFile& file() const; //! Returns the name of the autostart entry (e.g. "lxqt-panel.desktop") QString name() const; /*! Sets to the specified desktop file. Use this to make modifications. * \param file The desktop file */ void setFile(const XdgDesktopFile& file); /*! Sets whether the item auto-starts * \param enable When false, sets the "Hidden" key which will prevent the item from starting */ void setEnabled(bool enable); //! Returns true if the item will auto-start bool isEnabled() const; /*! Returns true if the entry does not exist, and the object carries no useful information * and can be ignored/deleted. */ bool isEmpty() const { return !mSystem && mLocalState == StateNone; } /*! Write any changes to disk * \return true on success */ bool commit(); protected: //! Returns true if the user's "local" version exists bool isLocal() const { return mLocalState != StateNone && mLocalState != StateDeleted; } /*! Removes the user's "local" version of the file, reverting to system defaults * \return true if there is no "system" version left (i.e. the entry was entirely deleted) */ bool removeLocal(); //! \brief a read-only file in /etc/xdg/autostart (or a directory in $XDG_CONFIG_DIRS) XdgDesktopFile mSystemFile; //! \brief the file in user's ~/.config/autostart (or in $XDG_CONFIG_HOME/autostart) XdgDesktopFile mLocalFile; //! State of the "local" file enum ItemState { StateNone, //! does not exist at all StateDeleted, //! needs to be deleted from disk StateTransient, //! does not yet exist on disk StateModified, //! exists on disk and is modified StateExists //! exists on disk and unmodified } mLocalState; bool mSystem; //! true if the "system" file exists }; } // namespace LXQt #endif // LXQTAUTOSTARTENTRY_H liblxqt-0.10.0/lxqtglobals.h000066400000000000000000000022661261560636100157700ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2013 - LXQt team * Authors: * Hong Jen Yee (PCMan) * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef _LXQT_GLOBALS_H_ #define _LXQT_GLOBALS_H_ #include #ifdef COMPILE_LIBLXQT #define LXQT_API Q_DECL_EXPORT #else #define LXQT_API Q_DECL_IMPORT #endif #endif // _LXQT_GLOBALS_H_ liblxqt-0.10.0/lxqtgridlayout.cpp000066400000000000000000000412551261560636100170640ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2012 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtgridlayout.h" #include #include #include #include using namespace LXQt; namespace { class ItemMoveAnimation : public QVariantAnimation { public: static void animate(QLayoutItem * item, QRect const & geometry) { ItemMoveAnimation* animation = new ItemMoveAnimation(item); animation->setStartValue(item->geometry()); animation->setEndValue(geometry); animation->start(DeleteWhenStopped); } ItemMoveAnimation(QLayoutItem *item) : mItem(item) { setDuration(150); } void updateCurrentValue(const QVariant ¤t) { mItem->setGeometry(current.toRect()); } private: QLayoutItem* mItem; }; } class LXQt::GridLayoutPrivate { public: GridLayoutPrivate(); QList mItems; int mRowCount; int mColumnCount; GridLayout::Direction mDirection; bool mIsValid; QSize mCellSizeHint; QSize mCellMaxSize; int mVisibleCount; GridLayout::Stretch mStretch; bool mAnimate; void updateCache(); int rows() const; int cols() const; void setItemGeometry(QLayoutItem * item, QRect const & geometry); QSize mPrefCellMinSize; QSize mPrefCellMaxSize; QRect mOccupiedGeometry; }; /************************************************ ************************************************/ GridLayoutPrivate::GridLayoutPrivate() { mColumnCount = 0; mRowCount = 0; mDirection = GridLayout::LeftToRight; mIsValid = false; mVisibleCount = 0; mStretch = GridLayout::StretchHorizontal | GridLayout::StretchVertical; mAnimate = false; mPrefCellMinSize = QSize(0,0); mPrefCellMaxSize = QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); } /************************************************ ************************************************/ void GridLayoutPrivate::updateCache() { mCellSizeHint = QSize(0, 0); mCellMaxSize = QSize(0, 0); mVisibleCount = 0; for (int i=0; iwidget() || item->widget()->isHidden()) continue; int h = qBound(item->minimumSize().height(), item->sizeHint().height(), item->maximumSize().height()); int w = qBound(item->minimumSize().width(), item->sizeHint().width(), item->maximumSize().width()); mCellSizeHint.rheight() = qMax(mCellSizeHint.height(), h); mCellSizeHint.rwidth() = qMax(mCellSizeHint.width(), w); mCellMaxSize.rheight() = qMax(mCellMaxSize.height(), item->maximumSize().height()); mCellMaxSize.rwidth() = qMax(mCellMaxSize.width(), item->maximumSize().width()); mVisibleCount++; #if 0 qDebug() << "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"; qDebug() << "item.min" << item->minimumSize().width(); qDebug() << "item.sz " << item->sizeHint().width(); qDebug() << "item.max" << item->maximumSize().width(); qDebug() << "w h" << w << h; qDebug() << "wid.sizeHint" << item->widget()->sizeHint(); qDebug() << "mCellSizeHint:" << mCellSizeHint; qDebug() << "mCellMaxSize: " << mCellMaxSize; qDebug() << "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"; #endif } mCellSizeHint.rwidth() = qBound(mPrefCellMinSize.width(), mCellSizeHint.width(), mPrefCellMaxSize.width()); mCellSizeHint.rheight()= qBound(mPrefCellMinSize.height(), mCellSizeHint.height(), mPrefCellMaxSize.height()); mIsValid = !mCellSizeHint.isEmpty(); } /************************************************ ************************************************/ int GridLayoutPrivate::rows() const { if (mRowCount) return mRowCount; if (!mColumnCount) return 1; return ceil(mVisibleCount * 1.0 / mColumnCount); } /************************************************ ************************************************/ int GridLayoutPrivate::cols() const { if (mColumnCount) return mColumnCount; int rows = mRowCount; if (!rows) rows = 1; return ceil(mVisibleCount * 1.0 / rows); } void GridLayoutPrivate::setItemGeometry(QLayoutItem * item, QRect const & geometry) { mOccupiedGeometry |= geometry; if (mAnimate) { ItemMoveAnimation::animate(item, geometry); } else { item->setGeometry(geometry); } } /************************************************ ************************************************/ GridLayout::GridLayout(QWidget *parent): QLayout(parent), d_ptr(new GridLayoutPrivate()) { } /************************************************ ************************************************/ GridLayout::~GridLayout() { delete d_ptr; } /************************************************ ************************************************/ void GridLayout::addItem(QLayoutItem *item) { d_ptr->mItems.append(item); } /************************************************ ************************************************/ QLayoutItem *GridLayout::itemAt(int index) const { Q_D(const GridLayout); if (index < 0 || index >= d->mItems.count()) return 0; return d->mItems.at(index); } /************************************************ ************************************************/ QLayoutItem *GridLayout::takeAt(int index) { Q_D(GridLayout); if (index < 0 || index >= d->mItems.count()) return 0; QLayoutItem *item = d->mItems.takeAt(index); return item; } /************************************************ ************************************************/ int GridLayout::count() const { Q_D(const GridLayout); return d->mItems.count(); } /************************************************ ************************************************/ void GridLayout::invalidate() { Q_D(GridLayout); d->mIsValid = false; QLayout::invalidate(); } /************************************************ ************************************************/ int GridLayout::rowCount() const { Q_D(const GridLayout); return d->mRowCount; } /************************************************ ************************************************/ void GridLayout::setRowCount(int value) { Q_D(GridLayout); if (d->mRowCount != value) { d->mRowCount = value; invalidate(); } } /************************************************ ************************************************/ int GridLayout::columnCount() const { Q_D(const GridLayout); return d->mColumnCount; } /************************************************ ************************************************/ void GridLayout::setColumnCount(int value) { Q_D(GridLayout); if (d->mColumnCount != value) { d->mColumnCount = value; invalidate(); } } /************************************************ ************************************************/ GridLayout::Direction GridLayout::direction() const { Q_D(const GridLayout); return d->mDirection; } /************************************************ ************************************************/ void GridLayout::setDirection(GridLayout::Direction value) { Q_D(GridLayout); if (d->mDirection != value) { d->mDirection = value; invalidate(); } } /************************************************ ************************************************/ GridLayout::Stretch GridLayout::stretch() const { Q_D(const GridLayout); return d->mStretch; } /************************************************ ************************************************/ void GridLayout::setStretch(Stretch value) { Q_D(GridLayout); if (d->mStretch != value) { d->mStretch = value; invalidate(); } } /************************************************ ************************************************/ void GridLayout::moveItem(int from, int to, bool withAnimation /*= false*/) { Q_D(GridLayout); d->mAnimate = withAnimation; d->mItems.move(from, to); invalidate(); } /************************************************ ************************************************/ QSize GridLayout::cellMinimumSize() const { Q_D(const GridLayout); return d->mPrefCellMinSize; } /************************************************ ************************************************/ void GridLayout::setCellMinimumSize(QSize minSize) { Q_D(GridLayout); if (d->mPrefCellMinSize != minSize) { d->mPrefCellMinSize = minSize; invalidate(); } } /************************************************ ************************************************/ void GridLayout::setCellMinimumHeight(int value) { Q_D(GridLayout); if (d->mPrefCellMinSize.height() != value) { d->mPrefCellMinSize.setHeight(value); invalidate(); } } /************************************************ ************************************************/ void GridLayout::setCellMinimumWidth(int value) { Q_D(GridLayout); if (d->mPrefCellMinSize.width() != value) { d->mPrefCellMinSize.setWidth(value); invalidate(); } } /************************************************ ************************************************/ QSize GridLayout::cellMaximumSize() const { Q_D(const GridLayout); return d->mPrefCellMaxSize; } /************************************************ ************************************************/ void GridLayout::setCellMaximumSize(QSize maxSize) { Q_D(GridLayout); if (d->mPrefCellMaxSize != maxSize) { d->mPrefCellMaxSize = maxSize; invalidate(); } } /************************************************ ************************************************/ void GridLayout::setCellMaximumHeight(int value) { Q_D(GridLayout); if (d->mPrefCellMaxSize.height() != value) { d->mPrefCellMaxSize.setHeight(value); invalidate(); } } /************************************************ ************************************************/ void GridLayout::setCellMaximumWidth(int value) { Q_D(GridLayout); if (d->mPrefCellMaxSize.width() != value) { d->mPrefCellMaxSize.setWidth(value); invalidate(); } } /************************************************ ************************************************/ void GridLayout::setCellFixedSize(QSize size) { Q_D(GridLayout); if (d->mPrefCellMinSize != size || d->mPrefCellMaxSize != size) { d->mPrefCellMinSize = size; d->mPrefCellMaxSize = size; invalidate(); } } /************************************************ ************************************************/ void GridLayout::setCellFixedHeight(int value) { Q_D(GridLayout); if (d->mPrefCellMinSize.height() != value || d->mPrefCellMaxSize.height() != value) { d->mPrefCellMinSize.setHeight(value); d->mPrefCellMaxSize.setHeight(value); invalidate(); } } /************************************************ ************************************************/ void GridLayout::setCellFixedWidth(int value) { Q_D(GridLayout); if (d->mPrefCellMinSize.width() != value || d->mPrefCellMaxSize.width() != value) { d->mPrefCellMinSize.setWidth(value); d->mPrefCellMaxSize.setWidth(value); invalidate(); } } /************************************************ ************************************************/ QSize GridLayout::sizeHint() const { Q_D(const GridLayout); if (!d->mIsValid) const_cast(d)->updateCache(); return QSize(d->cols() * d->mCellSizeHint.width(), d->rows() * d->mCellSizeHint.height()); } /************************************************ ************************************************/ void GridLayout::setGeometry(const QRect &geometry) { Q_D(GridLayout); QLayout::setGeometry(geometry); d->mOccupiedGeometry.setTopLeft(geometry.topLeft()); d->mOccupiedGeometry.setBottomRight(geometry.topLeft()); if (!d->mIsValid) d->updateCache(); int y = geometry.top(); int x = geometry.left(); // For historical reasons QRect::right returns left() + width() - 1 // and QRect::bottom() returns top() + height() - 1; // So we use left() + height() and top() + height() // // http://qt-project.org/doc/qt-4.8/qrect.html const int maxX = geometry.left() + geometry.width(); const int maxY = geometry.top() + geometry.height(); const bool stretch_h = d->mStretch.testFlag(StretchHorizontal); const bool stretch_v = d->mStretch.testFlag(StretchVertical); const int cols = d->cols(); int itemWidth = 0; if (stretch_h && 0 < cols) itemWidth = qMin(geometry.width() / cols, d->mCellMaxSize.width()); else itemWidth = d->mCellSizeHint.width(); itemWidth = qBound(qMin(d->mPrefCellMinSize.width(), maxX), itemWidth, d->mPrefCellMaxSize.width()); const int widthRemain = stretch_h && 0 < itemWidth ? geometry.width() % itemWidth : 0; const int rows = d->rows(); int itemHeight = 0; if (stretch_v && 0 < rows) itemHeight = qMin(geometry.height() / rows, d->mCellMaxSize.height()); else itemHeight = d->mCellSizeHint.height(); itemHeight = qBound(qMin(d->mPrefCellMinSize.height(), maxY), itemHeight, d->mPrefCellMaxSize.height()); const int heightRemain = stretch_v && 0 < itemHeight ? geometry.height() % itemHeight : 0; #if 0 qDebug() << "** GridLayout::setGeometry *******************************"; qDebug() << "Geometry:" << geometry; qDebug() << "CellSize:" << d->mCellSizeHint; qDebug() << "Constraints:" << "min" << d->mPrefCellMinSize << "max" << d->mPrefCellMaxSize; qDebug() << "Count" << count(); qDebug() << "Cols:" << d->cols() << "(" << d->mColumnCount << ")"; qDebug() << "Rows:" << d->rows() << "(" << d->mRowCount << ")"; qDebug() << "Stretch:" << "h:" << (d->mStretch.testFlag(StretchHorizontal)) << " v:" << (d->mStretch.testFlag(StretchVertical)); qDebug() << "Item:" << "h:" << itemHeight << " w:" << itemWidth; #endif int remain_height = heightRemain; int remain_width = widthRemain; if (d->mDirection == LeftToRight) { int height = itemHeight + (0 < remain_height-- ? 1 : 0); foreach(QLayoutItem *item, d->mItems) { if (!item->widget() || item->widget()->isHidden()) continue; int width = itemWidth + (0 < remain_width-- ? 1 : 0); if (x + width > maxX) { x = geometry.left(); y += height; height = itemHeight + (0 < remain_height-- ? 1 : 0); remain_width = widthRemain; } d->setItemGeometry(item, QRect(x, y, width, height)); x += width; } } else { int width = itemWidth + (0 < remain_width-- ? 1 : 0); foreach(QLayoutItem *item, d->mItems) { if (!item->widget() || item->widget()->isHidden()) continue; int height = itemHeight + (0 < remain_height-- ? 1 : 0); if (y + height > maxY) { y = geometry.top(); x += width; width = itemWidth + (0 < remain_width-- ? 1 : 0); remain_height = heightRemain; } d->setItemGeometry(item, QRect(x, y, width, height)); y += height; } } d->mAnimate = false; } /************************************************ ************************************************/ QRect GridLayout::occupiedGeometry() const { return d_func()->mOccupiedGeometry; } liblxqt-0.10.0/lxqtgridlayout.h000066400000000000000000000141661261560636100165320ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2012 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTGRIDLAYOUT_H #define LXQTGRIDLAYOUT_H #include #include "lxqtglobals.h" #include namespace LXQt { class GridLayoutPrivate; /** The GridLayout class lays out widgets in a grid. **/ class LXQT_API GridLayout: public QLayout { Q_OBJECT public: /** This enum type is used to describe direction for this grid. **/ enum Direction { LeftToRight, ///< The items are first laid out horizontally and then vertically. TopToBottom ///< The items are first laid out vertically and then horizontally. }; /** This enum type is used to describe stretch. It contains one horizontal and one vertical flags that can be combined to produce the required effect. */ enum StretchFlag { NoStretch = 0, ///< No justifies items StretchHorizontal = 1, ///< Justifies items in the available horizontal space StretchVertical = 2 ///< Justifies items in the available vertical space }; Q_DECLARE_FLAGS(Stretch, StretchFlag) /** Constructs a new GridLayout with parent widget, parent. The layout has one row and zero column initially, and will expand to left when new items are inserted. **/ explicit GridLayout(QWidget *parent = 0); /** Destroys the grid layout. The layout's widgets aren't destroyed. **/ ~GridLayout(); void addItem(QLayoutItem *item); QLayoutItem *itemAt(int index) const; QLayoutItem *takeAt(int index); int count() const; void invalidate(); QSize sizeHint() const; void setGeometry(const QRect &geometry); QRect occupiedGeometry() const; /** Returns the number of rows in this grid. **/ int rowCount() const; /** Sets the number of rows in this grid. If value is 0, then rows count will calculated automatically when new items are inserted. In the most cases you should to set fixed number for one thing, or for rows, or for columns. \sa GridLayout::setColumnCount **/ void setRowCount(int value); /** Returns the number of columns in this grid. **/ int columnCount() const; /** Sets the number of columns in this grid. If value is 0, then columns count will calculated automatically when new items are inserted. In the most cases you should to set fixed number for one thing, or for rows, or for columns. \sa GridLayout::setRowCount **/ void setColumnCount(int value); /** Returns the alignment of this grid. \sa GridLayout::Direction **/ Direction direction() const; /** Sets the direction for this grid. \sa GridLayout::Direction **/ void setDirection(Direction value); /** Returns the stretch flags of this grid. \sa GridLayout::StretchFlag **/ Stretch stretch() const; /** Sets the stretch flags for this grid. \sa GridLayout::StretchFlag **/ void setStretch(Stretch value); /** Moves the item at index position \param from to index position \param to. If \param withAnimation set the reordering will be animated **/ void moveItem(int from, int to, bool withAnimation = false); /** Returns the cells' minimum size. By default, this property contains a size with zero width and height. **/ QSize cellMinimumSize() const; /** Sets the minimum size of all cells to minSize pixels. **/ void setCellMinimumSize(QSize minSize); /** Sets the minimum height of the cells to value without changing the width. Provided for convenience. **/ void setCellMinimumHeight(int value); /** Sets the minimum width of the cells to value without changing the heights. Provided for convenience. **/ void setCellMinimumWidth(int value); /** Returns the cells' maximum size. By default, this property contains a size with zero width and height. **/ QSize cellMaximumSize() const; /** Sets the maximum size of all cells to maxSize pixels. **/ void setCellMaximumSize(QSize maxSize); /** Sets the maximum height of the cells to value without changing the width. Provided for convenience. **/ void setCellMaximumHeight(int value); /** Sets the maximum width of the cells to value without changing the heights. Provided for convenience. **/ void setCellMaximumWidth(int value); /** Sets both the minimum and maximum sizes of the cells to size, thereby preventing it from ever growing or shrinking. **/ void setCellFixedSize(QSize size); /** Sets both the minimum and maximum height of the cells to value without changing the width. Provided for convenience. **/ void setCellFixedHeight(int value); /** Sets both the minimum and maximum width of the cells to value without changing the heights. Provided for convenience. **/ void setCellFixedWidth(int value); private: GridLayoutPrivate* const d_ptr; Q_DECLARE_PRIVATE(GridLayout) }; Q_DECLARE_OPERATORS_FOR_FLAGS(GridLayout::Stretch) } // namespace LXQt #endif // LXQTGRIDLAYOUT_H liblxqt-0.10.0/lxqthtmldelegate.cpp000066400000000000000000000067721261560636100173450ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://lxqt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * Paulo Lieuthier * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqthtmldelegate.h" #include #include using namespace LXQt; HtmlDelegate::HtmlDelegate(const QSize iconSize, QObject* parent) : QStyledItemDelegate(parent), mIconSize(iconSize) { } HtmlDelegate::~HtmlDelegate() { } /************************************************ ************************************************/ void HtmlDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const { if (!index.isValid()) return; QStyleOptionViewItemV4 options = option; initStyleOption(&options, index); painter->save(); QTextDocument doc; doc.setHtml(options.text); QIcon icon = options.icon; options.text = ""; options.icon = QIcon(); // icon size QSize iconSize = icon.actualSize(mIconSize); QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height()); // set doc size doc.setTextWidth(options.rect.width() - iconRect.right() - 8); options.widget->style()->drawControl(QStyle::CE_ItemViewItem, &options, painter); // paint icon painter->translate(options.rect.left(), options.rect.top()); icon.paint(painter, iconRect); // shift text right to make icon visible painter->translate(iconRect.right() + 8, 0); QRect clip(0, 0, options.rect.width() - iconRect.right() - 8, options.rect.height()); painter->setClipRect(clip); // set text color to red for selected item QAbstractTextDocumentLayout::PaintContext ctx; if (option.state & QStyle::State_Selected) { QPalette::ColorGroup colorGroup = (option.state & QStyle::State_Active) ? QPalette::Active : QPalette::Inactive; ctx.palette.setColor(QPalette::Text, option.palette.color(colorGroup, QPalette::HighlightedText)); } ctx.clip = clip; doc.documentLayout()->draw(painter, ctx); painter->restore(); } /************************************************ ************************************************/ QSize HtmlDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const { QStyleOptionViewItemV4 options = option; initStyleOption(&options, index); QSize iconSize = options.icon.actualSize(mIconSize); QRect iconRect = QRect(8, 8, iconSize.width(), iconSize.height()); QTextDocument doc; doc.setHtml(options.text); doc.setTextWidth(options.rect.width() - iconRect.right() - 8); return QSize(options.rect.width(), doc.size().height() + 8); } liblxqt-0.10.0/lxqthtmldelegate.h000066400000000000000000000031521261560636100167770ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://lxqt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * Paulo Lieuthier * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTHTMLDELEGATE_H #define LXQTHTMLDELEGATE_H #include #include #include "lxqtglobals.h" namespace LXQt { class LXQT_API HtmlDelegate : public QStyledItemDelegate { Q_OBJECT public: explicit HtmlDelegate(const QSize iconSize, QObject* parent = 0); virtual ~HtmlDelegate(); virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const; virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const; private: QSize mIconSize; }; } #endif liblxqt-0.10.0/lxqtnotification.cpp000066400000000000000000000122771261560636100173710ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2012 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtnotification.h" #include "lxqtnotification_p.h" #include #include using namespace LXQt; Notification::Notification(const QString& summary, QObject* parent) : QObject(parent), d_ptr(new NotificationPrivate(summary, this)) { } Notification::~Notification() { Q_D(Notification); delete d; } void Notification::update() { Q_D(Notification); d->update(); } void Notification::close() { Q_D(Notification); d->close(); } void Notification::setSummary(const QString& summary) { Q_D(Notification); d->mSummary = summary; } void Notification::setBody(const QString& body) { Q_D(Notification); d->mBody = body; } void Notification::setIcon(const QString& iconName) { Q_D(Notification); d->mIconName = iconName; } void Notification::setActions(const QStringList& actions, int defaultAction) { Q_D(Notification); d->setActions(actions, defaultAction); } void Notification::setTimeout(int timeout) { Q_D(Notification); d->mTimeout = timeout; } void Notification::setHint(const QString& hintName, const QVariant& value) { Q_D(Notification); d->mHints.insert(hintName, value); } void Notification::setUrgencyHint(Urgency urgency) { Q_D(Notification); d->mHints.insert("urgency", qvariant_cast(urgency)); } void Notification::clearHints() { Q_D(Notification); d->mHints.clear(); } QStringList Notification::getCapabilities() { Q_D(Notification); return d->mInterface->GetCapabilities().value(); } const Notification::ServerInfo Notification::serverInfo() { Q_D(Notification); return d->serverInfo(); } void Notification::notify(const QString& summary, const QString& body, const QString& iconName) { Notification notification(summary); notification.setBody(body); notification.setIcon(iconName); notification.update(); } NotificationPrivate::NotificationPrivate(const QString& summary, Notification* parent) : mId(0), mSummary(summary), mTimeout(-1), q_ptr(parent) { mInterface = new OrgFreedesktopNotificationsInterface("org.freedesktop.Notifications", "/org/freedesktop/Notifications", QDBusConnection::sessionBus(), this); connect(mInterface, SIGNAL(NotificationClosed(uint, uint)), this, SLOT(notificationClosed(uint,uint))); connect(mInterface, SIGNAL(ActionInvoked(uint,QString)), this, SLOT(handleAction(uint,QString))); } NotificationPrivate::~NotificationPrivate() { } void NotificationPrivate::update() { QDBusPendingReply reply = mInterface->Notify(qAppName(), mId, mIconName, mSummary, mBody, mActions, mHints, mTimeout); reply.waitForFinished(); if (!reply.isError()) { mId = reply.value(); } else { if (mHints.contains("urgency") && mHints.value("urgency").toInt() != Notification::UrgencyLow) QMessageBox::information(0, tr("Notifications Fallback"), mSummary + " \n\n " + mBody); } } void NotificationPrivate::setActions(QStringList actions, int defaultAction) { mActions.clear(); mDefaultAction = defaultAction; for (int ix = 0; ix < actions.size(); ix++) { if (ix == defaultAction) mActions.append("default"); else mActions.append(QString::number(ix)); mActions.append(actions[ix]); } } const Notification::ServerInfo NotificationPrivate::serverInfo() { Notification::ServerInfo info; info.name = mInterface->GetServerInformation(info.vendor, info.version, info.specVersion); return info; } void NotificationPrivate::handleAction(uint id, QString key) { if (id != mId) return; Q_Q(Notification); qDebug() << "action invoked:" << key; bool ok = true; int keyId; if (key == "default") keyId = mDefaultAction; else keyId = key.toInt(&ok); if (ok && key >= 0) emit q->actionActivated(keyId); } void NotificationPrivate::close() { mInterface->CloseNotification(mId); mId = 0; } void NotificationPrivate::notificationClosed(uint id, uint reason) { Q_Q(Notification); if (id != 0 && id == mId) { mId = 0; } emit q->notificationClosed(Notification::CloseReason(reason)); } liblxqt-0.10.0/lxqtnotification.h000066400000000000000000000133001261560636100170220ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2012 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTNOTIFICATION_H #define LXQTNOTIFICATION_H #include #include #include "lxqtglobals.h" namespace LXQt { class NotificationPrivate; /** * \brief Libnotify-style desktop notifications * * Spec: http://developer.gnome.org/notification-spec */ class LXQT_API Notification : public QObject { Q_OBJECT public: /*! * \brief Notification is an object that represents a single notification. * \param summary Summary text briefly describing the notification (required by the spec) */ Notification(const QString& summary = QString(), QObject* parent = 0); ~Notification(); enum CloseReason { //! The notification expired. Expired = 1, //! The notification was dismissed by the user. Dismissed = 2, //! The notification was closed by a call to close(). ForceClosed = 3, //! Undefined/reserved reasons. Unknown = 4 }; enum Urgency { UrgencyLow = 0, UrgencyNormal = 1, UrgencyCritical = 2 }; struct ServerInfo { //! The product name of the server. QString name; //! The vendor name. For example, "lxde-qt.org" QString vendor; //! The server's version number. QString version; //! The specification version the server is compliant with. QString specVersion; }; /*! * \brief Set the summary text briefly describing the notification */ void setSummary(const QString& summary); /*! * \brief Set the detailed body text */ void setBody(const QString& body); /*! * \brief Set an icon to display * \param iconName Name of the icon */ void setIcon(const QString& iconName); /*! * \brief Set action buttons for the notification. Whenever an action is * activated, the actionActivated() signal is emitted with the list * index of the activated action. * \param actions List of action button titles * \param defaultAction Index of the default action which gets activated * when the notification body is clicked * \sa actionActivated() */ void setActions(const QStringList& actions, int defaultAction = -1); /*! * \brief Set the timeout for the notification * \param timeout Milliseconds for timeout, or zero to never time out. */ void setTimeout(int timeout); /*! * \brief Set notification hint. * \note For description of Hints, see http://developer.gnome.org/notification-spec/#hints * \note For D-Bus-to-Qt mappings, see https://qt-project.org/doc/qdbustypesystem.html * \param hint Hint name * \param value The hint data */ void setHint(const QString& hint, const QVariant& value); /*! * \brief Set the "urgency" hint * \param urgency */ void setUrgencyHint(Urgency urgency); /*! * \brief Remove all hints that were set * \sa setHint() */ void clearHints(); /*! * \brief returns a list of optional capabilities supported by the server. * For the list, see http://developer.gnome.org/notification-spec/#commands */ QStringList getCapabilities(); /*! * \brief Returns information about the notifications server */ const ServerInfo serverInfo(); /*! * \brief Convenience function to create and display a notification for the most common * cases. For anything more complex, create a Notification object, set the * desired properties and call update(). (That's what this does internally.) * \sa Notification() */ static void notify(const QString& summary, const QString& body = QString(), const QString& iconName = QString() ); public slots: /*! * \brief Display the notification or update it if it's already visible */ void update(); /*! * \brief Causes a notification to be forcefully closed and removed from the user's view. * It can be used, for example, in the event that what the notification pertains to * is no longer relevant, or to cancel a notification with no expiration time. */ void close(); signals: /*! * \brief Emitted when the notification is closed * \param reason How notification was closed */ void notificationClosed(LXQt::Notification::CloseReason reason); /*! * \brief Emitted when an action button is activated. * \param actionNumber Index of the actions array for the activated button. * \sa setActions() */ void actionActivated(int actionNumber); private: Q_DECLARE_PRIVATE(Notification) NotificationPrivate* const d_ptr; }; } // namespace LXQt #endif // LXQTNOTIFICATION_H liblxqt-0.10.0/lxqtnotification_p.h000066400000000000000000000035201261560636100173440ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2012 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTNOTIFICATION_P_H #define LXQTNOTIFICATION_P_H #include "lxqtnotification.h" #include "notifications_interface.h" namespace LXQt { class NotificationPrivate : public QObject { Q_OBJECT public: NotificationPrivate(const QString& summary, Notification* parent); ~NotificationPrivate(); void update(); void close(); void setActions(QStringList actions, int defaultAction); const Notification::ServerInfo serverInfo(); public slots: void handleAction(uint id, QString key); void notificationClosed(uint, uint); private: OrgFreedesktopNotificationsInterface* mInterface; uint mId; QString mSummary; QString mBody; QString mIconName; QStringList mActions; QVariantMap mHints; int mDefaultAction; int mTimeout; Notification* const q_ptr; Q_DECLARE_PUBLIC(Notification) }; } // namespace LXQt #endif // LXQTNOTIFICATION_P_H liblxqt-0.10.0/lxqtplugininfo.cpp000066400000000000000000000115111261560636100170430ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtplugininfo.h" #include #include #include #include #include #include #include using namespace LXQt; /************************************************ ************************************************/ PluginInfo::PluginInfo(): XdgDesktopFile() { } /************************************************ ************************************************/ bool PluginInfo::load(const QString& fileName) { XdgDesktopFile::load(fileName); mId = QFileInfo(fileName).completeBaseName(); return isValid(); } /************************************************ ************************************************/ bool PluginInfo::isValid() const { return XdgDesktopFile::isValid(); } /************************************************ ************************************************/ QLibrary* PluginInfo::loadLibrary(const QString& libDir) const { QString baseName, path; QFileInfo fi = QFileInfo(fileName()); path = fi.canonicalPath(); baseName = value("X-LXQt-Library", fi.completeBaseName()).toString(); QString soPath = QDir(libDir).filePath(QString("lib%2.so").arg(baseName)); QLibrary* library = new QLibrary(soPath); if (!library->load()) { qWarning() << QString("Can't load plugin lib \"%1\"").arg(soPath) << library->errorString(); delete library; return 0; } QString locale = QLocale::system().name(); QTranslator* translator = new QTranslator(library); translator->load(QString("%1/%2/%2_%3.qm").arg(path, baseName, locale)); qApp->installTranslator(translator); return library; } /************************************************ ************************************************/ PluginInfoList PluginInfo::search(const QStringList& desktopFilesDirs, const QString& serviceType, const QString& nameFilter) { QList res; QSet processed; foreach (QString desktopFilesDir, desktopFilesDirs) { QDir dir(desktopFilesDir); QFileInfoList files = dir.entryInfoList(QStringList(nameFilter), QDir::Files | QDir::Readable); foreach (QFileInfo file, files) { if (processed.contains(file.fileName())) continue; processed << file.fileName(); PluginInfo item; item.load(file.canonicalFilePath()); if (item.isValid() && item.serviceType() == serviceType) res.append(item); } } return res; } /************************************************ ************************************************/ PluginInfoList PluginInfo::search(const QString& desktopFilesDir, const QString& serviceType, const QString& nameFilter) { return search(QStringList(desktopFilesDir), serviceType, nameFilter); } /************************************************ ************************************************/ QDebug operator<<(QDebug dbg, const LXQt::PluginInfo &pluginInfo) { dbg.nospace() << QString("%1").arg(pluginInfo.id()); return dbg.space(); } /************************************************ ************************************************/ QDebug operator<<(QDebug dbg, const LXQt::PluginInfo * const pluginInfo) { return operator<<(dbg, *pluginInfo); } /************************************************ ************************************************/ QDebug operator<<(QDebug dbg, const PluginInfoList& list) { dbg.nospace() << '('; for (int i=0; i * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTPLUGININFO_H #define LXQTPLUGININFO_H #include #include #include #include #include #include "lxqtglobals.h" #include class QLibrary; namespace LXQt { /*! Every plugin needs a .desktop file that describes it. The basename of this file must be same as the basename of the plugin library. lxqtpanel_clock2.desktop file [Desktop Entry] Type=Service ServiceTypes=LXQtPanel/Plugin Name=Clock Comment=Clock and calendar PluginInfo class gives the interface for reading the values from the plugin .desktop file. This is a pure virtual class, you must implement libraryDir(), translationDir(), and instance() methods. */ class LXQT_API PluginInfo: public XdgDesktopFile { public: /// Constructs a PluginInfo object for accessing the info stored in the .desktop file. explicit PluginInfo(); //! Reimplemented from XdgDesktopFile. virtual bool load(const QString& fileName); //! Reimplemented from XdgDesktopFile. //PluginInfo& operator=(const PluginInfo& other); //! Returns identification string of this plugin, identified plugin type. Now id is part of the filename. QString id() const { return mId; } //! This function is provided for convenience. It's equivalent to calling value("ServiceTypes").toString(). QString serviceType() const { return value("ServiceTypes").toString(); } //! Reimplemented from XdgDesktopFile. virtual bool isValid() const; /*! Loads the library and returns QLibrary object if the library was loaded successfully; otherwise returns 0. @parm libDir directory where placed the plugin .so file. */ QLibrary* loadLibrary(const QString& libDir) const; /*! Returns a list of PluginInfo objects for the matched files in the directories. @param desktopFilesDirs - scanned directories names. @param serviceType - type of the plugin, for example "LXQtPanel/Plugin". @param nameFilter - wildcard filter that understands * and ? wildcards. If the same filename is located under multiple directories only the first file should be used. */ static QList search(const QStringList& desktopFilesDirs, const QString& serviceType, const QString& nameFilter="*"); /// This function is provided for convenience. It's equivalent to new calling search(QString(desktopFilesDir), serviceType, nameFilter) static QList search(const QString& desktopFilesDir, const QString& serviceType, const QString& nameFilter="*"); private: QString mId; }; typedef QList PluginInfoList; } // namespace LXQt QDebug operator<<(QDebug dbg, const LXQt::PluginInfo& pi); QDebug operator<<(QDebug dbg, const LXQt::PluginInfo* const pi); QDebug operator<<(QDebug dbg, const LXQt::PluginInfoList& list); QDebug operator<<(QDebug dbg, const LXQt::PluginInfoList* const pluginInfoList); #endif // LXQTPLUGININFO_H liblxqt-0.10.0/lxqtpower/000077500000000000000000000000001261560636100153225ustar00rootroot00000000000000liblxqt-0.10.0/lxqtpower/lxqtpower.cpp000066400000000000000000000051441261560636100200770ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtpower.h" #include "lxqtpowerproviders.h" #include #include using namespace LXQt; Power::Power(QObject *parent) : QObject(parent) { mProviders.append(new CustomProvider(this)); mProviders.append(new SystemdProvider(this)); mProviders.append(new UPowerProvider(this)); mProviders.append(new ConsoleKitProvider(this)); mProviders.append(new LxSessionProvider(this)); mProviders.append(new LXQtProvider(this)); } Power::~Power() { } bool Power::canAction(Power::Action action) const { foreach(PowerProvider* provider, mProviders) { if (provider->canAction(action)) return true; } return false; } bool Power::doAction(Power::Action action) { foreach(PowerProvider* provider, mProviders) { if (provider->canAction(action) && provider->doAction(action) ) { return true; } } return false; } bool Power::canLogout() const { return canAction(PowerLogout); } bool Power::canHibernate() const { return canAction(PowerHibernate); } bool Power::canReboot() const { return canAction(PowerReboot); } bool Power::canShutdown() const { return canAction(PowerShutdown); } bool Power::canSuspend() const { return canAction(PowerSuspend); } bool Power::logout() { return doAction(PowerLogout); } bool Power::hibernate() { return doAction(PowerHibernate); } bool Power::reboot() { return doAction(PowerReboot); } bool Power::shutdown() { return doAction(PowerShutdown); } bool Power::suspend() { return doAction(PowerSuspend); } liblxqt-0.10.0/lxqtpower/lxqtpower.h000066400000000000000000000066631261560636100175530ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTPOWER_H #define LXQTPOWER_H #include #include #include "lxqtglobals.h" namespace LXQt { class PowerProvider; /*! Power class provides an interface to control system-wide power and session management. It allows logout from the user session, hibernate, reboot, shutdown and suspend computer. This is a wrapper class. All the real work is done in the PowerWorker classes. */ class LXQT_API Power : public QObject { Q_OBJECT public: /// Power can perform next actions: enum Action{ PowerLogout, /// Close the current user session. PowerHibernate, /// Hibernate the comupter PowerReboot, /// Reboot the computer PowerShutdown, /// Shutdown the computer PowerSuspend /// Suspend the computer }; /// Constructs a Power with parent. explicit Power(QObject *parent = 0); /// Destroys the object. virtual ~Power(); /// Returns true if the Power can perform action. bool canAction(Action action) const; //! This function is provided for convenience. It's equivalent to calling canAction(PowerLogout). bool canLogout() const; //! This function is provided for convenience. It's equivalent to calling canAction(PowerHibernate). bool canHibernate() const; //! This function is provided for convenience. It's equivalent to calling canAction(PowerReboot). bool canReboot() const; //! This function is provided for convenience. It's equivalent to calling canAction(PowerShutdown). bool canShutdown() const; //! This function is provided for convenience. It's equivalent to calling canAction(PowerSuspend). bool canSuspend() const; public slots: /// Performs the requested action. bool doAction(Action action); //! This function is provided for convenience. It's equivalent to calling doAction(PowerLogout). bool logout(); //! This function is provided for convenience. It's equivalent to calling doAction(PowerHibernate). bool hibernate(); //! This function is provided for convenience. It's equivalent to calling doAction(PowerReboot). bool reboot(); //! This function is provided for convenience. It's equivalent to calling doAction(PowerShutdown). bool shutdown(); //! This function is provided for convenience. It's equivalent to calling doAction(PowerSuspend). bool suspend(); private: QList mProviders; }; } // namespace LXQt #endif // LXQTPOWER_H liblxqt-0.10.0/lxqtpower/lxqtpowerproviders.cpp000066400000000000000000000414471261560636100220430ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtpowerproviders.h" #include #include #include #include "lxqtnotification.h" #include // for kill() #define UPOWER_SERVICE "org.freedesktop.UPower" #define UPOWER_PATH "/org/freedesktop/UPower" #define UPOWER_INTERFACE UPOWER_SERVICE #define CONSOLEKIT_SERVICE "org.freedesktop.ConsoleKit" #define CONSOLEKIT_PATH "/org/freedesktop/ConsoleKit/Manager" #define CONSOLEKIT_INTERFACE "org.freedesktop.ConsoleKit.Manager" #define SYSTEMD_SERVICE "org.freedesktop.login1" #define SYSTEMD_PATH "/org/freedesktop/login1" #define SYSTEMD_INTERFACE "org.freedesktop.login1.Manager" #define LXQT_SERVICE "org.lxqt.session" #define LXQT_PATH "/LXQtSession" #define LXQT_INTERFACE "org.lxqt.session" #define LXSESSION_SERVICE "org.lxde.SessionManager" #define LXSESSION_PATH "/org/lxde/SessionManager" #define LXSESSION_INTERFACE "org.lxde.SessionManager" #define PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties" using namespace LXQt; /************************************************ Helper func ************************************************/ void printDBusMsg(const QDBusMessage &msg) { qWarning() << "** Dbus error **************************"; qWarning() << "Error name " << msg.errorName(); qWarning() << "Error msg " << msg.errorMessage(); qWarning() << "****************************************"; } /************************************************ Helper func ************************************************/ static bool dbusCall(const QString &service, const QString &path, const QString &interface, const QDBusConnection &connection, const QString & method, PowerProvider::DbusErrorCheck errorCheck = PowerProvider::CheckDBUS ) { QDBusInterface dbus(service, path, interface, connection); if (!dbus.isValid()) { qWarning() << "dbusCall: QDBusInterface is invalid" << service << path << interface << method; if (errorCheck == PowerProvider::CheckDBUS) { Notification::notify( QObject::tr("Power Manager Error"), QObject::tr("QDBusInterface is invalid")+ "\n\n" + service + " " + path + " " + interface + " " + method, "lxqt-logo.png"); } return false; } QDBusMessage msg = dbus.call(method); if (!msg.errorName().isEmpty()) { printDBusMsg(msg); if (errorCheck == PowerProvider::CheckDBUS) { Notification::notify( QObject::tr("Power Manager Error (D-BUS call)"), msg.errorName() + "\n\n" + msg.errorMessage(), "lxqt-logo.png"); } } // If the method no returns value, we believe that it was successful. return msg.arguments().isEmpty() || msg.arguments().first().isNull() || msg.arguments().first().toBool(); } /************************************************ Helper func Just like dbusCall(), except that systemd returns a string instead of a bool, and it takes an "interactivity boolean" as an argument. ************************************************/ static bool dbusCallSystemd(const QString &service, const QString &path, const QString &interface, const QDBusConnection &connection, const QString &method, bool needBoolArg, PowerProvider::DbusErrorCheck errorCheck = PowerProvider::CheckDBUS ) { QDBusInterface dbus(service, path, interface, connection); if (!dbus.isValid()) { qWarning() << "dbusCall: QDBusInterface is invalid" << service << path << interface << method; if (errorCheck == PowerProvider::CheckDBUS) { Notification::notify( QObject::tr("Power Manager Error"), QObject::tr("QDBusInterface is invalid")+ "\n\n" + service + " " + path + " " + interface + " " + method, "lxqt-logo.png"); } return false; } QDBusMessage msg = dbus.call(method, needBoolArg ? QVariant(true) : QVariant()); if (!msg.errorName().isEmpty()) { printDBusMsg(msg); if (errorCheck == PowerProvider::CheckDBUS) { Notification::notify( QObject::tr("Power Manager Error (D-BUS call)"), msg.errorName() + "\n\n" + msg.errorMessage(), "lxqt-logo.png"); } } // If the method no returns value, we believe that it was successful. if (msg.arguments().isEmpty() || msg.arguments().first().isNull()) return true; QString response = msg.arguments().first().toString(); qDebug() << "systemd:" << method << "=" << response; return response == "yes" || response == "challenge"; } /************************************************ Helper func ************************************************/ bool dbusGetProperty(const QString &service, const QString &path, const QString &interface, const QDBusConnection &connection, const QString & property ) { QDBusInterface dbus(service, path, interface, connection); if (!dbus.isValid()) { qWarning() << "dbusGetProperty: QDBusInterface is invalid" << service << path << interface << property; // Notification::notify(QObject::tr("LXQt Power Manager"), // "lxqt-logo.png", // QObject::tr("Power Manager Error"), // QObject::tr("QDBusInterface is invalid")+ "\n\n" + service +" " + path +" " + interface +" " + property); return false; } QDBusMessage msg = dbus.call("Get", dbus.interface(), property); if (!msg.errorName().isEmpty()) { printDBusMsg(msg); // Notification::notify(QObject::tr("LXQt Power Manager"), // "lxqt-logo.png", // QObject::tr("Power Manager Error (Get Property)"), // msg.errorName() + "\n\n" + msg.errorMessage()); } return !msg.arguments().isEmpty() && msg.arguments().first().value().variant().toBool(); } /************************************************ PowerProvider ************************************************/ PowerProvider::PowerProvider(QObject *parent): QObject(parent) { } PowerProvider::~PowerProvider() { } /************************************************ UPowerProvider ************************************************/ UPowerProvider::UPowerProvider(QObject *parent): PowerProvider(parent) { } UPowerProvider::~UPowerProvider() { } bool UPowerProvider::canAction(Power::Action action) const { QString command; QString property; switch (action) { case Power::PowerHibernate: property = "CanHibernate"; command = "HibernateAllowed"; break; case Power::PowerSuspend: property = "CanSuspend"; command = "SuspendAllowed"; break; default: return false; } return dbusGetProperty( // Whether the system is able to hibernate. UPOWER_SERVICE, UPOWER_PATH, PROPERTIES_INTERFACE, QDBusConnection::systemBus(), property ) && dbusCall( // Check if the caller has (or can get) the PolicyKit privilege to call command. UPOWER_SERVICE, UPOWER_PATH, UPOWER_INTERFACE, QDBusConnection::systemBus(), command, // canAction should be always silent because it can freeze // g_main_context_iteration Qt event loop in QMessageBox // on panel startup if there is no DBUS running. PowerProvider::DontCheckDBUS ); } bool UPowerProvider::doAction(Power::Action action) { QString command; switch (action) { case Power::PowerHibernate: command = "Hibernate"; break; case Power::PowerSuspend: command = "Suspend"; break; default: return false; } return dbusCall(UPOWER_SERVICE, UPOWER_PATH, UPOWER_INTERFACE, QDBusConnection::systemBus(), command ); } /************************************************ ConsoleKitProvider ************************************************/ ConsoleKitProvider::ConsoleKitProvider(QObject *parent): PowerProvider(parent) { } ConsoleKitProvider::~ConsoleKitProvider() { } bool ConsoleKitProvider::canAction(Power::Action action) const { QString command; switch (action) { case Power::PowerReboot: command = "CanRestart"; break; case Power::PowerShutdown: command = "CanStop"; break; default: return false; } return dbusCall(CONSOLEKIT_SERVICE, CONSOLEKIT_PATH, CONSOLEKIT_INTERFACE, QDBusConnection::systemBus(), command, // canAction should be always silent because it can freeze // g_main_context_iteration Qt event loop in QMessageBox // on panel startup if there is no DBUS running. PowerProvider::DontCheckDBUS ); } bool ConsoleKitProvider::doAction(Power::Action action) { QString command; switch (action) { case Power::PowerReboot: command = "Restart"; break; case Power::PowerShutdown: command = "Stop"; break; default: return false; } return dbusCall(CONSOLEKIT_SERVICE, CONSOLEKIT_PATH, CONSOLEKIT_INTERFACE, QDBusConnection::systemBus(), command ); } /************************************************ SystemdProvider http://www.freedesktop.org/wiki/Software/systemd/logind ************************************************/ SystemdProvider::SystemdProvider(QObject *parent): PowerProvider(parent) { } SystemdProvider::~SystemdProvider() { } bool SystemdProvider::canAction(Power::Action action) const { QString command; switch (action) { case Power::PowerReboot: command = "CanReboot"; break; case Power::PowerShutdown: command = "CanPowerOff"; break; case Power::PowerSuspend: command = "CanSuspend"; break; case Power::PowerHibernate: command = "CanHibernate"; break; default: return false; } return dbusCallSystemd(SYSTEMD_SERVICE, SYSTEMD_PATH, SYSTEMD_INTERFACE, QDBusConnection::systemBus(), command, false, // canAction should be always silent because it can freeze // g_main_context_iteration Qt event loop in QMessageBox // on panel startup if there is no DBUS running. PowerProvider::DontCheckDBUS ); } bool SystemdProvider::doAction(Power::Action action) { QString command; switch (action) { case Power::PowerReboot: command = "Reboot"; break; case Power::PowerShutdown: command = "PowerOff"; break; case Power::PowerSuspend: command = "Suspend"; break; case Power::PowerHibernate: command = "Hibernate"; break; default: return false; } return dbusCallSystemd(SYSTEMD_SERVICE, SYSTEMD_PATH, SYSTEMD_INTERFACE, QDBusConnection::systemBus(), command, true ); } /************************************************ LXQtProvider ************************************************/ LXQtProvider::LXQtProvider(QObject *parent): PowerProvider(parent) { } LXQtProvider::~LXQtProvider() { } bool LXQtProvider::canAction(Power::Action action) const { switch (action) { case Power::PowerLogout: // there can be case when razo-session does not run return dbusCall(LXQT_SERVICE, LXQT_PATH, LXQT_SERVICE, QDBusConnection::sessionBus(), "canLogout", PowerProvider::DontCheckDBUS); default: return false; } } bool LXQtProvider::doAction(Power::Action action) { QString command; switch (action) { case Power::PowerLogout: command = "logout"; break; default: return false; } return dbusCall(LXQT_SERVICE, LXQT_PATH, LXQT_INTERFACE, QDBusConnection::sessionBus(), command ); } /************************************************ LxSessionProvider ************************************************/ LxSessionProvider::LxSessionProvider(QObject *parent): PowerProvider(parent) { pid = (Q_PID)qgetenv("_LXSESSION_PID").toLong(); } LxSessionProvider::~LxSessionProvider() { } bool LxSessionProvider::canAction(Power::Action action) const { switch (action) { case Power::PowerLogout: return pid != 0; default: return false; } } bool LxSessionProvider::doAction(Power::Action action) { switch (action) { case Power::PowerLogout: if(pid) ::kill(pid, SIGTERM); break; default: return false; } return true; } /************************************************ HalProvider ************************************************/ HalProvider::HalProvider(QObject *parent): PowerProvider(parent) { } HalProvider::~HalProvider() { } bool HalProvider::canAction(Power::Action action) const { return false; } bool HalProvider::doAction(Power::Action action) { return false; } /************************************************ CustomProvider ************************************************/ CustomProvider::CustomProvider(QObject *parent): PowerProvider(parent), mSettings("power") { } CustomProvider::~CustomProvider() { } bool CustomProvider::canAction(Power::Action action) const { switch (action) { case Power::PowerShutdown: return mSettings.contains("shutdownCommand"); case Power::PowerReboot: return mSettings.contains("rebootCommand"); case Power::PowerHibernate: return mSettings.contains("hibernateCommand"); case Power::PowerSuspend: return mSettings.contains("suspendCommand"); case Power::PowerLogout: return mSettings.contains("logoutCommand"); default: return false; } } bool CustomProvider::doAction(Power::Action action) { QString command; switch(action) { case Power::PowerShutdown: command = mSettings.value("shutdownCommand").toString(); break; case Power::PowerReboot: command = mSettings.value("rebootCommand").toString(); break; case Power::PowerHibernate: command = mSettings.value("hibernateCommand").toString(); break; case Power::PowerSuspend: command = mSettings.value("suspendCommand").toString(); break; case Power::PowerLogout: command = mSettings.value("logoutCommand").toString(); break; default: return false; } return QProcess::startDetached(command); } liblxqt-0.10.0/lxqtpower/lxqtpowerproviders.h000066400000000000000000000070141261560636100215000ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTPOWER_PROVIDERS_H #define LXQTPOWER_PROVIDERS_H #include #include #include "lxqtpower.h" #include // for PID_T namespace LXQt { class PowerProvider: public QObject { Q_OBJECT public: enum DbusErrorCheck { CheckDBUS, DontCheckDBUS }; explicit PowerProvider(QObject *parent = 0); virtual ~PowerProvider(); /*! Returns true if the Power can perform action. This is a pure virtual function, and must be reimplemented in subclasses. */ virtual bool canAction(Power::Action action) const = 0 ; public slots: /*! Performs the requested action. This is a pure virtual function, and must be reimplemented in subclasses. */ virtual bool doAction(Power::Action action) = 0; }; class UPowerProvider: public PowerProvider { Q_OBJECT public: UPowerProvider(QObject *parent = 0); ~UPowerProvider(); bool canAction(Power::Action action) const; public slots: bool doAction(Power::Action action); }; class ConsoleKitProvider: public PowerProvider { Q_OBJECT public: ConsoleKitProvider(QObject *parent = 0); ~ConsoleKitProvider(); bool canAction(Power::Action action) const; public slots: bool doAction(Power::Action action); }; class SystemdProvider: public PowerProvider { Q_OBJECT public: SystemdProvider(QObject *parent = 0); ~SystemdProvider(); bool canAction(Power::Action action) const; public slots: bool doAction(Power::Action action); }; class LXQtProvider: public PowerProvider { Q_OBJECT public: LXQtProvider(QObject *parent = 0); ~LXQtProvider(); bool canAction(Power::Action action) const; public slots: bool doAction(Power::Action action); }; class LxSessionProvider: public PowerProvider { Q_OBJECT public: LxSessionProvider(QObject *parent = 0); ~LxSessionProvider(); bool canAction(Power::Action action) const; public slots: bool doAction(Power::Action action); private: Q_PID pid; }; class HalProvider: public PowerProvider { Q_OBJECT public: HalProvider(QObject *parent = 0); ~HalProvider(); bool canAction(Power::Action action) const; public slots: bool doAction(Power::Action action); }; class CustomProvider: public PowerProvider { Q_OBJECT public: CustomProvider(QObject *parent = 0); ~CustomProvider(); bool canAction(Power::Action action) const; public slots: bool doAction(Power::Action action); private: Settings mSettings; }; } // namespace LXQt #endif // LXQTPOWER_PROVIDERS_H liblxqt-0.10.0/lxqtpowermanager.cpp000066400000000000000000000137161261560636100173710ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtpowermanager.h" #include "lxqtpower/lxqtpower.h" #include #include #include #include #include #include "lxqttranslator.h" #include "lxqtglobals.h" #include "lxqtsettings.h" #include namespace LXQt { class LXQT_API MessageBox: public QMessageBox { public: explicit MessageBox(QWidget *parent = 0): QMessageBox(parent) {} static QWidget *parentWidget() { QWidgetList widgets = QApplication::topLevelWidgets(); if (widgets.count()) return widgets.at(0); else return 0; } static bool question(const QString& title, const QString& text) { MessageBox msgBox(parentWidget()); msgBox.setWindowTitle(title); msgBox.setText(text); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); return (msgBox.exec() == QMessageBox::Yes); } static void warning(const QString& title, const QString& text) { QMessageBox::warning(parentWidget(), tr("LXQt Power Manager Error"), tr("Hibernate failed.")); } protected: virtual void resizeEvent(QResizeEvent* event) { QRect screen = QApplication::desktop()->screenGeometry(); move((screen.width() - this->width()) / 2, (screen.height() - this->height()) / 2); } }; PowerManager::PowerManager(QObject * parent, bool skipWarning) : QObject(parent), m_skipWarning(skipWarning) { m_power = new Power(this); // connect(m_power, SIGNAL(suspendFail()), this, SLOT(suspendFailed())); // connect(m_power, SIGNAL(hibernateFail()), this, SLOT(hibernateFailed())); // connect(m_power, SIGNAL(monitoring(const QString &)), // this, SLOT(monitoring(const QString&))); QString sessionConfig(getenv("LXQT_SESSION_CONFIG")); Settings settings(sessionConfig.isEmpty() ? "session" : sessionConfig); m_skipWarning = settings.value("leave_confirmation").toBool() ? false : true; } PowerManager::~PowerManager() { // delete m_power; } QList PowerManager::availableActions() { QList ret; QAction * act; // TODO/FIXME: icons if (m_power->canHibernate()) { act = new QAction(XdgIcon::fromTheme("system-suspend-hibernate"), tr("Hibernate"), this); connect(act, SIGNAL(triggered()), this, SLOT(hibernate())); ret.append(act); } if (m_power->canSuspend()) { act = new QAction(XdgIcon::fromTheme("system-suspend"), tr("Suspend"), this); connect(act, SIGNAL(triggered()), this, SLOT(suspend())); ret.append(act); } if (m_power->canReboot()) { act = new QAction(XdgIcon::fromTheme("system-reboot"), tr("Reboot"), this); connect(act, SIGNAL(triggered()), this, SLOT(reboot())); ret.append(act); } if (m_power->canShutdown()) { act = new QAction(XdgIcon::fromTheme("system-shutdown"), tr("Shutdown"), this); connect(act, SIGNAL(triggered()), this, SLOT(shutdown())); ret.append(act); } if (m_power->canLogout()) { act = new QAction(XdgIcon::fromTheme("system-log-out"), tr("Logout"), this); connect(act, SIGNAL(triggered()), this, SLOT(logout())); ret.append(act); } return ret; } void PowerManager::suspend() { if (m_skipWarning || MessageBox::question(tr("LXQt Session Suspend"), tr("Do you want to really suspend your computer?

Suspends the computer into a low power state. System state is not preserved if the power is lost."))) { m_power->suspend(); } } void PowerManager::hibernate() { if (m_skipWarning || MessageBox::question(tr("LXQt Session Hibernate"), tr("Do you want to really hibernate your computer?

Hibernates the computer into a low power state. System state is preserved if the power is lost."))) { m_power->hibernate(); } } void PowerManager::reboot() { if (m_skipWarning || MessageBox::question(tr("LXQt Session Reboot"), tr("Do you want to really restart your computer? All unsaved work will be lost..."))) { m_power->reboot(); } } void PowerManager::shutdown() { if (m_skipWarning || MessageBox::question(tr("LXQt Session Shutdown"), tr("Do you want to really switch off your computer? All unsaved work will be lost..."))) { m_power->shutdown(); } } void PowerManager::logout() { if (m_skipWarning || MessageBox::question(tr("LXQt Session Logout"), tr("Do you want to really logout? All unsaved work will be lost..."))) { m_power->logout(); } } void PowerManager::hibernateFailed() { MessageBox::warning(tr("LXQt Power Manager Error"), tr("Hibernate failed.")); } void PowerManager::suspendFailed() { MessageBox::warning(tr("LXQt Power Manager Error"), tr("Suspend failed.")); } } // namespace LXQt liblxqt-0.10.0/lxqtpowermanager.h000066400000000000000000000034231261560636100170300ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTPOWERMANAGER_H #define LXQTPOWERMANAGER_H #include #include #include "lxqtglobals.h" namespace LXQt { class Power; /*! QAction centric menu aware wrapper around lxqtpower */ class LXQT_API PowerManager : public QObject { Q_OBJECT public: PowerManager(QObject * parent, bool skipWarning = false); ~PowerManager(); QList availableActions(); public slots: // power management void suspend(); void hibernate(); void reboot(); void shutdown(); // lxqt session void logout(); public: bool skipWarning() const { return m_skipWarning; } private: LXQt::Power * m_power; bool m_skipWarning; private slots: void hibernateFailed(); void suspendFailed(); }; } // namespace LXQt #endif // LXQTPOWERMANAGER_H liblxqt-0.10.0/lxqtprogramfinder.cpp000066400000000000000000000040631261560636100175340ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2013 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtprogramfinder.h" #include #include #include using namespace LXQt; LXQT_API bool ProgramFinder::programExists(const QString& command) { QString program = programName(command); if (program[0] == QChar('/')) { QFileInfo fi(program); return fi.isExecutable() && fi.isFile(); } QString path = qgetenv("PATH"); foreach (const QString& dirName, path.split(":", QString::SkipEmptyParts)) { QFileInfo fi(QDir(dirName), program); if (fi.isExecutable() && fi.isFile()) return true; } return false; } LXQT_API QStringList ProgramFinder::findPrograms(const QStringList& commands) { QStringList availPrograms; foreach (const QString& program, commands) if (programExists(program)) availPrograms.append(program); return availPrograms; } LXQT_API QString ProgramFinder::programName(const QString& command) { wordexp_t we; if (wordexp(command.toLocal8Bit().constData(), &we, WRDE_NOCMD) == 0) if (we.we_wordc > 0) return QString(we.we_wordv[0]); return QString(); } liblxqt-0.10.0/lxqtprogramfinder.h000066400000000000000000000035411261560636100172010ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright (C) 2013 Alec Moskvin * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTPROGRAMFINDER_H #define LXQTPROGRAMFINDER_H #include #include "lxqtglobals.h" namespace LXQt { namespace ProgramFinder { /*! * \brief programExists Checks if the program needed to execute the given * command is installed * \param command * \return True if the program exists */ LXQT_API bool programExists(const QString& command); /*! * \brief findPrograms Filters a list of commands (with arguments) based on * which programs are installed * \param commands Commands to check * \return List of commands which are installed */ LXQT_API QStringList findPrograms(const QStringList& commands); /*! * \brief programName Returns the program name given a command * \param command * \return */ LXQT_API QString programName(const QString& command); } } // namespace LXQt #endif // LXQTPROGRAMFINDER_H liblxqt-0.10.0/lxqtrotatedwidget.cpp000066400000000000000000000163561261560636100175530ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2013 Razor team * Authors: * Kuzma Shapran * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtrotatedwidget.h" #include #include #include #include #ifndef QT_NO_WHEELEVENT #include #endif #include using namespace LXQt; RotatedWidget::RotatedWidget(QWidget &content, QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) , mContent(&content) , mOrigin(Qt::TopLeftCorner) , mTransferMousePressEvent(false) , mTransferMouseReleaseEvent(false) , mTransferMouseDoubleClickEvent(false) , mTransferMouseMoveEvent(false) #ifndef QT_NO_WHEELEVENT , mTransferWheelEvent(false) #endif , mTransferEnterEvent(false) , mTransferLeaveEvent(false) { mContent->setParent(this); } Qt::Corner RotatedWidget::origin() const { return mOrigin; } void RotatedWidget::setOrigin(Qt::Corner newOrigin) { if (mOrigin != newOrigin) { if (mOrigin == Qt::TopLeftCorner) mContent->hide(); mOrigin = newOrigin; adjustContentSize(); update(); if (mOrigin == Qt::TopLeftCorner) mContent->show(); } } QWidget * RotatedWidget::content() const { return mContent; } void RotatedWidget::adjustContentSize() { mContent->adjustSize(); QSize before = size(); adjustSize(); if (before != size()) updateGeometry(); } QSize RotatedWidget::adjustedSize(QSize size) const { switch (mOrigin) { case Qt::TopLeftCorner: case Qt::BottomRightCorner: break; case Qt::TopRightCorner: case Qt::BottomLeftCorner: size.transpose(); break; } return size; } QPoint RotatedWidget::adjustedPoint(QPoint point) const { switch (mOrigin) { case Qt::TopLeftCorner: case Qt::BottomRightCorner: break; case Qt::TopRightCorner: case Qt::BottomLeftCorner: point = QPoint(point.y(), point.x()); break; } return point; } QSize RotatedWidget::minimumSizeHint() const { return adjustedSize(mContent->minimumSizeHint()); } QSize RotatedWidget::sizeHint() const { return adjustedSize(mContent->sizeHint()); } void RotatedWidget::paintEvent(QPaintEvent */*event*/) { if (mOrigin == Qt::TopLeftCorner) return; QSize sz = mContent->size(); QPainter painter(this); QTransform transform; QPoint originPoint; switch (mOrigin) { case Qt::TopLeftCorner: // transform.rotate(0.0); // originPoint = QPoint(0.0, 0.0); break; case Qt::TopRightCorner: transform.rotate(90.0); originPoint = QPoint(0.0, -sz.height()); break; case Qt::BottomRightCorner: transform.rotate(180.0); originPoint = QPoint(-sz.width(), -sz.height()); break; case Qt::BottomLeftCorner: transform.rotate(270.0); originPoint = QPoint(-sz.width(), 0.0); break; } painter.setTransform(transform); mContent->render(&painter, originPoint, QRegion(), RenderFlags(DrawChildren)); } void RotatedWidget::mousePressEvent(QMouseEvent *event) { if (!mTransferMousePressEvent) { event->ignore(); return; } static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers()); QApplication::sendEvent(mContent, &contentEvent); cascadeCall = false; } void RotatedWidget::mouseReleaseEvent(QMouseEvent *event) { if (!mTransferMouseReleaseEvent) { event->ignore(); return; } static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers()); QApplication::sendEvent(mContent, &contentEvent); cascadeCall = false; } void RotatedWidget::mouseDoubleClickEvent(QMouseEvent *event) { if (!mTransferMouseDoubleClickEvent) { event->ignore(); return; } static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers()); QApplication::sendEvent(mContent, &contentEvent); cascadeCall = false; } void RotatedWidget::mouseMoveEvent(QMouseEvent *event) { if (!mTransferMouseMoveEvent) { event->ignore(); return; } static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QMouseEvent contentEvent(event->type(), adjustedPoint(event->pos()), event->globalPos(), event->button(), event->buttons(), event->modifiers()); QApplication::sendEvent(mContent, &contentEvent); cascadeCall = false; } #ifndef QT_NO_WHEELEVENT void RotatedWidget::wheelEvent(QWheelEvent *event) { if (!mTransferWheelEvent) { event->ignore(); return; } static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QWheelEvent contentEvent(adjustedPoint(event->pos()), event->globalPos(), event->delta(), event->buttons(), event->modifiers(), event->orientation()); QApplication::sendEvent(mContent, &contentEvent); cascadeCall = false; } #endif void RotatedWidget::enterEvent(QEvent *event) { if (!mTransferEnterEvent) { event->ignore(); return; } static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QApplication::sendEvent(mContent, event); cascadeCall = false; } void RotatedWidget::leaveEvent(QEvent *event) { if (!mTransferLeaveEvent) { event->ignore(); return; } static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QApplication::sendEvent(mContent, event); cascadeCall = false; } void RotatedWidget::resizeEvent(QResizeEvent *event) { static bool cascadeCall = false; if (cascadeCall) return; cascadeCall = true; QResizeEvent contentEvent(adjustedSize(event->size()), adjustedSize(event->oldSize())); QApplication::sendEvent(mContent, &contentEvent); cascadeCall = false; } liblxqt-0.10.0/lxqtrotatedwidget.h000066400000000000000000000105151261560636100172070ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2013 Razor team * Authors: * Kuzma Shapran * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTROTATED_WIDGET_H #define LXQTROTATED_WIDGET_H #include #include "lxqtglobals.h" namespace LXQt { class LXQT_API RotatedWidget: public QWidget { Q_OBJECT Q_PROPERTY(Qt::Corner origin READ origin WRITE setOrigin) Q_PROPERTY(bool transferMousePressEvent READ transferMousePressEvent WRITE setTransferMousePressEvent) Q_PROPERTY(bool transferMouseReleaseEvent READ transferMouseReleaseEvent WRITE setTransferMouseReleaseEvent) Q_PROPERTY(bool transferMouseDoubleClickEvent READ transferMouseDoubleClickEvent WRITE setTransferMouseDoubleClickEvent) Q_PROPERTY(bool transferMouseMoveEvent READ transferMouseMoveEvent WRITE setTransferMouseMoveEvent) #ifndef QT_NO_WHEELEVENT Q_PROPERTY(bool transferWheelEvent READ transferWheelEvent WRITE setTransferWheelEvent) #endif Q_PROPERTY(bool transferEnterEvent READ transferEnterEvent WRITE setTransferEnterEvent) Q_PROPERTY(bool transferLeaveEvent READ transferLeaveEvent WRITE setTransferLeaveEvent) public: explicit RotatedWidget(QWidget &content, QWidget* parent = 0, Qt::WindowFlags f = 0); Qt::Corner origin() const; void setOrigin(Qt::Corner); QWidget * content() const; void adjustContentSize(); virtual QSize minimumSizeHint() const; virtual QSize sizeHint() const; QSize adjustedSize(QSize) const; QPoint adjustedPoint(QPoint) const; bool transferMousePressEvent() const { return mTransferMousePressEvent; } void setTransferMousePressEvent(bool value) { mTransferMousePressEvent = value; } bool transferMouseReleaseEvent() const { return mTransferMouseReleaseEvent; } void setTransferMouseReleaseEvent(bool value) { mTransferMouseReleaseEvent = value; } bool transferMouseDoubleClickEvent() const { return mTransferMouseDoubleClickEvent; } void setTransferMouseDoubleClickEvent(bool value) { mTransferMouseDoubleClickEvent = value; } bool transferMouseMoveEvent() const { return mTransferMouseMoveEvent; } void setTransferMouseMoveEvent(bool value) { mTransferMouseMoveEvent = value; } #ifndef QT_NO_WHEELEVENT bool transferWheelEvent() const { return mTransferWheelEvent; } void setTransferWheelEvent(bool value) { mTransferWheelEvent = value; } #endif bool transferEnterEvent() const { return mTransferEnterEvent; } void setTransferEnterEvent(bool value) { mTransferEnterEvent = value; } bool transferLeaveEvent() const { return mTransferLeaveEvent; } void setTransferLeaveEvent(bool value) { mTransferLeaveEvent = value; } protected: virtual void paintEvent(QPaintEvent *); // Transition event handlers virtual void mousePressEvent(QMouseEvent *); virtual void mouseReleaseEvent(QMouseEvent *); virtual void mouseDoubleClickEvent(QMouseEvent *); virtual void mouseMoveEvent(QMouseEvent *); #ifndef QT_NO_WHEELEVENT virtual void wheelEvent(QWheelEvent *); #endif virtual void enterEvent(QEvent *); virtual void leaveEvent(QEvent *); virtual void resizeEvent(QResizeEvent *); private: QWidget *mContent; Qt::Corner mOrigin; bool mTransferMousePressEvent; bool mTransferMouseReleaseEvent; bool mTransferMouseDoubleClickEvent; bool mTransferMouseMoveEvent; #ifndef QT_NO_WHEELEVENT bool mTransferWheelEvent; #endif bool mTransferEnterEvent; bool mTransferLeaveEvent; }; } // namespace LXQt #endif // LXQTROTATEDWIDGET_H liblxqt-0.10.0/lxqtscreensaver.cpp000066400000000000000000000064661261560636100172260ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include #include "lxqtscreensaver.h" #include "lxqttranslator.h" #include #include #include using namespace LXQt; ScreenSaver::ScreenSaver(QObject * parent) : QObject(parent) { m_xdgProcess = new QProcess(this); connect(m_xdgProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(xdgProcess_finished(int,QProcess::ExitStatus))); } QList ScreenSaver::availableActions() { QList ret; QAction * act; act = new QAction(XdgIcon::fromTheme("system-lock-screen", "lock"), tr("Lock Screen"), this); connect(act, SIGNAL(triggered()), this, SLOT(lockScreen())); ret.append(act); return ret; } void ScreenSaver::lockScreen() { m_xdgProcess->start("xdg-screensaver", QStringList() << "lock"); } void ScreenSaver::xdgProcess_finished(int err, QProcess::ExitStatus status) { // http://portland.freedesktop.org/xdg-utils-1.1.0-rc1/scripts/xdg-screensaver if (err == 0) emit activated(); else { QMessageBox *box = new QMessageBox; box->setAttribute(Qt::WA_DeleteOnClose); box->setIcon(QMessageBox::Warning); if (err == 1) { box->setWindowTitle(tr("Screen Saver Error")); box->setText(tr("An error occurred starting screensaver. " "Syntax error in xdg-screensaver arguments.")); } else if (err == 3) { box->setWindowTitle(tr("Screen Saver Activation Error")); box->setText(tr("An error occurred starting screensaver. " "Ensure you have xscreensaver installed and running.")); } else if (err == 4) { box->setWindowTitle(tr("Screen Saver Activation Error")); box->setText(tr("An error occurred starting screensaver. " "Action 'activate' failed. " "Ensure you have xscreensaver installed and running.")); } else { box->setWindowTitle(tr("Screen Saver Activation Error")); box->setText(tr("An error occurred starting screensaver. " "Unknown error - undocumented return value from xdg-screensaver: %1.") .arg(err)); } box->exec(); } emit done(); } liblxqt-0.10.0/lxqtscreensaver.h000066400000000000000000000030001261560636100166500ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef SCREENSAVER_H #define SCREENSAVER_H #include "lxqtglobals.h" #include #include #include namespace LXQt { class LXQT_API ScreenSaver : public QObject { Q_OBJECT public: ScreenSaver(QObject * parent=0); QList availableActions(); signals: void activated(); void done(); public slots: void lockScreen(); private: QProcess * m_xdgProcess; private slots: void xdgProcess_finished(int err, QProcess::ExitStatus status); }; } // namespace LXQt #endif liblxqt-0.10.0/lxqtsettings.cpp000066400000000000000000000425371261560636100165450ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * Petr Vanek * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtsettings.h" #include #include #include #include #include #include #include #include #include #include using namespace LXQt; class LXQt::SettingsPrivate { public: SettingsPrivate(Settings* parent): mChangeTimer(0), mParent(parent) { } QString localizedKey(const QString& key) const; QFileSystemWatcher mWatcher; int mChangeTimer; private: Settings* mParent; }; LXQtTheme* LXQtTheme::mInstance = 0; class LXQt::LXQtThemeData: public QSharedData { public: LXQtThemeData(): mValid(false) {} QString loadQss(const QString& qssFile) const; QString findTheme(const QString &themeName); QString mName; QString mPath; QString mPreviewImg; bool mValid; }; class LXQt::GlobalSettingsPrivate { public: GlobalSettingsPrivate(GlobalSettings *parent): mParent(parent), mThemeUpdated(0ull) { } GlobalSettings *mParent; QString mIconTheme; QString mLXQtTheme; qlonglong mThemeUpdated; }; /************************************************ ************************************************/ Settings::Settings(const QString& module, QObject* parent) : QSettings("lxqt", module, parent), d_ptr(new SettingsPrivate(this)) { // HACK: we need to ensure that the user (~/.config/lxqt/.conf) // exists to have functional mWatcher if (!contains("__userfile__")) { setValue("__userfile__", true); sync(); } d_ptr->mWatcher.addPath(this->fileName()); connect(&(d_ptr->mWatcher), &QFileSystemWatcher::fileChanged, this, &Settings::_fileChanged); } /************************************************ ************************************************/ Settings::Settings(const QString &fileName, QSettings::Format format, QObject *parent): QSettings(fileName, format, parent), d_ptr(new SettingsPrivate(this)) { // HACK: we need to ensure that the user (~/.config/lxqt/.conf) // exists to have functional mWatcher if (!contains("__userfile__")) { setValue("__userfile__", true); sync(); } d_ptr->mWatcher.addPath(this->fileName()); connect(&(d_ptr->mWatcher), &QFileSystemWatcher::fileChanged, this, &Settings::_fileChanged); } /************************************************ ************************************************/ Settings::Settings(const QSettings* parentSettings, const QString& subGroup, QObject* parent): QSettings(parentSettings->organizationName(), parentSettings->applicationName(), parent), d_ptr(new SettingsPrivate(this)) { beginGroup(subGroup); } /************************************************ ************************************************/ Settings::Settings(const QSettings& parentSettings, const QString& subGroup, QObject* parent): QSettings(parentSettings.organizationName(), parentSettings.applicationName(), parent), d_ptr(new SettingsPrivate(this)) { beginGroup(subGroup); } /************************************************ ************************************************/ Settings::~Settings() { // because in the Settings::Settings(const QString& module, QObject* parent) // constructor there is no beginGroup() called... if (!group().isEmpty()) endGroup(); delete d_ptr; } bool Settings::event(QEvent *event) { if (event->type() == QEvent::UpdateRequest) { emit settingsChanged(); } else if (event->type() == QEvent::Timer) { if(static_cast(event)->timerId() == d_ptr->mChangeTimer) { fileChanged(); // invoke the real fileChanged() handler. killTimer(d_ptr->mChangeTimer); d_ptr->mChangeTimer = 0; } } return QSettings::event(event); } void Settings::fileChanged() { sync(); emit settingsChanged(); } void Settings::_fileChanged(QString path) { // delay the change notification for 100 ms to avoid // unnecessary repeated loading of the same config file if // the file is changed for several times rapidly. if(d_ptr->mChangeTimer) killTimer(d_ptr->mChangeTimer); d_ptr->mChangeTimer = startTimer(100); // D*mn! yet another Qt 5.4 regression!!! // See the bug report: https://github.com/lxde/lxqt/issues/441 // Since Qt 5.4, QSettings uses QSaveFile to save the config files. // https://github.com/qtproject/qtbase/commit/8d15068911d7c0ba05732e2796aaa7a90e34a6a1#diff-e691c0405f02f3478f4f50a27bdaecde // QSaveFile will save the content to a new temp file, and replace the old file later. // Hence the existing config file is not changed. Instead, it's deleted and then replaced. // This new behaviour unfortunately breaks QFileSystemWatcher. // After file deletion, we can no longer receive any new change notifications. // The most ridiculous thing is, QFileSystemWatcher does not provide a // way for us to know if a file is deleted. WT*? // Luckily, I found a workaround: If the file path no longer exists // in the watcher's files(), this file is deleted. if(!d_ptr->mWatcher.files().contains(path)) d_ptr->mWatcher.addPath(path); } /************************************************ ************************************************/ const GlobalSettings *Settings::globalSettings() { static QMutex mutex; static GlobalSettings *instance = 0; if (!instance) { mutex.lock(); if (!instance) instance = new GlobalSettings(); mutex.unlock(); } return instance; } /************************************************ LC_MESSAGES value Possible keys in order of matching lang_COUNTRY@MODIFIER lang_COUNTRY@MODIFIER, lang_COUNTRY, lang@MODIFIER, lang, default value lang_COUNTRY lang_COUNTRY, lang, default value lang@MODIFIER lang@MODIFIER, lang, default value lang lang, default value ************************************************/ QString SettingsPrivate::localizedKey(const QString& key) const { QString lang = getenv("LC_MESSAGES"); if (lang.isEmpty()) lang = getenv("LC_ALL"); if (lang.isEmpty()) lang = getenv("LANG"); QString modifier = lang.section('@', 1); if (!modifier.isEmpty()) lang.truncate(lang.length() - modifier.length() - 1); QString encoding = lang.section('.', 1); if (!encoding.isEmpty()) lang.truncate(lang.length() - encoding.length() - 1); QString country = lang.section('_', 1); if (!country.isEmpty()) lang.truncate(lang.length() - country.length() - 1); //qDebug() << "LC_MESSAGES: " << getenv("LC_MESSAGES"); //qDebug() << "Lang:" << lang; //qDebug() << "Country:" << country; //qDebug() << "Encoding:" << encoding; //qDebug() << "Modifier:" << modifier; if (!modifier.isEmpty() && !country.isEmpty()) { QString k = QString("%1[%2_%3@%4]").arg(key, lang, country, modifier); //qDebug() << "\t try " << k << mParent->contains(k); if (mParent->contains(k)) return k; } if (!country.isEmpty()) { QString k = QString("%1[%2_%3]").arg(key, lang, country); //qDebug() << "\t try " << k << mParent->contains(k); if (mParent->contains(k)) return k; } if (!modifier.isEmpty()) { QString k = QString("%1[%2@%3]").arg(key, lang, modifier); //qDebug() << "\t try " << k << mParent->contains(k); if (mParent->contains(k)) return k; } QString k = QString("%1[%2]").arg(key, lang); //qDebug() << "\t try " << k << mParent->contains(k); if (mParent->contains(k)) return k; //qDebug() << "\t try " << key << mParent->contains(key); return key; } /************************************************ ************************************************/ QVariant Settings::localizedValue(const QString& key, const QVariant& defaultValue) const { Q_D(const Settings); return value(d->localizedKey(key), defaultValue); } /************************************************ ************************************************/ void Settings::setLocalizedValue(const QString &key, const QVariant &value) { Q_D(const Settings); setValue(d->localizedKey(key), value); } /************************************************ ************************************************/ LXQtTheme::LXQtTheme(): d(new LXQtThemeData) { } /************************************************ ************************************************/ LXQtTheme::LXQtTheme(const QString &path): d(new LXQtThemeData) { if (path.isEmpty()) return; QFileInfo fi(path); if (fi.isAbsolute()) { d->mPath = path; d->mName = fi.fileName(); d->mValid = fi.isDir(); } else { d->mName = path; d->mPath = d->findTheme(path); d->mValid = !(d->mPath.isEmpty()); } if (QDir(path).exists("preview.png")) d->mPreviewImg = path + "/preview.png"; } /************************************************ ************************************************/ QString LXQtThemeData::findTheme(const QString &themeName) { if (themeName.isEmpty()) return ""; QStringList paths; paths << XdgDirs::dataHome(false); paths << XdgDirs::dataDirs(); // TODO/FIXME: this is fallback path for standard CMAKE_INSTALL_PREFIX paths << "/usr/local/share"; foreach(QString path, paths) { QDir dir(QString("%1/lxqt/themes/%2").arg(path, themeName)); if (dir.isReadable()) return dir.absolutePath(); } return QString(); } /************************************************ ************************************************/ LXQtTheme::LXQtTheme(const LXQtTheme &other): d(other.d) { } /************************************************ ************************************************/ LXQtTheme::~LXQtTheme() { } /************************************************ ************************************************/ LXQtTheme& LXQtTheme::operator=(const LXQtTheme &other) { d = other.d; return *this; } /************************************************ ************************************************/ bool LXQtTheme::isValid() const { return d->mValid; } /************************************************ ************************************************/ QString LXQtTheme::name() const { return d->mName; } /************************************************ ************************************************/ QString LXQtTheme::path() const { return d->mPath; } /************************************************ ************************************************/ QString LXQtTheme::previewImage() const { return d->mPreviewImg; } /************************************************ ************************************************/ QString LXQtTheme::qss(const QString& module) const { QString styleSheet = d->loadQss(QStringLiteral("%1/%2.qss").arg(d->mPath, module)); // Single/double click ........................... Settings s("desktop"); bool singleClick = s.value("icon-launch-mode", "singleclick").toString() == "singleclick"; styleSheet += QString("QAbstractItemView {activate-on-singleclick : %1; }").arg(singleClick ? 1 : 0); return styleSheet; } /************************************************ ************************************************/ QString LXQtThemeData::loadQss(const QString& qssFile) const { QFile f(qssFile); if (! f.open(QIODevice::ReadOnly | QIODevice::Text)) { return QString(); } QString qss = f.readAll(); f.close(); if (qss.isEmpty()) return QString(); // handle relative paths QString qssDir = QFileInfo(qssFile).canonicalPath(); qss.replace(QRegExp("url.[ \\t\\s]*", Qt::CaseInsensitive, QRegExp::RegExp2), "url(" + qssDir + "/"); return qss; } /************************************************ ************************************************/ QString LXQtTheme::desktopBackground(int screen) const { QString wallpaperCfgFileName = QString("%1/wallpaper.cfg").arg(d->mPath); if (wallpaperCfgFileName.isEmpty()) return QString(); QSettings s(wallpaperCfgFileName, QSettings::IniFormat); QString themeDir = QFileInfo(wallpaperCfgFileName).absolutePath(); // There is something strange... If I remove next line the wallpapers array is not found... s.childKeys(); s.beginReadArray("wallpapers"); s.setArrayIndex(screen - 1); if (s.contains("file")) return QString("%1/%2").arg(themeDir, s.value("file").toString()); s.setArrayIndex(0); if (s.contains("file")) return QString("%1/%2").arg(themeDir, s.value("file").toString()); return QString(); } /************************************************ ************************************************/ const LXQtTheme &LXQtTheme::currentTheme() { static LXQtTheme theme; QString name = Settings::globalSettings()->value("theme").toString(); if (theme.name() != name) { theme = LXQtTheme(name); } return theme; } /************************************************ ************************************************/ QList LXQtTheme::allThemes() { QList ret; QSet processed; QStringList paths; paths << XdgDirs::dataHome(false); paths << XdgDirs::dataDirs(); foreach(QString path, paths) { QDir dir(QString("%1/lxqt/themes").arg(path)); QFileInfoList dirs = dir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot); foreach(QFileInfo dir, dirs) { if (!processed.contains(dir.fileName()) && QDir(dir.absoluteFilePath()).exists("lxqt-panel.qss")) { processed << dir.fileName(); ret << LXQtTheme(dir.absoluteFilePath()); } } } return ret; } /************************************************ ************************************************/ SettingsCache::SettingsCache(QSettings &settings) : mSettings(settings) { loadFromSettings(); } /************************************************ ************************************************/ SettingsCache::SettingsCache(QSettings *settings) : mSettings(*settings) { loadFromSettings(); } /************************************************ ************************************************/ void SettingsCache::loadFromSettings() { foreach (QString key, mSettings.allKeys()) { mCache.insert(key, mSettings.value(key)); } } /************************************************ ************************************************/ void SettingsCache::loadToSettings() { QHash::const_iterator i = mCache.constBegin(); while(i != mCache.constEnd()) { mSettings.setValue(i.key(), i.value()); ++i; } mSettings.sync(); } /************************************************ ************************************************/ GlobalSettings::GlobalSettings(): Settings("lxqt"), d_ptr(new GlobalSettingsPrivate(this)) { if (value("icon_theme").toString().isEmpty()) { QStringList failback; failback << "oxygen"; failback << "Tango"; failback << "Prudence-icon"; failback << "Humanity"; failback << "elementary"; failback << "gnome"; QDir dir("/usr/share/icons/"); foreach (QString s, failback) { if (dir.exists(s)) { setValue("icon_theme", s); sync(); break; } } } fileChanged(); } GlobalSettings::~GlobalSettings() { delete d_ptr; } /************************************************ ************************************************/ void GlobalSettings::fileChanged() { Q_D(GlobalSettings); sync(); QString it = value("icon_theme").toString(); if (d->mIconTheme != it) { d->mIconTheme = it; XdgIcon::setThemeName(it); emit iconThemeChanged(); } QString rt = value("theme").toString(); qlonglong themeUpdated = value("__theme_updated__").toLongLong(); if ((d->mLXQtTheme != rt) || (d->mThemeUpdated != themeUpdated)) { d->mLXQtTheme = rt; emit lxqtThemeChanged(); } emit settingsChanged(); } liblxqt-0.10.0/lxqtsettings.h000066400000000000000000000143331261560636100162030ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2010-2011 Razor team * Authors: * Alexander Sokoloff * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTSETTINGS_H #define LXQTSETTINGS_H #include #include #include #include "lxqtglobals.h" class QEvent; namespace LXQt { class SettingsPrivate; class GlobalSettings; /*! \brief User settings handling */ class LXQT_API Settings : public QSettings { Q_OBJECT public: /*! \brief Constructs a Settings object for accessing settings of the module called module, and with parent parent. Settings can be accessed using the standard interface provided by QSettings, but it also provides some convenience functions and signals. \param module a base name of the config file. It's a name without the extension. For example: if you want to open settings for panel create it as Settings("panel"). The function will create all parent directories necessary to create the file. \param parent It's no need to delete this class manually if it's set. */ explicit Settings(const QString& module, QObject* parent = 0); //explicit Settings(QObject* parent=0); explicit Settings(const QSettings* parentSettings, const QString& subGroup, QObject* parent=0); explicit Settings(const QSettings& parentSettings, const QString& subGroup, QObject* parent=0); Settings(const QString &fileName, QSettings::Format format, QObject *parent = 0); ~Settings(); static const GlobalSettings *globalSettings(); /*! Returns the localized value for key. In the desktop file keys may be postfixed by [LOCALE]. If the localized value doesn't exist, returns non lokalized value. If non localized value doesn't exist, returns defaultValue. LOCALE must be of the form lang_COUNTRY.ENCODING@MODIFIER, where _COUNTRY, .ENCODING, and @MODIFIER may be omitted. If no default value is specified, a default QVariant is returned. */ QVariant localizedValue(const QString& key, const QVariant& defaultValue = QVariant()) const; /*! Sets the value of setting key to value. If a localized version of the key already exists, the previous value is overwritten. Otherwise, it overwrites the the un-localized version. */ void setLocalizedValue(const QString &key, const QVariant &value); signals: void settingsChanged(); protected: bool event(QEvent *event); protected slots: /*! Called when the config file is changed */ virtual void fileChanged(); private slots: void _fileChanged(QString path); private: Q_DISABLE_COPY(Settings) SettingsPrivate* const d_ptr; Q_DECLARE_PRIVATE(Settings) }; class LXQtThemeData; /*! \brief QSS theme handling */ class LXQT_API LXQtTheme { public: /// Constructs a null theme. LXQtTheme(); /*! Constructs an theme from the dir with the given path. If path not absolute (i.e. the theme name only) the relevant dir must be found relative to the $XDG_DATA_HOME + $XDG_DATA_DIRS directories. */ LXQtTheme(const QString &path); /// Constructs a copy of other. This is very fast. LXQtTheme(const LXQtTheme &other); LXQtTheme& operator=(const LXQtTheme &other); ~LXQtTheme(); /// Returns the name of the theme. QString name() const; QString path() const; QString previewImage() const; /// Returns true if this theme is valid; otherwise returns false. bool isValid() const; /*! \brief Returns StyleSheet text (not file name, but real text) of the module called module. Paths in url() C/QSS functions are parsed to be real values for the theme, relative to full path */ QString qss(const QString& module) const; /*! \brief A full path to image used as a wallpaper \param screen is an ID of the screen like in Qt. -1 means default (any) screen. Any other value greater than -1 is the exact screen (in dualhead). In themes the index starts from 1 (ix 1 means 1st screen). \retval QString a file name (including path). */ QString desktopBackground(int screen=-1) const; /// Returns the current lxqt theme. static const LXQtTheme ¤tTheme(); /// Returns the all themes found in the system. static QList allThemes(); private: static LXQtTheme* mInstance; QSharedDataPointer d; }; /*! A global pointer referring to the unique LXQtTheme object. It is equivalent to the pointer returned by the LXQtTheme::instance() function. Only one theme object can be created. !*/ #define lxqtTheme LXQtTheme::currentTheme() class LXQT_API SettingsCache { public: explicit SettingsCache(QSettings &settings); explicit SettingsCache(QSettings *settings); virtual ~SettingsCache() {} void loadFromSettings(); void loadToSettings(); private: QSettings &mSettings; QHash mCache; }; class GlobalSettingsPrivate; class GlobalSettings: public Settings { Q_OBJECT public: GlobalSettings(); ~GlobalSettings(); signals: /// Signal emitted when the icon theme has changed. void iconThemeChanged(); /// Signal emitted when the lxqt theme has changed. void lxqtThemeChanged(); protected slots: void fileChanged(); private: GlobalSettingsPrivate* const d_ptr; Q_DECLARE_PRIVATE(GlobalSettings) }; } // namespace LXQt #endif // LXQTSETTINGS_H liblxqt-0.10.0/lxqtsingleapplication.cpp000066400000000000000000000067201261560636100204040ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://lxqt.org * * Copyright: 2014 LXQt team * Authors: * Luís Pereira * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqtsingleapplication.h" #include "singleapplicationadaptor.h" #include #include #include #include #include using namespace LXQt; SingleApplication::SingleApplication(int &argc, char **argv, StartOptions options) : Application(argc, argv), mActivationWindow(0) { QString service = QString::fromLatin1("org.lxqt.%1").arg(QApplication::applicationName()); SingleApplicationAdaptor *mAdaptor = new SingleApplicationAdaptor(this); QDBusConnection bus = QDBusConnection::sessionBus(); if (!bus.isConnected()) { QLatin1String errorMessage("Can't connect to the D-Bus session bus\n" "Make sure the D-Bus daemon is running"); /* ExitOnDBusFailure is the default. Any value other than NoExitOnDBusFailure will be taken as ExitOnDBusFailure (the default). */ if (options == NoExitOnDBusFailure) { qDebug() << Q_FUNC_INFO << errorMessage; return; } else { qCritical() << Q_FUNC_INFO << errorMessage; ::exit(1); } } bool registered = (bus.registerService(service) == QDBusConnectionInterface::ServiceRegistered); if (registered) { // We are the primary instance QLatin1String objectPath("/"); bus.registerObject(objectPath, mAdaptor, QDBusConnection::ExportAllSlots); } else { // We are the second outstance QDBusMessage msg = QDBusMessage::createMethodCall(service, QStringLiteral("/"), QStringLiteral("org.lxqt.SingleApplication"), QStringLiteral("activateWindow")); QDBusConnection::sessionBus().send(msg); ::exit(0); } } SingleApplication::~SingleApplication() { } void SingleApplication::setActivationWindow(QWidget *w) { mActivationWindow = w; } QWidget *SingleApplication::activationWindow() const { return mActivationWindow; } void SingleApplication::activateWindow() { if (mActivationWindow) { WId window = mActivationWindow->effectiveWinId(); KWindowInfo info(window, NET::WMDesktop); int windowDesktop = info.desktop(); if (windowDesktop != KWindowSystem::currentDesktop()) KWindowSystem::setCurrentDesktop(windowDesktop); KWindowSystem::activateWindow(window); } else { qDebug() << Q_FUNC_INFO << "activationWindow not set or null"; } } liblxqt-0.10.0/lxqtsingleapplication.h000066400000000000000000000112011261560636100200370ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://lxqt.org * * Copyright: 2014 LXQt team * Authors: * Luís Pereira * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTSINGLEAPPLICATION_H #define LXQTSINGLEAPPLICATION_H #include "lxqtapplication.h" class QWidget; namespace LXQt { /*! \class SingleApplication * \brief The SingleApplication class provides an single instance Application. * * This class allows the user to create applications where only one instance * is allowed to be running at an given time. If the user tries to launch * another instance, the already running instance will be activated instead. * * The user has to set the activation window with setActivationWindow. If it * doesn't the second instance will quietly exit without activating the first * instance window. In any case only one instance is allowed. * * These classes depend on D-Bus and KF5::WindowSystem * * \code * * // Original code * int main(int argc, char **argv) * { * LXQt::Application app(argc, argv); * * MainWidget w; * w.show(); * * return app.exec(); * } * * // Using the library * int main(int argc, char **argv) * { * LXQt::SingleApplication app(argc, argv); * * MainWidget w; * app.setActivationWindow(&w); * w.show(); * * return app.exec(); * } * \endcode * \sa SingleApplication */ class LXQT_API SingleApplication : public Application { Q_OBJECT Q_ENUMS(StartOptions) public: /*! * \brief Options to control the D-Bus failure related application behaviour * * By default (ExitOnDBusFailure) if an instance can't connect to the D-Bus * session bus, that instance calls ::exit(1). Not even the first instance * will run. Connecting to the D-Bus session bus is an condition to * guarantee that only one instance will run. * * If an user wants to allow an application to run without D-Bus, it must * use the NoExitOnDBusFailure option. * * ExitOnDBusFailure is the default. */ enum StartOptions { /** Exit if the connection to the D-Bus session bus fails. * It's the default */ ExitOnDBusFailure, /** Don't exit if the connection to the D-Bus session bus fails.*/ NoExitOnDBusFailure }; /*! * \brief Construct a LXQt SingleApplication object. * \param argc standard argc as in QApplication * \param argv standard argv as in QApplication * \param options Control the on D-Bus failure application behaviour * * \sa StartOptions. */ SingleApplication(int &argc, char **argv, StartOptions options = ExitOnDBusFailure); virtual ~SingleApplication(); /*! * \brief Sets the activation window. * \param w activation window. * * Sets the activation window of this application to w. The activation * window is the widget that will be activated by \a activateWindow(). * * \sa activationWindow() \sa activateWindow(); */ void setActivationWindow(QWidget *w); /*! * \brief Gets the current activation window. * \return The current activation window. * * \sa setActivationWindow(); */ QWidget *activationWindow() const; public Q_SLOTS: /*! * \brief Activates this application activation window. * * Changes to the desktop where this applications is. It then de-minimizes, * raises and activates the application's activation window. * If no activation window has been set, this function does nothing. * * \sa setActivationWindow(); */ void activateWindow(); private: QWidget *mActivationWindow; }; #if defined(lxqtSingleApp) #undef lxqtSingleApp #endif #define lxqtSingleApp (static_cast(qApp)) }; // namespace LXQt #endif // LXQTSINGLEAPPLICATION_H liblxqt-0.10.0/lxqttranslator.cpp000066400000000000000000000120131261560636100170600ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2013 LXQt team * Authors: * Alexander Sokoloff Luís Pereira * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #include "lxqttranslator.h" #include #include #include #include #include #include #include #include #include using namespace LXQt; bool translate(const QString &name, const QString &owner = QString()); /************************************************ ************************************************/ QStringList *getSearchPaths() { static QStringList *searchPath = 0; if (searchPath == 0) { searchPath = new QStringList(); *searchPath << QString(LXQT_SHARE_TRANSLATIONS_DIR); *searchPath << XdgDirs::dataDirs(QLatin1Char('/') % LXQT_RELATIVE_SHARE_TRANSLATIONS_DIR); searchPath->removeDuplicates(); } return searchPath; } /************************************************ ************************************************/ QStringList LXQt::Translator::translationSearchPaths() { return *(getSearchPaths()); } /************************************************ ************************************************/ void Translator::setTranslationSearchPaths(const QStringList &paths) { QStringList *p = getSearchPaths(); p->clear(); *p << paths; } /************************************************ ************************************************/ bool translate(const QString &name, const QString &owner) { QString locale = QLocale::system().name(); QTranslator *appTranslator = new QTranslator(qApp); QStringList *paths = getSearchPaths(); foreach(QString path, *paths) { QStringList subPaths; if (!owner.isEmpty()) { subPaths << path % QChar('/') % owner % QChar('/') % name; } else { subPaths << path % QChar('/') % name; subPaths << path; } foreach(QString p, subPaths) { if (appTranslator->load(name + "_" + locale, p)) { QCoreApplication::installTranslator(appTranslator); return true; } else if (locale == QLatin1String("C") || locale.startsWith(QLatin1String("en"))) { // English is the default. Even if there isn't an translation // file, we return true. It's translated anyway. delete appTranslator; return true; } } } // If we got here, no translation was loaded. appTranslator has no use. delete appTranslator; return false; } /************************************************ ************************************************/ bool Translator::translateApplication(const QString &applicationName) { QString locale = QLocale::system().name(); QTranslator *qtTranslator = new QTranslator(qApp); if (qtTranslator->load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { qApp->installTranslator(qtTranslator); } else { delete qtTranslator; } if (!applicationName.isEmpty()) return translate(applicationName); else return translate(QFileInfo(QCoreApplication::applicationFilePath()).baseName()); } /************************************************ ************************************************/ bool Translator::translateLibrary(const QString &libraryName) { static QSet loadedLibs; if (loadedLibs.contains(libraryName)) return true; loadedLibs.insert(libraryName); return translate(libraryName); } bool Translator::translatePlugin(const QString &pluginName, const QString& type) { static QSet loadedPlugins; QString fullName = type % QChar('/') % pluginName; if (loadedPlugins.contains(fullName)) return true; loadedPlugins.insert(pluginName); return translate(pluginName, type); } static void loadSelfTranslation() { Translator::translateLibrary(QLatin1String("liblxqt")); } Q_COREAPP_STARTUP_FUNCTION(loadSelfTranslation) liblxqt-0.10.0/lxqttranslator.h000066400000000000000000000047121261560636100165340ustar00rootroot00000000000000/* BEGIN_COMMON_COPYRIGHT_HEADER * (c)LGPL2+ * * LXQt - a lightweight, Qt based, desktop toolset * http://razor-qt.org * * Copyright: 2013 LXQt team * Authors: * Alexander Sokoloff Luís Pereira * * This program or library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General * Public License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * END_COMMON_COPYRIGHT_HEADER */ #ifndef LXQTTRANSLATOR_H #define LXQTTRANSLATOR_H #include #include "lxqtglobals.h" namespace LXQt { /** The Translator class provides internationalization support for application and librarioes. **/ class LXQT_API Translator { public: /** Returns a list of paths that the application will search translations files. **/ static QStringList translationSearchPaths(); /** Sets the list of directories to search translations. All existing paths will be deleted and the path list will consist of the paths given in paths. **/ static void setTranslationSearchPaths(const QStringList &paths); /** Loads translations for application. If applicationName is not specified, then basename of QCoreApplication::applicationFilePath() is used. Returns true if the translation is successfully loaded; otherwise returns false. **/ static bool translateApplication(const QString &applicationName = QString()); /** Loads translations for application. If applicationName is not specified, then basename of QCoreApplication::applicationFilePath() is used. Returns true if the translation is successfully loaded; otherwise returns false. **/ static bool translateLibrary(const QString &libraryName = QString()); static bool translatePlugin(const QString &pluginName, const QString& type); }; } // namespace LXQt #endif // LXQTTRANSLATOR_H liblxqt-0.10.0/translations/000077500000000000000000000000001261560636100157765ustar00rootroot00000000000000liblxqt-0.10.0/translations/liblxqt.ts000066400000000000000000000171521261560636100200330ustar00rootroot00000000000000 ConfigDialog Dialog LXQt::MessageBox LXQt Power Manager Error Hibernate failed. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Suspend Reboot Shutdown Logout LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... LXQt Session Shutdown Do you want to really switch off your computer? All unsaved work will be lost... LXQt Session Logout Do you want to really logout? All unsaved work will be lost... LXQt Power Manager Error Hibernate failed. Suspend failed. LXQt::ScreenSaver Lock Screen Screen Saver Error An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Screen Saver Activation Error An error occurred starting screensaver. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) liblxqt-0.10.0/translations/liblxqt_ar.ts000066400000000000000000000311341261560636100205110ustar00rootroot00000000000000 AddPluginDialog Add plugins ضمُّ إضافاتٍ برمجيَّة Search: ابحث: Add plugin ضمُّ إضافةٍ برمجيَّة Close إغلاق ConfigDialog Dialog حوار LXQt::AboutDialogPrivate Yes نعم No LXQt::MessageBox LXQt Power Manager Error خطأٌ في إدارة الطَّاقة لنظام ريزر Hibernate failed. فشل الانتقال إلى حالة السُّبات LXQt::NotificationPrivate Notifications Fallback ارتداد اﻹشعارات LXQt::PowerManager Hibernate سبات Suspend تعليق Reboot إعادة إقلاع Shutdown إطفاء Logout خروج LXQt Session Suspend وضع جلسة نظام ريزر في حالة تعليق Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. هل ترغب حقَّاً بتعليق الحاسب؟<p>تعليق الحاسب في وضعيَّة طاقةٍ أخفّ ولا يتم حفظ حالة النِّظام في حال انقطاع التَّيَّار. LXQt Session Hibernate وضع جلسة نظام ريزر في حالة سبات Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. هل ترغب حقَّاً بوضع الحاسب في حالة سبات؟<p>يتم وضع الحاسب في حالة سباتٍ مع وضعيَّة طاقةٍ أخفّ ويتم حفظ حالة النِّظام في حال انقطاع التَّيَّار. LXQt Session Reboot إعادة إقلاع جلسة نظام ريزر Do you want to really restart your computer? All unsaved work will be lost... هل ترغب حقَّاً بإعادة تشغيل الحاسب؟ سيتم إضاعة كافَّة اﻷعمال التي لم يتمَُ حفظها.. LXQt Session Shutdown إطفاء نظام ريزر Do you want to really switch off your computer? All unsaved work will be lost... هل ترغب حقَّاً بإطفاء الحاسب؟ سيتم إضاعة كافَّة اﻷعمال التي لم يتمَُ حفظها.. LXQt Session Logout الخروج من جلسة نظام ريزر Do you want to really logout? All unsaved work will be lost... هل ترغب بالخروج حقَّاً؟ سيتم إضاعة كافَّة اﻷعمال التي لم يتمَُ حفظها.. LXQt Power Manager Error خطأٌ في إدارة الطَّاقة لنظام ريزر Hibernate failed. فشل الانتقال إلى حالة السُّبات Suspend failed. فشل الانتقال إلى حالة تعليق الحاسب LXQt::ScreenSaver Lock Screen إقفال الشَّاشة Screen Saver Error Screen Saver Activation Error خطأٌ في تشغيل حافظ الشَّاشة An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. حدث خطأٌ في تشغيل حافظ الشَّاشة! ﻻ يمكن تشغيل حافظ شاشة سطح المكتب الرُّسوميِّ نظراً لانهياره..! An error occurred starting screensaver. xdg-screensaver is not installed correctly. حدث خطأٌ في تشغيل حافظ الشَّاشة! لم يتمُّ تثبيت حافظ شاشة سطح المكتب الرُّسوميِّ بالشَّكل الصَّحيح..! An error occurred starting screensaver. xdg-screensaver cannot be started. حدث خطأٌ في تشغيل حافظ الشَّاشة! ﻻ يمكن تشغيل حافظ شاشة سطح المكتب الرُّسوميِّ..! An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. حدث خطأٌ في تشغيل حافظ الشَّاشة! هناك خطأٌ في رموز ضبط تعريف حافظ شاشة سطح المكتب الرُّسوميِّ An error occurred starting screensaver. Ensure you have xscreensaver installed and running. حدث خطأٌ في تشغيل حافظ الشَّاشة! يرجى التَّأكد من أن حافظ شاشة سطح المكتب الرُّسوميِّ مثبَّتٌ ويعمل.. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. حدث خطأٌ في تشغيل حافظ الشَّاشة! فشلٌ في أمر التَّفعيل! يرجى التَّأكد من أن حافظ شاشة سطح المكتب الرُّسوميِّ مثبَّتٌ ويعمل.. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. حصل خطأٌ عند تشغيل حافظ الضَّاضة. خطأٌ غير معروفٍ - قيمةٌ جوابيَّةٌ غير موثَّقةٍ من حافظ شاشة إكس دي جي=%1. LXQt::ShortcutButton Clear مسح None ﻻشيء QObject Power Manager Error خطأ في مدير الطَّاقة QDBusInterface is invalid واجهة اتصال كيوت غير صالحة Power Manager Error (D-BUS call) خطأ في مدير الطَّاقة (نداء من خطِّ التَّواصل) about About LXQt نبذةٌ عن نظام ريزر About About dialog, Tab title تبذةٌ عن Technical Info About dialog, Tab title معلوماتٌ تقنيَّةٌ liblxqt-0.10.0/translations/liblxqt_cs.ts000066400000000000000000000372731261560636100205260ustar00rootroot00000000000000 AddPluginDialog Add plugins Přidat přídavné moduly Search: Hledat: Add plugin Přidat přídavný modul Close Zavřít ConfigDialog Dialog Dialog LXQt::AboutDialogPrivate Version: %1 Verze: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Pokročilé, snadno se používající a rychlé pracovní prostředí založené na technologiích Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Autorské právo: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Domovská stránka: %1 License: %1 About dialog, 'About' tab text Licence: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt je přeložen do mnoha jazyků díky práci překladatelských týmů z celého světa. Yes Ano No Ne <b>LXQt Desktop Toolbox - Technical Info</b> <b>Nástroje LXQt Desktop - Technické informace</b> Version Verze Qt Qt Debug Build Ladicí sestavení System Configuration Nastavení systému Share Directory Sdílený adresář Translations About dialog, Tab title Překlady <b>User Directories</b> <b>Uživatelské adresáře</b> Xdg Data Home Domovská složka pro data Xdg Xdg Config Home Domovská složka pro nastavení Xdg Xdg Data Dirs Adresáře pro data Xdg Xdg Cache Home Domovská složka pro vyrovnávací paměť Xdg Xdg Runtime Home Domovská složka pro čas běhu Xdg Xdg Autostart Dirs Adresáře pro automatické spuštění Xdg Xdg Autostart Home Domovská složka pro automatické spuštění Xdg LXQt::MessageBox LXQt Power Manager Error Chyba ve správě energie Hibernate failed. Hibernace se nezdařila. LXQt::NotificationPrivate Notifications Fallback Záloha oznamování LXQt::PowerManager Hibernate Hibernovat Suspend Uspat Reboot Restartovat Shutdown Vypnout Logout Odhlásit se LXQt Session Suspend Pozastavení sezení LXQtu Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Opravdu chcete uspat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému není při ztrátě energie zachován. LXQt Session Hibernate Zazimování sezení LXQtu Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Opravdu chcete zazimovat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému je při ztrátě energie zachován. LXQt Session Reboot Spuštění sezení LXQtu znovu Do you want to really restart your computer? All unsaved work will be lost... Opravdu chcete spustit svůj počítač znovu?<p>Všechna neuložená práce bude ztracena... LXQt Session Shutdown Vypnutí sezení LXQtu Do you want to really switch off your computer? All unsaved work will be lost... Opravdu chcete vypnout svůj počítač?<p>Všechna neuložená práce bude ztracena... LXQt Session Logout Odhlášení sezení LXQtu Do you want to really logout? All unsaved work will be lost... Opravdu se chcete odhlásit?<p>Všechna neuložená práce bude ztracena... LXQt Power Manager Error Chyba ve správě energie Hibernate failed. Hibernace se nezdařila. Suspend failed. Uspání se nezdařilo. LXQt::ScreenSaver Lock Screen Zamknout obrazovku Screen Saver Error Screen Saver Activation Error Chyba při zapínání šetřiče obrazovky An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensavernelze spustit kvůli jeho pádu. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver není nainstalován správně. An error occurred starting screensaver. xdg-screensaver cannot be started. Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver nelze spustit. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Při spouštění šetřiče obrazovky se vyskytla chyba. Chybná skladba v argumentech xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Při spouštění šetřiče obrazovky se vyskytla chyba. Ujistěte se, že máte xdg-screensaver nainstalován a že běží. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Při spouštění šetřiče obrazovky se vyskytla chyba. Krok "zapnutí" se nezdařil. Ujistěte se, že máte xdg-screensaver nainstalován a že běží. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Během spouštění spořiče obrazovky se vyskytla chyba. Neznámá chyba - nezdokumentovaná vrácená hodnota od xdg-screensaver=%1. LXQt::ShortcutButton Clear Smazat None Žádný QObject Power Manager Error Chyba správce energie QDBusInterface is invalid QDBusInterface je neplatné Power Manager Error (D-BUS call) Chyba správce energie (volání D-BUS) about About LXQt O prostředí LXQt About About dialog, Tab title O Authors About dialog, Tab title Autoři Thanks About dialog, Tab title Poděkování Translations About dialog, Tab title Překlady Technical Info About dialog, Tab title Technické informace liblxqt-0.10.0/translations/liblxqt_cs_CZ.ts000066400000000000000000000372761261560636100211250ustar00rootroot00000000000000 AddPluginDialog Add plugins Přidat přídavné moduly Search: Hledat: Add plugin Přidat přídavný modul Close Zavřít ConfigDialog Dialog Dialog LXQt::AboutDialogPrivate Version: %1 Verze: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Pokročilé, snadno se používající a rychlé pracovní prostředí založené na technologiích Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Autorské právo: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Domovská stránka: %1 License: %1 About dialog, 'About' tab text Licence: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt je přeložen do mnoha jazyků díky práci překladatelských týmů z celého světa. Yes Ano No Ne <b>LXQt Desktop Toolbox - Technical Info</b> <b>Nástroje LXQt Desktop - Technické informace</b> Version Verze Qt Qt Debug Build Ladicí sestavení System Configuration Nastavení systému Share Directory Sdílený adresář Translations About dialog, Tab title Překlady <b>User Directories</b> <b>Uživatelské adresáře</b> Xdg Data Home Domovská složka pro data Xdg Xdg Config Home Domovská složka pro nastavení Xdg Xdg Data Dirs Adresáře pro data Xdg Xdg Cache Home Domovská složka pro vyrovnávací paměť Xdg Xdg Runtime Home Domovská složka pro čas běhu Xdg Xdg Autostart Dirs Adresáře pro automatické spuštění Xdg Xdg Autostart Home Domovská složka pro automatické spuštění Xdg LXQt::MessageBox LXQt Power Manager Error Chyba ve správě energie Hibernate failed. Hibernace se nezdařila. LXQt::NotificationPrivate Notifications Fallback Záloha oznamování LXQt::PowerManager Hibernate Hibernovat Suspend Uspat Reboot Restartovat Shutdown Vypnout Logout Odhlásit se LXQt Session Suspend Pozastavení sezení LXQtu Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Opravdu chcete uspat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému není při ztrátě energie zachován. LXQt Session Hibernate Zazimování sezení LXQtu Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Opravdu chcete zazimovat svůj počítač?<p>Uvede počítač do stavu s nízkým odběrem elektrické energie. Stav systému je při ztrátě energie zachován. LXQt Session Reboot Spuštění sezení LXQtu znovu Do you want to really restart your computer? All unsaved work will be lost... Opravdu chcete spustit svůj počítač znovu?<p>Všechna neuložená práce bude ztracena... LXQt Session Shutdown Vypnutí sezení LXQtu Do you want to really switch off your computer? All unsaved work will be lost... Opravdu chcete vypnout svůj počítač?<p>Všechna neuložená práce bude ztracena... LXQt Session Logout Odhlášení sezení LXQtu Do you want to really logout? All unsaved work will be lost... Opravdu se chcete odhlásit?<p>Všechna neuložená práce bude ztracena... LXQt Power Manager Error Chyba ve správě energie Hibernate failed. Hibernace se nezdařila. Suspend failed. Uspání se nezdařilo. LXQt::ScreenSaver Lock Screen Zamknout obrazovku Screen Saver Error Screen Saver Activation Error Chyba při zapínání šetřiče obrazovky An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensavernelze spustit kvůli jeho pádu. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver není nainstalován správně. An error occurred starting screensaver. xdg-screensaver cannot be started. Při spouštění šetřiče obrazovky se vyskytla chyba. xdg-screensaver nelze spustit. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Při spouštění šetřiče obrazovky se vyskytla chyba. Chybná skladba v argumentech xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Při spouštění šetřiče obrazovky se vyskytla chyba. Ujistěte se, že máte xdg-screensaver nainstalován a že běží. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Při spouštění šetřiče obrazovky se vyskytla chyba. Krok "zapnutí" se nezdařil. Ujistěte se, že máte xdg-screensaver nainstalován a že běží. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Během spouštění spořiče obrazovky se vyskytla chyba. Neznámá chyba - nezdokumentovaná vrácená hodnota od xdg-screensaver=%1. LXQt::ShortcutButton Clear Smazat None Žádný QObject Power Manager Error Chyba správce energie QDBusInterface is invalid QDBusInterface je neplatné Power Manager Error (D-BUS call) Chyba správce energie (volání D-BUS) about About LXQt O prostředí LXQt About About dialog, Tab title O Authors About dialog, Tab title Autoři Thanks About dialog, Tab title Poděkování Translations About dialog, Tab title Překlady Technical Info About dialog, Tab title Technické informace liblxqt-0.10.0/translations/liblxqt_da.ts000066400000000000000000000171701261560636100204770ustar00rootroot00000000000000 ConfigDialog Dialog LXQt::MessageBox LXQt Power Manager Error Hibernate failed. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Suspend Reboot Shutdown Logout LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... LXQt Session Shutdown Do you want to really switch off your computer? All unsaved work will be lost... LXQt Session Logout Do you want to really logout? All unsaved work will be lost... LXQt Power Manager Error Hibernate failed. Suspend failed. LXQt::ScreenSaver Lock Screen Screen Saver Error Screen Saver Activation Error An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) liblxqt-0.10.0/translations/liblxqt_da_DK.ts000066400000000000000000000363401261560636100210550ustar00rootroot00000000000000 AddPluginDialog Add plugins Tilføj plugins Search: Søg: Add plugin Tilføj plugin Close Afslut ConfigDialog Dialog Dialog LXQt::AboutDialogPrivate Version: %1 Version: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Avanceret, nem at bruge, hurtigt skrivebordsmiljø baseret på Qt teknologier. Copyright: %1-%2 %3 About dialog, 'About' tab text Copyright: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Hjemmeside: %1 License: %1 About dialog, 'About' tab text Licens: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt er oversat til mange sprog takket være oversættere fra hele verden. Yes Ja No Nej <b>LXQt Desktop Toolbox - Technical Info</b> <b>LXQt Desktop Værktøjskasse - Teknisk Information</b> Version Version Qt Qt Debug Build Fejlsøgningsversion System Configuration Systemindstillinger Share Directory Delt Katalog Translations About dialog, Tab title Oversættelser <b>User Directories</b> <b>Bruger Biblioteker</b> Xdg Data Home Xdg Brugerdata Katalog Xdg Config Home Xdg Konfigurationsdata Katalog Xdg Data Dirs Xdg Data Kataloger Xdg Cache Home Xdg Cache Katalog Xdg Runtime Home Xdg udførselskatalog Xdg Autostart Dirs Xdg Autostart Katalog Xdg Autostart Home Xdg Autostart Hjemmekatalog LXQt::MessageBox LXQt Power Manager Error LXQt Strømstyringsfejl Hibernate failed. Dvaletilstand mislykkedes. LXQt::NotificationPrivate Notifications Fallback Alternativ Påmindelse LXQt::PowerManager Hibernate Dvale Suspend Slumre Reboot Genstart Shutdown Luk ned Logout Log ud LXQt Session Suspend LXQt Session Slumre Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Vil du virkelig sætte din computer i slumretilstand?<p>Slumretilstand sætter computeren i energispare tilstand. Systemtilstanden mistes hvis strømmen forsvinder. LXQt Session Hibernate LXQt Session Dvale Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Vil du virkelig sætte din computer i dvaletilstand?<p>Dvaletilstand sætter computeren i energispare tilstand. Systemtilstanden bibeholdes hvis strømmen forsvinder. LXQt Session Reboot LXQt Session Genstart Do you want to really restart your computer? All unsaved work will be lost... Vil du virkelig genstarte din computer? Alt arbejde der ikke er blevet gemt, vil gå tabt... LXQt Session Shutdown LXQt Session Luk Ned Do you want to really switch off your computer? All unsaved work will be lost... Vil du virkelig slukke din computer? Alt arbejde der ikke er blevet gemt, vil gå tabt... LXQt Session Logout LXQt Session Log Ud Do you want to really logout? All unsaved work will be lost... Vil du virkelig logge ud? Alt arbejde der ikke er blevet gemt, vil gå tabt... LXQt Power Manager Error LXQt Strømstyringsfejl Hibernate failed. Dvaletilstand mislykkedes. Suspend failed. Slumretilstand mislykkedes. LXQt::ScreenSaver Lock Screen Lås Skærm Screen Saver Error Screen Saver Activation Error Fejl ved aktivering af pauseskærm An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Fejl ved start af screensaver. xdg-pauseskærm kan ikke starte på grund af nedbrud. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Fejl ved start af screensaver. xdg-pauseskærm er ikke korrekt installeret. An error occurred starting screensaver. xdg-screensaver cannot be started. Fejl ved start af screensaver. xdg-pauseskærm kan ikke starte. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Fejl ved start af screensaver. Syntaksfejl i argumenter til xdg-pauseskærm. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Fejl ved start af screensaver. Sørg for at du har xscreensaver installeret og kørende. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Fejl ved start af screensaver. Handling 'aktivere' mislykkedes. Sørg for at du har xscreensaver installeret og kørende. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. En fejl opstod ved start af pauseskærm. Ukendt fejl - udokumenteret returværdi sendt fra xdg-screensaver=%1. LXQt::ShortcutButton Clear Rens None Ingen QObject Power Manager Error Strømstyrings fejl QDBusInterface is invalid QDBusInterface er ugyldig Power Manager Error (D-BUS call) Strømstyrings fejl (D-BUS kald) about About LXQt Om LXQt About About dialog, Tab title Omkring Authors About dialog, Tab title Forfattere Thanks About dialog, Tab title Tak Translations About dialog, Tab title Oversættelser Technical Info About dialog, Tab title Teknisk Information liblxqt-0.10.0/translations/liblxqt_de.ts000066400000000000000000000214061261560636100205000ustar00rootroot00000000000000 ConfigDialog Dialog Dialog LXQt::MessageBox LXQt Power Manager Error Fehler der LXQt-Energieverwaltung Hibernate failed. Tiefschlaf fehlgeschlagen. LXQt::NotificationPrivate Notifications Fallback Ersatzbenachrichtigung LXQt::PowerManager Hibernate Tiefschlaf Suspend Bereitschaft Reboot Neustart Shutdown Herunterfahren Logout Abmelden LXQt Session Suspend LXQt Bereitschaft Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Möchten Sie ihren Computer in Bereitschaft versetzen?<p>Dies versetzt ihren Computer in einen Energiesparmodus. Der Systemzustand geht verloren, wenn die Energiezufuhr abbricht. LXQt Session Hibernate LXQt Tiefschlaf Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Möchten Sie ihren Computer in Tiefschlaf versetzen?<p>Dies versetzt ihren Computer in einen Energiesparmodus. Der Systemzustand bleibt erhalten, wenn die Energiezufuhr abbricht. LXQt Session Reboot LXQt Neustart Do you want to really restart your computer? All unsaved work will be lost... Möchten Sie ihren Computer wirklich neustarten? Alle ungespeicherten Arbeiten gehen verloren... LXQt Session Shutdown LXQt Herunterfahren Do you want to really switch off your computer? All unsaved work will be lost... Möchten Sie ihren Computer wirklich herunterfahren? Alle ungespeicherten Arbeiten gehen verloren... LXQt Session Logout LXQt Abmelden Do you want to really logout? All unsaved work will be lost... Möchten Sie sich wirklich abmelden? Alle ungespeicherten Arbeiten gehen verloren... LXQt Power Manager Error Fehler der LXQt-Energieverwaltung Hibernate failed. Tiefschlaf fehlgeschlagen. Suspend failed. Bereitschaft fehlgeschlagen. LXQt::ScreenSaver Lock Screen Bildschirm sperren Screen Saver Error Bildschirmschoner-Fehler An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Syntaxfehler in den Parametern für xdg-screensaver. Screen Saver Activation Error Fehler beim Aktivieren des Bildschirmschoners An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Bitte stellen Sie sicher, dass xscreensaver installiert ist und funktioniert. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Aktion 'aktivieren' fehlgeschlagen. Bitte stellen Sie sicher, dass xscreensaver installiert ist und funktioniert. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. Beim Starten des Bildschirmschoners ist ein Fehler aufgetreten. Unbekannter Fehler - ein undokumentierter Rückgabewert wurde von xdg-screensaver ausgegeben: %1. QObject Power Manager Error Fehler der Energieverwaltung QDBusInterface is invalid QDBusInterface ist ungültig Power Manager Error (D-BUS call) Fehler der Energieverwaltung (D-BUS-Aufruf) liblxqt-0.10.0/translations/liblxqt_el.ts000066400000000000000000000441111261560636100205060ustar00rootroot00000000000000 AddPluginDialog Add plugins Προσθήκη πρόσθετων Search: Αναζήτηση: Add plugin Προσθήκη επέκτασης Close Κλείσιμο ConfigDialog Dialog Διάλογος LXQt::AboutDialogPrivate Version: %1 Έκδοση: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Προηγμένη, εύκολη στη χρήση και γρήγορη επιφάνεια εργασίας με βάση τις τεχνολογίες Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Πνευματικά δικαιώματα: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Ιστοσελίδα: %1 License: %1 About dialog, 'About' tab text Άδεια χρήσης: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text Το LXQt έχει μεταφραστεί σε πολλές γλώσσες χάρη στο έργο των μεταφραστικών ομάδων ανά την υφήλιο. Yes Ναι No Όχι <b>LXQt Desktop Toolbox - Technical Info</b> <b>Επιφάνεια εργασίας LXQt - Τεχνικές πληροφορίες</b> Version Έκδοση Qt Qt Debug Build Κατασκευή αποσφαλμάτωσης System Configuration Διαμόρφωση συστήματος Share Directory Κοινόχρηστος κατάλογος Translations About dialog, Tab title Μεταφράσεις <b>User Directories</b> <b>Κατάλογοι χρηστών</b> Xdg Data Home Αρχικός κατάλογος δεδομένων xdg Xdg Config Home Αρχικός κατάλογος διαμόρφωσης xdg Xdg Data Dirs Κατάλογοι δεδομένων xdg Xdg Cache Home Αρχικός κατάλογος λανθάνουσας μνήμης xdg Xdg Runtime Home Αρχικός κατάλογος εκτέλεσης xdg Xdg Autostart Dirs Κατάλογοι αυτόματης εκκίνησης xdg Xdg Autostart Home Αρχικός κατάλογος αυτόματης εκκίνησης xdg LXQt::MessageBox LXQt Power Manager Error Σφάλμα διαχείρισης ενέργειας LXQt Hibernate failed. Αποτυχία νάρκωσης. LXQt::NotificationPrivate Notifications Fallback Ανακατεύθυνση ειδοποιήσεων LXQt::PowerManager Hibernate Νάρκη Suspend Αναστολή Reboot Επανεκκίνηση Shutdown Τερματισμός Logout Αποσύνδεση LXQt Session Suspend Αναστολή της συνεδρίας LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Θέλετε πραγματικά να γίνει αναστολή του υπολογιστή;<p>Θέτει τον υπολογιστή σε κατάσταση χαμηλής κατανάλωσης. Η κατάσταση του συστήματος δεν διατηρείται εάν διακοπεί η παροχή ρεύματος. LXQt Session Hibernate Νάρκωση της συνεδρίας LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Θέλετε πραγματικά να τεθεί σε νάρκη ο υπολογιστής;<p>Θέτει τον υπολογιστή σε κατάσταση χαμηλής κατανάλωσης. Η κατάσταση του συστήματος διατηρείται εάν διακοπεί η παροχή ρεύματος. LXQt Session Reboot Επανεκκίνηση συνεδρίας LXQt Do you want to really restart your computer? All unsaved work will be lost... Θέλετε πραγματικά να επανεκκινήσετε τον υπολογιστή; Όλες οι μη αποθηκευμένες εργασίες σας θα χαθούν... LXQt Session Shutdown Τερματισμός συνεδρίας LXQt Do you want to really switch off your computer? All unsaved work will be lost... Θέλετε πραγματικά να τερματίσετε τον υπολογιστή; Όλες οι μη αποθηκευμένες εργασίες σας θα χαθούν... LXQt Session Logout Αποσύνδεση της συνεδρίας LXQt Do you want to really logout? All unsaved work will be lost... Θέλετε πραγματικά να αποσυνδεθείτε; Όλες οι μη αποθηκευμένες εργασίες σας θα χαθούν... LXQt Power Manager Error Σφάλμα διαχείρισης της ενέργειας LXQt Hibernate failed. Αποτυχία νάρκωσης. Suspend failed. Αποτυχία αναστολής. LXQt::ScreenSaver Lock Screen Κλείδωμα οθόνης Screen Saver Error Screen Saver Activation Error Σφάλμα ενεργοποίησης της προστασίας οθόνης An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Προκλήθηκε ένα σφάλμα κατά την έναρξη της προστασίας οθόνης. Αδυναμία εκκίνησης της προστασίας οθόνης xdg λόγω κατάρρευσης. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Προκλήθηκε ένα σφάλμα κατά την έναρξη της προστασίας οθόνης. Η προστασία οθόνης xdg δεν είναι εγκατεστημένη σωστά. An error occurred starting screensaver. xdg-screensaver cannot be started. Προκλήθηκε ένα σφάλμα κατά την έναρξη της προστασίας οθόνης. Αδυναμία έναρξης της προστασίας οθόνης xdg. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Προκλήθηκε ένα σφάλμα κατά την έναρξη της προστασίας οθόνης. Σφάλμα σύνταξης των παραμέτρων της προστασίας οθόνης xdg. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Προκλήθηκε ένα σφάλμα κατά την έναρξη της προστασίας οθόνης. Διασφαλίστε ότι η προστασία οθόνης είναι εγκατεστημένη και ότι εκτελείται. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Προκλήθηκε ένα σφάλμα κατά την έναρξη της προστασία οθόνης. Αποτυχία ενέργειας «ενεργοποίηση». Διασφαλίστε ότι η προστασία οθόνης είναι εγκατεστημένη και ότι εκτελείται. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Προκλήθηκε ένα σφάλμα κατά την έναρξη της προστασίας οθόνης. Άγνωστο σφάλμα - μη τεκμηριωμένη τιμή επιστροφής από την προστασία οθόνης=%1. LXQt::ShortcutButton Clear Καθαρισμός None Κανένα QObject Power Manager Error Σφάλμα διαχείρισης ενέργειας QDBusInterface is invalid Το QDBusInterface δεν είναι έγκυρο Power Manager Error (D-BUS call) Σφάλμα διαχείρισης ενέργειας (κλήση D-BUS) about About LXQt Σχετικά με το LXQt About About dialog, Tab title Σχετικά Authors About dialog, Tab title Συγγραφείς Thanks About dialog, Tab title Ευχαριστίες Translations About dialog, Tab title Μεταφράσεις Technical Info About dialog, Tab title Τεχνικές πληροφορίες liblxqt-0.10.0/translations/liblxqt_eo.ts000066400000000000000000000223421261560636100205130ustar00rootroot00000000000000 AddPluginDialog Add plugins Aldoni kromprogramojn Search: Serĉi: Add plugin Aldoni kromprogramon Close Fermi ConfigDialog Dialog Dialogo LXQt::AboutDialogPrivate Yes Jes No Ne LXQt::MessageBox LXQt Power Manager Error Hibernate failed. Pasivumigo fiaskis. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Pasivumigi Suspend Prokrasti Reboot Restartigi Shutdown Elŝalti Logout Elsaluti LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... LXQt Session Shutdown Do you want to really switch off your computer? All unsaved work will be lost... LXQt Session Logout Do you want to really logout? All unsaved work will be lost... LXQt Power Manager Error Hibernate failed. Pasivumigo fiaskis. Suspend failed. Prokrasto fiaskis. LXQt::ScreenSaver Lock Screen Ŝlosi ekranon Screen Saver Error Screen Saver Activation Error An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. LXQt::ShortcutButton Clear Vakigi None Nenio QObject Power Manager Error QDBusInterface is invalid QDBusInterface nevalidas Power Manager Error (D-BUS call) about About LXQt Pri LXQto About About dialog, Tab title Pri Technical Info About dialog, Tab title Teknikaj informoj liblxqt-0.10.0/translations/liblxqt_es.ts000066400000000000000000000371621261560636100205250ustar00rootroot00000000000000 AddPluginDialog Add plugins Añadir extensiones Search: Buscar: Add plugin Añadir extensión Close Cerrar ConfigDialog Dialog Dialogo LXQt::AboutDialogPrivate Version: %1 Versión %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Avanzado, fácil de usar y rápido entorno de escritorio basado en tecnologías Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Copyright: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Página principal: %1 License: %1 About dialog, 'About' tab text Licencia: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt es traducido a muchos idiomas gracias a la labor de los equipos de traducción en todo el mundo. Yes Si No No <b>LXQt Desktop Toolbox - Technical Info</b> <b>Caja de herramientas del Escritorio LXQt - Información técnica</b> Version Versión Qt Qt Debug Build Construcción con símbolos de depuración System Configuration Configuración del Sistema Share Directory Directorio compartido Translations About dialog, Tab title Traducciones <b>User Directories</b> <b>Directorios de usuario</b> Xdg Data Home Xdg Datos de inicio de usuario Xdg Config Home Xdg Configuración de inicio del usuario Xdg Data Dirs Xdg Directorios de datos Xdg Cache Home Xdg Cache de inicio de usuario Xdg Runtime Home Xdg Inicio de ejecución de usuario Xdg Autostart Dirs Xdg Directorio de inicio automático Xdg Autostart Home Xdg Directorio de usuario de inicio automático LXQt::MessageBox LXQt Power Manager Error Error del gestor de energía de LXQt Hibernate failed. Hibernación fallida. LXQt::NotificationPrivate Notifications Fallback Notificaciones de retorno LXQt::PowerManager Hibernate Hibernar Suspend Suspender Reboot Reiniciar Shutdown Apagar Logout Cerrar sesión LXQt Session Suspend Suspender sesión LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. ¿Realmente desdea suspender su PC?<p>Suspende la PC a un estado de bajo consumo. El estado del sistema no se preserva si se agota la energía. LXQt Session Hibernate Hibernar la sesión LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. ¿Realmente desea hibernar su PC?<p>Hiberna la PC a un estado de bajo consumo. El estado del sistema se preserva si se agota la energía. LXQt Session Reboot Reiniciar la sesión LXQt Do you want to really restart your computer? All unsaved work will be lost... ¿Realmente desea reiniciar su PC? Todo el trabajo sin guardar se perderá... LXQt Session Shutdown Apagar la sesión LXQt Do you want to really switch off your computer? All unsaved work will be lost... ¿Realmente desea apagar su PC? Todo el trabajo sin guardar se perderá... LXQt Session Logout Cerrar la sesión LXQt Do you want to really logout? All unsaved work will be lost... ¿Realmente desea cerrar la sesión? Todo el trabajo sin guardar se perderá... LXQt Power Manager Error Error del gestor de energía de LXQt Hibernate failed. Hibernación fallida. Suspend failed. Suspensión fallida. LXQt::ScreenSaver Lock Screen Bloquear pantalla Screen Saver Error Screen Saver Activation Error Error de activación del protector de pantalla An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Ocurrió un error al iniciar el protector de pantalla. xdg-screensaver no puede iniciar debido a un error. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Ocurrió un error al iniciar el protector de pantalla. xdg-screensaver no está correctamente instalado. An error occurred starting screensaver. xdg-screensaver cannot be started. Ocurrió un error al iniciar el protector de pantalla. xdg-screensaver no puede iniciar. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Ocurrió un error al iniciar el protector de pantalla. Error de sintaxis en los argumentos de xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Ocurrió un error al iniciar el protector de pantalla. Asegúrese de tener xdg-screensaver instalado y ejecutándose. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Ocurrió un error al iniciar el protector de pantalla. La acción 'activate' falló. Asegúrese de tener xdg-screensaver instalado y ejecutándose. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Ocurrio un error al inicio el protector de pantalla. Error desconocido - valor de retorno de xdg-screensaver no documentado=%1 LXQt::ShortcutButton Clear Limpiar None Ninguno QObject Power Manager Error Error del administrador de energía QDBusInterface is invalid QDBusInterface es inválido Power Manager Error (D-BUS call) Error en el adminstrador de energía (llamado D-BUS) about About LXQt Acerca de LXQt About About dialog, Tab title Acerca Authors About dialog, Tab title Autores Thanks About dialog, Tab title Gracias Translations About dialog, Tab title Traducciones Technical Info About dialog, Tab title Información Técnica liblxqt-0.10.0/translations/liblxqt_es_VE.ts000066400000000000000000000371471261560636100211220ustar00rootroot00000000000000 AddPluginDialog Add plugins Agregar plugins Search: Buscar: Add plugin Agregar plugin Close Cerrar ConfigDialog Dialog Dialogo LXQt::AboutDialogPrivate Version: %1 Version: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Avanzado, facil de usar, rapido entorno de escritorio basado en tecnologia QT. Copyright: %1-%2 %3 About dialog, 'About' tab text Copyright: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text pagina web: %1 License: %1 About dialog, 'About' tab text Licencia: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt es traducido en muchos lenguajes gracias al trabajo de traductores en todo el mundo. Yes Si No No <b>LXQt Desktop Toolbox - Technical Info</b> <b>Utilidad de Escritorio LXQt - Informacion</b> Version Version Qt Qt Debug Build Debug Build System Configuration Configuracion del sistema Share Directory Directorio de Data Translations About dialog, Tab title Traducciones <b>User Directories</b> <b>Directorio de usuario</b> Xdg Data Home Xdg Data Home Xdg Config Home Xdg Config Home Xdg Data Dirs Xdg Data Dirs Xdg Cache Home Xdg Cache Home Xdg Runtime Home Xdg Runtime Home Xdg Autostart Dirs Xdg Autostart Dirs Xdg Autostart Home Xdg Autostart Home LXQt::MessageBox LXQt Power Manager Error Error en Gestion de energia de LXQt Hibernate failed. Hibernacion ha fallado. LXQt::NotificationPrivate Notifications Fallback Delegacion de notificaciones LXQt::PowerManager Hibernate Hibernar Suspend Suspender Reboot Reiniciar Shutdown Apagar Logout Salirse LXQt Session Suspend Suspension del sistema por LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Quiere usted realmente suspender su computador?<p>Suspendera el computador en un estado de baja energia. El estado del sistema operativo no se preservara ante la perdida o caida de energia. LXQt Session Hibernate Hibernacion del sistema por LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Quiere usted realmente hibernar su computador?<p>Hibernara el computador en un estado de baja energia y lo guardara en el disco. El estado del sistema si se preservara ante la perdida o caida de energia. LXQt Session Reboot Reinicio del sistema por LXQt Do you want to really restart your computer? All unsaved work will be lost... Quiere usted realmente reiniciar su computador? Todo el trabajo realizado se perdera si no lo ha guardado, dado que se cerrara... LXQt Session Shutdown Apagado del sistema por LXQt Do you want to really switch off your computer? All unsaved work will be lost... Quiere usted realmente apagar su computador?<p> Todo el trabajo realizado se perdera si no lo ha guardado, dado que se apagara... LXQt Session Logout Cierre de la sesion por LXQt Do you want to really logout? All unsaved work will be lost... Quiere realmente cerar su sesion? Todo el trabajo realizado se perdera si no lo ha guardado, dado que se cerrara... LXQt Power Manager Error Error en Gestion de energia de LXQt Hibernate failed. Hibernacion ha fallado. Suspend failed. Suspensión ha fallado. LXQt::ScreenSaver Lock Screen Bloquear Pantalla Screen Saver Error Screen Saver Activation Error Activacion de salvapantallas erronea An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Un error ha ocurrido al iniciar el salvapantallas. xdg-screensaver no puede iniciarlo debido a un fallo grave. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Un error ha ocurridoal iniciar el salvapantallas. xdg-screensaver no esta instalado correctamente. An error occurred starting screensaver. xdg-screensaver cannot be started. Un error ha ocurridoal iniciar el salvapantallas. xdg-screensaver no puede iniciarse. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Un error ha ocurridoal iniciar el salvapantallas. Error en argumentos dados a xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Un error ha ocurridoal iniciar el salvapantallas. Asegurate tengas el xscreensaver instalado y ejecutandose. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Un error ha ocurridoal iniciar el salvapantallas. Accion 'activate' fallida. Asegurate tengas xscreensaver instalado y corriendo. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Un error ocurrio iniciando el salvapantallas. Desconocido - valor retornado indocumentado desde xdg-screensaver=%1. LXQt::ShortcutButton Clear Limpiar None Nada QObject Power Manager Error Error del manejador de energia QDBusInterface is invalid La interfaz Dbus Qt es invalida Power Manager Error (D-BUS call) Error del manejador de energia (llamada Dbus) about About LXQt Acerca de LXQt About About dialog, Tab title Acerca Authors About dialog, Tab title Autores Thanks About dialog, Tab title Agradecimientos Translations About dialog, Tab title Traducciones Technical Info About dialog, Tab title Informacion liblxqt-0.10.0/translations/liblxqt_eu.ts000066400000000000000000000370151261560636100205240ustar00rootroot00000000000000 AddPluginDialog Add plugins Gehitu pluginak Search: Bilatu: Add plugin Gehitu plugina Close Itxi ConfigDialog Dialog Elkarrizketa-koadroa LXQt::AboutDialogPrivate Version: %1 Bertsioa: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Qt teknologietan oinarritutako mahaigain-ingurune aurreratu, erabilerraz eta azkarra. Copyright: %1-%2 %3 About dialog, 'About' tab text Copyright-a: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Webgunea: %1 License: %1 About dialog, 'About' tab text Lizentzia: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt hainbat hizkuntzetara itzulita dago mundu osoko itzulpen-taldeen lanari esker. Yes Bai No Ez <b>LXQt Desktop Toolbox - Technical Info</b> <b>LXQt mahaigainaren tresna-jokoa - Informazio teknikoa</b> Version Bertsioa Qt Qt Debug Build Arazteko eraikitzea System Configuration Sistemaren konfigurazioa Share Directory Partekatu direktorioa Translations About dialog, Tab title Itzulpenak <b>User Directories</b> <b>Erabiltzailearen direktorioak</b> Xdg Data Home Xdg datuen etxea Xdg Config Home Xdg konfigurazioen etxea Xdg Data Dirs Xdg datuen direktorioak Xdg Cache Home Xdg cache-aren etxea Xdg Runtime Home Xdg exekuzio-denborako etxea Xdg Autostart Dirs Xdg autoabioaren direktorioak Xdg Autostart Home Xdg autoabioaren etxea LXQt::MessageBox LXQt Power Manager Error LXQt energia-kudeatzailearen errorea Hibernate failed. Hibernatzeak huts egin du. LXQt::NotificationPrivate Notifications Fallback Ordezko jakinarazpenak LXQt::PowerManager Hibernate Hibernatu Suspend Eseki Reboot Berrabiarazi Shutdown Itzali Logout Amaitu saioa LXQt Session Suspend LXQt saioa eseki Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Ziur zaude ordenagailua eseki nahi duzula?<p>Energia baxuko egoera batetara esekitzen du ordenagailua. Sistemaren egoera ez da mantentzen korrontea eteten bada. LXQt Session Hibernate LXQt saioa hibernatu Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Ziur zaude ordenagailua hibernatu nahi duzula?<p>Energia baxuko egoera batetara hibernatzen du ordenagailua. Sistemaren egoera mantentzen da korrontea eteten bada. LXQt Session Reboot LXQt saioa berrabiarazi Do you want to really restart your computer? All unsaved work will be lost... Ziur zaude ordenagailua berrabiarazi nahi duzula? Gorde gabeko lan guztiak galduko dira... LXQt Session Shutdown LXQt saioa itzali Do you want to really switch off your computer? All unsaved work will be lost... Ziur zaude ordenagailua itzali nahi duzula? Gorde gabeko lan guztiak galduko dira... LXQt Session Logout LXQt saioa amaitu Do you want to really logout? All unsaved work will be lost... Ziur zaude saioa amaitu nahi duzula? Gorde gabeko lan guztiak galduko dira... LXQt Power Manager Error LXQt energia-kudeatzailearen errorea Hibernate failed. Hibernatzeak huts egin du. Suspend failed. Esekitzeak huts egin du. LXQt::ScreenSaver Lock Screen Blokeatu pantaila Screen Saver Error Screen Saver Activation Error Pantaila-babeslearen aktibatze-errorea An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Errore bat gertatu da pantaila-babeslea abiaraztean. Ezin da xdg-screensaver abiarazi kraskatzea dela eta. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Errore bat gertatu da pantaila-babeslea abiaraztean. xdg-screensaver ez dago behar bezala instalatuta. An error occurred starting screensaver. xdg-screensaver cannot be started. Errore bat gertatu da pantaila-babeslea abiaraztean. Ezin da xdg-screensaver abiarazi. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Errore bat gertatu da pantaila-babeslea abiaraztean. Sintaxi-errore bat dago xdg-screensaver-en argumentuetan. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Errore bat gertatu da pantaila-babeslea abiaraztean. Ziurtatu xdg-screensaver instalatuta eta martxan dagoela. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Errore bat gertatu da pantaila-babeslea abiaraztean. 'Aktibatu' ekintzak huts egin du. Ziurtatu xdg-screensaver instalatuta eta martxan dagoela. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Errore bat gertatu da pantaila-babeslea abiaraztean. Errore ezezaguna - dokumentatu gabeko balioa itzuli du xdg-screensaver-ek: %1 LXQt::ShortcutButton Clear Garbitu None Bat ere ez QObject Power Manager Error Energia-kudeatzailearen errorea QDBusInterface is invalid QDBusInterface baliogabea da Power Manager Error (D-BUS call) Energia-kudeatzailearen errorea (D-BUS deia) about About LXQt LXQt-i buruz About About dialog, Tab title Honi buruz Authors About dialog, Tab title Egileak Thanks About dialog, Tab title Eskerrak Translations About dialog, Tab title Itzulpenak Technical Info About dialog, Tab title Informazio teknikoa liblxqt-0.10.0/translations/liblxqt_fi.ts000066400000000000000000000301461261560636100205070ustar00rootroot00000000000000 AddPluginDialog Add plugins Lisää liitännäisiä Search: Etsi: Add plugin Lisää liitännäinen Close Sulje ConfigDialog Dialog Ikkuna LXQt::AboutDialogPrivate Version: %1 Versio: %1 Copyright: %1-%2 %3 About dialog, 'About' tab text Tekijänoikeus: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Verkkosivusto: %1 License: %1 About dialog, 'About' tab text Lisenssi: %1 Yes Kyllä No Ei Version Versio Qt Qt Translations About dialog, Tab title Käännökset LXQt::MessageBox LXQt Power Manager Error LXQtin virranhallintavirhe Hibernate failed. Lepotilaan siirtyminen epäonnistui. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Lepotila Suspend Valmiustila Reboot Käynnistä uudelleen Shutdown Sammuta Logout Kirjaudu ulos LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... Haluatko varmasti käynnistää tietokoneen uudelleen? Kaikki tallentamaton tieto menetetään... LXQt Session Shutdown LXQt-istunnon sammutus Do you want to really switch off your computer? All unsaved work will be lost... Haluatko varmasti sammuttaa tietokoneen? Kaikki tallentamaton tieto menetetään... LXQt Session Logout LXQt-istunnon uloskirjaus Do you want to really logout? All unsaved work will be lost... Haluatko varmasti kirjautua ulos? Kaikki tallentamaton tieto menetetään... LXQt Power Manager Error LXQtin virranhallintavirhe Hibernate failed. Lepotilaan siirtyminen epäonnistui. Suspend failed. Valmiustilaan siirtyminen epäonnistui. LXQt::ScreenSaver Lock Screen Lukitse näyttö Screen Saver Error Screen Saver Activation Error Näytönsäästäjän käynnistysvirhe An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Näytönsäästäjää käynnistäessä ilmeni virhe. Näytönsäästäjää xdg-screensaver ei voi käynnistää, koska se kaatui. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Näytönsäästäjää käynnistäessä ilmeni virhe. Näytönsäästäjän xdg-screensaver asennus ei ole kunnossa. An error occurred starting screensaver. xdg-screensaver cannot be started. Näytönsäästäjää käynnistäessä ilmeni virhe. Näytönsäästäjää xdg-screensaver ei voi käynnistää. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Näytönsäästäjää käynnistäessä ilmeni virhe. Varmista, että xscreensaver on asennettu ja että se on toiminnassa. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Näytönsäästäjää käynnistäessä ilmeni virhe. Toiminto 'activate' epäonnistui. Varmista, että xscreensaver on asennettu ja että se on toiminnassa. LXQt::ShortcutButton Clear Tyhjennä QObject Power Manager Error Virranhallinnan virhe QDBusInterface is invalid QDBusInterface on virheellinen Power Manager Error (D-BUS call) Virranhallinan virhe (D-Bus-kutsu) about About LXQt Tietoja LXQtista About About dialog, Tab title Tietoja Authors About dialog, Tab title Tekijät Thanks About dialog, Tab title Kiitokset Translations About dialog, Tab title Käännökset liblxqt-0.10.0/translations/liblxqt_fr_FR.ts000066400000000000000000000272561261560636100211170ustar00rootroot00000000000000 AddPluginDialog Add plugins Ajouter des extensions Search: Chercher : Add plugin Ajouter l'extension Close Fermer ConfigDialog Dialog Dialogue LXQt::AboutDialogPrivate Yes Oui No Non LXQt::MessageBox LXQt Power Manager Error Erreur du gestionnaire d'énergie de LXQt Hibernate failed. Échec de la mise en hibernation. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Hiberner Suspend Suspendre Reboot Redémarrer Shutdown Éteindre Logout Se déconnecter LXQt Session Suspend Suspendre la session LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Voulez-vous vraiment suspendre votre ordinateur?<p>Votre ordinateur consommera un peu d'énergie. L'état du système ne sera pas préservé si l'énergie est perdue. LXQt Session Hibernate Mettre la session LXQt en hibernation Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Voulez-vous vraiment mettre votre ordinateur en hibernation?<p>Votre ordinateur consommera un peu d'énergie. L'état du système sera préservé si l'énergie est perdue. LXQt Session Reboot Redémarrer la session LXQt Do you want to really restart your computer? All unsaved work will be lost... Voulez-vous vraiment redémarrer votre ordinateur? Tout travail non sauvegardé sera perdu... LXQt Session Shutdown Éteindre la session LXQt Do you want to really switch off your computer? All unsaved work will be lost... Voulez-vous vraiment éteindre votre ordinateur? Tout travail non sauvegardé sera perdu... LXQt Session Logout Se déconnecter de la session LXQt Do you want to really logout? All unsaved work will be lost... Voulez-vous vraiment vous déconnecter? Tout travail non sauvegardé sera perdu... LXQt Power Manager Error Erreur du gestionnaire d'énergie de LXQt Hibernate failed. Échec de la mise en hibernation. Suspend failed. Échec de la suspension. LXQt::ScreenSaver Lock Screen Verrouiller l'écran Screen Saver Error Screen Saver Activation Error Erreur lors de la mise en veille An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Une erreur est survenue lors du démarrage de l'écran de veille. xdg-screensaver n'a pas pu démarrer. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Une erreur est survenue lors du démarrage de l'écran de veille. xdg-screensaver n'est pas installé correctement. An error occurred starting screensaver. xdg-screensaver cannot be started. Une erreur est survenue lors du démarrage de l'écran de veille. xdg-screensaver n'a pas pu démarrer. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Une erreur est survenue lors du démarrage de l'écran de veille. Les arguments de xdg-screensaver contiennent des erreurs de syntaxe. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Une erreur est survenue lors du démarrage de l'écran de veille. Assurez-vous que screensaver est installé et actif. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Une erreur est survenue lors du démarrage de l'écran de veille. L'action 'activate' a échoué. Assurez-vous que screensaver est installé et actif. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Une erreur s'est produite au lancement de l'économiseur d'écran. Erreur inconnue - valeur retournée par xdg-screensaver=%1 non documentée. LXQt::ShortcutButton Clear Vider None Aucun(e) QObject Power Manager Error Erreur du gestionnaire d'énergie QDBusInterface is invalid QDBusInterface invalide Power Manager Error (D-BUS call) Erreur du gestionnaire d'énergie (appel D-BUS) about About LXQt À propos de LXQt About About dialog, Tab title À propos Technical Info About dialog, Tab title Informations techniques liblxqt-0.10.0/translations/liblxqt_hu.ts000066400000000000000000000335721261560636100205330ustar00rootroot00000000000000 AddPluginDialog Search: Keres: Add Widget Bigyó hozzáadás Close Bezár ConfigDialog Dialog Párbeszédablak LXQt::AboutDialogPrivate Version: %1 Verzió: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Qt alapú könnyen használható, fejlett és gyors asztalkezelő. LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors. About dialog, 'About' tab text Az LXQt a <a %1>Razor-qt</a>-és annak fejlesztői nélkül nem létezne. Copyright: %1-%2 %3 About dialog, 'About' tab text Jogok: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Honlap: %1 License: %1 About dialog, 'About' tab text Licensz: %1 LXQt is developed by the <a %1>LXQt Team and contributors</a>. About dialog, 'Authors' tab text Az LXQt fejlesztői<a %1>LXQt Team és a társasága</a> If you are interested in working with our development team, <a %1>join us</a>. About dialog, 'Authors' tab text Ha érdekli a fejlesztés. akkor <a %1>csatlakozhat hozzánk</a>. Special thanks to: About dialog, 'Thanks' tab text Külön köszönet: LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text Az LXQT sok nyelvre le van fordítva, a világban működő fordítóknak köszönhetőn. LXQt::AddPluginDialog (%1 active) (%1 aktív) LXQt::MessageBox LXQt Power Manager Error LXQt Energiakezelő hiba Hibernate failed. Elaltatás sikertelen LXQt::NotificationPrivate Notifications Fallback Vészhitelesítés LXQt::PowerManager Hibernate Elaltatás Suspend Készültség Reboot Újraindítás Shutdown Kikapcsolás Logout Kijelentkezés LXQt Session Suspend Az LXQT készenléte Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Készenléti állapotba akarja helyezni a gépet?<p>A kis energiaszükségletű állapotban feszültségkimaradáskor az újraélesztés nem biztos. LXQt Session Hibernate Az LXQT elaltatása Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Mélykészenléti állapotba akarja helyezni a gépet?<p>A kis energiaszükségletű alvó állapotban feszültségkimaradáskor az újraélesztés nem biztos. LXQt Session Reboot LXQt újraindítás Do you want to really restart your computer? All unsaved work will be lost... Újra akarja indítani a gépet? Minden mentetlen munka elvész... LXQt Session Shutdown LXQt kikapcsolás Do you want to really switch off your computer? All unsaved work will be lost... Ki akarja kapcsolni a gépet? Minden mentetlen munka elvész... LXQt Session Logout LXQt kijelentkezés Do you want to really logout? All unsaved work will be lost... Kijelentkezik? Minden mentetlen munka elvész... LXQt Power Manager Error LXQt energiakezelő hiba Hibernate failed. Mélykészenléti állapot sikertelen Suspend failed. Készenléti állapot sikertelen LXQt::ScreenSaver Lock Screen Képernyőzár Screen Saver Error Screen Saver Activation Error Képvédő indítási hiba An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Hiba a képernyővédő indításakor.Az xdg-képernyővédő összeomlott. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Hiba a képernyővédő indításakor.Az xdg-képernyővédő nincs jól telepítve. An error occurred starting screensaver. xdg-screensaver cannot be started. Hiba a képernyővédő indításakor.Az xdg-képernyővédő indíthatatlan. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Hiba a képernyővédő indításakor.Az xdg-képernyővédő indító paramétere hibás. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Hiba a képernyővédő indításakor.Az xdg-képernyővédő telepített és futtatható? An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Hiba a képernyővédő indításakor.Az 'activate' sikertelen. Az xdg-képernyővédő telepített és futtatható? An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Hiba a képernyővédő indításakor.Ismeretlen hiba - az xdg-képernyővédő ismeretlen hibakóddal kilépett=%1. QObject Power Manager Error Energiakezelő hiba QDBusInterface is invalid A QDBusInterface érvénytelen Power Manager Error (D-BUS call) Energiakezelő hiba (D-BUS hívás) about About LXQt Az LXQT -ről About About dialog, Tab title Rólunk Authors About dialog, Tab title Szerzők Thanks About dialog, Tab title Köszönet Translations About dialog, Tab title Fordítások Technical Info About dialog, Tab title Technikai háttér Copy to clipboard Vágólapra másol liblxqt-0.10.0/translations/liblxqt_ia.ts000066400000000000000000000171701261560636100205040ustar00rootroot00000000000000 ConfigDialog Dialog LXQt::MessageBox LXQt Power Manager Error Hibernate failed. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Suspend Reboot Shutdown Logout LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... LXQt Session Shutdown Do you want to really switch off your computer? All unsaved work will be lost... LXQt Session Logout Do you want to really logout? All unsaved work will be lost... LXQt Power Manager Error Hibernate failed. Suspend failed. LXQt::ScreenSaver Lock Screen Screen Saver Error Screen Saver Activation Error An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) liblxqt-0.10.0/translations/liblxqt_id_ID.ts000066400000000000000000000171051261560636100210610ustar00rootroot00000000000000 ConfigDialog Dialog LXQt::MessageBox LXQt Power Manager Error Hibernate failed. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Hibernasi Suspend Suspend Reboot Reboot Shutdown Shutdown Logout Keluar LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... LXQt Session Shutdown Do you want to really switch off your computer? All unsaved work will be lost... LXQt Session Logout Do you want to really logout? All unsaved work will be lost... LXQt Power Manager Error Hibernate failed. Suspend failed. LXQt::ScreenSaver Lock Screen Screen Saver Error Screen Saver Activation Error An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) liblxqt-0.10.0/translations/liblxqt_it.ts000066400000000000000000000371411261560636100205270ustar00rootroot00000000000000 AddPluginDialog Add plugins Aggiungi plugin Search: Cerca: Add plugin Aggiungi plugin Close Chiudi ConfigDialog Dialog Finestra di dialogo LXQt::AboutDialogPrivate Version: %1 Versione: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Un ambiente desktop veloce, facile da usare e avanzato basato sulle tecnologie Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Copyright: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Sito: %1 License: %1 About dialog, 'About' tab text Licenza: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt è tradotto in molte lingue grazie al lavoro dei gruppi di traduzione in giro per il mondo. Yes No No <b>LXQt Desktop Toolbox - Technical Info</b> <b>Strumenti desktop di LXQt - informazioni tecniche</b> Version Versione Qt Qt Debug Build Compilazione di debug System Configuration Configurazione del sistema Share Directory Cartella condivisa Translations About dialog, Tab title Traduzioni <b>User Directories</b> <b>Cartelle dell'utente</b> Xdg Data Home Xdg Data Home Xdg Config Home Xdg Config Home Xdg Data Dirs Xdg Data Dirs Xdg Cache Home Xdg Cache Home Xdg Runtime Home Xdg Runtime Home Xdg Autostart Dirs Xdg Autostart Dirs Xdg Autostart Home Xdg Autostart Home LXQt::MessageBox LXQt Power Manager Error Errore del gestore energetico di LXQt Hibernate failed. L'ibernazione non è riuscita. LXQt::NotificationPrivate Notifications Fallback Notifiche di riserva LXQt::PowerManager Hibernate Ibernazione Suspend Sospensione Reboot Riavvia Shutdown Spegni Logout Esci LXQt Session Suspend Sospendi la sessione di LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Sospendere il computer?<p>Sospendi il computer in uno stato a minore consumo energetico. Lo stato del sistema non viene preservato se la batteria si esaurisce o il pc non è collegato all'alimentazione. LXQt Session Hibernate Iberna la sessione di LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Ibernare il computer?<p>Iberna il computer in uno stato a minore consumo energetico. Lo stato del sistema viene preservato se la batteria si esaurisce o il pc non è collegato all'alimentazione. LXQt Session Reboot Riavvia la sessione di LXQt Do you want to really restart your computer? All unsaved work will be lost... Riavviare il computer? Tutto il lavoro non salvato verrà perso. LXQt Session Shutdown Uscire dalla sessione di LXQt Do you want to really switch off your computer? All unsaved work will be lost... Spegnere il computer? Tutto il lavoro non salvato verrà perso. LXQt Session Logout Esci dalla sessione di LXQt Do you want to really logout? All unsaved work will be lost... Chiudere la sessione? Tutto il lavoro non salvato verrà perso... LXQt Power Manager Error Errore del gestore energetico di LXQt Hibernate failed. L'ibernazione non è riuscita. Suspend failed. La sospensione non è riuscita. LXQt::ScreenSaver Lock Screen Blocca schermo Screen Saver Error Screen Saver Activation Error Errore nell'avvio del salvaschermo An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. È avvenuto un errore durante l'avvio del salvaschermo. xdg-screensaver non può essere avviato a causa di un problema dell'applicazione stessa. An error occurred starting screensaver. xdg-screensaver is not installed correctly. È avvenuto un errore durante l'avvio del salvaschermo. xdg-screensaver non è installato correttamente. An error occurred starting screensaver. xdg-screensaver cannot be started. È avvenuto un errore durante l'avvio del salvaschermo. xdg-screensaver non può essere avviato. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. È avvenuto un errore durante l'avvio del salvaschermo. Errore di sintassi in xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. È avvenuto un errore durante l'avvio del salvaschermo. Assicurati di avere xscreensaver installato e funzionante. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. È avvenuto un errore durante l'avvio del salvaschermo. L'attivazione non è riuscita, assicurati di avere xscreensaver installato e funzionante. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Si è verificato un errore avviando il salvaschermo. Errore sconosciuto: valore di ritorno non documentato da xdg-screensaver=%1. LXQt::ShortcutButton Clear Pulisci None Nessuna QObject Power Manager Error Errore del gestore dell'energia QDBusInterface is invalid QDBusInterface non è valida Power Manager Error (D-BUS call) Errore del gestore dell'energia (chiamata D-BUS) about About LXQt Informazioni su LXQt About About dialog, Tab title Informazioni Authors About dialog, Tab title Autori Thanks About dialog, Tab title Ringraziamenti Translations About dialog, Tab title Traduzioni Technical Info About dialog, Tab title Informazioni tecniche liblxqt-0.10.0/translations/liblxqt_ja.ts000066400000000000000000000356771261560636100205210ustar00rootroot00000000000000 AddPluginDialog Search: 検索: Add Widget ウィジェットを追加 Close 閉じる ConfigDialog Dialog ダイアログ LXQt::AboutDialogPrivate Version: %1 バージョン: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Qt テクノロジーベースの、高度で使いやすく高速なデスクトップ環境 LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors. About dialog, 'About' tab text LXQtは、<a %1>Razor-qt</a>プロジェクトとそのたくさんの貢献者たちなしにはありえませんでした。 Copyright: %1-%2 %3 About dialog, 'About' tab text Copyright: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text ホームページ: %1 License: %1 About dialog, 'About' tab text ライセンス: %1 LXQt is developed by the <a %1>LXQt Team and contributors</a>. About dialog, 'Authors' tab text LXQtは、<a %1>LXQtチームとその貢献者たち</a>によって開発されています。 If you are interested in working with our development team, <a %1>join us</a>. About dialog, 'Authors' tab text もし私たちの作業に関心がありましたら、<a %1>参加してください</a>。 Special thanks to: About dialog, 'Thanks' tab text スペシャルサンクス: LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQtは、たくさんの言語に翻訳されています。世界各地の翻訳チームの成果に対して謝意を表します。 LXQt::AddPluginDialog (%1 active) (%1 有効) LXQt::MessageBox LXQt Power Manager Error LXQt電源管理エラー Hibernate failed. 休止の失敗 LXQt::NotificationPrivate Notifications Fallback 通知のフォールバック LXQt::PowerManager Hibernate 休止 Suspend サスペンド Reboot 再起動 Shutdown シャットダウン Logout ログアウト LXQt Session Suspend LXQtセッションのサスペンド Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. 本当にコンピュータをサスペンドしますか?<P>コンピュータを低消費電力状態にサスペンドします。電源が失われた場合にはシステムの状態は保持されません。 LXQt Session Hibernate LXQtセッションの休止 Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. 本当にコンピュータを休止状態にしますか?<P>コンピュータを 低消費電力状態で休止します。電源が失われた場合でもシステムの状態は保持されます。 LXQt Session Reboot LXQtセッションの再起動 Do you want to really restart your computer? All unsaved work will be lost... 本当にコンピュータを再起動しますか?保存されていない作業はすべて失われます... LXQt Session Shutdown LXQtセッションのシャットダウン Do you want to really switch off your computer? All unsaved work will be lost... 本当にコンピュータをオフにしたいですか?保存されていないすべての作業は失われます... LXQt Session Logout LXQtセッションのログアウト Do you want to really logout? All unsaved work will be lost... 本当にログアウトしたいですか?保存されていないすべての作業は失われます... LXQt Power Manager Error LXQt電源管理エラー Hibernate failed. 休止の失敗 Suspend failed. サスペンドの失敗 LXQt::ScreenSaver Lock Screen スクリーンをロック Screen Saver Error Screen Saver Activation Error スクリーンセーバー起動エラー An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. スクリーンセーバーの起動時にエラーが発生しました。クラッシュが原因でxdg-スクリーンセーバーを起動できません。 An error occurred starting screensaver. xdg-screensaver is not installed correctly. スクリーンセーバーの起動時にエラーが発生しました。xdg-スクリーンセーバーが正しくインストールされていません。 An error occurred starting screensaver. xdg-screensaver cannot be started. スクリーンセーバーの起動時にエラーが発生しました。xdg-スクリーンセーバーを起動できません。 An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. スクリーンセーバーの起動時にエラーが発生しました。xdg-スクリーンセーバーの引数に構文エラーがあります。 An error occurred starting screensaver. Ensure you have xscreensaver installed and running. スクリーンセーバーの起動時にエラーが発生しました。xscreensaverのインストールと実行を確認してください。 An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. スクリーンセーバーの起動時にエラーが発生しました。'Activate'アクションが失敗しました。xscreensaverのインストールと実行を確認してください。 An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. スクリーンセーバーを開始する際にエラーが発生しました。不明なエラー - 文書化されていない返り値 xdg-screensaver=%1 QObject Power Manager Error 電源管理エラー QDBusInterface is invalid QDbusInterfaceが無効です。 Power Manager Error (D-BUS call) 電源マネージャエラー(D-BUSコール) about About LXQt LXQtについて About About dialog, Tab title About Authors About dialog, Tab title 作者 Thanks About dialog, Tab title 謝辞 Translations About dialog, Tab title 翻訳 Technical Info About dialog, Tab title 技術情報 Copy to clipboard クリップボードへコピー liblxqt-0.10.0/translations/liblxqt_ko.ts000066400000000000000000000171701261560636100205240ustar00rootroot00000000000000 ConfigDialog Dialog LXQt::MessageBox LXQt Power Manager Error Hibernate failed. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Suspend Reboot Shutdown Logout LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... LXQt Session Shutdown Do you want to really switch off your computer? All unsaved work will be lost... LXQt Session Logout Do you want to really logout? All unsaved work will be lost... LXQt Power Manager Error Hibernate failed. Suspend failed. LXQt::ScreenSaver Lock Screen Screen Saver Error Screen Saver Activation Error An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) liblxqt-0.10.0/translations/liblxqt_lt.ts000066400000000000000000000257561261560636100205430ustar00rootroot00000000000000 AddPluginDialog Add plugins Pridėti priedų Search: Ieškoti: Add plugin Pridėti priedą Close Uždaryti ConfigDialog Dialog Dialogas LXQt::AboutDialogPrivate Yes Taip No Ne LXQt::MessageBox LXQt Power Manager Error LXQt Energijos Nustatymų Klaida Hibernate failed. Nepavyko užmigdymas į fizinę atmintį LXQt::NotificationPrivate Notifications Fallback Pranešimų surogatas LXQt::PowerManager Hibernate Užmigdyti į atminį Suspend Užmigdyti Reboot Perkrauti Shutdown Išjungti Logout Atsijungti LXQt Session Suspend LXQt sesijos užmigdymas Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Ar tikrai norite užmigdyti kompiuterį? <p>Užmigdo kompiuterį į mažo energijos naudojimo būklę. Sistemos būklė nėra išsaugoma jei nutrūksta energija. LXQt Session Hibernate LXQt sesijos sustabdymas į atmintį. Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Ar tikrai norite sustabdyti kompiuterį į atmintį?<p> Sustabdymas į atmintį sustabdo kompiuterį į mažo energijos kiekio sunaudojimo būklę ir jei energija išjungiama sistemos būklė lieka išsaugota LXQt Session Reboot LXQt sesijos perkrovimas Do you want to really restart your computer? All unsaved work will be lost... Ar tikrai norite perkrauti kompiuterį? Visi neišsaugoti pakeitimai bus prarasti LXQt Session Shutdown LXQt sesijos išjungimas Do you want to really switch off your computer? All unsaved work will be lost... Ar tikrai norite išjungti kompiuterį? Visi neišsaugoti pakeitimai bus prarasti LXQt Session Logout LXQt sesijos atjungimas Do you want to really logout? All unsaved work will be lost... Ar tikrai norite atsijungti? Visi neišsaugoti pakeitimai bus prarasti LXQt Power Manager Error LXQt Energijos Nustatymų Klaida Hibernate failed. Nepavyko užmigdymas į fizinę atmintį Suspend failed. Nepavyko užmigdymas LXQt::ScreenSaver Lock Screen Užrakinti ekraną Screen Saver Error Screen Saver Activation Error Ekrano užsklandos aktyvavimo klaida An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Klaida paleidžiant ekrano užsklandą. xdg-screensaver negali pasileisti, nes nulūžo. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Klaida paleidžiant ekrano užsklandą. xdg-screensaver nėra tinkamai įdiegtas. An error occurred starting screensaver. xdg-screensaver cannot be started. Klaida paleidžiant ekrano užsklandą. xdg-screensaver negali būti paleistas. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Klaida paleidžiant ekrano užsklandą. Sintaksės klaida xdg-screensaver argumentuose. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Klaida paleidžiant ekrano užsklandą. Įsitikinkite, ar įdiegtas ir paleistas xscreensaver. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Klaida paleidžiant ekrano užsklandą. Nevyko atlikti veiksmo „activate“. Įsitikinkite, ar įdiegtas ir paleistas xscreensaver. LXQt::ShortcutButton Clear Išvalyti None Nieko QObject Power Manager Error Energijos valdymo klaida QDBusInterface is invalid QDBusInterface yra netinkamas Power Manager Error (D-BUS call) Energijos valdymo klaida (D-BUS call) about About LXQt Apie LXQt About About dialog, Tab title Apie Technical Info About dialog, Tab title Techninė informacija liblxqt-0.10.0/translations/liblxqt_nl.ts000066400000000000000000000256321261560636100205260ustar00rootroot00000000000000 AddPluginDialog Add plugins Plugins toevoegen Search: Zoeken: Add plugin Plugin toevoegen Close Sluiten ConfigDialog Dialog Dialoog LXQt::AboutDialogPrivate Yes Ja No Nee LXQt::MessageBox LXQt Power Manager Error LXQt Energiebeheer fout Hibernate failed. SCHIJF-slaapstand mislukt. LXQt::NotificationPrivate Notifications Fallback Notificaties terugval LXQt::PowerManager Hibernate Slaapstand Suspend Slapen Reboot Herstarten Shutdown Afsluiten Logout Afmelden LXQt Session Suspend LXQt Sessie Slapen Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Wilt u uw Sessie in RAM slaapstand brengen?<p>Slaat uw sessie op in het RAM geheugen. LET OP! Gegevens gaan verloren tijdens een stroom uitval. LXQt Session Hibernate LXQt Sessie Slaapstand Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Wilt u uw Sessie in SCHIJF slaapstand brengen?<p>Slaat uw sessie op in een bestand op uw Schijf. Gegevens gaan NIET verloren tijdens een stroom uitval. LXQt Session Reboot LXQt Sessie Herstarten Do you want to really restart your computer? All unsaved work will be lost... Wilt u uw computer herstarten? LET OP! Niet opgeslagen gegevens gaan verloren LXQt Session Shutdown LXQt Sessie Afsluiten Do you want to really switch off your computer? All unsaved work will be lost... Wilt u uw computer Afsluiten? LET OP! Niet opgeslagen gegevens gaan verloren LXQt Session Logout LXQt Sessie Afmelden Do you want to really logout? All unsaved work will be lost... Wilt u uw sessie beeindigen? LET OP! Niet opgeslagen gegevens gaan verloren LXQt Power Manager Error LXQt Energiebeheer fout Hibernate failed. SCHIJF-slaapstand mislukt. Suspend failed. RAM-slaapstand mislukt. LXQt::ScreenSaver Lock Screen Scherm Vergrendelen Screen Saver Error Screen Saver Activation Error Schermbeveiliging Activering fout An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Fout tijdens het starten van de schermbeveiliging. xdg-schermbeveiliging kan niet starten, wegens een crash. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Fout tijdens het starten van de schermbeveiliging. xdg-schermbeveiliging is niet correct geinstalleerd.. An error occurred starting screensaver. xdg-screensaver cannot be started. Fout tijdens het starten van de schermbeveiliging. xdg-schermbeveiliging kan niet starten. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Fout tijdens het starten van de schermbeveiliging. Regelfout in xdg-schermbeveiliging argumenten. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Fout tijdens het starten van de schermbeveiliging. Controleer of xdg-schermbeveiliging is geinstalleerd en gestart. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Fout tijdens het starten van de schermbeveiliging. Actie 'activeren' mislukt. Controleer of xdg-schermbeveiliging is geinstalleerd en gestart. LXQt::ShortcutButton Clear Wissen None Geen QObject Power Manager Error Energiebeheer Fout QDBusInterface is invalid QDBusInterface is ongeldig Power Manager Error (D-BUS call) Energiebeheer Error (D-BUS oproep) about About LXQt Over LXQt About About dialog, Tab title Over Technical Info About dialog, Tab title Technische Informatie liblxqt-0.10.0/translations/liblxqt_pl_PL.ts000066400000000000000000000372241261560636100211230ustar00rootroot00000000000000 AddPluginDialog Add plugins Dodaj wtyczki Search: Szukaj: Add plugin Dodaj wtyczkę Close Zamknij ConfigDialog Dialog Okno dialogowe LXQt::AboutDialogPrivate Version: %1 Wersja: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Zaawansowany, łatwy w obsłudze i szybki pulpit bazujący na Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Prawa autorskie: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Strona: %1 License: %1 About dialog, 'About' tab text Licencja: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt jest dostępny w wielu językach dzięki wspanialej pracy ekip tłumaczy z całego świata. Yes Tak No Nie <b>LXQt Desktop Toolbox - Technical Info</b> <b>Skrzynka narzędziowa pulpitu LXQt - Informacje techniczne</b> Version Wersja Qt Qt Debug Build Wersja debugowa System Configuration Konfiguracja systemu Share Directory Udostępniany katalog Translations About dialog, Tab title Tłumaczenia <b>User Directories</b> <b>Katalogi użytkownika</b> Xdg Data Home Ścieżka dostępu plików Xdg Xdg Config Home Ścieżka dostępu konfiguracji Xdg Xdg Data Dirs Katalogi plików Xdg Xdg Cache Home Ścieżka dostępu pamięci podręcznej Xdg Xdg Runtime Home Ścieżka dostępu środowiska uruchomieniowego Xdg Xdg Autostart Dirs Katalogi autostartu Xdg Xdg Autostart Home Ścieżka dostępu autostart Xdg LXQt::MessageBox LXQt Power Manager Error Błąd zarządzania energią Hibernate failed. Hibernacja nie powiodła się. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Hibernuj Suspend Uśpij Reboot Uruchom ponownie Shutdown Wyłącz Logout Wyloguj LXQt Session Suspend Uśpij sesję Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Czy jesteś pewien, że chcesz uśpić swój komputer?<p>Przełącza komputer w stan niskiego poboru prądu. Stan systemu nie jest zabezpieczony przed utratą zasilania. LXQt Session Hibernate Hibernuj sesję Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Czy jesteś pewien, że chcesz zahibernować swój komputer?<p>Przełącza komputer w stan niskiego poboru prądu. Stan systemu jest zabezpieczony przed utratą zasilania. LXQt Session Reboot Uruchom ponownie Do you want to really restart your computer? All unsaved work will be lost... Czy jesteś pewien, że chcesz ponownie uruchomić swój komputer?<p>Cała niezapisana praca zostanie utracona... LXQt Session Shutdown Wyłącz Do you want to really switch off your computer? All unsaved work will be lost... Czy jesteś pewien, że chcesz wyłączyć swój komputer?<p>Cała niezapisana praca zostanie utracona... LXQt Session Logout Wyloguj Do you want to really logout? All unsaved work will be lost... Czy jesteś pewien, że chcesz się wylogować?<p>Cała niezapisana praca zostanie utracona... LXQt Power Manager Error Błąd zarządzania energią Hibernate failed. Hibernacja nie powiodła się. Suspend failed. Uśpienie nie powiodło się. LXQt::ScreenSaver Lock Screen Zablokuj ekran Screen Saver Error Screen Saver Activation Error Błąd podczas aktywacji wygaszacza ekranu An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Wystąpił błąd podczas uruchamiania wygaszacza ekranu. xdg-screensaver nie uruchamia się (crash). An error occurred starting screensaver. xdg-screensaver is not installed correctly. Wystąpił błąd podczas uruchamiania wygaszacza ekranu. xdg-screensaver nie jest poprawnie zainstalowany. An error occurred starting screensaver. xdg-screensaver cannot be started. Wystąpił błąd podczas uruchamiania wygaszacza ekranu. xdg-screensaver nie może zostać uruchomiony. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Wystąpił błąd podczas uruchamiania wygaszacza ekranu. Błąd składni argumentów xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Wystąpił błąd podczas uruchamiania wygaszacza ekranu. Upewnij się, że xdg-screensaver jest zainstalowany oraz uruchomiony. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Wystąpił błąd podczas uruchamiania wygaszacza ekranu. Akcja "aktywacja" zawiodła. Upewnij się, że xdg-screensaver jest zainstalowany oraz uruchomiony. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Wystąpił błąd podczas wywołania wygaszacza ekranu. Nieznany błąd - nieudokumentowany zwrot wartości z xdg-screensaver=%1. LXQt::ShortcutButton Clear Wyczyść None Brak QObject Power Manager Error Błąd menedżera zasilania QDBusInterface is invalid QDBusInterface jest nieprawidłowy Power Manager Error (D-BUS call) Błąd menedżera zasilania (D-BUS call) about About LXQt O LXQt About About dialog, Tab title O Authors About dialog, Tab title Autorzy Thanks About dialog, Tab title Podziękowania Translations About dialog, Tab title Tłumaczenia Technical Info About dialog, Tab title Informacje techniczne liblxqt-0.10.0/translations/liblxqt_pt.ts000066400000000000000000000423211261560636100205320ustar00rootroot00000000000000 AddPluginDialog Add plugins Adicionar extras Search: Procurar: Add Widget Adicionar widget Add plugin Adicionar extra Close Fechar ConfigDialog Dialog Caixa de diálogo LXQt::AboutDialogPrivate Version: %1 Versão: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Ambiente de trabalho rápido, simples e fácil de utilizar baseado na tecnologia Qt. LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors. About dialog, 'About' tab text O LXQt não seria possível sem a ajuda dos colaboradores do projeto <a %1>Razor-qt</a>. Copyright: %1-%2 %3 About dialog, 'About' tab text Direitos de autor: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Página web: %1 License: %1 About dialog, 'About' tab text Licença: %1 LXQt is developed by the <a %1>LXQt Team and contributors</a>. About dialog, 'Authors' tab text O LXQt é desenvolvido pelos <a %1>colaboradores da equipa LXQt</a>. If you are interested in working with our development team, <a %1>join us</a>. About dialog, 'Authors' tab text Se quiser ajudar no desenvolvimento, <a %1>pode integrar a nossa equipa</a>. Special thanks to: About dialog, 'Thanks' tab text Um especial obrigado: LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text O LXQt está traduzido em diversos idiomas graças ao trabalho desenvolvido pelas equipas de tradução de todo o mundo. Yes Sim No Não <b>LXQt Desktop Toolbox - Technical Info</b> <b>Ambiente de trabalho LXQt - Informações técnicas</b> Version Versão Qt Qt Debug Build Compilação de depuração System Configuration Configuração do sistema Share Directory Diretório de partilha Translations About dialog, Tab title Traduções <b>User Directories</b> Diretórios do utilizador Xdg Data Home Diretório dos dados do utilizador Xdg Config Home Diretório das configurações do utilizador Xdg Data Dirs Diretórios de dados Xdg Cache Home Diretório de cache do utilizador Xdg Runtime Home Diretório de execução do utilizador Xdg Autostart Dirs Diretórios de arranque automático Xdg Autostart Home Diretório de arranque automático do utilizador LXQt::AddPluginDialog (%1 active) (%1 ativo) LXQt::MessageBox LXQt Power Manager Error Erro do gestor de energia do LXQt Hibernate failed. Falha ao hibernar. LXQt::NotificationPrivate Notifications Fallback Recurso para notificações LXQt::PowerManager Hibernate Hibernar Suspend Suspender Reboot Reiniciar Shutdown Desligar Logout Terminar sessão LXQt Session Suspend Suspender Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Pretende mesmo suspender o computador?<p>A suspensão deixa o computador num estado de energia baixa. O estado do sistema não é guardado se faltar a energia. LXQt Session Hibernate Hibernar Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Pretende mesmo hibernar o computador?<p>A hibernação deixa o computador num estado de energia baixa. O estado do sistema é guardado se faltar a energia. LXQt Session Reboot Reiniciar Do you want to really restart your computer? All unsaved work will be lost... Pretende mesmo reiniciar o computador? Os trabalhos não gravados serão perdidos... LXQt Session Shutdown Desligar Do you want to really switch off your computer? All unsaved work will be lost... Pretende mesmo desligar o computador? Os trabalhos não gravados serão perdidos... LXQt Session Logout Terminar sessão Do you want to really logout? All unsaved work will be lost... Pretende mesmo terminar a sessão? Os trabalhos não gravados serão perdidos... LXQt Power Manager Error Erro do gestor de energia do LXQt Hibernate failed. Falha ao hibernar. Suspend failed. Falha ao suspender. LXQt::ScreenSaver Lock Screen Bloquear ecrã Screen Saver Error Screen Saver Activation Error Erro ao ativar a proteção de ecrã An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Ocorreu um erro ao iniciar a proteção de ecrã. O xdg-screensaver terminou abruptamente. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Ocorreu um erro ao iniciar a proteção de ecrã. O xdg-screensaver não está instalado corretamente. An error occurred starting screensaver. xdg-screensaver cannot be started. Ocorreu um erro ao iniciar a proteção de ecrã. O xdg-screensaver não foi iniciado. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Ocorreu um erro ao iniciar a proteção de ecrã. Existem erros na sintaxe nos argumentos xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Ocorreu um erro ao iniciar a proteção de ecrã. Certifique-se que o xdg-screensaver está instalado e em execução. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Ocorreu um erro ao iniciar a proteção de ecrã. Erro na ação 'activate'. Certifique-se que o xdg-screensaver está instalado e em execução. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Ocorreu um erro ao iniciar a proteção de ecrã. O erro xdg-screensaver=%1 não é conhecido ou documentado. LXQt::ShortcutButton Clear Limpar None Nada QObject Power Manager Error Erro do gestor de energia QDBusInterface is invalid A interface QDBus não é válida Power Manager Error (D-BUS call) Erro do gestor de energia (D-BUS) about About LXQt Sobre o LXQt About About dialog, Tab title Sobre Authors About dialog, Tab title Autores Thanks About dialog, Tab title Agradecimentos Translations About dialog, Tab title Traduções Technical Info About dialog, Tab title Informações técnicas Copy to clipboard Copiar para a área de transferência liblxqt-0.10.0/translations/liblxqt_pt_BR.ts000066400000000000000000000370351261560636100211230ustar00rootroot00000000000000 AddPluginDialog Add plugins Adicionar plugins Search: Pesquisar: Add plugin Adicionar plugin Close Fechar ConfigDialog Dialog Diálogo LXQt::AboutDialogPrivate Version: %1 Versão: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Avançado, fácil de usar, e ambiente de trabalho rápido baseado nas tecnologias Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Copyright: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Página: %1 License: %1 About dialog, 'About' tab text Licença: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt é traduzido em muitas línguas, graças ao trabalho das equipes de tradução de todo o mundo. Yes Sim No Não <b>LXQt Desktop Toolbox - Technical Info</b> <b>Caixa De Ferramentas Do Desktop LXQt - Informações Técnicas</b> Version Versão Qt Qt Debug Build Depuração Da Compilação System Configuration Configuração Do Sistema Share Directory Compartilhar Diretório Translations About dialog, Tab title Traduções <b>User Directories</b> <b>Diretórios Do Usuário</b> Xdg Data Home Xdg Dados Pessoais Xdg Config Home Xdg Configuções Pessoais Xdg Data Dirs Xdg Diretórios Pessoais Xdg Cache Home Xdg Cache Pessoal Xdg Runtime Home Xdg Tempo De Execução Pessoal Xdg Autostart Dirs Xdg Diretórios De Início Automático Xdg Autostart Home Xdg Início Automático Pessoal LXQt::MessageBox LXQt Power Manager Error Erro ao gerenciar energia do LXQt Hibernate failed. Falha ao hibernar. LXQt::NotificationPrivate Notifications Fallback Notificações De Falhas LXQt::PowerManager Hibernate Hibernar Suspend Suspender Reboot Reiniciar Shutdown Desligar Logout Encerrar sessão LXQt Session Suspend Suspender sessão do LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Deseja realmente suspender o computador?<p>Suspende o computador em um estado de baixa energia. O estado do sistema não é preservado se a energia for perdida. LXQt Session Hibernate Hibernar sessão do LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Deseja realmente hibernar o computador?<p>Hiberna o computador em um estado de baixa energia. O estado do sistema é preservado se a energia for perdida. LXQt Session Reboot Reiniciar sessão do LXQt Do you want to really restart your computer? All unsaved work will be lost... Deseja realmente reiniciar o computador? Todos os trabalhos não salvos serão perdidos... LXQt Session Shutdown Desligar sessão do LXQt Do you want to really switch off your computer? All unsaved work will be lost... Deseja realmente desligar o computador? Todos os trabalhos não salvos serão perdidos... LXQt Session Logout Encerrar sessão do LXQt Do you want to really logout? All unsaved work will be lost... Deseja realmente encerrar a sessão? Todos os trabalhos não salvos serão perdidos... LXQt Power Manager Error Erro ao gerenciar energia do LXQt Hibernate failed. Falha ao hibernar. Suspend failed. Falha ao suspender. LXQt::ScreenSaver Lock Screen Bloquear tela Screen Saver Error Screen Saver Activation Error Erro na ativação do protetor de tela An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Ocorreu um erro ao iniciar o protetor de tela. O xdg-screensaver não pôde ser iniciado devido a uma falha. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Ocorreu um erro ao iniciar o protetor de tela. O xdg-screensaver não está instalado corretamente. An error occurred starting screensaver. xdg-screensaver cannot be started. Ocorreu um erro ao iniciar o protetor de tela. O xdg-screensaver não pôde ser iniciado. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Ocorreu um erro ao iniciar o protetor de tela. Erro de sintaxe nos argumentos do xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Ocorreu um erro ao iniciar o protetor de tela. Garanta que você tenha o xscreensaver instalado e funcionado. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Ocorreu um erro ao iniciar o protetor de tela. A ação 'ativar' falhou. Garanta que você tenha o xscreensaver instalado e funcionado. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Ocorreu um erro ao inicair o protetor de tela. Erro desconhecido - retorno não documentado de xdg-screensaver=%1 LXQt::ShortcutButton Clear Limpar None Nenhum QObject Power Manager Error Erro no gerenciamento de energia QDBusInterface is invalid QDBusInterface é inválida Power Manager Error (D-BUS call) Erro no gerenciamento de energia (chamada D-Bus) about About LXQt Sobre o LXQt About About dialog, Tab title Sobre Authors About dialog, Tab title Autores Thanks About dialog, Tab title Agradecimentos Translations About dialog, Tab title Traduções Technical Info About dialog, Tab title Ficha Técnica liblxqt-0.10.0/translations/liblxqt_ro_RO.ts000066400000000000000000000260021261560636100211250ustar00rootroot00000000000000 AddPluginDialog Add plugins Adaugă module Search: Caută: Add plugin Adaugă modul Close Închide ConfigDialog Dialog Dialog LXQt::AboutDialogPrivate Yes Da No Nu LXQt::MessageBox LXQt Power Manager Error Eroare gestiune alimentare LXQt Hibernate failed. Hibernarea a eșuat. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Hibernare Suspend Suspendare Reboot Repornire Shutdown Oprire Logout Ieșire LXQt Session Suspend Sesiune LXQt - suspendare Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Doriți să suspendați calculatorul?<p>Suspendă calculatorul într-o stare cu consum minim de energie. Starea sistemului nu va fi păstrată dacă se întrerupe alimentarea. LXQt Session Hibernate Sesiune LXQt - hibernare Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Doriți să treceți calculatorul în stare de hibernare?<p>Calculatorul va trece într-o stare cu consum minim de energie. Starea sistemului va fi păstrată și dacă se întrerupe alimentarea. LXQt Session Reboot Sesiune LXQt - repornire Do you want to really restart your computer? All unsaved work will be lost... Doriți să reporniți calculatorul? Tot ce nu ați salvat se va pierde... LXQt Session Shutdown Sesiune LXQt - oprire Do you want to really switch off your computer? All unsaved work will be lost... Doriți să opriți calculatorul? Tot ce nu ați salvat se va pierde... LXQt Session Logout Sesiune LXQt - ieșire Do you want to really logout? All unsaved work will be lost... Doriți să ieșiți din sesiune? Tot ce nu ați salvat se va pierde... LXQt Power Manager Error Eroare gestiune alimentare LXQt Hibernate failed. Hibernarea a eșuat. Suspend failed. Suspendarea a eșuat. LXQt::ScreenSaver Lock Screen Blochează ecranul Screen Saver Error Screen Saver Activation Error Eroare la activarea protecției de ecran An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. A apărut o eroare la activarea protecției de ecran. xdg-screensaver nu a putut fi pornit. An error occurred starting screensaver. xdg-screensaver is not installed correctly. A apărut o eroare la activarea protecției de ecran. xdg-screensaver nu a fost instalat corect. An error occurred starting screensaver. xdg-screensaver cannot be started. A apărut o eroare la activarea protecției de ecran. xdg-screensaver nu a putut fi pornit. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. A apărut o eroare la activarea protecției de ecran. Eroare de sintaxă în argumentele xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. A apărut o eroare la pornirea protecției de ecran. Asigurați-vă că ați instalat xscreensaver și că acesta rulează. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. A apărut o eroare la pornirea protecției de ecran. Acțiunea 'activează' a eșuat. Asigurați-vă că ați instalat xscreensaver și că acesta rulează. LXQt::ShortcutButton Clear Curăță None Nimic QObject Power Manager Error Eroare gestiune alimentare QDBusInterface is invalid QDBusInterface este incorect Power Manager Error (D-BUS call) Eroare gestiune alimentare (apel D-Bus) about About LXQt Despre LXQt About About dialog, Tab title Despre Technical Info About dialog, Tab title Informații tehnice liblxqt-0.10.0/translations/liblxqt_ru.ts000066400000000000000000000401301261560636100205310ustar00rootroot00000000000000 AddPluginDialog Search: Поиск: Add Widget Добавить виджет Close Закрыть ConfigDialog Dialog LXQt::AboutDialogPrivate Version: %1 Версия: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Передовая, быстрая, и простая в использовании среда рабочего стола на основе технологий Qt. LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors. About dialog, 'About' tab text LXQT не могло бы существовать без проекта <a %1>Razor-qt</a> и многих его участников. Copyright: %1-%2 %3 About dialog, 'About' tab text Авторские права: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Домашняя страница: %1 License: %1 About dialog, 'About' tab text Лицензия: %1 LXQt is developed by the <a %1>LXQt Team and contributors</a>. About dialog, 'Authors' tab text LXQT разработан <a %1>командой LXQt и прочими участниками</a>. If you are interested in working with our development team, <a %1>join us</a>. About dialog, 'Authors' tab text Если вы заинтересованы работой с нашей командой разработки, <a %1>присоединяйтесь к нам</a>. Special thanks to: About dialog, 'Thanks' tab text Особая благодарность: LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQT переведён на множество языков благодаря работе команд переводчиков по всему миру. LXQt::AddPluginDialog (%1 active) (%1 активный) LXQt::MessageBox LXQt Power Manager Error Ошибка управления энергопотреблением LXQt Hibernate failed. Ошибка перехода в спящий режим. LXQt::NotificationPrivate Notifications Fallback Резервный вариант уведомлений LXQt::PowerManager Hibernate Спящий режим Suspend Ждущий режим Reboot Перезагрузить Shutdown Выключить компьютер Logout Завершить сеанс LXQt Session Suspend Ждущий режим сеанса LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Перевести компьютер в ждущий режим?<p>Переводит компьютер в режим низкого энергопотрбления. Состояние системы будет потеряно при отключении питания. LXQt Session Hibernate Спящий режим сеанса LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Перевести компьютер в спящий режим?<p>Переводит компьютер в режим низкого энергопотрбления. Состояние системы будет сохранено при отключении питания. LXQt Session Reboot Перезагрузка сеанса LXQt Do you want to really restart your computer? All unsaved work will be lost... Перезагрузить компьютер? Все несохранённые изменения в документах будут потеряны… LXQt Session Shutdown Завершение сеанса LXQt Do you want to really switch off your computer? All unsaved work will be lost... Выключить компьютер? Все несохранённые изменения в документах будут потеряны… LXQt Session Logout Завершение сеанса LXQt Do you want to really logout? All unsaved work will be lost... Завершить сеанс? Все несохранённые изменения в документах будут потеряны… LXQt Power Manager Error Ошибка управления энергопотреблением LXQt Hibernate failed. Ошибка перехода в спящий режим. Suspend failed. Ошибка перехода в ждущий режим. LXQt::ScreenSaver Lock Screen Заблокировать экран Screen Saver Error Screen Saver Activation Error Ошибка запуска хранителя экрана An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. При запуске хранителя экрана произошла ошибка. Невозможно запустить xdg-screensaver по причине его сбоя. An error occurred starting screensaver. xdg-screensaver is not installed correctly. При запуске хранителя экрана произошла ошибка. Xdg-screensaver установлен некорректно. An error occurred starting screensaver. xdg-screensaver cannot be started. При запуске хранителя экрана произошла ошибка. Xdg-screensaver не может быть запущен. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. При запуске хранителя экрана произошла ошибка. Неверные аргументы запуска xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. При запуске хранителя экрана произошла ошибка. Убедитесь, что xscreensaver установлен и запущен. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. При запуске заставки произошла ошибка. Невозможно выполнить действие «запустить». Проверьте, чтобы xscreensaver был установлен и запущен. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. При запуске заставки произвошла ошибка. Неизвестная ошибка - недокументированное значение возвращено из xdg-screensaver=%1. QObject Power Manager Error Ошибка модуля управления питанием QDBusInterface is invalid Неправильный интерфейс доступа к шине DBus Power Manager Error (D-BUS call) Ошибка управления энергопотреблением (вызов D-BUS) about About LXQt О LXQt About About dialog, Tab title О программе Authors About dialog, Tab title Авторы Thanks About dialog, Tab title Благодарности Translations About dialog, Tab title Переводы Technical Info About dialog, Tab title Техническая информация Copy to clipboard Копировать в буфер обмена liblxqt-0.10.0/translations/liblxqt_ru_RU.ts000066400000000000000000000401331261560636100211420ustar00rootroot00000000000000 AddPluginDialog Search: Поиск: Add Widget Добавить виджет Close Закрыть ConfigDialog Dialog LXQt::AboutDialogPrivate Version: %1 Версия: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Передовая, быстрая, и простая в использовании среда рабочего стола на основе технологий Qt. LXQt would not have been possible without the <a %1>Razor-qt</a> project and its many contributors. About dialog, 'About' tab text LXQT не могло бы существовать без проекта <a %1>Razor-qt</a> и многих его участников. Copyright: %1-%2 %3 About dialog, 'About' tab text Авторские права: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Домашняя страница: %1 License: %1 About dialog, 'About' tab text Лицензия: %1 LXQt is developed by the <a %1>LXQt Team and contributors</a>. About dialog, 'Authors' tab text LXQT разработан <a %1>командой LXQt и прочими участниками</a>. If you are interested in working with our development team, <a %1>join us</a>. About dialog, 'Authors' tab text Если вы заинтересованы работой с нашей командой разработки, <a %1>присоединяйтесь к нам</a>. Special thanks to: About dialog, 'Thanks' tab text Особая благодарность: LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQT переведён на множество языков благодаря работе команд переводчиков по всему миру. LXQt::AddPluginDialog (%1 active) (%1 активный) LXQt::MessageBox LXQt Power Manager Error Ошибка управления энергопотреблением LXQt Hibernate failed. Ошибка перехода в спящий режим. LXQt::NotificationPrivate Notifications Fallback Резервный вариант уведомлений LXQt::PowerManager Hibernate Спящий режим Suspend Ждущий режим Reboot Перезагрузить Shutdown Выключить компьютер Logout Завершить сеанс LXQt Session Suspend Ждущий режим сеанса LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Перевести компьютер в ждущий режим?<p>Переводит компьютер в режим низкого энергопотрбления. Состояние системы будет потеряно при отключении питания. LXQt Session Hibernate Спящий режим сеанса LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Перевести компьютер в спящий режим?<p>Переводит компьютер в режим низкого энергопотрбления. Состояние системы будет сохранено при отключении питания. LXQt Session Reboot Перезагрузка сеанса LXQt Do you want to really restart your computer? All unsaved work will be lost... Перезагрузить компьютер? Все несохранённые изменения в документах будут потеряны… LXQt Session Shutdown Завершение сеанса LXQt Do you want to really switch off your computer? All unsaved work will be lost... Выключить компьютер? Все несохранённые изменения в документах будут потеряны… LXQt Session Logout Завершение сеанса LXQt Do you want to really logout? All unsaved work will be lost... Завершить сеанс? Все несохранённые изменения в документах будут потеряны… LXQt Power Manager Error Ошибка управления энергопотреблением LXQt Hibernate failed. Ошибка перехода в спящий режим. Suspend failed. Ошибка перехода в ждущий режим. LXQt::ScreenSaver Lock Screen Заблокировать экран Screen Saver Error Screen Saver Activation Error Ошибка запуска хранителя экрана An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. При запуске хранителя экрана произошла ошибка. Невозможно запустить xdg-screensaver по причине его сбоя. An error occurred starting screensaver. xdg-screensaver is not installed correctly. При запуске хранителя экрана произошла ошибка. Xdg-screensaver установлен некорректно. An error occurred starting screensaver. xdg-screensaver cannot be started. При запуске хранителя экрана произошла ошибка. Xdg-screensaver не может быть запущен. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. При запуске хранителя экрана произошла ошибка. Неверные аргументы запуска xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. При запуске хранителя экрана произошла ошибка. Убедитесь, что xscreensaver установлен и запущен. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. При запуске заставки произошла ошибка. Невозможно выполнить действие «запустить». Проверьте, чтобы xscreensaver был установлен и запущен. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. При запуске заставки произвошла ошибка. Неизвестная ошибка - недокументированное значение возвращено из xdg-screensaver=%1. QObject Power Manager Error Ошибка модуля управления питанием QDBusInterface is invalid Неправильный интерфейс доступа к шине DBus Power Manager Error (D-BUS call) Ошибка управления энергопотреблением (вызов D-BUS) about About LXQt О LXQt About About dialog, Tab title О программе Authors About dialog, Tab title Авторы Thanks About dialog, Tab title Благодарности Translations About dialog, Tab title Переводы Technical Info About dialog, Tab title Техническая информация Copy to clipboard Копировать в буфер обмена liblxqt-0.10.0/translations/liblxqt_sk_SK.ts000066400000000000000000000246711261560636100211310ustar00rootroot00000000000000 AddPluginDialog Add plugins Pridať zásuvné moduly Search: Hľadať: Add plugin Pridať zásuvný modul Close Zatvoriť ConfigDialog Dialog LXQt::MessageBox LXQt Power Manager Error Chyba správcu napájania LXQt Hibernate failed. Hibernácia sa nepodarila. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Hibernovať Suspend Úsporný režim Reboot Reštartovať Shutdown Vypnúť Logout Odhlásiť sa LXQt Session Suspend Úsporný režim relácie LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Skutočne chcete svoj počítač uviesť do úsporného režimu?<p>Uvedie počítač do stavu s nízkym odberom prúdu. Stav systému sa pri strate napájania nezachová. LXQt Session Hibernate Hibernácia relácie LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Skutočne chcete svoj počítač hibernovať?<p>Uvedie počítač do stavu s nízkym odberom prúdu. Stav systému sa pri strate napájania zachová. LXQt Session Reboot Reštart relácie LXQt Do you want to really restart your computer? All unsaved work will be lost... Skutočne chcete svoj počítač reštartovať? Akákoľvek neuložená práca sa stratí... LXQt Session Shutdown Vypnutie relácie LXQt Do you want to really switch off your computer? All unsaved work will be lost... Skutočne chcete svoj počítač vypnúť? Akákoľvek neuložená práca sa stratí... LXQt Session Logout Odhlásenie relácie LXQt Do you want to really logout? All unsaved work will be lost... Skutočne sa chcete odhlásiť z vášho počítača? Akákoľvek neuložená práca sa stratí... LXQt Power Manager Error Chyba správcu napájania LXQt Hibernate failed. Hibernácia sa nepodarila. Suspend failed. Uvedenie do úsporného režimu sa nepodarilo. LXQt::ScreenSaver Lock Screen Zamknúť obrazovku Screen Saver Error Screen Saver Activation Error CHyba pri aktivácii šetriča obrazovky An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Pri štarte šetriča obrazovky sa vyskytla chyba. xdg-screensaver nebolo možné spustiť, pretože havaroval. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Pri štarte šetriča obrazovky sa vyskytla chyba. xdg-screensaver nie je správne nainštalovaný. An error occurred starting screensaver. xdg-screensaver cannot be started. Pri štarte šetriča obrazovky sa vyskytla chyba. xdg-screensaver nebolo možné spustiť. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Pri štarte šetriča obrazovky sa vyskytla chyba. Chyba syntaxe v argumentoch xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Pri štarte šetriča obrazovky sa vyskytla chyba. Uistite sa, či je xdg-screensaver nainštalovaný a spustený. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Pri štarte šetriča obrazovky sa vyskytla chyba. Operácia „activate“ zlyhala. Uistite sa, či je xdg-screensaver nainštalovaný a spustený. LXQt::ShortcutButton Clear Vyčistiť None Žiadna QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) about About LXQt O prostredí LXQt liblxqt-0.10.0/translations/liblxqt_sl.ts000066400000000000000000000260001261560636100205210ustar00rootroot00000000000000 AddPluginDialog Add plugins Dodaj vstavke Search: Iskanje: Add plugin Dodaj vstavek Close Zapri ConfigDialog Dialog Pogovorno okno LXQt::AboutDialogPrivate Yes Da No Ne LXQt::MessageBox LXQt Power Manager Error Napaka upravljanja z energijo Hibernate failed. Prehod v mirovanje ni uspel. LXQt::NotificationPrivate Notifications Fallback Zasilna obvestila LXQt::PowerManager Hibernate V mirovanje Suspend V pripravljenost Reboot Znova zaženi Shutdown Izklopi Logout Odjavi LXQt Session Suspend Seja v pripravljenost Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Ali res želite svoj računalnik preklopiti v stanje pripravljenosti?<p>Računalnik se preklopi v stanje nizke porabe energije. Stanje sistema se v primeru izpada elektrike ne ohrani. LXQt Session Hibernate Seja v mirovanje Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Ali res želite svoj računalnik preklopiti v stanje mirovanja?<p>Računalnik se preklopi v stanje nizke porabe energije. Stanje sistema se v primeru izpada elektrike ohrani. LXQt Session Reboot Ponovni zagon seje Do you want to really restart your computer? All unsaved work will be lost... Ali res želite znova zagnati svoj računalnik? Vse neshranjeno delo bo izgubljeno. LXQt Session Shutdown Izklop seje Do you want to really switch off your computer? All unsaved work will be lost... Ali res želite izklopiti svoj računalnik? Vse neshranjeno delo bo izgubljeno. LXQt Session Logout Odjava seje Do you want to really logout? All unsaved work will be lost... Ali se res želite odjaviti? Vse neshranjeno delo bo izgubljeno. LXQt Power Manager Error Napaka upravljanja z energijo Hibernate failed. Prehod v mirovanje ni uspel. Suspend failed. Prehod v pripravljenost ni uspel. LXQt::ScreenSaver Lock Screen Zakleni zaslon Screen Saver Error Screen Saver Activation Error Napaka vklopa ohranjevalnika zaslona An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Prišlo je do napake pri zagonu ohranjevalnika zaslona. Programa xdg-screensaver ni moč zagnati, ker se je sesul. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Prišlo je do napake pri zagonu ohranjevalnika zaslona. Program xdg-screensaver ni nameščen pravilno. An error occurred starting screensaver. xdg-screensaver cannot be started. Prišlo je do napake pri zagonu ohranjevalnika zaslona. Programa xdg-screensaver ni moč zagnati. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Prišlo je do napake pri zagonu ohranjevalnika zaslona. Napaka skladnje pri argumentih programa xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Prišlo je do napake pri zagonu ohranjevalnika zaslona. Preverite, ali imate nameščen in zagnan XLXQt::ScreenSaver. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Prišlo je do napake pri zagonu ohranjevalnika zaslona. Dejanje »activate« ni uspelo. Preverite, ali imate nameščen in zagnan XLXQt::ScreenSaver. LXQt::ShortcutButton Clear Počisti None Brez QObject Power Manager Error Napaka upravljalnika z energijo QDBusInterface is invalid QDBusInterface ni veljaven Power Manager Error (D-BUS call) Napaka upravljalnika z energijo (klic D-Bus) about About LXQt O LXQt About About dialog, Tab title O Technical Info About dialog, Tab title Tehnični podatki liblxqt-0.10.0/translations/liblxqt_sr@latin.ts000066400000000000000000000171761261560636100216750ustar00rootroot00000000000000 ConfigDialog Dialog LXQt::MessageBox LXQt Power Manager Error Hibernate failed. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Suspend Reboot Shutdown Logout LXQt Session Suspend Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. LXQt Session Hibernate Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. LXQt Session Reboot Do you want to really restart your computer? All unsaved work will be lost... LXQt Session Shutdown Do you want to really switch off your computer? All unsaved work will be lost... LXQt Session Logout Do you want to really logout? All unsaved work will be lost... LXQt Power Manager Error Hibernate failed. Suspend failed. LXQt::ScreenSaver Lock Screen Screen Saver Error Screen Saver Activation Error An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) liblxqt-0.10.0/translations/liblxqt_sr_RS.ts000066400000000000000000000266071261560636100211500ustar00rootroot00000000000000 AddPluginDialog Add plugins Додавање модула Search: Тражи: Add plugin Додај модул Close Затвори ConfigDialog Dialog Дијалог LXQt::MessageBox LXQt Power Manager Error Грешка Рејзоровог менаџера напајања Hibernate failed. Хибернација није успела. LXQt::NotificationPrivate Notifications Fallback LXQt::PowerManager Hibernate Хибернирај Suspend Суспендуј Reboot Поново покрени Shutdown Угаси Logout Одјави се LXQt Session Suspend Суспендовање Рејзорове сесије Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Желите ли заиста да суспендујете ваш рачунар?<p>Ово поставља ваш рачунар у стање смањене потрошње енергије. Стање система није очувано ако дође до нестанка струје. LXQt Session Hibernate Хибернација Рејзорове сесије Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Желите ли заиста да хибернирате ваш рачунар?<p>Ово поставља ваш рачунар у стање смањене потрошње енергије. Стање система је очувано ако дође до нестанка струје. LXQt Session Reboot Поновно покретање Рејзорове сесије Do you want to really restart your computer? All unsaved work will be lost... Желите ли заиста да поново покренете ваш рачунар? Несачуван рад ће бити изгубљен... LXQt Session Shutdown Гашење Рејзорове сесије Do you want to really switch off your computer? All unsaved work will be lost... Желите ли заиста да угасите ваш рачунар? Несачуван рад ће бити изгубљен... LXQt Session Logout Одјава Рејзорове сесије Do you want to really logout? All unsaved work will be lost... Желите ли заиста да се одјавите? Несачуван рад ће бити изгубљен... LXQt Power Manager Error Грешка Рејзоровог менаџера напајања Hibernate failed. Хибернација није успела. Suspend failed. Суспендовање није успело. LXQt::ScreenSaver Lock Screen Закључај екран Screen Saver Error Screen Saver Activation Error Грешка при активацији чувара екрана An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Грешка при покретању чувара екрана. xdg-screensaver се не може покренути јер се срушио. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Грешка при покретању чувара екрана. xdg-screensaver није инсталиран исправно. An error occurred starting screensaver. xdg-screensaver cannot be started. Грешка при покретању чувара екрана. xdg-screensaver се не може покренути. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Грешка при покретању чувара екрана. Грешка у синтакси аргумената xdg-screensaver-а. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Грешка при покретању чувара екрана. Уверите се да имате xdg-screensaver инсталиран и покренут. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Грешка при покретању чувара екрана. Радња „активирај“ није успела. Уверите се да имате xdg-screensaver инсталиран и покренут. LXQt::ShortcutButton Clear Очисти None Ништа QObject Power Manager Error QDBusInterface is invalid Power Manager Error (D-BUS call) about About LXQt О Рејзору liblxqt-0.10.0/translations/liblxqt_th_TH.ts000066400000000000000000000451011261560636100211140ustar00rootroot00000000000000 AddPluginDialog Add plugins เพิ่มกลุ่มปลั๊กอิน Search: ค้นหา: Add plugin เพิ่มปลั๊กอิน Close ปิด ConfigDialog Dialog กล่องโต้ตอบ LXQt::AboutDialogPrivate Version: %1 รุ่น: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text สภาพแวดล้อมเดสก์ท็อปที่เพียบพร้อม ใช้ง่าย รวดเร็ว โดยใช้เทคโลยีจาก Qt Copyright: %1-%2 %3 About dialog, 'About' tab text ลิขสิทธิ์สูกต้อง: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text โฮมเพจ: %1 License: %1 About dialog, 'About' tab text สัญญาอนุญาต: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt ได้แปลเป็นภาษาต่างๆ มากมาย จึงขอขอบคุณไปยังทีมงานแปลต่าง ๆ จากทั่วโลก Yes ใช่ No ไม่ <b>LXQt Desktop Toolbox - Technical Info</b> <b>กล่องเครื่องมือเดกส์ท็อป LXQt - ข้อมูลทางเทคนิค</b> Version รุ่น Qt Qt Debug Build ดีบั๊กบิวด์ System Configuration การตั้งค่าระบบ Share Directory ไดเรกทอรี Translations About dialog, Tab title การแปล <b>User Directories</b> <b>User Directories</b> Xdg Data Home Xdg Data Home Xdg Config Home Xdg Config Home Xdg Data Dirs Xdg Data Dirs Xdg Cache Home Xdg Cache Home Xdg Runtime Home Xdg Runtime Home Xdg Autostart Dirs Xdg Autostart Dirs Xdg Autostart Home Xdg Autostart Home LXQt::MessageBox LXQt Power Manager Error โปรแกรมจัดการพลังงานของ LXQt ขัดข้อง Hibernate failed. จำศีลเครื่องล้มเหลว LXQt::NotificationPrivate Notifications Fallback การเตือนต่างๆ กรณีกันพลาด LXQt::PowerManager Hibernate จำศีลเครื่อง Suspend พักเครื่อง Reboot เริ่มระบบใหม่ Shutdown ปิดเครื่อง Logout ออกจากระบบ LXQt Session Suspend พักการทำงานของ LXQt Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. คุณแน่ใจนะว่า ต้องการพักเครื่อง?<p>การพักเครื่องจะลดการใช้พลังงาน โปรดระวังด้วย หากไฟดับสถานะของระบบจะสูญหาย LXQt Session Hibernate จำศีลการทำงานของ LXQt Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. คุณแน่ใจนะ ว่าต้องการจำศีลเครื่อง?<p>การจำศีลเครื่องจะลดการใช้พลังงาน ถึงแม้ว่าไฟดับ สถานะของระบบก็จะถูกรักษาไว้ LXQt Session Reboot เริ่มการทำงานของ LXQt ใหม่ Do you want to really restart your computer? All unsaved work will be lost... คุณแน่ใจนะ ว่าต้องการเริ่มระบบใหม่? งานที่ไม่ได้บันทึกไว้ทั้งหมดจะสูญหาย LXQt Session Shutdown จบการทำงานของ lxqt Do you want to really switch off your computer? All unsaved work will be lost... คุณแน่ใจนะ ว่าต้องการปิดเครื่อง? งานที่ไม่ได้บันทึกไว้ทั้งหมดจะสูญหาย LXQt Session Logout ออกจากระบบ LXQt Do you want to really logout? All unsaved work will be lost... คุณแน่ใจนะว่า ต้องการออกจากระบบ? งานที่ยังไม่ได้บันทึกทั้งหมดจะสูญหาย.. LXQt Power Manager Error โปรแกรมจัดการพลังงานของ LXQt ขัดข้อง Hibernate failed. จำศีลเครื่องล้มเหลว Suspend failed. พักเครื่องล้มเหลว LXQt::ScreenSaver Lock Screen ล็อคหน้าจอ Screen Saver Error Screen Saver Activation Error การเริ่มงานของโปรแกรมรักษาหน้าจอขัดข้อง An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ xdg-screensaver ไม่สามารถเริ่มงานได้เนื่องจากมันเสียหาย An error occurred starting screensaver. xdg-screensaver is not installed correctly. เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ xdg-screensaver ไม่ได้ถูกติดตั้งอย่างถูกต้อง An error occurred starting screensaver. xdg-screensaver cannot be started. เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ xdg-screensaver ไม่สามารถเริ่มงานได้ An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ เกิด syntax error ใน xdg-screensaver อาร์กิวเมนต์ An error occurred starting screensaver. Ensure you have xscreensaver installed and running. เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ ตรวจดูให้แน่ใจว่าคุณได้ติดตั้งและเริ่มงาน xdg-screensaver แล้ว An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ xdg-screensaver ไม่สามารถเริ่มงานได้ An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ ไม่ทราบการขัดข้อง - undocumented กลับคืนค่าจาก xdg-screensaver=%1. LXQt::ShortcutButton Clear ล้าง None ไม่ต้อง QObject Power Manager Error โปรแกรมจัดการพลังงานขัดข้อง QDBusInterface is invalid เกิดการขัดข้องขณะเริ่มงานโปรแกรมรักษาหน้าจอ การเริ่มงานล้มเหลว ตรวจดูให้แน่ใจว่าคุณได้ติดตั้งและเริ่มงาน xscreensaver แล้ว Power Manager Error (D-BUS call) ตัวจัดการพลังงาน Error (D-BUS call) about About LXQt เกี่ยวกับ LXQt About About dialog, Tab title เกี่ยวกับ Authors About dialog, Tab title ผู้สร้าง Thanks About dialog, Tab title ขอขอบคุณ Translations About dialog, Tab title การแปล Technical Info About dialog, Tab title ข้อมูลทางเทคนิค liblxqt-0.10.0/translations/liblxqt_tr.ts000066400000000000000000000371261261560636100205430ustar00rootroot00000000000000 AddPluginDialog Add plugins Eklenti ekle Search: Ara: Add plugin Eklenti ekle Close Kapat ConfigDialog Dialog Etkileşim LXQt::AboutDialogPrivate Version: %1 Versiyon: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Qt teknolojilerini temel alan gelişmiş, kullanımı kolay ve hızlı masaüstü ortamı. Copyright: %1-%2 %3 About dialog, 'About' tab text Telif Hakkı: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Anasayfa: %1 License: %1 About dialog, 'About' tab text Lisans: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt tüm dünyadaki çeviri ekiplerinin çalışmalarına sayesinde birçok dil çevrilir. Yes Evet No Hayır <b>LXQt Desktop Toolbox - Technical Info</b> <b>LXQt Masaüstü araç kutusu - Teknik bilgi</b> Version Versiyon Qt Qt Debug Build Hata Ayıklama Oluştur System Configuration Sistem Yapılandırması Share Directory Paylaşılan Dizin Translations About dialog, Tab title Çeviriler <b>User Directories</b> <b>Kullanıcı Dizinleri</b> Xdg Data Home Xdg Ev Verisi Dizini Xdg Config Home Xdg Ev Yapılandırması Dizini Xdg Data Dirs Xdg Veri Dizinleri Xdg Cache Home Xdg Ev Önbelleği Dizini Xdg Runtime Home Xdg Ev Çalışma Zamanı Dizini Xdg Autostart Dirs Xdg Otomatik Başlatma Dizinleri Xdg Autostart Home Xdg Ev Otomatik Başlatma Dizini LXQt::MessageBox LXQt Power Manager Error LXQt Güç Yöneticisi Hatası Hibernate failed. Uykuya alma başarısız oldu. LXQt::NotificationPrivate Notifications Fallback Bildirimleri geriye al LXQt::PowerManager Hibernate Uyku Suspend Askıya Al Reboot Yeniden Başlat Shutdown Bilgisayarı Kapat Logout Oturumu Kapat LXQt Session Suspend LXQt Oturum Askıya Alma Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Bilgisayarınızı gerçekten askıya almak istiyor musunuz?<p>Bilgisayarı düşük güç tüketiminde askıya alır. Güç gittiği takdirde sistem durumu saklanmaz. LXQt Session Hibernate LXQt Oturum Uyku Kipi Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Bilgisayarınızı gerçekten uyku kipine geçirmek istiyor musunuz?<p>Bilgisayarı düşük güç tüketiminde uyku kipine alır. Güç gittiği takdirde sistem durumu korunur. LXQt Session Reboot LXQt Oturum Yeniden Başlatma Do you want to really restart your computer? All unsaved work will be lost... Bilgisayarınızı gerçekten yeniden başlatmak istiyor musunuz? Kaydedilmemiş veriler kaybolacaktır... LXQt Session Shutdown LXQt Oturum Kapatma Do you want to really switch off your computer? All unsaved work will be lost... Bilgisayarınızı gerçekten kapatmak istiyor musunuz? Kaydedilmemiş veriler kaybolacaktır... LXQt Session Logout LXQt Oturumu Kapatma Do you want to really logout? All unsaved work will be lost... Oturumunuzu gerçekten kapatmak istiyor musunuz? Kaydedilmemiş veriler kaybolacaktır... LXQt Power Manager Error LXQt Güç Yöneticisi Hatası Hibernate failed. Uykuya alma başarısız oldu. Suspend failed. Askıya alma başarısız oldu. LXQt::ScreenSaver Lock Screen Ekranı Kilitle Screen Saver Error Screen Saver Activation Error Ekran Koruyucusu Etkinleştirme Hatası An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Ekran koruyucu başlatılırken hata oluştu. xdg-screensaver çöktüğünden başlatılamadı. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Ekran koruyucu başlatılırken hata oluştu. xdg-screensaver düzgün biçimde kurulmamış, An error occurred starting screensaver. xdg-screensaver cannot be started. Ekran koruyucu başlatılırken hata oluştu. xdg-screensaver başlatılamıyor. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Ekran koruyucu başlatılırken hata oluştu. xdg-screensaver argümanlarında sözdizimi hatası. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Ekran koruyucu başlatılırken hata oluştu. xscreensaver uygulamasının kurulu ve çalışmakta olduğundan emin olun. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Ekran koruyucu başlatılırken hata oluştu. 'etkinleştirme' eylemi başarısız oldu. xscreensaver uygulamasının kurulu ve çalışmakta olduğundan emin olun. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Ekran Koruyucu başlarken bir hata oluştur. Bilinmeyen hata - xdg-screensaver=%1 den okunamayan geri dönüş değeri. LXQt::ShortcutButton Clear Temizle None Yok QObject Power Manager Error Güç Yöneticisi Hatası QDBusInterface is invalid QDBusInterface geçersiz Power Manager Error (D-BUS call) Güç Yöneticisi Hatası (D-Bus çağrısı) about About LXQt LXQt Hakkında About About dialog, Tab title Hakkında Authors About dialog, Tab title Yazarlar Thanks About dialog, Tab title Teşekkürler Translations About dialog, Tab title Çeviriler Technical Info About dialog, Tab title Teknik Bilgi liblxqt-0.10.0/translations/liblxqt_uk.ts000066400000000000000000000416231261560636100205320ustar00rootroot00000000000000 AddPluginDialog Add plugins Додати плаґіни Search: Шукати: Add plugin Додати плаґін Close Закрити ConfigDialog Dialog Діалог LXQt::AboutDialogPrivate Version: %1 Версія: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text Передове, легке у використанні та швидке стільникове середовище засноване на технологіях Qt. Copyright: %1-%2 %3 About dialog, 'About' tab text Авторське право: %1-%2 %3 Homepage: %1 About dialog, 'About' tab text Домашня сторінка: %1 License: %1 About dialog, 'About' tab text Ліцензія: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt перекладено на багато мов завдяки праці команд перекладачів по всьому світу. Yes Так No Ні <b>LXQt Desktop Toolbox - Technical Info</b> <b>Інструменти стільниці LXQt - Технічна інформація</b> Version Версія Qt Qt Debug Build Відлагоджувальна збірка System Configuration Сістемні налаштування Share Directory Спільна тека Translations About dialog, Tab title Переклади <b>User Directories</b> <b>Теки користувача</b> Xdg Data Home Домівка даних Xdg Xdg Config Home Домівка налаштувань Xdg Xdg Data Dirs Текі даних Xdg Xdg Cache Home Домівка кешу Xdg Xdg Runtime Home Домівка часу виконання Xdg Xdg Autostart Dirs Текі автозапуску Xdg Xdg Autostart Home Домівка автозапуску Xdg LXQt::MessageBox LXQt Power Manager Error Збій менеджера живлення LXQt Hibernate failed. Не вдалося приспати. LXQt::NotificationPrivate Notifications Fallback Резервне сповіщення LXQt::PowerManager Hibernate Приспати Suspend Призупинити Reboot Перезавантажити Shutdown Вимкнути Logout Вийти LXQt Session Suspend Призупинити комп’ютер Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Дійсно призупинити комп’ютер?<p>Це переведе його в режим зниженого енергоспоживання. При втраті живлення стан системи не збережеться. LXQt Session Hibernate Приспати комп’ютер Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Дійсно приспати комп’ютер?<p>Це переведе його в режим зниженого енергоспоживання. При втраті живлення стан системи збережеться. LXQt Session Reboot Перезавантажити комп’ютер Do you want to really restart your computer? All unsaved work will be lost... Дійсно перезавантажити комп’ютер? Усю незбережену роботу буде втрачено... LXQt Session Shutdown Вимкнути комп’ютер Do you want to really switch off your computer? All unsaved work will be lost... Дійсно вимкнути комп’ютер? Усю незбережену роботу буде втрачено... LXQt Session Logout Вийти з сеансу LXQt Do you want to really logout? All unsaved work will be lost... Дійсно завершити сеанс? Усю незбережену роботу буде втрачено... LXQt Power Manager Error Збій менеджера живлення LXQt Hibernate failed. Не вдалося приспати. Suspend failed. Не вдалося призупинити. LXQt::ScreenSaver Lock Screen Заблокувати екран Screen Saver Error Screen Saver Activation Error Збій запуску зберігача екрану An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. Стався збій при запуску зберігача екрану. xdg-screensaver зазнав краху. An error occurred starting screensaver. xdg-screensaver is not installed correctly. Стався збій при запуску зберігача екрану. xdg-screensaver не встановлено коректним чином. An error occurred starting screensaver. xdg-screensaver cannot be started. Стався збій при запуску зберігача екрану. Не вдалося запустити xdg-screensaver. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. Стався збій при запуску зберігача екрану. В аргументах xdg-screensaver синтаксична помилка. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. Стався збій при запуску зберігача екрану. Впевніться, що xscreensaver коректно встановлено та запущено. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. Стався збій при запуску зберігача екрану. Не вдалося виконати дію "activate". Впевніться, що xscreensaver коректно встановлено та запущено. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Стався збій при запуску зберігача екрану. Невідома помилка - xdg-screensaver повернув недокументоване значення = %1. LXQt::ShortcutButton Clear Очистити None Нічого QObject Power Manager Error Збій менеджера живлення QDBusInterface is invalid QDBusInterface недійсний Power Manager Error (D-BUS call) Збій менеджера живлення (виклик D-BUS) about About LXQt Про LXQt About About dialog, Tab title Про Authors About dialog, Tab title Автори Thanks About dialog, Tab title Подяка Translations About dialog, Tab title Перекладачі Technical Info About dialog, Tab title Технічна інформація liblxqt-0.10.0/translations/liblxqt_zh_CN.ts000066400000000000000000000357621261560636100211230ustar00rootroot00000000000000 AddPluginDialog Add plugins 添加插件 Search: 搜索: Add plugin 添加插件 Close 关闭 ConfigDialog Dialog 对话框 LXQt::AboutDialogPrivate Version: %1 版本:%1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text 基于 Qt 技术的高级、易用、快速的桌面环境 Copyright: %1-%2 %3 About dialog, 'About' tab text 版权所有:%1-%2 %3 Homepage: %1 About dialog, 'About' tab text 主页:%1 License: %1 About dialog, 'About' tab text 协议:%1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt 已被翻译成多种语言,特别感谢来自世界各地的翻译团队的努力。 Yes No <b>LXQt Desktop Toolbox - Technical Info</b> <b>LXQt 桌面工具箱 - 技术信息</b> Version 版本 Qt Qt Debug Build 调试版本 System Configuration 系统配置 Share Directory 共享目录 Translations About dialog, Tab title 翻译 <b>User Directories</b> <b>用户目录</b> Xdg Data Home Xdg 数据位置 Xdg Config Home Xdg 配置文件 Xdg Data Dirs Xdg 数据目录 Xdg Cache Home Xdg 缓存目录 Xdg Runtime Home Xdg 运行时目录 Xdg Autostart Dirs Xdg 开机启动目录 Xdg Autostart Home Xdg 开机启动文件 LXQt::MessageBox LXQt Power Manager Error LXQt电源管理器错误 Hibernate failed. 休眠失败。 LXQt::NotificationPrivate Notifications Fallback 后备消息通知 LXQt::PowerManager Hibernate 休眠 Suspend 挂起 Reboot 重启 Shutdown 关机 Logout 注销 LXQt Session Suspend 挂起LXQt会话 Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. 你真的要挂起你的计算机吗?<p>挂起的计算机将进入低功耗状态。 电源丢失后系统状态不会被保存。 LXQt Session Hibernate 休眠LXQt会话 Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. 你真的要将你的计算机休眠吗?<p>休眠的计算机将进入低功耗状态。 电源丢失后系统状态不会被保存。 LXQt Session Reboot 重启LXQt会话 Do you want to really restart your computer? All unsaved work will be lost... 你真的想要重启你的计算机吗? 所有未保存的任务都将丢失…… LXQt Session Shutdown 关闭电源 Do you want to really switch off your computer? All unsaved work will be lost... 你真的想要关闭你的计算机吗? 所有未保存的任务都将丢失…… LXQt Session Logout 注销LXQt会话 Do you want to really logout? All unsaved work will be lost... 你真的想要注销你的计算机吗? 所有未保存的任务都将丢失…… LXQt Power Manager Error LXQt电源管理器错误 Hibernate failed. 休眠失败。 Suspend failed. 挂起失败。 LXQt::ScreenSaver Lock Screen 锁屏 Screen Saver Error Screen Saver Activation Error 屏幕保护程序激活出错 An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. 启动屏幕保护时一个错误发生:xdg-screensaver由于崩溃而不能启动。 An error occurred starting screensaver. xdg-screensaver is not installed correctly. 启动屏幕保护时一个错误发生:xdg-screensaver没有正确地安装。 An error occurred starting screensaver. xdg-screensaver cannot be started. 启动屏幕保护时一个错误发生:xdg-screensaver不能启动。 An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. 启动屏幕保护时一个错误发生:xdg-screensaver参数有语法错误。 An error occurred starting screensaver. Ensure you have xscreensaver installed and running. 启动屏幕保护时一个错误发生:请确保你安装并运行了xscreensaver。 An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. 启动屏幕保护时一个错误发生:“激活”失败。请确保你安装并运行了xscreensaver。 An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. 启动屏幕保护时出错。未知错误 - xdg-screensaver=%1 返回非正式返回值。 LXQt::ShortcutButton Clear 清除 None QObject Power Manager Error 电源管理错误 QDBusInterface is invalid QDBusInterface 不正确 Power Manager Error (D-BUS call) 电源管理错误 (D-BUS 调用) about About LXQt 关于LXQt About About dialog, Tab title 关于 Authors About dialog, Tab title 作者 Thanks About dialog, Tab title 致谢 Translations About dialog, Tab title 翻译 Technical Info About dialog, Tab title 技术信息 liblxqt-0.10.0/translations/liblxqt_zh_TW.ts000066400000000000000000000356201261560636100211460ustar00rootroot00000000000000 AddPluginDialog Add plugins 新增小工具 Search: 搜尋: Add plugin 新增小工具 Close 關閉 ConfigDialog Dialog 對話框 LXQt::AboutDialogPrivate Version: %1 版本: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. About dialog, 'About' tab text 基於Qt技術打造出來使用容易、進階、快速的桌面環境 Copyright: %1-%2 %3 About dialog, 'About' tab text 版權所有: %1.%2 %3 Homepage: %1 About dialog, 'About' tab text 首頁: %1 License: %1 About dialog, 'About' tab text 憑證 :%1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. About dialog, 'Translations' tab text LXQt已經有由世界各地的翻譯團隊所提供多種語言的翻譯。 Yes No <b>LXQt Desktop Toolbox - Technical Info</b> <b>LXQt桌面工具箱-技術資訊</b> Version 版本 Qt Qt Debug Build 開發除錯 System Configuration 系統設定 Share Directory 分享目錄 Translations About dialog, Tab title 翻譯 <b>User Directories</b> <b>使用者目錄</b> Xdg Data Home Xdg資料首頁 Xdg Config Home Xdg設定首頁 Xdg Data Dirs Xdg資料目錄 Xdg Cache Home Xdg快取首頁 Xdg Runtime Home Xdg 運行環境首頁 Xdg Autostart Dirs Xdg自動啟動目錄 Xdg Autostart Home Xdg自動啟動首頁 LXQt::MessageBox LXQt Power Manager Error LXQt電源管理員錯誤 Hibernate failed. 休眠失敗。 LXQt::NotificationPrivate Notifications Fallback 後備通知 LXQt::PowerManager Hibernate 休眠 Suspend 暫停 Reboot 重新啟動 Shutdown 關機 Logout 登出 LXQt Session Suspend 暫停LXQt會話 Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. 你確定要讓您的電腦進入暫停模式嗎?<p>暫停主機可以節省耗能。切斷電源後系統狀況也將遺失。 LXQt Session Hibernate 休眠LXQt會話 Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. 您確定要讓電腦進入休眠模式嗎?<p>休眠主機可以節省耗能。切斷電源後系統狀況也將遺失。 LXQt Session Reboot 重新啟動LXQt會話 Do you want to really restart your computer? All unsaved work will be lost... 您確定要重新啟動您的電腦嗎?所有未儲存工作將會遺失…… LXQt Session Shutdown 關閉電源 Do you want to really switch off your computer? All unsaved work will be lost... 您確定要關閉您的電腦嗎?所有未儲存工作將會遺失…… LXQt Session Logout 登出LXQt會話 Do you want to really logout? All unsaved work will be lost... 您確定要登出嗎?所有未儲存工作將會遺失…… LXQt Power Manager Error LXQt電源管理員錯誤 Hibernate failed. 休眠失敗。 Suspend failed. 暫停失敗。 LXQt::ScreenSaver Lock Screen 螢幕上鎖 Screen Saver Error Screen Saver Activation Error 啟動螢幕保護程序錯誤 An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver: %1. An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. 啟動螢幕保護時發生錯誤:因為xdg-screensaver崩潰而無法啟動 An error occurred starting screensaver. xdg-screensaver is not installed correctly. 啟動螢幕保護時發生錯誤:xdg-screensaver並沒有正確安裝。 An error occurred starting screensaver. xdg-screensaver cannot be started. 啟動螢幕保護時發生錯誤:xdg-screensaver無法啟動。 An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. 啟動螢幕保護時發生錯誤:xdg-screensaver參數語法錯誤。 An error occurred starting screensaver. Ensure you have xscreensaver installed and running. 啟動螢幕保護時發生錯誤:請確定您安裝並運行了xscreensaver。 An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. 啟動螢幕保護時發生錯誤:啟動失敗。請確定您安裝並運行了xscreensaver。 An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. 啟動螢幕保護程式時發生錯誤。未知錯誤 - 從xdg-screensaver=%1的無證回傳值 LXQt::ShortcutButton Clear 清除 None QObject Power Manager Error 電源管理錯誤 QDBusInterface is invalid QDBus介面無效 Power Manager Error (D-BUS call) 電源管理錯誤(DBus通知) about About LXQt 關於LXQt About About dialog, Tab title 關於 Authors About dialog, Tab title 作者 Thanks About dialog, Tab title 感謝 Translations About dialog, Tab title 翻譯 Technical Info About dialog, Tab title 技術資訊 liblxqt-0.10.0/translations/librazorqt_ru.ts000066400000000000000000000306551261560636100212560ustar00rootroot00000000000000 AddPluginDialog Add plugins Добавить плагины Search: Поиск: Add plugin Добавить плагин Close Закрыть LXQt::PowerManager Hibernate Спящий режим Suspend Ждущий режим Reboot Перезагрузка Shutdown Выключить компьютер Logout Завершить сеанс LXQt Session Suspend Paзор Ждущий режим Do you want to really suspend your computer?<p>Suspends the computer into a low power state. System state is not preserved if the power is lost. Перевести компьютер в ждущий режим?<p>Состояние системы будет потеряно при отключении питания. LXQt Session Hibernate Paзор Спящий режим Do you want to really hibernate your computer?<p>Hibernates the computer into a low power state. System state is preserved if the power is lost. Перевести компьютер в спящий режим?<p>Состояние системы будет сохранено при отключении питания. LXQt Session Reboot Paзор Перезагрузка Do you want to really restart your computer? All unsaved work will be lost... Перезагрузить компьютер? Все не сохраненные документы будут потеряны... LXQt Session Shutdown Paзор Выключение Do you want to really switch off your computer? All unsaved work will be lost... Выключить компьютер? Все не сохраненные документы будут потеряны... LXQt Session Logout Paзор Завершение сеанса Do you want to really logout? All unsaved work will be lost... Завершить сеанс?<p>Все не сохраненные документы будут потеряны... LXQt Power Manager Error Ошибка Paзор менеджер электроэнергии Hibernate failed. Ошибка перехода в спящий режим. Suspend failed. Ошибка перехода в ждущий режим. QObject Power Manager Error Ошибка модуля управления питанием QDBusInterface is invalid Неправильный интерфейс доступа к шине DBus Power Manager Error (D-BUS call) Ошибка модуля управления питанием(вызов DBus) LXQt::AboutDialogPrivate Version: %1 Версия: %1 Advanced, easy-to-use, and fast desktop environment based on Qt technologies. Передовая, простая в использовании и быстрая среда рабочего стола, базирующаяся на технологиях Qt. Copyright: %1-%2 %3 Лицензия: %1-%2 %3 Homepage: %1 Домашняя страница: %1 License: %1 Лицензия: %1 LXQt is translated into many languages thanks to the work of the translation teams all over the world. LXQt переведена на множество языков благодаря работе команд переводчиков по всему миру. Yes да No Hет <b>LXQt Desktop Toolbox - Technical Info</b> <b>Инструментарий рабочего стола LXQt - Техническая Информация</b> Version Версия Qt Qt Debug Build Отладочная версия System Configuration Настройки системы Share Directory Открыть общий доступ к папке Translations Переводы <b>User Directories</b> <b>Папки пользователя</b> Xdg Data Home Расположение данных Xdg Xdg Config Home Расположение настроек Xdg Xdg Data Dirs Папки данных Xdg Xdg Cache Home Расположение кеша Xdg Xdg Runtime Home Расположение среды времени выполнения Xdg Xdg Autostart Dirs Папки автозапуска Xdg Xdg Autostart Home Расположение автозапуска Xdg ConfigDialog Dialog Диалог LXQt::NotificationPrivate Notifications Fallback Уведомления отступление LXQt::ShortcutButton Clear Очистить None Не задано LXQt::ScreenSaver Lock Screen Заблокировать экран Screen Saver Activation Error Ошибка запуска хранителя экрана An error occurred starting screensaver. xdg-screensaver cannot be started due its crash. При запуске произошла ошибка. Не вышло запустить xdg-screensaver по причине его ошибки. An error occurred starting screensaver. xdg-screensaver is not installed correctly. При запуске произошла ошибка. Xdg-screensaver не установлен по человечески. An error occurred starting screensaver. xdg-screensaver cannot be started. При запуске произошла ошибка. Xdg-screensaver не запущен. An error occurred starting screensaver. Syntax error in xdg-screensaver arguments. При запуске произошла ошибка. Не верные аргументы запуска xdg-screensaver. An error occurred starting screensaver. Ensure you have xscreensaver installed and running. При запуске произошла ошибка. Убедитесь, что xdg-screensaver установлен и запущен. An error occurred starting screensaver. Action 'activate' failed. Ensure you have xscreensaver installed and running. При запуске произошла ошибка. Не могу активизировать его. Xdg-screensaver не установлен по человечески. An error occurred starting screensaver. Unknown error - undocumented return value from xdg-screensaver=%1. Ошибка при запуске хранителя экрана. Неизвестная ошибка - команда xdg-screensaver=%1 вернула недокументированное значение. about About LXQt О программе About O программе Authors Авторы Thanks Благодарности Translations Переводы Technical Info Техническая информация