Merge lp:~indicator-applet-developers/indicator-network/install-qt-qml-use-cmake-extras into lp:indicator-network/15.10

Proposed by Pete Woods
Status: Merged
Approved by: Pete Woods
Approved revision: 513
Merged at revision: 489
Proposed branch: lp:~indicator-applet-developers/indicator-network/install-qt-qml-use-cmake-extras
Merge into: lp:indicator-network/15.10
Diff against target: 5451 lines (+4324/-452)
64 files modified
.bzrignore (+2/-1)
CMakeLists.txt (+18/-29)
cmake/EnableCoverageReport.cmake (+0/-153)
cmake/FindGMock.cmake (+0/-10)
cmake/FindLcov.cmake (+0/-29)
cmake/Findgcovr.cmake (+0/-31)
cmake/ParseArguments.cmake (+0/-52)
cmake/UseGSettings.cmake (+0/-42)
data/CMakeLists.txt (+15/-0)
data/connectivity-qt.map (+17/-0)
data/connectivity-qt.pc.in (+10/-0)
debian/connectivity-doc.install (+1/-0)
debian/control (+56/-0)
debian/libconnectivity-qt1-dev.install (+3/-0)
debian/libconnectivity-qt1.install (+1/-0)
debian/qml-module-ubuntu-connectivity.install (+1/-0)
doc/CMakeLists.txt (+11/-0)
doc/dbus/connectivity-api.txt (+26/-0)
doc/qt/CMakeLists.txt (+3/-0)
doc/qt/cpp/CMakeLists.txt (+27/-0)
doc/qt/cpp/css/base.css (+638/-0)
doc/qt/cpp/css/qtquick.css (+772/-0)
doc/qt/cpp/css/reset.css (+8/-0)
doc/qt/cpp/css/scratch.css (+61/-0)
doc/qt/cpp/examples/CMakeLists.txt (+7/-0)
doc/qt/cpp/examples/example_networking_status.cpp (+90/-0)
doc/qt/cpp/pages/mainpage.dox (+18/-0)
doc/qt/cpp/pages/networking-status.dox (+35/-0)
doc/qt/cpp/pages/using.dox (+26/-0)
doc/qt/cpp/ubuntu-appdev-site-footer.html (+53/-0)
doc/qt/cpp/ubuntu-appdev-site-header.html (+35/-0)
doc/qt/qml/CMakeLists.txt (+51/-0)
doc/qt/qml/connectivity-qml.qdocconf.in (+55/-0)
doc/qt/qml/css/base.css (+638/-0)
doc/qt/qml/css/qtquick.css (+772/-0)
doc/qt/qml/css/reset.css (+8/-0)
doc/qt/qml/css/scratch.css (+61/-0)
doc/qt/qml/examples/example_networking_status.qml (+65/-0)
doc/qt/qml/pages/mainpage.qdoc (+25/-0)
doc/qt/qml/qml-api/NetworkingStatus.qml (+86/-0)
po/CMakeLists.txt (+13/-33)
po/update-indicator-network-pot (+0/-27)
src/CMakeLists.txt (+0/-4)
src/connectivity-api/connectivity-qml/CMakeLists.txt (+33/-0)
src/connectivity-api/connectivity-qml/plugin.cpp (+51/-0)
src/connectivity-api/connectivity-qml/plugin.h (+33/-0)
src/connectivity-api/connectivity-qml/qmldir (+2/-0)
src/connectivity-api/connectivity-qt/CMakeLists.txt (+28/-0)
src/connectivity-api/connectivity-qt/connectivityqt/connectivity.cpp (+83/-7)
src/connectivity-api/connectivity-qt/connectivityqt/connectivity.h (+57/-9)
src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.cpp (+100/-0)
src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.h (+109/-0)
src/indicator/CMakeLists.txt (+0/-1)
src/indicator/connectivity-service/connectivity-service.cpp (+1/-0)
src/indicator/sim-unlock-dialog.cpp (+14/-0)
src/menumodel-cpp/CMakeLists.txt (+0/-1)
src/notify-cpp/CMakeLists.txt (+0/-1)
src/notify-cpp/notification.cpp (+10/-4)
src/notify-cpp/snapdecision/sim-unlock.cpp (+30/-13)
src/notify-cpp/snapdecision/sim-unlock.h (+2/-3)
src/url-dispatcher-cpp/CMakeLists.txt (+1/-1)
tests/CMakeLists.txt (+9/-0)
tests/integration/test-connectivity-api.cpp (+52/-0)
tests/unit/CMakeLists.txt (+1/-1)
To merge this branch: bzr merge lp:~indicator-applet-developers/indicator-network/install-qt-qml-use-cmake-extras
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Needs Fixing
Indicator Applet Developers Pending
Review via email: mp+257666@code.launchpad.net

Commit message

Take ownership of qt connectivity libraries from connectivity-api source package.
Use cmake-extras for docs, translations, etc.

Description of the change

Take ownership of qt connectivity libraries from connectivity-api source package.
Use cmake-extras for docs, translations, etc.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
502. By Pete Woods

Add QML properties from original connectivity API

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
503. By Pete Woods

Generate docs using cmake-extras macros

504. By Pete Woods

Fix doc build for Qt

505. By Pete Woods

Missing install file

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
506. By Pete Woods

Missing intltool dependency

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
507. By Pete Woods

Don't build potfile in all target, or we get double target dependency

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
508. By Pete Woods

Add braces

509. By Pete Woods

Handle recursion without an infinite loop

510. By Pete Woods

Don't throw exceptions on notification error

511. By Pete Woods

Clean up CMake for easier debug on device

512. By Pete Woods

Put sane filters in the symbol map

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
513. By Pete Woods

