generic: import kdevplatform and kdevelop

This commit is contained in:
Ivailo Monev 2015-07-26 14:23:17 +03:00
parent e58a13a33b
commit f4850a782f
4453 changed files with 934938 additions and 8 deletions

View file

@ -1,20 +1,16 @@
# Kate project
project (kde-extraapps)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules")
#search packages used by KDE
set(QT_MIN_VERSION "4.8.2")
find_package(KDE4 4.14.3 REQUIRED)
include (KDE4Defaults)
include(KDE4Defaults)
include(GenerateExportHeader)
# shared libs
set (LIBRARY_TYPE SHARED)
set(LIBRARY_TYPE SHARED)
# KDE/QT definitions we want
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
add_definitions (-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS -DKTEXTEDITOR_NO_DEPRECATED)
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
# global include directories
include_directories (${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${KDE4_INCLUDES})
@ -64,3 +60,5 @@ macro_optional_add_subdirectory (skanlite)
macro_optional_add_subdirectory (svgpart)
macro_optional_add_subdirectory (thumbnailers)
macro_optional_add_subdirectory (yakuake)
macro_optional_add_subdirectory (kdevplatform)
macro_optional_add_subdirectory (kdevelop)

2
kdevelop/.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
*.desktop merge=ours
*.desktop.cmake merge=ours

2
kdevelop/.kateconfig Normal file
View file

@ -0,0 +1,2 @@
kate: space-indent on; indent-width 4; replace-tabs on; tab-width 4; auto-insert-doxygen on; indent-mode cstyle;

3
kdevelop/.reviewboardrc Normal file
View file

@ -0,0 +1,3 @@
REPOSITORY = "git://anongit.kde.org/kdevelop"
REVIEWBOARD_URL = "https://git.reviewboard.kde.org"
TARGET_GROUPS = "kdevelop"

106
kdevelop/AUTHORS Normal file
View file

@ -0,0 +1,106 @@
Current Maintainers:
Andreas Pakulat <apaku@gmx.de> - Lead Maintainer
Amilcar do Carmo Lucas <amilcar@kdevelop.org> - Maintainer - KDevelop.org
Previous Maintainers and their areas of expertise can be found below. It is best
to contain the KDevelop developers list at kdevelop-devel@kdevelop.org if you have
a question about one of these particular areas.
For a more complete list, please check the About Dialog from the KDevelop Help menu.
Ui Library, Ruby Support
Alexander Dymo <adymo@kdevelop.org>
Former Lead Maintainer, CMake and Autotools support
Matt Rogers <mattr@kde.org>
Main author, lots of code. :)
Bernd Gehrmann <bernd@physik.hu-berlin.de>
Debugger frontend:
John Birch <jbb@kdevelop.org>
C++ source parser:
Jonas Nordin <jonas.nordin@cenacle.se>
Java support:
Richard Dale <Richard_Dale@tipitina.demon.co.uk>
Framework, dialogs, PHP support:
Sandy Meier <smeier@kdevelop.org>
Several parts, htdig searching & indexing:
Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
Help with Automake manager:
Victor Roeder <victor_roeder@gmx.de>
KDE application templates:
Kurth Granroth <kurt@granroth.org>
editing component:
The KWrite authors <kwrite-devel@kde.org>
QEditor part, help for code-completion, abbrev part:
Roberto Raggi <roberto@kdevelop.org>
Qt 3 port, various patches:
Harald Fernengel <harry@kdevelop.org>
Help with KParts, KGenericFactory and other KDE infrastructure:
Simon Hausmann <hausmann@kde.org>
Subversion KPart:
Mickael Marchand <marchand@kde.org>
Patches:
Dominic Seichter <domseichter@t-online.de>
Yann Hodique <Yann.Hodique@lifl.fr>
Heinz Hornung <Hornung-Heinz@t-online.de>
SplashScreens:
Marion Klein <MarionKlein@wanadoo.fr>
Ram<61> Lamana Villar <ramon@alumnos.upm.es>
KDevTabBar, bug fixes, Gideon Release:
Caleb Tennis <caleb@aei-tech.com>
PartExplorer, (bugs for) CvsPart:
Mario Scalas <mario.scalas@libero.it>
Pascal support and project parts, Filecreate GUI,
Documentation viewer improvements
Alexander Dymo <cloudtemple@mksat.net>
Application wizard improvementes, application templates, documentation, bug fixes:
Dominik Haumann <dhdev@gmx.de>
DistPart, Bash Shell Support:
Ian Reinhart Geiser <geiseri@kde.org>
API Documentation, Run Options, code reorganization. Fixes for project templates, autotools and doxygen.
Amilcar Lucas <amilcar@kdevelop.org>
Replace plugin, Bookmarks plugin, FileList plugin, CTags2 plugin, Overall improvements and patches
Jens Dagerbo <jens.dagerbo@swipnet.se>
SnippetPart, debugger and usability patches
Robert Gruber <rgruber@users.sourceforge.net>
Other software included in the source package:
* KDE 2.0 Development Book
David Sweet, et al.
Copyright notices see in doc/kde2book
* GNU libc documentation
Sandra Loosemore, Richard M. Stallman, Roland McGrath,
Andrew Oram, and Ulrich Drepper
Copyright notices see in doc/libc
* STL documentation
SGI, Inc.
Copyright notices see in doc/stl

43
kdevelop/CHANGELOG.4.7.1 Normal file
View file

@ -0,0 +1,43 @@
ChangeLog for kdevelop v4.7.1
=============================
* Milian Wolff: Prepare release of 4.7.1
* Kevin Funk: Fix CMakePreferences sizing
* Kevin Funk: cpp: Fix conversion warnings
* Kevin Funk: PVS V555 fix
* Kevin Funk: includeswidget: Use KMessageWidget
* Kevin Funk: Lower-case project name
* René J.V. Bertin: Avoid setting CMake variables globally that also exist as target-specific.
* René J.V. Bertin: OS X: * additional protection against App Nap and automaticTermination * really set the BundleDisplayName * generate an application icon resource
* René J.V. Bertin: [OS X] Set the Info.plist bundle name to KDevelop and the Info String to the longer string. Also disable support for automatic termination in the Info.plist.
* Kevin Funk: mac: Use correct bundle version
* HuiJie Zhang: Fix bug on multi-line function-macros expansion,
* Milian Wolff: Delete some dead code
* René J.V. Bertin: fix indentation REVIEW: 121391
* René J.V. Bertin: [OS X] create a dedicated Info.plist for kdevelop REVIEW: 121394
* René J.V. Bertin: Avoid inappropriate warning about faulty ninja.build file from gdb/CMakeLists.txt REVIEW: 121391
* Kevin Funk: Hack for making build with CMake 2.8 and Ninja
* Kevin Funk: Remove .kdev4 file from subdirectory
* Kevin Funk: Revert "MissingDeclarationAssistant: Only show identifier"
* Kevin Funk: Disable missing decl assistant for namespaced ids
* Kevin Funk: Fix test in combination with GCC 4.9.1 and -O2
* Kevin Funk: Don't access dangling pointer
* Nicolas Werner: Fix environment-cd for paths containing spaces.
* Kevin Funk: Make compile for me
* Milian Wolff: Reduce QVariant usage.
* Milian Wolff: Fix regressions introduced by recent refactoring.
* Milian Wolff: Minor code cleanup
* Milian Wolff: Use the add_debuggable_executable macro everywhere its required.
* Milian Wolff: Revert "Use debugfull configuration whenever it is available."
* Milian Wolff: Use debugfull configuration whenever it is available.
* Milian Wolff: Refactor the custom defines and includes plugin.
* Milian Wolff: Fix regression: Don't remove the KDEV_USE_EXTENSION_INTERFACE.
* Milian Wolff: Fix assertion about unknown projects in the IDAIM.
* Aleix Pol: Change precedence of default include paths
* Milian Wolff: Fixup signal connection
* Milian Wolff: Fix compile with clang 3.5
* Pino Toscano: gdb: "#else if" does not exist, "#elif" does
* Pino Toscano: gdb: fix member order
* Pino Toscano: fix ByteArray/QByteArray typo
* René J.V. Bertin: Enables the debugger on OS X. Requires presence of a recent gdb version, e.g. from MacPorts. REVIEW: 120510
* Kevin Funk: Fix uninitialized member 'kind'

91
kdevelop/CMakeLists.txt Normal file
View file

@ -0,0 +1,91 @@
# KDevelop version
set( KDEVELOP_VERSION_MAJOR 4 )
set( KDEVELOP_VERSION_MINOR 7 )
set( KDEVELOP_VERSION_PATCH 1 )
# KDevplatform dependency version
set( KDEVPLATFORM_VERSION "1.${KDEVELOP_VERSION_MINOR}.${KDEVELOP_VERSION_PATCH}" )
################################################################################
cmake_minimum_required(VERSION 2.8.9)
project(KDevelop)
set(CMAKE_MODULE_PATH ${KDevelop_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
set(KDE_MIN_VERSION "4.7.0")
find_package(KDE4 4.7.0 REQUIRED)
include (KDE4Defaults)
include (MacroLibrary)
include (MacroOptionalAddSubdirectory)
find_package(QJSON)
# QJSON <=0.7.1 provides variables with lower case prefix, see bug 331426
if (QJSON_VERSION VERSION_LESS "0.7.2")
set(QJSON_LIBRARIES ${qjson_LIBRARIES})
set(QJSON_INCLUDE_DIR ${qjson_INCLUDE_DIR})
endif()
# Make sure that we're having RPATH on our installed libs, else using kdevelop
# from prefixes like $HOME/kdevelop breaks
# Code taken from FindKDE4Internal.cmake from KDE 4.5
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${LIB_INSTALL_DIR}"
_isSystemLibDir)
if("${_isSystemLibDir}" STREQUAL "-1")
set(CMAKE_INSTALL_RPATH "${LIB_INSTALL_DIR}")
endif("${_isSystemLibDir}" STREQUAL "-1")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
find_package(KDevPlatform ${KDEVPLATFORM_VERSION} REQUIRED)
include_directories(${KDEVPLATFORM_INCLUDE_DIR})
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS} -DHAVE_CONFIG_H=1)
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# in Qt 4, clang support is lacking...
add_definitions("-DQ_COMPILER_INITIALIZER_LISTS=1")
endif()
# Turn off missing-field-initializers warning to avoid noise from false positives with empty {}
# See discussion: http://mail.kde.org/pipermail/kdevelop-devel/2014-February/046910.html
if (CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers")
endif()
include_directories(${KDevelop_SOURCE_DIR} ${KDevelop_BINARY_DIR} ${KDE4_INCLUDES} )
# create config.h
configure_file (config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h )
add_subdirectory(cmake)
add_subdirectory(pics)
add_subdirectory(app)
add_subdirectory(formatters)
add_subdirectory(languages)
add_subdirectory(projectbuilders)
add_subdirectory(projectmanagers)
add_subdirectory(debuggers)
add_subdirectory(app_templates)
add_subdirectory(documentation)
add_subdirectory(kdeintegration)
add_subdirectory(utils)
add_subdirectory(file_templates)
add_subdirectory(providers)
macro_display_feature_log()
include(CTest)
# CTestCustom.cmake has to be in the CTEST_BINARY_DIR.
# in the KDE build system, this is the same as CMAKE_BINARY_DIR.
configure_file(${CMAKE_SOURCE_DIR}/CTestCustom.cmake ${CMAKE_BINARY_DIR}/CTestCustom.cmake)
include(MacroOptionalAddSubdirectory)
macro_optional_add_subdirectory( po )

340
kdevelop/COPYING Normal file
View file

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

397
kdevelop/COPYING.DOC Normal file
View file

@ -0,0 +1,397 @@
GNU Free Documentation License
Version 1.2, November 2002
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
51 Franklin St, 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.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other
functional and useful document "free" in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
This License is a kind of "copyleft", which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The "Document", below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as "you". You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of
the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall subject
(or to related matters) and contains nothing that could fall directly
within that overall subject. (Thus, if the Document is in part a
textbook of mathematics, a Secondary Section may not explain any
mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The "Invariant Sections" are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format, SGML
or XML using a publicly available DTD, and standard-conforming simple
HTML, PostScript or PDF designed for human modification. Examples of
transparent image formats include PNG, XCF and JPG. Opaque formats
include proprietary formats that can be read and edited only by
proprietary word processors, SGML or XML for which the DTD and/or
processing tools are not generally available, and the
machine-generated HTML, PostScript or PDF produced by some word
processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
A section "Entitled XYZ" means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as "Acknowledgements",
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
of such a section when you modify the Document means that it remains a
section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
B. List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
C. State on the Title page the name of the publisher of the
Modified Version, as the publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
F. Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
G. Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
H. Include an unaltered copy of this License.
I. Preserve the section Entitled "History", Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled "History" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
Preserve the Title of the section, and preserve in the section all
the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
L. Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
N. Do not retitle any existing section to be Entitled "Endorsements"
or to conflict in title with any Invariant Section.
O. Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties--for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History"
in the various original documents, forming one section Entitled
"History"; likewise combine any sections Entitled "Acknowledgements",
and any sections Entitled "Dedications". You must delete all sections
Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an "aggregate" if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements",
"Dedications", or "History", the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except
as expressly provided for under this License. Any other attempt to
copy, modify, sublicense or distribute the Document 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.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation 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. See
http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License "or any later version" applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with the
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.

510
kdevelop/COPYING.LIB Normal file
View file

@ -0,0 +1,510 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin St, 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
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms
of the ordinary General Public License).
To apply these terms, attach the following notices to the library.
It is safest to attach them to the start of each source file to most
effectively convey the exclusion of warranty; and each file should
have at least the "copyright" line and a pointer to where the full
notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or
your school, if any, to sign a "copyright disclaimer" for the library,
if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James
Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View file

@ -0,0 +1,13 @@
## This file should be placed in the root directory of your project.
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
## # The following are required to uses Dart and the Cdash dashboard
## ENABLE_TESTING()
## INCLUDE(Dart)
set(CTEST_PROJECT_NAME "KDevelop")
set(CTEST_NIGHTLY_START_TIME "03:15:00 CET")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=KDevelop")
set(CTEST_DROP_SITE_CDASH TRUE)

View file

@ -0,0 +1,25 @@
# This file contains all the specific settings that will be used
# when running 'make Experimental'
# Change the maximum warnings that will be displayed
# on the report page (default 50)
set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 1000)
# Warnings that will be ignored
set(CTEST_CUSTOM_WARNING_EXCEPTION
${CTEST_CUSTOM_WARNING_EXCEPTION}
# "/plugins/subversion/kdevsvncpp/"
)
# Errors that will be ignored
set(CTEST_CUSTOM_ERROR_EXCEPTION
${CTEST_CUSTOM_ERROR_EXCEPTION}
# "ICECC"
# "Segmentation fault"
# "GConf Error"
# "Client failed to connect to the D-BUS daemon"
# "Failed to connect to socket"
)
# No coverage for these files
set(CTEST_CUSTOM_COVERAGE_EXCLUDE ".moc$" "moc_" "ui_")

270
kdevelop/Doxyfile Normal file
View file

@ -0,0 +1,270 @@
# Doxyfile 1.5.1-KDevelop
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = KDevelop
PROJECT_NUMBER = "Version 4.0"
OUTPUT_DIRECTORY = ./apidocs
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = $(PWD)/
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES = obsolete=@deprecated \
"feature=\xrefitem features \"Feature(s)\" \"Features\"" \
"maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \
"unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \
"requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \
"faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \
"authors=\xrefitem authors \"Author(s)\" \"Authors\"" \
"FIXME=\xrefitem fixme \"Fixme\" \"Fixme\""
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT =
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = doc/api \
lib/interfaces \
lib/config \
lib/editor \
lib/language \
lib/project \
lib/shell \
lib/sublime
FILE_PATTERNS = *.h \
*.cpp \
*.cc \
*.hpp \
*.dox \
*.c++ \
*.cxx \
*.h++ \
*.hh
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = *.moc.* \
moc* \
*.all_cpp.* \
*unload.* \
*/test/* \
*/tests/* \
*face_skel.cpp \
*.ui.h \
kdev*
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH = ./doc/api
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 3
IGNORE_PREFIX = K
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = ./html
HTML_FILE_EXTENSION = .html
HTML_HEADER = doc/api/common/header.html
HTML_FOOTER = doc/api/common/footer.html
HTML_STYLESHEET = doc/api/common/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = ./latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = YES
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = YES
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = ./rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = ./man
MAN_EXTENSION = .kde3
MAN_LINKS = YES
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = ANTLR_USE_NAMESPACE(_x_)=_x_::
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES = $(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/interfaces/interfaces.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/interfaces/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kdecore/kdecore.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kdecore/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kdefx/kdefx.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kdefx/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kdeui/kdeui.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kdeui/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/khtml/khtml.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/khtml/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kio/kio.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kio/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kjs/kjs.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kjs/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kparts/kparts.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kparts/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kutils/kutils.tag=$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/kutils/html/ \
$(KDEDIR)/share/doc/HTML/en/kdelibs-apidocs/qt/qt.tag=$(QTDIR)/doc/html
GENERATE_TAGFILE = ./apidocs/kdevelop.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = NO
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

4
kdevelop/ExtraDesktop.sh Normal file
View file

@ -0,0 +1,4 @@
#! /bin/sh
#This file outputs in a separate line each file with a .desktop syntax
#that needs to be translated but has a non .desktop extension
find -name \*.kdevtemplate -print

9
kdevelop/HACKING Normal file
View file

@ -0,0 +1,9 @@
To change KDevelop's code please read the API documentation generated by doxygen at:
http://www.kdevelop.org/
or generate it yourself:
/path/to/kdelibs/doc/api/doxygen.sh --recurse --doxdatadir=/path/to/kdelibs/doc/common /path/to/kdevplatform ( the generated documentation will be at kdevplatform-apidocs )
or read *.dox files in the doc/api/ directory.

14
kdevelop/HACKING.language Normal file
View file

@ -0,0 +1,14 @@
To find how to add support for a new programming language to KDevelop
please read the API documentation generated by doxygen at:
http://www.kdevelop.org/
or
http://api.kde.org/4.x-api/kdevplatform-apidocs/language/duchain/html/Implementing.html
or generate it yourself:
look at HACKING
or read the file:
doc/api/HowToAddProgrammingLanguages.dox

3
kdevelop/INSTALL Normal file
View file

@ -0,0 +1,3 @@
Please read the documentation on our wiki:
http://techbase.kde.org/Projects/KDevelop4/HowToCompile

15
kdevelop/README Normal file
View file

@ -0,0 +1,15 @@
KDevelop IDE and Platform
---------------------------
General information about KDevelop: http://www.kdevelop.org/
Compiling instructions: http://techbase.kde.org/Projects/KDevelop4/HowToCompile
KDevelop Platform API Documentation
------------------------------------
API documentation is available from http://api.kde.org/extragear-api/kdevelop-apidocs/kdevplatform/html/index.html
To build it by yourself, make sure you have the kdelibs source available
Run
kdelibs/doc/api/doxygen.sh --doxdatadir=kdelibs/doc/common ./
in the KDevelop top source directory to generate the API documentation. kdelibs
refers to the kdelibs sources that you need to have downloaded.

204
kdevelop/README.devel Normal file
View file

@ -0,0 +1,204 @@
General
-------
KDevelop 2 could be generally divided into the following categories:
- The core: Which connects the parts and plug-ins to the user
interface
- Parts: Which implements various parts of the KDevelop based on
Components architecture.
- Plug-ins: Which implements some other stuff based on the plug-in
architecture. For the difference between Components and plug-ins
see bellow.
The Core
--------
Resided in kdevelop/, sets up the GUI, loads various components
(throug the Component Manager - see bellow), communicates with the
components to let them talk to the user interface.
Components/Component Architecture
---------------------------------
Initial functionalities whithin KDevelop are divided into some
Parts. These are parts which KDevelop needs to run and function. For
instance you can think of the editor, or the class parser.
To give the component identities and uniformation, they shold be
derived from the class KDevComponent as defined in
kdevelop/lib/ComponentManager/kdevcomponent.h. This class defines some
minimal functionality needed for instance for communications. Each
component can communicate with other components or with the core.
KDevComponent defines some virtual methods which could be overrided in
each component.
To let the components communicate with each other, every component
should have some minimum access to the component which it's going to
communicate with. That's why the communicating components should be
divided into a generalization and a specialization.
The Generalization is directly derived from KDevComponent and provides
minimum access for other components which may communicate. The
Specialization is a derived class from the Generalization, and extends
the components and implements it fully. The generalizations are
resided in kdevelop/lib/ComponentManger/Components/ and the
specializations are defined as Parts in kdevelop/parts.
If a component does not need to communicate with other components, or
nobody wants to communicate with it, it does not need to have
generalization and it could directly derive from KDevComponent. In
this case it is called a global component.
The Generalizations are identified externally by ServiceTypes of
KDE. The Specializations are identified externally by Services.
The MUST have these. (See Component Manager)
The components can communicate also with the core, or the core may
want to communicate with them. This happens through the Component
Manager (See bellow).
Plug-ins/ Plug-in architecture
------------------------------
Extended specializations of the Parts and also some other
functionalities are defined as Plug-ins. Plug-ins are resided in
/kdevelop/plugin.
Component Manager
-----------------
To give a uniform structure to the Core<->Component communications and
to organize the loading/unloading the componens and to register them
correctly there is Component Manager.
Class KDevComponentManager, resided in lib/ComponentManager is
responsible for loading the components (using the klibloader and
kservice). Everybody (mostly the core) who wants to load a component,
loads it using the KDevComponentManager. KDevComponentManager
provides the needed methods. When KDevComponentManager loads a module,
registers it as well, so it can give the pointer to the rest, if they
ask for it.
Another aspect of the KDevComponentManager is the Core<->Component
communications. It provides some public slots and signals. Send the
right signal to it, it distributes the signal over the registerd
components. So can the core communicate easily with the components
just using the KDevComponentManager to deliver its qt signals.
Creating a KDevComponent
------------------------
A new KDevComponent should have the following characters:
- It could have a generalization.
- It must have a specialization.
- The generalization (if exists) must derive from the class
KDevComponent.
- The specialization must derive from the generalization (if exists,
otherwise from the class KDevComponent)
- The generalization (if exists) must provide a ServiceType.
- The specialization must provide a Service associating with the
ServiceType of the generalization (if exists, otherwise the
ServiceType of KDevComponent).
- The generalization (if exists) must reside in
kdevelop/lib/ComponentManager/Components.
- The specialization must reside in kdevelop/parts.
- It must have a KInstance and should be able to be loaded with
klibloader.
Note:
Not everything should be component. The Component architecture is
complex enough and should stay understandable. Take a look, perhaps it
is better to make a plug-in out of it.
KDevNode
--------
A KDevNode (lib/general/kdevnodes.h) is a data structure which holds
information for an object in KDevelop. This can be used if components
want to exchange information about a specific object. For instance a
Projectspace can raise the signal
"sigAddedFileToProject(KDevFileNode*)" to inform all other running
components that a file was added. The KDevFileNode is a subclass of
KDevNode and contains information about Projectspace,Projectname and
of course the filenname of this file.
KDevNodeAction
--------------
KDevNodeAction is a special KAction which stores a KDevNode and raise
it if the action was activated. In KDevelop 2 it is possible to
extend the the popup menus in the treeviews or similar things at
'runtime' for every object 'indivual'. For this you will need
KDevNodeAction (lib/general/kdevactions.h), the following signal and
method :
void KDevComponent::needKDevNodeActions(KDevNode* pNode, QList<KAction>*pList)
QList<KAction>*KDevComponent::kdevNodeActions(KDevNode* pNode).
An example: (asking for actions)
the Projectview need some actions (the user clicked the right
mousebutton) for the file "main.cpp" in the project "foobar",
projectspace: "foo".
The Projectview creates now a KDevFileNode (pNode) with these
properties and an empty list (pList). After this it raise the signal
KDevComponent::needKDevNodeActions(KDevNode* pNode,QList<KAction>* pList)
The list (pList) will be filled with actions (from running components)
for these KDevNode. You can use it with:
+++
for(pAction=pList->first();pAction!=0;pAction= pList->next()){
pAction->plug(pPopup,-1);// add all available actions to the popupmenu
}
+++
An example: (implementing a new action for an KDevNode) An
implemention from a ProjectSpace component which add a "Move to"
action could look like this:
+++
QList<KAction>* ProjectSpace::kdevNodeActions(KDevNode* pNode){
QList<KAction>* pList = new QList<KAction>;
KDevNodeAction* pAction=0;
if(pNode->inherits("KDevFileNode")){
pList->append(new KActionSeparator());
pAction = new KDevNodeAction(pNode,"Move to..."); // pNode is stored in the Action
connect(pAction,SIGNAL(activated(KDevNode*)),this,
SLOT(slotMoveFileTo(KDevNode*)));
pList->append(pAction);
...
return pList;
}
Coding style rules for KDevelop 2
---------------------------------
- prefix "m_" for class attributes
- prefix "p" for pointers but no further type-prefixes
- prefix "m_p" for class attributes which are pointers
- upper case letters for each single word in a compound word: e.g.
KDevViewHandler instead of Kdevviewhandler.
- tab space = 4
- tabs replaced by spaces
- no prefix "get" at the beginning of a get function.
How to help
-----------
Please take a look at TODO file (kdevelop/TODO). Perhaps there is
something you can do. You can also look for bugs and fix them. You can
implement new idea's. You can provide translations. You can add
comment and documentations. If you create something, made some pics,
provide a patch, etc., you can upload it into our anonymous ftp site.
(please visit: http://www.kdevelop.org/index.html?filename=upload.html).
And please don't fprget to inform us per email.
Is there any question? Is there something unclear? Do you need
additional information? Just ask! There will be someone at the
mailinglist to answer your question.
28-02-2001
KDevelop Team
Omid Givi, omid@kdevelop.org

207
kdevelop/README.htdig Normal file
View file

@ -0,0 +1,207 @@
What you need to do in order to setup Ht://Dig for using with KDevelop.
1. If you use Ht://Dig v3.1.x patch the sources with this
(http://www.geocities.com/alexismikhailov/htdig_3_1_x.diff.zip)
file.
2. Copy htdig.conf into {kde_global_dir}/share/apps/kdevelop/tools/.
If you already use Ht://Dig to index your local documents and don't
want to litter database with links to development docs perform actions
in part I and go to part II. Otherwise skip part I and go to part II
directly.
-------------- I ---------------
3. Copy files from {htdig_dir}/common (for 3.1.x of htdig) or
{htdig_dir}/share/htdig (for 3.2.x of htdig) to some location
(f.e. {kde_global_dir}/share/apps/kdevelop/htdig/common).
4. Modify URL's in .html files for 'common' dir to be file://localhost urls
f.e. <img src="file://localhost/opt/www/htdocs/htdig/htdig.png">.
5. Modify htdig.conf (sample included in the end of this README).
5.1. Set database_dir to some location
(f.e. {kde_global_dir}/share/apps/kdevelop/htdig/db).
5.2. Set common_dir to point to the location you have copied files into
in step 1.
--------------- II -------------
6. Modify htdig.conf.
6.1. Set 'limit_urls_to' to 'file://' (without quotes of course).
6.2. Set 'maximum_pages' to '1'.
6.3. If you want to index documents that cointain 'noindex' tag
(all Qt docs) patch htdig with this
(http://www.geocities.com/alexismikhailov/htdig_3_1_x_noindex.diff.zip)
for htdig 3.1.x or this
(http://www.geocities.com/alexismikhailov/htdig_3_2_x_noindex.diff.zip)
patch and set 'ignore_noindex' to 'true'.
6.4. Set 'star_image' to 'file://localhost' type.
6.5. Set 'local_urls' to 'file://localhost=' for htdig 3.1.x and
to 'file://=' for htdig 3.2.x. As soon as my patches for
file:// support will be integrated (or someone else will
create this thing) you won't need this step (for htdig 3.2.x).
#=======================================================================
#
# Example config file for ht://Dig.
#
# This configuration file is used by all the programs that make up ht://Dig.
# Please refer to the attribute reference manual for more details on what
# can be put into this file. (http://www.htdig.org/confindex.html)
# Note that most attributes have very reasonable default values so you
# really only have to add attributes here if you want to change the defaults.
#
# What follows are some of the common attributes you might want to change.
#
#
# Specify where the database files need to go. Make sure that there is
# plenty of free disk space available for the databases. They can get
# pretty big.
#
database_dir: /usr/local/kde/share/apps/kdevelop/htdig/db
#
# This specifies the URL where the robot (htdig) will start. You can specify
# multiple URLs here. Just separate them by some whitespace.
# The example here will cause the ht://Dig homepage and related pages to be
# indexed.
# You could also index all the URLs in a file like so:
# start_url: `${common_dir}/start.url`
#
#start_url: file://localhost/usr/local/kde/share/doc/HTML/en/kdevelop/
#http://localhost/
#http://www.htdig.org/
#
# This attribute limits the scope of the indexing process. The default is to
# set it to the same as the start_url above. This way only pages that are on
# the sites specified in the start_url attribute will be indexed and it will
# reject any URLs that go outside of those sites.
#
# Keep in mind that the value for this attribute is just a list of string
# patterns. As long as URLs contain at least one of the patterns it will be
# seen as part of the scope of the index.
#
limit_urls_to: file://
#${start_url}
#
# If there are particular pages that you definately do NOT want to index, you
# can use the exclude_urls attribute. The value is a list of string patterns.
# If a URL matches any of the patterns, it will NOT be indexed. This is
# useful to exclude things like virtual web trees or database accesses. By
# default, all CGI URLs will be excluded. (Note that the /cgi-bin/ convention
# may not work on your web server. Check the path prefix used on your web
# server.)
#
exclude_urls: /cgi-bin/ .cgi
#
# The string htdig will send in every request to identify the robot. Change
# this to your email address.
#
maintainer: unconfigured@htdig.searchengine.maintainer
#
# The excerpts that are displayed in long results rely on stored information
# in the index databases. The compiled default only stores 512 characters of
# text from each document (this excludes any HTML markup...) If you plan on
# using the excerpts you probably want to make this larger. The only concern
# here is that more disk space is going to be needed to store the additional
# information. Since disk space is cheap (! :-)) you might want to set this
# to a value so that a large percentage of the documents that you are going
# to be indexing are stored completely in the database. At SDSU we found
# that by setting this value to about 50k the index would get 97% of all
# documents completely and only 3% was cut off at 50k. You probably want to
# experiment with this value.
# Note that if you want to set this value low, you probably want to set the
# excerpt_show_top attribute to false so that the top excerpt_length characters
# of the document are always shown.
#
max_head_length: 10000
#
# To limit network connections, ht://Dig will only pull up to a certain limit
# of bytes. This prevents the indexing from dying because the server keeps
# sending information. However, several FAQs happen because people have files
# bigger than the default limit of 100KB. This sets the default a bit higher.
# (see <http://www.htdig.org/FAQ.html> for more)
#
max_doc_size: 200000
#
# Depending on your needs, you might want to enable some of the fuzzy search
# algorithms. There are several to choose from and you can use them in any
# combination you feel comfortable with. Each algorithm will get a weight
# assigned to it so that in combinations of algorithms, certain algorithms get
# preference over others. Note that the weights only affect the ranking of
# the results, not the actual searching.
# The available algorithms are:
# exact
# endings
# synonyms
# soundex
# metaphone
# By default only the "exact" algorithm is used with weight 1.
# Note that if you are going to use any of the algorithms other than "exact",
# you need to use the htfuzzy program to generate the databases that each
# algorithm requires.
#
search_algorithm: exact:1 synonyms:0.5 endings:0.1
common_dir: /usr/local/kde/share/apps/kdevelop/htdig/common
maximum_pages: 1
ignore_noindex: true
#
# The following are the templates used in the builtin search results
# The default is to use compiled versions of these files, which produces
# slightly faster results. However, uncommenting these lines makes it
# very easy to change the format of search results.
# See <http://www.htdig.org/hts_templates.html for more details.
#
# template_map: Long long ${common_dir}/long.html \
# Short short ${common_dir}/short.html
# template_name: long
#
# The following are used to change the text for the page index.
# The defaults are just boring text numbers. These images spice
# up the result pages quite a bit. (Feel free to do whatever, though)
#
next_page_text: <img src=/opt/www/htdocs/htdig/buttonr.png border=0 align=middle width=30 height=30 alt=next>
no_next_page_text:
prev_page_text: <img src=/opt/www/htdocs/htdig/buttonl.png border=0 align=middle width=30 height=30 alt=prev>
no_prev_page_text:
page_number_text: "<img src=/opt/www/htdocs/htdig/button1.gif border=0 align=middle width=30 height=30 alt=1>" \
"<img src=/opt/www/htdocs/htdig/button2.png border=0 align=middle width=30 height=30 alt=2>" \
"<img src=/htdig/button3.gif border=0 align=middle width=30 height=30 alt=3>" \
"<img src=/htdig/button4.gif border=0 align=middle width=30 height=30 alt=4>" \
"<img src=/htdig/button5.gif border=0 align=middle width=30 height=30 alt=5>" \
"<img src=/htdig/button6.gif border=0 align=middle width=30 height=30 alt=6>" \
"<img src=/htdig/button7.gif border=0 align=middle width=30 height=30 alt=7>" \
"<img src=/htdig/button8.gif border=0 align=middle width=30 height=30 alt=8>" \
"<img src=/htdig/button9.gif border=0 align=middle width=30 height=30 alt=9>" \
"<img src=/htdig/button10.gif border=0 align=middle width=30 height=30 alt=10>"
#
# To make the current page stand out, we will put a border arround the
# image for that page.
#
no_page_number_text: "<img src=/opt/www/htdocs/htdig/button1.png border=2 align=middle width=30 height=30 alt=1>" \
"<img src=/htdig/button2.gif border=2 align=middle width=30 height=30 alt=2>" \
"<img src=/htdig/button3.gif border=2 align=middle width=30 height=30 alt=3>" \
"<img src=/htdig/button4.gif border=2 align=middle width=30 height=30 alt=4>" \
"<img src=/htdig/button5.gif border=2 align=middle width=30 height=30 alt=5>" \
"<img src=/htdig/button6.gif border=2 align=middle width=30 height=30 alt=6>" \
"<img src=/htdig/button7.gif border=2 align=middle width=30 height=30 alt=7>" \
"<img src=/htdig/button8.gif border=2 align=middle width=30 height=30 alt=8>" \
"<img src=/htdig/button9.gif border=2 align=middle width=30 height=30 alt=9>" \
"<img src=/htdig/button10.gif border=2 align=middle width=30 height=30 alt=10>"
star_image: file://localhost/opt/www/htdocs/htdig/star.png
star_blank: file://localhost/opt/www/htdocs/htdig/star_blank.png
# local variables:
local_urls: file://localhost=
#local_urls: file://=
# mode: text
# eval: (if (eq window-system 'x) (progn (setq font-lock-keywords (list '("^#.*" . font-lock-keyword-face) '("^[a-zA-Z][^ :]+" . font-lock-function-name-face) '("[+$]*:" . font-lock-comment-face) )) (font-lock-mode)))
# end:

View file

@ -0,0 +1,76 @@
add_subdirectory(plasma)
########### next target ###############
find_package(SharedMimeInfo REQUIRED)
macro_optional_find_package(KDeclarative)
set(kdevelop_SRCS main.cpp kdevideextension.cpp splash.cpp)
if(KDECLARATIVE_FOUND)
set(kdevelop_SRCS ${kdevelop_SRCS}
welcomepage/sessionsmodel.cpp welcomepage/welcomepageview.cpp welcomepage/uihelper.cpp)
add_definitions(-DWITH_WELCOMEPAGE)
qt4_add_resources(kdevelop_SRCS welcomepage/welcomepage.qrc)
endif(KDECLARATIVE_FOUND)
if(APPLE)
kde4_add_app_icon(kdevelop_SRCS "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/kdevelop.png")
else()
kde4_add_app_icon(kdevelop_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../pics/hi*-app-kdevelop.png")
endif(APPLE)
kde4_add_executable(kdevelop ${kdevelop_SRCS} )
target_link_libraries(kdevelop
${KDE4_KDECORE_LIBS}
${KDEVPLATFORM_INTERFACES_LIBRARIES}
${KDEVPLATFORM_SHELL_LIBRARIES}
${KDE4_KIO_LIBS}
${KDE4_KCMUTILS_LIBS}
${KDE4_KPARTS_LIBS}
${KDE4_KNOTIFYCONFIG_LIBS}
${KDE4_KTEXTEDITOR_LIBS}
${KDE4_THREADWEAVER_LIBRARIES}
${QT_QTDECLARATIVE_LIBRARIES}
)
if(KDECLARATIVE_FOUND)
target_link_libraries(kdevelop ${KDECLARATIVE_LIBRARY})
endif(KDECLARATIVE_FOUND)
install(TARGETS kdevelop ${INSTALL_TARGETS_DEFAULT_ARGS} )
install(FILES kdevelop! DESTINATION bin PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
if(APPLE)
kde4_add_app_icon(kdevelop_bin_SRCS "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/kdevelop.png")
else()
kde4_add_app_icon(kdevelop_bin_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../pics/hi*-app-kdevelop.png")
endif(APPLE)
if (APPLE)
# the MacOSX bundle display name property (CFBundleDisplayName) is not currently supported by cmake,
# so has to be set for all targets in this cmake file
set(MACOSX_BUNDLE_DISPLAY_NAME KDevelop)
# We provide our own Info.plist to disable AppNap for KDevelop:
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in)
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.KDevelop")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "KDevelop")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_DISPLAY_NAME "KDevelop")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_INFO_STRING "The KDevelop Integrated Development Environment")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_LONG_VERSION_STRING "KDevelop ${KDEVELOP_VERSION_MAJOR}.${KDEVELOP_VERSION_MINOR}")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING "${KDEVELOP_VERSION_MAJOR}.${KDEVELOP_VERSION_MINOR}")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_BUNDLE_VERSION "${KDEVELOP_VERSION_MAJOR}.${KDEVELOP_VERSION_MINOR}")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_ICON_FILE "kdevelop_SRCS.icns")
set_target_properties(kdevelop PROPERTIES MACOSX_BUNDLE_COPYRIGHT "KDevelop Team")
endif (APPLE)
########### install files ###############
install( PROGRAMS kdevelop.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
install( PROGRAMS kdevelop_ps.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
install( FILES kdeveloprc DESTINATION ${CONFIG_INSTALL_DIR} )
install( FILES kdevelopui.rc katepartui.rc kdevelop.notifyrc DESTINATION ${DATA_INSTALL_DIR}/kdevelop )
install( FILES kdevelop.xml DESTINATION ${XDG_MIME_INSTALL_DIR} )
install( FILES splash.qml DESTINATION ${DATA_INSTALL_DIR}/kdevelop )
update_xdg_mimetypes( ${XDG_MIME_INSTALL_DIR} )

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
<key>CFBundleGetInfoString</key>
<string>${MACOSX_BUNDLE_INFO_STRING}</string>
<key>CFBundleIconFile</key>
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
<key>CFBundleIdentifier</key>
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
<key>CFBundleName</key>
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
<key>CFBundleDisplayName</key>
<string>${MACOSX_BUNDLE_DISPLAY_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
<key>CFBundleVersion</key>
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSRequiresCarbon</key>
<true/>
<key>NSAppSleepDisabled</key>
<true/>
<key>NSSupportsAutomaticTermination</key>
<false/>
<key>NSHumanReadableCopyright</key>
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
</dict>
</plist>

5
kdevelop/app/Messages.sh Normal file
View file

@ -0,0 +1,5 @@
#!/bin/sh
$EXTRACTRC `find . -name \*.rc` `find . -name \*.ui` >>rc.cpp
$XGETTEXT `find . -name \*.cpp -o -name \*.h` -o $podir/kdevelop.pot
$XGETTEXT -L java `find . -name \*.qml` -j -o $podir/kdevelop.pot
rm -f rc.cpp

140
kdevelop/app/katepartui.rc Normal file
View file

@ -0,0 +1,140 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
<kpartgui name="KatePartView" version="61">
<MenuBar>
<Menu name="file" noMerge="1"><text>&amp;File</text>
<Action name="file_save" group="save_merge" />
<Action name="file_save_as" group="save_merge" />
<Action name="file_save_all" group="save_merge" />
<Action name="file_reload" group="revert_merge" />
<Action name="file_print" group="print_merge" />
<Separator group="print_merge" />
</Menu>
<Menu name="edit" noMerge="1"><text>&amp;Edit</text>
<Action name="edit_undo" group="edit_undo_merge" />
<Action name="edit_redo" group="edit_undo_merge" />
<Separator group="edit_undo_merge" />
<Action name="edit_cut" group="edit_paste_merge" />
<Action name="edit_copy" group="edit_paste_merge" />
<Action name="edit_paste" group="edit_paste_merge" />
<Separator group="edit_paste_merge" />
<Action name="edit_find" group="edit_find_merge" />
<Separator group="edit_find_merge" />
<Menu name="edit_advanced" noMerge="1"><text>&amp;Advanced</text>
<Action name="edit_select_all" group="edit_select_merge" />
<Action name="edit_deselect" group="edit_select_merge" />
<Action name="set_verticalSelect" group="edit_select_merge" />
<Separator group="edit_select_merge" />
<Action name="view_vi_input_mode" group="edit_select_merge" />
<Action name="set_insert" group="edit_select_merge" />
<Separator group="edit_select_merge" />
<Action name="edit_find_next" group="edit_find_merge" />
<Action name="edit_find_prev" group="edit_find_merge" />
<Action name="edit_replace" group="edit_find_merge" />
<Action name="edit_find_selected" group="edit_find_merge" />
<Action name="edit_find_selected_backwards" group="edit_find_merge" />
<Separator group="edit_find_merge" />
<Action name="go_goto_line" group="edit_find_merge"/>
</Menu>
</Menu>
<Menu name="editor">
<Menu name="view" noMerge="1"><text>&amp;View</text>
<Action name="switch_to_cmd_line" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_schemas" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_dynamic_word_wrap" group="view_operations" />
<Action name="dynamic_word_wrap_indicators" group="view_operations" />
<Action name="view_word_wrap_marker" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_border" group="view_operations" />
<Action name="view_line_numbers" group="view_operations" />
<Action name="view_scrollbar_marks" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_folding_markers" group="view_operations" />
<Menu name="codefolding" group="view_operations"><text>&amp;Code Folding</text>
<Action name="folding_toplevel" group="view_operations" />
<Action name="folding_expandtoplevel" group="view_operations" />
<Action name="folding_collapselocal" group="view_operations" />
<Action name="folding_expandlocal" group="view_operations" />
</Menu>
<Separator group="view_operations" />
<Action name="view_inc_font_sizes" group="view_operations" />
<Action name="view_dec_font_sizes" group="view_operations" />
</Menu>
<Action name="bookmarks" />
<Menu name="tools" noMerge="1"><text>&amp;Tools</text>
<Action name="tools_toggle_write_lock" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_mode" group="tools_operations" />
<Action name="tools_highlighting" group="tools_operations" />
<Action name="tools_indentation" group="tools_operations" />
<Action name="set_encoding" group="tools_operations" />
<Action name="set_eol" group="tools_operations" />
<Action name="add_bom" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_scripts" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_invoke_code_completion" group="tools_operations" />
<Menu name="wordcompletion" group="tools_operations"><text>Word Completion</text>
<Action name="doccomplete_fw" />
<Action name="doccomplete_bw" />
<Action name="doccomplete_sh" />
</Menu>
<Separator group="tools_operations" />
<Action name="tools_toggle_automatic_spell_checking" group="tools_operations" />
<Action name="tools_spelling" group="tools_operations" />
<Action name="tools_spelling_from_cursor" group="tools_operations" />
<Action name="tools_spelling_selection" group="tools_operations" />
<Action name="tools_change_dictionary" group="tools_operations" />
<Action name="tools_clear_dictionary_ranges" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_indent" group="tools_operations" />
<Action name="tools_unindent" group="tools_operations" />
<Action name="tools_cleanIndent" group="tools_operations" />
<Action name="tools_align" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_comment" group="tools_operations" />
<Action name="tools_uncomment" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_uppercase" group="tools_operations" />
<Action name="tools_lowercase" group="tools_operations" />
<Action name="tools_capitalize" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_join_lines" group="tools_operations" />
<Action name="tools_apply_wordwrap" group="tools_operations" />
</Menu>
</Menu>
</MenuBar>
<Menu name="ktexteditor_popup" noMerge="0">
<Action name="edit_cut" group="popup_operations" />
<Action name="edit_copy" group="popup_operations" />
<Action name="edit_paste" group="popup_operations" />
<Separator group="popup_operations" />
<Action name="edit_select_all" group="popup_operations" />
<Action name="edit_deselect" group="popup_operations" />
<Separator group="popup_operations" />
<Action name="spelling_suggestions" group="popup_operations" />
<Separator group="popup_operations" />
<Action name="bookmarks" group="popup_operations" />
<Separator group="popup_operations" />
<Action name="tools_create_snippet" group="popup_operations" />
<Separator group="popup_operations" />
</Menu>
<ToolBar name="mainToolBar" noMerge="1"><text>Main Toolbar</text>
<Action name="file_save" group="file_operations" />
</ToolBar>
<ActionProperties scheme="Default">
<Action shortcut="" name="view_folding_markers"/>
<Action shortcut="" name="view_dynamic_word_wrap"/>
<Action shortcut="" name="view_line_numbers"/>
</ActionProperties>
</kpartgui>

53
kdevelop/app/kdevelop! Executable file
View file

@ -0,0 +1,53 @@
#!/bin/sh
# This file is part of KDevelop
# Copyright 2011 David Nolden <david.nolden.kdevelop@art-master.de>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
export KDEV_BASEDIR=$(dirname $0)
export APPLICATION=KDevelop
if ! [ "$KDEV_ATTACHED_PID" ]; then
ARGS=""
if [ $# -eq 0 ]; then
ARGS="-pss"
else
ARGS="$@"
fi
export KDEV_ATTACHED_PID=$($KDEV_BASEDIR/kdevelop $ARGS --pid)
fi
if ! [ "$KDEV_ATTACHED_PID" ]; then
echo "Error: Failed retrieving a pid."
exit 5
fi
# Make sure we didn't capture garbage instead of the pid (must be 1 word only)
# note: keep compatible on FreeBSD: https://bugs.kde.org/show_bug.cgi?id=311186
if [ "$(echo $KDEV_ATTACHED_PID | wc -w | sed 's/ //g')" != 1 ]; then
echo "Error: Got no valid pid."
exit 6
fi
if ! [ "$(which qdbus)" ]; then
echo "Error: The qdbus utility is missing."
exit 7
fi
export KDEV_DBUS_ID="org.kdevelop.kdevelop-$KDEV_ATTACHED_PID"
bash --init-file $KDEV_BASEDIR/kdevplatform_shell_environment.sh -i

View file

@ -0,0 +1,90 @@
[Desktop Entry]
Type=Application
Exec=kdevelop %u
MimeType=application/x-kdevelop;
Icon=kdevelop
X-DocPath=kdevelop/index.html
Terminal=false
Name=KDevelop 4
Name[bs]=KDevelop 4
Name[ca]=KDevelop 4
Name[ca@valencia]=KDevelop 4
Name[cs]=KDevelop 4
Name[da]=KDevelop 4
Name[de]=KDevelop 4
Name[el]=KDevelop 4
Name[en_GB]=KDevelop 4
Name[eo]=KDevelop 4
Name[es]=KDevelop 4
Name[et]=KDevelop 4
Name[fi]=KDevelop 4
Name[fr]=KDevelop 4
Name[ga]=KDevelop 4
Name[gl]=KDevelop 4
Name[hi]=-
Name[hne]=-
Name[hu]=KDevelop 4
Name[it]=KDevelop 4
Name[ja]=KDevelop 4
Name[kk]=KDevelop 4
Name[km]=KDevelop 4
Name[ko]=KDevelop 4
Name[lt]=KDevelop 4
Name[lv]=KDevelop 4
Name[nb]=KDevelop 4
Name[nds]=KDevelop 4
Name[ne]= ि
Name[nl]=KDevelop 4
Name[pl]=KDevelop 4
Name[pt]=KDevelop 4
Name[pt_BR]=KDevelop 4
Name[ru]=KDevelop 4
Name[sk]=KDevelop 4
Name[sl]=KDevelop 4
Name[sv]=KDevelop 4
Name[tr]=KDevelop 4
Name[ug]=KDevelop 4
Name[uk]=KDevelop 4
Name[x-test]=xxKDevelop 4xx
Name[zh_CN]=KDevelop 4
Name[zh_TW]=KDevelop 4
GenericName=Integrated Development Environment
GenericName[bs]=Integrisano razvojno okruženje
GenericName[ca]=Entorn integrat de desenvolupament
GenericName[ca@valencia]=Entorn integrat de desenvolupament
GenericName[cs]=Integrované Vývojové Prostředí
GenericName[da]=Integreret udviklingsmiljø (IDE)
GenericName[de]=Integrierte Entwicklungsumgebung
GenericName[el]=ολοκληρωμένο περιβάλλον ανάπτυξης
GenericName[en_GB]=Integrated Development Environment
GenericName[es]=Entorno de desarrollo integrado
GenericName[et]=Integreeritud arenduskeskkond
GenericName[fi]=Integroitu kehitysympäristö
GenericName[fr]=Environnement de Développement Intégré
GenericName[ga]=Timpeallacht Chomhtháite Fhorbartha
GenericName[gl]=Entorno de desenvolvemento integrado
GenericName[hne]=
GenericName[hu]=Integrált fejlesztői környezet
GenericName[it]=Ambiente di sviluppo integrato
GenericName[ja]=
GenericName[kk]=Біріктірілген құрастыру ортасы
GenericName[km]=Development Environment
GenericName[lt]=Integruota programavimo aplinka
GenericName[lv]=Integrēta izstrādes vide
GenericName[nb]=Integrert utviklingsmiljø
GenericName[nds]=Programmsmeed
GenericName[nl]=Geïntegreerde ontwikkelomgeving
GenericName[pl]=Zintegrowane środowisko programistyczne
GenericName[pt]=Ambiente de Desenvolvimento Integrado
GenericName[pt_BR]=Ambiente Integrado de Desenvolvimento
GenericName[ru]=Интегрированная среда разработки
GenericName[sk]=Integrované vývojové prostredie
GenericName[sl]=Integrirano razvojno okolje
GenericName[sv]=Integrerad utvecklingsmiljö
GenericName[tr]=Bütünleşik Geliştirme Ortamı
GenericName[ug]=يۈرۈشلەشتۈرۈلگەن ئىجادىيەت مۇھىتى
GenericName[uk]=Комплексне середовище розробки
GenericName[x-test]=xxIntegrated Development Environmentxx
GenericName[zh_CN]=
GenericName[zh_TW]=
Categories=Qt;KDE;Development;IDE;

View file

@ -0,0 +1,577 @@
[Global]
IconName=kdevelop
Comment=KDevelop
Comment[br]=KDevelop
Comment[bs]=KDevelop
Comment[ca]=KDevelop
Comment[ca@valencia]=KDevelop
Comment[cs]=KDevelop
Comment[da]=KDevelop
Comment[de]=KDevelop
Comment[el]=KDevelop
Comment[en_GB]=KDevelop
Comment[eo]=KDevelop
Comment[es]=KDevelop
Comment[et]=KDevelop
Comment[eu]=KDevelop
Comment[fi]=KDevelop
Comment[fr]=KDevelop
Comment[ga]=KDevelop
Comment[gl]=KDevelop
Comment[hi]=के-डेवलप
Comment[hne]=के-डेवलप
Comment[hu]=KDevelop
Comment[it]=KDevelop
Comment[ja]=KDevelop
Comment[kk]=KDevelop
Comment[km]=KDevelop
Comment[ko]=KDevelop
Comment[lt]=KDevelop
Comment[lv]=KDevelop
Comment[ms]=KDevelop
Comment[nb]=KDevelop
Comment[nds]=KDevelop
Comment[nl]=KDevelop
Comment[pl]=KDevelop
Comment[pt]=KDevelop
Comment[pt_BR]=KDevelop
Comment[ro]=KDevelop
Comment[ru]=KDevelop
Comment[sk]=KDevelop
Comment[sl]=KDevelop
Comment[sv]=KDevelop
Comment[ta]=KDevelop
Comment[tg]=KDevelop
Comment[tr]=KDevelop
Comment[ug]=KDevelop
Comment[uk]=KDevelop
Comment[x-test]=xxKDevelopxx
Comment[zh_CN]=KDevelop
Comment[zh_TW]=KDevelop
[Event/ProcessSuccess]
Name=Process successful
Name[bs]=Proces uspješan
Name[ca]=Procés correcte
Name[ca@valencia]=Procés correcte
Name[cs]=Proces úspěšný
Name[da]=Processen lykkedes
Name[de]=Prozess erfolgreich
Name[el]=Επιτυχής διεργασία
Name[en_GB]=Process successful
Name[es]=Proceso exitoso
Name[et]=Protsess oli edukas
Name[eu]=Prozesu zuzena
Name[fi]=Prosessi onnistui
Name[fr]=Le processus s'est terminé avec succès
Name[ga]=D'éirigh leis an bpróiseas
Name[gl]=Proceso rematado con éxito
Name[hi]=प्रक्रिया सफल
Name[hne]=काम सफल
Name[hu]=Sikeres folyamat
Name[it]=Processo riuscito
Name[ja]=プロセス成功
Name[kk]=Сәтті өтті
Name[km]=ដំណើរការ​ដោយ​ជោគជ័យ
Name[ko]=작업 성공
Name[lt]=Procesas pavyko
Name[lv]=Process veiksmīgs
Name[mr]=प्रक्रीया यशस्वी
Name[ms]=Proses berjaya
Name[nb]=Prosessen lyktes
Name[nds]=Perzess hett Spood
Name[nl]=Proces was succesvol
Name[pl]=Proces zakończony pomyślnie
Name[pt]=Processo com sucesso
Name[pt_BR]=Processo concluído com sucesso
Name[ru]=Процесс завершён успешно
Name[sk]=Úspešný proces
Name[sl]=Opravilo uspešno
Name[sv]=Processen lyckades
Name[ta]=செயல்முறை வெற்றி
Name[tg]=Амал бо мувафақият ба анҷом расид
Name[tr]=İşlem başarılı
Name[ug]=بىر تەرەپ قىلىش مۇۋەپپەقىيەتلىك بولدى
Name[uk]=Успішне виконання
Name[x-test]=xxProcess successfulxx
Name[zh_CN]=处理成功
Name[zh_TW]=行程成功
Comment=Process finished successfully
Comment[bs]=Proces je uspješno završio
Comment[ca]=El procés ha finalitzat amb èxit
Comment[ca@valencia]=El procés ha finalitzat amb èxit
Comment[cs]=Proces úspěšně dokončen
Comment[da]=Processen afsluttede med succes
Comment[de]=Prozess erfolgreich beendet
Comment[el]=Η διεργασία τερμάτισε με επιτυχία
Comment[en_GB]=Process finished successfully
Comment[es]=Proceso terminado con éxito
Comment[et]=Protsess edukalt lõpetatud
Comment[eu]=Prozesua ongi amaitu da
Comment[fi]=Prosessi päättyi onnistuneesti
Comment[fr]=Le processus s'est terminé avec succès
Comment[ga]=D'éirigh leis an bpróiseas
Comment[gl]=O proceso rematou con éxito
Comment[hi]=प्रक्रिया सफलतापूर्वक पूर्ण
Comment[hne]=काम सफलतापूर्वक पूरा
Comment[hu]=A folyamat sikeresen befejeződött
Comment[it]=Processo completato con successo
Comment[ja]=プロセスは成功しました。
Comment[kk]=Процес сәті өтті
Comment[km]=ដំណើរការ​​បាន​បញ្ចប់​ដោយ​ជោគជ័យ
Comment[ko]=작업이 성공적으로 끝났음
Comment[lv]=Process beidzies veiksmīgi
Comment[ms]=Proses selesai dengan jaya
Comment[nb]=Prosessen vellykket fullført
Comment[nds]=Perzess mit Spood afslaten
Comment[nl]=Proces met succes beëindigd
Comment[pl]=Proces zakończony pomyślnie
Comment[pt]=O processo terminou com sucesso
Comment[pt_BR]=Processo concluído com sucesso
Comment[ro]=Proces încheiat cu succes
Comment[ru]=Процесс завершён успешно
Comment[sk]=Proces skončil úspešne
Comment[sl]=Opravilo se je uspešno končalo
Comment[sv]=Processen avslutades med lyckat resultat
Comment[ta]=வெற்றிகரமாக முடிவடைந்த செயலாக்கம்
Comment[tg]=Амал бо мувафақият ба анҷом расид
Comment[tr]=İşlem başarıyla bitti
Comment[ug]=بىر تەرەپ قىلىش مۇۋەپپەقىيەتلىك تاماملاندى
Comment[uk]=Виконання успішно завершено
Comment[x-test]=xxProcess finished successfullyxx
Comment[zh_CN]=处理成功完成
Comment[zh_TW]=行程成功完成
Action=None
[Event/ProcessError]
Name=Process error
Name[bs]=Greška u procesu
Name[ca]=Error de procés
Name[ca@valencia]=Error de procés
Name[cs]=Chyba procesu
Name[da]=Procesfejl
Name[de]=Prozess-Fehler
Name[el]=Σφάλμα διεργασίας
Name[en_GB]=Process error
Name[es]=Error de proceso
Name[et]=Protsessi viga
Name[eu]=Prozesu errorea
Name[fi]=Prosessivirhe
Name[fr]=Erreur du processus
Name[ga]=Earráid sa phróiseas
Name[gl]=Erro do proceso
Name[hi]=प्रक्रिया त्रुटि
Name[hne]=काम गलती
Name[hu]=Hibás folyamat
Name[it]=Errore del processo
Name[ja]=プロセスエラー
Name[kk]=Процес қате
Name[km]=ដំណើរការ​មាន​កំហុស​
Name[ko]=작업 오류
Name[lt]=Proceso klaida
Name[lv]=Prcesā kļūda
Name[mr]=प्रक्रीया त्रुटी
Name[ms]=Ralat proses
Name[nb]=Prosessen mislyktes
Name[nds]=Perzessfehler
Name[nl]=Procesfout
Name[pl]=Błąd w procesie
Name[pt]=Erro no processo
Name[pt_BR]=Erro no processo
Name[ro]=Eroare a procesului
Name[ru]=Ошибка при выполнении процесса
Name[sk]=Chyba procesu
Name[sl]=Napaka opravila
Name[sv]=Processfel
Name[ta]=செயல்முறை பிழை
Name[tg]=Ҳангоми иҷро намудани амал хатогие дида мешавад
Name[tr]=İşlem hatası
Name[ug]=بىر تەرەپ قىلىشتا خاتالىق كۆرۈلدى
Name[uk]=Помилка процесу
Name[x-test]=xxProcess errorxx
Name[zh_CN]=处理出错
Name[zh_TW]=行程錯誤
Comment=Process finished with errors
Comment[bs]=Proces je zavrsio sa greškama
Comment[ca]=El procés ha finalitzat amb errors
Comment[ca@valencia]=El procés ha finalitzat amb errors
Comment[cs]=Proces dokončen s chybami
Comment[da]=Processen afsluttede med fejl
Comment[de]=Prozess mit Fehlern beendet
Comment[el]=Η διεργασία τερμάτισε με σφάλματα
Comment[en_GB]=Process finished with errors
Comment[es]=Proceso terminado con errores
Comment[et]=Protsess lõppes vigadega
Comment[eu]=Prozesua erroreekin amaitu da
Comment[fi]=Prosessi päättyi virheisiin
Comment[fr]=Le processus s'est terminé avec des erreurs
Comment[ga]=Chríochnaigh an próiseas le hearráidí
Comment[gl]=O proceso rematou con éxito
Comment[hi]=प्रक्रिया त्रुटि के साथ पूर्ण
Comment[hne]=काम गलती के साथ पूरा
Comment[hu]=A folyamat hibajelzéssel fejeződött be
Comment[it]=Processo completato con errori
Comment[ja]=プロセスはエラーを起こし、終了しました。
Comment[kk]=Процес қателермен аяқталды
Comment[km]=ដំណើរការ​បាន​បញ្ចប់​ដោយ​មាន​កំហុស​
Comment[ko]=오류와 함께 작업이 끝났음
Comment[lt]=Procesas baigtas su klaidomis
Comment[lv]=Process beidzies ar kļūdām
Comment[mr]=प्रक्रीया त्रुटी येऊन संपली
Comment[ms]=Proses selesai dengan ralat
Comment[nb]=Prosessen ble fullført, men ga feil
Comment[nds]=Perzess mit Fehlers afslaten
Comment[nl]=Proces voltooid met fouten
Comment[pl]=Proces zakończony z błędami
Comment[pt]=O processo terminou com erros
Comment[pt_BR]=Processo concluído com erros
Comment[ro]=Proces încheiat cu erori
Comment[ru]=Процесс завершён с ошибками
Comment[sk]=Proces skončil s chybami
Comment[sl]=Opravilo se je končalo z napakami
Comment[sv]=Processen avslutades med fel
Comment[ta]=பிழையுடன் முடிவடைந்த செயலாக்கம்
Comment[tg]=Ҳангоми иҷро намудани амал хатогие дида мешавад
Comment[tr]=İşlem hatalarla bitti
Comment[ug]=بىر تەرەپ قىلىشتا خاتالىق كۆرۈلدى
Comment[uk]=Виконання завершилося з помилками
Comment[x-test]=xxProcess finished with errorsxx
Comment[zh_CN]=处理完成,但有错误
Comment[zh_TW]=行程發生錯誤
Action=None
[Event/LoadingProject]
Name=Loading Project
Name[bs]=Učitavam projekat
Name[ca]=S'està carregant el projecte
Name[ca@valencia]=S'està carregant el projecte
Name[cs]=Načítám projekt
Name[da]=Indlæser projekt
Name[de]=Projekt wird geladen
Name[el]=Φόρτωση έργου
Name[en_GB]=Loading Project
Name[es]=Cargando proyecto
Name[et]=Projekti laadimine
Name[fi]=Ladataan projekti
Name[fr]=Chargement du projet
Name[ga]=Tionscadal á Luchtú
Name[gl]=Cargando o proxecto
Name[hu]=Projekt betöltése
Name[it]=Caricamento del progetto
Name[ja]=プロジェクトの読み込み
Name[kk]=Жобаны жүктеу
Name[km]=ផ្ទុក​គម្រោង​
Name[nb]=Laster inn prosjekt
Name[nds]=Projekt warrt laadt
Name[nl]=Project wordt geladen
Name[pl]=Wczytywanie projektu
Name[pt]=A Carregar o Projecto
Name[pt_BR]=Carregando Projeto
Name[ru]=Загрузка проекта
Name[sk]=Načítavanie projektu
Name[sl]=Nalaganje projekta
Name[sv]=Laddar projekt
Name[tr]=Proje Yükleniyor
Name[ug]=قۇرۇلۇش ئوقۇش
Name[uk]=Завантаження проекту
Name[x-test]=xxLoading Projectxx
Name[zh_CN]=正在装入工程
Name[zh_TW]=載入專案中
Comment=A project loading process has just started
Comment[bs]=Proces učitavanja projekta je upravo počeo
Comment[ca]=Tot just s'acaba de començar a carregar el projecte
Comment[ca@valencia]=Tot just s'acaba de començar a carregar el projecte
Comment[cs]=Proces načítání projektu právě započal
Comment[da]=Indlæsning af projekt er lige startet
Comment[de]=Es ist ein Projekt-Ladeprozess gestartet
Comment[el]=Μια διαδικασία φόρτωσης έργου έχει μόλις ξεκινήσει
Comment[en_GB]=A project loading process has just started
Comment[es]=Acaba de comenzar un proceso de carga de proyecto
Comment[et]=Projekti laadimine just käivitati
Comment[fi]=Projektin lataamisprosessi on juuri alkanut
Comment[fr]=Un processus de chargement de projet vient de démarrer
Comment[gl]=Acaba de comezar un proceso de carga dun proxecto
Comment[hu]=A projekt betöltési folyamata elkezdődött
Comment[it]=È appena iniziato il caricamento di un progetto
Comment[ja]=プロジェクトの読み込みを開始しました
Comment[kk]=Жобаны жүктеу процесі жаңа ғана басталды
Comment[km]=ដំណើរការ​ផ្ទុក​គម្រោង​ទើបតែ​ត្រូវ​បាន​ចាប់ផ្ដើម​
Comment[nb]=En prosess med prosjektinnlasting er nettopp startet
Comment[nds]=Dat Laden vun en Projekt hett jüst anfungen
Comment[nl]=Een proces voor het laden van een project is zojuist gestart
Comment[pl]=Rozpoczęło się wczytywanie projektu
Comment[pt]=Acabou de ser iniciado um processo de carregamento do projecto
Comment[pt_BR]=Um processo de carregamento de projeto foi iniciado
Comment[ru]=Началась загрузка проекта
Comment[sk]=Proces načítania projektu sa práve spustil
Comment[sl]=Pričelo se je opravilo nalaganja projekta
Comment[sv]=En laddningsprocess för projektet har just startats
Comment[tr]=Bir proje yükleme süreci başladı
Comment[ug]=قۇرۇلۇش ئوقۇش جەريانى باشلاندى
Comment[uk]=Процес завантаження проекту було запущено
Comment[x-test]=xxA project loading process has just startedxx
Comment[zh_CN]=启动了一次工程装入操作
Comment[zh_TW]=已開始載入專案
Action=Popup
[Event/ProjectLoadedSuccessfully]
Name=Project Loaded Successfully
Name[bs]=Projekat uspješno učitan
Name[ca]=El projecte s'ha carregat amb èxit
Name[ca@valencia]=El projecte s'ha carregat amb èxit
Name[cs]=Projekt úspěšně načten
Name[da]=Projekt indlæst
Name[de]=Projekt erfolgreich geladen
Name[el]=Το έργο φορτώθηκε με επιτυχία
Name[en_GB]=Project Loaded Successfully
Name[es]=Proyecto cargado con éxito
Name[et]=Projekt on edukalt laaditud
Name[fi]=Projektin lataus onnistui
Name[fr]=Le projet a été chargé avec succès
Name[ga]=D'éirigh le luchtú an tionscadail
Name[gl]=O proxecto cargouse con éxito
Name[hu]=A projekt sikeresen betöltődött
Name[it]=Progetto caricato correttamente
Name[ja]=プロジェクトを読み込みました
Name[kk]=Жоба сәтті жүктелді
Name[km]=គម្រោង​បាន​ផ្ទុក​ដោយ​ជោគ​ជ័យ
Name[lt]=Projektas pakrautas sėkmingai
Name[nb]=Prosjektet vellykket lastet inn
Name[nds]=Projekt mit Spood laadt
Name[nl]=Project is succesvol geladen
Name[pl]=Projekt wczytany poprawnie
Name[pt]=O Projecto foi Carregado com Sucesso
Name[pt_BR]=Projeto Carregado com Sucesso
Name[ru]=Проект загружен
Name[sk]=Projekt úspešne načítaný
Name[sl]=Projekt uspešno naložen
Name[sv]=Projekt laddat med lyckat resultat
Name[tr]=Proje Başarılı Bir Şekilde Yüklendi
Name[ug]=قۇرۇلۇش مۇۋەپپەقىيەتلىك ئوقۇلدى
Name[uk]=Проект успішно завантажено
Name[x-test]=xxProject Loaded Successfullyxx
Name[zh_CN]=工程成功装入
Name[zh_TW]=專案已成功載入
Comment=A project has been loaded successfully
Comment[bs]=Projekat je uspješno učitan
Comment[ca]=S'ha carregat amb èxit un projecte
Comment[ca@valencia]=S'ha carregat amb èxit un projecte
Comment[cs]=Projekt byl úspěšně načten
Comment[da]=Et projekt er blevet indlæst
Comment[de]=Ein Projekt wurde erfolgreich geladen
Comment[el]=Ένα έργο φορτώθηκε επιτυχία
Comment[en_GB]=A project has been loaded successfully
Comment[es]=Un proyecto ha sido cargado con éxito
Comment[et]=Projekt on edukalt laaditud
Comment[fi]=Projekti on ladattu onnistuneesti
Comment[fr]=Un projet a été chargé avec succès
Comment[ga]=D'éirigh le luchtú an tionscadail
Comment[gl]=Un proxecto cargouse con éxito
Comment[hu]=A projekt sikeresen betöltődött
Comment[it]=Un progetto è stato caricato correttamente
Comment[ja]=プロジェクトを読み込みました
Comment[kk]=Жоба сәтті жүктелді
Comment[km]=គម្រោង​ត្រូវ​បាន​​ផ្ទុក​ដោយ​ជោគជ័យ
Comment[nb]=Et prosjekt er vellykket lastet inn
Comment[nds]=En Projekt wöör mit Spood laadt
Comment[nl]=Een project is succesvol geladen
Comment[pl]=Projekt został wczytany poprawnie
Comment[pt]=Foi carregado um projecto com sucesso
Comment[pt_BR]=Um projeto foi carregado com sucesso
Comment[ru]=Проект загружен успешно
Comment[sk]=Projekt bol úspešne načítaný
Comment[sl]=Projekt je bil uspešno naložen
Comment[sv]=Ett projekt har laddats med lyckat resultat
Comment[tr]=Bir proje başarıyla yüklendi
Comment[ug]=بىر قۇرۇلۇش مۇۋەپپەقىيەتلىك ئوقۇلدى
Comment[uk]=Проект було успішно завантажено
Comment[x-test]=xxA project has been loaded successfullyxx
Comment[zh_CN]=成功装入了一个工程
Comment[zh_TW]=專案已成功載入
Action=Popup
[Context/debugger]
Name=Debugger
Name[bs]=Ispravljač grešaka
Name[ca]=Depurador
Name[ca@valencia]=Depurador
Name[cs]=Debugger
Name[da]=Fejlsøger
Name[de]=Debugger
Name[el]=Διορθωτής
Name[en_GB]=Debugger
Name[es]=Depurador
Name[et]=Silur
Name[fa]=اشکال‌زدا
Name[fi]=Virheenjäljitin
Name[fr]=Débogueur
Name[gl]=Depurador
Name[hu]=Hibakereső
Name[it]=Debugger
Name[ja]=デバッガ
Name[kk]=Жөндегіш
Name[km]=កម្មវិធី​បំបាត់​កំហុស
Name[nb]=Feilsøker
Name[nds]=Fehlersöker
Name[nl]=Debugger
Name[pl]=Debugger
Name[pt]=Depurador
Name[pt_BR]=Depurador
Name[ru]=Отладчик
Name[sk]=Debugger
Name[sl]=Razhroščevalnik
Name[sv]=Avlusare
Name[tr]=Hata Ayıklayıcı
Name[ug]=سازلىغۇچ
Name[uk]=Зневадник
Name[x-test]=xxDebuggerxx
Name[zh_CN]=调试器
Name[zh_TW]=除錯器
[Event/BreakpointHit]
Contexts=debugger
Action=Taskbar
IconName=script-error
Name=Breakpoint Hit
Name[bs]=Dolazak do prijelomne tačke
Name[ca]=Punt d'interrupció
Name[ca@valencia]=Punt d'interrupció
Name[cs]=Dosažen Breakpoint
Name[da]=Stoppunkt nået
Name[de]=Haltepunkt erreicht
Name[el]=Σημείο προσωρινής παύσης
Name[en_GB]=Breakpoint Hit
Name[es]=Punto de interrupción alcanzado
Name[et]=Katkestuspunkti tabamus
Name[fi]=Keskeytyskohtaosuma
Name[fr]=Point d'arrêt atteint
Name[gl]=Atinxiuse un punto de parada
Name[hu]=Töréspont találat
Name[it]=Breakpoint raggiunto
Name[ja]=ブレイクポイントをヒット
Name[kk]=Аялдау нүктеге келу
Name[km]=ចំណុច​បញ្ឈប់
Name[ko]=중단점 도달
Name[nb]=Bruddpunkt nådd
Name[nds]=Hollpunkt drapen
Name[nl]=Breekpunt bereikt
Name[pl]=Uruchomiono pułapkę
Name[pt]=Ponto de Paragem Atingido
Name[pt_BR]=Ponto de interrupção atingido
Name[ru]=Достижение точки останова
Name[sk]=Dosiahnutý breakpoint
Name[sl]=Dosežena prekinitvena točka
Name[sv]=Brytpunkt påträffad
Name[tr]=Kesme Noktasına Gelindi
Name[ug]=توختاش نۇقتىسىغا تەگدى
Name[uk]=Проходження точки зупинки
Name[x-test]=xxBreakpoint Hitxx
Name[zh_CN]=断点命中
Name[zh_TW]=遇到中斷點
Comment=A Breakpoint has been hit by the debugger
Comment[bs]=Ispravljač grešaka je dosao do prijelomne tačke
Comment[ca]=El depurador ha assolit un punt d'interrupció
Comment[ca@valencia]=El depurador ha assolit un punt d'interrupció
Comment[cs]=Bod přerušení byl dosažen ladicím nástrojem
Comment[da]=Fejlsøgeren nåede et stoppunkt
Comment[de]=Der Debugger hat einen Haltepunkt erreicht
Comment[el]=Ο διορθωτής έχει σημειώσει προσωρινή παύση
Comment[en_GB]=A Breakpoint has been hit by the debugger
Comment[es]=El depurador ha alcanzado un punto de interrupción
Comment[et]=Silur jõudis katkestuspunktini
Comment[fi]=Virheenjäljitin on osunut keskeytyskohtaan
Comment[fr]=Un point d'arrêt a été atteint par le débogueur
Comment[gl]=O depurador chegou a un punto de parada
Comment[hu]=Egy töréspontot ért el a hibakereső
Comment[it]=Un breakpoint è stato raggiunto dal debugger
Comment[ja]=デバッガがブレイクポイントをヒットしました
Comment[kk]=Жөндегіштегі процес аялдау нүктеге келді
Comment[nb]=Feilsøkeren har nått et bruddpunkt
Comment[nds]=De Fehlersöker is bi en Hollpunkt ankamen
Comment[nl]=De debugger heeft een breekpunt bereikt
Comment[pl]=Pułapka została uruchomiona przez debugger
Comment[pt]=Foi atingido um ponto de paragem pelo depurador
Comment[pt_BR]=Um ponto de interrupção foi atingido pelo depurador
Comment[ru]=В отладчике достигнута точка останова
Comment[sk]=Debuger dosiahol breakpoint
Comment[sl]=Razhroščevalnik je dosegel prekinitveno točko
Comment[sv]=En brytpunkt har påträffats av avlusaren
Comment[tr]=Hata ayıklayıcı tarafından bir kesme noktasına gelindi
Comment[ug]=سازلىغۇچ توختاش نۇقتىسىغا تەگدى
Comment[uk]=Інструмент налагоджування пройшов позицію точки зупинки
Comment[x-test]=xxA Breakpoint has been hit by the debuggerxx
Comment[zh_CN]=调试器命中了一个断点
Comment[zh_TW]=除錯器進行遇到中斷點
[Event/WatchpointHit]
Contexts=debugger
Action=Popup
Name=Watchpoint Hit
Name[bs]=Dolazak do pregledne tačke
Name[ca]=Punt d'observació
Name[ca@valencia]=Punt d'observació
Name[cs]=Zásah bodu sledování
Name[da]=Overvågningspunkt nået
Name[de]=Beobachtungspunkt erreicht
Name[el]=Θέση επιθεώρησης
Name[en_GB]=Watchpoint Hit
Name[es]=Punto de observación alcanzado
Name[et]=Jälgimispunkti tabamus
Name[fi]=Seurantakohtaosuma
Name[fr]=Point de surveillance atteint
Name[gl]=Atinxiuse un punto de vixilancia
Name[hu]=Figyelőpont találat
Name[it]=Watchpoint raggiunto
Name[ja]=ウォッチポイントをヒット
Name[kk]=Бақылау нүктеге келу
Name[km]=ចំណុច​មើល
Name[nb]=Treff på vaktpunkt
Name[nds]=Luerpunkt drapen
Name[nl]=Bewakingspunt bereikt
Name[pl]=Uruchomiono punkt kontrolny
Name[pt]=Ponto de Vigia Atingido
Name[pt_BR]=Ponto de Visualização atingido
Name[ru]=Достижение точки наблюдения
Name[sk]=Dosiahnutý bod sledovania
Name[sl]=Dosežena opazovalna točka
Name[sv]=Bevakningspunkt påträffad
Name[tr]=İzleme Noktasına Gelindi
Name[ug]=كۆزىتىش نۇختىسىغا تەگدى
Name[uk]=Проходження точки спостереження
Name[x-test]=xxWatchpoint Hitxx
Name[zh_CN]=观察点命中
Name[zh_TW]=遇到監看點
Comment=A Watchpoint has been hit by the debugger
Comment[bs]=Ispravljač grešaka je došao do pregledne tačke
Comment[ca]=El depurador ha assolit un punt d'observació
Comment[ca@valencia]=El depurador ha assolit un punt d'observació
Comment[cs]=Bod sledování byl dosažen ladicím nástrojem
Comment[da]=Fejlsøgeren nåede et overvågningspunkt
Comment[de]=Der Debugger hat einen Beobachtungspunkt erreicht
Comment[el]=Ο διορθωτής έχει σημειώσει θέση επιθεώρησης
Comment[en_GB]=A Watchpoint has been hit by the debugger
Comment[es]=El depurador ha alcanzado un punto de observación
Comment[et]=Silur jõudis jälgimispunktini
Comment[fi]=Virheenjäljitin on osunut seurantakohtaan
Comment[fr]=Un point de surveillance a été atteint par le débogueur
Comment[gl]=O depurador chegou a un punto de vixilancia
Comment[hu]=Egy figyelőpontot ért el a hibakereső
Comment[it]=Un watchpoint è stato raggiunto dal debugger
Comment[ja]=デバッガがウォッチポイントをヒットしました
Comment[kk]=Жөндегіштегі процес бақылау нүктеге келді
Comment[nb]=Feilsøkeren har truffet et vaktpunkt
Comment[nds]=De Fehlersöker is bi en Luerpunkt ankamen
Comment[nl]=De debugger heeft een bewakingspunt bereikt
Comment[pl]=Debugger uruchomił punkt kontrolny
Comment[pt]=Foi atingido um ponto de vigia pelo depurador
Comment[pt_BR]=Um ponto de Visualização foi atingido pelo depurador
Comment[ru]=В отладчике достигнута точка наблюдения
Comment[sk]=Debuger dosiahol kontrolný bod
Comment[sl]=Razhroščevalnik je dosegel opazovalno točko
Comment[sv]=En bevakningspunkt har påträffats av avlusaren
Comment[tr]=Hata ayıklayıcı tarafından bir izleme noktasına gelindi
Comment[ug]=سازلىغۇچ كۆزىتىش نۇقتىسىغا تەگدى
Comment[uk]=Інструмент налагоджування пройшов позицію точки спостереження
Comment[x-test]=xxA Watchpoint has been hit by the debuggerxx
Comment[zh_CN]=调试器命中了一个观察点
Comment[zh_TW]=除錯器進行遇到監看點

42
kdevelop/app/kdevelop.xml Normal file
View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/x-kdevelop">
<comment>KDevelop 4 Project File</comment>
<comment xml:lang="ca">Fitxer de projecte de KDevelop 4</comment>
<comment xml:lang="ca@valencia">Fitxer de projecte de KDevelop 4</comment>
<comment xml:lang="cs">Soubor projektu Kdevelop 4</comment>
<comment xml:lang="da">KDevelop 4 projektfil</comment>
<comment xml:lang="de">KDevelop-4-Projektdatei</comment>
<comment xml:lang="el">Αρχείο έργου KDevelop 4</comment>
<comment xml:lang="en_GB">KDevelop 4 Project File</comment>
<comment xml:lang="es">Archivo de proyecto de KDevelop 4</comment>
<comment xml:lang="et">KDevelop 4 projektifail</comment>
<comment xml:lang="fa">پروندۀ پروژۀ KDevelop 4</comment>
<comment xml:lang="fi">KDevelop 4-projektitiedosto</comment>
<comment xml:lang="fr">Fichier projet KDevelop 4</comment>
<comment xml:lang="ga">Comhad Tionscadail KDevelop 4</comment>
<comment xml:lang="gl">Ficheiro de proxecto de KDevelop 4</comment>
<comment xml:lang="hi">के-डेवलप ४ परियोजना फ़ाइल</comment>
<comment xml:lang="hne">के-डेवलप ४ परियोजना फाइल</comment>
<comment xml:lang="it">File di progetto per KDevelop 4</comment>
<comment xml:lang="ja">KDevelop 4 プロジェクトファイル</comment>
<comment xml:lang="ko">KDevelop 4 프로젝트 파일</comment>
<comment xml:lang="lv">KDevelop 4 projekta fails</comment>
<comment xml:lang="nb">KDevelop 4 prosjektfil</comment>
<comment xml:lang="nds">KDevelop4-Projektdatei</comment>
<comment xml:lang="ne">केडीई विकास ४ परियोजना फाइल</comment>
<comment xml:lang="nl">KDevelop 4 projectbestand</comment>
<comment xml:lang="pl">Plik projektu KDevelopa 4</comment>
<comment xml:lang="pt">Ficheiro de Projecto do KDevelop 4</comment>
<comment xml:lang="pt_BR">Arquivo de Projeto do KDevelop 4</comment>
<comment xml:lang="ro">Fișier Proiect Kdevelop 4</comment>
<comment xml:lang="ru">Файл проекта KDevelop 4</comment>
<comment xml:lang="sl">Projektna datoteka KDevelop 4</comment>
<comment xml:lang="sv">KDevelop 4-projektfil</comment>
<comment xml:lang="tr">KDevelop 4 Proje Dosyası</comment>
<comment xml:lang="uk">Файл проекту KDevelop 4</comment>
<comment xml:lang="zh_CN">KDevelop 4 工程文件</comment>
<comment xml:lang="zh_TW">KDevelop 4 專案檔</comment>
<glob pattern="*.kdev4"/>
</mime-type>
</mime-info>

View file

@ -0,0 +1,75 @@
[Desktop Entry]
Type=Application
Exec=kdevelop --ps
MimeType=application/x-kdevelop;
Icon=kdevelop
Terminal=false
Name=KDevelop 4 (Pick Session)
Name[bs]=KDevelop 4 (Dobavljanje sesije)
Name[ca]=KDevelop 4 (Selecció de sessió)
Name[ca@valencia]=KDevelop 4 (Selecció de sessió)
Name[cs]=KDevelop 4 (Zvolte relaci)
Name[da]=KDevelop 4 (vælg session)
Name[de]=KDevelop 4 (Sitzung auswählen)
Name[el]=KDevelop 4 (Επιλογή συνεδρίας)
Name[en_GB]=KDevelop 4 (Pick Session)
Name[es]=KDevelop 4 (escoger sesión)
Name[et]=KDevelop 4 (seansi valimine)
Name[fi]=KDevelop 4 (valitse istunto)
Name[fr]=KDevelop 4 (choix d'une session)
Name[ga]=KDevelop 4 (Roghnaigh Seisiún)
Name[gl]=KDevelop 4 (escoller unha sesión)
Name[hu]=KDevelop (munkamenet felvétele)
Name[it]=KDevelop 4 (Scegliere la sessione)
Name[kk]=KDevelop 4 (Сеансты сайлау)
Name[lt]=KDevelop 4 (pasirinkite seansą)
Name[nb]=KDevelop 4 (Velg økt)
Name[nds]=KDevelop 4 (Törn utsöken)
Name[nl]=KDevelop 4 (pak een sessie)
Name[pl]=KDevelop 4 (Wybierz sesję)
Name[pt]=KDevelop 4 (Seleccionar uma Sessão)
Name[pt_BR]=KDevelop 4 (selecionar uma sessão)
Name[ru]=KDevelop 4 (с выбором сеанса)
Name[sk]=KDevelop 4 (zvoliť sedenie)
Name[sl]=KDevelop 4 (izbor seje)
Name[sv]=KDevelop 4 (välj session)
Name[tr]=KDevelop 4 (Oturum Seçin)
Name[uk]=KDevelop 4 (Вибір сеансу)
Name[x-test]=xxKDevelop 4 (Pick Session)xx
Name[zh_CN]=KDevelop 4 ()
Name[zh_TW]=KDevelop 4
GenericName=Integrated Development Environment (Pick Session to start with)
GenericName[bs]=Integrisano razvojno okruženje (odaberite sesiju za započeti)
GenericName[ca]=Entorn integrat de desenvolupament (Seleccioneu una sessió)
GenericName[ca@valencia]=Entorn integrat de desenvolupament (Seleccioneu una sessió)
GenericName[cs]=Integrované Vývojové Prostředí (Zvolte si relaci, se kterou si přejete začít)
GenericName[da]=Integreret udviklingsmiljø (IDE) (vælg session at starte med)
GenericName[de]=Integrierte Entwicklungsumgebung (zu startende Sitzung auswählen)
GenericName[el]=Ολοκληρωμένο περιβάλλον ανάπτυξης (Επιλογή συνεδρίας για εκκίνηση)
GenericName[en_GB]=Integrated Development Environment (Pick Session to start with)
GenericName[es]=Entorno de desarrollo integrado (escoger sesión con la que empezar)
GenericName[et]=Integreeritud arenduskeskkond (seansi valimine alustamiseks)
GenericName[fi]=Integroitu kehitysympäristö (valitse aloitettava istunto)
GenericName[fr]=Environnement de Développement Intégré (choix d'une session avec laquelle démarrer)
GenericName[ga]=Timpeallacht Chomhtháite Fhorbartha (Roghnaigh Seisiún i dtosach báire)
GenericName[gl]=Entorno de desenvolvemento integrado (Escolla unha sesión coa que comezar)
GenericName[hu]=Integrált fejlesztői környezet (először munkamenet felvétele)
GenericName[it]=Ambiente di sviluppo integrato (Scegliere la sessione con cui iniziare)
GenericName[kk]=Біріктірілген құрастыру ортасы (Бастайтын сеансты таңдап алу)
GenericName[lt]=Integruota programavimo aplinka (pasirinkite seansą su kuriuo startuosite)
GenericName[nb]=Integrert utviklingsmiljø (velg økt å starte med)
GenericName[nds]=Programmsmeed (Söök en Törn ut, mit den Du starten wullt)
GenericName[nl]=Geïntegreerde ontwikkelomgeving (pak een sessie om mee te beginnen)
GenericName[pl]=Zintegrowane środowisko programistyczne (Wybierz sesję do rozpoczęcia)
GenericName[pt]=Ambiente de Desenvolvimento Integrado (Seleccionar a sessão com que iniciar)
GenericName[pt_BR]=Ambiente Integrado de Desenvolvimento (selecione a sessão para início)
GenericName[ru]=Интегрированная среда разработки (с выбором начального сеанса)
GenericName[sk]=Integrované vývojové prostredie (zvoľte sedenie na spustenie)
GenericName[sl]=Integrirano razvojno okolje (izberite sejo za začetek)
GenericName[sv]=Integrerad utvecklingsmiljö (välj session att starta)
GenericName[tr]=Tümleşik Geliştirme Ortamı (Başlamak için Oturum Seçin)
GenericName[uk]=Комплексне середовище розробки (виберіть сеанс, з якого слід розпочати роботу)
GenericName[x-test]=xxIntegrated Development Environment (Pick Session to start with)xx
GenericName[zh_CN]=()
GenericName[zh_TW]=
Categories=Qt;KDE;Development;IDE;

69
kdevelop/app/kdeveloprc Normal file
View file

@ -0,0 +1,69 @@
[AStyle]
Brackets=Break
Fill=Spaces
FillSpaces=2
IndentBrackets=false
IndentCases=false
IndentClasses=false
IndentLabels=true
IndentNamespaces=true
IndentSwitches=false
KeepBlocks=false
KeepStatements=false
MaxStatement=40
MinConditional=-1
PadOperators=false
PadParentheses=false
Style=UserDefined
[Editor]
EmbeddedKTextEditor=Embedded KDE Advanced Text Editor Component
[General Options]
Read Last Project On Startup=true
Display Document Categories=true
[Mainwindow]
Height 768=548
Width 1024=735
[Mainwindow Toolbar mainToolBar]
Hidden=false
IconSize=22
IconText=IconOnly
Index=0
NewLine=false
Offset=-1
Position=Top
[Mainwindow Toolbar QextMdiTaskBar]
Hidden=true
IconSize=22
IconText=IconOnly
Index=1
NewLine=false
Offset=-1
Position=Bottom
[Mainwindow Toolbar browserToolBar]
Hidden=false
IconSize=22
IconText=IconOnly
Index=2
NewLine=true
Offset=-1
Position=Top
[Plugins]
KDevScripting=false
[UI]
TabVisibility=0
CloseOnHover=false
CloseOnHoverDelay=false
OpenNewTabAfterCurrent=true
ShowCloseTabsButton=true
ShowTabIcons=false
[Kate View Defaults]
Icon Bar=true

189
kdevelop/app/kdevelopui.rc Normal file
View file

@ -0,0 +1,189 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
<kpartgui version="136" name="kdevelop" >
<MenuBar>
<Menu name="session" append="first_menu">
<text context="@title:menu">Session</text>
</Menu>
<Menu name="project" append="first_menu">
<text context="@title:menu">&amp;Project</text>
<DefineGroup name="project_new"/>
<Separator/>
<Action name="project_open"/>
<Action name="project_fetch"/>
<Action name="project_open_recent"/>
<Action name="project_open_for_file"/>
<Separator/>
<Merge />
<Separator />
<Action name="project_open_config" />
<Separator/>
<Action name="project_close"/>
<Action name="project_close_all"/>
</Menu>
<Menu name="run" append="first_menu">
<text name="@title:menu">&amp;Run</text>
<Action name="run_default_target" />
<Action name="configure_launches" />
<Action name="run_execute" /> <!-- ### remove me -->
<Action name="run_debug" /> <!-- ### remove me -->
<Action name="run_profile" /> <!-- ### remove me -->
<DefineGroup name="run_operations" />
<Separator />
<Action name="run_stop_all" />
<Action name="run_stop_menu" />
<Separator />
<DefineGroup name="debug" /> <!-- ### remove me -->
<Separator />
<Merge />
</Menu>
<Menu name="navigation" append="first_menu">
<text context="@title:menu">&amp;Navigation</text>
<DefineGroup name="navigation_file"/>
<Separator />
<Action name="previous_error" />
<Action name="next_error" />
<Separator />
<DefineGroup name="navigation_code"/>
<Separator />
<DefineGroup name="navigation_fxn"/>
<Separator />
<DefineGroup name="navigation_jmp"/>
<Separator />
<DefineGroup name="navigation_use"/>
<Separator />
<DefineGroup name="navigation_cxt"/>
<Separator />
<Merge />
</Menu>
<Separator append="first_menu" style="visible"/>
<Menu name="file">
<text context="@title:menu">&amp;File</text>
<DefineGroup append="new_merge" name="new_merge"/>
<DefineGroup append="open_merge" name="open_merge"/>
<DefineGroup append="save_merge" name="save_merge"/>
<DefineGroup append="revert_merge" name="revert_merge"/>
<DefineGroup append="print_merge" name="print_merge"/>
<Action name="file_closeother" append="close_merge"/>
<DefineGroup append="close_merge" name="close_merge"/>
</Menu>
<Menu name="edit">
<text context="@title:menu">&amp;Edit</text>
<DefineGroup append="edit_undo_merge" name="edit_undo_merge"/>
<DefineGroup append="edit_paste_merge" name="edit_paste_merge"/>
<DefineGroup append="edit_select_merge" name="edit_select_merge"/>
<DefineGroup append="edit_find_merge" name="edit_find_merge"/>
<DefineGroup name="edit_formatting"/>
<Separator/>
<Merge/>
</Menu>
<Merge />
<Menu name="editor">
<text context="@title:menu">Editor</text>
<Merge/>
</Menu>
<Menu name="code">
<text context="@title:menu">Code</text>
<Merge/>
</Menu>
<Separator style="visible" />
<Menu name="window">
<text context="@title:menu">&amp;Window</text>
<Action name="new_window"/>
<Separator/>
<Action name="add_toolview"/>
<Action name="select_previous_dock"/>
<Action name="select_next_dock"/>
<Action name="docks_submenu"/>
<Action name="user_interface"/>
<DefineGroup name="history_operations"/>
<Action name="history_back"/>
<Action name="history_forward"/>
<Separator/>
<Action name="file_switchto"/>
<Separator/>
<DefineGroup name="error_operations"/>
<Separator/>
<Merge/>
<Separator/>
<DefineGroup name="view_operations"/>
<Action name="view_previous_window"/>
<Action name="view_next_window"/>
<Separator/>
<Action name="split_horizontal"/>
<Action name="split_vertical"/>
<Action name="view_previous_split"/>
<Action name="view_next_split"/>
<Separator/>
<DefineGroup name="window_operations"/>
<Separator/>
<Action name="focus_editor"/>
<Separator/>
<Action name="show_left_dock"/>
<Action name="show_right_dock"/>
<Action name="show_bottom_dock"/>
<Action name="hide_all_docks"/>
<Separator/>
<Merge/>
</Menu>
<Menu name="settings">
<text context="@title:menu">Settings</text>
<DefineGroup append="show_toolbar_merge" name="show_toolbar_merge"/>
<DefineGroup append="show_merge" name="show_merge" />
<Action name="show_editorconfig" append="configure_merge" />
<DefineGroup append="configure_merge" name="configure_merge" />
</Menu>
<Menu name="help">
<Action name="loaded_plugins" append="about_merge" />
<Action name="about_platform" append="about_merge" />
</Menu>
</MenuBar>
<ToolBar name="mainToolBar" position="Top" noMerge="1">
<text>Main Toolbar</text>
<Action name="area_switcher"/>
<Separator/>
<DefineGroup append="build_operations" name="build_operations"/>
<DefineGroup append="run_operations" name="run_operations"/>
<Action name="run_execute" group="run_operations"/>
<Action name="run_debug" group="run_operations"/>
<Action name="run_stop_all" group="run_operations" />
<Action name="run_stop_menu" group="run_operations" />
<Separator/>
<Action name="file_new" />
<DefineGroup append="file_operations" name="file_operations"/>
<DefineGroup append="edit_operations" name="edit_operations"/>
<Separator/>
<Action name="commit_current_project" />
</ToolBar>
<Menu name="rb_popup">
<Separator/>
<Action name="file_close"/>
<Action name="file_closeother"/>
</Menu>
</kpartgui>

View file

@ -0,0 +1,66 @@
/***************************************************************************
* Copyright 2004 Alexander Dymo <adymo@kdevelop.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include "kdevideextension.h"
#include <QStringList>
#include <KLocalizedString>
#include <QApplication>
KDevIDEExtension::KDevIDEExtension()
: ShellExtension()
{
}
void KDevIDEExtension::init()
{
s_instance = new KDevIDEExtension();
}
QString KDevIDEExtension::xmlFile()
{
return "kdevelopui.rc";
}
QString KDevIDEExtension::binaryPath()
{
return QApplication::applicationDirPath() + "/kdevelop";
}
KDevelop::AreaParams KDevIDEExtension::defaultArea()
{
KDevelop::AreaParams params = {"code", i18n("Code")};
return params;
}
QString KDevIDEExtension::projectFileExtension()
{
return "kdev4";
}
QString KDevIDEExtension::projectFileDescription()
{
return i18n("KDevelop4 Project Files");
}
QStringList KDevIDEExtension::defaultPlugins()
{
return QStringList();
}

View file

@ -0,0 +1,48 @@
/***************************************************************************
* Copyright 2004 Alexander Dymo <adymo@kdevelop.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef KDEVIDEEXTENSION_H
#define KDEVIDEEXTENSION_H
#include <shell/shellextension.h>
class KDevIDEExtension : public KDevelop::ShellExtension {
public:
static void init();
virtual QString xmlFile();
virtual QString binaryPath();
virtual KDevelop::AreaParams defaultArea();
virtual QString projectFileExtension();
virtual QString projectFileDescription();
virtual QStringList defaultPlugins();
protected:
KDevIDEExtension();
};
#endif

583
kdevelop/app/main.cpp Normal file
View file

@ -0,0 +1,583 @@
/***************************************************************************
* Copyright 2003-2009 Alexander Dymo <adymo@kdevelop.org> *
* Copyright 2007 Ralf Habacker <Ralf.Habacker@freenet.de> *
* Copyright 2006-2007 Matt Rogers <mattr@kde.org> *
* Copyright 2006-2007 Hamish Rodda <rodda@kde.org> *
* Copyright 2005-2007 Adam Treat <treat@kde.org> *
* Copyright 2003-2007 Jens Dagerbo <jens.dagerbo@swipnet.se> *
* Copyright 2001-2002 Bernd Gehrmann <bernd@mail.berlios.de> *
* Copyright 2001-2002 Matthias Hoelzer-Kluepfel <hoelzer@kde.org> *
* Copyright 2003 Roberto Raggi <roberto@kdevelop.org> *
* Copyright 2010 Niko Sams <niko.sams@gmail.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Library General Public License as *
* published by the Free Software Foundation; either version 2 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include <config.h>
#include <kaboutdata.h>
#include <kapplication.h>
#include <kcmdlineargs.h>
#include <klocale.h>
#include <kstandarddirs.h>
#include <kdebug.h>
#include <ksplashscreen.h>
#include <kmessagebox.h>
#include <ktexteditor/cursor.h>
#include <QFileInfo>
#include <QDir>
#include <QProcess>
#include <QSessionManager>
#include <QTextStream>
#include <QDBusInterface>
#include <QDBusReply>
#include <shell/core.h>
#include <shell/mainwindow.h>
#include <shell/projectcontroller.h>
#include <shell/documentcontroller.h>
#include <shell/plugincontroller.h>
#include <shell/sessioncontroller.h>
#include <shell/runcontroller.h>
#include <shell/launchconfiguration.h>
#include <shell/session.h>
#include <interfaces/ilauncher.h>
#include <interfaces/iproject.h>
#include <interfaces/launchconfigurationtype.h>
#include "kdevideextension.h"
#include <iostream>
#include "welcomepage/welcomepageview.h"
#include "splash.h"
#ifdef Q_OS_MAC
#include <CoreFoundation/CoreFoundation.h>
#endif
using KDevelop::Core;
// Represents a file to be opened, consisting of its URL and the linenumber to jump to
typedef QPair<QString, int> File;
class KDevelopApplication: public KApplication {
public:
explicit KDevelopApplication(bool GUIenabled = true): KApplication(GUIenabled) {}
void saveState( QSessionManager& sm ) {
if (KDevelop::Core::self() && KDevelop::Core::self()->sessionController()) {
QString x11SessionId = QString("%1_%2").arg(sm.sessionId()).arg(sm.sessionKey());
QString kdevelopSessionId = KDevelop::Core::self()->sessionController()->activeSession()->id().toString();
sm.setRestartCommand(QStringList() << QCoreApplication::applicationFilePath() << "-session" << x11SessionId << "-s" << kdevelopSessionId);
}
KApplication::saveState(sm);
}
};
/// Tries to find a session identified by @p data in @p sessions.
/// The @p data may be either a session's name or a string-representation of its UUID.
/// @return pointer to the session or NULL if nothing appropriate has been found
static const KDevelop::SessionInfo* findSessionInList( QList<KDevelop::SessionInfo>& sessions, const QString& data )
{
// We won't search a session without input data, since that could lead to false-positives
// with unnamed sessions
if( data.isEmpty() )
return 0;
for( QList<KDevelop::SessionInfo>::const_iterator it = sessions.constBegin(); it != sessions.constEnd(); ++it ) {
if ( ( it->name == data ) || ( it->uuid.toString() == data ) ) {
const KDevelop::SessionInfo& sessionRef = *it;
return &sessionRef;
}
}
return 0;
}
/// Parses a filename given as an argument by determining its line number and full path
static File parseFilename(QString argument)
{
if ( KUrl::isRelativeUrl(argument) && ! argument.startsWith('/') ) {
argument = QDir::currentPath() + "/" + argument;
}
//Allow opening specific lines in documents, like mydoc.cpp:10
int lineNumberOffset = argument.lastIndexOf(':');
int line = -1;
if( lineNumberOffset != -1 )
{
bool isInt;
int lineNr = argument.mid(lineNumberOffset+1).toInt(&isInt);
if (isInt)
{
argument = argument.left(lineNumberOffset);
line = lineNr;
}
}
return File(argument, line);
}
/// Performs a DBus call to open the given @p files in the running kdev instance identified by @p pid
/// Returns the exit status
static int openFilesInRunningInstance(const QVector<File>& files, int pid)
{
const QString service = QString("org.kdevelop.kdevelop-%1").arg(pid);
QDBusInterface iface(service, "/org/kdevelop/DocumentController", "org.kdevelop.DocumentController");
QStringList urls;
bool errors_occured = false;
foreach ( const File& file, files ) {
QDBusReply<bool> result = iface.call("openDocumentSimple", file.first);
if ( ! result.value() ) {
QTextStream err(stderr);
err << i18n("Could not open file %1.", file.first) << "\n";
errors_occured = true;
}
}
// make the window visible
QDBusMessage makeVisible = QDBusMessage::createMethodCall( service, "/kdevelop/MainWindow", "org.kdevelop.MainWindow",
"ensureVisible" );
QDBusConnection::sessionBus().asyncCall( makeVisible );
return errors_occured ? 1 : 0;
}
/// Gets the PID of a running KDevelop instance, eventually asking the user if there is more than one.
/// Returns -1 in case there are no running sessions.
static int getRunningSessionPid()
{
QList<KDevelop::SessionInfo> candidates;
foreach( const KDevelop::SessionInfo& si, KDevelop::SessionController::availableSessionInfo() ) {
if( KDevelop::SessionController::isSessionRunning(si.uuid.toString()) ) {
candidates << si;
}
}
if ( candidates.isEmpty() ) {
return -1;
}
QString sessionUuid;
if ( candidates.size() == 1 ) {
sessionUuid = candidates.first().uuid.toString();
}
else {
const QString title = i18n("Select the session to open the document in");
sessionUuid = KDevelop::SessionController::showSessionChooserDialog(title, true);
}
return KDevelop::SessionController::sessionRunInfo(sessionUuid).holderPid;
}
int main( int argc, char *argv[] )
{
#ifdef Q_OS_MAC
CFBundleRef mainBundle = CFBundleGetMainBundle();
if (mainBundle) {
// get the application's Info Dictionary. For app bundles this would live in the bundle's Info.plist,
// for regular executables it is obtained in another way.
CFMutableDictionaryRef infoDict = (CFMutableDictionaryRef) CFBundleGetInfoDictionary(mainBundle);
if (infoDict) {
// Try to prevent App Nap on OS X. This can be tricky in practice, at least in 10.9 .
CFDictionarySetValue(infoDict, CFSTR("NSAppSleepDisabled"), kCFBooleanTrue);
CFDictionarySetValue(infoDict, CFSTR("NSSupportsAutomaticTermination"), kCFBooleanFalse);
}
}
#endif
static const char description[] = I18N_NOOP( "The KDevelop Integrated Development Environment" );
KAboutData aboutData( "kdevelop", 0, ki18n( "KDevelop" ), QByteArray(VERSION), ki18n(description), KAboutData::License_GPL,
ki18n( "Copyright 1999-2014, The KDevelop developers" ), KLocalizedString(), "http://www.kdevelop.org/" );
aboutData.addAuthor( ki18n("Andreas Pakulat"), ki18n( "Architecture, VCS Support, Project Management Support, QMake Projectmanager" ), "apaku@gmx.de" );
aboutData.addAuthor( ki18n("Alexander Dymo"), ki18n( "Architecture, Sublime UI, Ruby support" ), "adymo@kdevelop.org" );
aboutData.addAuthor( ki18n("David Nolden"), ki18n( "Definition-Use Chain, C++ Support, Code Navigation, Code Completion, Coding Assistance, Refactoring" ), "david.nolden.kdevelop@art-master.de" );
aboutData.addAuthor( ki18n("Aleix Pol Gonzalez"), ki18n( "Co-Maintainer, CMake Support, Run Support, Kross Support" ), "aleixpol@gmail.com" );
aboutData.addAuthor( ki18n("Vladimir Prus"), ki18n( "GDB integration" ), "ghost@cs.msu.su" );
aboutData.addAuthor( ki18n("Hamish Rodda"), ki18n( "Text editor integration, definition-use chain" ), "rodda@kde.org" );
aboutData.addAuthor( ki18n("Amilcar do Carmo Lucas"), ki18n( "Website admin, API documentation, Doxygen and autoproject patches" ), "amilcar@kdevelop.org" );
aboutData.addAuthor( ki18n("Niko Sams"), ki18n( "GDB integration, Webdevelopment Plugins" ), "niko.sams@gmail.com" );
aboutData.addAuthor( ki18n("Milian Wolff"), ki18n( "Co-Maintainer, Generic manager, Webdevelopment Plugins, Snippets, Performance" ), "mail@milianw.de" );
aboutData.addAuthor( ki18n("Sven Brauch"), ki18n( "Python Support, User Interface improvements" ), "svenbrauch@gmail.com" );
aboutData.addCredit( ki18n("Matt Rogers"), KLocalizedString(), "mattr@kde.org");
aboutData.addCredit( ki18n("Cédric Pasteur"), ki18n("astyle and indent support"), "cedric.pasteur@free.fr" );
aboutData.addCredit( ki18n("Evgeniy Ivanov"), ki18n("Distributed VCS, Git, Mercurial"), "powerfox@kde.ru" );
// QTest integration is separate in playground currently.
//aboutData.addCredit( ki18n("Manuel Breugelmanns"), ki18n( "Veritas, QTest integration"), "mbr.nxi@gmail.com" );
aboutData.addCredit( ki18n("Robert Gruber") , ki18n( "SnippetPart, debugger and usability patches" ), "rgruber@users.sourceforge.net" );
aboutData.addCredit( ki18n("Dukju Ahn"), ki18n( "Subversion plugin, Custom Make Manager, Overall improvements" ), "dukjuahn@gmail.com" );
aboutData.addCredit( ki18n("Harald Fernengel"), ki18n( "Ported to Qt 3, patches, valgrind, diff and perforce support" ), "harry@kdevelop.org" );
aboutData.addCredit( ki18n("Roberto Raggi"), ki18n( "C++ parser" ), "roberto@kdevelop.org" );
aboutData.addCredit( ki18n("The KWrite authors"), ki18n( "Kate editor component" ), "kwrite-devel@kde.org" );
aboutData.addCredit( ki18n("Nokia Corporation/Qt Software"), ki18n( "Designer code" ), "qt-info@nokia.com" );
aboutData.addCredit( ki18n("Contributors to older versions:"), KLocalizedString(), "" );
aboutData.addCredit( ki18n("The KHTML authors"), ki18n( "HTML documentation component" ), "kfm-devel@kde.org" );
aboutData.addCredit( ki18n("Bernd Gehrmann"), ki18n( "Initial idea, basic architecture, much initial source code" ), "bernd@kdevelop.org" );
aboutData.addCredit( ki18n("Caleb Tennis"), ki18n( "KTabBar, bugfixes" ), "caleb@aei-tech.com" );
aboutData.addCredit( ki18n("Richard Dale"), ki18n( "Java & Objective C support" ), "Richard_Dale@tipitina.demon.co.uk" );
aboutData.addCredit( ki18n("John Birch"), ki18n( "Debugger frontend" ), "jbb@kdevelop.org" );
aboutData.addCredit( ki18n("Sandy Meier"), ki18n( "PHP support, context menu stuff" ), "smeier@kdevelop.org" );
aboutData.addCredit( ki18n("Kurt Granroth"), ki18n( "KDE application templates" ), "kurth@granroth.org" );
aboutData.addCredit( ki18n("Ian Reinhart Geiser"), ki18n( "Dist part, bash support, application templates" ), "geiseri@yahoo.com" );
aboutData.addCredit( ki18n("Matthias Hoelzer-Kluepfel"), ki18n( "Several components, htdig indexing" ), "hoelzer@kde.org" );
aboutData.addCredit( ki18n("Victor Roeder"), ki18n( "Help with Automake manager and persistent class store" ), "victor_roeder@gmx.de" );
aboutData.addCredit( ki18n("Simon Hausmann"), ki18n( "Help with KParts infrastructure" ), "hausmann@kde.org" );
aboutData.addCredit( ki18n("Oliver Kellogg"), ki18n( "Ada support" ), "okellogg@users.sourceforge.net" );
aboutData.addCredit( ki18n("Jakob Simon-Gaarde"), ki18n( "QMake projectmanager" ), "jsgaarde@tdcspace.dk" );
aboutData.addCredit( ki18n("Falk Brettschneider"), ki18n( "MDI modes, QEditor, bugfixes" ), "falkbr@kdevelop.org" );
aboutData.addCredit( ki18n("Mario Scalas"), ki18n( "PartExplorer, redesign of CvsPart, patches, bugs(fixes)" ), "mario.scalas@libero.it" );
aboutData.addCredit( ki18n("Jens Dagerbo"), ki18n( "Replace, Bookmarks, FileList and CTags2 plugins. Overall improvements and patches" ), "jens.dagerbo@swipnet.se" );
aboutData.addCredit( ki18n("Julian Rockey"), ki18n( "Filecreate part and other bits and patches" ), "linux@jrockey.com" );
aboutData.addCredit( ki18n("Ajay Guleria"), ki18n( "ClearCase support" ), "ajay_guleria@yahoo.com" );
aboutData.addCredit( ki18n("Marek Janukowicz"), ki18n( "Ruby support" ), "child@t17.ds.pwr.wroc.pl" );
aboutData.addCredit( ki18n("Robert Moniot"), ki18n( "Fortran documentation" ), "moniot@fordham.edu" );
aboutData.addCredit( ki18n("Ka-Ping Yee"), ki18n( "Python documentation utility" ), "ping@lfw.org" );
aboutData.addCredit( ki18n("Dimitri van Heesch"), ki18n( "Doxygen wizard" ), "dimitri@stack.nl" );
aboutData.addCredit( ki18n("Hugo Varotto"), ki18n( "Fileselector component" ), "hugo@varotto-usa.com" );
aboutData.addCredit( ki18n("Matt Newell"), ki18n( "Fileselector component" ), "newellm@proaxis.com" );
aboutData.addCredit( ki18n("Daniel Engelschalt"), ki18n( "C++ code completion, persistent class store" ), "daniel.engelschalt@gmx.net" );
aboutData.addCredit( ki18n("Stephane Ancelot"), ki18n( "Patches" ), "sancelot@free.fr" );
aboutData.addCredit( ki18n("Jens Zurheide"), ki18n( "Patches" ), "jens.zurheide@gmx.de" );
aboutData.addCredit( ki18n("Luc Willems"), ki18n( "Help with Perl support" ), "Willems.luc@pandora.be" );
aboutData.addCredit( ki18n("Marcel Turino"), ki18n( "Documentation index view" ), "M.Turino@gmx.de" );
aboutData.addCredit( ki18n("Yann Hodique"), ki18n( "Patches" ), "Yann.Hodique@lifl.fr" );
aboutData.addCredit( ki18n("Tobias Gl\303\244\303\237er") , ki18n( "Documentation Finder, qmake projectmanager patches, usability improvements, bugfixes ... " ), "tobi.web@gmx.de" );
aboutData.addCredit( ki18n("Andreas Koepfle") , ki18n( "QMake project manager patches" ), "koepfle@ti.uni-mannheim.de" );
aboutData.addCredit( ki18n("Sascha Cunz") , ki18n( "Cleanup and bugfixes for qEditor, AutoMake and much other stuff" ), "mail@sacu.de" );
aboutData.addCredit( ki18n("Zoran Karavla"), ki18n( "Artwork for the ruby language" ), "webmaster@the-error.net", "http://the-error.net" );
//we can't use KCmdLineArgs as it doesn't allow arguments for the debugee
//so lookup the --debug switch and eat everything behind by decrementing argc
//debugArgs is filled with args after --debug <debuger>
QStringList debugArgs;
QString debugeeName;
{
bool debugFound = false;
int c = argc;
for (int i=0; i < c; ++i) {
if (debugFound) {
debugArgs << argv[i];
} else if (qstrcmp(argv[i], "--debug") == 0 || qstrcmp(argv[i], "-d") == 0) {
if (argc <= i+1) {
argc = i + 1;
} else {
i++;
argc = i + 1;
}
debugFound = true;
} else if (QString(argv[i]).startsWith("--debug=")) {
argc = i + 1;
debugFound = true;
}
}
}
KCmdLineArgs::init( argc, argv, &aboutData );
KCmdLineOptions options;
options.add("n")
.add("new-session <name>", ki18n("Open KDevelop with a new session using the given name."));
options.add("s")
.add("open-session <session>", ki18n("Open KDevelop with the given session.\n"
"You can pass either hash or the name of the session." ));
options.add("ps").add("pick-session", ki18n("Shows all available sessions and lets you select one to open." ));
options.add("pss").add("pick-session-shell", ki18n("List all available sessions on shell and lets you select one to open." ));
options.add("l")
.add("list-sessions", ki18n( "List available sessions and quit." ));
options.add("p")
.add("project <project>", ki18n( "Open KDevelop and load the given project." ));
options.add("d")
.add("debug <debugger>",
ki18n( "Start debugging an application in KDevelop with the given debugger.\n"
"The binary that should be debugged must follow - including arguments.\n"
"Example: kdevelop --debug gdb myapp --foo bar"));
options.add("pid");
options.add("+files", ki18n( "Files to load" ));
options.add(":", ki18n("Deprecated options:"));
options.add("sessions", ki18n( "Same as -l / --list-sessions" ));
options.add("cs <name>", ki18n( "Same as -n / --new-session" ));
KCmdLineArgs::addCmdLineOptions( options );
KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
KDevelopApplication app;
// The session-controller needs to arguments to eventually pass them to newly opened sessions
KDevelop::SessionController::setArguments(argc, argv);
if(args->isSet("sessions") || args->isSet("list-sessions"))
{
QTextStream qout(stdout);
qout << endl << ki18n("Available sessions (use '-s HASH' or '-s NAME' to open a specific one):").toString() << endl << endl;
qout << QString("%1").arg(ki18n("Hash").toString(), -38) << '\t' << ki18n("Name: Opened Projects").toString() << endl;
foreach(const KDevelop::SessionInfo& si, KDevelop::SessionController::availableSessionInfo())
{
if ( si.name.isEmpty() && si.projects.isEmpty() ) {
continue;
}
qout << si.uuid.toString() << '\t' << si.description;
if(KDevelop::SessionController::isSessionRunning(si.uuid.toString()))
qout << " " << i18n("[running]");
qout << endl;
}
return 0;
}
// Handle extra arguments, which stand for files to open
QVector<File> initialFiles;
for ( int i = 0; i < args->count(); i++ ) {
initialFiles.append(parseFilename(args->arg(i)));
}
if ( ! initialFiles.isEmpty() && ! args->isSet("open-session") && ! args->isSet("new-session") )
{
int pid = getRunningSessionPid();
if ( pid > 0 ) {
return openFilesInRunningInstance(initialFiles, pid);
}
// else there are no running sessions, and the generated list of files will be opened below.
}
// if empty, restart kdevelop with last active session, see SessionController::defaultSessionId
QString session;
if(args->isSet("pss"))
{
QTextStream qerr(stderr);
QList<KDevelop::SessionInfo> candidates;
foreach(const KDevelop::SessionInfo& si, KDevelop::SessionController::availableSessionInfo())
if( (!si.name.isEmpty() || !si.projects.isEmpty() || args->isSet("pid")) &&
(!args->isSet("pid") || KDevelop::SessionController::isSessionRunning(si.uuid.toString())))
candidates << si;
if(candidates.size() == 0)
{
qerr << "no session available" << endl;
return 1;
}
if(candidates.size() == 1 && args->isSet("pid"))
{
session = candidates[0].uuid.toString();
}else{
for(int i = 0; i < candidates.size(); ++i)
qerr << "[" << i << "]: " << candidates[i].description << endl;
int chosen;
std::cin >> chosen;
if(std::cin.good() && (chosen >= 0 && chosen < candidates.size()))
{
session = candidates[chosen].uuid.toString();
}else{
qerr << "invalid selection" << endl;
return 1;
}
}
}
if(args->isSet("ps"))
{
bool onlyRunning = args->isSet("pid");
session = KDevelop::SessionController::showSessionChooserDialog(i18n("Select the session you would like to use"), onlyRunning);
if(session.isEmpty())
return 1;
}
if ( args->isSet("debug") ) {
if ( debugArgs.isEmpty() ) {
QTextStream qerr(stderr);
qerr << endl << i18nc("@info:shell", "Specify the binary you want to debug.") << endl;
return 1;
}
debugeeName = i18n("Debug %1", KUrl( debugArgs.first() ).fileName());
session = debugeeName;
} else if ( args->isSet("cs") || args->isSet("new-session") )
{
session = args->isSet("cs") ? args->getOption("cs") : args->getOption("new-session");
foreach(const KDevelop::SessionInfo& si, KDevelop::SessionController::availableSessionInfo())
{
if ( session == si.name ) {
QTextStream qerr(stderr);
qerr << endl << i18n("A session with the name %1 exists already. Use the -s switch to open it.", session) << endl;
return 1;
}
}
// session doesn't exist, we can create it
} else if ( args->isSet("open-session") ) {
session = args->getOption("open-session");
//If there is a session and a project with the same name, always open the session
//regardless of the order encountered
QString projectAsSession;
bool found = false;
foreach(const KDevelop::SessionInfo& si, KDevelop::SessionController::availableSessionInfo())
{
if ( session == si.name || session == si.uuid.toString() ) {
found = true;
break;
}
else if (projectAsSession.isEmpty()) {
foreach(const KUrl& k, si.projects)
{
QString fn(k.fileName());
fn = fn.left(fn.indexOf('.'));
if ( session == fn )
projectAsSession = si.uuid;
}
}
}
if ( !found ) {
if ( projectAsSession.isEmpty() ) {
QTextStream qerr(stderr);
qerr << endl << i18n("Cannot open unknown session %1. See --sessions switch for available sessions or use -cs to create a new one.", session) << endl;
return 1;
}
else
session = projectAsSession;
}
}
QList<KDevelop::SessionInfo> sessions = KDevelop::SessionController::availableSessionInfo();
const KDevelop::SessionInfo* sessionData = findSessionInList( sessions, session );
if(args->isSet("pid")) {
if( !sessionData ) {
kError() << "session not given or does not exist";
return 5;
}
KDevelop::SessionRunInfo sessionInfo = KDevelop::SessionController::sessionRunInfo( sessionData->uuid.toString() );
if (!sessionInfo.isRunning) {
kError() << session << sessionData->name << "is not running";
return 5;
} else {
// Print the PID and we're ready
std::cout << sessionInfo.holderPid << std::endl;
return 0;
}
}
KDevIDEExtension::init();
KDevSplashScreen* splash = 0;
if ( !QProcessEnvironment::systemEnvironment().contains("KDEV_DISABLE_SPLASH") ) {
splash = new KDevSplashScreen;
splash->show();
splash->repaint();
app.processEvents();
}
if(!Core::initialize(splash, Core::Default, session))
return 5;
KGlobal::locale()->insertCatalog( Core::self()->componentData().catalogName() );
Core* core = Core::self();
QStringList projectNames = args->getOptionList("project");
if(!projectNames.isEmpty())
{
foreach(const QString& p, projectNames)
{
QFileInfo info( p );
if( info.suffix() == "kdev4" ) {
// make sure the project is not already opened by the session controller
bool shouldOpen = true;
KUrl url(info.absoluteFilePath());
foreach(KDevelop::IProject* p, core->projectController()->projects()) {
if (p->projectFileUrl() == url) {
shouldOpen = false;
break;
}
}
if (shouldOpen) {
core->projectController()->openProject( url );
}
}
}
}
if ( args->isSet("debug") ) {
Q_ASSERT( !debugeeName.isEmpty() );
QString launchName = debugeeName;
KDevelop::LaunchConfiguration* launch = 0;
kDebug() << launchName;
foreach (KDevelop::LaunchConfiguration *l, core->runControllerInternal()->launchConfigurationsInternal()) {
kDebug() << l->name();
if (l->name() == launchName) {
launch = l;
}
}
KDevelop::LaunchConfigurationType *type = 0;
foreach (KDevelop::LaunchConfigurationType *t, core->runController()->launchConfigurationTypes()) {
kDebug() << t->id();
if (t->id() == "Native Application") {
type = t;
break;
}
}
if (!type) {
QTextStream qerr(stderr);
qerr << endl << i18n("Cannot find native launch configuration type") << endl;
return 1;
}
if (launch && launch->type()->id() != "Native Application") launch = 0;
if (launch && launch->launcherForMode("debug") != args->getOption("debug")) launch = 0;
if (!launch) {
kDebug() << launchName << "not found, creating a new one";
QPair<QString,QString> launcher;
launcher.first = "debug";
foreach (KDevelop::ILauncher *l, type->launchers()) {
if (l->id() == args->getOption("debug")) {
if (l->supportedModes().contains("debug")) {
launcher.second = l->id();
}
}
}
if (launcher.second.isEmpty()) {
QTextStream qerr(stderr);
qerr << endl << i18n("Cannot find launcher %1", args->getOption("debug")) << endl;
return 1;
}
KDevelop::ILaunchConfiguration* ilaunch = core->runController()->createLaunchConfiguration(type, launcher, 0, launchName);
launch = dynamic_cast<KDevelop::LaunchConfiguration*>(ilaunch);
}
type->configureLaunchFromCmdLineArguments(launch->config(), debugArgs);
launch->config().writeEntry("Break on Start", true);
core->runControllerInternal()->setDefaultLaunch(launch);
core->runControllerInternal()->execute("debug", launch);
} else {
foreach ( const File& file, initialFiles ) {
if(!core->documentController()->openDocument(file.first, KTextEditor::Cursor(file.second, 0))) {
kWarning() << i18n("Could not open %1", file.first);
}
}
}
#ifdef WITH_WELCOMEPAGE
// make it possible to disable the welcome page, useful for valgrind runs e.g.
if (!QProcessEnvironment::systemEnvironment().contains("KDEV_DISABLE_WELCOMEPAGE")) {
trySetupWelcomePageView();
}
#endif
return app.exec();
}

View file

@ -0,0 +1,3 @@
add_subdirectory(dataengine)
add_subdirectory(applet)
add_subdirectory(runner)

View file

@ -0,0 +1,6 @@
project(kdevelopsessions)
install(DIRECTORY package/
DESTINATION ${DATA_INSTALL_DIR}/plasma/plasmoids/kdevelopsessions)
install(FILES package/metadata.desktop DESTINATION ${SERVICES_INSTALL_DIR} RENAME plasma-applet-kdevelopsessions.desktop)

View file

@ -0,0 +1,3 @@
#! /usr/bin/env bash
# only need to change the name of the applet
$XGETTEXT `find . -name \*.qml` -L Java -o $podir/plasma_applet_kdevelopsessions.pot

View file

@ -0,0 +1,184 @@
/*****************************************************************************
* Copyright (C) 2012 by Eike Hein <hein@kde.org> *
* Copyright (C) 2011, 2012 by Shaun Reich <shaun.reich@kdemail.net> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
import QtQuick 1.1
import org.kde.qtextracomponents 0.1
import org.kde.plasma.core 0.1 as PlasmaCore
import org.kde.plasma.components 0.1 as PlasmaComponents
Item {
id: kdevelopSessions
property int minimumWidth: 200
property int minimumHeight: 150
function popupEventSlot(shown) {
if(shown)
view.forceActiveFocus();
}
PlasmaCore.DataSource {
id: sessionsSource
engine: "org.kde.kdevelopsessions"
onSourceAdded: connectSource(source)
onSourceRemoved: disconnectSource(source)
Component.onCompleted: connectedSources = sources
}
PlasmaCore.DataModel {
id: sessionsModel
dataSource: sessionsSource
}
Component.onCompleted: {
plasmoid.popupIcon = "kdevelop";
plasmoid.aspectRatioMode = IgnoreAspectRatio;
plasmoid.popupEvent.connect('popupEvent', popupEventSlot);
}
PlasmaCore.Svg {
id: lineSvg
imagePath: "widgets/line"
}
Row {
id: headerRow
anchors { left: parent.left; right: parent.right }
QIconItem {
id: appIcon
icon: QIcon("kdevelop")
width: 32
height: 32
}
PlasmaComponents.Label {
id: header
text: i18n("KDevelop Sessions")
horizontalAlignment: Text.AlignHCenter | Text.AlignVCenter
width: parent.width - appIcon.width * 2
height: parent.height
}
}
PlasmaCore.SvgItem {
id: separator
anchors { left: headerRow.left; right: headerRow.right; top: headerRow.bottom }
svg: lineSvg
elementId: "horizontal-line"
height: lineSvg.elementSize("horizontal-line").height
}
Text {
id: textMetric
visible: false
// translated but not used, we just need length/height
text: i18n("Arbitrary String Which Says Something")
}
ListView {
id: view
anchors { left: parent.left; right: scrollBar.left; bottom: parent.bottom; top: separator.bottom; topMargin: 5 }
model: PlasmaCore.SortFilterModel {
id: filterModel
sourceModel: sessionsModel
sortRole: "sessionString"
}
clip: true
focus: true
delegate: Item {
id: listdelegate
height: textMetric.paintedHeight * 2
anchors {
left: parent.left
right: parent.right
}
function openSession() {
var service = sessionsSource.serviceForSource(model["DataEngineSource"])
var operation = service.operationDescription("open")
var job = service.startOperationCall(operation)
}
PlasmaComponents.Label {
id: sessionText
anchors {
verticalCenter: parent.verticalCenter
left: parent.left
right: parent.right
leftMargin: 10
rightMargin: 10
}
verticalAlignment: Text.AlignVCenter
text: model.sessionString
elide: Text.ElideRight
}
MouseArea {
height: parent.height + 15
anchors { left: parent.left; right: parent.right;}
hoverEnabled: true
onClicked: {
openSession();
}
onEntered: {
view.currentIndex = index
view.highlightItem.opacity = 1
}
onExited: {
view.highlightItem.opacity = 0
}
}
Keys.onPressed: {
if (event.key == Qt.Key_Enter || event.key == Qt.Key_Return)
openSession();
}
}
highlight: PlasmaComponents.Highlight {
hover: true
}
highlightMoveDuration: 250
highlightMoveSpeed: 1
}
PlasmaComponents.ScrollBar {
id: scrollBar
anchors { bottom: parent.bottom; top: separator.top; right: parent.right }
orientation: Qt.Vertical
stepSize: view.count / 4
scrollButtonInterval: view.count / 4
flickableItem: view
}
}

View file

@ -0,0 +1,88 @@
[Desktop Entry]
Name=KDevelop Sessions
Name[bs]=KDevelop sesije
Name[ca]=Sessions del KDevelop
Name[ca@valencia]=Sessions del KDevelop
Name[cs]=relace KDevelop
Name[da]=KDevelop-sessioner
Name[de]=KDevelop-Sitzungen
Name[el]=Συνεδρίες KDevelop
Name[en_GB]=KDevelop Sessions
Name[es]=Sesiones de KDevelop
Name[et]=KDevelopi seansid
Name[fi]=KDevelop-istunnot
Name[fr]=Sessions KDevelop
Name[ga]=Seisiúin KDevelop
Name[gl]=Sesións de KDevelop
Name[hu]=KDevelop munkamenetek
Name[it]=Sessioni KDevelop
Name[kk]=KDevelop сеанстары
Name[lt]=KDevelop seansas
Name[nb]=KDevelop-økter
Name[nds]=KDevelop-Törns
Name[nl]=KDevelop sessies
Name[pl]=Sesje KDevelop
Name[pt]=Sessões do KDevelop
Name[pt_BR]=Sessões do KDevelop
Name[ru]=Сеансы KDevelop
Name[sk]=Sedenia KDevelop
Name[sl]=Seje za KDevelop
Name[sv]=KDevelop-sessioner
Name[tr]=KDevelop Oturumları
Name[uk]=Сеанси KDevelop
Name[x-test]=xxKDevelop Sessionsxx
Name[zh_CN]=KDevelop
Name[zh_TW]=KDevelop
Comment=List and launch KDevelop sessions
Comment[bs]=Listanje i pokretanje KDevelop sesija
Comment[ca]=Llista i inicia sessions del KDevelop
Comment[ca@valencia]=Llista i inicia sessions del KDevelop
Comment[cs]=Vypsat a spustit sezení KDevelop
Comment[da]=Oplist og kør KDevelop-sessioner
Comment[de]=KDevelop-Sitzungen anzeigen und starten
Comment[el]=Καταγραφή και έναρξη συνεδριών KDevelop
Comment[en_GB]=List and launch KDevelop sessions
Comment[es]=Listar y lanzar sesiones de KDevelop
Comment[et]=KDevelopi seansside nimekiri ja käivitamine
Comment[fi]=Luettelee ja käynnistää KDevelop-istuntoja
Comment[fr]=Liste et lance des sessions KDevelop
Comment[ga]=Taispeáin agus tosaigh seisiúin KDevelop
Comment[gl]=Lista e inicia sesións do KDevelop
Comment[hu]=KDevelop munkamenetek listázása és indítása
Comment[it]=Elenca e lancia le sessioni di KDevelop
Comment[kk]=KDevelop сеанстарын тізімдеп жегу
Comment[nb]=List opp og start KDevelop-økter
Comment[nl]=Maak een lijst van en start KDevelop sessies
Comment[pl]=Utwórz listę i uruchom sesje KDevelop
Comment[pt]=Listar e lançar sessões do KDevelop
Comment[pt_BR]=Listar e lançar sessões do KDevelop
Comment[ru]=Просмотр списка и запуск сеансов KDevelop
Comment[sk]=Vypísať a spustiť sedenia KDevelop
Comment[sl]=Seznam in zagon sej za KDevelop
Comment[sv]=Lista och starta KDevelop-sessioner
Comment[tr]=KDevelop oturumlarını listele ve başlat
Comment[uk]=Показ списку і запуск сеансів KDevelop
Comment[x-test]=xxList and launch KDevelop sessionsxx
Comment[zh_CN]= KDevelop
Comment[zh_TW]= KDevelop
Icon=kdevelop
Type=Service
X-KDE-ServiceTypes=Plasma/Applet,Plasma/PopupApplet
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/kdevelopsessions.qml
X-Plasma-DefaultSize=290,340
X-KDE-PluginInfo-Author=Eike Hein
X-KDE-PluginInfo-Email=hein@kde.org
X-KDE-PluginInfo-Name=kdevelopsessions
X-KDE-PluginInfo-Version=0.1
X-KDE-PluginInfo-Category=Utilities
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
#X-Plasma-Requires-FileDialog=Unused
#X-Plasma-Requires-LaunchApp=Required
#X-Plasma-NotificationArea=true

View file

@ -0,0 +1,12 @@
set(kdevelopsessionsengine_SRCS
kdevelopsessionsengine.cpp
kdevelopsessionsservice.cpp
)
kde4_add_plugin(plasma_engine_kdevelopsessions ${kdevelopsessionsengine_SRCS})
target_link_libraries(plasma_engine_kdevelopsessions ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS})
install(TARGETS plasma_engine_kdevelopsessions DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES plasma-dataengine-kdevelopsessions.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
install(FILES org.kde.plasma.dataengine.kdevelopsessions.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services)

View file

@ -0,0 +1,2 @@
#! /usr/bin/env bash
$XGETTEXT *.cpp -o $podir/plasma_engine_kdevelopsessions.pot

View file

@ -0,0 +1,141 @@
/*****************************************************************************
* Copyright (C) 2012 by Eike Hein <hein@kde.org> *
* Copyright (C) 2011 by Shaun Reich <shaun.reich@kdemail.net> *
* Copyright (C) 2008 by Montel Laurent <montel@kde.org> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
#include "kdevelopsessionsengine.h"
#include "kdevelopsessionsservice.h"
#include <KStandardDirs>
#include <KDirWatch>
#include <QFileInfo>
#include <QDir>
KDevelopSessionsEngine::KDevelopSessionsEngine(QObject *parent, const QVariantList &args)
: Plasma::DataEngine(parent, args),
m_dirWatch(0)
{
}
KDevelopSessionsEngine::~KDevelopSessionsEngine()
{
}
void KDevelopSessionsEngine::init()
{
m_dirWatch = new KDirWatch( this );
const QStringList sessionDirs = KGlobal::dirs()->findDirs( "data", "kdevelop/sessions/" );
for ( int i = 0; i < sessionDirs.count(); ++i )
m_dirWatch->addDir( sessionDirs[i], KDirWatch::WatchSubDirs );
connect(m_dirWatch, SIGNAL(dirty(QString)), this, SLOT(updateSessions()));
updateSessions();
}
Plasma::Service *KDevelopSessionsEngine::serviceForSource(const QString &source)
{
return new KDevelopSessionsService( this, source );
}
void KDevelopSessionsEngine::updateSessions()
{
const QStringList sessionrcs = KGlobal::dirs()->findAllResources( "data", "kdevelop/sessions/*/sessionrc", KStandardDirs::NoDuplicates );
QHash<QString, Session> sessions;
QStringList::const_iterator it;
for (it = sessionrcs.constBegin(); it != sessionrcs.constEnd(); ++it)
{
KConfig cfg( *it, KConfig::SimpleConfig );
// Only consider sessions that have open projects.
if ( cfg.hasGroup( "General Options" ) && !cfg.group( "General Options" ).readEntry( "Open Projects", "" ).isEmpty() )
{
Session session;
session.hash = QFileInfo( *it ).dir().dirName();
session.name = cfg.group( "" ).readEntry( "SessionName", "" );
session.description = cfg.group( "" ).readEntry( "SessionPrettyContents", "" );
sessions.insert(session.hash, session);
}
}
QHash<QString, Session>::const_iterator it2;
for (it2 = sessions.constBegin(); it2 != sessions.constEnd(); ++it2)
{
const Session& session = it2.value();
if ( !m_currentSessions.contains( session.hash ) )
{
// Publish new session.
m_currentSessions.insert( session.hash, session );
setData( session.hash, "sessionName", session.name );
setData( session.hash, "sessionString", session.description );
}
else
{
// Publish data changes for older sessions.
Session oldSession( m_currentSessions.value(session.hash) );
bool modified = false;
if ( session.name != oldSession.name )
{
oldSession.name = session.name;
modified = true;
setData( session.hash, "sessionName", session.name );
}
if ( session.description != oldSession.description )
{
oldSession.description = session.description;
modified = true;
setData( session.hash, "sessionString", session.description );
}
if ( modified )
m_currentSessions.insert( oldSession.hash, oldSession );
}
}
QHash<QString, Session>::iterator it3 = m_currentSessions.begin();
while ( it3 != m_currentSessions.end() )
{
const Session& session = it3.value();
if ( !sessions.contains( session.hash ) )
{
removeSource( session.hash );
it3 = m_currentSessions.erase( it3 );
}
else
++it3;
}
}
K_EXPORT_PLASMA_DATAENGINE(kdevelopsessionsengine, KDevelopSessionsEngine)
#include "moc_kdevelopsessionsengine.cpp"

View file

@ -0,0 +1,54 @@
/*****************************************************************************
* Copyright (C) 2012 by Eike Hein <hein@kde.org> *
* Copyright (C) 2011 by Shaun Reich <shaun.reich@kdemail.net> *
* Copyright (C) 2008 by Montel Laurent <montel@kde.org> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
#ifndef KDEVELOPSESSIONSENGINE_H
#define KDEVELOPSESSIONSENGINE_H
#include <Plasma/DataEngine>
struct Session
{
QString hash;
QString name;
QString description;
};
class KDirWatch;
class KDevelopSessionsEngine : public Plasma::DataEngine
{
Q_OBJECT
public:
KDevelopSessionsEngine(QObject *parent, const QVariantList &args);
~KDevelopSessionsEngine();
void init();
Plasma::Service *serviceForSource(const QString &source);
private Q_SLOTS:
void updateSessions();
private:
QHash<QString, Session> m_currentSessions;
KDirWatch *m_dirWatch;
};
#endif

View file

@ -0,0 +1,53 @@
/*****************************************************************************
* Copyright (C) 2012 by Eike Hein <hein@kde.org> *
* Copyright (C) 2011 by Shaun Reich <shaun.reich@kdemail.net> *
* Copyright (C) 2008 by Montel Laurent <montel@kde.org> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
#include "kdevelopsessionsservice.h"
#include <KToolInvocation>
KDevelopSessionsService::KDevelopSessionsService(QObject* parent, const QString& sessionName)
: Plasma::Service(parent)
{
setName("org.kde.plasma.dataengine.kdevelopsessions");
setDestination(sessionName);
}
Plasma::ServiceJob* KDevelopSessionsService::createJob(const QString& operation, QMap<QString,QVariant>& parameters)
{
return new SessionJob(this, operation, parameters);
}
SessionJob::SessionJob(KDevelopSessionsService *service, const QString &operation, const QMap<QString, QVariant> &parameters)
: Plasma::ServiceJob(service->destination(), operation, parameters, service)
{
}
void SessionJob::start()
{
if (operationName() == "open")
{
QStringList args;
args << "--open-session" << destination();
KToolInvocation::kdeinitExec("kdevelop", args);
setResult(true);
}
}
#include "moc_kdevelopsessionsservice.cpp"

View file

@ -0,0 +1,46 @@
/*****************************************************************************
* Copyright (C) 2012 by Eike Hein <hein@kde.org> *
* Copyright (C) 2011 by Shaun Reich <shaun.reich@kdemail.net> *
* Copyright (C) 2008 by Montel Laurent <montel@kde.org> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
#ifndef KDEVELOPSESSIONSSERVICE_H
#define KDEVELOPSESSIONSSERVICE_H
#include <Plasma/Service>
#include <Plasma/ServiceJob>
class KDevelopSessionsService : public Plasma::Service
{
Q_OBJECT
public:
KDevelopSessionsService(QObject* parent, const QString& sessionName);
protected:
Plasma::ServiceJob* createJob(const QString& operation, QMap<QString,QVariant>& parameters);
};
class SessionJob : public Plasma::ServiceJob
{
Q_OBJECT
public:
SessionJob(KDevelopSessionsService *service, const QString& operation, const QMap<QString, QVariant> &parameters);
void start();
};
#endif

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE kcfg SYSTEM
"http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfg>
<group name="open">
</group>
</kcfg>

View file

@ -0,0 +1,82 @@
[Desktop Entry]
Name=KDevelop Sessions
Name[bs]=KDevelop sesije
Name[ca]=Sessions del KDevelop
Name[ca@valencia]=Sessions del KDevelop
Name[cs]=relace KDevelop
Name[da]=KDevelop-sessioner
Name[de]=KDevelop-Sitzungen
Name[el]=Συνεδρίες KDevelop
Name[en_GB]=KDevelop Sessions
Name[es]=Sesiones de KDevelop
Name[et]=KDevelopi seansid
Name[fi]=KDevelop-istunnot
Name[fr]=Sessions KDevelop
Name[ga]=Seisiúin KDevelop
Name[gl]=Sesións de KDevelop
Name[hu]=KDevelop munkamenetek
Name[it]=Sessioni KDevelop
Name[kk]=KDevelop сеанстары
Name[lt]=KDevelop seansas
Name[nb]=KDevelop-økter
Name[nds]=KDevelop-Törns
Name[nl]=KDevelop sessies
Name[pl]=Sesje KDevelop
Name[pt]=Sessões do KDevelop
Name[pt_BR]=Sessões do KDevelop
Name[ru]=Сеансы KDevelop
Name[sk]=Sedenia KDevelop
Name[sl]=Seje za KDevelop
Name[sv]=KDevelop-sessioner
Name[tr]=KDevelop Oturumları
Name[uk]=Сеанси KDevelop
Name[x-test]=xxKDevelop Sessionsxx
Name[zh_CN]=KDevelop
Name[zh_TW]=KDevelop
Comment=List and launch KDevelop sessions
Comment[bs]=Listanje i pokretanje KDevelop sesija
Comment[ca]=Llista i inicia sessions del KDevelop
Comment[ca@valencia]=Llista i inicia sessions del KDevelop
Comment[cs]=Vypsat a spustit sezení KDevelop
Comment[da]=Oplist og kør KDevelop-sessioner
Comment[de]=KDevelop-Sitzungen anzeigen und starten
Comment[el]=Καταγραφή και έναρξη συνεδριών KDevelop
Comment[en_GB]=List and launch KDevelop sessions
Comment[es]=Listar y lanzar sesiones de KDevelop
Comment[et]=KDevelopi seansside nimekiri ja käivitamine
Comment[fi]=Luettelee ja käynnistää KDevelop-istuntoja
Comment[fr]=Liste et lance des sessions KDevelop
Comment[ga]=Taispeáin agus tosaigh seisiúin KDevelop
Comment[gl]=Lista e inicia sesións do KDevelop
Comment[hu]=KDevelop munkamenetek listázása és indítása
Comment[it]=Elenca e lancia le sessioni di KDevelop
Comment[kk]=KDevelop сеанстарын тізімдеп жегу
Comment[nb]=List opp og start KDevelop-økter
Comment[nl]=Maak een lijst van en start KDevelop sessies
Comment[pl]=Utwórz listę i uruchom sesje KDevelop
Comment[pt]=Listar e lançar sessões do KDevelop
Comment[pt_BR]=Listar e lançar sessões do KDevelop
Comment[ru]=Просмотр списка и запуск сеансов KDevelop
Comment[sk]=Vypísať a spustiť sedenia KDevelop
Comment[sl]=Seznam in zagon sej za KDevelop
Comment[sv]=Lista och starta KDevelop-sessioner
Comment[tr]=KDevelop oturumlarını listele ve başlat
Comment[uk]=Показ списку і запуск сеансів KDevelop
Comment[x-test]=xxList and launch KDevelop sessionsxx
Comment[zh_CN]= KDevelop
Comment[zh_TW]= KDevelop
Type=Service
Icon=kdevelop
X-KDE-ServiceTypes=Plasma/DataEngine
X-KDE-Library=plasma_engine_kdevelopsessions
X-KDE-PluginInfo-Author=Eike Hein
X-KDE-PluginInfo-Email=hein@kde.org
X-KDE-PluginInfo-Name=org.kde.kdevelopsessions
X-KDE-PluginInfo-Version=0.1
X-KDE-PluginInfo-Category=Utiltities
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true

View file

@ -0,0 +1,11 @@
set(krunner_kdevelopsessions_SRCS
kdevelopsessions.cpp
)
kde4_add_plugin(krunner_kdevelopsessions ${krunner_kdevelopsessions_SRCS})
target_link_libraries(krunner_kdevelopsessions ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS})
install(TARGETS krunner_kdevelopsessions DESTINATION ${PLUGIN_INSTALL_DIR} )
install(FILES kdevelopsessions.desktop DESTINATION ${SERVICES_INSTALL_DIR})

View file

@ -0,0 +1,2 @@
#! /usr/bin/env bash
$XGETTEXT *.cpp -o $podir/plasma_runner_kdevelopsessions.pot

View file

@ -0,0 +1,25 @@
KDevelop Session Runner
========================
This Runner loads a list of KDevelop's sessions and matches
KRunner's queries against it.
The matching goes as follows:
* You type "kdevelop" into the krunner interface, this KDevelop
  Session Runner adds all kdevelop sessions, with a low priority.
 (0.5)
* You type "kdevelop gnirrep" and the runner will find a session
  called "gnirrep", priority 1.0
* Typing just a part, such as "kdevelop gnirr" also results in a
  match, but lower priority (0.8)
* Typing just the (parts of) the name of the session will
  also match (the "kdevelop" in the query is optional).
All matching is case-insensitive.
Happy hacking!
--
sebas@kde.org

View file

@ -0,0 +1,162 @@
/*
* Copyright 2008,2011 Sebastian Kügler <sebas@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "kdevelopsessions.h"
#include <KDebug>
#include <KDirWatch>
#include <KStandardDirs>
#include <KToolInvocation>
#include <KIcon>
#include <KConfig>
#include <KConfigGroup>
#include <KUrl>
#include <KStringHandler>
#include <QFile>
bool kdevelopsessions_runner_compare_sessions(const Session &s1, const Session &s2) {
return KStringHandler::naturalCompare(s1.name, s2.name) == -1;
}
KDevelopSessions::KDevelopSessions(QObject *parent, const QVariantList& args)
: Plasma::AbstractRunner(parent, args)
{
kWarning() << "INIT KDEV";
setObjectName(QLatin1String("KDevelop Sessions"));
setIgnoredTypes(Plasma::RunnerContext::File | Plasma::RunnerContext::Directory | Plasma::RunnerContext::NetworkLocation);
m_icon = KIcon(QLatin1String("kdevelop"));
loadSessions();
// listen for changes to the list of kdevelop sessions
KDirWatch *historyWatch = new KDirWatch(this);
const QStringList sessiondirs = KGlobal::dirs()->findDirs("data", QLatin1String("kdevelop/sessions/"));
foreach (const QString &dir, sessiondirs) {
historyWatch->addDir(dir);
}
connect(historyWatch,SIGNAL(dirty(QString)),this,SLOT(loadSessions()));
connect(historyWatch,SIGNAL(created(QString)),this,SLOT(loadSessions()));
connect(historyWatch,SIGNAL(deleted(QString)),this,SLOT(loadSessions()));
Plasma::RunnerSyntax s(QLatin1String(":q:"), i18n("Finds KDevelop sessions matching :q:."));
s.addExampleQuery(QLatin1String("kdevelop :q:"));
addSyntax(s);
setDefaultSyntax(Plasma::RunnerSyntax(QLatin1String("kdevelop"), i18n("Lists all the KDevelop editor sessions in your account.")));
}
KDevelopSessions::~KDevelopSessions()
{
}
void KDevelopSessions::loadSessions()
{
m_sessions.clear();
// Switch kdevelop session: -u
// Should we add a match for this option or would that clutter the matches too much?
const QStringList list = KGlobal::dirs()->findAllResources( "data", QLatin1String("kdevelop/sessions/*/sessionrc"), KStandardDirs::Recursive );
foreach (const QString &sessionfile, list)
{
kWarning() << "NEW SESSION:" << sessionfile;
Session session;
session.id = sessionfile.section('/', -2, -2);
KConfig cfg(sessionfile, KConfig::SimpleConfig);
KConfigGroup group = cfg.group(QString());
session.name = group.readEntry("SessionPrettyContents");;
m_sessions << session;
}
qSort(m_sessions.begin(), m_sessions.end(), kdevelopsessions_runner_compare_sessions);
}
void KDevelopSessions::match(Plasma::RunnerContext &context)
{
if (m_sessions.isEmpty()) {
return;
}
QString term = context.query();
if (term.length() < 3) {
return;
}
bool listAll = false;
if (term.startsWith(QLatin1String("kdevelop"), Qt::CaseInsensitive)) {
if (term.trimmed().compare(QLatin1String("kdevelop"), Qt::CaseInsensitive) == 0) {
listAll = true;
term.clear();
} else if (term.at(8) == QLatin1Char(' ') ) {
term.remove(QLatin1String("kdevelop"), Qt::CaseInsensitive);
term = term.trimmed();
} else {
term.clear();
}
}
if (term.isEmpty() && !listAll) {
return;
}
foreach (const Session &session, m_sessions) {
if (!context.isValid()) {
return;
}
if (listAll || (!term.isEmpty() && session.name.contains(term, Qt::CaseInsensitive))) {
Plasma::QueryMatch match(this);
if (listAll) {
// All sessions listed, but with a low priority
match.setType(Plasma::QueryMatch::ExactMatch);
match.setRelevance(0.8);
} else {
if (session.name.compare(term, Qt::CaseInsensitive) == 0) {
// parameter to kdevelop matches session exactly, bump it up!
match.setType(Plasma::QueryMatch::ExactMatch);
match.setRelevance(1.0);
} else {
// fuzzy match of the session in "kdevelop $session"
match.setType(Plasma::QueryMatch::PossibleMatch);
match.setRelevance(0.8);
}
}
match.setIcon(m_icon);
match.setData(session.id);
match.setText(session.name);
match.setSubtext(i18n("Open KDevelop Session"));
context.addMatch(term, match);
}
}
}
void KDevelopSessions::run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match)
{
Q_UNUSED(context)
QString sessionId = match.data().toString();
if (sessionId.isEmpty()) {
kWarning() << "No KDevelop session id in match!";
return;
}
kDebug() << "Open KDevelop session" << sessionId;
QStringList args;
args << QLatin1String("--open-session") << sessionId;
KToolInvocation::kdeinitExec(QLatin1String("kdevelop"), args);
}
#include "moc_kdevelopsessions.cpp"

View file

@ -0,0 +1,80 @@
[Desktop Entry]
Name=KDevelop Sessions
Name[bs]=KDevelop sesije
Name[ca]=Sessions del KDevelop
Name[ca@valencia]=Sessions del KDevelop
Name[cs]=relace KDevelop
Name[da]=KDevelop-sessioner
Name[de]=KDevelop-Sitzungen
Name[el]=Συνεδρίες KDevelop
Name[en_GB]=KDevelop Sessions
Name[es]=Sesiones de KDevelop
Name[et]=KDevelopi seansid
Name[fi]=KDevelop-istunnot
Name[fr]=Sessions KDevelop
Name[ga]=Seisiúin KDevelop
Name[gl]=Sesións de KDevelop
Name[hu]=KDevelop munkamenetek
Name[it]=Sessioni KDevelop
Name[kk]=KDevelop сеанстары
Name[lt]=KDevelop seansas
Name[nb]=KDevelop-økter
Name[nds]=KDevelop-Törns
Name[nl]=KDevelop sessies
Name[pl]=Sesje KDevelop
Name[pt]=Sessões do KDevelop
Name[pt_BR]=Sessões do KDevelop
Name[ru]=Сеансы KDevelop
Name[sk]=Sedenia KDevelop
Name[sl]=Seje za KDevelop
Name[sv]=KDevelop-sessioner
Name[tr]=KDevelop Oturumları
Name[uk]=Сеанси KDevelop
Name[x-test]=xxKDevelop Sessionsxx
Name[zh_CN]=KDevelop
Name[zh_TW]=KDevelop
Comment=Matches KDevelop Sessions
Comment[bs]=Usaglašuje KDevelop Sesije
Comment[ca]=Concorda amb sessions del KDevelop
Comment[ca@valencia]=Concorda amb sessions del KDevelop
Comment[da]=Matcher KDevelop-sessioner
Comment[de]=Findet KDevelop-Sitzungen
Comment[el]=Ταιριάζει με συνεδρίες KDevelop
Comment[en_GB]=Matches KDevelop Sessions
Comment[es]=Sesiones coincidentes de KDevelop
Comment[et]=KDevelopi seansside leidmine
Comment[fi]=Täsmää KDevelop-istuntoihin
Comment[fr]=Correspond aux sessions KDevelop
Comment[ga]=Comhoiriúnach le Seisiúin KDevelop
Comment[gl]=Atopa as sesións de KDevelop
Comment[hu]=Illeszkedő KDevelop munkamenetek
Comment[it]=Sessioni KDevelop corrispondenti
Comment[kk]=Сәйкесті KDevelop сеанстарын іздеу
Comment[nb]=Treffer KDevelop-økter
Comment[nds]=Kiekt na passen KDevelop-Törns
Comment[nl]=Komt overeen met KDevelop sessies
Comment[pl]=Dopasowuje sesje KDevelop
Comment[pt]=Corresponde às Sessões do KDevelop
Comment[pt_BR]=Corresponder às sessões do KDevelop
Comment[ru]=Выбирает сеансы KDevelop
Comment[sk]=Porovnáva sedenia KDevelop
Comment[sl]=Se ujema s sejami za KDevelop
Comment[sv]=Matchar KDevelop-sessioner
Comment[tr]=KDevelop Oturumlarını Eşleştirir
Comment[uk]=Пошук відповідних сеансів KDevelop
Comment[x-test]=xxMatches KDevelop Sessionsxx
Comment[zh_CN]= KDevelop
Comment[zh_TW]= KDevelop
Icon=kdevelop
X-KDE-ServiceTypes=Plasma/Runner
Type=Service
TryExec=kdevelop
X-KDE-Library=krunner_kdevelopsessions
X-KDE-PluginInfo-Author=Sebastian Kügler
X-KDE-PluginInfo-Email=sebas@kde.org
X-KDE-PluginInfo-Name=kdevelopsessions
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-License=LGPL
X-KDE-PluginInfo-EnabledByDefault=true
X-Plasma-AdvertiseSingleRunnerQueryMode=true

View file

@ -0,0 +1,55 @@
/*
* Copyright 2008, 2011 Sebastian Kügler <sebas@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef KATESESSIONS_H
#define KATESESSIONS_H
#include <plasma/abstractrunner.h>
#include <KIcon>
struct Session
{
QString id;
QString name;
};
Q_DECLARE_TYPEINFO(Session, Q_MOVABLE_TYPE);
class KDevelopSessions : public Plasma::AbstractRunner {
Q_OBJECT
public:
KDevelopSessions( QObject *parent, const QVariantList& args );
~KDevelopSessions();
void match(Plasma::RunnerContext &context);
void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match);
private Q_SLOTS:
void loadSessions();
private:
KIcon m_icon;
QVector<Session> m_sessions;
};
K_EXPORT_PLASMA_RUNNER(kdevelopsessions, KDevelopSessions)
#endif

118
kdevelop/app/shell.dox Normal file
View file

@ -0,0 +1,118 @@
/**
@page The KDevelop Generic Shell
This library contains the Shell - a profile-based implementation of KDevelop plugin architecture.
<b>Link with</b>: -lkdevshell
<b>Include path</b>: -I\$(kde_includes)/kdevelop/shell
\section creatingapp Creating an application using generic shell
KDevelop platform applications can use generic shell as a ready to use implementation
of KDevelop plugin architecture.
This is done by creating application %main.cpp file and @ref ShellExtension subclass.
Example:
- %main.cpp for "myapp" application:
@code
#include <config.h>
#include <kaboutdata.h>
#include <kapplication.h>
#include <kcmdlineargs.h>
#include <klocale.h>
#include <dcopclient.h>
#include <splashscreen.h>
#include <toplevel.h>
#include <plugincontroller.h>
#include <partcontroller.h>
#include <core.h>
#include <projectmanager.h>
#include <newmainwindow.h>
#include "myappextension.h"
static KCmdLineOptions options[] =
{
{ "profile <profile>", I18N_NOOP("Profile to load"), 0 },
{ 0,0,0 }
};
int main(int argc, char *argv[])
{
static const char description[] = I18N_NOOP("My Application");
KAboutData aboutData("myapp", I18N_NOOP("My Application"),
VERSION, description, KAboutData::License_GPL,
I18N_NOOP("(c) 1999-2004, MyApp developers"),
"", "http://www.myapp.org");
aboutData.addAuthor("Me", I18N_NOOP("Creator"), "me@myapp.org");
KCmdLineArgs::init(argc, argv, &aboutData);
KCmdLineArgs::addCmdLineOptions( options );
KApplication app;
MyAppExtension::init();
QPixmap pm;
pm.load(locate("data", "myapp/pics/myapp-splash.png"));
SplashScreen * splash = new SplashScreen( pm );
splash->show();
app.processEvents();
QObject::connect(PluginController::getInstance(), SIGNAL(loadingPlugin(const QString &)),
splash, SLOT(showMessage(const QString &)));
splash->message( i18n( "Loading Settings" ) );
TopLevel::getInstance()->loadSettings();
PluginController::getInstance()->loadInitialPlugins();
splash->message( i18n( "Starting GUI" ) );
NewMainWindow *mw = dynamic_cast<NewMainWindow*>(TopLevel::getInstance()->main());
if (mw)
mw->enableShow();
TopLevel::getInstance()->main()->show();
Core::getInstance()->doEmitCoreInitialized();
delete splash;
kapp->dcopClient()->registerAs("myapp");
return app.exec();
}
@endcode
- Shell extension for "myapp" application:
@code
class MyAppExtension: public ShellExtension {
public:
static void init()
{
s_instance = new MyAppExtension();
}
virtual void createGlobalSettingsPage(KDialogBase *dlg) {};
virtual void acceptGlobalSettingsPage(KDialogBase *dlg) {};
virtual QString xmlFile()
{
return "myappui.rc";
}
virtual QString defaultProfile()
{
return "MyApp";
}
protected:
KDevAssistantExtension();
};
@endcode
*/

70
kdevelop/app/splash.cpp Normal file
View file

@ -0,0 +1,70 @@
/***************************************************************************
* Copyright 2013 Sven Brauch <svenbrauch@gmail.com> *
* Copyright 2013 Milian Wolff <mail@milianw.de> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Library General Public License as *
* published by the Free Software Foundation; either version 2 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include "splash.h"
#include <KDebug>
#include <KIconLoader>
#include <KStandardDirs>
#include <QDeclarativeView>
#include <QDeclarativeEngine>
#include <QDeclarativeContext>
#include <QGraphicsItem>
#include "config.h"
KDevSplashScreen::KDevSplashScreen()
: KSplashScreen(QPixmap(), Qt::Popup | Qt::FramelessWindowHint)
, m_view(new QDeclarativeView)
{
setFixedSize(QSize(475, 301));
m_view->resize(size());
m_view->engine()->rootContext()->setContextProperty("appIcon", KIconLoader().iconPath("kdevelop", -48));
m_view->engine()->rootContext()->setContextProperty("appVersionMajor", VERSION_MAJOR);
m_view->engine()->rootContext()->setContextProperty("appVersionMinor", VERSION_MINOR);
m_view->engine()->rootContext()->setContextProperty("appVersionPatch", VERSION_PATCH);
QString splashScript = KStandardDirs::locate("data", "kdevelop/splash.qml");
m_view->setSource(QUrl::fromLocalFile(splashScript));
if ( ! m_view->rootObject() ) {
kWarning() << "Could not find KDevelop splash screen: kdevelop/splash.qml";
}
}
KDevSplashScreen::~KDevSplashScreen()
{
}
void KDevSplashScreen::drawContents(QPainter* painter)
{
m_view->render(painter);
}
void KDevSplashScreen::progress(int progress)
{
if ( ! m_view->rootObject() ) {
return;
}
// notify the QML script of the progress change
m_view->rootObject()->setProperty("progress", progress);
repaint();
}

48
kdevelop/app/splash.h Normal file
View file

@ -0,0 +1,48 @@
/***************************************************************************
* Copyright 2013 Sven Brauch <svenbrauch@gmail.com> *
* Copyright 2013 Milian Wolff <mail@milianw.de> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Library General Public License as *
* published by the Free Software Foundation; either version 2 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef KDEVSPLASH_H
#define KDEVSPLASH_H
#include <ksplashscreen.h>
class QDeclarativeView;
/**
* This class is draws the KDevelop splashscreen.
*
* The actualy splash design can be adapted via splash.qml
*/
class KDevSplashScreen : public KSplashScreen
{
Q_OBJECT
public:
explicit KDevSplashScreen();
virtual ~KDevSplashScreen();
virtual void drawContents(QPainter* painter);
public slots:
void progress(int progress);
private:
QScopedPointer<QDeclarativeView> m_view;
};
#endif

138
kdevelop/app/splash.qml Normal file
View file

@ -0,0 +1,138 @@
/***************************************************************************
* Copyright 2013 Sven Brauch <svenbrauch@gmail.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Library General Public License as *
* published by the Free Software Foundation; either version 2 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
import QtQuick 1.1
// The background image for the splash is still a bitmap, provided by QSplashScreen.
// This widget has a transprent background and appears above that pixmap.
// Thus, if for some reason this doesn't work, the user still has a splash screen
// with a kdev logo and name.
Rectangle {
id: root
// this property is updated from C++
property int progress: 0
// color for the non-colored rectangles
property string defaultColor: "#3E3E3E"
// amount of rectangles in each column
property variant counts: [22, 20, 21, 19, 17, 19, 20, 17, 18, 15, 16, 15, 14, 16, 13, 11, 12, 10, 12,
11, 8, 10, 6, 8, 9, 5, 7, 6, 4, 5, 6, 3, 5, 4, 2, 3, 2, 1, 2, 1]
// "active" colors for the rectangles
// only half as many colors, use each color twice.
// TODO could try if it looks nicer with one color each
property variant activeColors: ["#960A0A", "#B40F0F", "#FF4000", "#FF8400", "#FFDD00", "#CDEC00", "#99FF00", "#4CB700", "#1DB300", "#076813",
"#08BA5B", "#00DA99", "#00B5E7", "#085BBB", "#2A5CFF", "#7044FF", "#9625FF", "#F013FF", "#FF2CC0", "#FF1A1D"]
// this size is a fallback, it's scaled in the c++ code actually,
// but this is the real splash size, so it's useful for testing in qmlviewer
width: 475
height: 301
anchors.fill: parent
gradient: Gradient {
GradientStop { position: 0.0; color: "#0A0A0A" }
GradientStop { position: 0.5; color: "#1F1F1F" }
GradientStop { position: 1.0; color: "#0A0A0A" }
}
// scanlines always look fancy
ListView {
anchors.fill: parent
model: Math.floor(parent.height / 2)
spacing: 2
delegate: Rectangle {
width: root.width
height: 1
color: "#555555"
opacity: 0.10
}
}
// draw the rectangles
ListView {
x: -40
y: -52
height: root.height
width: root.width
// this is needed to make the columns fill the widget from the bottom upwards
rotation: 180
spacing: 4
// draw one column per entry in the root.counts list
model: root.counts
orientation: ListView.Horizontal
// this delegate draws one column of rectangles
delegate: Column {
opacity: 0.75
property string color
property int count
color: (1-root.progress/100.0) * root.counts.length <= index ? activeColors[Math.floor(index/2)] : root.defaultColor
count: root.counts[index]
x: 6
y: 12
spacing: 4
Repeater {
model: parent.count
delegate: Rectangle {
color: parent.color
width: 6
height: 6
}
}
}
}
// text in the upper right corner
Text {
anchors.margins: 6
anchors.left: parent.left
anchors.top: parent.top
color: "white"
opacity: 0.65
text: "KDevelop Integrated Development Environment http://kdevelop.org<br>" + root.progress+"%"
}
// icon in the lower left corner
Image {
id: icon
anchors {
bottom: parent.bottom
left: parent.left
margins: 6
}
width: 48
height: width
source: appIcon
}
// Text next to the icon
Text {
anchors {
left: icon.right
bottom: parent.bottom
margins: 8
}
height: icon.height
width: parent.width - icon.width
color: "white"
verticalAlignment: Text.AlignVCenter
font {
pointSize: 26
bold: true
family: "sans"
}
style: Text.Raised;
styleColor: "black"
text: "KDevelop " + appVersionMajor + "." + appVersionMinor +
"<span style='font-size:15px;'>&nbsp;." + appVersionPatch + "</span>"
}
}

130
kdevelop/app/vendor/kate/katepartui.rc vendored Normal file
View file

@ -0,0 +1,130 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
<kpartgui name="KatePartView" version="53">
<MenuBar>
<Menu name="file" noMerge="1"><text>&amp;File</text>
<Action name="file_save" group="save_merge" />
<Action name="file_save_as" group="save_merge" />
<Action name="file_reload" group="revert_merge" />
<Action name="file_print" group="print_merge" />
<Separator group="print_merge" />
</Menu>
<Menu name="edit" noMerge="1"><text>&amp;Edit</text>
<Action name="edit_undo" group="edit_undo_merge" />
<Action name="edit_redo" group="edit_undo_merge" />
<Separator group="edit_undo_merge" />
<Action name="edit_cut" group="edit_paste_merge" />
<Action name="edit_copy" group="edit_paste_merge" />
<Action name="edit_paste" group="edit_paste_merge" />
<Separator group="edit_paste_merge" />
<Action name="edit_select_all" group="edit_select_merge" />
<Action name="edit_deselect" group="edit_select_merge" />
<Action name="set_verticalSelect" group="edit_select_merge" />
<Separator group="edit_select_merge" />
<Action name="view_vi_input_mode" group="edit_select_merge" />
<Action name="set_insert" group="edit_select_merge" />
<Separator group="edit_select_merge" />
<Action name="edit_find" group="edit_find_merge" />
<Action name="edit_find_next" group="edit_find_merge" />
<Action name="edit_find_prev" group="edit_find_merge" />
<Action name="edit_replace" group="edit_find_merge" />
<Action name="edit_find_selected" group="edit_find_merge" />
<Action name="edit_find_selected_backwards" group="edit_find_merge" />
<Separator group="edit_find_merge" />
<Action name="go_goto_line" group="edit_find_merge"/>
</Menu>
<Menu name="view" noMerge="1"><text>&amp;View</text>
<Action name="switch_to_cmd_line" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_schemas" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_dynamic_word_wrap" group="view_operations" />
<Action name="dynamic_word_wrap_indicators" group="view_operations" />
<Action name="view_word_wrap_marker" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_border" group="view_operations" />
<Action name="view_line_numbers" group="view_operations" />
<Action name="view_scrollbar_marks" group="view_operations" />
<Separator group="view_operations" />
<Action name="view_folding_markers" group="view_operations" />
<Menu name="codefolding" group="view_operations"><text>&amp;Code Folding</text>
<Action name="folding_toplevel" group="view_operations" />
<Action name="folding_expandtoplevel" group="view_operations" />
<Action name="folding_collapselocal" group="view_operations" />
<Action name="folding_expandlocal" group="view_operations" />
</Menu>
<Separator group="view_operations" />
<Action name="view_inc_font_sizes" group="view_operations" />
<Action name="view_dec_font_sizes" group="view_operations" />
</Menu>
<Action name="bookmarks" />
<Menu name="tools" noMerge="1"><text>&amp;Tools</text>
<Action name="tools_toggle_write_lock" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_mode" group="tools_operations" />
<Action name="tools_highlighting" group="tools_operations" />
<Action name="tools_indentation" group="tools_operations" />
<Action name="set_encoding" group="tools_operations" />
<Action name="set_eol" group="tools_operations" />
<Action name="add_bom" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_invoke_code_completion" group="tools_operations" />
<Menu name="wordcompletion" group="tools_operations"><text>Word Completion</text>
<Action name="doccomplete_fw" />
<Action name="doccomplete_bw" />
<Action name="doccomplete_sh" />
</Menu>
<Separator group="tools_operations" />
<Action name="tools_toggle_automatic_spell_checking" group="tools_operations" />
<Action name="tools_spelling" group="tools_operations" />
<Action name="tools_spelling_from_cursor" group="tools_operations" />
<Action name="tools_spelling_selection" group="tools_operations" />
<Action name="tools_change_dictionary" group="tools_operations" />
<Action name="tools_clear_dictionary_ranges" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_indent" group="tools_operations" />
<Action name="tools_unindent" group="tools_operations" />
<Action name="tools_cleanIndent" group="tools_operations" />
<Action name="tools_align" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_comment" group="tools_operations" />
<Action name="tools_uncomment" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_uppercase" group="tools_operations" />
<Action name="tools_lowercase" group="tools_operations" />
<Action name="tools_capitalize" group="tools_operations" />
<Separator group="tools_operations" />
<Action name="tools_join_lines" group="tools_operations" />
<Action name="tools_apply_wordwrap" group="tools_operations" />
</Menu>
<Menu name="settings" noMerge="1"><text>&amp;Settings</text>
<Action name="set_confdlg" group="configure_merge" />
</Menu>
</MenuBar>
<Menu name="ktexteditor_popup" noMerge="0">
<Action name="edit_cut" group="popup_operations" />
<Action name="edit_copy" group="popup_operations" />
<Action name="edit_paste" group="popup_operations" />
<Separator group="popup_operations" />
<Action name="edit_select_all" group="popup_operations" />
<Action name="edit_deselect" group="popup_operations" />
<Separator group="popup_operations" />
<Action name="spelling_suggestions" group="popup_operations" />
<Separator group="popup_operations" />
<Action name="bookmarks" group="popup_operations" />
<Separator group="popup_operations" />
</Menu>
<ToolBar name="mainToolBar" noMerge="1"><text>Main Toolbar</text>
<Action name="file_save" group="file_operations" />
<Action name="file_save_as" group="file_operations" />
<Action name="edit_undo" group="edit_operations" />
<Action name="edit_redo" group="edit_operations" />
</ToolBar>
</kpartgui>

View file

@ -0,0 +1,105 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.0
import org.kde.plasma.components 0.1
import org.kde.plasma.core 0.1 as PlasmaCore
import org.kdevelop.welcomepage 4.3
StandardPage
{
ToolBar {
id: toolBar
anchors {
top: parent.top
left: parent.left
right: parent.right
margins: 25
}
tools: Flow {
Link {
iconSource: "project-development-new-template"
text: i18n("New Project")
onClicked: kdev.retrieveMenuAction("project/project_new").trigger()
}
Link {
iconSource: "project-development-open"
text: i18n("Open project")
onClicked: ICore.projectController().openProject()
}
Link {
iconSource: "download"
text: i18n("Fetch project")
onClicked: kdev.retrieveMenuAction("project/project_fetch").trigger()
}
Link {
iconSource: "document-open-recent"
text: i18n("Recent Projects")
onClicked: kdev.showMenu("project/project_open_recent")
}
}
}
ListView {
id: sessionsView
clip: true
boundsBehavior: Flickable.StopAtBounds
anchors {
left: parent.left
top: toolBar.bottom
bottom: parent.bottom
right: parent.right
bottomMargin: 30
leftMargin: 30
rightMargin: 30
}
delegate: ListItem {
width: sessionsView.width
height: visible ? 30 : 0
visible: projects.length>0
onClicked: sessions.loadSession(uuid)
enabled: true
Label {
width: parent.width
text: (display=="" ?
projectNames.join(", ").replace(/.kdev4/g, "")
:
i18n("%1: %2", display, projectNames.join(", ").replace(/.kdev4/g, "")))
elide: Text.ElideRight
}
}
model: PlasmaCore.SortFilterModel {
sourceModel: SessionsModel { id: sessions }
sortRole: "identifier"
sortOrder: Qt.AscendingOrder
}
header: Heading {
text: i18n("Sessions")
height: implicitHeight*2
}
}
}

View file

@ -0,0 +1,89 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.0
import QtWebKit 1.0
import org.kde.plasma.components 0.1
StandardPage {
Column {
id: options
anchors.top: parent.top
anchors.left: parent.left
anchors.margins: 30
spacing: 10
width: 200
Link { text: i18n("Official Website"); onClicked: info.state="kdevelop.org" }
Link { text: i18n("Userbase"); onClicked: info.state="userbase" }
Link { text: i18n("Techbase"); onClicked: info.state="techbase" }
Link { text: i18n("Handbook"); onClicked: kdev.retrieveMenuAction("help/help_contents").trigger() }
}
Column {
id: info
anchors {
top: parent.top
left: options.right
right: parent.right
margins: 30
}
spacing: 10
WebView {
id: webview
width: parent.width
height: 200
MouseArea { anchors.fill: parent; hoverEnabled: true }
}
Label {
id: description
width: parent.width
}
Button {
text: i18n("Go!")
onClicked: Qt.openUrlExternally(webview.url)
}
states: [
State {
name: "userbase"
PropertyChanges { target: webview; url: "http://userbase.kde.org/KDevelop" }
PropertyChanges { target: description; text: i18n("Documentation for KDevelop users") }
},
State {
name: "kdevelop.org"
PropertyChanges { target: webview; url: "http://kdevelop.org" }
PropertyChanges { target: description; text: i18n("Keep up with KDevelop's development") }
},
State {
name: "techbase"
PropertyChanges { target: webview; url: "http://techbase.kde.org/KDevelop" }
PropertyChanges { target: description; text: i18n("Help us improve KDevelop") }
}
]
}
Component.onCompleted: info.state="kdevelop.org"
}

View file

@ -0,0 +1,25 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import org.kde.plasma.components 0.1
Label {
font.pointSize: theme.defaultFont.pointSize*1.5
}

View file

@ -0,0 +1,25 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.1
import org.kde.plasma.components 0.1
ToolButton {
}

View file

@ -0,0 +1,67 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.0
import org.kde.plasma.core 0.1 as PlasmaCore
import org.kde.qtextracomponents 0.1
Rectangle
{
property Component tools: null
property alias pageIcon: theIcon.icon
property real marginLeft: toolbar.x+toolbar.width
property real margins: 5
PlasmaCore.FrameSvgItem {
imagePath: "widgets/tooltip"
prefix: "base"
id: toolbar
anchors {
top: parent.top
left: parent.left
margins: parent.margins
}
width: toolsLoader.width + 2*toolsLoader.margins
height: toolsLoader.height + 2*toolsLoader.margins
Loader {
id: toolsLoader
property int margins: 20
anchors {
top: parent.top
left: parent.left
margins: toolsLoader.margins
}
sourceComponent: tools
}
}
QIconItem {
id: theIcon
anchors {
bottom: parent.bottom
left: parent.left
margins: 5
}
width: 64
height: width
}
}

View file

@ -0,0 +1,41 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.1
import org.kde.qtextracomponents 0.1
import org.kde.plasma.core 0.1 as PlasmaCore
PlasmaCore.FrameSvgItem {
imagePath: "widgets/tooltip"
prefix: "base"
clip: true
QIconItem {
anchors {
bottom: parent.bottom
right: parent.right
margins: 5
}
opacity: 0.3
width: 128
height: width
icon: "kdevelop"
}
}

View file

@ -0,0 +1,64 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.0
import org.kde.plasma.components 0.1
StandardBackground {
id: root
gradient: Gradient {
GradientStop { position: 0.0; color: "#61B056" }
GradientStop { position: 1.0; color: "#A3D69B" }
}
state: "develop"
tools: ButtonColumn {
spacing: 10
Link {
iconSource: "applications-development"
text: i18n("Develop")
onClicked: root.state = "develop"
}
Link {
iconSource: "help-contents"
text: i18n("Getting Started")
onClicked: root.state = "gettingstarted"
}
}
Loader {
id: codeContents
anchors {
fill: parent
leftMargin: root.marginLeft+root.margins
margins: root.margins
}
}
states: [
State { name: "gettingstarted"
PropertyChanges { target: codeContents; source: "qrc:/qml/GettingStarted.qml"}
},
State { name: "develop"
PropertyChanges { target: codeContents; source: "qrc:/qml/Develop.qml"}
}
]
}

View file

@ -0,0 +1,73 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.0
import org.kde.plasma.components 0.1
StandardBackground
{
id: root
gradient: Gradient {
GradientStop { position: 0.0; color: "#21257C" }
GradientStop { position: 1.0; color: "#62B6F1" }
}
tools: Link {
id: goCode
iconSource: "go-previous"
text: i18n("Back to code")
onClicked: kdev.setArea("code")
}
pageIcon: "tools-report-bug"
StandardPage {
id: startingPage
anchors {
fill: parent
leftMargin: root.marginLeft+root.margins
margins: root.margins
}
Column {
anchors.margins: 30
anchors.fill: parent
spacing: 30
ToolBar {
tools: Flow {
Link { iconSource: "configure"; text: i18n("Configure a new Launcher"); onClicked: kdev.retrieveMenuAction("run/configure_launches").trigger() }
Link { iconSource: "audio-input-line"; text: i18n("Attach to Process"); onClicked: kdev.retrieveMenuAction("run/debug_attach").trigger() }
Link { iconSource: "debug-run"; text: i18n("Debug your program"); onClicked: kdev.retrieveMenuAction("run/run_debug").trigger() }
}
}
Heading { text: i18n("Debug Area") }
Label {
width: parent.width
text: i18n("On the <em>Debug</em> area you will be able to see and analyze how your program works on execution. "+
"On the <em>Run</em> menu you will find all the possible options.<br/><br/>"+
"As you can see, here you can just execute your application or debug it if you need "+
"further runtime information. You can select what is going to be run by configuring "+
"the launches and selecting the one you want to use in the <em>Current Launch Configuration</em> sub-menu.")
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignJustify
}
}
}
}

View file

@ -0,0 +1,78 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.0
import org.kde.plasma.components 0.1
StandardBackground
{
id: root
gradient: Gradient {
GradientStop { position: 0.0; color: "#B85B5B" }
GradientStop { position: 1.0; color: "#EEBABA" }
}
tools: Link {
id: goCode
iconSource: "go-previous"
text: i18n("Back to code")
onClicked: kdev.setArea("code")
}
pageIcon: "applications-engineering"
StandardPage {
id: startingPage
anchors {
fill: parent
leftMargin: root.marginLeft+root.margins
margins: root.margins
}
Column {
anchors.margins: 30
anchors.fill: parent
spacing: 30
ToolBar {
tools: Flow {
Link {
iconSource: "kompare"
text: i18n("Review a Patch")
onClicked: {
kdev.raiseToolView("EditPatch")
}
}
}
}
Heading { text: i18n("Review Area") }
Label {
width: parent.width
text: i18n("On the <em>Review</em> area you will be able to find the tools you need "+
"to review changes in your projects, either the ones you made or some external patch.<br/> Also it will help you send "+
"the changes to the community you're contributing to, either by committing the changes, sending them by e-mail or "+
"putting them on a ReviewBoard service.")
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignJustify
}
}
}
}

View file

@ -0,0 +1,26 @@
/* KDevelop
*
* Copyright 2011 Aleix Pol <aleixpol@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
import QtQuick 1.0
Loader {
source: "qrc:/qml/area_"+area+".qml"
anchors.fill: parent
}

View file

@ -0,0 +1,86 @@
/* This file is part of KDevelop
Copyright 2010 Aleix Pol Gonzalez <aleixpol@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "sessionsmodel.h"
#include <shell/core.h>
SessionsModel::SessionsModel(QObject* parent)
: QAbstractListModel(parent)
, m_sessions(KDevelop::SessionController::availableSessionInfo())
{
QHash< int, QByteArray > roles = roleNames();
roles.insert(Uuid, "uuid");
roles.insert(Projects, "projects");
roles.insert(ProjectNames, "projectNames");
roles.insert(VisibleIdentifier, "identifier");
setRoleNames(roles);
connect(KDevelop::Core::self()->sessionController(), SIGNAL(sessionDeleted(QString)), SLOT(sessionDeleted(QString)));
}
QVariant SessionsModel::data(const QModelIndex& index, int role) const
{
if(!index.isValid() || index.row()>m_sessions.count()) {
return QVariant();
}
switch(role) {
case Qt::DisplayRole:
return m_sessions[index.row()].name;
case Qt::ToolTip:
return m_sessions[index.row()].description;
case Uuid:
return m_sessions[index.row()].uuid.toString();
case Projects:
return m_sessions[index.row()].projects;
case VisibleIdentifier: {
const KDevelop::SessionInfo& s = m_sessions[index.row()];
return s.name.isEmpty() && !s.projects.isEmpty() ? s.projects.first().fileName() : s.name;
}
case ProjectNames: {
QVariantList ret;
foreach(const KUrl& project, m_sessions[index.row()].projects) {
ret += project.fileName();
}
return ret;
}
}
return QVariant();
}
int SessionsModel::rowCount(const QModelIndex& parent) const
{
return parent.isValid() ? 0 : m_sessions.size();
}
void SessionsModel::loadSession(const QString& nameOrId) const
{
KDevelop::Core::self()->sessionController()->loadSession(nameOrId);
}
void SessionsModel::sessionDeleted(const QString& id)
{
for(int i=0; i<m_sessions.size(); i++) {
if(m_sessions[i].uuid.toString()==id) {
beginRemoveRows(QModelIndex(), i, i);
m_sessions.removeAt(i);
endRemoveRows();
break;
}
}
}

View file

@ -0,0 +1,41 @@
/* This file is part of KDevelop
Copyright 2010 Aleix Pol Gonzalez <aleixpol@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef SESSIONSMODEL_H
#define SESSIONSMODEL_H
#include <QModelIndex>
#include <shell/sessioncontroller.h>
class SessionsModel : public QAbstractListModel
{
Q_OBJECT
public:
enum Roles { Uuid = Qt::UserRole+1, Projects, ProjectNames, VisibleIdentifier };
explicit SessionsModel(QObject* parent = 0);
virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
Q_SCRIPTABLE void loadSession(const QString& nameOrId) const;
private:
QList<KDevelop::SessionInfo> m_sessions;
private slots:
void sessionDeleted(const QString& id);
};
#endif // SESSIONSMODEL_H

View file

@ -0,0 +1,86 @@
/* This file is part of KDevelop
Copyright 2010 Aleix Pol Gonzalez <aleixpol@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "uihelper.h"
#include <interfaces/icore.h>
#include <interfaces/iuicontroller.h>
#include <KParts/MainWindow>
#include <KActionCollection>
#include <interfaces/iprojectcontroller.h>
#include <QDebug>
#include <KMenuBar>
#include <qdesktopservices.h>
#include <sublime/area.h>
#include <sublime/view.h>
using namespace KDevelop;
UiHelper::UiHelper(QObject* parent): QObject(parent)
{}
QAction* findActionRec(const QStringList& path, const QList<QAction*>& actions)
{
QStringList newPath = path;
QString current = newPath.takeFirst();
foreach(QAction* a, actions) {
if(a->objectName() == current) {
if(newPath.isEmpty())
return a;
else if(a->menu())
return findActionRec(newPath, a->menu()->actions());
else
qDebug() << "shouldn't get here:" << path;
}
}
qWarning() << "error: action path not found: " << path;
return 0;
}
QAction* UiHelper::retrieveMenuAction(const QString& menuPath)
{
KMenuBar* m = ICore::self()->uiController()->activeMainWindow()->menuBar();
QAction* a=findActionRec(menuPath.split('/'), m->actions());
return a;
}
void UiHelper::setArea(const QString& name)
{
ICore::self()->uiController()->switchToArea(name, IUiController::ThisWindow);
}
void UiHelper::raiseToolView(const QString& id)
{
QList< Sublime::View* > views = ICore::self()->uiController()->activeArea()->toolViews();
foreach(Sublime::View* v, views) {
QWidget* w=v->widget();
if(w && id==w->objectName())
ICore::self()->uiController()->raiseToolView(w);
}
}
void UiHelper::showMenu(const QString& name)
{
QAction* action = retrieveMenuAction(name);
Q_ASSERT(action);
Q_ASSERT(action->menu());
action->menu()->popup(QCursor::pos());
}

View file

@ -0,0 +1,41 @@
/* This file is part of KDevelop
Copyright 2010 Aleix Pol Gonzalez <aleixpol@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef UIHELPER_H
#define UIHELPER_H
#include <QObject>
#include <QStringList>
class QUrl;
class QAction;
class UiHelper : public QObject
{
Q_OBJECT
public:
UiHelper(QObject* parent);
public slots:
QAction* retrieveMenuAction(const QString& name);
void showMenu(const QString& name);
void setArea(const QString& name);
void raiseToolView(const QString& id);
};
#endif // UIHELPER_H

View file

@ -0,0 +1,18 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<!-- components -->
<file>qml/Develop.qml</file>
<file>qml/GettingStarted.qml</file>
<file>qml/Link.qml</file>
<file>qml/StandardPage.qml</file>
<file>qml/Heading.qml</file>
<file>qml/StandardBackground.qml</file>
<!-- areas -->
<file>qml/area_code.qml</file>
<file>qml/area_debug.qml</file>
<file>qml/area_review.qml</file>
<file>qml/main.qml</file>
</qresource>
</RCC>

View file

@ -0,0 +1,96 @@
/* This file is part of KDevelop
Copyright 2011 Aleix Pol Gonzalez <aleixpol@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "welcomepageview.h"
#include "uihelper.h"
#include "sessionsmodel.h"
#include <QDeclarativeContext>
#include <QDeclarativeComponent>
#include <QDeclarativeError>
#include <QDebug>
#include <shell/core.h>
#include <shell/uicontroller.h>
#include <sublime/area.h>
#include <sublime/mainwindow.h>
#include <kdeclarative.h>
#include <KDebug>
#include <Plasma/Theme>
#include <qdeclarative.h>
using namespace KDevelop;
WelcomePageView::WelcomePageView(QWidget* parent)
: QDeclarativeView(parent)
{
qRegisterMetaType<QObject*>("KDevelop::IProjectController*");
qRegisterMetaType<QObject*>("KDevelop::IPluginController*");
qRegisterMetaType<QObject*>("PatchReviewPlugin*");
qmlRegisterType<SessionsModel>("org.kdevelop.welcomepage", 4, 3, "SessionsModel");
QPalette p = palette();
p.setColor(QPalette::Active, QPalette::Text, QColor(Qt::black));
setPalette(p);
//setup kdeclarative library
KDeclarative kdeclarative;
kdeclarative.setDeclarativeEngine(engine());
kdeclarative.initialize();
//binds things like kconfig and icons
kdeclarative.setupBindings();
setResizeMode(QDeclarativeView::SizeRootObjectToView);
UiHelper* helper = new UiHelper(this);
rootContext()->setContextProperty("kdev", helper);
rootContext()->setContextProperty("ICore", KDevelop::ICore::self());
areaChanged(ICore::self()->uiController()->activeArea());
setSource(QUrl("qrc:/qml/main.qml"));
if(!errors().isEmpty()) {
kWarning() << "welcomepage errors:" << errors();
}
areaChanged(Core::self()->uiControllerInternal()->activeSublimeWindow()->area());
connect(Core::self()->uiControllerInternal()->activeSublimeWindow(), SIGNAL(areaChanged(Sublime::Area*)),
this, SLOT(areaChanged(Sublime::Area*)));
}
void WelcomePageView::areaChanged(Sublime::Area* area)
{
rootContext()->setContextProperty("area", area->objectName());
}
void trySetupWelcomePageView()
{
WelcomePageView* v = new WelcomePageView;
// make sure plasma component is available
QDeclarativeComponent component(v->engine());
component.setData("import org.kde.plasma.components 0.1\nimport QtQuick 1.0\nText { text: \"Hello world!\" }", QUrl());
if (component.isError()) {
kWarning() << "Welcome Page not supported. errors: " << component.errors();
delete v;
} else {
Core::self()->uiControllerInternal()->activeSublimeWindow()->setBackgroundCentralWidget(v);
}
}

View file

@ -0,0 +1,41 @@
/* This file is part of KDevelop
Copyright 2011 Aleix Pol Gonzalez <aleixpol@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef WELCOMEPAGEVIEW_H
#define WELCOMEPAGEVIEW_H
#include <QDeclarativeView>
namespace Sublime
{
class Area;
}
class WelcomePageView : public QDeclarativeView
{
Q_OBJECT
public:
WelcomePageView(QWidget* parent = 0);
public slots:
void areaChanged(Sublime::Area* a);
};
void trySetupWelcomePageView();
#endif // WELCOMEPAGEVIEW_H

View file

@ -0,0 +1,8 @@
set(apptemplate_DIRS
cpp/CMake/cmake_qt4core
cpp/CMake/cmake_qt4gui
cpp/CMake/cmake_qt4core_qtest
cpp/CMake/cmake_plaincpp
)
kdevplatform_add_app_templates(${apptemplate_DIRS})

View file

@ -0,0 +1,4 @@
[Project]
Name=%{APPNAME}
Manager=KDevCMakeManager
VersionControl=%{VERSIONCONTROLPLUGIN}

View file

@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 2.6)
project(%{APPNAMELC})
add_executable(%{APPNAMELC} main.cpp)
install(TARGETS %{APPNAMELC} RUNTIME DESTINATION bin)

View file

@ -0,0 +1,74 @@
# KDE Config File
[General]
Name=CMake C++
Name[bs]=CMake C++
Name[ca]=CMake C++
Name[ca@valencia]=CMake C++
Name[cs]=CMake C++
Name[da]=CMake C++
Name[de]=CMake C++
Name[el]=CMake C++
Name[en_GB]=CMake C++
Name[es]=CMake C++
Name[et]=CMake C++
Name[fi]=CMake C++
Name[fr]=CMake C++
Name[ga]=CMake C++
Name[gl]=CMake C++
Name[hu]=CMake C++
Name[it]=CMake C++
Name[kk]=CMake C++
Name[nb]=CMake C++
Name[nds]=CMake C++
Name[nl]=CMake C++
Name[pl]=CMake C++
Name[pt]=C++ com CMake
Name[pt_BR]=CMake C++
Name[ru]=C++ (CMake)
Name[sk]=CMake C++
Name[sl]=CMake C++
Name[sv]=CMake C++
Name[tr]=CMake C++
Name[uk]=CMake C++
Name[x-test]=xxCMake C++xx
Name[zh_CN]=CMake C++
Name[zh_TW]=CMake C++
Comment=Simple CMake-based C++ application
Comment[bs]=Jednostavna na CMake bazirana C++ aplikacija
Comment[ca]=Senzilla aplicació C++ basada en CMake
Comment[ca@valencia]=Senzilla aplicació C++ basada en CMake
Comment[cs]=Jednoduchá aplikace C++ založená na CMake
Comment[da]=Simpel CMake-baseret C++-applikation
Comment[de]=Einfache auf CMake basierende C++-Anwendung
Comment[el]=Απλή εφαρμογή C++ με βάση το CMake
Comment[en_GB]=Simple CMake-based C++ application
Comment[es]=Aplicación C++ sencilla basada en CMake
Comment[et]=Lihtne CMake'i põhine C++ rakendus
Comment[fi]=Yksinkertainen CMake-perustainen C++-sovellus
Comment[fr]=Application C++ simple utilisant CMake
Comment[ga]=Feidhmchlár simplí C++ bunaithe ar CMake
Comment[gl]=Programa básico en C++ baseado en CMake
Comment[hu]=Egyszerű CMake alapú C++ alkalmazás
Comment[it]=Semplice applicazione in C++ basata su CMake
Comment[kk]=CMake негіздеген қарапайым C++ бағдарламасы
Comment[lt]=Paprasta CMake-paremta C++ programa
Comment[nb]=Enkelt C++-program basert på CMake
Comment[nds]=En eenfach op CMake-baseert "C++"-Programm
Comment[nl]=Eenvoudig op CMake gebaseerd C++ programma
Comment[pl]=Prosty program w C++ oparty na CMake
Comment[pt]=Aplicação simples em C++, baseada no CMake
Comment[pt_BR]=Simples Aplicativo C++ baseado no CMake
Comment[ru]=Простое приложение на С++ с CMake
Comment[sk]=Jednoduchá C++ aplikácia založená na CMake
Comment[sl]=Preprost program v C++, temelječ na CMake
Comment[sv]=Enkelt CMake-baserat C++ program
Comment[tr]=Basit CMake tabanlı C++ uygulaması
Comment[ug]=ئاددىي CMake ئاساسىدىكى C++ پروگراممىسى
Comment[uk]=Проста заснована на CMake програма C++
Comment[x-test]=xxSimple CMake-based C++ applicationxx
Comment[zh_CN]=基于 CMake 的简单 C++ 应用程序
Comment[zh_TW]=簡單的使用 CMake 的 C++ 應用程式
Category=Standard/Terminal
Icon=default-kdevelop
ShowFilesAfterGeneration=%{PROJECTDIR}/main.cpp
ValidProjectName=^[a-zA-Z_][a-zA-Z0-9_]+$

View file

@ -0,0 +1,6 @@
#include <iostream>
int main(int argc, char **argv) {
std::cout << "Hello, world!" << std::endl;
return 0;
}

View file

@ -0,0 +1,21 @@
#include "%{APPNAME}.h"
#include <QTimer>
#include <iostream>
%{APPNAMEID}::%{APPNAMEID}()
{
QTimer* timer = new QTimer(this);
connect( timer, SIGNAL(timeout()), SLOT(output()) );
timer->start( 1000 );
}
%{APPNAMEID}::~%{APPNAMEID}()
{}
void %{APPNAMEID}::output()
{
std::cout << "Hello World!" << std::endl;
}
#include "moc_%{APPNAME}.cpp"

View file

@ -0,0 +1,18 @@
#ifndef %{APPNAMEID}_H
#define %{APPNAMEID}_H
#include <QtCore/QObject>
class %{APPNAMEID} : public QObject
{
Q_OBJECT
public:
%{APPNAMEID}();
virtual ~%{APPNAMEID}();
private slots:
void output();
};
#endif // %{APPNAMEID}_H

View file

@ -0,0 +1,4 @@
[Project]
Name=%{APPNAME}
Manager=KDevCMakeManager
VersionControl=%{VERSIONCONTROLPLUGIN}

View file

@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 2.6)
project(%{APPNAMELC})
find_package(Qt4 REQUIRED)
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(%{APPNAME}_SRCS %{APPNAME}.cpp main.cpp)
qt4_automoc(${%{APPNAME}_SRCS})
add_executable(%{APPNAMELC} ${%{APPNAME}_SRCS})
target_link_libraries(%{APPNAMELC} ${QT_QTCORE_LIBRARY})
install(TARGETS %{APPNAMELC} RUNTIME DESTINATION bin)

View file

@ -0,0 +1,71 @@
# KDE Config File
[General]
Name=CMake QtCore C++
Name[bs]=CMake QtCore C++
Name[ca]=CMake QtCore C++
Name[ca@valencia]=CMake QtCore C++
Name[cs]=CMake QtCore C++
Name[da]=CMake QtCore C++
Name[de]=CMake QtCore C++
Name[el]=CMake QtCore C++
Name[en_GB]=CMake QtCore C++
Name[es]=CMake QtCore C++
Name[et]=CMake QtCore C++
Name[fi]=CMake QtCore C++
Name[fr]=CMake QtCore C++
Name[ga]=CMake QtCore C++
Name[gl]=CMake QtCore C++
Name[hu]=CMake QtCore C++
Name[it]=CMake QtCore C++
Name[kk]=CMake QtCore C++
Name[nb]=CMake QtCore C++
Name[nds]=CMake QtCore C++
Name[nl]=CMake QtCore C++
Name[pl]=CMake QtCore C++
Name[pt]=QtCore em C++ com CMake
Name[pt_BR]=CMake QtCore C++
Name[ru]=C++ (CMake, QtCore)
Name[sk]=CMake QtCore C++
Name[sl]=CMake QtCore C++
Name[sv]=CMake QtCore C++
Name[tr]=CMake QtCore C++
Name[uk]=CMake QtCore C++
Name[x-test]=xxCMake QtCore C++xx
Name[zh_CN]=CMake QtCore C++
Name[zh_TW]=CMake QtCore C++
Comment=Qt4 CMake Core application. Generate a CMake/Qt4 based application (crossplatform compatible)
Comment[bs]=Qt4 CMake osnovna aplikacija. Generiše CMake/Qt4 baziranu aplikaciju (kompatibilna s više platformi)
Comment[ca]=Aplicació de nucli CMake Qt4. Genera una aplicació basada en CMake/Qt4 (multi plataforma)
Comment[ca@valencia]=Aplicació de nucli CMake Qt4. Genera una aplicació basada en CMake/Qt4 (multi plataforma)
Comment[cs]=Aplikace Qt4 CMake Core. Generuje aplikaci typu CMake/Qt4 (multiplatformní)
Comment[da]=Qt4 CMake Core-program. Genererer et CMake-/Qt4-baseret program (krydsplatform kompatibelt)
Comment[de]=Qt4/CMake-Core-Anwendung. Eine auf CMake und Qt4 basierende Anwendung (plattformunabhängig) erstellen.
Comment[el]=Qt4 CMake Core εφαρμογή. Δημιουργία μιας εφαρμογής με βάση τα CMake/Qt4 (συμβατή με πολλαπλές πλατφόρμες)
Comment[en_GB]=Qt4 CMake Core application. Generate a CMake/Qt4 based application (crossplatform compatible)
Comment[es]=Aplicación Qt4 CMake Core. Genera una aplicación basada en CMake/Qt4 (compatible multiplataforma)
Comment[et]=Qt4 CMake Core rakendus. Rakenduse loomine CMake/Qt4 põhjal (mitmeplatvormne)
Comment[fi]=Qt 4 CMake Core -sovellus. Generoi CMake/Qt4-perustainen sovellus (toimii useissa käyttöjärjestelmissä)
Comment[fr]=Application principale CMake pour Qt4. Génère une application utilisant QMake / Qt4 (compatible multi-plate-forme)
Comment[ga]=Feidhmchlár bunúsach CMake Qt4. Cruthaigh feidhmchlár bunaithe ar CMake/Qt4 (feidhmchlár trasardáin)
Comment[gl]=Programa principal con CMake para Qt4. Xera un programa baseado en QMake/Qt4 (compatíbel con multiplataforma)
Comment[hu]=Qt4 CMake mag alkalmazás. Előállít egy CMake/Qt4 alapú alkalmazást (keresztplatform kompatibilis)
Comment[it]=Applicazione base CMake in Qt4. Genera un'applicazione basata su CMake/Qt4 (multipiattaforma)
Comment[kk]=Qt4 CMake Core бағдарламасы. CMake/Qt4 негіздеген бағдарламаны жасап береді (кроссплатформалық үлесімді)
Comment[nb]=Qt4 CMake kjerneprogram. Lag et program basert på CMake/Qt4 (kryssplattform-kompatibelt)
Comment[nds]=Qt4-CMake-Karnprogramm. Stellt en op CMake un Qt4 opbuut Programm op (över Bedriefümgeven weg kompatibel)
Comment[nl]=Kerntoepassing van Qt4 CMake. Genereert een op CMake/Qt4 gebaseerd programma (crossplatform compatibel)
Comment[pl]=Program jądra Qt4 CMake. Generuj programy oparte o CMake/Qt4 (kompatybilne na wielu platformach)
Comment[pt]=Gera uma aplicação baseada no CMake/Qt4 Core (compatível com várias plataformas)
Comment[pt_BR]=Aplicativo principal com CMake para Qt4. Gera um aplicativo em CMake/Qt4 (compatível com várias plataformas)
Comment[ru]=Основа приложения для Qt4 и CMake. Создаёт кроссплатформенное приложение на базе CMake/Qt4.
Comment[sk]=Ústredná aplikácia Qt4 CMake. Generuje aplikáciu založenú na CMake/Qt4 (cross-platformovo kompatibilné)
Comment[sl]=Jedrni program Qt4 CMake. Ustvari program temelječ na CMake/Qt4 (združljiv z več okolji)
Comment[sv]=Qt4 CMake-kärnprogram. Skapa ett CMake/Qt4-baserat program (som fungerar på flera plattformar)
Comment[tr]=Qt4 CMake Çekirdek uygulaması. CMake/Qt4 tabanlı uygulama oluştur (çapraz platform uyumlu)
Comment[uk]=Основна програма Qt4 з системою збирання CMake. Створити програму, засновану на CMake/Qt4 (сумісну з декількома платформами)
Comment[x-test]=xxQt4 CMake Core application. Generate a CMake/Qt4 based application (crossplatform compatible)xx
Comment[zh_CN]=生成基于 CMake/Qt4 的应用程序(跨平台兼容)
Comment[zh_TW]=Qt4 CMake Core 應用程式。產生一個 CMake/Qt4 為基礎的使用者介面應用程式(跨平台相容)
ShowFilesAfterGeneration=%{PROJECTDIR}/src/%{APPNAMELC}.cpp
Category=Qt/Terminal
ValidProjectName=^[a-zA-Z_][a-zA-Z0-9_]+$

View file

@ -0,0 +1,10 @@
#include <QCoreApplication>
#include "%{APPNAME}.h"
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
%{APPNAMEID} %{APPNAMELC};
return app.exec();
}

View file

@ -0,0 +1,9 @@
#include "%{APPNAME}.h"
%{APPNAMEID}::%{APPNAMEID}()
{}
%{APPNAMEID}::~%{APPNAMEID}()
{}
#include "moc_%{APPNAME}.cpp"

View file

@ -0,0 +1,15 @@
#ifndef %{APPNAMEID}_H
#define %{APPNAMEID}_H
#include <QtCore/QObject>
class %{APPNAMEID} : public QObject
{
Q_OBJECT
public:
%{APPNAMEID}();
virtual ~%{APPNAMEID}();
};
#endif // %{APPNAMEID}_H

View file

@ -0,0 +1,4 @@
[Project]
Name=%{APPNAME}
Manager=KDevCMakeManager
VersionControl=%{VERSIONCONTROLPLUGIN}

View file

@ -0,0 +1,17 @@
cmake_minimum_required(VERSION 2.6)
project(%{APPNAMELC})
find_package(Qt4 REQUIRED)
enable_testing()
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(%{APPNAME}_SRCS %{APPNAME}.cpp main.cpp)
qt4_automoc(${%{APPNAME}_SRCS})
add_executable(%{APPNAMELC} ${%{APPNAME}_SRCS})
target_link_libraries(%{APPNAMELC} ${QT_QTCORE_LIBRARY})
add_subdirectory(tests)
install(TARGETS %{APPNAMELC} RUNTIME DESTINATION bin)

View file

@ -0,0 +1,68 @@
# KDE Config File
[General]
Name=CMake QtTest
Name[bs]=CMake QtTest
Name[ca]=CMake QtTest
Name[ca@valencia]=CMake QtTest
Name[cs]=CMake QtTest
Name[da]=CMake QtTest
Name[de]=CMake QtTest
Name[el]=CMake QtTest
Name[en_GB]=CMake QtTest
Name[es]=CMake QtTest
Name[et]=CMake QtTest
Name[fi]=CMake QtTest
Name[fr]=CMake QtTest
Name[gl]=CMake QtTest
Name[hu]=CMake QtTest
Name[it]=CMake QtTest
Name[kk]=CMake QtTest
Name[nb]=CMake QtTest
Name[nds]=CMake QtTest
Name[nl]=CMake QtTest
Name[pl]=CMake QtTest
Name[pt]=QtTest com CMake
Name[pt_BR]=CMake QtTest
Name[ru]=QtTest (CMake)
Name[sk]=CMake QtTest
Name[sl]=CMake QtTest
Name[sv]=CMake QtTest
Name[tr]=CMake QtTest
Name[uk]=CMake QtTest
Name[x-test]=xxCMake QtTestxx
Name[zh_CN]=CMake QtTest
Name[zh_TW]=CMake QtTest
Comment=Qt4 CMake QTest Core application. Generate a CMake/Qt4 based application (cross-platform)
Comment[bs]=Qt4 CMake QTest osnovna aplikacija. Generiše CMake/Qt4 baziranu aplikaciju (radi s više platformi)
Comment[ca]=Aplicació de nucli QTest CMake Qt4. Genera una aplicació basada en CMake/Qt4 (multi plataforma)
Comment[ca@valencia]=Aplicació de nucli QTest CMake Qt4. Genera una aplicació basada en CMake/Qt4 (multi plataforma)
Comment[da]=Qt4 CMake QTest Core-program. Genererer et CMake-/Qt4-baseret program (krydsplatform)
Comment[de]=Qt4/CMake/QTest-Core-Anwendung. Eine auf CMake und Qt4 basierende Anwendung (plattformunabhängig) erstellen.
Comment[el]=Qt4 CMake QTest Core εφαρμογή. Δημιουργία μιας εφαρμογής με βάση τα CMake/Qt4 (συμβατή με πολλαπλές πλατφόρμες)
Comment[en_GB]=Qt4 CMake QTest Core application. Generate a CMake/Qt4 based application (cross-platform)
Comment[es]=Aplicación Qt4 CMake QTest Core. Genera una aplicación basada en CMake/Qt4 (compatible multiplataforma)
Comment[et]=Qt4 CMake QTest Core rakendus. Rakenduse loomine CMake/Qt4 põhjal (mitmeplatvormne)
Comment[fi]=Qt4 CMake QTest Core -sovellus. Generoi CMake/Qt4-perustainen sovellus (eri käyttöjärjestelmissä yhteensopiva)
Comment[fr]=Application principale QTest CMake pour Qt4. Génère une application utilisant CMake / Qt4 (compatible multi-plate-forme)
Comment[gl]=Programa principal QTest con CMake para Qt4. Xera un programa baseado en QMake/Qt4 (compatíbel con multiplataforma)
Comment[hu]=Qt4 CMake QTest mag alkalmazás. Előállít egy CMake/Qt4 alapú alkalmazást (keresztplatform)
Comment[it]=Applicazione base QTest CMake in Qt4. Genera un'applicazione basata su CMake/Qt4 (multipiattaforma)
Comment[kk]=Qt4 CMake QTest Core бағдарламасы. CMake/Qt4 негіздеген бағдарламаны жасап береді (кроссплатформалық)
Comment[nb]=Qt4 CMake QTest kjerneprogram. Lag et program basert på CMake/Qt4 (kryssplattform-kompatibelt)
Comment[nds]=Qt4-CMake-QTest-Karnprogramm. Stellt en op CMake un Qt4 opbuut Programm op (över Bedriefümgeven weg kompatibel)
Comment[nl]=Kerntoepassing van Qt4 CMake QTest. Genereert een op CMake/Qt4-gebaseerd programma (crossplatform compatibel)
Comment[pl]=Program jądra Qt4 CMake QTest. Generuj programy oparte o CMake/Qt4 (kompatybilne na wielu platformach)
Comment[pt]=Gera uma aplicação baseada no CMake/Qt4 Core com QTest (compatível com várias plataformas)
Comment[pt_BR]=Aplicativo principal QTest com CMake para Qt4. Gera um aplicativo em CMake/Qt4 (compatível com várias plataformas)
Comment[ru]=Основа приложения c QTest для Qt4 и CMake. Создаёт кроссплатформенное приложение на базе CMake/Qt4.
Comment[sk]=Ústredná aplikácia Qt4 CMake QTest. Generuje aplikáciu založenú na CMake/Qt4 (cross-platformové)
Comment[sl]=Jedrni program Qt4 CMake QTest. Ustvari program temelječ na CMake/Qt4 (združljiv z več okolji)
Comment[sv]=Qt4 CMake QTest-kärnprogram. Skapa ett CMake/Qt4-baserat program (som fungerar på flera plattformar)
Comment[tr]=Qt4 CMake QTest Çekirdek uygulaması. CMake/Qt4 tabanlı uygulama oluştur (çapraz platform uyumlu)
Comment[uk]=Створити програму QTest, засновану на CMake/Qt4 (сумісну з декількома платформами)
Comment[x-test]=xxQt4 CMake QTest Core application. Generate a CMake/Qt4 based application (cross-platform)xx
Comment[zh_CN]=生成基于 CMake/Qt4 的应用程序(跨平台)
Comment[zh_TW]=Qt4 CMake QTest Core 應用程式。產生一個 CMake/Qt4 為基礎的使用者介面應用程式(跨平台相容)
ShowFilesAfterGeneration=%{PROJECTDIR}/src/%{APPNAMELC}.cpp
Category=Qt/Test
ValidProjectName=^[a-zA-Z_][a-zA-Z0-9_]+$

View file

@ -0,0 +1,10 @@
#include <QCoreApplication>
#include "%{APPNAME}.h"
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
%{APPNAMEID} %{APPNAMELC};
return app.exec();
}

View file

@ -0,0 +1,22 @@
#include "%{APPNAME}Test.h"
void %{APPNAMEID}Test::initTestCase()
{}
void %{APPNAMEID}Test::init()
{}
void %{APPNAMEID}Test::cleanup()
{}
void %{APPNAMEID}Test::cleanupTestCase()
{}
void %{APPNAMEID}Test::someTest()
{
QCOMPARE(1,2);
}
QTEST_MAIN(%{APPNAMEID}Test)
#include "moc_%{APPNAME}Test.cpp"

View file

@ -0,0 +1,19 @@
#ifndef %{APPNAMEID}TEST_H
#define %{APPNAMEID}TEST_H
#include <QtCore/QObject>
#include <QtTest/QTest>
class %{APPNAMEID}Test : public QObject
{
Q_OBJECT
private slots:
void initTestCase();
void init();
void cleanup();
void cleanupTestCase();
void someTest();
};
#endif // %{APPNAMEID}TEST_H

View file

@ -0,0 +1,9 @@
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(CMAKE_EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
set(%{APPNAME}Test_SRCS %{APPNAME}Test.cpp)
qt4_automoc(${%{APPNAME}Test_SRCS})
add_executable(%{APPNAME}Test ${%{APPNAME}Test_SRCS})
add_test(%{APPNAME}Test %{APPNAME}Test)
target_link_libraries(%{APPNAME}Test ${QT_QTCORE_LIBRARY} ${QT_QTTEST_LIBRARY})

View file

@ -0,0 +1,22 @@
#include "%{APPNAME}.h"
#include <QtGui/QLabel>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QAction>
%{APPNAMEID}::%{APPNAMEID}()
{
QLabel* label = new QLabel( this );
label->setText( "Hello World!" );
setCentralWidget( label );
QAction* action = new QAction(this);
action->setText( "Quit" );
connect(action, SIGNAL(triggered()), SLOT(close()) );
menuBar()->addMenu( "File" )->addAction( action );
}
%{APPNAMEID}::~%{APPNAMEID}()
{}
#include "moc_%{APPNAME}.cpp"

View file

@ -0,0 +1,15 @@
#ifndef %{APPNAMEID}_H
#define %{APPNAMEID}_H
#include <QtGui/QMainWindow>
class %{APPNAMEID} : public QMainWindow
{
Q_OBJECT
public:
%{APPNAMEID}();
virtual ~%{APPNAMEID}();
};
#endif // %{APPNAMEID}_H

View file

@ -0,0 +1,4 @@
[Project]
Name=%{APPNAME}
Manager=KDevCMakeManager
VersionControl=%{VERSIONCONTROLPLUGIN}

View file

@ -0,0 +1,13 @@
cmake_minimum_required(VERSION 2.6)
project(%{APPNAMELC})
find_package(Qt4 REQUIRED)
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(%{APPNAME}_SRCS %{APPNAME}.cpp main.cpp)
qt4_automoc(${%{APPNAME}_SRCS})
add_executable(%{APPNAMELC} ${%{APPNAME}_SRCS})
target_link_libraries(%{APPNAMELC} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})
install(TARGETS %{APPNAMELC} RUNTIME DESTINATION bin)

View file

@ -0,0 +1,70 @@
# KDE Config File
[General]
Name=CMake Qt-C++
Name[bs]=CMake Qt-C++
Name[ca]=CMake Qt-C++
Name[ca@valencia]=CMake Qt-C++
Name[cs]=CMake Qt-C++
Name[da]=CMake Qt-C++
Name[de]=CMake Qt-C++
Name[el]=CMake Qt-C++
Name[en_GB]=CMake Qt-C++
Name[es]=CMake Qt-C++
Name[et]=CMake Qt-C++
Name[fi]=CMake Qt-C++
Name[fr]=CMake Qt-C++
Name[ga]=CMake Qt-C++
Name[gl]=CMake Qt-C++
Name[hu]=CMake Qt-C++
Name[it]=CMake Qt-C++
Name[kk]=CMake Qt-C++
Name[nb]=CMake Qt-C++
Name[nds]=CMake Qt-C++
Name[nl]=CMake Qt-C++
Name[pl]=CMake Qt-C++
Name[pt]=Qt-C++ com QMake
Name[pt_BR]=CMake Qt-C++
Name[ru]=Qt-C++ (CMake)
Name[sk]=CMake Qt-C++
Name[sl]=CMake Qt-C++
Name[sv]=CMake Qt-C++
Name[tr]=CMake Qt-C++
Name[uk]=CMake Qt-C++
Name[x-test]=xxCMake Qt-C++xx
Name[zh_CN]=CMake Qt-C++
Name[zh_TW]=CMake Qt-C++
Comment=Qt4 CMake Gui application. Generate a CMake/Qt4 based GUI application (crossplatform compatible)
Comment[bs]=Qt4 CMake Gui application. osnovna aplikacija. Generiše CMake/Qt4 baziranu grafičku aplikaciju (kompatibilna s više platformi)
Comment[ca]=Aplicació IGU CMake Qt4. Genera una aplicació IGU basada en CMake/Qt4 (multi plataforma)
Comment[ca@valencia]=Aplicació IGU CMake Qt4. Genera una aplicació IGU basada en CMake/Qt4 (multi plataforma)
Comment[da]=Qt4 CMake GUI-program. Genererer et CMake-/Qt4-baseret GUI-program (krydsplatform kompatibelt)
Comment[de]=Qt4/CMake-GUI-Anwendung. Eine auf CMake und Qt4 basierende GUI-Anwendung (plattformunabhängig) erstellen.
Comment[el]=Qt4 CMake Gui εφαρμογή. Δημιουργία μιας CMake/Qt4 εφαρμογής με γραφικό περιβάλλον (συμβατή με πολλαπλές πλατφόρμες)
Comment[en_GB]=Qt4 CMake Gui application. Generate a CMake/Qt4 based GUI application (crossplatform compatible)
Comment[es]=Aplicación con interfaz gráfica Qt4 CMake. Genera una aplicación con interfaz gráfica basada en CMake/Qt4 (compatible multiplataforma)
Comment[et]=Qt4 CMake GUI rakendus. Rakenduse loomine CMake/Qt4 põhjal (mitmeplatvormne)
Comment[fi]=Qt4 CMake Gui -sovellus. Generoi CMake/Qt4-perustainen graafinen käyttöliittymäsovellus (toimii useissa käyttöjärjestelmissä)
Comment[fr]=Application avec interface graphique CMake pour Qt4. Génère une application avec interface graphique utilisant CMake / Qt4 (compatible multi-plate-forme)
Comment[ga]=Feidhmchlár grafach CMake Qt4. Cruthaigh feidhmchlár grafach bunaithe ar CMake/Qt4 (feidhmchlár trasardáin)
Comment[gl]=Programa gráfico con CMake para Qt4. Xera un programa con GUI baseado en CMake/Qt4 (compatíbel con multiplataforma)
Comment[hu]=Qt4 CMake grafikus felületű alkalmazás. Előállít egy CMake/Qt4 alapú grafikus felületű alkalmazást (keresztplatform kompatibilis)
Comment[it]=Applicazione GUI CMake in Qt4. Genera un'applicazione con GUI basata su CMake/Qt4 (multipiattaforma)
Comment[kk]=Qt4 CMake GUI бағдарламасы. CMake/Qt4 негіздеген графикалық интерфейсті бағдарламаны жасап береді (кроссплатформалық үлесімді)
Comment[nb]=Qt4 Cmake Gui-program. Lag et program med grafisk brukerflate basert på CMake/Qt4 (kryssplattform-kompatibelt)
Comment[nds]=Qt4-CMake-Böversietprogramm. En op CMake un Qt4 opbuut Böversiet-Programm opstellen (över Bedriefümgeven weg kompatibel)
Comment[nl]=Gui-toepassing van Qt4 CMake. Genereert een op CMake/Qt4 gebaseerd GUI-programma (crossplatform compatibel)
Comment[pl]=Program Qt4 CMake Gui. Generuj programy oparte o CMake/Qt4 (kompatybilne na wielu platformach)
Comment[pt]=Aplicação gráfica do Qt4 com CMake. Gera uma aplicação gráfica baseada no CMake/Qt4 (compatível com várias plataformas)
Comment[pt_BR]=Aplicativo gráfico com CMake para Qt4. Gera um aplicativo de interface em CMake/Qt4 (compatível com várias plataformas)
Comment[ru]=Графическое приложение для Qt4 и CMake. Создаёт графическое кроссплатформенное приложение на базе CMake/Qt4.
Comment[sk]=Ústredná aplikácia Qt4 CMake Gui. Generuje GUI aplikáciu založenú na CMake/Qt4 (cross-platformovo kompatibilné)
Comment[sl]=Program z uporabniškim vmesnikom Qt4 CMake. Ustvari program temelječ na CMake/Qt4 (združljiv z več okolji)
Comment[sv]=Qt4 CMake-program med grafiskt användargränssnitt. Skapa ett CMake/Qt4-baserat program med grafiskt användargränssnitt (som fungerar på flera plattformar)
Comment[tr]=Qt4 CMake Gui uygulaması. CMake/Qt4 tabanlı GUI uygulaması oluştur (çapraz platform uyumlu)
Comment[uk]=Програма Qt4 з графічним інтерфейсом і системою збирання CMake. Створити графічну програму, засновану на CMake/Qt4 (сумісну з декількома платформами)
Comment[x-test]=xxQt4 CMake Gui application. Generate a CMake/Qt4 based GUI application (crossplatform compatible)xx
Comment[zh_CN]=生成基于 CMake/Qt4 的图形应用程序(跨平台兼容)
Comment[zh_TW]=Qt4 CMake 使用者介面應用程式。產生一個 CMake/Qt4 為基礎的使用者介面應用程式(跨平台相容)
ShowFilesAfterGeneration=%{PROJECTDIR}/src/%{APPNAMELC}.cpp
Category=Qt/Graphical
ValidProjectName=^[a-zA-Z_][a-zA-Z0-9_]+$

Some files were not shown because too many files have changed in this diff Show more