Add backwards-compatibility class

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2014-08-15 11:52:50 +0000
3+++ .bzrignore 2015-05-13 10:12:45 +0000
4@@ -7,4 +7,5 @@
5 /.settings
6 /build
7 /buildclang
8-
9+/po/Makefile.in.in
10+/po/POTFILES.in
11
12=== modified file 'CMakeLists.txt'
13--- CMakeLists.txt 2015-04-16 08:51:24 +0000
14+++ CMakeLists.txt 2015-05-13 10:12:45 +0000
15@@ -5,7 +5,6 @@
16
17 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
18
19-
20 if("${build_type_lower}" STREQUAL debug)
21 set(TRACE_DEFAULT TRUE)
22 else()
23@@ -13,6 +12,7 @@
24 endif()
25
26 option(trace_messages "Print debug trace messages." ${TRACE_DEFAULT})
27+option(REMOTE_BUILD "Remote build (skip docs, translations, tests)." FALSE)
28
29 if(${trace_messages})
30 add_definitions(-DINDICATOR_NETWORK_TRACE_MESSAGES)
31@@ -44,10 +44,15 @@
32 GLIB REQUIRED
33 glib-2.0>=${GLIB_REQUIRED_VERSION}
34 gio-2.0>=${GLIB_REQUIRED_VERSION}
35- url-dispatcher-1
36 )
37 include_directories(${GLIB_INCLUDE_DIRS})
38
39+pkg_check_modules(
40+ UNITY_API REQUIRED
41+ libunity-api
42+)
43+include_directories(${UNITY_API_INCLUDE_DIRS})
44+
45 set(OFONO_REQUIRED_VERSION 1.12)
46 pkg_check_modules(
47 OFONO REQUIRED
48@@ -55,7 +60,6 @@
49 )
50 include_directories(${OFONO_INCLUDE_DIRS})
51
52-
53 set(NOTIFY_REQUIRED_VERSION 0.7.5)
54 pkg_check_modules(
55 NOTIFY REQUIRED
56@@ -69,20 +73,11 @@
57 find_package(Qt5DBus COMPONENTS Qt5DBusMacros REQUIRED)
58 include_directories(${Qt5DBus_INCLUDE_DIRS})
59
60-find_package(Qt5Test REQUIRED)
61-include_directories(${Qt5Test_INCLUDE_DIRS})
62-
63 pkg_check_modules(NM REQUIRED NetworkManager REQUIRED)
64 include_directories(${NM_INCLUDE_DIRS})
65
66-pkg_check_modules(QTDBUSTEST REQUIRED libqtdbustest-1 REQUIRED)
67-include_directories(${QTDBUSTEST_INCLUDE_DIRS})
68-
69-pkg_check_modules(QTDBUSMOCK REQUIRED libqtdbusmock-1 REQUIRED)
70-include_directories(${QTDBUSMOCK_INCLUDE_DIRS})
71-
72-pkg_check_modules(GIO REQUIRED gio-2.0>=${GLIB_REQUIRED_VERSION})
73-include_directories(${GIO_INCLUDE_DIRS})
74+pkg_check_modules(URL_DISPATCHER REQUIRED url-dispatcher-1)
75+include_directories(${URL_DISPATCHER_INCLUDE_DIRS})
76
77 set(CMAKE_AUTOMOC ON)
78 set(CMAKE_INCLUDE_CURRENT_DIR ON)
79@@ -101,24 +96,13 @@
80 "config.h"
81 )
82
83-#####################################################################
84-# Enable code coverage calculation with gcov/gcovr/lcov
85-# Usage:
86-# * Switch build type to coverage (use ccmake or cmake-gui)
87-# * Invoke make, make test, make coverage
88-# * Find html report in subdir coveragereport
89-# * Find xml report feasible for jenkins in coverage.xml
90-#####################################################################
91-IF(build_type_lower MATCHES coverage)
92- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs" )
93- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage -fprofile-arcs" )
94- SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -ftest-coverage -fprofile-arcs" )
95- SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ftest-coverage -fprofile-arcs" )
96-ENDIF()
97-
98 add_subdirectory(data)
99 add_subdirectory(src)
100+
101+if(NOT REMOTE_BUILD)
102+
103 add_subdirectory(po)
104+add_subdirectory(doc)
105
106 enable_testing()
107 add_subdirectory(tests)
108@@ -135,7 +119,12 @@
109 notify_cpp
110 qdbus-stubs
111 url_dispatcher_cpp
112+ TESTS
113+ unit-tests
114+ integration-tests
115 FILTER
116 ${CMAKE_SOURCE_DIR}/tests/*
117 ${CMAKE_BINARY_DIR}/*
118 )
119+
120+endif()
121
122=== removed file 'cmake/EnableCoverageReport.cmake'
123--- cmake/EnableCoverageReport.cmake 2014-08-14 21:58:02 +0000
124+++ cmake/EnableCoverageReport.cmake 1970-01-01 00:00:00 +0000
125@@ -1,153 +0,0 @@
126-# - Creates a special coverage build type and target on GCC.
127-#
128-# Defines a function ENABLE_COVERAGE_REPORT which generates the coverage target
129-# for selected targets. Optional arguments to this function are used to filter
130-# unwanted results using globbing expressions. Moreover targets with tests for
131-# the source code can be specified to trigger regenerating the report if the
132-# test has changed
133-#
134-# ENABLE_COVERAGE_REPORT(TARGETS target... [FILTER filter...] [TESTS test targets...])
135-#
136-# To generate a coverage report first build the project with
137-# CMAKE_BUILD_TYPE=coverage, then call make test and afterwards make coverage.
138-#
139-# The coverage report is based on gcov. Depending on the availability of lcov
140-# a HTML report will be generated and/or an XML report of gcovr is found.
141-# The generated coverage target executes all found solutions. Special targets
142-# exist to create e.g. only the xml report: coverage-xml.
143-#
144-# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de>
145-#
146-# This program is free software; you can redistribute it
147-# and/or modify it under the terms of the GNU General
148-# Public License as published by the Free Software Foundation;
149-# either version 2, or (at your option)
150-# any later version.
151-#
152-# This program is distributed in the hope that it will be useful,
153-# but WITHOUT ANY WARRANTY; without even the implied warranty of
154-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
155-# GNU General Public License for more details.
156-#
157-
158-INCLUDE(ParseArguments)
159-
160-FIND_PACKAGE(Lcov)
161-FIND_PACKAGE(gcovr)
162-
163-FUNCTION(ENABLE_COVERAGE_REPORT)
164-
165- # argument parsing
166- PARSE_ARGUMENTS(ARG "FILTER;TARGETS;TESTS" "" ${ARGN})
167-
168- SET(COVERAGE_RAW_FILE "${CMAKE_BINARY_DIR}/coverage.raw.info")
169- SET(COVERAGE_FILTERED_FILE "${CMAKE_BINARY_DIR}/coverage.info")
170- SET(COVERAGE_REPORT_DIR "${CMAKE_BINARY_DIR}/coveragereport")
171- SET(COVERAGE_XML_FILE "${CMAKE_BINARY_DIR}/coverage.xml")
172- SET(COVERAGE_XML_COMMAND_FILE "${CMAKE_BINARY_DIR}/coverage-xml.cmake")
173-
174- # decide if there is any tool to create coverage data
175- SET(TOOL_FOUND FALSE)
176- IF(LCOV_FOUND OR GCOVR_FOUND)
177- SET(TOOL_FOUND TRUE)
178- ENDIF()
179- IF(NOT TOOL_FOUND)
180- MESSAGE(STATUS "Cannot enable coverage targets because neither lcov nor gcovr are found.")
181- ENDIF()
182-
183- STRING(TOLOWER "${CMAKE_BUILD_TYPE}" COVERAGE_BUILD_TYPE)
184- IF(CMAKE_COMPILER_IS_GNUCXX AND TOOL_FOUND AND "${COVERAGE_BUILD_TYPE}" MATCHES "coverage")
185-
186- MESSAGE(STATUS "Coverage support enabled for targets: ${ARG_TARGETS}")
187-
188- # create coverage build type
189- SET(CMAKE_CXX_FLAGS_COVERAGE ${CMAKE_CXX_FLAGS_DEBUG} PARENT_SCOPE)
190- SET(CMAKE_C_FLAGS_COVERAGE ${CMAKE_C_FLAGS_DEBUG} PARENT_SCOPE)
191- SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} coverage PARENT_SCOPE)
192-
193- # instrument targets
194- SET_TARGET_PROPERTIES(${ARG_TARGETS} PROPERTIES COMPILE_FLAGS --coverage
195- LINK_FLAGS --coverage)
196-
197- # html report
198- IF (LCOV_FOUND)
199-
200- MESSAGE(STATUS "Enabling HTML coverage report")
201-
202- # set up coverage target
203-
204- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_RAW_FILE}
205- COMMAND ${LCOV_EXECUTABLE} -c -d ${CMAKE_BINARY_DIR} -o ${COVERAGE_RAW_FILE}
206- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
207- COMMENT "Collecting coverage data"
208- DEPENDS ${ARG_TARGETS} ${ARG_TESTS}
209- VERBATIM)
210-
211- # filter unwanted stuff
212- LIST(LENGTH ARG_FILTER FILTER_LENGTH)
213- IF(${FILTER_LENGTH} GREATER 0)
214- SET(FILTER COMMAND ${LCOV_EXECUTABLE})
215- FOREACH(F ${ARG_FILTER})
216- SET(FILTER ${FILTER} -r ${COVERAGE_FILTERED_FILE} ${F})
217- ENDFOREACH()
218- SET(FILTER ${FILTER} -o ${COVERAGE_FILTERED_FILE})
219- ELSE()
220- SET(FILTER "")
221- ENDIF()
222-
223- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_FILTERED_FILE}
224- COMMAND ${LCOV_EXECUTABLE} -e ${COVERAGE_RAW_FILE} "${CMAKE_SOURCE_DIR}*" -o ${COVERAGE_FILTERED_FILE}
225- ${FILTER}
226- DEPENDS ${COVERAGE_RAW_FILE}
227- COMMENT "Filtering recorded coverage data for project-relevant entries"
228- VERBATIM)
229- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_REPORT_DIR}
230- COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_REPORT_DIR}
231- COMMAND ${GENHTML_EXECUTABLE} --legend --show-details -t "${PROJECT_NAME} test coverage" -o ${COVERAGE_REPORT_DIR} ${COVERAGE_FILTERED_FILE}
232- DEPENDS ${COVERAGE_FILTERED_FILE}
233- COMMENT "Generating HTML coverage report in ${COVERAGE_REPORT_DIR}"
234- VERBATIM)
235-
236- ADD_CUSTOM_TARGET(coverage-html
237- DEPENDS ${COVERAGE_REPORT_DIR})
238-
239- ENDIF()
240-
241- # xml coverage report
242- IF(GCOVR_FOUND)
243-
244- MESSAGE(STATUS "Enabling XML coverage report")
245-
246- # gcovr cannot write directly to a file so the execution needs to
247- # be wrapped in a cmake file that generates the file output
248- FILE(WRITE ${COVERAGE_XML_COMMAND_FILE}
249- "SET(ENV{LANG} en)\n")
250- FILE(APPEND ${COVERAGE_XML_COMMAND_FILE}
251- "EXECUTE_PROCESS(COMMAND \"${GCOVR_EXECUTABLE}\" --exclude=tests.* --exclude=obj-.* --exclude=cmake.* -x -r \"${CMAKE_SOURCE_DIR}\" OUTPUT_FILE \"${COVERAGE_XML_FILE}\" WORKING_DIRECTORY \"${CMAKE_BINARY_DIR}\")\n")
252-
253- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_XML_FILE}
254- COMMAND ${CMAKE_COMMAND} ARGS -P ${COVERAGE_XML_COMMAND_FILE}
255- COMMENT "Generating coverage XML report"
256- VERBATIM)
257-
258- ADD_CUSTOM_TARGET(coverage-xml
259- DEPENDS ${COVERAGE_XML_FILE})
260-
261- ENDIF()
262-
263- # provide a global coverage target executing both steps if available
264- SET(GLOBAL_DEPENDS "")
265- IF(LCOV_FOUND)
266- LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_REPORT_DIR})
267- ENDIF()
268- IF(GCOVR_FOUND)
269- LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_XML_FILE})
270- ENDIF()
271- IF(LCOV_FOUND OR GCOVR_FOUND)
272- ADD_CUSTOM_TARGET(coverage
273- DEPENDS ${GLOBAL_DEPENDS})
274- ENDIF()
275-
276- ENDIF()
277-
278-ENDFUNCTION()
279
280=== removed file 'cmake/FindGMock.cmake'
281--- cmake/FindGMock.cmake 2013-08-27 14:54:25 +0000
282+++ cmake/FindGMock.cmake 1970-01-01 00:00:00 +0000
283@@ -1,10 +0,0 @@
284-# Build with system gmock and embedded gtest
285-set (GMOCK_INCLUDE_DIRS "/usr/include/gmock/include" CACHE PATH "gmock source include directory")
286-set (GMOCK_SOURCE_DIR "/usr/src/gmock" CACHE PATH "gmock source directory")
287-set (GTEST_INCLUDE_DIRS "${GMOCK_SOURCE_DIR}/gtest/include" CACHE PATH "gtest source include directory")
288-
289-add_subdirectory(${GMOCK_SOURCE_DIR} "${CMAKE_CURRENT_BINARY_DIR}/gmock")
290-
291-set(GTEST_LIBRARIES gtest)
292-set(GTEST_MAIN_LIBRARIES gtest_main)
293-set(GMOCK_LIBRARIES gmock gmock_main)
294
295=== removed file 'cmake/FindLcov.cmake'
296--- cmake/FindLcov.cmake 2014-08-14 21:58:02 +0000
297+++ cmake/FindLcov.cmake 1970-01-01 00:00:00 +0000
298@@ -1,29 +0,0 @@
299-# - Find lcov
300-# Will define:
301-#
302-# LCOV_EXECUTABLE - the lcov binary
303-# GENHTML_EXECUTABLE - the genhtml executable
304-#
305-# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de>
306-#
307-# This program is free software; you can redistribute it
308-# and/or modify it under the terms of the GNU General
309-# Public License as published by the Free Software Foundation;
310-# either version 2, or (at your option)
311-# any later version.
312-#
313-# This program is distributed in the hope that it will be useful,
314-# but WITHOUT ANY WARRANTY; without even the implied warranty of
315-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
316-# GNU General Public License for more details.
317-#
318-
319-INCLUDE(FindPackageHandleStandardArgs)
320-
321-FIND_PROGRAM(LCOV_EXECUTABLE lcov)
322-FIND_PROGRAM(GENHTML_EXECUTABLE genhtml)
323-
324-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lcov DEFAULT_MSG LCOV_EXECUTABLE GENHTML_EXECUTABLE)
325-
326-# only visible in advanced view
327-MARK_AS_ADVANCED(LCOV_EXECUTABLE GENHTML_EXECUTABLE)
328
329=== removed file 'cmake/Findgcovr.cmake'
330--- cmake/Findgcovr.cmake 2014-08-14 21:58:02 +0000
331+++ cmake/Findgcovr.cmake 1970-01-01 00:00:00 +0000
332@@ -1,31 +0,0 @@
333-# - Find gcovr scrip
334-# Will define:
335-#
336-# GCOVR_EXECUTABLE - the gcovr script
337-#
338-# Uses:
339-#
340-# GCOVR_ROOT - root to search for the script
341-#
342-# Copyright (C) 2011 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot de>
343-#
344-# This program is free software; you can redistribute it
345-# and/or modify it under the terms of the GNU General
346-# Public License as published by the Free Software Foundation;
347-# either version 2, or (at your option)
348-# any later version.
349-#
350-# This program is distributed in the hope that it will be useful,
351-# but WITHOUT ANY WARRANTY; without even the implied warranty of
352-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
353-# GNU General Public License for more details.
354-#
355-
356-INCLUDE(FindPackageHandleStandardArgs)
357-
358-FIND_PROGRAM(GCOVR_EXECUTABLE gcovr HINTS ${GCOVR_ROOT} "${GCOVR_ROOT}/bin")
359-
360-FIND_PACKAGE_HANDLE_STANDARD_ARGS(gcovr DEFAULT_MSG GCOVR_EXECUTABLE)
361-
362-# only visible in advanced view
363-MARK_AS_ADVANCED(GCOVR_EXECUTABLE)
364
365=== removed file 'cmake/ParseArguments.cmake'
366--- cmake/ParseArguments.cmake 2014-08-14 21:58:02 +0000
367+++ cmake/ParseArguments.cmake 1970-01-01 00:00:00 +0000
368@@ -1,52 +0,0 @@
369-# Parse arguments passed to a function into several lists separated by
370-# upper-case identifiers and options that do not have an associated list e.g.:
371-#
372-# SET(arguments
373-# hello OPTION3 world
374-# LIST3 foo bar
375-# OPTION2
376-# LIST1 fuz baz
377-# )
378-# PARSE_ARGUMENTS(ARG "LIST1;LIST2;LIST3" "OPTION1;OPTION2;OPTION3" ${arguments})
379-#
380-# results in 7 distinct variables:
381-# * ARG_DEFAULT_ARGS: hello;world
382-# * ARG_LIST1: fuz;baz
383-# * ARG_LIST2:
384-# * ARG_LIST3: foo;bar
385-# * ARG_OPTION1: FALSE
386-# * ARG_OPTION2: TRUE
387-# * ARG_OPTION3: TRUE
388-#
389-# taken from http://www.cmake.org/Wiki/CMakeMacroParseArguments
390-
391-MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
392- SET(DEFAULT_ARGS)
393- FOREACH(arg_name ${arg_names})
394- SET(${prefix}_${arg_name})
395- ENDFOREACH(arg_name)
396- FOREACH(option ${option_names})
397- SET(${prefix}_${option} FALSE)
398- ENDFOREACH(option)
399-
400- SET(current_arg_name DEFAULT_ARGS)
401- SET(current_arg_list)
402- FOREACH(arg ${ARGN})
403- SET(larg_names ${arg_names})
404- LIST(FIND larg_names "${arg}" is_arg_name)
405- IF (is_arg_name GREATER -1)
406- SET(${prefix}_${current_arg_name} ${current_arg_list})
407- SET(current_arg_name ${arg})
408- SET(current_arg_list)
409- ELSE (is_arg_name GREATER -1)
410- SET(loption_names ${option_names})
411- LIST(FIND loption_names "${arg}" is_option)
412- IF (is_option GREATER -1)
413- SET(${prefix}_${arg} TRUE)
414- ELSE (is_option GREATER -1)
415- SET(current_arg_list ${current_arg_list} ${arg})
416- ENDIF (is_option GREATER -1)
417- ENDIF (is_arg_name GREATER -1)
418- ENDFOREACH(arg)
419- SET(${prefix}_${current_arg_name} ${current_arg_list})
420-ENDMACRO(PARSE_ARGUMENTS)
421
422=== removed file 'cmake/UseGSettings.cmake'
423--- cmake/UseGSettings.cmake 2013-09-16 04:18:50 +0000
424+++ cmake/UseGSettings.cmake 1970-01-01 00:00:00 +0000
425@@ -1,42 +0,0 @@
426-# GSettings.cmake, CMake macros written for Marlin, feel free to re-use them.
427-
428-option (GSETTINGS_LOCALINSTALL "Install GSettings Schemas locally instead of to the GLib prefix" OFF)
429-
430-option (GSETTINGS_COMPILE "Compile GSettings Schemas after installation" OFF)
431-
432-if(GSETTINGS_LOCALINSTALL)
433- message(STATUS "GSettings schemas will be installed locally.")
434-endif()
435-
436-if(GSETTINGS_COMPILE)
437- message(STATUS "GSettings shemas will be compiled.")
438-endif()
439-
440-macro(add_schema SCHEMA_NAME)
441-
442- set(PKG_CONFIG_EXECUTABLE pkg-config)
443- # Have an option to not install the schema into where GLib is
444- if (GSETTINGS_LOCALINSTALL)
445- SET (GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas/")
446- else (GSETTINGS_LOCALINSTALL)
447- execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} glib-2.0 --variable prefix OUTPUT_VARIABLE _glib_prefix OUTPUT_STRIP_TRAILING_WHITESPACE)
448- SET (GSETTINGS_DIR "${_glib_prefix}/share/glib-2.0/schemas/")
449- endif (GSETTINGS_LOCALINSTALL)
450-
451- # Run the validator and error if it fails
452- execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_comple_schemas OUTPUT_STRIP_TRAILING_WHITESPACE)
453- execute_process (COMMAND ${_glib_comple_schemas} --dry-run --schema-file=${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME} ERROR_VARIABLE _schemas_invalid OUTPUT_STRIP_TRAILING_WHITESPACE)
454-
455- if (_schemas_invalid)
456- message (SEND_ERROR "Schema validation error: ${_schemas_invalid}")
457- endif (_schemas_invalid)
458-
459- # Actually install and recomple schemas
460- message (STATUS "GSettings schemas will be installed into ${GSETTINGS_DIR}")
461- install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME} DESTINATION ${GSETTINGS_DIR} OPTIONAL)
462-
463- if (GSETTINGS_COMPILE)
464- install (CODE "message (STATUS \"Compiling GSettings schemas\")")
465- install (CODE "execute_process (COMMAND ${_glib_comple_schemas} ${GSETTINGS_DIR})")
466- endif ()
467-endmacro()
468
469=== modified file 'data/CMakeLists.txt'
470--- data/CMakeLists.txt 2015-04-15 15:04:51 +0000
471+++ data/CMakeLists.txt 2015-05-13 10:12:45 +0000
472@@ -41,6 +41,21 @@
473 add_schema ("com.canonical.indicator.network.gschema.xml")
474
475 ###########################
476+# PkgConfig
477+###########################
478+
479+configure_file(
480+ "connectivity-qt.pc.in"
481+ "connectivity-qt.pc"
482+ @ONLY
483+)
484+
485+install(
486+ FILES "${CMAKE_CURRENT_BINARY_DIR}/connectivity-qt.pc"
487+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
488+)
489+
490+###########################
491 # XDG Autostart File
492 ###########################
493
494
495=== added file 'data/connectivity-qt.map'
496--- data/connectivity-qt.map 1970-01-01 00:00:00 +0000
497+++ data/connectivity-qt.map 2015-05-13 10:12:45 +0000
498@@ -0,0 +1,17 @@
499+{
500+global:
501+ extern "C++" {
502+ typeinfo?for?connectivityqt::Connectivity;
503+ typeinfo?for?ubuntu::connectivity::NetworkingStatus;
504+ VTT?for?connectivityqt::Connectivity;
505+ VTT?for?ubuntu::connectivity::NetworkingStatus;
506+ virtual?thunk?to?connectivityqt::Connectivity;
507+ virtual?thunk?to?ubuntu::connectivity::NetworkingStatus;
508+ vtable?for?connectivityqt::Connectivity;
509+ vtable?for?ubuntu::connectivity::NetworkingStatus;
510+ connectivityqt::Connectivity::[!P]*;
511+ ubuntu::connectivity::NetworkingStatus::[!P]*;
512+ };
513+local:
514+ *;
515+};
516
517=== added file 'data/connectivity-qt.pc.in'
518--- data/connectivity-qt.pc.in 1970-01-01 00:00:00 +0000
519+++ data/connectivity-qt.pc.in 2015-05-13 10:12:45 +0000
520@@ -0,0 +1,10 @@
521+prefix=@CMAKE_INSTALL_PREFIX@
522+exec_prefix=${prefix}
523+libdir=${exec_prefix}/lib
524+includedir=${exec_prefix}/include
525+
526+Name: libconnectivity-qt
527+Description: Connectivity API for Qt
528+Version: 1.0
529+Cflags: -I${includedir}
530+Libs: -L${libdir} -lconnectivity-qt
531
532=== added file 'debian/connectivity-doc.install'
533--- debian/connectivity-doc.install 1970-01-01 00:00:00 +0000
534+++ debian/connectivity-doc.install 2015-05-13 10:12:45 +0000
535@@ -0,0 +1,1 @@
536+usr/share/doc/connectivity-api/*
537
538=== modified file 'debian/control'
539--- debian/control 2015-03-31 10:39:35 +0000
540+++ debian/control 2015-05-13 10:12:45 +0000
541@@ -4,11 +4,15 @@
542 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
543 XSBC-Original-Maintainer: Ken VanDine <ken.vandine@canonical.com>
544 Build-Depends: cmake,
545+ cmake-extras (>= 0.4),
546 dbus,
547 # make g++ version explicit for ABI safety, see https://wiki.ubuntu.com/cpp-11
548 g++-4.9,
549 debhelper (>= 9.0.0),
550+ doxygen,
551 google-mock (>= 1.6.0+svn437),
552+ graphviz,
553+ intltool,
554 libglib2.0-dev,
555 libnotify-dev,
556 #///! TODO: The next line should be removed once all dependancy on qmenumodel is removed
557@@ -27,6 +31,8 @@
558 qt5-default,
559 qtbase5-dev,
560 qtbase5-dev-tools,
561+ qtdeclarative5-dev,
562+ qtdeclarative5-dev-tools,
563 valgrind [amd64 armhf i386 powerpc],
564 Standards-Version: 3.9.3
565 # If you aren't a member of ~indicator-applet-developers but need to upload
566@@ -78,3 +84,53 @@
567 Description: tools for working with indicator-network
568 This package provides developer tools to aid in debugging
569 and development of indicator-network.
570+
571+Package: libconnectivity-qt1
572+Architecture: any
573+Pre-Depends: ${misc:Pre-Depends}
574+Multi-Arch: same
575+Depends: ${misc:Depends},
576+ ${shlibs:Depends},
577+ indicator-network (>= ${source:Version}),
578+Recommends:
579+ indicator-network (>= 0.5.1+14.10.20140819),
580+Description: Ubuntu Connectivity Qt API
581+ Ubuntu Connectivity API - Qt bindings
582+
583+Package: libconnectivity-qt1-dev
584+Section: libdevel
585+Architecture: any
586+Pre-Depends: ${misc:Pre-Depends}
587+Multi-Arch: same
588+Depends: ${misc:Depends},
589+ ${shlibs:Depends},
590+ libconnectivity-qt1 (= ${binary:Version}),
591+ qtbase5-dev
592+Suggests: connectivity-doc,
593+Description: Ubuntu Connectivity Qt API - development files
594+ Ubuntu Connectivity API - Qt bindings
595+ .
596+ This package contains development files to develop against the Qt library.
597+
598+Package: qml-module-ubuntu-connectivity
599+Architecture: any
600+Pre-Depends: ${misc:Pre-Depends}
601+Multi-Arch: same
602+Depends: ${misc:Depends},
603+ ${shlibs:Depends},
604+ libconnectivity-qt1 (= ${binary:Version}),
605+Description: Ubuntu Connectivity API QML Components
606+ Ubuntu Connectivity API - QML bindings
607+ .
608+ This package contains the qtdeclarative bindings for Ubuntu connectivity API.
609+
610+Package: connectivity-doc
611+Section: doc
612+Architecture: all
613+Depends: ${misc:Depends},
614+ ${shlibs:Depends},
615+Description: Unity Action API - documentation
616+ Ubuntu Connectivity API
617+ .
618+ This package contains developer documentation.
619+
620
621=== added file 'debian/libconnectivity-qt1-dev.install'
622--- debian/libconnectivity-qt1-dev.install 1970-01-01 00:00:00 +0000
623+++ debian/libconnectivity-qt1-dev.install 2015-05-13 10:12:45 +0000
624@@ -0,0 +1,3 @@
625+usr/lib/*/libconnectivity-qt1.so
626+usr/include/*
627+usr/lib/*/pkgconfig/*
628
629=== added file 'debian/libconnectivity-qt1.install'
630--- debian/libconnectivity-qt1.install 1970-01-01 00:00:00 +0000
631+++ debian/libconnectivity-qt1.install 2015-05-13 10:12:45 +0000
632@@ -0,0 +1,1 @@
633+usr/lib/*/libconnectivity-qt1.so.*
634
635=== added file 'debian/qml-module-ubuntu-connectivity.install'
636--- debian/qml-module-ubuntu-connectivity.install 1970-01-01 00:00:00 +0000
637+++ debian/qml-module-ubuntu-connectivity.install 2015-05-13 10:12:45 +0000
638@@ -0,0 +1,1 @@
639+usr/lib/*/qt5/qml
640
641=== added directory 'doc'
642=== added file 'doc/CMakeLists.txt'
643--- doc/CMakeLists.txt 1970-01-01 00:00:00 +0000
644+++ doc/CMakeLists.txt 2015-05-13 10:12:45 +0000
645@@ -0,0 +1,11 @@
646+set(INSTALL_DOCDIR ${CMAKE_INSTALL_DATAROOTDIR}/doc/connectivity-api)
647+
648+option(BUILD_DOC "Build documentation by default" TRUE)
649+option(PRIVATE_DOCS "Build private documentation" FALSE)
650+
651+add_subdirectory(qt)
652+
653+install(
654+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbus/
655+ DESTINATION ${INSTALL_DOCDIR}/dbus/
656+)
657
658=== added directory 'doc/dbus'
659=== added file 'doc/dbus/connectivity-api.txt'
660--- doc/dbus/connectivity-api.txt 1970-01-01 00:00:00 +0000
661+++ doc/dbus/connectivity-api.txt 2015-05-13 10:12:45 +0000
662@@ -0,0 +1,26 @@
663+Service com.ubuntu.connectivity1
664+Interface com.ubuntu.connectivity1.NetworkingStatus
665+Object path /com/ubuntu/connectivity1/NetworkingStatus
666+Policy group connectivity
667+Supports org.freedesktop.DBus.Introspectable
668+ org.freedesktop.DBus.Properties
669+
670+Properties array{string} Limitations [readonly]
671+
672+ String array representing the possible limitations
673+ on networking.
674+
675+ Currently available limitations are:
676+ "bandwith"
677+
678+ "bandwith" - indicates that the bandwith of the
679+ Internet connection has limitations.
680+ Applications should minimize their bandwith
681+ usage if possible.
682+
683+ string Status [readonly]
684+
685+ Status of the Internet connectivity.
686+
687+ Possible values:
688+ "offline", "connecting", "online"
689
690=== added directory 'doc/qt'
691=== added file 'doc/qt/CMakeLists.txt'
692--- doc/qt/CMakeLists.txt 1970-01-01 00:00:00 +0000
693+++ doc/qt/CMakeLists.txt 2015-05-13 10:12:45 +0000
694@@ -0,0 +1,3 @@
695+add_subdirectory(cpp)
696+add_subdirectory(qml)
697+
698
699=== added directory 'doc/qt/cpp'
700=== added file 'doc/qt/cpp/CMakeLists.txt'
701--- doc/qt/cpp/CMakeLists.txt 1970-01-01 00:00:00 +0000
702+++ doc/qt/cpp/CMakeLists.txt 2015-05-13 10:12:45 +0000
703@@ -0,0 +1,27 @@
704+
705+add_subdirectory(examples)
706+
707+include(UseDoxygen OPTIONAL)
708+
709+add_doxygen(
710+ qtdoc
711+ PROJECT_NAME
712+ "connectivity-api"
713+ INPUT
714+ "${CMAKE_SOURCE_DIR}/src/connectivity-api/connectivity-qt"
715+ "${CMAKE_CURRENT_SOURCE_DIR}/pages"
716+ STRIP_FROM_PATH
717+ "${CMAKE_SOURCE_DIR}/src/connectivity-api/connectivity-qt"
718+ STRIP_FROM_INC_PATH
719+ "${CMAKE_SOURCE_DIR}/src/connectivity-api/connectivity-qt"
720+ EXCLUDE_PATTERNS
721+ */internal/*
722+ EXCLUDE_SYMBOLS
723+ *::internal*
724+ *::Priv
725+ INSTALL
726+ "${INSTALL_DOCDIR}/cpp"
727+ XML
728+ ALL
729+)
730+
731
732=== added directory 'doc/qt/cpp/css'
733=== added file 'doc/qt/cpp/css/base.css'
734--- doc/qt/cpp/css/base.css 1970-01-01 00:00:00 +0000
735+++ doc/qt/cpp/css/base.css 2015-05-13 10:12:45 +0000
736@@ -0,0 +1,638 @@
737+/**
738+* Ubuntu Developer base stylesheet
739+*
740+* A base stylesheet containing site-wide styles
741+*
742+* @project Ubuntu Developer
743+* @version 1.0
744+* @author Canonical Web Team: Steve Edwards
745+* @copyright 2011 Canonical Ltd.
746+*/
747+
748+/**
749+* @section Global
750+*/
751+
752+body {
753+ font-family: 'Ubuntu', 'Ubuntu Beta', UbuntuBeta, Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif;
754+ font-size: 13px;
755+ line-height: 1.4;
756+ color: #333;
757+}
758+a {
759+ color: #dd4814;
760+ text-decoration: none;
761+ outline: 0;
762+}
763+p, dl {
764+ margin-bottom: 10px;
765+}
766+strong {
767+ font-weight: bold;
768+}
769+em {
770+ font-style: italic;
771+}
772+code{
773+ padding: 10px;
774+ font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'DejaVu Sans Mono', Courier, monospace;
775+ background-color: #fdf6f2;
776+ display: block;
777+ margin-bottom: 10px;
778+ -moz-border-radius: 4px;
779+ -webkit-border-radius: 4px;
780+ border-radius: 4px;
781+}
782+h1 {
783+ font-size: 36px;
784+ line-height: 1.1;
785+ margin-bottom: 20px;
786+}
787+article h1,
788+h2 {
789+ font-size: 24px;
790+ line-height: 1.2;
791+ margin-bottom: 14px;
792+}
793+h3 {
794+ font-size: 16px;
795+ line-height: 1.3;
796+ margin-bottom: 8px;
797+}
798+h4 {
799+ font-weight: bold;
800+}
801+
802+time {
803+ color:#999;
804+}
805+
806+/**
807+* @section Structure
808+*/
809+
810+.header-login,
811+.header-navigation div,
812+.header-content div {
813+ margin: 0 auto;
814+ width: 940px;
815+}
816+
817+.header-content h1{
818+ background-color:#ffffff;
819+ display:inline-block;
820+}
821+
822+.header-content h2{
823+ background-color:#ffffff;
824+ display:table;
825+}
826+
827+.header-login ul {
828+ margin: 4px 0;
829+ float: right;
830+}
831+.header-login li {
832+ margin-right: 10px;
833+ float: left;
834+}
835+.header-login a {
836+ color: #333;
837+}
838+.header-navigation {
839+ border-top: 2px solid #dd4814;
840+ border-bottom: 2px solid #dd4814;
841+ background-color: #fff;
842+ height: 54px;
843+ clear: right;
844+ overflow: hidden;
845+}
846+.header-navigation nav ul {
847+ border-right: 1px solid #dd4814;
848+ float: right;
849+}
850+.header-navigation nav li {
851+ border-left: 1px solid #dd4814;
852+ float: left;
853+ height: 54px;
854+}
855+.header-navigation nav a {
856+ padding: 18px 14px 0;
857+ font-size: 14px;
858+ display: block;
859+ height: 36px;
860+}
861+.header-navigation nav a:hover {
862+ background-color: #fcece7;
863+}
864+.header-navigation nav .current_page_item a,
865+.header-navigation nav .current_page_parent a,
866+.header-navigation nav .current_page_ancestor a {
867+ background-color: #dd4814;
868+ color: #fff;
869+}
870+.header-navigation input {
871+ margin: 12px 10px 0 10px;
872+ padding: 5px;
873+ border-top: 1px solid #a1a1a1;
874+ border-right: 1px solid #e0e0e0;
875+ border-bottom: 1px solid #fff;
876+ border-left: 1px solid #e0e0e0;
877+ width: 90px;
878+ font-style: italic;
879+ color: #ccc;
880+ -moz-border-radius: 3px;
881+ -webkit-border-radius: 3px;
882+ border-radius: 3px;
883+ -moz-box-shadow: inset 0 1px 1px #e0e0e0;
884+ -webkit-box-shadow: inset 0 1px 1px #e0e0e0;
885+ box-shadow: inset 0 1px 1px #e0e0e0;
886+}
887+.header-navigation h2 {
888+ margin: 18px 0 0 6px;
889+ text-transform: lowercase;
890+ font-size: 22px;
891+ color: #dd4814;
892+ float: left;
893+}
894+.header-navigation .logo-ubuntu {
895+ margin-top: 12px;
896+ float: left;
897+}
898+.header-content .header-navigation-secondary {
899+ margin-bottom: 40px;
900+ padding: 0;
901+ position: relative;
902+ z-index: 2;
903+}
904+.header-navigation-secondary div {
905+ padding: 0;
906+ border: 2px solid #dd4814;
907+ -moz-border-radius: 0px 0px 4px 4px;
908+ -webkit-border-radius: 0px 0px 4px 4px;
909+ border-radius: 0px 0px 4px 4px;
910+ background: #fff;
911+ border-top: 0px;
912+ width: 936px;
913+}
914+.header-navigation-secondary nav li {
915+ float: left;
916+}
917+.header-navigation-secondary nav li a {
918+ color: #333;
919+ display: block;
920+ height: 25px;
921+ padding: 8px 8px 0;
922+}
923+.header-navigation-secondary nav li:hover,
924+.header-navigation-secondary nav .current_page_item a {
925+ background: url("../img/sec-nav-hover.gif");
926+}
927+.header-content {
928+ padding-bottom: 30px;
929+ border-bottom: 1px solid #e0e0e0;
930+ -moz-box-shadow: 0 1px 3px #e0e0e0;
931+ -webkit-box-shadow: 0 1px 3px #e0e0e0;
932+ box-shadow: 0 1px 3px #e0e0e0;
933+ margin-bottom: 3px;
934+ position: relative;
935+ overflow: hidden;
936+}
937+footer {
938+ padding: 10px 10px 40px 10px;
939+ position: relative;
940+ -moz-border-radius: 0 0 4px 4px;
941+ -webkit-border-radius: 0 0 4px 4px;
942+ border-radius: 0 0 4px 4px;
943+ font-size: 12px;
944+ background: url("../img/background-footer.png") repeat scroll 0 0 #f7f6f5;
945+}
946+footer div {
947+ margin: 0 auto;
948+ padding: 0 10px;
949+ width: 940px;
950+}
951+footer a {
952+ color: #000;
953+}
954+footer nav ul {
955+ margin: 10px 17px 30px 0;
956+ width: 172px;
957+ display: inline-block;
958+ vertical-align: top;
959+ height: auto;
960+ zoom: 1;
961+ *display: inline;
962+}
963+footer nav ul.last {
964+ margin-right: 0;
965+}
966+footer nav li {
967+ margin-bottom: 8px;
968+}
969+footer nav li:first-child {
970+ font-weight: bold;
971+}
972+footer p {
973+ margin-bottom: 0;
974+}
975+#content {
976+ padding-top: 35px;
977+}
978+.arrow-nav {
979+ display: none;
980+ position: absolute;
981+ top: -1px;
982+ z-index: 3;
983+}
984+.shadow {
985+ margin: 30px 0 3px 0;
986+ border-bottom: 1px solid #e0e0e0;
987+ -moz-box-shadow: 0 2px 3px #e0e0e0;
988+ -webkit-box-shadow: 0 2px 3px #e0e0e0;
989+ box-shadow: 0 2px 3px #e0e0e0;
990+ height: 3px;
991+}
992+
993+/**
994+* @section Site-wide
995+*/
996+
997+#content h2{
998+ font-size:24px;
999+}
1000+
1001+.box-orange {
1002+ padding: 10px;
1003+ border: 3px solid #dd4814;
1004+ -moz-border-radius: 4px;
1005+ -webkit-border-radius: 4px;
1006+ border-radius: 4px;
1007+}
1008+.box-orange .link-action-small {
1009+ float: right;
1010+ margin: 0 0 0 20px;
1011+}
1012+.link-bug {
1013+ margin-left: 10px;
1014+ color: #999;
1015+}
1016+.link-action {
1017+ float: left;
1018+ margin-bottom: 20px;
1019+ padding: 8px 12px;
1020+ display: block;
1021+ background-color: #dd4814;
1022+ color: #fff;
1023+ -moz-border-radius: 20px;
1024+ -webkit-border-radius: 20px;
1025+ border-radius: 20px;
1026+ font-size: 16px;
1027+ line-height: 1.3;
1028+ border-top: 3px solid #e6633a;
1029+ border-bottom: 3px solid #c03d14;
1030+}
1031+.link-action2 {
1032+ float: left;
1033+ display: block;
1034+ color: #fff;
1035+ font-size: 16px;
1036+ line-height: 1.3;
1037+}
1038+.link-action2 span{
1039+ display:block;
1040+ float:left;
1041+}
1042+.link-action2 .cta-left{
1043+ background:url(../img/button-cta-left.png) no-repeat;
1044+ width:22px;
1045+ height:48px;
1046+}
1047+.link-action2 .cta-center{
1048+ background:url(../img/button-cta-slice.png) repeat-x;
1049+ line-height:45px;
1050+ height:48px;
1051+}
1052+.link-action2 .cta-right{
1053+ background:url(../img/button-cta-right.png) no-repeat;
1054+ width:22px;
1055+ height:48px;
1056+}
1057+
1058+.link-action-small {
1059+ float: left;
1060+ display: block;
1061+ color: #fff;
1062+ font-size: 16px;
1063+}
1064+.link-action-small span{
1065+ display:block;
1066+ float:left;
1067+ height:42px;
1068+}
1069+.link-action-small .cta-left{
1070+ background:url(../img/button-cta-left-small.png) no-repeat;
1071+ width:19px;
1072+}
1073+.link-action-small .cta-center{
1074+ background:url(../img/button-cta-slice-small.png) repeat-x;
1075+ line-height:42px;
1076+}
1077+.link-action-small .cta-right{
1078+ background:url(../img/button-cta-right-small.png) no-repeat;
1079+ width:19px;
1080+}
1081+
1082+.link-action:active {
1083+ position: relative;
1084+ top: 1px;
1085+}
1086+.link-action2:active {
1087+ position: relative;
1088+ top: 1px;
1089+}
1090+.link-action-small:active {
1091+ position: relative;
1092+ top: 1px;
1093+}
1094+.list-bullets li {
1095+ margin-bottom: 10px;
1096+ list-style: disc;
1097+ list-style-position: inside;
1098+}
1099+.box {
1100+ margin-bottom: 30px;
1101+ padding: 15px;
1102+ border: 1px solid #aea79f;
1103+ -moz-border-radius: 4px;
1104+ -webkit-border-radius: 4px;
1105+ border-radius: 4px;
1106+}
1107+.box-padded {
1108+ margin-bottom: 30px;
1109+ padding: 5px;
1110+ border: 2px solid #aea79f;
1111+ -moz-border-radius: 4px;
1112+ -webkit-border-radius: 4px;
1113+ border-radius: 4px;
1114+ background: url("../img/pattern-featured.gif") repeat scroll 0 0 #ebe9e7;
1115+ overflow: hidden;
1116+}
1117+.box-padded h3 {
1118+ margin: 5px 0 10px 5px;
1119+}
1120+.box-padded div {
1121+ padding: 10px;
1122+ border: 1px solid #aea79f;
1123+ -moz-border-radius: 4px;
1124+ -webkit-border-radius: 4px;
1125+ border-radius: 4px;
1126+ background-color: #fff;
1127+ overflow: hidden;
1128+}
1129+.box-padded li {
1130+ padding: 0 10px;
1131+ float: left;
1132+ width: 211px;
1133+ border-right: 1px dotted #aea79f;
1134+}
1135+.box-padded li.first {
1136+ padding: 0;
1137+ margin-bottom: 0;
1138+}
1139+.box-padded li.last {
1140+ border: 0;
1141+ width: 217px;
1142+}
1143+.box-padded img {
1144+ margin: 0 10px 50px 0;
1145+ float: left;
1146+ -moz-border-radius: 8px;
1147+ -webkit-border-radius: 8px;
1148+ border-radius: 8px;
1149+}
1150+.box-clear {
1151+ margin-bottom: 40px;
1152+}
1153+.box-clear .grid-4.first {
1154+ margin-right: 15px;
1155+ padding-right: 15px;
1156+}
1157+.box-clear .grid-4 {
1158+ margin-left: 0;
1159+ margin-right: 10px;
1160+ padding-right: 10px;
1161+ width: 298px;
1162+}
1163+.box-clear time {
1164+ display: block;
1165+ border-bottom: 1px dotted #aea79f;
1166+ padding-bottom: 10px;
1167+ margin-bottom: 10px;
1168+}
1169+.box-clear div.first {
1170+ border-right: 1px dotted #aea79f;
1171+}
1172+.box-clear a {
1173+ display: block;
1174+}
1175+.box-clear .rss {
1176+ background: url("../img/rss.jpg") no-repeat scroll 0 center;
1177+ padding-left: 20px;
1178+}
1179+.box-clear .location {
1180+ display: block;
1181+ margin-bottom: 1px;
1182+}
1183+.box-clear .last {
1184+ margin: 0;
1185+ padding-right: 0;
1186+ -moz-border-radius: 4px;
1187+ -webkit-border-radius: 4px;
1188+ border-radius: 4px;
1189+ width: 293px;
1190+}
1191+
1192+/* Widgets */
1193+
1194+.ui-state-focus {
1195+ outline: none;
1196+}
1197+.ui-accordion {
1198+ border-bottom: 1px dotted #aea79f;
1199+}
1200+.ui-accordion a {
1201+ display: block;
1202+}
1203+.ui-accordion h3 {
1204+ margin-bottom: 0;
1205+ border-top: 1px dotted #aea79f;
1206+ position: relative;
1207+ font-size: 13px;
1208+ font-weight: bold;
1209+}
1210+.ui-accordion h3 a {
1211+ padding: 10px 0;
1212+ color: #333;
1213+}
1214+.ui-accordion h4 {
1215+ margin-bottom: 5px;
1216+}
1217+.ui-accordion div fieldset {
1218+ padding-bottom: 5px;
1219+}
1220+.ui-accordion div li,
1221+.ui-accordion div input {
1222+ margin-bottom: 10px;
1223+}
1224+.ui-accordion .ui-icon {
1225+ position: absolute;
1226+ top: 15px;
1227+ right: 0;
1228+ display: block;
1229+ width: 8px;
1230+ height: 8px;
1231+ background: url("../img/icon-accordion-inactive.png") 0 0 no-repeat transparent;
1232+}
1233+.ui-accordion .ui-state-active .ui-icon {
1234+ background-image: url("../img/icon-accordion-active.png");
1235+}
1236+.ui-accordion .current_page_item a {
1237+ color: #333;
1238+}
1239+.container-tweet {
1240+ -moz-border-radius: 4px 4px 4px 4px;
1241+ -webkit-border-radius: 4px 4px 4px 4px;
1242+ border-radius: 4px 4px 4px 4px;
1243+ padding: 10px 10px 10px;
1244+ background-color: #f7f7f7;
1245+}
1246+.container-tweet .tweet-follow {
1247+ margin-top: 10px;
1248+ margin-bottom: -10px;
1249+ padding-left: 55px;
1250+ padding-bottom: 6px;
1251+ background: url("../img/tweet-follow.png") 0 5px no-repeat;
1252+ display: block;
1253+}
1254+.container-tweet .tweet-follow span {
1255+ font-size: 16px;
1256+ font-weight: bold;
1257+ line-height: 1.2;
1258+ display: block;
1259+}
1260+.tweet a {
1261+ display: inline;
1262+}
1263+.tweet .tweet_text {
1264+ padding: 10px;
1265+ background-color: #fff;
1266+ -moz-border-radius: 4px 4px 4px 4px;
1267+ -webkit-border-radius: 4px 4px 4px 4px;
1268+ border-radius: 4px 4px 4px 4px;
1269+ border: 1px solid #dd4814;
1270+ font-size: 16px;
1271+ display: block;
1272+ clear: both;
1273+}
1274+.tweet.tweet-small .tweet_text {
1275+ font-size: inherit;
1276+}
1277+.tweet .tweet_text a {
1278+ color: #333;
1279+}
1280+.tweet .tweet_time,
1281+.tweet .tweet_user_and_time {
1282+ padding: 15px 0 10px 0;
1283+ position: relative;
1284+ top: -2px;
1285+ background: url("../img/tweet-arrow.png") no-repeat;
1286+ display: block;
1287+}
1288+.tweet .tweet_odd .tweet_time,
1289+.tweet .tweet_odd .tweet_user_and_time {
1290+ background-position: right 0;
1291+ float: right;
1292+}
1293+.tweet .tweet_even .tweet_time,
1294+.tweet .tweet_even .tweet_user_and_time {
1295+ background-position: left 0;
1296+ float: left;
1297+}
1298+
1299+/* Search */
1300+
1301+#content .list-search li {
1302+ list-style-type:none;
1303+ border:0px;
1304+ margin-bottom: 15px;
1305+ padding-top: 15px;
1306+}
1307+
1308+/* Blog */
1309+
1310+.blog-article #nav-single {
1311+ margin-top: 30px;
1312+ margin-bottom: 30px;
1313+}
1314+.blog-article #nav-single .nav-next {
1315+ float: right;
1316+}
1317+.blog-article article header .entry-meta {
1318+ margin-bottom: 20px;
1319+}
1320+.blog-article article .entry-meta {
1321+ color: #999;
1322+}
1323+.blog-article #respond form input[type="submit"] {
1324+ float: left;
1325+ cursor: pointer;
1326+ margin-bottom: 20px;
1327+ padding: 8px 12px;
1328+ display: block;
1329+ background-color: #dd4814;
1330+ color: #fff;
1331+ -moz-border-radius: 20px;
1332+ -webkit-border-radius: 20px;
1333+ border-radius: 20px;
1334+ font-size: 16px;
1335+ line-height: 1.3;
1336+ border-top: 3px solid #e6633a;
1337+ border-left: 3px solid #e6633a;
1338+ border-right: 3px solid #e6633a;
1339+ border-bottom: 3px solid #c03d14;
1340+}
1341+.blog-article #respond form input[type="submit"]:active {
1342+ position: relative;
1343+ top: 1px;
1344+}
1345+
1346+.alignnone{
1347+ float:left;
1348+ margin:10px 20px 10px 0;
1349+}
1350+.alignleft{
1351+ float:left;
1352+ margin:10px 20px 10px 0;
1353+}
1354+.alignright{
1355+ float:right;
1356+ margin:10px 0 10px 20px;
1357+}
1358+
1359+.aligncenter{
1360+ float:left;
1361+ margin:10px 20px 10px 0;
1362+}
1363+.entry-content h2, .entry-content h3{
1364+ margin-top:20px;
1365+}
1366+.entry-content ul li{
1367+ list-style-type: circle;
1368+ margin-left:16px;
1369+}
1370+
1371+.entry-content hr{
1372+ border:none;
1373+ border-top: 1px dotted #AEA79F;
1374+}
1375
1376=== added file 'doc/qt/cpp/css/qtquick.css'
1377--- doc/qt/cpp/css/qtquick.css 1970-01-01 00:00:00 +0000
1378+++ doc/qt/cpp/css/qtquick.css 2015-05-13 10:12:45 +0000
1379@@ -0,0 +1,772 @@
1380+@media screen
1381+{
1382+
1383+/* basic elements */
1384+ html
1385+ {
1386+ color: #000000;
1387+ background: #FFFFFF;
1388+ }
1389+ table
1390+ {
1391+ border-collapse: collapse;
1392+ border-spacing: 0;
1393+ }
1394+ fieldset, img
1395+ {
1396+ border: 0;
1397+ max-width:100%;
1398+ }
1399+ address, caption, cite, code, dfn, em, strong, th, var, optgroup
1400+ {
1401+ font-style: inherit;
1402+ font-weight: inherit;
1403+ }
1404+ del, ins
1405+ {
1406+ text-decoration: none;
1407+ }
1408+ ol li
1409+ {
1410+ list-style: decimal;
1411+ }
1412+ ul li
1413+ {
1414+ list-style: none;
1415+ }
1416+ caption, th
1417+ {
1418+ text-align: left;
1419+ }
1420+ h1.title
1421+ {
1422+ font-weight: bold;
1423+ font-size: 150%;
1424+ }
1425+ h0
1426+ {
1427+ font-weight: bold;
1428+ font-size: 130%;
1429+ }
1430+ h1, h2, h3, h4, h5, h6
1431+ {
1432+ font-size: 100%;
1433+ }
1434+ q:before, q:after
1435+ {
1436+ content: '';
1437+ }
1438+ abbr, acronym
1439+ {
1440+ border: 0;
1441+ font-variant: normal;
1442+ }
1443+ sup, sub
1444+ {
1445+ vertical-align: baseline;
1446+ }
1447+ tt, .qmlreadonly span, .qmldefault span
1448+ {
1449+ word-spacing:0.5em;
1450+ }
1451+ legend
1452+ {
1453+ color: #000000;
1454+ }
1455+ strong
1456+ {
1457+ font-weight: bold;
1458+ }
1459+ em
1460+ {
1461+ font-style: italic;
1462+ }
1463+
1464+ body
1465+ {
1466+ margin: 0 1.5em 0 1.5em;
1467+ font-family: ubuntu;
1468+ line-height: normal
1469+ }
1470+ a
1471+ {
1472+ color: #00732F;
1473+ text-decoration: none;
1474+ }
1475+ hr
1476+ {
1477+ background-color: #E6E6E6;
1478+ border: 1px solid #E6E6E6;
1479+ height: 1px;
1480+ width: 100%;
1481+ text-align: left;
1482+ margin: 1.5em 0 1.5em 0;
1483+ }
1484+
1485+ pre
1486+ {
1487+ border: 1px solid #DDDDDD;
1488+ -moz-border-radius: 0.7em 0.7em 0.7em 0.7em;
1489+ -webkit-border-radius: 0.7em 0.7em 0.7em 0.7em;
1490+ border-radius: 0.7em 0.7em 0.7em 0.7em;
1491+ padding: 1em 1em 1em 1em;
1492+ overflow-x: auto;
1493+ }
1494+ table, pre
1495+ {
1496+ -moz-border-radius: 0.7em 0.7em 0.7em 0.7em;
1497+ -webkit-border-radius: 0.7em 0.7em 0.7em 0.7em;
1498+ border-radius: 0.7em 0.7em 0.7em 0.7em;
1499+ background-color: #F6F6F6;
1500+ border: 1px solid #E6E6E6;
1501+ border-collapse: separate;
1502+ margin-bottom: 2.5em;
1503+ }
1504+ pre {
1505+ font-size: 90%;
1506+ display: block;
1507+ overflow:hidden;
1508+ }
1509+ thead
1510+ {
1511+ margin-top: 0.5em;
1512+ font-weight: bold
1513+ }
1514+ th
1515+ {
1516+ padding: 0.5em 1.5em 0.5em 1em;
1517+ background-color: #E1E1E1;
1518+ border-left: 1px solid #E6E6E6;
1519+ }
1520+ td
1521+ {
1522+ padding: 0.25em 1.5em 0.25em 1em;
1523+ }
1524+
1525+ td.rightAlign
1526+ {
1527+ padding: 0.25em 0.5em 0.25em 1em;
1528+ }
1529+ table tr.odd
1530+ {
1531+ border-left: 1px solid #E6E6E6;
1532+ background-color: #F6F6F6;
1533+ color: black;
1534+ }
1535+ table tr.even
1536+ {
1537+ border-left: 1px solid #E6E6E6;
1538+ background-color: #ffffff;
1539+ color: #202020;
1540+ }
1541+
1542+ div.float-left
1543+ {
1544+ float: left; margin-right: 2em
1545+ }
1546+ div.float-right
1547+ {
1548+ float: right; margin-left: 2em
1549+ }
1550+
1551+ span.comment
1552+ {
1553+ color: #008B00;
1554+ }
1555+ span.string, span.char
1556+ {
1557+ color: #000084;
1558+ }
1559+ span.number
1560+ {
1561+ color: #a46200;
1562+ }
1563+ span.operator
1564+ {
1565+ color: #202020;
1566+ }
1567+ span.keyword
1568+ {
1569+ color: #840000;
1570+ }
1571+ span.name
1572+ {
1573+ color: black
1574+ }
1575+ span.type
1576+ {
1577+ font-weight: bold
1578+ }
1579+ span.type a:visited
1580+ {
1581+ color: #0F5300;
1582+ }
1583+ span.preprocessor
1584+ {
1585+ color: #404040
1586+ }
1587+/* end basic elements */
1588+
1589+/* font style elements */
1590+ .heading
1591+ {
1592+ font-weight: bold;
1593+ font-size: 125%;
1594+ }
1595+ .subtitle
1596+ {
1597+ font-size: 110%
1598+ }
1599+ .small-subtitle
1600+ {
1601+ font-size: 100%
1602+ }
1603+ .red
1604+ {
1605+ color:red;
1606+ }
1607+/* end font style elements */
1608+
1609+/* global settings*/
1610+ .header, .footer
1611+ {
1612+ display: block;
1613+ clear: both;
1614+ overflow: hidden;
1615+ }
1616+/* end global settings*/
1617+
1618+/* header elements */
1619+ .header .qtref
1620+ {
1621+ color: #00732F;
1622+ font-weight: bold;
1623+ font-size: 130%;
1624+ }
1625+
1626+ .header .content
1627+ {
1628+ margin-left: 5px;
1629+ margin-top: 5px;
1630+ margin-bottom: 0.5em;
1631+ }
1632+
1633+ .header .breadcrumb
1634+ {
1635+ font-size: 90%;
1636+ padding: 0.5em 0 0.5em 1em;
1637+ margin: 0;
1638+ background-color: #fafafa;
1639+ height: 1.35em;
1640+ border-bottom: 1px solid #d1d1d1;
1641+ }
1642+
1643+ .header .breadcrumb ul
1644+ {
1645+ margin: 0;
1646+ padding: 0;
1647+ }
1648+
1649+ .header .content
1650+ {
1651+ word-wrap: break-word;
1652+ }
1653+
1654+ .header .breadcrumb ul li
1655+ {
1656+ float: left;
1657+ background: url(../images/breadcrumb.png) no-repeat 0 3px;
1658+ padding-left: 1.5em;
1659+ margin-left: 1.5em;
1660+ }
1661+
1662+ .header .breadcrumb ul li.last
1663+ {
1664+ font-weight: normal;
1665+ }
1666+
1667+ .header .breadcrumb ul li a
1668+ {
1669+ color: #00732F;
1670+ }
1671+
1672+ .header .breadcrumb ul li.first
1673+ {
1674+ background-image: none;
1675+ padding-left: 0;
1676+ margin-left: 0;
1677+ }
1678+
1679+ .header .content ol li {
1680+ background: none;
1681+ margin-bottom: 1.0em;
1682+ margin-left: 1.2em;
1683+ padding-left: 0
1684+ }
1685+
1686+ .header .content li
1687+ {
1688+ background: url(../images/bullet_sq.png) no-repeat 0 5px;
1689+ margin-bottom: 1em;
1690+ padding-left: 1.2em;
1691+ }
1692+
1693+/* end header elements */
1694+
1695+/* content elements */
1696+ .content h1
1697+ {
1698+ font-weight: bold;
1699+ font-size: 130%
1700+ }
1701+
1702+ .content h2
1703+ {
1704+ font-weight: bold;
1705+ font-size: 120%;
1706+ width: 100%;
1707+ }
1708+ .content h3
1709+ {
1710+ font-weight: bold;
1711+ font-size: 110%;
1712+ width: 100%;
1713+ }
1714+ .content table p
1715+ {
1716+ margin: 0
1717+ }
1718+ .content ul
1719+ {
1720+ padding-left: 2.5em;
1721+ }
1722+ .content li
1723+ {
1724+ padding-top: 0.25em;
1725+ padding-bottom: 0.25em;
1726+ }
1727+ .content ul img {
1728+ vertical-align: middle;
1729+ }
1730+
1731+ .content a:visited
1732+ {
1733+ color: #4c0033;
1734+ text-decoration: none;
1735+ }
1736+
1737+ .content a:visited:hover
1738+ {
1739+ color: #4c0033;
1740+ text-decoration: underline;
1741+ }
1742+
1743+ a:hover
1744+ {
1745+ color: #4c0033;
1746+ text-decoration: underline;
1747+ }
1748+ descr p a
1749+ {
1750+ text-decoration: underline;
1751+ }
1752+
1753+ .descr p a:visited
1754+ {
1755+ text-decoration: underline;
1756+ }
1757+
1758+ .alphaChar{
1759+ width:95%;
1760+ background-color:#F6F6F6;
1761+ border:1px solid #E6E6E6;
1762+ -moz-border-radius: 7px 7px 7px 7px;
1763+ border-radius: 7px 7px 7px 7px;
1764+ -webkit-border-radius: 7px 7px 7px 7px;
1765+ font-size:12pt;
1766+ padding-left:10px;
1767+ margin-top:10px;
1768+ margin-bottom:10px;
1769+ }
1770+ .flowList{
1771+ /*vertical-align:top;*/
1772+ /*margin:20px auto;*/
1773+
1774+ column-count:3;
1775+ -webkit-column-count:3;
1776+ -moz-column-count:3;
1777+/*
1778+ column-width:100%;
1779+ -webkit-column-width:200px;
1780+ -col-column-width:200px;
1781+*/
1782+ column-gap:41px;
1783+ -webkit-column-gap:41px;
1784+ -moz-column-gap:41px;
1785+
1786+ column-rule: 1px dashed #ccc;
1787+ -webkit-column-rule: 1px dashed #ccc;
1788+ -moz-column-rule: 1px dashed #ccc;
1789+ }
1790+
1791+ .flowList dl{
1792+ }
1793+ .flowList dd{
1794+ /*display:inline-block;*/
1795+ margin-left:10px;
1796+ min-width:250px;
1797+ line-height: 1.5;
1798+ min-width:100%;
1799+ min-height:15px;
1800+ }
1801+
1802+ .flowList dd a{
1803+ }
1804+
1805+ .mainContent
1806+ {
1807+ padding-left:5px;
1808+ }
1809+
1810+ .content .flowList p{
1811+ padding:0px;
1812+ }
1813+
1814+ .content .alignedsummary
1815+ {
1816+ margin: 15px;
1817+ }
1818+
1819+
1820+ .qmltype
1821+ {
1822+ text-align: center;
1823+ font-size: 120%;
1824+ }
1825+ .qmlreadonly
1826+ {
1827+ padding-left: 5px;
1828+ float: right;
1829+ color: #254117;
1830+ }
1831+
1832+ .qmldefault
1833+ {
1834+ padding-left: 5px;
1835+ float: right;
1836+ color: red;
1837+ }
1838+
1839+ .qmldoc
1840+ {
1841+ }
1842+
1843+ .generic .alphaChar{
1844+ margin-top:5px;
1845+ }
1846+
1847+ .generic .odd .alphaChar{
1848+ background-color: #F6F6F6;
1849+ }
1850+
1851+ .generic .even .alphaChar{
1852+ background-color: #FFFFFF;
1853+ }
1854+
1855+ .memItemRight{
1856+ padding: 0.25em 1.5em 0.25em 0;
1857+ }
1858+ .highlightedCode
1859+ {
1860+ margin: 1.0em;
1861+ }
1862+ .annotated td {
1863+ padding: 0.25em 0.5em 0.25em 0.5em;
1864+ }
1865+
1866+ .toc
1867+ {
1868+ font-size: 80%
1869+ }
1870+
1871+ .header .content .toc ul
1872+ {
1873+ padding-left: 0px;
1874+ }
1875+
1876+ .content .toc h3 {
1877+ border-bottom: 0px;
1878+ margin-top: 0px;
1879+ }
1880+
1881+ .content .toc h3 a:hover {
1882+ color: #00732F;
1883+ text-decoration: none;
1884+ }
1885+
1886+ .content .toc .level2
1887+ {
1888+ margin-left: 1.5em;
1889+ }
1890+
1891+ .content .toc .level3
1892+ {
1893+ margin-left: 3.0em;
1894+ }
1895+
1896+ .content ul li
1897+ {
1898+ background: url(../images/bullet_sq.png) no-repeat 0 0.7em;
1899+ padding-left: 1em
1900+ }
1901+
1902+ .content .toc li
1903+ {
1904+ background: url(../images/bullet_dn.png) no-repeat 0 5px;
1905+ padding-left: 1em
1906+ }
1907+
1908+ .relpage
1909+ {
1910+ -moz-border-radius: 7px 7px 7px 7px;
1911+ -webkit-border-radius: 7px 7px 7px 7px;
1912+ border-radius: 7px 7px 7px 7px;
1913+ border: 1px solid #DDDDDD;
1914+ padding: 25px 25px;
1915+ clear: both;
1916+ }
1917+ .relpage ul
1918+ {
1919+ float: none;
1920+ padding: 1.5em;
1921+ }
1922+
1923+ h3.fn, span.fn
1924+ {
1925+ -moz-border-radius:7px 7px 7px 7px;
1926+ -webkit-border-radius:7px 7px 7px 7px;
1927+ border-radius:7px 7px 7px 7px;
1928+ background-color: #F6F6F6;
1929+ border-width: 1px;
1930+ border-style: solid;
1931+ border-color: #E6E6E6;
1932+ font-weight: bold;
1933+ word-spacing:3px;
1934+ padding:3px 5px;
1935+ }
1936+
1937+ .functionIndex {
1938+ font-size:12pt;
1939+ word-spacing:10px;
1940+ margin-bottom:10px;
1941+ background-color: #F6F6F6;
1942+ border-width: 1px;
1943+ border-style: solid;
1944+ border-color: #E6E6E6;
1945+ -moz-border-radius: 7px 7px 7px 7px;
1946+ -webkit-border-radius: 7px 7px 7px 7px;
1947+ border-radius: 7px 7px 7px 7px;
1948+ width:100%;
1949+ }
1950+
1951+ .centerAlign
1952+ {
1953+ text-align:center;
1954+ }
1955+
1956+ .rightAlign
1957+ {
1958+ text-align:right;
1959+ }
1960+
1961+ .leftAlign
1962+ {
1963+ text-align:left;
1964+ }
1965+
1966+ .topAlign{
1967+ vertical-align:top
1968+ }
1969+
1970+ .functionIndex a{
1971+ display:inline-block;
1972+ }
1973+
1974+/* end content elements */
1975+/* footer elements */
1976+
1977+ .footer
1978+ {
1979+ color: #393735;
1980+ font-size: 0.75em;
1981+ text-align: center;
1982+ padding-top: 1.5em;
1983+ padding-bottom: 1em;
1984+ background-color: #E6E7E8;
1985+ margin: 0;
1986+ }
1987+ .footer p
1988+ {
1989+ margin: 0.25em
1990+ }
1991+ .small
1992+ {
1993+ font-size: 0.5em;
1994+ }
1995+/* end footer elements */
1996+
1997+ .item {
1998+ float: left;
1999+ position: relative;
2000+ width: 100%;
2001+ overflow: hidden;
2002+ }
2003+
2004+
2005+ .item .primary {
2006+ margin-right: 220px;
2007+ position: relative;
2008+ }
2009+
2010+ .item hr {
2011+ margin-left: -220px;
2012+ }
2013+
2014+ .item .secondary {
2015+ float: right;
2016+ width: 200px;
2017+ position: relative;
2018+ }
2019+
2020+ .item .cols {
2021+ clear: both;
2022+ display: block;
2023+ }
2024+
2025+ .item .cols .col {
2026+ float: left;
2027+ margin-left: 1.5%;
2028+ }
2029+
2030+ .item .cols .col.first {
2031+ margin-left: 0;
2032+ }
2033+
2034+ .item .cols.two .col {
2035+ width: 45%;
2036+ }
2037+
2038+ .item .box {
2039+ margin: 0 0 10px 0;
2040+ }
2041+
2042+ .item .box h3 {
2043+ margin: 0 0 10px 0;
2044+ }
2045+
2046+ .cols.unclear {
2047+ clear:none;
2048+ }
2049+}
2050+
2051+/* end of screen media */
2052+
2053+/* start of print media */
2054+
2055+@media print
2056+{
2057+ input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft, #feedbackBox, #blurpage, .toc, .breadcrumb, .toolbar, .floatingResult
2058+ {
2059+ display: none;
2060+ background: none;
2061+ }
2062+ .content
2063+ {
2064+ background: none;
2065+ display: block;
2066+ width: 100%; margin: 0; float: none;
2067+ }
2068+}
2069+/* end of print media */
2070+
2071+
2072+/* modify the TOC layouts */
2073+div.toc ul {
2074+ padding-left: 20px;
2075+}
2076+div.toc li {
2077+ padding-left: 4px;
2078+}
2079+/* Remove the border around images*/
2080+a img
2081+{
2082+ border:none;
2083+}
2084+
2085+/*Add styling to the front pages*/
2086+
2087+.threecolumn_area
2088+{
2089+ padding-top: 20px;
2090+ padding-bottom: 20px;
2091+}
2092+.threecolumn_piece
2093+{
2094+ display: inline-block;
2095+ margin-left: 78px;
2096+ margin-top: 8px;
2097+ padding: 0;
2098+ vertical-align: top;
2099+ width: 25.5%;
2100+}
2101+div.threecolumn_piece ul {
2102+ list-style-type: none;
2103+ padding-left: 0px;
2104+ margin-top: 2px;
2105+}
2106+div.threecolumn_piece p {
2107+ margin-bottom: 7px;
2108+ color: #5C626E;
2109+ text-decoration: none;
2110+ font-weight: bold;
2111+}
2112+div.threecolumn_piece li {
2113+ padding-left: 0px;
2114+ margin-bottom: 5px;
2115+}
2116+div.threecolumn_piece a {
2117+ font-weight: normal;
2118+}
2119+/* Add style to guide page*/
2120+.fourcolumn_area
2121+{
2122+ padding-top: 20px;
2123+ padding-bottom: 20px;
2124+}
2125+.fourcolumn_piece
2126+{
2127+ display: inline-block;
2128+ margin-left: 35px;
2129+ margin-top: 8px;
2130+ padding: 0;
2131+ vertical-align: top;
2132+ width: 21.3%;
2133+}
2134+div.fourcolumn_piece ul {
2135+ list-style-type: none;
2136+ padding-left: 0px;
2137+ margin-top: 2px;
2138+}
2139+div.fourcolumn_piece p {
2140+ margin-bottom: 7px;
2141+ color: #40444D;
2142+ text-decoration: none;
2143+ font-weight: bold;
2144+}
2145+div.fourcolumn_piece li {
2146+ padding-left: 0px;
2147+ margin-bottom: 5px;
2148+}
2149+div.fourcolumn_piece a {
2150+ font-weight: normal;
2151+}
2152
2153=== added file 'doc/qt/cpp/css/reset.css'
2154--- doc/qt/cpp/css/reset.css 1970-01-01 00:00:00 +0000
2155+++ doc/qt/cpp/css/reset.css 2015-05-13 10:12:45 +0000
2156@@ -0,0 +1,8 @@
2157+/*
2158+Copyright (c) 2010, Yahoo! Inc. All rights reserved.
2159+Code licensed under the BSD License:
2160+http://developer.yahoo.com/yui/license.html
2161+version: 3.3.0
2162+build: 3167
2163+*/
2164+html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
2165\ No newline at end of file
2166
2167=== added file 'doc/qt/cpp/css/scratch.css'
2168--- doc/qt/cpp/css/scratch.css 1970-01-01 00:00:00 +0000
2169+++ doc/qt/cpp/css/scratch.css 2015-05-13 10:12:45 +0000
2170@@ -0,0 +1,61 @@
2171+body {
2172+ margin: 0;
2173+}
2174+
2175+
2176+div.toc ul {
2177+ padding: 0;
2178+}
2179+
2180+div.toc li {
2181+ margin-bottom: 3px;
2182+}
2183+
2184+h1.title {
2185+ font-size: 36px;
2186+ line-height: 1.1;
2187+ font-weight: normal;
2188+}
2189+h0, h2 {
2190+ font-size: 24px;
2191+ line-height: 1.2;
2192+ margin: 14px 0;
2193+ font-weight: normal;
2194+ display: block;
2195+}
2196+a:hover {
2197+ color: #dd4814;
2198+ text-decoration: underline;
2199+ outline: 0;
2200+}
2201+table, pre {
2202+ border-radius: 0;
2203+}
2204+
2205+.annotated td {
2206+ padding: 0.8em 1em 0.3em;
2207+}
2208+.wrapper {
2209+ width: 940px;
2210+ margin: 0 auto;
2211+}
2212+.main-content {
2213+ width: 668px;
2214+ position: relative;
2215+ left: 270px;
2216+}
2217+.title {
2218+ margin-left: -270px;
2219+ margin-top: 30px;
2220+ margin-bottom: 50px;
2221+}
2222+.toc {
2223+ margin-left: -270px;
2224+ font-size: 100%;
2225+ margin-bottom: 40px;
2226+ padding: 0;
2227+ z-index: 2;
2228+ position: absolute;
2229+ top: 100px;
2230+ width: 250px;
2231+}
2232
2233=== added directory 'doc/qt/cpp/examples'
2234=== added file 'doc/qt/cpp/examples/CMakeLists.txt'
2235--- doc/qt/cpp/examples/CMakeLists.txt 1970-01-01 00:00:00 +0000
2236+++ doc/qt/cpp/examples/CMakeLists.txt 2015-05-13 10:12:45 +0000
2237@@ -0,0 +1,7 @@
2238+
2239+include_directories(${CMAKE_SOURCE_DIR}/src/connectivity-api/connectivity-qt)
2240+add_executable(
2241+ networking_status
2242+ example_networking_status.cpp
2243+)
2244+target_link_libraries(networking_status connectivity-qt)
2245
2246=== added file 'doc/qt/cpp/examples/example_networking_status.cpp'
2247--- doc/qt/cpp/examples/example_networking_status.cpp 1970-01-01 00:00:00 +0000
2248+++ doc/qt/cpp/examples/example_networking_status.cpp 2015-05-13 10:12:45 +0000
2249@@ -0,0 +1,90 @@
2250+/*
2251+ * Copyright © 2014 Canonical Ltd.
2252+ *
2253+ * This program is free software: you can redistribute it and/or modify it
2254+ * under the terms of the GNU Lesser General Public License version 3,
2255+ * as published by the Free Software Foundation.
2256+ *
2257+ * This program is distributed in the hope that it will be useful,
2258+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
2259+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2260+ * GNU Lesser General Public License for more details.
2261+ *
2262+ * You should have received a copy of the GNU Lesser General Public License
2263+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
2264+ *
2265+ * Authors:
2266+ * Antti Kaijanmäki <antti.kaijanmaki@canonical.com>
2267+ */
2268+
2269+#include <QCoreApplication>
2270+#include <QScopedPointer>
2271+#include <QDebug>
2272+
2273+//! [include]
2274+#include <connectivityqt/connectivity.h>
2275+using namespace connectivityqt;
2276+//! [include]
2277+
2278+int
2279+main(int argc, char *argv[])
2280+{
2281+ QCoreApplication app(argc, argv);
2282+
2283+ //! [create networkingstatus]
2284+ QScopedPointer<Connectivity> ns(new Connectivity());
2285+ //! [create networkingstatus]
2286+
2287+ //! [status]
2288+ // normal getter
2289+ if (ns->status() == Connectivity::Status::Online)
2290+ {
2291+ qDebug() << "We are online.";
2292+ }
2293+
2294+ // Subscribe to system networking changes
2295+ QObject::connect(ns.data(),
2296+ &Connectivity::statusUpdated,
2297+ [](Connectivity::Status value)
2298+ {
2299+ switch(value) {
2300+ case Connectivity::Status::Offline:
2301+ qDebug() << "System networking status changed to: Offline";
2302+ break;
2303+ case Connectivity::Status::Connecting:
2304+ qDebug() << "System networking status changed to: Connecting";
2305+ break;
2306+ case Connectivity::Status::Online:
2307+ qDebug() << "System networking status changed to: Online";
2308+ break;
2309+ }
2310+ });
2311+ //! [status]
2312+
2313+ //! [limitations]
2314+ // normal getter
2315+ if (ns->limitations().isEmpty())
2316+ qDebug() << "No limitations";
2317+
2318+ // Subscribe to limitation changes
2319+ QObject::connect(ns.data(),
2320+ &Connectivity::limitationsUpdated,
2321+ [&ns](){
2322+ if (ns->limitations().isEmpty())
2323+ {
2324+ qDebug() << "No limitations.";
2325+ return;
2326+ }
2327+
2328+ qDebug() << "Limitations:";
2329+ if (ns->limitations().contains(Connectivity::Limitations::Bandwith))
2330+ {
2331+ qDebug() << " - Bandwith";
2332+ }
2333+ });
2334+ //! [limitations]
2335+
2336+ app.exec();
2337+
2338+ return 0;
2339+}
2340
2341=== added directory 'doc/qt/cpp/pages'
2342=== added file 'doc/qt/cpp/pages/mainpage.dox'
2343--- doc/qt/cpp/pages/mainpage.dox 1970-01-01 00:00:00 +0000
2344+++ doc/qt/cpp/pages/mainpage.dox 2015-05-13 10:12:45 +0000
2345@@ -0,0 +1,18 @@
2346+/*!
2347+\mainpage Ubuntu Connectivity API
2348+
2349+\tableofcontents
2350+
2351+\section sec_introduction Introduction
2352+
2353+Ubuntu Connectivity API offers a way to access the connectivity related information of the system.
2354+
2355+\section sec_general General Topics
2356+
2357+ - \ref using-cpp "Using this C++ API"
2358+ - \ref networking-status "Getting the networking status."
2359+
2360+\section sec_bug_reports Reporting Bugs
2361+If you find any problems with the or this documentation,
2362+please file a bug in Connectivity API [Launchpad page](https://bugs.launchpad.net/connectivity-api).
2363+*/
2364
2365=== added file 'doc/qt/cpp/pages/networking-status.dox'
2366--- doc/qt/cpp/pages/networking-status.dox 1970-01-01 00:00:00 +0000
2367+++ doc/qt/cpp/pages/networking-status.dox 2015-05-13 10:12:45 +0000
2368@@ -0,0 +1,35 @@
2369+/*!
2370+\page networking-status Networking Status
2371+
2372+Applications needing to access the overall system networking status must access the
2373+ubuntu::connectivity::NetworkingStatus class. The class has properties
2374+for the networking status and connection limitations of the system networking.
2375+
2376+Accessing the networking status from confined applications requires
2377+the <i>connectivity</i> policy group.
2378+
2379+\section Setup
2380+
2381+Manager is accessed by including the appropriate header:
2382+\snippet example_networking_status.cpp include
2383+
2384+and then creating an instance of the NetworkingStatus:
2385+\snippet example_networking_status.cpp create networkingstatus
2386+
2387+\section sec_networking_status Networking Status
2388+
2389+\subsection sec_networking_status_status Status
2390+
2391+The status of the system networking can be accessed through the ubuntu::connectivity::NetworkingStatus::status property:
2392+\snippet example_networking_status.cpp status
2393+
2394+\subsection sec_networking_status_limitations Limitations
2395+
2396+The limitations can be accessed through the ubuntu::connectivity::NetworkingStatus::limitations property:
2397+\snippet example_networking_status.cpp limitations
2398+
2399+---
2400+The complete example (found in <i>examples/example_networking_status.cpp</i>):
2401+\include example_networking_status.cpp
2402+
2403+*/
2404
2405=== added file 'doc/qt/cpp/pages/using.dox'
2406--- doc/qt/cpp/pages/using.dox 1970-01-01 00:00:00 +0000
2407+++ doc/qt/cpp/pages/using.dox 2015-05-13 10:12:45 +0000
2408@@ -0,0 +1,26 @@
2409+/*!
2410+\page using-cpp Using the C++ API
2411+
2412+Install the development headers:
2413+
2414+\code{.txt}
2415+sudo apt-get install libconnectivity-qt1-dev
2416+\endcode
2417+
2418+Enable c++11 and use pkg-config to get the necessary compilation flags:
2419+
2420+\code{.txt}
2421+$ g++ myapp.cpp -std=c++11 `pkg-config --cflags --libs connectivity-qt1` -o myapp
2422+\endcode
2423+
2424+The headers can then be included as:
2425+
2426+\code{.cpp}
2427+// includes the ubuntu::connectivity::NetworkingStatus class
2428+#include <ubuntu/connectivity/networking-status.h>
2429+\endcode
2430+
2431+<b>note:</b><br />
2432+Accessing the networking status from confined applications requires the <i>connectivity</i> policy group.
2433+
2434+*/
2435
2436=== added file 'doc/qt/cpp/ubuntu-appdev-site-footer.html'
2437--- doc/qt/cpp/ubuntu-appdev-site-footer.html 1970-01-01 00:00:00 +0000
2438+++ doc/qt/cpp/ubuntu-appdev-site-footer.html 2015-05-13 10:12:45 +0000
2439@@ -0,0 +1,53 @@
2440+</div></div>
2441+<div class="shadow"></div>
2442+<footer>
2443+ <div>
2444+ <nav role="navigation" class="clearfix">
2445+ <ul>
2446+ <li><a href="/get-started">Get started</a></li>
2447+ <li class="page_item page-item-16"><a href="http://developer.ubuntu.com/get-started/quickly-workflow/">Quickly workflow</a></li>
2448+ <li class="page_item page-item-18"><a href="http://developer.ubuntu.com/get-started/qt-creator/">Qt Creator</a></li>
2449+ <li class="page_item page-item-20"><a href="http://developer.ubuntu.com/get-started/eclipse/">Eclipse</a></li>
2450+ <li class="page_item page-item-22"><a href="http://developer.ubuntu.com/get-started/monodevelop/">MonoDevelop</a></li>
2451+ </ul>
2452+ <ul>
2453+ <li><a href="/resources">Resources</a></li>
2454+ <li><a href="/resources/tools/quickly">Quickly</a></li>
2455+ <li><a href="/resources/platform/api">API</a></li>
2456+ <li><a href="/resources/platform/documentation/platform-diagram">Platform overview</a></li>
2457+ </ul>
2458+ <ul>
2459+ <li><a href="/publish">Publish</a></li>
2460+ <li class="page_item page-item-24"><a href="http://developer.ubuntu.com/publish/commercial-software-faqs/">Commercial software FAQs</a></li>
2461+ <li class="page_item page-item-34"><a href="http://developer.ubuntu.com/publish/application-states/">Application states</a></li>
2462+ <li class="page_item page-item-577"><a href="http://developer.ubuntu.com/publish/my-apps-packages/">Uploading your app</a></li>
2463+ <li class="page_item page-item-404"><a href="http://developer.ubuntu.com/publish/ubuntu-software-centre/">Ubuntu Software Centre</a></li>
2464+ <li class="page_item page-item-427"><a href="http://developer.ubuntu.com/publish/licence-key-infrastructure/">Licence key infrastructure</a></li>
2465+ <li class="page_item page-item-1230"><a href="http://developer.ubuntu.com/publish/updating-your-app/">Updating your app</a></li>
2466+ </ul>
2467+ <ul>
2468+ <li><a href="/community">Community</a></li>
2469+ <li class="page_item page-item-28"><a href="http://developer.ubuntu.com/community/app-developer-blog/">App Developer Blog</a></li>
2470+ <li class="page_item page-item-30"><a href="http://developer.ubuntu.com/community/submit-a-tutorial/">Submit a tutorial</a></li>
2471+ <li class="page_item page-item-32"><a href="http://developer.ubuntu.com/community/app-review-board-charter/">App Review Board charter</a></li>
2472+ <li class="page_item page-item-2987"><a href="http://developer.ubuntu.com/community/on-air/">On air</a>
2473+ <ul class='children'>
2474+ <li class="page_item page-item-3066"><a href="http://developer.ubuntu.com/community/on-air/recordings/">Recordings</a></li>
2475+ </ul>
2476+ </li>
2477+ </ul>
2478+ <ul class="last">
2479+ <li><a href="https://myapps.developer.ubuntu.com/dev">My Apps</a></li>
2480+ <li><a href="https://myapps.developer.ubuntu.com/openid/login/?next=/dev">Sign in or register</a></li>
2481+ <li><a href="https://myapps.developer.ubuntu.com/dev/account">My account</a></li>
2482+ </ul>
2483+ </nav>
2484+ <p>&copy; 2013 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.
2485+ <a class="link-bug" href="https://bugs.launchpad.net/ubuntudeveloperportal/+filebug">
2486+ Report a bug on this site
2487+ </a>
2488+ </p>
2489+ </div>
2490+</footer>
2491+<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
2492+<script type="text/javascript" src="http://developer.ubuntu.com/wp-content/themes/wordpress-theme-ubuntudeveloper/js/base.js"></script>\n"
2493
2494=== added file 'doc/qt/cpp/ubuntu-appdev-site-header.html'
2495--- doc/qt/cpp/ubuntu-appdev-site-header.html 1970-01-01 00:00:00 +0000
2496+++ doc/qt/cpp/ubuntu-appdev-site-header.html 2015-05-13 10:12:45 +0000
2497@@ -0,0 +1,35 @@
2498+<header>
2499+ <div class="header-login">
2500+ <ul>
2501+ <li><a href="https://myapps.developer.ubuntu.com/openid/login/?next\=/dev">Sign in or register</a></li>
2502+ </ul>
2503+ </div>
2504+ <div class="header-navigation">
2505+ <div>
2506+ <nav role="navigation">
2507+ <ul>
2508+ <li class="page_item page-item-5"><a href="http://developer.ubuntu.com/">Home</a></li>
2509+ <li class="page_item page-item-7"><a href="http://developer.ubuntu.com/get-started/">Get started</a></li>
2510+ <li class="page_item page-item-9"><a href="http://developer.ubuntu.com/resources/">Resources</a></li>
2511+ <li class="page_item page-item-11"><a href="http://developer.ubuntu.com/publish/">Publish</a></li>
2512+ <li class="page_item page-item-13"><a href="http://developer.ubuntu.com/community/">Community</a></li>
2513+ <li><a href="https://myapps.developer.ubuntu.com/dev">My Apps</a></li>
2514+ <li>
2515+ <form id="form-search" method="get" action="/">
2516+ <fieldset>
2517+ <input id="input-search" type="text" name="s" value="Search" />
2518+ </fieldset>
2519+ </form>
2520+ </li>
2521+ </ul>
2522+ </nav>
2523+ <a class="logo-ubuntu" href="/"><img src="http://developer.ubuntu.com/wp-content/themes/wordpress-theme-ubuntudeveloper/img/logo-ubuntu.png" width="119" height="27" alt="Ubuntu logo" /></a>
2524+ <h2><a href="/">App Developer</a></h2>
2525+ </div>
2526+ </div>
2527+
2528+</header>
2529+<div class="wrapper">
2530+ <div class="main-content">\n"
2531+
2532+
2533
2534=== added directory 'doc/qt/qml'
2535=== added file 'doc/qt/qml/CMakeLists.txt'
2536--- doc/qt/qml/CMakeLists.txt 1970-01-01 00:00:00 +0000
2537+++ doc/qt/qml/CMakeLists.txt 2015-05-13 10:12:45 +0000
2538@@ -0,0 +1,51 @@
2539+set(DOC_SOURCES
2540+ examples/example_networking_status.qml
2541+ qml-api/NetworkingStatus.qml
2542+ pages/mainpage.qdoc)
2543+
2544+# add a target to generate API documentation with qdoc
2545+FIND_PROGRAM(QDOC_EXECUTABLE qdoc)
2546+
2547+if(QDOC_EXECUTABLE)
2548+
2549+configure_file(
2550+ "${CMAKE_CURRENT_SOURCE_DIR}/connectivity-qml.qdocconf.in"
2551+ "${CMAKE_CURRENT_BINARY_DIR}/connectivity-qml.qdocconf"
2552+ @ONLY
2553+)
2554+
2555+add_custom_target(qmldoc
2556+ ALL
2557+ COMMAND "${QDOC_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/connectivity-qml.qdocconf"
2558+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
2559+ COMMENT "Generating QML API documentation with qdoc" VERBATIM
2560+ DEPENDS ${DOC_SOURCES}
2561+)
2562+
2563+# copy stylesheet files into build directory for shadow builds
2564+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/css"
2565+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
2566+)
2567+
2568+# copy the API files over ot the build directery as there is a
2569+# bug in qt5.2 qdoc for handling absolute paths
2570+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/qml-api"
2571+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
2572+)
2573+
2574+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pages"
2575+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
2576+)
2577+
2578+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/examples"
2579+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
2580+)
2581+
2582+install(
2583+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
2584+ DESTINATION ${INSTALL_DOCDIR}/qml/html/
2585+)
2586+
2587+endif(QDOC_EXECUTABLE)
2588+
2589+
2590
2591=== added file 'doc/qt/qml/connectivity-qml.qdocconf.in'
2592--- doc/qt/qml/connectivity-qml.qdocconf.in 1970-01-01 00:00:00 +0000
2593+++ doc/qt/qml/connectivity-qml.qdocconf.in 2015-05-13 10:12:45 +0000
2594@@ -0,0 +1,55 @@
2595+project = Connectivity
2596+description = Ubuntu Connectivity QML API
2597+version = CONNECTIVITY_QT_VERSION_MAJOR@.@CONNECTIVITY_QT_VERSION_MINOR@
2598+
2599+outputencoding = UTF-8
2600+sourceencoding = UTF-8
2601+
2602+# Bug in Qt5.2 qdoc, does not support absolute paths
2603+# just have to hack this over and copy the files to BINARY_DIR
2604+#sourcedirs = @CMAKE_CURRENT_SOURCE_DIR@/pages @CMAKE_CURRENT_SOURCE_DIR@/qml-api
2605+#exampledirs = @CMAKE_SOURCE_DIR@/examples/
2606+#imagedirs = @CMAKE_CURRENT_SOURCE_DIR@/../images
2607+sourcedirs = pages qml-api
2608+exampledirs = examples/
2609+
2610+sources.fileextensions = "*.qdoc *.qml"
2611+headers.fileextensions = "*.h"
2612+examples.fileextensions = "*.js *.qml"
2613+examples.imageextensions = "*.png *.jpeg *.jpg"
2614+
2615+outputdir = @CMAKE_CURRENT_BINARY_DIR@/html
2616+outputformat = HTML
2617+
2618+outputprefixes = QML
2619+outputprefixes.QML = qml-
2620+
2621+HTML.templatedir = @CMAKE_CURRENT_SOURCE_DIR@/
2622+HTML.nobreadcrumbs = "true"
2623+
2624+HTML.stylesheets = \
2625+ css/reset.css \
2626+ css/qtquick.css \
2627+ css/base.css \
2628+ css/scratch.css
2629+
2630+HTML.headerstyles = \
2631+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/reset.css\" />\n" \
2632+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/qtquick.css\" />\n" \
2633+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/base.css\" />\n" \
2634+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/scratch.css\" />\n"
2635+
2636+HTML.postheader = \
2637+ " <div class=\"wrapper\">\n" \
2638+ " <div class=\"main-content\">\n"
2639+
2640+HTML.footer = \
2641+ "</div></div>\n" \
2642+ "<div class=\"shadow\"></div>\n" \
2643+ "<footer>\n" \
2644+ " <div>\n" \
2645+ " <nav role=\"navigation\" class=\"clearfix\">\n" \
2646+ " </nav>\n" \
2647+ " <p>&copy; 2014 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.</p>\n" \
2648+ " </div>\n" \
2649+ "</footer>\n"
2650
2651=== added directory 'doc/qt/qml/css'
2652=== added file 'doc/qt/qml/css/base.css'
2653--- doc/qt/qml/css/base.css 1970-01-01 00:00:00 +0000
2654+++ doc/qt/qml/css/base.css 2015-05-13 10:12:45 +0000
2655@@ -0,0 +1,638 @@
2656+/**
2657+* Ubuntu Developer base stylesheet
2658+*
2659+* A base stylesheet containing site-wide styles
2660+*
2661+* @project Ubuntu Developer
2662+* @version 1.0
2663+* @author Canonical Web Team: Steve Edwards
2664+* @copyright 2011 Canonical Ltd.
2665+*/
2666+
2667+/**
2668+* @section Global
2669+*/
2670+
2671+body {
2672+ font-family: 'Ubuntu', 'Ubuntu Beta', UbuntuBeta, Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif;
2673+ font-size: 13px;
2674+ line-height: 1.4;
2675+ color: #333;
2676+}
2677+a {
2678+ color: #dd4814;
2679+ text-decoration: none;
2680+ outline: 0;
2681+}
2682+p, dl {
2683+ margin-bottom: 10px;
2684+}
2685+strong {
2686+ font-weight: bold;
2687+}
2688+em {
2689+ font-style: italic;
2690+}
2691+code{
2692+ padding: 10px;
2693+ font-family: 'Ubuntu Mono', 'Consolas', 'Monaco', 'DejaVu Sans Mono', Courier, monospace;
2694+ background-color: #fdf6f2;
2695+ display: block;
2696+ margin-bottom: 10px;
2697+ -moz-border-radius: 4px;
2698+ -webkit-border-radius: 4px;
2699+ border-radius: 4px;
2700+}
2701+h1 {
2702+ font-size: 36px;
2703+ line-height: 1.1;
2704+ margin-bottom: 20px;
2705+}
2706+article h1,
2707+h2 {
2708+ font-size: 24px;
2709+ line-height: 1.2;
2710+ margin-bottom: 14px;
2711+}
2712+h3 {
2713+ font-size: 16px;
2714+ line-height: 1.3;
2715+ margin-bottom: 8px;
2716+}
2717+h4 {
2718+ font-weight: bold;
2719+}
2720+
2721+time {
2722+ color:#999;
2723+}
2724+
2725+/**
2726+* @section Structure
2727+*/
2728+
2729+.header-login,
2730+.header-navigation div,
2731+.header-content div {
2732+ margin: 0 auto;
2733+ width: 940px;
2734+}
2735+
2736+.header-content h1{
2737+ background-color:#ffffff;
2738+ display:inline-block;
2739+}
2740+
2741+.header-content h2{
2742+ background-color:#ffffff;
2743+ display:table;
2744+}
2745+
2746+.header-login ul {
2747+ margin: 4px 0;
2748+ float: right;
2749+}
2750+.header-login li {
2751+ margin-right: 10px;
2752+ float: left;
2753+}
2754+.header-login a {
2755+ color: #333;
2756+}
2757+.header-navigation {
2758+ border-top: 2px solid #dd4814;
2759+ border-bottom: 2px solid #dd4814;
2760+ background-color: #fff;
2761+ height: 54px;
2762+ clear: right;
2763+ overflow: hidden;
2764+}
2765+.header-navigation nav ul {
2766+ border-right: 1px solid #dd4814;
2767+ float: right;
2768+}
2769+.header-navigation nav li {
2770+ border-left: 1px solid #dd4814;
2771+ float: left;
2772+ height: 54px;
2773+}
2774+.header-navigation nav a {
2775+ padding: 18px 14px 0;
2776+ font-size: 14px;
2777+ display: block;
2778+ height: 36px;
2779+}
2780+.header-navigation nav a:hover {
2781+ background-color: #fcece7;
2782+}
2783+.header-navigation nav .current_page_item a,
2784+.header-navigation nav .current_page_parent a,
2785+.header-navigation nav .current_page_ancestor a {
2786+ background-color: #dd4814;
2787+ color: #fff;
2788+}
2789+.header-navigation input {
2790+ margin: 12px 10px 0 10px;
2791+ padding: 5px;
2792+ border-top: 1px solid #a1a1a1;
2793+ border-right: 1px solid #e0e0e0;
2794+ border-bottom: 1px solid #fff;
2795+ border-left: 1px solid #e0e0e0;
2796+ width: 90px;
2797+ font-style: italic;
2798+ color: #ccc;
2799+ -moz-border-radius: 3px;
2800+ -webkit-border-radius: 3px;
2801+ border-radius: 3px;
2802+ -moz-box-shadow: inset 0 1px 1px #e0e0e0;
2803+ -webkit-box-shadow: inset 0 1px 1px #e0e0e0;
2804+ box-shadow: inset 0 1px 1px #e0e0e0;
2805+}
2806+.header-navigation h2 {
2807+ margin: 18px 0 0 6px;
2808+ text-transform: lowercase;
2809+ font-size: 22px;
2810+ color: #dd4814;
2811+ float: left;
2812+}
2813+.header-navigation .logo-ubuntu {
2814+ margin-top: 12px;
2815+ float: left;
2816+}
2817+.header-content .header-navigation-secondary {
2818+ margin-bottom: 40px;
2819+ padding: 0;
2820+ position: relative;
2821+ z-index: 2;
2822+}
2823+.header-navigation-secondary div {
2824+ padding: 0;
2825+ border: 2px solid #dd4814;
2826+ -moz-border-radius: 0px 0px 4px 4px;
2827+ -webkit-border-radius: 0px 0px 4px 4px;
2828+ border-radius: 0px 0px 4px 4px;
2829+ background: #fff;
2830+ border-top: 0px;
2831+ width: 936px;
2832+}
2833+.header-navigation-secondary nav li {
2834+ float: left;
2835+}
2836+.header-navigation-secondary nav li a {
2837+ color: #333;
2838+ display: block;
2839+ height: 25px;
2840+ padding: 8px 8px 0;
2841+}
2842+.header-navigation-secondary nav li:hover,
2843+.header-navigation-secondary nav .current_page_item a {
2844+ background: url("../img/sec-nav-hover.gif");
2845+}
2846+.header-content {
2847+ padding-bottom: 30px;
2848+ border-bottom: 1px solid #e0e0e0;
2849+ -moz-box-shadow: 0 1px 3px #e0e0e0;
2850+ -webkit-box-shadow: 0 1px 3px #e0e0e0;
2851+ box-shadow: 0 1px 3px #e0e0e0;
2852+ margin-bottom: 3px;
2853+ position: relative;
2854+ overflow: hidden;
2855+}
2856+footer {
2857+ padding: 10px 10px 40px 10px;
2858+ position: relative;
2859+ -moz-border-radius: 0 0 4px 4px;
2860+ -webkit-border-radius: 0 0 4px 4px;
2861+ border-radius: 0 0 4px 4px;
2862+ font-size: 12px;
2863+ background: url("../img/background-footer.png") repeat scroll 0 0 #f7f6f5;
2864+}
2865+footer div {
2866+ margin: 0 auto;
2867+ padding: 0 10px;
2868+ width: 940px;
2869+}
2870+footer a {
2871+ color: #000;
2872+}
2873+footer nav ul {
2874+ margin: 10px 17px 30px 0;
2875+ width: 172px;
2876+ display: inline-block;
2877+ vertical-align: top;
2878+ height: auto;
2879+ zoom: 1;
2880+ *display: inline;
2881+}
2882+footer nav ul.last {
2883+ margin-right: 0;
2884+}
2885+footer nav li {
2886+ margin-bottom: 8px;
2887+}
2888+footer nav li:first-child {
2889+ font-weight: bold;
2890+}
2891+footer p {
2892+ margin-bottom: 0;
2893+}
2894+#content {
2895+ padding-top: 35px;
2896+}
2897+.arrow-nav {
2898+ display: none;
2899+ position: absolute;
2900+ top: -1px;
2901+ z-index: 3;
2902+}
2903+.shadow {
2904+ margin: 30px 0 3px 0;
2905+ border-bottom: 1px solid #e0e0e0;
2906+ -moz-box-shadow: 0 2px 3px #e0e0e0;
2907+ -webkit-box-shadow: 0 2px 3px #e0e0e0;
2908+ box-shadow: 0 2px 3px #e0e0e0;
2909+ height: 3px;
2910+}
2911+
2912+/**
2913+* @section Site-wide
2914+*/
2915+
2916+#content h2{
2917+ font-size:24px;
2918+}
2919+
2920+.box-orange {
2921+ padding: 10px;
2922+ border: 3px solid #dd4814;
2923+ -moz-border-radius: 4px;
2924+ -webkit-border-radius: 4px;
2925+ border-radius: 4px;
2926+}
2927+.box-orange .link-action-small {
2928+ float: right;
2929+ margin: 0 0 0 20px;
2930+}
2931+.link-bug {
2932+ margin-left: 10px;
2933+ color: #999;
2934+}
2935+.link-action {
2936+ float: left;
2937+ margin-bottom: 20px;
2938+ padding: 8px 12px;
2939+ display: block;
2940+ background-color: #dd4814;
2941+ color: #fff;
2942+ -moz-border-radius: 20px;
2943+ -webkit-border-radius: 20px;
2944+ border-radius: 20px;
2945+ font-size: 16px;
2946+ line-height: 1.3;
2947+ border-top: 3px solid #e6633a;
2948+ border-bottom: 3px solid #c03d14;
2949+}
2950+.link-action2 {
2951+ float: left;
2952+ display: block;
2953+ color: #fff;
2954+ font-size: 16px;
2955+ line-height: 1.3;
2956+}
2957+.link-action2 span{
2958+ display:block;
2959+ float:left;
2960+}
2961+.link-action2 .cta-left{
2962+ background:url(../img/button-cta-left.png) no-repeat;
2963+ width:22px;
2964+ height:48px;
2965+}
2966+.link-action2 .cta-center{
2967+ background:url(../img/button-cta-slice.png) repeat-x;
2968+ line-height:45px;
2969+ height:48px;
2970+}
2971+.link-action2 .cta-right{
2972+ background:url(../img/button-cta-right.png) no-repeat;
2973+ width:22px;
2974+ height:48px;
2975+}
2976+
2977+.link-action-small {
2978+ float: left;
2979+ display: block;
2980+ color: #fff;
2981+ font-size: 16px;
2982+}
2983+.link-action-small span{
2984+ display:block;
2985+ float:left;
2986+ height:42px;
2987+}
2988+.link-action-small .cta-left{
2989+ background:url(../img/button-cta-left-small.png) no-repeat;
2990+ width:19px;
2991+}
2992+.link-action-small .cta-center{
2993+ background:url(../img/button-cta-slice-small.png) repeat-x;
2994+ line-height:42px;
2995+}
2996+.link-action-small .cta-right{
2997+ background:url(../img/button-cta-right-small.png) no-repeat;
2998+ width:19px;
2999+}
3000+
3001+.link-action:active {
3002+ position: relative;
3003+ top: 1px;
3004+}
3005+.link-action2:active {
3006+ position: relative;
3007+ top: 1px;
3008+}
3009+.link-action-small:active {
3010+ position: relative;
3011+ top: 1px;
3012+}
3013+.list-bullets li {
3014+ margin-bottom: 10px;
3015+ list-style: disc;
3016+ list-style-position: inside;
3017+}
3018+.box {
3019+ margin-bottom: 30px;
3020+ padding: 15px;
3021+ border: 1px solid #aea79f;
3022+ -moz-border-radius: 4px;
3023+ -webkit-border-radius: 4px;
3024+ border-radius: 4px;
3025+}
3026+.box-padded {
3027+ margin-bottom: 30px;
3028+ padding: 5px;
3029+ border: 2px solid #aea79f;
3030+ -moz-border-radius: 4px;
3031+ -webkit-border-radius: 4px;
3032+ border-radius: 4px;
3033+ background: url("../img/pattern-featured.gif") repeat scroll 0 0 #ebe9e7;
3034+ overflow: hidden;
3035+}
3036+.box-padded h3 {
3037+ margin: 5px 0 10px 5px;
3038+}
3039+.box-padded div {
3040+ padding: 10px;
3041+ border: 1px solid #aea79f;
3042+ -moz-border-radius: 4px;
3043+ -webkit-border-radius: 4px;
3044+ border-radius: 4px;
3045+ background-color: #fff;
3046+ overflow: hidden;
3047+}
3048+.box-padded li {
3049+ padding: 0 10px;
3050+ float: left;
3051+ width: 211px;
3052+ border-right: 1px dotted #aea79f;
3053+}
3054+.box-padded li.first {
3055+ padding: 0;
3056+ margin-bottom: 0;
3057+}
3058+.box-padded li.last {
3059+ border: 0;
3060+ width: 217px;
3061+}
3062+.box-padded img {
3063+ margin: 0 10px 50px 0;
3064+ float: left;
3065+ -moz-border-radius: 8px;
3066+ -webkit-border-radius: 8px;
3067+ border-radius: 8px;
3068+}
3069+.box-clear {
3070+ margin-bottom: 40px;
3071+}
3072+.box-clear .grid-4.first {
3073+ margin-right: 15px;
3074+ padding-right: 15px;
3075+}
3076+.box-clear .grid-4 {
3077+ margin-left: 0;
3078+ margin-right: 10px;
3079+ padding-right: 10px;
3080+ width: 298px;
3081+}
3082+.box-clear time {
3083+ display: block;
3084+ border-bottom: 1px dotted #aea79f;
3085+ padding-bottom: 10px;
3086+ margin-bottom: 10px;
3087+}
3088+.box-clear div.first {
3089+ border-right: 1px dotted #aea79f;
3090+}
3091+.box-clear a {
3092+ display: block;
3093+}
3094+.box-clear .rss {
3095+ background: url("../img/rss.jpg") no-repeat scroll 0 center;
3096+ padding-left: 20px;
3097+}
3098+.box-clear .location {
3099+ display: block;
3100+ margin-bottom: 1px;
3101+}
3102+.box-clear .last {
3103+ margin: 0;
3104+ padding-right: 0;
3105+ -moz-border-radius: 4px;
3106+ -webkit-border-radius: 4px;
3107+ border-radius: 4px;
3108+ width: 293px;
3109+}
3110+
3111+/* Widgets */
3112+
3113+.ui-state-focus {
3114+ outline: none;
3115+}
3116+.ui-accordion {
3117+ border-bottom: 1px dotted #aea79f;
3118+}
3119+.ui-accordion a {
3120+ display: block;
3121+}
3122+.ui-accordion h3 {
3123+ margin-bottom: 0;
3124+ border-top: 1px dotted #aea79f;
3125+ position: relative;
3126+ font-size: 13px;
3127+ font-weight: bold;
3128+}
3129+.ui-accordion h3 a {
3130+ padding: 10px 0;
3131+ color: #333;
3132+}
3133+.ui-accordion h4 {
3134+ margin-bottom: 5px;
3135+}
3136+.ui-accordion div fieldset {
3137+ padding-bottom: 5px;
3138+}
3139+.ui-accordion div li,
3140+.ui-accordion div input {
3141+ margin-bottom: 10px;
3142+}
3143+.ui-accordion .ui-icon {
3144+ position: absolute;
3145+ top: 15px;
3146+ right: 0;
3147+ display: block;
3148+ width: 8px;
3149+ height: 8px;
3150+ background: url("../img/icon-accordion-inactive.png") 0 0 no-repeat transparent;
3151+}
3152+.ui-accordion .ui-state-active .ui-icon {
3153+ background-image: url("../img/icon-accordion-active.png");
3154+}
3155+.ui-accordion .current_page_item a {
3156+ color: #333;
3157+}
3158+.container-tweet {
3159+ -moz-border-radius: 4px 4px 4px 4px;
3160+ -webkit-border-radius: 4px 4px 4px 4px;
3161+ border-radius: 4px 4px 4px 4px;
3162+ padding: 10px 10px 10px;
3163+ background-color: #f7f7f7;
3164+}
3165+.container-tweet .tweet-follow {
3166+ margin-top: 10px;
3167+ margin-bottom: -10px;
3168+ padding-left: 55px;
3169+ padding-bottom: 6px;
3170+ background: url("../img/tweet-follow.png") 0 5px no-repeat;
3171+ display: block;
3172+}
3173+.container-tweet .tweet-follow span {
3174+ font-size: 16px;
3175+ font-weight: bold;
3176+ line-height: 1.2;
3177+ display: block;
3178+}
3179+.tweet a {
3180+ display: inline;
3181+}
3182+.tweet .tweet_text {
3183+ padding: 10px;
3184+ background-color: #fff;
3185+ -moz-border-radius: 4px 4px 4px 4px;
3186+ -webkit-border-radius: 4px 4px 4px 4px;
3187+ border-radius: 4px 4px 4px 4px;
3188+ border: 1px solid #dd4814;
3189+ font-size: 16px;
3190+ display: block;
3191+ clear: both;
3192+}
3193+.tweet.tweet-small .tweet_text {
3194+ font-size: inherit;
3195+}
3196+.tweet .tweet_text a {
3197+ color: #333;
3198+}
3199+.tweet .tweet_time,
3200+.tweet .tweet_user_and_time {
3201+ padding: 15px 0 10px 0;
3202+ position: relative;
3203+ top: -2px;
3204+ background: url("../img/tweet-arrow.png") no-repeat;
3205+ display: block;
3206+}
3207+.tweet .tweet_odd .tweet_time,
3208+.tweet .tweet_odd .tweet_user_and_time {
3209+ background-position: right 0;
3210+ float: right;
3211+}
3212+.tweet .tweet_even .tweet_time,
3213+.tweet .tweet_even .tweet_user_and_time {
3214+ background-position: left 0;
3215+ float: left;
3216+}
3217+
3218+/* Search */
3219+
3220+#content .list-search li {
3221+ list-style-type:none;
3222+ border:0px;
3223+ margin-bottom: 15px;
3224+ padding-top: 15px;
3225+}
3226+
3227+/* Blog */
3228+
3229+.blog-article #nav-single {
3230+ margin-top: 30px;
3231+ margin-bottom: 30px;
3232+}
3233+.blog-article #nav-single .nav-next {
3234+ float: right;
3235+}
3236+.blog-article article header .entry-meta {
3237+ margin-bottom: 20px;
3238+}
3239+.blog-article article .entry-meta {
3240+ color: #999;
3241+}
3242+.blog-article #respond form input[type="submit"] {
3243+ float: left;
3244+ cursor: pointer;
3245+ margin-bottom: 20px;
3246+ padding: 8px 12px;
3247+ display: block;
3248+ background-color: #dd4814;
3249+ color: #fff;
3250+ -moz-border-radius: 20px;
3251+ -webkit-border-radius: 20px;
3252+ border-radius: 20px;
3253+ font-size: 16px;
3254+ line-height: 1.3;
3255+ border-top: 3px solid #e6633a;
3256+ border-left: 3px solid #e6633a;
3257+ border-right: 3px solid #e6633a;
3258+ border-bottom: 3px solid #c03d14;
3259+}
3260+.blog-article #respond form input[type="submit"]:active {
3261+ position: relative;
3262+ top: 1px;
3263+}
3264+
3265+.alignnone{
3266+ float:left;
3267+ margin:10px 20px 10px 0;
3268+}
3269+.alignleft{
3270+ float:left;
3271+ margin:10px 20px 10px 0;
3272+}
3273+.alignright{
3274+ float:right;
3275+ margin:10px 0 10px 20px;
3276+}
3277+
3278+.aligncenter{
3279+ float:left;
3280+ margin:10px 20px 10px 0;
3281+}
3282+.entry-content h2, .entry-content h3{
3283+ margin-top:20px;
3284+}
3285+.entry-content ul li{
3286+ list-style-type: circle;
3287+ margin-left:16px;
3288+}
3289+
3290+.entry-content hr{
3291+ border:none;
3292+ border-top: 1px dotted #AEA79F;
3293+}
3294
3295=== added file 'doc/qt/qml/css/qtquick.css'
3296--- doc/qt/qml/css/qtquick.css 1970-01-01 00:00:00 +0000
3297+++ doc/qt/qml/css/qtquick.css 2015-05-13 10:12:45 +0000
3298@@ -0,0 +1,772 @@
3299+@media screen
3300+{
3301+
3302+/* basic elements */
3303+ html
3304+ {
3305+ color: #000000;
3306+ background: #FFFFFF;
3307+ }
3308+ table
3309+ {
3310+ border-collapse: collapse;
3311+ border-spacing: 0;
3312+ }
3313+ fieldset, img
3314+ {
3315+ border: 0;
3316+ max-width:100%;
3317+ }
3318+ address, caption, cite, code, dfn, em, strong, th, var, optgroup
3319+ {
3320+ font-style: inherit;
3321+ font-weight: inherit;
3322+ }
3323+ del, ins
3324+ {
3325+ text-decoration: none;
3326+ }
3327+ ol li
3328+ {
3329+ list-style: decimal;
3330+ }
3331+ ul li
3332+ {
3333+ list-style: none;
3334+ }
3335+ caption, th
3336+ {
3337+ text-align: left;
3338+ }
3339+ h1.title
3340+ {
3341+ font-weight: bold;
3342+ font-size: 150%;
3343+ }
3344+ h0
3345+ {
3346+ font-weight: bold;
3347+ font-size: 130%;
3348+ }
3349+ h1, h2, h3, h4, h5, h6
3350+ {
3351+ font-size: 100%;
3352+ }
3353+ q:before, q:after
3354+ {
3355+ content: '';
3356+ }
3357+ abbr, acronym
3358+ {
3359+ border: 0;
3360+ font-variant: normal;
3361+ }
3362+ sup, sub
3363+ {
3364+ vertical-align: baseline;
3365+ }
3366+ tt, .qmlreadonly span, .qmldefault span
3367+ {
3368+ word-spacing:0.5em;
3369+ }
3370+ legend
3371+ {
3372+ color: #000000;
3373+ }
3374+ strong
3375+ {
3376+ font-weight: bold;
3377+ }
3378+ em
3379+ {
3380+ font-style: italic;
3381+ }
3382+
3383+ body
3384+ {
3385+ margin: 0 1.5em 0 1.5em;
3386+ font-family: ubuntu;
3387+ line-height: normal
3388+ }
3389+ a
3390+ {
3391+ color: #00732F;
3392+ text-decoration: none;
3393+ }
3394+ hr
3395+ {
3396+ background-color: #E6E6E6;
3397+ border: 1px solid #E6E6E6;
3398+ height: 1px;
3399+ width: 100%;
3400+ text-align: left;
3401+ margin: 1.5em 0 1.5em 0;
3402+ }
3403+
3404+ pre
3405+ {
3406+ border: 1px solid #DDDDDD;
3407+ -moz-border-radius: 0.7em 0.7em 0.7em 0.7em;
3408+ -webkit-border-radius: 0.7em 0.7em 0.7em 0.7em;
3409+ border-radius: 0.7em 0.7em 0.7em 0.7em;
3410+ padding: 1em 1em 1em 1em;
3411+ overflow-x: auto;
3412+ }
3413+ table, pre
3414+ {
3415+ -moz-border-radius: 0.7em 0.7em 0.7em 0.7em;
3416+ -webkit-border-radius: 0.7em 0.7em 0.7em 0.7em;
3417+ border-radius: 0.7em 0.7em 0.7em 0.7em;
3418+ background-color: #F6F6F6;
3419+ border: 1px solid #E6E6E6;
3420+ border-collapse: separate;
3421+ margin-bottom: 2.5em;
3422+ }
3423+ pre {
3424+ font-size: 90%;
3425+ display: block;
3426+ overflow:hidden;
3427+ }
3428+ thead
3429+ {
3430+ margin-top: 0.5em;
3431+ font-weight: bold
3432+ }
3433+ th
3434+ {
3435+ padding: 0.5em 1.5em 0.5em 1em;
3436+ background-color: #E1E1E1;
3437+ border-left: 1px solid #E6E6E6;
3438+ }
3439+ td
3440+ {
3441+ padding: 0.25em 1.5em 0.25em 1em;
3442+ }
3443+
3444+ td.rightAlign
3445+ {
3446+ padding: 0.25em 0.5em 0.25em 1em;
3447+ }
3448+ table tr.odd
3449+ {
3450+ border-left: 1px solid #E6E6E6;
3451+ background-color: #F6F6F6;
3452+ color: black;
3453+ }
3454+ table tr.even
3455+ {
3456+ border-left: 1px solid #E6E6E6;
3457+ background-color: #ffffff;
3458+ color: #202020;
3459+ }
3460+
3461+ div.float-left
3462+ {
3463+ float: left; margin-right: 2em
3464+ }
3465+ div.float-right
3466+ {
3467+ float: right; margin-left: 2em
3468+ }
3469+
3470+ span.comment
3471+ {
3472+ color: #008B00;
3473+ }
3474+ span.string, span.char
3475+ {
3476+ color: #000084;
3477+ }
3478+ span.number
3479+ {
3480+ color: #a46200;
3481+ }
3482+ span.operator
3483+ {
3484+ color: #202020;
3485+ }
3486+ span.keyword
3487+ {
3488+ color: #840000;
3489+ }
3490+ span.name
3491+ {
3492+ color: black
3493+ }
3494+ span.type
3495+ {
3496+ font-weight: bold
3497+ }
3498+ span.type a:visited
3499+ {
3500+ color: #0F5300;
3501+ }
3502+ span.preprocessor
3503+ {
3504+ color: #404040
3505+ }
3506+/* end basic elements */
3507+
3508+/* font style elements */
3509+ .heading
3510+ {
3511+ font-weight: bold;
3512+ font-size: 125%;
3513+ }
3514+ .subtitle
3515+ {
3516+ font-size: 110%
3517+ }
3518+ .small-subtitle
3519+ {
3520+ font-size: 100%
3521+ }
3522+ .red
3523+ {
3524+ color:red;
3525+ }
3526+/* end font style elements */
3527+
3528+/* global settings*/
3529+ .header, .footer
3530+ {
3531+ display: block;
3532+ clear: both;
3533+ overflow: hidden;
3534+ }
3535+/* end global settings*/
3536+
3537+/* header elements */
3538+ .header .qtref
3539+ {
3540+ color: #00732F;
3541+ font-weight: bold;
3542+ font-size: 130%;
3543+ }
3544+
3545+ .header .content
3546+ {
3547+ margin-left: 5px;
3548+ margin-top: 5px;
3549+ margin-bottom: 0.5em;
3550+ }
3551+
3552+ .header .breadcrumb
3553+ {
3554+ font-size: 90%;
3555+ padding: 0.5em 0 0.5em 1em;
3556+ margin: 0;
3557+ background-color: #fafafa;
3558+ height: 1.35em;
3559+ border-bottom: 1px solid #d1d1d1;
3560+ }
3561+
3562+ .header .breadcrumb ul
3563+ {
3564+ margin: 0;
3565+ padding: 0;
3566+ }
3567+
3568+ .header .content
3569+ {
3570+ word-wrap: break-word;
3571+ }
3572+
3573+ .header .breadcrumb ul li
3574+ {
3575+ float: left;
3576+ background: url(../images/breadcrumb.png) no-repeat 0 3px;
3577+ padding-left: 1.5em;
3578+ margin-left: 1.5em;
3579+ }
3580+
3581+ .header .breadcrumb ul li.last
3582+ {
3583+ font-weight: normal;
3584+ }
3585+
3586+ .header .breadcrumb ul li a
3587+ {
3588+ color: #00732F;
3589+ }
3590+
3591+ .header .breadcrumb ul li.first
3592+ {
3593+ background-image: none;
3594+ padding-left: 0;
3595+ margin-left: 0;
3596+ }
3597+
3598+ .header .content ol li {
3599+ background: none;
3600+ margin-bottom: 1.0em;
3601+ margin-left: 1.2em;
3602+ padding-left: 0
3603+ }
3604+
3605+ .header .content li
3606+ {
3607+ background: url(../images/bullet_sq.png) no-repeat 0 5px;
3608+ margin-bottom: 1em;
3609+ padding-left: 1.2em;
3610+ }
3611+
3612+/* end header elements */
3613+
3614+/* content elements */
3615+ .content h1
3616+ {
3617+ font-weight: bold;
3618+ font-size: 130%
3619+ }
3620+
3621+ .content h2
3622+ {
3623+ font-weight: bold;
3624+ font-size: 120%;
3625+ width: 100%;
3626+ }
3627+ .content h3
3628+ {
3629+ font-weight: bold;
3630+ font-size: 110%;
3631+ width: 100%;
3632+ }
3633+ .content table p
3634+ {
3635+ margin: 0
3636+ }
3637+ .content ul
3638+ {
3639+ padding-left: 2.5em;
3640+ }
3641+ .content li
3642+ {
3643+ padding-top: 0.25em;
3644+ padding-bottom: 0.25em;
3645+ }
3646+ .content ul img {
3647+ vertical-align: middle;
3648+ }
3649+
3650+ .content a:visited
3651+ {
3652+ color: #4c0033;
3653+ text-decoration: none;
3654+ }
3655+
3656+ .content a:visited:hover
3657+ {
3658+ color: #4c0033;
3659+ text-decoration: underline;
3660+ }
3661+
3662+ a:hover
3663+ {
3664+ color: #4c0033;
3665+ text-decoration: underline;
3666+ }
3667+ descr p a
3668+ {
3669+ text-decoration: underline;
3670+ }
3671+
3672+ .descr p a:visited
3673+ {
3674+ text-decoration: underline;
3675+ }
3676+
3677+ .alphaChar{
3678+ width:95%;
3679+ background-color:#F6F6F6;
3680+ border:1px solid #E6E6E6;
3681+ -moz-border-radius: 7px 7px 7px 7px;
3682+ border-radius: 7px 7px 7px 7px;
3683+ -webkit-border-radius: 7px 7px 7px 7px;
3684+ font-size:12pt;
3685+ padding-left:10px;
3686+ margin-top:10px;
3687+ margin-bottom:10px;
3688+ }
3689+ .flowList{
3690+ /*vertical-align:top;*/
3691+ /*margin:20px auto;*/
3692+
3693+ column-count:3;
3694+ -webkit-column-count:3;
3695+ -moz-column-count:3;
3696+/*
3697+ column-width:100%;
3698+ -webkit-column-width:200px;
3699+ -col-column-width:200px;
3700+*/
3701+ column-gap:41px;
3702+ -webkit-column-gap:41px;
3703+ -moz-column-gap:41px;
3704+
3705+ column-rule: 1px dashed #ccc;
3706+ -webkit-column-rule: 1px dashed #ccc;
3707+ -moz-column-rule: 1px dashed #ccc;
3708+ }
3709+
3710+ .flowList dl{
3711+ }
3712+ .flowList dd{
3713+ /*display:inline-block;*/
3714+ margin-left:10px;
3715+ min-width:250px;
3716+ line-height: 1.5;
3717+ min-width:100%;
3718+ min-height:15px;
3719+ }
3720+
3721+ .flowList dd a{
3722+ }
3723+
3724+ .mainContent
3725+ {
3726+ padding-left:5px;
3727+ }
3728+
3729+ .content .flowList p{
3730+ padding:0px;
3731+ }
3732+
3733+ .content .alignedsummary
3734+ {
3735+ margin: 15px;
3736+ }
3737+
3738+
3739+ .qmltype
3740+ {
3741+ text-align: center;
3742+ font-size: 120%;
3743+ }
3744+ .qmlreadonly
3745+ {
3746+ padding-left: 5px;
3747+ float: right;
3748+ color: #254117;
3749+ }
3750+
3751+ .qmldefault
3752+ {
3753+ padding-left: 5px;
3754+ float: right;
3755+ color: red;
3756+ }
3757+
3758+ .qmldoc
3759+ {
3760+ }
3761+
3762+ .generic .alphaChar{
3763+ margin-top:5px;
3764+ }
3765+
3766+ .generic .odd .alphaChar{
3767+ background-color: #F6F6F6;
3768+ }
3769+
3770+ .generic .even .alphaChar{
3771+ background-color: #FFFFFF;
3772+ }
3773+
3774+ .memItemRight{
3775+ padding: 0.25em 1.5em 0.25em 0;
3776+ }
3777+ .highlightedCode
3778+ {
3779+ margin: 1.0em;
3780+ }
3781+ .annotated td {
3782+ padding: 0.25em 0.5em 0.25em 0.5em;
3783+ }
3784+
3785+ .toc
3786+ {
3787+ font-size: 80%
3788+ }
3789+
3790+ .header .content .toc ul
3791+ {
3792+ padding-left: 0px;
3793+ }
3794+
3795+ .content .toc h3 {
3796+ border-bottom: 0px;
3797+ margin-top: 0px;
3798+ }
3799+
3800+ .content .toc h3 a:hover {
3801+ color: #00732F;
3802+ text-decoration: none;
3803+ }
3804+
3805+ .content .toc .level2
3806+ {
3807+ margin-left: 1.5em;
3808+ }
3809+
3810+ .content .toc .level3
3811+ {
3812+ margin-left: 3.0em;
3813+ }
3814+
3815+ .content ul li
3816+ {
3817+ background: url(../images/bullet_sq.png) no-repeat 0 0.7em;
3818+ padding-left: 1em
3819+ }
3820+
3821+ .content .toc li
3822+ {
3823+ background: url(../images/bullet_dn.png) no-repeat 0 5px;
3824+ padding-left: 1em
3825+ }
3826+
3827+ .relpage
3828+ {
3829+ -moz-border-radius: 7px 7px 7px 7px;
3830+ -webkit-border-radius: 7px 7px 7px 7px;
3831+ border-radius: 7px 7px 7px 7px;
3832+ border: 1px solid #DDDDDD;
3833+ padding: 25px 25px;
3834+ clear: both;
3835+ }
3836+ .relpage ul
3837+ {
3838+ float: none;
3839+ padding: 1.5em;
3840+ }
3841+
3842+ h3.fn, span.fn
3843+ {
3844+ -moz-border-radius:7px 7px 7px 7px;
3845+ -webkit-border-radius:7px 7px 7px 7px;
3846+ border-radius:7px 7px 7px 7px;
3847+ background-color: #F6F6F6;
3848+ border-width: 1px;
3849+ border-style: solid;
3850+ border-color: #E6E6E6;
3851+ font-weight: bold;
3852+ word-spacing:3px;
3853+ padding:3px 5px;
3854+ }
3855+
3856+ .functionIndex {
3857+ font-size:12pt;
3858+ word-spacing:10px;
3859+ margin-bottom:10px;
3860+ background-color: #F6F6F6;
3861+ border-width: 1px;
3862+ border-style: solid;
3863+ border-color: #E6E6E6;
3864+ -moz-border-radius: 7px 7px 7px 7px;
3865+ -webkit-border-radius: 7px 7px 7px 7px;
3866+ border-radius: 7px 7px 7px 7px;
3867+ width:100%;
3868+ }
3869+
3870+ .centerAlign
3871+ {
3872+ text-align:center;
3873+ }
3874+
3875+ .rightAlign
3876+ {
3877+ text-align:right;
3878+ }
3879+
3880+ .leftAlign
3881+ {
3882+ text-align:left;
3883+ }
3884+
3885+ .topAlign{
3886+ vertical-align:top
3887+ }
3888+
3889+ .functionIndex a{
3890+ display:inline-block;
3891+ }
3892+
3893+/* end content elements */
3894+/* footer elements */
3895+
3896+ .footer
3897+ {
3898+ color: #393735;
3899+ font-size: 0.75em;
3900+ text-align: center;
3901+ padding-top: 1.5em;
3902+ padding-bottom: 1em;
3903+ background-color: #E6E7E8;
3904+ margin: 0;
3905+ }
3906+ .footer p
3907+ {
3908+ margin: 0.25em
3909+ }
3910+ .small
3911+ {
3912+ font-size: 0.5em;
3913+ }
3914+/* end footer elements */
3915+
3916+ .item {
3917+ float: left;
3918+ position: relative;
3919+ width: 100%;
3920+ overflow: hidden;
3921+ }
3922+
3923+
3924+ .item .primary {
3925+ margin-right: 220px;
3926+ position: relative;
3927+ }
3928+
3929+ .item hr {
3930+ margin-left: -220px;
3931+ }
3932+
3933+ .item .secondary {
3934+ float: right;
3935+ width: 200px;
3936+ position: relative;
3937+ }
3938+
3939+ .item .cols {
3940+ clear: both;
3941+ display: block;
3942+ }
3943+
3944+ .item .cols .col {
3945+ float: left;
3946+ margin-left: 1.5%;
3947+ }
3948+
3949+ .item .cols .col.first {
3950+ margin-left: 0;
3951+ }
3952+
3953+ .item .cols.two .col {
3954+ width: 45%;
3955+ }
3956+
3957+ .item .box {
3958+ margin: 0 0 10px 0;
3959+ }
3960+
3961+ .item .box h3 {
3962+ margin: 0 0 10px 0;
3963+ }
3964+
3965+ .cols.unclear {
3966+ clear:none;
3967+ }
3968+}
3969+
3970+/* end of screen media */
3971+
3972+/* start of print media */
3973+
3974+@media print
3975+{
3976+ input, textarea, .header, .footer, .toolbar, .feedback, .wrapper .hd, .wrapper .bd .sidebar, .wrapper .ft, #feedbackBox, #blurpage, .toc, .breadcrumb, .toolbar, .floatingResult
3977+ {
3978+ display: none;
3979+ background: none;
3980+ }
3981+ .content
3982+ {
3983+ background: none;
3984+ display: block;
3985+ width: 100%; margin: 0; float: none;
3986+ }
3987+}
3988+/* end of print media */
3989+
3990+
3991+/* modify the TOC layouts */
3992+div.toc ul {
3993+ padding-left: 20px;
3994+}
3995+div.toc li {
3996+ padding-left: 4px;
3997+}
3998+/* Remove the border around images*/
3999+a img
4000+{
4001+ border:none;
4002+}
4003+
4004+/*Add styling to the front pages*/
4005+
4006+.threecolumn_area
4007+{
4008+ padding-top: 20px;
4009+ padding-bottom: 20px;
4010+}
4011+.threecolumn_piece
4012+{
4013+ display: inline-block;
4014+ margin-left: 78px;
4015+ margin-top: 8px;
4016+ padding: 0;
4017+ vertical-align: top;
4018+ width: 25.5%;
4019+}
4020+div.threecolumn_piece ul {
4021+ list-style-type: none;
4022+ padding-left: 0px;
4023+ margin-top: 2px;
4024+}
4025+div.threecolumn_piece p {
4026+ margin-bottom: 7px;
4027+ color: #5C626E;
4028+ text-decoration: none;
4029+ font-weight: bold;
4030+}
4031+div.threecolumn_piece li {
4032+ padding-left: 0px;
4033+ margin-bottom: 5px;
4034+}
4035+div.threecolumn_piece a {
4036+ font-weight: normal;
4037+}
4038+/* Add style to guide page*/
4039+.fourcolumn_area
4040+{
4041+ padding-top: 20px;
4042+ padding-bottom: 20px;
4043+}
4044+.fourcolumn_piece
4045+{
4046+ display: inline-block;
4047+ margin-left: 35px;
4048+ margin-top: 8px;
4049+ padding: 0;
4050+ vertical-align: top;
4051+ width: 21.3%;
4052+}
4053+div.fourcolumn_piece ul {
4054+ list-style-type: none;
4055+ padding-left: 0px;
4056+ margin-top: 2px;
4057+}
4058+div.fourcolumn_piece p {
4059+ margin-bottom: 7px;
4060+ color: #40444D;
4061+ text-decoration: none;
4062+ font-weight: bold;
4063+}
4064+div.fourcolumn_piece li {
4065+ padding-left: 0px;
4066+ margin-bottom: 5px;
4067+}
4068+div.fourcolumn_piece a {
4069+ font-weight: normal;
4070+}
4071
4072=== added file 'doc/qt/qml/css/reset.css'
4073--- doc/qt/qml/css/reset.css 1970-01-01 00:00:00 +0000
4074+++ doc/qt/qml/css/reset.css 2015-05-13 10:12:45 +0000
4075@@ -0,0 +1,8 @@
4076+/*
4077+Copyright (c) 2010, Yahoo! Inc. All rights reserved.
4078+Code licensed under the BSD License:
4079+http://developer.yahoo.com/yui/license.html
4080+version: 3.3.0
4081+build: 3167
4082+*/
4083+html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}
4084\ No newline at end of file
4085
4086=== added file 'doc/qt/qml/css/scratch.css'
4087--- doc/qt/qml/css/scratch.css 1970-01-01 00:00:00 +0000
4088+++ doc/qt/qml/css/scratch.css 2015-05-13 10:12:45 +0000
4089@@ -0,0 +1,61 @@
4090+body {
4091+ margin: 0;
4092+}
4093+
4094+
4095+div.toc ul {
4096+ padding: 0;
4097+}
4098+
4099+div.toc li {
4100+ margin-bottom: 3px;
4101+}
4102+
4103+h1.title {
4104+ font-size: 36px;
4105+ line-height: 1.1;
4106+ font-weight: normal;
4107+}
4108+h0, h2 {
4109+ font-size: 24px;
4110+ line-height: 1.2;
4111+ margin: 14px 0;
4112+ font-weight: normal;
4113+ display: block;
4114+}
4115+a:hover {
4116+ color: #dd4814;
4117+ text-decoration: underline;
4118+ outline: 0;
4119+}
4120+table, pre {
4121+ border-radius: 0;
4122+}
4123+
4124+.annotated td {
4125+ padding: 0.8em 1em 0.3em;
4126+}
4127+.wrapper {
4128+ width: 940px;
4129+ margin: 0 auto;
4130+}
4131+.main-content {
4132+ width: 668px;
4133+ position: relative;
4134+ left: 270px;
4135+}
4136+.title {
4137+ margin-left: -270px;
4138+ margin-top: 30px;
4139+ margin-bottom: 50px;
4140+}
4141+.toc {
4142+ margin-left: -270px;
4143+ font-size: 100%;
4144+ margin-bottom: 40px;
4145+ padding: 0;
4146+ z-index: 2;
4147+ position: absolute;
4148+ top: 100px;
4149+ width: 250px;
4150+}
4151
4152=== added directory 'doc/qt/qml/examples'
4153=== added file 'doc/qt/qml/examples/example_networking_status.qml'
4154--- doc/qt/qml/examples/example_networking_status.qml 1970-01-01 00:00:00 +0000
4155+++ doc/qt/qml/examples/example_networking_status.qml 2015-05-13 10:12:45 +0000
4156@@ -0,0 +1,65 @@
4157+/*
4158+ * Copyright (C) 2014 Canonical Ltd.
4159+ *
4160+ * This program is free software: you can redistribute it and/or modify it
4161+ * under the terms of the GNU Lesser General Public License version 3,
4162+ * as published by the Free Software Foundation.
4163+ *
4164+ * This program is distributed in the hope that it will be useful,
4165+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4166+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4167+ * GNU Lesser General Public License for more details.
4168+ *
4169+ * You should have received a copy of the GNU Lesser General Public License
4170+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
4171+ */
4172+
4173+
4174+import QtQuick 2.0
4175+import Ubuntu.Components 0.1
4176+import Ubuntu.Connectivity 1.0
4177+
4178+MainView {
4179+ id: root
4180+ objectName: "mainView"
4181+ applicationName: "NetworkingStatus"
4182+
4183+ width: units.gu(100)
4184+ height: units.gu(75)
4185+
4186+ property real margins: units.gu(2)
4187+ property real buttonWidth: units.gu(9)
4188+
4189+ Connections {
4190+ target: NetworkingStatus
4191+
4192+ // full status can be retrieved from the base C++ class
4193+ // status property
4194+ onStatusChanged: {
4195+ if (status === NetworkingStatus.Offline)
4196+ console.log("Status: Offline")
4197+ if (status === NetworkingStatus.Connecting)
4198+ console.log("Status: Connecting")
4199+ if (status === NetworkingStatus.Online)
4200+ console.log("Status: Online")
4201+ }
4202+ }
4203+
4204+ Page {
4205+ title: i18n.tr("Networking Status")
4206+
4207+ Column {
4208+ anchors.centerIn: parent
4209+ Label {
4210+ // use the online property
4211+ text: NetworkingStatus.online ? "Online" : "Not online"
4212+ fontSize: "large"
4213+ }
4214+ Label {
4215+ // use the limitedBandwith property
4216+ text: NetworkingStatus.limitedBandwith ? "Bandwith limited" : "Bandwith not limited"
4217+ fontSize: "large"
4218+ }
4219+ }
4220+ }
4221+}
4222
4223=== added directory 'doc/qt/qml/pages'
4224=== added file 'doc/qt/qml/pages/mainpage.qdoc'
4225--- doc/qt/qml/pages/mainpage.qdoc 1970-01-01 00:00:00 +0000
4226+++ doc/qt/qml/pages/mainpage.qdoc 2015-05-13 10:12:45 +0000
4227@@ -0,0 +1,25 @@
4228+/*!
4229+\page index.html overview
4230+\title Ubuntu Connectivity API
4231+
4232+\contentspage {Ubuntu Connectivity API} {Contents}
4233+
4234+\part Introduction
4235+
4236+Ubuntu Connectivity API offers a way to access the connectivity related information of the system.
4237+Qt C++ API version of this API also exists (see the C++ documentation).
4238+
4239+\part Components
4240+Available through:
4241+\code
4242+ import Ubuntu.Connectivity 1.0
4243+\endcode
4244+
4245+\part Items
4246+\annotatedlist connectivity
4247+
4248+\part Reporting Bugs
4249+If you find any problems with the or this documentation,
4250+please file a bug in Connectivity API \l {https://bugs.launchpad.net/connectivity-api} {Launchpad page}.
4251+
4252+*/
4253
4254=== added directory 'doc/qt/qml/qml-api'
4255=== added file 'doc/qt/qml/qml-api/NetworkingStatus.qml'
4256--- doc/qt/qml/qml-api/NetworkingStatus.qml 1970-01-01 00:00:00 +0000
4257+++ doc/qt/qml/qml-api/NetworkingStatus.qml 2015-05-13 10:12:45 +0000
4258@@ -0,0 +1,86 @@
4259+/*
4260+ * Copyright © 2014 Canonical Ltd.
4261+ *
4262+ * This program is free software: you can redistribute it and/or modify it
4263+ * under the terms of the GNU Lesser General Public License version 3,
4264+ * as published by the Free Software Foundation.
4265+ *
4266+ * This program is distributed in the hope that it will be useful,
4267+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4268+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4269+ * GNU Lesser General Public License for more details.
4270+ *
4271+ * You should have received a copy of the GNU Lesser General Public License
4272+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
4273+ *
4274+ * Authors:
4275+ * Antti Kaijanmäki <antti.kaijanmaki@canonical.com>
4276+ */
4277+
4278+import QtQuick 2.0
4279+
4280+/*!
4281+ \qmltype NetworkingStatus
4282+ \ingroup connectivity
4283+ \brief Overall system networking status.
4284+
4285+ This is the top-level class for accessing networking information.
4286+
4287+ This class inherits the Qt C++ ubuntu::connectivity::NetworkingStatus
4288+ and provides two utility properties online and limitedBandwith for easier
4289+ QML usage.
4290+
4291+ This object is exposed as a singleton.
4292+
4293+ \b{note:}
4294+ Using this component in confined application requires \e{connectivity} policy group.
4295+
4296+ \quotefile example_networking_status.qml
4297+ */
4298+
4299+QtObject {
4300+
4301+ /*!
4302+ \qmlproperty bool NetworkingStatus::online
4303+ \b{true} if system has Internet connection.
4304+
4305+ shorthand for C++:
4306+ \code
4307+ networkingStatus->status() == NetworkingStatus::Online
4308+ \endcode
4309+ */
4310+ property bool online
4311+
4312+ /*!
4313+ \qmlproperty bool NetworkingStatus::limitedBandwith
4314+ \b{true} if Internet connection is bandwith limited.
4315+
4316+ shorthand for C++:
4317+ \code
4318+ networkingStatus->limitations().contains(NetworkingStatus::Limitations::Bandwith)
4319+ \endcode
4320+ */
4321+ property bool limitedBandwith
4322+
4323+ /*!
4324+ \qmlproperty list<Limitations> NetworkingStatus::limitations
4325+ */
4326+ property list<Limitations> limitations
4327+
4328+ /*!
4329+ \qmlproperty NetworkingStatus::Status status
4330+ status property of the base C++ class.
4331+
4332+ \code
4333+ onStatusChanged: {
4334+ if (status === NetworkingStatus::Offline)
4335+ ;
4336+ else if (status === NetworkingStatus::Connecting)
4337+ ;
4338+ else if (status === NetworkingStatus::Online)
4339+ ;
4340+ }
4341+ \endcode
4342+ */
4343+ property Status status
4344+}
4345
4346=== modified file 'po/CMakeLists.txt'
4347--- po/CMakeLists.txt 2014-05-21 17:04:23 +0000
4348+++ po/CMakeLists.txt 2015-05-13 10:12:45 +0000
4349@@ -1,33 +1,13 @@
4350-cmake_minimum_required(VERSION 2.8.9)
4351-find_package(Gettext REQUIRED)
4352-
4353-set(POT_FILE
4354- indicator-network.pot
4355-)
4356-
4357-file(GLOB PO_FILES
4358- *.po
4359-)
4360-
4361-set(MO_FILE indicator-network.mo)
4362-
4363-foreach(_file ${PO_FILES})
4364- get_filename_component(_lang ${_file} NAME_WE)
4365- set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
4366- add_custom_command(OUTPUT ${_gmoFile}
4367- COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_file}
4368- COMMAND install -D ${_gmoFile} ${CMAKE_CURRENT_BINARY_DIR}/locale/${_lang}/LC_MESSAGES/${MO_FILE}
4369- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
4370- DEPENDS ${_file}
4371- )
4372- install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo DESTINATION ${CMAKE_INSTALL_PREFIX}/share/locale/${_lang}/LC_MESSAGES/ RENAME ${MO_FILE})
4373- _gettext_get_unique_target_name( pofiles uniqueTargetName)
4374- add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFile})
4375-endforeach(_file)
4376-
4377-add_custom_command(OUTPUT ${POT_FILE}
4378- COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/update-indicator-network-pot
4379-)
4380-add_custom_target(pot_file
4381- DEPENDS ${POT_FILE}
4382-)
4383+find_package(Intltool REQUIRED)
4384+
4385+intltool_update_potfile(
4386+ KEYWORDS "_" "_:1,2" "N_" "N_:1,2"
4387+ GETTEXT_PACKAGE ${GETTEXT_PACKAGE}
4388+ COPYRIGHT_HOLDER "Canonical Ltd."
4389+)
4390+
4391+intltool_install_translations(
4392+ ALL
4393+ GETTEXT_PACKAGE ${GETTEXT_PACKAGE}
4394+)
4395+
4396
4397=== removed file 'po/update-indicator-network-pot'
4398--- po/update-indicator-network-pot 2014-05-21 17:04:23 +0000
4399+++ po/update-indicator-network-pot 1970-01-01 00:00:00 +0000
4400@@ -1,27 +0,0 @@
4401-#!/bin/sh
4402-set -e
4403-cd $(dirname $0)
4404-PO_DIR=$PWD
4405-
4406-PROGNAME=$(basename $0)
4407-
4408-# Create a list of files to scan
4409-GETTEXT_FILES=$(mktemp --tmpdir indicator-network.lst.XXXXX)
4410-trap 'rm -f "$GETTEXT_FILES"' EXIT
4411-cd ..
4412-find \( -name '*.h' -o -name '*.cpp' -o -name '*.qml' -o -name '*.js' \) \
4413- -a ! \( -path './debian/*' -o -path './builddir/*' -o -path './build/*' -o -path './.bzr/*' \) | sort \
4414-> $GETTEXT_FILES
4415-
4416-# Generate pot from our list
4417-xgettext \
4418- --output $PO_DIR/indicator-network.pot \
4419- --files-from $GETTEXT_FILES \
4420- --qt --c++ \
4421- --keyword=_ \
4422- --from-code=UTF-8 \
4423- --add-comments=TRANSLATORS \
4424- --package-name="indicator-network" \
4425- --copyright-holder="Canonical Ltd."
4426-
4427-echo "$PROGNAME: $PO_DIR/auto-generated.pot updated"
4428
4429=== modified file 'src/CMakeLists.txt'
4430--- src/CMakeLists.txt 2015-04-21 10:59:52 +0000
4431+++ src/CMakeLists.txt 2015-05-13 10:12:45 +0000
4432@@ -1,8 +1,4 @@
4433
4434-if(NOT build_type_lower MATCHES debug)
4435- set(COMMON_FLAGS "${COMMON_FLAGS} -Werror")
4436-endif()
4437-
4438 add_subdirectory(connectivity-api)
4439
4440 add_subdirectory(indicator)
4441
4442=== modified file 'src/connectivity-api/connectivity-qml/CMakeLists.txt'
4443--- src/connectivity-api/connectivity-qml/CMakeLists.txt 2015-04-21 10:59:52 +0000
4444+++ src/connectivity-api/connectivity-qml/CMakeLists.txt 2015-05-13 10:12:45 +0000
4445@@ -0,0 +1,33 @@
4446+
4447+include(QmlPlugins)
4448+
4449+find_package(Qt5Quick REQUIRED)
4450+
4451+include_directories(
4452+ "${CMAKE_SOURCE_DIR}/src/connectivity-api/connectivity-qt"
4453+)
4454+
4455+set(CONNECTIVITY_QML_SRC
4456+ plugin.cpp
4457+)
4458+
4459+add_library(connectivity-qml MODULE
4460+ ${CONNECTIVITY_QML_SRC}
4461+)
4462+
4463+qt5_use_modules(connectivity-qml
4464+ Qml
4465+)
4466+
4467+target_link_libraries(
4468+ connectivity-qml
4469+ connectivity-qt
4470+)
4471+
4472+add_qmlplugin(
4473+ Ubuntu.Connectivity
4474+ 1.0
4475+ Ubuntu/Connectivity
4476+ TARGET_PREFIX Connectivity
4477+ TARGETS connectivity-qml
4478+)
4479
4480=== added file 'src/connectivity-api/connectivity-qml/plugin.cpp'
4481--- src/connectivity-api/connectivity-qml/plugin.cpp 1970-01-01 00:00:00 +0000
4482+++ src/connectivity-api/connectivity-qml/plugin.cpp 2015-05-13 10:12:45 +0000
4483@@ -0,0 +1,51 @@
4484+/*
4485+ * Copyright © 2014 Canonical Ltd.
4486+ *
4487+ * This program is free software: you can redistribute it and/or modify it
4488+ * under the terms of the GNU Lesser General Public License version 3,
4489+ * as published by the Free Software Foundation.
4490+ *
4491+ * This program is distributed in the hope that it will be useful,
4492+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4493+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4494+ * GNU Lesser General Public License for more details.
4495+ *
4496+ * You should have received a copy of the GNU Lesser General Public License
4497+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
4498+ *
4499+ * Authors:
4500+ * Antti Kaijanmäki <antti.kaijanmaki@canonical.com>
4501+ */
4502+
4503+#include <plugin.h>
4504+#include <connectivityqt/connectivity.h>
4505+
4506+#include <QtQml>
4507+
4508+namespace
4509+{
4510+static QObject *
4511+connectivitySingletonProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
4512+{
4513+ Q_UNUSED(scriptEngine)
4514+
4515+ return new connectivityqt::Connectivity(QDBusConnection::sessionBus(), engine);
4516+}
4517+}
4518+
4519+void
4520+QmlConnectivityNetworkingPlugin::registerTypes(const char *uri)
4521+{
4522+ connectivityqt::Connectivity::registerMetaTypes();
4523+ qmlRegisterSingletonType<connectivityqt::Connectivity>(uri, 1, 0, "NetworkingStatus", connectivitySingletonProvider);
4524+ qmlRegisterSingletonType<connectivityqt::Connectivity>(uri, 1, 0, "Connectivity", connectivitySingletonProvider);
4525+}
4526+
4527+void
4528+QmlConnectivityNetworkingPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
4529+{
4530+ Q_UNUSED(uri);
4531+ Q_UNUSED(engine);
4532+}
4533+
4534+
4535
4536=== added file 'src/connectivity-api/connectivity-qml/plugin.h'
4537--- src/connectivity-api/connectivity-qml/plugin.h 1970-01-01 00:00:00 +0000
4538+++ src/connectivity-api/connectivity-qml/plugin.h 2015-05-13 10:12:45 +0000
4539@@ -0,0 +1,33 @@
4540+/*
4541+ * Copyright © 2014 Canonical Ltd.
4542+ *
4543+ * This program is free software: you can redistribute it and/or modify it
4544+ * under the terms of the GNU Lesser General Public License version 3,
4545+ * as published by the Free Software Foundation.
4546+ *
4547+ * This program is distributed in the hope that it will be useful,
4548+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4549+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4550+ * GNU Lesser General Public License for more details.
4551+ *
4552+ * You should have received a copy of the GNU Lesser General Public License
4553+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
4554+ *
4555+ * Authors:
4556+ * Antti Kaijanmäki <antti.kaijanmaki@canonical.com>
4557+ */
4558+
4559+#pragma once
4560+
4561+#include <QQmlExtensionPlugin>
4562+
4563+class QmlConnectivityNetworkingPlugin : public QQmlExtensionPlugin {
4564+ Q_OBJECT
4565+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
4566+ Q_INTERFACES(QQmlExtensionInterface)
4567+
4568+public:
4569+ void registerTypes(const char *uri);
4570+ void initializeEngine(QQmlEngine *engine, const char *uri);
4571+};
4572+
4573
4574=== added file 'src/connectivity-api/connectivity-qml/qmldir'
4575--- src/connectivity-api/connectivity-qml/qmldir 1970-01-01 00:00:00 +0000
4576+++ src/connectivity-api/connectivity-qml/qmldir 2015-05-13 10:12:45 +0000
4577@@ -0,0 +1,2 @@
4578+module Ubuntu.Connectivity
4579+plugin connectivity-qml
4580
4581=== modified file 'src/connectivity-api/connectivity-qt/CMakeLists.txt'
4582--- src/connectivity-api/connectivity-qt/CMakeLists.txt 2015-04-21 10:59:52 +0000
4583+++ src/connectivity-api/connectivity-qt/CMakeLists.txt 2015-05-13 10:12:45 +0000
4584@@ -1,10 +1,15 @@
4585
4586+set(API_VERSION 1)
4587+set(SOVERSION 1)
4588+set(SYMBOL_MAP "${DATA_DIR}/connectivity-qt.map")
4589+set(OUTPUT_NAME "connectivity-qt${SOVERSION}")
4590 include_directories("${CMAKE_SOURCE_DIR}/src/qdbus-stubs")
4591
4592 set(
4593 CONNECTIVITY_QT_SRC
4594 connectivityqt/internal/dbus-property-cache.cpp
4595 connectivityqt/connectivity.cpp
4596+ ubuntu/connectivity/networking-status.cpp
4597 )
4598
4599 set_source_files_properties(
4600@@ -50,3 +55,26 @@
4601 connectivity-qt
4602 qdbus-stubs
4603 )
4604+
4605+set_target_properties(
4606+ connectivity-qt
4607+ PROPERTIES
4608+ OUTPUT_NAME ${OUTPUT_NAME}
4609+ VERSION ${API_VERSION}.0.0
4610+ SOVERSION ${SOVERSION}
4611+ LINK_FLAGS "-Wl,--version-script,${SYMBOL_MAP}"
4612+ LINK_DEPENDS "${SYMBOL_MAP}"
4613+)
4614+
4615+install(
4616+ TARGETS connectivity-qt
4617+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
4618+)
4619+
4620+install(
4621+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
4622+ DESTINATION "include"
4623+ FILES_MATCHING PATTERN "*.h"
4624+ PATTERN "internal" EXCLUDE
4625+)
4626+
4627
4628=== modified file 'src/connectivity-api/connectivity-qt/connectivityqt/connectivity.cpp'
4629--- src/connectivity-api/connectivity-qt/connectivityqt/connectivity.cpp 2015-04-23 10:02:23 +0000
4630+++ src/connectivity-api/connectivity-qt/connectivityqt/connectivity.cpp 2015-05-13 10:12:45 +0000
4631@@ -49,6 +49,41 @@
4632
4633 shared_ptr<ComUbuntuConnectivity1PrivateInterface> m_writeInterface;
4634
4635+ static QVector<Limitations> toLimitations(const QVariant& value)
4636+ {
4637+ auto l = value.toStringList();
4638+ QVector<Limitations> result;
4639+ for (const auto& limit : l)
4640+ {
4641+ // FIXME KNOWN TYPO
4642+ if (limit == "bandwith")
4643+ {
4644+ result.push_back(Limitations::Bandwith);
4645+ }
4646+ }
4647+ return result;
4648+ }
4649+
4650+ static Status toStatus(const QVariant& value)
4651+ {
4652+ auto s = value.toString();
4653+
4654+ if (s == "offline")
4655+ {
4656+ return Status::Offline;
4657+ }
4658+ else if (s == "connecting")
4659+ {
4660+ return Status::Connecting;
4661+ }
4662+ else if (s == "online")
4663+ {
4664+ return Status::Online;
4665+ }
4666+
4667+ return Status::Offline;
4668+ }
4669+
4670 public Q_SLOTS:
4671
4672 void propertyChanged(const QString& name, const QVariant& value)
4673@@ -65,11 +100,32 @@
4674 {
4675 Q_EMIT p.unstoppableOperationHappeningUpdated(value.toBool());
4676 }
4677+ else if (name == "Limitations")
4678+ {
4679+ auto limitations = toLimitations(value);
4680+ Q_EMIT p.limitationsUpdated(limitations);
4681+ Q_EMIT p.limitedBandwithUpdated(limitations.contains(Limitations::Bandwith));
4682+ }
4683+ else if (name == "Status")
4684+ {
4685+ auto status = toStatus(value);
4686+ Q_EMIT p.statusUpdated(status);
4687+ Q_EMIT p.onlineUpdated(status == Status::Online);
4688+ }
4689 }
4690 };
4691
4692-Connectivity::Connectivity(const QDBusConnection& sessionConnection) :
4693- d(new Priv(*this, sessionConnection))
4694+void Connectivity::registerMetaTypes()
4695+{
4696+ DBusTypes::registerMetaTypes();
4697+
4698+ qRegisterMetaType<connectivityqt::Connectivity::Limitations>("connectivityqt::Connectivity::Limitations");
4699+ qRegisterMetaType<QVector<connectivityqt::Connectivity::Limitations>>("QVector<connectivityqt::Connectivity::Limitations>");
4700+ qRegisterMetaType<connectivityqt::Connectivity::Status>("connectivityqt::Connectivity::Status");
4701+}
4702+
4703+Connectivity::Connectivity(const QDBusConnection& sessionConnection, QObject* parent) :
4704+ QObject(parent), d(new Priv(*this, sessionConnection))
4705 {
4706 d->m_readInterface = make_shared<
4707 ComUbuntuConnectivity1NetworkingStatusInterface>(
4708@@ -110,6 +166,31 @@
4709 return d->m_propertyCache->get("UnstoppableOperationHappening").toBool();
4710 }
4711
4712+QVector<Connectivity::Limitations> Connectivity::limitations() const
4713+{
4714+ return d->toLimitations(d->m_propertyCache->get("Limitations"));
4715+}
4716+
4717+Connectivity::Status Connectivity::status() const
4718+{
4719+ return d->toStatus(d->m_propertyCache->get("Status"));
4720+}
4721+
4722+bool Connectivity::online() const
4723+{
4724+ return (status() == Status::Online);
4725+}
4726+
4727+bool Connectivity::limitedBandwith() const
4728+{
4729+ return limitations().contains(Limitations::Bandwith);
4730+}
4731+
4732+bool Connectivity::isInitialized() const
4733+{
4734+ return d->m_propertyCache->isInitialized();
4735+}
4736+
4737 void Connectivity::setFlightMode(bool enabled)
4738 {
4739 d->m_writeInterface->SetFlightMode(enabled);
4740@@ -120,11 +201,6 @@
4741 d->m_writeInterface->SetWifiEnabled(enabled);
4742 }
4743
4744-bool Connectivity::isInitialized() const
4745-{
4746- return d->m_propertyCache->isInitialized();
4747-}
4748-
4749 }
4750
4751 #include "connectivity.moc"
4752
4753=== modified file 'src/connectivity-api/connectivity-qt/connectivityqt/connectivity.h'
4754--- src/connectivity-api/connectivity-qt/connectivityqt/connectivity.h 2015-04-23 10:02:23 +0000
4755+++ src/connectivity-api/connectivity-qt/connectivityqt/connectivity.h 2015-05-13 10:12:45 +0000
4756@@ -36,18 +36,57 @@
4757 public:
4758 UNITY_DEFINES_PTRS(Connectivity);
4759
4760- Connectivity(const QDBusConnection& sessionConnection = QDBusConnection::sessionBus());
4761+ Q_DISABLE_COPY(Connectivity)
4762+
4763+ Q_ENUMS(Limitations)
4764+ Q_ENUMS(Status)
4765+
4766+ static void registerMetaTypes();
4767+
4768+ /**
4769+ * @brief enum for networking limitations
4770+ *
4771+ * Networking limitations may be accessed through the NetworkingStatus::limitations property.
4772+ */
4773+ enum class Limitations
4774+ {
4775+ /**
4776+ * indicates that the bandwith of the Internet connection has limitations.
4777+ * Applications should minimize their bandwith usage if possible.
4778+ */
4779+ Bandwith
4780+ };
4781+
4782+ /**
4783+ * @brief enum for networking status
4784+ *
4785+ * Networking status may be accessed through the NetworkingStatus::status property.
4786+ */
4787+ enum class Status
4788+ {
4789+ Offline, /**< No Internet connection available. */
4790+ Connecting, /**< System is actively establising a connection. */
4791+ Online /**< System is connected to the Internet. */
4792+ };
4793+
4794+ Connectivity(const QDBusConnection& sessionConnection = QDBusConnection::sessionBus(), QObject* parent = 0);
4795
4796 ~Connectivity();
4797
4798 Q_PROPERTY(bool FlightMode READ flightMode WRITE setFlightMode NOTIFY flightModeUpdated)
4799 bool flightMode() const;
4800
4801-// Q_PROPERTY(QStringList Limitations READ limitations NOTIFY limitationsUpdated)
4802-// QStringList limitations() const;
4803-
4804-// Q_PROPERTY(QString Status READ status NOTIFY statusUpdated)
4805-// QString status() const;
4806+ Q_PROPERTY(bool online READ online NOTIFY onlineUpdated)
4807+ bool online() const;
4808+
4809+ Q_PROPERTY(bool limitedBandwith READ limitedBandwith NOTIFY limitedBandwithUpdated)
4810+ bool limitedBandwith() const;
4811+
4812+ Q_PROPERTY(QVector<Limitations> Limitations READ limitations NOTIFY limitationsUpdated)
4813+ QVector<Limitations> limitations() const;
4814+
4815+ Q_PROPERTY(connectivityqt::Connectivity::Status Status READ status NOTIFY statusUpdated)
4816+ Status status() const;
4817
4818 Q_PROPERTY(bool WifiEnabled READ wifiEnabled WRITE setwifiEnabled NOTIFY wifiEnabledUpdated)
4819 bool wifiEnabled() const;
4820@@ -66,9 +105,13 @@
4821 Q_SIGNALS:
4822 void flightModeUpdated(bool);
4823
4824-// void limitationsUpdated(const QStringList&);
4825-
4826-// void statusUpdated(const QString&);
4827+ void onlineUpdated(bool value);
4828+
4829+ void limitedBandwithUpdated(bool value);
4830+
4831+ void limitationsUpdated(const QVector<Limitations>&);
4832+
4833+ void statusUpdated(connectivityqt::Connectivity::Status value);
4834
4835 void wifiEnabledUpdated(bool);
4836
4837@@ -82,3 +125,8 @@
4838 };
4839
4840 }
4841+
4842+Q_DECLARE_METATYPE(connectivityqt::Connectivity::Limitations)
4843+Q_DECLARE_METATYPE(QVector<connectivityqt::Connectivity::Limitations>)
4844+Q_DECLARE_METATYPE(connectivityqt::Connectivity::Status)
4845+
4846
4847=== added directory 'src/connectivity-api/connectivity-qt/ubuntu'
4848=== added directory 'src/connectivity-api/connectivity-qt/ubuntu/connectivity'
4849=== added file 'src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.cpp'
4850--- src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.cpp 1970-01-01 00:00:00 +0000
4851+++ src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.cpp 2015-05-13 10:12:45 +0000
4852@@ -0,0 +1,100 @@
4853+/*
4854+ * Copyright © 2014 Canonical Ltd.
4855+ *
4856+ * This program is free software: you can redistribute it and/or modify it
4857+ * under the terms of the GNU Lesser General Public License version 3,
4858+ * as published by the Free Software Foundation.
4859+ *
4860+ * This program is distributed in the hope that it will be useful,
4861+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4862+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4863+ * GNU Lesser General Public License for more details.
4864+ *
4865+ * You should have received a copy of the GNU Lesser General Public License
4866+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
4867+ *
4868+ * Authors:
4869+ * Antti Kaijanmäki <antti.kaijanmaki@canonical.com>
4870+ */
4871+
4872+#include <ubuntu/connectivity/networking-status.h>
4873+#include <connectivityqt/connectivity.h>
4874+
4875+#include <QDebug>
4876+
4877+using namespace std;
4878+
4879+namespace ubuntu
4880+{
4881+namespace connectivity
4882+{
4883+
4884+class Q_DECL_HIDDEN NetworkingStatus::Private: public QObject
4885+{
4886+ Q_OBJECT
4887+
4888+public:
4889+ NetworkingStatus& p;
4890+
4891+ connectivityqt::Connectivity::SPtr m_connectivity;
4892+
4893+ Private(NetworkingStatus& parent) :
4894+ p(parent)
4895+ {
4896+ m_connectivity = make_shared<connectivityqt::Connectivity>();
4897+
4898+ connect(m_connectivity.get(),
4899+ &connectivityqt::Connectivity::limitationsUpdated, this,
4900+ &Private::limitationsUpdated);
4901+
4902+ connect(m_connectivity.get(),
4903+ &connectivityqt::Connectivity::statusUpdated, this,
4904+ &Private::statusUpdated);
4905+ }
4906+
4907+public Q_SLOTS:
4908+ void limitationsUpdated(const QVector<connectivityqt::Connectivity::Limitations>&)
4909+ {
4910+ Q_EMIT p.limitationsChanged();
4911+ }
4912+
4913+ void statusUpdated(connectivityqt::Connectivity::Status value)
4914+ {
4915+ Q_EMIT p.statusChanged(static_cast<NetworkingStatus::Status>(value));
4916+ }
4917+};
4918+
4919+NetworkingStatus::NetworkingStatus(QObject *parent)
4920+ : QObject(parent),
4921+ d{new Private{*this}}
4922+{
4923+ qRegisterMetaType<ubuntu::connectivity::NetworkingStatus::Limitations>();
4924+ qRegisterMetaType<QVector<ubuntu::connectivity::NetworkingStatus::Limitations>>();
4925+ qRegisterMetaType<ubuntu::connectivity::NetworkingStatus::Status>();
4926+}
4927+
4928+NetworkingStatus::~NetworkingStatus()
4929+{}
4930+
4931+QVector<NetworkingStatus::Limitations>
4932+NetworkingStatus::limitations() const
4933+{
4934+ QVector<NetworkingStatus::Limitations> result;
4935+ for (const auto& limitation : d->m_connectivity->limitations())
4936+ {
4937+ result.push_back(
4938+ static_cast<NetworkingStatus::Limitations>(limitation));
4939+ }
4940+ return result;
4941+}
4942+
4943+NetworkingStatus::Status
4944+NetworkingStatus::status() const
4945+{
4946+ return static_cast<NetworkingStatus::Status>(d->m_connectivity->status());
4947+}
4948+
4949+}
4950+}
4951+
4952+#include "networking-status.moc"
4953
4954=== added file 'src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.h'
4955--- src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.h 1970-01-01 00:00:00 +0000
4956+++ src/connectivity-api/connectivity-qt/ubuntu/connectivity/networking-status.h 2015-05-13 10:12:45 +0000
4957@@ -0,0 +1,109 @@
4958+/*
4959+ * Copyright © 2014 Canonical Ltd.
4960+ *
4961+ * This program is free software: you can redistribute it and/or modify it
4962+ * under the terms of the GNU Lesser General Public License version 3,
4963+ * as published by the Free Software Foundation.
4964+ *
4965+ * This program is distributed in the hope that it will be useful,
4966+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
4967+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4968+ * GNU Lesser General Public License for more details.
4969+ *
4970+ * You should have received a copy of the GNU Lesser General Public License
4971+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
4972+ *
4973+ * Authors:
4974+ * Antti Kaijanmäki <antti.kaijanmaki@canonical.com>
4975+ */
4976+
4977+#pragma once
4978+
4979+#include <QObject>
4980+#include <QScopedPointer>
4981+#include <QVector>
4982+
4983+namespace ubuntu {
4984+namespace connectivity {
4985+
4986+/**
4987+ * @brief Overall system networking status.
4988+ *
4989+ * This is the top-level class for accessing networking information.
4990+ *
4991+ * * For system networking status, see NetworkingStatus::status.
4992+ * * For connection limitations, see NetworkingStatus::limitations.
4993+ *
4994+ * Examples:
4995+ * - @ref networking-status "Getting the networking status."
4996+ */
4997+class Q_DECL_EXPORT NetworkingStatus : public QObject
4998+{
4999+ Q_OBJECT
5000+ Q_DISABLE_COPY(NetworkingStatus)
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: