From 9abb5e658d005b3ac82afeec13fd59384a8e65eb Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Sun, 5 Jun 2016 23:20:55 +0200 Subject: Added object set (bzr r14954.1.1) --- CMakeScripts/DefineDependsandFlags.cmake | 2 + src/CMakeLists.txt | 4 + src/object-set.cpp | 133 ++++++++++++++++++++++++ src/object-set.h | 58 +++++++++++ src/object.cpp | 50 +++++++++ src/object.h | 76 ++++++++++++++ test/CMakeLists.txt | 11 +- test/src/object-set-test.cpp | 173 +++++++++++++++++++++++++++++++ test/src/object-test.cpp | 56 ++++++++++ 9 files changed, 555 insertions(+), 8 deletions(-) create mode 100644 src/object-set.cpp create mode 100644 src/object-set.h create mode 100644 src/object.cpp create mode 100644 src/object.h create mode 100644 test/src/object-set-test.cpp create mode 100644 test/src/object-test.cpp diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 0f4ba46c6..bf3954a62 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -10,6 +10,8 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} # generated includes ${CMAKE_BINARY_DIR}/include ) +# TODO temporary flag +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # ---------------------------------------------------------------------------- # Files we include diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index df25728f4..802a79c4f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -229,7 +229,9 @@ set(inkscape_SRC message-context.cpp message-stack.cpp mod360.cpp + object.cpp object-hierarchy.cpp + object-set.cpp object-snapper.cpp path-chemistry.cpp persp3d-reference.cpp @@ -353,7 +355,9 @@ set(inkscape_SRC mod360-test.h mod360.h number-opt-number.h + object.h object-hierarchy.h + object-set.h object-snapper.h object-test.h path-chemistry.h diff --git a/src/object-set.cpp b/src/object-set.cpp new file mode 100644 index 000000000..f071aa4d6 --- /dev/null +++ b/src/object-set.cpp @@ -0,0 +1,133 @@ +/* + * Multiindex container for selection + * + * Authors: + * Adrian Boguszewski + * + * Copyright (C) 2016 Adrian Boguszewski + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "object-set.h" + +bool ObjectSet::add(Object* object) { + // any ancestor is in the set - do nothing + if (_anyAncestorIsInSet(object)) { + return false; + } + + // check if there is mutual ancestor for some elements, which can replace all of them in the set + Object* o = _getMutualAncestor(object); + + // remove all descendants from the set + _removeDescendantsFromSet(o); + + _add(o); + return true; +} + +bool ObjectSet::remove(Object* object) { + // object is the top of subtree + if (contains(object)) { + _remove(object); + return true; + } + + // any ancestor of object is in the set + if (_anyAncestorIsInSet(object)) { + _removeAncestorsFromSet(object); + return true; + } + + // no object nor any parent in the set + return false; +} + +bool ObjectSet::contains(Object* object) { + return container.get().find(object) != container.get().end(); +} + +void ObjectSet::clear() { + for (auto object: container) { + _remove(object); + } +} + +int ObjectSet::size() { + return container.size(); +} + +bool ObjectSet::_anyAncestorIsInSet(Object *object) { + Object* o = object; + while (o != nullptr) { + if (contains(o)) { + return true; + } + o = o->getParent(); + } + + return false; +} + +void ObjectSet::_removeDescendantsFromSet(Object *object) { + for (auto& child: object->getChildren()) { + if (contains(&child)) { + _remove(&child); + // there is certainly no children of this child in the set + continue; + } + + _removeDescendantsFromSet(&child); + } +} + +void ObjectSet::_remove(Object *object) { + releaseConnections[object].disconnect(); + releaseConnections.erase(object); + container.get().erase(object); +} + +void ObjectSet::_add(Object *object) { + releaseConnections[object] = object->connectRelease(sigc::mem_fun(*this, &ObjectSet::remove)); + container.push_back(object); +} + +Object *ObjectSet::_getMutualAncestor(Object *object) { + Object *o = object; + + bool flag = true; + while (o->getParent() != nullptr) { + for (auto &child: o->getParent()->getChildren()) { + if(&child != o && !contains(&child)) { + flag = false; + break; + } + } + if (!flag) { + break; + } + o = o->getParent(); + } + return o; +} + +void ObjectSet::_removeAncestorsFromSet(Object *object) { + Object* o = object; + while (o->getParent() != nullptr) { + for (auto &child: o->getParent()->getChildren()) { + if (&child != o) { + _add(&child); + } + } + if (contains(o->getParent())) { + _remove(o->getParent()); + break; + } + o = o->getParent(); + } +} + +ObjectSet::~ObjectSet() { + clear(); +} diff --git a/src/object-set.h b/src/object-set.h new file mode 100644 index 000000000..a3962356b --- /dev/null +++ b/src/object-set.h @@ -0,0 +1,58 @@ +/* + * Multiindex container for selection + * + * Authors: + * Adrian Boguszewski + * + * Copyright (C) 2016 Adrian Boguszewski + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef INKSCAPE_PROTOTYPE_OBJECTSET_H +#define INKSCAPE_PROTOTYPE_OBJECTSET_H + +#include "object.h" +#include +#include +#include +#include +#include +#include +#include + +struct hashed{}; + +typedef boost::multi_index_container< + Object*, + boost::multi_index::indexed_by< + boost::multi_index::sequenced<>, + boost::multi_index::hashed_unique< + boost::multi_index::tag, + boost::multi_index::identity> + >> multi_index_container; + +class ObjectSet { +public: + ObjectSet() {}; + ~ObjectSet(); + bool add(Object* object); + bool remove(Object* object); + bool contains(Object* object); + void clear(); + int size(); + +private: + void _add(Object* object); + void _remove(Object* object); + bool _anyAncestorIsInSet(Object *object); + void _removeDescendantsFromSet(Object *object); + void _removeAncestorsFromSet(Object *object); + Object *_getMutualAncestor(Object *object); + + multi_index_container container; + std::unordered_map releaseConnections; +}; + + +#endif //INKSCAPE_PROTOTYPE_OBJECTSET_H diff --git a/src/object.cpp b/src/object.cpp new file mode 100644 index 000000000..c05d50b3a --- /dev/null +++ b/src/object.cpp @@ -0,0 +1,50 @@ +/* + * Temporary file + * + * Authors: + * Adrian Boguszewski + * + * Copyright (C) 2016 Adrian Boguszewski + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "object.h" + +Object::Object(std::string name) : name(name), parent(NULL) { } + +Object::~Object() { + // only for this prototype + // call destructor on every child + children.clear_and_dispose(delete_disposer()); + release_signal.emit(this); +} + +const std::string& Object::getName() const { + return name; +} + +Object *Object::getParent() { + return parent; +} + +bool Object::isDescendantOf(Object *o) { + Object* p = parent; + while(p != NULL) { + if (p == o) { + return true; + } + p = p->parent; + } + return false; +} + +void Object::addChild(Object* o) { + o->parent = this; + children.push_back(*o); +} + +sigc::connection Object::connectRelease(sigc::slot slot) { + return release_signal.connect(slot); +} + diff --git a/src/object.h b/src/object.h new file mode 100644 index 000000000..a5ad5692e --- /dev/null +++ b/src/object.h @@ -0,0 +1,76 @@ +/* + * Temporary file + * + * Authors: + * Adrian Boguszewski + * + * Copyright (C) 2016 Adrian Boguszewski + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef INKSCAPE_PROTOTYPE_OBJECT_H +#define INKSCAPE_PROTOTYPE_OBJECT_H + +#include +#include +#include +#include + +// this causes some warning, but it's only for this prototype +class Object; +struct delete_disposer +{ + void operator()(Object *delete_this) { + delete delete_this; + } +}; + +class Object { +private: + std::string name; + Object* parent; + + typedef boost::intrusive::list_member_hook< + boost::intrusive::link_mode< + boost::intrusive::auto_unlink + >> list_hook; + list_hook child_hook; + + typedef boost::intrusive::list< + Object, + boost::intrusive::constant_time_size, + boost::intrusive::member_hook< + Object, + list_hook, + &Object::child_hook + >> list; + list children; + + sigc::signal release_signal; + +public: + Object(std::string name); + virtual ~Object(); + + list &getChildren() { + return children; + } + + const std::string &getName() const; + Object * getParent() ; + + sigc::connection connectRelease(sigc::slot slot); + void addChild(Object* o); + bool isDescendantOf(Object* o); + + bool operator==(Object o) { + return name == o.name; + } + + bool operator!=(Object o) { + return name != o.name; + } +}; + +#endif //INKSCAPE_PROTOTYPE_OBJECT_H diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8da39d627..26d3572e0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -14,7 +14,6 @@ set_source_files_properties( ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp PROPERTIES GENERATED TRUE) -# include_directories(${CMAKE_CURRENT_BINARY_DIR}/__/src) include_directories(${CMAKE_BINARY_DIR}/src) add_executable(unittest @@ -23,10 +22,10 @@ add_executable(unittest src/attributes-test.cpp src/color-profile-test.cpp src/dir-util-test.cpp + src/object-test.cpp + src/object-set-test.cpp ) -target_link_libraries(unittest inkscape_base) - add_dependencies(unittest inkscape_version) set (_optional_unittest_libs ) @@ -37,9 +36,7 @@ endif() target_link_libraries(unittest gmock_main - - # order from automake - #sp_LIB + inkscape_base #inkscape_LIB #sp_LIB # annoying, we need both! @@ -63,5 +60,3 @@ target_link_libraries(unittest add_test(BaseTest ${EXECUTABLE_OUTPUT_PATH}/unittest) add_dependencies(check unittest) - -# diff --git a/test/src/object-set-test.cpp b/test/src/object-set-test.cpp new file mode 100644 index 000000000..20d0c9474 --- /dev/null +++ b/test/src/object-set-test.cpp @@ -0,0 +1,173 @@ +#include +#include "object-set.h" + +class ObjectSetTest: public testing::Test { +public: + ObjectSetTest() { + A = new Object("A"); + B = new Object("B"); + C = new Object("C"); + D = new Object("D"); + E = new Object("E"); + F = new Object("F"); + G = new Object("G"); + H = new Object("H"); + X = new Object("X"); + } + ~ObjectSetTest() { + delete X; + delete H; + delete G; + delete F; + delete E; + delete D; + delete C; + delete B; + delete A; + } + Object* A; + Object* B; + Object* C; + Object* D; + Object* E; + Object* F; + Object* G; + Object* H; + Object* X; + ObjectSet set; + ObjectSet set2; +}; + +TEST_F(ObjectSetTest, Basics) { + EXPECT_EQ(0, set.size()); + set.add(A); + EXPECT_EQ(1, set.size()); + EXPECT_TRUE(set.contains(A)); + set.add(B); + set.add(C); + EXPECT_EQ(3, set.size()); + EXPECT_TRUE(set.contains(B)); + EXPECT_TRUE(set.contains(C)); + EXPECT_FALSE(set.contains(D)); + EXPECT_FALSE(set.contains(X)); + set.remove(A); + EXPECT_EQ(2, set.size()); + EXPECT_FALSE(set.contains(A)); + set.clear(); + EXPECT_EQ(0, set.size()); +} + +TEST_F(ObjectSetTest, Autoremoving) { + Object* Q = new Object("Q"); + set.add(Q); + EXPECT_TRUE(set.contains(Q)); + EXPECT_EQ(1, set.size()); + delete Q; + EXPECT_EQ(0, set.size()); +} + +TEST_F(ObjectSetTest, BasicDescendants) { + A->addChild(B); + B->addChild(C); + A->addChild(D); + bool resultB = set.add(B); + bool resultB2 = set.add(B); + EXPECT_TRUE(resultB); + EXPECT_FALSE(resultB2); + EXPECT_TRUE(set.contains(B)); + bool resultC = set.add(C); + EXPECT_FALSE(resultC); + EXPECT_FALSE(set.contains(C)); + EXPECT_EQ(1, set.size()); + bool resultA = set.add(A); + EXPECT_TRUE(resultA); + EXPECT_EQ(1, set.size()); + EXPECT_TRUE(set.contains(A)); + EXPECT_FALSE(set.contains(B)); +} + +TEST_F(ObjectSetTest, AdvancedDescendants) { + A->addChild(B); + A->addChild(C); + A->addChild(X); + B->addChild(D); + B->addChild(E); + C->addChild(F); + C->addChild(G); + C->addChild(H); + set.add(A); + bool resultF = set.remove(F); + EXPECT_TRUE(resultF); + EXPECT_EQ(4, set.size()); + EXPECT_FALSE(set.contains(F)); + EXPECT_TRUE(set.contains(B)); + EXPECT_TRUE(set.contains(G)); + EXPECT_TRUE(set.contains(H)); + EXPECT_TRUE(set.contains(X)); + bool resultF2 = set.add(F); + EXPECT_TRUE(resultF2); + EXPECT_EQ(1, set.size()); + EXPECT_TRUE(set.contains(A)); +} + +TEST_F(ObjectSetTest, Removing) { + A->addChild(B); + A->addChild(C); + A->addChild(X); + B->addChild(D); + B->addChild(E); + C->addChild(F); + C->addChild(G); + C->addChild(H); + bool removeH = set.remove(H); + EXPECT_FALSE(removeH); + set.add(A); + bool removeX = set.remove(X); + EXPECT_TRUE(removeX); + EXPECT_EQ(2, set.size()); + EXPECT_TRUE(set.contains(B)); + EXPECT_TRUE(set.contains(C)); + EXPECT_FALSE(set.contains(X)); + EXPECT_FALSE(set.contains(A)); + bool removeX2 = set.remove(X); + EXPECT_FALSE(removeX2); + EXPECT_EQ(2, set.size()); + bool removeA = set.remove(A); + EXPECT_FALSE(removeA); + EXPECT_EQ(2, set.size()); + bool removeC = set.remove(C); + EXPECT_TRUE(removeC); + EXPECT_EQ(1, set.size()); + EXPECT_TRUE(set.contains(B)); + EXPECT_FALSE(set.contains(C)); +} + +TEST_F(ObjectSetTest, TwoSets) { + Object* Q = new Object("Q"); + A->addChild(B); + A->addChild(Q); + set.add(A); + set2.add(A); + EXPECT_EQ(1, set.size()); + EXPECT_EQ(1, set2.size()); + set.remove(B); + EXPECT_EQ(1, set.size()); + EXPECT_TRUE(set.contains(Q)); + EXPECT_EQ(1, set2.size()); + EXPECT_TRUE(set2.contains(A)); + delete Q; + EXPECT_EQ(0, set.size()); + EXPECT_EQ(1, set2.size()); + EXPECT_TRUE(set2.contains(A)); +} + +TEST_F(ObjectSetTest, SetRemoving) { + ObjectSet *objectSet = new ObjectSet(); + A->addChild(B); + objectSet->add(A); + objectSet->add(C); + EXPECT_EQ(2, objectSet->size()); + delete objectSet; + EXPECT_EQ("A", A->getName()); + EXPECT_EQ("C", C->getName()); +} diff --git a/test/src/object-test.cpp b/test/src/object-test.cpp new file mode 100644 index 000000000..83e90b2ec --- /dev/null +++ b/test/src/object-test.cpp @@ -0,0 +1,56 @@ +#include "gtest/gtest.h" +#include "object.h" + +class ObjectTest: public testing::Test { +public: + ObjectTest() { + object = new Object("parent"); + childOfChild = new Object("childOfChild"); + child = new Object("child"); + child2 = new Object("child2"); + object2 = new Object("object2"); + child3 = new Object("child3"); + } + ~ObjectTest() { + delete child3; + delete child2; + delete childOfChild; + delete child; + delete object2; + delete object; + } + Object* object; + Object* object2; + Object* child; + Object* childOfChild; + Object* child2; + Object* child3; +}; + +TEST_F(ObjectTest, AddChild) { + EXPECT_EQ(0, object->getChildren().size()); + object->addChild(child); + EXPECT_EQ(1, object->getChildren().size()); + EXPECT_EQ(child, &(object->getChildren().front())); + EXPECT_EQ(object, child->getParent()); +} + +TEST_F(ObjectTest, IsDescendantOf) { + object->addChild(child); + child->addChild(childOfChild); + object->addChild(child2); + object2->addChild(child3); + EXPECT_TRUE(child->isDescendantOf(object)); + EXPECT_TRUE(childOfChild->isDescendantOf(child)); + EXPECT_TRUE(childOfChild->isDescendantOf(object)); + EXPECT_TRUE(child2->isDescendantOf(object)); + EXPECT_TRUE(child3->isDescendantOf(object2)); + EXPECT_FALSE(child->isDescendantOf(child2)); + EXPECT_FALSE(child2->isDescendantOf(child)); + EXPECT_FALSE(object->isDescendantOf(childOfChild)); + EXPECT_FALSE(object->isDescendantOf(child)); + EXPECT_FALSE(object->isDescendantOf(object2)); + EXPECT_FALSE(object2->isDescendantOf(object)); + EXPECT_FALSE(child2->isDescendantOf(child3)); + EXPECT_FALSE(child3->isDescendantOf(child2)); +} -- cgit v1.2.3 From 32e046d9c5ef4e8b689e4bc8d1e99a5178fbc485 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 5 Jun 2016 16:35:43 -0500 Subject: Initial build to get the binaries installed, needs more work (bzr r14950.1.1) --- snapcraft.sh | 6 ++++++ snapcraft.yaml | 31 +++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100755 snapcraft.sh create mode 100644 snapcraft.yaml diff --git a/snapcraft.sh b/snapcraft.sh new file mode 100755 index 000000000..7e12fe964 --- /dev/null +++ b/snapcraft.sh @@ -0,0 +1,6 @@ +#!/bin/sh -e + +export INKSCAPE_PORTABLE_PROFILE_DIR="${SNAP_USER_DATA}" +export INKSCAPE_LOCALEDIR="${SNAP}/share/locale/" + +exec $@ diff --git a/snapcraft.yaml b/snapcraft.yaml new file mode 100644 index 000000000..fc290a80f --- /dev/null +++ b/snapcraft.yaml @@ -0,0 +1,31 @@ +name: inkscape +version: 0.91+devel +summary: Vector Graphics Editor +description: | + An Open Source vector graphics editor, with capabilities similar to + Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector + Graphics (SVG) file format. + + Inkscape supports many advanced SVG features (markers, clones, alpha blending, + etc.) and great care is taken in designing a streamlined interface. + It is very easy to edit nodes, perform complex path operations, trace + bitmaps and much more. + + We also aim to maintain a thriving user and developer community by using + open, community-oriented development. +confinement: devmode # use "strict" to enforce system access only via declared interfaces + +parts: + inkscape: + plugin: cmake + source: . + snapcraft-wrapper: + plugin: copy + files: + snapcraft.sh: snapcraft.sh + +apps: + inkscape: + command: snapcraft.sh inkscape + viewer: + command: snapcraft.sh inkview -- cgit v1.2.3 From 973c1766a7ea118fca959c0895bfc52915abdb57 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 5 Jun 2016 17:28:30 -0500 Subject: Try binreloc (bzr r14950.1.2) --- CMakeLists.txt | 10 ++++++++++ snapcraft.yaml | 1 + 2 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a68b678c1..119a0fb7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,6 +102,8 @@ option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON) option(WITH_NLS "Compile with Native Language Support (using gettext)" ON) option(WITH_GTK3_EXPERIMENTAL "Enable compilation with GTK+3 (EXPERIMENTAL!)" OFF) +option(ENABLE_BINRELOC "Enable relocatable binaries" OFF) + include(CMakeScripts/ConfigPaths.cmake) # Installation Paths include(CMakeScripts/DefineDependsandFlags.cmake) # Includes, Compiler Flags, and Link Libraries include(CMakeScripts/HelperMacros.cmake) # Misc Utility Macros @@ -121,6 +123,14 @@ endif() # end badness # ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# Relocatable Binary +# ----------------------------------------------------------------------------- + +if (ENABLE_BINRELOC) + add_definitions(-DENABLE_BINRELOC) +endif() + # ----------------------------------------------------------------------------- # Dist Target # ----------------------------------------------------------------------------- diff --git a/snapcraft.yaml b/snapcraft.yaml index fc290a80f..99a1ee7af 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -19,6 +19,7 @@ parts: inkscape: plugin: cmake source: . + configflags: ['-DENABLE_BINRELOC=ON'] snapcraft-wrapper: plugin: copy files: -- cgit v1.2.3 From 5633812ca77f35e52db62e7b432761e0e59253fe Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Thu, 9 Jun 2016 17:19:23 +0200 Subject: Removed Object class and temporary test dependencies (bzr r14954.1.4) --- src/CMakeLists.txt | 2 -- src/object.cpp | 50 -------------------------- src/object.h | 76 --------------------------------------- src/sp-flowtext.h | 1 + testfiles/CMakeLists.txt | 1 - testfiles/src/object-set-test.cpp | 15 +++----- testfiles/src/object-test.cpp | 56 ----------------------------- testfiles/unittest.cpp | 13 ------- 8 files changed, 5 insertions(+), 209 deletions(-) delete mode 100644 src/object.cpp delete mode 100644 src/object.h delete mode 100644 testfiles/src/object-test.cpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 802a79c4f..92436ea9a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -229,7 +229,6 @@ set(inkscape_SRC message-context.cpp message-stack.cpp mod360.cpp - object.cpp object-hierarchy.cpp object-set.cpp object-snapper.cpp @@ -355,7 +354,6 @@ set(inkscape_SRC mod360-test.h mod360.h number-opt-number.h - object.h object-hierarchy.h object-set.h object-snapper.h diff --git a/src/object.cpp b/src/object.cpp deleted file mode 100644 index c05d50b3a..000000000 --- a/src/object.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Temporary file - * - * Authors: - * Adrian Boguszewski - * - * Copyright (C) 2016 Adrian Boguszewski - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#include "object.h" - -Object::Object(std::string name) : name(name), parent(NULL) { } - -Object::~Object() { - // only for this prototype - // call destructor on every child - children.clear_and_dispose(delete_disposer()); - release_signal.emit(this); -} - -const std::string& Object::getName() const { - return name; -} - -Object *Object::getParent() { - return parent; -} - -bool Object::isDescendantOf(Object *o) { - Object* p = parent; - while(p != NULL) { - if (p == o) { - return true; - } - p = p->parent; - } - return false; -} - -void Object::addChild(Object* o) { - o->parent = this; - children.push_back(*o); -} - -sigc::connection Object::connectRelease(sigc::slot slot) { - return release_signal.connect(slot); -} - diff --git a/src/object.h b/src/object.h deleted file mode 100644 index a5ad5692e..000000000 --- a/src/object.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Temporary file - * - * Authors: - * Adrian Boguszewski - * - * Copyright (C) 2016 Adrian Boguszewski - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#ifndef INKSCAPE_PROTOTYPE_OBJECT_H -#define INKSCAPE_PROTOTYPE_OBJECT_H - -#include -#include -#include -#include - -// this causes some warning, but it's only for this prototype -class Object; -struct delete_disposer -{ - void operator()(Object *delete_this) { - delete delete_this; - } -}; - -class Object { -private: - std::string name; - Object* parent; - - typedef boost::intrusive::list_member_hook< - boost::intrusive::link_mode< - boost::intrusive::auto_unlink - >> list_hook; - list_hook child_hook; - - typedef boost::intrusive::list< - Object, - boost::intrusive::constant_time_size, - boost::intrusive::member_hook< - Object, - list_hook, - &Object::child_hook - >> list; - list children; - - sigc::signal release_signal; - -public: - Object(std::string name); - virtual ~Object(); - - list &getChildren() { - return children; - } - - const std::string &getName() const; - Object * getParent() ; - - sigc::connection connectRelease(sigc::slot slot); - void addChild(Object* o); - bool isDescendantOf(Object* o); - - bool operator==(Object o) { - return name == o.name; - } - - bool operator!=(Object o) { - return name != o.name; - } -}; - -#endif //INKSCAPE_PROTOTYPE_OBJECT_H diff --git a/src/sp-flowtext.h b/src/sp-flowtext.h index 9ee676893..d0b0a19a4 100644 --- a/src/sp-flowtext.h +++ b/src/sp-flowtext.h @@ -8,6 +8,7 @@ #include "libnrtype/Layout-TNG.h" #include "sp-item.h" +#include "desktop.h" #define SP_FLOWTEXT(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_FLOWTEXT(obj) (dynamic_cast((SPObject*)obj) != NULL) diff --git a/testfiles/CMakeLists.txt b/testfiles/CMakeLists.txt index 5bb7ed1e0..e764220bc 100644 --- a/testfiles/CMakeLists.txt +++ b/testfiles/CMakeLists.txt @@ -17,7 +17,6 @@ set(TEST_SOURCES attributes-test color-profile-test dir-util-test - object-test object-set-test) set (_optional_unittest_libs ) diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index ff341b162..b0d236128 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -9,11 +9,10 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ #include +#include #include "object-set.h" -#include "document.h" -#include "xml/simple-document.h" -class ObjectSetTest: public testing::Test { +class ObjectSetTest: public DocPerCaseTest { public: ObjectSetTest() { A = new SPObject(); @@ -71,10 +70,7 @@ TEST_F(ObjectSetTest, Basics) { TEST_F(ObjectSetTest, Autoremoving) { SPObject* Q = new SPObject(); - // TODO temporary - SPDocument *document = new SPDocument(); - Inkscape::XML::Node *rroot = new Inkscape::XML::SimpleDocument(); - Q->invoke_build(document, rroot, 0); + Q->invoke_build(_doc, _doc->rroot, 1); set.add(Q); EXPECT_TRUE(set.contains(Q)); EXPECT_EQ(1, set.size()); @@ -172,10 +168,7 @@ TEST_F(ObjectSetTest, Removing) { TEST_F(ObjectSetTest, TwoSets) { SPObject* Q = new SPObject(); - // TODO temporary - SPDocument *document = new SPDocument(); - Inkscape::XML::Node *rroot = new Inkscape::XML::SimpleDocument(); - Q->invoke_build(document, rroot, 0); + Q->invoke_build(_doc, _doc->rroot, 1); A->attach(B, nullptr); A->attach(Q, nullptr); set.add(A); diff --git a/testfiles/src/object-test.cpp b/testfiles/src/object-test.cpp deleted file mode 100644 index 83e90b2ec..000000000 --- a/testfiles/src/object-test.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "gtest/gtest.h" -#include "object.h" - -class ObjectTest: public testing::Test { -public: - ObjectTest() { - object = new Object("parent"); - childOfChild = new Object("childOfChild"); - child = new Object("child"); - child2 = new Object("child2"); - object2 = new Object("object2"); - child3 = new Object("child3"); - } - ~ObjectTest() { - delete child3; - delete child2; - delete childOfChild; - delete child; - delete object2; - delete object; - } - Object* object; - Object* object2; - Object* child; - Object* childOfChild; - Object* child2; - Object* child3; -}; - -TEST_F(ObjectTest, AddChild) { - EXPECT_EQ(0, object->getChildren().size()); - object->addChild(child); - EXPECT_EQ(1, object->getChildren().size()); - EXPECT_EQ(child, &(object->getChildren().front())); - EXPECT_EQ(object, child->getParent()); -} - -TEST_F(ObjectTest, IsDescendantOf) { - object->addChild(child); - child->addChild(childOfChild); - object->addChild(child2); - object2->addChild(child3); - EXPECT_TRUE(child->isDescendantOf(object)); - EXPECT_TRUE(childOfChild->isDescendantOf(child)); - EXPECT_TRUE(childOfChild->isDescendantOf(object)); - EXPECT_TRUE(child2->isDescendantOf(object)); - EXPECT_TRUE(child3->isDescendantOf(object2)); - EXPECT_FALSE(child->isDescendantOf(child2)); - EXPECT_FALSE(child2->isDescendantOf(child)); - EXPECT_FALSE(object->isDescendantOf(childOfChild)); - EXPECT_FALSE(object->isDescendantOf(child)); - EXPECT_FALSE(object->isDescendantOf(object2)); - EXPECT_FALSE(object2->isDescendantOf(object)); - EXPECT_FALSE(child2->isDescendantOf(child3)); - EXPECT_FALSE(child3->isDescendantOf(child2)); -} diff --git a/testfiles/unittest.cpp b/testfiles/unittest.cpp index 0ec8f0383..e33b4cb43 100644 --- a/testfiles/unittest.cpp +++ b/testfiles/unittest.cpp @@ -16,19 +16,6 @@ #include "inkgc/gc-core.h" #include "inkscape.h" -namespace { - -// Ensure that a known positive test works -TEST(PreTest, WorldIsSane) -{ - EXPECT_EQ(4, 2 + 2); -} - -// Example of type casting to avoid compile warnings. - - -} // namespace - int main(int argc, char **argv) { // setup general environment -- cgit v1.2.3 From d0d3798c68ffc6fe7da70ff3ba22a36f163ee524 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 20 Jun 2016 12:47:12 -0500 Subject: Add in the gtklaunch tool (bzr r14950.1.3) --- snapcraft.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 99a1ee7af..41d43cd3c 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -24,9 +24,12 @@ parts: plugin: copy files: snapcraft.sh: snapcraft.sh + gtklaunch: + plugin: make + source: https://github.com/dplanella/gtkconf.git apps: inkscape: - command: snapcraft.sh inkscape + command: snapcraft.sh gtk-launch inkscape viewer: - command: snapcraft.sh inkview + command: snapcraft.sh gtk-launch inkview -- cgit v1.2.3 From fb649c19d47e2d83c47fe31b508890d7c4c7393a Mon Sep 17 00:00:00 2001 From: Sebastien Bacher Date: Mon, 20 Jun 2016 12:49:45 -0500 Subject: A bunch more stage packages (bzr r14950.1.4) --- snapcraft.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/snapcraft.yaml b/snapcraft.yaml index 41d43cd3c..200811e96 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -20,6 +20,24 @@ parts: plugin: cmake source: . configflags: ['-DENABLE_BINRELOC=ON'] + stage-packages: + - libaspell15 + - libatkmm-1.6-1v5 + - libcairomm-1.0-1v5 + - libcdr-0.1-1 + - libglibmm-2.4-1v5 + - libgnomevfs2-0 + - libgtkmm-2.4-1v5 + - libgtkspell0 + - liblcms2-2 + - libmagick++-6.q16-5v5 + - libpangomm-1.4-1v5 + - libpoppler-glib8 + - librevenge-0.0-0 + - libvisio-0.1-1 + - libwpg-0.3-3 + - libglib2.0-bin + - light-themes snapcraft-wrapper: plugin: copy files: -- cgit v1.2.3 From 4ae1fc83fa9e0c7ec09cdb3be3dacb7a1877a499 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 20 Jun 2016 12:50:00 -0500 Subject: Giving permissions to the apps (bzr r14950.1.5) --- snapcraft.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snapcraft.yaml b/snapcraft.yaml index 200811e96..30d14acc3 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -49,5 +49,7 @@ parts: apps: inkscape: command: snapcraft.sh gtk-launch inkscape + plugs: [home, unity7] viewer: command: snapcraft.sh gtk-launch inkview + plugs: [home, unity7] -- cgit v1.2.3 From 3bb8a76358d1d30381e57a9db9dc5329d18011f3 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 20 Jun 2016 20:29:40 -0500 Subject: Making sure to get some modules (bzr r14950.1.6) --- snapcraft.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/snapcraft.yaml b/snapcraft.yaml index 30d14acc3..74c09538a 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -25,6 +25,7 @@ parts: - libatkmm-1.6-1v5 - libcairomm-1.0-1v5 - libcdr-0.1-1 + - libgdk-pixbuf2.0-0 - libglibmm-2.4-1v5 - libgnomevfs2-0 - libgtkmm-2.4-1v5 @@ -38,6 +39,8 @@ parts: - libwpg-0.3-3 - libglib2.0-bin - light-themes + stage: + - -lib/inkscape snapcraft-wrapper: plugin: copy files: -- cgit v1.2.3 From dfbba183bcd15fca6508da6feecde95c0b4f4c20 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 20 Jun 2016 21:54:26 -0500 Subject: Make the relocatable paths relative to the lib install (bzr r14950.1.7) --- src/path-prefix.h | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/path-prefix.h b/src/path-prefix.h index 7f9bcec51..d63fba7fc 100644 --- a/src/path-prefix.h +++ b/src/path-prefix.h @@ -21,28 +21,28 @@ //#endif /* __cplusplus */ #ifdef ENABLE_BINRELOC -# define INKSCAPE_APPICONDIR BR_DATADIR( "/pixmaps" ) -# define INKSCAPE_ATTRRELDIR BR_DATADIR( "/inkscape/attributes" ) -# define INKSCAPE_BINDDIR BR_DATADIR( "/inkscape/bind" ) -# define INKSCAPE_EXAMPLESDIR BR_DATADIR( "/inkscape/examples" ) -# define INKSCAPE_EXTENSIONDIR BR_DATADIR( "/inkscape/extensions" ) -# define INKSCAPE_FILTERDIR BR_DATADIR( "/inkscape/filters" ) -# define INKSCAPE_GRADIENTSDIR BR_DATADIR( "/inkscape/gradients" ) -# define INKSCAPE_KEYSDIR BR_DATADIR( "/inkscape/keys" ) -# define INKSCAPE_PIXMAPDIR BR_DATADIR( "/inkscape/icons" ) -# define INKSCAPE_MARKERSDIR BR_DATADIR( "/inkscape/markers" ) -# define INKSCAPE_PALETTESDIR BR_DATADIR( "/inkscape/palettes" ) -# define INKSCAPE_PATTERNSDIR BR_DATADIR( "/inkscape/patterns" ) -# define INKSCAPE_SCREENSDIR BR_DATADIR( "/inkscape/screens" ) -# define INKSCAPE_SYMBOLSDIR BR_DATADIR( "/inkscape/symbols" ) -# define INKSCAPE_THEMEDIR BR_DATADIR( "/icons" ) -# define INKSCAPE_TUTORIALSDIR BR_DATADIR( "/inkscape/tutorials" ) -# define INKSCAPE_TEMPLATESDIR BR_DATADIR( "/inkscape/templates" ) -# define INKSCAPE_UIDIR BR_DATADIR( "/inkscape/ui" ) +# define INKSCAPE_APPICONDIR BR_DATADIR( "/../share/pixmaps" ) +# define INKSCAPE_ATTRRELDIR BR_DATADIR( "/../share/inkscape/attributes" ) +# define INKSCAPE_BINDDIR BR_DATADIR( "/../share/inkscape/bind" ) +# define INKSCAPE_EXAMPLESDIR BR_DATADIR( "/../share/inkscape/examples" ) +# define INKSCAPE_EXTENSIONDIR BR_DATADIR( "/../share/inkscape/extensions" ) +# define INKSCAPE_FILTERDIR BR_DATADIR( "/../share/inkscape/filters" ) +# define INKSCAPE_GRADIENTSDIR BR_DATADIR( "/../share/inkscape/gradients" ) +# define INKSCAPE_KEYSDIR BR_DATADIR( "/../share/inkscape/keys" ) +# define INKSCAPE_PIXMAPDIR BR_DATADIR( "/../share/inkscape/icons" ) +# define INKSCAPE_MARKERSDIR BR_DATADIR( "/../share/inkscape/markers" ) +# define INKSCAPE_PALETTESDIR BR_DATADIR( "/../share/inkscape/palettes" ) +# define INKSCAPE_PATTERNSDIR BR_DATADIR( "/../share/inkscape/patterns" ) +# define INKSCAPE_SCREENSDIR BR_DATADIR( "/../share/inkscape/screens" ) +# define INKSCAPE_SYMBOLSDIR BR_DATADIR( "/../share/inkscape/symbols" ) +# define INKSCAPE_THEMEDIR BR_DATADIR( "/../share/icons" ) +# define INKSCAPE_TUTORIALSDIR BR_DATADIR( "/../share/inkscape/tutorials" ) +# define INKSCAPE_TEMPLATESDIR BR_DATADIR( "/../share/inkscape/templates" ) +# define INKSCAPE_UIDIR BR_DATADIR( "/../share/inkscape/ui" ) //CREATE V0.1 support -# define CREATE_GRADIENTSDIR BR_DATADIR( "/create/gradients/gimp" ) -# define CREATE_PALETTESDIR BR_DATADIR( "/create/swatches" ) -# define CREATE_PATTERNSDIR BR_DATADIR( "/create/patterns/vector" ) +# define CREATE_GRADIENTSDIR BR_DATADIR( "/../share/create/gradients/gimp" ) +# define CREATE_PALETTESDIR BR_DATADIR( "/../share/create/swatches" ) +# define CREATE_PATTERNSDIR BR_DATADIR( "/../share/create/patterns/vector" ) #else # ifdef WIN32 # define INKSCAPE_APPICONDIR WIN32_DATADIR("pixmaps") -- cgit v1.2.3 From 61343ac879caaf278c1b5e83c5f05d5798affae6 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 20 Jun 2016 22:37:49 -0500 Subject: Adjust directories to be lib based (bzr r14950.1.8) --- src/path-prefix.h | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/path-prefix.h b/src/path-prefix.h index d63fba7fc..3e226dd97 100644 --- a/src/path-prefix.h +++ b/src/path-prefix.h @@ -21,28 +21,29 @@ //#endif /* __cplusplus */ #ifdef ENABLE_BINRELOC -# define INKSCAPE_APPICONDIR BR_DATADIR( "/../share/pixmaps" ) -# define INKSCAPE_ATTRRELDIR BR_DATADIR( "/../share/inkscape/attributes" ) -# define INKSCAPE_BINDDIR BR_DATADIR( "/../share/inkscape/bind" ) -# define INKSCAPE_EXAMPLESDIR BR_DATADIR( "/../share/inkscape/examples" ) -# define INKSCAPE_EXTENSIONDIR BR_DATADIR( "/../share/inkscape/extensions" ) -# define INKSCAPE_FILTERDIR BR_DATADIR( "/../share/inkscape/filters" ) -# define INKSCAPE_GRADIENTSDIR BR_DATADIR( "/../share/inkscape/gradients" ) -# define INKSCAPE_KEYSDIR BR_DATADIR( "/../share/inkscape/keys" ) -# define INKSCAPE_PIXMAPDIR BR_DATADIR( "/../share/inkscape/icons" ) -# define INKSCAPE_MARKERSDIR BR_DATADIR( "/../share/inkscape/markers" ) -# define INKSCAPE_PALETTESDIR BR_DATADIR( "/../share/inkscape/palettes" ) -# define INKSCAPE_PATTERNSDIR BR_DATADIR( "/../share/inkscape/patterns" ) -# define INKSCAPE_SCREENSDIR BR_DATADIR( "/../share/inkscape/screens" ) -# define INKSCAPE_SYMBOLSDIR BR_DATADIR( "/../share/inkscape/symbols" ) -# define INKSCAPE_THEMEDIR BR_DATADIR( "/../share/icons" ) -# define INKSCAPE_TUTORIALSDIR BR_DATADIR( "/../share/inkscape/tutorials" ) -# define INKSCAPE_TEMPLATESDIR BR_DATADIR( "/../share/inkscape/templates" ) -# define INKSCAPE_UIDIR BR_DATADIR( "/../share/inkscape/ui" ) +# define INKSCAPE_LIBPREFIX "/../.." +# define INKSCAPE_APPICONDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/pixmaps" ) +# define INKSCAPE_ATTRRELDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/attributes" ) +# define INKSCAPE_BINDDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/bind" ) +# define INKSCAPE_EXAMPLESDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/examples" ) +# define INKSCAPE_EXTENSIONDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/extensions" ) +# define INKSCAPE_FILTERDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/filters" ) +# define INKSCAPE_GRADIENTSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/gradients" ) +# define INKSCAPE_KEYSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/keys" ) +# define INKSCAPE_PIXMAPDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/icons" ) +# define INKSCAPE_MARKERSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/markers" ) +# define INKSCAPE_PALETTESDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/palettes" ) +# define INKSCAPE_PATTERNSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/patterns" ) +# define INKSCAPE_SCREENSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/screens" ) +# define INKSCAPE_SYMBOLSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/symbols" ) +# define INKSCAPE_THEMEDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/icons" ) +# define INKSCAPE_TUTORIALSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/tutorials" ) +# define INKSCAPE_TEMPLATESDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/templates" ) +# define INKSCAPE_UIDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/ui" ) //CREATE V0.1 support -# define CREATE_GRADIENTSDIR BR_DATADIR( "/../share/create/gradients/gimp" ) -# define CREATE_PALETTESDIR BR_DATADIR( "/../share/create/swatches" ) -# define CREATE_PATTERNSDIR BR_DATADIR( "/../share/create/patterns/vector" ) +# define CREATE_GRADIENTSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/create/gradients/gimp" ) +# define CREATE_PALETTESDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/create/swatches" ) +# define CREATE_PATTERNSDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/create/patterns/vector" ) #else # ifdef WIN32 # define INKSCAPE_APPICONDIR WIN32_DATADIR("pixmaps") -- cgit v1.2.3 From 882758ec9a24d6a13667c314eed46ba097a2d4ee Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 20 Jun 2016 22:38:08 -0500 Subject: Make sure that our share directory exits so that we can ../../ it (bzr r14950.1.9) --- snapcraft.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index 74c09538a..3451607b8 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -39,12 +39,13 @@ parts: - libwpg-0.3-3 - libglib2.0-bin - light-themes - stage: - - -lib/inkscape + snap: + - -lib/inkscape/*.a snapcraft-wrapper: plugin: copy files: snapcraft.sh: snapcraft.sh + README: lib/share/README gtklaunch: plugin: make source: https://github.com/dplanella/gtkconf.git -- cgit v1.2.3 From 1a20f71053ab79c1f130ce592a2557a79d03b195 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 21 Jun 2016 08:08:22 -0500 Subject: Adding a comment to explain what we're doing (bzr r14950.1.10) --- src/path-prefix.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/path-prefix.h b/src/path-prefix.h index 3e226dd97..8a39ede84 100644 --- a/src/path-prefix.h +++ b/src/path-prefix.h @@ -21,6 +21,10 @@ //#endif /* __cplusplus */ #ifdef ENABLE_BINRELOC +/* The way that we're building now is with a shared library between Inkscape + and Inkview, and the code will find the path to the library then. But we + don't really want that. This prefix then pulls things out of the lib directory + and back into the root install dir. */ # define INKSCAPE_LIBPREFIX "/../.." # define INKSCAPE_APPICONDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/pixmaps" ) # define INKSCAPE_ATTRRELDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/attributes" ) -- cgit v1.2.3 From 1636c1dd1651780d01759676b194312529f211f7 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Sat, 25 Jun 2016 22:24:26 +0200 Subject: Moved next functions, added namespace, renamed range functions (bzr r14954.1.10) --- src/desktop-style.cpp | 6 +- src/extension/execution-env.cpp | 2 +- src/extension/implementation/implementation.cpp | 2 +- src/extension/implementation/script.cpp | 2 +- src/extension/internal/bitmap/imagemagick.cpp | 4 +- src/extension/internal/bluredge.cpp | 2 +- src/extension/internal/filter/filter.cpp | 2 +- src/extension/internal/grid.cpp | 2 +- src/extension/plugins/grid2/grid.cpp | 2 +- src/gradient-chemistry.cpp | 4 +- src/gradient-drag.cpp | 6 +- src/object-set.cpp | 31 +++++++--- src/object-set.h | 27 +++++++- src/path-chemistry.cpp | 10 +-- src/selcue.cpp | 8 +-- src/selection-chemistry.cpp | 82 ++++++++++++------------- src/selection-describer.cpp | 2 +- src/selection.cpp | 18 +----- src/selection.h | 16 ----- src/seltrans.cpp | 14 ++--- src/snap.cpp | 2 +- src/splivarot.cpp | 10 +-- src/text-chemistry.cpp | 24 ++++---- src/trace/trace.cpp | 2 +- src/ui/clipboard.cpp | 6 +- src/ui/dialog/align-and-distribute.cpp | 16 ++--- src/ui/dialog/clonetiler.cpp | 8 +-- src/ui/dialog/export.cpp | 14 ++--- src/ui/dialog/filter-effects-dialog.cpp | 6 +- src/ui/dialog/find.cpp | 2 +- src/ui/dialog/glyphs.cpp | 4 +- src/ui/dialog/grid-arrange-tab.cpp | 12 ++-- src/ui/dialog/icon-preview.cpp | 2 +- src/ui/dialog/objects.cpp | 2 +- src/ui/dialog/pixelartdialog.cpp | 2 +- src/ui/dialog/polar-arrange-tab.cpp | 2 +- src/ui/dialog/svg-fonts-dialog.cpp | 4 +- src/ui/dialog/swatches.cpp | 2 +- src/ui/dialog/tags.cpp | 4 +- src/ui/dialog/text-edit.cpp | 6 +- src/ui/dialog/transformation.cpp | 14 ++--- src/ui/interface.cpp | 2 +- src/ui/tools/connector-tool.cpp | 2 +- src/ui/tools/eraser-tool.cpp | 4 +- src/ui/tools/gradient-tool.cpp | 14 ++--- src/ui/tools/lpe-tool.cpp | 2 +- src/ui/tools/mesh-tool.cpp | 12 ++-- src/ui/tools/node-tool.cpp | 4 +- src/ui/tools/select-tool.cpp | 2 +- src/ui/tools/spray-tool.cpp | 10 +-- src/ui/tools/tool-base.cpp | 2 +- src/ui/tools/tweak-tool.cpp | 6 +- src/ui/widget/style-subject.cpp | 2 +- src/vanishing-point.cpp | 10 +-- src/widgets/arc-toolbar.cpp | 8 +-- src/widgets/connector-toolbar.cpp | 6 +- src/widgets/fill-style.cpp | 2 +- src/widgets/gradient-toolbar.cpp | 6 +- src/widgets/mesh-toolbar.cpp | 4 +- src/widgets/pencil-toolbar.cpp | 4 +- src/widgets/rect-toolbar.cpp | 4 +- src/widgets/spiral-toolbar.cpp | 4 +- src/widgets/star-toolbar.cpp | 12 ++-- src/widgets/stroke-style.cpp | 6 +- src/widgets/text-toolbar.cpp | 8 +-- testfiles/src/object-set-test.cpp | 6 +- 66 files changed, 270 insertions(+), 258 deletions(-) diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 7f9b46c7d..6fab01f16 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -194,7 +194,7 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write sp_repr_css_merge(css_write, css); sp_css_attr_unset_uris(css_write); prefs->mergeStyle("/desktop/style", css_write); - std::vector const itemlist = desktop->selection->itemList(); + std::vector const itemlist = desktop->selection->items(); for (std::vector::const_iterator i = itemlist.begin(); i!= itemlist.end(); ++i) { /* last used styles for 3D box faces are stored separately */ SPObject *obj = *i; @@ -234,7 +234,7 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write sp_repr_css_merge(css_no_text, css); css_no_text = sp_css_attr_unset_text(css_no_text); - std::vector const itemlist = desktop->selection->itemList(); + std::vector const itemlist = desktop->selection->items(); for (std::vector::const_iterator i = itemlist.begin(); i!= itemlist.end(); ++i) { SPItem *item = *i; @@ -1917,7 +1917,7 @@ sp_desktop_query_style(SPDesktop *desktop, SPStyle *style, int property) // otherwise, do querying and averaging over selection if (desktop->selection != NULL) { - return sp_desktop_query_style_from_list (desktop->selection->itemList(), style, property); + return sp_desktop_query_style_from_list (desktop->selection->items(), style, property); } return QUERY_STYLE_NOTHING; diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index d5c80f26e..2b0183d4b 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -58,7 +58,7 @@ ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Imp sp_namedview_document_from_window(desktop); if (desktop != NULL) { - std::vector selected = desktop->getSelection()->itemList(); + std::vector selected = desktop->getSelection()->items(); for(std::vector::const_iterator x = selected.begin(); x != selected.end(); ++x){ Glib::ustring selected_id; selected_id = (*x)->getId(); diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp index 92a8a2833..eb1213a84 100644 --- a/src/extension/implementation/implementation.cpp +++ b/src/extension/implementation/implementation.cpp @@ -46,7 +46,7 @@ Gtk::Widget *Implementation::prefs_effect(Inkscape::Extension::Effect *module, I SPDocument * current_document = view->doc(); - std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); + std::vector selected = ((SPDesktop *) view)->getSelection()->items(); Inkscape::XML::Node const* first_select = NULL; if (!selected.empty()) { const SPItem * item = selected[0]; diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index 01323bee2..0acc99aed 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -690,7 +690,7 @@ void Script::effect(Inkscape::Extension::Effect *module, } std::vector selected = - desktop->getSelection()->itemList(); //desktop should not be NULL since doc was checked and desktop is a casted pointer + desktop->getSelection()->items(); //desktop should not be NULL since doc was checked and desktop is a casted pointer for(std::vector::const_iterator x = selected.begin(); x != selected.end(); ++x){ Glib::ustring selected_id; selected_id += "--id="; diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index a235dcb0f..707cd763d 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -65,7 +65,7 @@ ImageMagickDocCache::ImageMagickDocCache(Inkscape::UI::View::View * view) : _imageItems(NULL) { SPDesktop *desktop = (SPDesktop*)view; - const std::vector selectedItemList = desktop->selection->itemList(); + const std::vector selectedItemList = desktop->selection->items(); int selectCount = selectedItemList.size(); // Init the data-holders @@ -235,7 +235,7 @@ ImageMagick::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::Vie { SPDocument * current_document = view->doc(); - std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); + std::vector selected = ((SPDesktop *) view)->getSelection()->items(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { first_select = (selected.front())->getRepr(); diff --git a/src/extension/internal/bluredge.cpp b/src/extension/internal/bluredge.cpp index 4a04e3c33..6dc788f17 100644 --- a/src/extension/internal/bluredge.cpp +++ b/src/extension/internal/bluredge.cpp @@ -62,7 +62,7 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View double old_offset = prefs->getDouble("/options/defaultoffsetwidth/value", 1.0, "px"); // TODO need to properly refcount the items, at least - std::vector items(selection->itemList()); + std::vector items(selection->items()); selection->clear(); for(std::vector::iterator item = items.begin(); diff --git a/src/extension/internal/filter/filter.cpp b/src/extension/internal/filter/filter.cpp index 25e89bbf3..acfcaed0e 100644 --- a/src/extension/internal/filter/filter.cpp +++ b/src/extension/internal/filter/filter.cpp @@ -125,7 +125,7 @@ void Filter::effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::Vie Inkscape::Selection * selection = ((SPDesktop *)document)->selection; // TODO need to properly refcount the items, at least - std::vector items(selection->itemList()); + std::vector items(selection->items()); Inkscape::XML::Document * xmldoc = document->doc()->getReprDoc(); Inkscape::XML::Node * defsrepr = document->doc()->getDefs()->getRepr(); diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index c766bd828..fd1b311a8 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -180,7 +180,7 @@ Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View { SPDocument * current_document = view->doc(); - std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); + std::vector selected = ((SPDesktop *) view)->getSelection()->items(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { first_select = selected[0]->getRepr(); diff --git a/src/extension/plugins/grid2/grid.cpp b/src/extension/plugins/grid2/grid.cpp index 6880c574d..c938d1ec4 100644 --- a/src/extension/plugins/grid2/grid.cpp +++ b/src/extension/plugins/grid2/grid.cpp @@ -186,7 +186,7 @@ Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View { SPDocument * current_document = view->doc(); - std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); + std::vector selected = ((SPDesktop *) view)->getSelection()->items(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { first_select = selected[0]->getRepr(); diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index edeb523d7..698cf5012 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -1570,7 +1570,7 @@ void sp_gradient_invert_selected_gradients(SPDesktop *desktop, Inkscape::PaintTa { Inkscape::Selection *selection = desktop->getSelection(); - const std::vector list=selection->itemList(); + const std::vector list= selection->items(); for (std::vector::const_iterator i = list.begin(); i != list.end(); ++i) { sp_item_gradient_invert_vector_color(*i, fill_or_stroke); } @@ -1595,7 +1595,7 @@ void sp_gradient_reverse_selected_gradients(SPDesktop *desktop) if (drag && !drag->selected.empty()) { drag->selected_reverse_vector(); } else { // If no drag or no dragger selected, act on selection (both fill and stroke gradients) - const std::vector list=selection->itemList(); + const std::vector list= selection->items(); for (std::vector::const_iterator i = list.begin(); i != list.end(); ++i) { sp_item_gradient_reverse_vector(*i, Inkscape::FOR_FILL); sp_item_gradient_reverse_vector(*i, Inkscape::FOR_STROKE); diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 613dc2fc1..3d1cefd4f 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -2070,7 +2070,7 @@ void GrDrag::updateDraggers() this->draggers.clear(); g_return_if_fail(this->selection != NULL); - std::vector list = this->selection->itemList(); + std::vector list = this->selection->items(); for (std::vector::const_iterator i = list.begin(); i != list.end(); ++i) { SPItem *item = *i; SPStyle *style = item->style; @@ -2138,7 +2138,7 @@ void GrDrag::updateLines() g_return_if_fail(this->selection != NULL); - std::vector list = this->selection->itemList(); + std::vector list = this->selection->items(); for (std::vector::const_iterator i = list.begin(); i != list.end(); ++i) { SPItem *item = *i; @@ -2282,7 +2282,7 @@ void GrDrag::updateLevels() g_return_if_fail (this->selection != NULL); - std::vector list = this->selection->itemList(); + std::vector list = this->selection->items(); for (std::vector::const_iterator i = list.begin(); i != list.end(); ++i) { SPItem *item = *i; Geom::OptRect rect = item->desktopVisualBounds(); diff --git a/src/object-set.cpp b/src/object-set.cpp index d282e7894..627544a21 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -16,6 +16,7 @@ #include "persp3d.h" #include "preferences.h" +namespace Inkscape { bool ObjectSet::add(SPObject* object) { g_return_val_if_fail(object != NULL, false); @@ -202,7 +203,7 @@ SPItem *ObjectSet::largestItem(CompareSize compare) { } SPItem *ObjectSet::_sizeistItem(bool sml, CompareSize compare) { - std::vector const items = itemList(); + std::vector const items = const_cast(this)->items(); gdouble max = sml ? 1e18 : 0; SPItem *ist = NULL; @@ -226,10 +227,10 @@ SPItem *ObjectSet::_sizeistItem(bool sml, CompareSize compare) { return ist; } -SPObjectRange ObjectSet::range() { +SPObjectRange ObjectSet::objects() { return SPObjectRange(container.get().begin(), container.get().end()); } -std::vector ObjectSet::itemList() { +std::vector ObjectSet::items() { std::vector tmp = std::vector(container.begin(), container.end()); std::vector result; std::remove_if(tmp.begin(), tmp.end(), [](SPObject* o){return !SP_IS_ITEM(o);}); @@ -237,6 +238,18 @@ std::vector ObjectSet::itemList() { return result; } +std::vector ObjectSet::xmlNodes() { + std::vector list = items(); + std::vector result; + std::transform(list.begin(), list.end(), std::back_inserter(result), [](SPItem* item) { return item->getRepr(); }); + return result; +} + +Inkscape::XML::Node *ObjectSet::singleRepr() { + SPObject *obj = single(); + return obj ? obj->getRepr() : nullptr; +} + void ObjectSet::set(SPObject *object) { _clear(); _add(object); @@ -273,7 +286,7 @@ Geom::OptRect ObjectSet::bounds(SPItem::BBoxType type) const Geom::OptRect ObjectSet::geometricBounds() const { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->items(); Geom::OptRect bbox; for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { @@ -284,7 +297,7 @@ Geom::OptRect ObjectSet::geometricBounds() const Geom::OptRect ObjectSet::visualBounds() const { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->items(); Geom::OptRect bbox; for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { @@ -305,7 +318,7 @@ Geom::OptRect ObjectSet::preferredBounds() const Geom::OptRect ObjectSet::documentBounds(SPItem::BBoxType type) const { Geom::OptRect bbox; - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->items(); if (items.empty()) return bbox; for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { @@ -319,7 +332,7 @@ Geom::OptRect ObjectSet::documentBounds(SPItem::BBoxType type) const // If we have a selection of multiple items, then the center of the first item // will be returned; this is also the case in SelTrans::centerRequest() boost::optional ObjectSet::center() const { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->items(); if (!items.empty()) { SPItem *first = items.back(); // from the first item in selection if (first->isCenterSet()) { // only if set explicitly @@ -381,4 +394,6 @@ void ObjectSet::_remove_3D_boxes_recursively(SPObject *obj) { } _3dboxes.erase(b); } -} \ No newline at end of file +} + +} // namespace Inkscape diff --git a/src/object-set.h b/src/object-set.h index 05264a3ea..49a875562 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -28,6 +28,12 @@ class SPBox3D; class Persp3D; +namespace Inkscape { + +namespace XML { +class Node; +} + struct hashed{}; struct random_access{}; @@ -54,6 +60,12 @@ typedef boost::any_range< SPItem* const&, std::ptrdiff_t> SPItemRange; +typedef boost::any_range< + XML::Node*, + boost::random_access_traversal_tag, + XML::Node* const&, + std::ptrdiff_t> XMLNodeRange; + class ObjectSet { public: enum CompareSize {HORIZONTAL, VERTICAL, AREA}; @@ -144,10 +156,20 @@ public: SPItem *largestItem(CompareSize compare); /** Returns the list of selected objects. */ - SPObjectRange range(); + SPObjectRange objects(); /** Returns the list of selected SPItems. */ - std::vector itemList(); + std::vector items(); + + /** Returns a list of the xml nodes of all selected objects. */ + std::vector xmlNodes(); + + /** + * Returns a single selected object's xml node. + * + * @return NULL unless exactly one object is selected + */ + XML::Node *singleRepr(); /** * Selects exactly the specified objects. @@ -213,5 +235,6 @@ protected: }; +} // namespace Inkscape #endif //INKSCAPE_PROTOTYPE_OBJECTSET_H diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 1a345b565..37d242b6b 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -57,7 +57,7 @@ sp_selected_path_combine(SPDesktop *desktop, bool skip_undo) Inkscape::Selection *selection = desktop->getSelection(); SPDocument *doc = desktop->getDocument(); - std::vector items(selection->itemList()); + std::vector items(selection->items()); if (items.size() < 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to combine.")); @@ -203,7 +203,7 @@ sp_selected_path_break_apart(SPDesktop *desktop, bool skip_undo) bool did = false; - std::vector itemlist(selection->itemList()); + std::vector itemlist(selection->items()); for (std::vector::const_iterator i = itemlist.begin(); i != itemlist.end(); ++i){ SPItem *item = *i; @@ -303,7 +303,7 @@ sp_selected_path_to_curves(Inkscape::Selection *selection, SPDesktop *desktop, b desktop->setWaitingCursor(); } - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); std::vector to_select; selection->clear(); std::vector items(selected); @@ -334,7 +334,7 @@ void sp_selected_to_lpeitems(SPDesktop *desktop) return; } - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); std::vector to_select; selection->clear(); std::vector items(selected); @@ -603,7 +603,7 @@ void sp_selected_path_reverse(SPDesktop *desktop) { Inkscape::Selection *selection = desktop->getSelection(); - std::vector items = selection->itemList(); + std::vector items = selection->items(); if (items.empty()) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select path(s) to reverse.")); diff --git a/src/selcue.cpp b/src/selcue.cpp index 297b9fffc..13248a553 100644 --- a/src/selcue.cpp +++ b/src/selcue.cpp @@ -96,14 +96,14 @@ void Inkscape::SelCue::_updateItemBboxes(Inkscape::Preferences *prefs) void Inkscape::SelCue::_updateItemBboxes(gint mode, int prefs_bbox) { - const std::vector items = _selection->itemList(); + const std::vector items = _selection->items(); if (_item_bboxes.size() != items.size()) { _newItemBboxes(); return; } int bcount = 0; - std::vector ll=_selection->itemList(); + std::vector ll= _selection->items(); for (std::vector::const_iterator l = ll.begin(); l != ll.end(); ++l) { SPItem *item = *l; SPCanvasItem* box = _item_bboxes[bcount ++]; @@ -146,7 +146,7 @@ void Inkscape::SelCue::_newItemBboxes() int prefs_bbox = prefs->getBool("/tools/bounding_box"); - std::vector ll=_selection->itemList(); + std::vector ll= _selection->items(); for (std::vector::const_iterator l = ll.begin(); l != ll.end(); ++l) { SPItem *item = *l; @@ -201,7 +201,7 @@ void Inkscape::SelCue::_newTextBaselines() } _text_baselines.clear(); - std::vector ll = _selection->itemList(); + std::vector ll = _selection->items(); for (std::vector::const_iterator l=ll.begin();l!=ll.end();++l) { SPItem *item = *l; diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index a13f3e64d..ded776fea 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -282,7 +282,7 @@ void SelectionHelper::fixSelection(SPDesktop *dt) std::vector items ; - std::vector const selList = selection->itemList(); + std::vector const selList = selection->items(); for( std::vector::const_reverse_iterator i = selList.rbegin(); i != selList.rend(); ++i ) { SPItem *item = *i; @@ -409,7 +409,7 @@ void sp_selection_delete(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Nothing was deleted.")); return; } - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); selection->clear(); sp_selection_delete_impl(selected); desktop->currentLayer()->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); @@ -454,7 +454,7 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone, bool duplicat desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to duplicate.")); return; } - std::vector reprs(selection->reprList()); + std::vector reprs(selection->xmlNodes()); if(duplicateLayer){ reprs.clear(); @@ -624,7 +624,7 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i std::vector exclude; if (invert) { - exclude = selection->itemList(); + exclude = selection->items(); } if (force_all_layers) @@ -763,7 +763,7 @@ void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop) return; } - std::vector p (selection->reprList()); + std::vector p (selection->xmlNodes()); selection->clear(); @@ -798,7 +798,7 @@ void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDeskto selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("No objects selected to pop out of group.")); return; } - std::vector selection_list = selection->itemList(); + std::vector selection_list = selection->items(); std::vector::const_iterator item = selection_list.begin(); // leaving this because it will be useful for // future implementation of complex pop ungrouping @@ -831,7 +831,7 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) } // first check whether there is anything to ungroup - std::vector old_select = selection->itemList(); + std::vector old_select = selection->items(); std::vector new_select; GSList *groups = NULL; for (std::vector::const_iterator item = old_select.begin(); item!=old_select.end(); ++item) { @@ -983,7 +983,7 @@ bool sp_item_repr_compare_position_bool(SPObject const *first, SPObject const *s void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) { - std::vector items= selection->itemList(); + std::vector items= selection->items(); if (items.empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise.")); return; @@ -1040,7 +1040,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto return; } - std::vector items = selection->itemList(); + std::vector items = selection->items(); SPGroup const *group = sp_item_list_common_parent_group(items); if (!group) { @@ -1048,7 +1048,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto return; } - std::vector rl(selection->reprList()); + std::vector rl(selection->xmlNodes()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_iterator l=rl.begin(); l!=rl.end();++l) { @@ -1062,7 +1062,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) { - std::vector items = selection->itemList(); + std::vector items = selection->items(); if (items.empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower.")); return; @@ -1124,7 +1124,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des return; } - std::vector items =selection->itemList(); + std::vector items = selection->items(); SPGroup const *group = sp_item_list_common_parent_group(items); if (!group) { @@ -1132,7 +1132,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des return; } - std::vector rl(selection->reprList()); + std::vector rl(selection->xmlNodes()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_reverse_iterator l=rl.rbegin();l!=rl.rend();++l) { @@ -1287,7 +1287,7 @@ void sp_selection_remove_livepatheffect(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to remove live path effects from.")); return; } - std::vector list=selection->itemList(); + std::vector list= selection->items(); for ( std::vector::const_iterator itemlist=list.begin();itemlist!=list.end();++itemlist) { SPItem *item = *itemlist; @@ -1368,7 +1368,7 @@ void sp_selection_to_next_layer(SPDesktop *dt, bool suppressDone) return; } - std::vector items(selection->itemList()); + std::vector items(selection->items()); bool no_more = false; // Set to true, if no more layers above SPObject *next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); @@ -1412,7 +1412,7 @@ void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) return; } - const std::vector items(selection->itemList()); + const std::vector items(selection->items()); bool no_more = false; // Set to true, if no more layers below SPObject *next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); @@ -1455,7 +1455,7 @@ void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone) return; } - std::vector items(selection->itemList()); + std::vector items(selection->items()); if (moveto) { selection->clear(); @@ -1506,7 +1506,7 @@ static bool selection_contains_both_clone_and_original(Inkscape::Selection *selection) { bool clone_with_original = false; - std::vector items = selection->itemList(); + std::vector items = selection->items(); for (std::vector::const_iterator l=items.begin();l!=items.end() ;++l) { SPItem *item = *l; if (item) { @@ -1551,7 +1551,7 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons persp3d_apply_affine_transformation(transf_persp, affine); } - std::vector items = selection->itemList(); + std::vector items = selection->items(); for (std::vector::const_iterator l=items.begin();l!=items.end() ;++l) { SPItem *item = *l; @@ -1722,7 +1722,7 @@ void sp_selection_remove_transform(SPDesktop *desktop) Inkscape::Selection *selection = desktop->getSelection(); - std::vector items = selection->reprList(); + std::vector items = selection->xmlNodes(); for (std::vector::const_iterator l=items.begin();l!=items.end() ;++l) { (*l)->setAttribute("transform", NULL, false); } @@ -1822,7 +1822,7 @@ void sp_selection_rotate_90(SPDesktop *desktop, bool ccw) if (selection->isEmpty()) return; - std::vector items = selection->itemList(); + std::vector items = selection->items(); Geom::Rotate const rot_90(Geom::Point(0, ccw ? 1 : -1)); // pos. or neg. rotation, depending on the value of ccw for (std::vector::const_iterator l=items.begin();l!=items.end() ;++l) { SPItem *item = *l; @@ -1886,7 +1886,7 @@ void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolea std::vector all_matches; Inkscape::Selection *selection = desktop->getSelection(); - std::vector items = selection->itemList(); + std::vector items = selection->items(); std::vector tmp; for (std::vector::const_iterator iter=all_list.begin();iter!=all_list.end();++iter) { @@ -1943,7 +1943,7 @@ void sp_select_same_object_type(SPDesktop *desktop) Inkscape::Selection *selection = desktop->getSelection(); - std::vector items=selection->itemList(); + std::vector items= selection->items(); for (std::vector::const_iterator sel_iter=items.begin();sel_iter!=items.end();++sel_iter) { SPItem *sel = *sel_iter; if (sel) { @@ -2456,7 +2456,7 @@ sp_selection_item_next(SPDesktop *desktop) root = desktop->currentRoot(); } - SPItem *item=next_item_from_list(desktop, selection->itemList(), root, SP_CYCLING == SP_CYCLE_VISIBLE, inlayer, onlyvisible, onlysensitive); + SPItem *item=next_item_from_list(desktop, selection->items(), root, SP_CYCLING == SP_CYCLE_VISIBLE, inlayer, onlyvisible, onlysensitive); if (item) { selection->set(item, PREFS_SELECTION_LAYER_RECURSIVE == inlayer); @@ -2486,7 +2486,7 @@ sp_selection_item_prev(SPDesktop *desktop) root = desktop->currentRoot(); } - SPItem *item=next_item_from_list(desktop, selection->itemList(), root, SP_CYCLING == SP_CYCLE_VISIBLE, inlayer, onlyvisible, onlysensitive); + SPItem *item=next_item_from_list(desktop, selection->items(), root, SP_CYCLING == SP_CYCLE_VISIBLE, inlayer, onlyvisible, onlysensitive); if (item) { selection->set(item, PREFS_SELECTION_LAYER_RECURSIVE == inlayer); @@ -2603,7 +2603,7 @@ void sp_selection_clone(SPDesktop *desktop) return; } - std::vector reprs (selection->reprList()); + std::vector reprs (selection->xmlNodes()); selection->clear(); @@ -2662,7 +2662,7 @@ sp_selection_relink(SPDesktop *desktop) // Get a copy of current selection. bool relinked = false; - std::vector items=selection->itemList(); + std::vector items= selection->items(); for (std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPItem *item = *i; @@ -2700,7 +2700,7 @@ sp_selection_unlink(SPDesktop *desktop) // Get a copy of current selection. std::vector new_select; bool unlinked = false; - std::vector items=selection->itemList(); + std::vector items= selection->items(); for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();++i){ SPItem *item = *i; @@ -2767,7 +2767,7 @@ sp_select_clone_original(SPDesktop *desktop) // Check if other than two objects are selected - std::vector items=selection->itemList(); + std::vector items= selection->items(); if (items.size() != 1 || !item) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, error); return; @@ -2865,7 +2865,7 @@ void sp_selection_clone_original_path_lpe(SPDesktop *desktop) Inkscape::SVGOStringStream os; SPObject * firstItem = NULL; - std::vector items=selection->itemList(); + std::vector items= selection->items(); for (std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_SHAPE(*i) || SP_IS_TEXT(*i)) { if (firstItem) { @@ -2950,7 +2950,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) Geom::Point center( *c - corner ); // As defined by rotation center center[Geom::Y] = -center[Geom::Y]; - std::vector items(selection->itemList()); + std::vector items(selection->items()); //items = g_slist_sort(items, (GCompareFunc) sp_object_compare_position); // Why needed? @@ -3024,7 +3024,7 @@ void sp_selection_to_guides(SPDesktop *desktop) SPDocument *doc = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); // we need to copy the list because it gets reset when objects are deleted - std::vector items(selection->itemList()); + std::vector items(selection->items()); if (items.empty()) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to convert to guides.")); @@ -3090,7 +3090,7 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) doc->ensureUpToDate(); - std::vector items(selection->range().begin(), selection->range().end()); + std::vector items(selection->objects().begin(), selection->objects().end()); sort(items.begin(),items.end(),sp_object_compare_position_bool); // Keep track of parent, this is where will be inserted. @@ -3302,7 +3302,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply) move_p[Geom::Y] = -move_p[Geom::Y]; Geom::Affine move = Geom::Affine(Geom::Translate(move_p)); - std::vector items (selection->itemList()); + std::vector items (selection->items()); sort(items.begin(),items.end(),sp_object_compare_position_bool); @@ -3407,7 +3407,7 @@ void sp_selection_untile(SPDesktop *desktop) bool did = false; - std::vector items(selection->itemList()); + std::vector items(selection->items()); for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();++i){ SPItem *item = *i; @@ -3472,7 +3472,7 @@ void sp_selection_get_export_hints(Inkscape::Selection *selection, Glib::ustring return; } - std::vector const reprlst = selection->reprList(); + std::vector const reprlst = selection->xmlNodes(); bool filename_search = TRUE; bool xdpi_search = TRUE; bool ydpi_search = TRUE; @@ -3564,7 +3564,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) } // List of the items to show; all others will be hidden - std::vector items(selection->itemList()); + std::vector items(selection->items()); // Sort items so that the topmost comes last sort(items.begin(),items.end(),sp_item_repr_compare_position_bool); @@ -3765,7 +3765,7 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) return; } - std::vector p(selection->reprList()); + std::vector p(selection->xmlNodes()); sort(p.begin(),p.end(),sp_repr_compare_position_bool); @@ -3875,7 +3875,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ if ( apply_to_layer && is_empty) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to create clippath or mask from.")); return; - } else if (!apply_to_layer && ( is_empty || selection->itemList().size()==1 )) { + } else if (!apply_to_layer && ( is_empty || selection->items().size()==1 )) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select mask object and object(s) to apply clippath or mask to.")); return; } @@ -3890,7 +3890,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ doc->ensureUpToDate(); - std::vector items(selection->itemList()); + std::vector items(selection->items()); sort(items.begin(),items.end(),sp_object_compare_position_bool); @@ -4052,7 +4052,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { gchar const *attributeName = apply_clip_path ? "clip-path" : "mask"; std::map referenced_objects; - std::vector items(selection->itemList()); + std::vector items(selection->items()); selection->clear(); GSList *items_to_ungroup = NULL; diff --git a/src/selection-describer.cpp b/src/selection-describer.cpp index ddc7a0d10..93808ed54 100644 --- a/src/selection-describer.cpp +++ b/src/selection-describer.cpp @@ -122,7 +122,7 @@ void SelectionDescriber::_selectionModified(Inkscape::Selection *selection, guin } void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *selection) { - std::vector const items = selection->itemList(); + std::vector const items = selection->items(); if (items.empty()) { // no items _context.set(Inkscape::NORMAL_MESSAGE, _when_nothing); diff --git a/src/selection.cpp b/src/selection.cpp index 32e27f2d4..94b64a7bc 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -130,25 +130,13 @@ void Selection::setReprList(std::vector const &list) { _emitChanged(); } -std::vector Selection::reprList() { - std::vector list = itemList(); - std::vector result; - std::transform(list.begin(), list.end(), std::back_inserter(result), [](SPItem* item) { return item->getRepr(); }); - return result; -} - -Inkscape::XML::Node *Selection::singleRepr() { - SPObject *obj = single(); - return obj ? obj->getRepr() : nullptr; -} - std::vector Selection::getSnapPoints(SnapPreferences const *snapprefs) const { std::vector p; if (snapprefs != NULL){ SnapPreferences snapprefs_dummy = *snapprefs; // create a local copy of the snapping prefs snapprefs_dummy.setTargetSnappable(Inkscape::SNAPTARGET_ROTATION_CENTER, false); // locally disable snapping to the item center - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->items(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *this_item = *iter; this_item->getSnappoints(p, &snapprefs_dummy); @@ -174,7 +162,7 @@ SPObject *Selection::_objectForXMLNode(Inkscape::XML::Node *repr) const { } size_t Selection::numberOfLayers() { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->items(); std::set layers; for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPObject *layer = _layers->layerForObject(*iter); @@ -185,7 +173,7 @@ size_t Selection::numberOfLayers() { } size_t Selection::numberOfParents() { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->items(); std::set parents; for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPObject *parent = (*iter)->parent; diff --git a/src/selection.h b/src/selection.h index 8b1bb25fa..7027a388f 100644 --- a/src/selection.h +++ b/src/selection.h @@ -39,12 +39,6 @@ class Node; namespace Inkscape { -typedef boost::any_range< - XML::Node*, - boost::random_access_traversal_tag, - XML::Node* const&, - std::ptrdiff_t> XMLNodeRange; - /** * The set of selected SPObjects for a given document and layer model. * @@ -156,16 +150,6 @@ public: return includes(_objectForXMLNode(repr)); } - /** - * Returns a single selected object's xml node. - * - * @return NULL unless exactly one object is selected - */ - XML::Node *singleRepr(); - - /** Returns a list of the xml nodes of all selected objects. */ - std::vector reprList(); - /** Returns the number of layers in which there are selected objects. */ size_t numberOfLayers(); diff --git a/src/seltrans.cpp b/src/seltrans.cpp index b54525610..9fa6172ed 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -240,7 +240,7 @@ void Inkscape::SelTrans::setCenter(Geom::Point const &p) _center_is_set = true; // Write the new center position into all selected items - std::vector items=_desktop->selection->itemList(); + std::vector items= _desktop->selection->items(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = SP_ITEM(*iter); it->setCenter(p); @@ -270,7 +270,7 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s return; } - std::vector items=_desktop->selection->itemList(); + std::vector items= _desktop->selection->items(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = static_cast(sp_object_ref(*iter, NULL)); _items.push_back(it); @@ -492,7 +492,7 @@ void Inkscape::SelTrans::ungrab() if (_center_is_set) { // we were dragging center; update reprs and commit undoable action - std::vector items=_desktop->selection->itemList(); + std::vector items= _desktop->selection->items(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = *iter; it->updateRepr(); @@ -529,7 +529,7 @@ void Inkscape::SelTrans::stamp() l = _stamp_cache; } else { /* Build cache */ - l = selection->itemList(); + l = selection->items(); sort(l.begin(),l.end(),sp_object_compare_position_bool); _stamp_cache = l; } @@ -621,7 +621,7 @@ void Inkscape::SelTrans::_updateVolatileState() return; } - _strokewidth = stroke_average_width (selection->itemList()); + _strokewidth = stroke_average_width (selection->items()); } void Inkscape::SelTrans::_showHandles(SPSelTransType type) @@ -711,7 +711,7 @@ void Inkscape::SelTrans::handleClick(SPKnot */*knot*/, guint state, SPSelTransHa case HANDLE_CENTER: if (state & GDK_SHIFT_MASK) { // Unset the center position for all selected items - std::vector items=_desktop->selection->itemList(); + std::vector items= _desktop->selection->items(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = *iter; it->unsetCenter(); @@ -1287,7 +1287,7 @@ gboolean Inkscape::SelTrans::centerRequest(Geom::Point &pt, guint state) // items will share a single center. While dragging that single center, it should never snap to the // centers of any of the selected objects. Therefore we will have to pass the list of selected items // to the snapper, to avoid self-snapping of the rotation center - std::vector items = const_cast(_selection)->itemList(); + std::vector items = const_cast(_selection)->items(); SnapManager &m = _desktop->namedview->snap_manager; m.setup(_desktop); m.setRotationCenterSource(items); diff --git a/src/snap.cpp b/src/snap.cpp index 7f0e8d9dc..d1d15ca0c 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -708,7 +708,7 @@ void SnapManager::setupIgnoreSelection(SPDesktop const *desktop, _items_to_ignore.clear(); Inkscape::Selection *sel = _desktop->selection; - std::vector const items = sel->itemList(); + std::vector const items = sel->items(); for (std::vector::const_iterator i=items.begin();i!=items.end();++i) { _items_to_ignore.push_back(*i); } diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 1bc6da3e1..d4ef3f9c2 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -335,7 +335,7 @@ void sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb, const Glib::ustring description) { SPDocument *doc = selection->layers()->getDocument(); - std::vector il= selection->itemList(); + std::vector il= selection->items(); // allow union on a single object for the purpose of removing self overlapse (svn log, revision 13334) if ( (il.size() < 2) && (bop != bool_op_union)) { @@ -689,7 +689,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool } } else { // find out the bottom object - std::vector sorted(selection->reprList()); + std::vector sorted(selection->xmlNodes()); sort(sorted.begin(),sorted.end(),sp_repr_compare_position_bool); @@ -1157,7 +1157,7 @@ sp_selected_path_outline(SPDesktop *desktop) bool scale_stroke = prefs->getBool("/options/transform/stroke", true); prefs->setBool("/options/transform/stroke", true); bool did = false; - std::vector il(selection->itemList()); + std::vector il(selection->items()); for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ SPItem *item = *l; @@ -1771,7 +1771,7 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) } bool did = false; - std::vector il(selection->itemList()); + std::vector il(selection->items()); for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ SPItem *item = *l; SPCurve *curve = NULL; @@ -2196,7 +2196,7 @@ sp_selected_path_simplify_selection(SPDesktop *desktop, float threshold, bool ju return; } - std::vector items(selection->itemList()); + std::vector items(selection->items()); bool didSomething = sp_selected_path_simplify_items(desktop, selection, items, threshold, diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index fbbbe5807..5565464a1 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -43,7 +43,7 @@ using Inkscape::DocumentUndo; static SPItem * flowtext_in_selection(Inkscape::Selection *selection) { - std::vector items = selection->itemList(); + std::vector items = selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_FLOWTEXT(*i)) return *i; @@ -54,7 +54,7 @@ flowtext_in_selection(Inkscape::Selection *selection) static SPItem * text_or_flowtext_in_selection(Inkscape::Selection *selection) { - std::vector items = selection->itemList(); + std::vector items = selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) return *i; @@ -65,7 +65,7 @@ text_or_flowtext_in_selection(Inkscape::Selection *selection) static SPItem * shape_in_selection(Inkscape::Selection *selection) { - std::vector items = selection->itemList(); + std::vector items = selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_SHAPE(*i)) return *i; @@ -87,7 +87,7 @@ text_put_on_path() Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); - if (!text || !shape || selection->itemList().size() != 2) { + if (!text || !shape || selection->items().size() != 2) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select a text and a path to put text on path.")); return; } @@ -196,7 +196,7 @@ text_remove_from_path() } bool did = false; - std::vector items(selection->itemList()); + std::vector items(selection->items()); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPObject *obj = *i; @@ -214,7 +214,7 @@ text_remove_from_path() } else { DocumentUndo::done(desktop->getDocument(), SP_VERB_CONTEXT_TEXT, _("Remove text from path")); - selection->setList(selection->itemList()); // reselect to update statusbar description + selection->setList(selection->items()); // reselect to update statusbar description } } @@ -260,7 +260,7 @@ text_remove_all_kerns() bool did = false; - std::vector items = selection->itemList(); + std::vector items = selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPObject *obj = *i; @@ -296,7 +296,7 @@ text_flow_into_shape() SPItem *text = text_or_flowtext_in_selection(selection); SPItem *shape = shape_in_selection(selection); - if (!text || !shape || selection->itemList().size() < 2) { + if (!text || !shape || selection->items().size() < 2) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select a text and one or more paths or shapes to flow text into frame.")); return; } @@ -320,7 +320,7 @@ text_flow_into_shape() g_return_if_fail(SP_IS_FLOWREGION(object)); /* Add clones */ - std::vector items = selection->itemList(); + std::vector items = selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPItem *item = *i; if (SP_IS_SHAPE(item)){ @@ -387,7 +387,7 @@ text_unflow () Inkscape::Selection *selection = desktop->getSelection(); - if (!flowtext_in_selection(selection) || selection->itemList().size() < 1) { + if (!flowtext_in_selection(selection) || selection->items().size() < 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select a flowed text to unflow it.")); return; } @@ -395,7 +395,7 @@ text_unflow () std::vector new_objs; GSList *old_objs = NULL; - std::vector items = selection->itemList(); + std::vector items = selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (!SP_IS_FLOWTEXT(*i)) { @@ -480,7 +480,7 @@ flowtext_to_text() bool did = false; std::vector reprs; - std::vector items(selection->itemList()); + std::vector items(selection->items()); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPItem *item = *i; diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp index 379682668..f0fa61b89 100644 --- a/src/trace/trace.cpp +++ b/src/trace/trace.cpp @@ -65,7 +65,7 @@ SPImage *Tracer::getSelectedSPImage() if (sioxEnabled) { SPImage *img = NULL; - std::vector const list = sel->itemList(); + std::vector const list = sel->items(); std::vector items; sioxShapes.clear(); diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index d581dbf7e..b1a946db2 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -522,7 +522,7 @@ bool ClipboardManagerImpl::pasteSize(SPDesktop *desktop, bool separately, bool a // resize each object in the selection if (separately) { - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (item) { @@ -578,7 +578,7 @@ bool ClipboardManagerImpl::pastePathEffect(SPDesktop *desktop) desktop->doc()->importDefs(tempdoc); // make sure all selected items are converted to paths first (i.e. rectangles) sp_selected_to_lpeitems(desktop); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; _applyPathEffect(item, effectstack); @@ -661,7 +661,7 @@ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop) void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) { // copy the defs used by all items - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); cloned_elements.clear(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp index 8f87932b8..b7b5b96cd 100644 --- a/src/ui/dialog/align-and-distribute.cpp +++ b/src/ui/dialog/align-and-distribute.cpp @@ -133,7 +133,7 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool sel_as_group = prefs->getBool("/dialogs/align/sel-as-groups"); - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); if (selected.empty()) return; const Coeffs &a = _allCoeffs[index]; @@ -293,7 +293,7 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); if (selected.empty()) return; //Check 2 or more selected objects @@ -499,7 +499,7 @@ private : // xGap and yGap are the minimum space required between bounding rectangles. double const xGap = removeOverlapXGap.get_value(); double const yGap = removeOverlapYGap.get_value(); - removeoverlap(_dialog.getDesktop()->getSelection()->itemList(), xGap, yGap); + removeoverlap(_dialog.getDesktop()->getSelection()->items(), xGap, yGap); // restore compensation setting prefs->setInt("/options/clonecompensation/value", saved_compensation); @@ -530,7 +530,7 @@ private : int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - graphlayout(_dialog.getDesktop()->getSelection()->itemList()); + graphlayout(_dialog.getDesktop()->getSelection()->items()); // restore compensation setting prefs->setInt("/options/clonecompensation/value", saved_compensation); @@ -590,7 +590,7 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); if (selected.empty()) return; //Check 2 or more selected objects @@ -656,7 +656,7 @@ private : Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - std::vector x(_dialog.getDesktop()->getSelection()->itemList()); + std::vector x(_dialog.getDesktop()->getSelection()->items()); unclump (x); // restore compensation setting @@ -687,7 +687,7 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); if (selected.empty()) return; //Check 2 or more selected objects @@ -785,7 +785,7 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); //Check 2 or more selected objects if (selected.size() < 2) return; diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index b727c87ee..7ce937de7 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -1376,7 +1376,7 @@ void CloneTiler::clonetiler_change_selection(Inkscape::Selection *selection, Gtk return; } - if (selection->itemList().size() > 1) { + if (selection->items().size() > 1) { gtk_widget_set_sensitive (buttons, FALSE); gtk_label_set_markup (GTK_LABEL(status), _("More than one object selected.")); return; @@ -2113,7 +2113,7 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) Inkscape::Selection *selection = desktop->getSelection(); // check if something is selected - if (selection->isEmpty() || selection->itemList().size() > 1) { + if (selection->isEmpty() || selection->items().size() > 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select one object whose tiled clones to unclump.")); return; } @@ -2162,7 +2162,7 @@ void CloneTiler::clonetiler_remove(GtkWidget */*widget*/, GtkWidget *dlg, bool d Inkscape::Selection *selection = desktop->getSelection(); // check if something is selected - if (selection->isEmpty() || selection->itemList().size() > 1) { + if (selection->isEmpty() || selection->items().size() > 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select one object whose tiled clones to remove.")); return; } @@ -2240,7 +2240,7 @@ void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg) } // Check if more than one object is selected. - if (selection->itemList().size() > 1) { + if (selection->items().size() > 1) { desktop->getMessageStack()->flash(Inkscape::ERROR_MESSAGE, _("If you want to clone several objects, group them and clone the group.")); return; } diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 2fb5f9e3b..6d2842511 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -608,7 +608,7 @@ void Export::onBatchClicked () void Export::updateCheckbuttons () { - gint num = SP_ACTIVE_DESKTOP->getSelection()->itemList().size(); + gint num = SP_ACTIVE_DESKTOP->getSelection()->items().size(); if (num >= 2) { batch_export.set_sensitive(true); batch_export.set_label(g_strdup_printf (ngettext("B_atch export %d selected object","B_atch export %d selected objects",num), num)); @@ -820,7 +820,7 @@ void Export::onAreaToggled () one that's nice */ if (filename.empty()) { const gchar * id = "object"; - const std::vector reprlst = SP_ACTIVE_DESKTOP->getSelection()->reprList(); + const std::vector reprlst = SP_ACTIVE_DESKTOP->getSelection()->xmlNodes(); for(std::vector::const_iterator i=reprlst.begin(); reprlst.end() != i; ++i) { Inkscape::XML::Node * repr = *i; if (repr->attribute("id")) { @@ -1015,7 +1015,7 @@ void Export::onExport () if (batch_export.get_active ()) { // Batch export of selected objects - gint num = (desktop->getSelection()->itemList()).size(); + gint num = (desktop->getSelection()->items()).size(); gint n = 0; if (num < 1) { @@ -1029,7 +1029,7 @@ void Export::onExport () gint export_count = 0; - std::vector itemlist=desktop->getSelection()->itemList(); + std::vector itemlist= desktop->getSelection()->items(); for(std::vector::const_iterator i = itemlist.begin();i!=itemlist.end() && !interrupted ;++i){ SPItem *item = *i; @@ -1075,7 +1075,7 @@ void Export::onExport () nv->pagecolor, onProgressCallback, (void*)prog_dlg, TRUE, // overwrite without asking - hide ? (desktop->getSelection()->itemList()) : x + hide ? (desktop->getSelection()->items()) : x )) { gchar * error = g_strdup_printf(_("Could not export to filename %s.\n"), safeFile); @@ -1165,7 +1165,7 @@ void Export::onExport () nv->pagecolor, onProgressCallback, (void*)prog_dlg, FALSE, - hide ? (desktop->getSelection()->itemList()) : x + hide ? (desktop->getSelection()->items()) : x ); if (status == EXPORT_ERROR) { gchar * safeFile = Inkscape::IO::sanitizeString(path.c_str()); @@ -1237,7 +1237,7 @@ void Export::onExport () bool saved = DocumentUndo::getUndoSensitive(doc); DocumentUndo::setUndoSensitive(doc, false); - reprlst = desktop->getSelection()->reprList(); + reprlst = desktop->getSelection()->xmlNodes(); for(std::vector::const_iterator i=reprlst.begin(); reprlst.end() != i; ++i) { Inkscape::XML::Node * repr = *i; diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index d3ad5d1da..dfc19f3cc 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -691,7 +691,7 @@ private: void select_svg_element(){ Inkscape::Selection* sel = _desktop->getSelection(); if (sel->isEmpty()) return; - Inkscape::XML::Node* node = sel->reprList()[0]; + Inkscape::XML::Node* node = sel->xmlNodes()[0]; if (!node || !node->matchAttributeName("id")) return; std::ostringstream xlikhref; @@ -1474,7 +1474,7 @@ void FilterEffectsDialog::FilterModifier::update_selection(Selection *sel) } std::set used; - std::vector itemlist=sel->itemList(); + std::vector itemlist= sel->items(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; ++i) { SPObject *obj = *i; SPStyle *style = obj->style; @@ -1555,7 +1555,7 @@ void FilterEffectsDialog::FilterModifier::on_selection_toggled(const Glib::ustri if((*iter)[_columns.sel] == 1) filter = 0; - std::vector itemlist=sel->itemList(); + std::vector itemlist= sel->items(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; ++i) { SPItem * item = *i; SPStyle *style = item->style; diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index 0f368c5ac..8424dd7f5 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -761,7 +761,7 @@ std::vector &Find::all_items (SPObject *r, std::vector &l, boo std::vector &Find::all_selection_items (Inkscape::Selection *s, std::vector &l, SPObject *ancestor, bool hidden, bool locked) { - std::vector itemlist=s->itemList(); + std::vector itemlist= s->items(); for(std::vector::const_reverse_iterator i=itemlist.rbegin(); itemlist.rend() != i; ++i) { SPObject *obj = *i; SPItem *item = dynamic_cast(obj); diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp index 56b001291..30b0f8df7 100644 --- a/src/ui/dialog/glyphs.cpp +++ b/src/ui/dialog/glyphs.cpp @@ -578,7 +578,7 @@ void GlyphsPanel::setTargetDesktop(SPDesktop *desktop) void GlyphsPanel::insertText() { SPItem *textItem = 0; - std::vector itemlist=targetDesktop->selection->itemList(); + std::vector itemlist= targetDesktop->selection->items(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; ++i) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) { textItem = *i; @@ -688,7 +688,7 @@ void GlyphsPanel::selectionModifiedCB(guint flags) void GlyphsPanel::calcCanInsert() { int items = 0; - std::vector itemlist=targetDesktop->selection->itemList(); + std::vector itemlist= targetDesktop->selection->items(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; ++i) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) { ++items; diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 639e463ea..ddcc20cb7 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -163,7 +163,7 @@ void GridArrangeTab::arrange() desktop->getDocument()->ensureUpToDate(); Inkscape::Selection *selection = desktop->getSelection(); - const std::vector items = selection ? selection->itemList() : std::vector(); + const std::vector items = selection ? selection->items() : std::vector(); for(std::vector::const_iterator i = items.begin();i!=items.end(); ++i){ SPItem *item = *i; Geom::OptRect b = item->documentVisualBounds(); @@ -192,7 +192,7 @@ void GridArrangeTab::arrange() // require the sorting done before we can calculate row heights etc. g_return_if_fail(selection); - std::vector sorted(selection->itemList()); + std::vector sorted(selection->items()); sort(sorted.begin(),sorted.end(),sp_compare_y_position); sort(sorted.begin(),sorted.end(),sp_compare_x_position); @@ -368,7 +368,7 @@ void GridArrangeTab::on_row_spinbutton_changed() Inkscape::Selection *selection = desktop ? desktop->selection : 0; g_return_if_fail( selection ); - std::vector const items = selection->itemList(); + std::vector const items = selection->items(); int selcount = items.size(); double PerCol = ceil(selcount / NoOfColsSpinner.get_value()); @@ -394,7 +394,7 @@ void GridArrangeTab::on_col_spinbutton_changed() Inkscape::Selection *selection = desktop ? desktop->selection : 0; g_return_if_fail(selection); - int selcount = selection->itemList().size(); + int selcount = selection->items().size(); double PerRow = ceil(selcount / NoOfRowsSpinner.get_value()); NoOfColsSpinner.set_value(PerRow); @@ -531,7 +531,7 @@ void GridArrangeTab::updateSelection() updating = true; SPDesktop *desktop = Parent->getDesktop(); Inkscape::Selection *selection = desktop ? desktop->selection : 0; - std::vector const items = selection ? selection->itemList() : std::vector(); + std::vector const items = selection ? selection->items() : std::vector(); if (!items.empty()) { int selcount = items.size(); @@ -602,7 +602,7 @@ GridArrangeTab::GridArrangeTab(ArrangeDialog *parent) g_return_if_fail( selection ); int selcount = 1; if (!selection->isEmpty()) { - selcount = selection->itemList().size(); + selcount = selection->items().size(); } diff --git a/src/ui/dialog/icon-preview.cpp b/src/ui/dialog/icon-preview.cpp index 83656a1f2..173a964e9 100644 --- a/src/ui/dialog/icon-preview.cpp +++ b/src/ui/dialog/icon-preview.cpp @@ -362,7 +362,7 @@ void IconPreviewPanel::refreshPreview() if ( sel ) { //g_message("found a selection to play with"); - std::vector const items = sel->itemList(); + std::vector const items = sel->items(); for(std::vector::const_iterator i=items.begin();!target && i!=items.end();++i){ SPItem* item = *i; gchar const *id = item->getId(); diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 27694a9ac..df32f73cf 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -478,7 +478,7 @@ void ObjectsPanel::_objectsSelected( Selection *sel ) { _selectedConnection.block(); _tree.get_selection()->unselect_all(); SPItem *item = NULL; - std::vector const items = sel->itemList(); + std::vector const items = sel->items(); for(std::vector::const_iterator i=items.begin(); i!=items.end(); ++i){ item = *i; if (setOpacity) diff --git a/src/ui/dialog/pixelartdialog.cpp b/src/ui/dialog/pixelartdialog.cpp index f557ff0fc..ed62e26b0 100644 --- a/src/ui/dialog/pixelartdialog.cpp +++ b/src/ui/dialog/pixelartdialog.cpp @@ -372,7 +372,7 @@ void PixelArtDialogImpl::vectorize() return; } - std::vector const items = desktop->selection->itemList(); + std::vector const items = desktop->selection->items(); for(std::vector::const_iterator i=items.begin(); i!=items.end();++i){ if ( !SP_IS_IMAGE(*i) ) continue; diff --git a/src/ui/dialog/polar-arrange-tab.cpp b/src/ui/dialog/polar-arrange-tab.cpp index 5ec1285c1..c160c269f 100644 --- a/src/ui/dialog/polar-arrange-tab.cpp +++ b/src/ui/dialog/polar-arrange-tab.cpp @@ -297,7 +297,7 @@ static void moveToPoint(int anchor, SPItem *item, Geom::Point p) void PolarArrangeTab::arrange() { Inkscape::Selection *selection = parent->getDesktop()->getSelection(); - const std::vector tmp(selection->itemList()); + const std::vector tmp(selection->items()); SPGenericEllipse *referenceEllipse = NULL; // Last ellipse in selection bool arrangeOnEllipse = !arrangeOnParametersRadio.get_active(); diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp index 790c0e5fb..100a620fa 100644 --- a/src/ui/dialog/svg-fonts-dialog.cpp +++ b/src/ui/dialog/svg-fonts-dialog.cpp @@ -524,7 +524,7 @@ void SvgFontsDialog::set_glyph_description_from_selected_path(){ return; } - Inkscape::XML::Node* node = sel->reprList().front(); + Inkscape::XML::Node* node = sel->xmlNodes().front(); if (!node) return;//TODO: should this be an assert? if (!node->matchAttributeName("d") || !node->attribute("d")){ char *msg = _("The selected object does not have a path description."); @@ -566,7 +566,7 @@ void SvgFontsDialog::missing_glyph_description_from_selected_path(){ return; } - Inkscape::XML::Node* node = sel->reprList().front(); + Inkscape::XML::Node* node = sel->xmlNodes().front(); if (!node) return;//TODO: should this be an assert? if (!node->matchAttributeName("d") || !node->attribute("d")){ char *msg = _("The selected object does not have a path description."); diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 6577c8d4e..2573719ac 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -123,7 +123,7 @@ static void editGradientImpl( SPDesktop* desktop, SPGradient* gr ) bool shown = false; if ( desktop && desktop->doc() ) { Inkscape::Selection *selection = desktop->getSelection(); - std::vector const items = selection->itemList(); + std::vector const items = selection->items(); if (!items.empty()) { SPStyle query( desktop->doc() ); int result = objects_query_fillstroke((items), &query, true); diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index affbe0a3b..98b0f9502 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -348,7 +348,7 @@ void TagsPanel::_objectsSelected( Selection *sel ) { _selectedConnection.block(); _tree.get_selection()->unselect_all(); - auto tmp = sel->range(); + auto tmp = sel->objects(); for(auto i = tmp.begin(); i != tmp.end(); ++i) { SPObject *obj = *i; @@ -646,7 +646,7 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event) if (col == _tree.get_column(COL_ADD - 1) && down_at_add) { if (SP_IS_TAG(obj)) { bool wasadded = false; - std::vector items=_desktop->selection->itemList(); + std::vector items= _desktop->selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPObject *newobj = *i; bool addchild = true; diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index c01da8864..355bd16d1 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -443,7 +443,7 @@ SPItem *TextEdit::getSelectedTextItem (void) if (!SP_ACTIVE_DESKTOP) return NULL; - std::vector tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + std::vector tmp= SP_ACTIVE_DESKTOP->getSelection()->items(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();++i) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) @@ -461,7 +461,7 @@ unsigned TextEdit::getSelectedTextCount (void) unsigned int items = 0; - std::vector tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + std::vector tmp= SP_ACTIVE_DESKTOP->getSelection()->items(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();++i) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) @@ -568,7 +568,7 @@ void TextEdit::onApply() SPDesktop *desktop = SP_ACTIVE_DESKTOP; unsigned items = 0; - const std::vector item_list = desktop->getSelection()->itemList(); + const std::vector item_list = desktop->getSelection()->items(); SPCSSAttr *css = fillTextStyle (); sp_desktop_set_style(desktop, css, true); diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index b7638e8c1..f11ac1ebe 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -650,7 +650,7 @@ void Transformation::updatePageTransform(Inkscape::Selection *selection) { if (selection && !selection->isEmpty()) { if (_check_replace_matrix.get_active()) { - Geom::Affine current (selection->itemList()[0]->transform); // take from the first item in selection + Geom::Affine current (selection->items()[0]->transform); // take from the first item in selection Geom::Affine new_displayed = current; @@ -735,7 +735,7 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) if (_check_move_relative.get_active()) { // shift each object relatively to the previous one - std::vector selected(selection->itemList()); + std::vector selected(selection->items()); if (selected.empty()) return; if (fabs(x) > 1e-6) { @@ -810,7 +810,7 @@ void Transformation::applyPageScale(Inkscape::Selection *selection) bool transform_stroke = prefs->getBool("/options/transform/stroke", true); bool preserve = prefs->getBool("/options/preservetransform/value", false); if (prefs->getBool("/dialogs/transformation/applyseparately")) { - std::vector tmp=selection->itemList(); + std::vector tmp= selection->items(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();++i){ SPItem *item = *i; Geom::OptRect bbox_pref = item->desktopPreferredBounds(); @@ -874,7 +874,7 @@ void Transformation::applyPageRotate(Inkscape::Selection *selection) } if (prefs->getBool("/dialogs/transformation/applyseparately")) { - std::vector tmp=selection->itemList(); + std::vector tmp= selection->items(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();++i){ SPItem *item = *i; sp_item_rotate_rel(item, Geom::Rotate (angle*M_PI/180.0)); @@ -894,7 +894,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/dialogs/transformation/applyseparately")) { - std::vector items=selection->itemList(); + std::vector items= selection->items(); for(std::vector::const_iterator i = items.begin();i!=items.end();++i){ SPItem *item = *i; @@ -996,7 +996,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) } if (_check_replace_matrix.get_active()) { - std::vector tmp=selection->itemList(); + std::vector tmp= selection->items(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();++i){ SPItem *item = *i; item->set_item_transform(displayed); @@ -1149,7 +1149,7 @@ void Transformation::onReplaceMatrixToggled() double f = _scalar_transform_f.getValue(); Geom::Affine displayed (a, b, c, d, e, f); - Geom::Affine current = selection->itemList()[0]->transform; // take from the first item in selection + Geom::Affine current = selection->items()[0]->transform; // take from the first item in selection Geom::Affine new_displayed; if (_check_replace_matrix.get_active()) { diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index ab29471ed..7bbf588a7 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -2096,7 +2096,7 @@ void ContextMenu::ImageEdit(void) } #endif - std::vector itemlist=_desktop->selection->itemList(); + std::vector itemlist= _desktop->selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ Inkscape::XML::Node *ir = (*i)->getRepr(); const gchar *href = ir->attribute("xlink:href"); diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index 74f2664fe..52ddd589c 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -1306,7 +1306,7 @@ void cc_selection_set_avoid(bool const set_avoid) int changes = 0; - std::vector l = selection->itemList(); + std::vector l = selection->items(); for(std::vector::const_iterator i=l.begin();i!=l.end(); ++i) { SPItem *item = *i; diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index cb7747b2b..a81161ea9 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -692,7 +692,7 @@ void EraserTool::set_to_accumulated() { } } } else { - toWorkOn = selection->itemList(); + toWorkOn = selection->items(); } wasSelection = true; } @@ -744,7 +744,7 @@ void EraserTool::set_to_accumulated() { } if ( !selection->isEmpty() ) { // If the item was not completely erased, track the new remainder. - std::vector nowSel(selection->itemList()); + std::vector nowSel(selection->items()); for (std::vector::const_iterator i2 = nowSel.begin();i2!=nowSel.end();++i2) { remainingItems.push_back(*i2); } diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp index 9d8101cc4..e2bb0dc07 100644 --- a/src/ui/tools/gradient-tool.cpp +++ b/src/ui/tools/gradient-tool.cpp @@ -106,7 +106,7 @@ void GradientTool::selection_changed(Inkscape::Selection*) { if (selection == NULL) { return; } - guint n_obj = selection->itemList().size(); + guint n_obj = selection->items().size(); if (!drag->isNonEmpty() || selection->isEmpty()) return; @@ -492,9 +492,9 @@ bool GradientTool::root_handler(GdkEvent* event) { if (over_line) { // we take the first item in selection, because with doubleclick, the first click // always resets selection to the single object under cursor - sp_gradient_context_add_stop_near_point(this, SP_ITEM(selection->itemList().front()), this->mousepoint_doc, event->button.time); + sp_gradient_context_add_stop_near_point(this, SP_ITEM(selection->items().front()), this->mousepoint_doc, event->button.time); } else { - std::vector items=selection->itemList(); + std::vector items= selection->items(); for (std::vector::const_iterator i = items.begin();i!=items.end();++i) { SPItem *item = *i; SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR); @@ -897,7 +897,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta } else { // Starting from empty space: // Sort items so that the topmost comes last - std::vector items(selection->itemList()); + std::vector items(selection->items()); sort(items.begin(),items.end(),sp_item_repr_compare_position); // take topmost vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(items.back()), fill_or_stroke); @@ -907,7 +907,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta SPCSSAttr *css = sp_repr_css_attr_new(); sp_repr_css_set_property(css, "fill-opacity", "1.0"); - std::vector itemlist = selection->itemList(); + std::vector itemlist = selection->items(); for (std::vector::const_iterator i = itemlist.begin();i!=itemlist.end();++i) { //FIXME: see above @@ -931,7 +931,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta ec->_grdrag->local_change = true; // give the grab out-of-bounds values of xp/yp because we're already dragging // and therefore are already out of tolerance - ec->_grdrag->grabKnot (selection->itemList()[0], + ec->_grdrag->grabKnot (selection->items()[0], type == SP_GRADIENT_TYPE_LINEAR? POINT_LG_END : POINT_RG_R1, -1, // ignore number (though it is always 1) fill_or_stroke, 99999, 99999, etime); @@ -940,7 +940,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta // status text; we do not track coords because this branch is run once, not all the time // during drag - int n_objects = selection->itemList().size(); + int n_objects = selection->items().size(); rc.message_context->setF(Inkscape::NORMAL_MESSAGE, ngettext("Gradient for %d object; with Ctrl to snap angle", "Gradient for %d objects; with Ctrl to snap angle", n_objects), diff --git a/src/ui/tools/lpe-tool.cpp b/src/ui/tools/lpe-tool.cpp index 9bbc1ac20..ebcac2279 100644 --- a/src/ui/tools/lpe-tool.cpp +++ b/src/ui/tools/lpe-tool.cpp @@ -396,7 +396,7 @@ lpetool_create_measuring_items(LpeTool *lc, Inkscape::Selection *selection) SPCanvasGroup *tmpgrp = lc->desktop->getTempGroup(); gchar *arc_length; double lengthval; - std::vector items=selection->itemList(); + std::vector items= selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_PATH(*i)) { path = SP_PATH(*i); diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp index 47927667c..9aaa0c14e 100644 --- a/src/ui/tools/mesh-tool.cpp +++ b/src/ui/tools/mesh-tool.cpp @@ -103,7 +103,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) { return; } - guint n_obj = selection->itemList().size(); + guint n_obj = selection->items().size(); if (!drag->isNonEmpty() || selection->isEmpty()) { return; @@ -467,10 +467,10 @@ bool MeshTool::root_handler(GdkEvent* event) { if (over_line) { // We take the first item in selection, because with doubleclick, the first click // always resets selection to the single object under cursor - sp_mesh_context_split_near_point(this, selection->itemList()[0], this->mousepoint_doc, event->button.time); + sp_mesh_context_split_near_point(this, selection->items()[0], this->mousepoint_doc, event->button.time); } else { // Create a new gradient with default coordinates. - std::vector items=selection->itemList(); + std::vector items= selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPItem *item = *i; SPGradientType new_type = SP_GRADIENT_TYPE_MESH; @@ -945,7 +945,7 @@ static void sp_mesh_end_drag(MeshTool &rc) { } else { // Starting from empty space: // Sort items so that the topmost comes last - std::vector items(selection->itemList()); + std::vector items(selection->items()); sort(items.begin(),items.end(),sp_item_repr_compare_position); // take topmost vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(items.back()), fill_or_stroke); @@ -955,7 +955,7 @@ static void sp_mesh_end_drag(MeshTool &rc) { SPCSSAttr *css = sp_repr_css_attr_new(); sp_repr_css_set_property(css, "fill-opacity", "1.0"); - std::vector items=selection->itemList(); + std::vector items= selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ //FIXME: see above @@ -972,7 +972,7 @@ static void sp_mesh_end_drag(MeshTool &rc) { // status text; we do not track coords because this branch is run once, not all the time // during drag - int n_objects = selection->itemList().size(); + int n_objects = selection->items().size(); rc.message_context->setF(Inkscape::NORMAL_MESSAGE, ngettext("Gradient for %d object; with Ctrl to snap angle", "Gradient for %d objects; with Ctrl to snap angle", n_objects), diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index 23aaf6bb1..f7a725794 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -407,7 +407,7 @@ void NodeTool::selection_changed(Inkscape::Selection *sel) { std::set shapes; - std::vector items=sel->itemList(); + std::vector items= sel->items(); for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPObject *obj = *i; @@ -444,7 +444,7 @@ void NodeTool::selection_changed(Inkscape::Selection *sel) { } _previous_selection = _current_selection; - _current_selection = sel->itemList(); + _current_selection = sel->items(); this->_multipath->setItems(shapes); this->update_tip(NULL); diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index b5ec3d88e..676a41eaa 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -477,7 +477,7 @@ bool SelectTool::root_handler(GdkEvent* event) { case GDK_2BUTTON_PRESS: if (event->button.button == 1) { if (!selection->isEmpty()) { - SPItem *clicked_item = selection->itemList()[0]; + SPItem *clicked_item = selection->items()[0]; if (dynamic_cast(clicked_item) && !dynamic_cast(clicked_item)) { // enter group if it's not a 3D box desktop->setCurrentLayer(clicked_item); diff --git a/src/ui/tools/spray-tool.cpp b/src/ui/tools/spray-tool.cpp index 9adaf3879..4f36a827f 100644 --- a/src/ui/tools/spray-tool.cpp +++ b/src/ui/tools/spray-tool.cpp @@ -210,7 +210,7 @@ void SprayTool::update_cursor(bool /*with_shift*/) { gchar *sel_message = NULL; if (!desktop->selection->isEmpty()) { - num = desktop->selection->itemList().size(); + num = desktop->selection->items().size(); sel_message = g_strdup_printf(ngettext("%i object selected","%i objects selected",num), num); } else { sel_message = g_strdup_printf("%s", _("Nothing selected")); @@ -591,7 +591,7 @@ static bool fit_item(SPDesktop *desktop, if (selection->isEmpty()) { return false; } - std::vector const items_selected(selection->itemList()); + std::vector const items_selected(selection->items()); std::vector items_down_erased; for (std::vector::const_iterator i=items_down.begin(); i!=items_down.end(); ++i) { SPItem *item_down = *i; @@ -1002,7 +1002,7 @@ static bool sp_spray_recursive(SPDesktop *desktop, SPItem *unionResult = NULL; // Previous union int i=1; - std::vector items=selection->itemList(); + std::vector items= selection->items(); for(std::vector::const_iterator it=items.begin();it!=items.end(); ++it){ SPItem *item1 = *it; if (i == 1) { @@ -1170,7 +1170,7 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point double move_standard_deviation = get_move_standard_deviation(tc); { - std::vector const items(selection->itemList()); + std::vector const items(selection->items()); for(std::vector::const_iterator i=items.begin();i!=items.end(); ++i){ SPItem *item = *i; @@ -1299,7 +1299,7 @@ bool SprayTool::root_handler(GdkEvent* event) { guint num = 0; if (!desktop->selection->isEmpty()) { - num = desktop->selection->itemList().size(); + num = desktop->selection->items().size(); } if (num == 0) { this->message_context->flash(Inkscape::ERROR_MESSAGE, _("Nothing selected! Select objects to spray.")); diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index 36fe26e76..6da6526bc 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -1158,7 +1158,7 @@ SPItem *sp_event_context_find_item(SPDesktop *desktop, Geom::Point const &p, if (select_under) { SPItem *selected_at_point = desktop->getItemFromListAtPointBottom( - desktop->selection->itemList(), p); + desktop->selection->items(), p); item = desktop->getItemAtPoint(p, into_groups, selected_at_point); if (item == NULL) { // we may have reached bottom, flip over to the top item = desktop->getItemAtPoint(p, into_groups, NULL); diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index 39a7a3f0b..4da8060e2 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -153,7 +153,7 @@ void TweakTool::update_cursor (bool with_shift) { gchar *sel_message = NULL; if (!desktop->selection->isEmpty()) { - num = desktop->selection->itemList().size(); + num = desktop->selection->items().size(); sel_message = g_strdup_printf(ngettext("%i object selected","%i objects selected",num), num); } else { sel_message = g_strdup_printf("%s", _("Nothing selected")); @@ -1076,7 +1076,7 @@ sp_tweak_dilate (TweakTool *tc, Geom::Point event_p, Geom::Point p, Geom::Point double move_force = get_move_force(tc); double color_force = MIN(sqrt(path_force)/20.0, 1); - std::vector items=selection->itemList(); + std::vector items= selection->items(); for(std::vector::const_iterator i=items.begin();i!=items.end(); ++i){ SPItem *item = *i; @@ -1185,7 +1185,7 @@ bool TweakTool::root_handler(GdkEvent* event) { guint num = 0; if (!desktop->selection->isEmpty()) { - num = desktop->selection->itemList().size(); + num = desktop->selection->items().size(); } if (num == 0) { this->message_context->flash(Inkscape::ERROR_MESSAGE, _("Nothing selected! Select objects to tweak.")); diff --git a/src/ui/widget/style-subject.cpp b/src/ui/widget/style-subject.cpp index 5f697e420..059d1a4e3 100644 --- a/src/ui/widget/style-subject.cpp +++ b/src/ui/widget/style-subject.cpp @@ -58,7 +58,7 @@ Inkscape::Selection *StyleSubject::Selection::_getSelection() const { std::vector StyleSubject::Selection::list() { Inkscape::Selection *selection = _getSelection(); if(selection) { - return std::vector(selection->range().begin(), selection->range().end()); + return std::vector(selection->objects().begin(), selection->objects().end()); } return std::vector(); diff --git a/src/vanishing-point.cpp b/src/vanishing-point.cpp index 32ccbad93..a6be353f8 100644 --- a/src/vanishing-point.cpp +++ b/src/vanishing-point.cpp @@ -258,7 +258,7 @@ VanishingPoint::set_pos(Proj::Pt2 const &pt) { std::list VanishingPoint::selectedBoxes(Inkscape::Selection *sel) { std::list sel_boxes; - std::vector itemlist=sel->itemList(); + std::vector itemlist= sel->items(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); @@ -397,7 +397,7 @@ VPDragger::VPsOfSelectedBoxes() { VanishingPoint *vp; // FIXME: Should we take the selection from the parent VPDrag? I guess it shouldn't make a difference. Inkscape::Selection *sel = SP_ACTIVE_DESKTOP->getSelection(); - std::vector itemlist=sel->itemList(); + std::vector itemlist= sel->items(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); @@ -575,7 +575,7 @@ VPDrag::updateDraggers () g_return_if_fail (this->selection != NULL); - std::vector itemlist=this->selection->itemList(); + std::vector itemlist= this->selection->items(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); @@ -607,7 +607,7 @@ VPDrag::updateLines () g_return_if_fail (this->selection != NULL); - std::vector itemlist=this->selection->itemList(); + std::vector itemlist= this->selection->items(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); @@ -625,7 +625,7 @@ VPDrag::updateBoxHandles () // FIXME: Is there a way to update the knots without accessing the // (previously) statically linked function KnotHolder::update_knots? - std::vector sel = selection->itemList(); + std::vector sel = selection->items(); if (sel.empty()) return; // no selection diff --git a/src/widgets/arc-toolbar.cpp b/src/widgets/arc-toolbar.cpp index 7b872e8b1..5db714f85 100644 --- a/src/widgets/arc-toolbar.cpp +++ b/src/widgets/arc-toolbar.cpp @@ -97,7 +97,7 @@ sp_arctb_startend_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *v gchar* namespaced_name = g_strconcat("sodipodi:", value_name, NULL); bool modmade = false; - std::vector itemlist=desktop->getSelection()->itemList(); + std::vector itemlist= desktop->getSelection()->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { @@ -163,7 +163,7 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) bool modmade = false; if ( ege_select_one_action_get_active(act) != 0 ) { - std::vector itemlist=desktop->getSelection()->itemList(); + std::vector itemlist= desktop->getSelection()->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { @@ -174,7 +174,7 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) } } } else { - std::vector itemlist=desktop->getSelection()->itemList(); + std::vector itemlist= desktop->getSelection()->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { @@ -264,7 +264,7 @@ static void sp_arc_toolbox_selection_changed(Inkscape::Selection *selection, GOb purge_repr_listener( tbl, tbl ); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { diff --git a/src/widgets/connector-toolbar.cpp b/src/widgets/connector-toolbar.cpp index 733fb34e8..54b4be547 100644 --- a/src/widgets/connector-toolbar.cpp +++ b/src/widgets/connector-toolbar.cpp @@ -97,7 +97,7 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl gchar *value = is_orthog ? orthog_str : polyline_str ; bool modmade = false; - std::vector itemlist=desktop->getSelection()->itemList(); + std::vector itemlist= desktop->getSelection()->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; @@ -144,7 +144,7 @@ static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl) g_ascii_dtostr(value, G_ASCII_DTOSTR_BUF_SIZE, newValue); bool modmade = false; - std::vector itemlist=desktop->getSelection()->itemList(); + std::vector itemlist= desktop->getSelection()->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; @@ -227,7 +227,7 @@ static void sp_connector_graph_layout(void) int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - graphlayout(SP_ACTIVE_DESKTOP->getSelection()->itemList()); + graphlayout(SP_ACTIVE_DESKTOP->getSelection()->items()); prefs->setInt("/options/clonecompensation/value", saved_compensation); diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index a96776894..8c3a0a0a8 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -476,7 +476,7 @@ void FillNStroke::updateFromPaint() SPDocument *document = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); - std::vector const items = selection->itemList(); + std::vector const items = selection->items(); switch (psel->mode) { case SPPaintSelector::MODE_EMPTY: diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index a44e9962e..ab345b73f 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -116,7 +116,7 @@ void gr_apply_gradient(Inkscape::Selection *selection, GrDrag *drag, SPGradient } // If no drag or no dragger selected, act on selection - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ gr_apply_gradient_to_item(*i, gr, initialType, initialMode, initialMode); } @@ -216,7 +216,7 @@ void gr_get_dt_selected_gradient(Inkscape::Selection *selection, SPGradient *&gr { SPGradient *gradient = 0; - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i;// get the items gradient, not the getVector() version SPStyle *style = item->style; @@ -284,7 +284,7 @@ void gr_read_selection( Inkscape::Selection *selection, } // If no selected dragger, read desktop selection - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; SPStyle *style = item->style; diff --git a/src/widgets/mesh-toolbar.cpp b/src/widgets/mesh-toolbar.cpp index 3643ce00c..5d326253c 100644 --- a/src/widgets/mesh-toolbar.cpp +++ b/src/widgets/mesh-toolbar.cpp @@ -89,7 +89,7 @@ void ms_read_selection( Inkscape::Selection *selection, bool first = true; ms_type = SP_MESH_TYPE_COONS; - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; SPStyle *style = item->style; @@ -216,7 +216,7 @@ void ms_get_dt_selected_gradient(Inkscape::Selection *selection, SPMesh *&ms_sel { SPMesh *gradient = 0; - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i;// get the items gradient, not the getVector() version SPStyle *style = item->style; diff --git a/src/widgets/pencil-toolbar.cpp b/src/widgets/pencil-toolbar.cpp index 55127206c..34cebbe1b 100644 --- a/src/widgets/pencil-toolbar.cpp +++ b/src/widgets/pencil-toolbar.cpp @@ -240,7 +240,7 @@ static void sp_pencil_tb_defaults(GtkWidget * /*widget*/, GObject *obj) static void sp_simplify_flatten(GtkWidget * /*widget*/, GObject *obj) { SPDesktop *desktop = static_cast(g_object_get_data(obj, "desktop")); - std::vector selected = desktop->getSelection()->itemList(); + std::vector selected = desktop->getSelection()->items(); for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it){ SPLPEItem* lpeitem = dynamic_cast(*it); if (lpeitem && lpeitem->hasPathEffect()){ @@ -285,7 +285,7 @@ static void sp_pencil_tb_tolerance_value_changed(GtkAdjustment *adj, GObject *tb gtk_adjustment_get_value(adj)); g_object_set_data( tbl, "freeze", GINT_TO_POINTER(FALSE) ); SPDesktop *desktop = static_cast(g_object_get_data(tbl, "desktop")); - std::vector selected = desktop->getSelection()->itemList(); + std::vector selected = desktop->getSelection()->items(); for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it){ SPLPEItem* lpeitem = dynamic_cast(*it); if (lpeitem && lpeitem->hasPathEffect()){ diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp index bc27d003c..2ee38608b 100644 --- a/src/widgets/rect-toolbar.cpp +++ b/src/widgets/rect-toolbar.cpp @@ -106,7 +106,7 @@ static void sp_rtb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const * bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ if (SP_IS_RECT(*i)) { if (gtk_adjustment_get_value(adj) != 0) { @@ -243,7 +243,7 @@ static void sp_rect_toolbox_selection_changed(Inkscape::Selection *selection, GO } purge_repr_listener( tbl, tbl ); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ if (SP_IS_RECT(*i)) { n_selected++; diff --git a/src/widgets/spiral-toolbar.cpp b/src/widgets/spiral-toolbar.cpp index 7e7398091..8f5f10bf8 100644 --- a/src/widgets/spiral-toolbar.cpp +++ b/src/widgets/spiral-toolbar.cpp @@ -79,7 +79,7 @@ static void sp_spl_tb_value_changed(GtkAdjustment *adj, GObject *tbl, Glib::ustr gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), NULL); bool modmade = false; - std::vector itemlist=desktop->getSelection()->itemList(); + std::vector itemlist= desktop->getSelection()->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end(); ++i){ SPItem *item = *i; if (SP_IS_SPIRAL(item)) { @@ -195,7 +195,7 @@ static void sp_spiral_toolbox_selection_changed(Inkscape::Selection *selection, purge_repr_listener( tbl, tbl ); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end(); ++i){ SPItem *item = *i; if (SP_IS_SPIRAL(item)) { diff --git a/src/widgets/star-toolbar.cpp b/src/widgets/star-toolbar.cpp index 982a3c854..fc8757162 100644 --- a/src/widgets/star-toolbar.cpp +++ b/src/widgets/star-toolbar.cpp @@ -83,7 +83,7 @@ static void sp_stb_magnitude_value_changed( GtkAdjustment *adj, GObject *dataKlu bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_STAR(item)) { @@ -128,7 +128,7 @@ static void sp_stb_proportion_value_changed( GtkAdjustment *adj, GObject *dataKl bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_STAR(item)) { @@ -185,7 +185,7 @@ static void sp_stb_sides_flat_state_changed( EgeSelectOneAction *act, GObject *d gtk_action_set_visible( prop_action, !flat ); } - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_STAR(item)) { @@ -224,7 +224,7 @@ static void sp_stb_rounded_value_changed( GtkAdjustment *adj, GObject *dataKludg bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_STAR(item)) { @@ -264,7 +264,7 @@ static void sp_stb_randomized_value_changed( GtkAdjustment *adj, GObject *dataKl bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_STAR(item)) { @@ -367,7 +367,7 @@ sp_star_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl) purge_repr_listener( tbl, tbl ); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (SP_IS_STAR(item)) { diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index 84a6e77ad..7ed2c3180 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -515,7 +515,7 @@ void StrokeStyle::markerSelectCB(MarkerComboBox *marker_combo, StrokeStyle *spw, //spw->updateMarkerHist(which); Inkscape::Selection *selection = spw->desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ SPItem *item = *i; if (!SP_IS_SHAPE(item) || SP_IS_RECT(item)) { // can't set marker to rect, until it's converted to using @@ -988,7 +988,7 @@ StrokeStyle::updateLine() if (!sel || sel->isEmpty()) return; - std::vector const objects = sel->itemList(); + std::vector const objects = sel->items(); SPObject * const object = objects[0]; SPStyle * const style = object->style; @@ -1044,7 +1044,7 @@ StrokeStyle::scaleLine() SPDocument *document = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); - std::vector items=selection->itemList(); + std::vector items= selection->items(); /* TODO: Create some standardized method */ SPCSSAttr *css = sp_repr_css_attr_new(); diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index 23acb74af..3d08b04f1 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -378,7 +378,7 @@ static void sp_text_align_mode_changed( EgeSelectOneAction *act, GObject *tbl ) // move the x of all texts to preserve the same bbox Inkscape::Selection *selection = desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end(); ++i){ if (SP_IS_TEXT(*i)) { SPItem *item = *i; @@ -560,7 +560,7 @@ static void sp_text_lineheight_value_changed( GtkAdjustment *adj, GObject *tbl ) // Only need to save for undo if a text item has been changed. Inkscape::Selection *selection = desktop->getSelection(); bool modmade = false; - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end(); ++i){ if (SP_IS_TEXT (*i)) { modmade = true; @@ -625,7 +625,7 @@ static void sp_text_lineheight_unit_changed( gpointer /* */, GObject *tbl ) SPDesktop *desktop = SP_ACTIVE_DESKTOP; Inkscape::Selection *selection = desktop->getSelection(); - std::vector itemlist=selection->itemList(); + std::vector itemlist= selection->items(); // Convert between units if ((unit->abbr == "" || unit->abbr == "em") && old_unit == SP_CSS_UNIT_EX) { @@ -1120,7 +1120,7 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/ // Only flowed text can be justified, only normal text can be kerned... // Find out if we have flowed text now so we can use it several places gboolean isFlow = false; - std::vector itemlist=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + std::vector itemlist= SP_ACTIVE_DESKTOP->getSelection()->items(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end(); ++i){ // const gchar* id = reinterpret_cast(items->data)->getId(); // std::cout << " " << id << std::endl; diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index e319a1a6b..ea953ac27 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -12,6 +12,8 @@ #include #include "object-set.h" +using namespace Inkscape; + class ObjectSetTest: public DocPerCaseTest { public: ObjectSetTest() { @@ -196,11 +198,11 @@ TEST_F(ObjectSetTest, SetOrder) { set->add(E); set->add(C); EXPECT_EQ(5, set->size()); - auto it = set->range().begin(); + auto it = set->objects().begin(); EXPECT_EQ(A, *it++); EXPECT_EQ(D, *it++); EXPECT_EQ(B, *it++); EXPECT_EQ(E, *it++); EXPECT_EQ(C, *it++); - EXPECT_EQ(set->range().end(), it); + EXPECT_EQ(set->objects().end(), it); } \ No newline at end of file -- cgit v1.2.3 From a51df2ab1eb079b2588ccb9398440f403d11c34d Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Mon, 27 Jun 2016 16:59:48 +0200 Subject: Added more tests (bzr r14954.1.11) --- CMakeScripts/ConfigCompileFlags.cmake | 4 +- CMakeScripts/DefineDependsandFlags.cmake | 2 - src/object-set.cpp | 28 +-------- src/object-set.h | 26 +++++++- testfiles/src/object-set-test.cpp | 105 ++++++++++++++++++++++++++----- 5 files changed, 116 insertions(+), 49 deletions(-) diff --git a/CMakeScripts/ConfigCompileFlags.cmake b/CMakeScripts/ConfigCompileFlags.cmake index 453ceef21..602886219 100644 --- a/CMakeScripts/ConfigCompileFlags.cmake +++ b/CMakeScripts/ConfigCompileFlags.cmake @@ -1,6 +1,8 @@ set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}") add_definitions(-Wall -Wformat-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch) -add_definitions(-O2) +# TODO temporary flag +add_definitions(-O0) +add_definitions(-std=c++11) # Define the flags for profiling if desired: if(WITH_PROFILING) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 9c4d6b085..706860a00 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -10,8 +10,6 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} # generated includes ${CMAKE_BINARY_DIR}/include ) -# TODO temporary flag -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # ---------------------------------------------------------------------------- # Files we include diff --git a/src/object-set.cpp b/src/object-set.cpp index 627544a21..518ce15a3 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -174,13 +174,8 @@ bool ObjectSet::isEmpty() { return container.size() == 0; } - SPObject *ObjectSet::single() { - if (container.size() == 1) { - return *container.begin(); - } - - return nullptr; + return container.size() == 1 ? *container.begin() : nullptr; } SPItem *ObjectSet::singleItem() { @@ -257,27 +252,6 @@ void ObjectSet::set(SPObject *object) { // _emitSignals(); } -void ObjectSet::setList(const std::vector &objs) { - _clear(); - addList(objs); -} - -void ObjectSet::addList(const std::vector &objs) { - for (std::vector::const_iterator iter = objs.begin(); iter != objs.end(); ++iter) { - SPObject *obj = *iter; - if (!includes(obj)) { - add(obj); - } - } -} - -void ObjectSet::add(const std::vector::iterator& from, const std::vector::iterator& to) { - for(auto it = from; it != to; ++it) { - _add(*it); - } -} - - Geom::OptRect ObjectSet::bounds(SPItem::BBoxType type) const { return (type == SPItem::GEOMETRIC_BBOX) ? diff --git a/src/object-set.h b/src/object-set.h index 49a875562..29083863b 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include "sp-object.h" #include "sp-item.h" @@ -84,7 +86,12 @@ public: * \param from the begin iterator * \param to the end iterator */ - void add(const std::vector::iterator& from, const std::vector::iterator& to); + template + void add(InputIterator from, InputIterator to) { + for(auto it = from; it != to; ++it) { + _add(*it); + } + } /** * Removes an item from the set of selected objects. @@ -176,14 +183,27 @@ public: * * @param objs the objects to select */ - void setList(const std::vector &objs); + template + typename boost::enable_if, void>::type + setList(const std::vector &objs) { + _clear(); + addList(objs); + } /** * Adds the specified objects to selection, without deselecting first. * * @param objs the objects to select */ - void addList(std::vector const &objs); + template + typename boost::enable_if, void>::type + addList(const std::vector &objs) { + for (auto obj: objs) { + if (!includes(obj)) { + add(obj); + } + } + } /** Returns the bounding rectangle of the selection. */ Geom::OptRect bounds(SPItem::BBoxType type) const; diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index ea953ac27..e294a5a51 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -10,6 +10,8 @@ */ #include #include +#include +#include #include "object-set.h" using namespace Inkscape; @@ -67,11 +69,98 @@ TEST_F(ObjectSetTest, Basics) { EXPECT_TRUE(set->includes(C)); EXPECT_FALSE(set->includes(D)); EXPECT_FALSE(set->includes(X)); + EXPECT_FALSE(set->includes(nullptr)); set->remove(A); EXPECT_EQ(2, set->size()); EXPECT_FALSE(set->includes(A)); set->clear(); EXPECT_EQ(0, set->size()); + bool resultNull = set->add(nullptr); + EXPECT_FALSE(resultNull); + EXPECT_EQ(0, set->size()); + bool resultNull2 = set->remove(nullptr); + EXPECT_FALSE(resultNull2); +} + +TEST_F(ObjectSetTest, Advanced) { + set->add(A); + set->add(B); + set->add(C); + EXPECT_TRUE(set->includes(C)); + set->toggle(C); + EXPECT_EQ(2, set->size()); + EXPECT_FALSE(set->includes(C)); + set->toggle(D); + EXPECT_EQ(3, set->size()); + EXPECT_TRUE(set->includes(D)); + set->toggle(D); + EXPECT_EQ(2, set->size()); + EXPECT_FALSE(set->includes(D)); + EXPECT_EQ(nullptr, set->single()); + set->set(X); + EXPECT_EQ(1, set->size()); + EXPECT_TRUE(set->includes(X)); + EXPECT_EQ(X, set->single()); + EXPECT_FALSE(set->isEmpty()); + set->clear(); + EXPECT_TRUE(set->isEmpty()); + std::vector list1 {A, B, C, D}; + std::vector list2 {E, F}; + set->addList(list1); + EXPECT_EQ(4, set->size()); + set->addList(list2); + EXPECT_EQ(6, set->size()); + EXPECT_TRUE(set->includes(A)); + EXPECT_TRUE(set->includes(B)); + EXPECT_TRUE(set->includes(C)); + EXPECT_TRUE(set->includes(D)); + EXPECT_TRUE(set->includes(E)); + EXPECT_TRUE(set->includes(F)); + set->setList(list2); + EXPECT_EQ(2, set->size()); + EXPECT_TRUE(set->includes(E)); + EXPECT_TRUE(set->includes(F)); +} + +TEST_F(ObjectSetTest, Items) { + SPRect* rect10x100 = (SPRect *) SPFactory::createObject("svg:rect"); +// rect10x100->invoke_build(_doc, _doc->rroot, 1); + SPRect* rect20x40 = (SPRect *) SPFactory::createObject("svg:rect"); +// rect20x40->invoke_build(_doc, _doc->rroot, 1); +// SPRect* rect30x30 = (SPRect *) SPFactory::createObject("svg:rect"); +// rect30x30->invoke_build(_doc, _doc->rroot, 1); +// rect10x100->width = 10; +// rect10x100->height = 100; +// rect20x40->width = 20; +// rect20x40->height = 40; +// rect30x30->width = 30; +// rect30x30->height = 30; + set->add(rect10x100); + EXPECT_EQ(rect10x100, set->singleItem()); + EXPECT_EQ(rect10x100->getRepr(), set->singleRepr()); + set->add(rect20x40); + EXPECT_EQ(nullptr, set->singleItem()); + EXPECT_EQ(nullptr, set->singleRepr()); +// set->add(rect30x30); +// EXPECT_EQ(3, set->size()); +// EXPECT_EQ(rect10x100, set->smallestItem(ObjectSet::CompareSize::HORIZONTAL)); +// EXPECT_EQ(rect30x30, set->smallestItem(ObjectSet::CompareSize::VERTICAL)); +// EXPECT_EQ(rect20x40, set->smallestItem(ObjectSet::CompareSize::AREA)); +// EXPECT_EQ(rect30x30, set->largestItem(ObjectSet::CompareSize::HORIZONTAL)); +// EXPECT_EQ(rect10x100, set->largestItem(ObjectSet::CompareSize::VERTICAL)); +// EXPECT_EQ(rect10x100, set->largestItem(ObjectSet::CompareSize::AREA)); +} + +TEST_F(ObjectSetTest, Ranges) { + std::vector objs {A, D, B, E, C, F}; + set->add(objs.begin() + 1, objs.end() - 1); + EXPECT_EQ(4, set->size()); + auto it = set->objects().begin(); + EXPECT_EQ(D, *it++); + EXPECT_EQ(B, *it++); + EXPECT_EQ(E, *it++); + EXPECT_EQ(C, *it++); + EXPECT_EQ(set->objects().end(), it); } TEST_F(ObjectSetTest, Autoremoving) { @@ -190,19 +279,3 @@ TEST_F(ObjectSetTest, SetRemoving) { EXPECT_STREQ(nullptr, A->getId()); EXPECT_STREQ(nullptr, C->getId()); } - -TEST_F(ObjectSetTest, SetOrder) { - set->add(A); - set->add(D); - set->add(B); - set->add(E); - set->add(C); - EXPECT_EQ(5, set->size()); - auto it = set->objects().begin(); - EXPECT_EQ(A, *it++); - EXPECT_EQ(D, *it++); - EXPECT_EQ(B, *it++); - EXPECT_EQ(E, *it++); - EXPECT_EQ(C, *it++); - EXPECT_EQ(set->objects().end(), it); -} \ No newline at end of file -- cgit v1.2.3 From 22262f2db6747eb516283b92abcfd348c700911a Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Fri, 1 Jul 2016 20:57:32 +0200 Subject: Added xmlNodes as range function (bzr r14954.1.12) --- CMakeLists.txt | 1 + CMakeScripts/ConfigCompileFlags.cmake | 21 +++++---------- src/object-set.cpp | 9 ++----- src/object-set.h | 45 +++++++++++++++++++++++---------- src/selection-chemistry.cpp | 20 +++++++-------- src/splivarot.cpp | 2 +- src/ui/dialog/export.cpp | 9 +++---- src/ui/dialog/filter-effects-dialog.cpp | 2 +- testfiles/src/object-set-test.cpp | 15 +++++++++++ 9 files changed, 73 insertions(+), 51 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 94dbf60df..79fea4f71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,6 +104,7 @@ else() message("No gmock/gtest found! Perhaps you wish to run 'bash download-gtest.sh' to download it.") endif() +include(CMakeScripts/ConfigCompileFlags.cmake) include(CMakeScripts/ConfigPaths.cmake) # Installation Paths include(CMakeScripts/DefineDependsandFlags.cmake) # Includes, Compiler Flags, and Link Libraries include(CMakeScripts/HelperMacros.cmake) # Misc Utility Macros diff --git a/CMakeScripts/ConfigCompileFlags.cmake b/CMakeScripts/ConfigCompileFlags.cmake index 602886219..85a8a151c 100644 --- a/CMakeScripts/ConfigCompileFlags.cmake +++ b/CMakeScripts/ConfigCompileFlags.cmake @@ -1,28 +1,21 @@ -set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}") -add_definitions(-Wall -Wformat-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch) -# TODO temporary flag -add_definitions(-O0) -add_definitions(-std=c++11) - # Define the flags for profiling if desired: if(WITH_PROFILING) set(COMPILE_PROFILING_FLAGS "-pg") set(LINK_PROFILING_FLAGS "-pg") endif() -add_definitions(-DVERSION=\\\"${INKSCAPE_VERSION}\\\") +# add_definitions(-DVERSION=\\\"${INKSCAPE_VERSION}\\\") add_definitions(${DEFINE_FLAGS} -DHAVE_CONFIG_H -D_INTL_REDIRECT_INLINE) if(WIN32) add_definitions(-DXP_WIN) endif(WIN32) -# For Inkboard: -add_definitions(-DHAVE_SSL "-DRELAYTOOL_SSL=\"static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }\"") - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_PROFILING_FLAGS} ") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMPILE_PROFILING_FLAGS} ") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 ${COMPILE_PROFILING_FLAGS} ") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 ${COMPILE_PROFILING_FLAGS} ") +# TODO +add_definitions("-std=c++11") -set(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} ") +#set(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} ") -# message(STATUS "${CMAKE_CXX_FLAGS}") +message(STATUS "${CMAKE_CXX_FLAGS}") diff --git a/src/object-set.cpp b/src/object-set.cpp index 518ce15a3..1240e5198 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -15,6 +15,8 @@ #include "box3d.h" #include "persp3d.h" #include "preferences.h" +#include +#include namespace Inkscape { @@ -233,13 +235,6 @@ std::vector ObjectSet::items() { return result; } -std::vector ObjectSet::xmlNodes() { - std::vector list = items(); - std::vector result; - std::transform(list.begin(), list.end(), std::back_inserter(result), [](SPItem* item) { return item->getRepr(); }); - return result; -} - Inkscape::XML::Node *ObjectSet::singleRepr() { SPObject *obj = single(); return obj ? obj->getRepr() : nullptr; diff --git a/src/object-set.h b/src/object-set.h index 29083863b..ea6534350 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include #include @@ -39,6 +41,26 @@ class Node; struct hashed{}; struct random_access{}; +struct is_item { + bool operator()(SPObject* obj) { + return SP_IS_ITEM(obj); + } +}; + +struct object_to_item { + typedef SPItem* result_type; + SPItem* operator()(SPObject* obj) const { + return SP_ITEM(obj); + } +}; + +struct object_to_node { + typedef XML::Node* result_type; + XML::Node* operator()(SPObject* obj) const { + return obj->getRepr(); + } +}; + typedef boost::multi_index_container< SPObject*, boost::multi_index::indexed_by< @@ -56,21 +78,11 @@ typedef boost::any_range< SPObject* const&, std::ptrdiff_t> SPObjectRange; -typedef boost::any_range< - SPItem*, - boost::random_access_traversal_tag, - SPItem* const&, - std::ptrdiff_t> SPItemRange; - -typedef boost::any_range< - XML::Node*, - boost::random_access_traversal_tag, - XML::Node* const&, - std::ptrdiff_t> XMLNodeRange; - class ObjectSet { public: enum CompareSize {HORIZONTAL, VERTICAL, AREA}; + typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())) SPItemRange; + typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())) XMLNodeRange; ObjectSet() {}; virtual ~ObjectSet(); @@ -169,7 +181,11 @@ public: std::vector items(); /** Returns a list of the xml nodes of all selected objects. */ - std::vector xmlNodes(); + XMLNodeRange xmlNodes() { + return XMLNodeRange(container.get() + | boost::adaptors::filtered(is_item()) + | boost::adaptors::transformed(object_to_node())); + } /** * Returns a single selected object's xml node. @@ -255,6 +271,9 @@ protected: }; +typedef ObjectSet::SPItemRange SPItemRange; +typedef ObjectSet::XMLNodeRange XMLNodeRange; + } // namespace Inkscape #endif //INKSCAPE_PROTOTYPE_OBJECTSET_H diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index ded776fea..82f89c03a 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -454,7 +454,7 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone, bool duplicat desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to duplicate.")); return; } - std::vector reprs(selection->xmlNodes()); + std::vector reprs(selection->xmlNodes().begin(), selection->xmlNodes().end()); if(duplicateLayer){ reprs.clear(); @@ -763,7 +763,7 @@ void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop) return; } - std::vector p (selection->xmlNodes()); + std::vector p (selection->xmlNodes().begin(), selection->xmlNodes().end()); selection->clear(); @@ -1048,7 +1048,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto return; } - std::vector rl(selection->xmlNodes()); + std::vector rl(selection->xmlNodes().begin(), selection->xmlNodes().end()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_iterator l=rl.begin(); l!=rl.end();++l) { @@ -1132,7 +1132,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des return; } - std::vector rl(selection->xmlNodes()); + std::vector rl(selection->xmlNodes().begin(), selection->xmlNodes().end()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_reverse_iterator l=rl.rbegin();l!=rl.rend();++l) { @@ -1722,8 +1722,8 @@ void sp_selection_remove_transform(SPDesktop *desktop) Inkscape::Selection *selection = desktop->getSelection(); - std::vector items = selection->xmlNodes(); - for (std::vector::const_iterator l=items.begin();l!=items.end() ;++l) { + auto items = selection->xmlNodes(); + for (auto l=items.begin();l!=items.end() ;++l) { (*l)->setAttribute("transform", NULL, false); } @@ -2603,7 +2603,7 @@ void sp_selection_clone(SPDesktop *desktop) return; } - std::vector reprs (selection->xmlNodes()); + std::vector reprs(selection->xmlNodes().begin(), selection->xmlNodes().end()); selection->clear(); @@ -3472,12 +3472,12 @@ void sp_selection_get_export_hints(Inkscape::Selection *selection, Glib::ustring return; } - std::vector const reprlst = selection->xmlNodes(); + auto reprlst = selection->xmlNodes(); bool filename_search = TRUE; bool xdpi_search = TRUE; bool ydpi_search = TRUE; - for (std::vector::const_iterator i=reprlst.begin();filename_search&&xdpi_search&&ydpi_search&&i!=reprlst.end();++i){ + for (auto i=reprlst.begin();filename_search&&xdpi_search&&ydpi_search&&i!=reprlst.end();++i){ gchar const *dpi_string; Inkscape::XML::Node *repr = *i; @@ -3765,7 +3765,7 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) return; } - std::vector p(selection->xmlNodes()); + std::vector p(selection->xmlNodes().begin(), selection->xmlNodes().end()); sort(p.begin(),p.end(),sp_repr_compare_position_bool); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index d4ef3f9c2..09d74a010 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -689,7 +689,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool } } else { // find out the bottom object - std::vector sorted(selection->xmlNodes()); + std::vector sorted(selection->xmlNodes().begin(), selection->xmlNodes().end()); sort(sorted.begin(),sorted.end(),sp_repr_compare_position_bool); diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 6d2842511..dbee80af9 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -820,8 +820,8 @@ void Export::onAreaToggled () one that's nice */ if (filename.empty()) { const gchar * id = "object"; - const std::vector reprlst = SP_ACTIVE_DESKTOP->getSelection()->xmlNodes(); - for(std::vector::const_iterator i=reprlst.begin(); reprlst.end() != i; ++i) { + auto reprlst = SP_ACTIVE_DESKTOP->getSelection()->xmlNodes(); + for(auto i=reprlst.begin(); reprlst.end() != i; ++i) { Inkscape::XML::Node * repr = *i; if (repr->attribute("id")) { id = repr->attribute("id"); @@ -1231,15 +1231,14 @@ void Export::onExport () break; } case SELECTION_SELECTION: { - std::vector reprlst; SPDocument * doc = SP_ACTIVE_DOCUMENT; bool modified = false; bool saved = DocumentUndo::getUndoSensitive(doc); DocumentUndo::setUndoSensitive(doc, false); - reprlst = desktop->getSelection()->xmlNodes(); + auto reprlst = desktop->getSelection()->xmlNodes(); - for(std::vector::const_iterator i=reprlst.begin(); reprlst.end() != i; ++i) { + for(auto i=reprlst.begin(); reprlst.end() != i; ++i) { Inkscape::XML::Node * repr = *i; const gchar * temp_string; Glib::ustring dir = Glib::path_get_dirname(filename.c_str()); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index dfc19f3cc..ccba5a278 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -691,7 +691,7 @@ private: void select_svg_element(){ Inkscape::Selection* sel = _desktop->getSelection(); if (sel->isEmpty()) return; - Inkscape::XML::Node* node = sel->xmlNodes()[0]; + Inkscape::XML::Node* node = sel->xmlNodes().front(); if (!node || !node->matchAttributeName("id")) return; std::ostringstream xlikhref; diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index e294a5a51..ea3471bf0 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -13,6 +13,7 @@ #include #include #include "object-set.h" +#include using namespace Inkscape; @@ -123,6 +124,8 @@ TEST_F(ObjectSetTest, Advanced) { } TEST_F(ObjectSetTest, Items) { + // cannot test smallestItem and largestItem functions due to too many dependencies + // uncomment if the problem is fixed SPRect* rect10x100 = (SPRect *) SPFactory::createObject("svg:rect"); // rect10x100->invoke_build(_doc, _doc->rroot, 1); SPRect* rect20x40 = (SPRect *) SPFactory::createObject("svg:rect"); @@ -161,6 +164,18 @@ TEST_F(ObjectSetTest, Ranges) { EXPECT_EQ(E, *it++); EXPECT_EQ(C, *it++); EXPECT_EQ(set->objects().end(), it); + SPObject* rect1 = SPFactory::createObject("svg:rect"); + SPObject* rect2 = SPFactory::createObject("svg:rect"); + SPObject* rect3 = SPFactory::createObject("svg:rect"); + set->add(rect1); + set->add(rect2); + set->add(rect3); + EXPECT_EQ(7, set->size()); + auto xmlNode = set->xmlNodes().begin(); + EXPECT_EQ(rect1->getRepr(), *xmlNode++); + EXPECT_EQ(rect2->getRepr(), *xmlNode++); + EXPECT_EQ(rect3->getRepr(), *xmlNode++); + EXPECT_EQ(set->xmlNodes().end(), xmlNode); } TEST_F(ObjectSetTest, Autoremoving) { -- cgit v1.2.3 From da0dcbcc4053c9e9c693f31189b4676768e07abc Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Sun, 3 Jul 2016 21:13:47 +0200 Subject: Added tests (bzr r14954.1.15) --- testfiles/src/object-set-test.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index ea3471bf0..a745ace29 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -172,10 +172,17 @@ TEST_F(ObjectSetTest, Ranges) { set->add(rect3); EXPECT_EQ(7, set->size()); auto xmlNode = set->xmlNodes().begin(); + EXPECT_EQ(3, boost::distance(set->xmlNodes())); EXPECT_EQ(rect1->getRepr(), *xmlNode++); EXPECT_EQ(rect2->getRepr(), *xmlNode++); EXPECT_EQ(rect3->getRepr(), *xmlNode++); EXPECT_EQ(set->xmlNodes().end(), xmlNode); + auto item = set->items().begin(); + EXPECT_EQ(3, boost::distance(set->items())); + EXPECT_EQ(rect1, *item++); + EXPECT_EQ(rect2, *item++); + EXPECT_EQ(rect3, *item++); + EXPECT_EQ(set->items().end(), item); } TEST_F(ObjectSetTest, Autoremoving) { -- cgit v1.2.3 From af9a8fb23a525dc0392890762651f315b32544e8 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Tue, 5 Jul 2016 13:49:26 +0200 Subject: Added simple test for SPObject (bzr r14954.1.16) --- CMakeScripts/ConfigCompileFlags.cmake | 2 +- testfiles/CMakeLists.txt | 1 + testfiles/src/object-set-test.cpp | 2 +- testfiles/src/sp-object-test.cpp | 69 +++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 testfiles/src/sp-object-test.cpp diff --git a/CMakeScripts/ConfigCompileFlags.cmake b/CMakeScripts/ConfigCompileFlags.cmake index 85a8a151c..e9694c2b7 100644 --- a/CMakeScripts/ConfigCompileFlags.cmake +++ b/CMakeScripts/ConfigCompileFlags.cmake @@ -12,9 +12,9 @@ if(WIN32) endif(WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 ${COMPILE_PROFILING_FLAGS} ") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 ${COMPILE_PROFILING_FLAGS} ") # TODO add_definitions("-std=c++11") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 ${COMPILE_PROFILING_FLAGS} ") #set(CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} ") diff --git a/testfiles/CMakeLists.txt b/testfiles/CMakeLists.txt index e764220bc..716ef468b 100644 --- a/testfiles/CMakeLists.txt +++ b/testfiles/CMakeLists.txt @@ -17,6 +17,7 @@ set(TEST_SOURCES attributes-test color-profile-test dir-util-test + sp-object-test object-set-test) set (_optional_unittest_libs ) diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index a745ace29..7d79eb3b8 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -12,7 +12,7 @@ #include #include #include -#include "object-set.h" +#include #include using namespace Inkscape; diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp new file mode 100644 index 000000000..594fd9eb7 --- /dev/null +++ b/testfiles/src/sp-object-test.cpp @@ -0,0 +1,69 @@ +/* + * Multiindex container for selection + * + * Authors: + * Adrian Boguszewski + * + * Copyright (C) 2016 Adrian Boguszewski + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ +#include +#include +#include +#include +#include + +class SPObjectTest: public DocPerCaseTest { +public: + SPObjectTest() { + a = new SPItem(); + b = new SPItem(); + c = new SPItem(); + d = new SPItem(); + e = new SPItem(); + } + ~SPObjectTest() { + delete a; + delete b; + delete c; + delete d; + delete e; + } + SPObject* a; + SPObject* b; + SPObject* c; + SPObject* d; + SPObject* e; +}; + +TEST_F(SPObjectTest, Basics) { + d->invoke_build(_doc, _doc->rroot, 1); + c->invoke_build(_doc, _doc->rroot, 1); + b->invoke_build(_doc, _doc->rroot, 1); + a->attach(b, a->lastChild()); + a->attach(c, a->lastChild()); + a->attach(d, a->lastChild()); + EXPECT_TRUE(a->hasChildren()); + EXPECT_EQ(d, a->lastChild()); + auto children = a->childList(false); + EXPECT_EQ(3, children.size()); + EXPECT_EQ(b, children[0]); + EXPECT_EQ(c, children[1]); + EXPECT_EQ(d, children[2]); + b->reorder(d); + children = a->childList(false); + EXPECT_EQ(3, children.size()); + EXPECT_EQ(c, children[0]); + EXPECT_EQ(d, children[1]); + EXPECT_EQ(b, children[2]); + a->detach(d); + EXPECT_EQ(b, a->lastChild()); + children = a->childList(false); + EXPECT_EQ(2, children.size()); + EXPECT_EQ(c, children[0]); + EXPECT_EQ(b, children[1]); + a->detach(c); + a->detach(b); + EXPECT_FALSE(a->hasChildren()); +} -- cgit v1.2.3 From 058e95a59ccb2ab1748392acdfdbbffd516c9c81 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Mon, 11 Jul 2016 14:24:52 +0200 Subject: First part of new SPObject children list (bzr r14954.1.17) --- src/layer-fns.cpp | 36 +++++------- src/object-set.cpp | 18 +++--- src/selection-chemistry.cpp | 6 +- src/sp-item-group.cpp | 5 +- src/sp-item.cpp | 41 ++++--------- src/sp-mask.cpp | 15 ++--- src/sp-object.cpp | 124 ++++++++++++++++++++++----------------- src/sp-object.h | 29 +++++---- src/ui/widget/layer-selector.cpp | 20 ++----- src/uri-references.cpp | 2 +- testfiles/src/sp-object-test.cpp | 78 +++++++++++++++++++----- 11 files changed, 201 insertions(+), 173 deletions(-) diff --git a/src/layer-fns.cpp b/src/layer-fns.cpp index 3e794a0a4..d149089db 100644 --- a/src/layer-fns.cpp +++ b/src/layer-fns.cpp @@ -36,11 +36,9 @@ bool is_layer(SPObject &object) { * @returns NULL if there are no further layers under a parent */ SPObject *next_sibling_layer(SPObject *layer) { - using std::find_if; - - return find_if( - layer->getNext(), NULL, &is_layer - ); + SPObject::ChildrenList &list = layer->parent->_children; + auto l = std::find_if(++list.iterator_to(*layer), list.end(), &is_layer); + return l != list.end() ? &*l : nullptr; } /** Finds the previous sibling layer for a \a layer @@ -50,11 +48,9 @@ SPObject *next_sibling_layer(SPObject *layer) { SPObject *previous_sibling_layer(SPObject *layer) { using Inkscape::Algorithms::find_last_if; - SPObject *sibling(find_last_if( - layer->parent->firstChild(), layer, &is_layer - )); - - return ( sibling != layer ) ? sibling : NULL; + SPObject::ChildrenList &list = layer->parent->_children; + auto l = find_last_if(list.begin(), list.iterator_to(*layer), &is_layer); + return l != list.iterator_to(*layer) ? &*(l) : nullptr; } /** Finds the first child of a \a layer @@ -62,16 +58,15 @@ SPObject *previous_sibling_layer(SPObject *layer) { * @returns NULL if layer has no sublayers */ SPObject *first_descendant_layer(SPObject *layer) { - using std::find_if; - - SPObject *first_descendant=NULL; - while (layer) { - layer = find_if( - layer->firstChild(), NULL, &is_layer - ); - if (layer) { + SPObject *first_descendant = nullptr; + while (true) { + auto tmp = std::find_if(layer->_children.begin(), layer->_children.end(), &is_layer); + if (tmp != layer->_children.end()) { first_descendant = layer; + } else { + break; } + layer = &*tmp; } return first_descendant; @@ -84,9 +79,8 @@ SPObject *first_descendant_layer(SPObject *layer) { SPObject *last_child_layer(SPObject *layer) { using Inkscape::Algorithms::find_last_if; - return find_last_if( - layer->firstChild(), NULL, &is_layer - ); + auto l = find_last_if(layer->_children.begin(), layer->_children.end(), &is_layer); + return l != layer->_children.end() ? &*l : nullptr; } SPObject *last_elder_layer(SPObject *root, SPObject *layer) { diff --git a/src/object-set.cpp b/src/object-set.cpp index 07f9ea0c8..b7b84e163 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -93,14 +93,14 @@ bool ObjectSet::_anyAncestorIsInSet(SPObject *object) { } void ObjectSet::_removeDescendantsFromSet(SPObject *object) { - for (auto& child: object->childList(false)) { - if (includes(child)) { - _remove(child); + for (auto& child: object->_children) { + if (includes(&child)) { + _remove(&child); // there is certainly no children of this child in the set continue; } - _removeDescendantsFromSet(child); + _removeDescendantsFromSet(&child); } } @@ -130,8 +130,8 @@ SPObject *ObjectSet::_getMutualAncestor(SPObject *object) { bool flag = true; while (o->parent != nullptr) { - for (auto &child: o->parent->childList(false)) { - if(child != o && !includes(child)) { + for (auto &child: o->parent->_children) { + if(&child != o && !includes(&child)) { flag = false; break; } @@ -147,9 +147,9 @@ SPObject *ObjectSet::_getMutualAncestor(SPObject *object) { void ObjectSet::_removeAncestorsFromSet(SPObject *object) { SPObject* o = object; while (o->parent != nullptr) { - for (auto &child: o->parent->childList(false)) { - if (child != o) { - _add(child); + for (auto &child: o->parent->_children) { + if (&child != o) { + _add(&child); } } if (includes(o->parent)) { diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 4b5c3f921..1f34f798d 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -4261,11 +4261,11 @@ static void itemtree_map(void (*f)(SPItem *, SPDesktop *), SPObject *root, SPDes f(item, desktop); } } - for ( SPObject::SiblingIterator iter = root->firstChild() ; iter ; ++iter ) { + for (auto& child: root->_children) { //don't recurse into locked layers - SPItem *item = dynamic_cast(&*iter); + SPItem *item = dynamic_cast(&child); if (!(item && desktop->isLayer(item) && item->isLocked())) { - itemtree_map(f, iter, desktop); + itemtree_map(f, &child, desktop); } } } diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 70d2bc732..d775e306f 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -297,9 +297,8 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox } void SPGroup::print(SPPrintContext *ctx) { - std::vector l=this->childList(false); - for(std::vector::const_iterator i=l.begin();i!=l.end();++i){ - SPObject *o = *i; + for(auto& child: _children){ + SPObject *o = &child; SPItem *item = dynamic_cast(o); if (item) { item->invoke_print(ctx); diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 9fd6e8ecc..258a5cd14 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -308,50 +308,35 @@ bool is_item(SPObject const &object) { void SPItem::raiseToTop() { using Inkscape::Algorithms::find_last_if; - SPObject *topmost=find_last_if( - next, NULL, &is_item - ); - if (topmost) { + auto topmost = find_last_if(++parent->_children.iterator_to(*this), parent->_children.end(), &is_item); + if (topmost != parent->_children.end()) { getRepr()->parent()->changeOrder( getRepr(), topmost->getRepr() ); } } void SPItem::raiseOne() { - SPObject *next_higher=std::find_if( - next, NULL, &is_item - ); - if (next_higher) { + auto next_higher = std::find_if(++parent->_children.iterator_to(*this), parent->_children.end(), &is_item); + if (next_higher != parent->_children.end()) { Inkscape::XML::Node *ref = next_higher->getRepr(); getRepr()->parent()->changeOrder(getRepr(), ref); } } void SPItem::lowerOne() { - using Inkscape::Util::MutableList; - using Inkscape::Util::reverse_list; - - MutableList next_lower=std::find_if( - reverse_list( - parent->firstChild(), this - ), - MutableList(), - &is_item - ); - if (next_lower) { - ++next_lower; - Inkscape::XML::Node *ref = ( next_lower ? next_lower->getRepr() : NULL ); + using Inkscape::Algorithms::find_last_if; + + auto next_lower = find_last_if(parent->_children.begin(), parent->_children.iterator_to(*this), &is_item); + if (next_lower != parent->_children.iterator_to(*this)) { + next_lower--; + Inkscape::XML::Node *ref = next_lower->getRepr(); getRepr()->parent()->changeOrder(getRepr(), ref); } } void SPItem::lowerToBottom() { - using Inkscape::Algorithms::find_last_if; - using Inkscape::Util::MutableList; - using Inkscape::Util::reverse_list; - - SPObject * bottom=parent->firstChild(); - while(dynamic_cast(bottom) && dynamic_cast(bottom->next) && bottom!=this && !is_item(*(bottom->next))) bottom=bottom->next; - if (bottom && bottom != this) { + auto bottom = std::find_if(parent->_children.begin(), parent->_children.iterator_to(*this), &is_item); + if (bottom != parent->_children.iterator_to(*this)) { + bottom--; Inkscape::XML::Node *ref = bottom->getRepr() ; parent->getRepr()->changeOrder(getRepr(), ref); } diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index 3537c7bac..a36d8ef29 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -138,12 +138,8 @@ void SPMask::update(SPCtx* ctx, unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - std::vector children = this->childList(false); - for (std::vector::const_iterator child = children.begin();child != children.end();++child) { - sp_object_ref(*child); - } - - + std::vector children = this->childList(true); + for (std::vector::const_iterator child = children.begin();child != children.end();++child) { if (flags || ((*child)->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { (*child)->updateDisplay(ctx, flags); @@ -172,11 +168,8 @@ void SPMask::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - std::vector children = this->childList(false); - for (std::vector::const_iterator child = children.begin();child != children.end();++child) { - sp_object_ref(*child); - } - + std::vector children = this->childList(true); + for (std::vector::const_iterator child = children.begin();child != children.end();++child) { if (flags || ((*child)->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { (*child)->emitModified(flags); diff --git a/src/sp-object.cpp b/src/sp-object.cpp index d1659eedc..36957ab49 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -7,8 +7,9 @@ * Stephen Silver * Jon A. Cruz * Abhishek Sharma + * Adrian Boguszewski * - * Copyright (C) 1999-2008 authors + * Copyright (C) 1999-2016 authors * Copyright (C) 2001-2002 Ximian, Inc. * * Released under GNU GPL, read the file 'COPYING' for more information @@ -16,6 +17,7 @@ #include #include +#include #include "helper/sp-marshal.h" #include "xml/node-event-vector.h" @@ -398,13 +400,12 @@ void SPObject::changeCSS(SPCSSAttr *css, gchar const *attr) } std::vector SPObject::childList(bool add_ref, Action) { - std::vector l; - for ( SPObject *child = firstChild() ; child; child = child->getNext() ) { + std::vector l; + for (auto& child: _children) { if (add_ref) { - sp_object_ref (child); + sp_object_ref(&child); } - - l.push_back(child); + l.push_back(&child); } return l; @@ -467,9 +468,9 @@ void SPObject::requestOrphanCollection() { } void SPObject::_sendDeleteSignalRecursive() { - for (SPObject *child = firstChild(); child; child = child->getNext()) { - child->_delete_signal.emit(child); - child->_sendDeleteSignalRecursive(); + for (auto& child: _children) { + child._delete_signal.emit(&child); + child._sendDeleteSignalRecursive(); } } @@ -497,12 +498,12 @@ void SPObject::deleteObject(bool propagate, bool propagate_descendants) void SPObject::cropToObject(SPObject *except) { std::vector toDelete; - for ( SPObject *child = this->firstChild(); child; child = child->getNext() ) { - if (SP_IS_ITEM(child)) { - if (child->isAncestorOf(except)) { - child->cropToObject(except); - } else if(child != except) { - toDelete.push_back(child); + for (auto& child: _children) { + if (SP_IS_ITEM(&child)) { + if (child.isAncestorOf(except)) { + child.cropToObject(except); + } else if(&child != except) { + toDelete.push_back(&child); } } } @@ -525,6 +526,12 @@ void SPObject::attach(SPObject *object, SPObject *prev) object->parent = this; this->_updateTotalHRefCount(object->_total_hrefcount); + auto it = _children.begin(); + if (prev != nullptr) { + it = ++_children.iterator_to(*prev); + } + _children.insert(it, *object); + SPObject *next; if (prev) { next = prev->next; @@ -541,43 +548,47 @@ void SPObject::attach(SPObject *object, SPObject *prev) object->xml_space.value = this->xml_space.value; } -void SPObject::reorder(SPObject *prev) -{ - //g_return_if_fail(object != NULL); - //g_return_if_fail(SP_IS_OBJECT(object)); - g_return_if_fail(this->parent != NULL); - g_return_if_fail(this != prev); - g_return_if_fail(!prev || SP_IS_OBJECT(prev)); - g_return_if_fail(!prev || prev->parent == this->parent); +void SPObject::reorder(SPObject* obj, SPObject* prev) { + g_return_if_fail(obj != nullptr); + g_return_if_fail(obj->parent); + g_return_if_fail(obj->parent == this); + g_return_if_fail(obj != prev); + g_return_if_fail(!prev || prev->parent == obj->parent); + + auto it = _children.begin(); + if (prev != nullptr) { + it = ++_children.iterator_to(*prev); + } + + _children.splice(it, _children, _children.iterator_to(*obj)); - SPObject *const parent=this->parent; SPObject *old_prev=NULL; - for ( SPObject *child = parent->children ; child && child != this ; + for ( SPObject *child = children ; child && child != obj ; child = child->next ) { old_prev = child; } - SPObject *next=this->next; + SPObject *next=obj->next; if (old_prev) { old_prev->next = next; } else { - parent->children = next; + children = next; } if (!next) { - parent->_last_child = old_prev; + _last_child = old_prev; } if (prev) { next = prev->next; - prev->next = this; + prev->next = obj; } else { - next = parent->children; - parent->children = this; + next = children; + children = obj; } - this->next = next; + obj->next = next; if (!next) { - parent->_last_child = this; + _last_child = obj; } } @@ -589,6 +600,7 @@ void SPObject::detach(SPObject *object) g_return_if_fail(SP_IS_OBJECT(object)); g_return_if_fail(object->parent == this); + _children.erase(_children.iterator_to(*object)); object->releaseReferences(); SPObject *prev=NULL; @@ -618,14 +630,14 @@ void SPObject::detach(SPObject *object) SPObject *SPObject::get_child_by_repr(Inkscape::XML::Node *repr) { g_return_val_if_fail(repr != NULL, NULL); - SPObject *result = 0; + SPObject *result = nullptr; - if ( _last_child && (_last_child->getRepr() == repr) ) { - result = _last_child; // optimization for common scenario + if (_children.size() > 0 && _children.back().getRepr() == repr) { + result = &_children.back(); // optimization for common scenario } else { - for ( SPObject *child = children ; child ; child = child->next ) { - if ( child->getRepr() == repr ) { - result = child; + for (auto& child: _children) { + if (child.getRepr() == repr) { + result = &child; break; } } @@ -656,10 +668,12 @@ void SPObject::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) void SPObject::release() { SPObject* object = this; - debug("id=%p, typename=%s", object, g_type_name_from_instance((GTypeInstance*)object)); - while (object->children) { - object->detach(object->children); + auto tmp = _children | boost::adaptors::transformed([](SPObject& obj){return &obj;}); + std::vector toRelease(tmp.begin(), tmp.end()); + + for (auto& p: toRelease) { + object->detach(p); } } @@ -680,7 +694,7 @@ void SPObject::order_changed(Inkscape::XML::Node *child, Inkscape::XML::Node * / SPObject *ochild = object->get_child_by_repr(child); g_return_if_fail(ochild != NULL); SPObject *prev = new_ref ? object->get_child_by_repr(new_ref) : NULL; - ochild->reorder(prev); + object->reorder(ochild, prev); ochild->_position_changed_signal.emit(ochild); } @@ -1523,33 +1537,33 @@ bool SPObject::setTitleOrDesc(gchar const *value, gchar const *svg_tagname, bool return true; } -SPObject * SPObject::findFirstChild(gchar const *tagname) const +SPObject* SPObject::findFirstChild(gchar const *tagname) const { - for (SPObject *child = children; child; child = child->next) + for (auto& child: const_cast(this)->_children) { - if (child->repr->type() == Inkscape::XML::ELEMENT_NODE && - !strcmp(child->repr->name(), tagname)) { - return child; + if (child.repr->type() == Inkscape::XML::ELEMENT_NODE && + !strcmp(child.repr->name(), tagname)) { + return &child; } } - return NULL; + return nullptr; } char* SPObject::textualContent() const { GString* text = g_string_new(""); - for (const SPObject *child = firstChild(); child; child = child->next) + for (auto& child: _children) { - Inkscape::XML::NodeType child_type = child->repr->type(); + Inkscape::XML::NodeType child_type = child.repr->type(); if (child_type == Inkscape::XML::ELEMENT_NODE) { - char* new_string = child->textualContent(); + char* new_string = child.textualContent(); g_string_append(text, new_string); g_free(new_string); } else if (child_type == Inkscape::XML::TEXT_NODE) { - g_string_append(text, child->repr->content()); + g_string_append(text, child.repr->content()); } } return g_string_free(text, FALSE); @@ -1566,8 +1580,8 @@ void SPObject::recursivePrintTree( unsigned level ) std::cout << " "; } std::cout << (getId()?getId():"No object id") << std::endl; - for (SPObject *child = children; child; child = child->next) { - child->recursivePrintTree( level+1 ); + for (auto& child: _children) { + child.recursivePrintTree(level + 1); } } diff --git a/src/sp-object.h b/src/sp-object.h index 70d3e5df5..6aa006283 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -6,8 +6,9 @@ * Lauris Kaplinski * Jon A. Cruz * Abhishek Sharma + * Adrian Boguszewski * - * Copyright (C) 1999-2002 authors + * Copyright (C) 1999-2016 authors * Copyright (C) 2001-2002 Ximian, Inc. * * Released under GNU GPL, read the file 'COPYING' for more information @@ -53,6 +54,7 @@ class SPObject; #include #include #include +#include #include "version.h" #include "util/forward-pointer-iterator.h" @@ -216,6 +218,7 @@ private: char *id; /* Our very own unique id */ Inkscape::XML::Node *repr; /* Our xml representation */ + public: int refCount; std::list hrefList; @@ -279,17 +282,9 @@ public: return object->parent; } }; - /// Switch containing next() method. - struct SiblingIteratorStrategy { - static SPObject const *next(SPObject const *object) { - return object->next; - } - }; typedef Inkscape::Util::ForwardPointerIterator ParentIterator; typedef Inkscape::Util::ForwardPointerIterator ConstParentIterator; - typedef Inkscape::Util::ForwardPointerIterator SiblingIterator; - typedef Inkscape::Util::ForwardPointerIterator ConstSiblingIterator; bool isSiblingOf(SPObject const *object) const { if (object == NULL) return false; @@ -317,7 +312,7 @@ public: */ SPObject *getPrev(); - bool hasChildren() const { return ( children != NULL ); } + bool hasChildren() const { return ( _children.size() > 0 ); } SPObject *firstChild() { return children; } SPObject const *firstChild() const { return children; } @@ -681,9 +676,9 @@ public: void attach(SPObject *object, SPObject *prev); /** - * In list of object's siblings, move object behind prev. + * In list of object's children, move object behind prev. */ - void reorder(SPObject *prev); + void reorder(SPObject* obj, SPObject *prev); /** * Remove object from parent's children, release and unref it. @@ -858,7 +853,17 @@ protected: virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, unsigned int flags); + typedef boost::intrusive::list_member_hook<> ListHook; + ListHook _child_hook; public: + typedef boost::intrusive::list< + SPObject, + boost::intrusive::member_hook< + SPObject, + ListHook, + &SPObject::_child_hook + >> ChildrenList; + ChildrenList _children; virtual void read_content(); void recursivePrintTree(unsigned level = 0); // For debugging diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index 1a9ce617f..46a0b3547 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -19,6 +19,8 @@ #include "ui/dialog/layer-properties.h" #include +#include +#include #include "desktop.h" @@ -348,27 +350,17 @@ void LayerSelector::_buildSiblingEntries( unsigned depth, SPObject &parent, Inkscape::Util::List hierarchy ) { - using Inkscape::Util::List; using Inkscape::Util::rest; - using Inkscape::Util::reverse_list_in_place; - using Inkscape::Util::filter_list; - Inkscape::Util::List siblings( - reverse_list_in_place( - filter_list( - is_layer(_desktop), parent.firstChild(), NULL - ) - ) - ); + auto siblings = parent._children | boost::adaptors::filtered(is_layer(_desktop)) | boost::adaptors::reversed; SPObject *layer( hierarchy ? &*hierarchy : NULL ); - while (siblings) { - _buildEntry(depth, *siblings); - if ( &*siblings == layer ) { + for (auto& sib: siblings) { + _buildEntry(depth, sib); + if ( &sib == layer ) { _buildSiblingEntries(depth+1, *layer, rest(hierarchy)); } - ++siblings; } } diff --git a/src/uri-references.cpp b/src/uri-references.cpp index db46a156f..078834131 100644 --- a/src/uri-references.cpp +++ b/src/uri-references.cpp @@ -92,7 +92,7 @@ bool URIReference::_acceptObject(SPObject *obj) const g_warning("cloned object with no known type\n"); return false; } - for (int i = positions.size() - 2; i >= 0; i--) + for (int i = (int) (positions.size() - 2); i >= 0; i--) owner = owner->childList(false)[positions[i]]; } // once we have the "original" object (hopefully) we look at who is referencing it diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index 594fd9eb7..8419cea23 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -12,7 +12,13 @@ #include #include #include +#include #include +#include +#include + +using namespace Inkscape; +using namespace Inkscape::XML; class SPObjectTest: public DocPerCaseTest { public: @@ -22,6 +28,17 @@ public: c = new SPItem(); d = new SPItem(); e = new SPItem(); + auto sd = new SimpleDocument(); + auto et = new TextNode(Util::share_string("e"), sd); + auto dt = new TextNode(Util::share_string("d"), sd); + auto ct = new TextNode(Util::share_string("c"), sd); + auto bt = new TextNode(Util::share_string("b"), sd); + auto at = new TextNode(Util::share_string("a"), sd); + e->invoke_build(_doc, et, 0); + d->invoke_build(_doc, dt, 0); + c->invoke_build(_doc, ct, 0); + b->invoke_build(_doc, bt, 0); + a->invoke_build(_doc, at, 0); } ~SPObjectTest() { delete a; @@ -38,12 +55,9 @@ public: }; TEST_F(SPObjectTest, Basics) { - d->invoke_build(_doc, _doc->rroot, 1); - c->invoke_build(_doc, _doc->rroot, 1); - b->invoke_build(_doc, _doc->rroot, 1); - a->attach(b, a->lastChild()); a->attach(c, a->lastChild()); - a->attach(d, a->lastChild()); + a->attach(b, nullptr); + a->attach(d, c); EXPECT_TRUE(a->hasChildren()); EXPECT_EQ(d, a->lastChild()); auto children = a->childList(false); @@ -51,19 +65,51 @@ TEST_F(SPObjectTest, Basics) { EXPECT_EQ(b, children[0]); EXPECT_EQ(c, children[1]); EXPECT_EQ(d, children[2]); - b->reorder(d); - children = a->childList(false); - EXPECT_EQ(3, children.size()); - EXPECT_EQ(c, children[0]); - EXPECT_EQ(d, children[1]); - EXPECT_EQ(b, children[2]); - a->detach(d); - EXPECT_EQ(b, a->lastChild()); + a->attach(b, a->lastChild()); + EXPECT_EQ(3, a->_children.size()); + a->reorder(b, b); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(b, &a->_children.front()); + EXPECT_EQ(d, &a->_children.back()); + a->reorder(b, d); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(c, &a->_children.front()); + EXPECT_EQ(b, &a->_children.back()); + a->reorder(d, nullptr); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(d, &a->_children.front()); + EXPECT_EQ(b, &a->_children.back()); + a->reorder(c, b); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(d, &a->_children.front()); + EXPECT_EQ(c, &a->_children.back()); + a->detach(b); + EXPECT_EQ(c, a->lastChild()); children = a->childList(false); EXPECT_EQ(2, children.size()); - EXPECT_EQ(c, children[0]); - EXPECT_EQ(b, children[1]); - a->detach(c); + EXPECT_EQ(d, children[0]); + EXPECT_EQ(c, children[1]); a->detach(b); + EXPECT_EQ(2, a->childList(false).size()); + a->releaseReferences(); EXPECT_FALSE(a->hasChildren()); } + +TEST_F(SPObjectTest, Advanced) { + a->attach(b, a->lastChild()); + a->attach(c, a->lastChild()); + a->attach(d, a->lastChild()); + a->attach(e, a->lastChild()); + EXPECT_EQ(e, a->get_child_by_repr(e->getRepr())); + EXPECT_EQ(c, a->get_child_by_repr(c->getRepr())); +} + +TEST_F(SPObjectTest, Tmp) { + a->attach(b, a->lastChild()); + a->attach(c, a->lastChild()); + a->attach(d, a->lastChild()); + a->attach(e, a->lastChild()); + EXPECT_TRUE(a->hasChildren()); + a->releaseReferences(); + EXPECT_FALSE(a->hasChildren()); +} \ No newline at end of file -- cgit v1.2.3 From d1947e768272c703674129d5c583204ff2b59251 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Wed, 13 Jul 2016 13:36:19 +0200 Subject: Second part of new SPObject children list (bzr r14954.1.19) --- src/box3d.cpp | 20 ++-- src/conn-avoid-ref.cpp | 18 ++-- src/desktop-style.cpp | 25 ++--- src/document.cpp | 96 +++++++++---------- src/extension/internal/cairo-render-context.cpp | 23 +++-- src/extension/internal/cairo-renderer.cpp | 8 +- src/extension/internal/emf-print.cpp | 14 ++- src/extension/internal/javafx-out.cpp | 8 +- src/extension/internal/pov-out.cpp | 4 +- src/file.cpp | 16 ++-- src/filter-chemistry.cpp | 14 ++- src/gradient-chemistry.cpp | 20 ++-- src/gradient-drag.cpp | 4 +- src/helper/pixbuf-ops.cpp | 4 +- src/helper/png-write.cpp | 4 +- src/helper/stock-items.cpp | 30 +++--- src/id-clash.cpp | 8 +- src/libnrtype/font-lister.cpp | 4 +- src/live_effects/lpe-perspective_path.cpp | 10 +- src/main.cpp | 4 +- src/object-snapper.cpp | 8 +- src/object-test.h | 1 - src/persp3d.cpp | 13 +-- src/selection-chemistry.cpp | 43 +++++---- src/sp-clippath.cpp | 30 +++--- src/sp-defs.cpp | 14 +-- src/sp-filter.cpp | 8 +- src/sp-flowdiv.cpp | 120 ++++++++++++------------ src/sp-flowregion.cpp | 53 +++++------ src/sp-flowtext.cpp | 54 +++++------ src/sp-gradient.cpp | 41 ++++---- src/sp-hatch.cpp | 17 ++-- src/sp-item-group.cpp | 61 ++++++------ src/sp-item.cpp | 22 ++--- src/sp-mask.cpp | 12 +-- src/sp-mesh-array.cpp | 34 +++---- src/sp-namedview.cpp | 12 +-- src/sp-object-group.cpp | 8 +- src/sp-object.cpp | 22 +---- src/sp-object.h | 9 +- src/sp-pattern.cpp | 30 +++--- src/sp-root.cpp | 15 +-- src/sp-switch.cpp | 7 +- src/sp-text.cpp | 54 +++++------ src/sp-tref.cpp | 6 +- src/sp-tspan.cpp | 80 ++++++++-------- src/splivarot.cpp | 6 +- src/text-chemistry.cpp | 6 +- src/text-editing.cpp | 53 ++++++----- src/ui/clipboard.cpp | 4 +- src/ui/dialog/clonetiler.cpp | 24 ++--- src/ui/dialog/filter-effects-dialog.cpp | 23 ++--- src/ui/dialog/find.cpp | 10 +- src/ui/dialog/font-substitution.cpp | 2 +- src/ui/dialog/objects.cpp | 6 +- src/ui/dialog/spellcheck.cpp | 12 +-- src/ui/dialog/symbols.cpp | 8 +- src/ui/tools/box3d-tool.cpp | 4 +- src/ui/tools/connector-tool.cpp | 6 +- src/ui/tools/tweak-tool.cpp | 16 ++-- src/widgets/gradient-toolbar.cpp | 12 +-- src/widgets/gradient-vector.cpp | 28 +++--- src/widgets/stroke-marker-selector.cpp | 6 +- testfiles/src/sp-object-test.cpp | 23 ++++- 64 files changed, 689 insertions(+), 668 deletions(-) diff --git a/src/box3d.cpp b/src/box3d.cpp index c4c2728e4..0a33ee306 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -259,8 +259,8 @@ void box3d_position_set(SPBox3D *box) { /* This draws the curve and calls requestDisplayUpdate() for each side (the latter is done in box3d_side_position_set() to avoid update conflicts with the parent box) */ - for ( SPObject *obj = box->firstChild(); obj; obj = obj->getNext() ) { - Box3DSide *side = dynamic_cast(obj); + for (auto& obj: box->_children) { + Box3DSide *side = dynamic_cast(&obj); if (side) { box3d_side_position_set(side); } @@ -275,8 +275,8 @@ Geom::Affine SPBox3D::set_transform(Geom::Affine const &xform) { gdouble const sw = hypot(ret[0], ret[1]); gdouble const sh = hypot(ret[2], ret[3]); - for ( SPObject *child = firstChild(); child; child = child->getNext() ) { - SPItem *childitem = dynamic_cast(child); + for (auto& child: _children) { + SPItem *childitem = dynamic_cast(&child); if (childitem) { // Adjust stroke width childitem->adjust_stroke(sqrt(fabs(sw * sh))); @@ -1074,8 +1074,8 @@ box3d_recompute_z_orders (SPBox3D *box) { static std::map box3d_get_sides(SPBox3D *box) { std::map sides; - for ( SPObject *obj = box->firstChild(); obj; obj = obj->getNext() ) { - Box3DSide *side = dynamic_cast(obj); + for (auto& obj: box->_children) { + Box3DSide *side = dynamic_cast(&obj); if (side) { sides[Box3D::face_to_int(side->getFaceId())] = side; } @@ -1217,8 +1217,8 @@ static void box3d_extract_boxes_rec(SPObject *obj, std::list &boxes) if (box) { boxes.push_back(box); } else if (dynamic_cast(obj)) { - for ( SPObject *child = obj->firstChild(); child; child = child->getNext() ) { - box3d_extract_boxes_rec(child, boxes); + for (auto& child: obj->_children) { + box3d_extract_boxes_rec(&child, boxes); } } } @@ -1276,8 +1276,8 @@ SPGroup *box3d_convert_to_group(SPBox3D *box) // create a new group and add the sides (converted to ordinary paths) as its children Inkscape::XML::Node *grepr = xml_doc->createElement("svg:g"); - for ( SPObject *obj = box->firstChild(); obj; obj = obj->getNext() ) { - Box3DSide *side = dynamic_cast(obj); + for (auto& obj: box->_children) { + Box3DSide *side = dynamic_cast(&obj); if (side) { Inkscape::XML::Node *repr = box3d_side_convert_to_path(side); grepr->appendChild(repr); diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp index 9190fe633..638ba48e3 100644 --- a/src/conn-avoid-ref.cpp +++ b/src/conn-avoid-ref.cpp @@ -334,19 +334,19 @@ static Avoid::Polygon avoid_item_poly(SPItem const *item) std::vector get_avoided_items(std::vector &list, SPObject *from, SPDesktop *desktop, bool initialised) { - for (SPObject *child = from->firstChild() ; child != NULL; child = child->next ) { - if (SP_IS_ITEM(child) && - !desktop->isLayer(SP_ITEM(child)) && - !SP_ITEM(child)->isLocked() && - !desktop->itemIsHidden(SP_ITEM(child)) && - (!initialised || SP_ITEM(child)->avoidRef->shapeRef) + for (auto& child: from->_children) { + if (SP_IS_ITEM(&child) && + !desktop->isLayer(SP_ITEM(&child)) && + !SP_ITEM(&child)->isLocked() && + !desktop->itemIsHidden(SP_ITEM(&child)) && + (!initialised || SP_ITEM(&child)->avoidRef->shapeRef) ) { - list.push_back(SP_ITEM(child)); + list.push_back(SP_ITEM(&child)); } - if (SP_IS_ITEM(child) && desktop->isLayer(SP_ITEM(child))) { - list = get_avoided_items(list, child, desktop, initialised); + if (SP_IS_ITEM(&child) && desktop->isLayer(SP_ITEM(&child))) { + list = get_avoided_items(list, &child, desktop, initialised); } } diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 885d17c21..a52ab3d76 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -163,17 +163,17 @@ sp_desktop_apply_css_recursive(SPObject *o, SPCSSAttr *css, bool skip_lines) return; } - for ( SPObject *child = o->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: o->_children) { if (sp_repr_css_property(css, "opacity", NULL) != NULL) { // Unset properties which are accumulating and thus should not be set recursively. // For example, setting opacity 0.5 on a group recursively would result in the visible opacity of 0.25 for an item in the group. SPCSSAttr *css_recurse = sp_repr_css_attr_new(); sp_repr_css_merge(css_recurse, css); sp_repr_css_set_property(css_recurse, "opacity", NULL); - sp_desktop_apply_css_recursive(child, css_recurse, skip_lines); + sp_desktop_apply_css_recursive(&child, css_recurse, skip_lines); sp_repr_css_attr_unref(css_recurse); } else { - sp_desktop_apply_css_recursive(child, css, skip_lines); + sp_desktop_apply_css_recursive(&child, css, skip_lines); } } } @@ -1714,10 +1714,11 @@ objects_query_blend (const std::vector &objects, SPStyle *style_res) int blendcount = 0; // determine whether filter is simple (blend and/or blur) or complex - for(SPObject *primitive_obj = style->getFilter()->children; - primitive_obj && dynamic_cast(primitive_obj); - primitive_obj = primitive_obj->next) { - SPFilterPrimitive *primitive = dynamic_cast(primitive_obj); + for(auto& primitive_obj: style->getFilter()->_children) { + SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); + if (!primitive) { + break; + } if (dynamic_cast(primitive)) { ++blendcount; } else if (dynamic_cast(primitive)) { @@ -1730,10 +1731,12 @@ objects_query_blend (const std::vector &objects, SPStyle *style_res) // simple filter if(blurcount == 1 || blendcount == 1) { - for(SPObject *primitive_obj = style->getFilter()->children; - primitive_obj && dynamic_cast(primitive_obj); - primitive_obj = primitive_obj->next) { - SPFeBlend *spblend = dynamic_cast(primitive_obj); + for(auto& primitive_obj: style->getFilter()->_children) { + SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); + if (!primitive) { + break; + } + SPFeBlend *spblend = dynamic_cast(&primitive_obj); if (spblend) { blend = spblend->blend_mode; } diff --git a/src/document.cpp b/src/document.cpp index 902dabbc3..3dcec4795 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -257,9 +257,9 @@ void SPDocument::setCurrentPersp3D(Persp3D * const persp) { void SPDocument::getPerspectivesInDefs(std::vector &list) const { - for (SPObject *i = root->defs->firstChild(); i; i = i->getNext() ) { - if (SP_IS_PERSP3D(i)) { - list.push_back(SP_PERSP3D(i)); + for (auto& i: root->defs->_children) { + if (SP_IS_PERSP3D(&i)) { + list.push_back(SP_PERSP3D(&i)); } } } @@ -1256,12 +1256,12 @@ static std::vector &find_items_in_area(std::vector &s, SPGroup { g_return_val_if_fail(SP_IS_GROUP(group), s); - for ( SPObject *o = group->firstChild() ; o ; o = o->getNext() ) { - if ( SP_IS_ITEM(o) ) { - if (SP_IS_GROUP(o) && (SP_GROUP(o)->effectiveLayerMode(dkey) == SPGroup::LAYER || into_groups)) { - s = find_items_in_area(s, SP_GROUP(o), dkey, area, test, take_insensitive, into_groups); + for (auto& o: group->_children) { + if ( SP_IS_ITEM(&o) ) { + if (SP_IS_GROUP(&o) && (SP_GROUP(&o)->effectiveLayerMode(dkey) == SPGroup::LAYER || into_groups)) { + s = find_items_in_area(s, SP_GROUP(&o), dkey, area, test, take_insensitive, into_groups); } else { - SPItem *child = SP_ITEM(o); + SPItem *child = SP_ITEM(&o); Geom::OptRect box = child->desktopVisualBounds(); if ( box && test(area, *box) && (take_insensitive || child->isVisibleAndUnlocked(dkey))) { s.push_back(child); @@ -1278,17 +1278,16 @@ Returns true if an item is among the descendants of group (recursively). */ static bool item_is_in_group(SPItem *item, SPGroup *group) { - bool inGroup = false; - for ( SPObject *o = group->firstChild() ; o && !inGroup; o = o->getNext() ) { - if ( SP_IS_ITEM(o) ) { - if (SP_ITEM(o) == item) { - inGroup = true; - } else if ( SP_IS_GROUP(o) ) { - inGroup = item_is_in_group(item, SP_GROUP(o)); + for (auto& o: group->_children) { + if ( SP_IS_ITEM(&o) ) { + if (SP_ITEM(&o) == item) { + return true; + } else if (SP_IS_GROUP(&o) && item_is_in_group(item, SP_GROUP(&o))) { + return true; } } } - return inGroup; + return false; } SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, std::vector const &list,Geom::Point const &p, bool take_insensitive) @@ -1299,21 +1298,24 @@ SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *gro Inkscape::Preferences *prefs = Inkscape::Preferences::get(); gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for ( SPObject *o = group->firstChild() ; o && !bottomMost; o = o->getNext() ) { - if ( SP_IS_ITEM(o) ) { - SPItem *item = SP_ITEM(o); + for (auto& o: group->_children) { + if (bottomMost) { + break; + } + if (SP_IS_ITEM(&o)) { + SPItem *item = SP_ITEM(&o); Inkscape::DrawingItem *arenaitem = item->get_arenaitem(dkey); arenaitem->drawing().update(); if (arenaitem && arenaitem->pick(p, delta, 1) != NULL && (take_insensitive || item->isVisibleAndUnlocked(dkey))) { - if (find(list.begin(),list.end(),item)!=list.end() ) { + if (find(list.begin(), list.end(), item) != list.end()) { bottomMost = item; } } - if ( !bottomMost && SP_IS_GROUP(o) ) { + if (!bottomMost && SP_IS_GROUP(&o)) { // return null if not found: - bottomMost = getItemFromListAtPointBottom(dkey, SP_GROUP(o), list, p, take_insensitive); + bottomMost = getItemFromListAtPointBottom(dkey, SP_GROUP(&o), list, p, take_insensitive); } } } @@ -1326,15 +1328,15 @@ The list can be persisted, which improves "find at multiple points" speed. */ void SPDocument::build_flat_item_list(unsigned int dkey, SPGroup *group, gboolean into_groups) const { - for ( SPObject *o = group->firstChild() ; o ; o = o->getNext() ) { - if (!SP_IS_ITEM(o)) { + for (auto& o: group->_children) { + if (!SP_IS_ITEM(&o)) { continue; } - if (SP_IS_GROUP(o) && (SP_GROUP(o)->effectiveLayerMode(dkey) == SPGroup::LAYER || into_groups)) { - build_flat_item_list(dkey, SP_GROUP(o), into_groups); + if (SP_IS_GROUP(&o) && (SP_GROUP(&o)->effectiveLayerMode(dkey) == SPGroup::LAYER || into_groups)) { + build_flat_item_list(dkey, SP_GROUP(&o), into_groups); } else { - SPItem *child = SP_ITEM(o); + SPItem *child = SP_ITEM(&o); if (child->isVisibleAndUnlocked(dkey)) { _node_cache.push_front(child); @@ -1390,18 +1392,18 @@ static SPItem *find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Poin Inkscape::Preferences *prefs = Inkscape::Preferences::get(); gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for ( SPObject *o = group->firstChild() ; o ; o = o->getNext() ) { - if (!SP_IS_ITEM(o)) { + for (auto& o: group->_children) { + if (!SP_IS_ITEM(&o)) { continue; } - if (SP_IS_GROUP(o) && SP_GROUP(o)->effectiveLayerMode(dkey) == SPGroup::LAYER) { - SPItem *newseen = find_group_at_point(dkey, SP_GROUP(o), p); + if (SP_IS_GROUP(&o) && SP_GROUP(&o)->effectiveLayerMode(dkey) == SPGroup::LAYER) { + SPItem *newseen = find_group_at_point(dkey, SP_GROUP(&o), p); if (newseen) { seen = newseen; } } - if (SP_IS_GROUP(o) && SP_GROUP(o)->effectiveLayerMode(dkey) != SPGroup::LAYER ) { - SPItem *child = SP_ITEM(o); + if (SP_IS_GROUP(&o) && SP_GROUP(&o)->effectiveLayerMode(dkey) != SPGroup::LAYER ) { + SPItem *child = SP_ITEM(&o); Inkscape::DrawingItem *arenaitem = child->get_arenaitem(dkey); arenaitem->drawing().update(); @@ -1595,8 +1597,8 @@ static unsigned int count_objects_recursive(SPObject *obj, unsigned int count) { count++; // obj itself - for ( SPObject *i = obj->firstChild(); i; i = i->getNext() ) { - count = count_objects_recursive(i, count); + for (auto& i: obj->_children) { + count = count_objects_recursive(&i, count); } return count; @@ -1621,13 +1623,13 @@ static unsigned int objects_in_document(SPDocument *document) static void vacuum_document_recursive(SPObject *obj) { if (SP_IS_DEFS(obj)) { - for ( SPObject *def = obj->firstChild(); def; def = def->getNext()) { + for (auto& def: obj->_children) { // fixme: some inkscape-internal nodes in the future might not be collectable - def->requestOrphanCollection(); + def.requestOrphanCollection(); } } else { - for ( SPObject *i = obj->firstChild(); i; i = i->getNext() ) { - vacuum_document_recursive(i); + for (auto& i: obj->_children) { + vacuum_document_recursive(&i); } } } @@ -1755,14 +1757,14 @@ void SPDocument::importDefsNode(SPDocument *source, Inkscape::XML::Node *defs, I // Prevent duplicates of solid swatches by checking if equivalent swatch already exists if (src && SP_IS_GRADIENT(src)) { SPGradient *s_gr = SP_GRADIENT(src); - for (SPObject *trg = this->getDefs()->firstChild() ; trg ; trg = trg->getNext()) { - if (trg && (src != trg) && SP_IS_GRADIENT(trg)) { - SPGradient *t_gr = SP_GRADIENT(trg); + for (auto& trg: getDefs()->_children) { + if (&trg && (src != &trg) && SP_IS_GRADIENT(&trg)) { + SPGradient *t_gr = SP_GRADIENT(&trg); if (t_gr && s_gr->isEquivalent(t_gr)) { // Change object references to the existing equivalent gradient - Glib::ustring newid = trg->getId(); + Glib::ustring newid = trg.getId(); if(newid != defid){ // id could be the same if it is a second paste into the same document - change_def_references(src, trg); + change_def_references(src, &trg); } gchar *longid = g_strdup_printf("%s_%9.9d", DuplicateDefString.c_str(), stagger++); def->setAttribute("id", longid ); @@ -1826,9 +1828,9 @@ void SPDocument::importDefsNode(SPDocument *source, Inkscape::XML::Node *defs, I id.erase( pos ); // Check that it really is a duplicate - for (SPObject *trg = this->getDefs()->firstChild() ; trg ; trg = trg->getNext()) { - if( trg && SP_IS_SYMBOL(trg) && src != trg ) { - std::string id2 = trg->getRepr()->attribute("id"); + for (auto& trg: getDefs()->_children) { + if(&trg && SP_IS_SYMBOL(&trg) && src != &trg ) { + std::string id2 = trg.getRepr()->attribute("id"); if( !id.compare( id2 ) ) { duplicate = true; diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 5d8b0e076..bedf2fa7f 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -986,13 +986,12 @@ void CairoRenderContext::popState(void) static bool pattern_hasItemChildren(SPPattern *pat) { - bool hasItems = false; - for ( SPObject *child = pat->firstChild() ; child && !hasItems; child = child->getNext() ) { - if (SP_IS_ITEM (child)) { - hasItems = true; + for (auto& child: pat->_children) { + if (SP_IS_ITEM (&child)) { + return true; } } - return hasItems; + return false; } cairo_pattern_t* @@ -1087,10 +1086,10 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver // show items and render them for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i && SP_IS_OBJECT(pat_i) && pattern_hasItemChildren(pat_i)) { // find the first one with item children - for ( SPObject *child = pat_i->firstChild() ; child; child = child->getNext() ) { - if (SP_IS_ITEM(child)) { - SP_ITEM(child)->invoke_show(drawing, dkey, SP_ITEM_REFERENCE_FLAGS); - _renderer->renderItem(pattern_ctx, SP_ITEM(child)); + for (auto& child: pat_i->_children) { + if (SP_IS_ITEM(&child)) { + SP_ITEM(&child)->invoke_show(drawing, dkey, SP_ITEM_REFERENCE_FLAGS); + _renderer->renderItem(pattern_ctx, SP_ITEM(&child)); } } break; // do not go further up the chain if children are found @@ -1116,9 +1115,9 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver // hide all items for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i && SP_IS_OBJECT(pat_i) && pattern_hasItemChildren(pat_i)) { // find the first one with item children - for ( SPObject *child = pat_i->firstChild() ; child; child = child->getNext() ) { - if (SP_IS_ITEM(child)) { - SP_ITEM(child)->invoke_hide(dkey); + for (auto& child: pat_i->_children) { + if (SP_IS_ITEM(&child)) { + SP_ITEM(&child)->invoke_hide(dkey); } } break; // do not go further up the chain if children are found diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 5dc20ab06..088eaf11d 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -741,8 +741,8 @@ CairoRenderer::applyClipPath(CairoRenderContext *ctx, SPClipPath const *cp) TRACE(("BEGIN clip\n")); SPObject const *co = cp; - for ( SPObject const *child = co->firstChild() ; child; child = child->getNext() ) { - SPItem const *item = dynamic_cast(child); + for (auto& child: co->_children) { + SPItem const *item = dynamic_cast(&child); if (item) { // combine transform of the item in clippath and the item using clippath: @@ -800,8 +800,8 @@ CairoRenderer::applyMask(CairoRenderContext *ctx, SPMask const *mask) TRACE(("BEGIN mask\n")); SPObject const *co = mask; - for ( SPObject const *child = co->firstChild() ; child; child = child->getNext() ) { - SPItem const *item = dynamic_cast(child); + for (auto& child: co->_children) { + SPItem const *item = dynamic_cast(&child); if (item) { // TODO fix const correctness: renderItem(ctx, const_cast(item)); diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp index 9f3b5475f..c0c086c7a 100644 --- a/src/extension/internal/emf-print.cpp +++ b/src/extension/internal/emf-print.cpp @@ -1042,8 +1042,12 @@ void PrintEmf::do_clip_if_present(SPStyle const *style){ /* find the clipping path */ Geom::PathVector combined_pathvector; Geom::Affine tfc; // clipping transform, generally not the same as item transform - for(item = SP_ITEM(scp->firstChild()); item; item=SP_ITEM(item->getNext())){ - if (SP_IS_GROUP(item)) { // not implemented + for (auto& child: scp->_children) { + item = SP_ITEM(&child); + if (!item) { + break; + } + if (SP_IS_GROUP(item)) { // not implemented // return sp_group_render(item); combined_pathvector = merge_PathVector_with_group(combined_pathvector, item, tfc); } else if (SP_IS_SHAPE(item)) { @@ -1081,7 +1085,11 @@ Geom::PathVector PrintEmf::merge_PathVector_with_group(Geom::PathVector const &c new_combined_pathvector = combined_pathvector; SPGroup *group = SP_GROUP(item); Geom::Affine tfc = item->transform * transform; - for(SPItem *item = SP_ITEM(group->firstChild()); item; item=SP_ITEM(item->getNext())){ + for (auto& child: group->_children) { + item = SP_ITEM(&child); + if (!item) { + break; + } if (SP_IS_GROUP(item)) { new_combined_pathvector = merge_PathVector_with_group(new_combined_pathvector, item, tfc); // could be endlessly recursive on a badly formed SVG } else if (SP_IS_SHAPE(item)) { diff --git a/src/extension/internal/javafx-out.cpp b/src/extension/internal/javafx-out.cpp index 386bde1d6..51608e4fa 100644 --- a/src/extension/internal/javafx-out.cpp +++ b/src/extension/internal/javafx-out.cpp @@ -732,9 +732,9 @@ bool JavaFXOutput::doTreeRecursive(SPDocument *doc, SPObject *obj) /** * Descend into children */ - for (SPObject *child = obj->firstChild() ; child ; child = child->next) + for (auto &child: obj->_children) { - if (!doTreeRecursive(doc, child)) { + if (!doTreeRecursive(doc, &child)) { return false; } } @@ -804,9 +804,9 @@ bool JavaFXOutput::doBody(SPDocument *doc, SPObject *obj) /** * Descend into children */ - for (SPObject *child = obj->firstChild() ; child ; child = child->next) + for (auto &child: obj->_children) { - if (!doBody(doc, child)) { + if (!doBody(doc, &child)) { return false; } } diff --git a/src/extension/internal/pov-out.cpp b/src/extension/internal/pov-out.cpp index bd2168b68..08f533010 100644 --- a/src/extension/internal/pov-out.cpp +++ b/src/extension/internal/pov-out.cpp @@ -479,9 +479,9 @@ bool PovOutput::doTreeRecursive(SPDocument *doc, SPObject *obj) /** * Descend into children */ - for (SPObject *child = obj->firstChild() ; child ; child = child->next) + for (auto &child: obj->_children) { - if (!doTreeRecursive(doc, child)) + if (!doTreeRecursive(doc, &child)) return false; } diff --git a/src/file.cpp b/src/file.cpp index 650ce5d0f..11e5f0a42 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1204,8 +1204,8 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri, // Count the number of top-level items in the imported document. guint items_count = 0; - for ( SPObject *child = doc->getRoot()->firstChild(); child; child = child->getNext()) { - if (SP_IS_ITEM(child)) { + for (auto& child: doc->getRoot()->_children) { + if (SP_IS_ITEM(&child)) { items_count++; } } @@ -1234,9 +1234,9 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri, // Construct a new object representing the imported image, // and insert it into the current document. SPObject *new_obj = NULL; - for ( SPObject *child = doc->getRoot()->firstChild(); child; child = child->getNext() ) { - if (SP_IS_ITEM(child)) { - Inkscape::XML::Node *newitem = child->getRepr()->duplicate(xml_in_doc); + for (auto& child: doc->getRoot()->_children) { + if (SP_IS_ITEM(&child)) { + Inkscape::XML::Node *newitem = child.getRepr()->duplicate(xml_in_doc); // convert layers to groups, and make sure they are unlocked // FIXME: add "preserve layers" mode where each layer from @@ -1249,10 +1249,10 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri, } // don't lose top-level defs or style elements - else if (child->getRepr()->type() == Inkscape::XML::ELEMENT_NODE) { - const gchar *tag = child->getRepr()->name(); + else if (child.getRepr()->type() == Inkscape::XML::ELEMENT_NODE) { + const gchar *tag = child.getRepr()->name(); if (!strcmp(tag, "svg:style")) { - in_doc->getRoot()->appendChildRepr(child->getRepr()->duplicate(xml_in_doc)); + in_doc->getRoot()->appendChildRepr(child.getRepr()->duplicate(xml_in_doc)); } } } diff --git a/src/filter-chemistry.cpp b/src/filter-chemistry.cpp index 9298a1ffc..2e99842ec 100644 --- a/src/filter-chemistry.cpp +++ b/src/filter-chemistry.cpp @@ -51,8 +51,8 @@ static guint count_filter_hrefs(SPObject *o, SPFilter *filter) i ++; } - for ( SPObject *child = o->firstChild(); child; child = child->getNext() ) { - i += count_filter_hrefs(child, filter); + for (auto& child: o->_children) { + i += count_filter_hrefs(&child, filter); } return i; @@ -491,16 +491,14 @@ void remove_filter_gaussian_blur (SPObject *item) bool filter_is_single_gaussian_blur(SPFilter *filter) { - return (filter->firstChild() && - (filter->firstChild() == filter->lastChild()) && - SP_IS_GAUSSIANBLUR(filter->firstChild())); + return (filter->_children.size() == 1 && + SP_IS_GAUSSIANBLUR(&filter->_children.front())); } double get_single_gaussian_blur_radius(SPFilter *filter) { - if (filter->firstChild() && - (filter->firstChild() == filter->lastChild()) && - SP_IS_GAUSSIANBLUR(filter->firstChild())) { + if (filter->_children.size() == 1 && + SP_IS_GAUSSIANBLUR(&filter->_children.front())) { SPGaussianBlur *gb = SP_GAUSSIANBLUR(filter->firstChild()); double x = gb->stdDeviation.getNumber(); diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index 59d715149..9c46a2efb 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -199,8 +199,8 @@ static guint count_gradient_hrefs(SPObject *o, SPGradient *gr) i ++; } - for ( SPObject *child = o->firstChild(); child; child = child->getNext() ) { - i += count_gradient_hrefs(child, gr); + for (auto& child: o->_children) { + i += count_gradient_hrefs(&child, gr); } return i; @@ -926,11 +926,11 @@ void sp_item_gradient_reverse_vector(SPItem *item, Inkscape::PaintTarget fill_or GSList *child_objects = NULL; std::vector offsets; double offset; - for ( SPObject *child = vector->firstChild(); child; child = child->getNext()) { - child_reprs = g_slist_prepend (child_reprs, child->getRepr()); - child_objects = g_slist_prepend (child_objects, child); + for (auto& child: vector->_children) { + child_reprs = g_slist_prepend (child_reprs, child.getRepr()); + child_objects = g_slist_prepend (child_objects, &child); offset=0; - sp_repr_get_double(child->getRepr(), "offset", &offset); + sp_repr_get_double(child.getRepr(), "offset", &offset); offsets.push_back(offset); } @@ -979,9 +979,9 @@ void sp_item_gradient_invert_vector_color(SPItem *item, Inkscape::PaintTarget fi sp_gradient_repr_set_link(gradient->getRepr(), vector); } - for ( SPObject *child = vector->firstChild(); child; child = child->getNext()) { - if (SP_IS_STOP(child)) { - guint32 color = SP_STOP(child)->get_rgba32(); + for (auto& child: vector->_children) { + if (SP_IS_STOP(&child)) { + guint32 color = SP_STOP(&child)->get_rgba32(); //g_message("Stop color %d", color); gchar c[64]; sp_svg_write_color (c, sizeof(c), @@ -994,7 +994,7 @@ void sp_item_gradient_invert_vector_color(SPItem *item, Inkscape::PaintTarget fi ); SPCSSAttr *css = sp_repr_css_attr_new (); sp_repr_css_set_property (css, "stop-color", c); - sp_repr_css_change(child->getRepr(), css, "style"); + sp_repr_css_change(child.getRepr(), css, "style"); sp_repr_css_attr_unref (css); } } diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 555bde786..b9d1fe109 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -2539,9 +2539,9 @@ void GrDrag::deleteSelected(bool just_one) // cannot use vector->vector.stops.size() because the vector might be invalidated by deletion of a midstop // manually count the children, don't know if there already exists a function for this... int len = 0; - for ( SPObject *child = (stopinfo->vector)->firstChild() ; child ; child = child->getNext() ) + for (auto& child: stopinfo->vector->_children) { - if ( SP_IS_STOP(child) ) { + if ( SP_IS_STOP(&child) ) { len ++; } } diff --git a/src/helper/pixbuf-ops.cpp b/src/helper/pixbuf-ops.cpp index 9639096fb..fb1740fc5 100644 --- a/src/helper/pixbuf-ops.cpp +++ b/src/helper/pixbuf-ops.cpp @@ -53,8 +53,8 @@ static void hide_other_items_recursively(SPObject *o, GSList *list, unsigned dke // recurse if (!g_slist_find(list, o)) { - for ( SPObject *child = o->firstChild() ; child; child = child->getNext() ) { - hide_other_items_recursively(child, list, dkey); + for (auto& child: o->_children) { + hide_other_items_recursively(&child, list, dkey); } } } diff --git a/src/helper/png-write.cpp b/src/helper/png-write.cpp index 9430feeff..c59db9df6 100644 --- a/src/helper/png-write.cpp +++ b/src/helper/png-write.cpp @@ -374,8 +374,8 @@ static void hide_other_items_recursively(SPObject *o, const std::vector // recurse if (list.end()==find(list.begin(),list.end(),o)) { - for ( SPObject *child = o->firstChild() ; child; child = child->getNext() ) { - hide_other_items_recursively(child, list, dkey); + for (auto& child: o->_children) { + hide_other_items_recursively(&child, list, dkey); } } } diff --git a/src/helper/stock-items.cpp b/src/helper/stock-items.cpp index 5a56b89ff..cf10a6c4d 100644 --- a/src/helper/stock-items.cpp +++ b/src/helper/stock-items.cpp @@ -204,37 +204,37 @@ SPObject *get_stock_item(gchar const *urn, gboolean stock) } SPObject *object = NULL; if (!strcmp(base, "marker") && !stock) { - for ( SPObject *child = defs->firstChild(); child; child = child->getNext() ) + for (auto& child: defs->_children) { - if (child->getRepr()->attribute("inkscape:stockid") && - !strcmp(name_p, child->getRepr()->attribute("inkscape:stockid")) && - SP_IS_MARKER(child)) + if (child.getRepr()->attribute("inkscape:stockid") && + !strcmp(name_p, child.getRepr()->attribute("inkscape:stockid")) && + SP_IS_MARKER(&child)) { - object = child; + object = &child; } } } else if (!strcmp(base,"pattern") && !stock) { - for ( SPObject *child = defs->firstChild() ; child; child = child->getNext() ) + for (auto& child: defs->_children) { - if (child->getRepr()->attribute("inkscape:stockid") && - !strcmp(name_p, child->getRepr()->attribute("inkscape:stockid")) && - SP_IS_PATTERN(child)) + if (child.getRepr()->attribute("inkscape:stockid") && + !strcmp(name_p, child.getRepr()->attribute("inkscape:stockid")) && + SP_IS_PATTERN(&child)) { - object = child; + object = &child; } } } else if (!strcmp(base,"gradient") && !stock) { - for ( SPObject *child = defs->firstChild(); child; child = child->getNext() ) + for (auto& child: defs->_children) { - if (child->getRepr()->attribute("inkscape:stockid") && - !strcmp(name_p, child->getRepr()->attribute("inkscape:stockid")) && - SP_IS_GRADIENT(child)) + if (child.getRepr()->attribute("inkscape:stockid") && + !strcmp(name_p, child.getRepr()->attribute("inkscape:stockid")) && + SP_IS_GRADIENT(&child)) { - object = child; + object = &child; } } diff --git a/src/id-clash.cpp b/src/id-clash.cpp index 4bd66e858..fecad9eee 100644 --- a/src/id-clash.cpp +++ b/src/id-clash.cpp @@ -187,9 +187,9 @@ find_references(SPObject *elem, refmap_type &refmap) } // recurse - for (SPObject *child = elem->firstChild(); child; child = child->getNext() ) + for (auto& child: elem->_children) { - find_references(child, refmap); + find_references(&child, refmap); } } @@ -242,9 +242,9 @@ change_clashing_ids(SPDocument *imported_doc, SPDocument *current_doc, // recurse - for (SPObject *child = elem->firstChild(); child; child = child->getNext() ) + for (auto& child: elem->_children) { - change_clashing_ids(imported_doc, current_doc, child, refmap, id_changes); + change_clashing_ids(imported_doc, current_doc, &child, refmap, id_changes); } } diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp index 568a7c8cc..937d67895 100644 --- a/src/libnrtype/font-lister.cpp +++ b/src/libnrtype/font-lister.cpp @@ -298,8 +298,8 @@ void FontLister::update_font_list_recursive(SPObject *r, std::listpush_back(Glib::ustring(font_family)); } - for (SPObject *child = r->firstChild(); child; child = child->getNext()) { - update_font_list_recursive(child, l); + for (auto& child: r->_children) { + update_font_list_recursive(&child, l); } } diff --git a/src/live_effects/lpe-perspective_path.cpp b/src/live_effects/lpe-perspective_path.cpp index c8cdd7912..c62ead2b3 100644 --- a/src/live_effects/lpe-perspective_path.cpp +++ b/src/live_effects/lpe-perspective_path.cpp @@ -107,12 +107,12 @@ void LPEPerspectivePath::refresh(Gtk::Entry* perspective) { perspectiveID = perspective->get_text(); Persp3D *first = 0; Persp3D *persp = 0; - for ( SPObject *child = this->lpeobj->document->getDefs()->firstChild(); child && !persp; child = child->getNext() ) { - if (SP_IS_PERSP3D(child) && first == 0) { - first = SP_PERSP3D(child); + for (auto& child: lpeobj->document->getDefs()->_children) { + if (SP_IS_PERSP3D(&child) && first == 0) { + first = SP_PERSP3D(&child); } - if (SP_IS_PERSP3D(child) && strcmp(child->getId(), const_cast(perspectiveID.c_str())) == 0) { - persp = SP_PERSP3D(child); + if (SP_IS_PERSP3D(&child) && strcmp(child.getId(), const_cast(perspectiveID.c_str())) == 0) { + persp = SP_PERSP3D(&child); break; } } diff --git a/src/main.cpp b/src/main.cpp index 8cf52127b..db908f640 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1228,8 +1228,8 @@ static int sp_process_file_list(GSList *fl) std::vector items; SPRoot *root = doc->getRoot(); doc->ensureUpToDate(); - for ( SPObject *iter = root->firstChild(); iter ; iter = iter->getNext()) { - SPItem* item = (SPItem*) iter; + for (auto& iter: root->_children) { + SPItem* item = (SPItem*) &iter; if (! (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item) || SP_IS_GROUP(item))) { continue; } diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp index 3e559ee7a..580fb5fc7 100644 --- a/src/object-snapper.cpp +++ b/src/object-snapper.cpp @@ -90,9 +90,9 @@ void Inkscape::ObjectSnapper::_findCandidates(SPObject* parent, Geom::Rect bbox_to_snap_incl = bbox_to_snap; // _incl means: will include the snapper tolerance bbox_to_snap_incl.expandBy(getSnapperTolerance()); // see? - for ( SPObject *o = parent->firstChild(); o; o = o->getNext() ) { + for (auto& o: parent->_children) { g_assert(dt != NULL); - SPItem *item = dynamic_cast(o); + SPItem *item = dynamic_cast(&o); if (item && !(dt->itemIsHidden(item) && !clip_or_mask)) { // Snapping to items in a locked layer is allowed // Don't snap to hidden objects, unless they're a clipped path or a mask @@ -100,7 +100,7 @@ void Inkscape::ObjectSnapper::_findCandidates(SPObject* parent, std::vector::const_iterator i; if (it != NULL) { i = it->begin(); - while (i != it->end() && *i != o) { + while (i != it->end() && *i != &o) { ++i; } } @@ -122,7 +122,7 @@ void Inkscape::ObjectSnapper::_findCandidates(SPObject* parent, } if (dynamic_cast(item)) { - _findCandidates(o, it, false, bbox_to_snap, clip_or_mask, additional_affine); + _findCandidates(&o, it, false, bbox_to_snap, clip_or_mask, additional_affine); } else { Geom::OptRect bbox_of_item; Preferences *prefs = Preferences::get(); diff --git a/src/object-test.h b/src/object-test.h index 4f0be3251..0af823684 100644 --- a/src/object-test.h +++ b/src/object-test.h @@ -115,7 +115,6 @@ public: prev = next; next = next->getNext(); } - TS_ASSERT(child->lastChild() == next); // Test hrefcount TS_ASSERT(path->isReferenced()); diff --git a/src/persp3d.cpp b/src/persp3d.cpp index a48481145..849e332bf 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -215,9 +215,10 @@ Persp3D *persp3d_create_xml_element(SPDocument *document, Persp3DImpl *dup) {// Persp3D *persp3d_document_first_persp(SPDocument *document) { Persp3D *first = 0; - for ( SPObject *child = document->getDefs()->firstChild(); child && !first; child = child->getNext() ) { - if (SP_IS_PERSP3D(child)) { - first = SP_PERSP3D(child); + for (auto& child: document->getDefs()->_children) { + if (SP_IS_PERSP3D(&child)) { + first = SP_PERSP3D(&child); + break; } } return first; @@ -533,9 +534,9 @@ persp3d_print_debugging_info (Persp3D *persp) { void persp3d_print_debugging_info_all(SPDocument *document) { - for ( SPObject *child = document->getDefs()->firstChild(); child; child = child->getNext() ) { - if (SP_IS_PERSP3D(child)) { - persp3d_print_debugging_info(SP_PERSP3D(child)); + for (auto& child: document->getDefs()->_children) { + if (SP_IS_PERSP3D(&child)) { + persp3d_print_debugging_info(SP_PERSP3D(&child)); } } persp3d_print_all_selected(); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 1f34f798d..55f4118b0 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -88,6 +88,7 @@ SPCycleType SP_CYCLING = SP_CYCLE_FOCUS; #include #include #include +#include #include "sp-item.h" #include "box3d.h" #include "persp3d.h" @@ -432,8 +433,8 @@ static void add_ids_recursive(std::vector &ids, SPObject *obj) ids.push_back(obj->getId()); if (dynamic_cast(obj)) { - for (SPObject *child = obj->firstChild() ; child; child = child->getNext() ) { - add_ids_recursive(ids, child); + for (auto& child: obj->_children) { + add_ids_recursive(ids, &child); } } } @@ -586,20 +587,20 @@ void sp_edit_clear_all(Inkscape::Selection *selection) */ std::vector &get_all_items(std::vector &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, std::vector const &exclude) { - for ( SPObject *child = from->firstChild() ; child; child = child->getNext() ) { - SPItem *item = dynamic_cast(child); + for (auto& child: from->_children) { + SPItem *item = dynamic_cast(&child); if (item && !desktop->isLayer(item) && (!onlysensitive || !item->isLocked()) && (!onlyvisible || !desktop->itemIsHidden(item)) && - (exclude.empty() || exclude.end() == std::find(exclude.begin(),exclude.end(),child)) + (exclude.empty() || exclude.end() == std::find(exclude.begin(), exclude.end(), &child)) ) { list.insert(list.begin(),item); } if (ingroups || (item && desktop->isLayer(item))) { - list = get_all_items(list, child, desktop, onlyvisible, onlysensitive, ingroups, exclude); + list = get_all_items(list, &child, desktop, onlyvisible, onlysensitive, ingroups, exclude); } } @@ -1200,9 +1201,10 @@ take_style_from_item(SPObject *object) (dynamic_cast(object) && object->children && object->children->next == NULL)) { // if this is a text with exactly one tspan child, merge the style of that tspan as well // If this is a group, merge the style of its topmost (last) child with style - for (SPObject *last_element = object->lastChild(); last_element != NULL; last_element = last_element->getPrev()) { - if ( last_element->style ) { - SPCSSAttr *temp = sp_css_attr_from_object(last_element, SP_STYLE_FLAG_IFSET); + auto list = object->_children | boost::adaptors::reversed; + for (auto& element: list) { + if (element.style ) { + SPCSSAttr *temp = sp_css_attr_from_object(&element, SP_STYLE_FLAG_IFSET); if (temp) { sp_repr_css_merge(css, temp); sp_repr_css_attr_unref(temp); @@ -1621,10 +1623,10 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons } else if (transform_flowtext_with_frame) { // apply the inverse of the region's transform to the so that the flow remains // the same (even though the output itself gets transformed) - for ( SPObject *region = item->firstChild() ; region ; region = region->getNext() ) { - if (dynamic_cast(region) || dynamic_cast(region)) { - for ( SPObject *item = region->firstChild() ; item ; item = item->getNext() ) { - SPUse *use = dynamic_cast(item); + for (auto& region: item->_children) { + if (dynamic_cast(®ion) || dynamic_cast(®ion)) { + for (auto& itm: region._children) { + SPUse *use = dynamic_cast(&itm); if ( use ) { use->doWriteTransform(use->getRepr(), use->transform.inverse(), NULL, compensate); } @@ -2702,8 +2704,9 @@ sp_selection_unlink(SPDesktop *desktop) // Get a copy of current selection. std::vector new_select; bool unlinked = false; - auto items= selection->items(); - for (auto i=boost::rbegin(items);i!=boost::rend(items);++i){ + std::vector items(selection->items().begin(), selection->items().end()); + + for (auto i=items.rbegin();i!=items.rend();++i){ SPItem *item = *i; if (dynamic_cast(item)) { @@ -3432,9 +3435,9 @@ void sp_selection_untile(SPDesktop *desktop) Geom::Affine pat_transform = basePat->getTransform(); pat_transform *= item->transform; - for (SPObject *child = pattern->firstChild() ; child != NULL; child = child->next ) { - if (dynamic_cast(child)) { - Inkscape::XML::Node *copy = child->getRepr()->duplicate(xml_doc); + for (auto& child: pattern->_children) { + if (dynamic_cast(&child)) { + Inkscape::XML::Node *copy = child.getRepr()->duplicate(xml_doc); SPItem *i = dynamic_cast(desktop->currentLayer()->appendChildRepr(copy)); // FIXME: relink clones to the new canvas objects @@ -4100,9 +4103,9 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for ( std::map::iterator it = referenced_objects.begin() ; it != referenced_objects.end() ; ++it) { SPObject *obj = (*it).first; // Group containing the clipped paths or masks GSList *items_to_move = NULL; - for ( SPObject *child = obj->firstChild() ; child; child = child->getNext() ) { + for (auto& child: obj->_children) { // Collect all clipped paths and masks within a single group - Inkscape::XML::Node *copy = child->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *copy = child.getRepr()->duplicate(xml_doc); if(copy->attribute("inkscape:original-d") && copy->attribute("inkscape:path-effect")) { copy->setAttribute("d", copy->attribute("inkscape:original-d")); diff --git a/src/sp-clippath.cpp b/src/sp-clippath.cpp index 0c07d1b3d..25bf77f00 100644 --- a/src/sp-clippath.cpp +++ b/src/sp-clippath.cpp @@ -128,9 +128,9 @@ void SPClipPath::update(SPCtx* ctx, unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for ( SPObject *child = this->firstChild(); child; child = child->getNext()) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -167,9 +167,9 @@ void SPClipPath::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for (SPObject *child = this->firstChild(); child; child = child->getNext()) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -200,9 +200,9 @@ Inkscape::DrawingItem *SPClipPath::show(Inkscape::Drawing &drawing, unsigned int Inkscape::DrawingGroup *ai = new Inkscape::DrawingGroup(drawing); display = sp_clippath_view_new_prepend(display, key, ai); - for ( SPObject *child = firstChild() ; child ; child = child->getNext() ) { - if (SP_IS_ITEM(child)) { - Inkscape::DrawingItem *ac = SP_ITEM(child)->invoke_show(drawing, key, SP_ITEM_REFERENCE_FLAGS); + for (auto& child: _children) { + if (SP_IS_ITEM(&child)) { + Inkscape::DrawingItem *ac = SP_ITEM(&child)->invoke_show(drawing, key, SP_ITEM_REFERENCE_FLAGS); if (ac) { /* The order is not important in clippath */ @@ -223,9 +223,9 @@ Inkscape::DrawingItem *SPClipPath::show(Inkscape::Drawing &drawing, unsigned int } void SPClipPath::hide(unsigned int key) { - for ( SPObject *child = firstChild() ; child; child = child->getNext() ) { - if (SP_IS_ITEM(child)) { - SP_ITEM(child)->invoke_hide(key); + for (auto& child: _children) { + if (SP_IS_ITEM(&child)) { + SP_ITEM(&child)->invoke_hide(key); } } @@ -252,9 +252,9 @@ void SPClipPath::setBBox(unsigned int key, Geom::OptRect const &bbox) { Geom::OptRect SPClipPath::geometricBounds(Geom::Affine const &transform) { Geom::OptRect bbox; - for (SPObject *i = firstChild(); i; i = i->getNext()) { - if (SP_IS_ITEM(i)) { - Geom::OptRect tmp = SP_ITEM(i)->geometricBounds(Geom::Affine(SP_ITEM(i)->transform) * transform); + for (auto& i: _children) { + if (SP_IS_ITEM(&i)) { + Geom::OptRect tmp = SP_ITEM(&i)->geometricBounds(Geom::Affine(SP_ITEM(&i)->transform) * transform); bbox.unionWith(tmp); } } diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index dd779c0da..af4ea96d7 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -54,9 +54,9 @@ void SPDefs::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -79,8 +79,8 @@ Inkscape::XML::Node* SPDefs::write(Inkscape::XML::Document *xml_doc, Inkscape::X } GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags); + for (auto& child: _children) { + Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend(l, crepr); } @@ -93,8 +93,8 @@ Inkscape::XML::Node* SPDefs::write(Inkscape::XML::Document *xml_doc, Inkscape::X } } else { - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - child->updateRepr(flags); + for (auto& child: _children) { + child.updateRepr(flags); } } diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index c17c67fc5..da3f12f5f 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -268,8 +268,8 @@ Inkscape::XML::Node* SPFilter::write(Inkscape::XML::Document *doc, Inkscape::XML } GSList *l = NULL; - for ( SPObject *child = this->firstChild(); child; child = child->getNext() ) { - Inkscape::XML::Node *crepr = child->updateRepr(doc, NULL, flags); + for (auto& child: _children) { + Inkscape::XML::Node *crepr = child.updateRepr(doc, NULL, flags); if (crepr) { l = g_slist_prepend (l, crepr); @@ -282,8 +282,8 @@ Inkscape::XML::Node* SPFilter::write(Inkscape::XML::Document *doc, Inkscape::XML l = g_slist_remove (l, l->data); } } else { - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - child->updateRepr(flags); + for (auto& child: _children) { + child.updateRepr(flags); } } diff --git a/src/sp-flowdiv.cpp b/src/sp-flowdiv.cpp index 8d9c51ab8..ad04f0d78 100644 --- a/src/sp-flowdiv.cpp +++ b/src/sp-flowdiv.cpp @@ -27,9 +27,9 @@ void SPFlowdiv::update(SPCtx *ctx, unsigned int flags) { childflags &= SP_OBJECT_MODIFIED_CASCADE; GSList* l = NULL; - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -65,9 +65,9 @@ void SPFlowdiv::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse (l); @@ -104,15 +104,15 @@ Inkscape::XML::Node* SPFlowdiv::write(Inkscape::XML::Document *xml_doc, Inkscape GSList *l = NULL; - for (SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: _children) { Inkscape::XML::Node* c_repr = NULL; - if ( SP_IS_FLOWTSPAN (child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_FLOWPARA(child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_STRING(child) ) { - c_repr = xml_doc->createTextNode(SP_STRING(child)->string.c_str()); + if ( SP_IS_FLOWTSPAN (&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_FLOWPARA(&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_STRING(&child) ) { + c_repr = xml_doc->createTextNode(SP_STRING(&child)->string.c_str()); } if ( c_repr ) { @@ -126,13 +126,13 @@ Inkscape::XML::Node* SPFlowdiv::write(Inkscape::XML::Document *xml_doc, Inkscape l = g_slist_remove(l, l->data); } } else { - for ( SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { - if ( SP_IS_FLOWTSPAN (child) ) { - child->updateRepr(flags); - } else if ( SP_IS_FLOWPARA(child) ) { - child->updateRepr(flags); - } else if ( SP_IS_STRING(child) ) { - child->getRepr()->setContent(SP_STRING(child)->string.c_str()); + for (auto& child: _children) { + if ( SP_IS_FLOWTSPAN (&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_FLOWPARA(&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_STRING(&child) ) { + child.getRepr()->setContent(SP_STRING(&child)->string.c_str()); } } } @@ -168,9 +168,9 @@ void SPFlowtspan::update(SPCtx *ctx, unsigned int flags) { childflags &= SP_OBJECT_MODIFIED_CASCADE; GSList* l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse (l); @@ -206,9 +206,9 @@ void SPFlowtspan::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse (l); @@ -242,15 +242,15 @@ Inkscape::XML::Node *SPFlowtspan::write(Inkscape::XML::Document *xml_doc, Inksca GSList *l = NULL; - for ( SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: _children) { Inkscape::XML::Node* c_repr = NULL; - if ( SP_IS_FLOWTSPAN(child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_FLOWPARA(child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_STRING(child) ) { - c_repr = xml_doc->createTextNode(SP_STRING(child)->string.c_str()); + if ( SP_IS_FLOWTSPAN(&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_FLOWPARA(&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_STRING(&child) ) { + c_repr = xml_doc->createTextNode(SP_STRING(&child)->string.c_str()); } if ( c_repr ) { @@ -264,13 +264,13 @@ Inkscape::XML::Node *SPFlowtspan::write(Inkscape::XML::Document *xml_doc, Inksca l = g_slist_remove(l, l->data); } } else { - for ( SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { - if ( SP_IS_FLOWTSPAN(child) ) { - child->updateRepr(flags); - } else if ( SP_IS_FLOWPARA(child) ) { - child->updateRepr(flags); - } else if ( SP_IS_STRING(child) ) { - child->getRepr()->setContent(SP_STRING(child)->string.c_str()); + for (auto& child: _children) { + if ( SP_IS_FLOWTSPAN(&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_FLOWPARA(&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_STRING(&child) ) { + child.getRepr()->setContent(SP_STRING(&child)->string.c_str()); } } } @@ -307,9 +307,9 @@ void SPFlowpara::update(SPCtx *ctx, unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList* l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse (l); @@ -343,9 +343,9 @@ void SPFlowpara::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse (l); @@ -379,15 +379,15 @@ Inkscape::XML::Node *SPFlowpara::write(Inkscape::XML::Document *xml_doc, Inkscap GSList *l = NULL; - for ( SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: _children) { Inkscape::XML::Node* c_repr = NULL; - if ( SP_IS_FLOWTSPAN(child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_FLOWPARA(child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_STRING(child) ) { - c_repr = xml_doc->createTextNode(SP_STRING(child)->string.c_str()); + if ( SP_IS_FLOWTSPAN(&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_FLOWPARA(&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_STRING(&child) ) { + c_repr = xml_doc->createTextNode(SP_STRING(&child)->string.c_str()); } if ( c_repr ) { @@ -401,13 +401,13 @@ Inkscape::XML::Node *SPFlowpara::write(Inkscape::XML::Document *xml_doc, Inkscap l = g_slist_remove(l, l->data); } } else { - for ( SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { - if ( SP_IS_FLOWTSPAN(child) ) { - child->updateRepr(flags); - } else if ( SP_IS_FLOWPARA(child) ) { - child->updateRepr(flags); - } else if ( SP_IS_STRING(child) ) { - child->getRepr()->setContent(SP_STRING(child)->string.c_str()); + for (auto& child: _children) { + if ( SP_IS_FLOWTSPAN(&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_FLOWPARA(&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_STRING(&child) ) { + child.getRepr()->setContent(SP_STRING(&child)->string.c_str()); } } } diff --git a/src/sp-flowregion.cpp b/src/sp-flowregion.cpp index 5715e5eb1..71e029072 100644 --- a/src/sp-flowregion.cpp +++ b/src/sp-flowregion.cpp @@ -63,9 +63,9 @@ void SPFlowregion::update(SPCtx *ctx, unsigned int flags) { GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -102,9 +102,9 @@ void SPFlowregion::UpdateComputed(void) } computed.clear(); - for (SPObject* child = firstChild() ; child ; child = child->getNext() ) { + for (auto& child: _children) { Shape *shape = 0; - GetDest(child, &shape); + GetDest(&child, &shape); computed.push_back(shape); } } @@ -118,9 +118,9 @@ void SPFlowregion::modified(guint flags) { GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -145,9 +145,9 @@ Inkscape::XML::Node *SPFlowregion::write(Inkscape::XML::Document *xml_doc, Inksc } GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - if ( !dynamic_cast(child) && !dynamic_cast(child) ) { - Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags); + for (auto& child: _children) { + if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { + Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend(l, crepr); @@ -161,10 +161,9 @@ Inkscape::XML::Node *SPFlowregion::write(Inkscape::XML::Document *xml_doc, Inksc l = g_slist_remove(l, l->data); } - } else { - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - if ( !dynamic_cast(child) && !dynamic_cast(child) ) { - child->updateRepr(flags); + for (auto& child: _children) { + if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { + child.updateRepr(flags); } } } @@ -221,9 +220,9 @@ void SPFlowregionExclude::update(SPCtx *ctx, unsigned int flags) { GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse (l); @@ -259,8 +258,8 @@ void SPFlowregionExclude::UpdateComputed(void) computed = NULL; } - for ( SPObject* child = firstChild() ; child ; child = child->getNext() ) { - GetDest(child, &computed); + for (auto& child: _children) { + GetDest(&child, &computed); } } @@ -273,9 +272,9 @@ void SPFlowregionExclude::modified(guint flags) { GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse (l); @@ -301,8 +300,8 @@ Inkscape::XML::Node *SPFlowregionExclude::write(Inkscape::XML::Document *xml_doc GSList *l = NULL; - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags); + for (auto& child: _children) { + Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend(l, crepr); @@ -316,8 +315,8 @@ Inkscape::XML::Node *SPFlowregionExclude::write(Inkscape::XML::Document *xml_doc } } else { - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - child->updateRepr(flags); + for (auto& child: _children) { + child.updateRepr(flags); } } diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp index 51fb3ae89..eed882800 100644 --- a/src/sp-flowtext.cpp +++ b/src/sp-flowtext.cpp @@ -72,9 +72,9 @@ void SPFlowtext::update(SPCtx* ctx, unsigned int flags) { GSList *l = NULL; - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -135,9 +135,9 @@ void SPFlowtext::modified(unsigned int flags) { } } - for ( SPObject *o = this->firstChild() ; o ; o = o->getNext() ) { - if (dynamic_cast(o)) { - region = o; + for (auto& o: _children) { + if (dynamic_cast(&o)) { + region = &o; break; } } @@ -223,11 +223,11 @@ Inkscape::XML::Node* SPFlowtext::write(Inkscape::XML::Document* doc, Inkscape::X GSList *l = NULL; - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: _children) { Inkscape::XML::Node *c_repr = NULL; - if ( dynamic_cast(child) || dynamic_cast(child) || dynamic_cast(child) || dynamic_cast(child)) { - c_repr = child->updateRepr(doc, NULL, flags); + if ( dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child)) { + c_repr = child.updateRepr(doc, NULL, flags); } if ( c_repr ) { @@ -241,9 +241,9 @@ Inkscape::XML::Node* SPFlowtext::write(Inkscape::XML::Document* doc, Inkscape::X l = g_slist_remove(l, l->data); } } else { - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - if ( dynamic_cast(child) || dynamic_cast(child) || dynamic_cast(child) || dynamic_cast(child)) { - child->updateRepr(flags); + for (auto& child: _children) { + if ( dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child)) { + child.updateRepr(flags); } } } @@ -390,8 +390,8 @@ void SPFlowtext::_buildLayoutInput(SPObject *root, Shape const *exclusion_shape, *pending_line_break_object = NULL; } - for (SPObject *child = root->firstChild() ; child ; child = child->getNext() ) { - SPString *str = dynamic_cast(child); + for (auto& child: root->_children) { + SPString *str = dynamic_cast(&child); if (str) { if (*pending_line_break_object) { if (dynamic_cast(*pending_line_break_object)) @@ -402,12 +402,12 @@ void SPFlowtext::_buildLayoutInput(SPObject *root, Shape const *exclusion_shape, *pending_line_break_object = NULL; } if (with_indent) { - layout.appendText(str->string, root->style, child, &pi); + layout.appendText(str->string, root->style, &child, &pi); } else { - layout.appendText(str->string, root->style, child); + layout.appendText(str->string, root->style, &child); } } else { - SPFlowregion *region = dynamic_cast(child); + SPFlowregion *region = dynamic_cast(&child); if (region) { std::vector const &computed = region->computed; for (std::vector::const_iterator it = computed.begin() ; it != computed.end() ; ++it) { @@ -421,8 +421,8 @@ void SPFlowtext::_buildLayoutInput(SPObject *root, Shape const *exclusion_shape, } } //Xml Tree is being directly used while it shouldn't be. - else if (!dynamic_cast(child) && !sp_repr_is_meta_element(child->getRepr())) { - _buildLayoutInput(child, exclusion_shape, shapes, pending_line_break_object); + else if (!dynamic_cast(&child) && !sp_repr_is_meta_element(child.getRepr())) { + _buildLayoutInput(&child, exclusion_shape, shapes, pending_line_break_object); } } } @@ -593,9 +593,9 @@ SPItem *SPFlowtext::get_frame(SPItem const *after) SPItem *frame = 0; SPObject *region = 0; - for (SPObject *o = firstChild() ; o ; o = o->getNext() ) { - if (dynamic_cast(o)) { - region = o; + for (auto& o: _children) { + if (dynamic_cast(&o)) { + region = &o; break; } } @@ -603,8 +603,8 @@ SPItem *SPFlowtext::get_frame(SPItem const *after) if (region) { bool past = false; - for (SPObject *o = region->firstChild() ; o ; o = o->getNext() ) { - SPItem *item = dynamic_cast(o); + for (auto& o: region->_children) { + SPItem *item = dynamic_cast(&o); if (item) { if ( (after == NULL) || past ) { frame = item; @@ -707,9 +707,9 @@ Geom::Affine SPFlowtext::set_transform (Geom::Affine const &xform) } SPObject *region = NULL; - for ( SPObject *o = this->firstChild() ; o ; o = o->getNext() ) { - if (dynamic_cast(o)) { - region = o; + for (auto& o: _children) { + if (dynamic_cast(&o)) { + region = &o; break; } } diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp index 854d53dc4..abfae1a1f 100644 --- a/src/sp-gradient.cpp +++ b/src/sp-gradient.cpp @@ -276,8 +276,8 @@ void SPGradient::build(SPDocument *document, Inkscape::XML::Node *repr) SPPaintServer::build(document, repr); - for ( SPObject *ochild = this->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (SP_IS_STOP(ochild)) { + for (auto& ochild: _children) { + if (SP_IS_STOP(&ochild)) { this->has_stops = TRUE; break; } @@ -481,8 +481,8 @@ void SPGradient::remove_child(Inkscape::XML::Node *child) SPPaintServer::remove_child(child); this->has_stops = FALSE; - for ( SPObject *ochild = this->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (SP_IS_STOP(ochild)) { + for (auto& ochild: _children) { + if (SP_IS_STOP(&ochild)) { this->has_stops = TRUE; break; } @@ -536,9 +536,9 @@ void SPGradient::modified(guint flags) // FIXME: climb up the ladder of hrefs GSList *l = NULL; - for (SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + for (auto& child: _children) { + sp_object_ref(&child); + l = g_slist_prepend(l, &child); } l = g_slist_reverse(l); @@ -557,10 +557,11 @@ void SPGradient::modified(guint flags) SPStop* SPGradient::getFirstStop() { - SPStop* first = 0; - for (SPObject *ochild = firstChild(); ochild && !first; ochild = ochild->getNext()) { - if (SP_IS_STOP(ochild)) { - first = SP_STOP(ochild); + SPStop* first = nullptr; + for (auto& ochild: _children) { + if (SP_IS_STOP(&ochild)) { + first = SP_STOP(&ochild); + break; } } return first; @@ -587,8 +588,8 @@ Inkscape::XML::Node *SPGradient::write(Inkscape::XML::Document *xml_doc, Inkscap if (flags & SP_OBJECT_WRITE_BUILD) { GSList *l = NULL; - for (SPObject *child = this->firstChild(); child; child = child->getNext()) { - Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags); + for (auto& child: _children) { + Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend(l, crepr); @@ -915,8 +916,8 @@ bool SPGradient::invalidateArray() void SPGradient::rebuildVector() { gint len = 0; - for ( SPObject *child = firstChild() ; child ; child = child->getNext() ) { - if (SP_IS_STOP(child)) { + for (auto& child: _children) { + if (SP_IS_STOP(&child)) { len ++; } } @@ -937,9 +938,9 @@ void SPGradient::rebuildVector() } } - for ( SPObject *child = firstChild(); child; child = child->getNext() ) { - if (SP_IS_STOP(child)) { - SPStop *stop = SP_STOP(child); + for (auto& child: _children) { + if (SP_IS_STOP(&child)) { + SPStop *stop = SP_STOP(&child); SPGradientStop gstop; if (!vector.stops.empty()) { @@ -1022,8 +1023,8 @@ void SPGradient::rebuildArray() array.read( SP_MESH( this ) ); has_patches = false; - for ( SPObject *ro = firstChild() ; ro ; ro = ro->getNext() ) { - if (SP_IS_MESHROW(ro)) { + for (auto& ro: _children) { + if (SP_IS_MESHROW(&ro)) { has_patches = true; // std::cout << " Has Patches" << std::endl; break; diff --git a/src/sp-hatch.cpp b/src/sp-hatch.cpp index 2d938618c..c06045e8f 100644 --- a/src/sp-hatch.cpp +++ b/src/sp-hatch.cpp @@ -233,14 +233,13 @@ void SPHatch::set(unsigned int key, const gchar* value) bool SPHatch::_hasHatchPatchChildren(SPHatch const *hatch) { - bool matched = false; - for (SPObject const *child = hatch->firstChild(); child && !matched; child = child->getNext() ) { - SPHatchPath const *hatchPath = dynamic_cast(child); + for (auto& child: hatch->_children) { + SPHatchPath const *hatchPath = dynamic_cast(&child); if (hatchPath) { - matched = true; + return true; } } - return matched; + return false; } std::vector SPHatch::hatchPaths() @@ -249,8 +248,8 @@ std::vector SPHatch::hatchPaths() SPHatch *src = chase_hrefs(this, sigc::ptr_fun(&_hasHatchPatchChildren)); if (src) { - for (SPObject *child = src->firstChild(); child; child = child->getNext()) { - SPHatchPath *hatchPath = dynamic_cast(child); + for (auto& child: src->_children) { + SPHatchPath *hatchPath = dynamic_cast(&child); if (hatchPath) { list.push_back(hatchPath); } @@ -265,8 +264,8 @@ std::vector SPHatch::hatchPaths() const SPHatch const *src = chase_hrefs(this, sigc::ptr_fun(&_hasHatchPatchChildren)); if (src) { - for (SPObject const *child = src->firstChild(); child; child = child->getNext()) { - SPHatchPath const *hatchPath = dynamic_cast(child); + for (auto& child: src->_children) { + SPHatchPath const *hatchPath = dynamic_cast(&child); if (hatchPath) { list.push_back(hatchPath); } diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index d775e306f..7915b0453 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -235,9 +235,9 @@ Inkscape::XML::Node* SPGroup::write(Inkscape::XML::Document *xml_doc, Inkscape:: l = NULL; - for (SPObject *child = firstChild(); child; child = child->getNext() ) { - if ( !dynamic_cast(child) && !dynamic_cast(child) ) { - Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags); + for (auto& child: _children) { + if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { + Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend (l, crepr); @@ -251,9 +251,9 @@ Inkscape::XML::Node* SPGroup::write(Inkscape::XML::Document *xml_doc, Inkscape:: l = g_slist_remove (l, l->data); } } else { - for (SPObject *child = firstChild() ; child ; child = child->getNext() ) { - if ( !dynamic_cast(child) && !dynamic_cast(child) ) { - child->updateRepr(flags); + for (auto& child: _children) { + if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { + child.updateRepr(flags); } } } @@ -365,9 +365,9 @@ void SPGroup::hide (unsigned int key) { void SPGroup::snappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs) const { - for ( SPObject const *o = this->firstChild(); o; o = o->getNext() ) + for (auto& o: _children) { - SPItem const *item = dynamic_cast(o); + SPItem const *item = dynamic_cast(&o); if (item) { item->getSnappoints(p, snapprefs); } @@ -511,20 +511,21 @@ sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_d GSList *objects = NULL; Geom::Affine const g(group->transform); - for (SPObject *child = group->firstChild() ; child; child = child->getNext() ) - if (SPItem *citem = dynamic_cast(child)) - sp_item_group_ungroup_handle_clones(citem,g); - + for (auto& child: group->_children) { + if (SPItem *citem = dynamic_cast(&child)) { + sp_item_group_ungroup_handle_clones(citem, g); + } + } - for (SPObject *child = group->firstChild() ; child; child = child->getNext() ) { - SPItem *citem = dynamic_cast(child); + for (auto& child: group->_children) { + SPItem *citem = dynamic_cast(&child); if (citem) { /* Merging of style */ // this converts the gradient/pattern fill/stroke, if any, to userSpaceOnUse; we need to do // it here _before_ the new transform is set, so as to use the pre-transform bbox citem->adjust_paint_recursive (Geom::identity(), Geom::identity(), false); - child->style->merge( group->style ); + child.style->merge( group->style ); /* * fixme: We currently make no allowance for the case where child is cloned * and the group has any style settings. @@ -546,9 +547,9 @@ sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_d * extra complication & maintenance burden and this case is rare. */ - child->updateRepr(); + child.updateRepr(); - Inkscape::XML::Node *nrepr = child->getRepr()->duplicate(prepr->document()); + Inkscape::XML::Node *nrepr = child.getRepr()->duplicate(prepr->document()); // Merging transform Geom::Affine ctrans = citem->transform * g; @@ -599,7 +600,7 @@ sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_d items = g_slist_prepend (items, nrepr); } else { - Inkscape::XML::Node *nrepr = child->getRepr()->duplicate(prepr->document()); + Inkscape::XML::Node *nrepr = child.getRepr()->duplicate(prepr->document()); objects = g_slist_prepend (objects, nrepr); } } @@ -661,9 +662,9 @@ std::vector sp_item_group_item_list(SPGroup * group) std::vector s; g_return_val_if_fail(group != NULL, s); - for (SPObject *o = group->firstChild() ; o ; o = o->getNext() ) { - if ( dynamic_cast(o) ) { - s.push_back((SPItem*)o); + for (auto& o: group->_children) { + if ( dynamic_cast(&o) ) { + s.push_back((SPItem*)&o); } } return s; @@ -734,8 +735,8 @@ void SPGroup::_updateLayerMode(unsigned int display_key) { void SPGroup::translateChildItems(Geom::Translate const &tr) { if ( hasChildren() ) { - for (SPObject *o = firstChild() ; o ; o = o->getNext() ) { - SPItem *item = dynamic_cast(o); + for (auto& o: _children) { + SPItem *item = dynamic_cast(&o); if ( item ) { sp_item_move_rel(item, tr); } @@ -747,14 +748,14 @@ void SPGroup::translateChildItems(Geom::Translate const &tr) void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bool noRecurse) { if ( hasChildren() ) { - for (SPObject *o = firstChild() ; o ; o = o->getNext() ) { - if ( SPDefs *defs = dynamic_cast(o) ) { // select symbols from defs, ignore clips, masks, patterns - for (SPObject *defschild = defs->firstChild() ; defschild ; defschild = defschild->getNext() ) { - SPGroup *defsgroup = dynamic_cast(defschild); + for (auto& o: _children) { + if ( SPDefs *defs = dynamic_cast(&o) ) { // select symbols from defs, ignore clips, masks, patterns + for (auto& defschild: defs->_children) { + SPGroup *defsgroup = dynamic_cast(&defschild); if (defsgroup) defsgroup->scaleChildItemsRec(sc, p, false); } - } else if ( SPItem *item = dynamic_cast(o) ) { + } else if ( SPItem *item = dynamic_cast(&o) ) { SPGroup *group = dynamic_cast(item); if (group && !dynamic_cast(item)) { /* Using recursion breaks clipping because transforms are applied @@ -870,8 +871,8 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bo gint SPGroup::getItemCount() const { gint len = 0; - for (SPObject const *o = this->firstChild() ; o ; o = o->getNext() ) { - if (dynamic_cast(o)) { + for (auto& child: _children) { + if (dynamic_cast(&child)) { len++; } } diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 258a5cd14..ba57cec8b 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -705,9 +705,9 @@ Inkscape::XML::Node* SPItem::write(Inkscape::XML::Document *xml_doc, Inkscape::X // so we need to add any children from the underlying object to the new repr if (flags & SP_OBJECT_WRITE_BUILD) { GSList *l = NULL; - for (SPObject *child = object->firstChild(); child != NULL; child = child->next ) { - if (dynamic_cast(child) || dynamic_cast(child)) { - Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags); + for (auto& child: object->_children) { + if (dynamic_cast(&child) || dynamic_cast(&child)) { + Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend (l, crepr); } @@ -719,9 +719,9 @@ Inkscape::XML::Node* SPItem::write(Inkscape::XML::Document *xml_doc, Inkscape::X l = g_slist_remove (l, l->data); } } else { - for (SPObject *child = object->firstChild() ; child != NULL; child = child->next ) { - if (dynamic_cast(child) || dynamic_cast(child)) { - child->updateRepr(flags); + for (auto& child: object->_children) { + if (dynamic_cast(&child) || dynamic_cast(&child)) { + child.updateRepr(flags); } } } @@ -928,12 +928,12 @@ unsigned int SPItem::pos_in_parent() const { unsigned int pos = 0; - for ( SPObject *iter = parent->firstChild() ; iter ; iter = iter->next) { - if (iter == this) { + for (auto& iter: parent->_children) { + if (&iter == this) { return pos; } - if (dynamic_cast(iter)) { + if (dynamic_cast(&iter)) { pos++; } } @@ -1666,8 +1666,8 @@ SPItem const *sp_item_first_item_child(SPObject const *obj) SPItem *sp_item_first_item_child(SPObject *obj) { SPItem *child = 0; - for ( SPObject *iter = obj->firstChild() ; iter ; iter = iter->next ) { - SPItem *tmp = dynamic_cast(iter); + for (auto& iter: obj->_children) { + SPItem *tmp = dynamic_cast(&iter); if ( tmp ) { child = tmp; break; diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index a36d8ef29..e643cc9bd 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -227,9 +227,9 @@ Inkscape::DrawingItem *SPMask::sp_mask_show(Inkscape::Drawing &drawing, unsigned Inkscape::DrawingGroup *ai = new Inkscape::DrawingGroup(drawing); this->display = sp_mask_view_new_prepend (this->display, key, ai); - for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) { - if (SP_IS_ITEM (child)) { - Inkscape::DrawingItem *ac = SP_ITEM (child)->invoke_show (drawing, key, SP_ITEM_REFERENCE_FLAGS); + for (auto& child: _children) { + if (SP_IS_ITEM (&child)) { + Inkscape::DrawingItem *ac = SP_ITEM (&child)->invoke_show (drawing, key, SP_ITEM_REFERENCE_FLAGS); if (ac) { ai->prependChild(ac); @@ -250,9 +250,9 @@ void SPMask::sp_mask_hide(unsigned int key) { g_return_if_fail (this != NULL); g_return_if_fail (SP_IS_MASK (this)); - for ( SPObject *child = this->firstChild(); child; child = child->getNext()) { - if (SP_IS_ITEM (child)) { - SP_ITEM(child)->invoke_hide (key); + for (auto& child: _children) { + if (SP_IS_ITEM (&child)) { + SP_ITEM(&child)->invoke_hide (key); } } diff --git a/src/sp-mesh-array.cpp b/src/sp-mesh-array.cpp index 355150893..20d6d0d85 100644 --- a/src/sp-mesh-array.cpp +++ b/src/sp-mesh-array.cpp @@ -632,16 +632,16 @@ void SPMeshNodeArray::read( SPMesh *mg_in ) { guint max_column = 0; guint irow = 0; // Corresponds to top of patch being read in. - for ( SPObject *ro = mg->firstChild() ; ro ; ro = ro->getNext() ) { + for (auto& ro: mg->_children) { - if (SP_IS_MESHROW(ro)) { + if (SP_IS_MESHROW(&ro)) { guint icolumn = 0; // Corresponds to left of patch being read in. - for ( SPObject *po = ro->firstChild() ; po ; po = po->getNext() ) { + for (auto& po: ro._children) { - if (SP_IS_MESHPATCH(po)) { + if (SP_IS_MESHPATCH(&po)) { - SPMeshpatch *patch = SP_MESHPATCH(po); + SPMeshpatch *patch = SP_MESHPATCH(&po); // std::cout << "SPMeshNodeArray::read: row size: " << nodes.size() << std::endl; SPMeshPatchI new_patch( &nodes, irow, icolumn ); // Adds new nodes. @@ -652,15 +652,15 @@ void SPMeshNodeArray::read( SPMesh *mg_in ) { // Only 'top' side defined for first row. if( irow != 0 ) ++istop; - for ( SPObject *so = po->firstChild() ; so ; so = so->getNext() ) { - if (SP_IS_STOP(so)) { + for (auto& so: po._children) { + if (SP_IS_STOP(&so)) { if( istop > 3 ) { // std::cout << " Mesh Gradient: Too many stops: " << istop << std::endl; break; } - SPStop *stop = SP_STOP(so); + SPStop *stop = SP_STOP(&so); // Handle top of first row. if( istop == 0 && icolumn == 0 ) { @@ -848,15 +848,15 @@ void SPMeshNodeArray::write( SPMesh *mg ) { // First we must delete reprs for old mesh rows and patches. GSList *descendant_reprs = NULL; GSList *descendant_objects = NULL; - for ( SPObject *row = mg->firstChild(); row; row = row->getNext() ) { - descendant_reprs = g_slist_prepend (descendant_reprs, row->getRepr()); - descendant_objects = g_slist_prepend (descendant_objects, row ); - for ( SPObject *patch = row->firstChild(); patch; patch = patch->getNext() ) { - descendant_reprs = g_slist_prepend (descendant_reprs, patch->getRepr()); - descendant_objects = g_slist_prepend (descendant_objects, patch ); - for ( SPObject *stop = patch->firstChild(); stop; stop = stop->getNext() ) { - descendant_reprs = g_slist_prepend (descendant_reprs, stop->getRepr()); - descendant_objects = g_slist_prepend (descendant_objects, stop ); + for (auto& row: mg->_children) { + descendant_reprs = g_slist_prepend (descendant_reprs, row.getRepr()); + descendant_objects = g_slist_prepend (descendant_objects, &row); + for (auto& patch: row._children) { + descendant_reprs = g_slist_prepend (descendant_reprs, patch.getRepr()); + descendant_objects = g_slist_prepend (descendant_objects, &patch); + for (auto& stop: patch._children) { + descendant_reprs = g_slist_prepend (descendant_reprs, stop.getRepr()); + descendant_objects = g_slist_prepend (descendant_objects, &stop); } } } diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp index 616ec3921..173055dbd 100644 --- a/src/sp-namedview.cpp +++ b/src/sp-namedview.cpp @@ -248,9 +248,9 @@ void SPNamedView::build(SPDocument *document, Inkscape::XML::Node *repr) { this->readAttr( "inkscape:lockguides" ); /* Construct guideline list */ - for (SPObject *o = this->firstChild() ; o; o = o->getNext() ) { - if (SP_IS_GUIDE(o)) { - SPGuide * g = SP_GUIDE(o); + for (auto& o: _children) { + if (SP_IS_GUIDE(&o)) { + SPGuide * g = SP_GUIDE(&o); this->guides.push_back(g); //g_object_set(G_OBJECT(g), "color", nv->guidecolor, "hicolor", nv->guidehicolor, NULL); g->setColor(this->guidecolor); @@ -858,9 +858,9 @@ void sp_namedview_update_layers_from_document (SPDesktop *desktop) } // if that didn't work out, look for the topmost layer if (!layer) { - for ( SPObject *iter = document->getRoot()->firstChild(); iter ; iter = iter->getNext() ) { - if (desktop->isLayer(iter)) { - layer = iter; + for (auto& iter: document->getRoot()->_children) { + if (desktop->isLayer(&iter)) { + layer = &iter; } } } diff --git a/src/sp-object-group.cpp b/src/sp-object-group.cpp index c3967461e..bfed08218 100644 --- a/src/sp-object-group.cpp +++ b/src/sp-object-group.cpp @@ -50,8 +50,8 @@ Inkscape::XML::Node *SPObjectGroup::write(Inkscape::XML::Document *xml_doc, Inks } GSList *l = 0; - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags); + for (auto& child: _children) { + Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend(l, crepr); @@ -64,8 +64,8 @@ Inkscape::XML::Node *SPObjectGroup::write(Inkscape::XML::Document *xml_doc, Inks l = g_slist_remove(l, l->data); } } else { - for ( SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - child->updateRepr(flags); + for (auto& child: _children) { + child.updateRepr(flags); } } diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 36957ab49..2babf0441 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -118,7 +118,7 @@ static gchar *sp_object_get_unique_id(SPObject *object, */ SPObject::SPObject() : cloned(0), uflags(0), mflags(0), hrefcount(0), _total_hrefcount(0), - document(NULL), parent(NULL), children(NULL), _last_child(NULL), + document(NULL), parent(NULL), children(NULL), next(NULL), id(NULL), repr(NULL), refCount(1),hrefList(std::list()), _successor(NULL), _collection_policy(SPObject::COLLECT_WITH_PARENT), _label(NULL), _default_label(NULL) @@ -541,9 +541,6 @@ void SPObject::attach(SPObject *object, SPObject *prev) this->children = object; } object->next = next; - if (!next) { - this->_last_child = object; - } if (!object->xml_space.set) object->xml_space.value = this->xml_space.value; } @@ -576,9 +573,6 @@ void SPObject::reorder(SPObject* obj, SPObject* prev) { } else { children = next; } - if (!next) { - _last_child = old_prev; - } if (prev) { next = prev->next; prev->next = obj; @@ -587,9 +581,6 @@ void SPObject::reorder(SPObject* obj, SPObject* prev) { children = obj; } obj->next = next; - if (!next) { - _last_child = obj; - } } void SPObject::detach(SPObject *object) @@ -616,9 +607,6 @@ void SPObject::detach(SPObject *object) } else { this->children = next; } - if (!next) { - this->_last_child = prev; - } object->next = NULL; object->parent = NULL; @@ -856,11 +844,9 @@ void SPObject::releaseReferences() { SPObject *SPObject::getPrev() { - SPObject *prev = 0; - for ( SPObject *obj = parent->firstChild(); obj && !prev; obj = obj->getNext() ) { - if (obj->getNext() == this) { - prev = obj; - } + SPObject *prev = nullptr; + if (parent && !parent->_children.empty() && &parent->_children.front() != this) { + prev = &*(--parent->_children.iterator_to(*this)); } return prev; } diff --git a/src/sp-object.h b/src/sp-object.h index 6aa006283..2534b2268 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -209,7 +209,6 @@ public: SPDocument *document; /* Document we are part of */ SPObject *parent; /* Our parent (only one allowed) */ SPObject *children; /* Our children */ - SPObject *_last_child; /* Remembered last child */ SPObject *next; /* Next object in linked list */ private: @@ -314,11 +313,11 @@ public: bool hasChildren() const { return ( _children.size() > 0 ); } - SPObject *firstChild() { return children; } - SPObject const *firstChild() const { return children; } + SPObject *firstChild() { return _children.empty() ? nullptr : &_children.front(); } + SPObject const *firstChild() const { return _children.empty() ? nullptr : &_children.front(); } - SPObject *lastChild() { return _last_child; } - SPObject const *lastChild() const { return _last_child; } + SPObject *lastChild() { return _children.empty() ? nullptr : &_children.back(); } + SPObject const *lastChild() const { return _children.empty() ? nullptr : &_children.back(); } enum Action { ActionGeneral, ActionBBox, ActionUpdate, ActionShow }; diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 55110f3c5..fde9f90f1 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -223,8 +223,8 @@ void SPPattern::_getChildren(std::list &l) { for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children - for (SPObject *child = pat_i->firstChild(); child; child = child->getNext()) { - l.push_back(child); + for (auto& child: pat_i->_children) { + l.push_back(&child); } break; // do not go further up the chain if children are found } @@ -319,8 +319,8 @@ guint SPPattern::_countHrefs(SPObject *o) const i++; } - for (SPObject *child = o->firstChild(); child != NULL; child = child->next) { - i += _countHrefs(child); + for (auto& child: o->_children) { + i += _countHrefs(&child); } return i; @@ -508,13 +508,13 @@ Geom::OptRect SPPattern::viewbox() const bool SPPattern::_hasItemChildren() const { - bool hasChildren = false; - for (SPObject const *child = firstChild(); child && !hasChildren; child = child->getNext()) { - if (SP_IS_ITEM(child)) { - hasChildren = true; + for (auto& child: _children) { + if (SP_IS_ITEM(&child)) { + return true; } } - return hasChildren; + + return false; } bool SPPattern::isValid() const @@ -558,12 +558,12 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b Inkscape::DrawingGroup *root = new Inkscape::DrawingGroup(drawing); drawing.setRoot(root); - for (SPObject *child = shown->firstChild(); child != NULL; child = child->getNext()) { - if (SP_IS_ITEM(child)) { + for (auto& child: shown->_children) { + if (SP_IS_ITEM(&child)) { // for each item in pattern, show it on our drawing, add to the group, // and connect to the release signal in case the item gets deleted Inkscape::DrawingItem *cai; - cai = SP_ITEM(child)->invoke_show(drawing, dkey, SP_ITEM_SHOW_DISPLAY); + cai = SP_ITEM(&child)->invoke_show(drawing, dkey, SP_ITEM_SHOW_DISPLAY); root->appendChild(cai); } } @@ -654,9 +654,9 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // Render drawing to pattern_surface via drawing context, this calls root->render // which is really DrawingItem->render(). drawing.render(dc, one_tile); - for (SPObject *child = shown->firstChild(); child != NULL; child = child->getNext()) { - if (SP_IS_ITEM(child)) { - SP_ITEM(child)->invoke_hide(dkey); + for (auto& child: shown->_children) { + if (SP_IS_ITEM(&child)) { + SP_ITEM(&child)->invoke_hide(dkey); } } diff --git a/src/sp-root.cpp b/src/sp-root.cpp index 98eae2159..cfd0ced10 100644 --- a/src/sp-root.cpp +++ b/src/sp-root.cpp @@ -73,9 +73,9 @@ void SPRoot::build(SPDocument *document, Inkscape::XML::Node *repr) SPGroup::build(document, repr); // Search for first node - for (SPObject *o = this->firstChild() ; o ; o = o->getNext()) { - if (SP_IS_DEFS(o)) { - this->defs = SP_DEFS(o); + for (auto& o: _children) { + if (SP_IS_DEFS(&o)) { + this->defs = SP_DEFS(&o); break; } } @@ -174,9 +174,9 @@ void SPRoot::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) if (co && SP_IS_DEFS(co)) { // We search for first node - it is not beautiful, but works - for (SPObject *c = this->firstChild() ; c ; c = c->getNext()) { - if (SP_IS_DEFS(c)) { - this->defs = SP_DEFS(c); + for (auto& c: _children) { + if (SP_IS_DEFS(&c)) { + this->defs = SP_DEFS(&c); break; } } @@ -189,7 +189,8 @@ void SPRoot::remove_child(Inkscape::XML::Node *child) SPObject *iter = 0; // We search for first remaining node - it is not beautiful, but works - for (iter = this->firstChild() ; iter ; iter = iter->getNext()) { + for (auto& child: _children) { + iter = &child; if (SP_IS_DEFS(iter) && (SPDefs *)iter != this->defs) { this->defs = (SPDefs *)iter; break; diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp index d2dcde15d..7679cc31e 100644 --- a/src/sp-switch.cpp +++ b/src/sp-switch.cpp @@ -32,9 +32,10 @@ SPSwitch::~SPSwitch() { SPObject *SPSwitch::_evaluateFirst() { SPObject *first = 0; - for (SPObject *child = this->firstChild() ; child && !first ; child = child->getNext() ) { - if (SP_IS_ITEM(child) && sp_item_evaluate(SP_ITEM(child))) { - first = child; + for (auto& child: _children) { + if (SP_IS_ITEM(&child) && sp_item_evaluate(SP_ITEM(&child))) { + first = &child; + break; } } diff --git a/src/sp-text.cpp b/src/sp-text.cpp index 4afc38524..5126ae094 100644 --- a/src/sp-text.cpp +++ b/src/sp-text.cpp @@ -155,9 +155,9 @@ void SPText::update(SPCtx *ctx, guint flags) { // Create temporary list of children GSList *l = NULL; - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child, this); - l = g_slist_prepend (l, child); + for (auto& child: _children) { + sp_object_ref(&child, this); + l = g_slist_prepend (l, &child); } l = g_slist_reverse (l); @@ -235,9 +235,9 @@ void SPText::modified(guint flags) { // Create temporary list of children GSList *l = NULL; - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - sp_object_ref(child, this); - l = g_slist_prepend (l, child); + for (auto& child: _children) { + sp_object_ref(&child, this); + l = g_slist_prepend (l, &child); } l = g_slist_reverse (l); @@ -262,17 +262,17 @@ Inkscape::XML::Node *SPText::write(Inkscape::XML::Document *xml_doc, Inkscape::X GSList *l = NULL; - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - if (SP_IS_TITLE(child) || SP_IS_DESC(child)) { + for (auto& child: _children) { + if (SP_IS_TITLE(&child) || SP_IS_DESC(&child)) { continue; } Inkscape::XML::Node *crepr = NULL; - if (SP_IS_STRING(child)) { - crepr = xml_doc->createTextNode(SP_STRING(child)->string.c_str()); + if (SP_IS_STRING(&child)) { + crepr = xml_doc->createTextNode(SP_STRING(&child)->string.c_str()); } else { - crepr = child->updateRepr(xml_doc, NULL, flags); + crepr = child.updateRepr(xml_doc, NULL, flags); } if (crepr) { @@ -286,15 +286,15 @@ Inkscape::XML::Node *SPText::write(Inkscape::XML::Document *xml_doc, Inkscape::X l = g_slist_remove (l, l->data); } } else { - for (SPObject *child = this->firstChild() ; child ; child = child->getNext() ) { - if (SP_IS_TITLE(child) || SP_IS_DESC(child)) { + for (auto& child: _children) { + if (SP_IS_TITLE(&child) || SP_IS_DESC(&child)) { continue; } - if (SP_IS_STRING(child)) { - child->getRepr()->setContent(SP_STRING(child)->string.c_str()); + if (SP_IS_STRING(&child)) { + child.getRepr()->setContent(SP_STRING(&child)->string.c_str()); } else { - child->updateRepr(flags); + child.updateRepr(flags); } } } @@ -606,16 +606,16 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio } } - for (SPObject *child = root->firstChild() ; child ; child = child->getNext() ) { - SPString *str = dynamic_cast(child); + for (auto& child: root->_children) { + SPString *str = dynamic_cast(&child); if (str) { Glib::ustring const &string = str->string; // std::cout << " Appending: >" << string << "<" << std::endl; - layout.appendText(string, root->style, child, &optional_attrs, child_attrs_offset + length); + layout.appendText(string, root->style, &child, &optional_attrs, child_attrs_offset + length); length += string.length(); - } else if (!sp_repr_is_meta_element(child->getRepr())) { + } else if (!sp_repr_is_meta_element(child.getRepr())) { /* ^^^^ XML Tree being directly used here while it shouldn't be.*/ - length += _buildLayoutInput(child, optional_attrs, child_attrs_offset + length, in_textpath); + length += _buildLayoutInput(&child, optional_attrs, child_attrs_offset + length, in_textpath); } } @@ -628,9 +628,9 @@ void SPText::rebuildLayout() Inkscape::Text::Layout::OptionalTextTagAttrs optional_attrs; _buildLayoutInput(this, optional_attrs, 0, false); layout.calculateFlow(); - for (SPObject *child = firstChild() ; child ; child = child->getNext() ) { - if (SP_IS_TEXTPATH(child)) { - SPTextPath const *textpath = SP_TEXTPATH(child); + for (auto& child: _children) { + if (SP_IS_TEXTPATH(&child)) { + SPTextPath const *textpath = SP_TEXTPATH(&child); if (textpath->originalPath != NULL) { //g_print("%s", layout.dumpAsText().c_str()); layout.fitToPathAlign(textpath->startOffset, *textpath->originalPath); @@ -640,9 +640,9 @@ void SPText::rebuildLayout() //g_print("%s", layout.dumpAsText().c_str()); // set the x,y attributes on role:line spans - for (SPObject *child = firstChild() ; child ; child = child->getNext() ) { - if (SP_IS_TSPAN(child)) { - SPTSpan *tspan = SP_TSPAN(child); + for (auto& child: _children) { + if (SP_IS_TSPAN(&child)) { + SPTSpan *tspan = SP_TSPAN(&child); if ( (tspan->role != SP_TSPAN_ROLE_UNSPECIFIED) && tspan->attributes.singleXYCoordinates() ) { Inkscape::Text::Layout::iterator iter = layout.sourceToIterator(tspan); diff --git a/src/sp-tref.cpp b/src/sp-tref.cpp index ba592058b..66866c9f7 100644 --- a/src/sp-tref.cpp +++ b/src/sp-tref.cpp @@ -506,9 +506,9 @@ sp_tref_convert_to_tspan(SPObject *obj) //////////////////// else { GSList *l = NULL; - for (SPObject *child = obj->firstChild() ; child != NULL ; child = child->getNext() ) { - sp_object_ref(child, obj); - l = g_slist_prepend (l, child); + for (auto& child: obj->_children) { + sp_object_ref(&child, obj); + l = g_slist_prepend (l, &child); } l = g_slist_reverse (l); while (l) { diff --git a/src/sp-tspan.cpp b/src/sp-tspan.cpp index 05f8430ba..23df18503 100644 --- a/src/sp-tspan.cpp +++ b/src/sp-tspan.cpp @@ -96,9 +96,9 @@ void SPTSpan::update(SPCtx *ctx, guint flags) { } childflags &= SP_OBJECT_MODIFIED_CASCADE; - for ( SPObject *ochild = this->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if ( flags || ( ochild->uflags & SP_OBJECT_MODIFIED_FLAG )) { - ochild->updateDisplay(ctx, childflags); + for (auto& ochild: _children) { + if ( flags || ( ochild.uflags & SP_OBJECT_MODIFIED_FLAG )) { + ochild.updateDisplay(ctx, childflags); } } @@ -128,9 +128,9 @@ void SPTSpan::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - for ( SPObject *ochild = this->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (flags || (ochild->mflags & SP_OBJECT_MODIFIED_FLAG)) { - ochild->emitModified(flags); + for (auto& ochild: _children) { + if (flags || (ochild.mflags & SP_OBJECT_MODIFIED_FLAG)) { + ochild.emitModified(flags); } } } @@ -175,15 +175,15 @@ Inkscape::XML::Node* SPTSpan::write(Inkscape::XML::Document *xml_doc, Inkscape:: if ( flags&SP_OBJECT_WRITE_BUILD ) { GSList *l = NULL; - for (SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: _children) { Inkscape::XML::Node* c_repr=NULL; - if ( SP_IS_TSPAN(child) || SP_IS_TREF(child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_TEXTPATH(child) ) { - //c_repr = child->updateRepr(xml_doc, NULL, flags); // shouldn't happen - } else if ( SP_IS_STRING(child) ) { - c_repr = xml_doc->createTextNode(SP_STRING(child)->string.c_str()); + if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_TEXTPATH(&child) ) { + //c_repr = child.updateRepr(xml_doc, NULL, flags); // shouldn't happen + } else if ( SP_IS_STRING(&child) ) { + c_repr = xml_doc->createTextNode(SP_STRING(&child)->string.c_str()); } if ( c_repr ) { @@ -197,13 +197,13 @@ Inkscape::XML::Node* SPTSpan::write(Inkscape::XML::Document *xml_doc, Inkscape:: l = g_slist_remove(l, l->data); } } else { - for (SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { - if ( SP_IS_TSPAN(child) || SP_IS_TREF(child) ) { - child->updateRepr(flags); - } else if ( SP_IS_TEXTPATH(child) ) { + for (auto& child: _children) { + if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_TEXTPATH(&child) ) { //c_repr = child->updateRepr(xml_doc, NULL, flags); // shouldn't happen - } else if ( SP_IS_STRING(child) ) { - child->getRepr()->setContent(SP_STRING(child)->string.c_str()); + } else if ( SP_IS_STRING(&child) ) { + child.getRepr()->setContent(SP_STRING(&child)->string.c_str()); } } } @@ -313,9 +313,9 @@ void SPTextPath::update(SPCtx *ctx, guint flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - for ( SPObject *ochild = this->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if ( flags || ( ochild->uflags & SP_OBJECT_MODIFIED_FLAG )) { - ochild->updateDisplay(ctx, flags); + for (auto& ochild: _children) { + if ( flags || ( ochild.uflags & SP_OBJECT_MODIFIED_FLAG )) { + ochild.updateDisplay(ctx, flags); } } @@ -367,9 +367,9 @@ void SPTextPath::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - for ( SPObject *ochild = this->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (flags || (ochild->mflags & SP_OBJECT_MODIFIED_FLAG)) { - ochild->emitModified(flags); + for (auto& ochild: _children) { + if (flags || (ochild.mflags & SP_OBJECT_MODIFIED_FLAG)) { + ochild.emitModified(flags); } } } @@ -399,15 +399,15 @@ Inkscape::XML::Node* SPTextPath::write(Inkscape::XML::Document *xml_doc, Inkscap if ( flags & SP_OBJECT_WRITE_BUILD ) { GSList *l = NULL; - for (SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: _children) { Inkscape::XML::Node* c_repr=NULL; - if ( SP_IS_TSPAN(child) || SP_IS_TREF(child) ) { - c_repr = child->updateRepr(xml_doc, NULL, flags); - } else if ( SP_IS_TEXTPATH(child) ) { + if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { + c_repr = child.updateRepr(xml_doc, NULL, flags); + } else if ( SP_IS_TEXTPATH(&child) ) { //c_repr = child->updateRepr(xml_doc, NULL, flags); // shouldn't happen - } else if ( SP_IS_STRING(child) ) { - c_repr = xml_doc->createTextNode(SP_STRING(child)->string.c_str()); + } else if ( SP_IS_STRING(&child) ) { + c_repr = xml_doc->createTextNode(SP_STRING(&child)->string.c_str()); } if ( c_repr ) { @@ -421,13 +421,13 @@ Inkscape::XML::Node* SPTextPath::write(Inkscape::XML::Document *xml_doc, Inkscap l = g_slist_remove(l, l->data); } } else { - for (SPObject* child = this->firstChild() ; child ; child = child->getNext() ) { - if ( SP_IS_TSPAN(child) || SP_IS_TREF(child) ) { - child->updateRepr(flags); - } else if ( SP_IS_TEXTPATH(child) ) { - //c_repr = child->updateRepr(xml_doc, NULL, flags); // shouldn't happen - } else if ( SP_IS_STRING(child) ) { - child->getRepr()->setContent(SP_STRING(child)->string.c_str()); + for (auto& child: _children) { + if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { + child.updateRepr(flags); + } else if ( SP_IS_TEXTPATH(&child) ) { + //c_repr = child.updateRepr(xml_doc, NULL, flags); // shouldn't happen + } else if ( SP_IS_STRING(&child) ) { + child.getRepr()->setContent(SP_STRING(&child)->string.c_str()); } } } @@ -466,8 +466,8 @@ void sp_textpath_to_text(SPObject *tp) // make a list of textpath children GSList *tp_reprs = NULL; - for (SPObject *o = tp->firstChild() ; o != NULL; o = o->next) { - tp_reprs = g_slist_prepend(tp_reprs, o->getRepr()); + for (auto& o: tp->_children) { + tp_reprs = g_slist_prepend(tp_reprs, o.getRepr()); } for ( GSList *i = tp_reprs ; i ; i = i->next ) { diff --git a/src/splivarot.cpp b/src/splivarot.cpp index b1f324be2..4ac9143f0 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -883,9 +883,9 @@ void item_outline_add_marker_child( SPItem const *item, Geom::Affine marker_tran // note: a marker child item can be an item group! if (SP_IS_GROUP(item)) { // recurse through all childs: - for (SPObject const *o = item->firstChild() ; o ; o = o->getNext() ) { - if ( SP_IS_ITEM(o) ) { - item_outline_add_marker_child(SP_ITEM(o), tr, pathv_in); + for (auto& o: item->_children) { + if ( SP_IS_ITEM(&o) ) { + item_outline_add_marker_child(SP_ITEM(&o), tr, pathv_in); } } } else { diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index 86aee1831..f539652c0 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -240,9 +240,9 @@ text_remove_all_kerns_recursively(SPObject *o) g_strfreev(xa_comma); } - for (SPObject *i = o->firstChild(); i != NULL; i = i->getNext()) { - text_remove_all_kerns_recursively(i); - i->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_TEXT_LAYOUT_MODIFIED_FLAG); + for (auto& i: o->_children) { + text_remove_all_kerns_recursively(&i); + i.requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_TEXT_LAYOUT_MODIFIED_FLAG); } } diff --git a/src/text-editing.cpp b/src/text-editing.cpp index 057523b1e..b03be792b 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -91,8 +91,8 @@ bool sp_te_input_is_empty(SPObject const *item) if (SP_IS_STRING(item)) { empty = SP_STRING(item)->string.empty(); } else { - for (SPObject const *child = item->firstChild() ; child ; child = child->getNext()) { - if (!sp_te_input_is_empty(child)) { + for (auto& child: item->_children) { + if (!sp_te_input_is_empty(&child)) { empty = false; break; } @@ -237,11 +237,11 @@ unsigned sp_text_get_length(SPObject const *item) length++; } - for (SPObject const *child = item->firstChild() ; child ; child = child->getNext()) { - if (SP_IS_STRING(child)) { - length += SP_STRING(child)->string.length(); + for (auto& child: item->_children) { + if (SP_IS_STRING(&child)) { + length += SP_STRING(&child)->string.length(); } else { - length += sp_text_get_length(child); + length += sp_text_get_length(&child); } } } @@ -267,22 +267,22 @@ unsigned sp_text_get_length_upto(SPObject const *item, SPObject const *upto) } // Count the length of the children - for (SPObject const *child = item->firstChild() ; child ; child = child->getNext()) { - if (upto && child == upto) { + for (auto& child: item->_children) { + if (upto && &child == upto) { // hit upto, return immediately return length; } - if (SP_IS_STRING(child)) { - length += SP_STRING(child)->string.length(); + if (SP_IS_STRING(&child)) { + length += SP_STRING(&child)->string.length(); } else { - if (upto && child->isAncestorOf(upto)) { + if (upto && child.isAncestorOf(upto)) { // upto is below us, recurse and break loop - length += sp_text_get_length_upto(child, upto); + length += sp_text_get_length_upto(&child, upto); return length; } else { // recurse and go to the next sibling - length += sp_text_get_length_upto(child, upto); + length += sp_text_get_length_upto(&child, upto); } } } @@ -323,8 +323,11 @@ to \a item at the same level. */ static unsigned sum_sibling_text_lengths_before(SPObject const *item) { unsigned char_index = 0; - for (SPObject *sibling = item->parent->firstChild() ; sibling && sibling != item ; sibling = sibling->getNext()) { - char_index += sp_text_get_length(sibling); + for (auto& sibling: item->parent->_children) { + if (&sibling == item) { + break; + } + char_index += sp_text_get_length(&sibling); } return char_index; } @@ -857,11 +860,11 @@ static void sp_te_get_ustring_multiline(SPObject const *root, Glib::ustring *str if (*pending_line_break) { *string += '\n'; } - for (SPObject const *child = root->firstChild() ; child ; child = child->getNext()) { - if (SP_IS_STRING(child)) { - *string += SP_STRING(child)->string; + for (auto& child: root->_children) { + if (SP_IS_STRING(&child)) { + *string += SP_STRING(&child)->string; } else { - sp_te_get_ustring_multiline(child, string, pending_line_break); + sp_te_get_ustring_multiline(&child, string, pending_line_break); } } if (!SP_IS_TEXT(root) && !SP_IS_TEXTPATH(root) && is_line_break_object(root)) { @@ -1405,17 +1408,17 @@ static void apply_css_recursive(SPObject *o, SPCSSAttr const *css) { sp_repr_css_change(o->getRepr(), const_cast(css), "style"); - for (SPObject *child = o->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: o->_children) { if (sp_repr_css_property(const_cast(css), "opacity", NULL) != NULL) { // Unset properties which are accumulating and thus should not be set recursively. // For example, setting opacity 0.5 on a group recursively would result in the visible opacity of 0.25 for an item in the group. SPCSSAttr *css_recurse = sp_repr_css_attr_new(); sp_repr_css_merge(css_recurse, const_cast(css)); sp_repr_css_set_property(css_recurse, "opacity", NULL); - apply_css_recursive(child, css_recurse); + apply_css_recursive(&child, css_recurse); sp_repr_css_attr_unref(css_recurse); } else { - apply_css_recursive(child, const_cast(css)); + apply_css_recursive(&child, const_cast(css)); } } } @@ -1429,7 +1432,7 @@ static void recursively_apply_style(SPObject *common_ancestor, SPCSSAttr const * { bool passed_start = start_item == NULL ? true : false; Inkscape::XML::Document *xml_doc = common_ancestor->document->getReprDoc(); - + for (SPObject *child = common_ancestor->firstChild() ; child ; child = child->getNext()) { if (start_item == child) { passed_start = true; @@ -2073,8 +2076,8 @@ bool has_visible_text(SPObject *obj) if (SP_IS_STRING(obj) && !SP_STRING(obj)->string.empty()) { hasVisible = true; // maybe we should also check that it's not all whitespace? } else { - for (SPObject const *child = obj->firstChild() ; child ; child = child->getNext()) { - if (has_visible_text(const_cast(child))) { + for (auto& child: obj->_children) { + if (has_visible_text(const_cast(&child))) { hasVisible = true; break; } diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 9871804f5..75c6c5bcc 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -894,8 +894,8 @@ void ClipboardManagerImpl::_copyPattern(SPPattern *pattern) _copyNode(pattern->getRepr(), _doc, _defs); // items in the pattern may also use gradients and other patterns, so recurse - for ( SPObject *child = pattern->firstChild() ; child ; child = child->getNext() ) { - SPItem *childItem = dynamic_cast(child); + for (auto& child: pattern->_children) { + SPItem *childItem = dynamic_cast(&child); if (childItem) { _copyUsedDefs(childItem); } diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index 87c90c460..11af02e3c 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -2042,12 +2042,12 @@ void CloneTiler::clonetiler_trace_hide_tiled_clones_recursively(SPObject *from) if (!trace_drawing) return; - for (SPObject *o = from->firstChild(); o != NULL; o = o->next) { - SPItem *item = dynamic_cast(o); - if (item && clonetiler_is_a_clone_of(o, NULL)) { + for (auto& o: from->_children) { + SPItem *item = dynamic_cast(&o); + if (item && clonetiler_is_a_clone_of(&o, NULL)) { item->invoke_hide(trace_visionkey); // FIXME: hide each tiled clone's original too! } - clonetiler_trace_hide_tiled_clones_recursively (o); + clonetiler_trace_hide_tiled_clones_recursively (&o); } } @@ -2123,9 +2123,9 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) std::vector to_unclump; // not including the original - for (SPObject *child = parent->firstChild(); child != NULL; child = child->next) { - if (clonetiler_is_a_clone_of (child, obj)) { - to_unclump.push_back((SPItem*)child); + for (auto& child: parent->_children) { + if (clonetiler_is_a_clone_of (&child, obj)) { + to_unclump.push_back((SPItem*)&child); } } @@ -2143,8 +2143,8 @@ guint CloneTiler::clonetiler_number_of_clones(SPObject *obj) guint n = 0; - for (SPObject *child = parent->firstChild(); child != NULL; child = child->next) { - if (clonetiler_is_a_clone_of (child, obj)) { + for (auto& child: parent->_children) { + if (clonetiler_is_a_clone_of (&child, obj)) { n ++; } } @@ -2172,9 +2172,9 @@ void CloneTiler::clonetiler_remove(GtkWidget */*widget*/, GtkWidget *dlg, bool d // remove old tiling GSList *to_delete = NULL; - for (SPObject *child = parent->firstChild(); child != NULL; child = child->next) { - if (clonetiler_is_a_clone_of (child, obj)) { - to_delete = g_slist_prepend (to_delete, child); + for (auto& child: parent->_children) { + if (clonetiler_is_a_clone_of (&child, obj)) { + to_delete = g_slist_prepend (to_delete, &child); } } for (GSList *i = to_delete; i; i = i->next) { diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 78e03e2a0..a60d1ddff 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -103,9 +103,7 @@ static int input_count(const SPFilterPrimitive* prim) return 2; else if(SP_IS_FEMERGE(prim)) { // Return the number of feMergeNode connections plus an extra - int count = 1; - for(const SPObject* o = prim->firstChild(); o; o = o->next, ++count){}; - return count; + return (int) (prim->_children.size() + 1); } else return 1; @@ -2343,11 +2341,12 @@ const Gtk::TreeIter FilterEffectsDialog::PrimitiveList::find_result(const Gtk::T if(SP_IS_FEMERGE(prim)) { int c = 0; bool found = false; - for(const SPObject* o = prim->firstChild(); o; o = o->next, ++c) { - if(c == attr && SP_IS_FEMERGENODE(o)) { - image = SP_FEMERGENODE(o)->input; + for (auto& o: prim->_children) { + if(c == attr && SP_IS_FEMERGENODE(&o)) { + image = SP_FEMERGENODE(&o)->input; found = true; } + ++c; } if(!found) return target; @@ -2534,21 +2533,23 @@ bool FilterEffectsDialog::PrimitiveList::on_button_release_event(GdkEventButton* if(SP_IS_FEMERGE(prim)) { int c = 1; bool handled = false; - for(SPObject* o = prim->firstChild(); o && !handled; o = o->next, ++c) { - if(c == _in_drag && SP_IS_FEMERGENODE(o)) { + for (auto& o: prim->_children) { + if(c == _in_drag && SP_IS_FEMERGENODE(&o)) { // If input is null, delete it if(!in_val) { //XML Tree being used directly here while it shouldn't be. - sp_repr_unparent(o->getRepr()); + sp_repr_unparent(o.getRepr()); DocumentUndo::done(prim->document, SP_VERB_DIALOG_FILTER_EFFECTS, _("Remove merge node")); (*get_selection()->get_selected())[_columns.primitive] = prim; + } else { + _dialog.set_attr(&o, SP_ATTR_IN, in_val); } - else - _dialog.set_attr(o, SP_ATTR_IN, in_val); handled = true; + break; } + ++c; } // Add new input? if(!handled && c == _in_drag && in_val) { diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index 013a0ae6a..e156dfa13 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -747,14 +747,14 @@ std::vector &Find::all_items (SPObject *r, std::vector &l, boo return l; // we're not interested in metadata } - for (SPObject *child = r->firstChild(); child; child = child->getNext()) { - SPItem *item = dynamic_cast(child); - if (item && !child->cloned && !desktop->isLayer(item)) { + for (auto& child: r->_children) { + SPItem *item = dynamic_cast(&child); + if (item && !child.cloned && !desktop->isLayer(item)) { if ((hidden || !desktop->itemIsHidden(item)) && (locked || !item->isLocked())) { - l.insert(l.begin(),(SPItem*)child); + l.insert(l.begin(),(SPItem*)&child); } } - l = all_items (child, l, hidden, locked); + l = all_items (&child, l, hidden, locked); } return l; } diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp index f219f3db6..eafe5566a 100644 --- a/src/ui/dialog/font-substitution.cpp +++ b/src/ui/dialog/font-substitution.cpp @@ -182,7 +182,7 @@ std::vector FontSubstitution::getFontReplacedItems(SPDocument* doc, Gli family = SP_TEXT(parent_text)->layout.getFontFamily(0); // Add all the spans fonts to the set gint ii = 0; - for (SPObject *child = parent_text->firstChild() ; child ; child = child->getNext() ) { + for (auto& child: parent_text->_children) { family = SP_TEXT(parent_text)->layout.getFontFamily(ii); setFontSpans.insert(family); ii++; diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 9d05c73bc..00482c573 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -1292,9 +1292,9 @@ bool ObjectsPanel::_executeAction() break; case BUTTON_COLLAPSE_ALL: { - for (SPObject* obj = _document->getRoot()->firstChild(); obj != NULL; obj = obj->next) { - if (SP_IS_GROUP(obj)) { - _setCollapsed(SP_GROUP(obj)); + for (auto& obj: _document->getRoot()->_children) { + if (SP_IS_GROUP(&obj)) { + _setCollapsed(SP_GROUP(&obj)); } } _objectsChanged(_document->getRoot()); diff --git a/src/ui/dialog/spellcheck.cpp b/src/ui/dialog/spellcheck.cpp index 6da8acb20..9338a4e8c 100644 --- a/src/ui/dialog/spellcheck.cpp +++ b/src/ui/dialog/spellcheck.cpp @@ -234,14 +234,14 @@ GSList *SpellCheck::allTextItems (SPObject *r, GSList *l, bool hidden, bool lock return l; // we're not interested in metadata } - for (SPObject *child = r->firstChild(); child; child = child->next) { - if (SP_IS_ITEM (child) && !child->cloned && !desktop->isLayer(SP_ITEM(child))) { - if ((hidden || !desktop->itemIsHidden(SP_ITEM(child))) && (locked || !SP_ITEM(child)->isLocked())) { - if (SP_IS_TEXT(child) || SP_IS_FLOWTEXT(child)) - l = g_slist_prepend (l, child); + for (auto& child: r->_children) { + if (SP_IS_ITEM (&child) && !child.cloned && !desktop->isLayer(SP_ITEM(&child))) { + if ((hidden || !desktop->itemIsHidden(SP_ITEM(&child))) && (locked || !SP_ITEM(&child)->isLocked())) { + if (SP_IS_TEXT(&child) || SP_IS_FLOWTEXT(&child)) + l = g_slist_prepend (l, &child); } } - l = allTextItems (child, l, hidden, locked); + l = allTextItems (&child, l, hidden, locked); } return l; } diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index 51d81022f..1fdce34a5 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -658,8 +658,8 @@ GSList* SymbolsDialog::symbols_in_doc_recursive (SPObject *r, GSList *l) l = g_slist_prepend (l, r); } - for (SPObject *child = r->firstChild(); child; child = child->getNext()) { - l = symbols_in_doc_recursive( child, l ); + for (auto& child: r->_children) { + l = symbols_in_doc_recursive( &child, l ); } return l; @@ -680,8 +680,8 @@ GSList* SymbolsDialog::use_in_doc_recursive (SPObject *r, GSList *l) l = g_slist_prepend (l, r); } - for (SPObject *child = r->firstChild(); child; child = child->getNext()) { - l = use_in_doc_recursive( child, l ); + for (auto& child: r->_children) { + l = use_in_doc_recursive( &child, l ); } return l; diff --git a/src/ui/tools/box3d-tool.cpp b/src/ui/tools/box3d-tool.cpp index 27e755add..2adba38c5 100644 --- a/src/ui/tools/box3d-tool.cpp +++ b/src/ui/tools/box3d-tool.cpp @@ -118,8 +118,8 @@ static void sp_box3d_context_ensure_persp_in_defs(SPDocument *document) { SPDefs *defs = document->getDefs(); bool has_persp = false; - for ( SPObject *child = defs->firstChild(); child; child = child->getNext() ) { - if (SP_IS_PERSP3D(child)) { + for (auto& child: defs->_children) { + if (SP_IS_PERSP3D(&child)) { has_persp = true; break; } diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index b81a630e2..be8ce6d0c 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -1114,9 +1114,9 @@ void ConnectorTool::_setActiveShape(SPItem *item) { // The idea here is to try and add a group's children to solidify // connection handling. We react to path objects with only one node. - for (SPObject *child = item->firstChild() ; child ; child = child->getNext() ) { - if (SP_IS_PATH(child) && SP_PATH(child)->nodesInPath() == 1) { - this->_activeShapeAddKnot((SPItem *) child); + for (auto& child: item->_children) { + if (SP_IS_PATH(&child) && SP_PATH(&child)->nodesInPath() == 1) { + this->_activeShapeAddKnot((SPItem *) &child); } } this->_activeShapeAddKnot(item); diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index 658cf4617..d048c318b 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -385,9 +385,9 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P if (dynamic_cast(item) && !dynamic_cast(item)) { GSList *children = NULL; - for (SPObject *child = item->firstChild() ; child; child = child->getNext() ) { - if (dynamic_cast(static_cast(child))) { - children = g_slist_prepend(children, child); + for (auto& child: item->_children) { + if (dynamic_cast(static_cast(&child))) { + children = g_slist_prepend(children, &child); } } @@ -832,8 +832,8 @@ static void tweak_colors_in_gradient(SPItem *item, Inkscape::PaintTarget fill_or double offset_l = 0; double offset_h = 0; SPObject *child_prev = NULL; - for (SPObject *child = vector->firstChild(); child; child = child->getNext()) { - SPStop *stop = dynamic_cast(child); + for (auto& child: vector->_children) { + SPStop *stop = dynamic_cast(&child); if (!stop) { continue; } @@ -878,7 +878,7 @@ static void tweak_colors_in_gradient(SPItem *item, Inkscape::PaintTarget fill_or } offset_l = offset_h; - child_prev = child; + child_prev = &child; } } @@ -894,8 +894,8 @@ sp_tweak_color_recursive (guint mode, SPItem *item, SPItem *item_at_point, bool did = false; if (dynamic_cast(item)) { - for (SPObject *child = item->firstChild() ; child; child = child->getNext() ) { - SPItem *childItem = dynamic_cast(child); + for (auto& child: item->_children) { + SPItem *childItem = dynamic_cast(&child); if (childItem) { if (sp_tweak_color_recursive (mode, childItem, item_at_point, fill_goal, do_fill, diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index a395d1954..c4b2ed59a 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -720,9 +720,9 @@ static void select_stop_by_drag(GtkWidget *combo_box, SPGradient *gradient, Tool static void select_stop_in_list( GtkWidget *combo_box, SPGradient *gradient, SPStop *new_stop, GtkWidget *data, gboolean block) { int i = 0; - for ( SPObject *ochild = gradient->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (SP_IS_STOP(ochild)) { - if (ochild == new_stop) { + for (auto& ochild: gradient->_children) { + if (SP_IS_STOP(&ochild)) { + if (&ochild == new_stop) { blocked = block; gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box) , i); gr_stop_set_offset(GTK_COMBO_BOX(combo_box), data); @@ -765,9 +765,9 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S /* Populate the combobox store */ std::vector sl; if ( gradient->hasStops() ) { - for ( SPObject *ochild = gradient->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (SP_IS_STOP(ochild)) { - sl.push_back(ochild); + for (auto& ochild: gradient->_children) { + if (SP_IS_STOP(&ochild)) { + sl.push_back(&ochild); } } } diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 97e65141f..813a2d28e 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -363,13 +363,13 @@ unsigned long sp_gradient_to_hhssll(SPGradient *gr) static GSList *get_all_doc_items(GSList *list, SPObject *from, bool onlyvisible, bool onlysensitive, bool ingroups, GSList const *exclude) { - for ( SPObject *child = from->firstChild() ; child; child = child->getNext() ) { - if (SP_IS_ITEM(child)) { - list = g_slist_prepend(list, SP_ITEM(child)); + for (auto& child: from->_children) { + if (SP_IS_ITEM(&child)) { + list = g_slist_prepend(list, SP_ITEM(&child)); } - if (ingroups || SP_IS_ITEM(child)) { - list = get_all_doc_items(list, child, onlyvisible, onlysensitive, ingroups, exclude); + if (ingroups || SP_IS_ITEM(&child)) { + list = get_all_doc_items(list, &child, onlyvisible, onlysensitive, ingroups, exclude); } } @@ -525,10 +525,10 @@ static void verify_grad(SPGradient *gradient) int i = 0; SPStop *stop = NULL; /* count stops */ - for ( SPObject *ochild = gradient->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (SP_IS_STOP(ochild)) { + for (auto& ochild: gradient->_children) { + if (SP_IS_STOP(&ochild)) { i++; - stop = SP_STOP(ochild); + stop = SP_STOP(&ochild); } } @@ -568,9 +568,9 @@ static void select_stop_in_list( GtkWidget *vb, SPGradient *gradient, SPStop *ne GtkWidget *combo_box = static_cast(g_object_get_data(G_OBJECT(vb), "combo_box")); int i = 0; - for ( SPObject *ochild = gradient->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (SP_IS_STOP(ochild)) { - if (ochild == new_stop) { + for (auto& ochild: gradient->_children) { + if (SP_IS_STOP(&ochild)) { + if (&ochild == new_stop) { gtk_combo_box_set_active (GTK_COMBO_BOX(combo_box) , i); break; } @@ -603,9 +603,9 @@ static void update_stop_list( GtkWidget *vb, SPGradient *gradient, SPStop *new_s /* Populate the combobox store */ GSList *sl = NULL; if ( gradient->hasStops() ) { - for ( SPObject *ochild = gradient->firstChild() ; ochild ; ochild = ochild->getNext() ) { - if (SP_IS_STOP(ochild)) { - sl = g_slist_append(sl, ochild); + for (auto& ochild: gradient->_children) { + if (SP_IS_STOP(&ochild)) { + sl = g_slist_append(sl, &ochild); } } } diff --git a/src/widgets/stroke-marker-selector.cpp b/src/widgets/stroke-marker-selector.cpp index e273faad7..fd7b5f6cd 100644 --- a/src/widgets/stroke-marker-selector.cpp +++ b/src/widgets/stroke-marker-selector.cpp @@ -335,10 +335,10 @@ GSList *MarkerComboBox::get_marker_list (SPDocument *source) return NULL; } - for ( SPObject *child = defs->firstChild(); child; child = child->getNext() ) + for (auto& child: defs->_children) { - if (SP_IS_MARKER(child)) { - ml = g_slist_prepend (ml, child); + if (SP_IS_MARKER(&child)) { + ml = g_slist_prepend (ml, &child); } } return ml; diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index 8419cea23..6ef9cd54c 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -59,6 +59,7 @@ TEST_F(SPObjectTest, Basics) { a->attach(b, nullptr); a->attach(d, c); EXPECT_TRUE(a->hasChildren()); + EXPECT_EQ(b, a->firstChild()); EXPECT_EQ(d, a->lastChild()); auto children = a->childList(false); EXPECT_EQ(3, children.size()); @@ -93,6 +94,8 @@ TEST_F(SPObjectTest, Basics) { EXPECT_EQ(2, a->childList(false).size()); a->releaseReferences(); EXPECT_FALSE(a->hasChildren()); + EXPECT_EQ(nullptr, a->firstChild()); + EXPECT_EQ(nullptr, a->lastChild()); } TEST_F(SPObjectTest, Advanced) { @@ -102,6 +105,15 @@ TEST_F(SPObjectTest, Advanced) { a->attach(e, a->lastChild()); EXPECT_EQ(e, a->get_child_by_repr(e->getRepr())); EXPECT_EQ(c, a->get_child_by_repr(c->getRepr())); + EXPECT_EQ(d, e->getPrev()); + EXPECT_EQ(c, d->getPrev()); + EXPECT_EQ(b, c->getPrev()); + EXPECT_EQ(nullptr, b->getPrev()); + std::vector tmp = {b, c, d, e}; + int index = 0; + for(auto& child: a->_children) { + EXPECT_EQ(tmp[index++], &child); + } } TEST_F(SPObjectTest, Tmp) { @@ -109,7 +121,12 @@ TEST_F(SPObjectTest, Tmp) { a->attach(c, a->lastChild()); a->attach(d, a->lastChild()); a->attach(e, a->lastChild()); - EXPECT_TRUE(a->hasChildren()); - a->releaseReferences(); - EXPECT_FALSE(a->hasChildren()); + std::vector tmp; + for (SPObject *q = a->firstChild(); q; q = q->getNext()) { + tmp.push_back(q); + } + int index = 0; + for(auto& child: a->_children) { + EXPECT_EQ(tmp[index++], &child); + } } \ No newline at end of file -- cgit v1.2.3 From 9e210a6d1333c3366681547e3e81593ef69ff73e Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Thu, 14 Jul 2016 12:56:49 +0200 Subject: Last part of new SPObject children list (bzr r14954.1.20) --- src/desktop-style.cpp | 6 +-- src/display/nr-svgfonts.cpp | 35 +++++++------ src/extension/internal/metafile-print.cpp | 18 ++++--- src/filters/blend.cpp | 6 +-- src/filters/componenttransfer.cpp | 19 ++++--- src/filters/composite.cpp | 6 +-- src/filters/diffuselighting.cpp | 24 ++++----- src/filters/displacementmap.cpp | 6 +-- src/filters/merge.cpp | 9 ++-- src/filters/specularlighting.cpp | 24 ++++----- src/main.cpp | 6 +-- src/selection-chemistry.cpp | 28 +++++------ src/sp-filter-primitive.cpp | 6 ++- src/sp-filter.cpp | 25 ++++----- src/sp-flowtext.cpp | 4 +- src/sp-item-group.cpp | 2 +- src/sp-item.cpp | 28 +++++------ src/sp-object.cpp | 66 ++++++------------------ src/sp-object.h | 9 +--- src/sp-text.cpp | 12 ++--- src/sp-use.cpp | 32 +++++------- src/text-chemistry.cpp | 10 ++-- src/text-editing.cpp | 9 ++-- src/ui/clipboard.cpp | 8 +-- src/ui/dialog/document-properties.cpp | 14 +++--- src/ui/dialog/filter-effects-dialog.cpp | 54 ++++++++++---------- src/ui/dialog/objects.cpp | 83 +++++++++++++++++------------- src/ui/dialog/svg-fonts-dialog.cpp | 84 ++++++++++++++----------------- src/ui/dialog/tags.cpp | 45 ++++++++--------- src/ui/tools/node-tool.cpp | 4 +- src/ui/tools/tweak-tool.cpp | 6 +-- src/uri-references.cpp | 7 +-- testfiles/src/sp-object-test.cpp | 20 ++------ 33 files changed, 325 insertions(+), 390 deletions(-) diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index a52ab3d76..e4b7c6a83 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -1810,9 +1810,8 @@ objects_query_blur (const std::vector &objects, SPStyle *style_res) //if object has a filter if (style->filter.set && style->getFilter()) { //cycle through filter primitives - SPObject *primitive_obj = style->getFilter()->children; - while (primitive_obj) { - SPFilterPrimitive *primitive = dynamic_cast(primitive_obj); + for(auto& primitive_obj: style->getFilter()->_children) { + SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); if (primitive) { //if primitive is gaussianblur @@ -1830,7 +1829,6 @@ objects_query_blur (const std::vector &objects, SPStyle *style_res) } } } - primitive_obj = primitive_obj->next; } } } diff --git a/src/display/nr-svgfonts.cpp b/src/display/nr-svgfonts.cpp index 011f51977..927093ef4 100644 --- a/src/display/nr-svgfonts.cpp +++ b/src/display/nr-svgfonts.cpp @@ -203,14 +203,19 @@ SvgFont::scaled_font_text_to_glyphs (cairo_scaled_font_t */*scaled_font*/, //check whether is there a glyph declared on the SVG document // that matches with the text string in its current position if ( (len = size_of_substring(this->glyphs[i]->unicode.c_str(), _utf8)) ){ - for(SPObject* node = this->font->children;previous_unicode && node;node=node->next){ + for(auto& node: font->_children) { + if (!previous_unicode) { + break; + } //apply glyph kerning if appropriate - SPHkern *hkern = dynamic_cast(node); - if (hkern && is_horizontal_text && MatchHKerningRule(hkern, this->glyphs[i], previous_unicode, previous_glyph_name) ){ + SPHkern *hkern = dynamic_cast(&node); + if (hkern && is_horizontal_text && + MatchHKerningRule(hkern, this->glyphs[i], previous_unicode, previous_glyph_name)) { x -= (hkern->k / 1000.0);//TODO: use here the height of the font } - SPVkern *vkern = dynamic_cast(node); - if (vkern && !is_horizontal_text && MatchVKerningRule(vkern, this->glyphs[i], previous_unicode, previous_glyph_name) ){ + SPVkern *vkern = dynamic_cast(&node); + if (vkern && !is_horizontal_text && + MatchVKerningRule(vkern, this->glyphs[i], previous_unicode, previous_glyph_name)) { y -= (vkern->k / 1000.0);//TODO: use here the "height" of the font } } @@ -271,10 +276,10 @@ SvgFont::glyph_modified(SPObject* /* blah */, unsigned int /* bleh */){ Geom::PathVector SvgFont::flip_coordinate_system(SPFont* spfont, Geom::PathVector pathv){ double units_per_em = 1000; - for (SPObject *obj = spfont->children; obj; obj = obj->next){ - if (dynamic_cast(obj)) { + for(auto& obj: spfont->_children) { + if (dynamic_cast(&obj)) { //XML Tree being directly used here while it shouldn't be. - sp_repr_get_double(obj->getRepr(), "units_per_em", &units_per_em); + sp_repr_get_double(obj.getRepr(), "units_per_em", &units_per_em); } } @@ -339,19 +344,19 @@ SvgFont::scaled_font_render_glyph (cairo_scaled_font_t */*scaled_font*/, if (node->hasChildren()){ //render the SVG described on this glyph's child nodes. - for(node = node->children; node; node=node->next){ + for(auto& child: node->_children) { { - SPPath *path = dynamic_cast(node); + SPPath *path = dynamic_cast(&child); if (path) { pathv = path->_curve->get_pathvector(); pathv = flip_coordinate_system(spfont, pathv); render_glyph_path(cr, &pathv); } } - if (dynamic_cast(node)) { + if (dynamic_cast(&child)) { g_warning("TODO: svgfonts: render OBJECTGROUP"); } - SPUse *use = dynamic_cast(node); + SPUse *use = dynamic_cast(&child); if (use) { SPItem* item = use->ref->getObject(); SPPath *path = dynamic_cast(item); @@ -374,12 +379,12 @@ SvgFont::scaled_font_render_glyph (cairo_scaled_font_t */*scaled_font*/, cairo_font_face_t* SvgFont::get_font_face(){ if (!this->userfont) { - for(SPObject* node = this->font->children;node;node=node->next){ - SPGlyph *glyph = dynamic_cast(node); + for(auto& node: font->_children) { + SPGlyph *glyph = dynamic_cast(&node); if (glyph) { glyphs.push_back(glyph); } - SPMissingGlyph *missing = dynamic_cast(node); + SPMissingGlyph *missing = dynamic_cast(&node); if (missing) { missingglyph = missing; } diff --git a/src/extension/internal/metafile-print.cpp b/src/extension/internal/metafile-print.cpp index 47ba5971c..5c10f7dd9 100644 --- a/src/extension/internal/metafile-print.cpp +++ b/src/extension/internal/metafile-print.cpp @@ -293,20 +293,22 @@ void PrintMetafile::brush_classify(SPObject *parent, int depth, Inkscape::Pixbuf } // still looking? Look at this pattern's children, if there are any - SPObject *child = pat_i->firstChild(); - while (child && !(*epixbuf) && (*hatchType == -1)) { - brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor); - child = child->getNext(); + for (auto& child: pat_i->_children) { + if (*epixbuf || *hatchType != -1) { + break; + } + brush_classify(&child, depth, epixbuf, hatchType, hatchColor, bkColor); } } } else if (SP_IS_IMAGE(parent)) { *epixbuf = ((SPImage *)parent)->pixbuf; return; } else { // some inkscape rearrangements pass through nodes between pattern and image which are not classified as either. - SPObject *child = parent->firstChild(); - while (child && !(*epixbuf) && (*hatchType == -1)) { - brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor); - child = child->getNext(); + for (auto& child: parent->_children) { + if (*epixbuf || *hatchType != -1) { + break; + } + brush_classify(&child, depth, epixbuf, hatchType, hatchColor, bkColor); } } } diff --git a/src/filters/blend.cpp b/src/filters/blend.cpp index 6e92ef50f..d3f031257 100644 --- a/src/filters/blend.cpp +++ b/src/filters/blend.cpp @@ -199,11 +199,11 @@ Inkscape::XML::Node* SPFeBlend::write(Inkscape::XML::Document *doc, Inkscape::XM if( !in2_name ) { // This code is very similar to sp_filter_primtive_name_previous_out() - SPObject *i = parent->children; + SPObject *i = parent->firstChild(); // Find previous filter primitive - while (i && i->next != this) { - i = i->next; + while (i && i->getNext() != this) { + i = i->getNext(); } if( i ) { diff --git a/src/filters/componenttransfer.cpp b/src/filters/componenttransfer.cpp index 3d0264390..e52f6d478 100644 --- a/src/filters/componenttransfer.cpp +++ b/src/filters/componenttransfer.cpp @@ -49,11 +49,10 @@ static void sp_feComponentTransfer_children_modified(SPFeComponentTransfer *sp_c { if (sp_componenttransfer->renderer) { bool set[4] = {false, false, false, false}; - SPObject* node = sp_componenttransfer->children; - for(;node;node=node->next){ + for(auto& node: sp_componenttransfer->_children) { int i = 4; - SPFeFuncNode *funcNode = SP_FEFUNCNODE(node); + SPFeFuncNode *funcNode = SP_FEFUNCNODE(&node); switch (funcNode->channel) { case SPFeFuncNode::R: @@ -74,13 +73,13 @@ static void sp_feComponentTransfer_children_modified(SPFeComponentTransfer *sp_c g_warning("Unrecognized channel for component transfer."); break; } - sp_componenttransfer->renderer->type[i] = ((SPFeFuncNode *) node)->type; - sp_componenttransfer->renderer->tableValues[i] = ((SPFeFuncNode *) node)->tableValues; - sp_componenttransfer->renderer->slope[i] = ((SPFeFuncNode *) node)->slope; - sp_componenttransfer->renderer->intercept[i] = ((SPFeFuncNode *) node)->intercept; - sp_componenttransfer->renderer->amplitude[i] = ((SPFeFuncNode *) node)->amplitude; - sp_componenttransfer->renderer->exponent[i] = ((SPFeFuncNode *) node)->exponent; - sp_componenttransfer->renderer->offset[i] = ((SPFeFuncNode *) node)->offset; + sp_componenttransfer->renderer->type[i] = ((SPFeFuncNode *) &node)->type; + sp_componenttransfer->renderer->tableValues[i] = ((SPFeFuncNode *) &node)->tableValues; + sp_componenttransfer->renderer->slope[i] = ((SPFeFuncNode *) &node)->slope; + sp_componenttransfer->renderer->intercept[i] = ((SPFeFuncNode *) &node)->intercept; + sp_componenttransfer->renderer->amplitude[i] = ((SPFeFuncNode *) &node)->amplitude; + sp_componenttransfer->renderer->exponent[i] = ((SPFeFuncNode *) &node)->exponent; + sp_componenttransfer->renderer->offset[i] = ((SPFeFuncNode *) &node)->offset; set[i] = true; } // Set any types not explicitly set to the identity transform diff --git a/src/filters/composite.cpp b/src/filters/composite.cpp index 3e651a778..42f06915f 100644 --- a/src/filters/composite.cpp +++ b/src/filters/composite.cpp @@ -221,11 +221,11 @@ Inkscape::XML::Node* SPFeComposite::write(Inkscape::XML::Document *doc, Inkscape if( !in2_name ) { // This code is very similar to sp_filter_primitive_name_previous_out() - SPObject *i = parent->children; + SPObject *i = parent->firstChild(); // Find previous filter primitive - while (i && i->next != this) { - i = i->next; + while (i && i->getNext() != this) { + i = i->getNext(); } if( i ) { diff --git a/src/filters/diffuselighting.cpp b/src/filters/diffuselighting.cpp index 120c058d2..a46b367ec 100644 --- a/src/filters/diffuselighting.cpp +++ b/src/filters/diffuselighting.cpp @@ -258,17 +258,17 @@ static void sp_feDiffuseLighting_children_modified(SPFeDiffuseLighting *sp_diffu { if (sp_diffuselighting->renderer) { sp_diffuselighting->renderer->light_type = Inkscape::Filters::NO_LIGHT; - if (SP_IS_FEDISTANTLIGHT(sp_diffuselighting->children)) { + if (SP_IS_FEDISTANTLIGHT(sp_diffuselighting->firstChild())) { sp_diffuselighting->renderer->light_type = Inkscape::Filters::DISTANT_LIGHT; - sp_diffuselighting->renderer->light.distant = SP_FEDISTANTLIGHT(sp_diffuselighting->children); + sp_diffuselighting->renderer->light.distant = SP_FEDISTANTLIGHT(sp_diffuselighting->firstChild()); } - if (SP_IS_FEPOINTLIGHT(sp_diffuselighting->children)) { + if (SP_IS_FEPOINTLIGHT(sp_diffuselighting->firstChild())) { sp_diffuselighting->renderer->light_type = Inkscape::Filters::POINT_LIGHT; - sp_diffuselighting->renderer->light.point = SP_FEPOINTLIGHT(sp_diffuselighting->children); + sp_diffuselighting->renderer->light.point = SP_FEPOINTLIGHT(sp_diffuselighting->firstChild()); } - if (SP_IS_FESPOTLIGHT(sp_diffuselighting->children)) { + if (SP_IS_FESPOTLIGHT(sp_diffuselighting->firstChild())) { sp_diffuselighting->renderer->light_type = Inkscape::Filters::SPOT_LIGHT; - sp_diffuselighting->renderer->light.spot = SP_FESPOTLIGHT(sp_diffuselighting->children); + sp_diffuselighting->renderer->light.spot = SP_FESPOTLIGHT(sp_diffuselighting->firstChild()); } } } @@ -293,19 +293,19 @@ void SPFeDiffuseLighting::build_renderer(Inkscape::Filters::Filter* filter) { //We assume there is at most one child nr_diffuselighting->light_type = Inkscape::Filters::NO_LIGHT; - if (SP_IS_FEDISTANTLIGHT(this->children)) { + if (SP_IS_FEDISTANTLIGHT(this->firstChild())) { nr_diffuselighting->light_type = Inkscape::Filters::DISTANT_LIGHT; - nr_diffuselighting->light.distant = SP_FEDISTANTLIGHT(this->children); + nr_diffuselighting->light.distant = SP_FEDISTANTLIGHT(this->firstChild()); } - if (SP_IS_FEPOINTLIGHT(this->children)) { + if (SP_IS_FEPOINTLIGHT(this->firstChild())) { nr_diffuselighting->light_type = Inkscape::Filters::POINT_LIGHT; - nr_diffuselighting->light.point = SP_FEPOINTLIGHT(this->children); + nr_diffuselighting->light.point = SP_FEPOINTLIGHT(this->firstChild()); } - if (SP_IS_FESPOTLIGHT(this->children)) { + if (SP_IS_FESPOTLIGHT(this->firstChild())) { nr_diffuselighting->light_type = Inkscape::Filters::SPOT_LIGHT; - nr_diffuselighting->light.spot = SP_FESPOTLIGHT(this->children); + nr_diffuselighting->light.spot = SP_FESPOTLIGHT(this->firstChild()); } //nr_offset->set_dx(sp_offset->dx); diff --git a/src/filters/displacementmap.cpp b/src/filters/displacementmap.cpp index 1dbea67ff..f0ca36079 100644 --- a/src/filters/displacementmap.cpp +++ b/src/filters/displacementmap.cpp @@ -193,11 +193,11 @@ Inkscape::XML::Node* SPFeDisplacementMap::write(Inkscape::XML::Document *doc, In if( !in2_name ) { // This code is very similar to sp_filter_primtive_name_previous_out() - SPObject *i = parent->children; + SPObject *i = parent->firstChild(); // Find previous filter primitive - while (i && i->next != this) { - i = i->next; + while (i && i->getNext() != this) { + i = i->getNext(); } if( i ) { diff --git a/src/filters/merge.cpp b/src/filters/merge.cpp index 68f671b11..6af1e8115 100644 --- a/src/filters/merge.cpp +++ b/src/filters/merge.cpp @@ -92,17 +92,14 @@ void SPFeMerge::build_renderer(Inkscape::Filters::Filter* filter) { sp_filter_primitive_renderer_common(this, nr_primitive); - SPObject *input = this->children; int in_nr = 0; - while (input) { - if (SP_IS_FEMERGENODE(input)) { - SPFeMergeNode *node = SP_FEMERGENODE(input); + for(auto& input: _children) { + if (SP_IS_FEMERGENODE(&input)) { + SPFeMergeNode *node = SP_FEMERGENODE(&input); nr_merge->set_input(in_nr, node->input); in_nr++; } - - input = input->next; } } diff --git a/src/filters/specularlighting.cpp b/src/filters/specularlighting.cpp index bda1a0f30..ac7253ad9 100644 --- a/src/filters/specularlighting.cpp +++ b/src/filters/specularlighting.cpp @@ -266,19 +266,19 @@ static void sp_feSpecularLighting_children_modified(SPFeSpecularLighting *sp_spe if (sp_specularlighting->renderer) { sp_specularlighting->renderer->light_type = Inkscape::Filters::NO_LIGHT; - if (SP_IS_FEDISTANTLIGHT(sp_specularlighting->children)) { + if (SP_IS_FEDISTANTLIGHT(sp_specularlighting->firstChild())) { sp_specularlighting->renderer->light_type = Inkscape::Filters::DISTANT_LIGHT; - sp_specularlighting->renderer->light.distant = SP_FEDISTANTLIGHT(sp_specularlighting->children); + sp_specularlighting->renderer->light.distant = SP_FEDISTANTLIGHT(sp_specularlighting->firstChild()); } - if (SP_IS_FEPOINTLIGHT(sp_specularlighting->children)) { + if (SP_IS_FEPOINTLIGHT(sp_specularlighting->firstChild())) { sp_specularlighting->renderer->light_type = Inkscape::Filters::POINT_LIGHT; - sp_specularlighting->renderer->light.point = SP_FEPOINTLIGHT(sp_specularlighting->children); + sp_specularlighting->renderer->light.point = SP_FEPOINTLIGHT(sp_specularlighting->firstChild()); } - if (SP_IS_FESPOTLIGHT(sp_specularlighting->children)) { + if (SP_IS_FESPOTLIGHT(sp_specularlighting->firstChild())) { sp_specularlighting->renderer->light_type = Inkscape::Filters::SPOT_LIGHT; - sp_specularlighting->renderer->light.spot = SP_FESPOTLIGHT(sp_specularlighting->children); + sp_specularlighting->renderer->light.spot = SP_FESPOTLIGHT(sp_specularlighting->firstChild()); } } } @@ -304,19 +304,19 @@ void SPFeSpecularLighting::build_renderer(Inkscape::Filters::Filter* filter) { //We assume there is at most one child nr_specularlighting->light_type = Inkscape::Filters::NO_LIGHT; - if (SP_IS_FEDISTANTLIGHT(this->children)) { + if (SP_IS_FEDISTANTLIGHT(this->firstChild())) { nr_specularlighting->light_type = Inkscape::Filters::DISTANT_LIGHT; - nr_specularlighting->light.distant = SP_FEDISTANTLIGHT(this->children); + nr_specularlighting->light.distant = SP_FEDISTANTLIGHT(this->firstChild()); } - if (SP_IS_FEPOINTLIGHT(this->children)) { + if (SP_IS_FEPOINTLIGHT(this->firstChild())) { nr_specularlighting->light_type = Inkscape::Filters::POINT_LIGHT; - nr_specularlighting->light.point = SP_FEPOINTLIGHT(this->children); + nr_specularlighting->light.point = SP_FEPOINTLIGHT(this->firstChild()); } - if (SP_IS_FESPOTLIGHT(this->children)) { + if (SP_IS_FESPOTLIGHT(this->firstChild())) { nr_specularlighting->light_type = Inkscape::Filters::SPOT_LIGHT; - nr_specularlighting->light.spot = SP_FESPOTLIGHT(this->children); + nr_specularlighting->light.spot = SP_FESPOTLIGHT(this->firstChild()); } //nr_offset->set_dx(sp_offset->dx); diff --git a/src/main.cpp b/src/main.cpp index db908f640..7ab27dcb2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1483,10 +1483,8 @@ do_query_all_recurse (SPObject *o) } } - SPObject *child = o->children; - while (child) { - do_query_all_recurse (child); - child = child->next; + for(auto& child: o->_children) { + do_query_all_recurse (&child); } } diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 55f4118b0..28bcadef5 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -1010,7 +1010,7 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) for (std::vector::const_iterator item=rev.begin();item!=rev.end();++item) { SPObject *child = *item; // for each selected object, find the next sibling - for (SPObject *newref = child->next; newref; newref = newref->next) { + for (SPObject *newref = child->getNext(); newref; newref = newref->getNext()) { // if the sibling is an item AND overlaps our selection, SPItem *newItem = dynamic_cast(newref); if (newItem) { @@ -1138,15 +1138,16 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des for (std::vector::const_reverse_iterator l=rl.rbegin();l!=rl.rend();++l) { gint minpos; - SPObject *pp, *pc; + SPObject *pp; Inkscape::XML::Node *repr = (*l); pp = document->getObjectByRepr(repr->parent()); minpos = 0; g_assert(dynamic_cast(pp)); - pc = pp->firstChild(); - while (!dynamic_cast(pc)) { + for (auto& pc: pp->_children) { + if(dynamic_cast(&pc)) { + break; + } minpos += 1; - pc = pc->next; } repr->setPosition(minpos); } @@ -1197,8 +1198,8 @@ take_style_from_item(SPObject *object) if (css == NULL) return NULL; - if ((dynamic_cast(object) && object->children) || - (dynamic_cast(object) && object->children && object->children->next == NULL)) { + if ((dynamic_cast(object) && object->firstChild()) || + (dynamic_cast(object) && object->firstChild() && object->firstChild()->getNext() == NULL)) { // if this is a text with exactly one tspan child, merge the style of that tspan as well // If this is a group, merge the style of its topmost (last) child with style auto list = object->_children | boost::adaptors::reversed; @@ -2330,10 +2331,10 @@ typedef struct ListReverse { typedef GSList *Iterator; static Iterator children(SPObject *o) { - return make_list(o->firstChild(), NULL); + return make_list(o, NULL); } static Iterator siblings_after(SPObject *o) { - return make_list(o->parent->firstChild(), o); + return make_list(o->parent, o); } static void dispose(Iterator i) { g_slist_free(i); @@ -2347,13 +2348,12 @@ typedef struct ListReverse { private: static GSList *make_list(SPObject *object, SPObject *limit) { GSList *list = NULL; - while ( object != limit ) { - if (!object) { // TODO check if this happens in practice - g_warning("Unexpected list overrun"); + for (auto &child: object->_children) { + if (&child == limit) { break; } - list = g_slist_prepend(list, object); - object = object->getNext(); + list = g_slist_prepend(list, &child); + } return list; } diff --git a/src/sp-filter-primitive.cpp b/src/sp-filter-primitive.cpp index b18850914..09df234cc 100644 --- a/src/sp-filter-primitive.cpp +++ b/src/sp-filter-primitive.cpp @@ -246,8 +246,10 @@ int sp_filter_primitive_read_result(SPFilterPrimitive *prim, gchar const *name) */ int sp_filter_primitive_name_previous_out(SPFilterPrimitive *prim) { SPFilter *parent = SP_FILTER(prim->parent); - SPObject *i = parent->children; - while (i && i->next != prim) i = i->next; + SPObject *i = parent->firstChild(); + while (i && i->getNext() != prim) { + i = i->getNext(); + } if (i) { SPFilterPrimitive *i_prim = SP_FILTER_PRIMITIVE(i); if (i_prim->image_out < 0) { diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index da3f12f5f..170847c0b 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -420,10 +420,9 @@ void sp_filter_build_renderer(SPFilter *sp_filter, Inkscape::Filters::Filter *nr } nr_filter->clear_primitives(); - SPObject *primitive_obj = sp_filter->children; - while (primitive_obj) { - if (SP_IS_FILTER_PRIMITIVE(primitive_obj)) { - SPFilterPrimitive *primitive = SP_FILTER_PRIMITIVE(primitive_obj); + for(auto& primitive_obj: sp_filter->_children) { + if (SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { + SPFilterPrimitive *primitive = SP_FILTER_PRIMITIVE(&primitive_obj); g_assert(primitive != NULL); // if (((SPFilterPrimitiveClass*) G_OBJECT_GET_CLASS(primitive))->build_renderer) { @@ -433,7 +432,6 @@ void sp_filter_build_renderer(SPFilter *sp_filter, Inkscape::Filters::Filter *nr // } // CPPIFY: => FilterPrimitive should be abstract. primitive->build_renderer(nr_filter); } - primitive_obj = primitive_obj->next; } } @@ -441,11 +439,12 @@ int sp_filter_primitive_count(SPFilter *filter) { g_assert(filter != NULL); int count = 0; - SPObject *primitive_obj = filter->children; - while (primitive_obj) { - if (SP_IS_FILTER_PRIMITIVE(primitive_obj)) count++; - primitive_obj = primitive_obj->next; + for(auto& primitive_obj: filter->_children) { + if (SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { + count++; + } } + return count; } @@ -513,10 +512,9 @@ Glib::ustring sp_filter_get_new_result_name(SPFilter *filter) { g_assert(filter != NULL); int largest = 0; - SPObject *primitive_obj = filter->children; - while (primitive_obj) { - if (SP_IS_FILTER_PRIMITIVE(primitive_obj)) { - Inkscape::XML::Node *repr = primitive_obj->getRepr(); + for(auto& primitive_obj: filter->_children) { + if (SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { + Inkscape::XML::Node *repr = primitive_obj.getRepr(); char const *result = repr->attribute("result"); int index; if (result) @@ -530,7 +528,6 @@ Glib::ustring sp_filter_get_new_result_name(SPFilter *filter) { } } } - primitive_obj = primitive_obj->next; } return "result" + Glib::Ascii::dtostr(largest + 1); diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp index eed882800..83fa5a1b4 100644 --- a/src/sp-flowtext.cpp +++ b/src/sp-flowtext.cpp @@ -440,9 +440,9 @@ Shape* SPFlowtext::_buildExclusionShape() const Shape *shape = new Shape(); Shape *shape_temp = new Shape(); - for (SPObject *child = children ; child ; child = child->getNext() ) { + for (auto& child: _children) { // RH: is it right that this shouldn't be recursive? - SPFlowregionExclude *c_child = dynamic_cast(child); + SPFlowregionExclude *c_child = dynamic_cast(const_cast(&child)); if ( c_child && c_child->computed && c_child->computed->hasEdges() ) { if (shape->hasEdges()) { shape_temp->Booleen(shape, c_child->computed, bool_op_union); diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 7915b0453..8d482d9b1 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -583,7 +583,7 @@ sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_d if (text) { //this causes a change in text-on-path appearance when there is a non-conformal transform, see bug #1594565 double scale = (ctrans.expansionX() + ctrans.expansionY()) / 2.0; - SPTextPath * text_path = dynamic_cast(text->children); + SPTextPath * text_path = dynamic_cast(text->firstChild()); if (!text_path) { nrepr->setAttribute("transform", affinestr); } else { diff --git a/src/sp-item.cpp b/src/sp-item.cpp index ba57cec8b..53b4c0879 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -351,8 +351,8 @@ void SPItem::moveTo(SPItem *target, bool intoafter) { // Assume move to the "first" in the top node, find the top node intoafter = false; SPObject* bottom = this->document->getObjectByRepr(our_ref->root())->firstChild(); - while(!dynamic_cast(bottom->next)){ - bottom=bottom->next; + while(!dynamic_cast(bottom->getNext())){ + bottom = bottom->getNext(); } target_ref = bottom->getRepr(); } @@ -974,8 +974,8 @@ void SPItem::getSnappoints(std::vector &p, Inkscap for (std::list::const_iterator o = clips_and_masks.begin(); o != clips_and_masks.end(); ++o) { if (*o) { // obj is a group object, the children are the actual clippers - for (SPObject *child = (*o)->children ; child ; child = child->next) { - SPItem *item = dynamic_cast(child); + for(auto& child: (*o)->_children) { + SPItem *item = dynamic_cast(const_cast(&child)); if (item) { std::vector p_clip_or_mask; // Please note the recursive call here! @@ -1302,8 +1302,8 @@ void SPItem::adjust_stroke_width_recursive(double expansion) // A clone's child is the ghost of its original - we must not touch it, skip recursion if ( !dynamic_cast(this) ) { - for ( SPObject *o = children; o; o = o->getNext() ) { - SPItem *item = dynamic_cast(o); + for (auto& o: _children) { + SPItem *item = dynamic_cast(&o); if (item) { item->adjust_stroke_width_recursive(expansion); } @@ -1317,8 +1317,8 @@ void SPItem::freeze_stroke_width_recursive(bool freeze) // A clone's child is the ghost of its original - we must not touch it, skip recursion if ( !dynamic_cast(this) ) { - for ( SPObject *o = children; o; o = o->getNext() ) { - SPItem *item = dynamic_cast(o); + for (auto& o: _children) { + SPItem *item = dynamic_cast(&o); if (item) { item->freeze_stroke_width_recursive(freeze); } @@ -1337,10 +1337,10 @@ sp_item_adjust_rects_recursive(SPItem *item, Geom::Affine advertized_transform) rect->compensateRxRy(advertized_transform); } - for (SPObject *o = item->children; o != NULL; o = o->next) { - SPItem *item = dynamic_cast(o); - if (item) { - sp_item_adjust_rects_recursive(item, advertized_transform); + for(auto& o: item->_children) { + SPItem *itm = dynamic_cast(&o); + if (itm) { + sp_item_adjust_rects_recursive(itm, advertized_transform); } } } @@ -1357,8 +1357,8 @@ void SPItem::adjust_paint_recursive (Geom::Affine advertized_transform, Geom::Af // also we do not recurse into clones, because a clone's child is the ghost of its original - // we must not touch it if (!(this && (dynamic_cast(this) || dynamic_cast(this)))) { - for (SPObject *o = children; o != NULL; o = o->next) { - SPItem *item = dynamic_cast(o); + for (auto& o: _children) { + SPItem *item = dynamic_cast(&o); if (item) { // At the level of the transformed item, t_ancestors is identity; // below it, it is the accmmulated chain of transforms from this level to the top level diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 2babf0441..587efd4f6 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -118,8 +118,7 @@ static gchar *sp_object_get_unique_id(SPObject *object, */ SPObject::SPObject() : cloned(0), uflags(0), mflags(0), hrefcount(0), _total_hrefcount(0), - document(NULL), parent(NULL), children(NULL), - next(NULL), id(NULL), repr(NULL), refCount(1),hrefList(std::list()), + document(NULL), parent(NULL), id(NULL), repr(NULL), refCount(1), hrefList(std::list()), _successor(NULL), _collection_policy(SPObject::COLLECT_WITH_PARENT), _label(NULL), _default_label(NULL) { @@ -532,15 +531,6 @@ void SPObject::attach(SPObject *object, SPObject *prev) } _children.insert(it, *object); - SPObject *next; - if (prev) { - next = prev->next; - prev->next = object; - } else { - next = this->children; - this->children = object; - } - object->next = next; if (!object->xml_space.set) object->xml_space.value = this->xml_space.value; } @@ -558,29 +548,6 @@ void SPObject::reorder(SPObject* obj, SPObject* prev) { } _children.splice(it, _children, _children.iterator_to(*obj)); - - - SPObject *old_prev=NULL; - for ( SPObject *child = children ; child && child != obj ; - child = child->next ) - { - old_prev = child; - } - - SPObject *next=obj->next; - if (old_prev) { - old_prev->next = next; - } else { - children = next; - } - if (prev) { - next = prev->next; - prev->next = obj; - } else { - next = children; - children = obj; - } - obj->next = next; } void SPObject::detach(SPObject *object) @@ -594,21 +561,6 @@ void SPObject::detach(SPObject *object) _children.erase(_children.iterator_to(*object)); object->releaseReferences(); - SPObject *prev=NULL; - for ( SPObject *child = this->children ; child && child != object ; - child = child->next ) - { - prev = child; - } - - SPObject *next=object->next; - if (prev) { - prev->next = next; - } else { - this->children = next; - } - - object->next = NULL; object->parent = NULL; this->_updateTotalHRefCount(-object->_total_hrefcount); @@ -851,6 +803,15 @@ SPObject *SPObject::getPrev() return prev; } +SPObject* SPObject::getNext() +{ + SPObject *next = nullptr; + if (parent && !parent->_children.empty() && &parent->_children.back() != this) { + next = &*(++parent->_children.iterator_to(*this)); + } + return next; +} + void SPObject::repr_child_added(Inkscape::XML::Node * /*repr*/, Inkscape::XML::Node *child, Inkscape::XML::Node *ref, gpointer data) { SPObject *object = SP_OBJECT(data); @@ -1514,8 +1475,11 @@ bool SPObject::setTitleOrDesc(gchar const *value, gchar const *svg_tagname, bool } else { // remove the current content of the 'text' or 'desc' element - SPObject *child; - while (NULL != (child = elem->firstChild())) child->deleteObject(); + auto tmp = elem->_children | boost::adaptors::transformed([](SPObject& obj) { return &obj; }); + std::vector vec(tmp.begin(), tmp.end()); + for (auto &child: vec) { + child->deleteObject(); + } } // add the new content diff --git a/src/sp-object.h b/src/sp-object.h index 2534b2268..94c9d5629 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -208,8 +208,6 @@ public: unsigned int _total_hrefcount; /* our hrefcount + total descendants */ SPDocument *document; /* Document we are part of */ SPObject *parent; /* Our parent (only one allowed) */ - SPObject *children; /* Our children */ - SPObject *next; /* Next object in linked list */ private: SPObject(const SPObject&); @@ -300,11 +298,8 @@ public: */ SPObject const *nearestCommonAncestor(SPObject const *object) const; - /* A non-const version can be similarly constructed if you want one. - * (Don't just cast away the constness, which would be ill-formed.) */ - SPObject *getNext() {return next;} - - SPObject const *getNext() const {return next;} + /* Returns next object in sibling list or NULL. */ + SPObject *getNext(); /** * Returns previous object in sibling list or NULL. diff --git a/src/sp-text.cpp b/src/sp-text.cpp index 5126ae094..193289c2b 100644 --- a/src/sp-text.cpp +++ b/src/sp-text.cpp @@ -676,9 +676,9 @@ void SPText::_adjustFontsizeRecursive(SPItem *item, double ex, bool is_root) item->updateRepr(); } - for (SPObject *o = item->children; o != NULL; o = o->next) { - if (SP_IS_ITEM(o)) - _adjustFontsizeRecursive(SP_ITEM(o), ex, false); + for(auto& o: item->_children) { + if (SP_IS_ITEM(&o)) + _adjustFontsizeRecursive(SP_ITEM(&o), ex, false); } } @@ -695,9 +695,9 @@ void SPText::_adjustCoordsRecursive(SPItem *item, Geom::Affine const &m, double SP_TREF(item)->attributes.transform(m, ex, ex, is_root); } - for (SPObject *o = item->children; o != NULL; o = o->next) { - if (SP_IS_ITEM(o)) - _adjustCoordsRecursive(SP_ITEM(o), m, ex, false); + for(auto& o: item->_children) { + if (SP_IS_ITEM(&o)) + _adjustCoordsRecursive(SP_ITEM(&o), m, ex, false); } } diff --git a/src/sp-use.cpp b/src/sp-use.cpp index c8a0830c1..cef967c90 100644 --- a/src/sp-use.cpp +++ b/src/sp-use.cpp @@ -436,27 +436,23 @@ void SPUse::move_compensate(Geom::Affine const *mp) { //BUT move clippaths accordingly. //if clone has a clippath, move it accordingly if(clip_ref->getObject()){ - SPObject *clip = clip_ref->getObject()->firstChild() ; - while(clip){ - SPItem *item = (SPItem*) clip; + for(auto& clip: clip_ref->getObject()->_children){ + SPItem *item = (SPItem*) &clip; if(item){ item->transform *= m; Geom::Affine identity; - item->doWriteTransform(clip->getRepr(),item->transform, &identity); + item->doWriteTransform(clip.getRepr(),item->transform, &identity); } - clip = clip->getNext(); } } if(mask_ref->getObject()){ - SPObject *mask = mask_ref->getObject()->firstChild() ; - while(mask){ - SPItem *item = (SPItem*) mask; + for(auto& mask: mask_ref->getObject()->_children){ + SPItem *item = (SPItem*) &mask; if(item){ item->transform *= m; Geom::Affine identity; - item->doWriteTransform(mask->getRepr(),item->transform, &identity); + item->doWriteTransform(mask.getRepr(),item->transform, &identity); } - mask = mask->getNext(); } } return; @@ -480,27 +476,23 @@ void SPUse::move_compensate(Geom::Affine const *mp) { //if clone has a clippath, move it accordingly if(clip_ref->getObject()){ - SPObject *clip = clip_ref->getObject()->firstChild() ; - while(clip){ - SPItem *item = (SPItem*) clip; + for(auto& clip: clip_ref->getObject()->_children){ + SPItem *item = (SPItem*) &clip; if(item){ item->transform *= clone_move.inverse(); Geom::Affine identity; - item->doWriteTransform(clip->getRepr(),item->transform, &identity); + item->doWriteTransform(clip.getRepr(),item->transform, &identity); } - clip = clip->getNext(); } } if(mask_ref->getObject()){ - SPObject *mask = mask_ref->getObject()->firstChild() ; - while(mask){ - SPItem *item = (SPItem*) mask; + for(auto& mask: mask_ref->getObject()->_children){ + SPItem *item = (SPItem*) &mask; if(item){ item->transform *= clone_move.inverse(); Geom::Affine identity; - item->doWriteTransform(mask->getRepr(),item->transform, &identity); + item->doWriteTransform(mask.getRepr(),item->transform, &identity); } - mask = mask->getNext(); } } diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index f539652c0..56048d1f7 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -142,8 +142,8 @@ text_put_on_path() // make a list of text children GSList *text_reprs = NULL; - for (SPObject *o = text->children; o != NULL; o = o->next) { - text_reprs = g_slist_prepend(text_reprs, o->getRepr()); + for(auto& o: text->_children) { + text_reprs = g_slist_prepend(text_reprs, o.getRepr()); } // create textPath and put it into the text @@ -353,9 +353,9 @@ text_flow_into_shape() Inkscape::GC::release(text_repr); } else { // reflow an already flowed text, preserving paras - for (SPObject *o = text->children; o != NULL; o = o->next) { - if (SP_IS_FLOWPARA(o)) { - Inkscape::XML::Node *para_repr = o->getRepr()->duplicate(xml_doc); + for(auto& o: text->_children) { + if (SP_IS_FLOWPARA(&o)) { + Inkscape::XML::Node *para_repr = o.getRepr()->duplicate(xml_doc); root_repr->appendChild(para_repr); object = doc->getObjectByRepr(para_repr); g_return_if_fail(SP_IS_FLOWPARA(object)); diff --git a/src/text-editing.cpp b/src/text-editing.cpp index b03be792b..6ca2fe948 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -944,13 +944,10 @@ sp_te_set_repr_text_multiline(SPItem *text, gchar const *str) gchar *content = g_strdup (str); repr->setContent(""); - SPObject *child = object->firstChild(); - while (child) { - SPObject *next = child->getNext(); - if (!SP_IS_FLOWREGION(child) && !SP_IS_FLOWREGIONEXCLUDE(child)) { - repr->removeChild(child->getRepr()); + for (auto& child: object->_children) { + if (!SP_IS_FLOWREGION(&child) && !SP_IS_FLOWREGIONEXCLUDE(&child)) { + repr->removeChild(child.getRepr()); } - child = next; } gchar *p = content; diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 75c6c5bcc..48d53857b 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -839,8 +839,8 @@ void ClipboardManagerImpl::_copyUsedDefs(SPItem *item) SPObject *mask = item->mask_ref->getObject(); _copyNode(mask->getRepr(), _doc, _defs); // recurse into the mask for its gradients etc. - for (SPObject *o = mask->children ; o != NULL ; o = o->next) { - SPItem *childItem = dynamic_cast(o); + for(auto& o: mask->_children) { + SPItem *childItem = dynamic_cast(&o); if (childItem) { _copyUsedDefs(childItem); } @@ -857,8 +857,8 @@ void ClipboardManagerImpl::_copyUsedDefs(SPItem *item) } // recurse - for (SPObject *o = item->children ; o != NULL ; o = o->next) { - SPItem *childItem = dynamic_cast(o); + for(auto& o: item->_children) { + SPItem *childItem = dynamic_cast(&o); if (childItem) { _copyUsedDefs(childItem); } diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index 589973162..df37eb005 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -1315,12 +1315,7 @@ void DocumentProperties::changeEmbeddedScript(){ for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; if (id == obj->getId()){ - - int count=0; - for ( SPObject *child = obj->children ; child; child = child->next ) - { - count++; - } + int count = (int) obj->_children.size(); if (count>1) g_warning("TODO: Found a script element with multiple (%d) child nodes! We must implement support for that!", count); @@ -1364,8 +1359,11 @@ void DocumentProperties::editEmbeddedScript(){ //XML Tree being used directly here while it shouldn't be. Inkscape::XML::Node *repr = obj->getRepr(); if (repr){ - SPObject *child; - while (NULL != (child = obj->firstChild())) child->deleteObject(); + auto tmp = obj->_children | boost::adaptors::transformed([](SPObject& o) { return &o; }); + std::vector vec(tmp.begin(), tmp.end()); + for (auto &child: vec) { + child->deleteObject(); + } obj->appendChildRepr(xml_doc->createTextNode(_EmbeddedContent.get_buffer()->get_text().c_str())); //TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index a60d1ddff..1be5d540a 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1058,11 +1058,10 @@ public: // FuncNode can be in any order so we must search to find correct one. SPFeFuncNode* find_node(SPFeComponentTransfer* ct) { - SPObject* node = ct->children; SPFeFuncNode* funcNode = NULL; bool found = false; - for(;node;node=node->next){ - funcNode = SP_FEFUNCNODE(node); + for(auto& node: ct->_children) { + funcNode = SP_FEFUNCNODE(&node); if( funcNode->channel == _channel ) { found = true; break; @@ -1226,7 +1225,7 @@ protected: _locked = true; - SPObject* child = o->children; + SPObject* child = o->firstChild(); if(SP_IS_FEDISTANTLIGHT(child)) _light_source.set_active(0); @@ -1251,7 +1250,7 @@ private: if(prim) { _locked = true; - SPObject* child = prim->children; + SPObject* child = prim->firstChild(); const int ls = _light_source.get_active_row_number(); // Check if the light source type has changed if(!(ls == -1 && !child) && @@ -1285,8 +1284,8 @@ private: _light_box.show_all(); SPFilterPrimitive* prim = _dialog._primitive_list.get_selected(); - if(prim && prim->children) - _settings.show_and_update(_light_source.get_active_data()->id, prim->children); + if(prim && prim->firstChild()) + _settings.show_and_update(_light_source.get_active_data()->id, prim->firstChild()); } FilterEffectsDialog& _dialog; @@ -1869,26 +1868,25 @@ void FilterEffectsDialog::PrimitiveList::update() bool active_found = false; _dialog._primitive_box->set_sensitive(true); _dialog.update_filter_general_settings_view(); - for(SPObject *prim_obj = f->children; - prim_obj && SP_IS_FILTER_PRIMITIVE(prim_obj); - prim_obj = prim_obj->next) { - SPFilterPrimitive *prim = SP_FILTER_PRIMITIVE(prim_obj); - if(prim) { - Gtk::TreeModel::Row row = *_model->append(); - row[_columns.primitive] = prim; - - //XML Tree being used directly here while it shouldn't be. - row[_columns.type_id] = FPConverter.get_id_from_key(prim->getRepr()->name()); - row[_columns.type] = _(FPConverter.get_label(row[_columns.type_id]).c_str()); - - if (prim->getId()) { - row[_columns.id] = Glib::ustring(prim->getId()); - } - - if(prim == active_prim) { - get_selection()->select(row); - active_found = true; - } + for(auto& prim_obj: f->_children) { + SPFilterPrimitive *prim = SP_FILTER_PRIMITIVE(&prim_obj); + if(!prim) { + break; + } + Gtk::TreeModel::Row row = *_model->append(); + row[_columns.primitive] = prim; + + //XML Tree being used directly here while it shouldn't be. + row[_columns.type_id] = FPConverter.get_id_from_key(prim->getRepr()->name()); + row[_columns.type] = _(FPConverter.get_label(row[_columns.type_id]).c_str()); + + if (prim->getId()) { + row[_columns.id] = Glib::ustring(prim->getId()); + } + + if(prim == active_prim) { + get_selection()->select(row); + active_found = true; } } @@ -3098,7 +3096,7 @@ void FilterEffectsDialog::set_filternode_attr(const AttrWidget* input) void FilterEffectsDialog::set_child_attr_direct(const AttrWidget* input) { - set_attr(_primitive_list.get_selected()->children, input->get_attribute(), input->get_as_attribute().c_str()); + set_attr(_primitive_list.get_selected()->firstChild(), input->get_attribute(), input->get_as_attribute().c_str()); } void FilterEffectsDialog::set_attr(SPObject* o, const SPAttributeEnum attr, const gchar* val) diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 00482c573..e4639745f 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -340,12 +340,11 @@ void ObjectsPanel::_objectsChanged(SPObject */*obj*/) void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) { if ( _desktop && obj ) { - for ( SPObject *child = obj->children; child != NULL; child = child->next) { - - if (SP_IS_ITEM(child)) + for(auto& child: obj->_children) { + if (SP_IS_ITEM(&child)) { - SPItem * item = SP_ITEM(child); - SPGroup * group = SP_IS_GROUP(child) ? SP_GROUP(child) : 0; + SPItem * item = SP_ITEM(&child); + SPGroup * group = SP_IS_GROUP(&child) ? SP_GROUP(&child) : 0; //Add the item to the tree and set the column information Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); @@ -372,14 +371,14 @@ void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) } //Add an object watcher to the item - ObjectsPanel::ObjectWatcher *w = new ObjectsPanel::ObjectWatcher(this, child); - child->getRepr()->addObserver(*w); + ObjectsPanel::ObjectWatcher *w = new ObjectsPanel::ObjectWatcher(this, &child); + child.getRepr()->addObserver(*w); _objectWatchers.push_back(w); //If the item is a group, recursively add its children if (group) { - _addObject( child, &row ); + _addObject( &child, &row ); } } } @@ -399,9 +398,8 @@ void ObjectsPanel::_updateObject( SPObject *obj, bool recurse ) { //end mark if (recurse) { - for (SPObject * iter = obj->children; iter != NULL; iter = iter->next) - { - _updateObject(iter, recurse); + for (auto& iter: obj->_children) { + _updateObject(&iter, recurse); } } } @@ -520,19 +518,22 @@ void ObjectsPanel::_setCompositingValues(SPItem *item) SPGaussianBlur *spblur = NULL; if (item->style->getFilter()) { - for(SPObject *primitive_obj = item->style->getFilter()->children; primitive_obj && SP_IS_FILTER_PRIMITIVE(primitive_obj); primitive_obj = primitive_obj->next) { - if(SP_IS_FEBLEND(primitive_obj) && !spblend) { - //Get the blend mode - spblend = SP_FEBLEND(primitive_obj); - } - - if(SP_IS_GAUSSIANBLUR(primitive_obj) && !spblur) { - //Get the blur value - spblur = SP_GAUSSIANBLUR(primitive_obj); - } + for (auto& primitive_obj: item->style->getFilter()->_children) { + if (!SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { + break; } + if(SP_IS_FEBLEND(&primitive_obj) && !spblend) { + //Get the blend mode + spblend = SP_FEBLEND(&primitive_obj); + } + + if(SP_IS_GAUSSIANBLUR(&primitive_obj) && !spblur) { + //Get the blur value + spblur = SP_GAUSSIANBLUR(&primitive_obj); + } + } } - + //Set the blend mode _fe_cb.set_blend_mode(spblend ? spblend->blend_mode : Inkscape::Filters::BLEND_NORMAL); @@ -1404,9 +1405,10 @@ void ObjectsPanel::_setCollapsed(SPGroup * group) { group->setExpanded(false); group->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); - for (SPObject *iter = group->children; iter != NULL; iter = iter->next) - { - if (SP_IS_GROUP(iter)) _setCollapsed(SP_GROUP(iter)); + for (auto& iter: group->_children) { + if (SP_IS_GROUP(&iter)) { + _setCollapsed(SP_GROUP(&iter)); + } } } @@ -1521,11 +1523,14 @@ void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring bl if (blendmode != "normal") { gdouble radius = 0; if (item->style->getFilter()) { - for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { - if (SP_IS_GAUSSIANBLUR(primitive)) { + for (auto& primitive: item->style->getFilter()->_children) { + if (!SP_IS_FILTER_PRIMITIVE(&primitive)) { + break; + } + if (SP_IS_GAUSSIANBLUR(&primitive)) { Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); if (bbox) { - radius = SP_GAUSSIANBLUR(primitive)->stdDeviation.getNumber(); + radius = SP_GAUSSIANBLUR(&primitive)->stdDeviation.getNumber(); } } } @@ -1533,13 +1538,16 @@ void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring bl SPFilter *filter = new_filter_simple_from_item(_document, item, blendmode.c_str(), radius); sp_style_set_property_url(item, "filter", filter, false); } else { - for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { - if (SP_IS_FEBLEND(primitive)) { - primitive->deleteObject(); + for (auto& primitive: item->style->getFilter()->_children) { + if (!SP_IS_FILTER_PRIMITIVE(&primitive)) { + break; + } + if (SP_IS_FEBLEND(&primitive)) { + primitive.deleteObject(); break; } } - if (!item->style->getFilter()->children) { + if (!item->style->getFilter()->firstChild()) { remove_filter(item, false); } } @@ -1590,13 +1598,16 @@ void ObjectsPanel::_blurChangedIter(const Gtk::TreeIter& iter, double blur) SPFilter *filter = modify_filter_gaussian_blur_from_item(_document, item, radius); sp_style_set_property_url(item, "filter", filter, false); } else if (item->style->filter.set && item->style->getFilter()) { - for (SPObject *primitive = item->style->getFilter()->children; primitive && SP_IS_FILTER_PRIMITIVE(primitive); primitive = primitive->next) { - if (SP_IS_GAUSSIANBLUR(primitive)) { - primitive->deleteObject(); + for (auto& primitive: item->style->getFilter()->_children) { + if (!SP_IS_FILTER_PRIMITIVE(&primitive)) { + break; + } + if (SP_IS_GAUSSIANBLUR(&primitive)) { + primitive.deleteObject(); break; } } - if (!item->style->getFilter()->children) { + if (!item->style->getFilter()->firstChild()) { remove_filter(item, false); } } diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp index 7b256fc8f..93bd67a3d 100644 --- a/src/ui/dialog/svg-fonts-dialog.cpp +++ b/src/ui/dialog/svg-fonts-dialog.cpp @@ -115,11 +115,11 @@ void SvgFontsDialog::AttrEntry::set_text(char* t){ void SvgFontsDialog::AttrEntry::on_attr_changed(){ SPObject* o = NULL; - for(SPObject* node = this->dialog->get_selected_spfont()->children; node; node=node->next){ + for (auto& node: dialog->get_selected_spfont()->_children) { switch(this->attr){ case SP_PROP_FONT_FAMILY: - if (SP_IS_FONTFACE(node)){ - o = node; + if (SP_IS_FONTFACE(&node)){ + o = &node; continue; } break; @@ -170,9 +170,9 @@ void GlyphComboBox::update(SPFont* spfont){ this->append(""); //Gtk is refusing to clear the combobox when I comment out this line this->remove_all(); - for(SPObject* node = spfont->children; node; node=node->next){ - if (SP_IS_GLYPH(node)){ - this->append((static_cast(node))->unicode); + for (auto& node: spfont->_children) { + if (SP_IS_GLYPH(&node)){ + this->append((static_cast(&node))->unicode); } } } @@ -308,10 +308,9 @@ void SvgFontsDialog::update_global_settings_tab(){ SPFont* font = get_selected_spfont(); if (!font) return; - SPObject* obj; - for (obj=font->children; obj; obj=obj->next){ - if (SP_IS_FONTFACE(obj)){ - _familyname_entry->set_text((SP_FONTFACE(obj))->font_family); + for (auto& obj: font->_children) { + if (SP_IS_FONTFACE(&obj)){ + _familyname_entry->set_text((SP_FONTFACE(&obj))->font_family); } } } @@ -414,12 +413,12 @@ SvgFontsDialog::populate_glyphs_box() SPFont* spfont = this->get_selected_spfont(); _glyphs_observer.set(spfont); - for(SPObject* node = spfont->children; node; node=node->next){ - if (SP_IS_GLYPH(node)){ + for (auto& node: spfont->_children) { + if (SP_IS_GLYPH(&node)){ Gtk::TreeModel::Row row = *(_GlyphsListStore->append()); - row[_GlyphsListColumns.glyph_node] = static_cast(node); - row[_GlyphsListColumns.glyph_name] = (static_cast(node))->glyph_name; - row[_GlyphsListColumns.unicode] = (static_cast(node))->unicode; + row[_GlyphsListColumns.glyph_node] = static_cast(&node); + row[_GlyphsListColumns.glyph_name] = (static_cast(&node))->glyph_name; + row[_GlyphsListColumns.unicode] = (static_cast(&node))->unicode; } } } @@ -432,13 +431,13 @@ SvgFontsDialog::populate_kerning_pairs_box() SPFont* spfont = this->get_selected_spfont(); - for(SPObject* node = spfont->children; node; node=node->next){ - if (SP_IS_HKERN(node)){ + for (auto& node: spfont->_children) { + if (SP_IS_HKERN(&node)){ Gtk::TreeModel::Row row = *(_KerningPairsListStore->append()); - row[_KerningPairsListColumns.first_glyph] = (static_cast(node))->u1->attribute_string().c_str(); - row[_KerningPairsListColumns.second_glyph] = (static_cast(node))->u2->attribute_string().c_str(); - row[_KerningPairsListColumns.kerning_value] = (static_cast(node))->k; - row[_KerningPairsListColumns.spnode] = static_cast(node); + row[_KerningPairsListColumns.first_glyph] = (static_cast(&node))->u1->attribute_string().c_str(); + row[_KerningPairsListColumns.second_glyph] = (static_cast(&node))->u2->attribute_string().c_str(); + row[_KerningPairsListColumns.kerning_value] = (static_cast(&node))->k; + row[_KerningPairsListColumns.spnode] = static_cast(&node); } } } @@ -493,11 +492,10 @@ void SvgFontsDialog::add_glyph(){ Geom::PathVector SvgFontsDialog::flip_coordinate_system(Geom::PathVector pathv){ double units_per_em = 1000; - SPObject* obj; - for (obj = get_selected_spfont()->children; obj; obj=obj->next){ - if (SP_IS_FONTFACE(obj)){ + for (auto& obj: get_selected_spfont()->_children) { + if (SP_IS_FONTFACE(&obj)){ //XML Tree being directly used here while it shouldn't be. - sp_repr_get_double(obj->getRepr(), "units-per-em", &units_per_em); + sp_repr_get_double(obj.getRepr(), "units-per-em", &units_per_em); } } @@ -576,13 +574,12 @@ void SvgFontsDialog::missing_glyph_description_from_selected_path(){ Geom::PathVector pathv = sp_svg_read_pathv(node->attribute("d")); - SPObject* obj; - for (obj = get_selected_spfont()->children; obj; obj=obj->next){ - if (SP_IS_MISSING_GLYPH(obj)){ + for (auto& obj: get_selected_spfont()->_children) { + if (SP_IS_MISSING_GLYPH(&obj)){ //XML Tree being directly used here while it shouldn't be. gchar *str = sp_svg_write_path (flip_coordinate_system(pathv)); - obj->getRepr()->setAttribute("d", str); + obj.getRepr()->setAttribute("d", str); g_free(str); DocumentUndo::done(doc, SP_VERB_DIALOG_SVG_FONTS, _("Set glyph curves")); } @@ -599,11 +596,10 @@ void SvgFontsDialog::reset_missing_glyph_description(){ } SPDocument* doc = desktop->getDocument(); - SPObject* obj; - for (obj = get_selected_spfont()->children; obj; obj=obj->next){ - if (SP_IS_MISSING_GLYPH(obj)){ + for (auto& obj: get_selected_spfont()->_children) { + if (SP_IS_MISSING_GLYPH(&obj)){ //XML Tree being directly used here while it shouldn't be. - obj->getRepr()->setAttribute("d", (char*) "M0,0h1000v1024h-1000z"); + obj.getRepr()->setAttribute("d", (char*) "M0,0h1000v1024h-1000z"); DocumentUndo::done(doc, SP_VERB_DIALOG_SVG_FONTS, _("Reset missing-glyph")); } } @@ -738,12 +734,12 @@ void SvgFontsDialog::add_kerning_pair(){ //look for this kerning pair on the currently selected font this->kerning_pair = NULL; - for(SPObject* node = this->get_selected_spfont()->children; node; node=node->next){ + for (auto& node: get_selected_spfont()->_children) { //TODO: It is not really correct to get only the first byte of each string. //TODO: We should also support vertical kerning - if (SP_IS_HKERN(node) && (static_cast(node))->u1->contains((gchar) first_glyph.get_active_text().c_str()[0]) - && (static_cast(node))->u2->contains((gchar) second_glyph.get_active_text().c_str()[0]) ){ - this->kerning_pair = static_cast(node); + if (SP_IS_HKERN(&node) && (static_cast(&node))->u1->contains((gchar) first_glyph.get_active_text().c_str()[0]) + && (static_cast(&node))->u2->contains((gchar) second_glyph.get_active_text().c_str()[0]) ){ + this->kerning_pair = static_cast(&node); continue; } } @@ -852,11 +848,10 @@ SPFont *new_font(SPDocument *document) void set_font_family(SPFont* font, char* str){ if (!font) return; - SPObject* obj; - for (obj=font->children; obj; obj=obj->next){ - if (SP_IS_FONTFACE(obj)){ + for (auto& obj: font->_children) { + if (SP_IS_FONTFACE(&obj)){ //XML Tree being directly used here while it shouldn't be. - obj->getRepr()->setAttribute("font-family", str); + obj.getRepr()->setAttribute("font-family", str); } } @@ -873,11 +868,10 @@ void SvgFontsDialog::add_font(){ font->setLabel(os.str().c_str()); os2 << "SVGFont " << count; - SPObject* obj; - for (obj=font->children; obj; obj=obj->next){ - if (SP_IS_FONTFACE(obj)){ + for (auto& obj: font->_children) { + if (SP_IS_FONTFACE(&obj)){ //XML Tree being directly used here while it shouldn't be. - obj->getRepr()->setAttribute("font-family", os2.str().c_str()); + obj.getRepr()->setAttribute("font-family", os2.str().c_str()); } } diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index 53641c0de..61c8b5d37 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -399,26 +399,26 @@ void TagsPanel::_objectsChanged(SPObject* root) void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ) { if ( _desktop && obj ) { - for ( SPObject *child = obj->children; child != NULL; child = child->next) { - if (SP_IS_TAG(child)) + for (auto& child: obj->_children) { + if (SP_IS_TAG(&child)) { Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); Gtk::TreeModel::Row row = *iter; - row[_model->_colObject] = child; + row[_model->_colObject] = &child; row[_model->_colParentObject] = NULL; - row[_model->_colLabel] = child->label() ? child->label() : child->getId(); + row[_model->_colLabel] = child.label() ? child.label() : child.getId(); row[_model->_colAddRemove] = true; row[_model->_colAllowAddRemove] = true; _tree.expand_to_path( _store->get_path(iter) ); - TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child); - child->getRepr()->addObserver(*w); + TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, &child); + child.getRepr()->addObserver(*w); _objectWatchers.push_back(w); - _addObject( doc, child, &row ); + _addObject( doc, &child, &row ); } } - if (SP_IS_TAG(obj) && obj->children) + if (SP_IS_TAG(obj) && obj->firstChild()) { Gtk::TreeModel::iterator iteritems = parentRow ? _store->append(parentRow->children()) : _store->prepend(); Gtk::TreeModel::Row rowitems = *iteritems; @@ -429,16 +429,16 @@ void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* rowitems[_model->_colAllowAddRemove] = false; _tree.expand_to_path( _store->get_path(iteritems) ); - - for ( SPObject *child = obj->children; child != NULL; child = child->next) { - if (SP_IS_TAG_USE(child)) + + for (auto& child: obj->_children) { + if (SP_IS_TAG_USE(&child)) { - SPItem *item = SP_TAG_USE(child)->ref->getObject(); + SPItem *item = SP_TAG_USE(&child)->ref->getObject(); Gtk::TreeModel::iterator iter = _store->prepend(rowitems->children()); Gtk::TreeModel::Row row = *iter; - row[_model->_colObject] = child; + row[_model->_colObject] = &child; row[_model->_colParentObject] = NULL; - row[_model->_colLabel] = item ? (item->label() ? item->label() : item->getId()) : SP_TAG_USE(child)->href; + row[_model->_colLabel] = item ? (item->label() ? item->label() : item->getId()) : SP_TAG_USE(&child)->href; row[_model->_colAddRemove] = false; row[_model->_colAllowAddRemove] = true; @@ -447,7 +447,7 @@ void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* } if (item) { - TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, child, item->getRepr()); + TagsPanel::ObjectWatcher *w = new TagsPanel::ObjectWatcher(this, &child, item->getRepr()); item->getRepr()->addObserver(*w); _objectWatchers.push_back(w); } @@ -459,12 +459,11 @@ void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* void TagsPanel::_select_tag( SPTag * tag ) { - for (SPObject * child = tag->children; child != NULL; child = child->next) - { - if (SP_IS_TAG(child)) { - _select_tag(SP_TAG(child)); - } else if (SP_IS_TAG_USE(child)) { - SPObject * obj = SP_TAG_USE(child)->ref->getObject(); + for (auto& child: tag->_children) { + if (SP_IS_TAG(&child)) { + _select_tag(SP_TAG(&child)); + } else if (SP_IS_TAG_USE(&child)) { + SPObject * obj = SP_TAG_USE(&child)->ref->getObject(); if (obj) { if (_desktop->selection->isEmpty()) _desktop->setCurrentLayer(obj->parent); _desktop->selection->add(obj); @@ -650,8 +649,8 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event) for(auto i=items.begin();i!=items.end();++i){ SPObject *newobj = *i; bool addchild = true; - for ( SPObject *child = obj->children; child != NULL; child = child->next) { - if (SP_IS_TAG_USE(child) && SP_TAG_USE(child)->ref->getObject() == newobj) { + for (auto& child: obj->_children) { + if (SP_IS_TAG_USE(&child) && SP_TAG_USE(&child)->ref->getObject() == newobj) { addchild = false; } } diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index 736dafa50..3dfac5e3d 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -378,8 +378,8 @@ void gather_items(NodeTool *nt, SPItem *base, SPObject *obj, Inkscape::UI::Shape r.role = role; s.insert(r); } else if (role != SHAPE_ROLE_NORMAL && (SP_IS_GROUP(obj) || SP_IS_OBJECTGROUP(obj))) { - for (SPObject *c = obj->children; c; c = c->next) { - gather_items(nt, base, c, role, s); + for (auto& c: obj->_children) { + gather_items(nt, base, &c, role, s); } } else if (SP_IS_ITEM(obj)) { SPItem *item = static_cast(obj); diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index d048c318b..7da0973d5 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -951,9 +951,8 @@ sp_tweak_color_recursive (guint mode, SPItem *item, SPItem *item_at_point, Geom::Affine i2dt = item->i2dt_affine (); if (style->filter.set && style->getFilter()) { //cycle through filter primitives - SPObject *primitive_obj = style->getFilter()->children; - while (primitive_obj) { - SPFilterPrimitive *primitive = dynamic_cast(primitive_obj); + for (auto& primitive_obj: style->getFilter()->_children) { + SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); if (primitive) { //if primitive is gaussianblur SPGaussianBlur * spblur = dynamic_cast(primitive); @@ -962,7 +961,6 @@ sp_tweak_color_recursive (guint mode, SPItem *item, SPItem *item_at_point, blur_now += num * i2dt.descrim(); // sum all blurs in the filter } } - primitive_obj = primitive_obj->next; } } double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; diff --git a/src/uri-references.cpp b/src/uri-references.cpp index 078834131..23802ae65 100644 --- a/src/uri-references.cpp +++ b/src/uri-references.cpp @@ -76,10 +76,11 @@ bool URIReference::_acceptObject(SPObject *obj) const std::vector positions; while (owner->cloned) { int position = 0; - SPObject *c = owner->parent->firstChild(); - while (c != owner && dynamic_cast(c)) { + for (auto &child: owner->parent->_children) { + if(&child == owner) { + break; + } position++; - c = c->next; } positions.push_back(position); owner = owner->parent; diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index 6ef9cd54c..a2c31d6d7 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -16,6 +16,7 @@ #include #include #include +#include using namespace Inkscape; using namespace Inkscape::XML; @@ -109,24 +110,13 @@ TEST_F(SPObjectTest, Advanced) { EXPECT_EQ(c, d->getPrev()); EXPECT_EQ(b, c->getPrev()); EXPECT_EQ(nullptr, b->getPrev()); + EXPECT_EQ(nullptr, e->getNext()); + EXPECT_EQ(e, d->getNext()); + EXPECT_EQ(d, c->getNext()); + EXPECT_EQ(c, b->getNext()); std::vector tmp = {b, c, d, e}; int index = 0; for(auto& child: a->_children) { EXPECT_EQ(tmp[index++], &child); } } - -TEST_F(SPObjectTest, Tmp) { - a->attach(b, a->lastChild()); - a->attach(c, a->lastChild()); - a->attach(d, a->lastChild()); - a->attach(e, a->lastChild()); - std::vector tmp; - for (SPObject *q = a->firstChild(); q; q = q->getNext()) { - tmp.push_back(q); - } - int index = 0; - for(auto& child: a->_children) { - EXPECT_EQ(tmp[index++], &child); - } -} \ No newline at end of file -- cgit v1.2.3 From 24d3f50003ca3cec6a03a7f5267cc4fe5588c69f Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Thu, 14 Jul 2016 13:17:21 +0200 Subject: Renamed children list in SPObject (bzr r14954.1.21) --- src/box3d.cpp | 10 +++--- src/conn-avoid-ref.cpp | 2 +- src/desktop-style.cpp | 8 ++--- src/display/nr-svgfonts.cpp | 8 ++--- src/document.cpp | 22 ++++++------- src/extension/internal/cairo-render-context.cpp | 6 ++-- src/extension/internal/cairo-renderer.cpp | 4 +-- src/extension/internal/emf-print.cpp | 4 +-- src/extension/internal/javafx-out.cpp | 4 +-- src/extension/internal/metafile-print.cpp | 4 +-- src/extension/internal/pov-out.cpp | 2 +- src/file.cpp | 4 +-- src/filter-chemistry.cpp | 10 +++--- src/filters/componenttransfer.cpp | 2 +- src/filters/merge.cpp | 2 +- src/gradient-chemistry.cpp | 6 ++-- src/gradient-drag.cpp | 2 +- src/helper/pixbuf-ops.cpp | 2 +- src/helper/png-write.cpp | 2 +- src/helper/stock-items.cpp | 6 ++-- src/id-clash.cpp | 4 +-- src/layer-fns.cpp | 12 +++---- src/libnrtype/font-lister.cpp | 2 +- src/live_effects/lpe-perspective_path.cpp | 2 +- src/main.cpp | 4 +-- src/object-set.cpp | 6 ++-- src/object-snapper.cpp | 2 +- src/persp3d.cpp | 4 +-- src/selection-chemistry.cpp | 20 +++++------ src/sp-clippath.cpp | 10 +++--- src/sp-defs.cpp | 6 ++-- src/sp-filter.cpp | 10 +++--- src/sp-flowdiv.cpp | 24 +++++++------- src/sp-flowregion.cpp | 20 +++++------ src/sp-flowtext.cpp | 18 +++++----- src/sp-gradient.cpp | 16 ++++----- src/sp-hatch.cpp | 6 ++-- src/sp-item-group.cpp | 22 ++++++------- src/sp-item.cpp | 34 +++++++++---------- src/sp-mask.cpp | 4 +-- src/sp-mesh-array.cpp | 12 +++---- src/sp-namedview.cpp | 4 +-- src/sp-object-group.cpp | 4 +-- src/sp-object.cpp | 44 ++++++++++++------------- src/sp-object.h | 12 +++---- src/sp-pattern.cpp | 10 +++--- src/sp-root.cpp | 6 ++-- src/sp-switch.cpp | 2 +- src/sp-text.cpp | 18 +++++----- src/sp-tref.cpp | 2 +- src/sp-tspan.cpp | 18 +++++----- src/sp-use.cpp | 8 ++--- src/splivarot.cpp | 2 +- src/text-chemistry.cpp | 6 ++-- src/text-editing.cpp | 16 ++++----- src/ui/clipboard.cpp | 6 ++-- src/ui/dialog/clonetiler.cpp | 8 ++--- src/ui/dialog/document-properties.cpp | 4 +-- src/ui/dialog/filter-effects-dialog.cpp | 10 +++--- src/ui/dialog/find.cpp | 2 +- src/ui/dialog/font-substitution.cpp | 2 +- src/ui/dialog/objects.cpp | 16 ++++----- src/ui/dialog/spellcheck.cpp | 2 +- src/ui/dialog/svg-fonts-dialog.cpp | 22 ++++++------- src/ui/dialog/symbols.cpp | 4 +-- src/ui/dialog/tags.cpp | 8 ++--- src/ui/tools/box3d-tool.cpp | 2 +- src/ui/tools/connector-tool.cpp | 2 +- src/ui/tools/node-tool.cpp | 2 +- src/ui/tools/tweak-tool.cpp | 8 ++--- src/ui/widget/layer-selector.cpp | 2 +- src/uri-references.cpp | 2 +- src/widgets/gradient-toolbar.cpp | 4 +-- src/widgets/gradient-vector.cpp | 8 ++--- src/widgets/stroke-marker-selector.cpp | 2 +- testfiles/src/sp-object-test.cpp | 28 ++++++++-------- 76 files changed, 322 insertions(+), 322 deletions(-) diff --git a/src/box3d.cpp b/src/box3d.cpp index 0a33ee306..f8ef158b2 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -259,7 +259,7 @@ void box3d_position_set(SPBox3D *box) { /* This draws the curve and calls requestDisplayUpdate() for each side (the latter is done in box3d_side_position_set() to avoid update conflicts with the parent box) */ - for (auto& obj: box->_children) { + for (auto& obj: box->children) { Box3DSide *side = dynamic_cast(&obj); if (side) { box3d_side_position_set(side); @@ -275,7 +275,7 @@ Geom::Affine SPBox3D::set_transform(Geom::Affine const &xform) { gdouble const sw = hypot(ret[0], ret[1]); gdouble const sh = hypot(ret[2], ret[3]); - for (auto& child: _children) { + for (auto& child: children) { SPItem *childitem = dynamic_cast(&child); if (childitem) { // Adjust stroke width @@ -1074,7 +1074,7 @@ box3d_recompute_z_orders (SPBox3D *box) { static std::map box3d_get_sides(SPBox3D *box) { std::map sides; - for (auto& obj: box->_children) { + for (auto& obj: box->children) { Box3DSide *side = dynamic_cast(&obj); if (side) { sides[Box3D::face_to_int(side->getFaceId())] = side; @@ -1217,7 +1217,7 @@ static void box3d_extract_boxes_rec(SPObject *obj, std::list &boxes) if (box) { boxes.push_back(box); } else if (dynamic_cast(obj)) { - for (auto& child: obj->_children) { + for (auto& child: obj->children) { box3d_extract_boxes_rec(&child, boxes); } } @@ -1276,7 +1276,7 @@ SPGroup *box3d_convert_to_group(SPBox3D *box) // create a new group and add the sides (converted to ordinary paths) as its children Inkscape::XML::Node *grepr = xml_doc->createElement("svg:g"); - for (auto& obj: box->_children) { + for (auto& obj: box->children) { Box3DSide *side = dynamic_cast(&obj); if (side) { Inkscape::XML::Node *repr = box3d_side_convert_to_path(side); diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp index 638ba48e3..560f660b2 100644 --- a/src/conn-avoid-ref.cpp +++ b/src/conn-avoid-ref.cpp @@ -334,7 +334,7 @@ static Avoid::Polygon avoid_item_poly(SPItem const *item) std::vector get_avoided_items(std::vector &list, SPObject *from, SPDesktop *desktop, bool initialised) { - for (auto& child: from->_children) { + for (auto& child: from->children) { if (SP_IS_ITEM(&child) && !desktop->isLayer(SP_ITEM(&child)) && !SP_ITEM(&child)->isLocked() && diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index e4b7c6a83..01586096c 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -163,7 +163,7 @@ sp_desktop_apply_css_recursive(SPObject *o, SPCSSAttr *css, bool skip_lines) return; } - for (auto& child: o->_children) { + for (auto& child: o->children) { if (sp_repr_css_property(css, "opacity", NULL) != NULL) { // Unset properties which are accumulating and thus should not be set recursively. // For example, setting opacity 0.5 on a group recursively would result in the visible opacity of 0.25 for an item in the group. @@ -1714,7 +1714,7 @@ objects_query_blend (const std::vector &objects, SPStyle *style_res) int blendcount = 0; // determine whether filter is simple (blend and/or blur) or complex - for(auto& primitive_obj: style->getFilter()->_children) { + for(auto& primitive_obj: style->getFilter()->children) { SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); if (!primitive) { break; @@ -1731,7 +1731,7 @@ objects_query_blend (const std::vector &objects, SPStyle *style_res) // simple filter if(blurcount == 1 || blendcount == 1) { - for(auto& primitive_obj: style->getFilter()->_children) { + for(auto& primitive_obj: style->getFilter()->children) { SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); if (!primitive) { break; @@ -1810,7 +1810,7 @@ objects_query_blur (const std::vector &objects, SPStyle *style_res) //if object has a filter if (style->filter.set && style->getFilter()) { //cycle through filter primitives - for(auto& primitive_obj: style->getFilter()->_children) { + for(auto& primitive_obj: style->getFilter()->children) { SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); if (primitive) { diff --git a/src/display/nr-svgfonts.cpp b/src/display/nr-svgfonts.cpp index 927093ef4..53a5cba49 100644 --- a/src/display/nr-svgfonts.cpp +++ b/src/display/nr-svgfonts.cpp @@ -203,7 +203,7 @@ SvgFont::scaled_font_text_to_glyphs (cairo_scaled_font_t */*scaled_font*/, //check whether is there a glyph declared on the SVG document // that matches with the text string in its current position if ( (len = size_of_substring(this->glyphs[i]->unicode.c_str(), _utf8)) ){ - for(auto& node: font->_children) { + for(auto& node: font->children) { if (!previous_unicode) { break; } @@ -276,7 +276,7 @@ SvgFont::glyph_modified(SPObject* /* blah */, unsigned int /* bleh */){ Geom::PathVector SvgFont::flip_coordinate_system(SPFont* spfont, Geom::PathVector pathv){ double units_per_em = 1000; - for(auto& obj: spfont->_children) { + for(auto& obj: spfont->children) { if (dynamic_cast(&obj)) { //XML Tree being directly used here while it shouldn't be. sp_repr_get_double(obj.getRepr(), "units_per_em", &units_per_em); @@ -344,7 +344,7 @@ SvgFont::scaled_font_render_glyph (cairo_scaled_font_t */*scaled_font*/, if (node->hasChildren()){ //render the SVG described on this glyph's child nodes. - for(auto& child: node->_children) { + for(auto& child: node->children) { { SPPath *path = dynamic_cast(&child); if (path) { @@ -379,7 +379,7 @@ SvgFont::scaled_font_render_glyph (cairo_scaled_font_t */*scaled_font*/, cairo_font_face_t* SvgFont::get_font_face(){ if (!this->userfont) { - for(auto& node: font->_children) { + for(auto& node: font->children) { SPGlyph *glyph = dynamic_cast(&node); if (glyph) { glyphs.push_back(glyph); diff --git a/src/document.cpp b/src/document.cpp index 3dcec4795..aebb7829f 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -257,7 +257,7 @@ void SPDocument::setCurrentPersp3D(Persp3D * const persp) { void SPDocument::getPerspectivesInDefs(std::vector &list) const { - for (auto& i: root->defs->_children) { + for (auto& i: root->defs->children) { if (SP_IS_PERSP3D(&i)) { list.push_back(SP_PERSP3D(&i)); } @@ -1256,7 +1256,7 @@ static std::vector &find_items_in_area(std::vector &s, SPGroup { g_return_val_if_fail(SP_IS_GROUP(group), s); - for (auto& o: group->_children) { + for (auto& o: group->children) { if ( SP_IS_ITEM(&o) ) { if (SP_IS_GROUP(&o) && (SP_GROUP(&o)->effectiveLayerMode(dkey) == SPGroup::LAYER || into_groups)) { s = find_items_in_area(s, SP_GROUP(&o), dkey, area, test, take_insensitive, into_groups); @@ -1278,7 +1278,7 @@ Returns true if an item is among the descendants of group (recursively). */ static bool item_is_in_group(SPItem *item, SPGroup *group) { - for (auto& o: group->_children) { + for (auto& o: group->children) { if ( SP_IS_ITEM(&o) ) { if (SP_ITEM(&o) == item) { return true; @@ -1298,7 +1298,7 @@ SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *gro Inkscape::Preferences *prefs = Inkscape::Preferences::get(); gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for (auto& o: group->_children) { + for (auto& o: group->children) { if (bottomMost) { break; } @@ -1328,7 +1328,7 @@ The list can be persisted, which improves "find at multiple points" speed. */ void SPDocument::build_flat_item_list(unsigned int dkey, SPGroup *group, gboolean into_groups) const { - for (auto& o: group->_children) { + for (auto& o: group->children) { if (!SP_IS_ITEM(&o)) { continue; } @@ -1392,7 +1392,7 @@ static SPItem *find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Poin Inkscape::Preferences *prefs = Inkscape::Preferences::get(); gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for (auto& o: group->_children) { + for (auto& o: group->children) { if (!SP_IS_ITEM(&o)) { continue; } @@ -1597,7 +1597,7 @@ static unsigned int count_objects_recursive(SPObject *obj, unsigned int count) { count++; // obj itself - for (auto& i: obj->_children) { + for (auto& i: obj->children) { count = count_objects_recursive(&i, count); } @@ -1623,12 +1623,12 @@ static unsigned int objects_in_document(SPDocument *document) static void vacuum_document_recursive(SPObject *obj) { if (SP_IS_DEFS(obj)) { - for (auto& def: obj->_children) { + for (auto& def: obj->children) { // fixme: some inkscape-internal nodes in the future might not be collectable def.requestOrphanCollection(); } } else { - for (auto& i: obj->_children) { + for (auto& i: obj->children) { vacuum_document_recursive(&i); } } @@ -1757,7 +1757,7 @@ void SPDocument::importDefsNode(SPDocument *source, Inkscape::XML::Node *defs, I // Prevent duplicates of solid swatches by checking if equivalent swatch already exists if (src && SP_IS_GRADIENT(src)) { SPGradient *s_gr = SP_GRADIENT(src); - for (auto& trg: getDefs()->_children) { + for (auto& trg: getDefs()->children) { if (&trg && (src != &trg) && SP_IS_GRADIENT(&trg)) { SPGradient *t_gr = SP_GRADIENT(&trg); if (t_gr && s_gr->isEquivalent(t_gr)) { @@ -1828,7 +1828,7 @@ void SPDocument::importDefsNode(SPDocument *source, Inkscape::XML::Node *defs, I id.erase( pos ); // Check that it really is a duplicate - for (auto& trg: getDefs()->_children) { + for (auto& trg: getDefs()->children) { if(&trg && SP_IS_SYMBOL(&trg) && src != &trg ) { std::string id2 = trg.getRepr()->attribute("id"); diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index bedf2fa7f..1310bb343 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -986,7 +986,7 @@ void CairoRenderContext::popState(void) static bool pattern_hasItemChildren(SPPattern *pat) { - for (auto& child: pat->_children) { + for (auto& child: pat->children) { if (SP_IS_ITEM (&child)) { return true; } @@ -1086,7 +1086,7 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver // show items and render them for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i && SP_IS_OBJECT(pat_i) && pattern_hasItemChildren(pat_i)) { // find the first one with item children - for (auto& child: pat_i->_children) { + for (auto& child: pat_i->children) { if (SP_IS_ITEM(&child)) { SP_ITEM(&child)->invoke_show(drawing, dkey, SP_ITEM_REFERENCE_FLAGS); _renderer->renderItem(pattern_ctx, SP_ITEM(&child)); @@ -1115,7 +1115,7 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver // hide all items for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i && SP_IS_OBJECT(pat_i) && pattern_hasItemChildren(pat_i)) { // find the first one with item children - for (auto& child: pat_i->_children) { + for (auto& child: pat_i->children) { if (SP_IS_ITEM(&child)) { SP_ITEM(&child)->invoke_hide(dkey); } diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 088eaf11d..cd96a7f58 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -741,7 +741,7 @@ CairoRenderer::applyClipPath(CairoRenderContext *ctx, SPClipPath const *cp) TRACE(("BEGIN clip\n")); SPObject const *co = cp; - for (auto& child: co->_children) { + for (auto& child: co->children) { SPItem const *item = dynamic_cast(&child); if (item) { @@ -800,7 +800,7 @@ CairoRenderer::applyMask(CairoRenderContext *ctx, SPMask const *mask) TRACE(("BEGIN mask\n")); SPObject const *co = mask; - for (auto& child: co->_children) { + for (auto& child: co->children) { SPItem const *item = dynamic_cast(&child); if (item) { // TODO fix const correctness: diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp index c0c086c7a..d4c5d95a3 100644 --- a/src/extension/internal/emf-print.cpp +++ b/src/extension/internal/emf-print.cpp @@ -1042,7 +1042,7 @@ void PrintEmf::do_clip_if_present(SPStyle const *style){ /* find the clipping path */ Geom::PathVector combined_pathvector; Geom::Affine tfc; // clipping transform, generally not the same as item transform - for (auto& child: scp->_children) { + for (auto& child: scp->children) { item = SP_ITEM(&child); if (!item) { break; @@ -1085,7 +1085,7 @@ Geom::PathVector PrintEmf::merge_PathVector_with_group(Geom::PathVector const &c new_combined_pathvector = combined_pathvector; SPGroup *group = SP_GROUP(item); Geom::Affine tfc = item->transform * transform; - for (auto& child: group->_children) { + for (auto& child: group->children) { item = SP_ITEM(&child); if (!item) { break; diff --git a/src/extension/internal/javafx-out.cpp b/src/extension/internal/javafx-out.cpp index 51608e4fa..d7ad7e6f7 100644 --- a/src/extension/internal/javafx-out.cpp +++ b/src/extension/internal/javafx-out.cpp @@ -732,7 +732,7 @@ bool JavaFXOutput::doTreeRecursive(SPDocument *doc, SPObject *obj) /** * Descend into children */ - for (auto &child: obj->_children) + for (auto &child: obj->children) { if (!doTreeRecursive(doc, &child)) { return false; @@ -804,7 +804,7 @@ bool JavaFXOutput::doBody(SPDocument *doc, SPObject *obj) /** * Descend into children */ - for (auto &child: obj->_children) + for (auto &child: obj->children) { if (!doBody(doc, &child)) { return false; diff --git a/src/extension/internal/metafile-print.cpp b/src/extension/internal/metafile-print.cpp index 5c10f7dd9..061eb634d 100644 --- a/src/extension/internal/metafile-print.cpp +++ b/src/extension/internal/metafile-print.cpp @@ -293,7 +293,7 @@ void PrintMetafile::brush_classify(SPObject *parent, int depth, Inkscape::Pixbuf } // still looking? Look at this pattern's children, if there are any - for (auto& child: pat_i->_children) { + for (auto& child: pat_i->children) { if (*epixbuf || *hatchType != -1) { break; } @@ -304,7 +304,7 @@ void PrintMetafile::brush_classify(SPObject *parent, int depth, Inkscape::Pixbuf *epixbuf = ((SPImage *)parent)->pixbuf; return; } else { // some inkscape rearrangements pass through nodes between pattern and image which are not classified as either. - for (auto& child: parent->_children) { + for (auto& child: parent->children) { if (*epixbuf || *hatchType != -1) { break; } diff --git a/src/extension/internal/pov-out.cpp b/src/extension/internal/pov-out.cpp index 08f533010..8df883069 100644 --- a/src/extension/internal/pov-out.cpp +++ b/src/extension/internal/pov-out.cpp @@ -479,7 +479,7 @@ bool PovOutput::doTreeRecursive(SPDocument *doc, SPObject *obj) /** * Descend into children */ - for (auto &child: obj->_children) + for (auto &child: obj->children) { if (!doTreeRecursive(doc, &child)) return false; diff --git a/src/file.cpp b/src/file.cpp index 11e5f0a42..9ba180cb4 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1204,7 +1204,7 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri, // Count the number of top-level items in the imported document. guint items_count = 0; - for (auto& child: doc->getRoot()->_children) { + for (auto& child: doc->getRoot()->children) { if (SP_IS_ITEM(&child)) { items_count++; } @@ -1234,7 +1234,7 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri, // Construct a new object representing the imported image, // and insert it into the current document. SPObject *new_obj = NULL; - for (auto& child: doc->getRoot()->_children) { + for (auto& child: doc->getRoot()->children) { if (SP_IS_ITEM(&child)) { Inkscape::XML::Node *newitem = child.getRepr()->duplicate(xml_in_doc); diff --git a/src/filter-chemistry.cpp b/src/filter-chemistry.cpp index 2e99842ec..3255bfb70 100644 --- a/src/filter-chemistry.cpp +++ b/src/filter-chemistry.cpp @@ -51,7 +51,7 @@ static guint count_filter_hrefs(SPObject *o, SPFilter *filter) i ++; } - for (auto& child: o->_children) { + for (auto& child: o->children) { i += count_filter_hrefs(&child, filter); } @@ -491,14 +491,14 @@ void remove_filter_gaussian_blur (SPObject *item) bool filter_is_single_gaussian_blur(SPFilter *filter) { - return (filter->_children.size() == 1 && - SP_IS_GAUSSIANBLUR(&filter->_children.front())); + return (filter->children.size() == 1 && + SP_IS_GAUSSIANBLUR(&filter->children.front())); } double get_single_gaussian_blur_radius(SPFilter *filter) { - if (filter->_children.size() == 1 && - SP_IS_GAUSSIANBLUR(&filter->_children.front())) { + if (filter->children.size() == 1 && + SP_IS_GAUSSIANBLUR(&filter->children.front())) { SPGaussianBlur *gb = SP_GAUSSIANBLUR(filter->firstChild()); double x = gb->stdDeviation.getNumber(); diff --git a/src/filters/componenttransfer.cpp b/src/filters/componenttransfer.cpp index e52f6d478..bc91e58a7 100644 --- a/src/filters/componenttransfer.cpp +++ b/src/filters/componenttransfer.cpp @@ -49,7 +49,7 @@ static void sp_feComponentTransfer_children_modified(SPFeComponentTransfer *sp_c { if (sp_componenttransfer->renderer) { bool set[4] = {false, false, false, false}; - for(auto& node: sp_componenttransfer->_children) { + for(auto& node: sp_componenttransfer->children) { int i = 4; SPFeFuncNode *funcNode = SP_FEFUNCNODE(&node); diff --git a/src/filters/merge.cpp b/src/filters/merge.cpp index 6af1e8115..8ec40cb46 100644 --- a/src/filters/merge.cpp +++ b/src/filters/merge.cpp @@ -94,7 +94,7 @@ void SPFeMerge::build_renderer(Inkscape::Filters::Filter* filter) { int in_nr = 0; - for(auto& input: _children) { + for(auto& input: children) { if (SP_IS_FEMERGENODE(&input)) { SPFeMergeNode *node = SP_FEMERGENODE(&input); nr_merge->set_input(in_nr, node->input); diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index 9c46a2efb..b6ea0d8c1 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -199,7 +199,7 @@ static guint count_gradient_hrefs(SPObject *o, SPGradient *gr) i ++; } - for (auto& child: o->_children) { + for (auto& child: o->children) { i += count_gradient_hrefs(&child, gr); } @@ -926,7 +926,7 @@ void sp_item_gradient_reverse_vector(SPItem *item, Inkscape::PaintTarget fill_or GSList *child_objects = NULL; std::vector offsets; double offset; - for (auto& child: vector->_children) { + for (auto& child: vector->children) { child_reprs = g_slist_prepend (child_reprs, child.getRepr()); child_objects = g_slist_prepend (child_objects, &child); offset=0; @@ -979,7 +979,7 @@ void sp_item_gradient_invert_vector_color(SPItem *item, Inkscape::PaintTarget fi sp_gradient_repr_set_link(gradient->getRepr(), vector); } - for (auto& child: vector->_children) { + for (auto& child: vector->children) { if (SP_IS_STOP(&child)) { guint32 color = SP_STOP(&child)->get_rgba32(); //g_message("Stop color %d", color); diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index b9d1fe109..fd2f4b33b 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -2539,7 +2539,7 @@ void GrDrag::deleteSelected(bool just_one) // cannot use vector->vector.stops.size() because the vector might be invalidated by deletion of a midstop // manually count the children, don't know if there already exists a function for this... int len = 0; - for (auto& child: stopinfo->vector->_children) + for (auto& child: stopinfo->vector->children) { if ( SP_IS_STOP(&child) ) { len ++; diff --git a/src/helper/pixbuf-ops.cpp b/src/helper/pixbuf-ops.cpp index fb1740fc5..24d2d7f1e 100644 --- a/src/helper/pixbuf-ops.cpp +++ b/src/helper/pixbuf-ops.cpp @@ -53,7 +53,7 @@ static void hide_other_items_recursively(SPObject *o, GSList *list, unsigned dke // recurse if (!g_slist_find(list, o)) { - for (auto& child: o->_children) { + for (auto& child: o->children) { hide_other_items_recursively(&child, list, dkey); } } diff --git a/src/helper/png-write.cpp b/src/helper/png-write.cpp index c59db9df6..2255157e2 100644 --- a/src/helper/png-write.cpp +++ b/src/helper/png-write.cpp @@ -374,7 +374,7 @@ static void hide_other_items_recursively(SPObject *o, const std::vector // recurse if (list.end()==find(list.begin(),list.end(),o)) { - for (auto& child: o->_children) { + for (auto& child: o->children) { hide_other_items_recursively(&child, list, dkey); } } diff --git a/src/helper/stock-items.cpp b/src/helper/stock-items.cpp index cf10a6c4d..647e42916 100644 --- a/src/helper/stock-items.cpp +++ b/src/helper/stock-items.cpp @@ -204,7 +204,7 @@ SPObject *get_stock_item(gchar const *urn, gboolean stock) } SPObject *object = NULL; if (!strcmp(base, "marker") && !stock) { - for (auto& child: defs->_children) + for (auto& child: defs->children) { if (child.getRepr()->attribute("inkscape:stockid") && !strcmp(name_p, child.getRepr()->attribute("inkscape:stockid")) && @@ -216,7 +216,7 @@ SPObject *get_stock_item(gchar const *urn, gboolean stock) } else if (!strcmp(base,"pattern") && !stock) { - for (auto& child: defs->_children) + for (auto& child: defs->children) { if (child.getRepr()->attribute("inkscape:stockid") && !strcmp(name_p, child.getRepr()->attribute("inkscape:stockid")) && @@ -228,7 +228,7 @@ SPObject *get_stock_item(gchar const *urn, gboolean stock) } else if (!strcmp(base,"gradient") && !stock) { - for (auto& child: defs->_children) + for (auto& child: defs->children) { if (child.getRepr()->attribute("inkscape:stockid") && !strcmp(name_p, child.getRepr()->attribute("inkscape:stockid")) && diff --git a/src/id-clash.cpp b/src/id-clash.cpp index fecad9eee..cb5893133 100644 --- a/src/id-clash.cpp +++ b/src/id-clash.cpp @@ -187,7 +187,7 @@ find_references(SPObject *elem, refmap_type &refmap) } // recurse - for (auto& child: elem->_children) + for (auto& child: elem->children) { find_references(&child, refmap); } @@ -242,7 +242,7 @@ change_clashing_ids(SPDocument *imported_doc, SPDocument *current_doc, // recurse - for (auto& child: elem->_children) + for (auto& child: elem->children) { change_clashing_ids(imported_doc, current_doc, &child, refmap, id_changes); } diff --git a/src/layer-fns.cpp b/src/layer-fns.cpp index d149089db..030ebc07e 100644 --- a/src/layer-fns.cpp +++ b/src/layer-fns.cpp @@ -36,7 +36,7 @@ bool is_layer(SPObject &object) { * @returns NULL if there are no further layers under a parent */ SPObject *next_sibling_layer(SPObject *layer) { - SPObject::ChildrenList &list = layer->parent->_children; + SPObject::ChildrenList &list = layer->parent->children; auto l = std::find_if(++list.iterator_to(*layer), list.end(), &is_layer); return l != list.end() ? &*l : nullptr; } @@ -48,7 +48,7 @@ SPObject *next_sibling_layer(SPObject *layer) { SPObject *previous_sibling_layer(SPObject *layer) { using Inkscape::Algorithms::find_last_if; - SPObject::ChildrenList &list = layer->parent->_children; + SPObject::ChildrenList &list = layer->parent->children; auto l = find_last_if(list.begin(), list.iterator_to(*layer), &is_layer); return l != list.iterator_to(*layer) ? &*(l) : nullptr; } @@ -60,8 +60,8 @@ SPObject *previous_sibling_layer(SPObject *layer) { SPObject *first_descendant_layer(SPObject *layer) { SPObject *first_descendant = nullptr; while (true) { - auto tmp = std::find_if(layer->_children.begin(), layer->_children.end(), &is_layer); - if (tmp != layer->_children.end()) { + auto tmp = std::find_if(layer->children.begin(), layer->children.end(), &is_layer); + if (tmp != layer->children.end()) { first_descendant = layer; } else { break; @@ -79,8 +79,8 @@ SPObject *first_descendant_layer(SPObject *layer) { SPObject *last_child_layer(SPObject *layer) { using Inkscape::Algorithms::find_last_if; - auto l = find_last_if(layer->_children.begin(), layer->_children.end(), &is_layer); - return l != layer->_children.end() ? &*l : nullptr; + auto l = find_last_if(layer->children.begin(), layer->children.end(), &is_layer); + return l != layer->children.end() ? &*l : nullptr; } SPObject *last_elder_layer(SPObject *root, SPObject *layer) { diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp index 937d67895..4deae821a 100644 --- a/src/libnrtype/font-lister.cpp +++ b/src/libnrtype/font-lister.cpp @@ -298,7 +298,7 @@ void FontLister::update_font_list_recursive(SPObject *r, std::listpush_back(Glib::ustring(font_family)); } - for (auto& child: r->_children) { + for (auto& child: r->children) { update_font_list_recursive(&child, l); } } diff --git a/src/live_effects/lpe-perspective_path.cpp b/src/live_effects/lpe-perspective_path.cpp index c62ead2b3..049e10f0f 100644 --- a/src/live_effects/lpe-perspective_path.cpp +++ b/src/live_effects/lpe-perspective_path.cpp @@ -107,7 +107,7 @@ void LPEPerspectivePath::refresh(Gtk::Entry* perspective) { perspectiveID = perspective->get_text(); Persp3D *first = 0; Persp3D *persp = 0; - for (auto& child: lpeobj->document->getDefs()->_children) { + for (auto& child: lpeobj->document->getDefs()->children) { if (SP_IS_PERSP3D(&child) && first == 0) { first = SP_PERSP3D(&child); } diff --git a/src/main.cpp b/src/main.cpp index 7ab27dcb2..c01c4ee46 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1228,7 +1228,7 @@ static int sp_process_file_list(GSList *fl) std::vector items; SPRoot *root = doc->getRoot(); doc->ensureUpToDate(); - for (auto& iter: root->_children) { + for (auto& iter: root->children) { SPItem* item = (SPItem*) &iter; if (! (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item) || SP_IS_GROUP(item))) { continue; @@ -1483,7 +1483,7 @@ do_query_all_recurse (SPObject *o) } } - for(auto& child: o->_children) { + for(auto& child: o->children) { do_query_all_recurse (&child); } } diff --git a/src/object-set.cpp b/src/object-set.cpp index b7b84e163..1b994106a 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -93,7 +93,7 @@ bool ObjectSet::_anyAncestorIsInSet(SPObject *object) { } void ObjectSet::_removeDescendantsFromSet(SPObject *object) { - for (auto& child: object->_children) { + for (auto& child: object->children) { if (includes(&child)) { _remove(&child); // there is certainly no children of this child in the set @@ -130,7 +130,7 @@ SPObject *ObjectSet::_getMutualAncestor(SPObject *object) { bool flag = true; while (o->parent != nullptr) { - for (auto &child: o->parent->_children) { + for (auto &child: o->parent->children) { if(&child != o && !includes(&child)) { flag = false; break; @@ -147,7 +147,7 @@ SPObject *ObjectSet::_getMutualAncestor(SPObject *object) { void ObjectSet::_removeAncestorsFromSet(SPObject *object) { SPObject* o = object; while (o->parent != nullptr) { - for (auto &child: o->parent->_children) { + for (auto &child: o->parent->children) { if (&child != o) { _add(&child); } diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp index 580fb5fc7..307dcf062 100644 --- a/src/object-snapper.cpp +++ b/src/object-snapper.cpp @@ -90,7 +90,7 @@ void Inkscape::ObjectSnapper::_findCandidates(SPObject* parent, Geom::Rect bbox_to_snap_incl = bbox_to_snap; // _incl means: will include the snapper tolerance bbox_to_snap_incl.expandBy(getSnapperTolerance()); // see? - for (auto& o: parent->_children) { + for (auto& o: parent->children) { g_assert(dt != NULL); SPItem *item = dynamic_cast(&o); if (item && !(dt->itemIsHidden(item) && !clip_or_mask)) { diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 849e332bf..e260af8e5 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -215,7 +215,7 @@ Persp3D *persp3d_create_xml_element(SPDocument *document, Persp3DImpl *dup) {// Persp3D *persp3d_document_first_persp(SPDocument *document) { Persp3D *first = 0; - for (auto& child: document->getDefs()->_children) { + for (auto& child: document->getDefs()->children) { if (SP_IS_PERSP3D(&child)) { first = SP_PERSP3D(&child); break; @@ -534,7 +534,7 @@ persp3d_print_debugging_info (Persp3D *persp) { void persp3d_print_debugging_info_all(SPDocument *document) { - for (auto& child: document->getDefs()->_children) { + for (auto& child: document->getDefs()->children) { if (SP_IS_PERSP3D(&child)) { persp3d_print_debugging_info(SP_PERSP3D(&child)); } diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 28bcadef5..81d711e77 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -433,7 +433,7 @@ static void add_ids_recursive(std::vector &ids, SPObject *obj) ids.push_back(obj->getId()); if (dynamic_cast(obj)) { - for (auto& child: obj->_children) { + for (auto& child: obj->children) { add_ids_recursive(ids, &child); } } @@ -587,7 +587,7 @@ void sp_edit_clear_all(Inkscape::Selection *selection) */ std::vector &get_all_items(std::vector &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, std::vector const &exclude) { - for (auto& child: from->_children) { + for (auto& child: from->children) { SPItem *item = dynamic_cast(&child); if (item && !desktop->isLayer(item) && @@ -1143,7 +1143,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des pp = document->getObjectByRepr(repr->parent()); minpos = 0; g_assert(dynamic_cast(pp)); - for (auto& pc: pp->_children) { + for (auto& pc: pp->children) { if(dynamic_cast(&pc)) { break; } @@ -1202,7 +1202,7 @@ take_style_from_item(SPObject *object) (dynamic_cast(object) && object->firstChild() && object->firstChild()->getNext() == NULL)) { // if this is a text with exactly one tspan child, merge the style of that tspan as well // If this is a group, merge the style of its topmost (last) child with style - auto list = object->_children | boost::adaptors::reversed; + auto list = object->children | boost::adaptors::reversed; for (auto& element: list) { if (element.style ) { SPCSSAttr *temp = sp_css_attr_from_object(&element, SP_STYLE_FLAG_IFSET); @@ -1624,9 +1624,9 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons } else if (transform_flowtext_with_frame) { // apply the inverse of the region's transform to the so that the flow remains // the same (even though the output itself gets transformed) - for (auto& region: item->_children) { + for (auto& region: item->children) { if (dynamic_cast(®ion) || dynamic_cast(®ion)) { - for (auto& itm: region._children) { + for (auto& itm: region.children) { SPUse *use = dynamic_cast(&itm); if ( use ) { use->doWriteTransform(use->getRepr(), use->transform.inverse(), NULL, compensate); @@ -2348,7 +2348,7 @@ typedef struct ListReverse { private: static GSList *make_list(SPObject *object, SPObject *limit) { GSList *list = NULL; - for (auto &child: object->_children) { + for (auto &child: object->children) { if (&child == limit) { break; } @@ -3435,7 +3435,7 @@ void sp_selection_untile(SPDesktop *desktop) Geom::Affine pat_transform = basePat->getTransform(); pat_transform *= item->transform; - for (auto& child: pattern->_children) { + for (auto& child: pattern->children) { if (dynamic_cast(&child)) { Inkscape::XML::Node *copy = child.getRepr()->duplicate(xml_doc); SPItem *i = dynamic_cast(desktop->currentLayer()->appendChildRepr(copy)); @@ -4103,7 +4103,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for ( std::map::iterator it = referenced_objects.begin() ; it != referenced_objects.end() ; ++it) { SPObject *obj = (*it).first; // Group containing the clipped paths or masks GSList *items_to_move = NULL; - for (auto& child: obj->_children) { + for (auto& child: obj->children) { // Collect all clipped paths and masks within a single group Inkscape::XML::Node *copy = child.getRepr()->duplicate(xml_doc); if(copy->attribute("inkscape:original-d") && copy->attribute("inkscape:path-effect")) @@ -4264,7 +4264,7 @@ static void itemtree_map(void (*f)(SPItem *, SPDesktop *), SPObject *root, SPDes f(item, desktop); } } - for (auto& child: root->_children) { + for (auto& child: root->children) { //don't recurse into locked layers SPItem *item = dynamic_cast(&child); if (!(item && desktop->isLayer(item) && item->isLocked())) { diff --git a/src/sp-clippath.cpp b/src/sp-clippath.cpp index 25bf77f00..c0c848bbd 100644 --- a/src/sp-clippath.cpp +++ b/src/sp-clippath.cpp @@ -128,7 +128,7 @@ void SPClipPath::update(SPCtx* ctx, unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -167,7 +167,7 @@ void SPClipPath::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -200,7 +200,7 @@ Inkscape::DrawingItem *SPClipPath::show(Inkscape::Drawing &drawing, unsigned int Inkscape::DrawingGroup *ai = new Inkscape::DrawingGroup(drawing); display = sp_clippath_view_new_prepend(display, key, ai); - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_ITEM(&child)) { Inkscape::DrawingItem *ac = SP_ITEM(&child)->invoke_show(drawing, key, SP_ITEM_REFERENCE_FLAGS); @@ -223,7 +223,7 @@ Inkscape::DrawingItem *SPClipPath::show(Inkscape::Drawing &drawing, unsigned int } void SPClipPath::hide(unsigned int key) { - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_ITEM(&child)) { SP_ITEM(&child)->invoke_hide(key); } @@ -252,7 +252,7 @@ void SPClipPath::setBBox(unsigned int key, Geom::OptRect const &bbox) { Geom::OptRect SPClipPath::geometricBounds(Geom::Affine const &transform) { Geom::OptRect bbox; - for (auto& i: _children) { + for (auto& i: children) { if (SP_IS_ITEM(&i)) { Geom::OptRect tmp = SP_ITEM(&i)->geometricBounds(Geom::Affine(SP_ITEM(&i)->transform) * transform); bbox.unionWith(tmp); diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index af4ea96d7..865c6891e 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -54,7 +54,7 @@ void SPDefs::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -79,7 +79,7 @@ Inkscape::XML::Node* SPDefs::write(Inkscape::XML::Document *xml_doc, Inkscape::X } GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { l = g_slist_prepend(l, crepr); @@ -93,7 +93,7 @@ Inkscape::XML::Node* SPDefs::write(Inkscape::XML::Document *xml_doc, Inkscape::X } } else { - for (auto& child: _children) { + for (auto& child: children) { child.updateRepr(flags); } } diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index 170847c0b..9ecee6a5f 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -268,7 +268,7 @@ Inkscape::XML::Node* SPFilter::write(Inkscape::XML::Document *doc, Inkscape::XML } GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node *crepr = child.updateRepr(doc, NULL, flags); if (crepr) { @@ -282,7 +282,7 @@ Inkscape::XML::Node* SPFilter::write(Inkscape::XML::Document *doc, Inkscape::XML l = g_slist_remove (l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { child.updateRepr(flags); } } @@ -420,7 +420,7 @@ void sp_filter_build_renderer(SPFilter *sp_filter, Inkscape::Filters::Filter *nr } nr_filter->clear_primitives(); - for(auto& primitive_obj: sp_filter->_children) { + for(auto& primitive_obj: sp_filter->children) { if (SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { SPFilterPrimitive *primitive = SP_FILTER_PRIMITIVE(&primitive_obj); g_assert(primitive != NULL); @@ -439,7 +439,7 @@ int sp_filter_primitive_count(SPFilter *filter) { g_assert(filter != NULL); int count = 0; - for(auto& primitive_obj: filter->_children) { + for(auto& primitive_obj: filter->children) { if (SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { count++; } @@ -512,7 +512,7 @@ Glib::ustring sp_filter_get_new_result_name(SPFilter *filter) { g_assert(filter != NULL); int largest = 0; - for(auto& primitive_obj: filter->_children) { + for(auto& primitive_obj: filter->children) { if (SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { Inkscape::XML::Node *repr = primitive_obj.getRepr(); char const *result = repr->attribute("result"); diff --git a/src/sp-flowdiv.cpp b/src/sp-flowdiv.cpp index ad04f0d78..17b841e37 100644 --- a/src/sp-flowdiv.cpp +++ b/src/sp-flowdiv.cpp @@ -27,7 +27,7 @@ void SPFlowdiv::update(SPCtx *ctx, unsigned int flags) { childflags &= SP_OBJECT_MODIFIED_CASCADE; GSList* l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -65,7 +65,7 @@ void SPFlowdiv::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -104,7 +104,7 @@ Inkscape::XML::Node* SPFlowdiv::write(Inkscape::XML::Document *xml_doc, Inkscape GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node* c_repr = NULL; if ( SP_IS_FLOWTSPAN (&child) ) { @@ -126,7 +126,7 @@ Inkscape::XML::Node* SPFlowdiv::write(Inkscape::XML::Document *xml_doc, Inkscape l = g_slist_remove(l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if ( SP_IS_FLOWTSPAN (&child) ) { child.updateRepr(flags); } else if ( SP_IS_FLOWPARA(&child) ) { @@ -168,7 +168,7 @@ void SPFlowtspan::update(SPCtx *ctx, unsigned int flags) { childflags &= SP_OBJECT_MODIFIED_CASCADE; GSList* l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -206,7 +206,7 @@ void SPFlowtspan::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -242,7 +242,7 @@ Inkscape::XML::Node *SPFlowtspan::write(Inkscape::XML::Document *xml_doc, Inksca GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node* c_repr = NULL; if ( SP_IS_FLOWTSPAN(&child) ) { @@ -264,7 +264,7 @@ Inkscape::XML::Node *SPFlowtspan::write(Inkscape::XML::Document *xml_doc, Inksca l = g_slist_remove(l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if ( SP_IS_FLOWTSPAN(&child) ) { child.updateRepr(flags); } else if ( SP_IS_FLOWPARA(&child) ) { @@ -307,7 +307,7 @@ void SPFlowpara::update(SPCtx *ctx, unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList* l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -343,7 +343,7 @@ void SPFlowpara::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -379,7 +379,7 @@ Inkscape::XML::Node *SPFlowpara::write(Inkscape::XML::Document *xml_doc, Inkscap GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node* c_repr = NULL; if ( SP_IS_FLOWTSPAN(&child) ) { @@ -401,7 +401,7 @@ Inkscape::XML::Node *SPFlowpara::write(Inkscape::XML::Document *xml_doc, Inkscap l = g_slist_remove(l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if ( SP_IS_FLOWTSPAN(&child) ) { child.updateRepr(flags); } else if ( SP_IS_FLOWPARA(&child) ) { diff --git a/src/sp-flowregion.cpp b/src/sp-flowregion.cpp index 71e029072..716a09914 100644 --- a/src/sp-flowregion.cpp +++ b/src/sp-flowregion.cpp @@ -63,7 +63,7 @@ void SPFlowregion::update(SPCtx *ctx, unsigned int flags) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -102,7 +102,7 @@ void SPFlowregion::UpdateComputed(void) } computed.clear(); - for (auto& child: _children) { + for (auto& child: children) { Shape *shape = 0; GetDest(&child, &shape); computed.push_back(shape); @@ -118,7 +118,7 @@ void SPFlowregion::modified(guint flags) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -145,7 +145,7 @@ Inkscape::XML::Node *SPFlowregion::write(Inkscape::XML::Document *xml_doc, Inksc } GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); @@ -161,7 +161,7 @@ Inkscape::XML::Node *SPFlowregion::write(Inkscape::XML::Document *xml_doc, Inksc l = g_slist_remove(l, l->data); } - for (auto& child: _children) { + for (auto& child: children) { if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { child.updateRepr(flags); } @@ -220,7 +220,7 @@ void SPFlowregionExclude::update(SPCtx *ctx, unsigned int flags) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -258,7 +258,7 @@ void SPFlowregionExclude::UpdateComputed(void) computed = NULL; } - for (auto& child: _children) { + for (auto& child: children) { GetDest(&child, &computed); } } @@ -272,7 +272,7 @@ void SPFlowregionExclude::modified(guint flags) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -300,7 +300,7 @@ Inkscape::XML::Node *SPFlowregionExclude::write(Inkscape::XML::Document *xml_doc GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { @@ -315,7 +315,7 @@ Inkscape::XML::Node *SPFlowregionExclude::write(Inkscape::XML::Document *xml_doc } } else { - for (auto& child: _children) { + for (auto& child: children) { child.updateRepr(flags); } } diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp index 83fa5a1b4..79988bdc2 100644 --- a/src/sp-flowtext.cpp +++ b/src/sp-flowtext.cpp @@ -72,7 +72,7 @@ void SPFlowtext::update(SPCtx* ctx, unsigned int flags) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -135,7 +135,7 @@ void SPFlowtext::modified(unsigned int flags) { } } - for (auto& o: _children) { + for (auto& o: children) { if (dynamic_cast(&o)) { region = &o; break; @@ -223,7 +223,7 @@ Inkscape::XML::Node* SPFlowtext::write(Inkscape::XML::Document* doc, Inkscape::X GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node *c_repr = NULL; if ( dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child)) { @@ -241,7 +241,7 @@ Inkscape::XML::Node* SPFlowtext::write(Inkscape::XML::Document* doc, Inkscape::X l = g_slist_remove(l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if ( dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child) || dynamic_cast(&child)) { child.updateRepr(flags); } @@ -390,7 +390,7 @@ void SPFlowtext::_buildLayoutInput(SPObject *root, Shape const *exclusion_shape, *pending_line_break_object = NULL; } - for (auto& child: root->_children) { + for (auto& child: root->children) { SPString *str = dynamic_cast(&child); if (str) { if (*pending_line_break_object) { @@ -440,7 +440,7 @@ Shape* SPFlowtext::_buildExclusionShape() const Shape *shape = new Shape(); Shape *shape_temp = new Shape(); - for (auto& child: _children) { + for (auto& child: children) { // RH: is it right that this shouldn't be recursive? SPFlowregionExclude *c_child = dynamic_cast(const_cast(&child)); if ( c_child && c_child->computed && c_child->computed->hasEdges() ) { @@ -593,7 +593,7 @@ SPItem *SPFlowtext::get_frame(SPItem const *after) SPItem *frame = 0; SPObject *region = 0; - for (auto& o: _children) { + for (auto& o: children) { if (dynamic_cast(&o)) { region = &o; break; @@ -603,7 +603,7 @@ SPItem *SPFlowtext::get_frame(SPItem const *after) if (region) { bool past = false; - for (auto& o: region->_children) { + for (auto& o: region->children) { SPItem *item = dynamic_cast(&o); if (item) { if ( (after == NULL) || past ) { @@ -707,7 +707,7 @@ Geom::Affine SPFlowtext::set_transform (Geom::Affine const &xform) } SPObject *region = NULL; - for (auto& o: _children) { + for (auto& o: children) { if (dynamic_cast(&o)) { region = &o; break; diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp index abfae1a1f..afa209dbe 100644 --- a/src/sp-gradient.cpp +++ b/src/sp-gradient.cpp @@ -276,7 +276,7 @@ void SPGradient::build(SPDocument *document, Inkscape::XML::Node *repr) SPPaintServer::build(document, repr); - for (auto& ochild: _children) { + for (auto& ochild: children) { if (SP_IS_STOP(&ochild)) { this->has_stops = TRUE; break; @@ -481,7 +481,7 @@ void SPGradient::remove_child(Inkscape::XML::Node *child) SPPaintServer::remove_child(child); this->has_stops = FALSE; - for (auto& ochild: _children) { + for (auto& ochild: children) { if (SP_IS_STOP(&ochild)) { this->has_stops = TRUE; break; @@ -536,7 +536,7 @@ void SPGradient::modified(guint flags) // FIXME: climb up the ladder of hrefs GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child); l = g_slist_prepend(l, &child); } @@ -558,7 +558,7 @@ void SPGradient::modified(guint flags) SPStop* SPGradient::getFirstStop() { SPStop* first = nullptr; - for (auto& ochild: _children) { + for (auto& ochild: children) { if (SP_IS_STOP(&ochild)) { first = SP_STOP(&ochild); break; @@ -588,7 +588,7 @@ Inkscape::XML::Node *SPGradient::write(Inkscape::XML::Document *xml_doc, Inkscap if (flags & SP_OBJECT_WRITE_BUILD) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { @@ -916,7 +916,7 @@ bool SPGradient::invalidateArray() void SPGradient::rebuildVector() { gint len = 0; - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_STOP(&child)) { len ++; } @@ -938,7 +938,7 @@ void SPGradient::rebuildVector() } } - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_STOP(&child)) { SPStop *stop = SP_STOP(&child); @@ -1023,7 +1023,7 @@ void SPGradient::rebuildArray() array.read( SP_MESH( this ) ); has_patches = false; - for (auto& ro: _children) { + for (auto& ro: children) { if (SP_IS_MESHROW(&ro)) { has_patches = true; // std::cout << " Has Patches" << std::endl; diff --git a/src/sp-hatch.cpp b/src/sp-hatch.cpp index c06045e8f..f667017fa 100644 --- a/src/sp-hatch.cpp +++ b/src/sp-hatch.cpp @@ -233,7 +233,7 @@ void SPHatch::set(unsigned int key, const gchar* value) bool SPHatch::_hasHatchPatchChildren(SPHatch const *hatch) { - for (auto& child: hatch->_children) { + for (auto& child: hatch->children) { SPHatchPath const *hatchPath = dynamic_cast(&child); if (hatchPath) { return true; @@ -248,7 +248,7 @@ std::vector SPHatch::hatchPaths() SPHatch *src = chase_hrefs(this, sigc::ptr_fun(&_hasHatchPatchChildren)); if (src) { - for (auto& child: src->_children) { + for (auto& child: src->children) { SPHatchPath *hatchPath = dynamic_cast(&child); if (hatchPath) { list.push_back(hatchPath); @@ -264,7 +264,7 @@ std::vector SPHatch::hatchPaths() const SPHatch const *src = chase_hrefs(this, sigc::ptr_fun(&_hasHatchPatchChildren)); if (src) { - for (auto& child: src->_children) { + for (auto& child: src->children) { SPHatchPath const *hatchPath = dynamic_cast(&child); if (hatchPath) { list.push_back(hatchPath); diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 8d482d9b1..63edb3c84 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -235,7 +235,7 @@ Inkscape::XML::Node* SPGroup::write(Inkscape::XML::Document *xml_doc, Inkscape:: l = NULL; - for (auto& child: _children) { + for (auto& child: children) { if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); @@ -251,7 +251,7 @@ Inkscape::XML::Node* SPGroup::write(Inkscape::XML::Document *xml_doc, Inkscape:: l = g_slist_remove (l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if ( !dynamic_cast(&child) && !dynamic_cast(&child) ) { child.updateRepr(flags); } @@ -297,7 +297,7 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox } void SPGroup::print(SPPrintContext *ctx) { - for(auto& child: _children){ + for(auto& child: children){ SPObject *o = &child; SPItem *item = dynamic_cast(o); if (item) { @@ -365,7 +365,7 @@ void SPGroup::hide (unsigned int key) { void SPGroup::snappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs) const { - for (auto& o: _children) + for (auto& o: children) { SPItem const *item = dynamic_cast(&o); if (item) { @@ -511,13 +511,13 @@ sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_d GSList *objects = NULL; Geom::Affine const g(group->transform); - for (auto& child: group->_children) { + for (auto& child: group->children) { if (SPItem *citem = dynamic_cast(&child)) { sp_item_group_ungroup_handle_clones(citem, g); } } - for (auto& child: group->_children) { + for (auto& child: group->children) { SPItem *citem = dynamic_cast(&child); if (citem) { /* Merging of style */ @@ -662,7 +662,7 @@ std::vector sp_item_group_item_list(SPGroup * group) std::vector s; g_return_val_if_fail(group != NULL, s); - for (auto& o: group->_children) { + for (auto& o: group->children) { if ( dynamic_cast(&o) ) { s.push_back((SPItem*)&o); } @@ -735,7 +735,7 @@ void SPGroup::_updateLayerMode(unsigned int display_key) { void SPGroup::translateChildItems(Geom::Translate const &tr) { if ( hasChildren() ) { - for (auto& o: _children) { + for (auto& o: children) { SPItem *item = dynamic_cast(&o); if ( item ) { sp_item_move_rel(item, tr); @@ -748,9 +748,9 @@ void SPGroup::translateChildItems(Geom::Translate const &tr) void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bool noRecurse) { if ( hasChildren() ) { - for (auto& o: _children) { + for (auto& o: children) { if ( SPDefs *defs = dynamic_cast(&o) ) { // select symbols from defs, ignore clips, masks, patterns - for (auto& defschild: defs->_children) { + for (auto& defschild: defs->children) { SPGroup *defsgroup = dynamic_cast(&defschild); if (defsgroup) defsgroup->scaleChildItemsRec(sc, p, false); @@ -871,7 +871,7 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bo gint SPGroup::getItemCount() const { gint len = 0; - for (auto& child: _children) { + for (auto& child: children) { if (dynamic_cast(&child)) { len++; } diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 53b4c0879..69da28c66 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -308,15 +308,15 @@ bool is_item(SPObject const &object) { void SPItem::raiseToTop() { using Inkscape::Algorithms::find_last_if; - auto topmost = find_last_if(++parent->_children.iterator_to(*this), parent->_children.end(), &is_item); - if (topmost != parent->_children.end()) { + auto topmost = find_last_if(++parent->children.iterator_to(*this), parent->children.end(), &is_item); + if (topmost != parent->children.end()) { getRepr()->parent()->changeOrder( getRepr(), topmost->getRepr() ); } } void SPItem::raiseOne() { - auto next_higher = std::find_if(++parent->_children.iterator_to(*this), parent->_children.end(), &is_item); - if (next_higher != parent->_children.end()) { + auto next_higher = std::find_if(++parent->children.iterator_to(*this), parent->children.end(), &is_item); + if (next_higher != parent->children.end()) { Inkscape::XML::Node *ref = next_higher->getRepr(); getRepr()->parent()->changeOrder(getRepr(), ref); } @@ -325,8 +325,8 @@ void SPItem::raiseOne() { void SPItem::lowerOne() { using Inkscape::Algorithms::find_last_if; - auto next_lower = find_last_if(parent->_children.begin(), parent->_children.iterator_to(*this), &is_item); - if (next_lower != parent->_children.iterator_to(*this)) { + auto next_lower = find_last_if(parent->children.begin(), parent->children.iterator_to(*this), &is_item); + if (next_lower != parent->children.iterator_to(*this)) { next_lower--; Inkscape::XML::Node *ref = next_lower->getRepr(); getRepr()->parent()->changeOrder(getRepr(), ref); @@ -334,8 +334,8 @@ void SPItem::lowerOne() { } void SPItem::lowerToBottom() { - auto bottom = std::find_if(parent->_children.begin(), parent->_children.iterator_to(*this), &is_item); - if (bottom != parent->_children.iterator_to(*this)) { + auto bottom = std::find_if(parent->children.begin(), parent->children.iterator_to(*this), &is_item); + if (bottom != parent->children.iterator_to(*this)) { bottom--; Inkscape::XML::Node *ref = bottom->getRepr() ; parent->getRepr()->changeOrder(getRepr(), ref); @@ -705,7 +705,7 @@ Inkscape::XML::Node* SPItem::write(Inkscape::XML::Document *xml_doc, Inkscape::X // so we need to add any children from the underlying object to the new repr if (flags & SP_OBJECT_WRITE_BUILD) { GSList *l = NULL; - for (auto& child: object->_children) { + for (auto& child: object->children) { if (dynamic_cast(&child) || dynamic_cast(&child)) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { @@ -719,7 +719,7 @@ Inkscape::XML::Node* SPItem::write(Inkscape::XML::Document *xml_doc, Inkscape::X l = g_slist_remove (l, l->data); } } else { - for (auto& child: object->_children) { + for (auto& child: object->children) { if (dynamic_cast(&child) || dynamic_cast(&child)) { child.updateRepr(flags); } @@ -928,7 +928,7 @@ unsigned int SPItem::pos_in_parent() const { unsigned int pos = 0; - for (auto& iter: parent->_children) { + for (auto& iter: parent->children) { if (&iter == this) { return pos; } @@ -974,7 +974,7 @@ void SPItem::getSnappoints(std::vector &p, Inkscap for (std::list::const_iterator o = clips_and_masks.begin(); o != clips_and_masks.end(); ++o) { if (*o) { // obj is a group object, the children are the actual clippers - for(auto& child: (*o)->_children) { + for(auto& child: (*o)->children) { SPItem *item = dynamic_cast(const_cast(&child)); if (item) { std::vector p_clip_or_mask; @@ -1302,7 +1302,7 @@ void SPItem::adjust_stroke_width_recursive(double expansion) // A clone's child is the ghost of its original - we must not touch it, skip recursion if ( !dynamic_cast(this) ) { - for (auto& o: _children) { + for (auto& o: children) { SPItem *item = dynamic_cast(&o); if (item) { item->adjust_stroke_width_recursive(expansion); @@ -1317,7 +1317,7 @@ void SPItem::freeze_stroke_width_recursive(bool freeze) // A clone's child is the ghost of its original - we must not touch it, skip recursion if ( !dynamic_cast(this) ) { - for (auto& o: _children) { + for (auto& o: children) { SPItem *item = dynamic_cast(&o); if (item) { item->freeze_stroke_width_recursive(freeze); @@ -1337,7 +1337,7 @@ sp_item_adjust_rects_recursive(SPItem *item, Geom::Affine advertized_transform) rect->compensateRxRy(advertized_transform); } - for(auto& o: item->_children) { + for(auto& o: item->children) { SPItem *itm = dynamic_cast(&o); if (itm) { sp_item_adjust_rects_recursive(itm, advertized_transform); @@ -1357,7 +1357,7 @@ void SPItem::adjust_paint_recursive (Geom::Affine advertized_transform, Geom::Af // also we do not recurse into clones, because a clone's child is the ghost of its original - // we must not touch it if (!(this && (dynamic_cast(this) || dynamic_cast(this)))) { - for (auto& o: _children) { + for (auto& o: children) { SPItem *item = dynamic_cast(&o); if (item) { // At the level of the transformed item, t_ancestors is identity; @@ -1666,7 +1666,7 @@ SPItem const *sp_item_first_item_child(SPObject const *obj) SPItem *sp_item_first_item_child(SPObject *obj) { SPItem *child = 0; - for (auto& iter: obj->_children) { + for (auto& iter: obj->children) { SPItem *tmp = dynamic_cast(&iter); if ( tmp ) { child = tmp; diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index e643cc9bd..1b44c26ff 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -227,7 +227,7 @@ Inkscape::DrawingItem *SPMask::sp_mask_show(Inkscape::Drawing &drawing, unsigned Inkscape::DrawingGroup *ai = new Inkscape::DrawingGroup(drawing); this->display = sp_mask_view_new_prepend (this->display, key, ai); - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_ITEM (&child)) { Inkscape::DrawingItem *ac = SP_ITEM (&child)->invoke_show (drawing, key, SP_ITEM_REFERENCE_FLAGS); @@ -250,7 +250,7 @@ void SPMask::sp_mask_hide(unsigned int key) { g_return_if_fail (this != NULL); g_return_if_fail (SP_IS_MASK (this)); - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_ITEM (&child)) { SP_ITEM(&child)->invoke_hide (key); } diff --git a/src/sp-mesh-array.cpp b/src/sp-mesh-array.cpp index 20d6d0d85..6bd5c85d7 100644 --- a/src/sp-mesh-array.cpp +++ b/src/sp-mesh-array.cpp @@ -632,12 +632,12 @@ void SPMeshNodeArray::read( SPMesh *mg_in ) { guint max_column = 0; guint irow = 0; // Corresponds to top of patch being read in. - for (auto& ro: mg->_children) { + for (auto& ro: mg->children) { if (SP_IS_MESHROW(&ro)) { guint icolumn = 0; // Corresponds to left of patch being read in. - for (auto& po: ro._children) { + for (auto& po: ro.children) { if (SP_IS_MESHPATCH(&po)) { @@ -652,7 +652,7 @@ void SPMeshNodeArray::read( SPMesh *mg_in ) { // Only 'top' side defined for first row. if( irow != 0 ) ++istop; - for (auto& so: po._children) { + for (auto& so: po.children) { if (SP_IS_STOP(&so)) { if( istop > 3 ) { @@ -848,13 +848,13 @@ void SPMeshNodeArray::write( SPMesh *mg ) { // First we must delete reprs for old mesh rows and patches. GSList *descendant_reprs = NULL; GSList *descendant_objects = NULL; - for (auto& row: mg->_children) { + for (auto& row: mg->children) { descendant_reprs = g_slist_prepend (descendant_reprs, row.getRepr()); descendant_objects = g_slist_prepend (descendant_objects, &row); - for (auto& patch: row._children) { + for (auto& patch: row.children) { descendant_reprs = g_slist_prepend (descendant_reprs, patch.getRepr()); descendant_objects = g_slist_prepend (descendant_objects, &patch); - for (auto& stop: patch._children) { + for (auto& stop: patch.children) { descendant_reprs = g_slist_prepend (descendant_reprs, stop.getRepr()); descendant_objects = g_slist_prepend (descendant_objects, &stop); } diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp index 173055dbd..e1d69e297 100644 --- a/src/sp-namedview.cpp +++ b/src/sp-namedview.cpp @@ -248,7 +248,7 @@ void SPNamedView::build(SPDocument *document, Inkscape::XML::Node *repr) { this->readAttr( "inkscape:lockguides" ); /* Construct guideline list */ - for (auto& o: _children) { + for (auto& o: children) { if (SP_IS_GUIDE(&o)) { SPGuide * g = SP_GUIDE(&o); this->guides.push_back(g); @@ -858,7 +858,7 @@ void sp_namedview_update_layers_from_document (SPDesktop *desktop) } // if that didn't work out, look for the topmost layer if (!layer) { - for (auto& iter: document->getRoot()->_children) { + for (auto& iter: document->getRoot()->children) { if (desktop->isLayer(&iter)) { layer = &iter; } diff --git a/src/sp-object-group.cpp b/src/sp-object-group.cpp index bfed08218..62c6f7a87 100644 --- a/src/sp-object-group.cpp +++ b/src/sp-object-group.cpp @@ -50,7 +50,7 @@ Inkscape::XML::Node *SPObjectGroup::write(Inkscape::XML::Document *xml_doc, Inks } GSList *l = 0; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { @@ -64,7 +64,7 @@ Inkscape::XML::Node *SPObjectGroup::write(Inkscape::XML::Document *xml_doc, Inks l = g_slist_remove(l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { child.updateRepr(flags); } } diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 587efd4f6..ccd70f4cb 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -400,7 +400,7 @@ void SPObject::changeCSS(SPCSSAttr *css, gchar const *attr) std::vector SPObject::childList(bool add_ref, Action) { std::vector l; - for (auto& child: _children) { + for (auto& child: children) { if (add_ref) { sp_object_ref(&child); } @@ -467,7 +467,7 @@ void SPObject::requestOrphanCollection() { } void SPObject::_sendDeleteSignalRecursive() { - for (auto& child: _children) { + for (auto& child: children) { child._delete_signal.emit(&child); child._sendDeleteSignalRecursive(); } @@ -497,7 +497,7 @@ void SPObject::deleteObject(bool propagate, bool propagate_descendants) void SPObject::cropToObject(SPObject *except) { std::vector toDelete; - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_ITEM(&child)) { if (child.isAncestorOf(except)) { child.cropToObject(except); @@ -525,11 +525,11 @@ void SPObject::attach(SPObject *object, SPObject *prev) object->parent = this; this->_updateTotalHRefCount(object->_total_hrefcount); - auto it = _children.begin(); + auto it = children.begin(); if (prev != nullptr) { - it = ++_children.iterator_to(*prev); + it = ++children.iterator_to(*prev); } - _children.insert(it, *object); + children.insert(it, *object); if (!object->xml_space.set) object->xml_space.value = this->xml_space.value; @@ -542,12 +542,12 @@ void SPObject::reorder(SPObject* obj, SPObject* prev) { g_return_if_fail(obj != prev); g_return_if_fail(!prev || prev->parent == obj->parent); - auto it = _children.begin(); + auto it = children.begin(); if (prev != nullptr) { - it = ++_children.iterator_to(*prev); + it = ++children.iterator_to(*prev); } - _children.splice(it, _children, _children.iterator_to(*obj)); + children.splice(it, children, children.iterator_to(*obj)); } void SPObject::detach(SPObject *object) @@ -558,7 +558,7 @@ void SPObject::detach(SPObject *object) g_return_if_fail(SP_IS_OBJECT(object)); g_return_if_fail(object->parent == this); - _children.erase(_children.iterator_to(*object)); + children.erase(children.iterator_to(*object)); object->releaseReferences(); object->parent = NULL; @@ -572,10 +572,10 @@ SPObject *SPObject::get_child_by_repr(Inkscape::XML::Node *repr) g_return_val_if_fail(repr != NULL, NULL); SPObject *result = nullptr; - if (_children.size() > 0 && _children.back().getRepr() == repr) { - result = &_children.back(); // optimization for common scenario + if (children.size() > 0 && children.back().getRepr() == repr) { + result = &children.back(); // optimization for common scenario } else { - for (auto& child: _children) { + for (auto& child: children) { if (child.getRepr() == repr) { result = &child; break; @@ -609,7 +609,7 @@ void SPObject::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) void SPObject::release() { SPObject* object = this; debug("id=%p, typename=%s", object, g_type_name_from_instance((GTypeInstance*)object)); - auto tmp = _children | boost::adaptors::transformed([](SPObject& obj){return &obj;}); + auto tmp = children | boost::adaptors::transformed([](SPObject& obj){return &obj;}); std::vector toRelease(tmp.begin(), tmp.end()); for (auto& p: toRelease) { @@ -797,8 +797,8 @@ void SPObject::releaseReferences() { SPObject *SPObject::getPrev() { SPObject *prev = nullptr; - if (parent && !parent->_children.empty() && &parent->_children.front() != this) { - prev = &*(--parent->_children.iterator_to(*this)); + if (parent && !parent->children.empty() && &parent->children.front() != this) { + prev = &*(--parent->children.iterator_to(*this)); } return prev; } @@ -806,8 +806,8 @@ SPObject *SPObject::getPrev() SPObject* SPObject::getNext() { SPObject *next = nullptr; - if (parent && !parent->_children.empty() && &parent->_children.back() != this) { - next = &*(++parent->_children.iterator_to(*this)); + if (parent && !parent->children.empty() && &parent->children.back() != this) { + next = &*(++parent->children.iterator_to(*this)); } return next; } @@ -1475,7 +1475,7 @@ bool SPObject::setTitleOrDesc(gchar const *value, gchar const *svg_tagname, bool } else { // remove the current content of the 'text' or 'desc' element - auto tmp = elem->_children | boost::adaptors::transformed([](SPObject& obj) { return &obj; }); + auto tmp = elem->children | boost::adaptors::transformed([](SPObject& obj) { return &obj; }); std::vector vec(tmp.begin(), tmp.end()); for (auto &child: vec) { child->deleteObject(); @@ -1489,7 +1489,7 @@ bool SPObject::setTitleOrDesc(gchar const *value, gchar const *svg_tagname, bool SPObject* SPObject::findFirstChild(gchar const *tagname) const { - for (auto& child: const_cast(this)->_children) + for (auto& child: const_cast(this)->children) { if (child.repr->type() == Inkscape::XML::ELEMENT_NODE && !strcmp(child.repr->name(), tagname)) { @@ -1503,7 +1503,7 @@ char* SPObject::textualContent() const { GString* text = g_string_new(""); - for (auto& child: _children) + for (auto& child: children) { Inkscape::XML::NodeType child_type = child.repr->type(); @@ -1530,7 +1530,7 @@ void SPObject::recursivePrintTree( unsigned level ) std::cout << " "; } std::cout << (getId()?getId():"No object id") << std::endl; - for (auto& child: _children) { + for (auto& child: children) { child.recursivePrintTree(level + 1); } } diff --git a/src/sp-object.h b/src/sp-object.h index 94c9d5629..1c6212664 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -306,13 +306,13 @@ public: */ SPObject *getPrev(); - bool hasChildren() const { return ( _children.size() > 0 ); } + bool hasChildren() const { return ( children.size() > 0 ); } - SPObject *firstChild() { return _children.empty() ? nullptr : &_children.front(); } - SPObject const *firstChild() const { return _children.empty() ? nullptr : &_children.front(); } + SPObject *firstChild() { return children.empty() ? nullptr : &children.front(); } + SPObject const *firstChild() const { return children.empty() ? nullptr : &children.front(); } - SPObject *lastChild() { return _children.empty() ? nullptr : &_children.back(); } - SPObject const *lastChild() const { return _children.empty() ? nullptr : &_children.back(); } + SPObject *lastChild() { return children.empty() ? nullptr : &children.back(); } + SPObject const *lastChild() const { return children.empty() ? nullptr : &children.back(); } enum Action { ActionGeneral, ActionBBox, ActionUpdate, ActionShow }; @@ -857,7 +857,7 @@ public: ListHook, &SPObject::_child_hook >> ChildrenList; - ChildrenList _children; + ChildrenList children; virtual void read_content(); void recursivePrintTree(unsigned level = 0); // For debugging diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index fde9f90f1..3b1ae3f0b 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -223,7 +223,7 @@ void SPPattern::_getChildren(std::list &l) { for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children - for (auto& child: pat_i->_children) { + for (auto& child: pat_i->children) { l.push_back(&child); } break; // do not go further up the chain if children are found @@ -319,7 +319,7 @@ guint SPPattern::_countHrefs(SPObject *o) const i++; } - for (auto& child: o->_children) { + for (auto& child: o->children) { i += _countHrefs(&child); } @@ -508,7 +508,7 @@ Geom::OptRect SPPattern::viewbox() const bool SPPattern::_hasItemChildren() const { - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_ITEM(&child)) { return true; } @@ -558,7 +558,7 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b Inkscape::DrawingGroup *root = new Inkscape::DrawingGroup(drawing); drawing.setRoot(root); - for (auto& child: shown->_children) { + for (auto& child: shown->children) { if (SP_IS_ITEM(&child)) { // for each item in pattern, show it on our drawing, add to the group, // and connect to the release signal in case the item gets deleted @@ -654,7 +654,7 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // Render drawing to pattern_surface via drawing context, this calls root->render // which is really DrawingItem->render(). drawing.render(dc, one_tile); - for (auto& child: shown->_children) { + for (auto& child: shown->children) { if (SP_IS_ITEM(&child)) { SP_ITEM(&child)->invoke_hide(dkey); } diff --git a/src/sp-root.cpp b/src/sp-root.cpp index cfd0ced10..34047054a 100644 --- a/src/sp-root.cpp +++ b/src/sp-root.cpp @@ -73,7 +73,7 @@ void SPRoot::build(SPDocument *document, Inkscape::XML::Node *repr) SPGroup::build(document, repr); // Search for first node - for (auto& o: _children) { + for (auto& o: children) { if (SP_IS_DEFS(&o)) { this->defs = SP_DEFS(&o); break; @@ -174,7 +174,7 @@ void SPRoot::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) if (co && SP_IS_DEFS(co)) { // We search for first node - it is not beautiful, but works - for (auto& c: _children) { + for (auto& c: children) { if (SP_IS_DEFS(&c)) { this->defs = SP_DEFS(&c); break; @@ -189,7 +189,7 @@ void SPRoot::remove_child(Inkscape::XML::Node *child) SPObject *iter = 0; // We search for first remaining node - it is not beautiful, but works - for (auto& child: _children) { + for (auto& child: children) { iter = &child; if (SP_IS_DEFS(iter) && (SPDefs *)iter != this->defs) { this->defs = (SPDefs *)iter; diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp index 7679cc31e..971583a9a 100644 --- a/src/sp-switch.cpp +++ b/src/sp-switch.cpp @@ -32,7 +32,7 @@ SPSwitch::~SPSwitch() { SPObject *SPSwitch::_evaluateFirst() { SPObject *first = 0; - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_ITEM(&child) && sp_item_evaluate(SP_ITEM(&child))) { first = &child; break; diff --git a/src/sp-text.cpp b/src/sp-text.cpp index 193289c2b..e52869942 100644 --- a/src/sp-text.cpp +++ b/src/sp-text.cpp @@ -155,7 +155,7 @@ void SPText::update(SPCtx *ctx, guint flags) { // Create temporary list of children GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child, this); l = g_slist_prepend (l, &child); } @@ -235,7 +235,7 @@ void SPText::modified(guint flags) { // Create temporary list of children GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { sp_object_ref(&child, this); l = g_slist_prepend (l, &child); } @@ -262,7 +262,7 @@ Inkscape::XML::Node *SPText::write(Inkscape::XML::Document *xml_doc, Inkscape::X GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_TITLE(&child) || SP_IS_DESC(&child)) { continue; } @@ -286,7 +286,7 @@ Inkscape::XML::Node *SPText::write(Inkscape::XML::Document *xml_doc, Inkscape::X l = g_slist_remove (l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_TITLE(&child) || SP_IS_DESC(&child)) { continue; } @@ -606,7 +606,7 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio } } - for (auto& child: root->_children) { + for (auto& child: root->children) { SPString *str = dynamic_cast(&child); if (str) { Glib::ustring const &string = str->string; @@ -628,7 +628,7 @@ void SPText::rebuildLayout() Inkscape::Text::Layout::OptionalTextTagAttrs optional_attrs; _buildLayoutInput(this, optional_attrs, 0, false); layout.calculateFlow(); - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_TEXTPATH(&child)) { SPTextPath const *textpath = SP_TEXTPATH(&child); if (textpath->originalPath != NULL) { @@ -640,7 +640,7 @@ void SPText::rebuildLayout() //g_print("%s", layout.dumpAsText().c_str()); // set the x,y attributes on role:line spans - for (auto& child: _children) { + for (auto& child: children) { if (SP_IS_TSPAN(&child)) { SPTSpan *tspan = SP_TSPAN(&child); if ( (tspan->role != SP_TSPAN_ROLE_UNSPECIFIED) @@ -676,7 +676,7 @@ void SPText::_adjustFontsizeRecursive(SPItem *item, double ex, bool is_root) item->updateRepr(); } - for(auto& o: item->_children) { + for(auto& o: item->children) { if (SP_IS_ITEM(&o)) _adjustFontsizeRecursive(SP_ITEM(&o), ex, false); } @@ -695,7 +695,7 @@ void SPText::_adjustCoordsRecursive(SPItem *item, Geom::Affine const &m, double SP_TREF(item)->attributes.transform(m, ex, ex, is_root); } - for(auto& o: item->_children) { + for(auto& o: item->children) { if (SP_IS_ITEM(&o)) _adjustCoordsRecursive(SP_ITEM(&o), m, ex, false); } diff --git a/src/sp-tref.cpp b/src/sp-tref.cpp index 66866c9f7..48e2b41f6 100644 --- a/src/sp-tref.cpp +++ b/src/sp-tref.cpp @@ -506,7 +506,7 @@ sp_tref_convert_to_tspan(SPObject *obj) //////////////////// else { GSList *l = NULL; - for (auto& child: obj->_children) { + for (auto& child: obj->children) { sp_object_ref(&child, obj); l = g_slist_prepend (l, &child); } diff --git a/src/sp-tspan.cpp b/src/sp-tspan.cpp index 23df18503..5a82f2c05 100644 --- a/src/sp-tspan.cpp +++ b/src/sp-tspan.cpp @@ -96,7 +96,7 @@ void SPTSpan::update(SPCtx *ctx, guint flags) { } childflags &= SP_OBJECT_MODIFIED_CASCADE; - for (auto& ochild: _children) { + for (auto& ochild: children) { if ( flags || ( ochild.uflags & SP_OBJECT_MODIFIED_FLAG )) { ochild.updateDisplay(ctx, childflags); } @@ -128,7 +128,7 @@ void SPTSpan::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - for (auto& ochild: _children) { + for (auto& ochild: children) { if (flags || (ochild.mflags & SP_OBJECT_MODIFIED_FLAG)) { ochild.emitModified(flags); } @@ -175,7 +175,7 @@ Inkscape::XML::Node* SPTSpan::write(Inkscape::XML::Document *xml_doc, Inkscape:: if ( flags&SP_OBJECT_WRITE_BUILD ) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node* c_repr=NULL; if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { @@ -197,7 +197,7 @@ Inkscape::XML::Node* SPTSpan::write(Inkscape::XML::Document *xml_doc, Inkscape:: l = g_slist_remove(l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { child.updateRepr(flags); } else if ( SP_IS_TEXTPATH(&child) ) { @@ -313,7 +313,7 @@ void SPTextPath::update(SPCtx *ctx, guint flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - for (auto& ochild: _children) { + for (auto& ochild: children) { if ( flags || ( ochild.uflags & SP_OBJECT_MODIFIED_FLAG )) { ochild.updateDisplay(ctx, flags); } @@ -367,7 +367,7 @@ void SPTextPath::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - for (auto& ochild: _children) { + for (auto& ochild: children) { if (flags || (ochild.mflags & SP_OBJECT_MODIFIED_FLAG)) { ochild.emitModified(flags); } @@ -399,7 +399,7 @@ Inkscape::XML::Node* SPTextPath::write(Inkscape::XML::Document *xml_doc, Inkscap if ( flags & SP_OBJECT_WRITE_BUILD ) { GSList *l = NULL; - for (auto& child: _children) { + for (auto& child: children) { Inkscape::XML::Node* c_repr=NULL; if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { @@ -421,7 +421,7 @@ Inkscape::XML::Node* SPTextPath::write(Inkscape::XML::Document *xml_doc, Inkscap l = g_slist_remove(l, l->data); } } else { - for (auto& child: _children) { + for (auto& child: children) { if ( SP_IS_TSPAN(&child) || SP_IS_TREF(&child) ) { child.updateRepr(flags); } else if ( SP_IS_TEXTPATH(&child) ) { @@ -466,7 +466,7 @@ void sp_textpath_to_text(SPObject *tp) // make a list of textpath children GSList *tp_reprs = NULL; - for (auto& o: tp->_children) { + for (auto& o: tp->children) { tp_reprs = g_slist_prepend(tp_reprs, o.getRepr()); } diff --git a/src/sp-use.cpp b/src/sp-use.cpp index cef967c90..b24363278 100644 --- a/src/sp-use.cpp +++ b/src/sp-use.cpp @@ -436,7 +436,7 @@ void SPUse::move_compensate(Geom::Affine const *mp) { //BUT move clippaths accordingly. //if clone has a clippath, move it accordingly if(clip_ref->getObject()){ - for(auto& clip: clip_ref->getObject()->_children){ + for(auto& clip: clip_ref->getObject()->children){ SPItem *item = (SPItem*) &clip; if(item){ item->transform *= m; @@ -446,7 +446,7 @@ void SPUse::move_compensate(Geom::Affine const *mp) { } } if(mask_ref->getObject()){ - for(auto& mask: mask_ref->getObject()->_children){ + for(auto& mask: mask_ref->getObject()->children){ SPItem *item = (SPItem*) &mask; if(item){ item->transform *= m; @@ -476,7 +476,7 @@ void SPUse::move_compensate(Geom::Affine const *mp) { //if clone has a clippath, move it accordingly if(clip_ref->getObject()){ - for(auto& clip: clip_ref->getObject()->_children){ + for(auto& clip: clip_ref->getObject()->children){ SPItem *item = (SPItem*) &clip; if(item){ item->transform *= clone_move.inverse(); @@ -486,7 +486,7 @@ void SPUse::move_compensate(Geom::Affine const *mp) { } } if(mask_ref->getObject()){ - for(auto& mask: mask_ref->getObject()->_children){ + for(auto& mask: mask_ref->getObject()->children){ SPItem *item = (SPItem*) &mask; if(item){ item->transform *= clone_move.inverse(); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 4ac9143f0..a4c4ac6cd 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -883,7 +883,7 @@ void item_outline_add_marker_child( SPItem const *item, Geom::Affine marker_tran // note: a marker child item can be an item group! if (SP_IS_GROUP(item)) { // recurse through all childs: - for (auto& o: item->_children) { + for (auto& o: item->children) { if ( SP_IS_ITEM(&o) ) { item_outline_add_marker_child(SP_ITEM(&o), tr, pathv_in); } diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index 56048d1f7..a950dfebe 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -142,7 +142,7 @@ text_put_on_path() // make a list of text children GSList *text_reprs = NULL; - for(auto& o: text->_children) { + for(auto& o: text->children) { text_reprs = g_slist_prepend(text_reprs, o.getRepr()); } @@ -240,7 +240,7 @@ text_remove_all_kerns_recursively(SPObject *o) g_strfreev(xa_comma); } - for (auto& i: o->_children) { + for (auto& i: o->children) { text_remove_all_kerns_recursively(&i); i.requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_TEXT_LAYOUT_MODIFIED_FLAG); } @@ -353,7 +353,7 @@ text_flow_into_shape() Inkscape::GC::release(text_repr); } else { // reflow an already flowed text, preserving paras - for(auto& o: text->_children) { + for(auto& o: text->children) { if (SP_IS_FLOWPARA(&o)) { Inkscape::XML::Node *para_repr = o.getRepr()->duplicate(xml_doc); root_repr->appendChild(para_repr); diff --git a/src/text-editing.cpp b/src/text-editing.cpp index 6ca2fe948..658cdf816 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -91,7 +91,7 @@ bool sp_te_input_is_empty(SPObject const *item) if (SP_IS_STRING(item)) { empty = SP_STRING(item)->string.empty(); } else { - for (auto& child: item->_children) { + for (auto& child: item->children) { if (!sp_te_input_is_empty(&child)) { empty = false; break; @@ -237,7 +237,7 @@ unsigned sp_text_get_length(SPObject const *item) length++; } - for (auto& child: item->_children) { + for (auto& child: item->children) { if (SP_IS_STRING(&child)) { length += SP_STRING(&child)->string.length(); } else { @@ -267,7 +267,7 @@ unsigned sp_text_get_length_upto(SPObject const *item, SPObject const *upto) } // Count the length of the children - for (auto& child: item->_children) { + for (auto& child: item->children) { if (upto && &child == upto) { // hit upto, return immediately return length; @@ -323,7 +323,7 @@ to \a item at the same level. */ static unsigned sum_sibling_text_lengths_before(SPObject const *item) { unsigned char_index = 0; - for (auto& sibling: item->parent->_children) { + for (auto& sibling: item->parent->children) { if (&sibling == item) { break; } @@ -860,7 +860,7 @@ static void sp_te_get_ustring_multiline(SPObject const *root, Glib::ustring *str if (*pending_line_break) { *string += '\n'; } - for (auto& child: root->_children) { + for (auto& child: root->children) { if (SP_IS_STRING(&child)) { *string += SP_STRING(&child)->string; } else { @@ -944,7 +944,7 @@ sp_te_set_repr_text_multiline(SPItem *text, gchar const *str) gchar *content = g_strdup (str); repr->setContent(""); - for (auto& child: object->_children) { + for (auto& child: object->children) { if (!SP_IS_FLOWREGION(&child) && !SP_IS_FLOWREGIONEXCLUDE(&child)) { repr->removeChild(child.getRepr()); } @@ -1405,7 +1405,7 @@ static void apply_css_recursive(SPObject *o, SPCSSAttr const *css) { sp_repr_css_change(o->getRepr(), const_cast(css), "style"); - for (auto& child: o->_children) { + for (auto& child: o->children) { if (sp_repr_css_property(const_cast(css), "opacity", NULL) != NULL) { // Unset properties which are accumulating and thus should not be set recursively. // For example, setting opacity 0.5 on a group recursively would result in the visible opacity of 0.25 for an item in the group. @@ -2073,7 +2073,7 @@ bool has_visible_text(SPObject *obj) if (SP_IS_STRING(obj) && !SP_STRING(obj)->string.empty()) { hasVisible = true; // maybe we should also check that it's not all whitespace? } else { - for (auto& child: obj->_children) { + for (auto& child: obj->children) { if (has_visible_text(const_cast(&child))) { hasVisible = true; break; diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 48d53857b..b25a70b15 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -839,7 +839,7 @@ void ClipboardManagerImpl::_copyUsedDefs(SPItem *item) SPObject *mask = item->mask_ref->getObject(); _copyNode(mask->getRepr(), _doc, _defs); // recurse into the mask for its gradients etc. - for(auto& o: mask->_children) { + for(auto& o: mask->children) { SPItem *childItem = dynamic_cast(&o); if (childItem) { _copyUsedDefs(childItem); @@ -857,7 +857,7 @@ void ClipboardManagerImpl::_copyUsedDefs(SPItem *item) } // recurse - for(auto& o: item->_children) { + for(auto& o: item->children) { SPItem *childItem = dynamic_cast(&o); if (childItem) { _copyUsedDefs(childItem); @@ -894,7 +894,7 @@ void ClipboardManagerImpl::_copyPattern(SPPattern *pattern) _copyNode(pattern->getRepr(), _doc, _defs); // items in the pattern may also use gradients and other patterns, so recurse - for (auto& child: pattern->_children) { + for (auto& child: pattern->children) { SPItem *childItem = dynamic_cast(&child); if (childItem) { _copyUsedDefs(childItem); diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index 11af02e3c..1e8ca4405 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -2042,7 +2042,7 @@ void CloneTiler::clonetiler_trace_hide_tiled_clones_recursively(SPObject *from) if (!trace_drawing) return; - for (auto& o: from->_children) { + for (auto& o: from->children) { SPItem *item = dynamic_cast(&o); if (item && clonetiler_is_a_clone_of(&o, NULL)) { item->invoke_hide(trace_visionkey); // FIXME: hide each tiled clone's original too! @@ -2123,7 +2123,7 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) std::vector to_unclump; // not including the original - for (auto& child: parent->_children) { + for (auto& child: parent->children) { if (clonetiler_is_a_clone_of (&child, obj)) { to_unclump.push_back((SPItem*)&child); } @@ -2143,7 +2143,7 @@ guint CloneTiler::clonetiler_number_of_clones(SPObject *obj) guint n = 0; - for (auto& child: parent->_children) { + for (auto& child: parent->children) { if (clonetiler_is_a_clone_of (&child, obj)) { n ++; } @@ -2172,7 +2172,7 @@ void CloneTiler::clonetiler_remove(GtkWidget */*widget*/, GtkWidget *dlg, bool d // remove old tiling GSList *to_delete = NULL; - for (auto& child: parent->_children) { + for (auto& child: parent->children) { if (clonetiler_is_a_clone_of (&child, obj)) { to_delete = g_slist_prepend (to_delete, &child); } diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index df37eb005..6f5f14d80 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -1315,7 +1315,7 @@ void DocumentProperties::changeEmbeddedScript(){ for (std::vector::const_iterator it = current.begin(); it != current.end(); ++it) { SPObject* obj = *it; if (id == obj->getId()){ - int count = (int) obj->_children.size(); + int count = (int) obj->children.size(); if (count>1) g_warning("TODO: Found a script element with multiple (%d) child nodes! We must implement support for that!", count); @@ -1359,7 +1359,7 @@ void DocumentProperties::editEmbeddedScript(){ //XML Tree being used directly here while it shouldn't be. Inkscape::XML::Node *repr = obj->getRepr(); if (repr){ - auto tmp = obj->_children | boost::adaptors::transformed([](SPObject& o) { return &o; }); + auto tmp = obj->children | boost::adaptors::transformed([](SPObject& o) { return &o; }); std::vector vec(tmp.begin(), tmp.end()); for (auto &child: vec) { child->deleteObject(); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 1be5d540a..3e3ede019 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -103,7 +103,7 @@ static int input_count(const SPFilterPrimitive* prim) return 2; else if(SP_IS_FEMERGE(prim)) { // Return the number of feMergeNode connections plus an extra - return (int) (prim->_children.size() + 1); + return (int) (prim->children.size() + 1); } else return 1; @@ -1060,7 +1060,7 @@ public: { SPFeFuncNode* funcNode = NULL; bool found = false; - for(auto& node: ct->_children) { + for(auto& node: ct->children) { funcNode = SP_FEFUNCNODE(&node); if( funcNode->channel == _channel ) { found = true; @@ -1868,7 +1868,7 @@ void FilterEffectsDialog::PrimitiveList::update() bool active_found = false; _dialog._primitive_box->set_sensitive(true); _dialog.update_filter_general_settings_view(); - for(auto& prim_obj: f->_children) { + for(auto& prim_obj: f->children) { SPFilterPrimitive *prim = SP_FILTER_PRIMITIVE(&prim_obj); if(!prim) { break; @@ -2339,7 +2339,7 @@ const Gtk::TreeIter FilterEffectsDialog::PrimitiveList::find_result(const Gtk::T if(SP_IS_FEMERGE(prim)) { int c = 0; bool found = false; - for (auto& o: prim->_children) { + for (auto& o: prim->children) { if(c == attr && SP_IS_FEMERGENODE(&o)) { image = SP_FEMERGENODE(&o)->input; found = true; @@ -2531,7 +2531,7 @@ bool FilterEffectsDialog::PrimitiveList::on_button_release_event(GdkEventButton* if(SP_IS_FEMERGE(prim)) { int c = 1; bool handled = false; - for (auto& o: prim->_children) { + for (auto& o: prim->children) { if(c == _in_drag && SP_IS_FEMERGENODE(&o)) { // If input is null, delete it if(!in_val) { diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index e156dfa13..b09ce6078 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -747,7 +747,7 @@ std::vector &Find::all_items (SPObject *r, std::vector &l, boo return l; // we're not interested in metadata } - for (auto& child: r->_children) { + for (auto& child: r->children) { SPItem *item = dynamic_cast(&child); if (item && !child.cloned && !desktop->isLayer(item)) { if ((hidden || !desktop->itemIsHidden(item)) && (locked || !item->isLocked())) { diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp index eafe5566a..b927096ab 100644 --- a/src/ui/dialog/font-substitution.cpp +++ b/src/ui/dialog/font-substitution.cpp @@ -182,7 +182,7 @@ std::vector FontSubstitution::getFontReplacedItems(SPDocument* doc, Gli family = SP_TEXT(parent_text)->layout.getFontFamily(0); // Add all the spans fonts to the set gint ii = 0; - for (auto& child: parent_text->_children) { + for (auto& child: parent_text->children) { family = SP_TEXT(parent_text)->layout.getFontFamily(ii); setFontSpans.insert(family); ii++; diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index e4639745f..f4d3a3f70 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -340,7 +340,7 @@ void ObjectsPanel::_objectsChanged(SPObject */*obj*/) void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow) { if ( _desktop && obj ) { - for(auto& child: obj->_children) { + for(auto& child: obj->children) { if (SP_IS_ITEM(&child)) { SPItem * item = SP_ITEM(&child); @@ -398,7 +398,7 @@ void ObjectsPanel::_updateObject( SPObject *obj, bool recurse ) { //end mark if (recurse) { - for (auto& iter: obj->_children) { + for (auto& iter: obj->children) { _updateObject(&iter, recurse); } } @@ -518,7 +518,7 @@ void ObjectsPanel::_setCompositingValues(SPItem *item) SPGaussianBlur *spblur = NULL; if (item->style->getFilter()) { - for (auto& primitive_obj: item->style->getFilter()->_children) { + for (auto& primitive_obj: item->style->getFilter()->children) { if (!SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { break; } @@ -1293,7 +1293,7 @@ bool ObjectsPanel::_executeAction() break; case BUTTON_COLLAPSE_ALL: { - for (auto& obj: _document->getRoot()->_children) { + for (auto& obj: _document->getRoot()->children) { if (SP_IS_GROUP(&obj)) { _setCollapsed(SP_GROUP(&obj)); } @@ -1405,7 +1405,7 @@ void ObjectsPanel::_setCollapsed(SPGroup * group) { group->setExpanded(false); group->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); - for (auto& iter: group->_children) { + for (auto& iter: group->children) { if (SP_IS_GROUP(&iter)) { _setCollapsed(SP_GROUP(&iter)); } @@ -1523,7 +1523,7 @@ void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring bl if (blendmode != "normal") { gdouble radius = 0; if (item->style->getFilter()) { - for (auto& primitive: item->style->getFilter()->_children) { + for (auto& primitive: item->style->getFilter()->children) { if (!SP_IS_FILTER_PRIMITIVE(&primitive)) { break; } @@ -1538,7 +1538,7 @@ void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring bl SPFilter *filter = new_filter_simple_from_item(_document, item, blendmode.c_str(), radius); sp_style_set_property_url(item, "filter", filter, false); } else { - for (auto& primitive: item->style->getFilter()->_children) { + for (auto& primitive: item->style->getFilter()->children) { if (!SP_IS_FILTER_PRIMITIVE(&primitive)) { break; } @@ -1598,7 +1598,7 @@ void ObjectsPanel::_blurChangedIter(const Gtk::TreeIter& iter, double blur) SPFilter *filter = modify_filter_gaussian_blur_from_item(_document, item, radius); sp_style_set_property_url(item, "filter", filter, false); } else if (item->style->filter.set && item->style->getFilter()) { - for (auto& primitive: item->style->getFilter()->_children) { + for (auto& primitive: item->style->getFilter()->children) { if (!SP_IS_FILTER_PRIMITIVE(&primitive)) { break; } diff --git a/src/ui/dialog/spellcheck.cpp b/src/ui/dialog/spellcheck.cpp index 9338a4e8c..ac8ef5c15 100644 --- a/src/ui/dialog/spellcheck.cpp +++ b/src/ui/dialog/spellcheck.cpp @@ -234,7 +234,7 @@ GSList *SpellCheck::allTextItems (SPObject *r, GSList *l, bool hidden, bool lock return l; // we're not interested in metadata } - for (auto& child: r->_children) { + for (auto& child: r->children) { if (SP_IS_ITEM (&child) && !child.cloned && !desktop->isLayer(SP_ITEM(&child))) { if ((hidden || !desktop->itemIsHidden(SP_ITEM(&child))) && (locked || !SP_ITEM(&child)->isLocked())) { if (SP_IS_TEXT(&child) || SP_IS_FLOWTEXT(&child)) diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp index 93bd67a3d..a723c86d8 100644 --- a/src/ui/dialog/svg-fonts-dialog.cpp +++ b/src/ui/dialog/svg-fonts-dialog.cpp @@ -115,7 +115,7 @@ void SvgFontsDialog::AttrEntry::set_text(char* t){ void SvgFontsDialog::AttrEntry::on_attr_changed(){ SPObject* o = NULL; - for (auto& node: dialog->get_selected_spfont()->_children) { + for (auto& node: dialog->get_selected_spfont()->children) { switch(this->attr){ case SP_PROP_FONT_FAMILY: if (SP_IS_FONTFACE(&node)){ @@ -170,7 +170,7 @@ void GlyphComboBox::update(SPFont* spfont){ this->append(""); //Gtk is refusing to clear the combobox when I comment out this line this->remove_all(); - for (auto& node: spfont->_children) { + for (auto& node: spfont->children) { if (SP_IS_GLYPH(&node)){ this->append((static_cast(&node))->unicode); } @@ -308,7 +308,7 @@ void SvgFontsDialog::update_global_settings_tab(){ SPFont* font = get_selected_spfont(); if (!font) return; - for (auto& obj: font->_children) { + for (auto& obj: font->children) { if (SP_IS_FONTFACE(&obj)){ _familyname_entry->set_text((SP_FONTFACE(&obj))->font_family); } @@ -413,7 +413,7 @@ SvgFontsDialog::populate_glyphs_box() SPFont* spfont = this->get_selected_spfont(); _glyphs_observer.set(spfont); - for (auto& node: spfont->_children) { + for (auto& node: spfont->children) { if (SP_IS_GLYPH(&node)){ Gtk::TreeModel::Row row = *(_GlyphsListStore->append()); row[_GlyphsListColumns.glyph_node] = static_cast(&node); @@ -431,7 +431,7 @@ SvgFontsDialog::populate_kerning_pairs_box() SPFont* spfont = this->get_selected_spfont(); - for (auto& node: spfont->_children) { + for (auto& node: spfont->children) { if (SP_IS_HKERN(&node)){ Gtk::TreeModel::Row row = *(_KerningPairsListStore->append()); row[_KerningPairsListColumns.first_glyph] = (static_cast(&node))->u1->attribute_string().c_str(); @@ -492,7 +492,7 @@ void SvgFontsDialog::add_glyph(){ Geom::PathVector SvgFontsDialog::flip_coordinate_system(Geom::PathVector pathv){ double units_per_em = 1000; - for (auto& obj: get_selected_spfont()->_children) { + for (auto& obj: get_selected_spfont()->children) { if (SP_IS_FONTFACE(&obj)){ //XML Tree being directly used here while it shouldn't be. sp_repr_get_double(obj.getRepr(), "units-per-em", &units_per_em); @@ -574,7 +574,7 @@ void SvgFontsDialog::missing_glyph_description_from_selected_path(){ Geom::PathVector pathv = sp_svg_read_pathv(node->attribute("d")); - for (auto& obj: get_selected_spfont()->_children) { + for (auto& obj: get_selected_spfont()->children) { if (SP_IS_MISSING_GLYPH(&obj)){ //XML Tree being directly used here while it shouldn't be. @@ -596,7 +596,7 @@ void SvgFontsDialog::reset_missing_glyph_description(){ } SPDocument* doc = desktop->getDocument(); - for (auto& obj: get_selected_spfont()->_children) { + for (auto& obj: get_selected_spfont()->children) { if (SP_IS_MISSING_GLYPH(&obj)){ //XML Tree being directly used here while it shouldn't be. obj.getRepr()->setAttribute("d", (char*) "M0,0h1000v1024h-1000z"); @@ -734,7 +734,7 @@ void SvgFontsDialog::add_kerning_pair(){ //look for this kerning pair on the currently selected font this->kerning_pair = NULL; - for (auto& node: get_selected_spfont()->_children) { + for (auto& node: get_selected_spfont()->children) { //TODO: It is not really correct to get only the first byte of each string. //TODO: We should also support vertical kerning if (SP_IS_HKERN(&node) && (static_cast(&node))->u1->contains((gchar) first_glyph.get_active_text().c_str()[0]) @@ -848,7 +848,7 @@ SPFont *new_font(SPDocument *document) void set_font_family(SPFont* font, char* str){ if (!font) return; - for (auto& obj: font->_children) { + for (auto& obj: font->children) { if (SP_IS_FONTFACE(&obj)){ //XML Tree being directly used here while it shouldn't be. obj.getRepr()->setAttribute("font-family", str); @@ -868,7 +868,7 @@ void SvgFontsDialog::add_font(){ font->setLabel(os.str().c_str()); os2 << "SVGFont " << count; - for (auto& obj: font->_children) { + for (auto& obj: font->children) { if (SP_IS_FONTFACE(&obj)){ //XML Tree being directly used here while it shouldn't be. obj.getRepr()->setAttribute("font-family", os2.str().c_str()); diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index 1fdce34a5..84088052e 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -658,7 +658,7 @@ GSList* SymbolsDialog::symbols_in_doc_recursive (SPObject *r, GSList *l) l = g_slist_prepend (l, r); } - for (auto& child: r->_children) { + for (auto& child: r->children) { l = symbols_in_doc_recursive( &child, l ); } @@ -680,7 +680,7 @@ GSList* SymbolsDialog::use_in_doc_recursive (SPObject *r, GSList *l) l = g_slist_prepend (l, r); } - for (auto& child: r->_children) { + for (auto& child: r->children) { l = use_in_doc_recursive( &child, l ); } diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index 61c8b5d37..fcc9b804c 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -399,7 +399,7 @@ void TagsPanel::_objectsChanged(SPObject* root) void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* parentRow ) { if ( _desktop && obj ) { - for (auto& child: obj->_children) { + for (auto& child: obj->children) { if (SP_IS_TAG(&child)) { Gtk::TreeModel::iterator iter = parentRow ? _store->prepend(parentRow->children()) : _store->prepend(); @@ -430,7 +430,7 @@ void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* _tree.expand_to_path( _store->get_path(iteritems) ); - for (auto& child: obj->_children) { + for (auto& child: obj->children) { if (SP_IS_TAG_USE(&child)) { SPItem *item = SP_TAG_USE(&child)->ref->getObject(); @@ -459,7 +459,7 @@ void TagsPanel::_addObject( SPDocument* doc, SPObject* obj, Gtk::TreeModel::Row* void TagsPanel::_select_tag( SPTag * tag ) { - for (auto& child: tag->_children) { + for (auto& child: tag->children) { if (SP_IS_TAG(&child)) { _select_tag(SP_TAG(&child)); } else if (SP_IS_TAG_USE(&child)) { @@ -649,7 +649,7 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event) for(auto i=items.begin();i!=items.end();++i){ SPObject *newobj = *i; bool addchild = true; - for (auto& child: obj->_children) { + for (auto& child: obj->children) { if (SP_IS_TAG_USE(&child) && SP_TAG_USE(&child)->ref->getObject() == newobj) { addchild = false; } diff --git a/src/ui/tools/box3d-tool.cpp b/src/ui/tools/box3d-tool.cpp index 2adba38c5..9a0b37913 100644 --- a/src/ui/tools/box3d-tool.cpp +++ b/src/ui/tools/box3d-tool.cpp @@ -118,7 +118,7 @@ static void sp_box3d_context_ensure_persp_in_defs(SPDocument *document) { SPDefs *defs = document->getDefs(); bool has_persp = false; - for (auto& child: defs->_children) { + for (auto& child: defs->children) { if (SP_IS_PERSP3D(&child)) { has_persp = true; break; diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index be8ce6d0c..11752726b 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -1114,7 +1114,7 @@ void ConnectorTool::_setActiveShape(SPItem *item) { // The idea here is to try and add a group's children to solidify // connection handling. We react to path objects with only one node. - for (auto& child: item->_children) { + for (auto& child: item->children) { if (SP_IS_PATH(&child) && SP_PATH(&child)->nodesInPath() == 1) { this->_activeShapeAddKnot((SPItem *) &child); } diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index 3dfac5e3d..87b7bf7e3 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -378,7 +378,7 @@ void gather_items(NodeTool *nt, SPItem *base, SPObject *obj, Inkscape::UI::Shape r.role = role; s.insert(r); } else if (role != SHAPE_ROLE_NORMAL && (SP_IS_GROUP(obj) || SP_IS_OBJECTGROUP(obj))) { - for (auto& c: obj->_children) { + for (auto& c: obj->children) { gather_items(nt, base, &c, role, s); } } else if (SP_IS_ITEM(obj)) { diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index 7da0973d5..361986d0c 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -385,7 +385,7 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P if (dynamic_cast(item) && !dynamic_cast(item)) { GSList *children = NULL; - for (auto& child: item->_children) { + for (auto& child: item->children) { if (dynamic_cast(static_cast(&child))) { children = g_slist_prepend(children, &child); } @@ -832,7 +832,7 @@ static void tweak_colors_in_gradient(SPItem *item, Inkscape::PaintTarget fill_or double offset_l = 0; double offset_h = 0; SPObject *child_prev = NULL; - for (auto& child: vector->_children) { + for (auto& child: vector->children) { SPStop *stop = dynamic_cast(&child); if (!stop) { continue; @@ -894,7 +894,7 @@ sp_tweak_color_recursive (guint mode, SPItem *item, SPItem *item_at_point, bool did = false; if (dynamic_cast(item)) { - for (auto& child: item->_children) { + for (auto& child: item->children) { SPItem *childItem = dynamic_cast(&child); if (childItem) { if (sp_tweak_color_recursive (mode, childItem, item_at_point, @@ -951,7 +951,7 @@ sp_tweak_color_recursive (guint mode, SPItem *item, SPItem *item_at_point, Geom::Affine i2dt = item->i2dt_affine (); if (style->filter.set && style->getFilter()) { //cycle through filter primitives - for (auto& primitive_obj: style->getFilter()->_children) { + for (auto& primitive_obj: style->getFilter()->children) { SPFilterPrimitive *primitive = dynamic_cast(&primitive_obj); if (primitive) { //if primitive is gaussianblur diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index 46a0b3547..c080579f1 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -352,7 +352,7 @@ void LayerSelector::_buildSiblingEntries( ) { using Inkscape::Util::rest; - auto siblings = parent._children | boost::adaptors::filtered(is_layer(_desktop)) | boost::adaptors::reversed; + auto siblings = parent.children | boost::adaptors::filtered(is_layer(_desktop)) | boost::adaptors::reversed; SPObject *layer( hierarchy ? &*hierarchy : NULL ); diff --git a/src/uri-references.cpp b/src/uri-references.cpp index 23802ae65..6ef933982 100644 --- a/src/uri-references.cpp +++ b/src/uri-references.cpp @@ -76,7 +76,7 @@ bool URIReference::_acceptObject(SPObject *obj) const std::vector positions; while (owner->cloned) { int position = 0; - for (auto &child: owner->parent->_children) { + for (auto &child: owner->parent->children) { if(&child == owner) { break; } diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index c4b2ed59a..1565e16f3 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -720,7 +720,7 @@ static void select_stop_by_drag(GtkWidget *combo_box, SPGradient *gradient, Tool static void select_stop_in_list( GtkWidget *combo_box, SPGradient *gradient, SPStop *new_stop, GtkWidget *data, gboolean block) { int i = 0; - for (auto& ochild: gradient->_children) { + for (auto& ochild: gradient->children) { if (SP_IS_STOP(&ochild)) { if (&ochild == new_stop) { blocked = block; @@ -765,7 +765,7 @@ static gboolean update_stop_list( GtkWidget *stop_combo, SPGradient *gradient, S /* Populate the combobox store */ std::vector sl; if ( gradient->hasStops() ) { - for (auto& ochild: gradient->_children) { + for (auto& ochild: gradient->children) { if (SP_IS_STOP(&ochild)) { sl.push_back(&ochild); } diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 813a2d28e..5f549a77c 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -363,7 +363,7 @@ unsigned long sp_gradient_to_hhssll(SPGradient *gr) static GSList *get_all_doc_items(GSList *list, SPObject *from, bool onlyvisible, bool onlysensitive, bool ingroups, GSList const *exclude) { - for (auto& child: from->_children) { + for (auto& child: from->children) { if (SP_IS_ITEM(&child)) { list = g_slist_prepend(list, SP_ITEM(&child)); } @@ -525,7 +525,7 @@ static void verify_grad(SPGradient *gradient) int i = 0; SPStop *stop = NULL; /* count stops */ - for (auto& ochild: gradient->_children) { + for (auto& ochild: gradient->children) { if (SP_IS_STOP(&ochild)) { i++; stop = SP_STOP(&ochild); @@ -568,7 +568,7 @@ static void select_stop_in_list( GtkWidget *vb, SPGradient *gradient, SPStop *ne GtkWidget *combo_box = static_cast(g_object_get_data(G_OBJECT(vb), "combo_box")); int i = 0; - for (auto& ochild: gradient->_children) { + for (auto& ochild: gradient->children) { if (SP_IS_STOP(&ochild)) { if (&ochild == new_stop) { gtk_combo_box_set_active (GTK_COMBO_BOX(combo_box) , i); @@ -603,7 +603,7 @@ static void update_stop_list( GtkWidget *vb, SPGradient *gradient, SPStop *new_s /* Populate the combobox store */ GSList *sl = NULL; if ( gradient->hasStops() ) { - for (auto& ochild: gradient->_children) { + for (auto& ochild: gradient->children) { if (SP_IS_STOP(&ochild)) { sl = g_slist_append(sl, &ochild); } diff --git a/src/widgets/stroke-marker-selector.cpp b/src/widgets/stroke-marker-selector.cpp index fd7b5f6cd..af3f03420 100644 --- a/src/widgets/stroke-marker-selector.cpp +++ b/src/widgets/stroke-marker-selector.cpp @@ -335,7 +335,7 @@ GSList *MarkerComboBox::get_marker_list (SPDocument *source) return NULL; } - for (auto& child: defs->_children) + for (auto& child: defs->children) { if (SP_IS_MARKER(&child)) { ml = g_slist_prepend (ml, &child); diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index a2c31d6d7..cb4f6fc46 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -68,23 +68,23 @@ TEST_F(SPObjectTest, Basics) { EXPECT_EQ(c, children[1]); EXPECT_EQ(d, children[2]); a->attach(b, a->lastChild()); - EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(3, a->children.size()); a->reorder(b, b); - EXPECT_EQ(3, a->_children.size()); - EXPECT_EQ(b, &a->_children.front()); - EXPECT_EQ(d, &a->_children.back()); + EXPECT_EQ(3, a->children.size()); + EXPECT_EQ(b, &a->children.front()); + EXPECT_EQ(d, &a->children.back()); a->reorder(b, d); - EXPECT_EQ(3, a->_children.size()); - EXPECT_EQ(c, &a->_children.front()); - EXPECT_EQ(b, &a->_children.back()); + EXPECT_EQ(3, a->children.size()); + EXPECT_EQ(c, &a->children.front()); + EXPECT_EQ(b, &a->children.back()); a->reorder(d, nullptr); - EXPECT_EQ(3, a->_children.size()); - EXPECT_EQ(d, &a->_children.front()); - EXPECT_EQ(b, &a->_children.back()); + EXPECT_EQ(3, a->children.size()); + EXPECT_EQ(d, &a->children.front()); + EXPECT_EQ(b, &a->children.back()); a->reorder(c, b); - EXPECT_EQ(3, a->_children.size()); - EXPECT_EQ(d, &a->_children.front()); - EXPECT_EQ(c, &a->_children.back()); + EXPECT_EQ(3, a->children.size()); + EXPECT_EQ(d, &a->children.front()); + EXPECT_EQ(c, &a->children.back()); a->detach(b); EXPECT_EQ(c, a->lastChild()); children = a->childList(false); @@ -116,7 +116,7 @@ TEST_F(SPObjectTest, Advanced) { EXPECT_EQ(c, b->getNext()); std::vector tmp = {b, c, d, e}; int index = 0; - for(auto& child: a->_children) { + for(auto& child: a->children) { EXPECT_EQ(tmp[index++], &child); } } -- cgit v1.2.3 From 3c593bb8da3357514ff5b4f3154d08c4508ad47e Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Wed, 20 Jul 2016 11:01:17 +0200 Subject: Changed arguments and names of selection chemistry functions (bzr r14954.1.22) --- src/object-set.h | 43 ++++++- src/persp3d.cpp | 4 +- src/persp3d.h | 2 +- src/selection-chemistry.cpp | 289 ++++++++++++++++++++++---------------------- src/selection-chemistry.h | 34 +++--- src/selection.cpp | 5 +- src/selection.h | 10 +- src/ui/interface.cpp | 2 +- src/verbs.cpp | 12 +- 9 files changed, 217 insertions(+), 184 deletions(-) diff --git a/src/object-set.h b/src/object-set.h index 0f06e373b..a0bca7889 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -26,11 +26,14 @@ #include #include #include +#include #include "sp-object.h" #include "sp-item.h" +#include "sp-item-group.h" class SPBox3D; class Persp3D; +class SPDesktop; namespace Inkscape { @@ -47,6 +50,12 @@ struct is_item { } }; +struct is_group { + bool operator()(SPObject* obj) { + return SP_IS_GROUP(obj); + } +}; + struct object_to_item { typedef SPItem* result_type; SPItem* operator()(SPObject* obj) const { @@ -61,6 +70,13 @@ struct object_to_node { } }; +struct object_to_group { + typedef SPGroup* result_type; + SPGroup* operator()(SPObject* obj) const { + return SP_GROUP(obj); + } +}; + typedef boost::multi_index_container< SPObject*, boost::multi_index::indexed_by< @@ -82,9 +98,10 @@ class ObjectSet { public: enum CompareSize {HORIZONTAL, VERTICAL, AREA}; typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())) SPItemRange; + typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_group()) | boost::adaptors::transformed(object_to_group())) SPGroupRange; typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())) XMLNodeRange; - ObjectSet() {}; + ObjectSet(SPDesktop* desktop): _desktop(desktop) {}; virtual ~ObjectSet(); /** @@ -177,18 +194,25 @@ public: /** Returns the list of selected objects. */ SPObjectRange objects(); - /** Returns the list of selected SPItems. */ + /** Returns a range of selected SPItems. */ SPItemRange items() { return SPItemRange(container.get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())); }; - /** Returns a list of the xml nodes of all selected objects. */ + /** Returns a range of selected groups. */ + SPGroupRange groups() { + return SPGroupRange (container.get() + | boost::adaptors::filtered(is_group()) + | boost::adaptors::transformed(object_to_group())); + } + + /** Returns a range of the xml nodes of all selected objects. */ XMLNodeRange xmlNodes() { return XMLNodeRange(container.get() - | boost::adaptors::filtered(is_item()) - | boost::adaptors::transformed(object_to_node())); + | boost::adaptors::filtered(is_item()) + | boost::adaptors::transformed(object_to_node())); } /** @@ -254,6 +278,13 @@ public: */ std::list const box3DList(Persp3D *persp = NULL); + /** + * Returns the desktop the selection is bound to + * + * @return the desktop the selection is bound to, or NULL if in console mode + */ + SPDesktop *desktop() { return _desktop; } + protected: virtual void _connectSignals(SPObject* object) {}; virtual void _releaseSignals(SPObject* object) {}; @@ -270,12 +301,14 @@ protected: virtual void _remove_3D_boxes_recursively(SPObject *obj); multi_index_container container; + GC::soft_ptr _desktop; std::list _3dboxes; std::unordered_map releaseConnections; }; typedef ObjectSet::SPItemRange SPItemRange; +typedef ObjectSet::SPGroupRange SPGroupRange; typedef ObjectSet::XMLNodeRange XMLNodeRange; } // namespace Inkscape diff --git a/src/persp3d.cpp b/src/persp3d.cpp index e260af8e5..7d79d3ab5 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -494,10 +494,10 @@ persp3d_on_repr_attr_changed ( Inkscape::XML::Node * /*repr*/, /* checks whether all boxes linked to this perspective are currently selected */ bool -persp3d_has_all_boxes_in_selection (Persp3D *persp, Inkscape::Selection *selection) { +persp3d_has_all_boxes_in_selection (Persp3D *persp, Inkscape::ObjectSet *set) { Persp3DImpl *persp_impl = persp->perspective_impl; - std::list selboxes = selection->box3DList(); + std::list selboxes = set->box3DList(); for (std::vector::iterator i = persp_impl->boxes.begin(); i != persp_impl->boxes.end(); ++i) { if (std::find(selboxes.begin(), selboxes.end(), *i) == selboxes.end()) { diff --git a/src/persp3d.h b/src/persp3d.h index be5680bcb..ce0e3c120 100644 --- a/src/persp3d.h +++ b/src/persp3d.h @@ -107,7 +107,7 @@ void persp3d_absorb(Persp3D *persp1, Persp3D *persp2); Persp3D * persp3d_create_xml_element (SPDocument *document, Persp3DImpl *dup = NULL); Persp3D * persp3d_document_first_persp (SPDocument *document); -bool persp3d_has_all_boxes_in_selection (Persp3D *persp, Inkscape::Selection *selection); +bool persp3d_has_all_boxes_in_selection (Persp3D *persp, Inkscape::ObjectSet *set); void persp3d_print_debugging_info (Persp3D *persp); void persp3d_print_debugging_info_all(SPDocument *doc); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 81d711e77..e8c408ed8 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -12,8 +12,9 @@ * Abhishek Sharma * Kris De Gussem * Tavmjong Bah (Symbol additions) + * Adrian Boguszewski * - * Copyright (C) 1999-2010,2012 authors + * Copyright (C) 1999-2016 authors * Copyright (C) 2001-2002 Ximian, Inc. * * Released under GNU GPL, read the file 'COPYING' for more information @@ -109,6 +110,7 @@ SPCycleType SP_CYCLING = SP_CYCLE_FOCUS; #include "live_effects/effect-enum.h" #include "live_effects/parameter/originalpath.h" #include "layer-manager.h" +#include "object-set.h" #include "enums.h" #include "sp-item-group.h" @@ -124,6 +126,7 @@ using Inkscape::DocumentUndo; using Geom::X; using Geom::Y; using Inkscape::UI::Tools::NodeTool; +using namespace Inkscape; /* The clipboard handling is in ui/clipboard.cpp now. There are some legacy functions left here, because the layer manipulation code uses them. It should be rewritten specifically @@ -691,9 +694,13 @@ void sp_edit_invert_in_all_layers(SPDesktop *desktop) sp_edit_select_all_full(desktop, true, true); } -static void sp_selection_group_impl(std::vector p, Inkscape::XML::Node *group, Inkscape::XML::Document *xml_doc, SPDocument *doc) { +static Inkscape::XML::Node* sp_selection_group(ObjectSet *set) { + SPDocument *doc = set->desktop()->getDocument(); + Inkscape::XML::Document *xml_doc = doc->getReprDoc(); + Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); - sort(p.begin(),p.end(),sp_repr_compare_position_bool); + std::vector p(set->xmlNodes().begin(), set->xmlNodes().end()); + std::sort(p.begin(), p.end(), sp_repr_compare_position_bool); // Remember the position and parent of the topmost object. gint topmost = p.back()->position(); @@ -751,31 +758,24 @@ static void sp_selection_group_impl(std::vector p, Inkscap // Move to the position of the topmost, reduced by the number of items deleted from topmost_parent group->setPosition(topmost + 1); + + set->set(doc->getObjectByRepr(group)); + + return group; } -void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_group_ui(Inkscape::Selection *selection, SPDesktop *desktop) { - SPDocument *doc = selection->layers()->getDocument(); - Inkscape::XML::Document *xml_doc = doc->getReprDoc(); - // Check if something is selected. if (selection->isEmpty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select some objects to group.")); return; } + Inkscape::XML::Node* group = sp_selection_group(selection); - std::vector p (selection->xmlNodes().begin(), selection->xmlNodes().end()); - - selection->clear(); - - Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); - - sp_selection_group_impl(p, group, xml_doc, doc); - - DocumentUndo::done(doc, SP_VERB_SELECTION_GROUP, + DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_GROUP, C_("Verb", "Group")); - selection->set(group); Inkscape::GC::release(group); } @@ -823,32 +823,16 @@ void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDeskto } - -void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) +static void sp_selection_ungroup(ObjectSet *set) { - if (selection->isEmpty()) { - selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select a group to ungroup.")); - } - - // first check whether there is anything to ungroup - auto old_select = selection->items(); - std::vector new_select; GSList *groups = NULL; - for (auto item = old_select.begin(); item!=old_select.end(); ++item) { - SPItem *obj = *item; - if (dynamic_cast(obj)) { - groups = g_slist_prepend(groups, obj); - } - } - - if (groups == NULL) { - selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("No groups to ungroup in the selection.")); - g_slist_free(groups); - return; + for (auto g: set->groups()) { + groups = g_slist_prepend(groups, g); } + std::vector new_select; + auto old_select = set->items(); std::vector items(old_select.begin(), old_select.end()); - selection->clear(); // If any of the clones refer to the groups, unlink them and replace them with successors // in the items list. @@ -895,7 +879,21 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) } } - selection->addList(new_select); + set->setList(new_select); +} + +void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop) +{ + if (selection->isEmpty()) { + selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select a group to ungroup.")); + } + + if (boost::distance(selection->groups()) == 0) { + selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("No groups to ungroup in the selection.")); + return; + } + + sp_selection_ungroup(selection); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_UNGROUP, _("Ungroup")); @@ -931,18 +929,18 @@ sp_degroup_list(std::vector &items) /** If items in the list have a common parent, return it, otherwise return NULL */ static SPGroup * -sp_item_list_common_parent_group(std::vector const &items) +sp_item_list_common_parent_group(const SPItemRange &items) { if (items.empty()) { return NULL; } - SPObject *parent = items[0]->parent; + SPObject *parent = items.front()->parent; // Strictly speaking this CAN happen, if user selects from Inkscape::XML editor if (!dynamic_cast(parent)) { return NULL; } - for (std::vector::const_iterator item=items.begin();item!=items.end();++item) { - if((*item)==items[0])continue; + for (auto item=items.begin();item!=items.end();++item) { + if((*item)==items.front())continue; if ((*item)->parent != parent) { return NULL; } @@ -980,23 +978,9 @@ bool sp_item_repr_compare_position_bool(SPObject const *first, SPObject const *s ((SPItem*)second)->getRepr())<0; } -void -sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) -{ - std::vector items(selection->items().begin(), selection->items().end()); - - if (items.empty()) { - selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise.")); - return; - } - - SPGroup const *group = sp_item_list_common_parent_group(items); - if (!group) { - selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("You cannot raise/lower objects from different groups or layers.")); - return; - } - - Inkscape::XML::Node *grepr = const_cast(group->getRepr()); +void sp_selection_raise(ObjectSet* set) { + std::vector items(set->items().begin(), set->items().end()); + Inkscape::XML::Node *grepr = const_cast(items.front()->parent->getRepr()); /* Construct reverse-ordered list of selected children. */ std::vector rev(items); @@ -1027,55 +1011,61 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) } } } - DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_RAISE, - //TRANSLATORS: "Raise" means "to raise an object" in the undo history - C_("Undo action", "Raise")); } -void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop) { - SPDocument *document = selection->layers()->getDocument(); - - if (selection->isEmpty()) { - selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise to top.")); + if (selection->items().empty()) { + selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise.")); return; } - std::vector items(selection->items().begin(), selection->items().end()); - - SPGroup const *group = sp_item_list_common_parent_group(items); + SPGroup const *group = sp_item_list_common_parent_group(selection->items()); if (!group) { selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("You cannot raise/lower objects from different groups or layers.")); return; } + sp_selection_raise(selection); + + DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_RAISE, + //TRANSLATORS: "Raise" means "to raise an object" in the undo history + C_("Undo action", "Raise")); +} - std::vector rl(selection->xmlNodes().begin(), selection->xmlNodes().end()); +void sp_selection_raise_to_top(ObjectSet* set) { + std::vector rl(set->xmlNodes().begin(), set->xmlNodes().end()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_iterator l=rl.begin(); l!=rl.end();++l) { Inkscape::XML::Node *repr =(*l); repr->setPosition(-1); } - - DocumentUndo::done(document, SP_VERB_SELECTION_TO_FRONT, - _("Raise to top")); } -void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *desktop) { - std::vector items(selection->items().begin(), selection->items().end()); - if (items.empty()) { - selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower.")); + SPDocument *document = selection->layers()->getDocument(); + + if (selection->isEmpty()) { + selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise to top.")); return; } - SPGroup const *group = sp_item_list_common_parent_group(items); + SPGroup const *group = sp_item_list_common_parent_group(selection->items()); if (!group) { selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("You cannot raise/lower objects from different groups or layers.")); return; } - Inkscape::XML::Node *grepr = const_cast(group->getRepr()); + sp_selection_raise_to_top(selection); + + DocumentUndo::done(document, SP_VERB_SELECTION_TO_FRONT, + _("Raise to top")); +} + +void sp_selection_lower(ObjectSet *set) { + std::vector items(set->items().begin(), set->items().end()); + Inkscape::XML::Node *grepr = const_cast(items.front()->parent->getRepr()); // Determine the common bbox of the selected items. Geom::OptRect selected = enclose_items(items); @@ -1110,37 +1100,37 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) } } } - - DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_LOWER, - //TRANSLATORS: "Lower" means "to lower an object" in the undo history - C_("Undo action", "Lower")); } -void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop) { - SPDocument *document = selection->layers()->getDocument(); - - if (selection->isEmpty()) { - selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower to bottom.")); + if (selection->items().empty()) { + selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower.")); return; } - std::vector items(selection->items().begin(), selection->items().end()); - - SPGroup const *group = sp_item_list_common_parent_group(items); + SPGroup const *group = sp_item_list_common_parent_group(selection->items()); if (!group) { selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("You cannot raise/lower objects from different groups or layers.")); return; } - std::vector rl(selection->xmlNodes().begin(), selection->xmlNodes().end()); + sp_selection_lower(selection); + + DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_LOWER, + //TRANSLATORS: "Lower" means "to lower an object" in the undo history + C_("Undo action", "Lower")); +} + +void sp_selection_lower_to_bottom(ObjectSet *set) { + std::vector rl(set->xmlNodes().begin(), set->xmlNodes().end()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_reverse_iterator l=rl.rbegin();l!=rl.rend();++l) { gint minpos; SPObject *pp; Inkscape::XML::Node *repr = (*l); - pp = document->getObjectByRepr(repr->parent()); + pp = set->desktop()->getDocument()->getObjectByRepr(repr->parent()); minpos = 0; g_assert(dynamic_cast(pp)); for (auto& pc: pp->children) { @@ -1151,8 +1141,24 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des } repr->setPosition(minpos); } +} + +void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop *desktop) +{ + if (selection->isEmpty()) { + selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower to bottom.")); + return; + } + + SPGroup const *group = sp_item_list_common_parent_group(selection->items()); + if (!group) { + selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("You cannot raise/lower objects from different groups or layers.")); + return; + } + + sp_selection_lower_to_bottom(selection); - DocumentUndo::done(document, SP_VERB_SELECTION_TO_BACK, + DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_TO_BACK, _("Lower to bottom")); } @@ -1478,7 +1484,7 @@ void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone) } static bool -selection_contains_original(SPItem *item, Inkscape::Selection *selection) +selection_contains_original(SPItem *item, ObjectSet* set) { bool contains_original = false; @@ -1489,7 +1495,7 @@ selection_contains_original(SPItem *item, Inkscape::Selection *selection) { item_use = use->get_original(); use = dynamic_cast(item_use); - contains_original |= selection->includes(item_use); + contains_original |= set->includes(item_use); if (item_use == item_use_first) break; } @@ -1498,7 +1504,7 @@ selection_contains_original(SPItem *item, Inkscape::Selection *selection) // data is part of the selection SPTRef *tref = dynamic_cast(item); if (!contains_original && tref) { - contains_original = selection->includes(tref->getObjectReferredTo()); + contains_original = set->includes(tref->getObjectReferredTo()); } return contains_original; @@ -1506,14 +1512,14 @@ selection_contains_original(SPItem *item, Inkscape::Selection *selection) static bool -selection_contains_both_clone_and_original(Inkscape::Selection *selection) +selection_contains_both_clone_and_original(ObjectSet *set) { bool clone_with_original = false; - auto items = selection->items(); + auto items = set->items(); for (auto l=items.begin();l!=items.end() ;++l) { SPItem *item = *l; if (item) { - clone_with_original |= selection_contains_original(item, selection); + clone_with_original |= selection_contains_original(item, set); if (clone_with_original) break; } @@ -1527,21 +1533,21 @@ value of set_i2d==false is only used by seltrans when it's dragging objects live that case, items are already in the new position, but the repr is in the old, and this function then simply updates the repr from item->transform. */ -void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine const &affine, bool set_i2d, bool compensate, bool adjust_transf_center) +void sp_selection_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool set_i2d, bool compensate, bool adjust_transf_center) { - if (selection->isEmpty()) + if (set->isEmpty()) return; // For each perspective with a box in selection, check whether all boxes are selected and // unlink all non-selected boxes. Persp3D *persp; Persp3D *transf_persp; - std::list plist = selection->perspList(); + std::list plist = set->perspList(); for (std::list::iterator i = plist.begin(); i != plist.end(); ++i) { persp = (Persp3D *) (*i); - if (!persp3d_has_all_boxes_in_selection (persp, selection)) { - std::list selboxes = selection->box3DList(persp); + if (!persp3d_has_all_boxes_in_selection (persp, set)) { + std::list selboxes = set->box3DList(persp); // create a new perspective as a copy of the current one and link the selected boxes to it transf_persp = persp3d_create_xml_element (persp->document, persp->perspective_impl); @@ -1554,14 +1560,14 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons persp3d_apply_affine_transformation(transf_persp, affine); } - auto items = selection->items(); + auto items = set->items(); for (auto l=items.begin();l!=items.end() ;++l) { SPItem *item = *l; if( dynamic_cast(item) ) { // An SVG element cannot have a transform. We could change 'x' and 'y' in response // to a translation... but leave that for another day. - selection->desktop()->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Cannot transform an embedded SVG.")); + set->desktop()->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Cannot transform an embedded SVG.")); break; } @@ -1575,17 +1581,17 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons #endif // we're moving both a clone and its original or any ancestor in clone chain? - bool transform_clone_with_original = selection_contains_original(item, selection); + bool transform_clone_with_original = selection_contains_original(item, set); // ...both a text-on-path and its path? bool transform_textpath_with_path = ((dynamic_cast(item) && item->firstChild() && dynamic_cast(item->firstChild())) - && selection->includes( sp_textpath_get_path_item(dynamic_cast(item->firstChild())) )); + && set->includes( sp_textpath_get_path_item(dynamic_cast(item->firstChild())) )); // ...both a flowtext and its frame? - bool transform_flowtext_with_frame = (dynamic_cast(item) && selection->includes( dynamic_cast(item)->get_frame(NULL))); // (only the first frame is checked so far) + bool transform_flowtext_with_frame = (dynamic_cast(item) && set->includes( dynamic_cast(item)->get_frame(NULL))); // (only the first frame is checked so far) // ...both an offset and its source? - bool transform_offset_with_source = (dynamic_cast(item) && dynamic_cast(item)->sourceHref) && selection->includes( sp_offset_get_source(dynamic_cast(item)) ); + bool transform_offset_with_source = (dynamic_cast(item) && dynamic_cast(item)->sourceHref) && set->includes( sp_offset_get_source(dynamic_cast(item)) ); // If we're moving a connector, we want to detach it // from shapes that aren't part of the selection, but @@ -1596,7 +1602,7 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons SPItem *attItem[2] = {0, 0}; path->connEndPair.getAttachedItems(attItem); for (int n = 0; n < 2; ++n) { - if (!selection->includes(attItem[n])) { + if (!set->includes(attItem[n])) { sp_conn_end_detach(item, n); } } @@ -1735,14 +1741,14 @@ void sp_selection_remove_transform(SPDesktop *desktop) } void -sp_selection_scale_absolute(Inkscape::Selection *selection, +sp_selection_scale_absolute(ObjectSet *set, double const x0, double const x1, double const y0, double const y1) { - if (selection->isEmpty()) + if (set->isEmpty()) return; - Geom::OptRect bbox = selection->visualBounds(); + Geom::OptRect bbox = set->visualBounds(); if ( !bbox ) { return; } @@ -1755,16 +1761,16 @@ sp_selection_scale_absolute(Inkscape::Selection *selection, Geom::Translate const o2n(x0, y0); Geom::Affine const final( p2o * scale * o2n ); - sp_selection_apply_affine(selection, final); + sp_selection_apply_affine(set, final); } -void sp_selection_scale_relative(Inkscape::Selection *selection, Geom::Point const &align, Geom::Scale const &scale) +void sp_selection_scale_relative(ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale) { - if (selection->isEmpty()) + if (set->isEmpty()) return; - Geom::OptRect bbox = selection->visualBounds(); + Geom::OptRect bbox = set->visualBounds(); if ( !bbox ) { return; @@ -1780,21 +1786,21 @@ void sp_selection_scale_relative(Inkscape::Selection *selection, Geom::Point con Geom::Translate const n2d(-align); Geom::Translate const d2n(align); Geom::Affine const final( n2d * scale * d2n ); - sp_selection_apply_affine(selection, final); + sp_selection_apply_affine(set, final); } void -sp_selection_rotate_relative(Inkscape::Selection *selection, Geom::Point const ¢er, gdouble const angle_degrees) +sp_selection_rotate_relative(ObjectSet *set, Geom::Point const ¢er, gdouble const angle_degrees) { Geom::Translate const d2n(center); Geom::Translate const n2d(-center); Geom::Rotate const rotate(Geom::Rotate::from_degrees(angle_degrees)); Geom::Affine const final( Geom::Affine(n2d) * rotate * d2n ); - sp_selection_apply_affine(selection, final); + sp_selection_apply_affine(set, final); } void -sp_selection_skew_relative(Inkscape::Selection *selection, Geom::Point const &align, double dx, double dy) +sp_selection_skew_relative(ObjectSet *set, Geom::Point const &align, double dx, double dy) { Geom::Translate const d2n(align); Geom::Translate const n2d(-align); @@ -1802,17 +1808,17 @@ sp_selection_skew_relative(Inkscape::Selection *selection, Geom::Point const &al dx, 1, 0, 0); Geom::Affine const final( n2d * skew * d2n ); - sp_selection_apply_affine(selection, final); + sp_selection_apply_affine(set, final); } -void sp_selection_move_relative(Inkscape::Selection *selection, Geom::Point const &move, bool compensate) +void sp_selection_move_relative(ObjectSet *set, Geom::Point const &move, bool compensate) { - sp_selection_apply_affine(selection, Geom::Affine(Geom::Translate(move)), true, compensate); + sp_selection_apply_affine(set, Geom::Affine(Geom::Translate(move)), true, compensate); } -void sp_selection_move_relative(Inkscape::Selection *selection, double dx, double dy) +void sp_selection_move_relative(ObjectSet *set, double dx, double dy) { - sp_selection_apply_affine(selection, Geom::Affine(Geom::Translate(dx, dy))); + sp_selection_apply_affine(set, Geom::Affine(Geom::Translate(dx, dy))); } /** @@ -2244,8 +2250,7 @@ sp_selection_scale(Inkscape::Selection *selection, gdouble grow) void sp_selection_scale_screen(Inkscape::Selection *selection, gdouble grow_pixels) { - sp_selection_scale(selection, - grow_pixels / selection->desktop()->current_zoom()); + sp_selection_scale(selection, grow_pixels / selection->desktop()->current_zoom()); } void @@ -3471,13 +3476,13 @@ void sp_selection_untile(SPDesktop *desktop) } } -void sp_selection_get_export_hints(Inkscape::Selection *selection, Glib::ustring &filename, float *xdpi, float *ydpi) +void sp_selection_get_export_hints(ObjectSet *set, Glib::ustring &filename, float *xdpi, float *ydpi) { - if (selection->isEmpty()) { + if (set->isEmpty()) { return; } - auto reprlst = selection->xmlNodes(); + auto reprlst = set->xmlNodes(); bool filename_search = TRUE; bool xdpi_search = TRUE; bool ydpi_search = TRUE; @@ -3947,18 +3952,13 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ if (grouping == PREFS_MASKOBJECT_GROUPING_ALL) { // group all those objects into one group // and apply mask to that - Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); + ObjectSet* set = new ObjectSet(selection->desktop()); + set->add(apply_to_items.begin(), apply_to_items.end()); - // make a note we should ungroup this when unsetting mask - group->setAttribute("inkscape:groupmode", "maskhelper"); - - std::vector reprs_to_group; - for (std::vector::const_iterator i = apply_to_items.begin(); i != apply_to_items.end(); ++i) { - reprs_to_group.push_back(static_cast(*i)->getRepr()); - } items_to_select.clear(); - sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); + Inkscape::XML::Node *group = sp_selection_group(set); + group->setAttribute("inkscape:groupmode", "maskhelper"); // apply clip/mask only to newly created group apply_to_items.clear(); @@ -3966,6 +3966,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ items_to_select.push_back((SPItem*)(doc->getObjectByRepr(group))); + delete set; Inkscape::GC::release(group); } if (grouping == PREFS_MASKOBJECT_GROUPING_SEPARATE) { diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index 82b91c617..cfae84eef 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -26,6 +26,7 @@ class SPDesktop; namespace Inkscape { class Selection; +class ObjectSet; namespace LivePathEffect { class PathParam; @@ -74,14 +75,19 @@ void sp_selection_unsymbol(SPDesktop *desktop); void sp_selection_tile(SPDesktop *desktop, bool apply = true); void sp_selection_untile(SPDesktop *desktop); -void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_group_ui(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop); void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_raise(Inkscape::ObjectSet* set); +void sp_selection_raise_to_top(Inkscape::ObjectSet* set); +void sp_selection_lower(Inkscape::ObjectSet *set); +void sp_selection_lower_to_bottom(Inkscape::ObjectSet *set); + +void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop *desktop); SPCSSAttr *take_style_from_item (SPObject *object); @@ -103,14 +109,14 @@ void sp_selection_to_next_layer( SPDesktop *desktop, bool suppressDone = false ) void sp_selection_to_prev_layer( SPDesktop *desktop, bool suppressDone = false ); void sp_selection_to_layer( SPDesktop *desktop, SPObject *layer, bool suppressDone = false ); -void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine const &affine, bool set_i2d = true, bool compensate = true, bool adjust_transf_center = true); +void sp_selection_apply_affine(Inkscape::ObjectSet *selection, Geom::Affine const &affine, bool set_i2d = true, bool compensate = true, bool adjust_transf_center = true); void sp_selection_remove_transform (SPDesktop *desktop); -void sp_selection_scale_absolute (Inkscape::Selection *selection, double x0, double x1, double y0, double y1); -void sp_selection_scale_relative(Inkscape::Selection *selection, Geom::Point const &align, Geom::Scale const &scale); -void sp_selection_rotate_relative (Inkscape::Selection *selection, Geom::Point const ¢er, double angle); -void sp_selection_skew_relative (Inkscape::Selection *selection, Geom::Point const &align, double dx, double dy); -void sp_selection_move_relative (Inkscape::Selection *selection, Geom::Point const &move, bool compensate = true); -void sp_selection_move_relative (Inkscape::Selection *selection, double dx, double dy); +void sp_selection_scale_absolute (Inkscape::ObjectSet *set, double x0, double x1, double y0, double y1); +void sp_selection_scale_relative(Inkscape::ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale); +void sp_selection_rotate_relative (Inkscape::ObjectSet *set, Geom::Point const ¢er, double angle); +void sp_selection_skew_relative (Inkscape::ObjectSet *set, Geom::Point const &align, double dx, double dy); +void sp_selection_move_relative (Inkscape::ObjectSet *set, Geom::Point const &move, bool compensate = true); +void sp_selection_move_relative (Inkscape::ObjectSet *set, double dx, double dy); void sp_selection_rotate_90 (SPDesktop *desktop, bool ccw); void sp_selection_rotate (Inkscape::Selection *selection, double angle); @@ -151,7 +157,7 @@ void scroll_to_show_item(SPDesktop *desktop, SPItem *item); void sp_undo (SPDesktop *desktop, SPDocument *doc); void sp_redo (SPDesktop *desktop, SPDocument *doc); -void sp_selection_get_export_hints (Inkscape::Selection *selection, Glib::ustring &filename, float *xdpi, float *ydpi); +void sp_selection_get_export_hints (Inkscape::ObjectSet* set, Glib::ustring &filename, float *xdpi, float *ydpi); void sp_document_get_export_hints (SPDocument * doc, Glib::ustring &filename, float *xdpi, float *ydpi); void sp_selection_create_bitmap_copy (SPDesktop *desktop); diff --git a/src/selection.cpp b/src/selection.cpp index 09eaf6c0e..bdd4f0dc7 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -27,15 +27,16 @@ #include "sp-shape.h" #include "sp-path.h" +#include "desktop.h" #include "document.h" #define SP_SELECTION_UPDATE_PRIORITY (G_PRIORITY_HIGH_IDLE + 1) namespace Inkscape { -Selection::Selection(LayerModel *layers, SPDesktop *desktop) : +Selection::Selection(LayerModel *layers, SPDesktop *desktop): + ObjectSet(desktop), _layers(layers), - _desktop(desktop), _selection_context(NULL), _flags(0), _idle(0) diff --git a/src/selection.h b/src/selection.h index 7027a388f..4ea70c38d 100644 --- a/src/selection.h +++ b/src/selection.h @@ -23,11 +23,9 @@ #include "inkgc/gc-managed.h" #include "gc-finalized.h" #include "gc-anchored.h" -#include "inkgc/gc-soft-ptr.h" #include "sp-item.h" #include "object-set.h" -class SPDesktop; class SPItem; namespace Inkscape { @@ -80,12 +78,7 @@ public: */ LayerModel *layers() { return _layers; } - /** - * Returns the desktop the selection is bound to - * - * @return the desktop the selection is bound to, or NULL if in console mode - */ - SPDesktop *desktop() { return _desktop; } + /** * Returns active layer for selection (currentLayer or its parent). @@ -228,7 +221,6 @@ private: void _releaseContext(SPObject *obj); LayerModel *_layers; - GC::soft_ptr _desktop; SPObject* _selection_context; unsigned int _flags; unsigned int _idle; diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index bcf055654..d19526105 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -1916,7 +1916,7 @@ void ContextMenu::MakeGroupMenu(void) void ContextMenu::ActivateGroup(void) { - sp_selection_group(_desktop->selection, _desktop); + sp_selection_group_ui(_desktop->selection, _desktop); } void ContextMenu::ActivateUngroup(void) diff --git a/src/verbs.cpp b/src/verbs.cpp index 299cfe8e7..8255ea1ea 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -1133,22 +1133,22 @@ void SelectionVerb::perform(SPAction *action, void *data) sp_selected_path_slice(selection, dt); break; case SP_VERB_SELECTION_TO_FRONT: - sp_selection_raise_to_top(selection, dt); + sp_selection_raise_to_top_ui(selection, dt); break; case SP_VERB_SELECTION_TO_BACK: - sp_selection_lower_to_bottom(selection, dt); + sp_selection_lower_to_bottom_ui(selection, dt); break; case SP_VERB_SELECTION_RAISE: - sp_selection_raise(selection, dt); + sp_selection_raise_ui(selection, dt); break; case SP_VERB_SELECTION_LOWER: - sp_selection_lower(selection, dt); + sp_selection_lower_ui(selection, dt); break; case SP_VERB_SELECTION_GROUP: - sp_selection_group(selection, dt); + sp_selection_group_ui(selection, dt); break; case SP_VERB_SELECTION_UNGROUP: - sp_selection_ungroup(selection, dt); + sp_selection_ungroup_ui(selection, dt); break; case SP_VERB_SELECTION_UNGROUP_POP_SELECTION: sp_selection_ungroup_pop_selection(selection, dt); -- cgit v1.2.3 From a227e8d45e7eaa6bf25d8ab65fbd404bc4597306 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Wed, 20 Jul 2016 13:45:05 +0200 Subject: Changed signatures of boolean functions (bzr r14954.1.24) --- src/object-set.h | 1 + src/splivarot.cpp | 170 +++++++++++++++++++++++-------------- src/splivarot.h | 10 ++- src/ui/tools/calligraphic-tool.cpp | 4 +- src/ui/tools/eraser-tool.cpp | 6 +- src/ui/tools/flood-tool.cpp | 2 +- src/ui/tools/spray-tool.cpp | 2 +- 7 files changed, 121 insertions(+), 74 deletions(-) diff --git a/src/object-set.h b/src/object-set.h index a0bca7889..c7f1921cf 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -102,6 +102,7 @@ public: typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())) XMLNodeRange; ObjectSet(SPDesktop* desktop): _desktop(desktop) {}; + ObjectSet(): _desktop(nullptr) {}; virtual ~ObjectSet(); /** diff --git a/src/splivarot.cpp b/src/splivarot.cpp index a4c4ac6cd..54b9bff2c 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -13,7 +13,6 @@ */ #ifdef HAVE_CONFIG_H -# include #endif #include @@ -23,14 +22,11 @@ #include "xml/repr.h" #include "svg/svg.h" #include "sp-path.h" -#include "sp-shape.h" #include "sp-image.h" #include "sp-marker.h" -#include "enums.h" #include "sp-text.h" #include "sp-flowtext.h" #include "text-editing.h" -#include "sp-item-group.h" #include "style.h" #include "document.h" #include "document-undo.h" @@ -38,15 +34,9 @@ #include "message-stack.h" #include "selection.h" -#include "desktop.h" -#include "display/canvas-bpath.h" -#include "display/curve.h" #include -#include "preferences.h" -#include "xml/repr.h" #include "xml/repr-sorting.h" -#include <2geom/pathvector.h> #include <2geom/svg-path-writer.h> #include "helper/geom.h" @@ -57,65 +47,96 @@ #include "verbs.h" #include "2geom/svg-path-parser.h" // to get from SVG on boolean to Geom::Path +enum BoolOpErrors { + DONE, + DONE_NO_PATH, + DONE_NO_ACTION, + ERR_TOO_LESS_PATHS_1, + ERR_TOO_LESS_PATHS_2, + ERR_NO_PATHS, + ERR_Z_ORDER +}; + using Inkscape::DocumentUndo; bool Ancetre(Inkscape::XML::Node *a, Inkscape::XML::Node *who); -void sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb=SP_VERB_NONE, const Glib::ustring description=""); +void sp_selected_path_boolop_ui(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, + const unsigned int verb = SP_VERB_NONE, const Glib::ustring description = ""); +BoolOpErrors sp_selected_path_boolop(Inkscape::ObjectSet *set, bool_op bop); void sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset); void sp_selected_path_create_offset_object(SPDesktop *desktop, int expand, bool updating); void sp_selected_path_union(Inkscape::Selection *selection, SPDesktop *desktop) { - sp_selected_path_boolop(selection, desktop, bool_op_union, SP_VERB_SELECTION_UNION, _("Union")); + sp_selected_path_boolop_ui(selection, desktop, bool_op_union, SP_VERB_SELECTION_UNION, _("Union")); } void -sp_selected_path_union_skip_undo(Inkscape::Selection *selection, SPDesktop *desktop) +sp_selected_path_union_skip_undo(Inkscape::ObjectSet *set) { - sp_selected_path_boolop(selection, desktop, bool_op_union, SP_VERB_NONE, _("Union")); + sp_selected_path_boolop(set, bool_op_union); } void sp_selected_path_intersect(Inkscape::Selection *selection, SPDesktop *desktop) { - sp_selected_path_boolop(selection, desktop, bool_op_inters, SP_VERB_SELECTION_INTERSECT, _("Intersection")); + sp_selected_path_boolop_ui(selection, desktop, bool_op_inters, SP_VERB_SELECTION_INTERSECT, _("Intersection")); +} + +void +sp_selected_path_intersect_skip_undo(Inkscape::ObjectSet *set) +{ + sp_selected_path_boolop(set, bool_op_inters); } void sp_selected_path_diff(Inkscape::Selection *selection, SPDesktop *desktop) { - sp_selected_path_boolop(selection, desktop, bool_op_diff, SP_VERB_SELECTION_DIFF, _("Difference")); + sp_selected_path_boolop_ui(selection, desktop, bool_op_diff, SP_VERB_SELECTION_DIFF, _("Difference")); } void -sp_selected_path_diff_skip_undo(Inkscape::Selection *selection, SPDesktop *desktop) +sp_selected_path_diff_skip_undo(Inkscape::ObjectSet *set) { - sp_selected_path_boolop(selection, desktop, bool_op_diff, SP_VERB_NONE, _("Difference")); + sp_selected_path_boolop(set, bool_op_diff); } void sp_selected_path_symdiff(Inkscape::Selection *selection, SPDesktop *desktop) { - sp_selected_path_boolop(selection, desktop, bool_op_symdiff, SP_VERB_SELECTION_SYMDIFF, _("Exclusion")); + sp_selected_path_boolop_ui(selection, desktop, bool_op_symdiff, SP_VERB_SELECTION_SYMDIFF, _("Exclusion")); } + +void +sp_selected_path_symdiff_skip_undo(Inkscape::ObjectSet *set) +{ + sp_selected_path_boolop(set, bool_op_symdiff); +} + void sp_selected_path_cut(Inkscape::Selection *selection, SPDesktop *desktop) { - sp_selected_path_boolop(selection, desktop, bool_op_cut, SP_VERB_SELECTION_CUT, _("Division")); + sp_selected_path_boolop_ui(selection, desktop, bool_op_cut, SP_VERB_SELECTION_CUT, _("Division")); } void -sp_selected_path_cut_skip_undo(Inkscape::Selection *selection, SPDesktop *desktop) +sp_selected_path_cut_skip_undo(Inkscape::ObjectSet *set) { - sp_selected_path_boolop(selection, desktop, bool_op_cut, SP_VERB_NONE, _("Division")); + sp_selected_path_boolop(set, bool_op_cut); } void sp_selected_path_slice(Inkscape::Selection *selection, SPDesktop *desktop) { - sp_selected_path_boolop(selection, desktop, bool_op_slice, SP_VERB_SELECTION_SLICE, _("Cut path")); + sp_selected_path_boolop_ui(selection, desktop, bool_op_slice, SP_VERB_SELECTION_SLICE, _("Cut path")); +} + +void +sp_selected_path_slice_skip_undo(Inkscape::ObjectSet *set) +{ + sp_selected_path_boolop(set, bool_op_slice); } // helper for printing error messages, regardless of whether we have a GUI or not @@ -331,20 +352,17 @@ Geom::PathVector pathliv_to_pathvector(Path *pathliv){ // boolean operations on the desktop // take the source paths from the file, do the operation, delete the originals and add the results -void -sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb, const Glib::ustring description) +BoolOpErrors sp_selected_path_boolop(Inkscape::ObjectSet * set, bool_op bop) { - SPDocument *doc = selection->layers()->getDocument(); - std::vector il(selection->items().begin(), selection->items().end()); - + SPDocument *doc = set->desktop()->getDocument(); + std::vector il(set->items().begin(), set->items().end()); + // allow union on a single object for the purpose of removing self overlapse (svn log, revision 13334) - if ( (il.size() < 2) && (bop != bool_op_union)) { - boolop_display_error_message(desktop, _("Select at least 2 paths to perform a boolean operation.")); - return; + if (il.size() < 2 && bop != bool_op_union) { + return ERR_TOO_LESS_PATHS_2; } - else if ( il.size() < 1 ) { - boolop_display_error_message(desktop, _("Select at least 1 path to perform a boolean union.")); - return; + else if (il.size() < 1) { + return ERR_TOO_LESS_PATHS_1; } g_assert(!il.empty()); @@ -360,8 +378,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool Inkscape::XML::Node *b = il.back()->getRepr(); if (a == NULL || b == NULL) { - boolop_display_error_message(desktop, _("Unable to determine the z-order of the objects selected for difference, XOR, division, or path cut.")); - return; + return ERR_Z_ORDER; } if (Ancetre(a, b)) { @@ -375,8 +392,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool // find their lowest common ancestor Inkscape::XML::Node *parent = LCA(a, b); if (parent == NULL) { - boolop_display_error_message(desktop, _("Unable to determine the z-order of the objects selected for difference, XOR, division, or path cut.")); - return; + return ERR_Z_ORDER; } // find the children of the LCA that lead from it to the a and b @@ -405,8 +421,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool SPItem *item = *l; if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item) && !SP_IS_FLOWTEXT(item)) { - boolop_display_error_message(desktop, _("One of the objects is not a path, cannot perform boolean operation.")); - return; + return ERR_NO_PATHS; } } @@ -439,7 +454,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool if (originaux[curOrig] == NULL || originaux[curOrig]->descr_cmd.size() <= 1) { for (int i = curOrig; i >= 0; i--) delete originaux[i]; - return; + return DONE_NO_ACTION; } curOrig++; } @@ -500,18 +515,18 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool bool zeroA = theShapeA->numberOfEdges() == 0; bool zeroB = theShapeB->numberOfEdges() == 0; if (zeroA || zeroB) { - // We might need to do a swap. Apply the above rules depending on operation type. - bool resultIsB = ((bop == bool_op_union || bop == bool_op_symdiff) && zeroA) - || ((bop == bool_op_inters) && zeroB) - || (bop == bool_op_diff); + // We might need to do a swap. Apply the above rules depending on operation type. + bool resultIsB = ((bop == bool_op_union || bop == bool_op_symdiff) && zeroA) + || ((bop == bool_op_inters) && zeroB) + || (bop == bool_op_diff); if (resultIsB) { - // Swap A and B to use B as the result + // Swap A and B to use B as the result Shape *swap = theShapeB; theShapeB = theShapeA; theShapeA = swap; } } else { - // Just do the Boolean operation as usual + // Just do the Boolean operation as usual // les elements arrivent en ordre inverse dans la liste theShape->Booleen(theShapeB, theShapeA, bop); Shape *swap = theShape; @@ -672,24 +687,23 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ (*l)->deleteObject(); } - DocumentUndo::done(doc, SP_VERB_NONE, description); - selection->clear(); + set->clear(); delete res; - return; + return DONE_NO_PATH; } // get the source path object SPObject *source; if ( bop == bool_op_diff || bop == bool_op_cut || bop == bool_op_slice ) { if (reverseOrderForOp) { - source = il[0]; + source = il[0]; } else { - source = il.back(); + source = il.back(); } } else { // find out the bottom object - std::vector sorted(selection->xmlNodes().begin(), selection->xmlNodes().end()); + std::vector sorted(set->xmlNodes().begin(), set->xmlNodes().end()); sort(sorted.begin(),sorted.end(),sp_repr_compare_position_bool); @@ -717,7 +731,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool gchar *title = source->title(); gchar *desc = source->desc(); // remove source paths - selection->clear(); + set->clear(); for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ // if this is the bottommost object, if (!strcmp(reinterpret_cast(*l)->getRepr()->attribute("id"), id)) { @@ -796,7 +810,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool // move to the saved position repr->setPosition(pos > 0 ? pos : 0); - selection->add(repr); + set->add(doc->getObjectByRepr(repr)); Inkscape::GC::release(repr); delete resPath[i]; @@ -824,14 +838,14 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool repr->setAttribute("id", id); parent->appendChild(repr); if (title) { - doc->getObjectByRepr(repr)->setTitle(title); - } + doc->getObjectByRepr(repr)->setTitle(title); + } if (desc) { - doc->getObjectByRepr(repr)->setDesc(desc); + doc->getObjectByRepr(repr)->setDesc(desc); } - repr->setPosition(pos > 0 ? pos : 0); + repr->setPosition(pos > 0 ? pos : 0); - selection->add(repr); + set->add(doc->getObjectByRepr(repr)); Inkscape::GC::release(repr); } @@ -839,11 +853,39 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool if (title) g_free(title); if (desc) g_free(desc); - if (verb != SP_VERB_NONE) { - DocumentUndo::done(doc, verb, description); - } - delete res; + + return DONE; +} + +void sp_selected_path_boolop_ui(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb, + const Glib::ustring description) +{ + SPDocument *doc = selection->desktop()->getDocument(); + BoolOpErrors returnCode = sp_selected_path_boolop(selection, bop); + switch(returnCode) { + case ERR_TOO_LESS_PATHS_1: + boolop_display_error_message(desktop, _("Select at least 1 path to perform a boolean union.")); + return; + case ERR_TOO_LESS_PATHS_2: + boolop_display_error_message(desktop, _("Select at least 2 paths to perform a boolean operation.")); + return; + case ERR_NO_PATHS: + boolop_display_error_message(desktop, _("One of the objects is not a path, cannot perform boolean operation.")); + return; + case ERR_Z_ORDER: + boolop_display_error_message(desktop, _("Unable to determine the z-order of the objects selected for difference, XOR, division, or path cut.")); + return; + case DONE_NO_PATH: + DocumentUndo::done(doc, SP_VERB_NONE, description); + return; + case DONE: + DocumentUndo::done(doc, verb, description); + return; + case DONE_NO_ACTION: + default: + return; + } } static diff --git a/src/splivarot.h b/src/splivarot.h index 421c9c4b8..9b07a5a71 100644 --- a/src/splivarot.h +++ b/src/splivarot.h @@ -17,6 +17,7 @@ class SPItem; namespace Inkscape { class Selection; + class ObjectSet; } // boolean operations @@ -27,14 +28,17 @@ namespace Inkscape { // command-line mode, i.e. without a desktop. If a desktop is not // provided (desktop == NULL), error messages will be shown on stderr. void sp_selected_path_union (Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selected_path_union_skip_undo (Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selected_path_union_skip_undo (Inkscape::ObjectSet *set); void sp_selected_path_intersect (Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selected_path_intersect_skip_undo (Inkscape::ObjectSet *set); void sp_selected_path_diff (Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selected_path_diff_skip_undo (Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selected_path_diff_skip_undo (Inkscape::ObjectSet *set); void sp_selected_path_symdiff (Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selected_path_symdiff_skip_undo (Inkscape::ObjectSet *set); void sp_selected_path_cut (Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selected_path_cut_skip_undo (Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selected_path_cut_skip_undo (Inkscape::ObjectSet *set); void sp_selected_path_slice (Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selected_path_slice_skip_undo (Inkscape::ObjectSet *set); // offset/inset of a curve // takes the fill-rule in consideration diff --git a/src/ui/tools/calligraphic-tool.cpp b/src/ui/tools/calligraphic-tool.cpp index 28195eb75..12dcedd21 100644 --- a/src/ui/tools/calligraphic-tool.cpp +++ b/src/ui/tools/calligraphic-tool.cpp @@ -930,10 +930,10 @@ void CalligraphicTool::set_to_accumulated(bool unionize, bool subtract) { if (unionize) { desktop->getSelection()->add(this->repr); - sp_selected_path_union_skip_undo(desktop->getSelection(), desktop); + sp_selected_path_union_skip_undo(desktop->getSelection()); } else if (subtract) { desktop->getSelection()->add(this->repr); - sp_selected_path_diff_skip_undo(desktop->getSelection(), desktop); + sp_selected_path_diff_skip_undo(desktop->getSelection()); } else { if (this->keep_selected) { desktop->getSelection()->set(this->repr); diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 534123e90..8ed75fbdb 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -718,7 +718,7 @@ void EraserTool::set_to_accumulated() { Inkscape::GC::release(dup); // parent takes over selection->set(dup); if (!this->nowidth) { - sp_selected_path_union_skip_undo(selection, desktop); + sp_selected_path_union_skip_undo(selection); } selection->add(item); if(item->style->fill_rule.value == SP_WIND_RULE_EVENODD){ @@ -729,9 +729,9 @@ void EraserTool::set_to_accumulated() { css = 0; } if (this->nowidth) { - sp_selected_path_cut_skip_undo(selection, desktop); + sp_selected_path_cut_skip_undo(selection); } else { - sp_selected_path_diff_skip_undo(selection, desktop); + sp_selected_path_diff_skip_undo(selection); } workDone = true; // TODO set this only if something was cut. bool break_apart = prefs->getBool("/tools/eraser/break_apart", false); diff --git a/src/ui/tools/flood-tool.cpp b/src/ui/tools/flood-tool.cpp index 748c82717..b5a2fd871 100644 --- a/src/ui/tools/flood-tool.cpp +++ b/src/ui/tools/flood-tool.cpp @@ -456,7 +456,7 @@ static void do_trace(bitmap_coords_info bci, guchar *trace_px, SPDesktop *deskto ngettext("Area filled, path with %d node created and unioned with selection.","Area filled, path with %d nodes created and unioned with selection.", SP_PATH(reprobj)->nodesInPath()), SP_PATH(reprobj)->nodesInPath() ); selection->add(reprobj); - sp_selected_path_union_skip_undo(desktop->getSelection(), desktop); + sp_selected_path_union_skip_undo(desktop->getSelection()); } else { desktop->messageStack()->flashF( Inkscape::WARNING_MESSAGE, ngettext("Area filled, path with %d node created.","Area filled, path with %d nodes created.", diff --git a/src/ui/tools/spray-tool.cpp b/src/ui/tools/spray-tool.cpp index 5d804a9bd..a95e5aa96 100644 --- a/src/ui/tools/spray-tool.cpp +++ b/src/ui/tools/spray-tool.cpp @@ -1050,7 +1050,7 @@ static bool sp_spray_recursive(SPDesktop *desktop, if (unionResult) { // No need to add the very first item (initialized with NULL). selection->add(unionResult); } - sp_selected_path_union_skip_undo(selection, selection->desktop()); + sp_selected_path_union_skip_undo(selection); selection->add(parent_item); Inkscape::GC::release(copy); did = true; -- cgit v1.2.3 From d31923a399f3c7cde85aae8406191e37ad877eb7 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Fri, 22 Jul 2016 11:32:35 +0200 Subject: Improved spray tool, changed selection to object set (bzr r14954.1.25) --- src/object-set.h | 1 + src/ui/tools/spray-tool.cpp | 54 +++++++++++++++++++++------------------------ src/ui/tools/spray-tool.h | 9 +++++++- 3 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/object-set.h b/src/object-set.h index c7f1921cf..b4178bd37 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -121,6 +121,7 @@ public: for(auto it = from; it != to; ++it) { _add(*it); } + _emitSignals(); } /** diff --git a/src/ui/tools/spray-tool.cpp b/src/ui/tools/spray-tool.cpp index a95e5aa96..49ff50428 100644 --- a/src/ui/tools/spray-tool.cpp +++ b/src/ui/tools/spray-tool.cpp @@ -13,6 +13,7 @@ * Jon A. Cruz * Abhishek Sharma * Jabiertxo Arraiza + * Adrian Boguszewski * * Copyright (C) 2009 authors * @@ -196,6 +197,7 @@ SprayTool::SprayTool() } SprayTool::~SprayTool() { + object_set.clear(); this->enableGrDrag(false); this->style_set_connection.disconnect(); @@ -862,7 +864,7 @@ static bool fit_item(SPDesktop *desktop, } static bool sp_spray_recursive(SPDesktop *desktop, - Inkscape::Selection *selection, + Inkscape::ObjectSet *set, SPItem *item, Geom::Point p, Geom::Point /*vector*/, @@ -907,7 +909,7 @@ static bool sp_spray_recursive(SPDesktop *desktop, if (box) { // convert 3D boxes to ordinary groups before spraying their shapes item = box3d_convert_to_group(box); - selection->add(item); + set->add(item); } } @@ -996,23 +998,11 @@ static bool sp_spray_recursive(SPDesktop *desktop, } #ifdef ENABLE_SPRAY_MODE_SINGLE_PATH } else if (mode == SPRAY_MODE_SINGLE_PATH) { + long setSize = boost::distance(set->items()); + SPItem *parent_item = setSize > 0 ? set->items().front() : nullptr; // Initial object + SPItem *unionResult = setSize > 1 ? *(++set->items().begin()) : nullptr; // Previous union + SPItem *item_copied = nullptr; // Projected object - SPItem *parent_item = NULL; // Initial object - SPItem *item_copied = NULL; // Projected object - SPItem *unionResult = NULL; // Previous union - - int i=1; - auto items= selection->items(); - for(auto it=items.begin();it!=items.end(); ++it){ - SPItem *item1 = *it; - if (i == 1) { - parent_item = item1; - } - if (i == 2) { - unionResult = item1; - } - i++; - } if (parent_item) { SPDocument *doc = parent_item->document; Inkscape::XML::Document* xml_doc = doc->getReprDoc(); @@ -1045,13 +1035,13 @@ static bool sp_spray_recursive(SPDesktop *desktop, sp_item_move_rel(item_copied, Geom::Translate(move[Geom::X], -move[Geom::Y])); // Union and duplication - selection->clear(); - selection->add(item_copied); + set->clear(); + set->add(item_copied); if (unionResult) { // No need to add the very first item (initialized with NULL). - selection->add(unionResult); + set->add(unionResult); } - sp_selected_path_union_skip_undo(selection); - selection->add(parent_item); + sp_selected_path_union_skip_undo(set); + set->add(parent_item); Inkscape::GC::release(copy); did = true; } @@ -1146,9 +1136,8 @@ static bool sp_spray_recursive(SPDesktop *desktop, static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point p, Geom::Point vector, bool reverse) { SPDesktop *desktop = tc->desktop; - Inkscape::Selection *selection = desktop->getSelection(); - - if (selection->isEmpty()) { + Inkscape::ObjectSet *set = tc->objectSet(); + if (set->isEmpty()) { return false; } @@ -1170,7 +1159,7 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point double move_standard_deviation = get_move_standard_deviation(tc); { - std::vector const items(selection->items().begin(), selection->items().end()); + std::vector const items(set->items().begin(), set->items().end()); for(std::vector::const_iterator i=items.begin();i!=items.end(); ++i){ SPItem *item = *i; @@ -1182,7 +1171,7 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point SPItem *item = *i; g_assert(item != NULL); if (sp_spray_recursive(desktop - , selection + , set , item , p, vector , tc->mode @@ -1276,6 +1265,11 @@ bool SprayTool::root_handler(GdkEvent* event) { this->is_dilating = true; this->has_dilated = false; + object_set = *desktop->getSelection(); + if (mode == SPRAY_MODE_SINGLE_PATH) { + desktop->getSelection()->clear(); + } + if(this->is_dilating && event->button.button == 1 && !this->space_panning) { sp_spray_dilate(this, motion_w, desktop->dt2doc(motion_dt), Geom::Point(0,0), MOD__SHIFT(event)); } @@ -1299,7 +1293,7 @@ bool SprayTool::root_handler(GdkEvent* event) { guint num = 0; if (!desktop->selection->isEmpty()) { - num = boost::distance(desktop->selection->items() ); + num = (guint) boost::distance(desktop->selection->items()); } if (num == 0) { this->message_context->flash(Inkscape::ERROR_MESSAGE, _("Nothing selected! Select objects to spray.")); @@ -1384,6 +1378,8 @@ bool SprayTool::root_handler(GdkEvent* event) { SP_VERB_CONTEXT_SPRAY, _("Spray with clones")); break; case SPRAY_MODE_SINGLE_PATH: + sp_selected_path_union_skip_undo(objectSet()); + desktop->getSelection()->add(object_set.objects().begin(), object_set.objects().end()); DocumentUndo::done(this->desktop->getDocument(), SP_VERB_CONTEXT_SPRAY, _("Spray in single path")); break; diff --git a/src/ui/tools/spray-tool.h b/src/ui/tools/spray-tool.h index c81110b37..d5504d565 100644 --- a/src/ui/tools/spray-tool.h +++ b/src/ui/tools/spray-tool.h @@ -13,6 +13,7 @@ * Vincent MONTAGNE * Pierre BARBRY-BLOT * Jabiertxo ARRAIZA + * Adrian Boguszewski * * Copyright (C) 2009 authors * @@ -120,8 +121,14 @@ public: virtual const std::string& getPrefsPath(); - void update_cursor(bool /*with_shift*/); + + ObjectSet* objectSet() { + return &object_set; + } + +private: + ObjectSet object_set; }; } -- cgit v1.2.3 From 40136abc93171fd163a78472cdeaf5d875acefda Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Sun, 24 Jul 2016 22:27:21 -0700 Subject: Revert the canvas widget changes, which cause performance regressions on GTK2 on some platforms. (bzr r15023.3.1) --- src/desktop.cpp | 19 ++- src/desktop.h | 1 + src/display/sp-canvas.cpp | 376 ++++++++++++++++++++++++---------------------- src/display/sp-canvas.h | 33 ++-- 4 files changed, 229 insertions(+), 200 deletions(-) diff --git a/src/desktop.cpp b/src/desktop.cpp index d482d0d7f..331ab3351 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -111,6 +111,7 @@ SPDesktop::SPDesktop() : sketch( NULL ), controls( NULL ), tempgroup ( NULL ), + table( NULL ), page( NULL ), page_border( NULL ), current( NULL ), @@ -210,7 +211,11 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas, Inkscape::UI::View::EditWid g_signal_connect (G_OBJECT (main), "event", G_CALLBACK (sp_desktop_root_handler), this); /* This is the background the page sits on. */ - canvas->setBackgroundColor(0xffffff00); + table = sp_canvas_item_new (main, SP_TYPE_CTRLRECT, NULL); + SP_CTRLRECT(table)->setRectangle(Geom::Rect(Geom::Point(-80000, -80000), Geom::Point(80000, 80000))); + SP_CTRLRECT(table)->setColor(0x00000000, true, 0x00000000); + SP_CTRLRECT(table)->setCheckerboard( false ); + sp_canvas_item_move_to_z (table, 0); page = sp_canvas_item_new (main, SP_TYPE_CTRLRECT, NULL); ((CtrlRect *) page)->setColor(0x00000000, FALSE, 0x00000000); @@ -1728,11 +1733,17 @@ static void _namedview_modified (SPObject *obj, guint flags, SPDesktop *desktop) SPNamedView *nv=SP_NAMEDVIEW(obj); if (flags & SP_OBJECT_MODIFIED_FLAG) { + + /* Set page background */ + sp_canvas_item_show (desktop->table); if (nv->pagecheckerboard) { - desktop->canvas->setBackgroundCheckerboard(); + ((CtrlRect *) desktop->table)->setCheckerboard( true ); + ((CtrlRect *) desktop->table)->setColor(0x00000000, true, nv->pagecolor ); // | 0xff); } else { - desktop->canvas->setBackgroundColor(nv->pagecolor); + ((CtrlRect *) desktop->table)->setCheckerboard( false ); + ((CtrlRect *) desktop->table)->setColor(0x00000000, true, nv->pagecolor | 0xff); } + sp_canvas_item_move_to_z (desktop->table, 0); /* Show/hide page border */ if (nv->showborder) { @@ -1745,7 +1756,7 @@ static void _namedview_modified (SPObject *obj, guint flags, SPDesktop *desktop) } // place in the z-order stack if (nv->borderlayer == SP_BORDER_LAYER_BOTTOM) { - sp_canvas_item_move_to_z (desktop->page_border, 1); + sp_canvas_item_move_to_z (desktop->page_border, 2); } else { int order = sp_canvas_item_order (desktop->page_border); int morder = sp_canvas_item_order (desktop->drawing); diff --git a/src/desktop.h b/src/desktop.h index 3652d4a97..f1444ba7b 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -174,6 +174,7 @@ public: SPCanvasGroup *sketch; SPCanvasGroup *controls; SPCanvasGroup *tempgroup; ///< contains temporary canvas items + SPCanvasItem *table; ///< outside-of-page background SPCanvasItem *page; ///< page background SPCanvasItem *page_border; ///< page border SPCSSAttr *current; ///< current style diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 7d76fa043..df84e379c 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -8,11 +8,9 @@ * fred * bbyak * Jon A. Cruz - * Krzysztof KosiÅ„ski * * Copyright (C) 1998 The Free Software Foundation * Copyright (C) 2002-2006 authors - * Copyright (C) 2016 Google Inc. * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -27,7 +25,6 @@ #include "helper/sp-marshal.h" #include <2geom/rect.h> #include <2geom/affine.h> -#include "display/cairo-utils.h" #include "display/sp-canvas.h" #include "display/sp-canvas-group.h" #include "preferences.h" @@ -38,7 +35,6 @@ #include "display/cairo-utils.h" #include "debug/gdk-event-latency-tracker.h" #include "desktop.h" -#include "color.h" using Inkscape::Debug::GdkEventLatencyTracker; @@ -126,7 +122,7 @@ struct SPCanvasClass { namespace { -gint const UPDATE_PRIORITY = G_PRIORITY_DEFAULT_IDLE; +gint const UPDATE_PRIORITY = G_PRIORITY_HIGH_IDLE; GdkWindow *getWindow(SPCanvas *canvas) { @@ -939,6 +935,7 @@ void sp_canvas_class_init(SPCanvasClass *klass) static void sp_canvas_init(SPCanvas *canvas) { gtk_widget_set_has_window (GTK_WIDGET (canvas), TRUE); + gtk_widget_set_double_buffered (GTK_WIDGET (canvas), FALSE); gtk_widget_set_can_focus (GTK_WIDGET (canvas), TRUE); canvas->_pick_event.type = GDK_LEAVE_NOTIFY; @@ -959,10 +956,9 @@ static void sp_canvas_init(SPCanvas *canvas) canvas->_drawing_disabled = false; - canvas->_backing_store = NULL; - canvas->_clean_region = cairo_region_create(); - canvas->_background = cairo_pattern_create_rgb(1, 1, 1); - canvas->_background_is_checkerboard = false; + canvas->_tiles=NULL; + canvas->_tLeft=canvas->_tTop=canvas->_tRight=canvas->_tBottom=0; + canvas->_tile_h=canvas->_tile_h=0; canvas->_forced_redraw_count = 0; canvas->_forced_redraw_limit = -1; @@ -971,12 +967,22 @@ static void sp_canvas_init(SPCanvas *canvas) canvas->_enable_cms_display_adj = false; new (&canvas->_cms_key) Glib::ustring(""); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + + canvas->_is_scrolling = false; } void SPCanvas::shutdownTransients() { - // Reset the clean region - dirtyAll(); + // We turn off the need_redraw flag, since if the canvas is mapped again + // it will request a redraw anyways. We do not turn off the need_update + // flag, though, because updates are not queued when the canvas remaps + // itself. + // + _need_redraw = FALSE; + if (_tiles) g_free(_tiles); + _tiles = NULL; + _tLeft = _tTop = _tRight = _tBottom = 0; + _tile_h = _tile_h = 0; if (_grabbed_item) { _grabbed_item = NULL; @@ -999,18 +1005,6 @@ void SPCanvas::dispose(GObject *object) g_object_unref (canvas->_root); canvas->_root = NULL; } - if (canvas->_backing_store) { - cairo_surface_destroy(canvas->_backing_store); - canvas->_backing_store = NULL; - } - if (canvas->_clean_region) { - cairo_region_destroy(canvas->_clean_region); - canvas->_clean_region = NULL; - } - if (canvas->_background) { - cairo_pattern_destroy(canvas->_background); - canvas->_background = NULL; - } canvas->shutdownTransients(); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -1144,48 +1138,41 @@ void SPCanvas::handle_size_request(GtkWidget *widget, GtkRequisition *req) void SPCanvas::handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { SPCanvas *canvas = SP_CANVAS (widget); - GtkAllocation old_allocation; + GtkAllocation widg_allocation; - gtk_widget_get_allocation(widget, &old_allocation); + gtk_widget_get_allocation (widget, &widg_allocation); -// Geom::IntRect old_area = Geom::IntRect::from_xywh(canvas->_x0, canvas->_y0, -// old_allocation.width, old_allocation.height); +// Geom::IntRect old_area = Geom::IntRect::from_xywh(canvas->x0, canvas->y0, +// widg_allocation.width, widg_allocation.height); Geom::IntRect new_area = Geom::IntRect::from_xywh(canvas->_x0, canvas->_y0, allocation->width, allocation->height); - // resize backing store - cairo_surface_t *new_backing_store = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, - allocation->width, allocation->height); - if (canvas->_backing_store) { - cairo_t *cr = cairo_create(new_backing_store); - cairo_translate(cr, -canvas->_x0, -canvas->_y0); - cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); - cairo_set_source(cr, canvas->_background); - cairo_paint(cr); - cairo_set_source_surface(cr, canvas->_backing_store, canvas->_x0, canvas->_y0); - cairo_paint(cr); - cairo_destroy(cr); - cairo_surface_destroy(canvas->_backing_store); - } - canvas->_backing_store = new_backing_store; - - // Clip the clean region to the new allocation - cairo_rectangle_int_t crect = { canvas->_x0, canvas->_y0, allocation->width, allocation->height }; - cairo_region_intersect_rectangle(canvas->_clean_region, &crect); - - gtk_widget_set_allocation (widget, allocation); - + // Schedule redraw of new region + canvas->resizeTiles(canvas->_x0, canvas->_y0, canvas->_x0 + allocation->width, canvas->_y0 + allocation->height); if (SP_CANVAS_ITEM_GET_CLASS (canvas->_root)->viewbox_changed) SP_CANVAS_ITEM_GET_CLASS (canvas->_root)->viewbox_changed (canvas->_root, new_area); + if (allocation->width > widg_allocation.width) { + canvas->requestRedraw(canvas->_x0 + widg_allocation.width, + 0, + canvas->_x0 + allocation->width, + canvas->_y0 + allocation->height); + } + if (allocation->height > widg_allocation.height) { + canvas->requestRedraw(0, + canvas->_y0 + widg_allocation.height, + canvas->_x0 + allocation->width, + canvas->_y0 + allocation->height); + } + + gtk_widget_set_allocation (widget, allocation); + if (gtk_widget_get_realized (widget)) { gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x, allocation->y, allocation->width, allocation->height); } - // Schedule redraw of any newly exposed regions - canvas->addIdle(); } int SPCanvas::emitEvent(GdkEvent *event) @@ -1539,23 +1526,48 @@ int SPCanvas::handle_motion(GtkWidget *widget, GdkEventMotion *event) void SPCanvas::paintSingleBuffer(Geom::IntRect const &paint_rect, Geom::IntRect const &canvas_rect, int /*sw*/) { + GtkWidget *widget = GTK_WIDGET (this); + + // Mark the region clean + markRect(paint_rect, 0); + SPCanvasBuf buf; buf.buf = NULL; buf.buf_rowstride = 0; buf.rect = paint_rect; buf.visible_rect = canvas_rect; buf.is_empty = true; + //buf.ct = gdk_cairo_create(widget->window); // create temporary surface cairo_surface_t *imgs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, paint_rect.width(), paint_rect.height()); buf.ct = cairo_create(imgs); + //cairo_translate(buf.ct, -x0, -y0); + + // fix coordinates, clip all drawing to the tile and clear the background + //cairo_translate(buf.ct, paint_rect.left() - canvas->x0, paint_rect.top() - canvas->y0); + //cairo_rectangle(buf.ct, 0, 0, paint_rect.width(), paint_rect.height()); + //cairo_set_line_width(buf.ct, 3); + //cairo_set_source_rgba(buf.ct, 1.0, 0.0, 0.0, 0.1); + //cairo_stroke_preserve(buf.ct); + //cairo_clip(buf.ct); + +#if GTK_CHECK_VERSION(3,0,0) + GtkStyleContext *context = gtk_widget_get_style_context(widget); + GdkRGBA color; + gtk_style_context_get_background_color(context, + gtk_widget_get_state_flags(widget), + &color); + gdk_cairo_set_source_rgba(buf.ct, &color); +#else + GtkStyle *style = gtk_widget_get_style (widget); + gdk_cairo_set_source_color(buf.ct, &style->bg[GTK_STATE_NORMAL]); +#endif - cairo_save(buf.ct); - cairo_translate(buf.ct, -paint_rect.left(), -paint_rect.top()); - cairo_set_source(buf.ct, _background); cairo_set_operator(buf.ct, CAIRO_OPERATOR_SOURCE); + //cairo_rectangle(buf.ct, 0, 0, paint_rect.width(), paint_rec.height()); cairo_paint(buf.ct); - cairo_restore(buf.ct); + cairo_set_operator(buf.ct, CAIRO_OPERATOR_OVER); if (_root->visible) { SP_CANVAS_ITEM_GET_CLASS(_root)->render(_root, &buf); @@ -1588,8 +1600,7 @@ void SPCanvas::paintSingleBuffer(Geom::IntRect const &paint_rect, Geom::IntRect } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - //cairo_t *xct = gdk_cairo_create(gtk_widget_get_window (widget)); - cairo_t *xct = cairo_create(_backing_store); + cairo_t *xct = gdk_cairo_create(gtk_widget_get_window (widget)); cairo_translate(xct, paint_rect.left() - _x0, paint_rect.top() - _y0); cairo_rectangle(xct, 0, 0, paint_rect.width(), paint_rect.height()); cairo_clip(xct); @@ -1598,12 +1609,6 @@ void SPCanvas::paintSingleBuffer(Geom::IntRect const &paint_rect, Geom::IntRect cairo_paint(xct); cairo_destroy(xct); cairo_surface_destroy(imgs); - - // Mark the painted rectangle clean - markRect(paint_rect, 0); - - gtk_widget_queue_draw_area(GTK_WIDGET(this), paint_rect.left() -_x0, paint_rect.top() - _y0, - paint_rect.width(), paint_rect.height()); } struct PaintRectSetup { @@ -1787,49 +1792,52 @@ void SPCanvas::endForcedFullRedraws() _forced_redraw_limit = -1; } +#if GTK_CHECK_VERSION(3,0,0) gboolean SPCanvas::handle_draw(GtkWidget *widget, cairo_t *cr) { SPCanvas *canvas = SP_CANVAS(widget); - // Blit from the backing store, without regard for the clean region. - // This is necessary because GTK clears the widget for us, which causes - // severe flicker while drawing if we don't blit the old contents. - cairo_set_source_surface(cr, canvas->_backing_store, 0, 0); - cairo_paint(cr); - cairo_rectangle_list_t *rects = cairo_copy_clip_rectangle_list(cr); - cairo_region_t *dirty_region = cairo_region_create(); for (int i = 0; i < rects->num_rectangles; i++) { cairo_rectangle_t rectangle = rects->rectangles[i]; - Geom::Rect dr = Geom::Rect::from_xywh(rectangle.x + canvas->_x0, rectangle.y + canvas->_y0, - rectangle.width, rectangle.height); - Geom::IntRect ir = dr.roundOutwards(); - cairo_rectangle_int_t irect = { ir.left(), ir.top(), ir.width(), ir.height() }; - cairo_region_union_rectangle(dirty_region, &irect); - } - cairo_rectangle_list_destroy(rects); - cairo_region_subtract(dirty_region, canvas->_clean_region); - // Render the dirty portion in the background - if (!cairo_region_is_empty(dirty_region)) { - canvas->addIdle(); + Geom::IntRect r = Geom::IntRect::from_xywh(rectangle.x + canvas->_x0, rectangle.y + canvas->_y0, + rectangle.width, rectangle.height); + + canvas->requestRedraw(r.left(), r.top(), r.right(), r.bottom()); } - cairo_region_destroy(dirty_region); - return TRUE; + cairo_rectangle_list_destroy(rects); + + return FALSE; } -#if !GTK_CHECK_VERSION(3,0,0) +#else gboolean SPCanvas::handle_expose(GtkWidget *widget, GdkEventExpose *event) { - cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(widget)); + SPCanvas *canvas = SP_CANVAS(widget); + + if (!gtk_widget_is_drawable (widget) || + (event->window != getWindow(canvas))) { + return FALSE; + } + + int n_rects = 0; + GdkRectangle *rects = NULL; + gdk_region_get_rectangles(event->region, &rects, &n_rects); - gdk_cairo_region (cr, event->region); - cairo_clip (cr); - gboolean result = SPCanvas::handle_draw(widget, cr); + if(rects == NULL) + return FALSE; + + for (int i = 0; i < n_rects; i++) { + GdkRectangle rectangle = rects[i]; - cairo_destroy (cr); + Geom::IntRect r = Geom::IntRect::from_xywh(rectangle.x + canvas->_x0, rectangle.y + canvas->_y0, + rectangle.width, rectangle.height); + + canvas->requestRedraw(r.left(), r.top(), r.right(), r.bottom()); + } - return result; + return FALSE; } #endif @@ -1882,22 +1890,42 @@ int SPCanvas::paint() _need_update = FALSE; } - GtkAllocation allocation; - gtk_widget_get_allocation(GTK_WIDGET(this), &allocation); - cairo_rectangle_int_t crect = { _x0, _y0, allocation.width, allocation.height }; - cairo_region_t *to_draw = cairo_region_create_rectangle(&crect); - cairo_region_subtract(to_draw, _clean_region); + if (!_need_redraw) { + return TRUE; + } - int n_rects = cairo_region_num_rectangles(to_draw); - for (int i = 0; i < n_rects; ++i) { - cairo_rectangle_int_t crect; - cairo_region_get_rectangle(to_draw, i, &crect); - if (!paintRect(crect.x, crect.y, crect.x + crect.width, crect.y + crect.height)) { - // Aborted - return FALSE; - }; + Cairo::RefPtr to_paint = Cairo::Region::create(); + + for (int j = _tTop; j < _tBottom; ++j) { + for (int i = _tLeft; i < _tRight; ++i) { + int tile_index = (i - _tLeft) + (j - _tTop) * _tile_h; + + if (_tiles[tile_index]) { // if this tile is dirtied (nonzero) + Cairo::RectangleInt rect = {i*TILE_SIZE, j*TILE_SIZE, + TILE_SIZE, TILE_SIZE}; + to_paint->do_union(rect); + } + } + } + + int n_rect = to_paint->get_num_rectangles(); + + if (n_rect > 0) { + for (int i=0; i < n_rect; i++) { + Cairo::RectangleInt rect = to_paint->get_rectangle(i); + int x0 = rect.x; + int y0 = rect.y; + int x1 = x0 + rect.width; + int y1 = y0 + rect.height; + if (!paintRect(x0, y0, x1, y1)) { + // Aborted + return FALSE; + }; + } } + _need_redraw = FALSE; + // we've had a full unaborted redraw, reset the full redraw counter if (_forced_redraw_limit != -1) { _forced_redraw_count = 0; @@ -1976,41 +2004,15 @@ void SPCanvas::scrollTo(double cx, double cy, unsigned int clear, bool is_scroll Geom::IntRect old_area = getViewboxIntegers(); Geom::IntRect new_area = old_area + Geom::IntPoint(dx, dy); - - gtk_widget_get_allocation(&_widget, &allocation); - - // adjust backing store contents - assert(_backing_store); - cairo_surface_t *new_backing_store = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, - allocation.width, allocation.height); - cairo_t *cr = cairo_create(new_backing_store); - cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); - // Paint the background - cairo_translate(cr, -ix, -iy); - cairo_set_source(cr, _background); - cairo_paint(cr); - // Copy the old backing store contents - cairo_set_source_surface(cr, _backing_store, _x0, _y0); - cairo_rectangle(cr, _x0, _y0, allocation.width, allocation.height); - cairo_clip(cr); - cairo_paint(cr); - cairo_destroy(cr); - cairo_surface_destroy(_backing_store); - _backing_store = new_backing_store; - + _dx0 = cx; // here the 'd' stands for double, not delta! _dy0 = cy; _x0 = ix; _y0 = iy; - // Adjust the clean region - if (clear) { - dirtyAll(); - } else { - cairo_rectangle_int_t crect = { _x0, _y0, allocation.width, allocation.height }; - cairo_region_intersect_rectangle(_clean_region, &crect); - } + gtk_widget_get_allocation(&_widget, &allocation); + resizeTiles(_x0, _y0, _x0 + allocation.width, _y0 + allocation.height); if (SP_CANVAS_ITEM_GET_CLASS(_root)->viewbox_changed) { SP_CANVAS_ITEM_GET_CLASS(_root)->viewbox_changed(_root, new_area); } @@ -2018,17 +2020,19 @@ void SPCanvas::scrollTo(double cx, double cy, unsigned int clear, bool is_scroll if (!clear) { // scrolling without zoom; redraw only the newly exposed areas if ((dx != 0) || (dy != 0)) { + this->_is_scrolling = is_scrolling; if (gtk_widget_get_realized(GTK_WIDGET(this))) { gdk_window_scroll(getWindow(this), -dx, -dy); } } + } else { + // scrolling as part of zoom; do nothing here - the next do_update will perform full redraw } - addIdle(); } void SPCanvas::updateNow() { - if (_need_update) { + if (_need_update || _need_redraw) { doUpdate(); } } @@ -2041,45 +2045,26 @@ void SPCanvas::requestUpdate() void SPCanvas::requestRedraw(int x0, int y0, int x1, int y1) { + GtkAllocation allocation; + if (!gtk_widget_is_drawable( GTK_WIDGET(this) )) { return; } - if (x0 >= x1 || y0 >= y1) { + if ((x0 >= x1) || (y0 >= y1)) { return; } Geom::IntRect bbox(x0, y0, x1, y1); - dirtyRect(bbox); - addIdle(); -} - -void SPCanvas::setBackgroundColor(guint32 rgba) { - double new_r = SP_RGBA32_R_F(rgba); - double new_g = SP_RGBA32_G_F(rgba); - double new_b = SP_RGBA32_B_F(rgba); - if (!_background_is_checkerboard) { - double old_r, old_g, old_b; - cairo_pattern_get_rgba(_background, &old_r, &old_g, &old_b, NULL); - if (new_r == old_r && new_g == old_g && new_b == old_b) return; - } - if (_background) { - cairo_pattern_destroy(_background); - } - _background = cairo_pattern_create_rgb(new_r, new_g, new_b); - _background_is_checkerboard = false; - dirtyAll(); - addIdle(); -} + gtk_widget_get_allocation(GTK_WIDGET(this), &allocation); -void SPCanvas::setBackgroundCheckerboard() { - if (_background_is_checkerboard) return; - if (_background) { - cairo_pattern_destroy(_background); + Geom::IntRect canvas_rect = Geom::IntRect::from_xywh(this->_x0, this->_y0, + allocation.width, allocation.height); + + Geom::OptIntRect clip = bbox & canvas_rect; + if (clip) { + dirtyRect(*clip); + addIdle(); } - _background = ink_cairo_pattern_create_checkerboard(); - _background_is_checkerboard = true; - dirtyAll(); - addIdle(); } /** @@ -2183,24 +2168,63 @@ inline int sp_canvas_tile_ceil(int x) return ((x + (TILE_SIZE - 1)) & (~(TILE_SIZE - 1))) / TILE_SIZE; } -void SPCanvas::dirtyRect(Geom::IntRect const &area) { - markRect(area, 1); +void SPCanvas::resizeTiles(int nl, int nt, int nr, int nb) +{ + if ( nl >= nr || nt >= nb ) { + if (_tiles) g_free(_tiles); + _tLeft = _tTop = _tRight = _tBottom = 0; + _tile_h = _tile_h = 0; + _tiles = NULL; + return; + } + int tl = sp_canvas_tile_floor(nl); + int tt = sp_canvas_tile_floor(nt); + int tr = sp_canvas_tile_ceil(nr); + int tb = sp_canvas_tile_ceil(nb); + + int nh = tr-tl, nv = tb-tt; + uint8_t *ntiles = (uint8_t*) g_malloc(nh * nv * sizeof(uint8_t)); + for (int i = tl; i < tr; i++) { + for (int j = tt; j < tb; j++) { + int ind = (i-tl) + (j-tt)*nh; + if ( i >= _tLeft && i < _tRight && j >= _tTop && j < _tBottom ) { + ntiles[ind] = _tiles[(i - _tLeft) + (j - _tTop) * _tile_h]; // copy from the old tile + } else { + ntiles[ind] = 0; // newly exposed areas get 0 + } + } + } + if (_tiles) g_free(_tiles); + _tiles = ntiles; + _tLeft = tl; + _tTop = tt; + _tRight = tr; + _tBottom = tb; + _tile_h = nh; + _tile_h = nv; } -void SPCanvas::dirtyAll() { - if (_clean_region && !cairo_region_is_empty(_clean_region)) { - cairo_region_destroy(_clean_region); - _clean_region = cairo_region_create(); - } +void SPCanvas::dirtyRect(Geom::IntRect const &area) { + _need_redraw = TRUE; + markRect(area, 1); } void SPCanvas::markRect(Geom::IntRect const &area, uint8_t val) { - cairo_rectangle_int_t crect = { area.left(), area.top(), area.width(), area.height() }; - if (val) { - cairo_region_subtract_rectangle(_clean_region, &crect); - } else { - cairo_region_union_rectangle(_clean_region, &crect); + int tl = sp_canvas_tile_floor(area.left()); + int tt = sp_canvas_tile_floor(area.top()); + int tr = sp_canvas_tile_ceil(area.right()); + int tb = sp_canvas_tile_ceil(area.bottom()); + if ( tl >= _tRight || tr <= _tLeft || tt >= _tBottom || tb <= _tTop ) return; + if ( tl < _tLeft ) tl = _tLeft; + if ( tr > _tRight ) tr = _tRight; + if ( tt < _tTop ) tt = _tTop; + if ( tb > _tBottom ) tb = _tBottom; + + for (int i=tl; i * Lauris Kaplinski * Jon A. Cruz - * Krzysztof KosiÅ„ski * * Copyright (C) 1998 The Free Software Foundation * Copyright (C) 2002 Lauris Kaplinski - * Copyright (C) 2016 Google Inc. * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -87,9 +85,6 @@ struct SPCanvas { Geom::IntRect getViewboxIntegers() const; SPCanvasGroup *getRoot(); - void setBackgroundColor(guint32 rgba); - void setBackgroundCheckerboard(); - /// Returns new canvas as widget. static GtkWidget *createAA(); @@ -108,8 +103,7 @@ private: /// Marks the specified area as dirty (requiring redraw) void dirtyRect(Geom::IntRect const &area); - /// Marks the whole widget for redraw - void dirtyAll(); + /// Marks specific canvas rectangle as clean (val == 0) or dirty (otherwise) void markRect(Geom::IntRect const &area, uint8_t val); /// Invokes update, paint, and repick on canvas. @@ -161,8 +155,9 @@ public: */ static gint handle_scroll(GtkWidget *widget, GdkEventScroll *event); static gint handle_motion(GtkWidget *widget, GdkEventMotion *event); +#if GTK_CHECK_VERSION(3,0,0) static gboolean handle_draw(GtkWidget *widget, cairo_t *cr); -#if !GTK_CHECK_VERSION(3,0,0) +#else static gboolean handle_expose(GtkWidget *widget, GdkEventExpose *event); #endif static gint handle_key_event(GtkWidget *widget, GdkEventKey *event); @@ -181,18 +176,15 @@ public: bool _is_dragging; double _dx0; double _dy0; - int _x0; ///< World coordinate of the leftmost pixels - int _y0; ///< World coordinate of the topmost pixels - - /// Image surface storing the contents of the widget - cairo_surface_t *_backing_store; - /// Area of the widget that has up-to-date content - cairo_region_t *_clean_region; - /// Widget background, defaults to white - cairo_pattern_t *_background; - bool _background_is_checkerboard; - - /// Last known modifier state, for deferred repick when a button is down. + int _x0; + int _y0; + + /* Area that needs redrawing, stored as a microtile array */ + int _tLeft, _tTop, _tRight, _tBottom; + int _tile_w, _tile_h; + uint8_t *_tiles; + + /** Last known modifier state, for deferred repick when a button is down. */ int _state; /** The item containing the mouse pointer, or NULL if none. */ @@ -216,6 +208,7 @@ public: int _close_enough; unsigned int _need_update : 1; + unsigned int _need_redraw : 1; unsigned int _need_repick : 1; int _forced_redraw_count; -- cgit v1.2.3 From 300d24dedddefb2f68ebd680fcd2234bfca53ad7 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Mon, 25 Jul 2016 22:16:54 +0200 Subject: Changed coding style (bzr r14954.1.27) --- src/object-set.cpp | 47 ++++++++++++++++++++++++++++------------------- src/object-set.h | 25 ++++++++++++++++++------- src/selection-chemistry.h | 2 +- 3 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/object-set.cpp b/src/object-set.cpp index 1b994106a..92bcf6b07 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -24,7 +24,6 @@ bool ObjectSet::add(SPObject* object) { g_return_val_if_fail(object != NULL, false); g_return_val_if_fail(SP_IS_OBJECT(object), false); - // any ancestor is in the set - do nothing if (_anyAncestorIsInSet(object)) { return false; @@ -68,7 +67,7 @@ bool ObjectSet::includes(SPObject *object) { g_return_val_if_fail(object != NULL, false); g_return_val_if_fail(SP_IS_OBJECT(object), false); - return container.get().find(object) != container.get().end(); + return _container.get().find(object) != _container.get().end(); } void ObjectSet::clear() { @@ -77,7 +76,7 @@ void ObjectSet::clear() { } int ObjectSet::size() { - return container.size(); + return _container.size(); } bool ObjectSet::_anyAncestorIsInSet(SPObject *object) { @@ -105,22 +104,22 @@ void ObjectSet::_removeDescendantsFromSet(SPObject *object) { } void ObjectSet::_remove(SPObject *object) { - releaseConnections[object].disconnect(); - releaseConnections.erase(object); - container.get().erase(object); - _remove_3D_boxes_recursively(object); + _releaseConnections[object].disconnect(); + _releaseConnections.erase(object); + _container.get().erase(object); + _remove3DBoxesRecursively(object); _releaseSignals(object); } void ObjectSet::_add(SPObject *object) { - releaseConnections[object] = object->connectRelease(sigc::hide_return(sigc::mem_fun(*this, &ObjectSet::remove))); - container.push_back(object); - _add_3D_boxes_recursively(object); + _releaseConnections[object] = object->connectRelease(sigc::hide_return(sigc::mem_fun(*this, &ObjectSet::remove))); + _container.push_back(object); + _add3DBoxesRecursively(object); _connectSignals(object); } void ObjectSet::_clear() { - for (auto object: container) { + for (auto object: _container) { _remove(object); } } @@ -173,16 +172,16 @@ void ObjectSet::toggle(SPObject *obj) { } bool ObjectSet::isEmpty() { - return container.size() == 0; + return _container.size() == 0; } SPObject *ObjectSet::single() { - return container.size() == 1 ? *container.begin() : nullptr; + return _container.size() == 1 ? *_container.begin() : nullptr; } SPItem *ObjectSet::singleItem() { - if (container.size() == 1) { - SPObject* obj = *container.begin(); + if (_container.size() == 1) { + SPObject* obj = *_container.begin(); if (SP_IS_ITEM(obj)) { return SP_ITEM(obj); } @@ -225,7 +224,7 @@ SPItem *ObjectSet::_sizeistItem(bool sml, CompareSize compare) { } SPObjectRange ObjectSet::objects() { - return SPObjectRange(container.get().begin(), container.get().end()); + return SPObjectRange(_container.get().begin(), _container.get().end()); } Inkscape::XML::Node *ObjectSet::singleRepr() { @@ -309,7 +308,6 @@ boost::optional ObjectSet::center() const { } } - std::list const ObjectSet::perspList() { std::list pl; for (std::list::iterator i = _3dboxes.begin(); i != _3dboxes.end(); ++i) { @@ -335,7 +333,7 @@ std::list const ObjectSet::box3DList(Persp3D *persp) { return boxes; } -void ObjectSet::_add_3D_boxes_recursively(SPObject *obj) { +void ObjectSet::_add3DBoxesRecursively(SPObject *obj) { std::list boxes = box3d_extract_boxes(obj); for (std::list::iterator i = boxes.begin(); i != boxes.end(); ++i) { @@ -344,7 +342,7 @@ void ObjectSet::_add_3D_boxes_recursively(SPObject *obj) { } } -void ObjectSet::_remove_3D_boxes_recursively(SPObject *obj) { +void ObjectSet::_remove3DBoxesRecursively(SPObject *obj) { std::list boxes = box3d_extract_boxes(obj); for (std::list::iterator i = boxes.begin(); i != boxes.end(); ++i) { @@ -359,3 +357,14 @@ void ObjectSet::_remove_3D_boxes_recursively(SPObject *obj) { } } // namespace Inkscape + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/object-set.h b/src/object-set.h index b4178bd37..2772afbe2 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -198,21 +198,21 @@ public: /** Returns a range of selected SPItems. */ SPItemRange items() { - return SPItemRange(container.get() + return SPItemRange(_container.get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())); }; /** Returns a range of selected groups. */ SPGroupRange groups() { - return SPGroupRange (container.get() + return SPGroupRange (_container.get() | boost::adaptors::filtered(is_group()) | boost::adaptors::transformed(object_to_group())); } /** Returns a range of the xml nodes of all selected objects. */ XMLNodeRange xmlNodes() { - return XMLNodeRange(container.get() + return XMLNodeRange(_container.get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())); } @@ -299,13 +299,13 @@ protected: void _removeAncestorsFromSet(SPObject *object); SPItem *_sizeistItem(bool sml, CompareSize compare); SPObject *_getMutualAncestor(SPObject *object); - virtual void _add_3D_boxes_recursively(SPObject *obj); - virtual void _remove_3D_boxes_recursively(SPObject *obj); + virtual void _add3DBoxesRecursively(SPObject *obj); + virtual void _remove3DBoxesRecursively(SPObject *obj); - multi_index_container container; + multi_index_container _container; GC::soft_ptr _desktop; std::list _3dboxes; - std::unordered_map releaseConnections; + std::unordered_map _releaseConnections; }; @@ -316,3 +316,14 @@ typedef ObjectSet::XMLNodeRange XMLNodeRange; } // namespace Inkscape #endif //INKSCAPE_PROTOTYPE_OBJECTSET_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index cfae84eef..f6cd4829a 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -109,7 +109,7 @@ void sp_selection_to_next_layer( SPDesktop *desktop, bool suppressDone = false ) void sp_selection_to_prev_layer( SPDesktop *desktop, bool suppressDone = false ); void sp_selection_to_layer( SPDesktop *desktop, SPObject *layer, bool suppressDone = false ); -void sp_selection_apply_affine(Inkscape::ObjectSet *selection, Geom::Affine const &affine, bool set_i2d = true, bool compensate = true, bool adjust_transf_center = true); +void sp_selection_apply_affine(Inkscape::ObjectSet *set, Geom::Affine const &affine, bool set_i2d = true, bool compensate = true, bool adjust_transf_center = true); void sp_selection_remove_transform (SPDesktop *desktop); void sp_selection_scale_absolute (Inkscape::ObjectSet *set, double x0, double x1, double y0, double y1); void sp_selection_scale_relative(Inkscape::ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale); -- cgit v1.2.3 From ff4fbbc93f67afd6cbf851691833a50d6c76b350 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Wed, 27 Jul 2016 12:19:03 +0200 Subject: Renamed some functions, fixed tests (bzr r14954.1.28) --- src/file.cpp | 10 ++-- src/object-set.h | 10 ++-- src/selection-chemistry.cpp | 97 ++++++++++++++++++++------------------- src/selection-chemistry.h | 39 ++++++++-------- src/seltrans.cpp | 2 +- src/sp-object.cpp | 3 ++ src/ui/clipboard.cpp | 4 +- src/ui/dialog/export.cpp | 2 +- src/ui/dialog/transformation.cpp | 22 ++++----- src/ui/interface.cpp | 4 +- src/verbs.cpp | 18 ++++---- src/widgets/select-toolbar.cpp | 2 +- testfiles/src/object-set-test.cpp | 38 +++++++++++---- testfiles/src/sp-object-test.cpp | 10 ++-- 14 files changed, 141 insertions(+), 120 deletions(-) diff --git a/src/file.cpp b/src/file.cpp index 9ba180cb4..8743e3b67 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1129,14 +1129,14 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) Inkscape::Selection *selection = desktop->getSelection(); selection->setReprList(pasted_objects_not); Geom::Affine doc2parent = SP_ITEM(desktop->currentLayer())->i2doc_affine().inverse(); - sp_selection_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false); + sp_object_set_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false); sp_selection_delete(desktop); // Change the selection to the freshly pasted objects selection->setReprList(pasted_objects); // Apply inverse of parent transform - sp_selection_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false); + sp_object_set_apply_affine(selection, desktop->dt2doc() * doc2parent * desktop->doc2dt(), true, false, false); // Update (among other things) all curves in paths, for bounds() to work target_document->ensureUpToDate(); @@ -1166,7 +1166,7 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) m.unSetup(); } - sp_selection_move_relative(selection, offset); + sp_object_set_move_relative(selection, offset); } } @@ -1271,7 +1271,7 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri, // c2p is identity matrix at this point unless ensureUpToDate is called doc->ensureUpToDate(); Geom::Affine affine = doc->getRoot()->c2p * SP_ITEM(place_to_insert)->i2doc_affine().inverse(); - sp_selection_apply_affine(selection, desktop->dt2doc() * affine * desktop->doc2dt(), true, false, false); + sp_object_set_apply_affine(selection, desktop->dt2doc() * affine * desktop->doc2dt(), true, false, false); // move to mouse pointer { @@ -1279,7 +1279,7 @@ file_import(SPDocument *in_doc, const Glib::ustring &uri, Geom::OptRect sel_bbox = selection->visualBounds(); if (sel_bbox) { Geom::Point m( desktop->point() - sel_bbox->midpoint() ); - sp_selection_move_relative(selection, m, false); + sp_object_set_move_relative(selection, m, false); } } } diff --git a/src/object-set.h b/src/object-set.h index 2772afbe2..fae365f70 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -86,7 +86,7 @@ typedef boost::multi_index_container< boost::multi_index::hashed_unique< boost::multi_index::tag, boost::multi_index::identity> - >> multi_index_container; + >> MultiIndexContainer; typedef boost::any_range< SPObject*, @@ -97,9 +97,9 @@ typedef boost::any_range< class ObjectSet { public: enum CompareSize {HORIZONTAL, VERTICAL, AREA}; - typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())) SPItemRange; - typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_group()) | boost::adaptors::transformed(object_to_group())) SPGroupRange; - typedef decltype(multi_index_container().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())) XMLNodeRange; + typedef decltype(MultiIndexContainer().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_item())) SPItemRange; + typedef decltype(MultiIndexContainer().get() | boost::adaptors::filtered(is_group()) | boost::adaptors::transformed(object_to_group())) SPGroupRange; + typedef decltype(MultiIndexContainer().get() | boost::adaptors::filtered(is_item()) | boost::adaptors::transformed(object_to_node())) XMLNodeRange; ObjectSet(SPDesktop* desktop): _desktop(desktop) {}; ObjectSet(): _desktop(nullptr) {}; @@ -302,7 +302,7 @@ protected: virtual void _add3DBoxesRecursively(SPObject *obj); virtual void _remove3DBoxesRecursively(SPObject *obj); - multi_index_container _container; + MultiIndexContainer _container; GC::soft_ptr _desktop; std::list _3dboxes; std::unordered_map _releaseConnections; diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index e8c408ed8..cd0a29b05 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -694,7 +694,7 @@ void sp_edit_invert_in_all_layers(SPDesktop *desktop) sp_edit_select_all_full(desktop, true, true); } -static Inkscape::XML::Node* sp_selection_group(ObjectSet *set) { +static Inkscape::XML::Node* sp_object_set_group(ObjectSet *set) { SPDocument *doc = set->desktop()->getDocument(); Inkscape::XML::Document *xml_doc = doc->getReprDoc(); Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); @@ -764,14 +764,14 @@ static Inkscape::XML::Node* sp_selection_group(ObjectSet *set) { return group; } -void sp_selection_group_ui(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop) { // Check if something is selected. if (selection->isEmpty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select some objects to group.")); return; } - Inkscape::XML::Node* group = sp_selection_group(selection); + Inkscape::XML::Node* group = sp_object_set_group(selection); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_GROUP, C_("Verb", "Group")); @@ -823,7 +823,7 @@ void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDeskto } -static void sp_selection_ungroup(ObjectSet *set) +static void sp_object_set_ungroup(ObjectSet *set) { GSList *groups = NULL; for (auto g: set->groups()) { @@ -882,7 +882,7 @@ static void sp_selection_ungroup(ObjectSet *set) set->setList(new_select); } -void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) { if (selection->isEmpty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select a group to ungroup.")); @@ -893,7 +893,7 @@ void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop) return; } - sp_selection_ungroup(selection); + sp_object_set_ungroup(selection); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_UNGROUP, _("Ungroup")); @@ -978,7 +978,7 @@ bool sp_item_repr_compare_position_bool(SPObject const *first, SPObject const *s ((SPItem*)second)->getRepr())<0; } -void sp_selection_raise(ObjectSet* set) { +void sp_object_set_raise(ObjectSet *set) { std::vector items(set->items().begin(), set->items().end()); Inkscape::XML::Node *grepr = const_cast(items.front()->parent->getRepr()); @@ -1013,7 +1013,7 @@ void sp_selection_raise(ObjectSet* set) { } } -void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) { if (selection->items().empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise.")); @@ -1025,14 +1025,14 @@ void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop) selection_display_message(desktop, Inkscape::ERROR_MESSAGE, _("You cannot raise/lower objects from different groups or layers.")); return; } - sp_selection_raise(selection); + sp_object_set_raise(selection); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_RAISE, //TRANSLATORS: "Raise" means "to raise an object" in the undo history C_("Undo action", "Raise")); } -void sp_selection_raise_to_top(ObjectSet* set) { +void sp_object_set_raise_to_top(ObjectSet *set) { std::vector rl(set->xmlNodes().begin(), set->xmlNodes().end()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); @@ -1042,7 +1042,7 @@ void sp_selection_raise_to_top(ObjectSet* set) { } } -void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *desktop) { SPDocument *document = selection->layers()->getDocument(); @@ -1057,13 +1057,13 @@ void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *des return; } - sp_selection_raise_to_top(selection); + sp_object_set_raise_to_top(selection); DocumentUndo::done(document, SP_VERB_SELECTION_TO_FRONT, _("Raise to top")); } -void sp_selection_lower(ObjectSet *set) { +void sp_object_set_lower(ObjectSet *set) { std::vector items(set->items().begin(), set->items().end()); Inkscape::XML::Node *grepr = const_cast(items.front()->parent->getRepr()); @@ -1102,7 +1102,7 @@ void sp_selection_lower(ObjectSet *set) { } } -void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) { if (selection->items().empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower.")); @@ -1115,14 +1115,14 @@ void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop) return; } - sp_selection_lower(selection); + sp_object_set_lower(selection); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_LOWER, //TRANSLATORS: "Lower" means "to lower an object" in the undo history C_("Undo action", "Lower")); } -void sp_selection_lower_to_bottom(ObjectSet *set) { +void sp_object_set_lower_to_bottom(ObjectSet *set) { std::vector rl(set->xmlNodes().begin(), set->xmlNodes().end()); sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); @@ -1143,7 +1143,7 @@ void sp_selection_lower_to_bottom(ObjectSet *set) { } } -void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop *desktop) +void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *desktop) { if (selection->isEmpty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower to bottom.")); @@ -1156,7 +1156,7 @@ void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop * return; } - sp_selection_lower_to_bottom(selection); + sp_object_set_lower_to_bottom(selection); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_TO_BACK, _("Lower to bottom")); @@ -1484,7 +1484,7 @@ void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone) } static bool -selection_contains_original(SPItem *item, ObjectSet* set) +object_set_contains_original(SPItem *item, ObjectSet *set) { bool contains_original = false; @@ -1512,14 +1512,14 @@ selection_contains_original(SPItem *item, ObjectSet* set) static bool -selection_contains_both_clone_and_original(ObjectSet *set) +object_set_contains_both_clone_and_original(ObjectSet *set) { bool clone_with_original = false; auto items = set->items(); for (auto l=items.begin();l!=items.end() ;++l) { SPItem *item = *l; if (item) { - clone_with_original |= selection_contains_original(item, set); + clone_with_original |= object_set_contains_original(item, set); if (clone_with_original) break; } @@ -1533,7 +1533,8 @@ value of set_i2d==false is only used by seltrans when it's dragging objects live that case, items are already in the new position, but the repr is in the old, and this function then simply updates the repr from item->transform. */ -void sp_selection_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool set_i2d, bool compensate, bool adjust_transf_center) +void sp_object_set_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool set_i2d, bool compensate, + bool adjust_transf_center) { if (set->isEmpty()) return; @@ -1581,7 +1582,7 @@ void sp_selection_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool #endif // we're moving both a clone and its original or any ancestor in clone chain? - bool transform_clone_with_original = selection_contains_original(item, set); + bool transform_clone_with_original = object_set_contains_original(item, set); // ...both a text-on-path and its path? bool transform_textpath_with_path = ((dynamic_cast(item) && item->firstChild() && dynamic_cast(item->firstChild())) @@ -1724,7 +1725,7 @@ void sp_selection_apply_affine(ObjectSet *set, Geom::Affine const &affine, bool } } -void sp_selection_remove_transform(SPDesktop *desktop) +void sp_object_set_remove_transform(SPDesktop *desktop) { if (desktop == NULL) return; @@ -1741,9 +1742,9 @@ void sp_selection_remove_transform(SPDesktop *desktop) } void -sp_selection_scale_absolute(ObjectSet *set, - double const x0, double const x1, - double const y0, double const y1) +sp_object_set_scale_absolute(ObjectSet *set, + double x0, double x1, + double y0, double y1) { if (set->isEmpty()) return; @@ -1761,11 +1762,11 @@ sp_selection_scale_absolute(ObjectSet *set, Geom::Translate const o2n(x0, y0); Geom::Affine const final( p2o * scale * o2n ); - sp_selection_apply_affine(set, final); + sp_object_set_apply_affine(set, final); } -void sp_selection_scale_relative(ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale) +void sp_object_set_scale_relative(ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale) { if (set->isEmpty()) return; @@ -1786,21 +1787,21 @@ void sp_selection_scale_relative(ObjectSet *set, Geom::Point const &align, Geom: Geom::Translate const n2d(-align); Geom::Translate const d2n(align); Geom::Affine const final( n2d * scale * d2n ); - sp_selection_apply_affine(set, final); + sp_object_set_apply_affine(set, final); } void -sp_selection_rotate_relative(ObjectSet *set, Geom::Point const ¢er, gdouble const angle_degrees) +sp_object_set_rotate_relative(ObjectSet *set, Geom::Point const ¢er, double angle_degrees) { Geom::Translate const d2n(center); Geom::Translate const n2d(-center); Geom::Rotate const rotate(Geom::Rotate::from_degrees(angle_degrees)); Geom::Affine const final( Geom::Affine(n2d) * rotate * d2n ); - sp_selection_apply_affine(set, final); + sp_object_set_apply_affine(set, final); } void -sp_selection_skew_relative(ObjectSet *set, Geom::Point const &align, double dx, double dy) +sp_object_set_skew_relative(ObjectSet *set, Geom::Point const &align, double dx, double dy) { Geom::Translate const d2n(align); Geom::Translate const n2d(-align); @@ -1808,17 +1809,17 @@ sp_selection_skew_relative(ObjectSet *set, Geom::Point const &align, double dx, dx, 1, 0, 0); Geom::Affine const final( n2d * skew * d2n ); - sp_selection_apply_affine(set, final); + sp_object_set_apply_affine(set, final); } -void sp_selection_move_relative(ObjectSet *set, Geom::Point const &move, bool compensate) +void sp_object_set_move_relative(ObjectSet *set, Geom::Point const &move, bool compensate) { - sp_selection_apply_affine(set, Geom::Affine(Geom::Translate(move)), true, compensate); + sp_object_set_apply_affine(set, Geom::Affine(Geom::Translate(move)), true, compensate); } -void sp_selection_move_relative(ObjectSet *set, double dx, double dy) +void sp_object_set_move_relative(ObjectSet *set, double dx, double dy) { - sp_selection_apply_affine(set, Geom::Affine(Geom::Translate(dx, dy))); + sp_object_set_apply_affine(set, Geom::Affine(Geom::Translate(dx, dy))); } /** @@ -1858,7 +1859,7 @@ sp_selection_rotate(Inkscape::Selection *selection, gdouble const angle_degrees) return; } - sp_selection_rotate_relative(selection, *center, angle_degrees); + sp_object_set_rotate_relative(selection, *center, angle_degrees); DocumentUndo::maybeDone(selection->desktop()->getDocument(), ( ( angle_degrees > 0 ) @@ -2207,7 +2208,7 @@ sp_selection_rotate_screen(Inkscape::Selection *selection, gdouble angle) gdouble const zangle = 180 * atan2(zmove, r) / M_PI; - sp_selection_rotate_relative(selection, *center, zangle); + sp_object_set_rotate_relative(selection, *center, zangle); DocumentUndo::maybeDone(selection->desktop()->getDocument(), ( (angle > 0) @@ -2237,7 +2238,7 @@ sp_selection_scale(Inkscape::Selection *selection, gdouble grow) } double const times = 1.0 + grow / max_len; - sp_selection_scale_relative(selection, center, Geom::Scale(times, times)); + sp_object_set_scale_relative(selection, center, Geom::Scale(times, times)); DocumentUndo::maybeDone(selection->desktop()->getDocument(), ( (grow > 0) @@ -2266,7 +2267,7 @@ sp_selection_scale_times(Inkscape::Selection *selection, gdouble times) } Geom::Point const center(sel_bbox->midpoint()); - sp_selection_scale_relative(selection, center, Geom::Scale(times, times)); + sp_object_set_scale_relative(selection, center, Geom::Scale(times, times)); DocumentUndo::done(selection->desktop()->getDocument(), SP_VERB_CONTEXT_SELECT, _("Scale by whole factor")); } @@ -2278,7 +2279,7 @@ sp_selection_move(Inkscape::Selection *selection, gdouble dx, gdouble dy) return; } - sp_selection_move_relative(selection, dx, dy); + sp_object_set_move_relative(selection, dx, dy); SPDocument *doc = selection->layers()->getDocument(); if (dx == 0) { @@ -2304,7 +2305,7 @@ sp_selection_move_screen(Inkscape::Selection *selection, gdouble dx, gdouble dy) gdouble const zoom = selection->desktop()->current_zoom(); gdouble const zdx = dx / zoom; gdouble const zdy = dy / zoom; - sp_selection_move_relative(selection, zdx, zdy); + sp_object_set_move_relative(selection, zdx, zdy); SPDocument *doc = selection->layers()->getDocument(); if (dx == 0) { @@ -3476,7 +3477,7 @@ void sp_selection_untile(SPDesktop *desktop) } } -void sp_selection_get_export_hints(ObjectSet *set, Glib::ustring &filename, float *xdpi, float *ydpi) +void sp_object_set_get_export_hints(ObjectSet *set, Glib::ustring &filename, float *xdpi, float *ydpi) { if (set->isEmpty()) { return; @@ -3627,7 +3628,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) float hint_xdpi = 0, hint_ydpi = 0; Glib::ustring hint_filename; // take resolution hint from the selected objects - sp_selection_get_export_hints(selection, hint_filename, &hint_xdpi, &hint_ydpi); + sp_object_set_get_export_hints(selection, hint_filename, &hint_xdpi, &hint_ydpi); if (hint_xdpi != 0) { res = hint_xdpi; } else { @@ -3892,7 +3893,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ // FIXME: temporary patch to prevent crash! // Remove this when bboxes are fixed to not blow up on an item clipped/masked with its own clone - bool clone_with_original = selection_contains_both_clone_and_original(selection); + bool clone_with_original = object_set_contains_both_clone_and_original(selection); if (clone_with_original) { return; // in this version, you cannot clip/mask an object with its own clone } @@ -3957,7 +3958,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ items_to_select.clear(); - Inkscape::XML::Node *group = sp_selection_group(set); + Inkscape::XML::Node *group = sp_object_set_group(set); group->setAttribute("inkscape:groupmode", "maskhelper"); // apply clip/mask only to newly created group diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index f6cd4829a..ca9062320 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -75,19 +75,19 @@ void sp_selection_unsymbol(SPDesktop *desktop); void sp_selection_tile(SPDesktop *desktop, bool apply = true); void sp_selection_untile(SPDesktop *desktop); -void sp_selection_group_ui(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_ungroup_ui(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop); void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_raise(Inkscape::ObjectSet* set); -void sp_selection_raise_to_top(Inkscape::ObjectSet* set); -void sp_selection_lower(Inkscape::ObjectSet *set); -void sp_selection_lower_to_bottom(Inkscape::ObjectSet *set); +void sp_object_set_raise(Inkscape::ObjectSet *set); +void sp_object_set_raise_to_top(Inkscape::ObjectSet *set); +void sp_object_set_lower(Inkscape::ObjectSet *set); +void sp_object_set_lower_to_bottom(Inkscape::ObjectSet *set); -void sp_selection_raise_ui(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_raise_to_top_ui(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_lower_ui(Inkscape::Selection *selection, SPDesktop *desktop); -void sp_selection_lower_to_bottom_ui(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *desktop); SPCSSAttr *take_style_from_item (SPObject *object); @@ -109,14 +109,15 @@ void sp_selection_to_next_layer( SPDesktop *desktop, bool suppressDone = false ) void sp_selection_to_prev_layer( SPDesktop *desktop, bool suppressDone = false ); void sp_selection_to_layer( SPDesktop *desktop, SPObject *layer, bool suppressDone = false ); -void sp_selection_apply_affine(Inkscape::ObjectSet *set, Geom::Affine const &affine, bool set_i2d = true, bool compensate = true, bool adjust_transf_center = true); -void sp_selection_remove_transform (SPDesktop *desktop); -void sp_selection_scale_absolute (Inkscape::ObjectSet *set, double x0, double x1, double y0, double y1); -void sp_selection_scale_relative(Inkscape::ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale); -void sp_selection_rotate_relative (Inkscape::ObjectSet *set, Geom::Point const ¢er, double angle); -void sp_selection_skew_relative (Inkscape::ObjectSet *set, Geom::Point const &align, double dx, double dy); -void sp_selection_move_relative (Inkscape::ObjectSet *set, Geom::Point const &move, bool compensate = true); -void sp_selection_move_relative (Inkscape::ObjectSet *set, double dx, double dy); +void sp_object_set_apply_affine(Inkscape::ObjectSet *set, Geom::Affine const &affine, bool set_i2d = true, + bool compensate = true, bool adjust_transf_center = true); +void sp_object_set_remove_transform(SPDesktop *desktop); +void sp_object_set_scale_absolute(Inkscape::ObjectSet *set, double x0, double x1, double y0, double y1); +void sp_object_set_scale_relative(Inkscape::ObjectSet *set, Geom::Point const &align, Geom::Scale const &scale); +void sp_object_set_rotate_relative(Inkscape::ObjectSet *set, Geom::Point const ¢er, double angle); +void sp_object_set_skew_relative(Inkscape::ObjectSet *set, Geom::Point const &align, double dx, double dy); +void sp_object_set_move_relative(Inkscape::ObjectSet *set, Geom::Point const &move, bool compensate = true); +void sp_object_set_move_relative(Inkscape::ObjectSet *set, double dx, double dy); void sp_selection_rotate_90 (SPDesktop *desktop, bool ccw); void sp_selection_rotate (Inkscape::Selection *selection, double angle); @@ -157,7 +158,7 @@ void scroll_to_show_item(SPDesktop *desktop, SPItem *item); void sp_undo (SPDesktop *desktop, SPDocument *doc); void sp_redo (SPDesktop *desktop, SPDocument *doc); -void sp_selection_get_export_hints (Inkscape::ObjectSet* set, Glib::ustring &filename, float *xdpi, float *ydpi); +void sp_object_set_get_export_hints(Inkscape::ObjectSet *set, Glib::ustring &filename, float *xdpi, float *ydpi); void sp_document_get_export_hints (SPDocument * doc, Glib::ustring &filename, float *xdpi, float *ydpi); void sp_selection_create_bitmap_copy (SPDesktop *desktop); diff --git a/src/seltrans.cpp b/src/seltrans.cpp index f6cb9166c..3054913b6 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -445,7 +445,7 @@ void Inkscape::SelTrans::ungrab() if (!_current_relative_affine.isIdentity()) { // we can have a identity affine // when trying to stretch a perfectly vertical line in horizontal direction, which will not be allowed by the handles; - sp_selection_apply_affine(selection, _current_relative_affine, (_show == SHOW_OUTLINE)? true : false); + sp_object_set_apply_affine(selection, _current_relative_affine, (_show == SHOW_OUTLINE) ? true : false); if (_center) { *_center *= _current_relative_affine; _center_is_set = true; diff --git a/src/sp-object.cpp b/src/sp-object.cpp index ccd70f4cb..27c788d75 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -151,6 +151,9 @@ SPObject::~SPObject() { sp_object_unref(this->_successor, NULL); this->_successor = NULL; } + if (parent) { + parent->children.erase(parent->children.iterator_to(*this)); + } if( style == NULL ) { // style pointer could be NULL if unreffed too many times. diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index b25a70b15..504a5e2ce 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -539,8 +539,8 @@ bool ClipboardManagerImpl::pasteSize(SPDesktop *desktop, bool separately, bool a else { Geom::OptRect sel_size = selection->visualBounds(); if ( sel_size ) { - sp_selection_scale_relative(selection, sel_size->midpoint(), - _getScale(desktop, min, max, *sel_size, apply_x, apply_y)); + sp_object_set_scale_relative(selection, sel_size->midpoint(), + _getScale(desktop, min, max, *sel_size, apply_x, apply_y)); } } pasted = true; diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 4ab007408..08fc25464 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -814,7 +814,7 @@ void Export::onAreaToggled () case SELECTION_SELECTION: if ((SP_ACTIVE_DESKTOP->getSelection())->isEmpty() == false) { - sp_selection_get_export_hints (SP_ACTIVE_DESKTOP->getSelection(), filename, &xdpi, &ydpi); + sp_object_set_get_export_hints(SP_ACTIVE_DESKTOP->getSelection(), filename, &xdpi, &ydpi); /* If we still don't have a filename -- let's build one that's nice */ diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index d4a0ffd68..d82b5ded3 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -723,12 +723,12 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) if (!prefs->getBool("/dialogs/transformation/applyseparately")) { // move selection as a whole if (_check_move_relative.get_active()) { - sp_selection_move_relative(selection, x, y); + sp_object_set_move_relative(selection, x, y); } else { Geom::OptRect bbox = selection->preferredBounds(); if (bbox) { - sp_selection_move_relative(selection, - x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]); + sp_object_set_move_relative(selection, + x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]); } } } else { @@ -791,8 +791,8 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) } else { Geom::OptRect bbox = selection->preferredBounds(); if (bbox) { - sp_selection_move_relative(selection, - x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]); + sp_object_set_move_relative(selection, + x - bbox->min()[Geom::X], y - bbox->min()[Geom::Y]); } } } @@ -856,7 +856,7 @@ void Transformation::applyPageScale(Inkscape::Selection *selection) double y1 = bbox_pref->midpoint()[Geom::Y] + new_height/2; Geom::Affine scaler = get_scale_transform_for_variable_stroke (*bbox_pref, *bbox_geom, transform_stroke, preserve, x0, y0, x1, y1); - sp_selection_apply_affine(selection, scaler); + sp_object_set_apply_affine(selection, scaler); } } @@ -882,7 +882,7 @@ void Transformation::applyPageRotate(Inkscape::Selection *selection) } else { boost::optional center = selection->center(); if (center) { - sp_selection_rotate_relative(selection, *center, angle); + sp_object_set_rotate_relative(selection, *center, angle); } } @@ -949,7 +949,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection) getDesktop()->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Transform matrix is singular, not used.")); return; } - sp_selection_skew_relative(selection, *center, 0.01*skewX, 0.01*skewY); + sp_object_set_skew_relative(selection, *center, 0.01 * skewX, 0.01 * skewY); } else if (_units_skew.isRadial()) { //deg or rad double angleX = _scalar_skew_horizontal.getValue("rad"); double angleY = _scalar_skew_vertical.getValue("rad"); @@ -962,7 +962,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection) } double skewX = tan(-angleX); double skewY = tan(angleY); - sp_selection_skew_relative(selection, *center, skewX, skewY); + sp_object_set_skew_relative(selection, *center, skewX, skewY); } else { // absolute displacement double skewX = _scalar_skew_horizontal.getValue("px"); double skewY = _scalar_skew_vertical.getValue("px"); @@ -970,7 +970,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection) getDesktop()->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Transform matrix is singular, not used.")); return; } - sp_selection_skew_relative(selection, *center, skewX/height, skewY/width); + sp_object_set_skew_relative(selection, *center, skewX / height, skewY / width); } } } @@ -1003,7 +1003,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) item->updateRepr(); } } else { - sp_selection_apply_affine(selection, displayed); // post-multiply each object's transform + sp_object_set_apply_affine(selection, displayed); // post-multiply each object's transform } DocumentUndo::done(selection->desktop()->getDocument(), SP_VERB_DIALOG_TRANSFORM, diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index d19526105..eb3034ca3 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -1250,7 +1250,7 @@ sp_ui_drag_data_received(GtkWidget *widget, Geom::OptRect sel_bbox = selection->visualBounds(); if (sel_bbox) { Geom::Point m( desktop->point() - sel_bbox->midpoint() ); - sp_selection_move_relative(selection, m, false); + sp_object_set_move_relative(selection, m, false); } } @@ -1916,7 +1916,7 @@ void ContextMenu::MakeGroupMenu(void) void ContextMenu::ActivateGroup(void) { - sp_selection_group_ui(_desktop->selection, _desktop); + sp_selection_group(_desktop->selection, _desktop); } void ContextMenu::ActivateUngroup(void) diff --git a/src/verbs.cpp b/src/verbs.cpp index 8255ea1ea..d6c239e86 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -1133,22 +1133,22 @@ void SelectionVerb::perform(SPAction *action, void *data) sp_selected_path_slice(selection, dt); break; case SP_VERB_SELECTION_TO_FRONT: - sp_selection_raise_to_top_ui(selection, dt); + sp_selection_raise_to_top(selection, dt); break; case SP_VERB_SELECTION_TO_BACK: - sp_selection_lower_to_bottom_ui(selection, dt); + sp_selection_lower_to_bottom(selection, dt); break; case SP_VERB_SELECTION_RAISE: - sp_selection_raise_ui(selection, dt); + sp_selection_raise(selection, dt); break; case SP_VERB_SELECTION_LOWER: - sp_selection_lower_ui(selection, dt); + sp_selection_lower(selection, dt); break; case SP_VERB_SELECTION_GROUP: - sp_selection_group_ui(selection, dt); + sp_selection_group(selection, dt); break; case SP_VERB_SELECTION_UNGROUP: - sp_selection_ungroup_ui(selection, dt); + sp_selection_ungroup(selection, dt); break; case SP_VERB_SELECTION_UNGROUP_POP_SELECTION: sp_selection_ungroup_pop_selection(selection, dt); @@ -1520,7 +1520,7 @@ void ObjectVerb::perform( SPAction *action, void *data) sp_selection_rotate_90(dt, true); break; case SP_VERB_OBJECT_FLATTEN: - sp_selection_remove_transform(dt); + sp_object_set_remove_transform(dt); break; case SP_VERB_OBJECT_FLOW_TEXT: text_flow_into_shape(); @@ -1532,12 +1532,12 @@ void ObjectVerb::perform( SPAction *action, void *data) flowtext_to_text(); break; case SP_VERB_OBJECT_FLIP_HORIZONTAL: - sp_selection_scale_relative(sel, center, Geom::Scale(-1.0, 1.0)); + sp_object_set_scale_relative(sel, center, Geom::Scale(-1.0, 1.0)); DocumentUndo::done(dt->getDocument(), SP_VERB_OBJECT_FLIP_HORIZONTAL, _("Flip horizontally")); break; case SP_VERB_OBJECT_FLIP_VERTICAL: - sp_selection_scale_relative(sel, center, Geom::Scale(1.0, -1.0)); + sp_object_set_scale_relative(sel, center, Geom::Scale(1.0, -1.0)); DocumentUndo::done(dt->getDocument(), SP_VERB_OBJECT_FLIP_VERTICAL, _("Flip vertically")); break; diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp index 9851b0606..322c33cc3 100644 --- a/src/widgets/select-toolbar.cpp +++ b/src/widgets/select-toolbar.cpp @@ -257,7 +257,7 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, GObject *tbl) scaler = get_scale_transform_for_uniform_stroke (*bbox_geom, 0, 0, false, false, x0, y0, x1, y1); } - sp_selection_apply_affine(selection, scaler); + sp_object_set_apply_affine(selection, scaler); DocumentUndo::maybeDone(document, actionkey, SP_VERB_CONTEXT_SELECT, _("Transform by toolbar")); diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index 7d79eb3b8..79a49488a 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -14,8 +14,11 @@ #include #include #include +#include +#include using namespace Inkscape; +using namespace Inkscape::XML; class ObjectSetTest: public DocPerCaseTest { public: @@ -31,6 +34,25 @@ public: X = new SPObject(); set = new ObjectSet(); set2 = new ObjectSet(); + auto sd = new SimpleDocument(); + auto xt = new TextNode(Util::share_string("x"), sd); + auto ht = new TextNode(Util::share_string("h"), sd); + auto gt = new TextNode(Util::share_string("g"), sd); + auto ft = new TextNode(Util::share_string("f"), sd); + auto et = new TextNode(Util::share_string("e"), sd); + auto dt = new TextNode(Util::share_string("d"), sd); + auto ct = new TextNode(Util::share_string("c"), sd); + auto bt = new TextNode(Util::share_string("b"), sd); + auto at = new TextNode(Util::share_string("a"), sd); + X->invoke_build(_doc, xt, 0); + H->invoke_build(_doc, ht, 0); + G->invoke_build(_doc, gt, 0); + F->invoke_build(_doc, ft, 0); + E->invoke_build(_doc, et, 0); + D->invoke_build(_doc, dt, 0); + C->invoke_build(_doc, ct, 0); + B->invoke_build(_doc, bt, 0); + A->invoke_build(_doc, at, 0); } ~ObjectSetTest() { delete set; @@ -186,12 +208,10 @@ TEST_F(ObjectSetTest, Ranges) { } TEST_F(ObjectSetTest, Autoremoving) { - SPObject* Q = new SPObject(); - Q->invoke_build(_doc, _doc->rroot, 1); - set->add(Q); - EXPECT_TRUE(set->includes(Q)); + set->add(A); + EXPECT_TRUE(set->includes(A)); EXPECT_EQ(1, set->size()); - Q->releaseReferences(); + A->releaseReferences(); EXPECT_EQ(0, set->size()); } @@ -272,20 +292,18 @@ TEST_F(ObjectSetTest, Removing) { } TEST_F(ObjectSetTest, TwoSets) { - SPObject* Q = new SPObject(); - Q->invoke_build(_doc, _doc->rroot, 1); A->attach(B, nullptr); - A->attach(Q, nullptr); + A->attach(C, nullptr); set->add(A); set2->add(A); EXPECT_EQ(1, set->size()); EXPECT_EQ(1, set2->size()); set->remove(B); EXPECT_EQ(1, set->size()); - EXPECT_TRUE(set->includes(Q)); + EXPECT_TRUE(set->includes(C)); EXPECT_EQ(1, set2->size()); EXPECT_TRUE(set2->includes(A)); - Q->releaseReferences(); + C->releaseReferences(); EXPECT_EQ(0, set->size()); EXPECT_EQ(1, set2->size()); EXPECT_TRUE(set2->includes(A)); diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index cb4f6fc46..df811647f 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -14,9 +14,7 @@ #include #include #include -#include #include -#include using namespace Inkscape; using namespace Inkscape::XML; @@ -42,11 +40,11 @@ public: a->invoke_build(_doc, at, 0); } ~SPObjectTest() { - delete a; - delete b; - delete c; - delete d; delete e; + delete d; + delete c; + delete b; + delete a; } SPObject* a; SPObject* b; -- cgit v1.2.3 From eac1fe4375d3f7fb5fc447ddcbdd88920923593a Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 27 Jul 2016 10:49:21 -0500 Subject: Add build dependencies (bzr r14950.1.11) --- snapcraft.yaml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/snapcraft.yaml b/snapcraft.yaml index 3451607b8..f9e49b466 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -20,6 +20,39 @@ parts: plugin: cmake source: . configflags: ['-DENABLE_BINRELOC=ON'] + build-packages: + - cmake + - intltool + - libart-2.0-dev + - libaspell-dev + - libboost-dev + - libcdr-dev + - libgc-dev + - libglib2.0-dev + - libgnomevfs2-dev + - libgsl-dev + - libgtk2.0-dev + - libgtkmm-2.4-dev + - libgtkspell-dev + - liblcms2-dev + - libmagick++-dev + - libpango1.0-dev + - libpng16-dev + - libpoppler-glib-dev + - libpoppler-private-dev + - libpopt-dev + - librevenge-dev + - libsigc++-2.0-dev + - libtool + - libvisio-dev + - libwpg-dev + - libxml-parser-perl + - libxml2-dev + - libxslt1-dev + - pkg-config + - python-dev + - python-lxml + - zlib1g-dev stage-packages: - libaspell15 - libatkmm-1.6-1v5 -- cgit v1.2.3 From 3078d10fcf276c0d36975bfd48ef064b46f60b3d Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Wed, 27 Jul 2016 17:21:52 +0100 Subject: Disable GTK+ 2 support and delete internal copy of GDL Fixed bugs: - https://launchpad.net/bugs/1424830 - https://launchpad.net/bugs/1606558 (bzr r15023.2.1) --- CMakeLists.txt | 2 - CMakeScripts/DefineDependsandFlags.cmake | 29 - configure.ac | 89 +- src/CMakeLists.txt | 6 - src/Makefile.am | 11 - src/libgdl/CMakeLists.txt | 50 - src/libgdl/Makefile_insert | 92 -- src/libgdl/README.gdl-dock | 184 --- src/libgdl/gdl-dock-bar.c | 1049 ------------- src/libgdl/gdl-dock-bar.h | 74 - src/libgdl/gdl-dock-item-button-image.c | 166 --- src/libgdl/gdl-dock-item-button-image.h | 70 - src/libgdl/gdl-dock-item-grip.c | 809 ---------- src/libgdl/gdl-dock-item-grip.h | 77 - src/libgdl/gdl-dock-item.c | 2401 ------------------------------ src/libgdl/gdl-dock-item.h | 223 --- src/libgdl/gdl-dock-master.c | 1011 ------------- src/libgdl/gdl-dock-master.h | 106 -- src/libgdl/gdl-dock-notebook.c | 530 ------- src/libgdl/gdl-dock-notebook.h | 59 - src/libgdl/gdl-dock-object.c | 1027 ------------- src/libgdl/gdl-dock-object.h | 225 --- src/libgdl/gdl-dock-paned.c | 678 --------- src/libgdl/gdl-dock-paned.h | 64 - src/libgdl/gdl-dock-placeholder.c | 827 ---------- src/libgdl/gdl-dock-placeholder.h | 69 - src/libgdl/gdl-dock-tablabel.c | 632 -------- src/libgdl/gdl-dock-tablabel.h | 74 - src/libgdl/gdl-dock.c | 1365 ----------------- src/libgdl/gdl-dock.h | 99 -- src/libgdl/gdl-i18n.c | 43 - src/libgdl/gdl-i18n.h | 72 - src/libgdl/gdl-switcher.c | 1031 ------------- src/libgdl/gdl-switcher.h | 67 - src/libgdl/gdl-win32.c | 42 - src/libgdl/gdl-win32.h | 21 - src/libgdl/gdl.h | 32 - src/libgdl/libgdlmarshal.c | 173 --- src/libgdl/libgdlmarshal.h | 48 - src/libgdl/libgdlmarshal.list | 7 - src/libgdl/libgdltypebuiltins.c | 162 -- src/libgdl/libgdltypebuiltins.h | 38 - src/libgdl/makefile.in | 17 - src/widgets/CMakeLists.txt | 7 +- src/widgets/Makefile_insert | 8 +- 45 files changed, 11 insertions(+), 13855 deletions(-) delete mode 100644 src/libgdl/CMakeLists.txt delete mode 100644 src/libgdl/Makefile_insert delete mode 100644 src/libgdl/README.gdl-dock delete mode 100644 src/libgdl/gdl-dock-bar.c delete mode 100644 src/libgdl/gdl-dock-bar.h delete mode 100644 src/libgdl/gdl-dock-item-button-image.c delete mode 100644 src/libgdl/gdl-dock-item-button-image.h delete mode 100644 src/libgdl/gdl-dock-item-grip.c delete mode 100644 src/libgdl/gdl-dock-item-grip.h delete mode 100644 src/libgdl/gdl-dock-item.c delete mode 100644 src/libgdl/gdl-dock-item.h delete mode 100644 src/libgdl/gdl-dock-master.c delete mode 100644 src/libgdl/gdl-dock-master.h delete mode 100644 src/libgdl/gdl-dock-notebook.c delete mode 100644 src/libgdl/gdl-dock-notebook.h delete mode 100644 src/libgdl/gdl-dock-object.c delete mode 100644 src/libgdl/gdl-dock-object.h delete mode 100644 src/libgdl/gdl-dock-paned.c delete mode 100644 src/libgdl/gdl-dock-paned.h delete mode 100644 src/libgdl/gdl-dock-placeholder.c delete mode 100644 src/libgdl/gdl-dock-placeholder.h delete mode 100644 src/libgdl/gdl-dock-tablabel.c delete mode 100644 src/libgdl/gdl-dock-tablabel.h delete mode 100644 src/libgdl/gdl-dock.c delete mode 100644 src/libgdl/gdl-dock.h delete mode 100644 src/libgdl/gdl-i18n.c delete mode 100644 src/libgdl/gdl-i18n.h delete mode 100644 src/libgdl/gdl-switcher.c delete mode 100644 src/libgdl/gdl-switcher.h delete mode 100644 src/libgdl/gdl-win32.c delete mode 100644 src/libgdl/gdl-win32.h delete mode 100644 src/libgdl/gdl.h delete mode 100644 src/libgdl/libgdlmarshal.c delete mode 100644 src/libgdl/libgdlmarshal.h delete mode 100644 src/libgdl/libgdlmarshal.list delete mode 100644 src/libgdl/libgdltypebuiltins.c delete mode 100644 src/libgdl/libgdltypebuiltins.h delete mode 100644 src/libgdl/makefile.in diff --git a/CMakeLists.txt b/CMakeLists.txt index b4ec5993e..57440ef00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,6 @@ option(WITH_LIBCDR "Compile with support of libcdr for CorelDRAW Diagrams" ON) option(WITH_LIBVISIO "Compile with support of libvisio for Microsoft Visio Diagrams" ON) option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON) option(WITH_NLS "Compile with Native Language Support (using gettext)" ON) -option(WITH_GTK3_EXPERIMENTAL "Enable compilation with GTK+3 (EXPERIMENTAL!)" OFF) # ----------------------------------------------------------------------------- # Test Harness @@ -238,7 +237,6 @@ message("ENABLE_POPPLER_CAIRO: ${ENABLE_POPPLER_CAIRO}") message("GMOCK_PRESENT: ${GMOCK_PRESENT}") message("WITH_DBUS: ${WITH_DBUS}") message("WITH_GNOME_VFS: ${WITH_GNOME_VFS}") -message("WITH_GTK3_EXPERIMENTAL: ${WITH_GTK3_EXPERIMENTAL}") message("WITH_GTKSPELL: ${WITH_GTKSPELL}") message("WITH_IMAGE_MAGICK: ${WITH_IMAGE_MAGICK}") message("WITH_LIBCDR: ${WITH_LIBCDR}") diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index b708484af..7117c1f7e 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -237,7 +237,6 @@ endif() set(TRY_GTKSPELL 1) # Include dependencies: # use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added -if("${WITH_GTK3_EXPERIMENTAL}") pkg_check_modules( GTK3 REQUIRED @@ -247,10 +246,8 @@ if("${WITH_GTK3_EXPERIMENTAL}") gdk-3.0>=3.8 gdl-3.0>=3.4 ) - message("Using EXPERIMENTAL Gtkmm 3 build") list(APPEND INKSCAPE_CXX_FLAGS ${GTK3_CFLAGS_OTHER}) set(WITH_GTKMM_3_0 1) - message("Using external GDL") set(WITH_EXT_GDL 1) # Check whether we can use new features in Gtkmm 3.10 @@ -291,32 +288,6 @@ if("${WITH_GTK3_EXPERIMENTAL}") ${GTK3_LIBRARIES} ${GTKSPELL3_LIBRARIES} ) -else() - pkg_check_modules(GTK REQUIRED - gtkmm-2.4>=2.24 - gdkmm-2.4 - gtk+-2.0 - gdk-2.0 - ) - list(APPEND INKSCAPE_CXX_FLAGS ${GTK_CFLAGS_OTHER}) - pkg_check_modules(GTKSPELL2 gtkspell-2.0) - if("${GTKSPELL2_FOUND}") - message("Using GtkSpell 2") - add_definitions(${GTKSPELL2_CFLAGS_OTHER}) - set (WITH_GTKSPELL 1) - else() - unset(WITH_GTKSPELL) - endif() - list(APPEND INKSCAPE_INCS_SYS - ${GTK_INCLUDE_DIRS} - ${GTKSPELL2_INCLUDE_DIRS} - ) - - list(APPEND INKSCAPE_LIBS - ${GTK_LIBRARIES} - ${GTKSPELL2_LIBRARIES} - ) -endif() find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) diff --git a/configure.ac b/configure.ac index 4cef05f70..bd20b8e6d 100644 --- a/configure.ac +++ b/configure.ac @@ -712,16 +712,6 @@ fi AC_CHECK_HEADER([boost/unordered_set.hpp], [AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1, [Boost unordered_set (Boost >= 1.36)])], []) -dnl ********************************* -dnl Allow experimental GTK+3 build -dnl ********************************* -AC_ARG_ENABLE(gtk3-experimental, - AS_HELP_STRING([--enable-gtk3-experimental], [enable compilation with GTK+3 (EXPERIMENTAL!)]), - [enable_gtk3=$enableval], [enable_gtk3=no]) - -with_gtkmm_3_0="no" -if test "x$enable_gtk3" = "xyes"; then - ink_spell_pkg= if pkg-config --exists gtkspell-3.0; then ink_spell_pkg=gtkspell-3.0 @@ -738,19 +728,12 @@ if test "x$enable_gtk3" = "xyes"; then dnl C++-specific compiler flags PKG_CHECK_MODULES(GTKMM, gtkmm-3.0 >= 3.8 - gdkmm-3.0 >= 3.8, - with_gtkmm_3_0=yes, - with_gtkmm_3_0=no) - - if test "x$with_gtkmm_3_0" = "xyes"; then - AC_MSG_RESULT([Using EXPERIMENTAL Gtkmm 3 build]) - AC_DEFINE(WITH_GTKMM_3_0,1,[Build with Gtkmm 3.x]) - - AC_MSG_RESULT([Using external GDL]) - AC_DEFINE(WITH_EXT_GDL,1,[Build with external GDL]) - else - AC_MSG_ERROR([Some dependencies were not fulfilled for the experimental GTK+ 3 build. One possible cause for this is a new dependency on the gdl-3.0 development package.]) - fi + gdkmm-3.0 >= 3.8) + + +dnl Drop these hacks as soon as we've got rid of all GTK+ 2/3 conditional blocks +AC_DEFINE([WITH_GTKMM_3_0], [1], [Use GTKmm 3.0 or higher]) +AC_DEFINE([WITH_EXT_GDL], [1], [Use external GDL]) # Check whether we can use new features in Gtkmm 3.10 # TODO: Drop this test and bump the version number in the GTK test above @@ -781,8 +764,7 @@ if test "x$enable_gtk3" = "xyes"; then dnl switch to Gtk+ 3 as a hard dependency # Check whether we are using the X11 backend target for Gtk+ 3. - m4_ifdef([GTK_CHECK_BACKEND], - [GTK_CHECK_BACKEND([x11], , [have_x11=yes], [have_x11=no])]) + GTK_CHECK_BACKEND([x11], , [have_x11=yes], [have_x11=no]) # Enable strict build options that should work on most systems unless # the build has been configured not to do so @@ -801,60 +783,6 @@ if test "x$enable_gtk3" = "xyes"; then CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS" CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS" fi -else - - ink_spell_pkg= - if pkg-config --exists gtkspell-2.0; then - ink_spell_pkg=gtkspell-2.0 - AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget]) - fi - - PKG_CHECK_MODULES(GTK, - gtk+-2.0 >= 2.24 - $ink_spell_pkg) - - dnl Separate out dependencies that are known to introduce C++-specific - dnl compiler flags - PKG_CHECK_MODULES(GTKMM, - gdkmm-2.4 >= 2.24 - gtkmm-2.4 >= 2.24) - - # Check whether we are using the X11 backend for Gtk+ 2. - AC_MSG_CHECKING([if Gtk+ 2.0 is using the X11 backend target]) - if test "x`$PKG_CONFIG --variable=target gtk+-2.0`" = "xx11"; then - have_x11=yes - else - have_x11=no - fi - AC_MSG_RESULT($have_x11) - - # Enable build strict options that should work on most systems unless - # the build has been configured explicitly not to do so - if test "x$enable_strict_build" != "xno"; then - # Prevent usage of deprecated Gtk+ symbols. These have all - # been removed in Gtk+ 3 so these checks are important. - CPPFLAGS="-DGTKMM_DISABLE_DEPRECATED $CPPFLAGS" - CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS" - - # Allow only top-level GTK+ headers to be used. This is mandatory - # for GTK+ >= 3.0 so there is no need to apply the flag in GTK+ 3 - # builds. - CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS" - fi - - # Optionally enable strict build options that are known to cause build - # failure in many/most systems - if test "x$enable_strict_build" == "xhigh"; then - # FIXME: This causes build failure because our internal - # copy of GDL uses deprecated GDK symbols. - # - # This specific issue isn't a problem for GTK+ 3 builds because - # we build against external GDL >= 3.3.4 rather than using - # the deprecated internal code - CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS" - fi -fi -AM_CONDITIONAL(WITH_GTKMM_3_0, test "x$with_gtkmm_3_0" = "xyes") INKSCAPE_CFLAGS="$GTK_CFLAGS $INKSCAPE_CFLAGS" INKSCAPE_CXX_DEPS_CFLAGS="$GTKMM_CFLAGS $INKSCAPE_CXX_DEPS_CFLAGS" @@ -870,8 +798,6 @@ fi AC_SUBST(X11_CFLAGS) AC_SUBST(X11_LIBS) -AM_CONDITIONAL(WITH_EXT_GDL, test "x$with_gtkmm_3_0" = "xyes") - # Prevent usage of deprecated library symbols unless strict build # checking has been disabled if test "x$enable_strict_build" != "xno"; then @@ -1112,7 +1038,6 @@ src/filters/makefile src/helper/makefile src/io/makefile src/libcroco/makefile -src/libgdl/makefile src/libnrtype/makefile src/libavoid/makefile src/libuemf/makefile diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d4ba9b1f0..41e7a7967 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -467,7 +467,6 @@ add_subdirectory(libavoid) add_subdirectory(libcola) add_subdirectory(libcroco) add_subdirectory(inkgc) -add_subdirectory(libgdl) add_subdirectory(libuemf) add_subdirectory(libvpsc) add_subdirectory(livarot) @@ -540,11 +539,6 @@ set(INKSCAPE_TARGET_LIBS ${INKSCAPE_LIBS} ) -if (NOT "${WITH_EXT_GDL}") - # Insert it at the beginning of the list as the windows build fails otherwise - list (INSERT INKSCAPE_TARGET_LIBS 0 "gdl_LIB") -endif() - # Link the inkscape_base library against all external dependencies target_link_libraries(inkscape_base ${INKSCAPE_TARGET_LIBS}) diff --git a/src/Makefile.am b/src/Makefile.am index 087a727de..6e1dabdbd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -16,16 +16,9 @@ bin_PROGRAMS = inkscape inkview # Libraries which should be compiled by "make" but not installed. # Use this only for libraries that are really standalone, rather than for # source tree subdirectories. - -if !WITH_EXT_GDL -internal_GDL = libgdl/libgdl.a -endif - - noinst_LIBRARIES = \ libcroco/libcroco.a \ libavoid/libavoid.a \ - $(internal_GDL) \ libuemf/libuemf.a \ libcola/libcola.a \ inkgc/libinkgc.a \ @@ -51,7 +44,6 @@ all_libs = \ $(LIBVISIO_LIBS) \ $(LIBCDR_LIBS) \ $(DBUS_LIBS) \ - $(GDL_LIBS) \ $(IMAGEMAGICK_LIBS) \ $(X11_LIBS) @@ -82,7 +74,6 @@ AM_CPPFLAGS = \ $(LIBVISIO_CFLAGS) \ $(LIBCDR_CFLAGS) \ $(DBUS_CFLAGS) \ - $(GDL_CFLAGS) \ $(XFT_CFLAGS) \ $(LCMS_CFLAGS) \ $(POPPLER_CFLAGS) \ @@ -122,7 +113,6 @@ include helper/Makefile_insert include io/Makefile_insert include libcroco/Makefile_insert include inkgc/Makefile_insert -include libgdl/Makefile_insert include libnrtype/Makefile_insert include libavoid/Makefile_insert include livarot/Makefile_insert @@ -160,7 +150,6 @@ EXTRA_DIST += \ io/makefile.in \ libavoid/makefile.in \ libcroco/makefile.in \ - libgdl/makefile.in \ libnrtype/makefile.in \ libuemf/makefile.in \ livarot/makefile.in \ diff --git a/src/libgdl/CMakeLists.txt b/src/libgdl/CMakeLists.txt deleted file mode 100644 index a452320f7..000000000 --- a/src/libgdl/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ -if (NOT "${WITH_EXT_GDL}") - - set(libgdl_SRC - gdl-dock-bar.c - gdl-dock-item-button-image.c - gdl-dock-item-grip.c - gdl-dock-item.c - gdl-dock-master.c - gdl-dock-notebook.c - gdl-dock-object.c - gdl-dock-paned.c - gdl-dock-placeholder.c - gdl-dock-tablabel.c - gdl-dock.c - gdl-i18n.c - gdl-switcher.c - libgdlmarshal.c - libgdltypebuiltins.c - - - # ------- - # Headers - gdl-dock-bar.h - gdl-dock-item-button-image.h - gdl-dock-item-grip.h - gdl-dock-item.h - gdl-dock-master.h - gdl-dock-notebook.h - gdl-dock-object.h - gdl-dock-paned.h - gdl-dock-placeholder.h - gdl-dock-tablabel.h - gdl-dock.h - gdl-i18n.h - gdl-switcher.h - gdl.h - libgdlmarshal.h - libgdltypebuiltins.h - ) - - if(WIN32) - list(APPEND libgdl_SRC - gdl-win32.c - gdl-win32.h - ) - endif() - - add_inkscape_lib(gdl_LIB "${libgdl_SRC}") - -endif() diff --git a/src/libgdl/Makefile_insert b/src/libgdl/Makefile_insert deleted file mode 100644 index e4cab95fc..000000000 --- a/src/libgdl/Makefile_insert +++ /dev/null @@ -1,92 +0,0 @@ -## Makefile.am fragment sourced by src/Makefile.am. - -if WITH_EXT_GDL - -EXTRA_DIST += \ - libgdl/gdl-dock-object.h \ - libgdl/gdl-dock-master.h \ - libgdl/gdl-dock.h \ - libgdl/gdl-dock-item.h \ - libgdl/gdl-dock-notebook.h \ - libgdl/gdl-dock-paned.h \ - libgdl/gdl-dock-tablabel.h \ - libgdl/gdl-dock-placeholder.h \ - libgdl/gdl-dock-bar.h \ - libgdl/gdl-i18n.h \ - libgdl/gdl-i18n.c \ - libgdl/gdl-dock-object.c \ - libgdl/gdl-dock-master.c \ - libgdl/gdl-dock.c \ - libgdl/gdl-dock-item.c \ - libgdl/gdl-dock-item-button-image.c \ - libgdl/gdl-dock-item-button-image.h \ - libgdl/gdl-dock-item-grip.h \ - libgdl/gdl-dock-item-grip.c \ - libgdl/gdl-dock-notebook.c \ - libgdl/gdl-dock-paned.c \ - libgdl/gdl-dock-tablabel.c \ - libgdl/gdl-dock-placeholder.c \ - libgdl/gdl-dock-bar.c \ - libgdl/gdl-switcher.h \ - libgdl/gdl-switcher.c \ - libgdl/gdl-win32.h \ - libgdl/gdl-win32.c \ - libgdl/libgdltypebuiltins.h \ - libgdl/libgdltypebuiltins.c \ - libgdl/libgdlmarshal.h \ - libgdl/libgdlmarshal.c \ - libgdl/gdl.h - -else # WITH_EXT_GDL - -libgdl/all: libgdl/libgdl.a - -libgdl/clean: - rm -f libgdl/libgdl.a $(libgdl_gdl_a_OBJECTS) - -# Suppress some non-critical warnings for libgdl. We will drop our forked copy -# of GDL once we upgrade to Gtk+ 3 so it's more important to minimise the number -# of changes we make to GDL than to fix these minor issues in trunk. - -if CC_WNO_UNUSED_BUT_SET_VARIABLE_SUPPORTED -libgdl_libgdl_a_CFLAGS = -Wno-unused-parameter -Wno-sign-compare -Wno-unused-variable -Wno-unused-but-set-variable -Wno-missing-field-initializers $(AM_CFLAGS) -else -libgdl_libgdl_a_CFLAGS = -Wno-unused-parameter -Wno-sign-compare -Wno-unused-variable -Wno-missing-field-initializers $(AM_CFLAGS) -endif - -libgdl_libgdl_a_SOURCES = \ - libgdl/gdl-dock-object.h \ - libgdl/gdl-dock-master.h \ - libgdl/gdl-dock.h \ - libgdl/gdl-dock-item.h \ - libgdl/gdl-dock-notebook.h \ - libgdl/gdl-dock-paned.h \ - libgdl/gdl-dock-tablabel.h \ - libgdl/gdl-dock-placeholder.h \ - libgdl/gdl-dock-bar.h \ - libgdl/gdl-i18n.h \ - libgdl/gdl-i18n.c \ - libgdl/gdl-dock-object.c \ - libgdl/gdl-dock-master.c \ - libgdl/gdl-dock.c \ - libgdl/gdl-dock-item.c \ - libgdl/gdl-dock-item-button-image.c \ - libgdl/gdl-dock-item-button-image.h \ - libgdl/gdl-dock-item-grip.h \ - libgdl/gdl-dock-item-grip.c \ - libgdl/gdl-dock-notebook.c \ - libgdl/gdl-dock-paned.c \ - libgdl/gdl-dock-tablabel.c \ - libgdl/gdl-dock-placeholder.c \ - libgdl/gdl-dock-bar.c \ - libgdl/gdl-switcher.h \ - libgdl/gdl-switcher.c \ - libgdl/gdl-win32.h \ - libgdl/gdl-win32.c \ - libgdl/libgdltypebuiltins.h \ - libgdl/libgdltypebuiltins.c \ - libgdl/libgdlmarshal.h \ - libgdl/libgdlmarshal.c \ - libgdl/gdl.h - -endif diff --git a/src/libgdl/README.gdl-dock b/src/libgdl/README.gdl-dock deleted file mode 100644 index 113926dbe..000000000 --- a/src/libgdl/README.gdl-dock +++ /dev/null @@ -1,184 +0,0 @@ -This file is meant to contain a little documentation about the GdlDock -and related widgets. It's incomplete and probably a bit out of date. -And it probably belongs to a doc/ subdirectory. - -Please send comments to the devtools list (gnome-devtools@gnome.org) -and report bugs to bugzilla (bugzilla.gnome.org). Also check the todo -list at the end of this document. - -Have fun, -Gustavo - - -Overview --------- - -The GdlDock is a hierarchical based docking widget. It is composed of -widgets derived from the abstract class GdlDockObject which defines -the basic interface for docking widgets on top of others. - -The toplevel entries for docks are GdlDock widgets, which in turn hold -a tree of GdlDockItem widgets. For the toplevel docks to be able to -interact with each other (when the user drags items from one place to -another) they're all kept in a user-invisible and automatic object -called the master. To participate in docking operations every -GdlDockObject must have the same master (the binding to the master is -done automatically). The master also keeps track of the manual items -(mostly those created with gdl_dock_*_new functions) which are in the -dock. - -Layout loading/saving service is provided by a separate object called -GdlDockLayout. Currently it stores information in XML format, but -another backend could be easily written. To keep the external XML -file in sync with the dock, monitor the "dirty" property of the layout -object and call gdl_dock_layout_save_to_file when this changes to -TRUE. No other action is required (the layout_changed is monitored by -the layout object for you now). - - -GdlDockObject -============= - -A DockObject has: - -- a master, which manages all the objects in a dock ring ("master" - property, construct only). - -- a name. If the object is manual the name can be used to recall the - object from any other object in the ring ("name" property). - -- a long, descriptive name ("long-name" property). - -A DockObject can be: - -- automatic or manual. If it's automatic it means the lifecycle of - the object is entirely managed by the dock master. If it's manual - in general means the user specified such object, and so it's not to - be destroyed automatically at any time. - -- frozen. In this case any call to reduce on the object has no - immediate effect. When the object is later thawn, any pending - reduce calls are made (maybe leading to the destruction of the - object). - -- attached or detached. In general for dock items, being attached - will mean the item has its widget->parent set. For docks it will - mean they belong to some dock master's ring. In general, automatic - objects which are detached will be destroyed (unless frozen). - -- bound to a master or free. In order to participate in dock - operations, each dock object must be bound to a dock master (which - is a separate, non-gui object). In general, bindings are treated - automatically by the object, and this is entirely true for automatic - objects. For manual objects, the master holds an additional - reference and has structures to store and recall them by nick names. - Normally, a manual object will only be destroyed when it's unbound - from the master. - -- simple or compound. This actually depends on the subclass of the - dock object. The difference is made so we can put restrictions in - how the objects are docked on top of another (e.g. you can't dock a - compound object inside a notebook). If you look at the whole - docking layout as a tree, simple objects are the leaves, while all - the interior nodes are compound. - -- reduced. This is only meaningful for compound objects. If the - number of contained items has decreased to one the compound type - object is no longer necessary to hold the child. In this case the - child is reattached to the object's parent. If the number of - contained items has reached zero, the object is detached and reduce - is called on its parent. For toplevel docks, the object is only - detached if it's automatic. In any case, the future of the object - itself depends on whether it's automatic or manual. - -- requested to possibly dock another object. Depending on the - type's behavior, the object can accept or reject this request. If - it accepts it, it should fill in some additional information - regarding how it will host the peer object. - -- asked to dock another object. Depending on the object's internal - structure and behavior two options can be taken: to dock the object - directly (e.g. a notebook docking another object); or to create an - automatic compound object which will be attached in place of the - actual object, and will host both the original object and the - requestor (e.g. a simple item docking another simple item, which - should create a paned/notebook). The type of the new object will be - decided by the original objet based on the docking position. - - -DETACHING: the action by which an object is unparented. The object is -then ready to be docked in some other place. Newly created objects -are always detached, except for toplevels (which are created attached -by default). An automatic object which is detached gets destroyed -afterwards, since its ref count drops to zero. Floating automatic -toplevels never reach a zero ref count when detached, since the -GtkWindow always keeps a reference to it (and the GtkWindow has a user -reference). That's why floating automatic toplevels are destroyed -when reduced. - -REDUCING: for compound objects, when the number of contained children -drops to one or zero, the container is no longer necessary. In this -case, the object is detached, and any remaining child is reattached to -the object's former parent. The limit for toplevels is one for -automatic objects and zero for manual (i.e. they can even be empty). -For simple (not compound) objects reducing doesn't make sense. - -UNBINDING: to participate in a dock ring, every object must be bound -to a master. The master connects to dock item signals and keeps a -list of bound toplevels. Additionally, a reference is kept for manual -objects (this is so the user doesn't need to keep track of them, but -can perform operations like hiding and such). - - - -GdlDock -======= - -- Properties: - - "floating" (gboolean, construct-only): whether the dock is floating in - its own window or not. - - "default-title" (gchar, read-write): title for new floating docks. - This property is proxied to the master, which truly holds it. - -The title for the floating docks is: the user supplied title -(GdlDockObject's long_name property) if it's set, the default title -(from the master) or an automatically generated title. - - -- Signals: - - "layout-changed": emitted when the user changed the layout of the - dock somehow. - - -TODO LIST -========= - -- Functionality for the item grip: provide a11y - -- Implement notebook tab reordering - -- Implement dock bands for toolbars and menus. - -- A dock-related thing is to build resizable toolbars (something like - the ones Windows have, where the buttons are reflowed according to - the space available). - -- Redesign paneds so they can hold more than two items and resize all - of them at once by using the handle (see if gimpdock does that). - -- Find a way to allow the merging of menu items to the item's popup - menu. Also, there should be a way for the master to insert some - menu items. - -- Bonobo UI synchronizer. - -- Item behavoirs: implement the ones missing and maybe think more of - them (e.g. positions where it's possible to dock the item, etc.) - -- Make a nicer dragbar for the items, with buttons for undocking, - closing, hidding, etc. (See sodipodi, kdevelop) - - diff --git a/src/libgdl/gdl-dock-bar.c b/src/libgdl/gdl-dock-bar.c deleted file mode 100644 index c1fe21872..000000000 --- a/src/libgdl/gdl-dock-bar.c +++ /dev/null @@ -1,1049 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2003 Jeroen Zwartepoorte - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include -#include - -#include "gdl-dock.h" -#include "gdl-dock-master.h" -#include "gdl-dock-bar.h" -#include "libgdltypebuiltins.h" - -enum { - PROP_0, - PROP_MASTER, - PROP_DOCKBAR_STYLE -}; - -/* ----- Private prototypes ----- */ - -static void gdl_dock_bar_class_init (GdlDockBarClass *klass); - -static void gdl_dock_bar_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void gdl_dock_bar_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); - -static void gdl_dock_bar_destroy (GtkObject *object); - -static void gdl_dock_bar_attach (GdlDockBar *dockbar, - GdlDockMaster *master); -static void gdl_dock_bar_remove_item (GdlDockBar *dockbar, - GdlDockItem *item); - -/* ----- Class variables and definitions ----- */ - -struct _GdlDockBarPrivate { - GdlDockMaster *master; - GSList *items; - GtkOrientation orientation; - GdlDockBarStyle dockbar_style; -}; - -/* ----- Private functions ----- */ - -G_DEFINE_TYPE (GdlDockBar, gdl_dock_bar, GTK_TYPE_BOX) - -static void gdl_dock_bar_size_request (GtkWidget *widget, - GtkRequisition *requisition ); -static void gdl_dock_bar_size_allocate (GtkWidget *widget, - GtkAllocation *allocation ); -static void gdl_dock_bar_size_vrequest (GtkWidget *widget, - GtkRequisition *requisition ); -static void gdl_dock_bar_size_vallocate (GtkWidget *widget, - GtkAllocation *allocation ); -static void gdl_dock_bar_size_hrequest (GtkWidget *widget, - GtkRequisition *requisition ); -static void gdl_dock_bar_size_hallocate (GtkWidget *widget, - GtkAllocation *allocation ); -static void update_dock_items (GdlDockBar *dockbar, gboolean full_update); - -void -gdl_dock_bar_class_init (GdlDockBarClass *klass) -{ - GObjectClass *g_object_class; - GtkObjectClass *gtk_object_class; - GtkWidgetClass *widget_class; - - g_object_class = G_OBJECT_CLASS (klass); - gtk_object_class = GTK_OBJECT_CLASS (klass); - - g_object_class->get_property = gdl_dock_bar_get_property; - g_object_class->set_property = gdl_dock_bar_set_property; - - gtk_object_class->destroy = gdl_dock_bar_destroy; - - g_object_class_install_property ( - g_object_class, PROP_MASTER, - g_param_spec_object ("master", _("Master"), - _("GdlDockMaster object which the dockbar widget " - "is attached to"), - GDL_TYPE_DOCK_MASTER, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_DOCKBAR_STYLE, - g_param_spec_enum ("dockbar-style", _("Dockbar style"), - _("Dockbar style to show items on it"), - GDL_TYPE_DOCK_BAR_STYLE, - GDL_DOCK_BAR_BOTH, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - widget_class = GTK_WIDGET_CLASS (klass); - widget_class->size_request = gdl_dock_bar_size_request; - widget_class->size_allocate = gdl_dock_bar_size_allocate; -} - -static void -gdl_dock_bar_init (GdlDockBar *dockbar) -{ - dockbar->_priv = g_new0 (GdlDockBarPrivate, 1); - dockbar->_priv->master = NULL; - dockbar->_priv->items = NULL; - dockbar->_priv->orientation = GTK_ORIENTATION_VERTICAL; - dockbar->_priv->dockbar_style = GDL_DOCK_BAR_BOTH; -} - -static void -gdl_dock_bar_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockBar *dockbar = GDL_DOCK_BAR (object); - - switch (prop_id) { - case PROP_MASTER: - g_value_set_object (value, dockbar->_priv->master); - break; - case PROP_DOCKBAR_STYLE: - g_value_set_enum (value, dockbar->_priv->dockbar_style); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - }; -} - -static void -gdl_dock_bar_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockBar *dockbar = GDL_DOCK_BAR (object); - - switch (prop_id) { - case PROP_MASTER: - gdl_dock_bar_attach (dockbar, g_value_get_object (value)); - break; - case PROP_DOCKBAR_STYLE: - dockbar->_priv->dockbar_style = g_value_get_enum (value); - update_dock_items (dockbar, TRUE); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - }; -} - -static void -on_dock_item_foreach_disconnect (GdlDockItem *item, GdlDockBar *dock_bar) -{ - g_signal_handlers_disconnect_by_func (item, gdl_dock_bar_remove_item, - dock_bar); -} - -static void -gdl_dock_bar_destroy (GtkObject *object) -{ - GdlDockBar *dockbar = GDL_DOCK_BAR (object); - - if (dockbar->_priv) { - GdlDockBarPrivate *priv = dockbar->_priv; - - if (priv->items) { - g_slist_foreach (priv->items, - (GFunc) on_dock_item_foreach_disconnect, - object); - g_slist_free (priv->items); - } - - if (priv->master) { - g_signal_handlers_disconnect_matched (priv->master, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, dockbar); - g_object_unref (priv->master); - priv->master = NULL; - } - - dockbar->_priv = NULL; - - g_free (priv); - } - - GTK_OBJECT_CLASS (gdl_dock_bar_parent_class)->destroy (object); -} - -static void -gdl_dock_bar_remove_item (GdlDockBar *dockbar, - GdlDockItem *item) -{ - GdlDockBarPrivate *priv; - GtkWidget *button; - - g_return_if_fail (GDL_IS_DOCK_BAR (dockbar)); - g_return_if_fail (GDL_IS_DOCK_ITEM (item)); - - priv = dockbar->_priv; - - if (g_slist_index (priv->items, item) == -1) { - g_warning ("Item has not been added to the dockbar"); - return; - } - - priv->items = g_slist_remove (priv->items, item); - - button = g_object_get_data (G_OBJECT (item), "GdlDockBarButton"); - g_assert (button != NULL); - gtk_container_remove (GTK_CONTAINER (dockbar), button); - g_object_set_data (G_OBJECT (item), "GdlDockBarButton", NULL); - g_signal_handlers_disconnect_by_func (item, - G_CALLBACK (gdl_dock_bar_remove_item), - dockbar); -} - -static void -gdl_dock_bar_item_clicked (GtkWidget *button, - GdlDockItem *item) -{ - GdlDockBar *dockbar; - GdlDockObject *controller; - - g_return_if_fail (item != NULL); - - dockbar = g_object_get_data (G_OBJECT (item), "GdlDockBar"); - g_assert (dockbar != NULL); - g_object_set_data (G_OBJECT (item), "GdlDockBar", NULL); - - controller = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item)); - - GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_ICONIFIED); - gdl_dock_item_show_item (item); - gdl_dock_bar_remove_item (dockbar, item); - gtk_widget_queue_resize (GTK_WIDGET (controller)); -} - -static void -gdl_dock_bar_add_item (GdlDockBar *dockbar, - GdlDockItem *item) -{ - GdlDockBarPrivate *priv; - GtkWidget *button; - gchar *stock_id; - gchar *name; - GdkPixbuf *pixbuf_icon; - GtkWidget *image, *box, *label; - - g_return_if_fail (GDL_IS_DOCK_BAR (dockbar)); - g_return_if_fail (GDL_IS_DOCK_ITEM (item)); - - priv = dockbar->_priv; - - if (g_slist_index (priv->items, item) != -1) { - g_warning ("Item has already been added to the dockbar"); - return; - } - - priv->items = g_slist_append (priv->items, item); - - /* Create a button for the item. */ - button = gtk_button_new (); - gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); - - if (dockbar->_priv->orientation == GTK_ORIENTATION_HORIZONTAL) - box = gtk_hbox_new (FALSE, 0); - else - box = gtk_vbox_new (FALSE, 0); - - g_object_get (item, "stock-id", &stock_id, "pixbuf-icon", &pixbuf_icon, - "long-name", &name, NULL); - - if (dockbar->_priv->dockbar_style == GDL_DOCK_BAR_TEXT || - dockbar->_priv->dockbar_style == GDL_DOCK_BAR_BOTH) { - label = gtk_label_new (name); - if (dockbar->_priv->orientation == GTK_ORIENTATION_VERTICAL) - gtk_label_set_angle (GTK_LABEL (label), 90); - gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); - } - - /* FIXME: For now AUTO behaves same as BOTH */ - - if (dockbar->_priv->dockbar_style == GDL_DOCK_BAR_ICONS || - dockbar->_priv->dockbar_style == GDL_DOCK_BAR_BOTH || - dockbar->_priv->dockbar_style == GDL_DOCK_BAR_AUTO) { - if (stock_id) { - image = gtk_image_new_from_stock (stock_id, - GTK_ICON_SIZE_SMALL_TOOLBAR); - g_free (stock_id); - } else if (pixbuf_icon) { - image = gtk_image_new_from_pixbuf (pixbuf_icon); - } else { - image = gtk_image_new_from_stock ("gtk-new", - GTK_ICON_SIZE_SMALL_TOOLBAR); - } - gtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0); - } - - gtk_container_add (GTK_CONTAINER (button), box); - gtk_box_pack_start (GTK_BOX (dockbar), button, FALSE, FALSE, 0); - - gtk_widget_set_tooltip_text (button, name); - g_free (name); - - g_object_set_data (G_OBJECT (item), "GdlDockBar", dockbar); - g_object_set_data (G_OBJECT (item), "GdlDockBarButton", button); - g_signal_connect (G_OBJECT (button), "clicked", - G_CALLBACK (gdl_dock_bar_item_clicked), item); - - gtk_widget_show_all (button); - - /* Set up destroy notify */ - g_signal_connect_swapped (item, "destroy", - G_CALLBACK (gdl_dock_bar_remove_item), - dockbar); -} - -static void -build_list (GdlDockObject *object, GList **list) -{ - /* add only items, not toplevels */ - if (GDL_IS_DOCK_ITEM (object)) - *list = g_list_prepend (*list, object); -} - -static void -update_dock_items (GdlDockBar *dockbar, gboolean full_update) -{ - GdlDockMaster *master; - GList *items, *l; - - g_return_if_fail (dockbar != NULL); - - if (!dockbar->_priv->master) - return; - - master = dockbar->_priv->master; - - /* build items list */ - items = NULL; - gdl_dock_master_foreach (master, (GFunc) build_list, &items); - - if (!full_update) { - for (l = items; l != NULL; l = l->next) { - GdlDockItem *item = GDL_DOCK_ITEM (l->data); - - if (g_slist_index (dockbar->_priv->items, item) != -1 && - !GDL_DOCK_ITEM_ICONIFIED (item)) - gdl_dock_bar_remove_item (dockbar, item); - else if (g_slist_index (dockbar->_priv->items, item) == -1 && - GDL_DOCK_ITEM_ICONIFIED (item)) - gdl_dock_bar_add_item (dockbar, item); - } - } else { - for (l = items; l != NULL; l = l->next) { - GdlDockItem *item = GDL_DOCK_ITEM (l->data); - - if (g_slist_index (dockbar->_priv->items, item) != -1) - gdl_dock_bar_remove_item (dockbar, item); - if (GDL_DOCK_ITEM_ICONIFIED (item)) - gdl_dock_bar_add_item (dockbar, item); - } - } - g_list_free (items); -} - -static void -gdl_dock_bar_layout_changed_cb (GdlDockMaster *master, - GdlDockBar *dockbar) -{ - update_dock_items (dockbar, FALSE); -} - -static void -gdl_dock_bar_attach (GdlDockBar *dockbar, - GdlDockMaster *master) -{ - g_return_if_fail (dockbar != NULL); - g_return_if_fail (master == NULL || GDL_IS_DOCK_MASTER (master)); - - if (dockbar->_priv->master) { - g_signal_handlers_disconnect_matched (dockbar->_priv->master, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, dockbar); - g_object_unref (dockbar->_priv->master); - } - - dockbar->_priv->master = master; - if (dockbar->_priv->master) { - g_object_ref (dockbar->_priv->master); - g_signal_connect (dockbar->_priv->master, "layout-changed", - G_CALLBACK (gdl_dock_bar_layout_changed_cb), - dockbar); - } - - update_dock_items (dockbar, FALSE); -} - -static void gdl_dock_bar_size_request (GtkWidget *widget, - GtkRequisition *requisition ) -{ - GdlDockBar *dockbar; - - dockbar = GDL_DOCK_BAR (widget); - - /* default to vertical for unknown values */ - switch (dockbar->_priv->orientation) { - case GTK_ORIENTATION_HORIZONTAL: - gdl_dock_bar_size_hrequest (widget, requisition); - break; - case GTK_ORIENTATION_VERTICAL: - default: - gdl_dock_bar_size_vrequest (widget, requisition); - break; - } -} - -static void gdl_dock_bar_size_allocate (GtkWidget *widget, - GtkAllocation *allocation ) -{ - GdlDockBar *dockbar; - - dockbar = GDL_DOCK_BAR (widget); - - /* default to vertical for unknown values */ - switch (dockbar->_priv->orientation) { - case GTK_ORIENTATION_HORIZONTAL: - gdl_dock_bar_size_hallocate (widget, allocation); - break; - case GTK_ORIENTATION_VERTICAL: - default: - gdl_dock_bar_size_vallocate (widget, allocation); - break; - } -} - -static void gdl_dock_bar_size_vrequest (GtkWidget *widget, - GtkRequisition *requisition ) -{ - GtkBox *box; - GtkRequisition child_requisition; - GList *child; - gint nvis_children; - gint height; - guint border_width; - - box = GTK_BOX (widget); - requisition->width = 0; - requisition->height = 0; - nvis_children = 0; - - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - if (gtk_widget_get_visible (GTK_WIDGET (child->data))) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_widget_size_request (GTK_WIDGET (child->data), &child_requisition); - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - - if (gtk_box_get_homogeneous (box)) - { - height = child_requisition.height + padding * 2; - requisition->height = MAX (requisition->height, height); - } - else - { - requisition->height += child_requisition.height + padding * 2; - } - - requisition->width = MAX (requisition->width, child_requisition.width); - - nvis_children += 1; - } - } - - if (nvis_children > 0) - { - if (gtk_box_get_homogeneous (box)) - requisition->height *= nvis_children; - requisition->height += (nvis_children - 1) * gtk_box_get_spacing (box); - } - - border_width = gtk_container_get_border_width (GTK_CONTAINER (box)); - requisition->width += border_width * 2; - requisition->height += border_width * 2; - -} - -static void gdl_dock_bar_size_vallocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkBox *box; - GList *child; - GtkAllocation child_allocation; - gint nvis_children; - gint nexpand_children; - gint child_height; - gint height; - gint extra; - gint y; - guint border_width; - GtkRequisition requisition; - - box = GTK_BOX (widget); - gtk_widget_set_allocation (widget, allocation); - - gtk_widget_get_requisition (widget, &requisition); - - nvis_children = 0; - nexpand_children = 0; - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - if (gtk_widget_get_visible (GTK_WIDGET(child->data))) - { - nvis_children += 1; - if (expand) - nexpand_children += 1; - } - } - - border_width = gtk_container_get_border_width (GTK_CONTAINER (box)); - - if (nvis_children > 0) - { - if (gtk_box_get_homogeneous (box)) - { - height = (allocation->height - - border_width * 2 - - (nvis_children - 1) * gtk_box_get_spacing (box)); - extra = height / nvis_children; - } - else if (nexpand_children > 0) - { - height = (gint) allocation->height - (gint) requisition.height; - extra = height / nexpand_children; - } - else - { - height = 0; - extra = 0; - } - - y = allocation->y + border_width; - child_allocation.x = allocation->x + border_width; - child_allocation.width = MAX (1, (gint) allocation->width - (gint) border_width * 2); - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - - if ((pack_type == GTK_PACK_START) && gtk_widget_get_visible (GTK_WIDGET (child->data))) - { - if (gtk_box_get_homogeneous (box)) - { - if (nvis_children == 1) - child_height = height; - else - child_height = extra; - - nvis_children -= 1; - height -= extra; - } - else - { - GtkRequisition child_requisition; - - gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition); - child_height = child_requisition.height + padding * 2; - - if (expand) - { - if (nexpand_children == 1) - child_height += height; - else - child_height += extra; - - nexpand_children -= 1; - height -= extra; - } - } - - if (fill) - { - child_allocation.height = MAX (1, child_height - padding * 2); - child_allocation.y = y + padding; - } - else - { - GtkRequisition child_requisition; - - gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition); - child_allocation.height = child_requisition.height; - child_allocation.y = y + (child_height - child_allocation.height) / 2; - } - - gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation); - - y += child_height + gtk_box_get_spacing (box); - } - } - - y = allocation->y + allocation->height - border_width; - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - - if ((pack_type == GTK_PACK_END) && gtk_widget_get_visible (GTK_WIDGET (child->data))) - { - GtkRequisition child_requisition; - gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition); - - if (gtk_box_get_homogeneous (box)) - { - if (nvis_children == 1) - child_height = height; - else - child_height = extra; - - nvis_children -= 1; - height -= extra; - } - else - { - child_height = child_requisition.height + padding * 2; - - if (expand) - { - if (nexpand_children == 1) - child_height += height; - else - child_height += extra; - - nexpand_children -= 1; - height -= extra; - } - } - - if (fill) - { - child_allocation.height = MAX (1, child_height - padding * 2); - child_allocation.y = y + padding - child_height; - } - else - { - child_allocation.height = child_requisition.height; - child_allocation.y = y + (child_height - child_allocation.height) / 2 - child_height; - } - - gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation); - - y -= (child_height + gtk_box_get_spacing (box)); - } - } - } -} - -static void gdl_dock_bar_size_hrequest (GtkWidget *widget, - GtkRequisition *requisition ) -{ - GtkBox *box; - GList *child; - gint nvis_children; - gint width; - guint border_width; - - box = GTK_BOX (widget); - requisition->width = 0; - requisition->height = 0; - nvis_children = 0; - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - - - if (gtk_widget_get_visible (GTK_WIDGET (child->data))) - { - GtkRequisition child_requisition; - - gtk_widget_size_request (GTK_WIDGET (child->data), &child_requisition); - - if (gtk_box_get_homogeneous (box)) - { - width = child_requisition.width + padding * 2; - requisition->width = MAX (requisition->width, width); - } - else - { - requisition->width += child_requisition.width + padding * 2; - } - - requisition->height = MAX (requisition->height, child_requisition.height); - - nvis_children += 1; - } - } - - if (nvis_children > 0) - { - if (gtk_box_get_homogeneous (box)) - requisition->width *= nvis_children; - requisition->width += (nvis_children - 1) * gtk_box_get_spacing (box); - } - - border_width = gtk_container_get_border_width (GTK_CONTAINER (box)); - requisition->width += border_width * 2; - requisition->height += border_width * 2; -} - -static void gdl_dock_bar_size_hallocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkBox *box; - GList *child; - GtkAllocation child_allocation; - gint nvis_children; - gint nexpand_children; - gint child_width; - gint width; - gint extra; - gint x; - guint border_width; - GtkTextDirection direction; - GtkRequisition requisition; - - box = GTK_BOX (widget); - gtk_widget_set_allocation (widget, allocation); - gtk_widget_get_requisition (widget, &requisition); - - direction = gtk_widget_get_direction (widget); - - nvis_children = 0; - nexpand_children = 0; - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - - if (gtk_widget_get_visible (GTK_WIDGET (child->data))) - { - nvis_children += 1; - if (expand) - nexpand_children += 1; - } - } - - border_width = gtk_container_get_border_width (GTK_CONTAINER (box)); - - if (nvis_children > 0) - { - if (gtk_box_get_homogeneous (box)) - { - width = (allocation->width - - border_width * 2 - - (nvis_children - 1) * gtk_box_get_spacing (box)); - extra = width / nvis_children; - } - else if (nexpand_children > 0) - { - width = (gint) allocation->width - (gint) requisition.width; - extra = width / nexpand_children; - } - else - { - width = 0; - extra = 0; - } - - x = allocation->x + border_width; - child_allocation.y = allocation->y + border_width; - child_allocation.height = MAX (1, (gint) allocation->height - (gint) border_width * 2); - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - - if ((pack_type == GTK_PACK_START) && gtk_widget_get_visible (GTK_WIDGET (child->data))) - { - if (gtk_box_get_homogeneous (box)) - { - if (nvis_children == 1) - child_width = width; - else - child_width = extra; - - nvis_children -= 1; - width -= extra; - } - else - { - GtkRequisition child_requisition; - - gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition); - - child_width = child_requisition.width + padding * 2; - - if (expand) - { - if (nexpand_children == 1) - child_width += width; - else - child_width += extra; - - nexpand_children -= 1; - width -= extra; - } - } - - if (fill) - { - child_allocation.width = MAX (1, child_width - padding * 2); - child_allocation.x = x + padding; - } - else - { - GtkRequisition child_requisition; - - gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition); - child_allocation.width = child_requisition.width; - child_allocation.x = x + (child_width - child_allocation.width) / 2; - } - - if (direction == GTK_TEXT_DIR_RTL) - child_allocation.x = allocation->x + allocation->width - (child_allocation.x - allocation->x) - child_allocation.width; - - gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation); - - x += child_width + gtk_box_get_spacing (box); - } - } - - x = allocation->x + allocation->width - border_width; - - for (child = gtk_container_get_children (GTK_CONTAINER (box)); - child != NULL; child = g_list_next (child)) - { - guint padding; - gboolean expand; - gboolean fill; - GtkPackType pack_type; - - gtk_box_query_child_packing (box, - child->data, - &expand, - &fill, - &padding, - &pack_type); - - if ((pack_type == GTK_PACK_END) && gtk_widget_get_visible (GTK_WIDGET (child->data))) - { - GtkRequisition child_requisition; - gtk_widget_get_child_requisition (GTK_WIDGET (child->data), &child_requisition); - - if (gtk_box_get_homogeneous (box)) - { - if (nvis_children == 1) - child_width = width; - else - child_width = extra; - - nvis_children -= 1; - width -= extra; - } - else - { - child_width = child_requisition.width + padding * 2; - - if (expand) - { - if (nexpand_children == 1) - child_width += width; - else - child_width += extra; - - nexpand_children -= 1; - width -= extra; - } - } - - if (fill) - { - child_allocation.width = MAX (1, child_width - padding * 2); - child_allocation.x = x + padding - child_width; - } - else - { - child_allocation.width = child_requisition.width; - child_allocation.x = x + (child_width - child_allocation.width) / 2 - child_width; - } - - if (direction == GTK_TEXT_DIR_RTL) - child_allocation.x = allocation->x + allocation->width - (child_allocation.x - allocation->x) - child_allocation.width; - - gtk_widget_size_allocate (GTK_WIDGET (child->data), &child_allocation); - - x -= (child_width + gtk_box_get_spacing (box)); - } - } - } -} - -GtkWidget * -gdl_dock_bar_new (GdlDock *dock) -{ - GdlDockMaster *master = NULL; - - /* get the master of the given dock */ - if (dock) - master = GDL_DOCK_OBJECT_GET_MASTER (dock); - - return g_object_new (GDL_TYPE_DOCK_BAR, - "master", master, NULL); -} - -GtkOrientation gdl_dock_bar_get_orientation (GdlDockBar *dockbar) -{ - g_return_val_if_fail (GDL_IS_DOCK_BAR (dockbar), - GTK_ORIENTATION_VERTICAL); - - return dockbar->_priv->orientation; -} - -void gdl_dock_bar_set_orientation (GdlDockBar *dockbar, - GtkOrientation orientation) -{ - g_return_if_fail (GDL_IS_DOCK_BAR (dockbar)); - - dockbar->_priv->orientation = orientation; - - gtk_widget_queue_resize (GTK_WIDGET (dockbar)); -} - -void gdl_dock_bar_set_style(GdlDockBar* dockbar, - GdlDockBarStyle style) -{ - g_object_set(G_OBJECT(dockbar), "dockbar-style", style, NULL); -} - -GdlDockBarStyle gdl_dock_bar_get_style(GdlDockBar* dockbar) -{ - GdlDockBarStyle style; - g_object_get(G_OBJECT(dockbar), "dockbar-style", &style, NULL); - return style; -} diff --git a/src/libgdl/gdl-dock-bar.h b/src/libgdl/gdl-dock-bar.h deleted file mode 100644 index ca6da1d26..000000000 --- a/src/libgdl/gdl-dock-bar.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2003 Jeroen Zwartepoorte - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_BAR_H__ -#define __GDL_DOCK_BAR_H__ - -#include - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_BAR (gdl_dock_bar_get_type ()) -#define GDL_DOCK_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_BAR, GdlDockBar)) -#define GDL_DOCK_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_BAR, GdlDockBarClass)) -#define GDL_IS_DOCK_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_BAR)) -#define GDL_IS_DOCK_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_BAR)) -#define GDL_DOCK_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_BAR, GdlDockBarClass)) - -/* data types & structures */ -typedef struct _GdlDockBar GdlDockBar; -typedef struct _GdlDockBarClass GdlDockBarClass; -typedef struct _GdlDockBarPrivate GdlDockBarPrivate; - -typedef enum { - GDL_DOCK_BAR_ICONS, - GDL_DOCK_BAR_TEXT, - GDL_DOCK_BAR_BOTH, - GDL_DOCK_BAR_AUTO -} GdlDockBarStyle; - -struct _GdlDockBar { - GtkBox parent; - - GdlDock *dock; - - GdlDockBarPrivate *_priv; -}; - -struct _GdlDockBarClass { - GtkVBoxClass parent_class; -}; - -GType gdl_dock_bar_get_type (void); - -GtkWidget *gdl_dock_bar_new (GdlDock *dock); - -GtkOrientation gdl_dock_bar_get_orientation (GdlDockBar *dockbar); -void gdl_dock_bar_set_orientation (GdlDockBar *dockbar, - GtkOrientation orientation); -void gdl_dock_bar_set_style (GdlDockBar *dockbar, - GdlDockBarStyle style); -GdlDockBarStyle gdl_dock_bar_get_style (GdlDockBar *dockbar); - -G_END_DECLS - -#endif /* __GDL_DOCK_BAR_H__ */ diff --git a/src/libgdl/gdl-dock-item-button-image.c b/src/libgdl/gdl-dock-item-button-image.c deleted file mode 100644 index 77cfe5d6c..000000000 --- a/src/libgdl/gdl-dock-item-button-image.c +++ /dev/null @@ -1,166 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-item-button-image.c - * - * Author: Joel Holdsworth - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "gdl-dock-item-button-image.h" - -#include - -#define ICON_SIZE 12 - -G_DEFINE_TYPE (GdlDockItemButtonImage, - gdl_dock_item_button_image, - GTK_TYPE_WIDGET); - -static gint -gdl_dock_item_button_image_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GdlDockItemButtonImage *button_image; - GtkStyle *style; - GdkColor *color; - - g_return_val_if_fail (widget != NULL, 0); - button_image = GDL_DOCK_ITEM_BUTTON_IMAGE (widget); - - cairo_t *cr = gdk_cairo_create (event->window); - cairo_translate (cr, event->area.x, event->area.y); - - /* Set up the pen */ - cairo_set_line_width(cr, 1.0); - - style = gtk_widget_get_style (widget); - g_return_val_if_fail (style != NULL, 0); - color = &style->fg[GTK_STATE_NORMAL]; - cairo_set_source_rgba(cr, color->red / 65535.0, - color->green / 65535.0, color->blue / 65535.0, 0.55); - - /* Draw the icon border */ - cairo_move_to (cr, 10.5, 2.5); - cairo_arc (cr, 10.5, 4.5, 2, -0.5 * M_PI, 0); - cairo_line_to (cr, 12.5, 10.5); - cairo_arc (cr, 10.5, 10.5, 2, 0, 0.5 * M_PI); - cairo_line_to (cr, 4.5, 12.5); - cairo_arc (cr, 4.5, 10.5, 2, 0.5 * M_PI, M_PI); - cairo_line_to (cr, 2.5, 4.5); - cairo_arc (cr, 4.5, 4.5, 2, M_PI, 1.5 * M_PI); - cairo_close_path (cr); - - cairo_stroke (cr); - - /* Draw the icon */ - cairo_new_path (cr); - - switch(button_image->image_type) { - case GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE: - cairo_move_to (cr, 4.0, 5.5); - cairo_line_to (cr, 4.0, 5.5); - cairo_line_to (cr, 6.0, 7.5); - cairo_line_to (cr, 4.0, 9.5); - cairo_line_to (cr, 5.5, 11.0); - cairo_line_to (cr, 7.5, 9.0); - cairo_line_to (cr, 9.5, 11.0); - cairo_line_to (cr, 11.0, 9.5); - cairo_line_to (cr, 9.0, 7.5); - cairo_line_to (cr, 11.0, 5.5); - cairo_line_to (cr, 9.5, 4.0); - cairo_line_to (cr, 7.5, 6.0); - cairo_line_to (cr, 5.5, 4.0); - cairo_close_path (cr); - break; - - case GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY: - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) { - cairo_move_to (cr, 4.5, 7.5); - cairo_line_to (cr, 10.0, 4.75); - cairo_line_to (cr, 10.0, 10.25); - cairo_close_path (cr); - } else { - cairo_move_to (cr, 10.5, 7.5); - cairo_line_to (cr, 5, 4.75); - cairo_line_to (cr, 5, 10.25); - cairo_close_path (cr); - } - break; - - default: - break; - } - - cairo_fill (cr); - - /* Finish up */ - cairo_destroy (cr); - - return 0; -} - -static void -gdl_dock_item_button_image_init ( - GdlDockItemButtonImage *button_image) -{ - gtk_widget_set_has_window (GTK_WIDGET (button_image), FALSE); -} - -static void -gdl_dock_item_button_image_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - g_return_if_fail (GDL_IS_DOCK_ITEM_BUTTON_IMAGE (widget)); - g_return_if_fail (requisition != NULL); - - requisition->width = ICON_SIZE; - requisition->height = ICON_SIZE; -} - -static void -gdl_dock_item_button_image_class_init ( - GdlDockItemButtonImageClass *klass) -{ - //GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - //GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); - - widget_class->expose_event = - gdl_dock_item_button_image_expose; - widget_class->size_request = - gdl_dock_item_button_image_size_request; -} - -/* ----- Public interface ----- */ - -/** - * gdl_dock_item_button_image_new: - * @image_type: Specifies what type of image the widget should - * display - * - * Creates a new GDL dock button image object. - * Returns: The newly created dock item button image widget. - **/ -GtkWidget* -gdl_dock_item_button_image_new (GdlDockItemButtonImageType image_type) -{ - GdlDockItemButtonImage *button_image = g_object_new ( - GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, NULL); - button_image->image_type = image_type; - - return GTK_WIDGET (button_image); -} diff --git a/src/libgdl/gdl-dock-item-button-image.h b/src/libgdl/gdl-dock-item-button-image.h deleted file mode 100644 index ce0c6faaf..000000000 --- a/src/libgdl/gdl-dock-item-button-image.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-item-button-image.h - * - * Author: Joel Holdsworth - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef _GDL_DOCK_ITEM_BUTTON_IMAGE_H_ -#define _GDL_DOCK_ITEM_BUTTON_IMAGE_H_ - -#include - -G_BEGIN_DECLS - -/* Standard Macros */ -#define GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE \ - (gdl_dock_item_button_image_get_type()) -#define GDL_DOCK_ITEM_BUTTON_IMAGE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImage)) -#define GDL_DOCK_ITEM_BUTTON_IMAGE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImageClass)) -#define GDL_IS_DOCK_ITEM_BUTTON_IMAGE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE)) -#define GDL_IS_DOCK_ITEM_BUTTON_IMAGE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE)) -#define GDL_DOCK_ITEM_BUTTON_IMAGE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImageClass)) - -/* Data Types & Structures */ -typedef enum { - GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE, - GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY -} GdlDockItemButtonImageType; - -typedef struct _GdlDockItemButtonImage GdlDockItemButtonImage; -typedef struct _GdlDockItemButtonImageClass GdlDockItemButtonImageClass; - -struct _GdlDockItemButtonImage { - GtkWidget parent; - - GdlDockItemButtonImageType image_type; -}; - -struct _GdlDockItemButtonImageClass { - GtkWidgetClass parent_class; -}; - -/* Data Public Functions */ -GType gdl_dock_item_button_image_get_type (void); -GtkWidget *gdl_dock_item_button_image_new ( - GdlDockItemButtonImageType image_type); - -G_END_DECLS - -#endif /* _GDL_DOCK_ITEM_BUTTON_IMAGE_H_ */ diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c deleted file mode 100644 index 9b3810c20..000000000 --- a/src/libgdl/gdl-dock-item-grip.c +++ /dev/null @@ -1,809 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */ -/* - * gdl-dock-item-grip.c - * - * Author: Michael Meeks Copyright (C) 2002 Sun Microsystems, Inc. - * - * Based on BonoboDockItemGrip. Original copyright notice follows. - * - * Copyright (C) 1998 Ettore Perazzoli - * Copyright (C) 1998 Elliot Lee - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include -#include -#include -#include "gdl-dock-item.h" -#include "gdl-dock-item-grip.h" -#include "gdl-dock-item-button-image.h" -#include "gdl-switcher.h" - -#define ALIGN_BORDER 5 -#define DRAG_HANDLE_SIZE 10 - -enum { - PROP_0, - PROP_ITEM -}; - -struct _GdlDockItemGripPrivate { - GtkWidget *label; - - GtkWidget *close_button; - GtkWidget *iconify_button; - - gboolean handle_shown; -}; - -G_DEFINE_TYPE (GdlDockItemGrip, gdl_dock_item_grip, GTK_TYPE_CONTAINER); - -GtkWidget* -gdl_dock_item_create_label_widget(GdlDockItemGrip *grip) -{ - GtkHBox *label_box; - GtkImage *image; - GtkLabel *label; - gchar *stock_id = NULL; - gchar *title = NULL; - GdkPixbuf *pixbuf; - - label_box = (GtkHBox*)gtk_hbox_new (FALSE, 0); - - g_object_get (G_OBJECT (grip->item), "stock-id", &stock_id, NULL); - g_object_get (G_OBJECT (grip->item), "pixbuf-icon", &pixbuf, NULL); - if(stock_id) { - image = GTK_IMAGE(gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU)); - - gtk_widget_show (GTK_WIDGET(image)); - gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(image), FALSE, TRUE, 0); - - g_free (stock_id); - } - else if (pixbuf) { - image = GTK_IMAGE(gtk_image_new_from_pixbuf (pixbuf)); - - gtk_widget_show (GTK_WIDGET(image)); - gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(image), FALSE, TRUE, 0); - } - - g_object_get (G_OBJECT (grip->item), "long-name", &title, NULL); - if (title) { - label = GTK_LABEL(gtk_label_new(title)); - gtk_label_set_ellipsize(label, PANGO_ELLIPSIZE_END); - gtk_label_set_justify(label, GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - gtk_widget_show (GTK_WIDGET(label)); - - if (gtk_widget_get_direction (GTK_WIDGET(grip)) == GTK_TEXT_DIR_RTL) { - gtk_box_pack_end(GTK_BOX(label_box), GTK_WIDGET(label), TRUE, TRUE, 1); - } else { - gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(label), TRUE, TRUE, 1); - } - - g_free(title); - } - - return GTK_WIDGET(label_box); -} - -static gint -gdl_dock_item_grip_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GdlDockItemGrip *grip; - GtkAllocation allocation; - GdkRectangle handle_area; - GdkRectangle expose_area; - - grip = GDL_DOCK_ITEM_GRIP (widget); - - if(grip->_priv->handle_shown) { - - gtk_widget_get_allocation (widget, &allocation); - - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) { - handle_area.x = allocation.x; - handle_area.y = allocation.y; - handle_area.width = DRAG_HANDLE_SIZE; - handle_area.height = allocation.height; - } else { - handle_area.x = allocation.x + allocation.width - DRAG_HANDLE_SIZE; - handle_area.y = allocation.y; - handle_area.width = DRAG_HANDLE_SIZE; - handle_area.height = allocation.height; - } - - if (gdk_rectangle_intersect (&handle_area, &event->area, &expose_area)) { - - gtk_paint_handle (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), - gtk_widget_get_state (widget), - GTK_SHADOW_NONE, &expose_area, widget, - "handlebox", handle_area.x, handle_area.y, - handle_area.width, handle_area.height, - GTK_ORIENTATION_VERTICAL); - - } - - } - -/* see bug #950556: may contribute to regression with GTK2/Quartz */ -#if !defined(GDK_WINDOWING_QUARTZ) - if (gdl_dock_item_or_child_has_focus(grip->item)) { - - gtk_paint_focus (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), - gtk_widget_get_state (widget), - &event->area, widget, - NULL, 0, 0, -1, -1); - } -#endif //GDK_WINDOWING_QUARTZ - - return GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->expose_event (widget, event); -} - -static void -gdl_dock_item_grip_item_notify (GObject *master, - GParamSpec *pspec, - gpointer data) -{ - GdlDockItemGrip *grip; - gboolean cursor; - - grip = GDL_DOCK_ITEM_GRIP (data); - - if ((strcmp (pspec->name, "stock-id") == 0) || - (strcmp (pspec->name, "long-name") == 0)) { - - gdl_dock_item_grip_set_label (grip, - gdl_dock_item_create_label_widget(grip)); - - } else if (strcmp (pspec->name, "behavior") == 0) { - cursor = FALSE; - if (grip->_priv->close_button) { - if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item)) { - gtk_widget_hide (GTK_WIDGET (grip->_priv->close_button)); - } else { - gtk_widget_show (GTK_WIDGET (grip->_priv->close_button)); - cursor = TRUE; - } - } - if (grip->_priv->iconify_button) { - if (GDL_DOCK_ITEM_CANT_ICONIFY (grip->item)) { - gtk_widget_hide (GTK_WIDGET (grip->_priv->iconify_button)); - } else { - gtk_widget_show (GTK_WIDGET (grip->_priv->iconify_button)); - cursor = TRUE; - } - } - if (grip->title_window && !cursor) - gdk_window_set_cursor (grip->title_window, NULL); - - } -} - -static void -gdl_dock_item_grip_destroy (GtkObject *object) -{ - GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (object); - - if (grip->_priv) { - GdlDockItemGripPrivate *priv = grip->_priv; - - if (priv->label) { - gtk_widget_unparent(grip->_priv->label); - priv->label = NULL; - } - - if (grip->item) - g_signal_handlers_disconnect_by_func (grip->item, - gdl_dock_item_grip_item_notify, - grip); - grip->item = NULL; - - grip->_priv = NULL; - g_free (priv); - } - - GTK_OBJECT_CLASS (gdl_dock_item_grip_parent_class)->destroy (object); -} - -static void -gdl_dock_item_grip_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockItemGrip *grip; - - g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (object)); - - grip = GDL_DOCK_ITEM_GRIP (object); - - switch (prop_id) { - case PROP_ITEM: - grip->item = g_value_get_object (value); - if (grip->item) { - g_signal_connect (grip->item, "notify::long-name", - G_CALLBACK (gdl_dock_item_grip_item_notify), - grip); - g_signal_connect (grip->item, "notify::stock-id", - G_CALLBACK (gdl_dock_item_grip_item_notify), - grip); - g_signal_connect (grip->item, "notify::behavior", - G_CALLBACK (gdl_dock_item_grip_item_notify), - grip); - - if (!GDL_DOCK_ITEM_CANT_CLOSE (grip->item) && grip->_priv->close_button) - gtk_widget_show (grip->_priv->close_button); - if (!GDL_DOCK_ITEM_CANT_ICONIFY (grip->item) && grip->_priv->iconify_button) - gtk_widget_show (grip->_priv->iconify_button); - } - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_item_grip_close_clicked (GtkWidget *widget, - GdlDockItemGrip *grip) -{ - (void)widget; - g_return_if_fail (grip->item != NULL); - - gdl_dock_item_hide_item (grip->item); -} - -static void -gdl_dock_item_grip_fix_iconify_button (GdlDockItemGrip *grip) -{ - GtkWidget *iconify_button = grip->_priv->iconify_button; - GdkWindow *window = NULL; - GdkEvent *event = NULL; - - GdkModifierType modifiers; - gint x = 0, y = 0; - gboolean ev_ret; - - g_return_if_fail (gtk_widget_get_realized (iconify_button)); - - window = gtk_widget_get_parent_window (iconify_button); - event = gdk_event_new (GDK_LEAVE_NOTIFY); - - g_assert (GDK_IS_WINDOW (window)); - gdk_window_get_pointer (window, &x, &y, &modifiers); - - event->crossing.window = g_object_ref (window); - event->crossing.send_event = FALSE; - event->crossing.subwindow = g_object_ref (window); - event->crossing.time = GDK_CURRENT_TIME; - event->crossing.x = x; - event->crossing.y = y; - event->crossing.x_root = event->crossing.y_root = 0; - event->crossing.mode = GDK_CROSSING_STATE_CHANGED; - event->crossing.detail = GDK_NOTIFY_NONLINEAR; - event->crossing.focus = FALSE; - event->crossing.state = modifiers; - - //GTK_BUTTON (iconify_button)->in_button = FALSE; - g_signal_emit_by_name (iconify_button, "leave-notify-event", - event, &ev_ret, 0); - - gdk_event_free (event); -} - -static void -gdl_dock_item_grip_iconify_clicked (GtkWidget *widget, - GdlDockItemGrip *grip) -{ - GtkWidget *parent; - - g_return_if_fail (grip->item != NULL); - - /* Workaround to unhighlight the iconify button. */ - gdl_dock_item_grip_fix_iconify_button (grip); - - parent = gtk_widget_get_parent (GTK_WIDGET (grip->item)); - if (GDL_IS_SWITCHER (parent)) - { - /* Note: We can not use gtk_container_foreach (parent) here because - * during iconificatoin, the internal children changes in parent. - * Instead we keep a list of items to iconify and iconify them - * one by one. - */ - GList *node; - GList *items = - gtk_container_get_children (GTK_CONTAINER (parent)); - for (node = items; node != NULL; node = node->next) - { - GdlDockItem *item = GDL_DOCK_ITEM (node->data); - if (!GDL_DOCK_ITEM_CANT_ICONIFY (item)) - gdl_dock_item_iconify_item (item); - } - g_list_free (items); - } - else - { - gdl_dock_item_iconify_item (grip->item); - } -} - -static void -gdl_dock_item_grip_init (GdlDockItemGrip *grip) -{ - GtkWidget *image; - - gtk_widget_set_has_window (GTK_WIDGET (grip), FALSE); - - grip->_priv = g_new0 (GdlDockItemGripPrivate, 1); - grip->_priv->label = NULL; - grip->_priv->handle_shown = FALSE; - - /* create the close button */ - gtk_widget_push_composite_child (); - grip->_priv->close_button = gtk_button_new (); - gtk_widget_pop_composite_child (); - - gtk_widget_set_can_focus (grip->_priv->close_button, FALSE); - gtk_widget_set_parent (grip->_priv->close_button, GTK_WIDGET (grip)); - gtk_button_set_relief (GTK_BUTTON (grip->_priv->close_button), GTK_RELIEF_NONE); - gtk_widget_show (grip->_priv->close_button); - - image = gdl_dock_item_button_image_new(GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE); - gtk_container_add (GTK_CONTAINER (grip->_priv->close_button), image); - gtk_widget_show (image); - - g_signal_connect (G_OBJECT (grip->_priv->close_button), "clicked", - G_CALLBACK (gdl_dock_item_grip_close_clicked), grip); - - /* create the iconify button */ - gtk_widget_push_composite_child (); - grip->_priv->iconify_button = gtk_button_new (); - gtk_widget_pop_composite_child (); - - gtk_widget_set_can_focus (grip->_priv->iconify_button, FALSE); - gtk_widget_set_parent (grip->_priv->iconify_button, GTK_WIDGET (grip)); - gtk_button_set_relief (GTK_BUTTON (grip->_priv->iconify_button), GTK_RELIEF_NONE); - gtk_widget_show (grip->_priv->iconify_button); - - image = gdl_dock_item_button_image_new(GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY); - gtk_container_add (GTK_CONTAINER (grip->_priv->iconify_button), image); - gtk_widget_show (image); - - g_signal_connect (G_OBJECT (grip->_priv->iconify_button), "clicked", - G_CALLBACK (gdl_dock_item_grip_iconify_clicked), grip); - - /* set tooltips on the buttons */ - gtk_widget_set_tooltip_text (grip->_priv->iconify_button, - _("Iconify this dock")); - gtk_widget_set_tooltip_text (grip->_priv->close_button, - _("Close this dock")); -} - -static void -gdl_dock_item_grip_realize (GtkWidget *widget) -{ - GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget); - - GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->realize (widget); - - g_return_if_fail (grip->_priv != NULL); - - if (!grip->title_window) { - GtkAllocation allocation; - GdkWindowAttr attributes; - GdkCursor *cursor; - - g_return_if_fail (grip->_priv->label != NULL); - - gtk_widget_get_allocation (grip->_priv->label, &allocation); - - attributes.x = allocation.x; - attributes.y = allocation.y; - attributes.width = allocation.width; - attributes.height = allocation.height; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.event_mask = GDK_ALL_EVENTS_MASK; - - grip->title_window = gdk_window_new (gtk_widget_get_parent_window (widget), - &attributes, (GDK_WA_X | GDK_WA_Y)); - - gdk_window_set_user_data (grip->title_window, grip); - - /* Unref the ref from parent realize for NO_WINDOW */ - g_object_unref (gtk_widget_get_window (widget)); - - /* Need to ref widget->window, because parent unrealize unrefs it */ - gtk_widget_set_window (widget, g_object_ref (grip->title_window)); - gtk_widget_set_has_window (widget, TRUE); - - /* Unset the background so as to make the colour match the parent window */ - gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, NULL); - - if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item) && - GDL_DOCK_ITEM_CANT_ICONIFY (grip->item)) - cursor = NULL; - else - cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), - GDK_HAND2); - gdk_window_set_cursor (grip->title_window, cursor); - if (cursor) - gdk_cursor_unref (cursor); - } -} - -static void -gdl_dock_item_grip_unrealize (GtkWidget *widget) -{ - GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget); - - if (grip->title_window) { - gtk_widget_set_has_window (widget, FALSE); - gdk_window_set_user_data (grip->title_window, NULL); - gdk_window_destroy (grip->title_window); - grip->title_window = NULL; - } - - GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->unrealize (widget); -} - -static void -gdl_dock_item_grip_map (GtkWidget *widget) -{ - GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget); - - GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->map (widget); - - if (grip->title_window) - gdk_window_show (grip->title_window); -} - -static void -gdl_dock_item_grip_unmap (GtkWidget *widget) -{ - GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget); - - if (grip->title_window) - gdk_window_hide (grip->title_window); - - GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->unmap (widget); -} - -static void -gdl_dock_item_grip_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkRequisition child_requisition; - GdlDockItemGrip *grip; - gint layout_height = 0; - guint border_width; - - g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (widget)); - g_return_if_fail (requisition != NULL); - - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - grip = GDL_DOCK_ITEM_GRIP (widget); - - requisition->width = border_width * 2/* + ALIGN_BORDER*/; - requisition->height = border_width * 2; - - if(grip->_priv->handle_shown) - requisition->width += DRAG_HANDLE_SIZE; - - gtk_widget_size_request (grip->_priv->close_button, &child_requisition); - layout_height = MAX (layout_height, child_requisition.height); - if (gtk_widget_get_visible (grip->_priv->close_button)) { - requisition->width += child_requisition.width; - } - - gtk_widget_size_request (grip->_priv->iconify_button, &child_requisition); - layout_height = MAX (layout_height, child_requisition.height); - if (gtk_widget_get_visible (grip->_priv->iconify_button)) { - requisition->width += child_requisition.width; - } - - gtk_widget_size_request (grip->_priv->label, &child_requisition); - requisition->width += child_requisition.width; - layout_height = MAX (layout_height, child_requisition.height); - - requisition->height += layout_height; -} - -static void -gdl_dock_item_grip_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GdlDockItemGrip *grip; - GtkRequisition close_requisition = { 0, 0 }; - GtkRequisition iconify_requisition = { 0, 0 }; - GtkAllocation child_allocation; - guint border_width; - - g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (widget)); - g_return_if_fail (allocation != NULL); - - grip = GDL_DOCK_ITEM_GRIP (widget); - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - - GTK_WIDGET_CLASS (gdl_dock_item_grip_parent_class)->size_allocate (widget, allocation); - - gtk_widget_size_request (grip->_priv->close_button, - &close_requisition); - gtk_widget_size_request (grip->_priv->iconify_button, - &iconify_requisition); - - /* Calculate the Minimum Width where buttons will fit */ - int min_width = close_requisition.width + iconify_requisition.width - + border_width * 2; - if(grip->_priv->handle_shown) - min_width += DRAG_HANDLE_SIZE; - const gboolean space_for_buttons = (allocation->width >= min_width); - - /* Set up the rolling child_allocation rectangle */ - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x = border_width/* + ALIGN_BORDER*/; - else - child_allocation.x = allocation->width - border_width; - child_allocation.y = border_width; - - /* Layout Close Button */ - if (gtk_widget_get_visible (grip->_priv->close_button)) { - - if(space_for_buttons) { - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) - child_allocation.x -= close_requisition.width; - - child_allocation.width = close_requisition.width; - child_allocation.height = close_requisition.height; - } else { - child_allocation.width = 0; - } - - gtk_widget_size_allocate (grip->_priv->close_button, &child_allocation); - - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x += close_requisition.width; - } - - /* Layout Iconify Button */ - if (gtk_widget_get_visible (grip->_priv->iconify_button)) { - - if(space_for_buttons) { - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) - child_allocation.x -= iconify_requisition.width; - - child_allocation.width = iconify_requisition.width; - child_allocation.height = iconify_requisition.height; - } else { - child_allocation.width = 0; - } - - gtk_widget_size_allocate (grip->_priv->iconify_button, &child_allocation); - - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x += iconify_requisition.width; - } - - /* Layout the Grip Handle*/ - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) { - child_allocation.width = child_allocation.x; - child_allocation.x = border_width/* + ALIGN_BORDER*/; - - if(grip->_priv->handle_shown) { - child_allocation.x += DRAG_HANDLE_SIZE; - child_allocation.width -= DRAG_HANDLE_SIZE; - } - - } else { - child_allocation.width = allocation->width - - (child_allocation.x - allocation->x)/* - ALIGN_BORDER*/; - - if(grip->_priv->handle_shown) - child_allocation.width -= DRAG_HANDLE_SIZE; - } - - if(child_allocation.width < 0) - child_allocation.width = 0; - - child_allocation.y = border_width; - child_allocation.height = allocation->height - border_width * 2; - if(grip->_priv->label) { - gtk_widget_size_allocate (grip->_priv->label, &child_allocation); - } - - if (grip->title_window) { - gdk_window_move_resize (grip->title_window, - allocation->x, - allocation->y, - allocation->width, - allocation->height); - } -} - -static void -gdl_dock_item_grip_add (GtkContainer *container, - GtkWidget *widget) -{ - g_warning ("gtk_container_add not implemented for GdlDockItemGrip"); -} - -static void -gdl_dock_item_grip_remove (GtkContainer *container, - GtkWidget *widget) -{ - gdl_dock_item_grip_set_label (GDL_DOCK_ITEM_GRIP (container), NULL); -} - -static void -gdl_dock_item_grip_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GdlDockItemGrip *grip; - - g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (container)); - grip = GDL_DOCK_ITEM_GRIP (container); - - if (grip->_priv) { - if(grip->_priv->label) { - (* callback) (grip->_priv->label, callback_data); - } - - if (include_internals) { - (* callback) (grip->_priv->close_button, callback_data); - (* callback) (grip->_priv->iconify_button, callback_data); - } - } -} - -static GType -gdl_dock_item_grip_child_type (GtkContainer *container) -{ - return G_TYPE_NONE; -} - -static void -gdl_dock_item_grip_class_init (GdlDockItemGripClass *klass) -{ - GObjectClass *gobject_class; - GtkObjectClass *gtk_object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - gobject_class = G_OBJECT_CLASS (klass); - gtk_object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - - gobject_class->set_property = gdl_dock_item_grip_set_property; - - gtk_object_class->destroy = gdl_dock_item_grip_destroy; - - widget_class->expose_event = gdl_dock_item_grip_expose; - widget_class->realize = gdl_dock_item_grip_realize; - widget_class->unrealize = gdl_dock_item_grip_unrealize; - widget_class->map = gdl_dock_item_grip_map; - widget_class->unmap = gdl_dock_item_grip_unmap; - widget_class->size_request = gdl_dock_item_grip_size_request; - widget_class->size_allocate = gdl_dock_item_grip_size_allocate; - - container_class->add = gdl_dock_item_grip_add; - container_class->remove = gdl_dock_item_grip_remove; - container_class->forall = gdl_dock_item_grip_forall; - container_class->child_type = gdl_dock_item_grip_child_type; - - g_object_class_install_property ( - gobject_class, PROP_ITEM, - g_param_spec_object ("item", _("Controlling dock item"), - _("Dockitem which 'owns' this grip"), - GDL_TYPE_DOCK_ITEM, - G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); -} - -static void -gdl_dock_item_grip_showhide_handle (GdlDockItemGrip *grip) -{ - gtk_widget_queue_resize (GTK_WIDGET (grip)); -} - -/* ----- Public interface ----- */ - -/** - * gdl_dock_item_grip_new: - * @item: The dock item that will "own" this grip widget. - * - * Creates a new GDL dock item grip object. - * Returns: The newly created dock item grip widget. - **/ -GtkWidget * -gdl_dock_item_grip_new (GdlDockItem *item) -{ - GdlDockItemGrip *grip = g_object_new (GDL_TYPE_DOCK_ITEM_GRIP, "item", item, - NULL); - - return GTK_WIDGET (grip); -} - -/** - * gdl_dock_item_grip_set_label: - * @grip: The grip that will get it's label widget set. - * @label: The widget that will become the label. - * - * Replaces the current label widget with another widget. - **/ -void -gdl_dock_item_grip_set_label (GdlDockItemGrip *grip, - GtkWidget *label) -{ - g_return_if_fail (grip != NULL); - - if (grip->_priv->label) { - gtk_widget_unparent(grip->_priv->label); - g_object_unref (grip->_priv->label); - grip->_priv->label = NULL; - } - - if (label) { - g_object_ref (label); - gtk_widget_set_parent (label, GTK_WIDGET (grip)); - gtk_widget_show (label); - grip->_priv->label = label; - } -} -/** - * gdl_dock_item_grip_hide_handle: - * @grip: The dock item grip to hide the handle of. - * - * This function hides the dock item's grip widget handle hatching. - **/ -void -gdl_dock_item_grip_hide_handle (GdlDockItemGrip *grip) -{ - g_return_if_fail (grip != NULL); - if (grip->_priv->handle_shown) { - grip->_priv->handle_shown = FALSE; - gdl_dock_item_grip_showhide_handle (grip); - }; -} - -/** - * gdl_dock_item_grip_show_handle: - * @grip: The dock item grip to show the handle of. - * - * This function shows the dock item's grip widget handle hatching. - **/ -void -gdl_dock_item_grip_show_handle (GdlDockItemGrip *grip) -{ - g_return_if_fail (grip != NULL); - if (!grip->_priv->handle_shown) { - grip->_priv->handle_shown = TRUE; - gdl_dock_item_grip_showhide_handle (grip); - }; -} diff --git a/src/libgdl/gdl-dock-item-grip.h b/src/libgdl/gdl-dock-item-grip.h deleted file mode 100644 index a44ef91fb..000000000 --- a/src/libgdl/gdl-dock-item-grip.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */ -/* - * gdl-dock-item-grip.h - * - * Author: Michael Meeks Copyright (C) 2002 Sun Microsystems, Inc. - * - * Based on BonoboDockItemGrip. Original copyright notice follows. - * - * Copyright (C) 1998 Ettore Perazzoli - * Copyright (C) 1998 Elliot Lee - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef _GDL_DOCK_ITEM_GRIP_H_ -#define _GDL_DOCK_ITEM_GRIP_H_ - -#include -#include "libgdl/gdl-dock-item.h" - -G_BEGIN_DECLS - -#define GDL_TYPE_DOCK_ITEM_GRIP (gdl_dock_item_grip_get_type()) -#define GDL_DOCK_ITEM_GRIP(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_ITEM_GRIP, GdlDockItemGrip)) -#define GDL_DOCK_ITEM_GRIP_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_ITEM_GRIP, GdlDockItemGripClass)) -#define GDL_IS_DOCK_ITEM_GRIP(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_ITEM_GRIP)) -#define GDL_IS_DOCK_ITEM_GRIP_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_ITEM_GRIP)) -#define GDL_DOCK_ITEM_GRIP_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DOCK_ITEM_GRIP, GdlDockItemGripClass)) - -typedef struct _GdlDockItemGrip GdlDockItemGrip; -typedef struct _GdlDockItemGripClass GdlDockItemGripClass; -typedef struct _GdlDockItemGripPrivate GdlDockItemGripPrivate; - -struct _GdlDockItemGrip { - GtkContainer parent; - - GdlDockItem *item; - - GdkWindow *title_window; - - GdlDockItemGripPrivate *_priv; -}; - -struct _GdlDockItemGripClass { - GtkContainerClass parent_class; -}; - -GType gdl_dock_item_grip_get_type (void); -GtkWidget *gdl_dock_item_grip_new (GdlDockItem *item); -void gdl_dock_item_grip_set_label (GdlDockItemGrip *grip, - GtkWidget *label); -void gdl_dock_item_grip_hide_handle (GdlDockItemGrip *grip); -void gdl_dock_item_grip_show_handle (GdlDockItemGrip *grip); - -G_END_DECLS - -#endif /* _GDL_DOCK_ITEM_GRIP_H_ */ diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c deleted file mode 100644 index af630e681..000000000 --- a/src/libgdl/gdl-dock-item.c +++ /dev/null @@ -1,2401 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-item.c - * - * Author: Gustavo Giráldez - * Naba Kumar - * - * Based on GnomeDockItem/BonoboDockItem. Original copyright notice follows. - * - * Copyright (C) 1998 Ettore Perazzoli - * Copyright (C) 1998 Elliot Lee - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include -#include - -#include "gdl-dock.h" -#include "gdl-dock-item.h" -#include "gdl-dock-item-grip.h" -#include "gdl-dock-notebook.h" -#include "gdl-dock-paned.h" -#include "gdl-dock-tablabel.h" -#include "gdl-dock-placeholder.h" -#include "gdl-dock-master.h" -#include "libgdltypebuiltins.h" -#include "libgdlmarshal.h" - -#define NEW_DOCK_ITEM_RATIO 0.3 - -/* ----- Private prototypes ----- */ - -static void gdl_dock_item_class_init (GdlDockItemClass *class); - -static GObject *gdl_dock_item_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_param); - -static void gdl_dock_item_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_item_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gdl_dock_item_destroy (GtkObject *object); - -static void gdl_dock_item_add (GtkContainer *container, - GtkWidget *widget); -static void gdl_dock_item_remove (GtkContainer *container, - GtkWidget *widget); -static void gdl_dock_item_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); -static GType gdl_dock_item_child_type (GtkContainer *container); - -static void gdl_dock_item_set_focus_child (GtkContainer *container, - GtkWidget *widget); - -static void gdl_dock_item_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gdl_dock_item_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gdl_dock_item_map (GtkWidget *widget); -static void gdl_dock_item_unmap (GtkWidget *widget); -static void gdl_dock_item_realize (GtkWidget *widget); -static void gdl_dock_item_style_set (GtkWidget *widget, - GtkStyle *previous_style); -static gint gdl_dock_item_expose (GtkWidget *widget, - GdkEventExpose *event); - -static void gdl_dock_item_move_focus_child (GdlDockItem *item, - GtkDirectionType dir); - -static gint gdl_dock_item_button_changed (GtkWidget *widget, - GdkEventButton *event); -static gint gdl_dock_item_motion (GtkWidget *widget, - GdkEventMotion *event); -static gboolean gdl_dock_item_key_press (GtkWidget *widget, - GdkEventKey *event); - -static gboolean gdl_dock_item_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request); -static void gdl_dock_item_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); - -static void gdl_dock_item_popup_menu (GdlDockItem *item, - guint button, - guint32 time); -static void gdl_dock_item_drag_start (GdlDockItem *item); -static void gdl_dock_item_drag_end (GdlDockItem *item, - gboolean cancel); - -static void gdl_dock_item_tab_button (GtkWidget *widget, - GdkEventButton *event, - gpointer data); - -static void gdl_dock_item_hide_cb (GtkWidget *widget, - GdlDockItem *item); - -static void gdl_dock_item_lock_cb (GtkWidget *widget, - GdlDockItem *item); - -static void gdl_dock_item_unlock_cb (GtkWidget *widget, - GdlDockItem *item); - -static void gdl_dock_item_showhide_grip (GdlDockItem *item); - -static void gdl_dock_item_real_set_orientation (GdlDockItem *item, - GtkOrientation orientation); - -static void gdl_dock_param_export_gtk_orientation (const GValue *src, - GValue *dst); -static void gdl_dock_param_import_gtk_orientation (const GValue *src, - GValue *dst); - - - -/* ----- Class variables and definitions ----- */ - -enum { - PROP_0, - PROP_ORIENTATION, - PROP_RESIZE, - PROP_BEHAVIOR, - PROP_LOCKED, - PROP_PREFERRED_WIDTH, - PROP_PREFERRED_HEIGHT -}; - -enum { - DOCK_DRAG_BEGIN, - DOCK_DRAG_MOTION, - DOCK_DRAG_END, - SELECTED, - MOVE_FOCUS_CHILD, - LAST_SIGNAL -}; - -static guint gdl_dock_item_signals [LAST_SIGNAL] = { 0 }; - -#define GDL_DOCK_ITEM_GRIP_SHOWN(item) \ - (GDL_DOCK_ITEM_HAS_GRIP (item)) - -struct _GdlDockItemPrivate { - GtkWidget *menu; - - gboolean grip_shown; - GtkWidget *grip; - guint grip_size; - - GtkWidget *tab_label; - gboolean intern_tab_label; - guint notify_label; - guint notify_stock_id; - - gint preferred_width; - gint preferred_height; - - GdlDockPlaceholder *ph; - - gint start_x, start_y; -}; - -/* FIXME: implement the rest of the behaviors */ - -#define SPLIT_RATIO 0.4 - - -/* ----- Private functions ----- */ - -G_DEFINE_TYPE (GdlDockItem, gdl_dock_item, GDL_TYPE_DOCK_OBJECT); - -static void -add_tab_bindings (GtkBindingSet *binding_set, - GdkModifierType modifiers, - GtkDirectionType direction) -{ - gtk_binding_entry_add_signal (binding_set, GDK_KEY_Tab, modifiers, - "move_focus_child", 1, - GTK_TYPE_DIRECTION_TYPE, direction); - gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Tab, modifiers, - "move_focus_child", 1, - GTK_TYPE_DIRECTION_TYPE, direction); -} - -static void -add_arrow_bindings (GtkBindingSet *binding_set, - guint keysym, - GtkDirectionType direction) -{ - guint keypad_keysym = keysym - GDK_KEY_Left + GDK_KEY_KP_Left; - - gtk_binding_entry_add_signal (binding_set, keysym, 0, - "move_focus_child", 1, - GTK_TYPE_DIRECTION_TYPE, direction); - gtk_binding_entry_add_signal (binding_set, keysym, GDK_CONTROL_MASK, - "move_focus_child", 1, - GTK_TYPE_DIRECTION_TYPE, direction); - gtk_binding_entry_add_signal (binding_set, keysym, GDK_CONTROL_MASK, - "move_focus_child", 1, - GTK_TYPE_DIRECTION_TYPE, direction); - gtk_binding_entry_add_signal (binding_set, keypad_keysym, GDK_CONTROL_MASK, - "move_focus_child", 1, - GTK_TYPE_DIRECTION_TYPE, direction); -} - -static void -gdl_dock_item_class_init (GdlDockItemClass *klass) -{ - static gboolean style_initialized = FALSE; - - GObjectClass *g_object_class; - GtkObjectClass *gtk_object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - GdlDockObjectClass *object_class; - GtkBindingSet *binding_set; - - g_object_class = G_OBJECT_CLASS (klass); - gtk_object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - object_class = GDL_DOCK_OBJECT_CLASS (klass); - - g_object_class->constructor = gdl_dock_item_constructor; - g_object_class->set_property = gdl_dock_item_set_property; - g_object_class->get_property = gdl_dock_item_get_property; - - gtk_object_class->destroy = gdl_dock_item_destroy; - - widget_class->realize = gdl_dock_item_realize; - widget_class->map = gdl_dock_item_map; - widget_class->unmap = gdl_dock_item_unmap; - widget_class->size_request = gdl_dock_item_size_request; - widget_class->size_allocate = gdl_dock_item_size_allocate; - widget_class->style_set = gdl_dock_item_style_set; - widget_class->expose_event = gdl_dock_item_expose; - widget_class->button_press_event = gdl_dock_item_button_changed; - widget_class->button_release_event = gdl_dock_item_button_changed; - widget_class->motion_notify_event = gdl_dock_item_motion; - widget_class->key_press_event = gdl_dock_item_key_press; - - container_class->add = gdl_dock_item_add; - container_class->remove = gdl_dock_item_remove; - container_class->forall = gdl_dock_item_forall; - container_class->child_type = gdl_dock_item_child_type; - container_class->set_focus_child = gdl_dock_item_set_focus_child; - - object_class->is_compound = FALSE; - - object_class->dock_request = gdl_dock_item_dock_request; - object_class->dock = gdl_dock_item_dock; - - /* properties */ - - /** - * GdlDockItem:orientation: - * - * The orientation of the docking item. If the orientation is set to - * #GTK_ORIENTATION_VERTICAL, the grip widget will be shown along - * the top of the edge of item (if it is not hidden). If the - * orientation is set to #GTK_ORIENTATION_HORIZONTAL, the grip - * widget will be shown down the left edge of the item (even if the - * widget text direction is set to RTL). - */ - g_object_class_install_property ( - g_object_class, PROP_ORIENTATION, - g_param_spec_enum ("orientation", _("Orientation"), - _("Orientation of the docking item"), - GTK_TYPE_ORIENTATION, - GTK_ORIENTATION_VERTICAL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - GDL_DOCK_PARAM_EXPORT)); - - /* --- register exporter/importer for GTK_ORIENTATION */ - g_value_register_transform_func (GTK_TYPE_ORIENTATION, GDL_TYPE_DOCK_PARAM, - gdl_dock_param_export_gtk_orientation); - g_value_register_transform_func (GDL_TYPE_DOCK_PARAM, GTK_TYPE_ORIENTATION, - gdl_dock_param_import_gtk_orientation); - /* --- end of registration */ - - g_object_class_install_property ( - g_object_class, PROP_RESIZE, - g_param_spec_boolean ("resize", _("Resizable"), - _("If set, the dock item can be resized when " - "docked in a GtkPanel widget"), - TRUE, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_BEHAVIOR, - g_param_spec_flags ("behavior", _("Item behavior"), - _("General behavior for the dock item (i.e. " - "whether it can float, if it's locked, etc.)"), - GDL_TYPE_DOCK_ITEM_BEHAVIOR, - GDL_DOCK_ITEM_BEH_NORMAL, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_LOCKED, - g_param_spec_boolean ("locked", _("Locked"), - _("If set, the dock item cannot be dragged around " - "and it doesn't show a grip"), - FALSE, - G_PARAM_READWRITE | - GDL_DOCK_PARAM_EXPORT)); - - g_object_class_install_property ( - g_object_class, PROP_PREFERRED_WIDTH, - g_param_spec_int ("preferred-width", _("Preferred width"), - _("Preferred width for the dock item"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_PREFERRED_HEIGHT, - g_param_spec_int ("preferred-height", _("Preferred height"), - _("Preferred height for the dock item"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE)); - - /* signals */ - - /** - * GdlDockItem::dock-drag-begin: - * @item: The dock item which is being dragged. - * - * Signals that the dock item has begun to be dragged. - **/ - gdl_dock_item_signals [DOCK_DRAG_BEGIN] = - g_signal_new ("dock-drag-begin", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdlDockItemClass, dock_drag_begin), - NULL, /* accumulator */ - NULL, /* accu_data */ - gdl_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - /** - * GdlDockItem::dock-drag-motion: - * @item: The dock item which is being dragged. - * @x: The x-position that the dock item has been dragged to. - * @y: The y-position that the dock item has been dragged to. - * - * Signals that a dock item dragging motion event has occured. - **/ - gdl_dock_item_signals [DOCK_DRAG_MOTION] = - g_signal_new ("dock-drag-motion", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdlDockItemClass, dock_drag_motion), - NULL, /* accumulator */ - NULL, /* accu_data */ - gdl_marshal_VOID__INT_INT, - G_TYPE_NONE, - 2, - G_TYPE_INT, - G_TYPE_INT); - - /** - * GdlDockItem::dock-drag-end: - * @item: The dock item which is no longer being dragged. - * @cancel: This value is set to TRUE if the drag was cancelled by - * the user. #cancel is set to FALSE if the drag was accepted. - * - * Signals that the dock item dragging has ended. - **/ - gdl_dock_item_signals [DOCK_DRAG_END] = - g_signal_new ("dock_drag_end", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdlDockItemClass, dock_drag_end), - NULL, /* accumulator */ - NULL, /* accu_data */ - gdl_marshal_VOID__BOOLEAN, - G_TYPE_NONE, - 1, - G_TYPE_BOOLEAN); - - /** - * GdlDockItem::selected: - * - * Signals that this dock has been selected from a switcher. - */ - gdl_dock_item_signals [SELECTED] = - g_signal_new ("selected", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - - gdl_dock_item_signals [MOVE_FOCUS_CHILD] = - g_signal_new ("move_focus_child", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (GdlDockItemClass, move_focus_child), - NULL, /* accumulator */ - NULL, /* accu_data */ - gdl_marshal_VOID__ENUM, - G_TYPE_NONE, - 1, - GTK_TYPE_DIRECTION_TYPE); - - - /* key bindings */ - - binding_set = gtk_binding_set_by_class (klass); - - add_arrow_bindings (binding_set, GDK_KEY_Up, GTK_DIR_UP); - add_arrow_bindings (binding_set, GDK_KEY_Down, GTK_DIR_DOWN); - add_arrow_bindings (binding_set, GDK_KEY_Left, GTK_DIR_LEFT); - add_arrow_bindings (binding_set, GDK_KEY_Right, GTK_DIR_RIGHT); - - add_tab_bindings (binding_set, 0, GTK_DIR_TAB_FORWARD); - add_tab_bindings (binding_set, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD); - add_tab_bindings (binding_set, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD); - add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD); - - klass->has_grip = TRUE; - klass->dock_drag_begin = NULL; - klass->dock_drag_motion = NULL; - klass->dock_drag_end = NULL; - klass->move_focus_child = gdl_dock_item_move_focus_child; - klass->set_orientation = gdl_dock_item_real_set_orientation; - - if (!style_initialized) - { - style_initialized = TRUE; - gtk_rc_parse_string ( - "style \"gdl-dock-item-default\" {\n" - "xthickness = 0\n" - "ythickness = 0\n" - "}\n" - "class \"GdlDockItem\" " - "style : gtk \"gdl-dock-item-default\"\n"); - } -} - -static void -gdl_dock_item_init (GdlDockItem *item) -{ - gtk_widget_set_has_window (GTK_WIDGET (item), TRUE); - gtk_widget_set_can_focus (GTK_WIDGET (item), TRUE); - - item->child = NULL; - - item->orientation = GTK_ORIENTATION_VERTICAL; - item->behavior = GDL_DOCK_ITEM_BEH_NORMAL; - - item->resize = TRUE; - - item->dragoff_x = item->dragoff_y = 0; - - item->_priv = g_new0 (GdlDockItemPrivate, 1); - item->_priv->menu = NULL; - - item->_priv->preferred_width = item->_priv->preferred_height = -1; - item->_priv->tab_label = NULL; - item->_priv->intern_tab_label = FALSE; - - item->_priv->ph = NULL; -} - -static void -on_long_name_changed (GObject* item, - GParamSpec* spec, - gpointer user_data) -{ - gchar* long_name; - g_object_get (item, "long-name", &long_name, NULL); - gtk_label_set_label (GTK_LABEL (user_data), long_name); - g_free(long_name); -} - -static void -on_stock_id_changed (GObject* item, - GParamSpec* spec, - gpointer user_data) -{ - gchar* stock_id; - g_object_get (item, "stock_id", &stock_id, NULL); - gtk_image_set_from_stock (GTK_IMAGE (user_data), stock_id, GTK_ICON_SIZE_MENU); - g_free(stock_id); -} - -static GObject * -gdl_dock_item_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_param) -{ - GObject *g_object; - - g_object = G_OBJECT_CLASS (gdl_dock_item_parent_class)-> constructor (type, - n_construct_properties, - construct_param); - if (g_object) { - GdlDockItem *item = GDL_DOCK_ITEM (g_object); - GtkWidget *hbox; - GtkWidget *label; - GtkWidget *icon; - gchar* long_name; - gchar* stock_id; - - if (GDL_DOCK_ITEM_HAS_GRIP (item)) { - item->_priv->grip_shown = TRUE; - item->_priv->grip = gdl_dock_item_grip_new (item); - gtk_widget_set_parent (item->_priv->grip, GTK_WIDGET (item)); - gtk_widget_show (item->_priv->grip); - } - else { - item->_priv->grip_shown = FALSE; - } - - g_object_get (g_object, "long-name", &long_name, "stock-id", &stock_id, NULL); - - hbox = gtk_hbox_new (FALSE, 5); - label = gtk_label_new (long_name); - icon = gtk_image_new (); - if (stock_id) - gtk_image_set_from_stock (GTK_IMAGE (icon), stock_id, - GTK_ICON_SIZE_MENU); - gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - - item->_priv->notify_label = - g_signal_connect (item, "notify::long-name", G_CALLBACK (on_long_name_changed), - label); - item->_priv->notify_stock_id = - g_signal_connect (item, "notify::stock-id", G_CALLBACK (on_stock_id_changed), - icon); - - gtk_widget_show_all (hbox); - - gdl_dock_item_set_tablabel (item, hbox); - item->_priv->intern_tab_label = TRUE; - - g_free (long_name); - g_free (stock_id); - } - - return g_object; -} - -static void -gdl_dock_item_set_property (GObject *g_object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockItem *item = GDL_DOCK_ITEM (g_object); - - switch (prop_id) { - case PROP_ORIENTATION: - gdl_dock_item_set_orientation (item, g_value_get_enum (value)); - break; - case PROP_RESIZE: - item->resize = g_value_get_boolean (value); - gtk_widget_queue_resize (GTK_WIDGET (item)); - break; - case PROP_BEHAVIOR: - { - GdlDockItemBehavior old_beh = item->behavior; - item->behavior = g_value_get_flags (value); - - if ((old_beh ^ item->behavior) & GDL_DOCK_ITEM_BEH_LOCKED) { - if (GDL_DOCK_OBJECT_GET_MASTER (item)) - g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item), - "layout-changed"); - g_object_notify (g_object, "locked"); - gdl_dock_item_showhide_grip (item); - } - - break; - } - case PROP_LOCKED: - { - GdlDockItemBehavior old_beh = item->behavior; - - if (g_value_get_boolean (value)) - item->behavior |= GDL_DOCK_ITEM_BEH_LOCKED; - else - item->behavior &= ~GDL_DOCK_ITEM_BEH_LOCKED; - - if (old_beh ^ item->behavior) { - gdl_dock_item_showhide_grip (item); - g_object_notify (g_object, "behavior"); - - if (GDL_DOCK_OBJECT_GET_MASTER (item)) - g_signal_emit_by_name (GDL_DOCK_OBJECT_GET_MASTER (item), - "layout-changed"); - } - break; - } - case PROP_PREFERRED_WIDTH: - item->_priv->preferred_width = g_value_get_int (value); - break; - case PROP_PREFERRED_HEIGHT: - item->_priv->preferred_height = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_item_get_property (GObject *g_object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockItem *item = GDL_DOCK_ITEM (g_object); - - switch (prop_id) { - case PROP_ORIENTATION: - g_value_set_enum (value, item->orientation); - break; - case PROP_RESIZE: - g_value_set_boolean (value, item->resize); - break; - case PROP_BEHAVIOR: - g_value_set_flags (value, item->behavior); - break; - case PROP_LOCKED: - g_value_set_boolean (value, !GDL_DOCK_ITEM_NOT_LOCKED (item)); - break; - case PROP_PREFERRED_WIDTH: - g_value_set_int (value, item->_priv->preferred_width); - break; - case PROP_PREFERRED_HEIGHT: - g_value_set_int (value, item->_priv->preferred_height); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_item_destroy (GtkObject *object) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - - if (item->_priv) { - GdlDockItemPrivate *priv = item->_priv; - - if (priv->tab_label) { - gdl_dock_item_set_tablabel (item, NULL); - }; - if (priv->menu) { - gtk_menu_detach (GTK_MENU (priv->menu)); - priv->menu = NULL; - }; - if (priv->grip) { - gtk_container_remove (GTK_CONTAINER (item), priv->grip); - priv->grip = NULL; - } - if (priv->ph) { - g_object_unref (priv->ph); - priv->ph = NULL; - } - - item->_priv = NULL; - g_free (priv); - } - - GTK_OBJECT_CLASS (gdl_dock_item_parent_class)->destroy (object); -} - -static void -gdl_dock_item_add (GtkContainer *container, - GtkWidget *widget) -{ - GdlDockItem *item; - - g_return_if_fail (GDL_IS_DOCK_ITEM (container)); - - item = GDL_DOCK_ITEM (container); - if (GDL_IS_DOCK_OBJECT (widget)) { - g_warning (_("You can't add a dock object (%p of type %s) inside a %s. " - "Use a GdlDock or some other compound dock object."), - widget, G_OBJECT_TYPE_NAME (widget), G_OBJECT_TYPE_NAME (item)); - return; - } - - if (item->child != NULL) { - g_warning (_("Attempting to add a widget with type %s to a %s, " - "but it can only contain one widget at a time; " - "it already contains a widget of type %s"), - G_OBJECT_TYPE_NAME (widget), - G_OBJECT_TYPE_NAME (item), - G_OBJECT_TYPE_NAME (item->child)); - return; - } - - gtk_widget_set_parent (widget, GTK_WIDGET (item)); - item->child = widget; -} - -static void -gdl_dock_item_remove (GtkContainer *container, - GtkWidget *widget) -{ - GdlDockItem *item; - gboolean was_visible; - - g_return_if_fail (GDL_IS_DOCK_ITEM (container)); - - item = GDL_DOCK_ITEM (container); - if (item->_priv && widget == item->_priv->grip) { - gboolean grip_was_visible = gtk_widget_get_visible (widget); - gtk_widget_unparent (widget); - item->_priv->grip = NULL; - if (grip_was_visible) - gtk_widget_queue_resize (GTK_WIDGET (item)); - return; - } - - if (GDL_DOCK_ITEM_IN_DRAG (item)) { - gdl_dock_item_drag_end (item, TRUE); - } - - g_return_if_fail (item->child == widget); - - was_visible = gtk_widget_get_visible (widget); - - gtk_widget_unparent (widget); - item->child = NULL; - - if (was_visible) - gtk_widget_queue_resize (GTK_WIDGET (container)); -} - -static void -gdl_dock_item_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GdlDockItem *item = (GdlDockItem *) container; - - g_return_if_fail (callback != NULL); - - if (include_internals && item->_priv->grip) - (* callback) (item->_priv->grip, callback_data); - - if (item->child) - (* callback) (item->child, callback_data); -} - -static GType -gdl_dock_item_child_type (GtkContainer *container) -{ - g_return_val_if_fail (GDL_IS_DOCK_ITEM (container), G_TYPE_NONE); - - if (!GDL_DOCK_ITEM (container)->child) - return GTK_TYPE_WIDGET; - else - return G_TYPE_NONE; -} - -static void -gdl_dock_item_set_focus_child (GtkContainer *container, - GtkWidget *child) -{ - g_return_if_fail (GDL_IS_DOCK_ITEM (container)); - - if (GTK_CONTAINER_CLASS (gdl_dock_item_parent_class)->set_focus_child) { - (* GTK_CONTAINER_CLASS (gdl_dock_item_parent_class)->set_focus_child) (container, child); - } - - gdl_dock_item_showhide_grip (GDL_DOCK_ITEM (container)); -} - -static void -gdl_dock_item_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GdlDockItem *item; - GtkRequisition child_requisition; - GtkRequisition grip_requisition; - GtkStyle *style; - guint border_width; - - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - g_return_if_fail (requisition != NULL); - - item = GDL_DOCK_ITEM (widget); - - /* If our child is not visible, we still request its size, since - we won't have any useful hint for our size otherwise. */ - if (item->child) - gtk_widget_size_request (item->child, &child_requisition); - else { - child_requisition.width = 0; - child_requisition.height = 0; - } - - if (item->orientation == GTK_ORIENTATION_HORIZONTAL) { - if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) { - gtk_widget_size_request (item->_priv->grip, &grip_requisition); - requisition->width = grip_requisition.width; - } else { - requisition->width = 0; - } - - if (item->child) { - requisition->width += child_requisition.width; - requisition->height = child_requisition.height; - } else - requisition->height = 0; - } else { - if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) { - gtk_widget_size_request (item->_priv->grip, &grip_requisition); - requisition->height = grip_requisition.height; - } else { - requisition->height = 0; - } - - if (item->child) { - requisition->width = child_requisition.width; - requisition->height += child_requisition.height; - } else - requisition->width = 0; - } - - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - style = gtk_widget_get_style (widget); - - requisition->width += (border_width + style->xthickness) * 2; - requisition->height += (border_width + style->ythickness) * 2; - - //gtk_widget_size_request (widget, requisition); -} - -static void -gdl_dock_item_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GdlDockItem *item; - - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - g_return_if_fail (allocation != NULL); - - item = GDL_DOCK_ITEM (widget); - - gtk_widget_set_allocation (widget, allocation); - - /* Once size is allocated, preferred size is no longer necessary */ - item->_priv->preferred_height = -1; - item->_priv->preferred_width = -1; - - if (gtk_widget_get_realized (widget)) - gdk_window_move_resize (gtk_widget_get_window (widget), - allocation->x, - allocation->y, - allocation->width, - allocation->height); - - if (item->child && gtk_widget_get_visible (item->child)) { - GtkAllocation child_allocation; - GtkStyle *style; - guint border_width; - - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - style = gtk_widget_get_style (widget); - - child_allocation.x = border_width + style->xthickness; - child_allocation.y = border_width + style->ythickness; - child_allocation.width = allocation->width - - 2 * (border_width + style->xthickness); - child_allocation.height = allocation->height - - 2 * (border_width + style->ythickness); - - if (GDL_DOCK_ITEM_GRIP_SHOWN (item)) { - GtkAllocation grip_alloc = child_allocation; - GtkRequisition grip_req; - - gtk_widget_size_request (item->_priv->grip, &grip_req); - - if (item->orientation == GTK_ORIENTATION_HORIZONTAL) { - child_allocation.x += grip_req.width; - child_allocation.width -= grip_req.width; - grip_alloc.width = grip_req.width; - } else { - child_allocation.y += grip_req.height; - child_allocation.height -= grip_req.height; - grip_alloc.height = grip_req.height; - } - if (item->_priv->grip) - gtk_widget_size_allocate (item->_priv->grip, &grip_alloc); - } - /* Allocation can't be negative */ - if (child_allocation.width < 0) - child_allocation.width = 0; - if (child_allocation.height < 0) - child_allocation.height = 0; - gtk_widget_size_allocate (item->child, &child_allocation); - } -} - -static void -gdl_dock_item_map (GtkWidget *widget) -{ - GdlDockItem *item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - gtk_widget_set_mapped (widget, TRUE); - - item = GDL_DOCK_ITEM (widget); - - gdk_window_show (gtk_widget_get_window (widget)); - - if (item->child - && gtk_widget_get_visible (item->child) - && !gtk_widget_get_mapped (item->child)) - gtk_widget_map (item->child); - - if (item->_priv->grip - && gtk_widget_get_visible (GTK_WIDGET (item->_priv->grip)) - && !gtk_widget_get_mapped (GTK_WIDGET (item->_priv->grip))) - gtk_widget_map (item->_priv->grip); -} - -static void -gdl_dock_item_unmap (GtkWidget *widget) -{ - GdlDockItem *item; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - gtk_widget_set_mapped (widget, FALSE); - - item = GDL_DOCK_ITEM (widget); - - gdk_window_hide (gtk_widget_get_window (widget)); - - if (item->_priv->grip) - gtk_widget_unmap (item->_priv->grip); -} - -static void -gdl_dock_item_realize (GtkWidget *widget) -{ - GdlDockItem *item; - GtkAllocation allocation; - GdkWindow *window; - GdkWindowAttr attributes; - gint attributes_mask; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - item = GDL_DOCK_ITEM (widget); - - gtk_widget_set_realized (widget, TRUE); - - /* widget window */ - gtk_widget_get_allocation (widget, &allocation); - attributes.x = allocation.x; - attributes.y = allocation.y; - attributes.width = allocation.width; - attributes.height = allocation.height; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); - attributes.event_mask = (gtk_widget_get_events (widget) | - GDK_EXPOSURE_MASK | - GDK_BUTTON1_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK); - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - window = gdk_window_new (gtk_widget_get_parent_window (widget), - &attributes, attributes_mask); - gtk_widget_set_window (widget, window); - gdk_window_set_user_data (window, widget); - - gtk_widget_style_attach (widget); - gtk_style_set_background (gtk_widget_get_style (widget), window, - gtk_widget_get_state (GTK_WIDGET (item))); - gdk_window_set_back_pixmap (window, NULL, TRUE); - - if (item->child) - gtk_widget_set_parent_window (item->child, window); - - if (item->_priv->grip) - gtk_widget_set_parent_window (item->_priv->grip, window); -} - -static void -gdl_dock_item_style_set (GtkWidget *widget, - GtkStyle *previous_style) -{ - GdkWindow *window; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - if (gtk_widget_get_realized (widget) && - gtk_widget_get_has_window (widget)) - { - window = gtk_widget_get_window (widget); - gtk_style_set_background (gtk_widget_get_style (widget), - window, - gtk_widget_get_state (widget)); - if (gtk_widget_is_drawable (widget)) - gdk_window_clear (window); - } -} - -static void -gdl_dock_item_paint (GtkWidget *widget, - GdkEventExpose *event) -{ - GdlDockItem *item; - - item = GDL_DOCK_ITEM (widget); - - gtk_paint_box (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), - gtk_widget_get_state (widget), - GTK_SHADOW_NONE, - &event->area, widget, - "dockitem", - 0, 0, -1, -1); - -/* see bug #950556: avoid regression with GTK2/Quartz */ -#if !defined(GDK_WINDOWING_QUARTZ) - if (GTK_IS_WIDGET(item->_priv->grip)) - gtk_widget_queue_draw (GTK_WIDGET(item->_priv->grip)); -#endif -} - -static gint -gdl_dock_item_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GDL_IS_DOCK_ITEM (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (gtk_widget_is_drawable (widget) && - event->window == gtk_widget_get_window (widget)) - { - gdl_dock_item_paint (widget, event); - GTK_WIDGET_CLASS (gdl_dock_item_parent_class)->expose_event (widget,event); - } - - return FALSE; -} - -static void -gdl_dock_item_move_focus_child (GdlDockItem *item, - GtkDirectionType dir) -{ - g_return_if_fail (GDL_IS_DOCK_ITEM (item)); - gtk_widget_child_focus (GTK_WIDGET (item->child), dir); -} - -#define EVENT_IN_GRIP_EVENT_WINDOW(ev,gr) \ - ((gr) != NULL && (ev)->window == GDL_DOCK_ITEM_GRIP (gr)->title_window) - -#define EVENT_IN_TABLABEL_EVENT_WINDOW(ev,tl) \ - ((tl) != NULL && (ev)->window == GDL_DOCK_TABLABEL (tl)->event_window) - -static gint -gdl_dock_item_button_changed (GtkWidget *widget, - GdkEventButton *event) -{ - GdlDockItem *item; - GtkAllocation allocation; - GdkCursor *cursor; - gboolean locked; - gboolean event_handled; - gboolean in_handle; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GDL_IS_DOCK_ITEM (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - item = GDL_DOCK_ITEM (widget); - - if (!EVENT_IN_GRIP_EVENT_WINDOW (event, item->_priv->grip)) - return FALSE; - - locked = !GDL_DOCK_ITEM_NOT_LOCKED (item); - - event_handled = FALSE; - - gtk_widget_get_allocation (item->_priv->grip, &allocation); - - /* Check if user clicked on the drag handle. */ - switch (item->orientation) { - case GTK_ORIENTATION_HORIZONTAL: - in_handle = event->x < allocation.width; - break; - case GTK_ORIENTATION_VERTICAL: - in_handle = event->y < allocation.height; - break; - default: - in_handle = FALSE; - break; - } - - /* Left mousebutton click on dockitem. */ - if (!locked && event->button == 1 && event->type == GDK_BUTTON_PRESS) { - - if (!gdl_dock_item_or_child_has_focus (item)) - gtk_widget_grab_focus (GTK_WIDGET (item)); - - /* Set in_drag flag, grab pointer and call begin drag operation. */ - if (in_handle) { - item->_priv->start_x = event->x; - item->_priv->start_y = event->y; - - GDL_DOCK_ITEM_SET_FLAGS (item, GDL_DOCK_IN_PREDRAG); - - cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), - GDK_FLEUR); - gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window, - cursor); - gdk_cursor_unref (cursor); - - event_handled = TRUE; - }; - - } else if (!locked &&event->type == GDK_BUTTON_RELEASE && event->button == 1) { - if (GDL_DOCK_ITEM_IN_DRAG (item)) { - /* User dropped widget somewhere. */ - gdl_dock_item_drag_end (item, FALSE); - gtk_widget_grab_focus (GTK_WIDGET (item)); - event_handled = TRUE; - } - else if (GDL_DOCK_ITEM_IN_PREDRAG (item)) { - GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_PREDRAG); - event_handled = TRUE; - } - - /* we check the window since if the item was redocked it's - been unrealized and maybe it's not realized again yet */ - if (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window) { - cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), - GDK_HAND2); - gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window, - cursor); - gdk_cursor_unref (cursor); - } - - } else if (event->button == 3 && event->type == GDK_BUTTON_PRESS && in_handle) { - gdl_dock_item_popup_menu (item, event->button, event->time); - event_handled = TRUE; - } - - return event_handled; -} - -static gint -gdl_dock_item_motion (GtkWidget *widget, - GdkEventMotion *event) -{ - GdlDockItem *item; - gint new_x, new_y; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GDL_IS_DOCK_ITEM (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - item = GDL_DOCK_ITEM (widget); - - if (!EVENT_IN_GRIP_EVENT_WINDOW (event, item->_priv->grip)) - return FALSE; - - if (GDL_DOCK_ITEM_IN_PREDRAG (item)) { - if (gtk_drag_check_threshold (widget, - item->_priv->start_x, - item->_priv->start_y, - event->x, - event->y)) { - GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_PREDRAG); - item->dragoff_x = item->_priv->start_x; - item->dragoff_y = item->_priv->start_y; - - gdl_dock_item_drag_start (item); - } - } - - if (!GDL_DOCK_ITEM_IN_DRAG (item)) - return FALSE; - - new_x = event->x_root; - new_y = event->y_root; - - g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_MOTION], - 0, new_x, new_y); - - return TRUE; -} - -static gboolean -gdl_dock_item_key_press (GtkWidget *widget, - GdkEventKey *event) -{ - gboolean event_handled = FALSE; - - if (GDL_DOCK_ITEM_IN_DRAG (widget)) { - if (event->keyval == GDK_Escape) { - gdl_dock_item_drag_end (GDL_DOCK_ITEM (widget), TRUE); - event_handled = TRUE; - } - } - - if (event_handled) - return TRUE; - else - return GTK_WIDGET_CLASS (gdl_dock_item_parent_class)->key_press_event (widget, event); -} - -static gboolean -gdl_dock_item_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request) -{ - GtkAllocation alloc; - gint rel_x, rel_y; - - /* we get (x,y) in our allocation coordinates system */ - - /* Get item's allocation. */ - gtk_widget_get_allocation (GTK_WIDGET (object), &alloc); - - /* Get coordinates relative to our window. */ - rel_x = x - alloc.x; - rel_y = y - alloc.y; - - /* Location is inside. */ - if (rel_x > 0 && rel_x < alloc.width && - rel_y > 0 && rel_y < alloc.height) { - float rx, ry; - GtkRequisition my, other; - gint divider = -1; - - /* this are for calculating the extra docking parameter */ - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (request->applicant), &other); - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (object), &my); - - /* Calculate location in terms of the available space (0-100%). */ - rx = (float) rel_x / alloc.width; - ry = (float) rel_y / alloc.height; - - /* Determine dock location. */ - if (rx < SPLIT_RATIO) { - request->position = GDL_DOCK_LEFT; - divider = other.width; - } - else if (rx > (1 - SPLIT_RATIO)) { - request->position = GDL_DOCK_RIGHT; - rx = 1 - rx; - divider = MAX (0, my.width - other.width); - } - else if (ry < SPLIT_RATIO && ry < rx) { - request->position = GDL_DOCK_TOP; - divider = other.height; - } - else if (ry > (1 - SPLIT_RATIO) && (1 - ry) < rx) { - request->position = GDL_DOCK_BOTTOM; - divider = MAX (0, my.height - other.height); - } - else - request->position = GDL_DOCK_CENTER; - - /* Reset rectangle coordinates to entire item. */ - request->rect.x = 0; - request->rect.y = 0; - request->rect.width = alloc.width; - request->rect.height = alloc.height; - - GdlDockItemBehavior behavior = GDL_DOCK_ITEM(object)->behavior; - - /* Calculate docking indicator rectangle size for new locations. Only - do this when we're not over the item's current location. */ - if (request->applicant != object) { - switch (request->position) { - case GDL_DOCK_TOP: - if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP) - return FALSE; - request->rect.height *= SPLIT_RATIO; - break; - case GDL_DOCK_BOTTOM: - if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM) - return FALSE; - request->rect.y += request->rect.height * (1 - SPLIT_RATIO); - request->rect.height *= SPLIT_RATIO; - break; - case GDL_DOCK_LEFT: - if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT) - return FALSE; - request->rect.width *= SPLIT_RATIO; - break; - case GDL_DOCK_RIGHT: - if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT) - return FALSE; - request->rect.x += request->rect.width * (1 - SPLIT_RATIO); - request->rect.width *= SPLIT_RATIO; - break; - case GDL_DOCK_CENTER: - if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER) - return FALSE; - request->rect.x = request->rect.width * SPLIT_RATIO/2; - request->rect.y = request->rect.height * SPLIT_RATIO/2; - request->rect.width = (request->rect.width * - (1 - SPLIT_RATIO/2)) - request->rect.x; - request->rect.height = (request->rect.height * - (1 - SPLIT_RATIO/2)) - request->rect.y; - break; - default: - break; - } - } - - /* adjust returned coordinates so they are have the same - origin as our window */ - request->rect.x += alloc.x; - request->rect.y += alloc.y; - - /* Set possible target location and return TRUE. */ - request->target = object; - - /* fill-in other dock information */ - if (request->position != GDL_DOCK_CENTER && divider >= 0) { - if (G_IS_VALUE (&request->extra)) - g_value_unset (&request->extra); - g_value_init (&request->extra, G_TYPE_UINT); - g_value_set_uint (&request->extra, (guint) divider); - } - - return TRUE; - } - else /* No docking possible at this location. */ - return FALSE; -} - -static void -gdl_dock_item_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data) -{ - GdlDockObject *new_parent = NULL; - GdlDockObject *parent, *requestor_parent; - GtkAllocation allocation; - gboolean add_ourselves_first = FALSE; - - guint available_space=0; - gint pref_size=-1; - guint splitpos=0; - GtkRequisition req, object_req, parent_req; - - parent = gdl_dock_object_get_parent_object (object); - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (requestor), &req); - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (object), &object_req); - if (GDL_IS_DOCK_ITEM (parent)) - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (parent), &parent_req); - else - { - gtk_widget_get_allocation (GTK_WIDGET (parent), &allocation); - parent_req.height = allocation.height; - parent_req.width = allocation.width; - } - - /* If preferred size is not set on the requestor (perhaps a new item), - * then estimate and set it. The default value (either 0 or 1 pixels) is - * not any good. - */ - switch (position) { - case GDL_DOCK_TOP: - case GDL_DOCK_BOTTOM: - if (req.width < 2) - { - req.width = object_req.width; - g_object_set (requestor, "preferred-width", req.width, NULL); - } - if (req.height < 2) - { - req.height = NEW_DOCK_ITEM_RATIO * object_req.height; - g_object_set (requestor, "preferred-height", req.height, NULL); - } - if (req.width > 1) - g_object_set (object, "preferred-width", req.width, NULL); - if (req.height > 1) - g_object_set (object, "preferred-height", - object_req.height - req.height, NULL); - break; - case GDL_DOCK_LEFT: - case GDL_DOCK_RIGHT: - if (req.height < 2) - { - req.height = object_req.height; - g_object_set (requestor, "preferred-height", req.height, NULL); - } - if (req.width < 2) - { - req.width = NEW_DOCK_ITEM_RATIO * object_req.width; - g_object_set (requestor, "preferred-width", req.width, NULL); - } - if (req.height > 1) - g_object_set (object, "preferred-height", req.height, NULL); - if (req.width > 1) - g_object_set (object, "preferred-width", - object_req.width - req.width, NULL); - break; - case GDL_DOCK_CENTER: - if (req.height < 2) - { - req.height = object_req.height; - g_object_set (requestor, "preferred-height", req.height, NULL); - } - if (req.width < 2) - { - req.width = object_req.width; - g_object_set (requestor, "preferred-width", req.width, NULL); - } - if (req.height > 1) - g_object_set (object, "preferred-height", req.height, NULL); - if (req.width > 1) - g_object_set (object, "preferred-width", req.width, NULL); - break; - default: - { - GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (GDL_TYPE_DOCK_PLACEMENT)); - GEnumValue *enum_value = g_enum_get_value (enum_class, position); - const gchar *name = enum_value ? enum_value->value_name : NULL; - - g_warning (_("Unsupported docking strategy %s in dock object of type %s"), - name, G_OBJECT_TYPE_NAME (object)); - g_type_class_unref (enum_class); - return; - } - } - switch (position) { - case GDL_DOCK_TOP: - case GDL_DOCK_BOTTOM: - /* get a paned style dock object */ - new_parent = g_object_new (gdl_dock_object_type_from_nick ("paned"), - "orientation", GTK_ORIENTATION_VERTICAL, - "preferred-width", object_req.width, - "preferred-height", object_req.height, - NULL); - add_ourselves_first = (position == GDL_DOCK_BOTTOM); - if (parent) - available_space = parent_req.height; - pref_size = req.height; - break; - case GDL_DOCK_LEFT: - case GDL_DOCK_RIGHT: - new_parent = g_object_new (gdl_dock_object_type_from_nick ("paned"), - "orientation", GTK_ORIENTATION_HORIZONTAL, - "preferred-width", object_req.width, - "preferred-height", object_req.height, - NULL); - add_ourselves_first = (position == GDL_DOCK_RIGHT); - if(parent) - available_space = parent_req.width; - pref_size = req.width; - break; - case GDL_DOCK_CENTER: - /* If the parent is already a DockNotebook, we don't need - to create a new one. */ - if (!GDL_IS_DOCK_NOTEBOOK (parent)) - { - new_parent = g_object_new (gdl_dock_object_type_from_nick ("notebook"), - "preferred-width", object_req.width, - "preferred-height", object_req.height, - NULL); - add_ourselves_first = TRUE; - } - break; - default: - { - GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (GDL_TYPE_DOCK_PLACEMENT)); - GEnumValue *enum_value = g_enum_get_value (enum_class, position); - const gchar *name = enum_value ? enum_value->value_name : NULL; - - g_warning (_("Unsupported docking strategy %s in dock object of type %s"), - name, G_OBJECT_TYPE_NAME (object)); - g_type_class_unref (enum_class); - return; - } - } - - /* freeze the parent so it doesn't reduce automatically */ - if (parent) - gdl_dock_object_freeze (parent); - - - if (new_parent) - { - /* ref ourselves since we could be destroyed when detached */ - g_object_ref (object); - GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_REFLOW); - gdl_dock_object_detach (object, FALSE); - - /* freeze the new parent, so reduce won't get called before it's - actually added to our parent */ - gdl_dock_object_freeze (new_parent); - - /* bind the new parent to our master, so the following adds work */ - gdl_dock_object_bind (new_parent, G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (object))); - - /* add the objects */ - if (add_ourselves_first) { - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object)); - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor)); - splitpos = available_space - pref_size; - } else { - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor)); - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object)); - splitpos = pref_size; - } - - /* add the new parent to the parent */ - if (parent) - gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (new_parent)); - - /* show automatic object */ - if (gtk_widget_get_visible (GTK_WIDGET (object))) - { - gtk_widget_show (GTK_WIDGET (new_parent)); - GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW); - } - gdl_dock_object_thaw (new_parent); - - /* use extra docking parameter */ - if (position != GDL_DOCK_CENTER && other_data && - G_VALUE_HOLDS (other_data, G_TYPE_UINT)) { - - g_object_set (G_OBJECT (new_parent), - "position", g_value_get_uint (other_data), - NULL); - } else if (splitpos > 0 && splitpos < available_space) { - g_object_set (G_OBJECT (new_parent), "position", splitpos, NULL); - } - - g_object_unref (object); - } - else - { - /* If the parent is already a DockNotebook, we don't need - to create a new one. */ - gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (requestor)); - } - - requestor_parent = gdl_dock_object_get_parent_object (requestor); - if (GDL_IS_DOCK_NOTEBOOK (requestor_parent)) - { - /* Activate the page we just added */ - GdlDockItem* notebook = GDL_DOCK_ITEM (gdl_dock_object_get_parent_object (requestor)); - gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook->child), - gtk_notebook_page_num (GTK_NOTEBOOK (notebook->child), GTK_WIDGET (requestor))); - } - - if (parent) - gdl_dock_object_thaw (parent); -} - -static void -gdl_dock_item_detach_menu (GtkWidget *widget, - GtkMenu *menu) -{ - GdlDockItem *item; - - item = GDL_DOCK_ITEM (widget); - item->_priv->menu = NULL; -} - -static void -gdl_dock_item_popup_menu (GdlDockItem *item, - guint button, - guint32 time) -{ - GtkWidget *mitem; - - if (!item->_priv->menu) { - /* Create popup menu and attach it to the dock item */ - item->_priv->menu = gtk_menu_new (); - gtk_menu_attach_to_widget (GTK_MENU (item->_priv->menu), - GTK_WIDGET (item), - gdl_dock_item_detach_menu); - - if (item->behavior & GDL_DOCK_ITEM_BEH_LOCKED) { - /* UnLock menuitem */ - mitem = gtk_menu_item_new_with_label (_("UnLock")); - gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu), - mitem); - g_signal_connect (mitem, "activate", - G_CALLBACK (gdl_dock_item_unlock_cb), item); - } else { - /* Hide menuitem. */ - mitem = gtk_menu_item_new_with_label (_("Hide")); - gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu), mitem); - g_signal_connect (mitem, "activate", - G_CALLBACK (gdl_dock_item_hide_cb), item); - /* Lock menuitem */ - mitem = gtk_menu_item_new_with_label (_("Lock")); - gtk_menu_shell_append (GTK_MENU_SHELL (item->_priv->menu), mitem); - g_signal_connect (mitem, "activate", - G_CALLBACK (gdl_dock_item_lock_cb), item); - } - } - - /* Show popup menu. */ - gtk_widget_show_all (item->_priv->menu); - gtk_menu_popup (GTK_MENU (item->_priv->menu), NULL, NULL, NULL, NULL, - button, time); -} - -static void -gdl_dock_item_drag_start (GdlDockItem *item) -{ - GdkCursor *fleur; - - if (!gtk_widget_get_realized (GTK_WIDGET (item))) - gtk_widget_realize (GTK_WIDGET (item)); - - GDL_DOCK_ITEM_SET_FLAGS (item, GDL_DOCK_IN_DRAG); - - /* grab the pointer so we receive all mouse events */ - fleur = gdk_cursor_new (GDK_FLEUR); - - /* grab the keyboard & pointer */ - gtk_grab_add (GTK_WIDGET (item)); - - gdk_cursor_unref (fleur); - - g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_BEGIN], 0); -} - -static void -gdl_dock_item_drag_end (GdlDockItem *item, - gboolean cancel) -{ - /* Release pointer & keyboard. */ - GtkWidget *widget = gtk_grab_get_current (); - if (widget == NULL) { - widget = GTK_WIDGET (item); - } - gtk_grab_remove (widget); - - g_signal_emit (item, gdl_dock_item_signals [DOCK_DRAG_END], 0, cancel); - - GDL_DOCK_ITEM_UNSET_FLAGS (item, GDL_DOCK_IN_DRAG); -} - -static void -gdl_dock_item_tab_button (GtkWidget *widget, - GdkEventButton *event, - gpointer data) -{ - GdlDockItem *item; - GtkAllocation allocation; - - item = GDL_DOCK_ITEM (data); - - if (!GDL_DOCK_ITEM_NOT_LOCKED (item)) - return; - - switch (event->button) { - case 1: - /* set dragoff_{x,y} as we the user clicked on the middle of the - drag handle */ - switch (item->orientation) { - case GTK_ORIENTATION_HORIZONTAL: - gtk_widget_get_allocation (GTK_WIDGET (data), &allocation); - /*item->dragoff_x = item->_priv->grip_size / 2;*/ - item->dragoff_y = allocation.height / 2; - break; - case GTK_ORIENTATION_VERTICAL: - /*item->dragoff_x = GTK_WIDGET (data)->allocation.width / 2;*/ - item->dragoff_y = item->_priv->grip_size / 2; - break; - }; - gdl_dock_item_drag_start (item); - break; - - case 3: - gdl_dock_item_popup_menu (item, event->button, event->time); - break; - - default: - break; - }; -} - -static void -gdl_dock_item_hide_cb (GtkWidget *widget, - GdlDockItem *item) -{ - GdlDockMaster *master; - - g_return_if_fail (item != NULL); - - master = GDL_DOCK_OBJECT_GET_MASTER (item); - gdl_dock_item_hide_item (item); -} - -static void -gdl_dock_item_lock_cb (GtkWidget *widget, - GdlDockItem *item) -{ - g_return_if_fail (item != NULL); - - gdl_dock_item_lock (item); -} - -static void -gdl_dock_item_unlock_cb (GtkWidget *widget, - GdlDockItem *item) -{ - g_return_if_fail (item != NULL); - - gdl_dock_item_unlock (item); -} - -static void -gdl_dock_item_showhide_grip (GdlDockItem *item) -{ - GdkDisplay *display; - GdkCursor *cursor; - - gdl_dock_item_detach_menu (GTK_WIDGET (item), NULL); - display = gtk_widget_get_display (GTK_WIDGET (item)); - cursor = NULL; - - if (item->_priv->grip) { - if (GDL_DOCK_ITEM_GRIP_SHOWN (item) && - GDL_DOCK_ITEM_NOT_LOCKED(item)) - cursor = gdk_cursor_new_for_display (display, GDK_HAND2); - } - if (item->_priv->grip && GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window) - gdk_window_set_cursor (GDL_DOCK_ITEM_GRIP (item->_priv->grip)->title_window, cursor); - - if (cursor) - gdk_cursor_unref (cursor); - - gtk_widget_queue_resize (GTK_WIDGET (item)); -} - -static void -gdl_dock_item_real_set_orientation (GdlDockItem *item, - GtkOrientation orientation) -{ - item->orientation = orientation; - - if (gtk_widget_is_drawable (GTK_WIDGET (item))) - gtk_widget_queue_draw (GTK_WIDGET (item)); - gtk_widget_queue_resize (GTK_WIDGET (item)); -} - - -/* ----- Public interface ----- */ - -/** - * gdl_dock_item_new: - * @name: Unique name for identifying the dock object. - * @long_name: Human readable name for the dock object. - * @behavior: General behavior for the dock item (i.e. whether it can - * float, if it's locked, etc.), as specified by - * #GdlDockItemBehavior flags. - * - * Creates a new dock item widget. - * Returns: The newly created dock item grip widget. - **/ -GtkWidget * -gdl_dock_item_new (const gchar *name, - const gchar *long_name, - GdlDockItemBehavior behavior) -{ - GdlDockItem *item; - - item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM, - "name", name, - "long-name", long_name, - "behavior", behavior, - NULL)); - GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC); - - return GTK_WIDGET (item); -} - -/** - * gdl_dock_item_new_with_stock: - * @name: Unique name for identifying the dock object. - * @long_name: Human readable name for the dock object. - * @stock_id: Stock icon for the dock object. - * @behavior: General behavior for the dock item (i.e. whether it can - * float, if it's locked, etc.), as specified by - * #GdlDockItemBehavior flags. - * - * Creates a new dock item grip widget with a given stock id. - * Returns: The newly created dock item grip widget. - **/ -GtkWidget * -gdl_dock_item_new_with_stock (const gchar *name, - const gchar *long_name, - const gchar *stock_id, - GdlDockItemBehavior behavior) -{ - GdlDockItem *item; - - item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM, - "name", name, - "long-name", long_name, - "stock-id", stock_id, - "behavior", behavior, - NULL)); - GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC); - - return GTK_WIDGET (item); -} - -GtkWidget * -gdl_dock_item_new_with_pixbuf_icon (const gchar *name, - const gchar *long_name, - const GdkPixbuf *pixbuf_icon, - GdlDockItemBehavior behavior) -{ - GdlDockItem *item; - - item = GDL_DOCK_ITEM (g_object_new (GDL_TYPE_DOCK_ITEM, - "name", name, - "long-name", long_name, - "pixbuf-icon", pixbuf_icon, - "behavior", behavior, - NULL)); - - GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_AUTOMATIC); - gdl_dock_item_set_tablabel (item, gtk_label_new (long_name)); - - return GTK_WIDGET (item); -} - -/* convenient function (and to preserve source compat) */ -/** - * gdl_dock_item_dock_to: - * @item: The dock item that will be relocated to the dock position. - * @target: (allow-none): The dock item that will be used as the point of reference. - * @position: The position to dock #item, relative to #target. - * @docking_param: This value is unused, and will be ignored. - * - * Relocates a dock item to a new location relative to another dock item. - **/ -void -gdl_dock_item_dock_to (GdlDockItem *item, - GdlDockItem *target, - GdlDockPlacement position, - gint docking_param) -{ - g_return_if_fail (item != NULL); - g_return_if_fail (item != target); - g_return_if_fail (target != NULL || position == GDL_DOCK_FLOATING); - g_return_if_fail ((item->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) == 0 || position != GDL_DOCK_FLOATING); - - if (position == GDL_DOCK_FLOATING || !target) { - GdlDockObject *controller; - - if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (item))) { - g_warning (_("Attempt to bind an unbound item %p"), item); - return; - } - - controller = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item)); - - /* FIXME: save previous docking position for later - re-docking... does this make sense now? */ - - /* Create new floating dock for widget. */ - item->dragoff_x = item->dragoff_y = 0; - gdl_dock_add_floating_item (GDL_DOCK (controller), - item, 0, 0, -1, -1); - - } else - gdl_dock_object_dock (GDL_DOCK_OBJECT (target), - GDL_DOCK_OBJECT (item), - position, NULL); -} - -/** - * gdl_dock_item_set_orientation: - * @item: The dock item which will get it's orientation set. - * @orientation: The orientation to set the item to. If the orientation - * is set to #GTK_ORIENTATION_VERTICAL, the grip widget will be shown - * along the top of the edge of item (if it is not hidden). If the - * orientation is set to #GTK_ORIENTATION_HORIZONTAL, the grip widget - * will be shown down the left edge of the item (even if the widget - * text direction is set to RTL). - * - * This function sets the layout of the dock item. - **/ -void -gdl_dock_item_set_orientation (GdlDockItem *item, - GtkOrientation orientation) -{ - GParamSpec *pspec; - - g_return_if_fail (item != NULL); - - if (item->orientation != orientation) { - /* push the property down the hierarchy if our child supports it */ - if (item->child != NULL) { - pspec = g_object_class_find_property ( - G_OBJECT_GET_CLASS (item->child), "orientation"); - if (pspec && pspec->value_type == GTK_TYPE_ORIENTATION) - g_object_set (G_OBJECT (item->child), - "orientation", orientation, - NULL); - }; - if (GDL_DOCK_ITEM_GET_CLASS (item)->set_orientation) - GDL_DOCK_ITEM_GET_CLASS (item)->set_orientation (item, orientation); - g_object_notify (G_OBJECT (item), "orientation"); - } -} - -/** - * gdl_dock_item_get_tablabel: - * @item: The dock item from which to get the tab label widget. - * - * Gets the current tab label widget. Note that this label widget is - * only visible when the "switcher-style" property of the #GdlDockMaster - * is set to #GDL_SWITCHER_STYLE_TABS - * - * Returns: Returns the tab label widget. - **/ -GtkWidget * -gdl_dock_item_get_tablabel (GdlDockItem *item) -{ - g_return_val_if_fail (item != NULL, NULL); - g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), NULL); - - return item->_priv->tab_label; -} - -/** - * gdl_dock_item_set_tablabel: - * @item: The dock item which will get it's tab label widget set. - * @tablabel: The widget that will become the tab label. - * - * Replaces the current tab label widget with another widget. Note that - * this label widget is only visible when the "switcher-style" property - * of the #GdlDockMaster is set to #GDL_SWITCHER_STYLE_TABS - **/ -void -gdl_dock_item_set_tablabel (GdlDockItem *item, - GtkWidget *tablabel) -{ - g_return_if_fail (item != NULL); - - if (item->_priv->intern_tab_label) - { - item->_priv->intern_tab_label = FALSE; - g_signal_handler_disconnect (item, item->_priv->notify_label); - g_signal_handler_disconnect (item, item->_priv->notify_stock_id); - } - - if (item->_priv->tab_label) { - /* disconnect and unref the previous tablabel */ - if (GDL_IS_DOCK_TABLABEL (item->_priv->tab_label)) { - g_signal_handlers_disconnect_matched (item->_priv->tab_label, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, - NULL, item); - g_object_set (item->_priv->tab_label, "item", NULL, NULL); - } - g_object_unref (item->_priv->tab_label); - item->_priv->tab_label = NULL; - } - - if (tablabel) { - g_object_ref_sink (G_OBJECT (tablabel)); - item->_priv->tab_label = tablabel; - if (GDL_IS_DOCK_TABLABEL (tablabel)) { - g_object_set (tablabel, "item", item, NULL); - /* connect to tablabel signal */ - g_signal_connect (tablabel, "button_pressed_handle", - G_CALLBACK (gdl_dock_item_tab_button), item); - } - } -} - -/** - * gdl_dock_item_get_grip: - * @item: The dock item from which to to get the grip of. - * - * This function returns the dock item's grip label widget. - * - * Returns: Returns the current label widget. - **/ -GtkWidget * -gdl_dock_item_get_grip(GdlDockItem *item) -{ - g_return_val_if_fail (item != NULL, NULL); - g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), NULL); - - return item->_priv->grip; -} - -/** - * gdl_dock_item_hide_grip: - * @item: The dock item to hide the grip of. - * - * This function hides the dock item's grip widget. - **/ -void -gdl_dock_item_hide_grip (GdlDockItem *item) -{ - g_return_if_fail (item != NULL); - if (item->_priv->grip_shown) { - item->_priv->grip_shown = FALSE; - gdl_dock_item_showhide_grip (item); - }; - g_warning ("Grips always show unless GDL_DOCK_ITEM_BEH_NO_GRIP is set\n" ); -} - -/** - * gdl_dock_item_show_grip: - * @item: The dock item to show the grip of. - * - * This function shows the dock item's grip widget. - **/ -void -gdl_dock_item_show_grip (GdlDockItem *item) -{ - g_return_if_fail (item != NULL); - if (!item->_priv->grip_shown) { - item->_priv->grip_shown = TRUE; - gdl_dock_item_showhide_grip (item); - }; -} - -/** - * gdl_dock_item_notify_selected: - * @item: the dock item to emit a selected signal on. - * - * This function emits the selected signal. It is to be used by #GdlSwitcher - * to let clients know that this item has been switched to. - **/ -void -gdl_dock_item_notify_selected (GdlDockItem *item) -{ - g_signal_emit (item, gdl_dock_item_signals [SELECTED], 0); -} - -/* convenient function (and to preserve source compat) */ -/** - * gdl_dock_item_bind: - * @item: The item to bind. - * @dock: The #GdlDock widget to bind it to. Note that this widget must - * be a type of #GdlDock. - * - * Binds this dock item to a new dock master. - **/ -void -gdl_dock_item_bind (GdlDockItem *item, - GtkWidget *dock) -{ - g_return_if_fail (item != NULL); - g_return_if_fail (dock == NULL || GDL_IS_DOCK (dock)); - - gdl_dock_object_bind (GDL_DOCK_OBJECT (item), - G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (dock))); -} - -/* convenient function (and to preserve source compat) */ -/** - * gdl_dock_item_unbind: - * @item: The item to unbind. - * - * Unbinds this dock item from it's dock master. - **/ -void -gdl_dock_item_unbind (GdlDockItem *item) -{ - g_return_if_fail (item != NULL); - - gdl_dock_object_unbind (GDL_DOCK_OBJECT (item)); -} - -/** - * gdl_dock_item_hide_item: - * @item: The dock item to hide. - * - * This function hides the dock item. When dock items are hidden they - * are completely removed from the layout. - * - * The dock item close button causes the panel to be hidden. - **/ -void -gdl_dock_item_hide_item (GdlDockItem *item) -{ - GtkAllocation allocation; - - g_return_if_fail (item != NULL); - - if (!GDL_DOCK_OBJECT_ATTACHED (item)) - /* already hidden/detached */ - return; - - /* if the object is manual, create a new placeholder to be able to - restore the position later */ - if (!GDL_DOCK_OBJECT_AUTOMATIC (item)) { - if (item->_priv->ph) - g_object_unref (item->_priv->ph); - - gboolean isFloating = FALSE; - gint width=0, height=0, x=0, y = 0; - - if (GDL_IS_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (item)))) - { - GdlDock* dock = GDL_DOCK (gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT (item))); - g_object_get (dock, - "floating", &isFloating, - "width", &width, - "height",&height, - "floatx",&x, - "floaty",&y, - NULL); - } else { - gtk_widget_get_allocation (GTK_WIDGET (item), &allocation); - item->_priv->preferred_width = allocation.width; - item->_priv->preferred_height = allocation.height; - } - item->_priv->ph = GDL_DOCK_PLACEHOLDER ( - g_object_new (GDL_TYPE_DOCK_PLACEHOLDER, - "sticky", FALSE, - "host", item, - "width", width, - "height", height, - "floating", isFloating, - "floatx", x, - "floaty", y, - NULL)); - g_object_ref_sink (item->_priv->ph); - } - - gdl_dock_object_freeze (GDL_DOCK_OBJECT (item)); - - /* hide our children first, so they can also set placeholders */ - if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (item))) - gtk_container_foreach (GTK_CONTAINER (item), - (GtkCallback) gdl_dock_item_hide_item, - NULL); - - /* detach the item recursively */ - gdl_dock_object_detach (GDL_DOCK_OBJECT (item), TRUE); - - gtk_widget_hide (GTK_WIDGET (item)); - - gdl_dock_object_thaw (GDL_DOCK_OBJECT (item)); -} - -/** - * gdl_dock_item_iconify_item: - * @item: The dock item to iconify. - * - * This function iconifies the dock item. When dock items are iconified - * they are hidden, and appear only as icons in dock bars. - * - * The dock item iconify button causes the panel to be iconified. - **/ -void -gdl_dock_item_iconify_item (GdlDockItem *item) -{ - g_return_if_fail (item != NULL); - - GDL_DOCK_OBJECT_SET_FLAGS (item, GDL_DOCK_ICONIFIED); - gdl_dock_item_hide_item (item); -} - -/** - * gdl_dock_item_show_item: - * @item: The dock item to show. - * - * This function shows the dock item. When dock items are shown, they - * are displayed in their normal layout position. - **/ -void -gdl_dock_item_show_item (GdlDockItem *item) -{ - g_return_if_fail (item != NULL); - - GDL_DOCK_OBJECT_UNSET_FLAGS (item, GDL_DOCK_ICONIFIED); - - if (item->_priv->ph) { - gboolean isFloating=FALSE; - gint width = 0, height = 0, x= 0, y = 0; - g_object_get (G_OBJECT(item->_priv->ph), - "width", &width, - "height", &height, - "floating",&isFloating, - "floatx", &x, - "floaty", &y, - NULL); - if (isFloating) { - GdlDockObject *controller = - gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (item)); - gdl_dock_add_floating_item (GDL_DOCK (controller), - item, x, y, width, height); - } else { - gtk_container_add (GTK_CONTAINER (item->_priv->ph), - GTK_WIDGET (item)); - } - g_object_unref (item->_priv->ph); - item->_priv->ph = NULL; - - } else if (gdl_dock_object_is_bound (GDL_DOCK_OBJECT (item))) { - GdlDockObject *toplevel; - - toplevel = gdl_dock_master_get_controller - (GDL_DOCK_OBJECT_GET_MASTER (item)); - - if (item->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) { - g_warning("Object %s has no default position and flag GDL_DOCK_ITEM_BEH_NEVER_FLOATING is set.\n", - GDL_DOCK_OBJECT(item)->name); - } else if (toplevel) { - gdl_dock_object_dock (toplevel, GDL_DOCK_OBJECT (item), - GDL_DOCK_FLOATING, NULL); - } else - g_warning("There is no toplevel window. GdlDockItem %s cannot be shown.\n", GDL_DOCK_OBJECT(item)->name); - - } else - g_warning("GdlDockItem %s is not bound. It cannot be shown.\n", - GDL_DOCK_OBJECT(item)->name); - - gtk_widget_show (GTK_WIDGET (item)); -} - -/** - * gdl_dock_item_lock: - * @item: The dock item to lock. - * - * This function locks the dock item. When locked the dock item cannot - * be dragged around and it doesn't show a grip. - **/ -void -gdl_dock_item_lock (GdlDockItem *item) -{ - g_object_set (item, "locked", TRUE, NULL); -} - -/** - * gdl_dock_item_unlock: - * @item: The dock item to unlock. - * - * This function unlocks the dock item. When unlocked the dock item can - * be dragged around and can show a grip. - **/ -void -gdl_dock_item_unlock (GdlDockItem *item) -{ - g_object_set (item, "locked", FALSE, NULL); -} - -/** - * gdl_dock_item_set_default_position: - * @item: The dock item - * @reference: The GdlDockObject which is the default dock for @item - * - * This method has only an effect when you add you dock_item with - * GDL_DOCK_ITEM_BEH_NEVER_FLOATING. In this case you have to assign - * it a default position. - **/ -void -gdl_dock_item_set_default_position (GdlDockItem *item, - GdlDockObject *reference) -{ - g_return_if_fail (item != NULL); - - if (item->_priv->ph) { - g_object_unref (item->_priv->ph); - item->_priv->ph = NULL; - } - - if (reference && GDL_DOCK_OBJECT_ATTACHED (reference)) { - if (GDL_IS_DOCK_PLACEHOLDER (reference)) { - g_object_ref_sink (reference); - item->_priv->ph = GDL_DOCK_PLACEHOLDER (reference); - } else { - item->_priv->ph = GDL_DOCK_PLACEHOLDER ( - g_object_new (GDL_TYPE_DOCK_PLACEHOLDER, - "sticky", TRUE, - "host", reference, - NULL)); - g_object_ref_sink (item->_priv->ph); - } - } -} - -/** - * gdl_dock_item_preferred_size: - * @item: The dock item to get the preferred size of. - * @req: A pointer to a #GtkRequisition into which the preferred size - * will be written. - * - * Gets the preferred size of the dock item in pixels. - **/ -void -gdl_dock_item_preferred_size (GdlDockItem *item, - GtkRequisition *req) -{ - GtkAllocation allocation; - - if (!req) - return; - - gtk_widget_get_allocation (GTK_WIDGET (item), &allocation); - - req->width = MAX (item->_priv->preferred_width, allocation.width); - req->height = MAX (item->_priv->preferred_height, allocation.height); -} - - -gboolean -gdl_dock_item_or_child_has_focus (GdlDockItem *item) -{ - GtkWidget *item_child; - gboolean item_or_child_has_focus; - - g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), FALSE); - - for (item_child = gtk_container_get_focus_child (GTK_CONTAINER (item)); - item_child && GTK_IS_CONTAINER (item_child) && gtk_container_get_focus_child (GTK_CONTAINER (item_child)); - item_child = gtk_container_get_focus_child (GTK_CONTAINER (item_child))) ; - - item_or_child_has_focus = - (gtk_widget_has_focus (GTK_WIDGET (item)) || - (GTK_IS_WIDGET (item_child) && gtk_widget_has_focus (item_child))); - - return item_or_child_has_focus; -} - - -/* ----- gtk orientation type exporter/importer ----- */ - -static void -gdl_dock_param_export_gtk_orientation (const GValue *src, - GValue *dst) -{ - dst->data [0].v_pointer = - g_strdup_printf ("%s", (src->data [0].v_int == GTK_ORIENTATION_HORIZONTAL) ? - "horizontal" : "vertical"); -} - -static void -gdl_dock_param_import_gtk_orientation (const GValue *src, - GValue *dst) -{ - if (!strcmp (src->data [0].v_pointer, "horizontal")) - dst->data [0].v_int = GTK_ORIENTATION_HORIZONTAL; - else - dst->data [0].v_int = GTK_ORIENTATION_VERTICAL; -} - diff --git a/src/libgdl/gdl-dock-item.h b/src/libgdl/gdl-dock-item.h deleted file mode 100644 index b9378f783..000000000 --- a/src/libgdl/gdl-dock-item.h +++ /dev/null @@ -1,223 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-item.h - * - * Author: Gustavo Giráldez - * - * Based on GnomeDockItem/BonoboDockItem. Original copyright notice follows. - * - * Copyright (C) 1998 Ettore Perazzoli - * Copyright (C) 1998 Elliot Lee - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GDL_DOCK_ITEM_H__ -#define __GDL_DOCK_ITEM_H__ - -#include "libgdl/gdl-dock-object.h" - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_ITEM (gdl_dock_item_get_type ()) -#define GDL_DOCK_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_ITEM, GdlDockItem)) -#define GDL_DOCK_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_ITEM, GdlDockItemClass)) -#define GDL_IS_DOCK_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_ITEM)) -#define GDL_IS_DOCK_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_ITEM)) -#define GDL_DOCK_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_ITEM, GdlDockItemClass)) - -/** - * GdlDockItemBehavior: - * @GDL_DOCK_ITEM_BEH_NORMAL: Normal dock item - * @GDL_DOCK_ITEM_BEH_NEVER_FLOATING: item cannot be undocked - * @GDL_DOCK_ITEM_BEH_NEVER_VERTICAL: item cannot be docked vertically - * @GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL: item cannot be docked horizontally - * @GDL_DOCK_ITEM_BEH_LOCKED: item is locked, it cannot be moved around - * @GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP: item cannot be docked at top - * @GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM: item cannot be docked at bottom - * @GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT: item cannot be docked left - * @GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT: item cannot be docked right - * @GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER: item cannot be docked at center - * @GDL_DOCK_ITEM_BEH_CANT_CLOSE: item cannot be closed - * @GDL_DOCK_ITEM_BEH_CANT_ICONIFY: item cannot be iconified - * @GDL_DOCK_ITEM_BEH_NO_GRIP: item doesn't have a grip - * - * Described the behaviour of a doc item. The item can have multiple flags set. - * - **/ - -typedef enum { - GDL_DOCK_ITEM_BEH_NORMAL = 0, - GDL_DOCK_ITEM_BEH_NEVER_FLOATING = 1 << 0, - GDL_DOCK_ITEM_BEH_NEVER_VERTICAL = 1 << 1, - GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL = 1 << 2, - GDL_DOCK_ITEM_BEH_LOCKED = 1 << 3, - GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP = 1 << 4, - GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM = 1 << 5, - GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT = 1 << 6, - GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT = 1 << 7, - GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER = 1 << 8, - GDL_DOCK_ITEM_BEH_CANT_CLOSE = 1 << 9, - GDL_DOCK_ITEM_BEH_CANT_ICONIFY = 1 << 10, - GDL_DOCK_ITEM_BEH_NO_GRIP = 1 << 11 -} GdlDockItemBehavior; - - -/** - * GdlDockItemFlags: - * @GDL_DOCK_IN_DRAG: item is in a drag operation - * @GDL_DOCK_IN_PREDRAG: item is in a predrag operation - * @GDL_DOCK_ICONIFIED: item is iconified - * @GDL_DOCK_USER_ACTION: indicates the user has started an action on the dock item - * - * Status flag of a GdlDockItem. Don't use unless you derive a widget from GdlDockItem - * - **/ -typedef enum { - GDL_DOCK_IN_DRAG = 1 << GDL_DOCK_OBJECT_FLAGS_SHIFT, - GDL_DOCK_IN_PREDRAG = 1 << (GDL_DOCK_OBJECT_FLAGS_SHIFT + 1), - GDL_DOCK_ICONIFIED = 1 << (GDL_DOCK_OBJECT_FLAGS_SHIFT + 2), - GDL_DOCK_USER_ACTION = 1 << (GDL_DOCK_OBJECT_FLAGS_SHIFT + 3) -} GdlDockItemFlags; - -typedef struct _GdlDockItem GdlDockItem; -typedef struct _GdlDockItemClass GdlDockItemClass; -typedef struct _GdlDockItemPrivate GdlDockItemPrivate; - -struct _GdlDockItem { - GdlDockObject object; - - GtkWidget *child; - GdlDockItemBehavior behavior; - GtkOrientation orientation; - - guint resize : 1; - - gint dragoff_x, dragoff_y; /* these need to be - accesible from - outside */ - GdlDockItemPrivate *_priv; -}; - -struct _GdlDockItemClass { - GdlDockObjectClass parent_class; - - gboolean has_grip; - - /* virtuals */ - void (* dock_drag_begin) (GdlDockItem *item); - void (* dock_drag_motion) (GdlDockItem *item, - gint x, - gint y); - void (* dock_drag_end) (GdlDockItem *item, - gboolean cancelled); - void (* move_focus_child) (GdlDockItem *item, - GtkDirectionType direction); - void (* set_orientation) (GdlDockItem *item, - GtkOrientation orientation); -}; - -#define GDL_DOCK_ITEM_FLAGS(item) (GDL_DOCK_OBJECT (item)->flags) -#define GDL_DOCK_ITEM_IN_DRAG(item) \ - ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_IN_DRAG) != 0) -#define GDL_DOCK_ITEM_IN_PREDRAG(item) \ - ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_IN_PREDRAG) != 0) -#define GDL_DOCK_ITEM_ICONIFIED(item) \ - ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_ICONIFIED) != 0) -#define GDL_DOCK_ITEM_USER_ACTION(item) \ - ((GDL_DOCK_ITEM_FLAGS (item) & GDL_DOCK_USER_ACTION) != 0) -#define GDL_DOCK_ITEM_NOT_LOCKED(item) !((item)->behavior & GDL_DOCK_ITEM_BEH_LOCKED) -#define GDL_DOCK_ITEM_NO_GRIP(item) ((item)->behavior & GDL_DOCK_ITEM_BEH_NO_GRIP) - -#define GDL_DOCK_ITEM_SET_FLAGS(item,flag) \ - G_STMT_START { (GDL_DOCK_ITEM_FLAGS (item) |= (flag)); } G_STMT_END -#define GDL_DOCK_ITEM_UNSET_FLAGS(item,flag) \ - G_STMT_START { (GDL_DOCK_ITEM_FLAGS (item) &= ~(flag)); } G_STMT_END - -#define GDL_DOCK_ITEM_HAS_GRIP(item) ((GDL_DOCK_ITEM_GET_CLASS (item)->has_grip)&& \ - ! GDL_DOCK_ITEM_NO_GRIP (item)) - -#define GDL_DOCK_ITEM_CANT_CLOSE(item) \ - ((((item)->behavior & GDL_DOCK_ITEM_BEH_CANT_CLOSE) != 0)|| \ - ! GDL_DOCK_ITEM_NOT_LOCKED(item)) - -#define GDL_DOCK_ITEM_CANT_ICONIFY(item) \ - ((((item)->behavior & GDL_DOCK_ITEM_BEH_CANT_ICONIFY) != 0)|| \ - ! GDL_DOCK_ITEM_NOT_LOCKED(item)) - -/* public interface */ - -GtkWidget *gdl_dock_item_new (const gchar *name, - const gchar *long_name, - GdlDockItemBehavior behavior); -GtkWidget *gdl_dock_item_new_with_stock (const gchar *name, - const gchar *long_name, - const gchar *stock_id, - GdlDockItemBehavior behavior); - -GtkWidget *gdl_dock_item_new_with_pixbuf_icon (const gchar *name, - const gchar *long_name, - const GdkPixbuf *pixbuf_icon, - GdlDockItemBehavior behavior); - -GType gdl_dock_item_get_type (void); - -void gdl_dock_item_dock_to (GdlDockItem *item, - GdlDockItem *target, - GdlDockPlacement position, - gint docking_param); - -void gdl_dock_item_set_orientation (GdlDockItem *item, - GtkOrientation orientation); - -GtkWidget *gdl_dock_item_get_tablabel (GdlDockItem *item); -void gdl_dock_item_set_tablabel (GdlDockItem *item, - GtkWidget *tablabel); -GtkWidget *gdl_dock_item_get_grip (GdlDockItem *item); -void gdl_dock_item_hide_grip (GdlDockItem *item); -void gdl_dock_item_show_grip (GdlDockItem *item); -void gdl_dock_item_notify_selected (GdlDockItem *item); - -/* bind and unbind items to a dock */ -void gdl_dock_item_bind (GdlDockItem *item, - GtkWidget *dock); - -void gdl_dock_item_unbind (GdlDockItem *item); - -void gdl_dock_item_hide_item (GdlDockItem *item); - -void gdl_dock_item_iconify_item (GdlDockItem *item); - -void gdl_dock_item_show_item (GdlDockItem *item); - -void gdl_dock_item_lock (GdlDockItem *item); - -void gdl_dock_item_unlock (GdlDockItem *item); - -void gdl_dock_item_set_default_position (GdlDockItem *item, - GdlDockObject *reference); - -void gdl_dock_item_preferred_size (GdlDockItem *item, - GtkRequisition *req); - -gboolean gdl_dock_item_or_child_has_focus (GdlDockItem *item); - -G_END_DECLS - -#endif diff --git a/src/libgdl/gdl-dock-master.c b/src/libgdl/gdl-dock-master.c deleted file mode 100644 index 294614c7e..000000000 --- a/src/libgdl/gdl-dock-master.c +++ /dev/null @@ -1,1011 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-master.c - Object which manages a dock ring - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" - -#include "gdl-dock-master.h" -#include "gdl-dock.h" -#include "gdl-dock-item.h" -#include "gdl-dock-notebook.h" -#include "gdl-switcher.h" -#include "libgdlmarshal.h" -#include "libgdltypebuiltins.h" -#ifdef WIN32 -#include "gdl-win32.h" -#endif - -/* ----- Private prototypes ----- */ - -static void gdl_dock_master_class_init (GdlDockMasterClass *klass); - -static void gdl_dock_master_dispose (GObject *g_object); -static void gdl_dock_master_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_master_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void _gdl_dock_master_remove (GdlDockObject *object, - GdlDockMaster *master); - -static void gdl_dock_master_drag_begin (GdlDockItem *item, - gpointer data); -static void gdl_dock_master_drag_end (GdlDockItem *item, - gboolean cancelled, - gpointer data); -static void gdl_dock_master_drag_motion (GdlDockItem *item, - gint x, - gint y, - gpointer data); - -static void _gdl_dock_master_foreach (gpointer key, - gpointer value, - gpointer user_data); - -static void gdl_dock_master_xor_rect (GdlDockMaster *master); - -static void gdl_dock_master_layout_changed (GdlDockMaster *master); - -static void gdl_dock_master_set_switcher_style (GdlDockMaster *master, - GdlSwitcherStyle switcher_style); - -/* ----- Private data types and variables ----- */ - -enum { - PROP_0, - PROP_DEFAULT_TITLE, - PROP_LOCKED, - PROP_SWITCHER_STYLE -}; - -enum { - LAYOUT_CHANGED, - LAST_SIGNAL -}; - -struct _GdlDockMasterPrivate { - gint number; /* for naming nameless manual objects */ - gchar *default_title; - - GdkGC *root_xor_gc; - gboolean rect_drawn; - GdlDock *rect_owner; - - GdlDockRequest *drag_request; - - /* source id for the idle handler to emit a layout_changed signal */ - guint idle_layout_changed_id; - - /* hashes to quickly calculate the overall locked status: i.e. - * if size(unlocked_items) == 0 then locked = 1 - * else if size(locked_items) == 0 then locked = 0 - * else locked = -1 - */ - GHashTable *locked_items; - GHashTable *unlocked_items; - - GdlSwitcherStyle switcher_style; -}; - -#define COMPUTE_LOCKED(master) \ - (g_hash_table_size ((master)->_priv->unlocked_items) == 0 ? 1 : \ - (g_hash_table_size ((master)->_priv->locked_items) == 0 ? 0 : -1)) - -static guint master_signals [LAST_SIGNAL] = { 0 }; - - -/* ----- Private interface ----- */ - -G_DEFINE_TYPE (GdlDockMaster, gdl_dock_master, G_TYPE_OBJECT); - -static void -gdl_dock_master_class_init (GdlDockMasterClass *klass) -{ - GObjectClass *g_object_class; - - g_object_class = G_OBJECT_CLASS (klass); - - g_object_class->dispose = gdl_dock_master_dispose; - g_object_class->set_property = gdl_dock_master_set_property; - g_object_class->get_property = gdl_dock_master_get_property; - - g_object_class_install_property ( - g_object_class, PROP_DEFAULT_TITLE, - g_param_spec_string ("default-title", _("Default title"), - _("Default title for newly created floating docks"), - NULL, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_LOCKED, - g_param_spec_int ("locked", _("Locked"), - _("If is set to 1, all the dock items bound to the master " - "are locked; if it's 0, all are unlocked; -1 indicates " - "inconsistency among the items"), - -1, 1, 0, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_SWITCHER_STYLE, - g_param_spec_enum ("switcher-style", _("Switcher Style"), - _("Switcher buttons style"), - GDL_TYPE_SWITCHER_STYLE, - GDL_SWITCHER_STYLE_BOTH, - G_PARAM_READWRITE)); - - master_signals [LAYOUT_CHANGED] = - g_signal_new ("layout-changed", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdlDockMasterClass, layout_changed), - NULL, /* accumulator */ - NULL, /* accu_data */ - gdl_marshal_VOID__VOID, - G_TYPE_NONE, /* return type */ - 0); - - klass->layout_changed = gdl_dock_master_layout_changed; -} - -static void -gdl_dock_master_init (GdlDockMaster *master) -{ - master->dock_objects = g_hash_table_new_full (g_str_hash, g_str_equal, - g_free, NULL); - master->toplevel_docks = NULL; - master->controller = NULL; - master->dock_number = 1; - - master->_priv = g_new0 (GdlDockMasterPrivate, 1); - master->_priv->number = 1; - master->_priv->switcher_style = GDL_SWITCHER_STYLE_BOTH; - master->_priv->locked_items = g_hash_table_new (g_direct_hash, g_direct_equal); - master->_priv->unlocked_items = g_hash_table_new (g_direct_hash, g_direct_equal); -} - -static void -_gdl_dock_master_remove (GdlDockObject *object, - GdlDockMaster *master) -{ - g_return_if_fail (master != NULL && object != NULL); - - if (GDL_IS_DOCK (object)) { - GList *found_link; - - found_link = g_list_find (master->toplevel_docks, object); - if (found_link) - master->toplevel_docks = g_list_delete_link (master->toplevel_docks, - found_link); - if (object == master->controller) { - GList *last; - GdlDockObject *new_controller = NULL; - - /* now find some other non-automatic toplevel to use as a - new controller. start from the last dock, since it's - probably a non-floating and manual */ - last = g_list_last (master->toplevel_docks); - while (last) { - if (!GDL_DOCK_OBJECT_AUTOMATIC (last->data)) { - new_controller = GDL_DOCK_OBJECT (last->data); - break; - } - last = last->prev; - }; - - if (new_controller) { - /* the new controller gets the ref (implicitly of course) */ - master->controller = new_controller; - } else { - master->controller = NULL; - /* no controller, no master */ - g_object_unref (master); - } - } - } - /* disconnect dock object signals */ - g_signal_handlers_disconnect_matched (object, G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, master); - - /* unref the object from the hash if it's there */ - if (object->name) { - GdlDockObject *found_object; - found_object = g_hash_table_lookup (master->dock_objects, object->name); - if (found_object == object) { - g_hash_table_remove (master->dock_objects, object->name); - g_object_unref (object); - } - } -} - -static void -ht_foreach_build_slist (gpointer key, - gpointer value, - GSList **slist) -{ - *slist = g_slist_prepend (*slist, value); -} - -static void -gdl_dock_master_dispose (GObject *g_object) -{ - GdlDockMaster *master; - - g_return_if_fail (GDL_IS_DOCK_MASTER (g_object)); - - master = GDL_DOCK_MASTER (g_object); - - if (master->toplevel_docks) { - g_list_foreach (master->toplevel_docks, - (GFunc) gdl_dock_object_unbind, NULL); - g_list_free (master->toplevel_docks); - master->toplevel_docks = NULL; - } - - if (master->dock_objects) { - GSList *alive_docks = NULL; - g_hash_table_foreach (master->dock_objects, - (GHFunc) ht_foreach_build_slist, &alive_docks); - while (alive_docks) { - gdl_dock_object_unbind (GDL_DOCK_OBJECT (alive_docks->data)); - alive_docks = g_slist_delete_link (alive_docks, alive_docks); - } - - g_hash_table_destroy (master->dock_objects); - master->dock_objects = NULL; - } - - if (master->_priv) { - if (master->_priv->idle_layout_changed_id) - g_source_remove (master->_priv->idle_layout_changed_id); - - if (master->_priv->root_xor_gc) { - g_object_unref (master->_priv->root_xor_gc); - master->_priv->root_xor_gc = NULL; - } - if (master->_priv->drag_request) { - if (G_IS_VALUE (&master->_priv->drag_request->extra)) - g_value_unset (&master->_priv->drag_request->extra); - g_free (master->_priv->drag_request); - master->_priv->drag_request = NULL; - } - g_free (master->_priv->default_title); - master->_priv->default_title = NULL; - - g_hash_table_destroy (master->_priv->locked_items); - master->_priv->locked_items = NULL; - g_hash_table_destroy (master->_priv->unlocked_items); - master->_priv->unlocked_items = NULL; - - g_free (master->_priv); - master->_priv = NULL; - } - - G_OBJECT_CLASS (gdl_dock_master_parent_class)->dispose (g_object); -} - -static void -foreach_lock_unlock (GdlDockItem *item, - gboolean locked) -{ - if (!GDL_IS_DOCK_ITEM (item)) - return; - - g_object_set (item, "locked", locked, NULL); - if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (item))) - gtk_container_foreach (GTK_CONTAINER (item), - (GtkCallback) foreach_lock_unlock, - GINT_TO_POINTER (locked)); -} - -static void -gdl_dock_master_lock_unlock (GdlDockMaster *master, - gboolean locked) -{ - GList *l; - - for (l = master->toplevel_docks; l; l = l->next) { - GdlDock *dock = GDL_DOCK (l->data); - if (dock->root) - foreach_lock_unlock (GDL_DOCK_ITEM (dock->root), locked); - } - - /* just to be sure hidden items are set too */ - gdl_dock_master_foreach (master, - (GFunc) foreach_lock_unlock, - GINT_TO_POINTER (locked)); -} - -static void -gdl_dock_master_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockMaster *master = GDL_DOCK_MASTER (object); - - switch (prop_id) { - case PROP_DEFAULT_TITLE: - g_free (master->_priv->default_title); - master->_priv->default_title = g_value_dup_string (value); - break; - case PROP_LOCKED: - if (g_value_get_int (value) >= 0) - gdl_dock_master_lock_unlock (master, (g_value_get_int (value) > 0)); - break; - case PROP_SWITCHER_STYLE: - gdl_dock_master_set_switcher_style (master, g_value_get_enum (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_master_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockMaster *master = GDL_DOCK_MASTER (object); - - switch (prop_id) { - case PROP_DEFAULT_TITLE: - g_value_set_string (value, master->_priv->default_title); - break; - case PROP_LOCKED: - g_value_set_int (value, COMPUTE_LOCKED (master)); - break; - case PROP_SWITCHER_STYLE: - g_value_set_enum (value, master->_priv->switcher_style); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_master_drag_begin (GdlDockItem *item, - gpointer data) -{ - GdlDockMaster *master; - GdlDockRequest *request; - - g_return_if_fail (data != NULL); - g_return_if_fail (item != NULL); - - master = GDL_DOCK_MASTER (data); - - if (!master->_priv->drag_request) - master->_priv->drag_request = g_new0 (GdlDockRequest, 1); - - request = master->_priv->drag_request; - - /* Set the target to itself so it won't go floating with just a click. */ - request->applicant = GDL_DOCK_OBJECT (item); - request->target = GDL_DOCK_OBJECT (item); - request->position = GDL_DOCK_FLOATING; - if (G_IS_VALUE (&request->extra)) - g_value_unset (&request->extra); - - master->_priv->rect_drawn = FALSE; - master->_priv->rect_owner = NULL; -} - -static void -gdl_dock_master_drag_end (GdlDockItem *item, - gboolean cancelled, - gpointer data) -{ - GdlDockMaster *master; - GdlDockRequest *request; - - g_return_if_fail (data != NULL); - g_return_if_fail (item != NULL); - - master = GDL_DOCK_MASTER (data); - request = master->_priv->drag_request; - - g_return_if_fail (GDL_DOCK_OBJECT (item) == request->applicant); - - /* Erase previously drawn rectangle */ - if (master->_priv->rect_drawn) - gdl_dock_master_xor_rect (master); - - /* cancel conditions */ - if (cancelled || request->applicant == request->target) - return; - - /* dock object to the requested position */ - gdl_dock_object_dock (request->target, - request->applicant, - request->position, - &request->extra); - - g_signal_emit (master, master_signals [LAYOUT_CHANGED], 0); -} - -static void -gdl_dock_master_drag_motion (GdlDockItem *item, - gint root_x, - gint root_y, - gpointer data) -{ - GdlDockMaster *master; - GdlDockRequest my_request, *request; - GdkWindow *window; - GdkWindow *widget_window; - gint win_x, win_y; - gint x, y; - GdlDock *dock = NULL; - gboolean may_dock = FALSE; - - g_return_if_fail (item != NULL && data != NULL); - - master = GDL_DOCK_MASTER (data); - request = master->_priv->drag_request; - - g_return_if_fail (GDL_DOCK_OBJECT (item) == request->applicant); - - my_request = *request; - - /* first look under the pointer */ - window = gdk_window_at_pointer (&win_x, &win_y); - if (window) { - GtkWidget *widget; - /* ok, now get the widget who owns that window and see if we can - get to a GdlDock by walking up the hierarchy */ - gdk_window_get_user_data (window, (gpointer) &widget); - if (GTK_IS_WIDGET (widget)) { - while (widget && (!GDL_IS_DOCK (widget) || - GDL_DOCK_OBJECT_GET_MASTER (widget) != master)) - widget = gtk_widget_get_parent (widget); - if (widget) { - gint win_w, win_h; - - widget_window = gtk_widget_get_window (widget); - - /* verify that the pointer is still in that dock - (the user could have moved it) */ - gdk_window_get_geometry (widget_window, - NULL, NULL, &win_w, &win_h, NULL); - gdk_window_get_origin (widget_window, &win_x, &win_y); - if (root_x >= win_x && root_x < win_x + win_w && - root_y >= win_y && root_y < win_y + win_h) - dock = GDL_DOCK (widget); - } - } - } - - if (dock) { - GdkWindow *dock_window = gtk_widget_get_window (GTK_WIDGET (dock)); - - /* translate root coordinates into dock object coordinates - (i.e. widget coordinates) */ - gdk_window_get_origin (dock_window, &win_x, &win_y); - x = root_x - win_x; - y = root_y - win_y; - may_dock = gdl_dock_object_dock_request (GDL_DOCK_OBJECT (dock), - x, y, &my_request); - } - else { - GList *l; - - /* try to dock the item in all the docks in the ring in turn */ - for (l = master->toplevel_docks; l; l = l->next) { - GdkWindow *dock_window; - dock = GDL_DOCK (l->data); - dock_window = gtk_widget_get_window (GTK_WIDGET (dock)); - /* translate root coordinates into dock object coordinates - (i.e. widget coordinates) */ - gdk_window_get_origin (dock_window, &win_x, &win_y); - x = root_x - win_x; - y = root_y - win_y; - may_dock = gdl_dock_object_dock_request (GDL_DOCK_OBJECT (dock), - x, y, &my_request); - if (may_dock) - break; - } - } - - - if (!may_dock) { - GtkRequisition req; - /* Special case for GdlDockItems : they must respect the flags */ - if(GDL_IS_DOCK_ITEM(item) - && GDL_DOCK_ITEM(item)->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING) - return; - - dock = NULL; - my_request.target = GDL_DOCK_OBJECT ( - gdl_dock_object_get_toplevel (request->applicant)); - my_request.position = GDL_DOCK_FLOATING; - - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (request->applicant), &req); - my_request.rect.width = req.width; - my_request.rect.height = req.height; - - my_request.rect.x = root_x - GDL_DOCK_ITEM (request->applicant)->dragoff_x; - my_request.rect.y = root_y - GDL_DOCK_ITEM (request->applicant)->dragoff_y; - - /* setup extra docking information */ - if (G_IS_VALUE (&my_request.extra)) - g_value_unset (&my_request.extra); - - g_value_init (&my_request.extra, GDK_TYPE_RECTANGLE); - g_value_set_boxed (&my_request.extra, &my_request.rect); - } - /* if we want to enforce GDL_DOCK_ITEM_BEH_NEVER_FLOATING */ - /* the item must remain attached to the controller, otherwise */ - /* it could be inserted in another floating dock */ - /* so check for the flag at this moment */ - else if(GDL_IS_DOCK_ITEM(item) - && GDL_DOCK_ITEM(item)->behavior & GDL_DOCK_ITEM_BEH_NEVER_FLOATING - && dock != GDL_DOCK(master->controller)) - return; - - if (!(my_request.rect.x == request->rect.x && - my_request.rect.y == request->rect.y && - my_request.rect.width == request->rect.width && - my_request.rect.height == request->rect.height && - dock == master->_priv->rect_owner)) { - - /* erase the previous rectangle */ - if (master->_priv->rect_drawn) - gdl_dock_master_xor_rect (master); - } - - /* set the new values */ - *request = my_request; - master->_priv->rect_owner = dock; - - /* draw the previous rectangle */ - if (~master->_priv->rect_drawn) - gdl_dock_master_xor_rect (master); -} - -static void -_gdl_dock_master_foreach (gpointer key, - gpointer value, - gpointer user_data) -{ - struct { - GFunc function; - gpointer user_data; - } *data = user_data; - - (* data->function) (GTK_WIDGET (value), data->user_data); -} - -static void -gdl_dock_master_xor_rect (GdlDockMaster *master) -{ - gint8 dash_list [2]; - GdkWindow *window; - GdkRectangle *rect; - - if (!master->_priv || !master->_priv->drag_request) - return; - - master->_priv->rect_drawn = ~master->_priv->rect_drawn; - - if (master->_priv->rect_owner) { - gdl_dock_xor_rect (master->_priv->rect_owner, - &master->_priv->drag_request->rect); - return; - } - - rect = &master->_priv->drag_request->rect; - window = gdk_get_default_root_window (); - - if (!master->_priv->root_xor_gc) { - GdkGCValues values; - - values.function = GDK_INVERT; - values.subwindow_mode = GDK_INCLUDE_INFERIORS; - master->_priv->root_xor_gc = gdk_gc_new_with_values ( - window, &values, GDK_GC_FUNCTION | GDK_GC_SUBWINDOW); - }; - -#ifdef WIN32 - GdkLineStyle lineStyle = GDK_LINE_ON_OFF_DASH; - if (is_os_vista()) - { - // On Vista the dash-line is increadibly slow to draw, it takes several minutes to draw the tracking lines - // With GDK_LINE_SOLID it is parts of a second - // No performance issue on WinXP - lineStyle = GDK_LINE_SOLID; - } -#else - GdkLineStyle lineStyle = GDK_LINE_ON_OFF_DASH; -#endif - gdk_gc_set_line_attributes (master->_priv->root_xor_gc, 1, - lineStyle, - GDK_CAP_NOT_LAST, - GDK_JOIN_BEVEL); - - dash_list[0] = 1; - dash_list[1] = 1; - gdk_gc_set_dashes (master->_priv->root_xor_gc, 1, dash_list, 2); - - gdk_draw_rectangle (window, master->_priv->root_xor_gc, 0, - rect->x, rect->y, - rect->width, rect->height); - - gdk_gc_set_dashes (master->_priv->root_xor_gc, 0, dash_list, 2); - - gdk_draw_rectangle (window, master->_priv->root_xor_gc, 0, - rect->x + 1, rect->y + 1, - rect->width - 2, rect->height - 2); -} - -static void -gdl_dock_master_layout_changed (GdlDockMaster *master) -{ - g_return_if_fail (GDL_IS_DOCK_MASTER (master)); - - /* emit "layout-changed" on the controller to notify the user who - * normally shouldn't have access to us */ - if (master->controller) - g_signal_emit_by_name (master->controller, "layout-changed"); - - /* remove the idle handler if there is one */ - if (master->_priv->idle_layout_changed_id) { - g_source_remove (master->_priv->idle_layout_changed_id); - master->_priv->idle_layout_changed_id = 0; - } -} - -static gboolean -idle_emit_layout_changed (gpointer user_data) -{ - GdlDockMaster *master = user_data; - - g_return_val_if_fail (master && GDL_IS_DOCK_MASTER (master), FALSE); - - master->_priv->idle_layout_changed_id = 0; - g_signal_emit (master, master_signals [LAYOUT_CHANGED], 0); - - return FALSE; -} - -static void -item_dock_cb (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data, - gpointer user_data) -{ - GdlDockMaster *master = user_data; - - g_return_if_fail (requestor && GDL_IS_DOCK_OBJECT (requestor)); - g_return_if_fail (master && GDL_IS_DOCK_MASTER (master)); - - /* here we are in fact interested in the requestor, since it's - * assumed that object will not change its visibility... for the - * requestor, however, could mean that it's being shown */ - if (!GDL_DOCK_OBJECT_IN_REFLOW (requestor) && - !GDL_DOCK_OBJECT_AUTOMATIC (requestor)) { - if (!master->_priv->idle_layout_changed_id) - master->_priv->idle_layout_changed_id = - g_idle_add (idle_emit_layout_changed, master); - } -} - -static void -item_detach_cb (GdlDockObject *object, - gboolean recursive, - gpointer user_data) -{ - GdlDockMaster *master = user_data; - - g_return_if_fail (object && GDL_IS_DOCK_OBJECT (object)); - g_return_if_fail (master && GDL_IS_DOCK_MASTER (master)); - - if (!GDL_DOCK_OBJECT_IN_REFLOW (object) && - !GDL_DOCK_OBJECT_AUTOMATIC (object)) { - if (!master->_priv->idle_layout_changed_id) - master->_priv->idle_layout_changed_id = - g_idle_add (idle_emit_layout_changed, master); - } -} - -static void -item_notify_cb (GdlDockObject *object, - GParamSpec *pspec, - gpointer user_data) -{ - GdlDockMaster *master = user_data; - gint locked = COMPUTE_LOCKED (master); - gboolean item_locked; - - g_object_get (object, "locked", &item_locked, NULL); - - if (item_locked) { - g_hash_table_remove (master->_priv->unlocked_items, object); - g_hash_table_insert (master->_priv->locked_items, object, NULL); - } else { - g_hash_table_remove (master->_priv->locked_items, object); - g_hash_table_insert (master->_priv->unlocked_items, object, NULL); - } - - if (COMPUTE_LOCKED (master) != locked) - g_object_notify (G_OBJECT (master), "locked"); -} - -/* ----- Public interface ----- */ - -void -gdl_dock_master_add (GdlDockMaster *master, - GdlDockObject *object) -{ - g_return_if_fail (master != NULL && object != NULL); - - if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) { - GdlDockObject *found_object; - - /* create a name for the object if it doesn't have one */ - if (!object->name) - /* directly set the name, since it's a construction only - property */ - object->name = g_strdup_printf ("__dock_%u", master->_priv->number++); - - /* add the object to our hash list */ - if ((found_object = g_hash_table_lookup (master->dock_objects, object->name))) { - g_warning (_("master %p: unable to add object %p[%s] to the hash. " - "There already is an item with that name (%p)."), - master, object, object->name, found_object); - } - else { - g_object_ref_sink (object); - g_hash_table_insert (master->dock_objects, g_strdup (object->name), object); - } - } - - if (GDL_IS_DOCK (object)) { - gboolean floating; - - /* if this is the first toplevel we are adding, name it controller */ - if (!master->toplevel_docks) - /* the dock should already have the ref */ - master->controller = object; - - /* add dock to the toplevel list */ - g_object_get (object, "floating", &floating, NULL); - if (floating) - master->toplevel_docks = g_list_prepend (master->toplevel_docks, object); - else - master->toplevel_docks = g_list_append (master->toplevel_docks, object); - - /* we are interested in the dock request this toplevel - * receives to update the layout */ - g_signal_connect (object, "dock", - G_CALLBACK (item_dock_cb), master); - - } - else if (GDL_IS_DOCK_ITEM (object)) { - /* we need to connect the item's signals */ - g_signal_connect (object, "dock_drag_begin", - G_CALLBACK (gdl_dock_master_drag_begin), master); - g_signal_connect (object, "dock_drag_motion", - G_CALLBACK (gdl_dock_master_drag_motion), master); - g_signal_connect (object, "dock_drag_end", - G_CALLBACK (gdl_dock_master_drag_end), master); - g_signal_connect (object, "dock", - G_CALLBACK (item_dock_cb), master); - g_signal_connect (object, "detach", - G_CALLBACK (item_detach_cb), master); - - /* register to "locked" notification if the item has a grip, - * and add the item to the corresponding hash */ - if (GDL_DOCK_ITEM_HAS_GRIP (GDL_DOCK_ITEM (object))) { - g_signal_connect (object, "notify::locked", - G_CALLBACK (item_notify_cb), master); - item_notify_cb (object, NULL, master); - } - - /* If the item is notebook, set the switcher style */ - if (GDL_IS_DOCK_NOTEBOOK (object) && - GDL_IS_SWITCHER (GDL_DOCK_ITEM (object)->child)) - { - g_object_set (GDL_DOCK_ITEM (object)->child, "switcher-style", - master->_priv->switcher_style, NULL); - } - - /* post a layout_changed emission if the item is not automatic - * (since it should be added to the items model) */ - if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) { - if (!master->_priv->idle_layout_changed_id) - master->_priv->idle_layout_changed_id = - g_idle_add (idle_emit_layout_changed, master); - } - } -} - -void -gdl_dock_master_remove (GdlDockMaster *master, - GdlDockObject *object) -{ - g_return_if_fail (master != NULL && object != NULL); - - /* remove from locked/unlocked hashes and property change if - * that's the case */ - if (GDL_IS_DOCK_ITEM (object) && GDL_DOCK_ITEM_HAS_GRIP (GDL_DOCK_ITEM (object))) { - gint locked = COMPUTE_LOCKED (master); - if (g_hash_table_remove (master->_priv->locked_items, object) || - g_hash_table_remove (master->_priv->unlocked_items, object)) { - if (COMPUTE_LOCKED (master) != locked) - g_object_notify (G_OBJECT (master), "locked"); - } - } - - /* ref the master, since removing the controller could cause master disposal */ - g_object_ref (master); - - /* all the interesting stuff happens in _gdl_dock_master_remove */ - _gdl_dock_master_remove (object, master); - - /* post a layout_changed emission if the item is not automatic - * (since it should be removed from the items model) */ - if (!GDL_DOCK_OBJECT_AUTOMATIC (object)) { - if (!master->_priv->idle_layout_changed_id) - master->_priv->idle_layout_changed_id = - g_idle_add (idle_emit_layout_changed, master); - } - - /* balance ref count */ - g_object_unref (master); -} - -void -gdl_dock_master_foreach (GdlDockMaster *master, - GFunc function, - gpointer user_data) -{ - struct { - GFunc function; - gpointer user_data; - } data; - - g_return_if_fail (master != NULL && function != NULL); - - data.function = function; - data.user_data = user_data; - g_hash_table_foreach (master->dock_objects, _gdl_dock_master_foreach, &data); -} - -void -gdl_dock_master_foreach_toplevel (GdlDockMaster *master, - gboolean include_controller, - GFunc function, - gpointer user_data) -{ - GList *l; - - g_return_if_fail (master != NULL && function != NULL); - - for (l = master->toplevel_docks; l; ) { - GdlDockObject *object = GDL_DOCK_OBJECT (l->data); - l = l->next; - if (object != master->controller || include_controller) - (* function) (GTK_WIDGET (object), user_data); - } -} - -GdlDockObject * -gdl_dock_master_get_object (GdlDockMaster *master, - const gchar *nick_name) -{ - gpointer *found; - - g_return_val_if_fail (master != NULL, NULL); - - if (!nick_name) - return NULL; - - found = g_hash_table_lookup (master->dock_objects, nick_name); - - return found ? GDL_DOCK_OBJECT (found) : NULL; -} - -GdlDockObject * -gdl_dock_master_get_controller (GdlDockMaster *master) -{ - g_return_val_if_fail (master != NULL, NULL); - - return master->controller; -} - -void -gdl_dock_master_set_controller (GdlDockMaster *master, - GdlDockObject *new_controller) -{ - g_return_if_fail (master != NULL); - - if (new_controller) { - if (GDL_DOCK_OBJECT_AUTOMATIC (new_controller)) - g_warning (_("The new dock controller %p is automatic. Only manual " - "dock objects should be named controller."), new_controller); - - /* check that the controller is in the toplevel list */ - if (!g_list_find (master->toplevel_docks, new_controller)) - gdl_dock_master_add (master, new_controller); - master->controller = new_controller; - - } else { - master->controller = NULL; - /* no controller, no master */ - g_object_unref (master); - } -} - -static void -set_switcher_style_foreach (GtkWidget *obj, gpointer user_data) -{ - GdlSwitcherStyle style = GPOINTER_TO_INT (user_data); - - if (!GDL_IS_DOCK_ITEM (obj)) - return; - - if (GDL_IS_DOCK_NOTEBOOK (obj)) { - - GtkWidget *child = GDL_DOCK_ITEM (obj)->child; - if (GDL_IS_SWITCHER (child)) { - - g_object_set (child, "switcher-style", style, NULL); - } - } else if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (obj))) { - - gtk_container_foreach (GTK_CONTAINER (obj), - set_switcher_style_foreach, - user_data); - } -} - -static void -gdl_dock_master_set_switcher_style (GdlDockMaster *master, - GdlSwitcherStyle switcher_style) -{ - GList *l; - g_return_if_fail (GDL_IS_DOCK_MASTER (master)); - - master->_priv->switcher_style = switcher_style; - for (l = master->toplevel_docks; l; l = l->next) { - GdlDock *dock = GDL_DOCK (l->data); - if (dock->root) - set_switcher_style_foreach (GTK_WIDGET (dock->root), - GINT_TO_POINTER (switcher_style)); - } - - /* just to be sure hidden items are set too */ - gdl_dock_master_foreach (master, (GFunc) set_switcher_style_foreach, - GINT_TO_POINTER (switcher_style)); -} diff --git a/src/libgdl/gdl-dock-master.h b/src/libgdl/gdl-dock-master.h deleted file mode 100644 index 266ca7ee4..000000000 --- a/src/libgdl/gdl-dock-master.h +++ /dev/null @@ -1,106 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-master.h - Object which manages a dock ring - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_MASTER_H__ -#define __GDL_DOCK_MASTER_H__ - -#include -#include -#include "libgdl/gdl-dock-object.h" - - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_MASTER (gdl_dock_master_get_type ()) -#define GDL_DOCK_MASTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_MASTER, GdlDockMaster)) -#define GDL_DOCK_MASTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_MASTER, GdlDockMasterClass)) -#define GDL_IS_DOCK_MASTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_MASTER)) -#define GDL_IS_DOCK_MASTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_MASTER)) -#define GDL_DOCK_MASTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_MASTER, GdlDockMasterClass)) - -/* data types & structures */ -typedef struct _GdlDockMaster GdlDockMaster; -typedef struct _GdlDockMasterClass GdlDockMasterClass; -typedef struct _GdlDockMasterPrivate GdlDockMasterPrivate; - -typedef enum { - GDL_SWITCHER_STYLE_TEXT, - GDL_SWITCHER_STYLE_ICON, - GDL_SWITCHER_STYLE_BOTH, - GDL_SWITCHER_STYLE_TOOLBAR, - GDL_SWITCHER_STYLE_TABS, - GDL_SWITCHER_STYLE_NONE -} GdlSwitcherStyle; - -struct _GdlDockMaster { - GObject object; - - GHashTable *dock_objects; - GList *toplevel_docks; - GdlDockObject *controller; /* GUI root object */ - - gint dock_number; /* for toplevel dock numbering */ - - GdlDockMasterPrivate *_priv; -}; - -struct _GdlDockMasterClass { - GObjectClass parent_class; - - void (* layout_changed) (GdlDockMaster *master); -}; - -/* additional macros */ - -#define GDL_DOCK_OBJECT_GET_MASTER(object) \ - (GDL_DOCK_OBJECT (object)->master ? \ - GDL_DOCK_MASTER (GDL_DOCK_OBJECT (object)->master) : NULL) - -/* public interface */ - -GType gdl_dock_master_get_type (void); - -void gdl_dock_master_add (GdlDockMaster *master, - GdlDockObject *object); -void gdl_dock_master_remove (GdlDockMaster *master, - GdlDockObject *object); -void gdl_dock_master_foreach (GdlDockMaster *master, - GFunc function, - gpointer user_data); - -void gdl_dock_master_foreach_toplevel (GdlDockMaster *master, - gboolean include_controller, - GFunc function, - gpointer user_data); - -GdlDockObject *gdl_dock_master_get_object (GdlDockMaster *master, - const gchar *nick_name); - -GdlDockObject *gdl_dock_master_get_controller (GdlDockMaster *master); -void gdl_dock_master_set_controller (GdlDockMaster *master, - GdlDockObject *new_controller); - -G_END_DECLS - -#endif /* __GDL_DOCK_MASTER_H__ */ diff --git a/src/libgdl/gdl-dock-notebook.c b/src/libgdl/gdl-dock-notebook.c deleted file mode 100644 index 0ffaac902..000000000 --- a/src/libgdl/gdl-dock-notebook.c +++ /dev/null @@ -1,530 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include "gdl-switcher.h" - -#include "gdl-dock-notebook.h" -#include "gdl-dock-tablabel.h" - - -/* Private prototypes */ - -static void gdl_dock_notebook_class_init (GdlDockNotebookClass *klass); -static void gdl_dock_notebook_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_notebook_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gdl_dock_notebook_destroy (GtkObject *object); - -static void gdl_dock_notebook_add (GtkContainer *container, - GtkWidget *widget); -static void gdl_dock_notebook_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); -static GType gdl_dock_notebook_child_type (GtkContainer *container); - -static void gdl_dock_notebook_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); - -static void gdl_dock_notebook_switch_page_cb (GtkNotebook *nb, - GtkWidget *page, - gint page_num, - gpointer data); - -static void gdl_dock_notebook_set_orientation (GdlDockItem *item, - GtkOrientation orientation); - -static gboolean gdl_dock_notebook_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement); - -static void gdl_dock_notebook_present (GdlDockObject *object, - GdlDockObject *child); - -static gboolean gdl_dock_notebook_reorder (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement new_position, - GValue *other_data); - - -/* Class variables and definitions */ - -enum { - PROP_0, - PROP_PAGE -}; - - -/* ----- Private functions ----- */ - -G_DEFINE_TYPE (GdlDockNotebook, gdl_dock_notebook, GDL_TYPE_DOCK_ITEM); - -static void -gdl_dock_notebook_class_init (GdlDockNotebookClass *klass) -{ - static gboolean style_initialized = FALSE; - - GObjectClass *g_object_class; - GtkObjectClass *gtk_object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - GdlDockObjectClass *object_class; - GdlDockItemClass *item_class; - - g_object_class = G_OBJECT_CLASS (klass); - gtk_object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - object_class = GDL_DOCK_OBJECT_CLASS (klass); - item_class = GDL_DOCK_ITEM_CLASS (klass); - - g_object_class->set_property = gdl_dock_notebook_set_property; - g_object_class->get_property = gdl_dock_notebook_get_property; - - gtk_object_class->destroy = gdl_dock_notebook_destroy; - - container_class->add = gdl_dock_notebook_add; - container_class->forall = gdl_dock_notebook_forall; - container_class->child_type = gdl_dock_notebook_child_type; - - object_class->is_compound = TRUE; - object_class->dock = gdl_dock_notebook_dock; - object_class->child_placement = gdl_dock_notebook_child_placement; - object_class->present = gdl_dock_notebook_present; - object_class->reorder = gdl_dock_notebook_reorder; - - item_class->has_grip = FALSE; - item_class->set_orientation = gdl_dock_notebook_set_orientation; - - g_object_class_install_property ( - g_object_class, PROP_PAGE, - g_param_spec_int ("page", _("Page"), - _("The index of the current page"), - 0, G_MAXINT, - 0, - G_PARAM_READWRITE | - GDL_DOCK_PARAM_EXPORT | GDL_DOCK_PARAM_AFTER)); - - if (!style_initialized) { - style_initialized = TRUE; - - gtk_rc_parse_string ( - "style \"gdl-dock-notebook-default\" {\n" - "xthickness = 2\n" - "ythickness = 2\n" - "}\n" - "widget_class \"*.GtkNotebook.GdlDockItem\" " - "style : gtk \"gdl-dock-notebook-default\"\n"); - } -} - -static void -gdl_dock_notebook_notify_cb (GObject *g_object, - GParamSpec *pspec, - gpointer user_data) -{ - g_return_if_fail (user_data != NULL && GDL_IS_DOCK_NOTEBOOK (user_data)); - - /* chain the notify signal */ - g_object_notify (G_OBJECT (user_data), pspec->name); -} - -static gboolean -gdl_dock_notebook_button_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - if (event->type == GDK_BUTTON_PRESS) - GDL_DOCK_ITEM_SET_FLAGS (user_data, GDL_DOCK_USER_ACTION); - else - GDL_DOCK_ITEM_UNSET_FLAGS (user_data, GDL_DOCK_USER_ACTION); - - return FALSE; -} - -static void -gdl_dock_notebook_init (GdlDockNotebook *notebook) -{ - GdlDockItem *item; - - item = GDL_DOCK_ITEM (notebook); - - /* create the container notebook */ - item->child = gdl_switcher_new (); - gtk_widget_set_parent (item->child, GTK_WIDGET (notebook)); - gtk_notebook_set_tab_pos (GTK_NOTEBOOK (item->child), GTK_POS_BOTTOM); - g_signal_connect (item->child, "switch-page", - (GCallback) gdl_dock_notebook_switch_page_cb, (gpointer) item); - g_signal_connect (item->child, "notify::page", - (GCallback) gdl_dock_notebook_notify_cb, (gpointer) item); - g_signal_connect (item->child, "button-press-event", - (GCallback) gdl_dock_notebook_button_cb, (gpointer) item); - g_signal_connect (item->child, "button-release-event", - (GCallback) gdl_dock_notebook_button_cb, (gpointer) item); - gtk_notebook_set_scrollable (GTK_NOTEBOOK (item->child), TRUE); - gtk_widget_show (item->child); -} - -static void -gdl_dock_notebook_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - - switch (prop_id) { - case PROP_PAGE: - if (item->child && GTK_IS_NOTEBOOK (item->child)) { - gtk_notebook_set_current_page (GTK_NOTEBOOK (item->child), - g_value_get_int (value)); - } - - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_notebook_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - - switch (prop_id) { - case PROP_PAGE: - if (item->child && GTK_IS_NOTEBOOK (item->child)) { - g_value_set_int (value, gtk_notebook_get_current_page - (GTK_NOTEBOOK (item->child))); - } - - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - - -static void -gdl_dock_notebook_destroy (GtkObject *object) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - - /* we need to call the virtual first, since in GdlDockDestroy our - children dock objects are detached */ - GTK_OBJECT_CLASS (gdl_dock_notebook_parent_class)->destroy (object); - - /* after that we can remove the GtkNotebook */ - if (item->child) { - gtk_widget_unparent (item->child); - item->child = NULL; - }; -} - -static void -gdl_dock_notebook_switch_page_cb (GtkNotebook *nb, - GtkWidget *page, - gint page_num, - gpointer data) -{ - GdlDockNotebook *notebook; - GtkWidget *tablabel; - GdlDockItem *item; - - notebook = GDL_DOCK_NOTEBOOK (data); - - /* deactivate old tablabel */ - if (gtk_notebook_get_current_page (nb)) { - tablabel = gtk_notebook_get_tab_label ( - nb, gtk_notebook_get_nth_page ( - nb, gtk_notebook_get_current_page (nb))); - if (tablabel && GDL_IS_DOCK_TABLABEL (tablabel)) - gdl_dock_tablabel_deactivate (GDL_DOCK_TABLABEL (tablabel)); - }; - - /* activate new label */ - tablabel = gtk_notebook_get_tab_label ( - nb, page); - if (tablabel && GDL_IS_DOCK_TABLABEL (tablabel)) - gdl_dock_tablabel_activate (GDL_DOCK_TABLABEL (tablabel)); - - if (GDL_DOCK_ITEM_USER_ACTION (notebook) && - GDL_DOCK_OBJECT (notebook)->master) - g_signal_emit_by_name (GDL_DOCK_OBJECT (notebook)->master, - "layout-changed"); - - /* Signal that a new dock item has been selected */ - item = GDL_DOCK_ITEM (page); - gdl_dock_item_notify_selected (item); -} - -static void -gdl_dock_notebook_add (GtkContainer *container, - GtkWidget *widget) -{ - g_return_if_fail (container != NULL && widget != NULL); - g_return_if_fail (GDL_IS_DOCK_NOTEBOOK (container)); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - gdl_dock_object_dock (GDL_DOCK_OBJECT (container), - GDL_DOCK_OBJECT (widget), - GDL_DOCK_CENTER, - NULL); -} - -static void -gdl_dock_notebook_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GdlDockItem *item; - - g_return_if_fail (container != NULL); - g_return_if_fail (GDL_IS_DOCK_NOTEBOOK (container)); - g_return_if_fail (callback != NULL); - - if (include_internals) { - /* use GdlDockItem's forall */ - GTK_CONTAINER_CLASS (gdl_dock_notebook_parent_class)->forall - (container, include_internals, callback, callback_data); - } - else { - item = GDL_DOCK_ITEM (container); - if (item->child) - gtk_container_foreach (GTK_CONTAINER (item->child), callback, callback_data); - } -} - -static GType -gdl_dock_notebook_child_type (GtkContainer *container) -{ - return GDL_TYPE_DOCK_ITEM; -} - -static void -gdl_dock_notebook_dock_child (GdlDockObject *requestor, - gpointer user_data) -{ - struct { - GdlDockObject *object; - GdlDockPlacement position; - GValue *other_data; - } *data = user_data; - - gdl_dock_object_dock (data->object, requestor, data->position, data->other_data); -} - -static void -gdl_dock_notebook_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data) -{ - g_return_if_fail (GDL_IS_DOCK_NOTEBOOK (object)); - g_return_if_fail (GDL_IS_DOCK_ITEM (requestor)); - - /* we only add support for GDL_DOCK_CENTER docking strategy here... for the rest - use our parent class' method */ - if (position == GDL_DOCK_CENTER) { - /* we can only dock simple (not compound) items */ - if (gdl_dock_object_is_compound (requestor)) { - struct { - GdlDockObject *object; - GdlDockPlacement position; - GValue *other_data; - } data; - - gdl_dock_object_freeze (requestor); - - data.object = object; - data.position = position; - data.other_data = other_data; - - gtk_container_foreach (GTK_CONTAINER (requestor), - (GtkCallback) gdl_dock_notebook_dock_child, &data); - - gdl_dock_object_thaw (requestor); - } - else { - GdlDockItem *item = GDL_DOCK_ITEM (object); - GdlDockItem *requestor_item = GDL_DOCK_ITEM (requestor); - gchar *long_name, *stock_id; - GdkPixbuf *pixbuf_icon; - GtkWidget *label; - gint position = -1; - - g_object_get (requestor_item, "long-name", &long_name, - "stock-id", &stock_id, "pixbuf-icon", &pixbuf_icon, NULL); - label = gdl_dock_item_get_tablabel (requestor_item); - if (!label) { - label = gtk_label_new (long_name); - gdl_dock_item_set_tablabel (requestor_item, label); - } -#if 0 - if (GDL_IS_DOCK_TABLABEL (label)) { - gdl_dock_tablabel_deactivate (GDL_DOCK_TABLABEL (label)); - /* hide the item grip, as we will use the tablabel's */ - gdl_dock_item_hide_grip (requestor_item); - } -#endif - - if (other_data && G_VALUE_HOLDS (other_data, G_TYPE_INT)) - position = g_value_get_int (other_data); - - position = gdl_switcher_insert_page (GDL_SWITCHER (item->child), - GTK_WIDGET (requestor), label, - long_name, long_name, - stock_id, pixbuf_icon, position); - - GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED); - - /* Set current page to the newly docked widget. set current page - * really doesn't work if the page widget is not shown - */ - gtk_widget_show (GTK_WIDGET (requestor)); - gtk_notebook_set_current_page (GTK_NOTEBOOK (item->child), - position); - g_free (long_name); - g_free (stock_id); - } - } - else - GDL_DOCK_OBJECT_CLASS (gdl_dock_notebook_parent_class)->dock (object, requestor, position, other_data); -} - -static void -gdl_dock_notebook_set_orientation (GdlDockItem *item, - GtkOrientation orientation) -{ - if (item->child && GTK_IS_NOTEBOOK (item->child)) { - if (orientation == GTK_ORIENTATION_HORIZONTAL) - gtk_notebook_set_tab_pos (GTK_NOTEBOOK (item->child), GTK_POS_TOP); - else - gtk_notebook_set_tab_pos (GTK_NOTEBOOK (item->child), GTK_POS_LEFT); - } - - GDL_DOCK_ITEM_CLASS (gdl_dock_notebook_parent_class)->set_orientation (item, orientation); -} - -static gboolean -gdl_dock_notebook_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - GdlDockPlacement pos = GDL_DOCK_NONE; - - if (item->child) { - GList *children, *l; - - children = gtk_container_get_children (GTK_CONTAINER (item->child)); - for (l = children; l; l = l->next) { - if (l->data == (gpointer) child) { - pos = GDL_DOCK_CENTER; - break; - } - } - g_list_free (children); - } - - if (pos != GDL_DOCK_NONE) { - if (placement) - *placement = pos; - return TRUE; - } - else - return FALSE; -} - -static void -gdl_dock_notebook_present (GdlDockObject *object, - GdlDockObject *child) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - int i; - - i = gtk_notebook_page_num (GTK_NOTEBOOK (item->child), - GTK_WIDGET (child)); - if (i >= 0) - gtk_notebook_set_current_page (GTK_NOTEBOOK (item->child), i); - - GDL_DOCK_OBJECT_CLASS (gdl_dock_notebook_parent_class)->present (object, child); -} - -static gboolean -gdl_dock_notebook_reorder (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement new_position, - GValue *other_data) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - gint current_position, new_pos = -1; - gboolean handled = FALSE; - - if (item->child && new_position == GDL_DOCK_CENTER) { - current_position = gtk_notebook_page_num (GTK_NOTEBOOK (item->child), - GTK_WIDGET (requestor)); - if (current_position >= 0) { - handled = TRUE; - - if (other_data && G_VALUE_HOLDS (other_data, G_TYPE_INT)) - new_pos = g_value_get_int (other_data); - - gtk_notebook_reorder_child (GTK_NOTEBOOK (item->child), - GTK_WIDGET (requestor), - new_pos); - } - } - return handled; -} - -/* ----- Public interface ----- */ - -GtkWidget * -gdl_dock_notebook_new (void) -{ - GdlDockNotebook *notebook; - - notebook = GDL_DOCK_NOTEBOOK (g_object_new (GDL_TYPE_DOCK_NOTEBOOK, NULL)); - GDL_DOCK_OBJECT_UNSET_FLAGS (notebook, GDL_DOCK_AUTOMATIC); - - return GTK_WIDGET (notebook); -} - diff --git a/src/libgdl/gdl-dock-notebook.h b/src/libgdl/gdl-dock-notebook.h deleted file mode 100644 index 063f53642..000000000 --- a/src/libgdl/gdl-dock-notebook.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_NOTEBOOK_H__ -#define __GDL_DOCK_NOTEBOOK_H__ - -#include "libgdl/gdl-dock-item.h" - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_NOTEBOOK (gdl_dock_notebook_get_type ()) -#define GDL_DOCK_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_NOTEBOOK, GdlDockNotebook)) -#define GDL_DOCK_NOTEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_NOTEBOOK, GdlDockNotebookClass)) -#define GDL_IS_DOCK_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_NOTEBOOK)) -#define GDL_IS_DOCK_NOTEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_NOTEBOOK)) -#define GDL_DOCK_NOTEBOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_NOTEBOOK, GdlDockNotebookClass)) - -/* data types & structures */ -typedef struct _GdlDockNotebook GdlDockNotebook; -typedef struct _GdlDockNotebookClass GdlDockNotebookClass; - -struct _GdlDockNotebook { - GdlDockItem item; -}; - -struct _GdlDockNotebookClass { - GdlDockItemClass parent_class; -}; - - -/* public interface */ - -GtkWidget *gdl_dock_notebook_new (void); - -GType gdl_dock_notebook_get_type (void); - -G_END_DECLS - -#endif - diff --git a/src/libgdl/gdl-dock-object.c b/src/libgdl/gdl-dock-object.c deleted file mode 100644 index 4092ecc9f..000000000 --- a/src/libgdl/gdl-dock-object.c +++ /dev/null @@ -1,1027 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-object.c - Abstract base class for all dock related objects - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include -#include - -#include "gdl-dock-object.h" -#include "gdl-dock-master.h" -#include "libgdltypebuiltins.h" -#include "libgdlmarshal.h" - -/* for later use by the registry */ -#include "gdl-dock.h" -#include "gdl-dock-item.h" -#include "gdl-dock-paned.h" -#include "gdl-dock-notebook.h" -#include "gdl-dock-placeholder.h" - - -/* ----- Private prototypes ----- */ - -static void gdl_dock_object_class_init (GdlDockObjectClass *klass); - -static void gdl_dock_object_set_property (GObject *g_object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_object_get_property (GObject *g_object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void gdl_dock_object_finalize (GObject *g_object); - -static void gdl_dock_object_destroy (GtkObject *gtk_object); - -static void gdl_dock_object_show (GtkWidget *widget); -static void gdl_dock_object_hide (GtkWidget *widget); - -static void gdl_dock_object_real_detach (GdlDockObject *object, - gboolean recursive); -static void gdl_dock_object_real_reduce (GdlDockObject *object); -static void gdl_dock_object_dock_unimplemented (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); -static void gdl_dock_object_real_present (GdlDockObject *object, - GdlDockObject *child); - - -/* ----- Private data types and variables ----- */ - -enum { - PROP_0, - PROP_NAME, - PROP_LONG_NAME, - PROP_STOCK_ID, - PROP_PIXBUF_ICON, - PROP_MASTER, - PROP_EXPORT_PROPERTIES -}; - -enum { - DETACH, - DOCK, - LAST_SIGNAL -}; - -static guint gdl_dock_object_signals [LAST_SIGNAL] = { 0 }; - -struct DockRegisterItem { - gchar* nick; - gpointer type; -}; - -static GArray *dock_register = NULL; - -/* ----- Private interface ----- */ - -G_DEFINE_TYPE (GdlDockObject, gdl_dock_object, GTK_TYPE_CONTAINER); - -static void -gdl_dock_object_class_init (GdlDockObjectClass *klass) -{ - GObjectClass *g_object_class; - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - g_object_class = G_OBJECT_CLASS (klass); - object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - - g_object_class->set_property = gdl_dock_object_set_property; - g_object_class->get_property = gdl_dock_object_get_property; - g_object_class->finalize = gdl_dock_object_finalize; - - g_object_class_install_property ( - g_object_class, PROP_NAME, - g_param_spec_string (GDL_DOCK_NAME_PROPERTY, _("Name"), - _("Unique name for identifying the dock object"), - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - GDL_DOCK_PARAM_EXPORT)); - - g_object_class_install_property ( - g_object_class, PROP_LONG_NAME, - g_param_spec_string ("long-name", _("Long name"), - _("Human readable name for the dock object"), - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_object_class_install_property ( - g_object_class, PROP_STOCK_ID, - g_param_spec_string ("stock-id", _("Stock Icon"), - _("Stock icon for the dock object"), - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_object_class_install_property ( - g_object_class, PROP_PIXBUF_ICON, - g_param_spec_pointer ("pixbuf-icon", _("Pixbuf Icon"), - _("Pixbuf icon for the dock object"), - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_MASTER, - g_param_spec_object ("master", _("Dock master"), - _("Dock master this dock object is bound to"), - GDL_TYPE_DOCK_MASTER, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - object_class->destroy = gdl_dock_object_destroy; - - widget_class->show = gdl_dock_object_show; - widget_class->hide = gdl_dock_object_hide; - - klass->is_compound = TRUE; - - klass->detach = gdl_dock_object_real_detach; - klass->reduce = gdl_dock_object_real_reduce; - klass->dock_request = NULL; - klass->dock = gdl_dock_object_dock_unimplemented; - klass->reorder = NULL; - klass->present = gdl_dock_object_real_present; - klass->child_placement = NULL; - - gdl_dock_object_signals [DETACH] = - g_signal_new ("detach", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdlDockObjectClass, detach), - NULL, - NULL, - gdl_marshal_VOID__BOOLEAN, - G_TYPE_NONE, - 1, - G_TYPE_BOOLEAN); - - gdl_dock_object_signals [DOCK] = - g_signal_new ("dock", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdlDockObjectClass, dock), - NULL, - NULL, - gdl_marshal_VOID__OBJECT_ENUM_BOXED, - G_TYPE_NONE, - 3, - GDL_TYPE_DOCK_OBJECT, - GDL_TYPE_DOCK_PLACEMENT, - G_TYPE_VALUE); -} - -static void -gdl_dock_object_init (GdlDockObject *object) -{ - object->flags = GDL_DOCK_AUTOMATIC; - object->freeze_count = 0; -} - -static void -gdl_dock_object_set_property (GObject *g_object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockObject *object = GDL_DOCK_OBJECT (g_object); - - switch (prop_id) { - case PROP_NAME: - g_free (object->name); - object->name = g_value_dup_string (value); - break; - case PROP_LONG_NAME: - g_free (object->long_name); - object->long_name = g_value_dup_string (value); - break; - case PROP_STOCK_ID: - g_free (object->stock_id); - object->stock_id = g_value_dup_string (value); - break; - case PROP_PIXBUF_ICON: - object->pixbuf_icon = g_value_get_pointer (value); - break; - case PROP_MASTER: - if (g_value_get_object (value)) - gdl_dock_object_bind (object, g_value_get_object (value)); - else - gdl_dock_object_unbind (object); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_object_get_property (GObject *g_object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockObject *object = GDL_DOCK_OBJECT (g_object); - - switch (prop_id) { - case PROP_NAME: - g_value_set_string (value, object->name); - break; - case PROP_LONG_NAME: - g_value_set_string (value, object->long_name); - break; - case PROP_STOCK_ID: - g_value_set_string (value, object->stock_id); - break; - case PROP_PIXBUF_ICON: - g_value_set_pointer (value, object->pixbuf_icon); - break; - case PROP_MASTER: - g_value_set_object (value, object->master); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_object_finalize (GObject *g_object) -{ - GdlDockObject *object; - - g_return_if_fail (g_object != NULL && GDL_IS_DOCK_OBJECT (g_object)); - - object = GDL_DOCK_OBJECT (g_object); - - g_free (object->name); - object->name = NULL; - g_free (object->long_name); - object->long_name = NULL; - g_free (object->stock_id); - object->stock_id = NULL; - object->pixbuf_icon = NULL; - - G_OBJECT_CLASS (gdl_dock_object_parent_class)->finalize (g_object); -} - -static void -gdl_dock_object_foreach_detach (GdlDockObject *object, - gpointer user_data) -{ - gdl_dock_object_detach (object, TRUE); -} - -static void -gdl_dock_object_destroy (GtkObject *gtk_object) -{ - GdlDockObject *object; - - g_return_if_fail (GDL_IS_DOCK_OBJECT (gtk_object)); - - object = GDL_DOCK_OBJECT (gtk_object); - if (gdl_dock_object_is_compound (object)) { - /* detach our dock object children if we have some, and even - if we are not attached, so they can get notification */ - gdl_dock_object_freeze (object); - gtk_container_foreach (GTK_CONTAINER (object), - (GtkCallback) gdl_dock_object_foreach_detach, - NULL); - object->reduce_pending = FALSE; - gdl_dock_object_thaw (object); - } - if (GDL_DOCK_OBJECT_ATTACHED (object)) { - /* detach ourselves */ - gdl_dock_object_detach (object, FALSE); - } - - /* finally unbind us */ - if (object->master) - gdl_dock_object_unbind (object); - - GTK_OBJECT_CLASS(gdl_dock_object_parent_class)->destroy (gtk_object); -} - -static void -gdl_dock_object_foreach_automatic (GdlDockObject *object, - gpointer user_data) -{ - void (* function) (GtkWidget *) = user_data; - - if (GDL_DOCK_OBJECT_AUTOMATIC (object)) - (* function) (GTK_WIDGET (object)); -} - -static void -gdl_dock_object_show (GtkWidget *widget) -{ - if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (widget))) { - gtk_container_foreach (GTK_CONTAINER (widget), - (GtkCallback) gdl_dock_object_foreach_automatic, - gtk_widget_show); - } - GTK_WIDGET_CLASS (gdl_dock_object_parent_class)->show (widget); -} - -static void -gdl_dock_object_hide (GtkWidget *widget) -{ - if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT (widget))) { - gtk_container_foreach (GTK_CONTAINER (widget), - (GtkCallback) gdl_dock_object_foreach_automatic, - gtk_widget_hide); - } - GTK_WIDGET_CLASS (gdl_dock_object_parent_class)->hide (widget); -} - -static void -gdl_dock_object_real_detach (GdlDockObject *object, - gboolean recursive) -{ - GdlDockObject *parent; - GtkWidget *widget; - - g_return_if_fail (object != NULL); - - /* detach children */ - if (recursive && gdl_dock_object_is_compound (object)) { - gtk_container_foreach (GTK_CONTAINER (object), - (GtkCallback) gdl_dock_object_detach, - GINT_TO_POINTER (recursive)); - } - - /* detach the object itself */ - GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_ATTACHED); - parent = gdl_dock_object_get_parent_object (object); - widget = GTK_WIDGET (object); - if (gtk_widget_get_parent (widget)) - gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (GTK_WIDGET (widget))), widget); - if (parent) - gdl_dock_object_reduce (parent); -} - -static void -gdl_dock_object_real_reduce (GdlDockObject *object) -{ - GdlDockObject *parent; - GList *children; - - g_return_if_fail (object != NULL); - - if (!gdl_dock_object_is_compound (object)) - return; - - parent = gdl_dock_object_get_parent_object (object); - children = gtk_container_get_children (GTK_CONTAINER (object)); - if (g_list_length (children) <= 1) { - GList *l; - GList *dchildren = NULL; - - /* detach ourselves and then re-attach our children to our - current parent. if we are not currently attached, the - children are detached */ - if (parent) - gdl_dock_object_freeze (parent); - gdl_dock_object_freeze (object); - /* Detach the children before detaching this object, since in this - * way the children can have access to the whole object hierarchy. - * Set the InDetach flag now, so the children know that this object - * is going to be detached. */ - - - GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_DETACH); - - for (l = children; l; l = l->next) { - GdlDockObject *child; - - if (!GDL_IS_DOCK_OBJECT (l->data)) - continue; - - child = GDL_DOCK_OBJECT (l->data); - - g_object_ref (child); - gdl_dock_object_detach (child, FALSE); - GDL_DOCK_OBJECT_SET_FLAGS (child, GDL_DOCK_IN_REFLOW); - if (parent) - dchildren = g_list_append (dchildren, child); - GDL_DOCK_OBJECT_UNSET_FLAGS (child, GDL_DOCK_IN_REFLOW); - } - /* Now it can be detached */ - gdl_dock_object_detach (object, FALSE); - - /* After detaching the reduced object, we can add the - children (the only child in fact) to the new parent */ - for (l = dchildren; l; l = l->next) { - gtk_container_add (GTK_CONTAINER (parent), l->data); - g_object_unref (l->data); - } - g_list_free (dchildren); - - - /* sink the widget, so any automatic floating widget is destroyed */ - g_object_ref_sink (object); - /* don't reenter */ - object->reduce_pending = FALSE; - gdl_dock_object_thaw (object); - if (parent) - gdl_dock_object_thaw (parent); - } - g_list_free (children); -} - -static void -gdl_dock_object_dock_unimplemented (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data) -{ - g_warning (_("Call to gdl_dock_object_dock in a dock object %p " - "(object type is %s) which hasn't implemented this method"), - object, G_OBJECT_TYPE_NAME (object)); -} - -static void -gdl_dock_object_real_present (GdlDockObject *object, - GdlDockObject *child) -{ - gtk_widget_show (GTK_WIDGET (object)); -} - - -/* ----- Public interface ----- */ - -gboolean -gdl_dock_object_is_compound (GdlDockObject *object) -{ - GdlDockObjectClass *klass; - - g_return_val_if_fail (object != NULL, FALSE); - g_return_val_if_fail (GDL_IS_DOCK_OBJECT (object), FALSE); - - klass = GDL_DOCK_OBJECT_GET_CLASS (object); - return klass->is_compound; -} - -void -gdl_dock_object_detach (GdlDockObject *object, - gboolean recursive) -{ - g_return_if_fail (object != NULL); - - if (!GDL_IS_DOCK_OBJECT (object)) - return; - - if (!GDL_DOCK_OBJECT_ATTACHED (object)) - return; - - /* freeze the object to avoid reducing while detaching children */ - gdl_dock_object_freeze (object); - GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_DETACH); - g_signal_emit (object, gdl_dock_object_signals [DETACH], 0, recursive); - GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_DETACH); - gdl_dock_object_thaw (object); -} - -GdlDockObject * -gdl_dock_object_get_parent_object (GdlDockObject *object) -{ - GtkWidget *parent; - - g_return_val_if_fail (object != NULL, NULL); - - parent = gtk_widget_get_parent (GTK_WIDGET (object)); - while (parent && !GDL_IS_DOCK_OBJECT (parent)) { - parent = gtk_widget_get_parent (parent); - } - - return parent ? GDL_DOCK_OBJECT (parent) : NULL; -} - -void -gdl_dock_object_freeze (GdlDockObject *object) -{ - g_return_if_fail (object != NULL); - - if (object->freeze_count == 0) { - g_object_ref (object); /* dock objects shouldn't be - destroyed if they are frozen */ - } - object->freeze_count++; -} - -void -gdl_dock_object_thaw (GdlDockObject *object) -{ - g_return_if_fail (object != NULL); - g_return_if_fail (object->freeze_count > 0); - - object->freeze_count--; - if (object->freeze_count == 0) { - if (object->reduce_pending) { - object->reduce_pending = FALSE; - gdl_dock_object_reduce (object); - } - g_object_unref (object); - } -} - -void -gdl_dock_object_reduce (GdlDockObject *object) -{ - g_return_if_fail (object != NULL); - - if (GDL_DOCK_OBJECT_FROZEN (object)) { - object->reduce_pending = TRUE; - return; - } - - if (GDL_DOCK_OBJECT_GET_CLASS (object)->reduce) - GDL_DOCK_OBJECT_GET_CLASS (object)->reduce (object); -} - -gboolean -gdl_dock_object_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request) -{ - g_return_val_if_fail (object != NULL && request != NULL, FALSE); - - if (GDL_DOCK_OBJECT_GET_CLASS (object)->dock_request) - return GDL_DOCK_OBJECT_GET_CLASS (object)->dock_request (object, x, y, request); - else - return FALSE; -} - -/** - * gdl_dock_object_dock: - * @object: - * @requestor: - * @position: - * @other_data: (allow-none): - **/ -void -gdl_dock_object_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data) -{ - GdlDockObject *parent; - - g_return_if_fail (object != NULL && requestor != NULL); - - if (object == requestor) - return; - - if (!object->master) - g_warning (_("Dock operation requested in a non-bound object %p. " - "The application might crash"), object); - - if (!gdl_dock_object_is_bound (requestor)) - gdl_dock_object_bind (requestor, object->master); - - if (requestor->master != object->master) { - g_warning (_("Cannot dock %p to %p because they belong to different masters"), - requestor, object); - return; - } - - /* first, see if we can optimize things by reordering */ - if (position != GDL_DOCK_NONE) { - parent = gdl_dock_object_get_parent_object (object); - if (gdl_dock_object_reorder (object, requestor, position, other_data) || - (parent && gdl_dock_object_reorder (parent, requestor, position, other_data))) - return; - } - - /* freeze the object, since under some conditions it might be destroyed when - detaching the requestor */ - gdl_dock_object_freeze (object); - - /* detach the requestor before docking */ - g_object_ref (requestor); - if (GDL_DOCK_OBJECT_ATTACHED (requestor)) - gdl_dock_object_detach (requestor, FALSE); - - if (position != GDL_DOCK_NONE) - g_signal_emit (object, gdl_dock_object_signals [DOCK], 0, - requestor, position, other_data); - - g_object_unref (requestor); - gdl_dock_object_thaw (object); -} - -void -gdl_dock_object_bind (GdlDockObject *object, - GObject *master) -{ - g_return_if_fail (object != NULL && master != NULL); - g_return_if_fail (GDL_IS_DOCK_MASTER (master)); - - if (object->master == master) - /* nothing to do here */ - return; - - if (object->master) { - g_warning (_("Attempt to bind to %p an already bound dock object %p " - "(current master: %p)"), master, object, object->master); - return; - } - - gdl_dock_master_add (GDL_DOCK_MASTER (master), object); - object->master = master; - g_object_add_weak_pointer (master, (gpointer *) &object->master); - - g_object_notify (G_OBJECT (object), "master"); -} - -void -gdl_dock_object_unbind (GdlDockObject *object) -{ - g_return_if_fail (object != NULL); - - g_object_ref (object); - - /* detach the object first */ - if (GDL_DOCK_OBJECT_ATTACHED (object)) - gdl_dock_object_detach (object, TRUE); - - if (object->master) { - GObject *master = object->master; - g_object_remove_weak_pointer (master, (gpointer *) &object->master); - object->master = NULL; - gdl_dock_master_remove (GDL_DOCK_MASTER (master), object); - g_object_notify (G_OBJECT (object), "master"); - } - g_object_unref (object); -} - -gboolean -gdl_dock_object_is_bound (GdlDockObject *object) -{ - g_return_val_if_fail (object != NULL, FALSE); - return (object->master != NULL); -} - -gboolean -gdl_dock_object_reorder (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement new_position, - GValue *other_data) -{ - g_return_val_if_fail (object != NULL && child != NULL, FALSE); - - if (GDL_DOCK_OBJECT_GET_CLASS (object)->reorder) - return GDL_DOCK_OBJECT_GET_CLASS (object)->reorder (object, child, new_position, other_data); - else - return FALSE; -} - -void -gdl_dock_object_present (GdlDockObject *object, - GdlDockObject *child) -{ - GdlDockObject *parent; - - g_return_if_fail (object != NULL && GDL_IS_DOCK_OBJECT (object)); - - parent = gdl_dock_object_get_parent_object (object); - if (parent) - /* chain the call to our parent */ - gdl_dock_object_present (parent, object); - - if (GDL_DOCK_OBJECT_GET_CLASS (object)->present) - GDL_DOCK_OBJECT_GET_CLASS (object)->present (object, child); -} - -/** - * gdl_dock_object_child_placement: - * @object: the dock object we are asking for child placement - * @child: the child of the @object we want the placement for - * @placement: where to return the placement information - * - * This function returns information about placement of a child dock - * object inside another dock object. The function returns %TRUE if - * @child is effectively a child of @object. @placement should - * normally be initially setup to %GDL_DOCK_NONE. If it's set to some - * other value, this function will not touch the stored value if the - * specified placement is "compatible" with the actual placement of - * the child. - * - * @placement can be %NULL, in which case the function simply tells if - * @child is attached to @object. - * - * Returns: %TRUE if @child is a child of @object. - */ -gboolean -gdl_dock_object_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement) -{ - g_return_val_if_fail (object != NULL && child != NULL, FALSE); - - /* simple case */ - if (!gdl_dock_object_is_compound (object)) - return FALSE; - - if (GDL_DOCK_OBJECT_GET_CLASS (object)->child_placement) - return GDL_DOCK_OBJECT_GET_CLASS (object)->child_placement (object, child, placement); - else - return FALSE; -} - - -/* ----- dock param type functions start here ------ */ - -static void -gdl_dock_param_export_int (const GValue *src, - GValue *dst) -{ - dst->data [0].v_pointer = g_strdup_printf ("%d", src->data [0].v_int); -} - -static void -gdl_dock_param_export_uint (const GValue *src, - GValue *dst) -{ - dst->data [0].v_pointer = g_strdup_printf ("%u", src->data [0].v_uint); -} - -static void -gdl_dock_param_export_string (const GValue *src, - GValue *dst) -{ - dst->data [0].v_pointer = g_strdup (src->data [0].v_pointer); -} - -static void -gdl_dock_param_export_bool (const GValue *src, - GValue *dst) -{ - dst->data [0].v_pointer = g_strdup_printf ("%s", src->data [0].v_int ? "yes" : "no"); -} - -static void -gdl_dock_param_export_placement (const GValue *src, - GValue *dst) -{ - switch (src->data [0].v_int) { - case GDL_DOCK_NONE: - dst->data [0].v_pointer = g_strdup (""); - break; - case GDL_DOCK_TOP: - dst->data [0].v_pointer = g_strdup ("top"); - break; - case GDL_DOCK_BOTTOM: - dst->data [0].v_pointer = g_strdup ("bottom"); - break; - case GDL_DOCK_LEFT: - dst->data [0].v_pointer = g_strdup ("left"); - break; - case GDL_DOCK_RIGHT: - dst->data [0].v_pointer = g_strdup ("right"); - break; - case GDL_DOCK_CENTER: - dst->data [0].v_pointer = g_strdup ("center"); - break; - case GDL_DOCK_FLOATING: - dst->data [0].v_pointer = g_strdup ("floating"); - break; - } -} - -static void -gdl_dock_param_import_int (const GValue *src, - GValue *dst) -{ - dst->data [0].v_int = atoi (src->data [0].v_pointer); -} - -static void -gdl_dock_param_import_uint (const GValue *src, - GValue *dst) -{ - dst->data [0].v_uint = (guint) atoi (src->data [0].v_pointer); -} - -static void -gdl_dock_param_import_string (const GValue *src, - GValue *dst) -{ - dst->data [0].v_pointer = g_strdup (src->data [0].v_pointer); -} - -static void -gdl_dock_param_import_bool (const GValue *src, - GValue *dst) -{ - dst->data [0].v_int = !strcmp (src->data [0].v_pointer, "yes"); -} - -static void -gdl_dock_param_import_placement (const GValue *src, - GValue *dst) -{ - if (!strcmp (src->data [0].v_pointer, "top")) - dst->data [0].v_int = GDL_DOCK_TOP; - else if (!strcmp (src->data [0].v_pointer, "bottom")) - dst->data [0].v_int = GDL_DOCK_BOTTOM; - else if (!strcmp (src->data [0].v_pointer, "center")) - dst->data [0].v_int = GDL_DOCK_CENTER; - else if (!strcmp (src->data [0].v_pointer, "left")) - dst->data [0].v_int = GDL_DOCK_LEFT; - else if (!strcmp (src->data [0].v_pointer, "right")) - dst->data [0].v_int = GDL_DOCK_RIGHT; - else if (!strcmp (src->data [0].v_pointer, "floating")) - dst->data [0].v_int = GDL_DOCK_FLOATING; - else - dst->data [0].v_int = GDL_DOCK_NONE; -} - -GType -gdl_dock_param_get_type (void) -{ - static GType our_type = 0; - - if (our_type == 0) { - GTypeInfo tinfo = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - our_type = g_type_register_static (G_TYPE_STRING, "GdlDockParam", &tinfo, 0); - - /* register known transform functions */ - /* exporters */ - g_value_register_transform_func (G_TYPE_INT, our_type, gdl_dock_param_export_int); - g_value_register_transform_func (G_TYPE_UINT, our_type, gdl_dock_param_export_uint); - g_value_register_transform_func (G_TYPE_STRING, our_type, gdl_dock_param_export_string); - g_value_register_transform_func (G_TYPE_BOOLEAN, our_type, gdl_dock_param_export_bool); - g_value_register_transform_func (GDL_TYPE_DOCK_PLACEMENT, our_type, gdl_dock_param_export_placement); - /* importers */ - g_value_register_transform_func (our_type, G_TYPE_INT, gdl_dock_param_import_int); - g_value_register_transform_func (our_type, G_TYPE_UINT, gdl_dock_param_import_uint); - g_value_register_transform_func (our_type, G_TYPE_STRING, gdl_dock_param_import_string); - g_value_register_transform_func (our_type, G_TYPE_BOOLEAN, gdl_dock_param_import_bool); - g_value_register_transform_func (our_type, GDL_TYPE_DOCK_PLACEMENT, gdl_dock_param_import_placement); - } - - return our_type; -} - -/* -------------- nick <-> type conversion functions --------------- */ - -static void -gdl_dock_object_register_init (void) -{ - const size_t n_default = 5; - guint i = 0; - struct DockRegisterItem default_items[n_default]; - - if (dock_register) - return; - - dock_register - = g_array_new (FALSE, FALSE, sizeof (struct DockRegisterItem)); - - /* add known types */ - default_items[0].nick = "dock"; - default_items[0].type = (gpointer) GDL_TYPE_DOCK; - default_items[1].nick = "item"; - default_items[1].type = (gpointer) GDL_TYPE_DOCK_ITEM; - default_items[2].nick = "paned"; - default_items[2].type = (gpointer) GDL_TYPE_DOCK_PANED; - default_items[3].nick = "notebook"; - default_items[3].type = (gpointer) GDL_TYPE_DOCK_NOTEBOOK; - default_items[4].nick = "placeholder"; - default_items[4].type = (gpointer) GDL_TYPE_DOCK_PLACEHOLDER; - - for (i = 0; i < n_default; i++) - g_array_append_val (dock_register, default_items[i]); -} - -/** - * gdl_dock_object_nick_from_type: - * @type: The type for which to find the nickname - * - * Finds the nickname for a given type - * - * Returns: If the object has a nickname, then it is returned. - * Otherwise, the type name. - */ -const gchar * -gdl_dock_object_nick_from_type (GType type) -{ - gchar *nick = NULL; - guint i = 0; - - if (!dock_register) - gdl_dock_object_register_init (); - - for (i=0; i < dock_register->len; i++) { - struct DockRegisterItem item - = g_array_index (dock_register, struct DockRegisterItem, i); - - if (g_direct_equal (item.type, (gpointer) type)) - nick = g_strdup (item.nick); - } - - return nick ? nick : g_type_name (type); -} - -/** - * gdl_dock_object_type_from_nick: - * @nick: The nickname for the object type - * - * Finds the object type assigned to a given nickname. - * - * Returns: If the nickname has previously been assigned, then the corresponding - * object type is returned. Otherwise, %G_TYPE_NONE. - */ -GType -gdl_dock_object_type_from_nick (const gchar *nick) -{ - GType type = G_TYPE_NONE; - gboolean nick_is_in_register = FALSE; - guint i = 0; - - if (!dock_register) - gdl_dock_object_register_init (); - - for (i = 0; i < dock_register->len; i++) { - struct DockRegisterItem item - = g_array_index (dock_register, struct DockRegisterItem, i); - - if (!g_strcmp0 (nick, item.nick)) { - nick_is_in_register = TRUE; - type = (GType) item.type; - } - } - if (!nick_is_in_register) { - /* try searching in the glib type system */ - type = g_type_from_name (nick); - } - - return type; -} - -/** - * gdl_dock_object_set_type_for_nick: - * @nick: The nickname for the object type - * @type: The object type - * - * Assigns an object type to a given nickname. If the nickname already exists, - * then it reassigns it to a new object type. - * - * Returns: If the nick was previously assigned, the old type is returned. - * Otherwise, %G_TYPE_NONE. - */ -GType -gdl_dock_object_set_type_for_nick (const gchar *nick, - GType type) -{ - GType old_type = G_TYPE_NONE; - guint i = 0; - struct DockRegisterItem new_item; - new_item.nick = g_strdup(nick); - new_item.type = (gpointer) type; - - if (!dock_register) - gdl_dock_object_register_init (); - - g_return_val_if_fail (g_type_is_a (type, GDL_TYPE_DOCK_OBJECT), G_TYPE_NONE); - - for (i = 0; i < dock_register->len; i++) { - struct DockRegisterItem item - = g_array_index (dock_register, struct DockRegisterItem, i); - - if (!g_strcmp0 (nick, item.nick)) { - old_type = (GType) item.type; - g_array_insert_val (dock_register, i, new_item); - } - } - - return old_type; -} - diff --git a/src/libgdl/gdl-dock-object.h b/src/libgdl/gdl-dock-object.h deleted file mode 100644 index f8b192f35..000000000 --- a/src/libgdl/gdl-dock-object.h +++ /dev/null @@ -1,225 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-object.h - Abstract base class for all dock related objects - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_OBJECT_H__ -#define __GDL_DOCK_OBJECT_H__ - -#include - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_OBJECT (gdl_dock_object_get_type ()) -#define GDL_DOCK_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_OBJECT, GdlDockObject)) -#define GDL_DOCK_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_OBJECT, GdlDockObjectClass)) -#define GDL_IS_DOCK_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_OBJECT)) -#define GDL_IS_DOCK_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_OBJECT)) -#define GDL_DOCK_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_OBJECT, GdlDockObjectClass)) - -/* data types & structures */ -typedef enum { - /* the parameter is to be exported for later layout rebuilding */ - GDL_DOCK_PARAM_EXPORT = 1 << G_PARAM_USER_SHIFT, - /* the parameter must be set after adding the children objects */ - GDL_DOCK_PARAM_AFTER = 1 << (G_PARAM_USER_SHIFT + 1) -} GdlDockParamFlags; - -#define GDL_DOCK_NAME_PROPERTY "name" -#define GDL_DOCK_MASTER_PROPERTY "master" - -typedef enum { - GDL_DOCK_AUTOMATIC = 1 << 0, - GDL_DOCK_ATTACHED = 1 << 1, - GDL_DOCK_IN_REFLOW = 1 << 2, - GDL_DOCK_IN_DETACH = 1 << 3 -} GdlDockObjectFlags; - -#define GDL_DOCK_OBJECT_FLAGS_SHIFT 8 - -typedef enum { - GDL_DOCK_NONE = 0, - GDL_DOCK_TOP, - GDL_DOCK_BOTTOM, - GDL_DOCK_RIGHT, - GDL_DOCK_LEFT, - GDL_DOCK_CENTER, - GDL_DOCK_FLOATING -} GdlDockPlacement; - -typedef struct _GdlDockObject GdlDockObject; -typedef struct _GdlDockObjectClass GdlDockObjectClass; -typedef struct _GdlDockRequest GdlDockRequest; - -struct _GdlDockRequest { - GdlDockObject *applicant; - GdlDockObject *target; - GdlDockPlacement position; - GdkRectangle rect; - GValue extra; -}; - -struct _GdlDockObject { - GtkContainer container; - - GdlDockObjectFlags flags; - gint freeze_count; - - GObject *master; - gchar *name; - gchar *long_name; - gchar *stock_id; - GdkPixbuf *pixbuf_icon; - - gboolean reduce_pending; -}; - -struct _GdlDockObjectClass { - GtkContainerClass parent_class; - - gboolean is_compound; - - void (* detach) (GdlDockObject *object, - gboolean recursive); - void (* reduce) (GdlDockObject *object); - - gboolean (* dock_request) (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request); - - void (* dock) (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); - - gboolean (* reorder) (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement new_position, - GValue *other_data); - - void (* present) (GdlDockObject *object, - GdlDockObject *child); - - gboolean (* child_placement) (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement); -}; - -/* additional macros */ -#define GDL_DOCK_OBJECT_FLAGS(obj) (GDL_DOCK_OBJECT (obj)->flags) -#define GDL_DOCK_OBJECT_AUTOMATIC(obj) \ - ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_AUTOMATIC) != 0) -#define GDL_DOCK_OBJECT_ATTACHED(obj) \ - ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_ATTACHED) != 0) -#define GDL_DOCK_OBJECT_IN_REFLOW(obj) \ - ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_IN_REFLOW) != 0) -#define GDL_DOCK_OBJECT_IN_DETACH(obj) \ - ((GDL_DOCK_OBJECT_FLAGS (obj) & GDL_DOCK_IN_DETACH) != 0) - -#define GDL_DOCK_OBJECT_SET_FLAGS(obj,flag) \ - G_STMT_START { (GDL_DOCK_OBJECT_FLAGS (obj) |= (flag)); } G_STMT_END -#define GDL_DOCK_OBJECT_UNSET_FLAGS(obj,flag) \ - G_STMT_START { (GDL_DOCK_OBJECT_FLAGS (obj) &= ~(flag)); } G_STMT_END - -#define GDL_DOCK_OBJECT_FROZEN(obj) (GDL_DOCK_OBJECT (obj)->freeze_count > 0) - - -/* public interface */ - -GType gdl_dock_object_get_type (void); - -gboolean gdl_dock_object_is_compound (GdlDockObject *object); - -void gdl_dock_object_detach (GdlDockObject *object, - gboolean recursive); - -GdlDockObject *gdl_dock_object_get_parent_object (GdlDockObject *object); - -void gdl_dock_object_freeze (GdlDockObject *object); -void gdl_dock_object_thaw (GdlDockObject *object); - -void gdl_dock_object_reduce (GdlDockObject *object); - -gboolean gdl_dock_object_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request); -void gdl_dock_object_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); - -void gdl_dock_object_bind (GdlDockObject *object, - GObject *master); -void gdl_dock_object_unbind (GdlDockObject *object); -gboolean gdl_dock_object_is_bound (GdlDockObject *object); - -gboolean gdl_dock_object_reorder (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement new_position, - GValue *other_data); - -void gdl_dock_object_present (GdlDockObject *object, - GdlDockObject *child); - -gboolean gdl_dock_object_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement); - -/* other types */ - -/* this type derives from G_TYPE_STRING and is meant to be the basic - type for serializing object parameters which are exported - (i.e. those that are needed for layout rebuilding) */ -#define GDL_TYPE_DOCK_PARAM (gdl_dock_param_get_type ()) - -GType gdl_dock_param_get_type (void); - -/* functions for setting/retrieving nick names for serializing GdlDockObject types */ -const gchar *gdl_dock_object_nick_from_type (GType type); -GType gdl_dock_object_type_from_nick (const gchar *nick); -GType gdl_dock_object_set_type_for_nick (const gchar *nick, - GType type); - - -/* helper macros */ -#define GDL_TRACE_OBJECT(object, format, args...) \ - G_STMT_START { \ - g_log (G_LOG_DOMAIN, \ - G_LOG_LEVEL_DEBUG, \ - "%s:%d (%s) %s [%p %d%s:%d]: " format, \ - __FILE__, \ - __LINE__, \ - __PRETTY_FUNCTION__, \ - G_OBJECT_TYPE_NAME (object), object, \ - G_OBJECT (object)->ref_count, \ - (GTK_IS_OBJECT (object) && g_object_is_floating (object)) ? "(float)" : "", \ - GDL_IS_DOCK_OBJECT (object) ? GDL_DOCK_OBJECT (object)->freeze_count : -1, \ - ##args); } G_STMT_END - - - -G_END_DECLS - -#endif /* __GDL_DOCK_OBJECT_H__ */ - diff --git a/src/libgdl/gdl-dock-paned.c b/src/libgdl/gdl-dock-paned.c deleted file mode 100644 index 5b4561ef3..000000000 --- a/src/libgdl/gdl-dock-paned.c +++ /dev/null @@ -1,678 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-paned.h - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include -#include - -#include "gdl-dock-paned.h" - - -/* Private prototypes */ - -static void gdl_dock_paned_class_init (GdlDockPanedClass *klass); -static void gdl_dock_paned_init (GdlDockPaned *paned); -static GObject *gdl_dock_paned_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_param); -static void gdl_dock_paned_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_paned_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gdl_dock_paned_destroy (GtkObject *object); - -static void gdl_dock_paned_add (GtkContainer *container, - GtkWidget *widget); -static void gdl_dock_paned_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); -static GType gdl_dock_paned_child_type (GtkContainer *container); - -static gboolean gdl_dock_paned_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request); -static void gdl_dock_paned_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); - -static void gdl_dock_paned_set_orientation (GdlDockItem *item, - GtkOrientation orientation); - -static gboolean gdl_dock_paned_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement); - - -/* ----- Class variables and definitions ----- */ - -#define SPLIT_RATIO 0.3 - -enum { - PROP_0, - PROP_POSITION -}; - - -/* ----- Private functions ----- */ - -G_DEFINE_TYPE (GdlDockPaned, gdl_dock_paned, GDL_TYPE_DOCK_ITEM); - -static void -gdl_dock_paned_class_init (GdlDockPanedClass *klass) -{ - GObjectClass *g_object_class; - GtkObjectClass *gtk_object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - GdlDockObjectClass *object_class; - GdlDockItemClass *item_class; - - g_object_class = G_OBJECT_CLASS (klass); - gtk_object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - object_class = GDL_DOCK_OBJECT_CLASS (klass); - item_class = GDL_DOCK_ITEM_CLASS (klass); - - g_object_class->set_property = gdl_dock_paned_set_property; - g_object_class->get_property = gdl_dock_paned_get_property; - g_object_class->constructor = gdl_dock_paned_constructor; - - gtk_object_class->destroy = gdl_dock_paned_destroy; - - container_class->add = gdl_dock_paned_add; - container_class->forall = gdl_dock_paned_forall; - container_class->child_type = gdl_dock_paned_child_type; - - object_class->is_compound = TRUE; - - object_class->dock_request = gdl_dock_paned_dock_request; - object_class->dock = gdl_dock_paned_dock; - object_class->child_placement = gdl_dock_paned_child_placement; - - item_class->has_grip = FALSE; - item_class->set_orientation = gdl_dock_paned_set_orientation; - - g_object_class_install_property ( - g_object_class, PROP_POSITION, - g_param_spec_uint ("position", _("Position"), - _("Position of the divider in pixels"), - 0, G_MAXINT, 0, - G_PARAM_READWRITE | - GDL_DOCK_PARAM_EXPORT | GDL_DOCK_PARAM_AFTER)); -} - -static void -gdl_dock_paned_init (GdlDockPaned *paned) -{ - paned->position_changed = FALSE; -} - -static void -gdl_dock_paned_notify_cb (GObject *g_object, - GParamSpec *pspec, - gpointer user_data) -{ - GdlDockPaned *paned; - - g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PANED (user_data)); - - /* chain the notification to the GdlDockPaned */ - g_object_notify (G_OBJECT (user_data), pspec->name); - - paned = GDL_DOCK_PANED (user_data); - - if (GDL_DOCK_ITEM_USER_ACTION (user_data) && !strcmp (pspec->name, "position")) - paned->position_changed = TRUE; -} - -static gboolean -gdl_dock_paned_button_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - GdlDockPaned *paned; - - g_return_val_if_fail (user_data != NULL && GDL_IS_DOCK_PANED (user_data), FALSE); - - paned = GDL_DOCK_PANED (user_data); - if (event->button == 1) { - if (event->type == GDK_BUTTON_PRESS) - GDL_DOCK_ITEM_SET_FLAGS (user_data, GDL_DOCK_USER_ACTION); - else { - GDL_DOCK_ITEM_UNSET_FLAGS (user_data, GDL_DOCK_USER_ACTION); - if (paned->position_changed) { - /* emit pending layout changed signal to track separator position */ - if (GDL_DOCK_OBJECT (paned)->master) - g_signal_emit_by_name (GDL_DOCK_OBJECT (paned)->master, "layout-changed"); - paned->position_changed = FALSE; - } - } - } - - return FALSE; -} - -static void -gdl_dock_paned_create_child (GdlDockPaned *paned, - GtkOrientation orientation) -{ - GdlDockItem *item; - - item = GDL_DOCK_ITEM (paned); - - if (item->child) - gtk_widget_unparent (GTK_WIDGET (item->child)); - - /* create the container paned */ - if (orientation == GTK_ORIENTATION_HORIZONTAL) - item->child = gtk_hpaned_new (); - else - item->child = gtk_vpaned_new (); - - /* get notification for propagation */ - g_signal_connect (item->child, "notify::position", - (GCallback) gdl_dock_paned_notify_cb, (gpointer) item); - g_signal_connect (item->child, "button-press-event", - (GCallback) gdl_dock_paned_button_cb, (gpointer) item); - g_signal_connect (item->child, "button-release-event", - (GCallback) gdl_dock_paned_button_cb, (gpointer) item); - - gtk_widget_set_parent (item->child, GTK_WIDGET (item)); - gtk_widget_show (item->child); -} - -static GObject * -gdl_dock_paned_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_param) -{ - GObject *g_object; - - g_object = G_OBJECT_CLASS (gdl_dock_paned_parent_class)-> constructor (type, - n_construct_properties, - construct_param); - if (g_object) { - GdlDockItem *item = GDL_DOCK_ITEM (g_object); - - if (!item->child) - gdl_dock_paned_create_child (GDL_DOCK_PANED (g_object), - item->orientation); - /* otherwise, the orientation was set as a construction - parameter and the child is already created */ - } - - return g_object; -} - -static void -gdl_dock_paned_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - - switch (prop_id) { - case PROP_POSITION: - if (item->child && GTK_IS_PANED (item->child)) - gtk_paned_set_position (GTK_PANED (item->child), - g_value_get_uint (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_paned_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - - switch (prop_id) { - case PROP_POSITION: - if (item->child && GTK_IS_PANED (item->child)) - g_value_set_uint (value, - gtk_paned_get_position (GTK_PANED (item->child))); - else - g_value_set_uint (value, 0); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_paned_destroy (GtkObject *object) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - - /* we need to call the virtual first, since in GdlDockDestroy our - children dock objects are detached */ - GTK_OBJECT_CLASS (gdl_dock_paned_parent_class)->destroy (object); - - /* after that we can remove the GtkNotebook */ - if (item->child) { - gtk_widget_unparent (item->child); - item->child = NULL; - }; -} - -static void -gdl_dock_paned_add (GtkContainer *container, - GtkWidget *widget) -{ - GdlDockItem *item; - GdlDockPlacement pos = GDL_DOCK_NONE; - GtkPaned *paned; - GtkWidget *child1, *child2; - - g_return_if_fail (container != NULL && widget != NULL); - g_return_if_fail (GDL_IS_DOCK_PANED (container)); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - item = GDL_DOCK_ITEM (container); - g_return_if_fail (item->child != NULL); - - paned = GTK_PANED (item->child); - child1 = gtk_paned_get_child1 (paned); - child2 = gtk_paned_get_child2 (paned); - g_return_if_fail (!child1 || !child2); - - if (!child1) - pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ? - GDL_DOCK_LEFT : GDL_DOCK_TOP; - else if (!child2) - pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ? - GDL_DOCK_RIGHT : GDL_DOCK_BOTTOM; - - if (pos != GDL_DOCK_NONE) - gdl_dock_object_dock (GDL_DOCK_OBJECT (container), - GDL_DOCK_OBJECT (widget), - pos, NULL); -} - -static void -gdl_dock_paned_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GdlDockItem *item; - - g_return_if_fail (container != NULL); - g_return_if_fail (GDL_IS_DOCK_PANED (container)); - g_return_if_fail (callback != NULL); - - if (include_internals) { - /* use GdlDockItem's forall */ - GTK_CONTAINER_CLASS (gdl_dock_paned_parent_class)->forall - (container, include_internals, callback, callback_data); - } - else { - item = GDL_DOCK_ITEM (container); - if (item->child) - gtk_container_foreach (GTK_CONTAINER (item->child), callback, callback_data); - } -} - -static GType -gdl_dock_paned_child_type (GtkContainer *container) -{ - GdlDockItem *item = GDL_DOCK_ITEM (container); - - if (gtk_container_child_type (GTK_CONTAINER (item->child)) == G_TYPE_NONE) - return G_TYPE_NONE; - else - return GDL_TYPE_DOCK_ITEM; -} - -static void -gdl_dock_paned_request_foreach (GdlDockObject *object, - gpointer user_data) -{ - struct { - gint x, y; - GdlDockRequest *request; - gboolean may_dock; - } *data = user_data; - - GdlDockRequest my_request; - gboolean may_dock; - - my_request = *data->request; - may_dock = gdl_dock_object_dock_request (object, data->x, data->y, &my_request); - if (may_dock) { - data->may_dock = TRUE; - *data->request = my_request; - } -} - -static gboolean -gdl_dock_paned_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request) -{ - GdlDockItem *item; - guint bw; - gint rel_x, rel_y; - GtkAllocation alloc; - gboolean may_dock = FALSE; - GdlDockRequest my_request; - - g_return_val_if_fail (GDL_IS_DOCK_ITEM (object), FALSE); - - /* we get (x,y) in our allocation coordinates system */ - - item = GDL_DOCK_ITEM (object); - - /* Get item's allocation. */ - gtk_widget_get_allocation (GTK_WIDGET (object), &alloc); - bw = gtk_container_get_border_width (GTK_CONTAINER (object)); - - /* Get coordinates relative to our window. */ - rel_x = x - alloc.x; - rel_y = y - alloc.y; - - if (request) - my_request = *request; - - /* Check if coordinates are inside the widget. */ - if (rel_x > 0 && rel_x < alloc.width && - rel_y > 0 && rel_y < alloc.height) { - GtkRequisition my, other; - gint divider = -1; - - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (my_request.applicant), &other); - gdl_dock_item_preferred_size (GDL_DOCK_ITEM (object), &my); - - /* It's inside our area. */ - may_dock = TRUE; - - /* Set docking indicator rectangle to the widget size. */ - my_request.rect.x = bw; - my_request.rect.y = bw; - my_request.rect.width = alloc.width - 2*bw; - my_request.rect.height = alloc.height - 2*bw; - - my_request.target = object; - - /* See if it's in the border_width band. */ - if (rel_x < (gint)bw) { - my_request.position = GDL_DOCK_LEFT; - my_request.rect.width *= SPLIT_RATIO; - divider = other.width; - } else if (rel_x > alloc.width - (gint)bw) { - my_request.position = GDL_DOCK_RIGHT; - my_request.rect.x += my_request.rect.width * (1 - SPLIT_RATIO); - my_request.rect.width *= SPLIT_RATIO; - divider = MAX (0, my.width - other.width); - } else if (rel_y < (gint)bw) { - my_request.position = GDL_DOCK_TOP; - my_request.rect.height *= SPLIT_RATIO; - divider = other.height; - } else if (rel_y > alloc.height - (gint)bw) { - my_request.position = GDL_DOCK_BOTTOM; - my_request.rect.y += my_request.rect.height * (1 - SPLIT_RATIO); - my_request.rect.height *= SPLIT_RATIO; - divider = MAX (0, my.height - other.height); - - } else { /* Otherwise try our children. */ - struct { - gint x, y; - GdlDockRequest *request; - gboolean may_dock; - } data; - - /* give them coordinates in their allocation system... the - GtkPaned has no window, so our children allocation - coordinates are our window coordinates */ - data.x = rel_x; - data.y = rel_y; - data.request = &my_request; - data.may_dock = FALSE; - - gtk_container_foreach (GTK_CONTAINER (object), - (GtkCallback) gdl_dock_paned_request_foreach, - &data); - - may_dock = data.may_dock; - if (!may_dock) { - /* the pointer is on the handle, so snap to top/bottom - or left/right */ - may_dock = TRUE; - if (item->orientation == GTK_ORIENTATION_HORIZONTAL) { - if (rel_y < alloc.height / 2) { - my_request.position = GDL_DOCK_TOP; - my_request.rect.height *= SPLIT_RATIO; - divider = other.height; - } else { - my_request.position = GDL_DOCK_BOTTOM; - my_request.rect.y += my_request.rect.height * (1 - SPLIT_RATIO); - my_request.rect.height *= SPLIT_RATIO; - divider = MAX (0, my.height - other.height); - } - } else { - if (rel_x < alloc.width / 2) { - my_request.position = GDL_DOCK_LEFT; - my_request.rect.width *= SPLIT_RATIO; - divider = other.width; - } else { - my_request.position = GDL_DOCK_RIGHT; - my_request.rect.x += my_request.rect.width * (1 - SPLIT_RATIO); - my_request.rect.width *= SPLIT_RATIO; - divider = MAX (0, my.width - other.width); - } - } - } - } - - if (divider >= 0 && my_request.position != GDL_DOCK_CENTER) { - if (G_IS_VALUE (&my_request.extra)) - g_value_unset (&my_request.extra); - g_value_init (&my_request.extra, G_TYPE_UINT); - g_value_set_uint (&my_request.extra, (guint) divider); - } - - if (may_dock) { - /* adjust returned coordinates so they are relative to - our allocation */ - my_request.rect.x += alloc.x; - my_request.rect.y += alloc.y; - } - } - - if (may_dock && request) - *request = my_request; - - return may_dock; -} - -static void -gdl_dock_paned_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data) -{ - GtkPaned *paned; - GtkWidget *child1, *child2; - gboolean done = FALSE; - gboolean hresize = FALSE; - gboolean wresize = FALSE; - gint temp = 0; - - g_return_if_fail (GDL_IS_DOCK_PANED (object)); - g_return_if_fail (GDL_DOCK_ITEM (object)->child != NULL); - - paned = GTK_PANED (GDL_DOCK_ITEM (object)->child); - - if (GDL_IS_DOCK_ITEM (requestor)) { - g_object_get (G_OBJECT (requestor), "preferred_height", &temp, NULL); - if (temp == -2) - hresize = TRUE; - temp = 0; - g_object_get (G_OBJECT (requestor), "preferred_width", &temp, NULL); - if (temp == -2) - wresize = TRUE; - } - - child1 = gtk_paned_get_child1 (paned); - child2 = gtk_paned_get_child2 (paned); - - /* see if we can dock the item in our paned */ - switch (GDL_DOCK_ITEM (object)->orientation) { - case GTK_ORIENTATION_HORIZONTAL: - if (!child1 && position == GDL_DOCK_LEFT) { - gtk_paned_pack1 (paned, GTK_WIDGET (requestor), FALSE, FALSE); - done = TRUE; - } else if (!child2 && position == GDL_DOCK_RIGHT) { - gtk_paned_pack2 (paned, GTK_WIDGET (requestor), TRUE, FALSE); - done = TRUE; - } - break; - case GTK_ORIENTATION_VERTICAL: - if (!child1 && position == GDL_DOCK_TOP) { - gtk_paned_pack1 (paned, GTK_WIDGET (requestor), hresize, FALSE); - done = TRUE; - } else if (!child2 && position == GDL_DOCK_BOTTOM) { - gtk_paned_pack2 (paned, GTK_WIDGET (requestor), hresize, FALSE); - done = TRUE; - } - break; - default: - break; - } - - if (!done) { - /* this will create another paned and reparent us there */ - GDL_DOCK_OBJECT_CLASS (gdl_dock_paned_parent_class)->dock (object, requestor, position, - other_data); - } - else { - gdl_dock_item_show_grip (GDL_DOCK_ITEM (requestor)); - gtk_widget_show (GTK_WIDGET (requestor)); - GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED); - } -} - -static void -gdl_dock_paned_set_orientation (GdlDockItem *item, - GtkOrientation orientation) -{ - GtkPaned *old_paned = NULL, *new_paned; - GtkWidget *child1, *child2; - - g_return_if_fail (GDL_IS_DOCK_PANED (item)); - - if (item->child) { - old_paned = GTK_PANED (item->child); - g_object_ref (old_paned); - gtk_widget_unparent (GTK_WIDGET (old_paned)); - item->child = NULL; - } - - gdl_dock_paned_create_child (GDL_DOCK_PANED (item), orientation); - - if (old_paned) { - new_paned = GTK_PANED (item->child); - child1 = gtk_paned_get_child1 (old_paned); - child2 = gtk_paned_get_child2 (old_paned); - - if (child1) { - g_object_ref (child1); - gtk_container_remove (GTK_CONTAINER (old_paned), child1); - gtk_paned_pack1 (new_paned, child1, TRUE, FALSE); - g_object_unref (child1); - } - if (child2) { - g_object_ref (child2); - gtk_container_remove (GTK_CONTAINER (old_paned), child2); - gtk_paned_pack1 (new_paned, child2, TRUE, FALSE); - g_object_unref (child2); - } - } - - GDL_DOCK_ITEM_CLASS (gdl_dock_paned_parent_class)->set_orientation (item, orientation); -} - -static gboolean -gdl_dock_paned_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement) -{ - GdlDockItem *item = GDL_DOCK_ITEM (object); - GtkPaned *paned; - GdlDockPlacement pos = GDL_DOCK_NONE; - - if (item->child) { - paned = GTK_PANED (item->child); - if (GTK_WIDGET (child) == gtk_paned_get_child1 (paned)) - pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ? - GDL_DOCK_LEFT : GDL_DOCK_TOP; - else if (GTK_WIDGET (child) == gtk_paned_get_child2 (paned)) - pos = item->orientation == GTK_ORIENTATION_HORIZONTAL ? - GDL_DOCK_RIGHT : GDL_DOCK_BOTTOM; - } - - if (pos != GDL_DOCK_NONE) { - if (placement) - *placement = pos; - return TRUE; - } - else - return FALSE; -} - - -/* ----- Public interface ----- */ - -GtkWidget * -gdl_dock_paned_new (GtkOrientation orientation) -{ - GdlDockPaned *paned; - - paned = GDL_DOCK_PANED (g_object_new (GDL_TYPE_DOCK_PANED, - "orientation", orientation, NULL)); - GDL_DOCK_OBJECT_UNSET_FLAGS (paned, GDL_DOCK_AUTOMATIC); - - return GTK_WIDGET (paned); -} - diff --git a/src/libgdl/gdl-dock-paned.h b/src/libgdl/gdl-dock-paned.h deleted file mode 100644 index 2b4a40700..000000000 --- a/src/libgdl/gdl-dock-paned.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-paned.h - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_PANED_H__ -#define __GDL_DOCK_PANED_H__ - -#include "libgdl/gdl-dock-item.h" - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_PANED (gdl_dock_paned_get_type ()) -#define GDL_DOCK_PANED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_PANED, GdlDockPaned)) -#define GDL_DOCK_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_PANED, GdlDockPanedClass)) -#define GDL_IS_DOCK_PANED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_PANED)) -#define GDL_IS_DOCK_PANED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_PANED)) -#define GDL_DOCK_PANED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYE_DOCK_PANED, GdlDockPanedClass)) - -/* data types & structures */ -typedef struct _GdlDockPaned GdlDockPaned; -typedef struct _GdlDockPanedClass GdlDockPanedClass; - -struct _GdlDockPaned { - GdlDockItem dock_item; - - gboolean position_changed; -}; - -struct _GdlDockPanedClass { - GdlDockItemClass parent_class; -}; - - -/* public interface */ - -GType gdl_dock_paned_get_type (void); - -GtkWidget *gdl_dock_paned_new (GtkOrientation orientation); - - -G_END_DECLS - -#endif /* __GDL_DOCK_PANED_H__ */ - diff --git a/src/libgdl/gdl-dock-placeholder.c b/src/libgdl/gdl-dock-placeholder.c deleted file mode 100644 index 8cde7a51d..000000000 --- a/src/libgdl/gdl-dock-placeholder.c +++ /dev/null @@ -1,827 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-placeholder.c - Placeholders for docking items - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" - -#include "gdl-dock-placeholder.h" -#include "gdl-dock-item.h" -#include "gdl-dock-paned.h" -#include "gdl-dock-master.h" -#include "libgdltypebuiltins.h" - - -#undef PLACEHOLDER_DEBUG - -/* ----- Private prototypes ----- */ - -static void gdl_dock_placeholder_class_init (GdlDockPlaceholderClass *klass); - -static void gdl_dock_placeholder_set_property (GObject *g_object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_placeholder_get_property (GObject *g_object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gdl_dock_placeholder_destroy (GtkObject *object); - -static void gdl_dock_placeholder_add (GtkContainer *container, - GtkWidget *widget); - -static void gdl_dock_placeholder_detach (GdlDockObject *object, - gboolean recursive); -static void gdl_dock_placeholder_reduce (GdlDockObject *object); -static void gdl_dock_placeholder_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); - -static void gdl_dock_placeholder_weak_notify (gpointer data, - GObject *old_object); - -static void disconnect_host (GdlDockPlaceholder *ph); -static void connect_host (GdlDockPlaceholder *ph, - GdlDockObject *new_host); -static void do_excursion (GdlDockPlaceholder *ph); - -static void gdl_dock_placeholder_present (GdlDockObject *object, - GdlDockObject *child); - -static void detach_cb (GdlDockObject *object, - gboolean recursive, - gpointer user_data); - -/* ----- Private variables and data structures ----- */ - -enum { - PROP_0, - PROP_STICKY, - PROP_HOST, - PROP_NEXT_PLACEMENT, - PROP_WIDTH, - PROP_HEIGHT, - PROP_FLOATING, - PROP_FLOAT_X, - PROP_FLOAT_Y -}; - -struct _GdlDockPlaceholderPrivate { - /* current object this placeholder is pinned to */ - GdlDockObject *host; - gboolean sticky; - - /* when the placeholder is moved up the hierarchy, this stack - keeps track of the necessary dock positions needed to get the - placeholder to the original position */ - GSList *placement_stack; - - /* Width and height of the attachments */ - gint width; - gint height; - - /* connected signal handlers */ - guint host_detach_handler; - guint host_dock_handler; - - /* Window Coordinates if Dock was floating */ - gboolean floating; - gint floatx; - gint floaty; -}; - - -/* ----- Private interface ----- */ - -G_DEFINE_TYPE (GdlDockPlaceholder, gdl_dock_placeholder, GDL_TYPE_DOCK_OBJECT); - -static void -gdl_dock_placeholder_class_init (GdlDockPlaceholderClass *klass) -{ - GObjectClass *g_object_class; - GtkObjectClass *gtk_object_class; - GtkContainerClass *container_class; - GdlDockObjectClass *object_class; - - g_object_class = G_OBJECT_CLASS (klass); - gtk_object_class = GTK_OBJECT_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - object_class = GDL_DOCK_OBJECT_CLASS (klass); - - g_object_class->get_property = gdl_dock_placeholder_get_property; - g_object_class->set_property = gdl_dock_placeholder_set_property; - - g_object_class_install_property ( - g_object_class, PROP_STICKY, - g_param_spec_boolean ("sticky", _("Sticky"), - _("Whether the placeholder will stick to its host or " - "move up the hierarchy when the host is redocked"), - FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property ( - g_object_class, PROP_HOST, - g_param_spec_object ("host", _("Host"), - _("The dock object this placeholder is attached to"), - GDL_TYPE_DOCK_OBJECT, - G_PARAM_READWRITE)); - - /* this will return the top of the placement stack */ - g_object_class_install_property ( - g_object_class, PROP_NEXT_PLACEMENT, - g_param_spec_enum ("next-placement", _("Next placement"), - _("The position an item will be docked to our host if a " - "request is made to dock to us"), - GDL_TYPE_DOCK_PLACEMENT, - GDL_DOCK_CENTER, - G_PARAM_READWRITE | - GDL_DOCK_PARAM_EXPORT | GDL_DOCK_PARAM_AFTER)); - - g_object_class_install_property ( - g_object_class, PROP_WIDTH, - g_param_spec_int ("width", _("Width"), - _("Width for the widget when it's attached to the placeholder"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - GDL_DOCK_PARAM_EXPORT)); - - g_object_class_install_property ( - g_object_class, PROP_HEIGHT, - g_param_spec_int ("height", _("Height"), - _("Height for the widget when it's attached to the placeholder"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - GDL_DOCK_PARAM_EXPORT)); - g_object_class_install_property ( - g_object_class, PROP_FLOATING, - g_param_spec_boolean ("floating", _("Floating Toplevel"), - _("Whether the placeholder is standing in for a " - "floating toplevel dock"), - FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - g_object_class_install_property ( - g_object_class, PROP_FLOAT_X, - g_param_spec_int ("floatx", _("X Coordinate"), - _("X coordinate for dock when floating"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - GDL_DOCK_PARAM_EXPORT)); - g_object_class_install_property ( - g_object_class, PROP_FLOAT_Y, - g_param_spec_int ("floaty", _("Y Coordinate"), - _("Y coordinate for dock when floating"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - GDL_DOCK_PARAM_EXPORT)); - - - gtk_object_class->destroy = gdl_dock_placeholder_destroy; - container_class->add = gdl_dock_placeholder_add; - - object_class->is_compound = FALSE; - object_class->detach = gdl_dock_placeholder_detach; - object_class->reduce = gdl_dock_placeholder_reduce; - object_class->dock = gdl_dock_placeholder_dock; - object_class->present = gdl_dock_placeholder_present; -} - -static void -gdl_dock_placeholder_init (GdlDockPlaceholder *ph) -{ - gtk_widget_set_has_window (GTK_WIDGET (ph), FALSE); - gtk_widget_set_can_focus (GTK_WIDGET (ph), FALSE); - - ph->_priv = g_new0 (GdlDockPlaceholderPrivate, 1); -} - -static void -gdl_dock_placeholder_set_property (GObject *g_object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (g_object); - - switch (prop_id) { - case PROP_STICKY: - if (ph->_priv) - ph->_priv->sticky = g_value_get_boolean (value); - break; - case PROP_HOST: - gdl_dock_placeholder_attach (ph, g_value_get_object (value)); - break; - case PROP_NEXT_PLACEMENT: - if (ph->_priv) { - ph->_priv->placement_stack = - g_slist_prepend (ph->_priv->placement_stack, - GINT_TO_POINTER (g_value_get_enum (value))); - } - break; - case PROP_WIDTH: - ph->_priv->width = g_value_get_int (value); - break; - case PROP_HEIGHT: - ph->_priv->height = g_value_get_int (value); - break; - case PROP_FLOATING: - ph->_priv->floating = g_value_get_boolean (value); - break; - case PROP_FLOAT_X: - ph->_priv->floatx = g_value_get_int (value); - break; - case PROP_FLOAT_Y: - ph->_priv->floaty = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_placeholder_get_property (GObject *g_object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (g_object); - - switch (prop_id) { - case PROP_STICKY: - if (ph->_priv) - g_value_set_boolean (value, ph->_priv->sticky); - else - g_value_set_boolean (value, FALSE); - break; - case PROP_HOST: - if (ph->_priv) - g_value_set_object (value, ph->_priv->host); - else - g_value_set_object (value, NULL); - break; - case PROP_NEXT_PLACEMENT: - if (ph->_priv && ph->_priv->placement_stack) - g_value_set_enum (value, (GdlDockPlacement) ph->_priv->placement_stack->data); - else - g_value_set_enum (value, GDL_DOCK_CENTER); - break; - case PROP_WIDTH: - g_value_set_int (value, ph->_priv->width); - break; - case PROP_HEIGHT: - g_value_set_int (value, ph->_priv->height); - break; - case PROP_FLOATING: - g_value_set_boolean (value, ph->_priv->floating); - break; - case PROP_FLOAT_X: - g_value_set_int (value, ph->_priv->floatx); - break; - case PROP_FLOAT_Y: - g_value_set_int (value, ph->_priv->floaty); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (g_object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_placeholder_destroy (GtkObject *object) -{ - GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (object); - - if (ph->_priv) { - if (ph->_priv->host) - gdl_dock_placeholder_detach (GDL_DOCK_OBJECT (object), FALSE); - g_free (ph->_priv); - ph->_priv = NULL; - } - - GTK_OBJECT_CLASS (gdl_dock_placeholder_parent_class)->destroy (object); -} - -static void -gdl_dock_placeholder_add (GtkContainer *container, - GtkWidget *widget) -{ - GdlDockPlaceholder *ph; - GdlDockPlacement pos = GDL_DOCK_CENTER; /* default position */ - - g_return_if_fail (GDL_IS_DOCK_PLACEHOLDER (container)); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - ph = GDL_DOCK_PLACEHOLDER (container); - if (ph->_priv->placement_stack) - pos = (GdlDockPlacement) ph->_priv->placement_stack->data; - - gdl_dock_object_dock (GDL_DOCK_OBJECT (ph), GDL_DOCK_OBJECT (widget), - pos, NULL); -} - -static void -gdl_dock_placeholder_detach (GdlDockObject *object, - gboolean recursive) -{ - GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (object); - - /* disconnect handlers */ - disconnect_host (ph); - - /* free the placement stack */ - g_slist_free (ph->_priv->placement_stack); - ph->_priv->placement_stack = NULL; - - GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_ATTACHED); -} - -static void -gdl_dock_placeholder_reduce (GdlDockObject *object) -{ - /* placeholders are not reduced */ - return; -} - -static void -find_biggest_dock_item (GtkContainer *container, GtkWidget **biggest_child, - gint *biggest_child_area) -{ - GList *children, *child; - GtkAllocation allocation; - - children = gtk_container_get_children (GTK_CONTAINER (container)); - child = children; - while (child) { - gint area; - GtkWidget *child_widget; - - child_widget = GTK_WIDGET (child->data); - - if (gdl_dock_object_is_compound (GDL_DOCK_OBJECT(child_widget))) { - find_biggest_dock_item (GTK_CONTAINER (child_widget), - biggest_child, biggest_child_area); - child = g_list_next (child); - continue; - } - gtk_widget_get_allocation (child_widget, &allocation); - area = allocation.width * allocation.height; - - if (area > *biggest_child_area) { - *biggest_child_area = area; - *biggest_child = child_widget; - } - child = g_list_next (child); - } -} - -static void -attempt_to_dock_on_host (GdlDockPlaceholder *ph, GdlDockObject *host, - GdlDockObject *requestor, GdlDockPlacement placement, - gpointer other_data) -{ - GdlDockObject *parent; - GtkAllocation allocation; - gint host_width; - gint host_height; - - gtk_widget_get_allocation (GTK_WIDGET (host), &allocation); - host_width = allocation.width; - host_height = allocation.height; - - if (placement != GDL_DOCK_CENTER || !GDL_IS_DOCK_PANED (host)) { - /* we simply act as a proxy for our host */ - gdl_dock_object_dock (host, requestor, - placement, other_data); - } else { - /* If the requested pos is center, we have to make sure that it - * does not colapses existing paned items. Find the larget item - * which is not a paned item to dock to. - */ - GtkWidget *biggest_child = NULL; - gint biggest_child_area = 0; - - find_biggest_dock_item (GTK_CONTAINER (host), &biggest_child, - &biggest_child_area); - - if (biggest_child) { - /* we simply act as a proxy for our host */ - gdl_dock_object_dock (GDL_DOCK_OBJECT (biggest_child), requestor, - placement, other_data); - } else { - g_warning ("No suitable child found! Should not be here!"); - /* we simply act as a proxy for our host */ - gdl_dock_object_dock (GDL_DOCK_OBJECT (host), requestor, - placement, other_data); - } - } - - parent = gdl_dock_object_get_parent_object (requestor); - - /* Restore dock item's dimention */ - switch (placement) { - case GDL_DOCK_LEFT: - if (ph->_priv->width > 0) { - g_object_set (G_OBJECT (parent), "position", - ph->_priv->width, NULL); - } - break; - case GDL_DOCK_RIGHT: - if (ph->_priv->width > 0) { - gint complementary_width = host_width - ph->_priv->width; - - if (complementary_width > 0) - g_object_set (G_OBJECT (parent), "position", - complementary_width, NULL); - } - break; - case GDL_DOCK_TOP: - if (ph->_priv->height > 0) { - g_object_set (G_OBJECT (parent), "position", - ph->_priv->height, NULL); - } - break; - case GDL_DOCK_BOTTOM: - if (ph->_priv->height > 0) { - gint complementary_height = host_height - ph->_priv->height; - - if (complementary_height > 0) - g_object_set (G_OBJECT (parent), "position", - complementary_height, NULL); - } - break; - default: - /* nothing */ - break; - } -} - -static void -gdl_dock_placeholder_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data) -{ - GdlDockPlaceholder *ph = GDL_DOCK_PLACEHOLDER (object); - - if (ph->_priv->host) { - attempt_to_dock_on_host (ph, ph->_priv->host, requestor, - position, other_data); - } - else { - GdlDockObject *toplevel; - - if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (ph))) { - g_warning ("%s", _("Attempt to dock a dock object to an unbound placeholder")); - return; - } - - /* dock the item as a floating of the controller */ - toplevel = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (ph)); - gdl_dock_object_dock (toplevel, requestor, - GDL_DOCK_FLOATING, NULL); - } -} - -#ifdef PLACEHOLDER_DEBUG -static void -print_placement_stack (GdlDockPlaceholder *ph) -{ - GSList *s = ph->_priv->placement_stack; - GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (GDL_TYPE_DOCK_PLACEMENT)); - GEnumValue *enum_value; - gchar *name; - GString *message; - - message = g_string_new (NULL); - g_string_printf (message, "[%p] host: %p (%s), stack: ", - ph, ph->_priv->host, G_OBJECT_TYPE_NAME (ph->_priv->host)); - for (; s; s = s->next) { - enum_value = g_enum_get_value (enum_class, (GdlDockPlacement) s->data); - name = enum_value ? enum_value->value_name : NULL; - g_string_append_printf (message, "%s, ", name); - } - g_message ("%s", message->str); - - g_string_free (message, TRUE); - g_type_class_unref (enum_class); -} -#endif - -static void -gdl_dock_placeholder_present (GdlDockObject *object, - GdlDockObject *child) -{ - /* do nothing */ - return; -} - -/* ----- Public interface ----- */ - -GtkWidget * -gdl_dock_placeholder_new (const gchar *name, - GdlDockObject *object, - GdlDockPlacement position, - gboolean sticky) -{ - GdlDockPlaceholder *ph; - - ph = GDL_DOCK_PLACEHOLDER (g_object_new (GDL_TYPE_DOCK_PLACEHOLDER, - "name", name, - "sticky", sticky, - "next-placement", position, - "host", object, - NULL)); - GDL_DOCK_OBJECT_UNSET_FLAGS (ph, GDL_DOCK_AUTOMATIC); - - return GTK_WIDGET (ph); -} - -static void -gdl_dock_placeholder_weak_notify (gpointer data, - GObject *old_object) -{ - GdlDockPlaceholder *ph; - - g_return_if_fail (data != NULL && GDL_IS_DOCK_PLACEHOLDER (data)); - - ph = GDL_DOCK_PLACEHOLDER (data); - -#ifdef PLACEHOLDER_DEBUG - g_message ("The placeholder just lost its host, ph = %p", ph); -#endif - - /* we shouldn't get here, so perform an emergency detach. instead - we should have gotten a detach signal from our host */ - ph->_priv->host = NULL; - - /* We didn't get a detach signal from the host. Detach from the - supposedly dead host (consequently attaching to the controller) */ - - detach_cb (NULL, TRUE, data); -#if 0 - /* free the placement stack */ - g_slist_free (ph->_priv->placement_stack); - ph->_priv->placement_stack = NULL; - GDL_DOCK_OBJECT_UNSET_FLAGS (ph, GDL_DOCK_ATTACHED); -#endif -} - -static void -detach_cb (GdlDockObject *object, - gboolean recursive, - gpointer user_data) -{ - GdlDockPlaceholder *ph; - GdlDockObject *new_host, *obj; - - g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PLACEHOLDER (user_data)); - - /* we go up in the hierarchy and we store the hinted placement in - * the placement stack so we can rebuild the docking layout later - * when we get the host's dock signal. */ - - ph = GDL_DOCK_PLACEHOLDER (user_data); - obj = ph->_priv->host; - if (obj != object) { - g_warning (_("Got a detach signal from an object (%p) who is not " - "our host %p"), object, ph->_priv->host); - return; - } - - /* skip sticky objects */ - if (ph->_priv->sticky) - return; - - if (obj) - /* go up in the hierarchy */ - new_host = gdl_dock_object_get_parent_object (obj); - else - /* Detaching from the dead host */ - new_host = NULL; - - while (new_host) { - GdlDockPlacement pos = GDL_DOCK_NONE; - - /* get placement hint from the new host */ - if (gdl_dock_object_child_placement (new_host, obj, &pos)) { - ph->_priv->placement_stack = g_slist_prepend ( - ph->_priv->placement_stack, (gpointer) pos); - } - else { - g_warning (_("Something weird happened while getting the child " - "placement for %p from parent %p"), obj, new_host); - } - - if (!GDL_DOCK_OBJECT_IN_DETACH (new_host)) - /* we found a "stable" dock object */ - break; - - obj = new_host; - new_host = gdl_dock_object_get_parent_object (obj); - } - - /* disconnect host */ - disconnect_host (ph); - - if (!new_host) { -#ifdef PLACEHOLDER_DEBUG - g_message ("Detaching from the toplevel. Assignaing to controller"); -#endif - /* the toplevel was detached: we attach ourselves to the - controller with an initial placement of floating */ - new_host = gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (ph)); - - /* - ph->_priv->placement_stack = g_slist_prepend ( - ph->_priv->placement_stack, (gpointer) GDL_DOCK_FLOATING); - */ - } - if (new_host) - connect_host (ph, new_host); - -#ifdef PLACEHOLDER_DEBUG - print_placement_stack (ph); -#endif -} - -/** - * do_excursion: - * @ph: placeholder object - * - * Tries to shrink the placement stack by examining the host's - * children and see if any of them matches the placement which is at - * the top of the stack. If this is the case, it tries again with the - * new host. - **/ -static void -do_excursion (GdlDockPlaceholder *ph) -{ - if (ph->_priv->host && - !ph->_priv->sticky && - ph->_priv->placement_stack && - gdl_dock_object_is_compound (ph->_priv->host)) { - - GdlDockPlacement pos, stack_pos = - (GdlDockPlacement) ph->_priv->placement_stack->data; - GList *children, *l; - GdlDockObject *host = ph->_priv->host; - - children = gtk_container_get_children (GTK_CONTAINER (host)); - for (l = children; l; l = l->next) { - pos = stack_pos; - gdl_dock_object_child_placement (GDL_DOCK_OBJECT (host), - GDL_DOCK_OBJECT (l->data), - &pos); - if (pos == stack_pos) { - /* remove the stack position */ - ph->_priv->placement_stack = - g_slist_remove_link (ph->_priv->placement_stack, - ph->_priv->placement_stack); - - /* connect to the new host */ - disconnect_host (ph); - connect_host (ph, GDL_DOCK_OBJECT (l->data)); - - /* recurse... */ - if (!GDL_DOCK_OBJECT_IN_REFLOW (l->data)) - do_excursion (ph); - - break; - } - } - g_list_free (children); - } -} - -static void -dock_cb (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data, - gpointer user_data) -{ - GdlDockPlacement pos = GDL_DOCK_NONE; - GdlDockPlaceholder *ph; - - g_return_if_fail (user_data != NULL && GDL_IS_DOCK_PLACEHOLDER (user_data)); - ph = GDL_DOCK_PLACEHOLDER (user_data); - g_return_if_fail (ph->_priv->host == object); - - /* see if the given position is compatible for the stack's top - element */ - if (!ph->_priv->sticky && ph->_priv->placement_stack) { - pos = (GdlDockPlacement) ph->_priv->placement_stack->data; - if (gdl_dock_object_child_placement (object, requestor, &pos)) { - if (pos == (GdlDockPlacement) ph->_priv->placement_stack->data) { - /* the position is compatible: excurse down */ - do_excursion (ph); - } - } - } -#ifdef PLACEHOLDER_DEBUG - print_placement_stack (ph); -#endif -} - -static void -disconnect_host (GdlDockPlaceholder *ph) -{ - if (!ph->_priv->host) - return; - - if (ph->_priv->host_detach_handler) - g_signal_handler_disconnect (ph->_priv->host, ph->_priv->host_detach_handler); - if (ph->_priv->host_dock_handler) - g_signal_handler_disconnect (ph->_priv->host, ph->_priv->host_dock_handler); - ph->_priv->host_detach_handler = 0; - ph->_priv->host_dock_handler = 0; - - /* remove weak ref to object */ - g_object_weak_unref (G_OBJECT (ph->_priv->host), - gdl_dock_placeholder_weak_notify, ph); - ph->_priv->host = NULL; - -#ifdef PLACEHOLDER_DEBUG - g_message ("Host just disconnected!, ph = %p", ph); -#endif -} - -static void -connect_host (GdlDockPlaceholder *ph, - GdlDockObject *new_host) -{ - if (ph->_priv->host) - disconnect_host (ph); - - ph->_priv->host = new_host; - g_object_weak_ref (G_OBJECT (ph->_priv->host), - gdl_dock_placeholder_weak_notify, ph); - - ph->_priv->host_detach_handler = - g_signal_connect (ph->_priv->host, - "detach", - (GCallback) detach_cb, - (gpointer) ph); - - ph->_priv->host_dock_handler = - g_signal_connect (ph->_priv->host, - "dock", - (GCallback) dock_cb, - (gpointer) ph); - -#ifdef PLACEHOLDER_DEBUG - g_message ("Host just connected!, ph = %p", ph); -#endif -} - -void -gdl_dock_placeholder_attach (GdlDockPlaceholder *ph, - GdlDockObject *object) -{ - g_return_if_fail (ph != NULL && GDL_IS_DOCK_PLACEHOLDER (ph)); - g_return_if_fail (ph->_priv != NULL); - g_return_if_fail (object != NULL); - - /* object binding */ - if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (ph))) - gdl_dock_object_bind (GDL_DOCK_OBJECT (ph), object->master); - - g_return_if_fail (GDL_DOCK_OBJECT (ph)->master == object->master); - - gdl_dock_object_freeze (GDL_DOCK_OBJECT (ph)); - - /* detach from previous host first */ - if (ph->_priv->host) - gdl_dock_object_detach (GDL_DOCK_OBJECT (ph), FALSE); - - connect_host (ph, object); - - GDL_DOCK_OBJECT_SET_FLAGS (ph, GDL_DOCK_ATTACHED); - - gdl_dock_object_thaw (GDL_DOCK_OBJECT (ph)); -} diff --git a/src/libgdl/gdl-dock-placeholder.h b/src/libgdl/gdl-dock-placeholder.h deleted file mode 100644 index c7e57e204..000000000 --- a/src/libgdl/gdl-dock-placeholder.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-placeholder.h - Placeholders for docking items - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_PLACEHOLDER_H__ -#define __GDL_DOCK_PLACEHOLDER_H__ - -#include "libgdl/gdl-dock-object.h" - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_PLACEHOLDER (gdl_dock_placeholder_get_type ()) -#define GDL_DOCK_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_PLACEHOLDER, GdlDockPlaceholder)) -#define GDL_DOCK_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_PLACEHOLDER, GdlDockPlaceholderClass)) -#define GDL_IS_DOCK_PLACEHOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_PLACEHOLDER)) -#define GDL_IS_DOCK_PLACEHOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_PLACEHOLDER)) -#define GDL_DOCK_PLACEHOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_PLACEHOLDER, GdlDockPlaceholderClass)) - -/* data types & structures */ -typedef struct _GdlDockPlaceholder GdlDockPlaceholder; -typedef struct _GdlDockPlaceholderClass GdlDockPlaceholderClass; -typedef struct _GdlDockPlaceholderPrivate GdlDockPlaceholderPrivate; - -struct _GdlDockPlaceholder { - GdlDockObject object; - - GdlDockPlaceholderPrivate *_priv; -}; - -struct _GdlDockPlaceholderClass { - GdlDockObjectClass parent_class; -}; - -/* public interface */ - -GType gdl_dock_placeholder_get_type (void); - -GtkWidget *gdl_dock_placeholder_new (const gchar *name, - GdlDockObject *object, - GdlDockPlacement position, - gboolean sticky); - -void gdl_dock_placeholder_attach (GdlDockPlaceholder *ph, - GdlDockObject *object); - - -G_END_DECLS - -#endif /* __GDL_DOCK_PLACEHOLDER_H__ */ diff --git a/src/libgdl/gdl-dock-tablabel.c b/src/libgdl/gdl-dock-tablabel.c deleted file mode 100644 index 441db3438..000000000 --- a/src/libgdl/gdl-dock-tablabel.c +++ /dev/null @@ -1,632 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-tablabel.c - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include - -#include "gdl-dock-tablabel.h" -#include "gdl-dock-item.h" -#include "libgdlmarshal.h" - - -/* ----- Private prototypes ----- */ - -static void gdl_dock_tablabel_class_init (GdlDockTablabelClass *klass); - -static void gdl_dock_tablabel_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_tablabel_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gdl_dock_tablabel_item_notify (GObject *master, - GParamSpec *pspec, - gpointer data); - -static void gdl_dock_tablabel_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gdl_dock_tablabel_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); - -static void gdl_dock_tablabel_paint (GtkWidget *widget, - GdkEventExpose *event); -static gint gdl_dock_tablabel_expose (GtkWidget *widget, - GdkEventExpose *event); - -static gboolean gdl_dock_tablabel_button_event (GtkWidget *widget, - GdkEventButton *event); -static gboolean gdl_dock_tablabel_motion_event (GtkWidget *widget, - GdkEventMotion *event); - -static void gdl_dock_tablabel_realize (GtkWidget *widget); -static void gdl_dock_tablabel_unrealize (GtkWidget *widget); -static void gdl_dock_tablabel_map (GtkWidget *widget); -static void gdl_dock_tablabel_unmap (GtkWidget *widget); - -/* ----- Private data types and variables ----- */ - -#define DEFAULT_DRAG_HANDLE_SIZE 10 -#define HANDLE_RATIO 1.0 - -enum { - BUTTON_PRESSED_HANDLE, - LAST_SIGNAL -}; - -enum { - PROP_0, - PROP_ITEM -}; - - -static guint dock_tablabel_signals [LAST_SIGNAL] = { 0 }; - - -/* ----- Private interface ----- */ - -G_DEFINE_TYPE (GdlDockTablabel, gdl_dock_tablabel, GTK_TYPE_BIN); - -static void -gdl_dock_tablabel_class_init (GdlDockTablabelClass *klass) -{ - GObjectClass *g_object_class; - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - g_object_class = G_OBJECT_CLASS (klass); - object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - - g_object_class->set_property = gdl_dock_tablabel_set_property; - g_object_class->get_property = gdl_dock_tablabel_get_property; - - widget_class->size_request = gdl_dock_tablabel_size_request; - widget_class->size_allocate = gdl_dock_tablabel_size_allocate; - widget_class->expose_event = gdl_dock_tablabel_expose; - widget_class->button_press_event = gdl_dock_tablabel_button_event; - widget_class->button_release_event = gdl_dock_tablabel_button_event; - widget_class->motion_notify_event = gdl_dock_tablabel_motion_event; - widget_class->realize = gdl_dock_tablabel_realize; - widget_class->unrealize = gdl_dock_tablabel_unrealize; - widget_class->map = gdl_dock_tablabel_map; - widget_class->unmap = gdl_dock_tablabel_unmap; - - g_object_class_install_property ( - g_object_class, PROP_ITEM, - g_param_spec_object ("item", _("Controlling dock item"), - _("Dockitem which 'owns' this tablabel"), - GDL_TYPE_DOCK_ITEM, - G_PARAM_READWRITE)); - - dock_tablabel_signals [BUTTON_PRESSED_HANDLE] = - g_signal_new ("button_pressed_handle", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdlDockTablabelClass, - button_pressed_handle), - NULL, NULL, - gdl_marshal_VOID__BOXED, - G_TYPE_NONE, - 1, - GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE); - - klass->button_pressed_handle = NULL; -} - -static void -gdl_dock_tablabel_init (GdlDockTablabel *tablabel) -{ - GtkWidget *widget; - GtkWidget *label_widget; - - widget = GTK_WIDGET (tablabel); - - tablabel->drag_handle_size = DEFAULT_DRAG_HANDLE_SIZE; - tablabel->item = NULL; - - label_widget = gtk_label_new ("Dock item"); - gtk_container_add (GTK_CONTAINER (tablabel), label_widget); - gtk_widget_show (label_widget); - - tablabel->active = FALSE; - gtk_widget_set_state (GTK_WIDGET (tablabel), GTK_STATE_ACTIVE); -} - -static void -gdl_dock_tablabel_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockTablabel *tablabel; - GtkBin *bin; - - tablabel = GDL_DOCK_TABLABEL (object); - - switch (prop_id) { - case PROP_ITEM: - if (tablabel->item) { - g_object_remove_weak_pointer (G_OBJECT (tablabel->item), - (gpointer *) &tablabel->item); - g_signal_handlers_disconnect_by_func ( - tablabel->item, gdl_dock_tablabel_item_notify, tablabel); - }; - - tablabel->item = g_value_get_object (value); - if (tablabel->item) { - gboolean locked; - gchar *long_name; - - g_object_add_weak_pointer (G_OBJECT (tablabel->item), - (gpointer *) &tablabel->item); - - g_signal_connect (tablabel->item, "notify::locked", - G_CALLBACK (gdl_dock_tablabel_item_notify), - tablabel); - g_signal_connect (tablabel->item, "notify::long_name", - G_CALLBACK (gdl_dock_tablabel_item_notify), - tablabel); - g_signal_connect (tablabel->item, "notify::grip_size", - G_CALLBACK (gdl_dock_tablabel_item_notify), - tablabel); - - g_object_get (tablabel->item, - "locked", &locked, - "long-name", &long_name, - "grip-size", &tablabel->drag_handle_size, - NULL); - - if (locked) - tablabel->drag_handle_size = 0; - - bin = GTK_BIN (tablabel); - if (gtk_bin_get_child (bin) && g_object_class_find_property ( - G_OBJECT_GET_CLASS (gtk_bin_get_child (bin)), "label")) - g_object_set (gtk_bin_get_child (bin), "label", long_name, NULL); - g_free (long_name); - }; - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_tablabel_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockTablabel *tablabel; - - tablabel = GDL_DOCK_TABLABEL (object); - - switch (prop_id) { - case PROP_ITEM: - g_value_set_object (value, tablabel->item); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_tablabel_item_notify (GObject *master, - GParamSpec *pspec, - gpointer data) -{ - GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (data); - gboolean locked; - gchar *label; - GtkBin *bin; - - g_object_get (master, - "locked", &locked, - "grip-size", &tablabel->drag_handle_size, - "long-name", &label, - NULL); - - if (locked) - tablabel->drag_handle_size = 0; - - bin = GTK_BIN (tablabel); - if (gtk_bin_get_child (bin) && g_object_class_find_property ( - G_OBJECT_GET_CLASS (gtk_bin_get_child (bin)), "label")) - g_object_set (gtk_bin_get_child (bin), "label", label, NULL); - g_free (label); - - gtk_widget_queue_resize (GTK_WIDGET (tablabel)); -} - -static void -gdl_dock_tablabel_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkBin *bin; - GtkRequisition child_req; - GdlDockTablabel *tablabel; - guint border_width; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK_TABLABEL (widget)); - g_return_if_fail (requisition != NULL); - - tablabel = GDL_DOCK_TABLABEL (widget); - bin = GTK_BIN (widget); - - requisition->width = tablabel->drag_handle_size; - requisition->height = 0; - - if (gtk_bin_get_child (bin)) - gtk_widget_size_request (gtk_bin_get_child (bin), &child_req); - else - child_req.width = child_req.height = 0; - - requisition->width += child_req.width; - requisition->height += child_req.height; - - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - - requisition->width += border_width * 2; - requisition->height += border_width * 2; - - //gtk_widget_size_request (widget, requisition); -} - -static void -gdl_dock_tablabel_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkBin *bin; - GtkAllocation widget_allocation; - GdlDockTablabel *tablabel; - gint border_width; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK_TABLABEL (widget)); - g_return_if_fail (allocation != NULL); - - bin = GTK_BIN (widget); - tablabel = GDL_DOCK_TABLABEL (widget); - - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - - gtk_widget_set_allocation (widget, allocation); - - if (gtk_widget_get_realized (widget)) - gdk_window_move_resize (tablabel->event_window, - allocation->x, - allocation->y, - allocation->width, - allocation->height); - - if (gtk_bin_get_child (bin) && gtk_widget_get_visible (gtk_bin_get_child (bin))) { - GtkAllocation child_allocation; - - gtk_widget_get_allocation (widget, &widget_allocation); - child_allocation.x = widget_allocation.x + border_width; - child_allocation.y = widget_allocation.y + border_width; - - allocation->width = MAX (1, (int) allocation->width - - (int) tablabel->drag_handle_size); - child_allocation.x += tablabel->drag_handle_size; - - child_allocation.width = - MAX (1, (int) allocation->width - 2 * border_width); - child_allocation.height = - MAX (1, (int) allocation->height - 2 * border_width); - - gtk_widget_size_allocate (gtk_bin_get_child (bin), &child_allocation); - } -} - -static void -gdl_dock_tablabel_paint (GtkWidget *widget, - GdkEventExpose *event) -{ - GdkRectangle dest, rect; - GtkBin *bin; - GtkAllocation widget_allocation; - GdlDockTablabel *tablabel; - gint border_width; - - bin = GTK_BIN (widget); - tablabel = GDL_DOCK_TABLABEL (widget); - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - - gtk_widget_get_allocation (widget, &widget_allocation); - rect.x = widget_allocation.x + border_width; - rect.y = widget_allocation.y + border_width; - rect.width = tablabel->drag_handle_size * HANDLE_RATIO; - rect.height = widget_allocation.height - 2*border_width; - - if (gdk_rectangle_intersect (&event->area, &rect, &dest)) { - gtk_paint_handle (gtk_widget_get_style (widget), gtk_widget_get_window (widget), - tablabel->active ? GTK_STATE_NORMAL : GTK_STATE_ACTIVE, - GTK_SHADOW_NONE, - &dest, widget, "dock-tablabel", - rect.x, rect.y, rect.width, rect.height, - GTK_ORIENTATION_VERTICAL); - }; -} - -static gint -gdl_dock_tablabel_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GDL_IS_DOCK_TABLABEL (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (gtk_widget_get_visible (widget) && gtk_widget_get_mapped (widget)) { - GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->expose_event (widget,event); - gdl_dock_tablabel_paint (widget, event); - }; - - return FALSE; -} - -static gboolean -gdl_dock_tablabel_button_event (GtkWidget *widget, - GdkEventButton *event) -{ - GdlDockTablabel *tablabel; - GtkAllocation widget_allocation; - gboolean event_handled; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GDL_IS_DOCK_TABLABEL (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - tablabel = GDL_DOCK_TABLABEL (widget); - - event_handled = FALSE; - - if (event->window != tablabel->event_window) - return FALSE; - - switch (event->type) { - case GDK_BUTTON_PRESS: - if (tablabel->active) { - gboolean in_handle; - gint rel_x, rel_y; - guint border_width; - GtkBin *bin; - - bin = GTK_BIN (widget); - border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); - - rel_x = event->x - border_width; - rel_y = event->y - border_width; - - /* Check if user clicked on the drag handle. */ - in_handle = (rel_x < tablabel->drag_handle_size * HANDLE_RATIO) && - (rel_x > 0); - - if (event->button == 1) { - tablabel->pre_drag = TRUE; - tablabel->drag_start_event = *event; - } - else { - g_signal_emit (widget, - dock_tablabel_signals [BUTTON_PRESSED_HANDLE], - 0, - event); - } - - event_handled = TRUE; - } - break; - - case GDK_BUTTON_RELEASE: - tablabel->pre_drag = FALSE; - break; - - default: - break; - } - - if (!event_handled) { - /* propagate the event to the parent's gdkwindow */ - GdkEventButton e; - - e = *event; - e.window = gtk_widget_get_parent_window (widget); - gtk_widget_get_allocation (widget, &widget_allocation); - e.x += widget_allocation.x; - e.y += widget_allocation.y; - - gdk_event_put ((GdkEvent *) &e); - }; - - return event_handled; -} - -static gboolean -gdl_dock_tablabel_motion_event (GtkWidget *widget, - GdkEventMotion *event) -{ - GdlDockTablabel *tablabel; - GtkAllocation widget_allocation; - gboolean event_handled; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GDL_IS_DOCK_TABLABEL (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - tablabel = GDL_DOCK_TABLABEL (widget); - - event_handled = FALSE; - - if (event->window != tablabel->event_window) - return FALSE; - - if (tablabel->pre_drag) { - if (gtk_drag_check_threshold (widget, - tablabel->drag_start_event.x, - tablabel->drag_start_event.y, - event->x, - event->y)) { - tablabel->pre_drag = FALSE; - g_signal_emit (widget, - dock_tablabel_signals [BUTTON_PRESSED_HANDLE], - 0, - &tablabel->drag_start_event); - event_handled = TRUE; - } - } - - if (!event_handled) { - /* propagate the event to the parent's gdkwindow */ - GdkEventMotion e; - - e = *event; - e.window = gtk_widget_get_parent_window (widget); - gtk_widget_get_allocation (widget, &widget_allocation); - e.x += widget_allocation.x; - e.y += widget_allocation.y; - - gdk_event_put ((GdkEvent *) &e); - }; - - return event_handled; -} - -static void -gdl_dock_tablabel_realize (GtkWidget *widget) -{ - GdlDockTablabel *tablabel; - GdkWindowAttr attributes; - GtkAllocation widget_allocation; - int attributes_mask; - - tablabel = GDL_DOCK_TABLABEL (widget); - - attributes.window_type = GDK_WINDOW_CHILD; - gtk_widget_get_allocation (widget, &widget_allocation); - attributes.x = widget_allocation.x; - attributes.y = widget_allocation.y; - attributes.width = widget_allocation.width; - attributes.height = widget_allocation.height; - attributes.wclass = GDK_INPUT_ONLY; - attributes.event_mask = gtk_widget_get_events (widget); - attributes.event_mask |= (GDK_EXPOSURE_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_ENTER_NOTIFY_MASK | - GDK_POINTER_MOTION_MASK | - GDK_LEAVE_NOTIFY_MASK); - attributes_mask = GDK_WA_X | GDK_WA_Y; - - gtk_widget_set_window (widget, gtk_widget_get_parent_window (widget)); - g_object_ref (gtk_widget_get_window (widget)); - - tablabel->event_window = - gdk_window_new (gtk_widget_get_parent_window (widget), - &attributes, attributes_mask); - gdk_window_set_user_data (tablabel->event_window, widget); - - gtk_widget_set_style (widget, gtk_style_attach (gtk_widget_get_style (widget), - gtk_widget_get_window (widget))); - - gtk_widget_set_realized (widget, TRUE); -} - -static void -gdl_dock_tablabel_unrealize (GtkWidget *widget) -{ - GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (widget); - - if (tablabel->event_window) { - gdk_window_set_user_data (tablabel->event_window, NULL); - gdk_window_destroy (tablabel->event_window); - tablabel->event_window = NULL; - } - - GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->unrealize (widget); -} - -static void -gdl_dock_tablabel_map (GtkWidget *widget) -{ - GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (widget); - - GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->map (widget); - - gdk_window_show (tablabel->event_window); -} - -static void -gdl_dock_tablabel_unmap (GtkWidget *widget) -{ - GdlDockTablabel *tablabel = GDL_DOCK_TABLABEL (widget); - - gdk_window_hide (tablabel->event_window); - - GTK_WIDGET_CLASS (gdl_dock_tablabel_parent_class)->unmap (widget); -} - -/* ----- Public interface ----- */ - -GtkWidget * -gdl_dock_tablabel_new (GdlDockItem *item) -{ - GdlDockTablabel *tablabel; - - tablabel = GDL_DOCK_TABLABEL (g_object_new (GDL_TYPE_DOCK_TABLABEL, - "item", item, - NULL)); - - return GTK_WIDGET (tablabel); -} - -void -gdl_dock_tablabel_activate (GdlDockTablabel *tablabel) -{ - g_return_if_fail (tablabel != NULL); - - tablabel->active = TRUE; - gtk_widget_set_state (GTK_WIDGET (tablabel), GTK_STATE_NORMAL); -} - -void -gdl_dock_tablabel_deactivate (GdlDockTablabel *tablabel) -{ - g_return_if_fail (tablabel != NULL); - - tablabel->active = FALSE; - /* yeah, i know it contradictive */ - gtk_widget_set_state (GTK_WIDGET (tablabel), GTK_STATE_ACTIVE); -} diff --git a/src/libgdl/gdl-dock-tablabel.h b/src/libgdl/gdl-dock-tablabel.h deleted file mode 100644 index b78c1c5c7..000000000 --- a/src/libgdl/gdl-dock-tablabel.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * gdl-dock-tablabel.h - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_TABLABEL_H__ -#define __GDL_DOCK_TABLABEL_H__ - -#include -#include "libgdl/gdl-dock-item.h" - - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_TABLABEL (gdl_dock_tablabel_get_type ()) -#define GDL_DOCK_TABLABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_TABLABEL, GdlDockTablabel)) -#define GDL_DOCK_TABLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_TABLABEL, GdlDockTablabelClass)) -#define GDL_IS_DOCK_TABLABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_TABLABEL)) -#define GDL_IS_DOCK_TABLABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_TABLABEL)) -#define GDL_DOCK_TABLABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK_TABLABEL, GdlDockTablabelClass)) - -/* data types & structures */ -typedef struct _GdlDockTablabel GdlDockTablabel; -typedef struct _GdlDockTablabelClass GdlDockTablabelClass; - -struct _GdlDockTablabel { - GtkBin parent; - - guint drag_handle_size; - GtkWidget *item; - GdkWindow *event_window; - gboolean active; - - GdkEventButton drag_start_event; - gboolean pre_drag; -}; - -struct _GdlDockTablabelClass { - GtkBinClass parent_class; - - void (*button_pressed_handle) (GdlDockTablabel *tablabel, - GdkEventButton *event); -}; - -/* public interface */ - -GtkWidget *gdl_dock_tablabel_new (GdlDockItem *item); -GType gdl_dock_tablabel_get_type (void); - -void gdl_dock_tablabel_activate (GdlDockTablabel *tablabel); -void gdl_dock_tablabel_deactivate (GdlDockTablabel *tablabel); - -G_END_DECLS - -#endif diff --git a/src/libgdl/gdl-dock.c b/src/libgdl/gdl-dock.c deleted file mode 100644 index c87468e5c..000000000 --- a/src/libgdl/gdl-dock.c +++ /dev/null @@ -1,1365 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * 2007 Naba Kumar - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include -#include - -#include "gdl-dock.h" -#include "gdl-dock-master.h" -#include "gdl-dock-paned.h" -#include "gdl-dock-notebook.h" -#include "gdl-dock-placeholder.h" - -#include "libgdlmarshal.h" - -#ifndef __FUNCTION__ -#define __FUNCTION__ __func__ -#endif - -/* ----- Private prototypes ----- */ - -static void gdl_dock_class_init (GdlDockClass *class); - -static GObject *gdl_dock_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_param); -static void gdl_dock_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_dock_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void gdl_dock_notify_cb (GObject *object, - GParamSpec *pspec, - gpointer user_data); - -static void gdl_dock_set_title (GdlDock *dock); - -static void gdl_dock_destroy (GtkObject *object); - -static void gdl_dock_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gdl_dock_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gdl_dock_map (GtkWidget *widget); -static void gdl_dock_unmap (GtkWidget *widget); -static void gdl_dock_show (GtkWidget *widget); -static void gdl_dock_hide (GtkWidget *widget); - -static void gdl_dock_add (GtkContainer *container, - GtkWidget *widget); -static void gdl_dock_remove (GtkContainer *container, - GtkWidget *widget); -static void gdl_dock_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); -static GType gdl_dock_child_type (GtkContainer *container); - -static void gdl_dock_detach (GdlDockObject *object, - gboolean recursive); -static void gdl_dock_reduce (GdlDockObject *object); -static gboolean gdl_dock_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request); -static void gdl_dock_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *other_data); -static gboolean gdl_dock_reorder (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement new_position, - GValue *other_data); - -static gboolean gdl_dock_floating_window_delete_event_cb (GtkWidget *widget); - -static gboolean gdl_dock_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement); - -static void gdl_dock_present (GdlDockObject *object, - GdlDockObject *child); - - -/* ----- Class variables and definitions ----- */ - -struct _GdlDockPrivate -{ - /* for floating docks */ - gboolean floating; - GtkWidget *window; - gboolean auto_title; - - gint float_x; - gint float_y; - gint width; - gint height; - - /* auxiliary fields */ - GdkGC *xor_gc; -}; - -enum { - LAYOUT_CHANGED, - LAST_SIGNAL -}; - -enum { - PROP_0, - PROP_FLOATING, - PROP_DEFAULT_TITLE, - PROP_WIDTH, - PROP_HEIGHT, - PROP_FLOAT_X, - PROP_FLOAT_Y -}; - -static guint dock_signals [LAST_SIGNAL] = { 0 }; - -#define SPLIT_RATIO 0.3 - - -/* ----- Private functions ----- */ - -G_DEFINE_TYPE (GdlDock, gdl_dock, GDL_TYPE_DOCK_OBJECT); - -static void -gdl_dock_class_init (GdlDockClass *klass) -{ - GObjectClass *g_object_class; - GtkObjectClass *gtk_object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - GdlDockObjectClass *object_class; - - g_object_class = G_OBJECT_CLASS (klass); - gtk_object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - container_class = GTK_CONTAINER_CLASS (klass); - object_class = GDL_DOCK_OBJECT_CLASS (klass); - - g_object_class->constructor = gdl_dock_constructor; - g_object_class->set_property = gdl_dock_set_property; - g_object_class->get_property = gdl_dock_get_property; - - /* properties */ - - g_object_class_install_property ( - g_object_class, PROP_FLOATING, - g_param_spec_boolean ("floating", _("Floating"), - _("Whether the dock is floating in its own window"), - FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - GDL_DOCK_PARAM_EXPORT)); - - g_object_class_install_property ( - g_object_class, PROP_DEFAULT_TITLE, - g_param_spec_string ("default-title", _("Default title"), - _("Default title for the newly created floating docks"), - NULL, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_WIDTH, - g_param_spec_int ("width", _("Width"), - _("Width for the dock when it's of floating type"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - GDL_DOCK_PARAM_EXPORT)); - - g_object_class_install_property ( - g_object_class, PROP_HEIGHT, - g_param_spec_int ("height", _("Height"), - _("Height for the dock when it's of floating type"), - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - GDL_DOCK_PARAM_EXPORT)); - - g_object_class_install_property ( - g_object_class, PROP_FLOAT_X, - g_param_spec_int ("floatx", _("Float X"), - _("X coordinate for a floating dock"), - G_MININT, G_MAXINT, 0, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - GDL_DOCK_PARAM_EXPORT)); - - g_object_class_install_property ( - g_object_class, PROP_FLOAT_Y, - g_param_spec_int ("floaty", _("Float Y"), - _("Y coordinate for a floating dock"), - G_MININT, G_MAXINT, 0, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - GDL_DOCK_PARAM_EXPORT)); - - gtk_object_class->destroy = gdl_dock_destroy; - - widget_class->size_request = gdl_dock_size_request; - widget_class->size_allocate = gdl_dock_size_allocate; - widget_class->map = gdl_dock_map; - widget_class->unmap = gdl_dock_unmap; - widget_class->show = gdl_dock_show; - widget_class->hide = gdl_dock_hide; - - container_class->add = gdl_dock_add; - container_class->remove = gdl_dock_remove; - container_class->forall = gdl_dock_forall; - container_class->child_type = gdl_dock_child_type; - - object_class->is_compound = TRUE; - - object_class->detach = gdl_dock_detach; - object_class->reduce = gdl_dock_reduce; - object_class->dock_request = gdl_dock_dock_request; - object_class->dock = gdl_dock_dock; - object_class->reorder = gdl_dock_reorder; - object_class->child_placement = gdl_dock_child_placement; - object_class->present = gdl_dock_present; - - /* signals */ - - dock_signals [LAYOUT_CHANGED] = - g_signal_new ("layout-changed", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdlDockClass, layout_changed), - NULL, /* accumulator */ - NULL, /* accu_data */ - gdl_marshal_VOID__VOID, - G_TYPE_NONE, /* return type */ - 0); - - klass->layout_changed = NULL; -} - -static void -gdl_dock_init (GdlDock *dock) -{ - gtk_widget_set_has_window (GTK_WIDGET (dock), FALSE); - - dock->root = NULL; - dock->_priv = g_new0 (GdlDockPrivate, 1); - dock->_priv->width = -1; - dock->_priv->height = -1; -} - -static gboolean -gdl_dock_floating_configure_event_cb (GtkWidget *widget, - GdkEventConfigure *event, - gpointer user_data) -{ - GdlDock *dock; - - g_return_val_if_fail (user_data != NULL && GDL_IS_DOCK (user_data), TRUE); - - dock = GDL_DOCK (user_data); - dock->_priv->float_x = event->x; - dock->_priv->float_y = event->y; - dock->_priv->width = event->width; - dock->_priv->height = event->height; - - return FALSE; -} - -static GObject * -gdl_dock_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_param) -{ - GObject *g_object; - - g_object = G_OBJECT_CLASS (gdl_dock_parent_class)-> constructor (type, - n_construct_properties, - construct_param); - if (g_object) { - GdlDock *dock = GDL_DOCK (g_object); - GdlDockMaster *master; - - /* create a master for the dock if none was provided in the construction */ - master = GDL_DOCK_OBJECT_GET_MASTER (GDL_DOCK_OBJECT (dock)); - if (!master) { - GDL_DOCK_OBJECT_UNSET_FLAGS (dock, GDL_DOCK_AUTOMATIC); - master = g_object_new (GDL_TYPE_DOCK_MASTER, NULL); - /* the controller owns the master ref */ - gdl_dock_object_bind (GDL_DOCK_OBJECT (dock), G_OBJECT (master)); - } - - if (dock->_priv->floating) { - /* create floating window for this dock */ - dock->_priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - g_object_set_data (G_OBJECT (dock->_priv->window), "dock", dock); - - /* set position and default size */ - gtk_window_set_position (GTK_WINDOW (dock->_priv->window), - GTK_WIN_POS_MOUSE); - gtk_window_set_default_size (GTK_WINDOW (dock->_priv->window), - dock->_priv->width, - dock->_priv->height); - gtk_window_set_type_hint (GTK_WINDOW (dock->_priv->window), - GDK_WINDOW_TYPE_HINT_NORMAL); - - gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dock->_priv->window), - TRUE); - - /* metacity ignores this */ - gtk_window_move (GTK_WINDOW (dock->_priv->window), - dock->_priv->float_x, - dock->_priv->float_y); - - /* connect to the configure event so we can track down window geometry */ - g_signal_connect (dock->_priv->window, "configure_event", - (GCallback) gdl_dock_floating_configure_event_cb, - dock); - - /* set the title and connect to the long_name notify queue - so we can reset the title when this prop changes */ - gdl_dock_set_title (dock); - g_signal_connect (dock, "notify::long-name", - (GCallback) gdl_dock_notify_cb, NULL); - - gtk_container_add (GTK_CONTAINER (dock->_priv->window), GTK_WIDGET (dock)); - - g_signal_connect (dock->_priv->window, "delete_event", - G_CALLBACK (gdl_dock_floating_window_delete_event_cb), - NULL); - } - GDL_DOCK_OBJECT_SET_FLAGS (dock, GDL_DOCK_ATTACHED); - } - - return g_object; -} - -static void -gdl_dock_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDock *dock = GDL_DOCK (object); - - switch (prop_id) { - case PROP_FLOATING: - dock->_priv->floating = g_value_get_boolean (value); - break; - case PROP_DEFAULT_TITLE: - if (GDL_DOCK_OBJECT (object)->master) - g_object_set (GDL_DOCK_OBJECT (object)->master, - "default-title", g_value_get_string (value), - NULL); - break; - case PROP_WIDTH: - dock->_priv->width = g_value_get_int (value); - break; - case PROP_HEIGHT: - dock->_priv->height = g_value_get_int (value); - break; - case PROP_FLOAT_X: - dock->_priv->float_x = g_value_get_int (value); - break; - case PROP_FLOAT_Y: - dock->_priv->float_y = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } - - switch (prop_id) { - case PROP_WIDTH: - case PROP_HEIGHT: - case PROP_FLOAT_X: - case PROP_FLOAT_Y: - if (dock->_priv->floating && dock->_priv->window) { - gtk_window_resize (GTK_WINDOW (dock->_priv->window), - dock->_priv->width, - dock->_priv->height); - } - break; - } -} - -static void -gdl_dock_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDock *dock = GDL_DOCK (object); - - switch (prop_id) { - case PROP_FLOATING: - g_value_set_boolean (value, dock->_priv->floating); - break; - case PROP_DEFAULT_TITLE: - if (GDL_DOCK_OBJECT (object)->master) { - gchar *default_title; - g_object_get (GDL_DOCK_OBJECT (object)->master, - "default-title", &default_title, - NULL); -#if GLIB_CHECK_VERSION(2,3,0) - g_value_take_string (value, default_title); -#else - g_value_set_string_take_ownership (value, default_title); -#endif - } - else - g_value_set_string (value, NULL); - break; - case PROP_WIDTH: - g_value_set_int (value, dock->_priv->width); - break; - case PROP_HEIGHT: - g_value_set_int (value, dock->_priv->height); - break; - case PROP_FLOAT_X: - g_value_set_int (value, dock->_priv->float_x); - break; - case PROP_FLOAT_Y: - g_value_set_int (value, dock->_priv->float_y); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_dock_set_title (GdlDock *dock) -{ - GdlDockObject *object = GDL_DOCK_OBJECT (dock); - gchar *title = NULL; - - if (!dock->_priv->window) - return; - - if (!dock->_priv->auto_title && object->long_name) { - title = object->long_name; - } - else if (object->master) { - g_object_get (object->master, "default-title", &title, NULL); - } - - if (!title && dock->root) { - g_object_get (dock->root, "long-name", &title, NULL); - } - - if (!title) { - /* set a default title in the long_name */ - dock->_priv->auto_title = TRUE; - title = g_strdup_printf ( - _("Dock #%d"), GDL_DOCK_MASTER (object->master)->dock_number++); - } - - gtk_window_set_title (GTK_WINDOW (dock->_priv->window), title); - - g_free (title); -} - -static void -gdl_dock_notify_cb (GObject *object, - GParamSpec *pspec, - gpointer user_data) -{ - GdlDock *dock; - gchar* long_name; - - g_return_if_fail (object != NULL || GDL_IS_DOCK (object)); - - g_object_get (object, "long-name", &long_name, NULL); - - if (long_name) - { - dock = GDL_DOCK (object); - dock->_priv->auto_title = FALSE; - gdl_dock_set_title (dock); - } - g_free (long_name); -} - -static void -gdl_dock_destroy (GtkObject *object) -{ - GdlDock *dock = GDL_DOCK (object); - - if (dock->_priv) { - GdlDockPrivate *priv = dock->_priv; - dock->_priv = NULL; - - if (priv->window) { - gtk_widget_destroy (priv->window); - priv->floating = FALSE; - priv->window = NULL; - } - - /* destroy the xor gc */ - if (priv->xor_gc) { - g_object_unref (priv->xor_gc); - priv->xor_gc = NULL; - } - - g_free (priv); - } - - GTK_OBJECT_CLASS (gdl_dock_parent_class)->destroy (object); -} - -static void -gdl_dock_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GdlDock *dock; - GtkContainer *container; - guint border_width; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK (widget)); - - dock = GDL_DOCK (widget); - container = GTK_CONTAINER (widget); - border_width = gtk_container_get_border_width (container); - - /* make request to root */ - if (dock->root && gtk_widget_get_visible (GTK_WIDGET (dock->root))) - gtk_widget_size_request (GTK_WIDGET (dock->root), requisition); - else { - requisition->width = 0; - requisition->height = 0; - }; - - requisition->width += 2 * border_width; - requisition->height += 2 * border_width; - - //gtk_widget_size_request (widget, requisition); -} - -static void -gdl_dock_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GdlDock *dock; - GtkContainer *container; - guint border_width; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK (widget)); - - dock = GDL_DOCK (widget); - container = GTK_CONTAINER (widget); - border_width = gtk_container_get_border_width (container); - - gtk_widget_set_allocation (widget, allocation); - - /* reduce allocation by border width */ - allocation->x += border_width; - allocation->y += border_width; - allocation->width = MAX (1, allocation->width - 2 * border_width); - allocation->height = MAX (1, allocation->height - 2 * border_width); - - if (dock->root && gtk_widget_get_visible (GTK_WIDGET (dock->root))) - gtk_widget_size_allocate (GTK_WIDGET (dock->root), allocation); -} - -static void -gdl_dock_map (GtkWidget *widget) -{ - GtkWidget *child; - GdlDock *dock; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK (widget)); - - dock = GDL_DOCK (widget); - - GTK_WIDGET_CLASS (gdl_dock_parent_class)->map (widget); - - if (dock->root) { - child = GTK_WIDGET (dock->root); - if (gtk_widget_get_visible (child) && !gtk_widget_get_mapped (child)) - gtk_widget_map (child); - } -} - -static void -gdl_dock_unmap (GtkWidget *widget) -{ - GtkWidget *child; - GdlDock *dock; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK (widget)); - - dock = GDL_DOCK (widget); - - GTK_WIDGET_CLASS (gdl_dock_parent_class)->unmap (widget); - - if (dock->root) { - child = GTK_WIDGET (dock->root); - if (gtk_widget_get_visible (child) && gtk_widget_get_mapped (child)) - gtk_widget_unmap (child); - } - - if (dock->_priv->window) - gtk_widget_unmap (dock->_priv->window); -} - -static void -gdl_dock_foreach_automatic (GdlDockObject *object, - gpointer user_data) -{ - void (* function) (GtkWidget *) = user_data; - - if (GDL_DOCK_OBJECT_AUTOMATIC (object)) - (* function) (GTK_WIDGET (object)); -} - -static void -gdl_dock_show (GtkWidget *widget) -{ - GdlDock *dock; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK (widget)); - - GTK_WIDGET_CLASS (gdl_dock_parent_class)->show (widget); - - dock = GDL_DOCK (widget); - if (dock->_priv->floating && dock->_priv->window) - gtk_widget_show (dock->_priv->window); - - if (GDL_DOCK_IS_CONTROLLER (dock)) { - gdl_dock_master_foreach_toplevel (GDL_DOCK_OBJECT_GET_MASTER (dock), - FALSE, (GFunc) gdl_dock_foreach_automatic, - gtk_widget_show); - } -} - -static void -gdl_dock_hide (GtkWidget *widget) -{ - GdlDock *dock; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GDL_IS_DOCK (widget)); - - GTK_WIDGET_CLASS (gdl_dock_parent_class)->hide (widget); - - dock = GDL_DOCK (widget); - if (dock->_priv->floating && dock->_priv->window) - gtk_widget_hide (dock->_priv->window); - - if (GDL_DOCK_IS_CONTROLLER (dock)) { - gdl_dock_master_foreach_toplevel (GDL_DOCK_OBJECT_GET_MASTER (dock), - FALSE, (GFunc) gdl_dock_foreach_automatic, - gtk_widget_hide); - } -} - -static void -gdl_dock_add (GtkContainer *container, - GtkWidget *widget) -{ - g_return_if_fail (container != NULL); - g_return_if_fail (GDL_IS_DOCK (container)); - g_return_if_fail (GDL_IS_DOCK_ITEM (widget)); - - gdl_dock_add_item (GDL_DOCK (container), - GDL_DOCK_ITEM (widget), - GDL_DOCK_TOP); /* default position */ -} - -static void -gdl_dock_remove (GtkContainer *container, - GtkWidget *widget) -{ - GdlDock *dock; - gboolean was_visible; - - g_return_if_fail (container != NULL); - g_return_if_fail (widget != NULL); - - dock = GDL_DOCK (container); - was_visible = gtk_widget_get_visible (widget); - - if (GTK_WIDGET (dock->root) == widget) { - dock->root = NULL; - GDL_DOCK_OBJECT_UNSET_FLAGS (widget, GDL_DOCK_ATTACHED); - gtk_widget_unparent (widget); - - if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container))) - gtk_widget_queue_resize (GTK_WIDGET (dock)); - } -} - -static void -gdl_dock_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - GdlDock *dock; - - g_return_if_fail (container != NULL); - g_return_if_fail (GDL_IS_DOCK (container)); - g_return_if_fail (callback != NULL); - - dock = GDL_DOCK (container); - - if (dock->root) - (*callback) (GTK_WIDGET (dock->root), callback_data); -} - -static GType -gdl_dock_child_type (GtkContainer *container) -{ - return GDL_TYPE_DOCK_ITEM; -} - -static void -gdl_dock_detach (GdlDockObject *object, - gboolean recursive) -{ - GdlDock *dock = GDL_DOCK (object); - - /* detach children */ - if (recursive && dock->root) { - gdl_dock_object_detach (dock->root, recursive); - } - GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_ATTACHED); -} - -static void -gdl_dock_reduce (GdlDockObject *object) -{ - GdlDock *dock = GDL_DOCK (object); - GtkWidget *parent; - - if (dock->root) - return; - - if (GDL_DOCK_OBJECT_AUTOMATIC (dock)) { - gtk_widget_destroy (GTK_WIDGET (dock)); - - } else if (!GDL_DOCK_OBJECT_ATTACHED (dock)) { - /* if the user explicitly detached the object */ - if (dock->_priv->floating) - gtk_widget_hide (GTK_WIDGET (dock)); - else { - GtkWidget *widget = GTK_WIDGET (object); - parent = gtk_widget_get_parent (widget); - if (parent) - gtk_container_remove (GTK_CONTAINER (parent), widget); - } - } -} - -static gboolean -gdl_dock_dock_request (GdlDockObject *object, - gint x, - gint y, - GdlDockRequest *request) -{ - GdlDock *dock; - guint bw; - gint rel_x, rel_y; - GtkAllocation alloc; - gboolean may_dock = FALSE; - GdlDockRequest my_request; - - g_return_val_if_fail (GDL_IS_DOCK (object), FALSE); - - /* we get (x,y) in our allocation coordinates system */ - - dock = GDL_DOCK (object); - - /* Get dock size. */ - gtk_widget_get_allocation (GTK_WIDGET (dock), &alloc); - bw = gtk_container_get_border_width (GTK_CONTAINER (dock)); - - /* Get coordinates relative to our allocation area. */ - rel_x = x - alloc.x; - rel_y = y - alloc.y; - - if (request) - my_request = *request; - - /* Check if coordinates are in GdlDock widget. */ - if (rel_x > 0 && rel_x < alloc.width && - rel_y > 0 && rel_y < alloc.height) { - - /* It's inside our area. */ - may_dock = TRUE; - - /* Set docking indicator rectangle to the GdlDock size. */ - my_request.rect.x = alloc.x + bw; - my_request.rect.y = alloc.y + bw; - my_request.rect.width = alloc.width - 2*bw; - my_request.rect.height = alloc.height - 2*bw; - - /* If GdlDock has no root item yet, set the dock itself as - possible target. */ - if (!dock->root) { - my_request.position = GDL_DOCK_TOP; - my_request.target = object; - } else { - my_request.target = dock->root; - - /* See if it's in the border_width band. */ - if (rel_x < (gint)bw) { - my_request.position = GDL_DOCK_LEFT; - my_request.rect.width *= SPLIT_RATIO; - } else if (rel_x > alloc.width - (gint)bw) { - my_request.position = GDL_DOCK_RIGHT; - my_request.rect.x += my_request.rect.width * (1 - SPLIT_RATIO); - my_request.rect.width *= SPLIT_RATIO; - } else if (rel_y < (gint)bw) { - my_request.position = GDL_DOCK_TOP; - my_request.rect.height *= SPLIT_RATIO; - } else if (rel_y > alloc.height - (gint)bw) { - my_request.position = GDL_DOCK_BOTTOM; - my_request.rect.y += my_request.rect.height * (1 - SPLIT_RATIO); - my_request.rect.height *= SPLIT_RATIO; - } else { - /* Otherwise try our children. */ - /* give them allocation coordinates (we are a - GTK_NO_WINDOW) widget */ - may_dock = gdl_dock_object_dock_request (GDL_DOCK_OBJECT (dock->root), - x, y, &my_request); - } - } - } - - if (may_dock && request) - *request = my_request; - - return may_dock; -} - -static void -gdl_dock_dock (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement position, - GValue *user_data) -{ - GdlDock *dock; - - g_return_if_fail (GDL_IS_DOCK (object)); - /* only dock items allowed at this time */ - g_return_if_fail (GDL_IS_DOCK_ITEM (requestor)); - - dock = GDL_DOCK (object); - - if (position == GDL_DOCK_FLOATING) { - GdlDockItem *item = GDL_DOCK_ITEM (requestor); - gint x, y, width, height; - - if (user_data && G_VALUE_HOLDS (user_data, GDK_TYPE_RECTANGLE)) { - GdkRectangle *rect; - - rect = g_value_get_boxed (user_data); - x = rect->x; - y = rect->y; - width = rect->width; - height = rect->height; - } - else { - x = y = 0; - width = height = -1; - } - - gdl_dock_add_floating_item (dock, item, - x, y, width, height); - } - else if (dock->root) { - /* This is somewhat a special case since we know which item to - pass the request on because we only have on child */ - gdl_dock_object_dock (dock->root, requestor, position, NULL); - gdl_dock_set_title (dock); - - } - else { /* Item about to be added is root item. */ - GtkWidget *widget = GTK_WIDGET (requestor); - - dock->root = requestor; - GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED); - gtk_widget_set_parent (widget, GTK_WIDGET (dock)); - - gdl_dock_item_show_grip (GDL_DOCK_ITEM (requestor)); - - /* Realize the item (create its corresponding GdkWindow) when - GdlDock has been realized. */ - if (gtk_widget_get_realized (GTK_WIDGET (dock))) - gtk_widget_realize (widget); - - /* Map the widget if it's visible and the parent is visible and has - been mapped. This is done to make sure that the GdkWindow is - visible. */ - if (gtk_widget_get_visible (GTK_WIDGET (dock)) && - gtk_widget_get_visible (widget)) { - if (gtk_widget_get_mapped (GTK_WIDGET (dock))) - gtk_widget_map (widget); - - /* Make the widget resize. */ - gtk_widget_queue_resize (widget); - } - gdl_dock_set_title (dock); - } -} - -static gboolean -gdl_dock_floating_window_delete_event_cb (GtkWidget *widget) -{ - GdlDock *dock; - - g_return_val_if_fail (GTK_IS_WINDOW (widget), FALSE); - - dock = GDL_DOCK (g_object_get_data (G_OBJECT (widget), "dock")); - if (dock->root) { - /* this will call reduce on ourselves, hiding the window if appropiate */ - gdl_dock_item_hide_item (GDL_DOCK_ITEM (dock->root)); - } - - return TRUE; -} - -static void -_gdl_dock_foreach_build_list (GdlDockObject *object, - gpointer user_data) -{ - GList **l = (GList **) user_data; - - if (GDL_IS_DOCK_ITEM (object)) - *l = g_list_prepend (*l, object); -} - -static gboolean -gdl_dock_reorder (GdlDockObject *object, - GdlDockObject *requestor, - GdlDockPlacement new_position, - GValue *other_data) -{ - GdlDock *dock = GDL_DOCK (object); - gboolean handled = FALSE; - - if (dock->_priv->floating && - new_position == GDL_DOCK_FLOATING && - dock->root == requestor) { - - if (other_data && G_VALUE_HOLDS (other_data, GDK_TYPE_RECTANGLE)) { - GdkRectangle *rect; - - rect = g_value_get_boxed (other_data); - gtk_window_move (GTK_WINDOW (dock->_priv->window), - rect->x, - rect->y); - handled = TRUE; - } - } - - return handled; -} - -static gboolean -gdl_dock_child_placement (GdlDockObject *object, - GdlDockObject *child, - GdlDockPlacement *placement) -{ - GdlDock *dock = GDL_DOCK (object); - gboolean retval = TRUE; - - if (dock->root == child) { - if (placement) { - if (*placement == GDL_DOCK_NONE || *placement == GDL_DOCK_FLOATING) - *placement = GDL_DOCK_TOP; - } - } else - retval = FALSE; - - return retval; -} - -static void -gdl_dock_present (GdlDockObject *object, - GdlDockObject *child) -{ - GdlDock *dock = GDL_DOCK (object); - - if (dock->_priv->floating) - gtk_window_present (GTK_WINDOW (dock->_priv->window)); -} - - -/* ----- Public interface ----- */ - -GtkWidget * -gdl_dock_new (void) -{ - GObject *dock; - - dock = g_object_new (GDL_TYPE_DOCK, NULL); - GDL_DOCK_OBJECT_UNSET_FLAGS (dock, GDL_DOCK_AUTOMATIC); - - return GTK_WIDGET (dock); -} - -GtkWidget * -gdl_dock_new_from (GdlDock *original, - gboolean floating) -{ - GObject *new_dock; - - g_return_val_if_fail (original != NULL, NULL); - - new_dock = g_object_new (GDL_TYPE_DOCK, - "master", GDL_DOCK_OBJECT_GET_MASTER (original), - "floating", floating, - NULL); - GDL_DOCK_OBJECT_UNSET_FLAGS (new_dock, GDL_DOCK_AUTOMATIC); - - return GTK_WIDGET (new_dock); -} - -/* Depending on where the dock item (where new item will be docked) locates - * in the dock, we might need to change the docking placement. If the - * item is does not touches the center of dock, the new-item-to-dock would - * require a center dock on this item. - */ -static GdlDockPlacement -gdl_dock_refine_placement (GdlDock *dock, GdlDockItem *dock_item, - GdlDockPlacement placement) -{ - GtkAllocation allocation; - GtkRequisition object_size; - - gdl_dock_item_preferred_size (dock_item, &object_size); - gtk_widget_get_allocation (GTK_WIDGET (dock), &allocation); - - g_return_val_if_fail (allocation.width > 0, placement); - g_return_val_if_fail (allocation.height > 0, placement); - g_return_val_if_fail (object_size.width > 0, placement); - g_return_val_if_fail (object_size.height > 0, placement); - - if (placement == GDL_DOCK_LEFT || placement == GDL_DOCK_RIGHT) { - /* Check if dock_object touches center in terms of width */ - if (allocation.width/2 > object_size.width) { - return GDL_DOCK_CENTER; - } - } else if (placement == GDL_DOCK_TOP || placement == GDL_DOCK_BOTTOM) { - /* Check if dock_object touches center in terms of height */ - if (allocation.height/2 > object_size.height) { - return GDL_DOCK_CENTER; - } - } - return placement; -} - -/* Determines the larger item of the two based on the placement: - * for left/right placement, height determines it. - * for top/bottom placement, width determines it. - * for center placement, area determines it. - */ -static GdlDockItem* -gdl_dock_select_larger_item (GdlDockItem *dock_item_1, - GdlDockItem *dock_item_2, - GdlDockPlacement placement, - gint level /* for debugging */) -{ - GtkRequisition size_1, size_2; - - g_return_val_if_fail (dock_item_1 != NULL, dock_item_2); - g_return_val_if_fail (dock_item_2 != NULL, dock_item_1); - - gdl_dock_item_preferred_size (dock_item_1, &size_1); - gdl_dock_item_preferred_size (dock_item_2, &size_2); - - g_return_val_if_fail (size_1.width > 0, dock_item_2); - g_return_val_if_fail (size_1.height > 0, dock_item_2); - g_return_val_if_fail (size_2.width > 0, dock_item_1); - g_return_val_if_fail (size_2.height > 0, dock_item_1); - - if (placement == GDL_DOCK_LEFT || placement == GDL_DOCK_RIGHT) - { - /* For left/right placement, height is what matters */ - return (size_1.height >= size_2.height? - dock_item_1 : dock_item_2); - } else if (placement == GDL_DOCK_TOP || placement == GDL_DOCK_BOTTOM) - { - /* For top/bottom placement, width is what matters */ - return (size_1.width >= size_2.width? - dock_item_1 : dock_item_2); - } else if (placement == GDL_DOCK_CENTER) { - /* For center place, area is what matters */ - return ((size_1.width * size_1.height) - >= (size_2.width * size_2.height)? - dock_item_1 : dock_item_2); - } else if (placement == GDL_DOCK_NONE) { - return dock_item_1; - } else { - g_warning ("Should not reach here: %s:%d", __FUNCTION__, __LINE__); - } - return dock_item_1; -} - -/* Determines the best dock item to dock a new item with the given placement. - * It traverses the dock tree and (based on the placement) tries to find - * the best located item wrt to the placement. The approach is to find the - * largest item on/around the placement side (for side placements) and to - * find the largest item for center placement. In most situations, this is - * what user wants and the heuristic should be therefore sufficient. - */ -static GdlDockItem* -gdl_dock_find_best_placement_item (GdlDockItem *dock_item, - GdlDockPlacement placement, - gint level /* for debugging */) -{ - GdlDockItem *ret_item = NULL; - - if (GDL_IS_DOCK_PANED (dock_item)) - { - GtkOrientation orientation; - GdlDockItem *dock_item_1, *dock_item_2; - GList* children; - - children = gtk_container_get_children (GTK_CONTAINER (dock_item)); - - g_assert (g_list_length (children) == 2); - - g_object_get (dock_item, "orientation", &orientation, NULL); - if ((orientation == GTK_ORIENTATION_HORIZONTAL && - placement == GDL_DOCK_LEFT) || - (orientation == GTK_ORIENTATION_VERTICAL && - placement == GDL_DOCK_TOP)) { - /* Return left or top pane widget */ - ret_item = - gdl_dock_find_best_placement_item (GDL_DOCK_ITEM - (children->data), - placement, level + 1); - } else if ((orientation == GTK_ORIENTATION_HORIZONTAL && - placement == GDL_DOCK_RIGHT) || - (orientation == GTK_ORIENTATION_VERTICAL && - placement == GDL_DOCK_BOTTOM)) { - /* Return right or top pane widget */ - ret_item = - gdl_dock_find_best_placement_item (GDL_DOCK_ITEM - (children->next->data), - placement, level + 1); - } else { - /* Evaluate which of the two sides is bigger */ - dock_item_1 = - gdl_dock_find_best_placement_item (GDL_DOCK_ITEM - (children->data), - placement, level + 1); - dock_item_2 = - gdl_dock_find_best_placement_item (GDL_DOCK_ITEM - (children->next->data), - placement, level + 1); - ret_item = gdl_dock_select_larger_item (dock_item_1, - dock_item_2, - placement, level); - } - g_list_free (children); - } - else if (GDL_IS_DOCK_ITEM (dock_item)) - { - ret_item = dock_item; - } - else - { - /* should not be here */ - g_warning ("Should not reach here: %s:%d", __FUNCTION__, __LINE__); - } - return ret_item; -} - -void -gdl_dock_add_item (GdlDock *dock, - GdlDockItem *item, - GdlDockPlacement placement) -{ - g_return_if_fail (dock != NULL); - g_return_if_fail (item != NULL); - - if (placement == GDL_DOCK_FLOATING) - /* Add the item to a new floating dock */ - gdl_dock_add_floating_item (dock, item, 0, 0, -1, -1); - - else { - GdlDockItem *best_dock_item; - /* Non-floating item. */ - if (dock->root) { - GdlDockPlacement local_placement; - - best_dock_item = - gdl_dock_find_best_placement_item (GDL_DOCK_ITEM (dock->root), - placement, 0); - local_placement = gdl_dock_refine_placement (dock, best_dock_item, - placement); - gdl_dock_object_dock (GDL_DOCK_OBJECT (best_dock_item), - GDL_DOCK_OBJECT (item), - local_placement, NULL); - } else { - gdl_dock_object_dock (GDL_DOCK_OBJECT (dock), - GDL_DOCK_OBJECT (item), - placement, NULL); - } - } -} - -void -gdl_dock_add_floating_item (GdlDock *dock, - GdlDockItem *item, - gint x, - gint y, - gint width, - gint height) -{ - GdlDock *new_dock; - - g_return_if_fail (dock != NULL); - g_return_if_fail (item != NULL); - - new_dock = GDL_DOCK (g_object_new (GDL_TYPE_DOCK, - "master", GDL_DOCK_OBJECT_GET_MASTER (dock), - "floating", TRUE, - "width", width, - "height", height, - "floatx", x, - "floaty", y, - NULL)); - - if (gtk_widget_get_visible (GTK_WIDGET (dock))) { - gtk_widget_show (GTK_WIDGET (new_dock)); - if (gtk_widget_get_mapped (GTK_WIDGET (dock))) - gtk_widget_map (GTK_WIDGET (new_dock)); - - /* Make the widget resize. */ - gtk_widget_queue_resize (GTK_WIDGET (new_dock)); - } - - gdl_dock_add_item (GDL_DOCK (new_dock), item, GDL_DOCK_TOP); -} - -GdlDockItem * -gdl_dock_get_item_by_name (GdlDock *dock, - const gchar *name) -{ - GdlDockObject *found; - - g_return_val_if_fail (dock != NULL && name != NULL, NULL); - - /* proxy the call to our master */ - found = gdl_dock_master_get_object (GDL_DOCK_OBJECT_GET_MASTER (dock), name); - - return (found && GDL_IS_DOCK_ITEM (found)) ? GDL_DOCK_ITEM (found) : NULL; -} - -GdlDockPlaceholder * -gdl_dock_get_placeholder_by_name (GdlDock *dock, - const gchar *name) -{ - GdlDockObject *found; - - g_return_val_if_fail (dock != NULL && name != NULL, NULL); - - /* proxy the call to our master */ - found = gdl_dock_master_get_object (GDL_DOCK_OBJECT_GET_MASTER (dock), name); - - return (found && GDL_IS_DOCK_PLACEHOLDER (found)) ? - GDL_DOCK_PLACEHOLDER (found) : NULL; -} - -GList * -gdl_dock_get_named_items (GdlDock *dock) -{ - GList *list = NULL; - - g_return_val_if_fail (dock != NULL, NULL); - - gdl_dock_master_foreach (GDL_DOCK_OBJECT_GET_MASTER (dock), - (GFunc) _gdl_dock_foreach_build_list, &list); - - return list; -} - -GdlDock * -gdl_dock_object_get_toplevel (GdlDockObject *object) -{ - GdlDockObject *parent = object; - - g_return_val_if_fail (object != NULL, NULL); - - while (parent && !GDL_IS_DOCK (parent)) - parent = gdl_dock_object_get_parent_object (parent); - - return parent ? GDL_DOCK (parent) : NULL; -} - -void -gdl_dock_xor_rect (GdlDock *dock, - GdkRectangle *rect) -{ - GtkWidget *widget; - GdkWindow *window; - gint8 dash_list [2]; - - widget = GTK_WIDGET (dock); - - if (!dock->_priv->xor_gc) { - if (gtk_widget_get_realized (widget)) { - GdkGCValues values; - - values.function = GDK_INVERT; - values.subwindow_mode = GDK_INCLUDE_INFERIORS; - dock->_priv->xor_gc = gdk_gc_new_with_values - (gtk_widget_get_window (widget), &values, GDK_GC_FUNCTION | GDK_GC_SUBWINDOW); - } else - return; - }; - - gdk_gc_set_line_attributes (dock->_priv->xor_gc, 1, - GDK_LINE_ON_OFF_DASH, - GDK_CAP_NOT_LAST, - GDK_JOIN_BEVEL); - - window = gtk_widget_get_window (widget); - - dash_list [0] = 1; - dash_list [1] = 1; - - gdk_gc_set_dashes (dock->_priv->xor_gc, 1, dash_list, 2); - - gdk_draw_rectangle (window, dock->_priv->xor_gc, FALSE, - rect->x, rect->y, - rect->width, rect->height); - - gdk_gc_set_dashes (dock->_priv->xor_gc, 0, dash_list, 2); - - gdk_draw_rectangle (window, dock->_priv->xor_gc, FALSE, - rect->x + 1, rect->y + 1, - rect->width - 2, rect->height - 2); -} diff --git a/src/libgdl/gdl-dock.h b/src/libgdl/gdl-dock.h deleted file mode 100644 index 2259d395d..000000000 --- a/src/libgdl/gdl-dock.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_DOCK_H__ -#define __GDL_DOCK_H__ - -#include -#include "libgdl/gdl-dock-object.h" -#include "libgdl/gdl-dock-item.h" -#include "libgdl/gdl-dock-placeholder.h" - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK (gdl_dock_get_type ()) -#define GDL_DOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK, GdlDock)) -#define GDL_DOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK, GdlDockClass)) -#define GDL_IS_DOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK)) -#define GDL_IS_DOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK)) -#define GDL_DOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DOCK, GdlDockClass)) - -/* data types & structures */ -typedef struct _GdlDock GdlDock; -typedef struct _GdlDockClass GdlDockClass; -typedef struct _GdlDockPrivate GdlDockPrivate; - -struct _GdlDock { - GdlDockObject object; - - GdlDockObject *root; - - GdlDockPrivate *_priv; -}; - -struct _GdlDockClass { - GdlDockObjectClass parent_class; - - void (* layout_changed) (GdlDock *dock); /* proxy signal for the master */ -}; - -/* additional macros */ -#define GDL_DOCK_IS_CONTROLLER(dock) \ - (gdl_dock_master_get_controller (GDL_DOCK_OBJECT_GET_MASTER (dock)) == \ - GDL_DOCK_OBJECT (dock)) - -/* public interface */ - -GtkWidget *gdl_dock_new (void); - -GtkWidget *gdl_dock_new_from (GdlDock *original, - gboolean floating); - -GType gdl_dock_get_type (void); - -void gdl_dock_add_item (GdlDock *dock, - GdlDockItem *item, - GdlDockPlacement place); - -void gdl_dock_add_floating_item (GdlDock *dock, - GdlDockItem *item, - gint x, - gint y, - gint width, - gint height); - -GdlDockItem *gdl_dock_get_item_by_name (GdlDock *dock, - const gchar *name); - -GdlDockPlaceholder *gdl_dock_get_placeholder_by_name (GdlDock *dock, - const gchar *name); - -GList *gdl_dock_get_named_items (GdlDock *dock); - -GdlDock *gdl_dock_object_get_toplevel (GdlDockObject *object); - -void gdl_dock_xor_rect (GdlDock *dock, - GdkRectangle *rect); - -G_END_DECLS - -#endif diff --git a/src/libgdl/gdl-i18n.c b/src/libgdl/gdl-i18n.c deleted file mode 100644 index 5f92b66c7..000000000 --- a/src/libgdl/gdl-i18n.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation - * All rights reserved. - * - * This file is part of the Gnome Devtools Library. - * - * The Gnome Devtools Library is free software; you can redistribute - * it and/or modify it under the terms of the GNU Library General - * Public License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * The Gnome Devtools Library is distributed in the hope that it will - * be useful, but WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "gdl-i18n.h" - -char * -gdl_gettext (const char *msgid) -{ - static gboolean initialized = FALSE; - - if (!initialized) { -/* bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); */ - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - initialized = TRUE; - } - - return dgettext (GETTEXT_PACKAGE, msgid); -} - - diff --git a/src/libgdl/gdl-i18n.h b/src/libgdl/gdl-i18n.h deleted file mode 100644 index 1582e957d..000000000 --- a/src/libgdl/gdl-i18n.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation - * All rights reserved. - * - * This file is part of the Gnome Devtools Library. - * - * The Gnome Devtools Library is free software; you can redistribute - * it and/or modify it under the terms of the GNU Library General - * Public License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * The Gnome Devtools Library is distributed in the hope that it will - * be useful, but WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -/* - @NOTATION@ - */ - -/* - * Handles all of the internationalization configuration options. - * Author: Tom Tromey - */ - -#ifndef __GDL_18N_H__ -#define __GDL_18N_H__ 1 - -#include - - -G_BEGIN_DECLS - -#ifdef ENABLE_NLS -# include -# undef _ -# define _(String) gdl_gettext (String) -# ifdef gettext_noop -# define N_(String) gettext_noop (String) -# else -# define N_(String) (String) -# endif -#else -/* Stubs that do something close enough. */ -# undef textdomain -# define textdomain(String) (String) -# undef gettext -# define gettext(String) (String) -# undef dgettext -# define dgettext(Domain,Message) (Message) -# undef dcgettext -# define dcgettext(Domain,Message,Type) (Message) -# undef bindtextdomain -# define bindtextdomain(Domain,Directory) (Domain) -# undef bind_textdomain_codeset -# define bind_textdomain_codeset(Domain,CodeSet) (Domain) -# undef _ -# define _(String) (String) -# undef N_ -# define N_(String) (String) -#endif - -char *gdl_gettext (const char *msgid); - -G_END_DECLS - -#endif /* __GDL_I18N_H__ */ diff --git a/src/libgdl/gdl-switcher.c b/src/libgdl/gdl-switcher.c deleted file mode 100644 index 53a4b1989..000000000 --- a/src/libgdl/gdl-switcher.c +++ /dev/null @@ -1,1031 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */ -/* gdl-switcher.c - * - * Copyright (C) 2003 Ettore Perazzoli, - * 2007 Naba Kumar - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * - * Copied and adapted from ESidebar.[ch] from evolution - * - * Authors: Ettore Perazzoli - * Naba Kumar - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include "gdl-switcher.h" -#include "libgdlmarshal.h" -#include "libgdltypebuiltins.h" - -#include - -static void gdl_switcher_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gdl_switcher_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gdl_switcher_add_button (GdlSwitcher *switcher, - const gchar *label, - const gchar *tooltips, - const gchar *stock_id, - GdkPixbuf *pixbuf_icon, - gint switcher_id, - GtkWidget *page); -/* static void gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id); */ -static void gdl_switcher_select_page (GdlSwitcher *switcher, gint switcher_id); -static void gdl_switcher_select_button (GdlSwitcher *switcher, gint switcher_id); -static void gdl_switcher_set_show_buttons (GdlSwitcher *switcher, gboolean show); -static void gdl_switcher_set_style (GdlSwitcher *switcher, - GdlSwitcherStyle switcher_style); -static GdlSwitcherStyle gdl_switcher_get_style (GdlSwitcher *switcher); - -enum { - PROP_0, - PROP_SWITCHER_STYLE -}; - -typedef struct { - GtkWidget *button_widget; - GtkWidget *label; - GtkWidget *icon; - GtkWidget *arrow; - GtkWidget *hbox; - GtkWidget *page; - int id; -} Button; - -struct _GdlSwitcherPrivate { - GdlSwitcherStyle switcher_style; - GdlSwitcherStyle toolbar_style; - - gboolean show; - GSList *buttons; - - guint style_changed_id; - gint buttons_height_request; - gboolean in_toggle; -}; - -G_DEFINE_TYPE (GdlSwitcher, gdl_switcher, GTK_TYPE_NOTEBOOK) - -#define INTERNAL_MODE(switcher) (switcher->priv->switcher_style == \ - GDL_SWITCHER_STYLE_TOOLBAR ? switcher->priv->toolbar_style : \ - switcher->priv->switcher_style) - -#define H_PADDING 2 -#define V_PADDING 2 - -/* Utility functions. */ - -static void -gdl_switcher_long_name_changed (GObject* object, - GParamSpec* spec, - gpointer user_data) -{ - Button* button = user_data; - gchar* label; - - g_object_get (object, "long-name", &label, NULL); - gtk_label_set_text (GTK_LABEL (button->label), label); - g_free (label); -} - -static void -gdl_switcher_stock_id_changed (GObject* object, - GParamSpec* spec, - gpointer user_data) -{ - Button* button = user_data; - gchar* id; - - g_object_get (object, "stock-id", &id, NULL); - gtk_image_set_from_stock (GTK_IMAGE(button->icon), id, GTK_ICON_SIZE_MENU); - g_free (id); -} - - -static Button * -button_new (GtkWidget *button_widget, GtkWidget *label, GtkWidget *icon, - GtkWidget *arrow, GtkWidget *hbox, int id, GtkWidget *page) -{ - Button *button = g_new (Button, 1); - - button->button_widget = button_widget; - button->label = label; - button->icon = icon; - button->arrow = arrow; - button->hbox = hbox; - button->id = id; - button->page = page; - - g_signal_connect (page, "notify::long-name", G_CALLBACK (gdl_switcher_long_name_changed), - button); - g_signal_connect (page, "notify::stock-id", G_CALLBACK (gdl_switcher_stock_id_changed), - button); - - g_object_ref (button_widget); - g_object_ref (label); - g_object_ref (icon); - g_object_ref (arrow); - g_object_ref (hbox); - - return button; -} - -static void -button_free (Button *button) -{ - g_signal_handlers_disconnect_by_func (button->page, - gdl_switcher_long_name_changed, - button); - g_signal_handlers_disconnect_by_func (button->page, - gdl_switcher_stock_id_changed, - button); - - g_object_unref (button->button_widget); - g_object_unref (button->label); - g_object_unref (button->icon); - g_object_unref (button->hbox); - g_free (button); -} - -static gint -gdl_switcher_get_page_id (GtkWidget *widget) -{ - static gint switcher_id_count = 0; - gint switcher_id; - switcher_id = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), - "__switcher_id")); - if (switcher_id <= 0) { - switcher_id = ++switcher_id_count; - g_object_set_data (G_OBJECT (widget), "__switcher_id", - GINT_TO_POINTER (switcher_id)); - } - return switcher_id; -} - -static void -update_buttons (GdlSwitcher *switcher, int new_selected_id) -{ - GSList *p; - - switcher->priv->in_toggle = TRUE; - - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - if (button->id == new_selected_id) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON - (button->button_widget), TRUE); - gtk_widget_set_sensitive (button->arrow, TRUE); - } else { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON - (button->button_widget), FALSE); - gtk_widget_set_sensitive (button->arrow, FALSE); - } - } - - switcher->priv->in_toggle = FALSE; -} - -/* Callbacks. */ - -static void -button_toggled_callback (GtkToggleButton *toggle_button, - GdlSwitcher *switcher) -{ - int id = 0; - gboolean is_active = FALSE; - GSList *p; - - if (switcher->priv->in_toggle) - return; - - switcher->priv->in_toggle = TRUE; - - if (gtk_toggle_button_get_active (toggle_button)) - is_active = TRUE; - - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - if (button->button_widget != GTK_WIDGET (toggle_button)) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON - (button->button_widget), FALSE); - gtk_widget_set_sensitive (button->arrow, FALSE); - } else { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON - (button->button_widget), TRUE); - gtk_widget_set_sensitive (button->arrow, TRUE); - id = button->id; - } - } - - switcher->priv->in_toggle = FALSE; - - if (is_active) - { - gdl_switcher_select_page (switcher, id); - } -} - -/* Returns -1 if layout didn't happen because a resize request was queued */ -static int -layout_buttons (GdlSwitcher *switcher) -{ - GtkRequisition client_requisition = {0,0}; - GtkAllocation allocation; - GdlSwitcherStyle switcher_style; - gboolean icons_only; - int num_btns = g_slist_length (switcher->priv->buttons); - unsigned int btns_per_row; - GSList **rows, *p; - Button *button; - int row_number; - int max_btn_width = 0, max_btn_height = 0; - int optimal_layout_width = 0; - int row_last; - int x, y; - int i; - int rows_count; - int last_buttons_height; - - gtk_widget_get_allocation (GTK_WIDGET (switcher), &allocation); - - last_buttons_height = switcher->priv->buttons_height_request; - - GTK_WIDGET_CLASS (gdl_switcher_parent_class)->size_request (GTK_WIDGET (switcher), &client_requisition); - - y = allocation.y + allocation.height - V_PADDING - 1; - - if (num_btns == 0) - return y; - - switcher_style = INTERNAL_MODE (switcher); - icons_only = (switcher_style == GDL_SWITCHER_STYLE_ICON); - - /* Figure out the max width and height */ - optimal_layout_width = H_PADDING; - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - GtkRequisition requisition; - - button = p->data; - gtk_widget_size_request (GTK_WIDGET (button->button_widget), - &requisition); - optimal_layout_width += requisition.width + H_PADDING; - max_btn_height = MAX (max_btn_height, requisition.height); - max_btn_width = MAX (max_btn_width, requisition.width); - } - - /* Figure out how many rows and columns we'll use. */ - btns_per_row = allocation.width / (max_btn_width + H_PADDING); - /* Use at least one column */ - if (btns_per_row == 0) btns_per_row = 1; - - /* If all the buttons could fit in the single row, have it so */ - if (allocation.width >= optimal_layout_width) - { - btns_per_row = num_btns; - } - if (!icons_only) { - /* If using text buttons, we want to try to have a - * completely filled-in grid, but if we can't, we want - * the odd row to have just a single button. - */ - while (num_btns % btns_per_row > 1) - btns_per_row--; - } - - rows_count = num_btns / btns_per_row; - if (num_btns % btns_per_row != 0) - rows_count++; - - /* Assign buttons to rows */ - rows = g_new0 (GSList *, rows_count); - - if (!icons_only && num_btns % btns_per_row != 0) { - button = switcher->priv->buttons->data; - rows [0] = g_slist_append (rows [0], button->button_widget); - - p = switcher->priv->buttons->next; - row_number = p ? 1 : 0; - } else { - p = switcher->priv->buttons; - row_number = 0; - } - - for (; p != NULL; p = p->next) { - button = p->data; - - if (g_slist_length (rows [row_number]) == btns_per_row) - row_number ++; - - rows [row_number] = g_slist_append (rows [row_number], - button->button_widget); - } - - row_last = row_number; - - /* If there are more than 1 row of buttons, save the current height - * requirement for subsequent size requests. - */ - if (row_last > 0) - { - switcher->priv->buttons_height_request = - (row_last + 1) * (max_btn_height + V_PADDING) + 1; - } else { /* Otherwize clear it */ - if (last_buttons_height >= 0) { - - switcher->priv->buttons_height_request = -1; - } - } - - /* If it turns out that we now require smaller height for the buttons - * than it was last time, make a resize request to ensure our - * size requisition is properly communicated to the parent (otherwise - * parent tend to keep assuming the older size). - */ - if (last_buttons_height > switcher->priv->buttons_height_request) - { - gtk_widget_queue_resize (GTK_WIDGET (switcher)); - y = -1; // set return value - } - else - { - /* Layout the buttons. */ - for (i = row_last; i >= 0; i --) { - int len, extra_width; - - y -= max_btn_height; - - /* Check for possible size over flow (taking into account client - * requisition - */ - if (y < (allocation.y + client_requisition.height)) { - /* We have an overflow: Insufficient allocation */ - if (last_buttons_height < switcher->priv->buttons_height_request) { - /* Request for a new resize */ - gtk_widget_queue_resize (GTK_WIDGET (switcher)); - y = -1; // set return value - goto exit; - } - } - x = H_PADDING + allocation.x; - len = g_slist_length (rows[i]); - if (switcher_style == GDL_SWITCHER_STYLE_TEXT || - switcher_style == GDL_SWITCHER_STYLE_BOTH) - extra_width = (allocation.width - (len * max_btn_width ) - - (len * H_PADDING)) / len; - else - extra_width = 0; - for (p = rows [i]; p != NULL; p = p->next) { - GtkAllocation child_allocation; - - child_allocation.x = x; - child_allocation.y = y; - if (rows_count == 1 && row_number == 0) - { - GtkRequisition child_requisition; - gtk_widget_size_request (GTK_WIDGET (p->data), - &child_requisition); - child_allocation.width = child_requisition.width; - } - else - { - child_allocation.width = max_btn_width + extra_width; - } - child_allocation.height = max_btn_height; - - gtk_widget_size_allocate (GTK_WIDGET (p->data), &child_allocation); - - x += child_allocation.width + H_PADDING; - } - - y -= V_PADDING; - } - } - - exit: - for (i = 0; i <= row_last; i ++) { - g_slist_free (rows [i]); - } - g_free (rows); - - return y; -} - -static void -do_layout (GdlSwitcher *switcher) -{ - GtkAllocation allocation; - GtkAllocation child_allocation; - int y; - - gtk_widget_get_allocation (GTK_WIDGET (switcher), &allocation); - - if (switcher->priv->show) { - y = layout_buttons (switcher); - if (y < 0) /* Layout did not happen and a resize was requested */ - return; - } - else - y = allocation.y + allocation.height; - - /* Place the parent widget. */ - child_allocation.x = allocation.x; - child_allocation.y = allocation.y; - child_allocation.width = allocation.width; - child_allocation.height = y - allocation.y; - - GTK_WIDGET_CLASS (gdl_switcher_parent_class)->size_allocate (GTK_WIDGET (switcher), &child_allocation); -} - -/* GtkContainer methods. */ - -static void -gdl_switcher_forall (GtkContainer *container, gboolean include_internals, - GtkCallback callback, void *callback_data) -{ - GdlSwitcher *switcher = - GDL_SWITCHER (container); - GSList *p; - - GTK_CONTAINER_CLASS (gdl_switcher_parent_class)->forall (GTK_CONTAINER (switcher), - include_internals, - callback, callback_data); - if (include_internals) { - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - GtkWidget *widget = ((Button *) p->data)->button_widget; - (* callback) (widget, callback_data); - } - } -} - -static void -gdl_switcher_remove (GtkContainer *container, GtkWidget *widget) -{ - gint switcher_id; - GdlSwitcher *switcher = - GDL_SWITCHER (container); - GSList *p; - - switcher_id = gdl_switcher_get_page_id (widget); - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - Button *b = (Button *) p->data; - - if (b->id == switcher_id) { - gtk_widget_unparent (b->button_widget); - switcher->priv->buttons = - g_slist_remove_link (switcher->priv->buttons, p); - button_free (b); - gtk_widget_queue_resize (GTK_WIDGET (switcher)); - break; - } - } - GTK_CONTAINER_CLASS (gdl_switcher_parent_class)->remove (GTK_CONTAINER (switcher), widget); -} - -/* GtkWidget methods. */ - -static void -gdl_switcher_size_request (GtkWidget *widget, GtkRequisition *requisition) -{ - GdlSwitcher *switcher = GDL_SWITCHER (widget); - GSList *p; - gint button_height = 0; - - GTK_WIDGET_CLASS (gdl_switcher_parent_class)->size_request (GTK_WIDGET (switcher), requisition); - - if (!switcher->priv->show) - return; - - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - gint button_width; - Button *button = p->data; - GtkRequisition button_requisition; - - gtk_widget_size_request (button->button_widget, &button_requisition); - button_width = button_requisition.width + 2 * H_PADDING; - requisition->width = MAX (requisition->width, button_width); - button_height = MAX (button_height, - button_requisition.height + 2 * V_PADDING); - } - - if (switcher->priv->buttons_height_request > 0) { - requisition->height += switcher->priv->buttons_height_request; - } else { - requisition->height += button_height + V_PADDING; - } -} - -static void -gdl_switcher_size_allocate (GtkWidget *widget, GtkAllocation *allocation) -{ - gtk_widget_set_allocation (widget, allocation); - do_layout (GDL_SWITCHER (widget)); -} - -static gint -gdl_switcher_expose (GtkWidget *widget, GdkEventExpose *event) -{ - GSList *p; - GdlSwitcher *switcher = GDL_SWITCHER (widget); - if (switcher->priv->show) { - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - GtkWidget *button = ((Button *) p->data)->button_widget; - gtk_container_propagate_expose (GTK_CONTAINER (widget), - button, event); - } - } - return GTK_WIDGET_CLASS (gdl_switcher_parent_class)->expose_event (widget, event); -} - -static void -gdl_switcher_map (GtkWidget *widget) -{ - GSList *p; - GdlSwitcher *switcher = GDL_SWITCHER (widget); - - if (switcher->priv->show) { - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - GtkWidget *button = ((Button *) p->data)->button_widget; - gtk_widget_map (button); - } - } - GTK_WIDGET_CLASS (gdl_switcher_parent_class)->map (widget); -} - -/* GObject methods. */ - -static void -gdl_switcher_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlSwitcher *switcher = GDL_SWITCHER (object); - - switch (prop_id) { - case PROP_SWITCHER_STYLE: - gdl_switcher_set_style (switcher, g_value_get_enum (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_switcher_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlSwitcher *switcher = GDL_SWITCHER (object); - - switch (prop_id) { - case PROP_SWITCHER_STYLE: - g_value_set_enum (value, gdl_switcher_get_style (switcher)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_switcher_dispose (GObject *object) -{ - GdlSwitcherPrivate *priv = GDL_SWITCHER (object)->priv; - -#if HAVE_GNOME - GConfClient *gconf_client = gconf_client_get_default (); - - if (priv->style_changed_id) { - gconf_client_notify_remove (gconf_client, priv->style_changed_id); - priv->style_changed_id = 0; - } - g_object_unref (gconf_client); -#endif - - g_slist_foreach (priv->buttons, (GFunc) button_free, NULL); - g_slist_free (priv->buttons); - priv->buttons = NULL; - - G_OBJECT_CLASS (gdl_switcher_parent_class)->dispose (object); -} - -static void -gdl_switcher_finalize (GObject *object) -{ - GdlSwitcherPrivate *priv = GDL_SWITCHER (object)->priv; - - g_free (priv); - - G_OBJECT_CLASS (gdl_switcher_parent_class)->finalize (object); -} - -/* Signal handlers */ - -static void -gdl_switcher_notify_cb (GObject *g_object, GParamSpec *pspec, - GdlSwitcher *switcher) -{ -} - -static void -gdl_switcher_switch_page_cb (GtkNotebook *nb, GtkWidget *page_widget, - gint page_num, GdlSwitcher *switcher) -{ - gint switcher_id; - - /* Change switcher button */ - switcher_id = gdl_switcher_get_page_id (page_widget); - gdl_switcher_select_button (GDL_SWITCHER (switcher), switcher_id); -} - -static void -gdl_switcher_page_added_cb (GtkNotebook *nb, GtkWidget *page, - gint page_num, GdlSwitcher *switcher) -{ - gint switcher_id; - - (void)nb; - (void)page_num; - switcher_id = gdl_switcher_get_page_id (page); - - gdl_switcher_add_button (GDL_SWITCHER (switcher), NULL, NULL, NULL, NULL, - switcher_id, page); - gdl_switcher_select_button (GDL_SWITCHER (switcher), switcher_id); -} - -static void -gdl_switcher_select_page (GdlSwitcher *switcher, gint id) -{ - GList *children, *node; - children = gtk_container_get_children (GTK_CONTAINER (switcher)); - node = children; - while (node) - { - gint switcher_id; - switcher_id = gdl_switcher_get_page_id (GTK_WIDGET (node->data)); - if (switcher_id == id) - { - gint page_num; - page_num = gtk_notebook_page_num (GTK_NOTEBOOK (switcher), - GTK_WIDGET (node->data)); - g_signal_handlers_block_by_func (switcher, - gdl_switcher_switch_page_cb, - switcher); - gtk_notebook_set_current_page (GTK_NOTEBOOK (switcher), page_num); - g_signal_handlers_unblock_by_func (switcher, - gdl_switcher_switch_page_cb, - switcher); - break; - } - node = g_list_next (node); - } - g_list_free (children); -} - -/* Initialization. */ - -static void -gdl_switcher_class_init (GdlSwitcherClass *klass) -{ - GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - container_class->forall = gdl_switcher_forall; - container_class->remove = gdl_switcher_remove; - - widget_class->size_request = gdl_switcher_size_request; - widget_class->size_allocate = gdl_switcher_size_allocate; - widget_class->expose_event = gdl_switcher_expose; - widget_class->map = gdl_switcher_map; - - object_class->dispose = gdl_switcher_dispose; - object_class->finalize = gdl_switcher_finalize; - object_class->set_property = gdl_switcher_set_property; - object_class->get_property = gdl_switcher_get_property; - - g_object_class_install_property ( - object_class, PROP_SWITCHER_STYLE, - g_param_spec_enum ("switcher-style", _("Switcher Style"), - _("Switcher buttons style"), - GDL_TYPE_SWITCHER_STYLE, - GDL_SWITCHER_STYLE_BOTH, - G_PARAM_READWRITE)); - - gtk_rc_parse_string ("style \"gdl-button-style\"\n" - "{\n" - "GtkWidget::focus-padding = 1\n" - "GtkWidget::focus-line-width = 1\n" - "xthickness = 0\n" - "ythickness = 0\n" - "}\n" - "widget \"*.gdl-button\" style \"gdl-button-style\""); -} - -static void -gdl_switcher_init (GdlSwitcher *switcher) -{ - GdlSwitcherPrivate *priv; - - gtk_widget_set_has_window (GTK_WIDGET (switcher), FALSE); - - priv = g_new0 (GdlSwitcherPrivate, 1); - switcher->priv = priv; - - priv->show = TRUE; - priv->buttons_height_request = -1; - - gtk_notebook_set_tab_pos (GTK_NOTEBOOK (switcher), GTK_POS_BOTTOM); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE); - gtk_notebook_set_show_border (GTK_NOTEBOOK (switcher), FALSE); - gdl_switcher_set_style (switcher, GDL_SWITCHER_STYLE_BOTH); - - /* notebook signals */ - g_signal_connect (switcher, "switch-page", - G_CALLBACK (gdl_switcher_switch_page_cb), switcher); - g_signal_connect (switcher, "page-added", - G_CALLBACK (gdl_switcher_page_added_cb), switcher); - g_signal_connect (switcher, "notify::show-tabs", - G_CALLBACK (gdl_switcher_notify_cb), switcher); -} - -GtkWidget * -gdl_switcher_new (void) -{ - GdlSwitcher *switcher = g_object_new (gdl_switcher_get_type (), NULL); - return GTK_WIDGET (switcher); -} - -static void -gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, - const gchar *tooltips, const gchar *stock_id, - GdkPixbuf *pixbuf_icon, - gint switcher_id, GtkWidget* page) -{ - GtkWidget *button_widget; - GtkWidget *hbox; - GtkWidget *icon_widget; - GtkWidget *label_widget; - GtkWidget *arrow; - - button_widget = gtk_toggle_button_new (); - gtk_widget_set_name (button_widget, "gdl-button"); - gtk_button_set_relief (GTK_BUTTON(button_widget), GTK_RELIEF_HALF); - if (switcher->priv->show) - gtk_widget_show (button_widget); - g_signal_connect (button_widget, "toggled", - G_CALLBACK (button_toggled_callback), - switcher); - hbox = gtk_hbox_new (FALSE, 3); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); - gtk_container_add (GTK_CONTAINER (button_widget), hbox); - gtk_widget_show (hbox); - - if (stock_id) { - icon_widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); - } else if (pixbuf_icon) { - icon_widget = gtk_image_new_from_pixbuf (pixbuf_icon); - } else { - icon_widget = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU); - } - - gtk_widget_show (icon_widget); - - if (!label) { - gchar *text = g_strdup_printf ("Item %d", switcher_id); - label_widget = gtk_label_new (text); - g_free (text); - } else { - label_widget = gtk_label_new (label); - } - gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5); - gtk_widget_show (label_widget); - - - gtk_widget_set_tooltip_text (button_widget, - tooltips); - - switch (INTERNAL_MODE (switcher)) { - case GDL_SWITCHER_STYLE_TEXT: - gtk_box_pack_start (GTK_BOX (hbox), label_widget, TRUE, TRUE, 0); - break; - case GDL_SWITCHER_STYLE_ICON: - gtk_box_pack_start (GTK_BOX (hbox), icon_widget, TRUE, TRUE, 0); - break; - case GDL_SWITCHER_STYLE_BOTH: - default: - gtk_box_pack_start (GTK_BOX (hbox), icon_widget, FALSE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (hbox), label_widget, TRUE, TRUE, 0); - break; - } - arrow = gtk_arrow_new (GTK_ARROW_UP, GTK_SHADOW_NONE); - gtk_widget_show (arrow); - gtk_box_pack_start (GTK_BOX (hbox), arrow, FALSE, FALSE, 0); - - switcher->priv->buttons = - g_slist_append (switcher->priv->buttons, - button_new (button_widget, label_widget, - icon_widget, - arrow, hbox, switcher_id, page)); - - gtk_widget_set_parent (button_widget, GTK_WIDGET (switcher)); - gtk_widget_queue_resize (GTK_WIDGET (switcher)); -} - -#if 0 -static void -gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id) -{ - GSList *p; - - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - if (button->id == switcher_id) - { - gtk_container_remove (GTK_CONTAINER (switcher), - button->button_widget); - break; - } - } - gtk_widget_queue_resize (GTK_WIDGET (switcher)); -} -#endif - -static void -gdl_switcher_select_button (GdlSwitcher *switcher, gint switcher_id) -{ - update_buttons (switcher, switcher_id); - - /* Select the notebook page associated with this button */ - gdl_switcher_select_page (switcher, switcher_id); -} - - -gint -gdl_switcher_insert_page (GdlSwitcher *switcher, GtkWidget *page, - GtkWidget *tab_widget, const gchar *label, - const gchar *tooltips, const gchar *stock_id, - GdkPixbuf *pixbuf_icon, gint position) -{ - gint ret_position; - gint switcher_id; - g_signal_handlers_block_by_func (switcher, - gdl_switcher_page_added_cb, - switcher); - - if (!tab_widget) { - tab_widget = gtk_label_new (label); - gtk_widget_show (tab_widget); - } - switcher_id = gdl_switcher_get_page_id (page); - gdl_switcher_add_button (switcher, label, tooltips, stock_id, pixbuf_icon, switcher_id, page); - - ret_position = gtk_notebook_insert_page (GTK_NOTEBOOK (switcher), page, - tab_widget, position); - g_signal_handlers_unblock_by_func (switcher, - gdl_switcher_page_added_cb, - switcher); - - return ret_position; -} - -static void -set_switcher_style_toolbar (GdlSwitcher *switcher, - GdlSwitcherStyle switcher_style) -{ - GSList *p; - - if (switcher_style == GDL_SWITCHER_STYLE_NONE - || switcher_style == GDL_SWITCHER_STYLE_TABS) - return; - - if (switcher_style == GDL_SWITCHER_STYLE_TOOLBAR) - switcher_style = GDL_SWITCHER_STYLE_BOTH; - - if (switcher_style == INTERNAL_MODE (switcher)) - return; - - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE); - - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - gtk_container_remove (GTK_CONTAINER (button->hbox), button->arrow); - - if (gtk_widget_get_parent (button->icon)) - gtk_container_remove (GTK_CONTAINER (button->hbox), button->icon); - if (gtk_widget_get_parent (button->label)) - gtk_container_remove (GTK_CONTAINER (button->hbox), button->label); - - switch (switcher_style) { - case GDL_SWITCHER_STYLE_TEXT: - gtk_box_pack_start (GTK_BOX (button->hbox), button->label, - TRUE, TRUE, 0); - gtk_widget_show (button->label); - break; - - case GDL_SWITCHER_STYLE_ICON: - gtk_box_pack_start (GTK_BOX (button->hbox), button->icon, - TRUE, TRUE, 0); - gtk_widget_show (button->icon); - break; - - case GDL_SWITCHER_STYLE_BOTH: - gtk_box_pack_start (GTK_BOX (button->hbox), button->icon, - FALSE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (button->hbox), button->label, - TRUE, TRUE, 0); - gtk_widget_show (button->icon); - gtk_widget_show (button->label); - break; - - default: - break; - } - - gtk_box_pack_start (GTK_BOX (button->hbox), button->arrow, - FALSE, FALSE, 0); - } - - gdl_switcher_set_show_buttons (switcher, TRUE); -} - -static void -gdl_switcher_set_style (GdlSwitcher *switcher, GdlSwitcherStyle switcher_style) -{ - if (switcher->priv->switcher_style == switcher_style) - return; - - if (switcher_style == GDL_SWITCHER_STYLE_NONE) { - gdl_switcher_set_show_buttons (switcher, FALSE); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE); - } - else if (switcher_style == GDL_SWITCHER_STYLE_TABS) { - gdl_switcher_set_show_buttons (switcher, FALSE); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), TRUE); - } - else - set_switcher_style_toolbar (switcher, switcher_style); - - gtk_widget_queue_resize (GTK_WIDGET (switcher)); - switcher->priv->switcher_style = switcher_style; -} - -static void -gdl_switcher_set_show_buttons (GdlSwitcher *switcher, gboolean show) -{ - GSList *p; - - if (switcher->priv->show == show) - return; - - for (p = switcher->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - if (show) - gtk_widget_show (button->button_widget); - else - gtk_widget_hide (button->button_widget); - } - - switcher->priv->show = show; - - gtk_widget_queue_resize (GTK_WIDGET (switcher)); -} - -static GdlSwitcherStyle -gdl_switcher_get_style (GdlSwitcher *switcher) -{ - if (!switcher->priv->show) - return GDL_SWITCHER_STYLE_TABS; - return switcher->priv->switcher_style; -} diff --git a/src/libgdl/gdl-switcher.h b/src/libgdl/gdl-switcher.h deleted file mode 100644 index 0caf3a0aa..000000000 --- a/src/libgdl/gdl-switcher.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */ -/* gdl-switcher.h - * - * Copyright (C) 2003 Ettore Perazzoli - * 2007 Naba Kumar - * -* This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * - * Authors: Ettore Perazzoli - * Naba Kumar - */ - -#ifndef _GDL_SWITCHER_H_ -#define _GDL_SWITCHER_H_ - -#include - -G_BEGIN_DECLS - -#define GDL_TYPE_SWITCHER (gdl_switcher_get_type ()) -#define GDL_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_SWITCHER, GdlSwitcher)) -#define GDL_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_SWITCHER, GdlSwitcherClass)) -#define GDL_IS_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_SWITCHER)) -#define GDL_IS_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GDL_TYPE_SWITCHER)) - -typedef struct _GdlSwitcher GdlSwitcher; -typedef struct _GdlSwitcherPrivate GdlSwitcherPrivate; -typedef struct _GdlSwitcherClass GdlSwitcherClass; - -struct _GdlSwitcher { - GtkNotebook parent; - - GdlSwitcherPrivate *priv; -}; - -struct _GdlSwitcherClass { - GtkNotebookClass parent_class; -}; - -GType gdl_switcher_get_type (void); -GtkWidget *gdl_switcher_new (void); - -gint gdl_switcher_insert_page (GdlSwitcher *switcher, - GtkWidget *page, - GtkWidget *tab_widget, - const gchar *label, - const gchar *tooltips, - const gchar *stock_id, - GdkPixbuf *pixbuf_icon, - gint position); -G_END_DECLS - -#endif /* _GDL_SWITCHER_H_ */ diff --git a/src/libgdl/gdl-win32.c b/src/libgdl/gdl-win32.c deleted file mode 100644 index f23036ed6..000000000 --- a/src/libgdl/gdl-win32.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Windows stuff - * - * Author: - * Albin Sunnanbo - * Based on code by Lauris Kaplinski (/src/extension/internal/win32.cpp) - * - * This code is in public domain - */ -#ifdef WIN32 - -#include "gdl-win32.h" -#include - -/* Platform detection */ -gboolean -is_os_vista() -{ - static gboolean initialized = FALSE; - static gboolean is_vista = FALSE; - static OSVERSIONINFOA osver; - - if ( !initialized ) - { - BOOL result; - - initialized = TRUE; - - memset (&osver, 0, sizeof(OSVERSIONINFOA)); - osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA); - result = GetVersionExA (&osver); - if (result) - { - if (osver.dwMajorVersion == WIN32_MAJORVERSION_VISTA) - is_vista = TRUE; - } - } - - return is_vista; -} - -#endif diff --git a/src/libgdl/gdl-win32.h b/src/libgdl/gdl-win32.h deleted file mode 100644 index 90c0cbafa..000000000 --- a/src/libgdl/gdl-win32.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Windows stuff - * - * Author: - * Albin Sunnanbo - * - * This code is in public domain - */ -#ifndef __INKSCAPE_GDL_WIN32_H__ -#define __INKSCAPE_GDL_WIN32_H__ -#ifdef WIN32 - -#include - -#define WIN32_MAJORVERSION_VISTA 0x0006 - -/* Platform detection */ -gboolean is_os_vista(); - -#endif // ifdef WIN32 -#endif /* __INKSCAPE_GDL_WIN32_H__ */ diff --git a/src/libgdl/gdl.h b/src/libgdl/gdl.h deleted file mode 100644 index 235c5e3eb..000000000 --- a/src/libgdl/gdl.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 1999-2000 Dave Camp - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_H__ -#define __GDL_H__ - -#include "libgdl/gdl-dock-object.h" -#include "libgdl/gdl-dock-master.h" -#include "libgdl/gdl-dock.h" -#include "libgdl/gdl-dock-item.h" -#include "libgdl/gdl-dock-item-grip.h" -#include "libgdl/gdl-dock-bar.h" - -#endif diff --git a/src/libgdl/libgdlmarshal.c b/src/libgdl/libgdlmarshal.c deleted file mode 100644 index a2a9fe220..000000000 --- a/src/libgdl/libgdlmarshal.c +++ /dev/null @@ -1,173 +0,0 @@ -#include "libgdlmarshal.h" - -#include - - -#ifdef G_ENABLE_DEBUG -#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) -#define g_marshal_value_peek_char(v) g_value_get_char (v) -#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) -#define g_marshal_value_peek_int(v) g_value_get_int (v) -#define g_marshal_value_peek_uint(v) g_value_get_uint (v) -#define g_marshal_value_peek_long(v) g_value_get_long (v) -#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) -#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) -#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) -#define g_marshal_value_peek_enum(v) g_value_get_enum (v) -#define g_marshal_value_peek_flags(v) g_value_get_flags (v) -#define g_marshal_value_peek_float(v) g_value_get_float (v) -#define g_marshal_value_peek_double(v) g_value_get_double (v) -#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) -#define g_marshal_value_peek_param(v) g_value_get_param (v) -#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) -#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) -#define g_marshal_value_peek_object(v) g_value_get_object (v) -#define g_marshal_value_peek_variant(v) g_value_get_variant (v) -#else /* !G_ENABLE_DEBUG */ -/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. - * Do not access GValues directly in your code. Instead, use the - * g_value_get_*() functions - */ -#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int -#define g_marshal_value_peek_char(v) (v)->data[0].v_int -#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint -#define g_marshal_value_peek_int(v) (v)->data[0].v_int -#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint -#define g_marshal_value_peek_long(v) (v)->data[0].v_long -#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong -#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 -#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 -#define g_marshal_value_peek_enum(v) (v)->data[0].v_long -#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong -#define g_marshal_value_peek_float(v) (v)->data[0].v_float -#define g_marshal_value_peek_double(v) (v)->data[0].v_double -#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer -#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer -#endif /* !G_ENABLE_DEBUG */ - - -/* VOID:VOID (./libgdlmarshal.list:1) */ - -/* VOID:ENUM (./libgdlmarshal.list:2) */ - -/* VOID:INT,INT (./libgdlmarshal.list:3) */ -void -gdl_marshal_VOID__INT_INT (GClosure *closure, - GValue *return_value G_GNUC_UNUSED, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint G_GNUC_UNUSED, - gpointer marshal_data) -{ - typedef void (*GMarshalFunc_VOID__INT_INT) (gpointer data1, - gint arg_1, - gint arg_2, - gpointer data2); - register GMarshalFunc_VOID__INT_INT callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; - - g_return_if_fail (n_param_values == 3); - - if (G_CCLOSURE_SWAP_DATA (closure)) - { - data1 = closure->data; - data2 = g_value_peek_pointer (param_values + 0); - } - else - { - data1 = g_value_peek_pointer (param_values + 0); - data2 = closure->data; - } - callback = (GMarshalFunc_VOID__INT_INT) (marshal_data ? marshal_data : cc->callback); - - callback (data1, - g_marshal_value_peek_int (param_values + 1), - g_marshal_value_peek_int (param_values + 2), - data2); -} - -/* VOID:UINT,UINT (./libgdlmarshal.list:4) */ -void -gdl_marshal_VOID__UINT_UINT (GClosure *closure, - GValue *return_value G_GNUC_UNUSED, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint G_GNUC_UNUSED, - gpointer marshal_data) -{ - typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer data1, - guint arg_1, - guint arg_2, - gpointer data2); - register GMarshalFunc_VOID__UINT_UINT callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; - - g_return_if_fail (n_param_values == 3); - - if (G_CCLOSURE_SWAP_DATA (closure)) - { - data1 = closure->data; - data2 = g_value_peek_pointer (param_values + 0); - } - else - { - data1 = g_value_peek_pointer (param_values + 0); - data2 = closure->data; - } - callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback); - - callback (data1, - g_marshal_value_peek_uint (param_values + 1), - g_marshal_value_peek_uint (param_values + 2), - data2); -} - -/* VOID:BOOLEAN (./libgdlmarshal.list:5) */ - -/* VOID:OBJECT,ENUM,BOXED (./libgdlmarshal.list:6) */ -void -gdl_marshal_VOID__OBJECT_ENUM_BOXED (GClosure *closure, - GValue *return_value G_GNUC_UNUSED, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint G_GNUC_UNUSED, - gpointer marshal_data) -{ - typedef void (*GMarshalFunc_VOID__OBJECT_ENUM_BOXED) (gpointer data1, - gpointer arg_1, - gint arg_2, - gpointer arg_3, - gpointer data2); - register GMarshalFunc_VOID__OBJECT_ENUM_BOXED callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; - - g_return_if_fail (n_param_values == 4); - - if (G_CCLOSURE_SWAP_DATA (closure)) - { - data1 = closure->data; - data2 = g_value_peek_pointer (param_values + 0); - } - else - { - data1 = g_value_peek_pointer (param_values + 0); - data2 = closure->data; - } - callback = (GMarshalFunc_VOID__OBJECT_ENUM_BOXED) (marshal_data ? marshal_data : cc->callback); - - callback (data1, - g_marshal_value_peek_object (param_values + 1), - g_marshal_value_peek_enum (param_values + 2), - g_marshal_value_peek_boxed (param_values + 3), - data2); -} - -/* VOID:BOXED (./libgdlmarshal.list:7) */ - diff --git a/src/libgdl/libgdlmarshal.h b/src/libgdl/libgdlmarshal.h deleted file mode 100644 index 2d6bc800f..000000000 --- a/src/libgdl/libgdlmarshal.h +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef __gdl_marshal_MARSHAL_H__ -#define __gdl_marshal_MARSHAL_H__ - -#include - -G_BEGIN_DECLS - -/* VOID:VOID (./libgdlmarshal.list:1) */ -#define gdl_marshal_VOID__VOID g_cclosure_marshal_VOID__VOID - -/* VOID:ENUM (./libgdlmarshal.list:2) */ -#define gdl_marshal_VOID__ENUM g_cclosure_marshal_VOID__ENUM - -/* VOID:INT,INT (./libgdlmarshal.list:3) */ -extern void gdl_marshal_VOID__INT_INT (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); - -/* VOID:UINT,UINT (./libgdlmarshal.list:4) */ -extern void gdl_marshal_VOID__UINT_UINT (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); - -/* VOID:BOOLEAN (./libgdlmarshal.list:5) */ -#define gdl_marshal_VOID__BOOLEAN g_cclosure_marshal_VOID__BOOLEAN - -/* VOID:OBJECT,ENUM,BOXED (./libgdlmarshal.list:6) */ -extern void gdl_marshal_VOID__OBJECT_ENUM_BOXED (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); - -/* VOID:BOXED (./libgdlmarshal.list:7) */ -#define gdl_marshal_VOID__BOXED g_cclosure_marshal_VOID__BOXED - -G_END_DECLS - -#endif /* __gdl_marshal_MARSHAL_H__ */ - diff --git a/src/libgdl/libgdlmarshal.list b/src/libgdl/libgdlmarshal.list deleted file mode 100644 index 750989abc..000000000 --- a/src/libgdl/libgdlmarshal.list +++ /dev/null @@ -1,7 +0,0 @@ -VOID:VOID -VOID:ENUM -VOID:INT,INT -VOID:UINT,UINT -VOID:BOOLEAN -VOID:OBJECT,ENUM,BOXED -VOID:BOXED diff --git a/src/libgdl/libgdltypebuiltins.c b/src/libgdl/libgdltypebuiltins.c deleted file mode 100644 index b347fe6f5..000000000 --- a/src/libgdl/libgdltypebuiltins.c +++ /dev/null @@ -1,162 +0,0 @@ - - - -#include -#include "libgdltypebuiltins.h" - - -/* enumerations from "gdl-dock-object.h" */ -static const GFlagsValue _gdl_dock_param_flags_values[] = { - { GDL_DOCK_PARAM_EXPORT, "GDL_DOCK_PARAM_EXPORT", "export" }, - { GDL_DOCK_PARAM_AFTER, "GDL_DOCK_PARAM_AFTER", "after" }, - { 0, NULL, NULL } -}; - -GType -gdl_dock_param_flags_get_type (void) -{ - static GType type = 0; - - if (!type) - type = g_flags_register_static ("GdlDockParamFlags", _gdl_dock_param_flags_values); - - return type; -} - -static const GFlagsValue _gdl_dock_object_flags_values[] = { - { GDL_DOCK_AUTOMATIC, "GDL_DOCK_AUTOMATIC", "automatic" }, - { GDL_DOCK_ATTACHED, "GDL_DOCK_ATTACHED", "attached" }, - { GDL_DOCK_IN_REFLOW, "GDL_DOCK_IN_REFLOW", "in-reflow" }, - { GDL_DOCK_IN_DETACH, "GDL_DOCK_IN_DETACH", "in-detach" }, - { 0, NULL, NULL } -}; - -GType -gdl_dock_object_flags_get_type (void) -{ - static GType type = 0; - - if (!type) - type = g_flags_register_static ("GdlDockObjectFlags", _gdl_dock_object_flags_values); - - return type; -} - -static const GEnumValue _gdl_dock_placement_values[] = { - { GDL_DOCK_NONE, "GDL_DOCK_NONE", "none" }, - { GDL_DOCK_TOP, "GDL_DOCK_TOP", "top" }, - { GDL_DOCK_BOTTOM, "GDL_DOCK_BOTTOM", "bottom" }, - { GDL_DOCK_RIGHT, "GDL_DOCK_RIGHT", "right" }, - { GDL_DOCK_LEFT, "GDL_DOCK_LEFT", "left" }, - { GDL_DOCK_CENTER, "GDL_DOCK_CENTER", "center" }, - { GDL_DOCK_FLOATING, "GDL_DOCK_FLOATING", "floating" }, - { 0, NULL, NULL } -}; - -GType -gdl_dock_placement_get_type (void) -{ - static GType type = 0; - - if (!type) - type = g_enum_register_static ("GdlDockPlacement", _gdl_dock_placement_values); - - return type; -} - - -/* enumerations from "gdl-dock-master.h" */ -static const GEnumValue _gdl_switcher_style_values[] = { - { GDL_SWITCHER_STYLE_TEXT, "GDL_SWITCHER_STYLE_TEXT", "text" }, - { GDL_SWITCHER_STYLE_ICON, "GDL_SWITCHER_STYLE_ICON", "icon" }, - { GDL_SWITCHER_STYLE_BOTH, "GDL_SWITCHER_STYLE_BOTH", "both" }, - { GDL_SWITCHER_STYLE_TOOLBAR, "GDL_SWITCHER_STYLE_TOOLBAR", "toolbar" }, - { GDL_SWITCHER_STYLE_TABS, "GDL_SWITCHER_STYLE_TABS", "tabs" }, - { GDL_SWITCHER_STYLE_NONE, "GDL_SWITCHER_STYLE_NONE", "none" }, - { 0, NULL, NULL } -}; - -GType -gdl_switcher_style_get_type (void) -{ - static GType type = 0; - - if (!type) - type = g_enum_register_static ("GdlSwitcherStyle", _gdl_switcher_style_values); - - return type; -} - - -/* enumerations from "gdl-dock-item.h" */ -static const GFlagsValue _gdl_dock_item_behavior_values[] = { - { GDL_DOCK_ITEM_BEH_NORMAL, "GDL_DOCK_ITEM_BEH_NORMAL", "normal" }, - { GDL_DOCK_ITEM_BEH_NEVER_FLOATING, "GDL_DOCK_ITEM_BEH_NEVER_FLOATING", "never-floating" }, - { GDL_DOCK_ITEM_BEH_NEVER_VERTICAL, "GDL_DOCK_ITEM_BEH_NEVER_VERTICAL", "never-vertical" }, - { GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL, "GDL_DOCK_ITEM_BEH_NEVER_HORIZONTAL", "never-horizontal" }, - { GDL_DOCK_ITEM_BEH_LOCKED, "GDL_DOCK_ITEM_BEH_LOCKED", "locked" }, - { GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP, "GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP", "cant-dock-top" }, - { GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM, "GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM", "cant-dock-bottom" }, - { GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT, "GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT", "cant-dock-left" }, - { GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT, "GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT", "cant-dock-right" }, - { GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER, "GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER", "cant-dock-center" }, - { GDL_DOCK_ITEM_BEH_CANT_CLOSE, "GDL_DOCK_ITEM_BEH_CANT_CLOSE", "cant-close" }, - { GDL_DOCK_ITEM_BEH_CANT_ICONIFY, "GDL_DOCK_ITEM_BEH_CANT_ICONIFY", "cant-iconify" }, - { GDL_DOCK_ITEM_BEH_NO_GRIP, "GDL_DOCK_ITEM_BEH_NO_GRIP", "no-grip" }, - { 0, NULL, NULL } -}; - -GType -gdl_dock_item_behavior_get_type (void) -{ - static GType type = 0; - - if (!type) - type = g_flags_register_static ("GdlDockItemBehavior", _gdl_dock_item_behavior_values); - - return type; -} - -static const GFlagsValue _gdl_dock_item_flags_values[] = { - { GDL_DOCK_IN_DRAG, "GDL_DOCK_IN_DRAG", "in-drag" }, - { GDL_DOCK_IN_PREDRAG, "GDL_DOCK_IN_PREDRAG", "in-predrag" }, - { GDL_DOCK_ICONIFIED, "GDL_DOCK_ICONIFIED", "iconified" }, - { GDL_DOCK_USER_ACTION, "GDL_DOCK_USER_ACTION", "user-action" }, - { 0, NULL, NULL } -}; - -GType -gdl_dock_item_flags_get_type (void) -{ - static GType type = 0; - - if (!type) - type = g_flags_register_static ("GdlDockItemFlags", _gdl_dock_item_flags_values); - - return type; -} - - -/* enumerations from "gdl-dock-bar.h" */ -static const GEnumValue _gdl_dock_bar_style_values[] = { - { GDL_DOCK_BAR_ICONS, "GDL_DOCK_BAR_ICONS", "icons" }, - { GDL_DOCK_BAR_TEXT, "GDL_DOCK_BAR_TEXT", "text" }, - { GDL_DOCK_BAR_BOTH, "GDL_DOCK_BAR_BOTH", "both" }, - { GDL_DOCK_BAR_AUTO, "GDL_DOCK_BAR_AUTO", "auto" }, - { 0, NULL, NULL } -}; - -GType -gdl_dock_bar_style_get_type (void) -{ - static GType type = 0; - - if (!type) - type = g_enum_register_static ("GdlDockBarStyle", _gdl_dock_bar_style_values); - - return type; -} - - - - diff --git a/src/libgdl/libgdltypebuiltins.h b/src/libgdl/libgdltypebuiltins.h deleted file mode 100644 index 19eac4989..000000000 --- a/src/libgdl/libgdltypebuiltins.h +++ /dev/null @@ -1,38 +0,0 @@ - - - -#ifndef __LIBGDLTYPEBUILTINS_H__ -#define __LIBGDLTYPEBUILTINS_H__ 1 - -#include "libgdl/gdl.h" - -G_BEGIN_DECLS - - -/* --- gdl-dock-object.h --- */ -#define GDL_TYPE_DOCK_PARAM_FLAGS gdl_dock_param_flags_get_type() -GType gdl_dock_param_flags_get_type (void); -#define GDL_TYPE_DOCK_OBJECT_FLAGS gdl_dock_object_flags_get_type() -GType gdl_dock_object_flags_get_type (void); -#define GDL_TYPE_DOCK_PLACEMENT gdl_dock_placement_get_type() -GType gdl_dock_placement_get_type (void); - -/* --- gdl-dock-master.h --- */ -#define GDL_TYPE_SWITCHER_STYLE gdl_switcher_style_get_type() -GType gdl_switcher_style_get_type (void); - -/* --- gdl-dock-item.h --- */ -#define GDL_TYPE_DOCK_ITEM_BEHAVIOR gdl_dock_item_behavior_get_type() -GType gdl_dock_item_behavior_get_type (void); -#define GDL_TYPE_DOCK_ITEM_FLAGS gdl_dock_item_flags_get_type() -GType gdl_dock_item_flags_get_type (void); - -/* --- gdl-dock-bar.h --- */ -#define GDL_TYPE_DOCK_BAR_STYLE gdl_dock_bar_style_get_type() -GType gdl_dock_bar_style_get_type (void); -G_END_DECLS - -#endif /* __LIBGDLTYPEBUILTINS_H__ */ - - - diff --git a/src/libgdl/makefile.in b/src/libgdl/makefile.in deleted file mode 100644 index 9dc8cb2ca..000000000 --- a/src/libgdl/makefile.in +++ /dev/null @@ -1,17 +0,0 @@ -# Convenience stub makefile to call the real Makefile. - -@SET_MAKE@ - -OBJEXT = @OBJEXT@ - -# Explicit so that it's the default rule. -all: - cd .. && $(MAKE) libgdl/all - -clean %.a %.$(OBJEXT): - cd .. && $(MAKE) libgdl/$@ - -.PHONY: all clean - -.SUFFIXES: -.SUFFIXES: .a .$(OBJEXT) diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index 225afe317..ba71b39f4 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -33,6 +33,7 @@ set(widgets_SRC gradient-toolbar.cpp gradient-vector.cpp icon.cpp + image-menu-item.c ink-action.cpp ink-comboboxentry-action.cpp paint-selector.cpp @@ -88,6 +89,7 @@ set(widgets_SRC gradient-toolbar.h gradient-vector.h icon.h + image-menu-item.h ink-action.h ink-comboboxentry-action.h paint-selector.h @@ -108,11 +110,6 @@ set(widgets_SRC widget-sizes.h ) -if(${WITH_GTK3_EXPERIMENTAL}) - set(image_menu_item_SRC image-menu-item.h image-menu-item.c) - add_inkscape_source("${image_menu_item_SRC}") -endif() - # add_inkscape_lib(widgets_LIB "${widgets_SRC}") add_inkscape_source("${widgets_SRC}") diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert index c9f04de14..8f10e1d56 100644 --- a/src/widgets/Makefile_insert +++ b/src/widgets/Makefile_insert @@ -1,11 +1,5 @@ ## Makefile.am fragment sourced by src/Makefile.am. -if WITH_GTKMM_3_0 -ink_common_sources += \ - widgets/image-menu-item.c \ - widgets/image-menu-item.h -endif - ink_common_sources += \ widgets/arc-toolbar.cpp \ widgets/arc-toolbar.h \ @@ -50,6 +44,8 @@ ink_common_sources += \ widgets/gradient-vector.h \ widgets/icon.cpp \ widgets/icon.h \ + widgets/image-menu-item.c \ + widgets/image-menu-item.h \ widgets/ink-action.cpp \ widgets/ink-action.h \ widgets/ink-comboboxentry-action.cpp \ -- cgit v1.2.3 From caaf88e07254f7bb824cd60bd13bf6ed4bef0bfa Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Wed, 27 Jul 2016 17:33:52 +0100 Subject: device-manager: Drop GTK2 fallbacks (bzr r15023.2.2) --- src/device-manager.cpp | 48 +++++++++--------------------------------------- 1 file changed, 9 insertions(+), 39 deletions(-) diff --git a/src/device-manager.cpp b/src/device-manager.cpp index aa3874da8..96d6d6d1b 100644 --- a/src/device-manager.cpp +++ b/src/device-manager.cpp @@ -14,15 +14,12 @@ #include "preferences.h" #include #include +#include -#if WITH_GTKMM_3_0 -# include -#endif +#include #include -#include - #define noDEBUG_VERBOSE 1 @@ -49,11 +46,7 @@ static bool isValidDevice(Glib::RefPtr device) const bool source_matches = (device->get_source() == (*it).source); const bool mode_matches = (device->get_mode() == (*it).mode); const bool num_axes_matches = (device->get_n_axes() == (*it).num_axes); -#if WITH_GTKMM_3_0 const bool num_keys_matches = (device->get_n_keys() == (*it).num_keys); -#else - const bool num_keys_matches = (gdk_device_get_n_keys(device->gobj()) == (*it).num_keys); -#endif if (name_matches && source_matches && mode_matches && num_axes_matches && num_keys_matches) @@ -177,13 +170,7 @@ public: virtual Gdk::InputMode getMode() const {return (device->get_mode());} virtual gint getNumAxes() const {return device->get_n_axes();} virtual bool hasCursor() const {return device->get_has_cursor();} - -#if WITH_GTKMM_3_0 virtual int getNumKeys() const {return device->get_n_keys();} -#else - virtual int getNumKeys() const {return gdk_device_get_n_keys(device->gobj());} -#endif - virtual Glib::ustring getLink() const {return link;} virtual void setLink( Glib::ustring const& link ) {this->link = link;} virtual gint getLiveAxes() const {return liveAxes;} @@ -328,12 +315,8 @@ DeviceManagerImpl::DeviceManagerImpl() : { Glib::RefPtr display = Gdk::Display::get_default(); -#if WITH_GTKMM_3_0 - Glib::RefPtr dm = display->get_device_manager(); - std::vector< Glib::RefPtr > devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE); -#else - std::vector< Glib::RefPtr > devList = display->list_devices(); -#endif + auto dm = display->get_device_manager(); + auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE); if (fakeList.empty()) { createFakeList(); @@ -342,24 +325,19 @@ DeviceManagerImpl::DeviceManagerImpl() : std::set knownIDs; - for ( std::vector< Glib::RefPtr >::iterator dev = devList.begin(); dev != devList.end(); ++dev ) { -#if WITH_GTKMM_3_0 + for (auto dev : devList) { // GTK+ 3 has added keyboards to the list of supported devices. - if((*dev)->get_source() != Gdk::SOURCE_KEYBOARD) { -#endif + if(dev->get_source() != Gdk::SOURCE_KEYBOARD) { #if DEBUG_VERBOSE g_message("device: name[%s] source[0x%x] mode[0x%x] cursor[%s] axis count[%d] key count[%d]", dev->name, dev->source, dev->mode, dev->has_cursor?"Yes":"no", dev->num_axes, dev->num_keys); #endif - InputDeviceImpl* device = new InputDeviceImpl(*dev, knownIDs); + InputDeviceImpl* device = new InputDeviceImpl(dev, knownIDs); device->reference(); devices.push_back(Glib::RefPtr(device)); - -#if WITH_GTKMM_3_0 } -#endif } } @@ -669,12 +647,8 @@ static void createFakeList() { // try to find the first *real* core pointer Glib::RefPtr display = Gdk::Display::get_default(); -#if WITH_GTKMM_3_0 - Glib::RefPtr dm = display->get_device_manager(); - std::vector< Glib::RefPtr > devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE); -#else - std::vector< Glib::RefPtr > devList = display->list_devices(); -#endif + auto dm = display->get_device_manager(); + auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE); // Set iterator to point at beginning of device list std::vector< Glib::RefPtr >::iterator dev = devList.begin(); @@ -691,11 +665,7 @@ static void createFakeList() { fakeList[4].mode = device->get_mode(); fakeList[4].has_cursor = device->get_has_cursor(); fakeList[4].num_axes = device->get_n_axes(); -#if WITH_GTKMM_3_0 fakeList[4].num_keys = device->get_n_keys(); -#else - fakeList[4].num_keys = gdk_device_get_n_keys(device->gobj()); -#endif } else { fakeList[4].name = "Core Pointer"; fakeList[4].source = Gdk::SOURCE_MOUSE; -- cgit v1.2.3 From a2d656579397cef6bdfd4d9501af3b542e3b5617 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Wed, 27 Jul 2016 17:37:57 +0100 Subject: display.canvas-*grid: Drop GTK2 fallbacks (bzr r15023.2.3) --- src/display/canvas-axonomgrid.cpp | 40 ++------------------------------------- src/display/canvas-grid.cpp | 40 ++------------------------------------- 2 files changed, 4 insertions(+), 76 deletions(-) diff --git a/src/display/canvas-axonomgrid.cpp b/src/display/canvas-axonomgrid.cpp index 14f36376f..421a39fbd 100644 --- a/src/display/canvas-axonomgrid.cpp +++ b/src/display/canvas-axonomgrid.cpp @@ -19,12 +19,7 @@ #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include @@ -94,15 +89,10 @@ namespace Inkscape { #define SPACE_SIZE_X 15 #define SPACE_SIZE_Y 10 static inline void -#if WITH_GTKMM_3_0 attach_all(Gtk::Grid &table, Gtk::Widget const *const arr[], unsigned size, int start = 0) -#else -attach_all(Gtk::Table &table, Gtk::Widget const *const arr[], unsigned size, int start = 0) -#endif { for (unsigned i=0, r=start; i(*arr[i])).set_hexpand(); (const_cast(*arr[i])).set_valign(Gtk::ALIGN_CENTER); table.attach(const_cast(*arr[i]), 1, r, 1, 1); @@ -110,44 +100,23 @@ attach_all(Gtk::Table &table, Gtk::Widget const *const arr[], unsigned size, int (const_cast(*arr[i+1])).set_hexpand(); (const_cast(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER); table.attach(const_cast(*arr[i+1]), 2, r, 1, 1); -#else - table.attach (const_cast(*arr[i]), 1, 2, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); - table.attach (const_cast(*arr[i+1]), 2, 3, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else { if (arr[i+1]) { -#if WITH_GTKMM_3_0 (const_cast(*arr[i+1])).set_hexpand(); (const_cast(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER); table.attach(const_cast(*arr[i+1]), 1, r, 2, 1); -#else - table.attach (const_cast(*arr[i+1]), 1, 3, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else if (arr[i]) { Gtk::Label& label = reinterpret_cast (const_cast(*arr[i])); label.set_alignment (0.0); -#if WITH_GTKMM_3_0 label.set_hexpand(); label.set_valign(Gtk::ALIGN_CENTER); table.attach(label, 0, r, 3, 1); -#else - table.attach (label, 0, 3, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else { Gtk::HBox *space = Gtk::manage (new Gtk::HBox); space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y); -#if WITH_GTKMM_3_0 space->set_halign(Gtk::ALIGN_CENTER); space->set_valign(Gtk::ALIGN_CENTER); table.attach(*space, 0, r, 1, 1); -#else - table.attach (*space, 0, 1, r, r+1, - (Gtk::AttachOptions)0, (Gtk::AttachOptions)0,0,0); -#endif } } ++r; @@ -342,14 +311,9 @@ CanvasAxonomGrid::onReprAttrChanged(Inkscape::XML::Node */*repr*/, gchar const * Gtk::Widget * CanvasAxonomGrid::newSpecificWidget() { -#if WITH_GTKMM_3_0 - Gtk::Grid *table = Gtk::manage(new Gtk::Grid()); + auto table = Gtk::manage(new Gtk::Grid()); table->set_row_spacing(2); table->set_column_spacing(2); -#else - Gtk::Table * table = Gtk::manage( new Gtk::Table(1,1) ); - table->set_spacings(2); -#endif _wr.setUpdating (true); diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index decf93626..fa45fe02c 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -19,12 +19,7 @@ #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include @@ -400,15 +395,10 @@ void CanvasGrid::setOrigin(Geom::Point const &origin_px) **/ #define SPACE_SIZE_X 15 #define SPACE_SIZE_Y 10 -#if WITH_GTKMM_3_0 static inline void attach_all(Gtk::Grid &table, Gtk::Widget const *const arr[], unsigned size, int start = 0) -#else -static inline void attach_all(Gtk::Table &table, Gtk::Widget const *const arr[], unsigned size, int start = 0) -#endif { for (unsigned i=0, r=start; i(*arr[i])).set_hexpand(); (const_cast(*arr[i])).set_valign(Gtk::ALIGN_CENTER); table.attach(const_cast(*arr[i]), 1, r, 1, 1); @@ -416,44 +406,23 @@ static inline void attach_all(Gtk::Table &table, Gtk::Widget const *const arr[], (const_cast(*arr[i+1])).set_hexpand(); (const_cast(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER); table.attach(const_cast(*arr[i+1]), 2, r, 1, 1); -#else - table.attach (const_cast(*arr[i]), 1, 2, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); - table.attach (const_cast(*arr[i+1]), 2, 3, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else { if (arr[i+1]) { -#if WITH_GTKMM_3_0 (const_cast(*arr[i+1])).set_hexpand(); (const_cast(*arr[i+1])).set_valign(Gtk::ALIGN_CENTER); table.attach(const_cast(*arr[i+1]), 1, r, 2, 1); -#else - table.attach (const_cast(*arr[i+1]), 1, 3, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else if (arr[i]) { Gtk::Label& label = reinterpret_cast (const_cast(*arr[i])); label.set_alignment (0.0); -#if WITH_GTKMM_3_0 label.set_hexpand(); label.set_valign(Gtk::ALIGN_CENTER); table.attach(label, 0, r, 3, 1); -#else - table.attach (label, 0, 3, r, r+1, - Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else { Gtk::HBox *space = Gtk::manage (new Gtk::HBox); space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y); -#if WITH_GTKMM_3_0 space->set_halign(Gtk::ALIGN_CENTER); space->set_valign(Gtk::ALIGN_CENTER); table.attach(*space, 0, r, 1, 1); -#else - table.attach (*space, 0, 1, r, r+1, - (Gtk::AttachOptions)0, (Gtk::AttachOptions)0,0,0); -#endif } } ++r; @@ -684,14 +653,9 @@ CanvasXYGrid::onReprAttrChanged(Inkscape::XML::Node */*repr*/, gchar const */*ke Gtk::Widget * CanvasXYGrid::newSpecificWidget() { -#if WITH_GTKMM_3_0 - Gtk::Grid * table = Gtk::manage( new Gtk::Grid() ); + auto table = Gtk::manage( new Gtk::Grid() ); table->set_row_spacing(2); table->set_column_spacing(2); -#else - Gtk::Table * table = Gtk::manage( new Gtk::Table(1,1) ); - table->set_spacings(2); -#endif Inkscape::UI::Widget::RegisteredUnitMenu *_rumg = Gtk::manage( new Inkscape::UI::Widget::RegisteredUnitMenu( _("Grid _units:"), "units", _wr, repr, doc) ); -- cgit v1.2.3 From 9e1a6b6cdc87bde1b85137f2841a510283904b71 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Wed, 27 Jul 2016 17:45:46 +0100 Subject: widgets/ruler: Drop GTK2 fallbacks (bzr r15023.2.4) --- src/widgets/ruler.cpp | 154 -------------------------------------------------- 1 file changed, 154 deletions(-) diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp index deffd384a..92c2b611d 100644 --- a/src/widgets/ruler.cpp +++ b/src/widgets/ruler.cpp @@ -120,7 +120,6 @@ static void sp_ruler_unmap (GtkWidget *widget); static void sp_ruler_size_allocate (GtkWidget *widget, GtkAllocation *allocation); -#if GTK_CHECK_VERSION(3,0,0) static void sp_ruler_get_preferred_width (GtkWidget *widget, gint *minimum_width, gint *natural_width); @@ -129,21 +128,11 @@ static void sp_ruler_get_preferred_height (GtkWidget *widget, gint *minimum_height, gint *natural_height); static void sp_ruler_style_updated (GtkWidget *widget); -#else -static void sp_ruler_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void sp_ruler_style_set (GtkWidget *widget, - GtkStyle *prev_style); -#endif static gboolean sp_ruler_motion_notify (GtkWidget *widget, GdkEventMotion *event); static gboolean sp_ruler_draw (GtkWidget *widget, cairo_t *cr); -#if !GTK_CHECK_VERSION(3,0,0) -static gboolean sp_ruler_expose (GtkWidget *widget, - GdkEventExpose *event); -#endif static void sp_ruler_draw_ticks (SPRuler *ruler); static GdkRectangle sp_ruler_get_pos_rect (SPRuler *ruler, gdouble position); @@ -181,16 +170,10 @@ sp_ruler_class_init (SPRulerClass *klass) widget_class->map = sp_ruler_map; widget_class->unmap = sp_ruler_unmap; widget_class->size_allocate = sp_ruler_size_allocate; -#if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = sp_ruler_get_preferred_width; widget_class->get_preferred_height = sp_ruler_get_preferred_height; widget_class->style_updated = sp_ruler_style_updated; widget_class->draw = sp_ruler_draw; -#else - widget_class->size_request = sp_ruler_size_request; - widget_class->style_set = sp_ruler_style_set; - widget_class->expose_event = sp_ruler_expose; -#endif widget_class->motion_notify_event = sp_ruler_motion_notify; g_type_class_add_private (object_class, sizeof (SPRulerPrivate)); @@ -487,16 +470,10 @@ sp_ruler_realize (GtkWidget *widget) attributes.width = allocation.width; attributes.height = allocation.height; attributes.wclass = GDK_INPUT_ONLY; -#if GTK_CHECK_VERSION(3,0,0) attributes.event_mask = (gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); -#else - attributes.event_mask = (gtk_widget_get_events (widget) | - GDK_EXPOSURE_MASK | - GDK_POINTER_MOTION_MASK); -#endif attributes_mask = GDK_WA_X | GDK_WA_Y; @@ -599,7 +576,6 @@ sp_ruler_size_request (GtkWidget *widget, size = 2 + ink_rect.height * 1.7; -#if GTK_CHECK_VERSION(3,0,0) GtkStyleContext *context = gtk_widget_get_style_context (widget); GtkBorder border; @@ -607,47 +583,25 @@ sp_ruler_size_request (GtkWidget *widget, requisition->width = border.left + border.right; requisition->height = border.top + border.bottom; -#else - GtkStyle *style = gtk_widget_get_style(widget); -#endif if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) { -#if GTK_CHECK_VERSION(3,0,0) requisition->width += 1; requisition->height += size; -#else - requisition->width = style->xthickness * 2 + 1; - requisition->height = style->ythickness * 2 + size; -#endif } else { -#if GTK_CHECK_VERSION(3,0,0) requisition->width += size; requisition->height += 1; -#else - requisition->width = style->xthickness * 2 + size; - requisition->height = style->ythickness * 2 + 1; -#endif } } static void -#if GTK_CHECK_VERSION(3,0,0) sp_ruler_style_updated (GtkWidget *widget) -#else -sp_ruler_style_set (GtkWidget *widget, - GtkStyle *prev_style) -#endif { SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (widget); -#if GTK_CHECK_VERSION(3,0,0) GTK_WIDGET_CLASS (sp_ruler_parent_class)->style_updated (widget); -#else - GTK_WIDGET_CLASS (sp_ruler_parent_class)->style_set (widget, prev_style); -#endif gtk_widget_style_get (widget, "font-scale", &priv->font_scale, @@ -660,7 +614,6 @@ sp_ruler_style_set (GtkWidget *widget, } } -#if GTK_CHECK_VERSION(3,0,0) static void sp_ruler_get_preferred_width (GtkWidget *widget, gint *minimum_width, @@ -684,26 +637,6 @@ sp_ruler_get_preferred_height (GtkWidget *widget, *minimum_height = *natural_height = requisition.height; } -#else -static gboolean -sp_ruler_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(widget)); - GtkAllocation allocation; - - gdk_cairo_region (cr, event->region); - cairo_clip (cr); - - gtk_widget_get_allocation (widget, &allocation); - - gboolean result = sp_ruler_draw (widget, cr); - - cairo_destroy (cr); - - return result; -} -#endif static gboolean sp_ruler_draw (GtkWidget *widget, @@ -749,13 +682,8 @@ sp_ruler_draw_pos (SPRuler *ruler, { GtkWidget *widget = GTK_WIDGET (ruler); -#if GTK_CHECK_VERSION(3,0,0) GtkStyleContext *context = gtk_widget_get_style_context (widget); GdkRGBA color; -#else - GtkStyle *style = gtk_widget_get_style (widget); - GtkStateType state = gtk_widget_get_state (widget); -#endif SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler); GdkRectangle pos_rect; @@ -767,13 +695,9 @@ sp_ruler_draw_pos (SPRuler *ruler, if ((pos_rect.width > 0) && (pos_rect.height > 0)) { -#if GTK_CHECK_VERSION(3,0,0) gtk_style_context_get_color (context, gtk_widget_get_state_flags (widget), &color); gdk_cairo_set_source_rgba (cr, &color); -#else - gdk_cairo_set_source_color (cr, &style->fg[state]); -#endif cairo_move_to (cr, pos_rect.x, pos_rect.y); @@ -1112,16 +1036,9 @@ sp_ruler_draw_ticks (SPRuler *ruler) { GtkWidget *widget = GTK_WIDGET (ruler); -#if GTK_CHECK_VERSION(3,0,0) GtkStyleContext *context = gtk_widget_get_style_context (widget); GtkBorder border; GdkRGBA color; -#else - GtkStyle *style = gtk_widget_get_style (widget); - GtkStateType state = gtk_widget_get_state (widget); - gint xthickness; - gint ythickness; -#endif SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler); GtkAllocation allocation; @@ -1150,12 +1067,7 @@ sp_ruler_draw_ticks (SPRuler *ruler) gtk_widget_get_allocation (widget, &allocation); -#if GTK_CHECK_VERSION(3,0,0) gtk_style_context_get_border (context, static_cast(0), &border); -#else - xthickness = style->xthickness; - ythickness = style->ythickness; -#endif layout = sp_ruler_get_layout (widget, "0123456789"); pango_layout_get_extents (layout, &ink_rect, &logical_rect); @@ -1166,25 +1078,16 @@ sp_ruler_draw_ticks (SPRuler *ruler) if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) { width = allocation.width; -#if GTK_CHECK_VERSION(3,0,0) height = allocation.height - (border.top + border.bottom); -#else - height = allocation.height - ythickness * 2; -#endif } else { width = allocation.height; -#if GTK_CHECK_VERSION(3,0,0) height = allocation.width - (border.top + border.bottom); -#else - height = allocation.width - ythickness * 2; -#endif } cr = cairo_create (priv->backing_store); -#if GTK_CHECK_VERSION(3,0,0) gtk_render_background (context, cr, 0, 0, allocation.width, allocation.height); gtk_render_frame (context, cr, 0, 0, allocation.width, allocation.height); @@ -1208,30 +1111,6 @@ sp_ruler_draw_ticks (SPRuler *ruler) 1, allocation.height - (border.top + border.bottom)); } -#else - gdk_cairo_set_source_color (cr, &style->bg[state]); - - cairo_paint (cr); - - gdk_cairo_set_source_color(cr, &style->fg[state]); - - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - cairo_rectangle (cr, - xthickness, - height + ythickness, - allocation.width - 2 * xthickness, - 1); - } - else - { - cairo_rectangle (cr, - height + xthickness, - ythickness, - 1, - allocation.height - 2 * ythickness); - } -#endif sp_ruler_get_range (ruler, &lower, &upper, &max_size); @@ -1312,7 +1191,6 @@ sp_ruler_draw_ticks (SPRuler *ruler) // by a pixel, and jump back on the next redraw). This is suppressed by adding 1e-9 (that's only one nanopixel ;-)) pos = gint(Inkscape::round((cur - lower) * increment + 1e-12)); -#if GTK_CHECK_VERSION(3,0,0) if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) { cairo_rectangle (cr, @@ -1325,20 +1203,6 @@ sp_ruler_draw_ticks (SPRuler *ruler) height + border.left - length, pos, length, 1); } -#else - if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) - { - cairo_rectangle (cr, - pos, height + ythickness - length, - 1, length); - } - else - { - cairo_rectangle (cr, - height + xthickness - length, pos, - length, 1); - } -#endif /* draw label */ double label_spacing_px = fabs(increment*(double)ruler_metric.ruler_scale[scale]/ruler_metric.subdivide[i]); @@ -1356,15 +1220,9 @@ sp_ruler_draw_ticks (SPRuler *ruler) pango_layout_set_text (layout, unit_str, -1); pango_layout_get_extents (layout, &logical_rect, NULL); -#if GTK_CHECK_VERSION(3,0,0) cairo_move_to (cr, pos + 2, border.top + PANGO_PIXELS (logical_rect.y - digit_offset)); -#else - cairo_move_to (cr, - pos + 2, - ythickness + PANGO_PIXELS (logical_rect.y - digit_offset)); -#endif pango_cairo_show_layout(cr, layout); } @@ -1378,15 +1236,9 @@ sp_ruler_draw_ticks (SPRuler *ruler) pango_layout_set_text (layout, digit_str, 1); pango_layout_get_extents (layout, NULL, &logical_rect); -#if GTK_CHECK_VERSION(3,0,0) cairo_move_to (cr, border.left + 1, pos + digit_height * j + 2 + PANGO_PIXELS (logical_rect.y - digit_offset)); -#else - cairo_move_to (cr, - xthickness + 1, - pos + digit_height * j + 2 + PANGO_PIXELS (logical_rect.y - digit_offset)); -#endif pango_cairo_show_layout (cr, layout); } } @@ -1423,7 +1275,6 @@ sp_ruler_get_pos_rect (SPRuler *ruler, gtk_widget_get_allocation (widget, &allocation); -#if GTK_CHECK_VERSION(3,0,0) GtkStyleContext *context = gtk_widget_get_style_context (widget); GtkBorder padding; @@ -1431,11 +1282,6 @@ sp_ruler_get_pos_rect (SPRuler *ruler, xthickness = padding.left + padding.right; ythickness = padding.top + padding.bottom; -#else - GtkStyle *style = gtk_widget_get_style (widget); - xthickness = style->xthickness; - ythickness = style->ythickness; -#endif if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) { -- cgit v1.2.3 From 97982ed4dad36def90c0d365eea721282b964ca6 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 27 Jul 2016 12:32:27 -0500 Subject: Switch to using the desktop helpers (bzr r14950.1.13) --- snapcraft.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/snapcraft.yaml b/snapcraft.yaml index f9e49b466..ac3e1b640 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -37,7 +37,7 @@ parts: - liblcms2-dev - libmagick++-dev - libpango1.0-dev - - libpng16-dev + - libpng12-dev - libpoppler-glib-dev - libpoppler-private-dev - libpopt-dev @@ -71,22 +71,22 @@ parts: - libvisio-0.1-1 - libwpg-0.3-3 - libglib2.0-bin - - light-themes + stage: + - -usr/sbin/update-icon-caches + - -usr/share/pkgconfig snap: - -lib/inkscape/*.a + after: [desktop/gtk2] snapcraft-wrapper: plugin: copy files: snapcraft.sh: snapcraft.sh README: lib/share/README - gtklaunch: - plugin: make - source: https://github.com/dplanella/gtkconf.git apps: inkscape: - command: snapcraft.sh gtk-launch inkscape + command: snapcraft.sh desktop-launch inkscape plugs: [home, unity7] viewer: - command: snapcraft.sh gtk-launch inkview + command: snapcraft.sh desktop-launch inkview plugs: [home, unity7] -- cgit v1.2.3 From 4404c64b1a54c3d4a5aa49aef6b48cc6a542b8e1 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 27 Jul 2016 12:38:20 -0500 Subject: Adding gsettings interface and moving files (bzr r14950.1.14) --- .snapcraft.yaml | 92 +++++++++++++++++++++++++++++++++++++++++++ packaging/snappy/snapcraft.sh | 6 +++ snapcraft.sh | 6 --- snapcraft.yaml | 92 ------------------------------------------- 4 files changed, 98 insertions(+), 98 deletions(-) create mode 100644 .snapcraft.yaml create mode 100755 packaging/snappy/snapcraft.sh delete mode 100755 snapcraft.sh delete mode 100644 snapcraft.yaml diff --git a/.snapcraft.yaml b/.snapcraft.yaml new file mode 100644 index 000000000..8ab13715f --- /dev/null +++ b/.snapcraft.yaml @@ -0,0 +1,92 @@ +name: inkscape +version: 0.91+devel +summary: Vector Graphics Editor +description: | + An Open Source vector graphics editor, with capabilities similar to + Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector + Graphics (SVG) file format. + + Inkscape supports many advanced SVG features (markers, clones, alpha blending, + etc.) and great care is taken in designing a streamlined interface. + It is very easy to edit nodes, perform complex path operations, trace + bitmaps and much more. + + We also aim to maintain a thriving user and developer community by using + open, community-oriented development. +confinement: devmode # use "strict" to enforce system access only via declared interfaces + +parts: + inkscape: + plugin: cmake + source: . + configflags: ['-DENABLE_BINRELOC=ON'] + build-packages: + - cmake + - intltool + - libart-2.0-dev + - libaspell-dev + - libboost-dev + - libcdr-dev + - libgc-dev + - libglib2.0-dev + - libgnomevfs2-dev + - libgsl-dev + - libgtk2.0-dev + - libgtkmm-2.4-dev + - libgtkspell-dev + - liblcms2-dev + - libmagick++-dev + - libpango1.0-dev + - libpng12-dev + - libpoppler-glib-dev + - libpoppler-private-dev + - libpopt-dev + - librevenge-dev + - libsigc++-2.0-dev + - libtool + - libvisio-dev + - libwpg-dev + - libxml-parser-perl + - libxml2-dev + - libxslt1-dev + - pkg-config + - python-dev + - python-lxml + - zlib1g-dev + stage-packages: + - libaspell15 + - libatkmm-1.6-1v5 + - libcairomm-1.0-1v5 + - libcdr-0.1-1 + - libgdk-pixbuf2.0-0 + - libglibmm-2.4-1v5 + - libgnomevfs2-0 + - libgtkmm-2.4-1v5 + - libgtkspell0 + - liblcms2-2 + - libmagick++-6.q16-5v5 + - libpangomm-1.4-1v5 + - libpoppler-glib8 + - librevenge-0.0-0 + - libvisio-0.1-1 + - libwpg-0.3-3 + - libglib2.0-bin + stage: + - -usr/sbin/update-icon-caches + - -usr/share/pkgconfig + snap: + - -lib/inkscape/*.a + after: [desktop/gtk2] + snapcraft-wrapper: + plugin: copy + files: + packaging/snappy/snapcraft.sh: snapcraft.sh + README: lib/share/README + +apps: + inkscape: + command: snapcraft.sh desktop-launch inkscape + plugs: [home, unity7, gsettings] + viewer: + command: snapcraft.sh desktop-launch inkview + plugs: [home, unity7, gsettings] diff --git a/packaging/snappy/snapcraft.sh b/packaging/snappy/snapcraft.sh new file mode 100755 index 000000000..7e12fe964 --- /dev/null +++ b/packaging/snappy/snapcraft.sh @@ -0,0 +1,6 @@ +#!/bin/sh -e + +export INKSCAPE_PORTABLE_PROFILE_DIR="${SNAP_USER_DATA}" +export INKSCAPE_LOCALEDIR="${SNAP}/share/locale/" + +exec $@ diff --git a/snapcraft.sh b/snapcraft.sh deleted file mode 100755 index 7e12fe964..000000000 --- a/snapcraft.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -e - -export INKSCAPE_PORTABLE_PROFILE_DIR="${SNAP_USER_DATA}" -export INKSCAPE_LOCALEDIR="${SNAP}/share/locale/" - -exec $@ diff --git a/snapcraft.yaml b/snapcraft.yaml deleted file mode 100644 index ac3e1b640..000000000 --- a/snapcraft.yaml +++ /dev/null @@ -1,92 +0,0 @@ -name: inkscape -version: 0.91+devel -summary: Vector Graphics Editor -description: | - An Open Source vector graphics editor, with capabilities similar to - Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector - Graphics (SVG) file format. - - Inkscape supports many advanced SVG features (markers, clones, alpha blending, - etc.) and great care is taken in designing a streamlined interface. - It is very easy to edit nodes, perform complex path operations, trace - bitmaps and much more. - - We also aim to maintain a thriving user and developer community by using - open, community-oriented development. -confinement: devmode # use "strict" to enforce system access only via declared interfaces - -parts: - inkscape: - plugin: cmake - source: . - configflags: ['-DENABLE_BINRELOC=ON'] - build-packages: - - cmake - - intltool - - libart-2.0-dev - - libaspell-dev - - libboost-dev - - libcdr-dev - - libgc-dev - - libglib2.0-dev - - libgnomevfs2-dev - - libgsl-dev - - libgtk2.0-dev - - libgtkmm-2.4-dev - - libgtkspell-dev - - liblcms2-dev - - libmagick++-dev - - libpango1.0-dev - - libpng12-dev - - libpoppler-glib-dev - - libpoppler-private-dev - - libpopt-dev - - librevenge-dev - - libsigc++-2.0-dev - - libtool - - libvisio-dev - - libwpg-dev - - libxml-parser-perl - - libxml2-dev - - libxslt1-dev - - pkg-config - - python-dev - - python-lxml - - zlib1g-dev - stage-packages: - - libaspell15 - - libatkmm-1.6-1v5 - - libcairomm-1.0-1v5 - - libcdr-0.1-1 - - libgdk-pixbuf2.0-0 - - libglibmm-2.4-1v5 - - libgnomevfs2-0 - - libgtkmm-2.4-1v5 - - libgtkspell0 - - liblcms2-2 - - libmagick++-6.q16-5v5 - - libpangomm-1.4-1v5 - - libpoppler-glib8 - - librevenge-0.0-0 - - libvisio-0.1-1 - - libwpg-0.3-3 - - libglib2.0-bin - stage: - - -usr/sbin/update-icon-caches - - -usr/share/pkgconfig - snap: - - -lib/inkscape/*.a - after: [desktop/gtk2] - snapcraft-wrapper: - plugin: copy - files: - snapcraft.sh: snapcraft.sh - README: lib/share/README - -apps: - inkscape: - command: snapcraft.sh desktop-launch inkscape - plugs: [home, unity7] - viewer: - command: snapcraft.sh desktop-launch inkview - plugs: [home, unity7] -- cgit v1.2.3 From 9c5237f32f59176c16371a54a25e9c840b25e958 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 27 Jul 2016 12:40:46 -0500 Subject: Adding a pre translated desktop file (bzr r14950.1.15) --- setup/gui/inkscape.desktop | 337 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 setup/gui/inkscape.desktop diff --git a/setup/gui/inkscape.desktop b/setup/gui/inkscape.desktop new file mode 100644 index 000000000..4340421aa --- /dev/null +++ b/setup/gui/inkscape.desktop @@ -0,0 +1,337 @@ +[Desktop Entry] +Version=1.0 +Name[ar]=إنكسكيب +Name[as]=ইনসà§à¦•েপ +Name[be]=Inkscape +Name[bn_BD]=ইনà§à¦•সà§à¦•েপ +Name[br]=Inkscape +Name[brx]=इङà¥à¤•सà¥à¤•ेप +Name[ca]=Inkscape +Name[ca@valencia]=Inkscape +Name[cs]=Inkscape +Name[da]=Inkscape +Name[de]=Inkscape +Name[doi]=इंकसà¥à¤•ेप +Name[el]=Inkscape +Name[en_GB]=Inkscape +Name[en_US@piglatin]=Inkscape +Name[es]=Inkscape +Name[eu]=Inkscape +Name[fr]=Inkscape +Name[gl]=Inkscape +Name[gu]=Inkscape +Name[he]=×ינקסקייפ +Name[hi]=इंकसà¥à¤•ेप +Name[hu]=Inkscape +Name[id]=Inkscape +Name[is]=Inkscape +Name[it]=Inkscape +Name[ja]=Inkscape +Name[km]=Inkscape +Name[kn]=ಇಂಕà³â€Œà²¸à³à²•ೇಪೠ+Name[ko]=Inkscape +Name[kok]=इंकसà¥à¤•ेप +Name[kok@latin]=Inkscape +Name[ks@aran]=اÙنکسکیپ +Name[ks@deva]=इनकसकेप +Name[lv]=Inkscape +Name[mai]=Inkscape +Name[ml]=ഇങàµà´•àµà´¸àµà´•െയàµà´ªàµ +Name[mni]=ê¯ê¯ªê¯›ê¯ê¯­ê¯€ê¯¦ê¯ž +Name[mni@beng]=ইঙà§à¦•সà§à¦•েপ +Name[mr]=इंकसà¥à¤•ेप +Name[nl]=Inkscape +Name[or]=ଇଙà­à¬•à­à¬¸à­à¬•େପ +Name[pl]=Inkscape +Name[pt_BR]=Inkscape +Name[ro]=Inkscape +Name[ru]=Inkscape +Name[sa]=इङà¥à¤•à¥à¤¸à¥à¤•ेपॠ+Name[sat@deva]=काली ञेनेल +Name[sat]=ᱠᱟᱞᱤ ᱧᱮᱱᱮᱞ +Name[sd]=اÙنڪسڪيپ +Name[sd@deva]=इंकसà¥à¤•ेप +Name[sk]=Inkscape +Name[sl]=Inkscape +Name[sr@latin]=Inkscape +Name[sr]=Inkscape +Name[ta]=Inkscape +Name[te]=ఇంకà±â€Œà°¸à±à°•ేపౠ+Name[tr]=Inkscape +Name[uk]=Inkscape +Name[ur]=انك اسكیپ +Name[vi]=Inkscape +Name[zh_CN]=Inkscape +Name[zh_TW]=Inkscape +Name=Inkscape +GenericName[ar]=محرر الرسومات الشعاعية +GenericName[as]=ভেকà§à¦Ÿà§° গà§à§°à¦¾à¦«à¦¿à¦•à§à¦¸ সমà§à¦ªà¦¾à¦¦à¦¨à¦•à§°à§à¦¤à¦¾ +GenericName[be]=РÑдактар вÑктарнай ґрафікі +GenericName[bn_BD]=ভেকà§à¦Ÿà¦° গà§à¦°à¦¾à¦«à¦¿à¦•à§à¦¸ সমà§à¦ªà¦¾à¦¦à¦• +GenericName[br]=Embanner kevregadoù sturiadel +GenericName[brx]=भेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ सà¥à¤œà¥à¤—िरि +GenericName[ca]=Editor de gràfics vectorials +GenericName[ca@valencia]=Editor de gràfics vectorials +GenericName[cs]=editor vektorové grafiky +GenericName[da]=Vectorgrafik redigering +GenericName[de]=Vektorgrafikeditor +GenericName[doi]=वैकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +GenericName[el]=ΕπεξεÏγαστής διανυσματικών γÏαφικών +GenericName[en_GB]=Vector Graphics Editor +GenericName[en_US@piglatin]=Ectorvay Aphicsgray Editorway +GenericName[es]=Editor de gráficos vectoriales +GenericName[eu]=Bektore-grafikoen editorea +GenericName[fr]=Éditeur d'images vectorielles SVG Inkscape +GenericName[gl]=Editor de imaxes vectoriais +GenericName[gu]=વà«àª¹à«‡àª•à«àªŸàª° ગà«àª°àª¾àª«àª¿àª•à«àª¸ સંપાદક +GenericName[he]=עורך גרפיקה וקטורית +GenericName[hi]=वेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +GenericName[hu]=Vektorgrafikai szerkesztÅ‘ +GenericName[id]=Penyunting Grafik Vektor +GenericName[is]=Teikniforrit fyrir vigramyndir / línuteikningar +GenericName[it]=Grafica vettoriale SVG +GenericName[ja]=ベクターグラフィックエディター +GenericName[km]=កម្មវិធី​កែ​សម្រួល​ក្រាហ្វិក​វ៉ិចទáŸážš +GenericName[kn]=ವೆಕà³à²Ÿà²°à³ ಗà³à²°à²¾à²«à²¿à²•à³à²¸à³ ಸಂಪಾದಕ +GenericName[ko]=벡터 그래픽 편집기 +GenericName[kok]=वà¥à¤¹à¥‡à¤•à¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +GenericName[kok@latin]=vekttor grafiks edittor +GenericName[ks@aran]=ویکٹر گراÙکس اڈیٹر +GenericName[ks@deva]=वयकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¼à¤¿à¤•à¥à¤¸ अडीटर +GenericName[lv]=Vektoru grafikas redaktors +GenericName[mai]=सदिश आलेखी संपादक +GenericName[ml]=വെകàµà´Ÿà´°àµâ€ à´—àµà´°à´¾à´«à´¿à´•àµà´¸àµ à´Žà´¡à´¿à´±àµà´±à´°àµâ€ +GenericName[mni]=ꯚꯦꯛꯇꯔ ꯒ꯭ꯔꯥê¯ê¯¤ê¯›ê¯ ê¯ê¯—ꯤꯇꯔ +GenericName[mni@beng]=ভেকà§à¦¤à¦° গà§à¦°à¦¾à¦«à¦¿à¦•à§à¦¸ ইদিতর +GenericName[mr]=वà¥à¤¹à¥‡à¤•à¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +GenericName[nl]=Vector tekenpakket +GenericName[or]=ଭେକà­à¬Ÿà¬° ଗà­à¬°à¬¾à¬«à¬¿à¬•à­à¬¸ ସଂପାଦà­à¬• +GenericName[pl]=Edytor grafiki wektorowej +GenericName[pt_BR]=Editor de Imagens Vetoriais +GenericName[ro]=Editor de grafică vectorială +GenericName[ru]=Редактор векторной графики +GenericName[sa]=वेकà¥à¤Ÿà¤°à¥ सà¥à¤šà¤¿à¤¤à¥à¤°à¥€à¤¯à¤¸à¤‚पादकः +GenericName[sat@deva]=वेकà¥à¤Ÿà¤° गार चिता़र सासापड़ाव +GenericName[sat]=ᱣᱮᱠᱴᱨ ᱜᱟᱨ ᱪᱤᱛᱟᱹᱨ ᱥᱟᱥᱟᱯᱲᱟᱣ +GenericName[sd]=ويڪٽر اکري Ú†Ù½ سمپادڪ +GenericName[sd@deva]=वेकà¥à¤Ÿà¤° अखिरी चिट संपादकॠ+GenericName[sk]=editor vektorovej grafiky +GenericName[sl]=Urejevalnik vektorskih slik +GenericName[sr@latin]=Program za vektorsko crtanje +GenericName[sr]=Програм за векторÑко цртање +GenericName[ta]=வெகà¯à®Ÿà®¾à®°à¯ வரைகலை எடிடà¯à®Ÿà®°à¯ +GenericName[te]=సదిశ రేఖాచితà±à°°à°¾à°² కూరà±à°ªà°°à°¿ +GenericName[tr]=Vektörel Grafik Düzenleyici +GenericName[uk]=Редактор векторної графіки +GenericName[ur]=انك اسكیپ ویكٹر گراÙیكس ایڈیٹر +GenericName[vi]=Trình xá»­ lý ảnh Véc-tÆ¡ +GenericName[zh_CN]=矢é‡å›¾å½¢ç¼–辑器 +GenericName[zh_TW]=å‘é‡ç¹ªåœ–軟體 +GenericName=Vector Graphics Editor +X-GNOME-FullName[ar]=إنكسكيب محرر الرسومات الشعاعية +X-GNOME-FullName[as]=ইনসà§à¦•েপ ভেকà§à¦Ÿà§° গà§à§°à¦¾à¦«à¦¿à¦•à§à¦¸ সমà§à¦ªà¦¾à¦¦à¦¨à¦•à§°à§à¦¤à¦¾ +X-GNOME-FullName[be]=РÑдактар вÑктарнай ґрафікі Inkscape +X-GNOME-FullName[bg]=Inkscape илюÑтратор за векторна графика +X-GNOME-FullName[bn_BD]=ইনà§à¦•সà§à¦•েপ ভেকà§à¦Ÿà¦° গà§à¦°à¦¾à¦«à¦¿à¦•à§à¦¸ সমà§à¦ªà¦¾à¦¦à¦• +X-GNOME-FullName[br]=Inkscape Embanner kevregadoù sturiadel +X-GNOME-FullName[brx]=इङà¥à¤•सà¥à¤•ेप भेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ सà¥à¤œà¥à¤—िरि +X-GNOME-FullName[ca]=Editor de gràfics vectorials Inkscape +X-GNOME-FullName[ca@valencia]=Editor de gràfics vectorials Inkscape +X-GNOME-FullName[cs]=Inkscape - editor vektorové grafiky +X-GNOME-FullName[da]=Inkscape vektorgrafik redigering +X-GNOME-FullName[de]=Vektorgrafikeditor Inkscape +X-GNOME-FullName[doi]=इंकसà¥à¤•ेप वैकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +X-GNOME-FullName[el]=ΕπεξεÏγαστής διανυσματικών γÏαφικών Inkscape +X-GNOME-FullName[en_GB]=Inkscape Vector Graphics Editor +X-GNOME-FullName[en_US@piglatin]=Inkscape Ectorvay Aphicsgray Editorway +X-GNOME-FullName[eo]=Inkscape: Ilustrilo por Vektoraj Bildoj +X-GNOME-FullName[es]=Editor de gráficos vectoriales Inkscape +X-GNOME-FullName[et]=Inkscape, vektorgraafika redaktor +X-GNOME-FullName[eu]=Inkscape bektore-grafikoen editorea +X-GNOME-FullName[fi]=Inkscape vektorigrafiikkatyökalu +X-GNOME-FullName[fr]=Éditeur d'images vectorielles SVG Inkscape +X-GNOME-FullName[gl]=Editor de imaxes vectoriais Inkscape +X-GNOME-FullName[gu]=Inkscape વà«àª¹à«‡àª•à«àªŸàª° ગà«àª°àª¾àª«àª¿àª•à«àª¸ સંપાદક +X-GNOME-FullName[he]=×ינקסקייפ — עורך גרפיקה וקטורית +X-GNOME-FullName[hi]=इंकसà¥à¤•ेप वेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +X-GNOME-FullName[hr]=Inkscape - program za vektorsko crtanje +X-GNOME-FullName[hu]=Inkscape - vektorgrafikai szerkesztÅ‘ +X-GNOME-FullName[hy]=Inkscape ÕŽÕ¥Õ¯Õ¿Õ¸Ö€Õ¡ÕµÕ«Õ¶ Ô³Ö€Õ¡Ö†Õ«Õ¯Õ¡ÕµÕ« Ô½Õ´Õ¢Õ¡Õ£Õ«Ö€ +X-GNOME-FullName[id]=Penyunting Grafik Vektor Inkscape +X-GNOME-FullName[is]=Inkscape teikniforrit fyrir vigramyndir +X-GNOME-FullName[it]=Inkscape - Grafica vettoriale SVG +X-GNOME-FullName[ja]=Inkscape ベクターグラフィックエディター +X-GNOME-FullName[km]=កម្មវិធី​កែ​សម្រួល​ក្រាហ្វិក​វ៉ិចទáŸážšâ€‹ážšáž”ស់​ Inkscape +X-GNOME-FullName[kn]=ಇಂಕà³â€Œà²¸à³à²•ೇಪೠವೆಕà³à²Ÿà²°à³ ಗà³à²°à²¾à²«à²¿à²•à³à²¸à³ ಸಂಪಾದಕ +X-GNOME-FullName[ko]=Inkscape 벡터 그래픽 편집기 +X-GNOME-FullName[kok]=इंकसà¥à¤•ेप वà¥à¤¹à¥‡à¤•à¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +X-GNOME-FullName[kok@latin]=Inkscape vekttor grafiks edittor +X-GNOME-FullName[ks@aran]=اÙنسکیپ ویکٹر گراÙکس اڈیٹر +X-GNOME-FullName[ks@deva]=इनकसकेप वेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¼à¤¿à¤•à¥à¤¸ अडीटर +X-GNOME-FullName[lt]=Inkscape vektorinÄ—s grafikos rengyklÄ— +X-GNOME-FullName[lv]=Vektoru grafikas redaktors Inkscape +X-GNOME-FullName[mai]=Inkscape सदिश आलेखी संपादक +X-GNOME-FullName[ml]=ഇങàµà´•àµà´¸àµà´•െയàµà´ªàµ വെകàµà´Ÿà´°àµâ€ à´—àµà´°à´¾à´«à´¿à´•àµà´¸àµ à´Žà´¡à´¿à´±àµà´±à´°àµâ€ +X-GNOME-FullName[mni]=ê¯ê¯ªê¯›ê¯ê¯­ê¯€ê¯¦ê¯ž ꯚꯦꯛꯇꯔ ꯒ꯭ꯔꯥê¯ê¯¤ê¯›ê¯ ê¯ê¯—ꯤꯇꯔ +X-GNOME-FullName[mni@beng]=ইঙà§à¦•সà§à¦•েপ ভেকà§à¦¤à¦° গà§à¦°à¦¾à¦«à¦¿à¦•à§à¦¸ ইদিতর +X-GNOME-FullName[mr]=इंकसà¥à¤•ेप वà¥à¤¹à¥‡à¤•à¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ संपादक +X-GNOME-FullName[nb]=Inkscape vektor-tegneprogram +X-GNOME-FullName[nl]=Inkscape vector tekenpakket +X-GNOME-FullName[or]=ଇଙà­à¬•ସà­à¬•େପ ଭେକà­à¬Ÿà¬° ଗà­à¬°à¬¾à¬«à¬¿à¬•à­à¬¸ ସଂପାଦକ +X-GNOME-FullName[pl]=Inkscape - edytor grafiki wektorowej +X-GNOME-FullName[pt_BR]=Editor de Imagens Vetoriais Inkscape +X-GNOME-FullName[pt]=Inkscape Editor de Imagem Vectorial +X-GNOME-FullName[ro]=Inkscape – Editor de grafică vectorială +X-GNOME-FullName[ru]=Редактор векторной графики Inkscape +X-GNOME-FullName[sa]=इङà¥à¤•à¥à¤¸à¥à¤•ेपॠवेकà¥à¤Ÿà¤°à¥ सà¥à¤šà¤¿à¤¤à¥à¤°à¥€à¤¯à¤¸à¤‚पादकः +X-GNOME-FullName[sat@deva]=काली ञेनेल वेकà¥à¤Ÿà¤° गार चिता़र सासापड़ाव +X-GNOME-FullName[sat]=ᱠᱟᱞᱤ ᱧᱮᱱᱮᱞ ᱣᱮᱠᱴᱨ ᱜᱟᱨ ᱪᱤᱛᱟᱹᱨ ᱥᱟᱥᱟᱯᱲᱟᱣ +X-GNOME-FullName[sd]=اÙنڪسڪيپ ويڪٽر اکري Ú†Ù½ +X-GNOME-FullName[sd@deva]=इंकसà¥à¤•ेप वेकà¥à¤Ÿà¤° अखिरी चिट संपादकॠ+X-GNOME-FullName[sk]=Inkscape - editor vektorovej grafiky +X-GNOME-FullName[sl]=Urejevalnik vektorskih slik Inkscape +X-GNOME-FullName[sr@latin]=Inkscape program za vektorsko crtanje +X-GNOME-FullName[sr]=Inkscape програм за векторÑко цртање +X-GNOME-FullName[sv]=Vektorillustratören Inkscape +X-GNOME-FullName[ta]=Inkscape வெகà¯à®Ÿà®°à¯ வரைகலை எடிடà¯à®Ÿà®°à¯ +X-GNOME-FullName[te]=ఇంకà±â€Œà°¸à±à°•ేపౠసదిశ రేఖాచితà±à°°à°¾à°² కూరà±à°ªà°°à°¿ +X-GNOME-FullName[tr]=Inkscape Vektörel Grafik Düzenleyici +X-GNOME-FullName[uk]=Редактор векторної графіки Inkscape +X-GNOME-FullName[ur]=انك اسكیپ ویكٹر گراÙیكس ایڈیٹر +X-GNOME-FullName[vi]=Inkscape - Trình Xá»­ lý Ảnh Véc-tÆ¡ +X-GNOME-FullName[zh_CN]=Inkscape 矢é‡ç»˜å›¾è½¯ä»¶ +X-GNOME-FullName[zh_TW]=Inkscape å‘é‡ç¹ªåœ–軟體 +X-GNOME-FullName=Inkscape Vector Graphics Editor +Comment[ar]=إنشاء Ùˆ تحرير الرسومات الشعاعية +Comment[as]=জà§à¦–িব পৰা ভেকà§à¦Ÿà§° গà§à§°à¦¾à¦«à¦¿à¦•à§à¦¸ ছবিবোৰ তৈয়াৰ আৰৠসমà§à¦ªà¦¾à¦¦à¦¨à¦¾ কৰক +Comment[be]=СтварÑньне й зьмÑненьне відарыÑаў вÑктарнай ґрафікі (SVG) +Comment[bg]=Създаване и Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Scalable Vector Graphics +Comment[bn]=সà§à¦•েলেবল ভেকà§à¦Ÿà¦° গà§à¦°à¦¾à¦«à¦¿à¦•à§à¦¸ ছবি তৈরী ও সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨ +Comment[bn_BD]=সà§à¦•েলেবল ভেকà§à¦Ÿà¦° গà§à¦°à¦¾à¦«à¦¿à¦•à§à¦¸ ছবি তৈরী ও সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨ +Comment[br]=Krouiñ hag embann skeudennoù mod SVG (Scalable Vector Graphics) +Comment[brx]=सà¥à¤œà¤¾à¤¥à¤¾à¤µ भेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ मà¥à¤¸à¥à¤–ाफोर सोरजि आरो सà¥à¤œà¥ +Comment[ca]=Creeu i editeu imatges de gràfics de vectors escalables +Comment[ca@valencia]=Creeu i editeu imatges de gràfics de vectors escalables +Comment[cs]=Vytvářejte a upravujte vektorovou grafiku (SVG) +Comment[da]=Opret og redigér SVG-billeder +Comment[de]=Skalierbare Vektorgrafiken erstellen und bearbeiten +Comment[doi]=मापजोग वैकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ बिंब बनाओ ते संपादत करो +Comment[dz]=ཆ་ཚད་འཇལ་བà½à½´à½–་པའི་མཉམ་à½à½²à½‚་ཚད་རིས་ཀྱི་གཟུགས་བརྙན་ཚུ་གསར་བསà¾à¾²à½´à½“་དང་ཞུན་དག་འབད༠+Comment[el]=ΔημιουÏγία και Ï„Ïοποποίηση κλιμακώσιμων διανυσματικών εικόνων γÏαφικών +Comment[en_AU]=Create and edit Scalable Vector Graphics images +Comment[en_GB]=Create and edit Scalable Vector Graphics images +Comment[en_US@piglatin]=Eatecray andway editway Alablescay Ectorvay Aphicsgray imagesway +Comment[eo]=Kreu kaj redaktu bildoj en formato SVG (Scalable Vector Graphics) +Comment[es]=Cree y edite Gráficos Vectoriales Escalables (SVG) +Comment[et]=SVG-vektorgraafikas piltide joonistamine ja muutmine +Comment[eu]=Sortu eta editatu Grafiko Bektorial Eskalakor (SVG) irudiak +Comment[fi]=Luo ja muokkaa Scalable Vector Graphics -piirroksia +Comment[fr]=Créer et éditer des images Scalable Vector Graphics +Comment[gl]=Cree e edite imaxes Scalable Vector Graphics +Comment[gu]=માપવાયોગà«àª¯ વà«àª¹à«‡àª•à«àªŸàª° ગà«àª°àª¾àª«àª¿àª•à«àª¸ છવિઓ બનાવો અને સંપાદિત કરો +Comment[he]=יצירה ועריכה של תמונות בגרפיקת ×•×§×˜×•×¨×™× × ×ž×ª×—×ª +Comment[hi]=मापनीय वेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ छवियां बनाà¤à¤‚ और संपादित करें +Comment[hr]=Stvaranje i ureÄ‘ivanje vektorskih crteža +Comment[hu]=Scalable Vector Graphics (méretezhetÅ‘ vektorgrafika, SVG)-képek létrehozása és szerkesztése +Comment[id]=Membuat dan mengedit gambar Scalable Vector Graphics +Comment[is]=Vinna með SVG vektorteikningar (Scalable Vector Graphics) +Comment[it]=Crea e modifica immagini Scalable Vector Graphics +Comment[ja]=Scalable Vector Graphics (SVG) ç”»åƒã®ä½œæˆã¨ç·¨é›†ã‚’行ã„ã¾ã™ +Comment[km]=បង្កើហនិង​កែសម្រួល​​​រូបភាព​ក្រាហ្វិក​វ៉ិចទáŸážšâ€‹ážŠáŸ‚ល​អាច​ធ្វើ​មាážáŸ’រដ្ឋាន​បាន​​ +Comment[kn]=ಸà³à²•ೇಲೆಬಲೠವೆಕà³à²Ÿà²°à³ ಗà³à²°à²¾à²«à²¿à²•à³à²¸à³ ಚಿತà³à²°à²—ಳನà³à²¨à³ ರಚಿಸಿ ಹಾಗೠಸಂಪಾದಿಸಿ +Comment[ko]=SVG ì´ë¯¸ì§€ ìƒì„± ë° íŽ¸ì§‘ +Comment[kok]=सà¥à¤•ेलेबल वà¥à¤¹à¥‡à¤•à¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ पà¥à¤°à¤¤à¤¿à¤®à¤¾ तयार आणि संपादित करात +Comment[kok@latin]=Mapache vekttor grafiks rupnnem roch ani sompadit kor +Comment[ks@aran]=بناویوتÛÙ• ادارت کٔریو قابلئ پیمائش ویکٹر گراÙکس Ø´Ú©Ù„ÛÙ• +Comment[ks@deva]=बनावीव तअ. इदारत कॲरीव क़ाबलिअ पेयमाईश वयकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¼à¤¿à¤•à¥à¤¸ शकलअ. +Comment[lt]=Kurti ir redaguoti vektorinius grafinius pieÅ¡inius +Comment[lv]=Izveidojiet un labojiet mÄ“rogojamÄs vektoru grafikas (SVG) attÄ“lus +Comment[mai]=मापनीय सदिश आलेखी छवि बनाउ आओर संपादित करू +Comment[ml]=à´¸àµà´•െയിലബിളàµâ€ വെകàµà´±àµà´±à´°àµâ€ à´—àµà´°à´¾à´«à´¿à´•àµà´¸àµ à´šà´¿à´¤àµà´°à´™àµà´™à´³àµ† നിരàµâ€à´®àµà´®à´¿à´•àµà´•àµà´•യൊ à´Žà´¡à´¿à´±àµà´±àµ†à´¾ ചെയàµà´¯àµà´• +Comment[mni]=ê¯ê¯­ê¯€ê¯¦ê¯‚ꯦꯕꯜ ꯚꯦꯛꯇꯔ ꯒ꯭ꯔꯥê¯ê¯¤ê¯›ê¯ ê¯ê¯ƒê¯¦ê¯–ê¯ê¯¤ê¯¡ ê¯ê¯¦ê¯ê¯’ꯠꯂꯣ ꯑꯃê¯ê¯¨ê¯¡ ê¯ê¯¦ê¯ê¯—ꯣꯛꯎ +Comment[mni@beng]=সà§à¦•েলেবল ভেকà§à¦¤à¦° গà§à¦°à¦¾à¦«à¦¿à¦•à§à¦¸ ইমেজশিং শেমগৎলো অমসà§à¦‚ শেমদোকউ +Comment[mr]=सà¥à¤•ेलेबल वà¥à¤¹à¥‡à¤•à¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ पà¥à¤°à¤¤à¤¿à¤®à¤¾ तयार आणि संपादित करा +Comment[nb]=Lag og rediger Skalerbar VektorGrafikk-bilder +Comment[ne]=सà¥à¤•ेलेबà¥à¤² भेकà¥à¤Ÿà¤° गà¥à¤°à¤¾à¤«à¤¿à¤•à¥à¤¸ छविहरू सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ र समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ +Comment[nl]=Scalable Vector Graphics-afbeeldingen maken en bewerken +Comment[nn]=Lag og rediger skalerbare vektorbilete (SVG) +Comment[or]=ସà­à¬•େଲେବଲ େଭକà­à¬Ÿà¬° ଗà­à¬°à¬¾à¬«à¬¿à¬•à­à¬¸ ଚିତà­à¬°à¬¸à¬¬à­ ସୃଷà­à¬Ÿà¬¿ à¬à¬¬à¬‚ ସଂପାଦନା କରନà­à­à¬¤à­ +Comment[pa]=ਸਕੇਲੇਬਲ ਵੈਕਟਰ ਗਰਾਫਿਕਸ ਚਿੱਤਰ ਬਣਾਓ ਅਤੇ ਸੋਧੋ +Comment[pl]=Tworzenie i edycja grafiki wektorowej SVG +Comment[pt_BR]=Crie e edite desenhos vetoriais escaláveis (SVG) +Comment[pt]=Crie e edite imagens Gráficas Vectoriais Escalaveis +Comment[ro]=Creează È™i editează imagini în format Scalable Vector Graphics +Comment[ru]=Создание и редактирование маÑштабируемой векторной графики в формате SVG +Comment[sa]=मापà¥à¤¯-वेकà¥à¤Ÿà¤°à¥-सà¥à¤šà¤¿à¤¤à¥à¤°à¥€à¤¯-चितà¥à¤°à¤¾à¤£à¤¿ उतà¥à¤ªà¤¾à¤¦à¥à¤¯ समà¥à¤ªà¤¾à¤¦à¤¯ +Comment[sat@deva]=नाप दाड़ेयाकॠवेकà¥à¤Ÿà¤° गार चिता़र आहला तेयार मे आर सासापड़ाव मे +Comment[sat]=ᱱᱟᱯ ᱫᱟᱲᱮᱭᱟᱜ ᱣᱮᱠᱴᱨ ᱜᱟᱨ ᱪᱤᱛᱟᱹᱨ ᱟᱦᱞᱟ ᱛᱮᱭᱟᱨ ᱢᱮ ᱟᱨ ᱥᱟᱥᱟᱯᱲᱟᱣ ᱢᱮ +Comment[sd]=ماپڻ جوڳا ويڪٽر اکري Ú†Ù½ Û½ عڪس خلقيو Û½ سمپادت ڪريو +Comment[sd@deva]=मापण जोॻो वेकà¥à¤Ÿà¤° अखिरी चिट à¤à¤‚ अकà¥à¤¸ खलिकियो à¤à¤‚ संपादित करियो. +Comment[sk]=Tvorba a úprava obrázkov Scalable Vector Graphics +Comment[sl]=Ustvarjajte in urejajte vektorske slike SVG +Comment[sr@latin]=Pravljenje i ureÄ‘ivanje SVG vektorskih slika +Comment[sr]=Прављење и уређивање SVG векторÑких Ñлика +Comment[sv]=Skapa och redigera SVG-bilder +Comment[ta]=அளவிடகà¯à®•ூடிய வெகà¯à®Ÿà®¾à®°à¯ வரைகலைகளின௠படஙà¯à®•ளை உரà¯à®µà®¾à®•à¯à®•ி திரà¯à®¤à¯à®¤à®µà¯à®®à¯ +Comment[te]=సదిశ రేఖాచితà±à°°à°¾à°²à°¨à°¿ సృషà±à°Ÿà°¿à°‚à°šà°‚à°¡à°¿ మరియౠదిదà±à°¦à±à°¬à°¾à°Ÿà± చేయండి +Comment[th]=สร้างà¹à¸¥à¸°à¹à¸à¹‰à¹„ขภาพ Scalable Vector Graphics +Comment[tr]=Ölçeklenebilir Vektör İmgeleri oluÅŸturur ve düzenler +Comment[uk]=Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½ÑŒ у форматі SVG +Comment[ur]=اسكیلیبل ویكٹر گراÙیكس امیجس تخلیق اور مرتب كریں +Comment[vi]=Tạo và sá»­a ảnh véc-tÆ¡ co giãn được +Comment[zh_CN]=创建ã€ç¼–辑å¯ç¼©æ”¾çŸ¢é‡å›¾å½¢å›¾åƒ +Comment[zh_TW]=建立和編輯å¯ç¸®æ”¾å‘é‡ç¹ªåœ–圖形 +Comment=Create and edit Scalable Vector Graphics images +Keywords[de]=image;editor;vector;drawing; +Keywords[en_GB]=image;editor;vector;drawing; +Keywords[fr]=image;éditeur;vectoriel;dessin; +Keywords[is]=mynd;ritill;vigur;vektor;línur;teikning; +Keywords[it]=immagine;editor;vettoriale;disegno; +Keywords[lv]=attÄ“ls;redaktors;vektors;zÄ«mÄ“jums; +Keywords[nl]=image;editor;vector;drawing; +Keywords[uk]=image;editor;vector;drawing;зображеннÑ;редактор;векторне;вектор;малюваннÑ; +Keywords[zh_CN]=image;editor;vector;drawing;矢é‡;图åƒ;编辑;编辑器;å‘é‡;绘图; +Keywords=image;editor;vector;drawing; +Type=Application +Categories=Graphics;VectorGraphics;GTK; +MimeType=image/svg+xml;image/svg+xml-compressed;application/vnd.corel-draw;application/pdf;application/postscript;image/x-eps;application/illustrator;image/cgm;image/x-wmf;application/x-xccx;application/x-xcgm;application/x-xcdt;application/x-xsk1;application/x-xcmx;image/x-xcdr;application/visio;application/x-visio;application/vnd.visio;application/visio.drawing;application/vsd;application/x-vsd;image/x-vsd; +Exec=inkscape %F +TryExec=inkscape +Terminal=false +StartupNotify=true +Icon=inkscape +X-Ayatana-Desktop-Shortcuts=Drawing + +[Drawing Shortcut Group] +Name[ar]=رسم جديد +Name[bn_BD]=নতà§à¦¨ ডà§à¦°à¦‡à¦‚ +Name[br]=Tresadenn nevez +Name[ca]=Dibuix nou +Name[cs]=Kresba +Name[da]=Ny tegning +Name[de]=Neue Zeichnung +Name[el]=Îέο σχέδιο +Name[en_GB]=New Drawing +Name[es]=Dibujo nuevo +Name[eu]=Marrazki berria +Name[fr]=Nouveau dessin +Name[hu]=Új rajz +Name[is]=Ný teikning +Name[it]=Nuovo disegno +Name[ja]=æ–°ã—ã„ãƒ™ã‚¯ã‚¿ãƒ¼ç”»åƒ +Name[lv]=Jauns zÄ«mÄ“jums +Name[nl]=Nieuwe tekening +Name[pl]=Nowy Rysunek +Name[ro]=Desen nou +Name[ru]=Ðовый риÑунок +Name[sk]=Nová kresba +Name[sl]=Nova risba +Name[sr@latin]=Novi crtež +Name[sr]=Ðови цртеж +Name[tr]=Yeni Çizim +Name[uk]=Ðовий малюнок +Name[zh_CN]=新建绘图 +Name[zh_TW]=新增圖畫 +Name=New Drawing +Exec=inkscape +TargetEnvironment=Unity -- cgit v1.2.3 From 94a90f737c9bb0a07552d3ae0f210221cc70c5c0 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 27 Jul 2016 12:58:57 -0500 Subject: Drop helper (bzr r14950.1.16) --- setup/gui/inkscape.desktop | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/setup/gui/inkscape.desktop b/setup/gui/inkscape.desktop index 4340421aa..f7eb9cbef 100644 --- a/setup/gui/inkscape.desktop +++ b/setup/gui/inkscape.desktop @@ -300,38 +300,3 @@ TryExec=inkscape Terminal=false StartupNotify=true Icon=inkscape -X-Ayatana-Desktop-Shortcuts=Drawing - -[Drawing Shortcut Group] -Name[ar]=رسم جديد -Name[bn_BD]=নতà§à¦¨ ডà§à¦°à¦‡à¦‚ -Name[br]=Tresadenn nevez -Name[ca]=Dibuix nou -Name[cs]=Kresba -Name[da]=Ny tegning -Name[de]=Neue Zeichnung -Name[el]=Îέο σχέδιο -Name[en_GB]=New Drawing -Name[es]=Dibujo nuevo -Name[eu]=Marrazki berria -Name[fr]=Nouveau dessin -Name[hu]=Új rajz -Name[is]=Ný teikning -Name[it]=Nuovo disegno -Name[ja]=æ–°ã—ã„ãƒ™ã‚¯ã‚¿ãƒ¼ç”»åƒ -Name[lv]=Jauns zÄ«mÄ“jums -Name[nl]=Nieuwe tekening -Name[pl]=Nowy Rysunek -Name[ro]=Desen nou -Name[ru]=Ðовый риÑунок -Name[sk]=Nová kresba -Name[sl]=Nova risba -Name[sr@latin]=Novi crtež -Name[sr]=Ðови цртеж -Name[tr]=Yeni Çizim -Name[uk]=Ðовий малюнок -Name[zh_CN]=新建绘图 -Name[zh_TW]=新增圖畫 -Name=New Drawing -Exec=inkscape -TargetEnvironment=Unity -- cgit v1.2.3 From cebbe5b970cba85a5e21f8347f0a20e78351d394 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 28 Jul 2016 11:22:07 +0100 Subject: extensions: Drop GTKMM2 fallbacks (bzr r15023.2.5) --- src/extension/error-file.cpp | 6 +---- src/extension/extension.cpp | 22 ++-------------- src/extension/extension.h | 9 ------- src/extension/implementation/script.cpp | 6 +---- src/extension/internal/cdr-input.cpp | 11 +------- src/extension/internal/pdfinput/pdf-input.cpp | 36 +-------------------------- src/extension/internal/pdfinput/pdf-input.h | 15 +---------- src/extension/internal/vsd-input.cpp | 12 +-------- src/extension/param/bool.cpp | 6 +---- src/extension/param/float.cpp | 12 ++------- src/extension/param/int.cpp | 13 ++-------- src/extension/param/notebook.cpp | 8 ------ src/extension/param/radiobutton.cpp | 9 ++----- src/extension/prefdialog.cpp | 27 +------------------- 14 files changed, 16 insertions(+), 176 deletions(-) diff --git a/src/extension/error-file.cpp b/src/extension/error-file.cpp index db354c0ce..467ff95be 100644 --- a/src/extension/error-file.cpp +++ b/src/extension/error-file.cpp @@ -56,11 +56,7 @@ ErrorFileNotice::ErrorFileNotice (void) : g_free(ext_error_file); set_message(dialog_text, true); -#if WITH_GTKMM_3_0 - Gtk::Box * vbox = get_content_area(); -#else - Gtk::Box * vbox = get_vbox(); -#endif + auto vbox = get_content_area(); /* This is some filler text, needs to change before relase */ Inkscape::Preferences *prefs = Inkscape::Preferences::get(); diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp index 6f7539360..5d150b703 100644 --- a/src/extension/extension.cpp +++ b/src/extension/extension.cpp @@ -22,12 +22,7 @@ #include #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include #include "inkscape.h" @@ -766,11 +761,7 @@ Extension::get_info_widget(void) Gtk::Frame * info = Gtk::manage(new Gtk::Frame("General Extension Information")); retval->pack_start(*info, true, true, 5); -#if WITH_GTKMM_3_0 - Gtk::Grid * table = Gtk::manage(new Gtk::Grid()); -#else - Gtk::Table * table = Gtk::manage(new Gtk::Table()); -#endif + auto table = Gtk::manage(new Gtk::Grid()); info->add(*table); @@ -784,11 +775,7 @@ Extension::get_info_widget(void) return retval; } -#if WITH_GTKMM_3_0 void Extension::add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Grid * table, int * row) -#else -void Extension::add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Table * table, int * row) -#endif { Gtk::Label * label; Gtk::Label * value; @@ -797,13 +784,8 @@ void Extension::add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Tab label = Gtk::manage(new Gtk::Label(labelstr)); value = Gtk::manage(new Gtk::Label(valuestr)); -#if WITH_GTKMM_3_0 table->attach(*label, 0, (*row) - 1, 1, 1); table->attach(*value, 1, (*row) - 1, 1, 1); -#else - table->attach(*label, 0, 1, (*row) - 1, *row); - table->attach(*value, 1, 2, (*row) - 1, *row); -#endif label->show(); value->show(); diff --git a/src/extension/extension.h b/src/extension/extension.h index 1fb8bdfec..cd29e1636 100644 --- a/src/extension/extension.h +++ b/src/extension/extension.h @@ -22,12 +22,7 @@ #include namespace Gtk { -#if WITH_GTKMM_3_0 class Grid; -#else - class Table; -#endif - class VBox; class Widget; } @@ -300,11 +295,7 @@ public: Gtk::VBox * get_help_widget(void); Gtk::VBox * get_params_widget(void); protected: -#if WITH_GTKMM_3_0 inline static void add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Grid * table, int * row); -#else - inline static void add_val(Glib::ustring labelstr, Glib::ustring valuestr, Gtk::Table * table, int * row); -#endif }; diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index 01323bee2..72a189c3f 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -942,11 +942,7 @@ void Script::checkStderr (const Glib::ustring &data, GtkWidget *dlg = GTK_WIDGET(warning.gobj()); sp_transientize(dlg); -#if WITH_GTKMM_3_0 - Gtk::Box * vbox = warning.get_content_area(); -#else - Gtk::Box * vbox = warning.get_vbox(); -#endif + auto vbox = warning.get_content_area(); /* Gtk::TextView * textview = new Gtk::TextView(Gtk::TextBuffer::create()); */ Gtk::TextView * textview = new Gtk::TextView(); diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp index a26af2078..b94b6d019 100644 --- a/src/extension/internal/cdr-input.cpp +++ b/src/extension/internal/cdr-input.cpp @@ -111,11 +111,7 @@ CdrImportDialog::CdrImportDialog(const std::vector &vec) _previewArea = Gtk::manage(new class Gtk::VBox()); vbox1 = Gtk::manage(new class Gtk::VBox()); vbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 0); -#if WITH_GTKMM_3_0 this->get_content_area()->pack_start(*vbox1); -#else - this->get_vbox()->pack_start(*vbox1); -#endif // CONTROLS @@ -137,13 +133,8 @@ CdrImportDialog::CdrImportDialog(const std::vector &vec) g_free(label_text); // Adjustment + spinner -#if WITH_GTKMM_3_0 - Glib::RefPtr _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0); + auto _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0); _pageNumberSpin = Gtk::manage(new Gtk::SpinButton(_pageNumberSpin_adj, 1, 0)); -#else - Gtk::Adjustment *_pageNumberSpin_adj = Gtk::manage(new class Gtk::Adjustment(1, 1, _vec.size(), 1, 10, 0)); - _pageNumberSpin = Gtk::manage(new Gtk::SpinButton(*_pageNumberSpin_adj, 1, 0)); -#endif _pageNumberSpin->set_can_focus(); _pageNumberSpin->set_update_policy(Gtk::UPDATE_ALWAYS); _pageNumberSpin->set_numeric(true); diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp index c1940b16a..0c22fa399 100644 --- a/src/extension/internal/pdfinput/pdf-input.cpp +++ b/src/extension/internal/pdfinput/pdf-input.cpp @@ -39,10 +39,8 @@ #include #include -#if WITH_GTKMM_3_0 #include #include -#endif #include "extension/system.h" #include "extension/input.h" @@ -92,14 +90,8 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/) _labelSelect = Gtk::manage(new class Gtk::Label(_("Select page:"))); // Page number -#if WITH_GTKMM_3_0 - Glib::RefPtr _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _pdf_doc->getNumPages(), 1, 10, 0); + auto _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _pdf_doc->getNumPages(), 1, 10, 0); _pageNumberSpin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(_pageNumberSpin_adj, 1, 1)); -#else - Gtk::Adjustment *_pageNumberSpin_adj = Gtk::manage( - new class Gtk::Adjustment(1, 1, _pdf_doc->getNumPages(), 1, 10, 0)); - _pageNumberSpin = Gtk::manage(new class Inkscape::UI::Widget::SpinButton(*_pageNumberSpin_adj, 1, 1)); -#endif _labelTotalPages = Gtk::manage(new class Gtk::Label()); hbox2 = Gtk::manage(new class Gtk::HBox(false, 0)); // Disable the page selector when there's only one page @@ -137,13 +129,8 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/) _labelViaInternal = Gtk::manage(new class Gtk::Label(_("Import via internal (Poppler derived) library. Text is stored as text but white space is missing. Meshes are converted to tiles, the number depends on the precision set below."))); #endif -#if WITH_GTKMM_3_0 _fallbackPrecisionSlider_adj = Gtk::Adjustment::create(2, 1, 256, 1, 10, 10); _fallbackPrecisionSlider = Gtk::manage(new class Gtk::Scale(_fallbackPrecisionSlider_adj)); -#else - _fallbackPrecisionSlider_adj = Gtk::manage(new class Gtk::Adjustment(2, 1, 256, 1, 10, 10)); - _fallbackPrecisionSlider = Gtk::manage(new class Gtk::HScale(*_fallbackPrecisionSlider_adj)); -#endif _fallbackPrecisionSlider->set_value(2.0); _labelPrecisionComment = Gtk::manage(new class Gtk::Label(_("rough"))); hbox6 = Gtk::manage(new class Gtk::HBox(false, 4)); @@ -278,15 +265,9 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/) hbox1->pack_start(*vbox1); hbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 4); -#if WITH_GTKMM_3_0 get_content_area()->set_homogeneous(false); get_content_area()->set_spacing(0); get_content_area()->pack_start(*hbox1); -#else - this->get_vbox()->set_homogeneous(false); - this->get_vbox()->set_spacing(0); - this->get_vbox()->pack_start(*hbox1); -#endif this->set_title(_("PDF Import Settings")); this->set_modal(true); @@ -300,12 +281,7 @@ PdfImportDialog::PdfImportDialog(PDFDoc *doc, const gchar */*uri*/) this->show_all(); // Connect signals -#if WITH_GTKMM_3_0 _previewArea->signal_draw().connect(sigc::mem_fun(*this, &PdfImportDialog::_onDraw)); -#else - _previewArea->signal_expose_event().connect(sigc::mem_fun(*this, &PdfImportDialog::_onExposePreview)); -#endif - _pageNumberSpin_adj->signal_value_changed().connect(sigc::mem_fun(*this, &PdfImportDialog::_onPageNumberChanged)); _cropCheck->signal_toggled().connect(sigc::mem_fun(*this, &PdfImportDialog::_onToggleCropping)); _fallbackPrecisionSlider_adj->signal_value_changed().connect(sigc::mem_fun(*this, &PdfImportDialog::_onPrecisionChanged)); @@ -527,16 +503,6 @@ static void copy_cairo_surface_to_pixbuf (cairo_surface_t *surface, #endif -/** - * \brief Updates the preview area with the previously rendered thumbnail - */ -#if !WITH_GTKMM_3_0 -bool PdfImportDialog::_onExposePreview(GdkEventExpose * /*event*/) { - Cairo::RefPtr cr = _previewArea->get_window()->create_cairo_context(); - return _onDraw(cr); -} -#endif - bool PdfImportDialog::_onDraw(const Cairo::RefPtr& cr) { // Check if we have a thumbnail at all if (!_thumb_data) { diff --git a/src/extension/internal/pdfinput/pdf-input.h b/src/extension/internal/pdfinput/pdf-input.h index 6e36603c3..c338207c1 100644 --- a/src/extension/internal/pdfinput/pdf-input.h +++ b/src/extension/internal/pdfinput/pdf-input.h @@ -39,11 +39,7 @@ namespace Gtk { class DrawingArea; class Frame; class HBox; -#if WITH_GTKMM_3_0 class Scale; -#else - class HScale; -#endif class RadioButton; class VBox; class Label; @@ -79,10 +75,6 @@ private: void _setPreviewPage(int page); // Signal handlers -#if !WITH_GTKMM_3_0 - bool _onExposePreview(GdkEventExpose *event); -#endif - bool _onDraw(const Cairo::RefPtr& cr); void _onPageNumberChanged(); void _onToggleCropping(); @@ -110,13 +102,8 @@ private: class Gtk::RadioButton * _importViaInternal; // Use native (poppler based) importing class Gtk::Label * _labelViaInternal; #endif -#if WITH_GTKMM_3_0 - class Gtk::Scale * _fallbackPrecisionSlider; + Gtk::Scale * _fallbackPrecisionSlider; Glib::RefPtr _fallbackPrecisionSlider_adj; -#else - class Gtk::HScale * _fallbackPrecisionSlider; - class Gtk::Adjustment *_fallbackPrecisionSlider_adj; -#endif class Gtk::Label * _labelPrecisionComment; class Gtk::HBox * hbox6; class Gtk::Label * _labelText; diff --git a/src/extension/internal/vsd-input.cpp b/src/extension/internal/vsd-input.cpp index a3d4aad37..2de2d0ec6 100644 --- a/src/extension/internal/vsd-input.cpp +++ b/src/extension/internal/vsd-input.cpp @@ -113,12 +113,7 @@ VsdImportDialog::VsdImportDialog(const std::vector &vec) _previewArea = Gtk::manage(new class Gtk::VBox()); vbox1 = Gtk::manage(new class Gtk::VBox()); vbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 0); -#if WITH_GTKMM_3_0 this->get_content_area()->pack_start(*vbox1); -#else - this->get_vbox()->pack_start(*vbox1); -#endif - // CONTROLS @@ -140,13 +135,8 @@ VsdImportDialog::VsdImportDialog(const std::vector &vec) g_free(label_text); // Adjustment + spinner -#if WITH_GTKMM_3_0 - Glib::RefPtr _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0); + auto _pageNumberSpin_adj = Gtk::Adjustment::create(1, 1, _vec.size(), 1, 10, 0); _pageNumberSpin = Gtk::manage(new Gtk::SpinButton(_pageNumberSpin_adj, 1, 0)); -#else - Gtk::Adjustment *_pageNumberSpin_adj = Gtk::manage(new class Gtk::Adjustment(1, 1, _vec.size(), 1, 10, 0)); - _pageNumberSpin = Gtk::manage(new Gtk::SpinButton(*_pageNumberSpin_adj, 1, 0)); -#endif _pageNumberSpin->set_can_focus(); _pageNumberSpin->set_update_policy(Gtk::UPDATE_ALWAYS); _pageNumberSpin->set_numeric(true); diff --git a/src/extension/param/bool.cpp b/src/extension/param/bool.cpp index d64f798ba..e67d3e3f5 100644 --- a/src/extension/param/bool.cpp +++ b/src/extension/param/bool.cpp @@ -129,12 +129,8 @@ Gtk::Widget *ParamBool::get_widget(SPDocument * doc, Inkscape::XML::Node * node, return NULL; } -#if WITH_GTKMM_3_0 - Gtk::Box * hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4)); + auto hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4)); hbox->set_homogeneous(false); -#else - Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); -#endif Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START)); label->show(); diff --git a/src/extension/param/float.cpp b/src/extension/param/float.cpp index dff7cbf46..d4c33ec94 100644 --- a/src/extension/param/float.cpp +++ b/src/extension/param/float.cpp @@ -176,12 +176,8 @@ Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * nod Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); -#if WITH_GTKMM_3_0 - ParamFloatAdjustment * pfa = new ParamFloatAdjustment(this, doc, node, changeSignal); + auto pfa = new ParamFloatAdjustment(this, doc, node, changeSignal); Glib::RefPtr fadjust(pfa); -#else - ParamFloatAdjustment * fadjust = Gtk::manage(new ParamFloatAdjustment(this, doc, node, changeSignal)); -#endif if (_mode == FULL) { @@ -197,11 +193,7 @@ Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * nod label->show(); hbox->pack_start(*label, true, true, _indent); -#if WITH_GTKMM_3_0 - Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 0.1, _precision)); -#else - Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(*fadjust, 0.1, _precision)); -#endif + auto spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 0.1, _precision)); spin->show(); hbox->pack_start(*spin, false, false); } diff --git a/src/extension/param/int.cpp b/src/extension/param/int.cpp index dda801282..533ee3886 100644 --- a/src/extension/param/int.cpp +++ b/src/extension/param/int.cpp @@ -157,13 +157,8 @@ ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); - -#if WITH_GTKMM_3_0 - ParamIntAdjustment * pia = new ParamIntAdjustment(this, doc, node, changeSignal); + auto pia = new ParamIntAdjustment(this, doc, node, changeSignal); Glib::RefPtr fadjust(pia); -#else - ParamIntAdjustment * fadjust = Gtk::manage(new ParamIntAdjustment(this, doc, node, changeSignal)); -#endif if (_mode == FULL) { @@ -178,11 +173,7 @@ ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal label->show(); hbox->pack_start(*label, true, true, _indent); -#if WITH_GTKMM_3_0 - Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 1.0, 0)); -#else - Inkscape::UI::Widget::SpinButton * spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(*fadjust, 1.0, 0)); -#endif + auto spin = Gtk::manage(new Inkscape::UI::Widget::SpinButton(fadjust, 1.0, 0)); spin->show(); hbox->pack_start(*spin, false, false); } diff --git a/src/extension/param/notebook.cpp b/src/extension/param/notebook.cpp index 20c8e8481..957d12d06 100644 --- a/src/extension/param/notebook.cpp +++ b/src/extension/param/notebook.cpp @@ -353,11 +353,7 @@ public: // hook function this->signal_switch_page().connect(sigc::mem_fun(this, &ParamNotebookWdg::changed_page)); }; -#if WITH_GTKMM_3_0 void changed_page(Gtk::Widget *page, guint pagenum); -#else - void changed_page(GtkNotebookPage *page, guint pagenum); -#endif bool activated; }; @@ -368,11 +364,7 @@ public: * is actually visible. This to exclude 'fake' changes when the * notebookpages are added or removed. */ -#if WITH_GTKMM_3_0 void ParamNotebookWdg::changed_page(Gtk::Widget * /*page*/, guint pagenum) -#else -void ParamNotebookWdg::changed_page(GtkNotebookPage * /*page*/, guint pagenum) -#endif { if (get_visible()) { _pref->set((int)pagenum, _doc, _node); diff --git a/src/extension/param/radiobutton.cpp b/src/extension/param/radiobutton.cpp index 1d1b860c6..ed28c0d75 100644 --- a/src/extension/param/radiobutton.cpp +++ b/src/extension/param/radiobutton.cpp @@ -303,15 +303,10 @@ Gtk::Widget * ParamRadioButton::get_widget(SPDocument * doc, Inkscape::XML::Node return NULL; } -#if WITH_GTKMM_3_0 - Gtk::Box * hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4)); + auto hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 4)); hbox->set_homogeneous(false); - Gtk::Box * vbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL, 0)); + auto vbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL, 0)); vbox->set_homogeneous(false); -#else - Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); - Gtk::VBox * vbox = Gtk::manage(new Gtk::VBox(false, 0)); -#endif Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START, Gtk::ALIGN_START)); label->show(); diff --git a/src/extension/prefdialog.cpp b/src/extension/prefdialog.cpp index 2521dc1de..1ca590e85 100644 --- a/src/extension/prefdialog.cpp +++ b/src/extension/prefdialog.cpp @@ -41,11 +41,7 @@ namespace Extension { them. It also places the passed-in widgets into the dialog. */ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * controls, Effect * effect) : -#if WITH_GTKMM_3_0 Gtk::Dialog(_(name.c_str()), true), -#else - Gtk::Dialog(_(name.c_str()), true, true), -#endif _help(help), _name(name), _button_ok(NULL), @@ -68,11 +64,7 @@ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * co hbox->pack_start(*controls, true, true, 6); hbox->show(); -#if WITH_GTKMM_3_0 this->get_content_area()->pack_start(*hbox, true, true, 6); -#else - this->get_vbox()->pack_start(*hbox, true, true, 6); -#endif /* Gtk::Button * help_button = add_button(Gtk::Stock::HELP, Gtk::RESPONSE_HELP); @@ -97,19 +89,10 @@ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * co _param_preview = Parameter::make(doc->root(), _effect); } -#if WITH_GTKMM_3_0 - Gtk::Separator * sep = Gtk::manage(new Gtk::Separator()); -#else - Gtk::HSeparator * sep = Gtk::manage(new Gtk::HSeparator()); -#endif - + auto sep = Gtk::manage(new Gtk::Separator()); sep->show(); -#if WITH_GTKMM_3_0 this->get_content_area()->pack_start(*sep, true, true, 4); -#else - this->get_vbox()->pack_start(*sep, true, true, 4); -#endif hbox = Gtk::manage(new Gtk::HBox()); _button_preview = _param_preview->get_widget(NULL, NULL, &_signal_preview); @@ -117,19 +100,11 @@ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * co hbox->pack_start(*_button_preview, true, true,6); hbox->show(); -#if WITH_GTKMM_3_0 this->get_content_area()->pack_start(*hbox, true, true, 6); -#else - this->get_vbox()->pack_start(*hbox, true, true, 6); -#endif Gtk::Box * hbox = dynamic_cast(_button_preview); if (hbox != NULL) { -#if WITH_GTKMM_3_0 _checkbox_preview = dynamic_cast(hbox->get_children().front()); -#else - _checkbox_preview = dynamic_cast(hbox->children().back().get_widget()); -#endif } preview_toggle(); -- cgit v1.2.3 From 58111034d09da960cf9982b703c6ab2647422e0b Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 28 Jul 2016 13:19:42 +0100 Subject: ui/widgets: Drop GTK2 fallbacks (bzr r15023.2.6) --- src/ui/widget/addtoicon.cpp | 33 ----- src/ui/widget/addtoicon.h | 14 -- src/ui/widget/anchor-selector.cpp | 10 -- src/ui/widget/anchor-selector.h | 12 +- src/ui/widget/clipmaskicon.cpp | 33 ----- src/ui/widget/clipmaskicon.h | 13 -- src/ui/widget/color-icc-selector.cpp | 23 --- src/ui/widget/color-icc-selector.h | 8 - src/ui/widget/color-notebook.cpp | 30 ---- src/ui/widget/color-notebook.h | 8 - src/ui/widget/color-picker.cpp | 5 - src/ui/widget/color-preview.cpp | 26 ---- src/ui/widget/color-preview.h | 6 - src/ui/widget/color-scales.cpp | 27 ---- src/ui/widget/color-scales.h | 8 - src/ui/widget/color-slider.cpp | 122 +--------------- src/ui/widget/color-slider.h | 18 --- src/ui/widget/color-wheel-selector.cpp | 46 +----- src/ui/widget/color-wheel-selector.h | 12 -- src/ui/widget/dock-item.cpp | 8 - src/ui/widget/dock.cpp | 12 -- src/ui/widget/gimpspinscale.c | 260 +-------------------------------- src/ui/widget/highlight-picker.cpp | 33 ----- src/ui/widget/highlight-picker.h | 14 -- src/ui/widget/imagetoggler.cpp | 33 ----- src/ui/widget/imagetoggler.h | 14 -- src/ui/widget/insertordericon.cpp | 32 ---- src/ui/widget/insertordericon.h | 13 -- src/ui/widget/layertypeicon.cpp | 33 ----- src/ui/widget/layertypeicon.h | 14 -- src/ui/widget/licensor.cpp | 8 - src/ui/widget/notebook-page.cpp | 12 -- src/ui/widget/notebook-page.h | 13 -- src/ui/widget/page-sizer.cpp | 43 ------ src/ui/widget/page-sizer.h | 26 +--- src/ui/widget/panel.cpp | 6 - src/ui/widget/panel.h | 18 +-- src/ui/widget/point.cpp | 4 - src/ui/widget/point.h | 4 - src/ui/widget/preferences-widget.cpp | 80 +--------- src/ui/widget/preferences-widget.h | 25 ---- src/ui/widget/random.cpp | 4 - src/ui/widget/random.h | 4 - src/ui/widget/scalar.cpp | 10 +- src/ui/widget/scalar.h | 4 - src/ui/widget/selected-style.cpp | 37 ----- src/ui/widget/selected-style.h | 15 +- src/ui/widget/spin-scale.cpp | 28 +--- src/ui/widget/spin-scale.h | 25 +--- src/ui/widget/spin-slider.cpp | 61 +------- src/ui/widget/spin-slider.h | 18 +-- src/ui/widget/style-swatch.cpp | 23 +-- src/ui/widget/style-swatch.h | 8 - src/ui/widget/tolerance-slider.cpp | 10 +- src/ui/widget/tolerance-slider.h | 10 -- src/widgets/desktop-widget.cpp | 1 - 56 files changed, 41 insertions(+), 1376 deletions(-) diff --git a/src/ui/widget/addtoicon.cpp b/src/ui/widget/addtoicon.cpp index 10294125d..ab50fcd8f 100644 --- a/src/ui/widget/addtoicon.cpp +++ b/src/ui/widget/addtoicon.cpp @@ -51,8 +51,6 @@ AddToIcon::AddToIcon() : set_pixbuf(); } - -#if WITH_GTKMM_3_0 void AddToIcon::get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const @@ -82,47 +80,16 @@ void AddToIcon::get_preferred_width_vfunc(Gtk::Widget& widget, nat_w += (nat_w) >> 1; } } -#else -void AddToIcon::get_size_vfunc(Gtk::Widget& widget, - const Gdk::Rectangle* cell_area, - int* x_offset, - int* y_offset, - int* width, - int* height ) const -{ - Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); - - if ( width ) { - *width = phys;//+= (*width) >> 1; - } - if ( height ) { - *height =phys;//+= (*height) >> 1; - } -} -#endif -#if WITH_GTKMM_3_0 void AddToIcon::render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags ) -#else -void AddToIcon::render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ) -#endif { set_pixbuf(); -#if WITH_GTKMM_3_0 Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -#else - Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -#endif } bool AddToIcon::activate_vfunc(GdkEvent* /*event*/, diff --git a/src/ui/widget/addtoicon.h b/src/ui/widget/addtoicon.h index a8d900d1f..3b2228754 100644 --- a/src/ui/widget/addtoicon.h +++ b/src/ui/widget/addtoicon.h @@ -31,8 +31,6 @@ public: Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); protected: - -#if WITH_GTKMM_3_0 virtual void render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, @@ -46,18 +44,6 @@ protected: virtual void get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const; -#else - virtual void render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ); - - virtual void get_size_vfunc( Gtk::Widget &widget, - Gdk::Rectangle const *cell_area, - int *x_offset, int *y_offset, int *width, int *height ) const; -#endif virtual bool activate_vfunc(GdkEvent *event, Gtk::Widget &widget, diff --git a/src/ui/widget/anchor-selector.cpp b/src/ui/widget/anchor-selector.cpp index df00b786a..0d6030ac6 100644 --- a/src/ui/widget/anchor-selector.cpp +++ b/src/ui/widget/anchor-selector.cpp @@ -28,11 +28,7 @@ void AnchorSelector::setupButton(const Glib::ustring& icon, Gtk::ToggleButton& b AnchorSelector::AnchorSelector() : Gtk::Alignment(0.5, 0, 0, 0), -#if WITH_GTKMM_3_0 _container() -#else - _container(3, 3, true) -#endif { setupButton(INKSCAPE_ICON("boundingbox_top_left"), _buttons[0]); setupButton(INKSCAPE_ICON("boundingbox_top"), _buttons[1]); @@ -44,20 +40,14 @@ AnchorSelector::AnchorSelector() setupButton(INKSCAPE_ICON("boundingbox_bottom"), _buttons[7]); setupButton(INKSCAPE_ICON("boundingbox_bottom_right"), _buttons[8]); -#if WITH_GTKMM_3_0 _container.set_row_homogeneous(); _container.set_column_homogeneous(true); -#endif for(int i = 0; i < 9; ++i) { _buttons[i].signal_clicked().connect( sigc::bind(sigc::mem_fun(*this, &AnchorSelector::btn_activated), i)); -#if WITH_GTKMM_3_0 _container.attach(_buttons[i], i % 3, i / 3, 1, 1); -#else - _container.attach(_buttons[i], i % 3, i % 3+1, i / 3, i / 3+1, Gtk::FILL, Gtk::FILL); -#endif } _selection = 4; _buttons[4].set_active(); diff --git a/src/ui/widget/anchor-selector.h b/src/ui/widget/anchor-selector.h index 0a702d296..96331fae3 100644 --- a/src/ui/widget/anchor-selector.h +++ b/src/ui/widget/anchor-selector.h @@ -16,12 +16,7 @@ #include #include - -#if WITH_GTKMM_3_0 - #include -#else - #include -#endif +#include namespace Inkscape { namespace UI { @@ -32,12 +27,7 @@ class AnchorSelector : public Gtk::Alignment private: Gtk::ToggleButton _buttons[9]; int _selection; - -#if WITH_GTKMM_3_0 Gtk::Grid _container; -#else - Gtk::Table _container; -#endif sigc::signal _selectionChanged; diff --git a/src/ui/widget/clipmaskicon.cpp b/src/ui/widget/clipmaskicon.cpp index 421f1df1e..b914eeb2d 100644 --- a/src/ui/widget/clipmaskicon.cpp +++ b/src/ui/widget/clipmaskicon.cpp @@ -63,8 +63,6 @@ ClipMaskIcon::ClipMaskIcon() : property_pixbuf() = Glib::RefPtr(0); } - -#if WITH_GTKMM_3_0 void ClipMaskIcon::get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const @@ -94,39 +92,12 @@ void ClipMaskIcon::get_preferred_width_vfunc(Gtk::Widget& widget, nat_w += (nat_w) >> 1; } } -#else -void ClipMaskIcon::get_size_vfunc(Gtk::Widget& widget, - const Gdk::Rectangle* cell_area, - int* x_offset, - int* y_offset, - int* width, - int* height ) const -{ - Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); - - if ( width ) { - *width = phys;//+= (*width) >> 1; - } - if ( height ) { - *height =phys;//+= (*height) >> 1; - } -} -#endif -#if WITH_GTKMM_3_0 void ClipMaskIcon::render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags ) -#else -void ClipMaskIcon::render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ) -#endif { switch (_property_active.get_value()) { @@ -143,11 +114,7 @@ void ClipMaskIcon::render_vfunc( const Glib::RefPtr& window, property_pixbuf() = Glib::RefPtr(0); break; } -#if WITH_GTKMM_3_0 Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -#else - Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -#endif } bool ClipMaskIcon::activate_vfunc(GdkEvent* /*event*/, diff --git a/src/ui/widget/clipmaskicon.h b/src/ui/widget/clipmaskicon.h index eca852a83..0d149edb8 100644 --- a/src/ui/widget/clipmaskicon.h +++ b/src/ui/widget/clipmaskicon.h @@ -32,7 +32,6 @@ public: protected: -#if WITH_GTKMM_3_0 virtual void render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, @@ -46,18 +45,6 @@ protected: virtual void get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const; -#else - virtual void render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ); - - virtual void get_size_vfunc( Gtk::Widget &widget, - Gdk::Rectangle const *cell_area, - int *x_offset, int *y_offset, int *width, int *height ) const; -#endif virtual bool activate_vfunc(GdkEvent *event, Gtk::Widget &widget, diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index e4f58fe8a..04a5ab368 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -87,7 +87,6 @@ GtkAttachOptions operator|(GtkAttachOptions lhs, GtkAttachOptions rhs) void attachToGridOrTable(GtkWidget *parent, GtkWidget *child, guint left, guint top, guint width, guint height, bool hexpand = false, bool centered = false, guint xpadding = XPAD, guint ypadding = YPAD) { -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(child, xpadding); gtk_widget_set_margin_end(child, xpadding); @@ -106,14 +105,6 @@ void attachToGridOrTable(GtkWidget *parent, GtkWidget *child, guint left, guint gtk_widget_set_valign(child, GTK_ALIGN_CENTER); } gtk_grid_attach(GTK_GRID(parent), child, left, top, width, height); -#else - GtkAttachOptions xoptions = - centered ? static_cast(0) : hexpand ? (GTK_EXPAND | GTK_FILL) : GTK_FILL; - GtkAttachOptions yoptions = centered ? static_cast(0) : GTK_FILL; - - gtk_table_attach(GTK_TABLE(parent), child, left, left + width, top, top + height, xoptions, yoptions, xpadding, - ypadding); -#endif } } // namespace @@ -431,12 +422,7 @@ void ColorICCSelector::init() _impl->_compUI[i]._label = gtk_label_new_with_mnemonic(labelStr.c_str()); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(_impl->_compUI[i]._label, GTK_ALIGN_END); -#else - gtk_misc_set_alignment(GTK_MISC(_impl->_compUI[i]._label), 1.0, 0.5); -#endif - gtk_widget_show(_impl->_compUI[i]._label); gtk_widget_set_no_show_all(_impl->_compUI[i]._label, TRUE); @@ -495,12 +481,7 @@ void ColorICCSelector::init() // Label _impl->_label = gtk_label_new_with_mnemonic(_("_A:")); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(_impl->_label, GTK_ALIGN_END); -#else - gtk_misc_set_alignment(GTK_MISC(_impl->_label), 1.0, 0.5); -#endif - gtk_widget_show(_impl->_label); attachToGridOrTable(t, _impl->_label, 0, row, 1, 1); @@ -727,11 +708,7 @@ void ColorICCSelectorImpl::_profilesChanged(std::string const & /*name*/) {} void ColorICCSelector::on_show() { -#if GTK_CHECK_VERSION(3, 0, 0) Gtk::Grid::on_show(); -#else - Gtk::Table::on_show(); -#endif _colorChanged(); } diff --git a/src/ui/widget/color-icc-selector.h b/src/ui/widget/color-icc-selector.h index 1bcb0a540..aaa8372b8 100644 --- a/src/ui/widget/color-icc-selector.h +++ b/src/ui/widget/color-icc-selector.h @@ -6,11 +6,7 @@ #endif #include -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include "ui/selected-color.h" @@ -24,11 +20,7 @@ namespace Widget { class ColorICCSelectorImpl; class ColorICCSelector -#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid -#else - : public Gtk::Table -#endif { public: static const gchar *MODE_NAME; diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 6d7ada734..d2c4efc74 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -56,13 +56,8 @@ namespace Widget { ColorNotebook::ColorNotebook(SelectedColor &color) -#if GTK_CHECK_VERSION(3, 0, 0) : Gtk::Grid() -#else - : Gtk::Table(2, 3, false) -#endif , _selected_color(color) - { Page *page; @@ -110,12 +105,8 @@ void ColorNotebook::_initUI() notebook->set_show_tabs(false); _book = GTK_WIDGET(notebook->gobj()); -#if GTK_CHECK_VERSION(3, 0, 0) _buttonbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); gtk_box_set_homogeneous(GTK_BOX(_buttonbox), TRUE); -#else - _buttonbox = gtk_hbox_new(TRUE, 2); -#endif gtk_widget_show(_buttonbox); _buttons = new GtkWidget *[_available_pages.size()]; @@ -126,7 +117,6 @@ void ColorNotebook::_initUI() sp_set_font_size_smaller(_buttonbox); -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(_buttonbox, XPAD); gtk_widget_set_margin_end(_buttonbox, XPAD); @@ -139,14 +129,9 @@ void ColorNotebook::_initUI() gtk_widget_set_hexpand(_buttonbox, TRUE); gtk_widget_set_valign(_buttonbox, GTK_ALIGN_CENTER); attach(*Glib::wrap(_buttonbox), 0, row, 2, 1); -#else - attach(*Glib::wrap(_buttonbox), 0, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, static_cast(0), - XPAD, YPAD); -#endif row++; -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(_book, XPAD * 2); gtk_widget_set_margin_end(_book, XPAD * 2); @@ -159,20 +144,13 @@ void ColorNotebook::_initUI() gtk_widget_set_hexpand(_book, TRUE); gtk_widget_set_vexpand(_book, TRUE); attach(*notebook, 0, row, 2, 1); -#else - attach(*notebook, 0, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, XPAD * 2, YPAD); -#endif // restore the last active page Inkscape::Preferences *prefs = Inkscape::Preferences::get(); _setCurrentPage(prefs->getInt("/colorselector/page", 0)); row++; -#if GTK_CHECK_VERSION(3, 0, 0) GtkWidget *rgbabox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); -#else - GtkWidget *rgbabox = gtk_hbox_new(FALSE, 0); -#endif #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) /* Create color management icons */ @@ -210,11 +188,7 @@ void ColorNotebook::_initUI() /* Create RGBA entry and color preview */ _rgbal = gtk_label_new_with_mnemonic(_("RGBA_:")); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(_rgbal, GTK_ALIGN_END); -#else - gtk_misc_set_alignment(GTK_MISC(_rgbal), 1.0, 0.5); -#endif gtk_box_pack_start(GTK_BOX(rgbabox), _rgbal, TRUE, TRUE, 2); ColorEntry *rgba_entry = Gtk::manage(new ColorEntry(_selected_color)); @@ -230,7 +204,6 @@ void ColorNotebook::_initUI() gtk_widget_hide(GTK_WIDGET(_box_toomuchink)); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(rgbabox, XPAD); gtk_widget_set_margin_end(rgbabox, XPAD); @@ -241,9 +214,6 @@ void ColorNotebook::_initUI() gtk_widget_set_margin_top(rgbabox, YPAD); gtk_widget_set_margin_bottom(rgbabox, YPAD); attach(*Glib::wrap(rgbabox), 0, row, 2, 1); -#else - attach(*Glib::wrap(rgbabox), 0, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK, XPAD, YPAD); -#endif #ifdef SPCS_PREVIEW _p = sp_color_preview_new(0xffffffff); diff --git a/src/ui/widget/color-notebook.h b/src/ui/widget/color-notebook.h index d28028c72..35e46ef14 100644 --- a/src/ui/widget/color-notebook.h +++ b/src/ui/widget/color-notebook.h @@ -19,11 +19,7 @@ #endif #include -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include #include @@ -35,11 +31,7 @@ namespace UI { namespace Widget { class ColorNotebook -#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid -#else - : public Gtk::Table -#endif { public: ColorNotebook(SelectedColor &color); diff --git a/src/ui/widget/color-picker.cpp b/src/ui/widget/color-picker.cpp index a66fbfc9c..5a62c3c98 100644 --- a/src/ui/widget/color-picker.cpp +++ b/src/ui/widget/color-picker.cpp @@ -59,13 +59,8 @@ void ColorPicker::setupDialog(const Glib::ustring &title) _color_selector = Gtk::manage(new ColorNotebook(_selected_color)); -#if WITH_GTKMM_3_0 _colorSelectorDialog.get_content_area()->pack_start ( *_color_selector, true, true, 0); -#else - _colorSelectorDialog.get_vbox()->pack_start ( - *_color_selector, true, true, 0); -#endif _color_selector->show(); } diff --git a/src/ui/widget/color-preview.cpp b/src/ui/widget/color-preview.cpp index 62c7cca1d..c9b6e56d2 100644 --- a/src/ui/widget/color-preview.cpp +++ b/src/ui/widget/color-preview.cpp @@ -34,7 +34,6 @@ ColorPreview::on_size_allocate (Gtk::Allocation &all) queue_draw(); } -#if WITH_GTKMM_3_0 void ColorPreview::get_preferred_height_vfunc(int& minimum_height, int& natural_height) const { @@ -58,31 +57,6 @@ ColorPreview::get_preferred_width_for_height_vfunc(int /* height */, int& minimu { minimum_width = natural_width = SPCP_DEFAULT_WIDTH; } -#else -void -ColorPreview::on_size_request (Gtk::Requisition *req) -{ - req->width = SPCP_DEFAULT_WIDTH; - req->height = SPCP_DEFAULT_HEIGHT; -} - -bool -ColorPreview::on_expose_event (GdkEventExpose *event) -{ - bool result = true; - - if (get_is_drawable()) - { - Cairo::RefPtr cr = get_window()->create_cairo_context(); - cr->rectangle(event->area.x, event->area.y, - event->area.width, event->area.height); - cr->clip(); - result = on_draw(cr); - } - - return result; -} -#endif void ColorPreview::setRgba32 (guint32 rgba) diff --git a/src/ui/widget/color-preview.h b/src/ui/widget/color-preview.h index caddfb9a2..1276cf42b 100644 --- a/src/ui/widget/color-preview.h +++ b/src/ui/widget/color-preview.h @@ -33,16 +33,10 @@ public: protected: virtual void on_size_allocate (Gtk::Allocation &all); -#if WITH_GTKMM_3_0 virtual void get_preferred_height_vfunc(int& minimum_height, int& natural_height) const; virtual void get_preferred_height_for_width_vfunc(int width, int& minimum_height, int& natural_height) const; virtual void get_preferred_width_vfunc(int& minimum_width, int& natural_width) const; virtual void get_preferred_width_for_height_vfunc(int height, int& minimum_width, int& natural_width) const; -#else - virtual void on_size_request (Gtk::Requisition *req); - virtual bool on_expose_event(GdkEventExpose *event); -#endif - virtual bool on_draw(const Cairo::RefPtr& cr); guint32 _rgba; diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index 48a2693bc..6afa7f939 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -46,11 +46,7 @@ static const gchar *sp_color_scales_hue_map(); const gchar *ColorScales::SUBMODE_NAMES[] = { N_("None"), N_("RGB"), N_("HSL"), N_("CMYK") }; ColorScales::ColorScales(SelectedColor &color, SPColorScalesMode mode) -#if GTK_CHECK_VERSION(3, 0, 0) : Gtk::Grid() -#else - : Gtk::Table(5, 3, false) -#endif , _color(color) , _rangeLimit(255.0) , _updating(FALSE) @@ -93,15 +89,9 @@ void ColorScales::_initUI(SPColorScalesMode mode) /* Label */ _l[i] = gtk_label_new(""); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(_l[i], GTK_ALIGN_END); -#else - gtk_misc_set_alignment(GTK_MISC(_l[i]), 1.0, 0.5); -#endif - gtk_widget_show(_l[i]); -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(_l[i], XPAD); gtk_widget_set_margin_end(_l[i], XPAD); @@ -112,9 +102,6 @@ void ColorScales::_initUI(SPColorScalesMode mode) gtk_widget_set_margin_top(_l[i], YPAD); gtk_widget_set_margin_bottom(_l[i], YPAD); gtk_grid_attach(GTK_GRID(t), _l[i], 0, i, 1, 1); -#else - gtk_table_attach(GTK_TABLE(t), _l[i], 0, 1, i, i + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); -#endif /* Adjustment */ _a[i] = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0)); @@ -122,7 +109,6 @@ void ColorScales::_initUI(SPColorScalesMode mode) _s[i] = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_a[i], true))); _s[i]->show(); -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) _s[i]->set_margin_start(XPAD); _s[i]->set_margin_end(XPAD); @@ -134,10 +120,6 @@ void ColorScales::_initUI(SPColorScalesMode mode) _s[i]->set_margin_bottom(YPAD); _s[i]->set_hexpand(true); gtk_grid_attach(GTK_GRID(t), _s[i]->gobj(), 1, i, 1, 1); -#else - gtk_table_attach(GTK_TABLE(t), _s[i]->gobj(), 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), - GTK_FILL, XPAD, YPAD); -#endif /* Spinbutton */ _b[i] = gtk_spin_button_new(GTK_ADJUSTMENT(_a[i]), 1.0, 0); @@ -145,7 +127,6 @@ void ColorScales::_initUI(SPColorScalesMode mode) gtk_label_set_mnemonic_widget(GTK_LABEL(_l[i]), _b[i]); gtk_widget_show(_b[i]); -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(_b[i], XPAD); gtk_widget_set_margin_end(_b[i], XPAD); @@ -158,9 +139,6 @@ void ColorScales::_initUI(SPColorScalesMode mode) gtk_widget_set_halign(_b[i], GTK_ALIGN_CENTER); gtk_widget_set_valign(_b[i], GTK_ALIGN_CENTER); gtk_grid_attach(GTK_GRID(t), _b[i], 2, i, 1, 1); -#else - gtk_table_attach(GTK_TABLE(t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); -#endif /* Attach channel value to adjustment */ g_object_set_data(G_OBJECT(_a[i]), "channel", GINT_TO_POINTER(i)); @@ -272,7 +250,6 @@ void ColorScales::_setRangeLimit(gdouble upper) _rangeLimit = upper; for (gint i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++) { gtk_adjustment_set_upper(_a[i], upper); - gtk_adjustment_changed(_a[i]); } } @@ -286,11 +263,7 @@ void ColorScales::_onColorChanged() void ColorScales::on_show() { -#if GTK_CHECK_VERSION(3, 0, 0) Gtk::Grid::on_show(); -#else - Gtk::Table::on_show(); -#endif _updateDisplay(); } diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h index aeacfbcc1..1e86d762d 100644 --- a/src/ui/widget/color-scales.h +++ b/src/ui/widget/color-scales.h @@ -5,11 +5,7 @@ #include #endif -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include "ui/selected-color.h" @@ -27,11 +23,7 @@ typedef enum { } SPColorScalesMode; class ColorScales -#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid -#else - : public Gtk::Table -#endif { public: static const gchar *SUBMODE_NAMES[]; diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index 0c9586a67..2a8b6a7a2 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -19,12 +19,7 @@ #include #include #include -#if WITH_GTKMM_3_0 #include -#else -#include -#endif -#include #include "ui/widget/color-scales.h" #include "ui/widget/color-slider.h" @@ -43,14 +38,8 @@ namespace Inkscape { namespace UI { namespace Widget { -#if GTK_CHECK_VERSION(3, 0, 0) ColorSlider::ColorSlider(Glib::RefPtr adjustment) : _dragging(false) -#else -ColorSlider::ColorSlider(Gtk::Adjustment *adjustment) - : _dragging(false) - , _adjustment(NULL) -#endif , _value(0.0) , _oldvalue(0.0) , _mapsize(0) @@ -83,12 +72,7 @@ ColorSlider::~ColorSlider() if (_adjustment) { _adjustment_changed_connection.disconnect(); _adjustment_value_changed_connection.disconnect(); -#if GTK_CHECK_VERSION(3, 0, 0) _adjustment.reset(); -#else - _adjustment->unreference(); - _adjustment = NULL; -#endif } } @@ -109,26 +93,15 @@ void ColorSlider::on_realize() attributes.window_type = GDK_WINDOW_CHILD; attributes.wclass = GDK_INPUT_OUTPUT; attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); -#if !GTK_CHECK_VERSION(3, 0, 0) - attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); -#endif attributes.event_mask = get_events(); attributes.event_mask |= (Gdk::EXPOSURE_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK | Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK); -#if GTK_CHECK_VERSION(3, 0, 0) attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; -#else - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; -#endif _gdk_window = Gdk::Window::create(get_parent_window(), &attributes, attributes_mask); set_window(_gdk_window); _gdk_window->set_user_data(gobj()); - -#if !GTK_CHECK_VERSION(3, 0, 0) - style_attach(); -#endif } } @@ -149,8 +122,6 @@ void ColorSlider::on_size_allocate(Gtk::Allocation &allocation) } } -#if GTK_CHECK_VERSION(3, 0, 0) - void ColorSlider::get_preferred_width_vfunc(int &minimum_width, int &natural_width) const { Glib::RefPtr style_context = get_style_context(); @@ -177,38 +148,12 @@ void ColorSlider::get_preferred_height_for_width_vfunc(int /*width*/, int &minim get_preferred_height(minimum_height, natural_height); } -#else - -void ColorSlider::on_size_request(Gtk::Requisition *requisition) -{ - GtkStyle *style = gtk_widget_get_style(gobj()); - requisition->width = SLIDER_WIDTH + style->xthickness * 2; - requisition->height = SLIDER_HEIGHT + style->ythickness * 2; -} - -bool ColorSlider::on_expose_event(GdkEventExpose *event) -{ - bool result = false; - - if (get_is_drawable()) { - Cairo::RefPtr cr = _gdk_window->create_cairo_context(); - result = on_draw(cr); - } - return result; -} - -#endif - bool ColorSlider::on_button_press_event(GdkEventButton *event) { if (event->button == 1) { Gtk::Allocation allocation = get_allocation(); gint cx, cw; -#if GTK_CHECK_VERSION(3, 0, 0) cx = get_style_context()->get_padding(get_state_flags()).get_left(); -#else - cx = get_style()->get_xthickness(); -#endif cw = allocation.get_width() - 2 * cx; signal_grabbed.emit(); _dragging = true; @@ -216,15 +161,9 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event) ColorScales::setScaled(_adjustment->gobj(), CLAMP((gfloat)(event->x - cx) / cw, 0.0, 1.0)); signal_dragged.emit(); -#if GTK_CHECK_VERSION(3, 0, 0) gdk_device_grab( gdk_event_get_device(reinterpret_cast(event)), _gdk_window->gobj(), GDK_OWNERSHIP_NONE, FALSE, static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), NULL, event->time); -#else - gdk_pointer_grab(get_window()->gobj(), FALSE, - static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), NULL, NULL, - event->time); -#endif } return false; @@ -233,13 +172,8 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event) bool ColorSlider::on_button_release_event(GdkEventButton *event) { if (event->button == 1) { - -#if GTK_CHECK_VERSION(3, 0, 0) gdk_device_ungrab(gdk_event_get_device(reinterpret_cast(event)), gdk_event_get_time(reinterpret_cast(event))); -#else - get_window()->pointer_ungrab(event->time); -#endif _dragging = false; signal_released.emit(); @@ -256,11 +190,7 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) if (_dragging) { gint cx, cw; Gtk::Allocation allocation = get_allocation(); -#if GTK_CHECK_VERSION(3, 0, 0) cx = get_style_context()->get_padding(get_state_flags()).get_left(); -#else - cx = get_style()->get_xthickness(); -#endif cw = allocation.get_width() - 2 * cx; ColorScales::setScaled(_adjustment->gobj(), CLAMP((gfloat)(event->x - cx) / cw, 0.0, 1.0)); signal_dragged.emit(); @@ -269,19 +199,10 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) return false; } -#if GTK_CHECK_VERSION(3, 0, 0) void ColorSlider::setAdjustment(Glib::RefPtr adjustment) { -#else -void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment) -{ -#endif if (!adjustment) { -#if GTK_CHECK_VERSION(3, 0, 0) _adjustment = Gtk::Adjustment::create(0.0, 0.0, 1.0, 0.01, 0.0, 0.0); -#else - _adjustment = Gtk::manage(new Gtk::Adjustment(0.0, 0.0, 1.0, 0.01, 0.0, 0.0)); -#endif } else { adjustment->set_page_increment(0.0); @@ -292,9 +213,6 @@ void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment) if (_adjustment) { _adjustment_changed_connection.disconnect(); _adjustment_value_changed_connection.disconnect(); -#if !GTK_CHECK_VERSION(3, 0, 0) - _adjustment->unreference(); -#endif } _adjustment = adjustment; @@ -315,18 +233,11 @@ void ColorSlider::_onAdjustmentValueChanged() { if (_value != ColorScales::getScaled(_adjustment->gobj())) { gint cx, cy, cw, ch; -#if GTK_CHECK_VERSION(3, 0, 0) - Glib::RefPtr style_context = get_style_context(); - Gtk::Allocation allocation = get_allocation(); - Gtk::Border padding = style_context->get_padding(get_state_flags()); + auto style_context = get_style_context(); + auto allocation = get_allocation(); + auto padding = style_context->get_padding(get_state_flags()); cx = padding.get_left(); cy = padding.get_top(); -#else - Glib::RefPtr style = get_style(); - Gtk::Allocation allocation = get_allocation(); - cx = style->get_xthickness(); - cy = style->get_ythickness(); -#endif cw = allocation.get_width() - 2 * cx; ch = allocation.get_height() - 2 * cy; if ((gint)(ColorScales::getScaled(_adjustment->gobj()) * cw) != (gint)(_value * cw)) { @@ -390,40 +301,22 @@ bool ColorSlider::on_draw(const Cairo::RefPtr &cr) { gboolean colorsOnTop = Inkscape::Preferences::get()->getBool("/options/workarounds/colorsontop", false); - Gtk::Allocation allocation = get_allocation(); - -#if GTK_CHECK_VERSION(3, 0, 0) - Glib::RefPtr style_context = get_style_context(); -#else - Glib::RefPtr window = get_window(); - Glib::RefPtr style = get_style(); -#endif + auto allocation = get_allocation(); + auto style_context = get_style_context(); // Draw shadow if (colorsOnTop) { -#if GTK_CHECK_VERSION(3, 0, 0) style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); -#else - gtk_paint_shadow(style->gobj(), window->gobj(), gtk_widget_get_state(gobj()), GTK_SHADOW_IN, NULL, gobj(), - "colorslider", 0, 0, allocation.get_width(), allocation.get_height()); -#endif } /* Paintable part of color gradient area */ Gdk::Rectangle carea; - -#if GTK_CHECK_VERSION(3, 0, 0) Gtk::Border padding; padding = style_context->get_padding(get_state_flags()); carea.set_x(padding.get_left()); carea.set_y(padding.get_top()); - ; -#else - carea.set_x(style->get_xthickness()); - carea.set_y(style->get_ythickness()); -#endif carea.set_width(allocation.get_width() - 2 * carea.get_x()); carea.set_height(allocation.get_height() - 2 * carea.get_y()); @@ -491,12 +384,7 @@ bool ColorSlider::on_draw(const Cairo::RefPtr &cr) /* Draw shadow */ if (!colorsOnTop) { -#if GTK_CHECK_VERSION(3, 0, 0) style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); -#else - gtk_paint_shadow(style->gobj(), window->gobj(), gtk_widget_get_state(gobj()), GTK_SHADOW_IN, NULL, gobj(), - "colorslider", 0, 0, allocation.get_width(), allocation.get_height()); -#endif } /* Draw arrow */ diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index 253f3123c..9be6c356a 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -24,18 +24,10 @@ namespace Widget { */ class ColorSlider : public Gtk::Widget { public: -#if GTK_CHECK_VERSION(3, 0, 0) ColorSlider(Glib::RefPtr adjustment); -#else - ColorSlider(Gtk::Adjustment *adjustment); -#endif ~ColorSlider(); -#if GTK_CHECK_VERSION(3, 0, 0) void setAdjustment(Glib::RefPtr adjustment); -#else - void setAdjustment(Gtk::Adjustment *adjustment); -#endif void setColors(guint32 start, guint32 mid, guint32 end); @@ -56,16 +48,10 @@ protected: bool on_button_release_event(GdkEventButton *event); bool on_motion_notify_event(GdkEventMotion *event); bool on_draw(const Cairo::RefPtr &cr); - -#if GTK_CHECK_VERSION(3, 0, 0) void get_preferred_width_vfunc(int &minimum_width, int &natural_width) const; void get_preferred_width_for_height_vfunc(int height, int &minimum_width, int &natural_width) const; void get_preferred_height_vfunc(int &minimum_height, int &natural_height) const; void get_preferred_height_for_width_vfunc(int width, int &minimum_height, int &natural_height) const; -#else - void on_size_request(Gtk::Requisition *requisition); - bool on_expose_event(GdkEventExpose *event); -#endif private: void _onAdjustmentChanged(); @@ -73,11 +59,7 @@ private: bool _dragging; -#if GTK_CHECK_VERSION(3, 0, 0) Glib::RefPtr _adjustment; -#else - Gtk::Adjustment *_adjustment; -#endif sigc::connection _adjustment_changed_connection; sigc::connection _adjustment_value_changed_connection; diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index 22c616325..9b4119572 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -29,16 +29,9 @@ namespace Widget { const gchar *ColorWheelSelector::MODE_NAME = N_("Wheel"); ColorWheelSelector::ColorWheelSelector(SelectedColor &color) -#if GTK_CHECK_VERSION(3, 0, 0) : Gtk::Grid() -#else - : Gtk::Table(5, 3, false) -#endif , _color(color) , _updating(false) -#if !GTK_CHECK_VERSION(3, 0, 0) - , _alpha_adjustment(NULL) -#endif , _wheel(0) , _slider(0) { @@ -50,9 +43,6 @@ ColorWheelSelector::ColorWheelSelector(SelectedColor &color) ColorWheelSelector::~ColorWheelSelector() { _wheel = 0; -#if !GTK_CHECK_VERSION(3, 0, 0) - delete _alpha_adjustment; -#endif _color_changed_connection.disconnect(); _color_dragged_connection.disconnect(); @@ -66,16 +56,11 @@ void ColorWheelSelector::_initUI() _wheel = gimp_color_wheel_new(); gtk_widget_show(_wheel); -#if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_set_halign(_wheel, GTK_ALIGN_FILL); gtk_widget_set_valign(_wheel, GTK_ALIGN_FILL); gtk_widget_set_hexpand(_wheel, TRUE); gtk_widget_set_vexpand(_wheel, TRUE); gtk_grid_attach(GTK_GRID(gobj()), _wheel, 0, row, 3, 1); -#else - gtk_table_attach(GTK_TABLE(gobj()), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); -#endif row++; @@ -84,7 +69,6 @@ void ColorWheelSelector::_initUI() label->set_alignment(1.0, 0.5); label->show(); -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) label->set_margin_start(XPAD); label->set_margin_end(XPAD); @@ -97,22 +81,15 @@ void ColorWheelSelector::_initUI() label->set_halign(Gtk::ALIGN_FILL); label->set_valign(Gtk::ALIGN_FILL); attach(*label, 0, row, 1, 1); -#else - attach(*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::FILL, XPAD, YPAD); -#endif -/* Adjustment */ -#if GTK_CHECK_VERSION(3, 0, 0) + /* Adjustment */ _alpha_adjustment = Gtk::Adjustment::create(0.0, 0.0, 255.0, 1.0, 10.0, 10.0); -#else - _alpha_adjustment = new Gtk::Adjustment(0.0, 0.0, 255.0, 1.0, 10.0, 10.0); -#endif + /* Slider */ _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(_alpha_adjustment)); _slider->set_tooltip_text(_("Alpha (opacity)")); _slider->show(); -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) _slider->set_margin_start(XPAD); _slider->set_margin_end(XPAD); @@ -126,25 +103,17 @@ void ColorWheelSelector::_initUI() _slider->set_halign(Gtk::ALIGN_FILL); _slider->set_valign(Gtk::ALIGN_FILL); attach(*_slider, 1, row, 1, 1); -#else - attach(*_slider, 1, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, Gtk::FILL, XPAD, YPAD); -#endif _slider->setColors(SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.0), SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.5), SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 1.0)); -/* Spinbutton */ -#if GTK_CHECK_VERSION(3, 0, 0) - Gtk::SpinButton *spin_button = Gtk::manage(new Gtk::SpinButton(_alpha_adjustment, 1.0, 0)); -#else - Gtk::SpinButton *spin_button = Gtk::manage(new Gtk::SpinButton(*_alpha_adjustment, 1.0, 0)); -#endif + /* Spinbutton */ + auto spin_button = Gtk::manage(new Gtk::SpinButton(_alpha_adjustment, 1.0, 0)); spin_button->set_tooltip_text(_("Alpha (opacity)")); sp_dialog_defocus_on_enter(GTK_WIDGET(spin_button->gobj())); label->set_mnemonic_widget(*spin_button); spin_button->show(); -#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 12, 0) spin_button->set_margin_start(XPAD); spin_button->set_margin_end(XPAD); @@ -157,9 +126,6 @@ void ColorWheelSelector::_initUI() spin_button->set_halign(Gtk::ALIGN_CENTER); spin_button->set_valign(Gtk::ALIGN_CENTER); attach(*spin_button, 2, row, 1, 1); -#else - attach(*spin_button, 2, 3, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, XPAD, YPAD); -#endif /* Signals */ _alpha_adjustment->signal_value_changed().connect(sigc::mem_fun(this, &ColorWheelSelector::_adjustmentChanged)); @@ -172,11 +138,7 @@ void ColorWheelSelector::_initUI() void ColorWheelSelector::on_show() { -#if GTK_CHECK_VERSION(3, 0, 0) Gtk::Grid::on_show(); -#else - Gtk::Table::on_show(); -#endif _updateDisplay(); } diff --git a/src/ui/widget/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h index 5711d417c..ee7bd9b83 100644 --- a/src/ui/widget/color-wheel-selector.h +++ b/src/ui/widget/color-wheel-selector.h @@ -16,11 +16,7 @@ #include #endif -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include "ui/selected-color.h" @@ -33,11 +29,7 @@ namespace Widget { class ColorSlider; class ColorWheelSelector -#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid -#else - : public Gtk::Table -#endif { public: static const gchar *MODE_NAME; @@ -61,11 +53,7 @@ protected: SelectedColor &_color; bool _updating; -#if GTK_CHECK_VERSION(3, 0, 0) Glib::RefPtr _alpha_adjustment; -#else - Gtk::Adjustment *_alpha_adjustment; -#endif GtkWidget *_wheel; Inkscape::UI::Widget::ColorSlider *_slider; diff --git a/src/ui/widget/dock-item.cpp b/src/ui/widget/dock-item.cpp index 8d960ddc3..fc41efe52 100644 --- a/src/ui/widget/dock-item.cpp +++ b/src/ui/widget/dock-item.cpp @@ -59,11 +59,7 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l Gtk::StockItem item; Gtk::StockID stockId(icon_name); if ( Gtk::StockItem::lookup(stockId, item) ) { -#if WITH_GTKMM_3_0 _icon_pixbuf = _dock.getWidget().render_icon_pixbuf( stockId, Gtk::ICON_SIZE_MENU ); -#else - _icon_pixbuf = _dock.getWidget().render_icon( stockId, Gtk::ICON_SIZE_MENU ); -#endif } } } @@ -175,12 +171,8 @@ DockItem::set_size_request(int width, int height) void DockItem::size_request(Gtk::Requisition& requisition) { -#if WITH_GTKMM_3_0 Gtk::Requisition req_natural; getWidget().get_preferred_size(req_natural, requisition); -#else - requisition = getWidget().size_request(); -#endif } void diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp index fda647182..7744cb695 100644 --- a/src/ui/widget/dock.cpp +++ b/src/ui/widget/dock.cpp @@ -65,7 +65,6 @@ Dock::Dock(Gtk::Orientation orientation) static_cast(orientation)); #endif -#if WITH_GTKMM_3_0 switch(orientation) { case Gtk::ORIENTATION_VERTICAL: _dock_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL)); @@ -75,17 +74,6 @@ Dock::Dock(Gtk::Orientation orientation) } _paned = Gtk::manage(new Gtk::Paned(orientation)); -#else - switch (orientation) { - case Gtk::ORIENTATION_VERTICAL: - _dock_box = Gtk::manage(new Gtk::HBox()); - _paned = Gtk::manage(new Gtk::VPaned()); - break; - case Gtk::ORIENTATION_HORIZONTAL: - _dock_box = Gtk::manage(new Gtk::VBox()); - _paned = Gtk::manage(new Gtk::HPaned()); - } -#endif _scrolled_window->add(*_dock_box); _scrolled_window->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); diff --git a/src/ui/widget/gimpspinscale.c b/src/ui/widget/gimpspinscale.c index d99646a64..8d8c6c935 100644 --- a/src/ui/widget/gimpspinscale.c +++ b/src/ui/widget/gimpspinscale.c @@ -41,10 +41,8 @@ typedef enum { TARGET_NUMBER, TARGET_UPPER, - TARGET_LOWER -#if WITH_GTKMM_3_0 - ,TARGET_NONE -#endif + TARGET_LOWER, + TARGET_NONE } SpinScaleTarget; typedef enum @@ -94,7 +92,6 @@ static void gimp_spin_scale_get_property (GObject *object, static void gimp_spin_scale_style_set (GtkWidget *widget, GtkStyle *prev_style); -#if WITH_GTKMM_3_0 static void gimp_spin_scale_get_preferred_width (GtkWidget *widget, gint *minimum_width, gint *natural_width); @@ -103,13 +100,6 @@ static void gimp_spin_scale_get_preferred_height (GtkWidget *widget gint *natural_width); static gboolean gimp_spin_scale_draw (GtkWidget *widget, cairo_t *cr); -#else -static void gimp_spin_scale_size_request (GtkWidget *widget, - GtkRequisition *requisition); - -static gboolean gimp_spin_scale_expose (GtkWidget *widget, - GdkEventExpose *event); -#endif static gboolean gimp_spin_scale_button_press (GtkWidget *widget, GdkEventButton *event); @@ -145,14 +135,9 @@ gimp_spin_scale_class_init (GimpSpinScaleClass *klass) object_class->get_property = gimp_spin_scale_get_property; widget_class->style_set = gimp_spin_scale_style_set; -#if WITH_GTKMM_3_0 widget_class->get_preferred_width = gimp_spin_scale_get_preferred_width; widget_class->get_preferred_height = gimp_spin_scale_get_preferred_height; widget_class->draw = gimp_spin_scale_draw; -#else - widget_class->size_request = gimp_spin_scale_size_request; - widget_class->expose_event = gimp_spin_scale_expose; -#endif widget_class->button_press_event = gimp_spin_scale_button_press; widget_class->button_release_event = gimp_spin_scale_button_release; widget_class->motion_notify_event = gimp_spin_scale_motion_notify; @@ -294,7 +279,6 @@ gimp_spin_scale_set_appearance( GtkWidget *widget, const gchar *appearance) } } -#if GTK_CHECK_VERSION(3,0,0) static void gimp_spin_scale_get_preferred_width (GtkWidget *widget, gint *minimum_width, @@ -355,48 +339,6 @@ gimp_spin_scale_get_preferred_height (GtkWidget *widget, pango_font_metrics_unref (metrics); } -#else -static void -gimp_spin_scale_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - GtkStyle *style = gtk_widget_get_style (widget); - PangoContext *context = gtk_widget_get_pango_context (widget); - PangoFontMetrics *metrics; - gint height; - - GTK_WIDGET_CLASS (parent_class)->size_request (widget, requisition); - - metrics = pango_context_get_metrics (context, style->font_desc, - pango_context_get_language (context)); - - height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) + - pango_font_metrics_get_descent (metrics)); - - if (private->appearanceMode == APPEARANCE_COMPACT) { - requisition->height += 1; - } else { - requisition->height += height; - } - - if (private->label) - { - gint char_width; - gint digit_width; - gint char_pixels; - - char_width = pango_font_metrics_get_approximate_char_width (metrics); - digit_width = pango_font_metrics_get_approximate_digit_width (metrics); - char_pixels = PANGO_PIXELS (MAX (char_width, digit_width)); - - /* ~3 chars for the ellipses */ - requisition->width += char_pixels * 3; - } - - pango_font_metrics_unref (metrics); -} -#endif static void gimp_spin_scale_style_set (GtkWidget *widget, @@ -415,16 +357,10 @@ gimp_spin_scale_style_set (GtkWidget *widget, static gboolean -#if GTK_CHECK_VERSION(3,0,0) gimp_spin_scale_draw (GtkWidget *widget, cairo_t *cr) -#else - gimp_spin_scale_expose (GtkWidget *widget, - GdkEventExpose *event) -#endif { GimpSpinScalePrivate *private = GET_PRIVATE (widget); -#if GTK_CHECK_VERSION(3,0,0) GtkStyleContext *style = gtk_widget_get_style_context(widget); GtkAllocation allocation; GdkRGBA color; @@ -434,66 +370,31 @@ static gboolean cairo_restore (cr); gtk_widget_get_allocation (widget, &allocation); -#else - GtkStyle *style = gtk_widget_get_style (widget); - cairo_t *cr; - gint w; - - GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event); - - cr = gdk_cairo_create (event->window); - gdk_cairo_region (cr, event->region); - cairo_clip (cr); - - w = gdk_window_get_width (event->window); -#endif cairo_set_line_width (cr, 1.0); -#if GTK_CHECK_VERSION(3,0,0) if (private->label) { GdkRectangle text_area; gint minimum_width; gint natural_width; -#else - if (private->label && - gtk_widget_is_drawable (widget) && - event->window == gtk_entry_get_text_window (GTK_ENTRY (widget))) - { - GtkRequisition requisition; - GtkAllocation allocation; -#endif PangoRectangle logical; gint layout_offset_x; gint layout_offset_y; -#if GTK_CHECK_VERSION(3,0,0) GtkStateFlags state; GdkRGBA text_color; GdkRGBA bar_text_color; -#else - GtkStateType state; - GdkColor text_color; - GdkColor bar_text_color; - gint window_width; - gint window_height; -#endif gdouble progress_fraction; gint progress_x; gint progress_y; gint progress_width; gint progress_height; -#if GTK_CHECK_VERSION(3,0,0) gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area); GTK_WIDGET_CLASS (parent_class)->get_preferred_width (widget, &minimum_width, &natural_width); -#else - GTK_WIDGET_CLASS (parent_class)->size_request (widget, &requisition); - gtk_widget_get_allocation (widget, &allocation); -#endif if (! private->layout) { @@ -504,27 +405,18 @@ static gboolean pango_layout_set_width (private->layout, PANGO_SCALE * -#if GTK_CHECK_VERSION(3,0,0) (allocation.width - minimum_width)); -#else - (allocation.width - requisition.width)); -#endif pango_layout_get_pixel_extents (private->layout, NULL, &logical); gtk_entry_get_layout_offsets (GTK_ENTRY (widget), NULL, &layout_offset_y); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) -#if GTK_CHECK_VERSION(3,0,0) layout_offset_x = text_area.x + text_area.width - logical.width - 4; -#else - layout_offset_x = w - logical.width - 4; -#endif else layout_offset_x = 4; layout_offset_x -= logical.x; -#if GTK_CHECK_VERSION(3,0,0) state = gtk_widget_get_state_flags (widget); gtk_style_context_get_color (style, state, &text_color); @@ -533,16 +425,6 @@ static gboolean gtk_style_context_add_class (style, GTK_STYLE_CLASS_PROGRESSBAR); gtk_style_context_get_color (style, state, &bar_text_color); gtk_style_context_restore (style); -#else - state = GTK_STATE_SELECTED; - if (! gtk_widget_get_sensitive (widget)) - state = GTK_STATE_INSENSITIVE; - text_color = style->text[gtk_widget_get_state (widget)]; - bar_text_color = style->fg[state]; - - window_width = gdk_window_get_width (event->window); - window_height = gdk_window_get_height (event->window); -#endif progress_fraction = gtk_entry_get_progress_fraction (GTK_ENTRY (widget)); @@ -550,53 +432,30 @@ static gboolean { progress_fraction = 1.0 - progress_fraction; -#if GTK_CHECK_VERSION(3,0,0) progress_x = text_area.width * progress_fraction; -#else - progress_x = window_width * progress_fraction; -#endif progress_y = 0; -#if GTK_CHECK_VERSION(3,0,0) progress_width = text_area.width - progress_x; progress_height = text_area.height; -#else - progress_width = window_width - progress_x; - progress_height = window_height; -#endif } else { progress_x = 0; progress_y = 0; -#if GTK_CHECK_VERSION(3,0,0) progress_width = text_area.width * progress_fraction; progress_height = text_area.height; -#else - progress_width = window_width * progress_fraction; - progress_height = window_height; -#endif } cairo_save (cr); cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD); -#if GTK_CHECK_VERSION(3,0,0) cairo_rectangle (cr, 0, 0, text_area.width, text_area.height); -#else - cairo_rectangle (cr, 0, 0, window_width, window_height); -#endif cairo_rectangle (cr, progress_x, progress_y, progress_width, progress_height); cairo_clip (cr); cairo_set_fill_rule (cr, CAIRO_FILL_RULE_WINDING); -#if GTK_CHECK_VERSION(3,0,0) cairo_move_to (cr, layout_offset_x, text_area.y + layout_offset_y-3); gdk_cairo_set_source_rgba (cr, &text_color); -#else - cairo_move_to (cr, layout_offset_x, layout_offset_y-3); - gdk_cairo_set_source_color (cr, &text_color); -#endif pango_cairo_show_layout (cr, private->layout); cairo_restore (cr); @@ -604,24 +463,14 @@ static gboolean progress_width, progress_height); cairo_clip (cr); -#if GTK_CHECK_VERSION(3,0,0) cairo_move_to (cr, layout_offset_x, text_area.y + layout_offset_y-3); gdk_cairo_set_source_rgba (cr, &bar_text_color); -#else - cairo_move_to (cr, layout_offset_x, layout_offset_y-3); - gdk_cairo_set_source_color (cr, &bar_text_color); -#endif pango_cairo_show_layout (cr, private->layout); } -#if !GTK_CHECK_VERSION(3,0,0) - cairo_destroy (cr); -#endif - return FALSE; } -#if WITH_GTKMM_3_0 /* Returns TRUE if a translation should be done */ static gboolean gtk_widget_get_translation_to_window (GtkWidget *widget, @@ -685,7 +534,6 @@ gimp_spin_scale_event_to_widget_coords (GtkWidget *widget, *widget_x = event_x; *widget_y = event_y; } -#endif static SpinScaleTarget gimp_spin_scale_get_target (GtkWidget *widget, @@ -702,7 +550,6 @@ gimp_spin_scale_get_target (GtkWidget *widget, pango_layout_get_pixel_extents (gtk_entry_get_layout (GTK_ENTRY (widget)), NULL, &logical); -#if WITH_GTKMM_3_0 GdkRectangle text_area; gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area); @@ -726,19 +573,6 @@ gimp_spin_scale_get_target (GtkWidget *widget, } return TARGET_NONE; -#else - if (x > layout_x && x < layout_x + logical.width && - y > layout_y && y < layout_y + logical.height) - { - return TARGET_NUMBER; - } - - else if (y > allocation.height / 2) - { - return TARGET_LOWER; - } - return TARGET_UPPER; -#endif } static void @@ -773,49 +607,21 @@ gimp_spin_scale_change_value (GtkWidget *widget, gdouble lower; gdouble upper; gdouble value; -#if WITH_GTKMM_3_0 -#else -#endif -#if WITH_GTKMM_3_0 GdkRectangle text_area; gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area); gimp_spin_scale_get_limits (GIMP_SPIN_SCALE (widget), &lower, &upper); -#else - GdkWindow *text_window = gtk_entry_get_text_window (GTK_ENTRY (widget)); - gint width; - - gimp_spin_scale_get_limits (GIMP_SPIN_SCALE (widget), &lower, &upper); - - width = gdk_window_get_width (text_window); -#endif - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) -#if WITH_GTKMM_3_0 x = text_area.width - x; -#else - x = width - x; -#endif - if (private->relative_change) { gdouble diff; gdouble step; - -#if WITH_GTKMM_3_0 step = (upper - lower) / text_area.width / 10.0; -#else - step = (upper - lower) / width / 10.0; -#endif if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - -#if WITH_GTKMM_3_0 diff = x - (text_area.width - private->start_x); -#else - diff = x - (width - private->start_x); -#endif else diff = x - private->start_x; @@ -825,12 +631,7 @@ gimp_spin_scale_change_value (GtkWidget *widget, { gdouble fraction; - -#if WITH_GTKMM_3_0 fraction = x / (gdouble) text_area.width; -#else - fraction = x / (gdouble) width; -#endif if (fraction > 0.0) fraction = pow (fraction, private->gamma); @@ -849,7 +650,6 @@ gimp_spin_scale_button_press (GtkWidget *widget, private->changing_value = FALSE; private->relative_change = FALSE; -#if WITH_GTKMM_3_0 gint x, y; gimp_spin_scale_event_to_widget_coords (widget, event->window, event->x, event->y, @@ -879,36 +679,6 @@ gimp_spin_scale_button_press (GtkWidget *widget, default: break; } -#else - if (event->window == gtk_entry_get_text_window (GTK_ENTRY (widget))) - { - switch (gimp_spin_scale_get_target (widget, event->x, event->y)) - { - case TARGET_UPPER: - private->changing_value = TRUE; - - gtk_widget_grab_focus (widget); - - gimp_spin_scale_change_value (widget, event->x); - - return TRUE; - - case TARGET_LOWER: - private->changing_value = TRUE; - - gtk_widget_grab_focus (widget); - - private->relative_change = TRUE; - private->start_x = event->x; - private->start_value = gtk_adjustment_get_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget))); - - return TRUE; - - default: - break; - } - } -#endif return GTK_WIDGET_CLASS (parent_class)->button_press_event (widget, event); } @@ -918,22 +688,16 @@ gimp_spin_scale_button_release (GtkWidget *widget, GdkEventButton *event) { GimpSpinScalePrivate *private = GET_PRIVATE (widget); -#if WITH_GTKMM_3_0 gint x, y; gimp_spin_scale_event_to_widget_coords (widget, event->window, event->x, event->y, &x, &y); -#endif if (private->changing_value) { private->changing_value = FALSE; -#if WITH_GTKMM_3_0 gimp_spin_scale_change_value (widget, x); -#else - gimp_spin_scale_change_value (widget, event->x); -#endif return TRUE; } @@ -948,21 +712,15 @@ gimp_spin_scale_motion_notify (GtkWidget *widget, gdk_event_request_motions (event); -#if WITH_GTKMM_3_0 gint x, y; gimp_spin_scale_event_to_widget_coords (widget, event->window, event->x, event->y, &x, &y); -#endif if (private->changing_value) { -#if WITH_GTKMM_3_0 gimp_spin_scale_change_value (widget, x); -#else - gimp_spin_scale_change_value (widget, event->x); -#endif return TRUE; } @@ -971,20 +729,12 @@ gimp_spin_scale_motion_notify (GtkWidget *widget, if (! (event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) -#if WITH_GTKMM_3_0 -#else - && event->window == gtk_entry_get_text_window (GTK_ENTRY (widget)) -#endif ) { GdkDisplay *display = gtk_widget_get_display (widget); GdkCursor *cursor = NULL; -#if WITH_GTKMM_3_0 switch (gimp_spin_scale_get_target (widget, x, y)) -#else - switch (gimp_spin_scale_get_target (widget, event->x, event->y)) -#endif { case TARGET_NUMBER: cursor = gdk_cursor_new_for_display (display, GDK_XTERM); @@ -1002,17 +752,11 @@ gimp_spin_scale_motion_notify (GtkWidget *widget, break; } - -#if WITH_GTKMM_3_0 if (cursor) { gdk_window_set_cursor (event->window, cursor); g_object_unref (cursor); } -#else - gdk_window_set_cursor (event->window, cursor); - gdk_cursor_unref (cursor); -#endif } return FALSE; diff --git a/src/ui/widget/highlight-picker.cpp b/src/ui/widget/highlight-picker.cpp index 09999b52d..e4447cb9e 100644 --- a/src/ui/widget/highlight-picker.cpp +++ b/src/ui/widget/highlight-picker.cpp @@ -35,8 +35,6 @@ HighlightPicker::~HighlightPicker() { } - -#if WITH_GTKMM_3_0 void HighlightPicker::get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const @@ -66,39 +64,12 @@ void HighlightPicker::get_preferred_width_vfunc(Gtk::Widget& widget, nat_w += (nat_w) >> 1; } } -#else -void HighlightPicker::get_size_vfunc(Gtk::Widget& widget, - const Gdk::Rectangle* cell_area, - int* x_offset, - int* y_offset, - int* width, - int* height ) const -{ - Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); - - if ( width ) { - *width = 10;//+= (*width) >> 1; - } - if ( height ) { - *height = 20; //cell_area ? cell_area->get_height() / 2 : 50; //+= (*height) >> 1; - } -} -#endif -#if WITH_GTKMM_3_0 void HighlightPicker::render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags ) -#else -void HighlightPicker::render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ) -#endif { GdkRectangle carea; @@ -140,11 +111,7 @@ void HighlightPicker::render_vfunc( const Glib::RefPtr& window, convert_pixbuf_argb32_to_normal(pixbuf); property_pixbuf() = Glib::wrap(pixbuf); -#if WITH_GTKMM_3_0 Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -#else - Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -#endif } bool HighlightPicker::activate_vfunc(GdkEvent* /*event*/, diff --git a/src/ui/widget/highlight-picker.h b/src/ui/widget/highlight-picker.h index c5fe4c02c..c459b0dcd 100644 --- a/src/ui/widget/highlight-picker.h +++ b/src/ui/widget/highlight-picker.h @@ -29,8 +29,6 @@ public: Glib::PropertyProxy property_active() { return _property_active.get_proxy(); } protected: - -#if WITH_GTKMM_3_0 virtual void render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, @@ -44,18 +42,6 @@ protected: virtual void get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const; -#else - virtual void render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ); - - virtual void get_size_vfunc( Gtk::Widget &widget, - Gdk::Rectangle const *cell_area, - int *x_offset, int *y_offset, int *width, int *height ) const; -#endif virtual bool activate_vfunc(GdkEvent *event, Gtk::Widget &widget, diff --git a/src/ui/widget/imagetoggler.cpp b/src/ui/widget/imagetoggler.cpp index 29907f4c9..987cc67bb 100644 --- a/src/ui/widget/imagetoggler.cpp +++ b/src/ui/widget/imagetoggler.cpp @@ -53,8 +53,6 @@ ImageToggler::ImageToggler( char const* on, char const* off) : property_pixbuf() = _property_pixbuf_off.get_value(); } - -#if WITH_GTKMM_3_0 void ImageToggler::get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const @@ -84,46 +82,15 @@ void ImageToggler::get_preferred_width_vfunc(Gtk::Widget& widget, nat_w += (nat_w) >> 1; } } -#else -void ImageToggler::get_size_vfunc(Gtk::Widget& widget, - const Gdk::Rectangle* cell_area, - int* x_offset, - int* y_offset, - int* width, - int* height ) const -{ - Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); - - if ( width ) { - *width += (*width) >> 1; - } - if ( height ) { - *height += (*height) >> 1; - } -} -#endif -#if WITH_GTKMM_3_0 void ImageToggler::render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags ) -#else -void ImageToggler::render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ) -#endif { property_pixbuf() = _property_active.get_value() ? _property_pixbuf_on : _property_pixbuf_off; -#if WITH_GTKMM_3_0 Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -#else - Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -#endif } bool diff --git a/src/ui/widget/imagetoggler.h b/src/ui/widget/imagetoggler.h index 7b02fa4dc..d4f27cf11 100644 --- a/src/ui/widget/imagetoggler.h +++ b/src/ui/widget/imagetoggler.h @@ -36,8 +36,6 @@ public: Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); protected: - -#if WITH_GTKMM_3_0 virtual void render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, @@ -51,18 +49,6 @@ protected: virtual void get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const; -#else - virtual void render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ); - - virtual void get_size_vfunc( Gtk::Widget &widget, - Gdk::Rectangle const *cell_area, - int *x_offset, int *y_offset, int *width, int *height ) const; -#endif virtual bool activate_vfunc(GdkEvent *event, Gtk::Widget &widget, diff --git a/src/ui/widget/insertordericon.cpp b/src/ui/widget/insertordericon.cpp index 9aec7d135..7ed1ed2e2 100644 --- a/src/ui/widget/insertordericon.cpp +++ b/src/ui/widget/insertordericon.cpp @@ -52,7 +52,6 @@ InsertOrderIcon::InsertOrderIcon() : } -#if WITH_GTKMM_3_0 void InsertOrderIcon::get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const @@ -82,39 +81,12 @@ void InsertOrderIcon::get_preferred_width_vfunc(Gtk::Widget& widget, nat_w += (nat_w) >> 1; } } -#else -void InsertOrderIcon::get_size_vfunc(Gtk::Widget& widget, - const Gdk::Rectangle* cell_area, - int* x_offset, - int* y_offset, - int* width, - int* height ) const -{ - Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); - - if ( width ) { - *width = phys;//+= (*width) >> 1; - } - if ( height ) { - *height =phys;//+= (*height) >> 1; - } -} -#endif -#if WITH_GTKMM_3_0 void InsertOrderIcon::render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags ) -#else -void InsertOrderIcon::render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ) -#endif { switch (_property_active.get_value()) { @@ -128,11 +100,7 @@ void InsertOrderIcon::render_vfunc( const Glib::RefPtr& window, property_pixbuf() = Glib::RefPtr(0); break; } -#if WITH_GTKMM_3_0 Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -#else - Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -#endif } bool InsertOrderIcon::activate_vfunc(GdkEvent* /*event*/, diff --git a/src/ui/widget/insertordericon.h b/src/ui/widget/insertordericon.h index bf8ac4fa7..43188fa5b 100644 --- a/src/ui/widget/insertordericon.h +++ b/src/ui/widget/insertordericon.h @@ -33,7 +33,6 @@ public: protected: -#if WITH_GTKMM_3_0 virtual void render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, @@ -47,18 +46,6 @@ protected: virtual void get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const; -#else - virtual void render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ); - - virtual void get_size_vfunc( Gtk::Widget &widget, - Gdk::Rectangle const *cell_area, - int *x_offset, int *y_offset, int *width, int *height ) const; -#endif virtual bool activate_vfunc(GdkEvent *event, Gtk::Widget &widget, diff --git a/src/ui/widget/layertypeicon.cpp b/src/ui/widget/layertypeicon.cpp index 672c607e5..36742b953 100644 --- a/src/ui/widget/layertypeicon.cpp +++ b/src/ui/widget/layertypeicon.cpp @@ -64,8 +64,6 @@ LayerTypeIcon::LayerTypeIcon() : property_pixbuf() = _property_pixbuf_path.get_value(); } - -#if WITH_GTKMM_3_0 void LayerTypeIcon::get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const @@ -95,46 +93,15 @@ void LayerTypeIcon::get_preferred_width_vfunc(Gtk::Widget& widget, nat_w += (nat_w) >> 1; } } -#else -void LayerTypeIcon::get_size_vfunc(Gtk::Widget& widget, - const Gdk::Rectangle* cell_area, - int* x_offset, - int* y_offset, - int* width, - int* height ) const -{ - Gtk::CellRendererPixbuf::get_size_vfunc( widget, cell_area, x_offset, y_offset, width, height ); - - if ( width ) { - *width += (*width) >> 1; - } - if ( height ) { - *height += (*height) >> 1; - } -} -#endif -#if WITH_GTKMM_3_0 void LayerTypeIcon::render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags ) -#else -void LayerTypeIcon::render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ) -#endif { property_pixbuf() = _property_active.get_value() == 1 ? _property_pixbuf_group : (_property_active.get_value() == 2 ? _property_pixbuf_layer : _property_pixbuf_path); -#if WITH_GTKMM_3_0 Gtk::CellRendererPixbuf::render_vfunc( cr, widget, background_area, cell_area, flags ); -#else - Gtk::CellRendererPixbuf::render_vfunc( window, widget, background_area, cell_area, expose_area, flags ); -#endif } bool diff --git a/src/ui/widget/layertypeicon.h b/src/ui/widget/layertypeicon.h index 6c71ce361..f12029c12 100644 --- a/src/ui/widget/layertypeicon.h +++ b/src/ui/widget/layertypeicon.h @@ -35,8 +35,6 @@ public: Glib::PropertyProxy< Glib::RefPtr > property_pixbuf_off(); protected: - -#if WITH_GTKMM_3_0 virtual void render_vfunc( const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, @@ -50,18 +48,6 @@ protected: virtual void get_preferred_height_vfunc(Gtk::Widget& widget, int& min_h, int& nat_h) const; -#else - virtual void render_vfunc( const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags ); - - virtual void get_size_vfunc( Gtk::Widget &widget, - Gdk::Rectangle const *cell_area, - int *x_offset, int *y_offset, int *width, int *height ) const; -#endif virtual bool activate_vfunc(GdkEvent *event, Gtk::Widget &widget, diff --git a/src/ui/widget/licensor.cpp b/src/ui/widget/licensor.cpp index d21e848f2..66ee612bf 100644 --- a/src/ui/widget/licensor.cpp +++ b/src/ui/widget/licensor.cpp @@ -134,18 +134,10 @@ void Licensor::update (SPDocument *doc) for (i=0; rdf_licenses[i].name; i++) if (license == &rdf_licenses[i]) break; -#if WITH_GTKMM_3_0 static_cast(get_children()[i+1])->set_active(); -#else - static_cast(children()[i+1].get_widget())->set_active(); -#endif } else { -#if WITH_GTKMM_3_0 static_cast(get_children()[0])->set_active(); -#else - static_cast(children()[0].get_widget())->set_active(); -#endif } /* update the URI */ diff --git a/src/ui/widget/notebook-page.cpp b/src/ui/widget/notebook-page.cpp index 2f03ed23b..6d8ff1d75 100644 --- a/src/ui/widget/notebook-page.cpp +++ b/src/ui/widget/notebook-page.cpp @@ -11,31 +11,19 @@ #include "notebook-page.h" -#if WITH_GTKMM_3_0 # include -#else -# include -#endif namespace Inkscape { namespace UI { namespace Widget { NotebookPage::NotebookPage(int n_rows, int n_columns, bool expand, bool fill, guint padding) -#if WITH_GTKMM_3_0 :_table(Gtk::manage(new Gtk::Grid())) -#else - :_table(Gtk::manage(new Gtk::Table(n_rows, n_columns))) -#endif { set_border_width(2); -#if WITH_GTKMM_3_0 _table->set_row_spacing(2); _table->set_column_spacing(2); -#else - _table->set_spacings(2); -#endif pack_start(*_table, expand, fill, padding); } diff --git a/src/ui/widget/notebook-page.h b/src/ui/widget/notebook-page.h index c11de1b5b..6eb23907c 100644 --- a/src/ui/widget/notebook-page.h +++ b/src/ui/widget/notebook-page.h @@ -17,11 +17,7 @@ #include namespace Gtk { -#if WITH_GTKMM_3_0 class Grid; -#else -class Table; -#endif } namespace Inkscape { @@ -42,19 +38,10 @@ public: */ NotebookPage(int n_rows, int n_columns, bool expand=false, bool fill=false, guint padding=0); -#if WITH_GTKMM_3_0 Gtk::Grid& table() { return *_table; } -#else - Gtk::Table& table() { return *_table; } -#endif protected: - -#if WITH_GTKMM_3_0 Gtk::Grid *_table; -#else - Gtk::Table *_table; -#endif }; } // namespace Widget diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp index 19ab1a280..c71130586 100644 --- a/src/ui/widget/page-sizer.cpp +++ b/src/ui/widget/page-sizer.cpp @@ -353,7 +353,6 @@ PageSizer::PageSizer(Registry & _wr) _customDimTable.set_border_width(4); -#if WITH_GTKMM_3_0 _customDimTable.set_row_spacing(4); _customDimTable.set_column_spacing(4); @@ -372,15 +371,6 @@ PageSizer::PageSizer(Registry & _wr) _fitPageMarginExpander.set_hexpand(); _fitPageMarginExpander.set_vexpand(); _customDimTable.attach(_fitPageMarginExpander, 0, 2, 2, 1); -#else - _customDimTable.resize(3, 2); - _customDimTable.set_row_spacings(4); - _customDimTable.set_col_spacings(4); - _customDimTable.attach(_dimensionWidth, 0,1, 0,1); - _customDimTable.attach(_dimensionUnits, 1,2, 0,1); - _customDimTable.attach(_dimensionHeight, 0,1, 1,2); - _customDimTable.attach(_fitPageMarginExpander, 0,2, 2,3); -#endif _dimTabOrderGList = NULL; _dimTabOrderGList = g_list_append(_dimTabOrderGList, _dimensionWidth.gobj()); @@ -398,7 +388,6 @@ PageSizer::PageSizer(Registry & _wr) //## Set up margin settings _marginTable.set_border_width(4); -#if WITH_GTKMM_3_0 _marginTable.set_row_spacing(4); _marginTable.set_column_spacing(4); @@ -421,16 +410,6 @@ PageSizer::PageSizer(Registry & _wr) _fitPageButtonAlign.set_hexpand(); _fitPageButtonAlign.set_vexpand(); _marginTable.attach(_fitPageButtonAlign, 0, 3, 2, 1); -#else - _marginTable.set_border_width(4); - _marginTable.set_row_spacings(4); - _marginTable.set_col_spacings(4); - _marginTable.attach(_marginTopAlign, 0,2, 0,1); - _marginTable.attach(_marginLeftAlign, 0,1, 1,2); - _marginTable.attach(_marginRightAlign, 1,2, 1,2); - _marginTable.attach(_marginBottomAlign, 0,2, 2,3); - _marginTable.attach(_fitPageButtonAlign, 0,2, 3,4); -#endif _marginTopAlign.set(0.5, 0.5, 0.0, 1.0); _marginTopAlign.add(_marginTop); @@ -453,7 +432,6 @@ PageSizer::PageSizer(Registry & _wr) _scaleTable.set_border_width(4); -#if WITH_GTKMM_3_0 _scaleTable.set_row_spacing(4); _scaleTable.set_column_spacing(4); @@ -465,16 +443,6 @@ PageSizer::PageSizer(Registry & _wr) _viewboxExpander.set_hexpand(); _viewboxExpander.set_vexpand(); _scaleTable.attach(_viewboxExpander, 0, 2, 2, 1); -#else - _scaleTable.resize(3, 2); - _scaleTable.set_row_spacings(4); - _scaleTable.set_col_spacings(4); - _scaleTable.attach(_scaleX, 0,1, 0,1); - _scaleTable.attach(_scaleY, 1,2, 0,1); - _scaleTable.attach(_scaleLabel, 2,3, 0,1); - _scaleTable.attach(_scaleWarning, 0,3, 1,2, Gtk::FILL); - _scaleTable.attach(_viewboxExpander, 0,3, 2,3); -#endif _scaleWarning.set_label(_("While SVG allows non-uniform scaling it is recommended to use only uniform scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' directly.")); _scaleWarning.set_line_wrap( true ); @@ -483,7 +451,6 @@ PageSizer::PageSizer(Registry & _wr) _viewboxExpander.set_label(_("_Viewbox...")); _viewboxExpander.add(_viewboxTable); -#if WITH_GTKMM_3_0 _viewboxTable.set_row_spacing(2); _viewboxTable.set_column_spacing(2); @@ -503,16 +470,6 @@ PageSizer::PageSizer(Registry & _wr) _viewboxH.set_vexpand(); _viewboxTable.attach(_viewboxH, 1, 1, 1, 1); -#else - _viewboxTable.set_border_width(4); - _viewboxTable.set_row_spacings(2); - _viewboxTable.set_col_spacings(2); - _viewboxTable.attach(_viewboxX, 0,1, 0,1); - _viewboxTable.attach(_viewboxY, 1,2, 0,1); - _viewboxTable.attach(_viewboxW, 0,1, 1,2); - _viewboxTable.attach(_viewboxH, 1,2, 1,2); -#endif - _wr.setUpdating (true); updateScaleUI(); _wr.setUpdating (false); diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h index 0eea28e61..f1966f848 100644 --- a/src/ui/widget/page-sizer.h +++ b/src/ui/widget/page-sizer.h @@ -23,15 +23,9 @@ #include #include #include +#include #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif - #include namespace Inkscape { @@ -222,12 +216,7 @@ protected: //### Custom size frame Gtk::Frame _customFrame; - -#if WITH_GTKMM_3_0 Gtk::Grid _customDimTable; -#else - Gtk::Table _customDimTable; -#endif RegisteredUnitMenu _dimensionUnits; RegisteredScalarUnit _dimensionWidth; @@ -237,12 +226,7 @@ protected: //### Fit Page options Gtk::Expander _fitPageMarginExpander; -#if WITH_GTKMM_3_0 Gtk::Grid _marginTable; -#else - Gtk::Table _marginTable; -#endif - Gtk::Alignment _marginTopAlign; Gtk::Alignment _marginLeftAlign; Gtk::Alignment _marginRightAlign; @@ -257,11 +241,7 @@ protected: // Document scale Gtk::Frame _scaleFrame; -#if WITH_GTKMM_3_0 Gtk::Grid _scaleTable; -#else - Gtk::Table _scaleTable; -#endif Gtk::Label _scaleLabel; Gtk::Label _scaleWarning; @@ -271,11 +251,7 @@ protected: // Viewbox Gtk::Expander _viewboxExpander; -#if WITH_GTKMM_3_0 Gtk::Grid _viewboxTable; -#else - Gtk::Table _viewboxTable; -#endif RegisteredScalar _viewboxX; RegisteredScalar _viewboxY; diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp index ab13577d7..8f695013d 100644 --- a/src/ui/widget/panel.cpp +++ b/src/ui/widget/panel.cpp @@ -74,9 +74,7 @@ Panel::Panel(Glib::ustring const &label, gchar const *prefs_path, _fillable(0) { set_name( "InkscapePanel" ); -#if WITH_GTKMM_3_0 set_orientation( Gtk::ORIENTATION_VERTICAL ); -#endif _init(); } @@ -598,13 +596,9 @@ void Panel::_addResponseButton(Gtk::Button *button, int response_id, bool pack_s { // Create a button box for the response buttons if it's the first button to be added if (!_action_area) { -#if WITH_GTKMM_3_0 _action_area = new Gtk::ButtonBox(); _action_area->set_layout(Gtk::BUTTONBOX_END); _action_area->set_spacing(6); -#else - _action_area = new Gtk::HButtonBox(Gtk::BUTTONBOX_END, 6); -#endif _action_area->set_border_width(4); pack_end(*_action_area, Gtk::PACK_SHRINK, 0); } diff --git a/src/ui/widget/panel.h b/src/ui/widget/panel.h index 7b2836fe8..370779586 100644 --- a/src/ui/widget/panel.h +++ b/src/ui/widget/panel.h @@ -31,13 +31,7 @@ class SPDocument; namespace Gtk { class CheckMenuItem; - -#if WITH_GTKMM_3_0 class ButtonBox; -#else - class HButtonBox; -#endif - class MenuItem; } @@ -64,12 +58,7 @@ namespace Widget { * @see UI::Dialog::DesktopTracker to handle desktop change, selection change and selected object modifications. * @see UI::Dialog::DialogManager manages the dialogs within inkscape. */ -#if WITH_GTKMM_3_0 class Panel : public Gtk::Box { -#else -class Panel : public Gtk::VBox { -#endif - public: static void prep(); @@ -172,12 +161,7 @@ private: Gtk::EventBox _menu_popper; Gtk::Button _close_button; Gtk::Menu *_menu; - -#if WITH_GTKMM_3_0 - Gtk::ButtonBox *_action_area; //< stores response buttons -#else - Gtk::HButtonBox *_action_area; //< stores response buttons -#endif + Gtk::ButtonBox *_action_area; //< stores response buttons std::vector _non_horizontal; std::vector _non_vertical; diff --git a/src/ui/widget/point.cpp b/src/ui/widget/point.cpp index 6aa6196bb..66f5e41a3 100644 --- a/src/ui/widget/point.cpp +++ b/src/ui/widget/point.cpp @@ -53,11 +53,7 @@ Point::Point(Glib::ustring const &label, Glib::ustring const &tooltip, } Point::Point(Glib::ustring const &label, Glib::ustring const &tooltip, -#if WITH_GTKMM_3_0 Glib::RefPtr &adjust, -#else - Gtk::Adjustment &adjust, -#endif unsigned digits, Glib::ustring const &suffix, Glib::ustring const &icon, diff --git a/src/ui/widget/point.h b/src/ui/widget/point.h index 17078df8f..71bfd8473 100644 --- a/src/ui/widget/point.h +++ b/src/ui/widget/point.h @@ -82,11 +82,7 @@ public: */ Point( Glib::ustring const &label, Glib::ustring const &tooltip, -#if WITH_GTKMM_3_0 Glib::RefPtr &adjust, -#else - Gtk::Adjustment &adjust, -#endif unsigned digits = 0, Glib::ustring const &suffix = "", Glib::ustring const &icon = "", diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp index d56506d62..2e6e3f0db 100644 --- a/src/ui/widget/preferences-widget.cpp +++ b/src/ui/widget/preferences-widget.cpp @@ -55,14 +55,9 @@ DialogPage::DialogPage() { set_border_width(12); -#if WITH_GTKMM_3_0 set_orientation(Gtk::ORIENTATION_VERTICAL); set_column_spacing(12); set_row_spacing(6); -#else - set_col_spacings(12); - set_row_spacings(6); -#endif } /** @@ -101,12 +96,7 @@ void DialogPage::add_line(bool indent, // be indented if desired Gtk::Alignment* w_alignment = Gtk::manage(new Gtk::Alignment()); w_alignment->add(*hb); - -#if WITH_GTKMM_3_0 w_alignment->set_valign(Gtk::ALIGN_CENTER); -#else - guint row = property_n_rows(); -#endif // Add a label in the first column if provided if (label != "") @@ -122,17 +112,12 @@ void DialogPage::add_line(bool indent, if (indent) label_alignment->set_padding(0, 0, 12, 0); -#if WITH_GTKMM_3_0 label_alignment->set_valign(Gtk::ALIGN_CENTER); add(*label_alignment); attach_next_to(*w_alignment, *label_alignment, Gtk::POS_RIGHT, 1, 1); -#else - attach(*label_alignment, 0, 1, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0); -#endif } // Now add the widget to the bottom of the dialog -#if WITH_GTKMM_3_0 if (label == "") { if (indent) @@ -145,17 +130,6 @@ void DialogPage::add_line(bool indent, g_value_set_int(&width, 2); gtk_container_child_set_property(GTK_CONTAINER(gobj()), GTK_WIDGET(w_alignment->gobj()), "width", &width); } -#else - // The widget should span two columns if there is no label - int w_col_span = 1; - if (label == "") - w_col_span = 2; - - attach(*w_alignment, 2 - w_col_span, 2, row, row + 1, - Gtk::FILL | Gtk::EXPAND, - Gtk::AttachOptions(), - 0, 0); -#endif // Add a label on the right of the widget if desired if (suffix != "") @@ -174,18 +148,8 @@ void DialogPage::add_group_header(Glib::ustring name) Glib::ustring(""/*"*/) , Gtk::ALIGN_START , Gtk::ALIGN_CENTER, true)); label_widget->set_use_markup(true); - -#if WITH_GTKMM_3_0 label_widget->set_valign(Gtk::ALIGN_CENTER); add(*label_widget); -// if (row != 1) - // set_row_spacing(row - 1, 18); -#else - int row = property_n_rows(); - attach(*label_widget , 0, 4, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0); - if (row != 1) - set_row_spacing(row - 1, 18); -#endif } } @@ -427,24 +391,6 @@ ZoomCorrRuler::draw_marks(Cairo::RefPtr cr, double dist, int maj } } -#if !WITH_GTKMM_3_0 -bool -ZoomCorrRuler::on_expose_event(GdkEventExpose *event) { - bool result = false; - - if(get_is_drawable()) - { - Cairo::RefPtr cr = get_window()->create_cairo_context(); - cr->rectangle(event->area.x, event->area.y, - event->area.width, event->area.height); - cr->clip(); - result = on_draw(cr); - } - - return result; -} -#endif - bool ZoomCorrRuler::on_draw(const Cairo::RefPtr& cr) { Glib::RefPtr window = get_window(); @@ -548,11 +494,7 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl _ruler.set_size(ruler_width, ruler_height); -#if WITH_GTKMM_3_0 _slider = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL)); -#else - _slider = Gtk::manage(new Gtk::HScale()); -#endif _slider->set_size_request(_ruler.width(), -1); _slider->set_range (lower, upper); @@ -579,21 +521,13 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl alignment1->add(_sb); alignment2->add(_unit); -#if WITH_GTKMM_3_0 - Gtk::Grid *table = Gtk::manage(new Gtk::Grid()); + auto table = Gtk::manage(new Gtk::Grid()); table->attach(*_slider, 0, 0, 1, 1); alignment1->set_halign(Gtk::ALIGN_CENTER); table->attach(*alignment1, 1, 0, 1, 1); table->attach(_ruler, 0, 1, 1, 1); alignment2->set_halign(Gtk::ALIGN_CENTER); table->attach(*alignment2, 1, 1, 1, 1); -#else - Gtk::Table *table = Gtk::manage(new Gtk::Table()); - table->attach(*_slider, 0, 1, 0, 1); - table->attach(*alignment1, 1, 2, 0, 1, static_cast(0)); - table->attach(_ruler, 0, 1, 1, 2); - table->attach(*alignment2, 1, 2, 1, 2, static_cast(0)); -#endif pack_start(*table, Gtk::PACK_SHRINK); } @@ -640,11 +574,7 @@ PrefSlider::init(Glib::ustring const &prefs_path, freeze = false; -#if WITH_GTKMM_3_0 _slider = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL)); -#else - _slider = Gtk::manage(new Gtk::HScale()); -#endif _slider->set_range (lower, upper); _slider->set_increments (step_increment, page_increment); @@ -661,17 +591,11 @@ PrefSlider::init(Glib::ustring const &prefs_path, Gtk::Alignment *alignment1 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0)); alignment1->add(_sb); -#if WITH_GTKMM_3_0 - Gtk::Grid *table = Gtk::manage(new Gtk::Grid()); + auto table = Gtk::manage(new Gtk::Grid()); _slider->set_hexpand(); table->attach(*_slider, 0, 0, 1, 1); alignment1->set_halign(Gtk::ALIGN_CENTER); table->attach(*alignment1, 1, 0, 1, 1); -#else - Gtk::Table *table = Gtk::manage(new Gtk::Table()); - table->attach(*_slider, 0, 1, 0, 1); - table->attach(*alignment1, 1, 2, 0, 1, static_cast(0)); -#endif this->pack_start(*table, Gtk::PACK_EXPAND_WIDGET); } diff --git a/src/ui/widget/preferences-widget.h b/src/ui/widget/preferences-widget.h index 1d2d77699..142793509 100644 --- a/src/ui/widget/preferences-widget.h +++ b/src/ui/widget/preferences-widget.h @@ -30,12 +30,7 @@ #include #include #include - -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include "ui/widget/color-picker.h" #include "ui/widget/unit-menu.h" @@ -43,11 +38,7 @@ #include "ui/widget/scalar-unit.h" namespace Gtk { -#if WITH_GTKMM_3_0 class Scale; -#else -class HScale; -#endif } namespace Inkscape { @@ -126,10 +117,6 @@ public: static const double textpadding; private: -#if !WITH_GTKMM_3_0 - bool on_expose_event(GdkEventExpose *event); -#endif - bool on_draw(const Cairo::RefPtr& cr); void draw_marks(Cairo::RefPtr cr, double dist, int major_interval); @@ -155,11 +142,7 @@ private: Inkscape::UI::Widget::SpinButton _sb; UnitMenu _unit; -#if WITH_GTKMM_3_0 Gtk::Scale* _slider; -#else - Gtk::HScale* _slider; -#endif ZoomCorrRuler _ruler; bool freeze; // used to block recursive updates of slider and spinbutton }; @@ -178,11 +161,7 @@ private: Glib::ustring _prefs_path; Inkscape::UI::Widget::SpinButton _sb; -#if WITH_GTKMM_3_0 Gtk::Scale* _slider; -#else - Gtk::HScale* _slider; -#endif bool freeze; // used to block recursive updates of slider and spinbutton }; @@ -279,11 +258,7 @@ protected: void on_changed(); }; -#if WITH_GTKMM_3_0 class DialogPage : public Gtk::Grid -#else -class DialogPage : public Gtk::Table -#endif { public: DialogPage(); diff --git a/src/ui/widget/random.cpp b/src/ui/widget/random.cpp index 0a646b6fb..8551e2add 100644 --- a/src/ui/widget/random.cpp +++ b/src/ui/widget/random.cpp @@ -47,11 +47,7 @@ Random::Random(Glib::ustring const &label, Glib::ustring const &tooltip, } Random::Random(Glib::ustring const &label, Glib::ustring const &tooltip, -#if WITH_GTKMM_3_0 Glib::RefPtr &adjust, -#else - Gtk::Adjustment &adjust, -#endif unsigned digits, Glib::ustring const &suffix, Glib::ustring const &icon, diff --git a/src/ui/widget/random.h b/src/ui/widget/random.h index dc2b457c2..d86ab6246 100644 --- a/src/ui/widget/random.h +++ b/src/ui/widget/random.h @@ -75,11 +75,7 @@ public: */ Random(Glib::ustring const &label, Glib::ustring const &tooltip, -#if WITH_GTKMM_3_0 Glib::RefPtr &adjust, -#else - Gtk::Adjustment &adjust, -#endif unsigned digits = 0, Glib::ustring const &suffix = "", Glib::ustring const &icon = "", diff --git a/src/ui/widget/scalar.cpp b/src/ui/widget/scalar.cpp index fca8a7974..434c2c0bb 100644 --- a/src/ui/widget/scalar.cpp +++ b/src/ui/widget/scalar.cpp @@ -43,11 +43,7 @@ Scalar::Scalar(Glib::ustring const &label, Glib::ustring const &tooltip, } Scalar::Scalar(Glib::ustring const &label, Glib::ustring const &tooltip, -#if WITH_GTKMM_3_0 Glib::RefPtr &adjust, -#else - Gtk::Adjustment &adjust, -#endif unsigned digits, Glib::ustring const &suffix, Glib::ustring const &icon, @@ -141,11 +137,7 @@ void Scalar::update() void Scalar::addSlider() { -#if WITH_GTKMM_3_0 - Gtk::Scale *scale = new Gtk::Scale(static_cast(_widget)->get_adjustment()); -#else - Gtk::HScale *scale = new Gtk::HScale( * static_cast(_widget)->get_adjustment() ); -#endif + auto scale = new Gtk::Scale(static_cast(_widget)->get_adjustment()); scale->set_draw_value(false); add (*manage (scale)); } diff --git a/src/ui/widget/scalar.h b/src/ui/widget/scalar.h index 86d7aee28..847790b96 100644 --- a/src/ui/widget/scalar.h +++ b/src/ui/widget/scalar.h @@ -73,11 +73,7 @@ public: */ Scalar(Glib::ustring const &label, Glib::ustring const &tooltip, -#if WITH_GTKMM_3_0 Glib::RefPtr &adjust, -#else - Gtk::Adjustment &adjust, -#endif unsigned digits = 0, Glib::ustring const &suffix = "", Glib::ustring const &icon = "", diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index f7fd63f51..7679fadb4 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -123,11 +123,7 @@ SelectedStyle::SelectedStyle(bool /*layout*/) current_stroke_width(0), _desktop (NULL), -#if WITH_GTKMM_3_0 _table(), -#else - _table(2, 6), -#endif _fill_label (_("Fill:")), _stroke_label (_("Stroke:")), _opacity_label (_("O:")), @@ -139,11 +135,7 @@ SelectedStyle::SelectedStyle(bool /*layout*/) _stroke_flag_place (), _opacity_place (), -#if WITH_GTKMM_3_0 _opacity_adjustment(Gtk::Adjustment::create(100, 0.0, 100, 1.0, 10.0)), -#else - _opacity_adjustment (100, 0.0, 100, 1.0, 10.0), -#endif _opacity_sb (0.02, 0), _stroke (), @@ -166,13 +158,8 @@ SelectedStyle::SelectedStyle(bool /*layout*/) _opacity_label.set_alignment(0.0, 0.5); _opacity_label.set_padding(0, 0); -#if WITH_GTKMM_3_0 _table.set_column_spacing(2); _table.set_row_spacing(0); -#else - _table.set_col_spacings (2); - _table.set_row_spacings (0); -#endif for (int i = SS_FILL; i <= SS_STROKE; i++) { @@ -379,7 +366,6 @@ SelectedStyle::SelectedStyle(bool /*layout*/) _opacity_sb.set_size_request (SELECTED_STYLE_SB_WIDTH, -1); _opacity_sb.set_sensitive (false); -#if WITH_GTKMM_3_0 _table.attach(_fill_label, 0, 0, 1, 1); _table.attach(_stroke_label, 0, 1, 1, 1); @@ -388,26 +374,11 @@ SelectedStyle::SelectedStyle(bool /*layout*/) _table.attach(_fill_place, 2, 0, 1, 1); _table.attach(_stroke, 2, 1, 1, 1); -#else - _table.attach(_fill_label, 0,1, 0,1, Gtk::FILL, Gtk::SHRINK); - _table.attach(_stroke_label, 0,1, 1,2, Gtk::FILL, Gtk::SHRINK); - - _table.attach(_fill_flag_place, 1,2, 0,1, Gtk::SHRINK, Gtk::SHRINK); - _table.attach(_stroke_flag_place, 1,2, 1,2, Gtk::SHRINK, Gtk::SHRINK); - - _table.attach(_fill_place, 2,3, 0,1); - _table.attach(_stroke, 2,3, 1,2); -#endif _opacity_place.add(_opacity_label); -#if WITH_GTKMM_3_0 _table.attach(_opacity_place, 4, 0, 1, 2); _table.attach(_opacity_sb, 5, 0, 1, 2); -#else - _table.attach(_opacity_place, 4,5, 0,2, Gtk::SHRINK, Gtk::SHRINK); - _table.attach(_opacity_sb, 5,6, 0,2, Gtk::SHRINK, Gtk::SHRINK); -#endif pack_start(_table, true, true, 2); @@ -1120,11 +1091,7 @@ SelectedStyle::update() if (_opacity_blocked) break; _opacity_blocked = true; _opacity_sb.set_sensitive(true); -#if WITH_GTKMM_3_0 _opacity_adjustment->set_value(SP_SCALE24_TO_FLOAT(query.opacity.value) * 100); -#else - _opacity_adjustment.set_value(SP_SCALE24_TO_FLOAT(query.opacity.value) * 100); -#endif _opacity_blocked = false; break; } @@ -1224,11 +1191,7 @@ void SelectedStyle::on_opacity_changed () _opacity_blocked = true; SPCSSAttr *css = sp_repr_css_attr_new (); Inkscape::CSSOStringStream os; -#if WITH_GTKMM_3_0 os << CLAMP ((_opacity_adjustment->get_value() / 100), 0.0, 1.0); -#else - os << CLAMP ((_opacity_adjustment.get_value() / 100), 0.0, 1.0); -#endif sp_repr_css_set_property (css, "opacity", os.str().c_str()); // FIXME: workaround for GTK breakage: display interruptibility sometimes results in GTK // sending multiple value-changed events. As if when Inkscape interrupts redraw for main loop diff --git a/src/ui/widget/selected-style.h b/src/ui/widget/selected-style.h index 804a6fef6..efac29f73 100644 --- a/src/ui/widget/selected-style.h +++ b/src/ui/widget/selected-style.h @@ -16,12 +16,7 @@ #endif #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include #include @@ -140,11 +135,7 @@ public: protected: SPDesktop *_desktop; -#if WITH_GTKMM_3_0 Gtk::Grid _table; -#else - Gtk::Table _table; -#endif Gtk::Label _fill_label; Gtk::Label _stroke_label; @@ -157,11 +148,7 @@ protected: Gtk::EventBox _stroke_flag_place; Gtk::EventBox _opacity_place; -#if WITH_GTKMM_3_0 Glib::RefPtr _opacity_adjustment; -#else - Gtk::Adjustment _opacity_adjustment; -#endif Inkscape::UI::Widget::SpinButton _opacity_sb; Gtk::Label _na[2]; diff --git a/src/ui/widget/spin-scale.cpp b/src/ui/widget/spin-scale.cpp index bb08d67df..f2a163c84 100644 --- a/src/ui/widget/spin-scale.cpp +++ b/src/ui/widget/spin-scale.cpp @@ -22,13 +22,8 @@ SpinScale::SpinScale(const char* label, double value, double lower, double upper double /*climb_rate*/, int digits, const SPAttributeEnum a, const char* tip_text) : AttrWidget(a, value) { -#if WITH_GTKMM_3_0 _adjustment = Gtk::Adjustment::create(value, lower, upper, step_inc); _spinscale = gimp_spin_scale_new (_adjustment->gobj(), label, digits); -#else - _adjustment = new Gtk::Adjustment(value, lower, upper, step_inc); - _spinscale = gimp_spin_scale_new (_adjustment->gobj(), label, digits); -#endif signal_value_changed().connect(signal_attr_changed().make_slot()); @@ -42,12 +37,10 @@ SpinScale::SpinScale(const char* label, double value, double lower, double upper } SpinScale::SpinScale(const char* label, -#if WITH_GTKMM_3_0 - Glib::RefPtr adj, -#else - Gtk::Adjustment *adj, -#endif - int digits, const SPAttributeEnum a, const char* tip_text) + Glib::RefPtr adj, + int digits, + const SPAttributeEnum a, + const char* tip_text) : AttrWidget(a, 0.0), _adjustment(adj) @@ -111,19 +104,12 @@ void SpinScale::set_appearance(const gchar* appearance) gimp_spin_scale_set_appearance(_spinscale, appearance); } -#if WITH_GTKMM_3_0 -const Glib::RefPtr SpinScale::get_adjustment() const -#else -const Gtk::Adjustment *SpinScale::get_adjustment() const -#endif +const decltype(SpinScale::_adjustment) SpinScale::get_adjustment() const { return _adjustment; } -#if WITH_GTKMM_3_0 -Glib::RefPtr SpinScale::get_adjustment() -#else -Gtk::Adjustment *SpinScale::get_adjustment() -#endif + +decltype(SpinScale::_adjustment) SpinScale::get_adjustment() { return _adjustment; } diff --git a/src/ui/widget/spin-scale.h b/src/ui/widget/spin-scale.h index 50e4fc953..d7030bed3 100644 --- a/src/ui/widget/spin-scale.h +++ b/src/ui/widget/spin-scale.h @@ -36,12 +36,8 @@ public: int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL); SpinScale(const char* label, -#if WITH_GTKMM_3_0 - Glib::RefPtr adj, -#else - Gtk::Adjustment *adj, -#endif - int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL); + Glib::RefPtr adj, + int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL); virtual Glib::ustring get_as_attribute() const; virtual void set_from_attribute(SPObject*); @@ -52,23 +48,14 @@ public: void set_value(const double); void set_focuswidget(GtkWidget *widget); void set_appearance(const gchar* appearance); - -#if WITH_GTKMM_3_0 - const Glib::RefPtr get_adjustment() const; - Glib::RefPtr get_adjustment(); -#else - const Gtk::Adjustment *get_adjustment() const; - Gtk::Adjustment *get_adjustment(); -#endif private: -#if WITH_GTKMM_3_0 Glib::RefPtr _adjustment; -#else - Gtk::Adjustment *_adjustment; -#endif - GtkWidget *_spinscale; + +public: + const decltype(_adjustment) get_adjustment() const; + decltype(_adjustment) get_adjustment(); }; diff --git a/src/ui/widget/spin-slider.cpp b/src/ui/widget/spin-slider.cpp index 9b361ae78..f17b9b26c 100644 --- a/src/ui/widget/spin-slider.cpp +++ b/src/ui/widget/spin-slider.cpp @@ -20,11 +20,7 @@ namespace Widget { SpinSlider::SpinSlider(double value, double lower, double upper, double step_inc, double climb_rate, int digits, const SPAttributeEnum a, const char* tip_text) : AttrWidget(a, value), -#if WITH_GTKMM_3_0 _adjustment(Gtk::Adjustment::create(value, lower, upper, step_inc)), -#else - _adjustment(value, lower, upper, step_inc), -#endif _scale(_adjustment), _spin(_adjustment, climb_rate, digits) { signal_value_changed().connect(signal_attr_changed().make_slot()); @@ -43,11 +39,7 @@ SpinSlider::SpinSlider(double value, double lower, double upper, double step_inc Glib::ustring SpinSlider::get_as_attribute() const { -#if WITH_GTKMM_3_0 - const double val = _adjustment->get_value(); -#else - const double val = _adjustment.get_value(); -#endif + const auto val = _adjustment->get_value(); if(_spin.get_digits() == 0) return Glib::Ascii::dtostr((int)val); @@ -58,77 +50,43 @@ Glib::ustring SpinSlider::get_as_attribute() const void SpinSlider::set_from_attribute(SPObject* o) { const gchar* val = attribute_value(o); -#if WITH_GTKMM_3_0 if(val) _adjustment->set_value(Glib::Ascii::strtod(val)); else _adjustment->set_value(get_default()->as_double()); -#else - if(val) - _adjustment.set_value(Glib::Ascii::strtod(val)); - else - _adjustment.set_value(get_default()->as_double()); -#endif } Glib::SignalProxy0 SpinSlider::signal_value_changed() { -#if WITH_GTKMM_3_0 return _adjustment->signal_value_changed(); -#else - return _adjustment.signal_value_changed(); -#endif } double SpinSlider::get_value() const { -#if WITH_GTKMM_3_0 return _adjustment->get_value(); -#else - return _adjustment.get_value(); -#endif } void SpinSlider::set_value(const double val) { -#if WITH_GTKMM_3_0 _adjustment->set_value(val); -#else - _adjustment.set_value(val); -#endif } -#if WITH_GTKMM_3_0 -const Glib::RefPtr SpinSlider::get_adjustment() const -#else -const Gtk::Adjustment& SpinSlider::get_adjustment() const -#endif +const decltype(SpinSlider::_adjustment) SpinSlider::get_adjustment() const { return _adjustment; } -#if WITH_GTKMM_3_0 -Glib::RefPtr SpinSlider::get_adjustment() -#else -Gtk::Adjustment& SpinSlider::get_adjustment() -#endif + +decltype(SpinSlider::_adjustment) SpinSlider::get_adjustment() { return _adjustment; } -#if WITH_GTKMM_3_0 const Gtk::Scale& SpinSlider::get_scale() const -#else -const Gtk::HScale& SpinSlider::get_scale() const -#endif { return _scale; } -#if WITH_GTKMM_3_0 Gtk::Scale& SpinSlider::get_scale() -#else -Gtk::HScale& SpinSlider::get_scale() -#endif { return _scale; } @@ -157,15 +115,9 @@ DualSpinSlider::DualSpinSlider(double value, double lower, double upper, double { signal_value_changed().connect(signal_attr_changed().make_slot()); -#if WITH_GTKMM_3_0 _s1.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot()); _s2.get_adjustment()->signal_value_changed().connect(_signal_value_changed.make_slot()); _s1.get_adjustment()->signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked)); -#else - _s1.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot()); - _s2.get_adjustment().signal_value_changed().connect(_signal_value_changed.make_slot()); - _s1.get_adjustment().signal_value_changed().connect(sigc::mem_fun(*this, &DualSpinSlider::update_linked)); -#endif _link.signal_toggled().connect(sigc::mem_fun(*this, &DualSpinSlider::link_toggled)); Gtk::VBox* vb = Gtk::manage(new Gtk::VBox); @@ -202,13 +154,8 @@ void DualSpinSlider::set_from_attribute(SPObject* o) _link.set_active(toks[1] == 0); -#if WITH_GTKMM_3_0 _s1.get_adjustment()->set_value(v1); _s2.get_adjustment()->set_value(v2); -#else - _s1.get_adjustment().set_value(v1); - _s2.get_adjustment().set_value(v2); -#endif g_strfreev(toks); } diff --git a/src/ui/widget/spin-slider.h b/src/ui/widget/spin-slider.h index a5999f14f..5a29c1b67 100644 --- a/src/ui/widget/spin-slider.h +++ b/src/ui/widget/spin-slider.h @@ -42,17 +42,8 @@ public: double get_value() const; void set_value(const double); -#if WITH_GTKMM_3_0 - const Glib::RefPtr get_adjustment() const; - Glib::RefPtr get_adjustment(); const Gtk::Scale& get_scale() const; Gtk::Scale& get_scale(); -#else - const Gtk::Adjustment& get_adjustment() const; - Gtk::Adjustment& get_adjustment(); - const Gtk::HScale& get_scale() const; - Gtk::HScale& get_scale(); -#endif const Inkscape::UI::Widget::SpinButton& get_spin_button() const; Inkscape::UI::Widget::SpinButton& get_spin_button(); @@ -60,14 +51,13 @@ public: // Change the SpinSlider into a SpinButton with AttrWidget support) void remove_scale(); private: -#if WITH_GTKMM_3_0 Glib::RefPtr _adjustment; Gtk::Scale _scale; -#else - Gtk::Adjustment _adjustment; - Gtk::HScale _scale; -#endif Inkscape::UI::Widget::SpinButton _spin; + +public: + const decltype(_adjustment) get_adjustment() const; + decltype(_adjustment) get_adjustment(); }; /** diff --git a/src/ui/widget/style-swatch.cpp b/src/ui/widget/style-swatch.cpp index 188be705d..21701c4c0 100644 --- a/src/ui/widget/style-swatch.cpp +++ b/src/ui/widget/style-swatch.cpp @@ -34,11 +34,7 @@ #include "verbs.h" #include -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include enum { SS_FILL, @@ -117,11 +113,7 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip) _css(NULL), _tool_obs(NULL), _style_obs(NULL), -#if WITH_GTKMM_3_0 _table(Gtk::manage(new Gtk::Grid())), -#else - _table(Gtk::manage(new Gtk::Table(2, 6))), -#endif _sw_unit(NULL) { set_name("StyleSwatch"); @@ -139,13 +131,8 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip) _opacity_value.set_alignment(0.0, 0.5); _opacity_value.set_padding(0, 0); -#if WITH_GTKMM_3_0 _table->set_column_spacing(2); _table->set_row_spacing(0); -#else - _table->set_col_spacings(2); - _table->set_row_spacings(0); -#endif _stroke.pack_start(_place[SS_STROKE]); _stroke_width_place.add(_stroke_width); @@ -153,19 +140,11 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip) _opacity_place.add(_opacity_value); -#if WITH_GTKMM_3_0 _table->attach(_label[SS_FILL], 0, 0, 1, 1); _table->attach(_label[SS_STROKE], 0, 1, 1, 1); _table->attach(_place[SS_FILL], 1, 0, 1, 1); _table->attach(_stroke, 1, 1, 1, 1); _table->attach(_opacity_place, 2, 0, 1, 2); -#else - _table->attach(_label[SS_FILL], 0,1, 0,1, Gtk::FILL, Gtk::SHRINK); - _table->attach(_label[SS_STROKE], 0,1, 1,2, Gtk::FILL, Gtk::SHRINK); - _table->attach(_place[SS_FILL], 1,2, 0,1); - _table->attach(_stroke, 1,2, 1,2); - _table->attach(_opacity_place, 2,3, 0,2, Gtk::SHRINK, Gtk::SHRINK); -#endif _swatch.add(*_table); pack_start(_swatch, true, true, 0); diff --git a/src/ui/widget/style-swatch.h b/src/ui/widget/style-swatch.h index 0016e0256..81a907d16 100644 --- a/src/ui/widget/style-swatch.h +++ b/src/ui/widget/style-swatch.h @@ -29,11 +29,7 @@ class SPStyle; class SPCSSAttr; namespace Gtk { -#if WITH_GTKMM_3_0 class Grid; -#else -class Table; -#endif } namespace Inkscape { @@ -75,11 +71,7 @@ private: Gtk::EventBox _swatch; -#if WITH_GTKMM_3_0 Gtk::Grid *_table; -#else - Gtk::Table *_table; -#endif Gtk::Label _label[2]; Gtk::EventBox _place[2]; diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp index ced811c57..a87ed7c0f 100644 --- a/src/ui/widget/tolerance-slider.cpp +++ b/src/ui/widget/tolerance-slider.cpp @@ -76,12 +76,8 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la // align the label with the checkbox text above by indenting 22 px. _hbox->pack_start(*theLabel1, Gtk::PACK_EXPAND_WIDGET, 22); -#if WITH_GTKMM_3_0 _hscale = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL)); _hscale->set_range(1.0, 51.0); -#else - _hscale = Gtk::manage (new Gtk::HScale (1.0, 51, 1.0)); -#endif theLabel1->set_mnemonic_widget (*_hscale); _hscale->set_draw_value (true); @@ -121,11 +117,7 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la void ToleranceSlider::setValue (double val) { -#if WITH_GTKMM_3_0 - Glib::RefPtr adj = _hscale->get_adjustment(); -#else - Gtk::Adjustment *adj = _hscale->get_adjustment(); -#endif + auto adj = _hscale->get_adjustment(); adj->set_lower (1.0); adj->set_upper (51.0); diff --git a/src/ui/widget/tolerance-slider.h b/src/ui/widget/tolerance-slider.h index 7ae8e4712..3d2548ebe 100644 --- a/src/ui/widget/tolerance-slider.h +++ b/src/ui/widget/tolerance-slider.h @@ -14,11 +14,7 @@ namespace Gtk { class RadioButton; -#if WITH_GTKMM_3_0 class Scale; -#else -class HScale; -#endif } namespace Inkscape { @@ -60,13 +56,7 @@ protected: void on_toggled(); void update (double val); Gtk::HBox *_hbox; - -#if WITH_GTKMM_3_0 Gtk::Scale *_hscale; -#else - Gtk::HScale *_hscale; -#endif - Gtk::RadioButtonGroup _radio_button_group; Gtk::RadioButton *_button1; Gtk::RadioButton *_button2; diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 164a06910..ef1f31751 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -2211,7 +2211,6 @@ set_adjustment (GtkAdjustment *adj, double l, double u, double ps, double si, do gtk_adjustment_set_page_size(adj, ps); gtk_adjustment_set_step_increment(adj, si); gtk_adjustment_set_page_increment(adj, pi); - gtk_adjustment_changed (adj); } } -- cgit v1.2.3 From dcd91f59f597ab4af07cee5929ce0e2e1f9104d5 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 28 Jul 2016 16:16:18 +0100 Subject: Drop remaining GTKMM 2 fallback support (bzr r15023.2.7) --- CMakeScripts/DefineDependsandFlags.cmake | 1 - configure.ac | 3 +- src/color-profile.cpp | 45 +----- src/desktop-events.cpp | 4 +- src/ui/clipboard.cpp | 11 +- src/ui/dialog/aboutbox.cpp | 14 +- src/ui/dialog/align-and-distribute.cpp | 38 +---- src/ui/dialog/align-and-distribute.h | 38 +---- src/ui/dialog/calligraphic-profile-rename.cpp | 25 +-- src/ui/dialog/calligraphic-profile-rename.h | 9 -- src/ui/dialog/clonetiler.cpp | 217 ++++---------------------- src/ui/dialog/clonetiler.h | 5 - src/ui/dialog/debug.cpp | 7 +- src/ui/dialog/document-metadata.cpp | 31 ---- src/ui/dialog/document-metadata.h | 12 +- src/ui/dialog/document-properties.cpp | 129 +-------------- src/ui/dialog/document-properties.h | 6 +- src/ui/dialog/export.cpp | 90 +---------- src/ui/dialog/export.h | 40 ----- src/ui/dialog/filedialogimpl-gtkmm.cpp | 86 ++-------- src/ui/dialog/filedialogimpl-win32.cpp | 4 - src/ui/dialog/fill-and-stroke.cpp | 19 --- src/ui/dialog/fill-and-stroke.h | 4 - src/ui/dialog/filter-effects-dialog.cpp | 164 ++----------------- src/ui/dialog/filter-effects-dialog.h | 12 -- src/ui/dialog/find.h | 6 - src/ui/dialog/floating-behavior.cpp | 8 - src/ui/dialog/glyphs.cpp | 79 +--------- src/ui/dialog/grid-arrange-tab.cpp | 20 +-- src/ui/dialog/grid-arrange-tab.h | 5 - src/ui/dialog/guides.cpp | 58 +------ src/ui/dialog/guides.h | 12 +- src/ui/dialog/icon-preview.h | 6 - src/ui/dialog/inkscape-preferences.cpp | 42 +---- src/ui/dialog/inkscape-preferences.h | 8 - src/ui/dialog/input.cpp | 131 +--------------- src/ui/dialog/layer-properties.cpp | 31 +--- src/ui/dialog/layer-properties.h | 10 -- src/ui/dialog/layers.cpp | 4 - src/ui/dialog/layers.h | 6 - src/ui/dialog/livepatheffect-add.cpp | 6 +- src/ui/dialog/livepatheffect-editor.cpp | 7 - src/ui/dialog/livepatheffect-editor.h | 4 - src/ui/dialog/new-from-template.cpp | 8 - src/ui/dialog/object-properties.cpp | 94 +---------- src/ui/dialog/object-properties.h | 4 - src/ui/dialog/objects.cpp | 21 --- src/ui/dialog/objects.h | 10 -- src/ui/dialog/ocaldialogs.cpp | 162 +------------------ src/ui/dialog/ocaldialogs.h | 41 +---- src/ui/dialog/polar-arrange-tab.cpp | 31 ---- src/ui/dialog/polar-arrange-tab.h | 11 +- src/ui/dialog/spellcheck.h | 15 -- src/ui/dialog/svg-fonts-dialog.cpp | 5 - src/ui/dialog/svg-fonts-dialog.h | 9 -- src/ui/dialog/swatches.cpp | 4 - src/ui/dialog/symbols.cpp | 49 +----- src/ui/dialog/tags.cpp | 4 - src/ui/dialog/tags.h | 6 - src/ui/dialog/text-edit.cpp | 25 +-- src/ui/dialog/text-edit.h | 11 -- src/ui/dialog/tile.h | 5 - src/ui/dialog/transformation.cpp | 102 ------------ src/ui/dialog/transformation.h | 4 - src/ui/dialog/undo-history.cpp | 33 ---- src/ui/dialog/undo-history.h | 18 --- src/ui/dialog/xml-tree.cpp | 18 --- src/ui/dialog/xml-tree.h | 11 -- src/ui/previewholder.cpp | 119 +++----------- src/ui/previewholder.h | 9 -- src/ui/tools/tool-base.cpp | 6 - src/widgets/dash-selector.cpp | 14 +- src/widgets/dash-selector.h | 5 - src/widgets/desktop-widget.cpp | 178 ++------------------- src/widgets/sp-attribute-widget.cpp | 27 +--- src/widgets/sp-attribute-widget.h | 9 -- src/widgets/stroke-style.cpp | 60 ------- src/widgets/stroke-style.h | 11 -- src/widgets/toolbox.cpp | 55 ++----- 79 files changed, 165 insertions(+), 2486 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 7117c1f7e..2c5acaff3 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -247,7 +247,6 @@ set(TRY_GTKSPELL 1) gdl-3.0>=3.4 ) list(APPEND INKSCAPE_CXX_FLAGS ${GTK3_CFLAGS_OTHER}) - set(WITH_GTKMM_3_0 1) set(WITH_EXT_GDL 1) # Check whether we can use new features in Gtkmm 3.10 diff --git a/configure.ac b/configure.ac index bd20b8e6d..d18c62a95 100644 --- a/configure.ac +++ b/configure.ac @@ -731,8 +731,7 @@ AC_CHECK_HEADER([boost/unordered_set.hpp], [AC_DEFINE(HAVE_BOOST_UNORDERED_SET, gdkmm-3.0 >= 3.8) -dnl Drop these hacks as soon as we've got rid of all GTK+ 2/3 conditional blocks -AC_DEFINE([WITH_GTKMM_3_0], [1], [Use GTKmm 3.0 or higher]) +dnl Drop this hack as soon as we've got rid of all GTK+ 2/3 conditional blocks AC_DEFINE([WITH_EXT_GDL], [1], [Use external GDL]) # Check whether we can use new features in Gtkmm 3.10 diff --git a/src/color-profile.cpp b/src/color-profile.cpp index aea9ccab0..031d3f6f5 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -4,11 +4,7 @@ #define noDEBUG_LCMS -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include #include @@ -1002,11 +998,7 @@ void loadProfiles() static bool gamutWarn = false; -#if WITH_GTKMM_3_0 static Gdk::RGBA lastGamutColor("#808080"); -#else -static Gdk::Color lastGamutColor("#808080"); -#endif static bool lastBPC = false; #if defined(cmsFLAGS_PRESERVEBLACK) @@ -1152,12 +1144,7 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayTransform() bool preserveBlack = prefs->getBool( "/options/softproof/preserveblack"); #endif //defined(cmsFLAGS_PRESERVEBLACK) Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor"); - -#if WITH_GTKMM_3_0 Gdk::RGBA gamutColor( colorStr.empty() ? "#808080" : colorStr ); -#else - Gdk::Color gamutColor( colorStr.empty() ? "#808080" : colorStr ); -#endif if ( (warn != gamutWarn) || (lastIntent != intent) @@ -1189,15 +1176,9 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayTransform() if ( gamutWarn ) { dwFlags |= cmsFLAGS_GAMUTCHECK; -#if WITH_GTKMM_3_0 - gushort gamutColor_r = gamutColor.get_red_u(); - gushort gamutColor_g = gamutColor.get_green_u(); - gushort gamutColor_b = gamutColor.get_blue_u(); -#else - gushort gamutColor_r = gamutColor.get_red(); - gushort gamutColor_g = gamutColor.get_green(); - gushort gamutColor_b = gamutColor.get_blue(); -#endif + auto gamutColor_r = gamutColor.get_red_u(); + auto gamutColor_g = gamutColor.get_green_u(); + auto gamutColor_b = gamutColor.get_blue_u(); #if HAVE_LIBLCMS1 cmsSetAlarmCodes(gamutColor_r >> 8, gamutColor_g >> 8, gamutColor_b >> 8); @@ -1338,12 +1319,7 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayPer( Glib::ustring const& id ) bool preserveBlack = prefs->getBool( "/options/softproof/preserveblack"); #endif //defined(cmsFLAGS_PRESERVEBLACK) Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor"); - -#if WITH_GTKMM_3_0 Gdk::RGBA gamutColor( colorStr.empty() ? "#808080" : colorStr ); -#else - Gdk::Color gamutColor( colorStr.empty() ? "#808080" : colorStr ); -#endif if ( (warn != gamutWarn) || (lastIntent != intent) @@ -1373,16 +1349,9 @@ cmsHTRANSFORM Inkscape::CMSSystem::getDisplayPer( Glib::ustring const& id ) cmsUInt32Number dwFlags = cmsFLAGS_SOFTPROOFING; if ( gamutWarn ) { dwFlags |= cmsFLAGS_GAMUTCHECK; - -#if WITH_GTKMM_3_0 - gushort gamutColor_r = gamutColor.get_red_u(); - gushort gamutColor_g = gamutColor.get_green_u(); - gushort gamutColor_b = gamutColor.get_blue_u(); -#else - gushort gamutColor_r = gamutColor.get_red(); - gushort gamutColor_g = gamutColor.get_green(); - gushort gamutColor_b = gamutColor.get_blue(); -#endif + auto gamutColor_r = gamutColor.get_red_u(); + auto gamutColor_g = gamutColor.get_green_u(); + auto gamutColor_b = gamutColor.get_blue_u(); #if HAVE_LIBLCMS1 cmsSetAlarmCodes(gamutColor_r >> 8, gamutColor_g >> 8, gamutColor_b >> 8); diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp index b9bd949ff..9ad06e2ec 100644 --- a/src/desktop-events.cpp +++ b/src/desktop-events.cpp @@ -21,9 +21,7 @@ #include "ui/dialog/guides.h" #include "desktop-events.h" -#if WITH_GTKMM_3_0 -# include -#endif +#include #include <2geom/line.h> #include <2geom/angle.h> diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index d581dbf7e..6b24c5a2d 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -1300,11 +1300,7 @@ Geom::Scale ClipboardManagerImpl::_getScale(SPDesktop *desktop, Geom::Point cons */ Glib::ustring ClipboardManagerImpl::_getBestTarget() { -#if WITH_GTKMM_3_0 - std::vector targets = _clipboard->wait_for_targets(); -#else - std::list targets = _clipboard->wait_for_targets(); -#endif + auto targets = _clipboard->wait_for_targets(); // clipboard target debugging snippet /* @@ -1363,12 +1359,7 @@ void ClipboardManagerImpl::_setClipboardTargets() { Inkscape::Extension::DB::OutputList outlist; Inkscape::Extension::db.get_output_list(outlist); - -#if WITH_GTKMM_3_0 std::vector target_list; -#else - std::list target_list; -#endif bool plaintextSet = false; for (Inkscape::Extension::DB::OutputList::const_iterator out = outlist.begin() ; out != outlist.end() ; ++out) { diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index 6276d3391..ffb46fd1b 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -98,11 +98,7 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { tabs->append_page(*manage( make_scrolled_text(license_text)), _("_License"), true); -#if WITH_GTKMM_3_0 get_content_area()->pack_end(*manage(tabs), true, true); -#else - get_vbox()->pack_end(*manage(tabs), true, true); -#endif tabs->show_all(); @@ -130,20 +126,12 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { link->set_selectable(true); link->show(); -#if WITH_GTKMM_3_0 get_content_area()->pack_start(*manage(label), false, false); get_content_area()->pack_start(*manage(link), false, false); -#else - get_vbox()->pack_start(*manage(label), false, false); - get_vbox()->pack_start(*manage(link), false, false); -#endif Gtk::Requisition requisition; -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_get_preferred_size(reinterpret_cast(gobj()), &requisition, NULL); -#else - gtk_widget_size_request (reinterpret_cast(gobj()), &requisition); -#endif + // allow window to shrink set_size_request(0, 0); set_default_size(requisition.width, requisition.height); diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp index 8f87932b8..971275e59 100644 --- a/src/ui/dialog/align-and-distribute.cpp +++ b/src/ui/dialog/align-and-distribute.cpp @@ -61,11 +61,7 @@ namespace Dialog { Action::Action(const Glib::ustring &id, const Glib::ustring &tiptext, guint row, guint column, -#if WITH_GTKMM_3_0 - Gtk::Grid &parent, -#else - Gtk::Table &parent, -#endif + Gtk::Grid &parent, AlignAndDistribute &dialog): _dialog(dialog), _id(id), @@ -81,11 +77,7 @@ Action::Action(const Glib::ustring &id, pButton->signal_clicked() .connect(sigc::mem_fun(*this, &Action::on_button_click)); pButton->set_tooltip_text(tiptext); -#if WITH_GTKMM_3_0 parent.attach(*pButton, column, row, 1, 1); -#else - parent.attach(*pButton, column, column+1, row, row+1, Gtk::FILL, Gtk::FILL); -#endif } @@ -447,11 +439,7 @@ public: Action(id, tiptext, row, column + 4, dialog.removeOverlap_table(), dialog) { -#if WITH_GTKMM_3_0 dialog.removeOverlap_table().set_column_spacing(3); -#else - dialog.removeOverlap_table().set_col_spacings(3); -#endif removeOverlapXGap.set_digits(1); removeOverlapXGap.set_size_request(60, -1); @@ -473,17 +461,10 @@ public: removeOverlapYGapLabel.set_text_with_mnemonic(C_("Gap", "_V:")); removeOverlapYGapLabel.set_mnemonic_widget(removeOverlapYGap); -#if WITH_GTKMM_3_0 dialog.removeOverlap_table().attach(removeOverlapXGapLabel, column, row, 1, 1); dialog.removeOverlap_table().attach(removeOverlapXGap, column+1, row, 1, 1); dialog.removeOverlap_table().attach(removeOverlapYGapLabel, column+2, row, 1, 1); dialog.removeOverlap_table().attach(removeOverlapYGap, column+3, row, 1, 1); -#else - dialog.removeOverlap_table().attach(removeOverlapXGapLabel, column, column+1, row, row+1, Gtk::FILL, Gtk::FILL); - dialog.removeOverlap_table().attach(removeOverlapXGap, column+1, column+2, row, row+1, Gtk::FILL, Gtk::FILL); - dialog.removeOverlap_table().attach(removeOverlapYGapLabel, column+2, column+3, row, row+1, Gtk::FILL, Gtk::FILL); - dialog.removeOverlap_table().attach(removeOverlapYGap, column+3, column+4, row, row+1, Gtk::FILL, Gtk::FILL); -#endif } private : @@ -762,11 +743,7 @@ public : guint row, guint column, AlignAndDistribute &dialog, -#if WITH_GTKMM_3_0 Gtk::Grid &table, -#else - Gtk::Table &table, -#endif Geom::Dim2 orientation, bool distribute): Action(id, tiptext, row, column, table, dialog), @@ -939,19 +916,11 @@ AlignAndDistribute::AlignAndDistribute() _rearrangeFrame(_("Rearrange")), _removeOverlapFrame(_("Remove overlaps")), _nodesFrame(_("Nodes")), -#if WITH_GTKMM_3_0 _alignTable(), _distributeTable(), _rearrangeTable(), _removeOverlapTable(), _nodesTable(), -#else - _alignTable(2, 6, true), - _distributeTable(2, 6, true), - _rearrangeTable(1, 5, false), - _removeOverlapTable(1, 5, false), - _nodesTable(1, 4, true), -#endif _anchorLabel(_("Relative to: ")), _anchorLabelNode(_("Relative to: ")), _selgrpLabel(_("_Treat selection as group: "), 1) @@ -1316,13 +1285,8 @@ void AlignAndDistribute::addRandomizeButton(const Glib::ustring &id, const Glib: ); } -#if WITH_GTKMM_3_0 void AlignAndDistribute::addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext, guint row, guint col, Gtk::Grid &table, Geom::Dim2 orientation, bool distribute) -#else -void AlignAndDistribute::addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext, - guint row, guint col, Gtk::Table &table, Geom::Dim2 orientation, bool distribute) -#endif { _actionList.push_back( new ActionBaseline( diff --git a/src/ui/dialog/align-and-distribute.h b/src/ui/dialog/align-and-distribute.h index f8cc61af2..acb3d02ed 100644 --- a/src/ui/dialog/align-and-distribute.h +++ b/src/ui/dialog/align-and-distribute.h @@ -22,15 +22,11 @@ #include #include #include -#include "2geom/rect.h" -#include "ui/dialog/desktop-tracker.h" - -#if WITH_GTKMM_3_0 #include #include -#else -#include -#endif + +#include "2geom/rect.h" +#include "ui/dialog/desktop-tracker.h" class SPItem; @@ -51,19 +47,11 @@ public: static AlignAndDistribute &getInstance() { return *new AlignAndDistribute(); } -#if WITH_GTKMM_3_0 Gtk::Grid &align_table(){return _alignTable;} Gtk::Grid &distribute_table(){return _distributeTable;} Gtk::Grid &rearrange_table(){return _rearrangeTable;} Gtk::Grid &removeOverlap_table(){return _removeOverlapTable;} Gtk::Grid &nodes_table(){return _nodesTable;} -#else - Gtk::Table &align_table(){return _alignTable;} - Gtk::Table &distribute_table(){return _distributeTable;} - Gtk::Table &rearrange_table(){return _rearrangeTable;} - Gtk::Table &removeOverlap_table(){return _removeOverlapTable;} - Gtk::Table &nodes_table(){return _nodesTable;} -#endif void setMode(bool nodeEdit); @@ -100,22 +88,13 @@ protected: guint row, guint col); void addRandomizeButton(const Glib::ustring &id, const Glib::ustring tiptext, guint row, guint col); -#if WITH_GTKMM_3_0 void addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext, guint row, guint col, Gtk::Grid &table, Geom::Dim2 orientation, bool distribute); -#else - void addBaselineButton(const Glib::ustring &id, const Glib::ustring tiptext, - guint row, guint col, Gtk::Table &table, Geom::Dim2 orientation, bool distribute); -#endif void setTargetDesktop(SPDesktop *desktop); std::list _actionList; UI::Widget::Frame _alignFrame, _distributeFrame, _rearrangeFrame, _removeOverlapFrame, _nodesFrame; -#if WITH_GTKMM_3_0 Gtk::Grid _alignTable, _distributeTable, _rearrangeTable, _removeOverlapTable, _nodesTable; -#else - Gtk::Table _alignTable, _distributeTable, _rearrangeTable, _removeOverlapTable, _nodesTable; -#endif Gtk::HBox _anchorBox; Gtk::HBox _selgrpBox; Gtk::VBox _alignBox; @@ -163,11 +142,7 @@ public : Action(const Glib::ustring &id, const Glib::ustring &tiptext, guint row, guint column, - #if WITH_GTKMM_3_0 - Gtk::Grid &parent, - #else - Gtk::Table &parent, - #endif + Gtk::Grid &parent, AlignAndDistribute &dialog); virtual ~Action(){} @@ -178,12 +153,7 @@ private : virtual void on_button_click(){} Glib::ustring _id; - -#if WITH_GTKMM_3_0 Gtk::Grid &_parent; -#else - Gtk::Table &_parent; -#endif }; diff --git a/src/ui/dialog/calligraphic-profile-rename.cpp b/src/ui/dialog/calligraphic-profile-rename.cpp index 9ae22db2d..50dae0fd8 100644 --- a/src/ui/dialog/calligraphic-profile-rename.cpp +++ b/src/ui/dialog/calligraphic-profile-rename.cpp @@ -16,12 +16,7 @@ #include "calligraphic-profile-rename.h" #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include "desktop.h" @@ -30,40 +25,24 @@ namespace UI { namespace Dialog { CalligraphicProfileRename::CalligraphicProfileRename() : -#if WITH_GTKMM_3_0 _layout_table(Gtk::manage(new Gtk::Grid())), -#else - _layout_table(Gtk::manage(new Gtk::Table(1, 2))), -#endif _applied(false) { set_title(_("Edit profile")); -#if WITH_GTKMM_3_0 - Gtk::Box *mainVBox = get_content_area(); + auto mainVBox = get_content_area(); _layout_table->set_column_spacing(4); _layout_table->set_row_spacing(4); -#else - Gtk::Box *mainVBox = get_vbox(); - _layout_table->set_spacings(4); -#endif _profile_name_entry.set_activates_default(true); _profile_name_label.set_label(_("Profile name:")); _profile_name_label.set_alignment(1.0, 0.5); -#if WITH_GTKMM_3_0 _layout_table->attach(_profile_name_label, 0, 0, 1, 1); _profile_name_entry.set_hexpand(); _layout_table->attach(_profile_name_entry, 1, 0, 1, 1); -#else - _layout_table->attach(_profile_name_label, - 0, 1, 0, 1, Gtk::FILL, Gtk::FILL); - _layout_table->attach(_profile_name_entry, - 1, 2, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL); -#endif mainVBox->pack_start(*_layout_table, false, false, 4); // Buttons diff --git a/src/ui/dialog/calligraphic-profile-rename.h b/src/ui/dialog/calligraphic-profile-rename.h index 4ef71900b..b7a97a1e7 100644 --- a/src/ui/dialog/calligraphic-profile-rename.h +++ b/src/ui/dialog/calligraphic-profile-rename.h @@ -20,11 +20,7 @@ #include namespace Gtk { -#if WITH_GTKMM_3_0 class Grid; -#else -class Table; -#endif } class SPDesktop; @@ -59,12 +55,7 @@ protected: Gtk::Label _profile_name_label; Gtk::Entry _profile_name_entry; - -#if WITH_GTKMM_3_0 Gtk::Grid* _layout_table; -#else - Gtk::Table* _layout_table; -#endif Gtk::Button _close_button; Gtk::Button _delete_button; diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index b727c87ee..da00b7b00 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -91,12 +91,8 @@ CloneTiler::CloneTiler () : dlg = GTK_WIDGET(gobj()); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *mainbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); + auto mainbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); gtk_box_set_homogeneous(GTK_BOX(mainbox), FALSE); -#else - GtkWidget *mainbox = gtk_vbox_new(FALSE, 4); -#endif gtk_container_set_border_width (GTK_CONTAINER (mainbox), 6); contents->pack_start (*Gtk::manage(Glib::wrap(mainbox)), true, true, 0); @@ -651,12 +647,8 @@ CloneTiler::CloneTiler () : GtkWidget *vb = clonetiler_new_tab (nb, _("Co_lor")); { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new (FALSE, 0); -#endif GtkWidget *l = gtk_label_new (_("Initial color: ")); gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0); @@ -777,12 +769,8 @@ CloneTiler::CloneTiler () : { GtkWidget *vb = clonetiler_new_tab (nb, _("_Trace")); { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif gtk_box_pack_start (GTK_BOX (vb), hb, FALSE, FALSE, 0); b = gtk_check_button_new_with_label (_("Trace the drawing under the clones/sprayed items")); @@ -797,12 +785,8 @@ CloneTiler::CloneTiler () : } { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *vvb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + auto vvb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_set_homogeneous(GTK_BOX(vvb), FALSE); -#else - GtkWidget *vvb = gtk_vbox_new (FALSE, 0); -#endif gtk_box_pack_start (GTK_BOX (vb), vvb, FALSE, FALSE, 0); g_object_set_data (G_OBJECT(dlg), "dotrace", (gpointer) vvb); @@ -811,15 +795,9 @@ CloneTiler::CloneTiler () : GtkWidget *frame = gtk_frame_new (_("1. Pick from the drawing:")); gtk_box_pack_start (GTK_BOX (vvb), frame, FALSE, FALSE, 0); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *table = gtk_grid_new(); + auto table = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(table), 4); gtk_grid_set_column_spacing(GTK_GRID(table), 6); -#else - GtkWidget *table = gtk_table_new (3, 3, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table), 4); - gtk_table_set_col_spacings (GTK_TABLE (table), 6); -#endif gtk_container_add(GTK_CONTAINER(frame), table); @@ -895,15 +873,9 @@ CloneTiler::CloneTiler () : GtkWidget *frame = gtk_frame_new (_("2. Tweak the picked value:")); gtk_box_pack_start (GTK_BOX (vvb), frame, FALSE, FALSE, VB_MARGIN); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *table = gtk_grid_new(); + auto table = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(table), 4); gtk_grid_set_column_spacing(GTK_GRID(table), 6); -#else - GtkWidget *table = gtk_table_new (4, 2, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table), 4); - gtk_table_set_col_spacings (GTK_TABLE (table), 6); -#endif gtk_container_add(GTK_CONTAINER(frame), table); @@ -944,15 +916,9 @@ CloneTiler::CloneTiler () : GtkWidget *frame = gtk_frame_new (_("3. Apply the value to the clones':")); gtk_box_pack_start (GTK_BOX (vvb), frame, FALSE, FALSE, 0); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *table = gtk_grid_new(); + auto table = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(table), 4); gtk_grid_set_column_spacing(GTK_GRID(table), 6); -#else - GtkWidget *table = gtk_table_new (2, 2, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table), 4); - gtk_table_set_col_spacings (GTK_TABLE (table), 6); -#endif gtk_container_add(GTK_CONTAINER(frame), table); { @@ -1000,12 +966,8 @@ CloneTiler::CloneTiler () : } { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0); GtkWidget *l = gtk_label_new(_("")); gtk_label_set_markup (GTK_LABEL(l), _("Apply to tiled clones:")); @@ -1013,42 +975,24 @@ CloneTiler::CloneTiler () : } // Rows/columns, width/height { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *table = gtk_grid_new(); + auto table = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(table), 4); gtk_grid_set_column_spacing(GTK_GRID(table), 6); -#else - GtkWidget *table = gtk_table_new (2, 2, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table), 4); - gtk_table_set_col_spacings (GTK_TABLE (table), 6); -#endif gtk_container_set_border_width (GTK_CONTAINER (table), VB_MARGIN); gtk_box_pack_start (GTK_BOX (mainbox), table, FALSE, FALSE, 0); { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif g_object_set_data (G_OBJECT(dlg), "rowscols", (gpointer) hb); { -#if WITH_GTKMM_3_0 - Glib::RefPtra = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0); -#else - Gtk::Adjustment *a = new Gtk::Adjustment (0.0, 1, 500, 1, 10, 0); -#endif + auto a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0); int value = prefs->getInt(prefs_path + "jmax", 2); a->set_value (value); -#if WITH_GTKMM_3_0 - Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0); -#else - Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton (*a, 1.0, 0); -#endif + auto sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0); sb->set_tooltip_text (_("How many rows in the tiling")); sb->set_width_chars (7); gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(sb->gobj()), TRUE, TRUE, 0); @@ -1061,28 +1005,16 @@ CloneTiler::CloneTiler () : { GtkWidget *l = gtk_label_new (""); gtk_label_set_markup (GTK_LABEL(l), "×"); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(l, GTK_ALIGN_END); -#else - gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5); -#endif gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0); } { -#if WITH_GTKMM_3_0 - Glib::RefPtr a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0); -#else - Gtk::Adjustment *a = new Gtk::Adjustment (0.0, 1, 500, 1, 10, 0); -#endif + auto a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0); int value = prefs->getInt(prefs_path + "imax", 2); a->set_value (value); -#if WITH_GTKMM_3_0 - Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0); -#else - Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton (*a, 1.0, 0); -#endif + auto sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0); sb->set_tooltip_text (_("How many columns in the tiling")); sb->set_width_chars (7); gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(sb->gobj()), TRUE, TRUE, 0); @@ -1096,12 +1028,8 @@ CloneTiler::CloneTiler () : } { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif g_object_set_data (G_OBJECT(dlg), "widthheight", (gpointer) hb); // unitmenu @@ -1112,59 +1040,39 @@ CloneTiler::CloneTiler () : { // Width spinbutton -#if WITH_GTKMM_3_0 fill_width = Gtk::Adjustment::create(0.0, -1e6, 1e6, 1.0, 10.0, 0); -#else - fill_width = new Gtk::Adjustment (0.0, -1e6, 1e6, 1.0, 10.0, 0); -#endif double value = prefs->getDouble(prefs_path + "fillwidth", 50.0); Inkscape::Util::Unit const *unit = unit_menu->getUnit(); gdouble const units = Inkscape::Util::Quantity::convert(value, "px", unit); fill_width->set_value (units); -#if WITH_GTKMM_3_0 - Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton(fill_width, 1.0, 2); -#else - Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton (*fill_width, 1.0, 2); -#endif + auto e = new Inkscape::UI::Widget::SpinButton(fill_width, 1.0, 2); e->set_tooltip_text (_("Width of the rectangle to be filled")); e->set_width_chars (7); e->set_digits (4); gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(e->gobj()), TRUE, TRUE, 0); // TODO: C++ification - g_signal_connect(G_OBJECT(fill_width->gobj()), "value_changed", + g_signal_connect(G_OBJECT(fill_width->gobj()), "value_changed", G_CALLBACK(clonetiler_fill_width_changed), unit_menu); } { GtkWidget *l = gtk_label_new (""); gtk_label_set_markup (GTK_LABEL(l), "×"); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(l, GTK_ALIGN_END); -#else - gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5); -#endif gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0); } { // Height spinbutton -#if WITH_GTKMM_3_0 fill_height = Gtk::Adjustment::create(0.0, -1e6, 1e6, 1.0, 10.0, 0); -#else - fill_height = new Gtk::Adjustment (0.0, -1e6, 1e6, 1.0, 10.0, 0); -#endif double value = prefs->getDouble(prefs_path + "fillheight", 50.0); Inkscape::Util::Unit const *unit = unit_menu->getUnit(); gdouble const units = Inkscape::Util::Quantity::convert(value, "px", unit); fill_height->set_value (units); -#if WITH_GTKMM_3_0 - Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton(fill_height, 1.0, 2); -#else - Inkscape::UI::Widget::SpinButton *e = new Inkscape::UI::Widget::SpinButton (*fill_height, 1.0, 2); -#endif + auto e = new Inkscape::UI::Widget::SpinButton(fill_height, 1.0, 2); e->set_tooltip_text (_("Height of the rectangle to be filled")); e->set_width_chars (7); e->set_digits (4); @@ -1206,12 +1114,8 @@ CloneTiler::CloneTiler () : // Use saved pos { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0); GtkWidget *b = gtk_check_button_new_with_label (_("Use saved size and position of the tile")); @@ -1226,12 +1130,8 @@ CloneTiler::CloneTiler () : // Statusbar { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif gtk_box_pack_end (GTK_BOX (mainbox), hb, FALSE, FALSE, 0); GtkWidget *l = gtk_label_new(""); g_object_set_data (G_OBJECT(dlg), "status", (gpointer) l); @@ -1240,12 +1140,8 @@ CloneTiler::CloneTiler () : // Buttons { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0); { @@ -1259,12 +1155,8 @@ CloneTiler::CloneTiler () : } { // buttons which are enabled only when there are tiled clones -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *sb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto sb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(sb), FALSE); -#else - GtkWidget *sb = gtk_hbox_new(FALSE, 0); -#endif gtk_box_pack_end (GTK_BOX (hb), sb, FALSE, FALSE, 0); g_object_set_data (G_OBJECT(dlg), "buttons_on_tiles", (gpointer) sb); { @@ -2673,12 +2565,8 @@ void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg) GtkWidget * CloneTiler::clonetiler_new_tab(GtkWidget *nb, const gchar *label) { GtkWidget *l = gtk_label_new_with_mnemonic (label); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, VB_MARGIN); + auto vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(vb), FALSE); -#else - GtkWidget *vb = gtk_vbox_new (FALSE, VB_MARGIN); -#endif gtk_container_set_border_width (GTK_CONTAINER (vb), VB_MARGIN); gtk_notebook_append_page (GTK_NOTEBOOK (nb), vb, l); return vb; @@ -2693,12 +2581,8 @@ void CloneTiler::clonetiler_checkbox_toggled(GtkToggleButton *tb, gpointer *data GtkWidget * CloneTiler::clonetiler_checkbox(const char *tip, const char *attr) { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, VB_MARGIN); -#endif GtkWidget *b = gtk_check_button_new (); gtk_widget_set_tooltip_text (b, tip); @@ -2725,44 +2609,23 @@ void CloneTiler::clonetiler_value_changed(GtkAdjustment *adj, gpointer data) GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent/* = false*/) { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, 0); -#endif { -#if WITH_GTKMM_3_0 Glib::RefPtr a; if (exponent) { a = Gtk::Adjustment::create(1.0, lower, upper, 0.01, 0.05, 0); } else { a = Gtk::Adjustment::create(0.0, lower, upper, 0.1, 0.5, 0); } -#else - Gtk::Adjustment *a; - if (exponent) { - a = new Gtk::Adjustment (1.0, lower, upper, 0.01, 0.05, 0); - } else { - a = new Gtk::Adjustment (0.0, lower, upper, 0.1, 0.5, 0); - } -#endif Inkscape::UI::Widget::SpinButton *sb; -#if WITH_GTKMM_3_0 if (exponent) { sb = new Inkscape::UI::Widget::SpinButton(a, 0.01, 2); } else { sb = new Inkscape::UI::Widget::SpinButton(a, 0.1, 1); } -#else - if (exponent) { - sb = new Inkscape::UI::Widget::SpinButton (*a, 0.01, 2); - } else { - sb = new Inkscape::UI::Widget::SpinButton (*a, 0.1, 1); - } -#endif sb->set_tooltip_text (tip); sb->set_width_chars (5); @@ -2786,12 +2649,8 @@ GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, do { GtkWidget *l = gtk_label_new (""); gtk_label_set_markup (GTK_LABEL(l), suffix); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(l, GTK_ALIGN_END); gtk_widget_set_valign(l, GTK_ALIGN_START); -#else - gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0); -#endif gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0); } @@ -2867,38 +2726,22 @@ void CloneTiler::clonetiler_reset(GtkWidget */*widget*/, GtkWidget *dlg) void CloneTiler::clonetiler_table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col) { -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(widget, GTK_ALIGN_FILL); gtk_widget_set_valign(widget, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(table), widget, col, row, 1, 1); -#else - GtkWidget *a = gtk_alignment_new (align, 0, 0, 0); - gtk_container_add(GTK_CONTAINER(a), widget); - gtk_table_attach ( GTK_TABLE (table), a, col, col + 1, row, row + 1, GTK_FILL, (GtkAttachOptions)0, 0, 0 ); -#endif } GtkWidget * CloneTiler::clonetiler_table_x_y_rand(int values) { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *table = gtk_grid_new(); + auto table = gtk_grid_new(); gtk_grid_set_row_spacing(GTK_GRID(table), 6); gtk_grid_set_column_spacing(GTK_GRID(table), 8); -#else - GtkWidget *table = gtk_table_new (values + 2, 5, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table), 6); - gtk_table_set_col_spacings (GTK_TABLE (table), 8); -#endif gtk_container_set_border_width (GTK_CONTAINER (table), VB_MARGIN); { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new (FALSE, 0); -#endif GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_DECORATION, INKSCAPE_ICON("object-rows")); gtk_box_pack_start (GTK_BOX (hb), i, FALSE, FALSE, 2); @@ -2911,12 +2754,8 @@ GtkWidget * CloneTiler::clonetiler_table_x_y_rand(int values) } { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new (FALSE, 0); -#endif GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_DECORATION, INKSCAPE_ICON("object-columns")); gtk_box_pack_start (GTK_BOX (hb), i, FALSE, FALSE, 2); diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h index a8f1df0a0..e76ad028e 100644 --- a/src/ui/dialog/clonetiler.h +++ b/src/ui/dialog/clonetiler.h @@ -121,13 +121,8 @@ private: GtkSizeGroup* table_row_labels; Inkscape::UI::Widget::UnitMenu *unit_menu; -#if WITH_GTKMM_3_0 Glib::RefPtr fill_width; Glib::RefPtr fill_height; -#else - Gtk::Adjustment *fill_width; - Gtk::Adjustment *fill_height; -#endif sigc::connection desktopChangeConn; sigc::connection selectChangedConn; diff --git a/src/ui/dialog/debug.cpp b/src/ui/dialog/debug.cpp index d127261c0..48d7abbdd 100644 --- a/src/ui/dialog/debug.cpp +++ b/src/ui/dialog/debug.cpp @@ -68,12 +68,7 @@ DebugDialogImpl::DebugDialogImpl() { set_title(_("Messages")); set_size_request(300, 400); - -#if WITH_GTKMM_3_0 - Gtk::Box *mainVBox = get_content_area(); -#else - Gtk::Box *mainVBox = get_vbox(); -#endif + auto mainVBox = get_content_area(); //## Add a menu for clear() Gtk::MenuItem* item = Gtk::manage(new Gtk::MenuItem(_("_File"), true)); diff --git a/src/ui/dialog/document-metadata.cpp b/src/ui/dialog/document-metadata.cpp index da1facc08..602c3d6be 100644 --- a/src/ui/dialog/document-metadata.cpp +++ b/src/ui/dialog/document-metadata.cpp @@ -61,12 +61,7 @@ DocumentMetadata::getInstance() DocumentMetadata::DocumentMetadata() -#if WITH_GTKMM_3_0 : UI::Widget::Panel ("", "/dialogs/documentmetadata", SP_VERB_DIALOG_METADATA) -#else - : UI::Widget::Panel ("", "/dialogs/documentmetadata", SP_VERB_DIALOG_METADATA), - _page_metadata1(1, 1), _page_metadata2(1, 1) -#endif { hide(); _getContents()->set_spacing (4); @@ -75,15 +70,10 @@ DocumentMetadata::DocumentMetadata() _page_metadata1.set_border_width(2); _page_metadata2.set_border_width(2); -#if WITH_GTKMM_3_0 _page_metadata1.set_column_spacing(2); _page_metadata2.set_column_spacing(2); _page_metadata1.set_row_spacing(2); _page_metadata2.set_row_spacing(2); -#else - _page_metadata1.set_spacings(2); - _page_metadata2.set_spacings(2); -#endif _notebook.append_page(_page_metadata1, _("Metadata")); _notebook.append_page(_page_metadata2, _("License")); @@ -126,12 +116,8 @@ DocumentMetadata::build_metadata() label->set_markup (_("Dublin Core Entities")); label->set_alignment (0.0); -#if WITH_GTKMM_3_0 label->set_valign(Gtk::ALIGN_CENTER); _page_metadata1.attach(*label, 0, 0, 3, 1); -#else - _page_metadata1.attach(*label, 0,3,0,1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); -#endif /* add generic metadata entry areas */ struct rdf_work_entity_t * entity; @@ -143,7 +129,6 @@ DocumentMetadata::build_metadata() Gtk::HBox *space = Gtk::manage (new Gtk::HBox); space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y); -#if WITH_GTKMM_3_0 space->set_valign(Gtk::ALIGN_CENTER); _page_metadata1.attach(*space, 0, row, 1, 1); @@ -153,11 +138,6 @@ DocumentMetadata::build_metadata() w->_packable->set_hexpand(); w->_packable->set_valign(Gtk::ALIGN_CENTER); _page_metadata1.attach(*w->_packable, 2, row, 1, 1); -#else - _page_metadata1.attach(*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); - _page_metadata1.attach(w->_label, 1,2, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); - _page_metadata1.attach(*w->_packable, 2,3, row, row+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } } @@ -167,31 +147,20 @@ DocumentMetadata::build_metadata() Gtk::Label *llabel = Gtk::manage (new Gtk::Label); llabel->set_markup (_("License")); llabel->set_alignment (0.0); - -#if WITH_GTKMM_3_0 llabel->set_valign(Gtk::ALIGN_CENTER); _page_metadata2.attach(*llabel, 0, row, 3, 1); -#else - _page_metadata2.attach(*llabel, 0,3, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); -#endif /* add license selector pull-down and URI */ ++row; _licensor.init (_wr); Gtk::HBox *space = Gtk::manage (new Gtk::HBox); space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y); - -#if WITH_GTKMM_3_0 space->set_valign(Gtk::ALIGN_CENTER); _page_metadata2.attach(*space, 0, row, 1, 1); _licensor.set_hexpand(); _licensor.set_valign(Gtk::ALIGN_CENTER); _page_metadata2.attach(_licensor, 1, row, 2, 1); -#else - _page_metadata2.attach(*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); - _page_metadata2.attach(_licensor, 1,3, row, row+1, Gtk::EXPAND|Gtk::FILL, (Gtk::AttachOptions)0,0,0); -#endif } /** diff --git a/src/ui/dialog/document-metadata.h b/src/ui/dialog/document-metadata.h index cde5d92fd..2c56e9317 100644 --- a/src/ui/dialog/document-metadata.h +++ b/src/ui/dialog/document-metadata.h @@ -21,12 +21,7 @@ #include #include "ui/widget/panel.h" #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include "inkscape.h" #include "ui/widget/licensor.h" @@ -62,13 +57,8 @@ protected: Gtk::Notebook _notebook; -#if WITH_GTKMM_3_0 Gtk::Grid _page_metadata1; Gtk::Grid _page_metadata2; -#else - Gtk::Table _page_metadata1; - Gtk::Table _page_metadata2; -#endif //--------------------------------------------------------------- RDElist _rdflist; diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index 589973162..33f134c11 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -223,25 +223,16 @@ DocumentProperties::~DocumentProperties() * widget in columns 2-3; (non-0, 0) means label in columns 1-3; and * (non-0, non-0) means two widgets in columns 2 and 3. */ -#if WITH_GTKMM_3_0 inline void attach_all(Gtk::Grid &table, Gtk::Widget *const arr[], unsigned const n, int start = 0, int docum_prop_flag = 0) -#else -inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned const n, int start = 0, int docum_prop_flag = 0) -#endif { for (unsigned i = 0, r = start; i < n; i += 2) { if (arr[i] && arr[i+1]) { -#if WITH_GTKMM_3_0 arr[i]->set_hexpand(); arr[i+1]->set_hexpand(); arr[i]->set_valign(Gtk::ALIGN_CENTER); arr[i+1]->set_valign(Gtk::ALIGN_CENTER); table.attach(*arr[i], 1, r, 1, 1); table.attach(*arr[i+1], 2, r, 1, 1); -#else - table.attach(*arr[i], 1, 2, r, r+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); - table.attach(*arr[i+1], 2, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else { if (arr[i+1]) { Gtk::AttachOptions yoptions = (Gtk::AttachOptions)0; @@ -252,7 +243,6 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con if (docum_prop_flag) { // this sets the padding for subordinate widgets on the "Page" page if( i==(n-8) || i==(n-10) ) { -#if WITH_GTKMM_3_0 arr[i+1]->set_hexpand(); arr[i+1]->set_margin_left(20); arr[i+1]->set_margin_right(20); @@ -263,11 +253,7 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con arr[i+1]->set_valign(Gtk::ALIGN_CENTER); table.attach(*arr[i+1], 1, r, 2, 1); -#else - table.attach(*arr[i+1], 1, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, yoptions, 20,0); -#endif } else { -#if WITH_GTKMM_3_0 arr[i+1]->set_hexpand(); if (yoptions & Gtk::EXPAND) @@ -276,12 +262,8 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con arr[i+1]->set_valign(Gtk::ALIGN_CENTER); table.attach(*arr[i+1], 1, r, 2, 1); -#else - table.attach(*arr[i+1], 1, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, yoptions, 0,0); -#endif } } else { -#if WITH_GTKMM_3_0 arr[i+1]->set_hexpand(); if (yoptions & Gtk::EXPAND) @@ -290,32 +272,21 @@ inline void attach_all(Gtk::Table &table, Gtk::Widget *const arr[], unsigned con arr[i+1]->set_valign(Gtk::ALIGN_CENTER); table.attach(*arr[i+1], 1, r, 2, 1); -#else - table.attach(*arr[i+1], 1, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, yoptions, 0,0); -#endif } } else if (arr[i]) { Gtk::Label& label = reinterpret_cast(*arr[i]); label.set_alignment (0.0); -#if WITH_GTKMM_3_0 label.set_hexpand(); label.set_valign(Gtk::ALIGN_CENTER); table.attach(label, 0, r, 3, 1); -#else - table.attach (label, 0, 3, r, r+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } else { Gtk::HBox *space = Gtk::manage (new Gtk::HBox); space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y); -#if WITH_GTKMM_3_0 space->set_halign(Gtk::ALIGN_CENTER); space->set_valign(Gtk::ALIGN_CENTER); table.attach(*space, 0, r, 1, 1); -#else - table.attach (*space, 0, 1, r, r+1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0,0,0); -#endif } } ++r; @@ -685,52 +656,35 @@ void DocumentProperties::build_cms() label_link->set_alignment(0.0); -#if WITH_GTKMM_3_0 label_link->set_hexpand(); label_link->set_valign(Gtk::ALIGN_CENTER); _page_cms->table().attach(*label_link, 0, row, 3, 1); -#else - _page_cms->table().attach(*label_link, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; -#if WITH_GTKMM_3_0 _LinkedProfilesListScroller.set_hexpand(); _LinkedProfilesListScroller.set_valign(Gtk::ALIGN_CENTER); _page_cms->table().attach(_LinkedProfilesListScroller, 0, row, 3, 1); -#else - _page_cms->table().attach(_LinkedProfilesListScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; Gtk::HBox* spacer = Gtk::manage(new Gtk::HBox()); spacer->set_size_request(SPACE_SIZE_X, SPACE_SIZE_Y); -#if WITH_GTKMM_3_0 spacer->set_hexpand(); spacer->set_valign(Gtk::ALIGN_CENTER); _page_cms->table().attach(*spacer, 0, row, 3, 1); -#else - _page_cms->table().attach(*spacer, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; label_avail->set_alignment(0.0); -#if WITH_GTKMM_3_0 label_avail->set_hexpand(); label_avail->set_valign(Gtk::ALIGN_CENTER); _page_cms->table().attach(*label_avail, 0, row, 3, 1); -#else - _page_cms->table().attach(*label_avail, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; -#if WITH_GTKMM_3_0 _AvailableProfilesList.set_hexpand(); _AvailableProfilesList.set_valign(Gtk::ALIGN_CENTER); _page_cms->table().attach(_AvailableProfilesList, 0, row, 1, 1); @@ -744,11 +698,6 @@ void DocumentProperties::build_cms() _unlink_btn.set_halign(Gtk::ALIGN_CENTER); _unlink_btn.set_valign(Gtk::ALIGN_CENTER); _page_cms->table().attach(_unlink_btn, 2, row, 1, 1); -#else - _page_cms->table().attach(_AvailableProfilesList, 0, 1, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); - _page_cms->table().attach(_link_btn, 1, 2, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 2, 0); - _page_cms->table().attach(_unlink_btn, 2, 3, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 0, 0); -#endif // Set up the Avialable Profiles combo box _AvailableProfilesListStore = Gtk::ListStore::create(_AvailableProfilesListColumns); @@ -815,41 +764,27 @@ void DocumentProperties::build_scripting() gint row = 0; label_external->set_alignment(0.0); - -#if WITH_GTKMM_3_0 label_external->set_hexpand(); label_external->set_valign(Gtk::ALIGN_CENTER); _page_external_scripts->table().attach(*label_external, 0, row, 3, 1); -#else - _page_external_scripts->table().attach(*label_external, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; -#if WITH_GTKMM_3_0 _ExternalScriptsListScroller.set_hexpand(); _ExternalScriptsListScroller.set_valign(Gtk::ALIGN_CENTER); _page_external_scripts->table().attach(_ExternalScriptsListScroller, 0, row, 3, 1); -#else - _page_external_scripts->table().attach(_ExternalScriptsListScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; Gtk::HBox* spacer_external = Gtk::manage(new Gtk::HBox()); spacer_external->set_size_request(SPACE_SIZE_X, SPACE_SIZE_Y); -#if WITH_GTKMM_3_0 spacer_external->set_hexpand(); spacer_external->set_valign(Gtk::ALIGN_CENTER); _page_external_scripts->table().attach(*spacer_external, 0, row, 3, 1); -#else - _page_external_scripts->table().attach(*spacer_external, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; -#if WITH_GTKMM_3_0 _script_entry.set_hexpand(); _script_entry.set_valign(Gtk::ALIGN_CENTER); _page_external_scripts->table().attach(_script_entry, 0, row, 1, 1); @@ -863,11 +798,6 @@ void DocumentProperties::build_scripting() _external_remove_btn.set_halign(Gtk::ALIGN_CENTER); _external_remove_btn.set_valign(Gtk::ALIGN_CENTER); _page_external_scripts->table().attach(_external_remove_btn, 2, row, 1, 1); -#else - _page_external_scripts->table().attach(_script_entry, 0, 1, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); - _page_external_scripts->table().attach(_external_add_btn, 1, 2, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 2, 0); - _page_external_scripts->table().attach(_external_remove_btn, 2, 3, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, 0, 0); -#endif //# Set up the External Scripts box _ExternalScriptsListStore = Gtk::ListStore::create(_ExternalScriptsListColumns); @@ -888,12 +818,6 @@ void DocumentProperties::build_scripting() _embed_remove_btn.set_tooltip_text(_("Remove")); docprops_style_button(_embed_remove_btn, INKSCAPE_ICON("list-remove")); -#if !WITH_GTKMM_3_0 - // TODO: This has been removed from Gtkmm 3.0. Check that - // everything still looks OK! - _embed_button_box.set_child_min_width( 16 ); - _embed_button_box.set_spacing( 4 ); -#endif _embed_button_box.set_layout (Gtk::BUTTONBOX_START); _embed_button_box.add(_embed_new_btn); _embed_button_box.add(_embed_remove_btn); @@ -902,47 +826,29 @@ void DocumentProperties::build_scripting() row = 0; label_embedded->set_alignment(0.0); - -#if WITH_GTKMM_3_0 label_embedded->set_hexpand(); label_embedded->set_valign(Gtk::ALIGN_CENTER); _page_embedded_scripts->table().attach(*label_embedded, 0, row, 3, 1); -#else - _page_embedded_scripts->table().attach(*label_embedded, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; -#if WITH_GTKMM_3_0 _EmbeddedScriptsListScroller.set_hexpand(); _EmbeddedScriptsListScroller.set_valign(Gtk::ALIGN_CENTER); _page_embedded_scripts->table().attach(_EmbeddedScriptsListScroller, 0, row, 3, 1); -#else - _page_embedded_scripts->table().attach(_EmbeddedScriptsListScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; -#if WITH_GTKMM_3_0 _embed_button_box.set_hexpand(); _embed_button_box.set_valign(Gtk::ALIGN_CENTER); _page_embedded_scripts->table().attach(_embed_button_box, 0, row, 1, 1); -#else - _page_embedded_scripts->table().attach(_embed_button_box, 0, 1, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; Gtk::HBox* spacer_embedded = Gtk::manage(new Gtk::HBox()); spacer_embedded->set_size_request(SPACE_SIZE_X, SPACE_SIZE_Y); - -#if WITH_GTKMM_3_0 spacer_embedded->set_hexpand(); spacer_embedded->set_valign(Gtk::ALIGN_CENTER); _page_embedded_scripts->table().attach(*spacer_embedded, 0, row, 3, 1); -#else - _page_embedded_scripts->table().attach(*spacer_embedded, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; @@ -958,24 +864,15 @@ void DocumentProperties::build_scripting() label_embedded_content->set_markup (_("Content:")); label_embedded_content->set_alignment(0.0); - -#if WITH_GTKMM_3_0 label_embedded_content->set_hexpand(); label_embedded_content->set_valign(Gtk::ALIGN_CENTER); _page_embedded_scripts->table().attach(*label_embedded_content, 0, row, 3, 1); -#else - _page_embedded_scripts->table().attach(*label_embedded_content, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif row++; -#if WITH_GTKMM_3_0 _EmbeddedContentScroller.set_hexpand(); _EmbeddedContentScroller.set_valign(Gtk::ALIGN_CENTER); _page_embedded_scripts->table().attach(_EmbeddedContentScroller, 0, row, 3, 1); -#else - _page_embedded_scripts->table().attach(_EmbeddedContentScroller, 0, 3, row, row + 1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0, 0, 0); -#endif _EmbeddedContentScroller.add(_EmbeddedContent); _EmbeddedContentScroller.set_shadow_type(Gtk::SHADOW_IN); @@ -1037,12 +934,8 @@ void DocumentProperties::build_metadata() label->set_markup (_("Dublin Core Entities")); label->set_alignment (0.0); -#if WITH_GTKMM_3_0 label->set_valign(Gtk::ALIGN_CENTER); _page_metadata1->table().attach (*label, 0,0,3,1); -#else - _page_metadata1->table().attach (*label, 0,3,0,1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); -#endif /* add generic metadata entry areas */ struct rdf_work_entity_t * entity; @@ -1053,8 +946,6 @@ void DocumentProperties::build_metadata() _rdflist.push_back (w); Gtk::HBox *space = Gtk::manage (new Gtk::HBox); space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y); - -#if WITH_GTKMM_3_0 space->set_valign(Gtk::ALIGN_CENTER); _page_metadata1->table().attach(*space, 0, row, 1, 1); @@ -1064,11 +955,6 @@ void DocumentProperties::build_metadata() w->_packable->set_hexpand(); w->_packable->set_valign(Gtk::ALIGN_CENTER); _page_metadata1->table().attach(*w->_packable, 2, row, 1, 1); -#else - _page_metadata1->table().attach (*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); - _page_metadata1->table().attach (w->_label, 1,2, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); - _page_metadata1->table().attach (*w->_packable, 2,3, row, row+1, Gtk::FILL|Gtk::EXPAND, (Gtk::AttachOptions)0,0,0); -#endif } } @@ -1077,11 +963,7 @@ void DocumentProperties::build_metadata() Gtk::Button *button_load = Gtk::manage (new Gtk::Button(_("Use _default"),1)); button_load->set_tooltip_text(_("Use the previously saved default metadata here")); -#if WITH_GTKMM_3_0 - Gtk::ButtonBox *box_buttons = Gtk::manage (new Gtk::ButtonBox); -#else - Gtk::HButtonBox *box_buttons = Gtk::manage (new Gtk::HButtonBox); -#endif + auto box_buttons = Gtk::manage (new Gtk::ButtonBox); box_buttons->set_layout(Gtk::BUTTONBOX_END); box_buttons->set_spacing(4); @@ -1099,12 +981,8 @@ void DocumentProperties::build_metadata() llabel->set_markup (_("License")); llabel->set_alignment (0.0); -#if WITH_GTKMM_3_0 llabel->set_valign(Gtk::ALIGN_CENTER); _page_metadata2->table().attach(*llabel, 0, row, 3, 1); -#else - _page_metadata2->table().attach (*llabel, 0,3, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); -#endif /* add license selector pull-down and URI */ ++row; @@ -1112,17 +990,12 @@ void DocumentProperties::build_metadata() Gtk::HBox *space = Gtk::manage (new Gtk::HBox); space->set_size_request (SPACE_SIZE_X, SPACE_SIZE_Y); -#if WITH_GTKMM_3_0 space->set_valign(Gtk::ALIGN_CENTER); _page_metadata2->table().attach(*space, 0, row, 1, 1); _licensor.set_hexpand(); _licensor.set_valign(Gtk::ALIGN_CENTER); _page_metadata2->table().attach(_licensor, 1, row, 3, 1); -#else - _page_metadata2->table().attach (*space, 0,1, row, row+1, Gtk::FILL, (Gtk::AttachOptions)0,0,0); - _page_metadata2->table().attach (_licensor, 1,3, row, row+1, Gtk::EXPAND|Gtk::FILL, (Gtk::AttachOptions)0,0,0); -#endif } void DocumentProperties::addExternalScript(){ diff --git a/src/ui/dialog/document-properties.h b/src/ui/dialog/document-properties.h index 7f91d9ea0..8d1c6b38a 100644 --- a/src/ui/dialog/document-properties.h +++ b/src/ui/dialog/document-properties.h @@ -173,11 +173,7 @@ protected: Gtk::Button _external_remove_btn; Gtk::Button _embed_new_btn; Gtk::Button _embed_remove_btn; -#if WITH_GTKMM_3_0 - Gtk::ButtonBox _embed_button_box; -#else - Gtk::HButtonBox _embed_button_box; -#endif + Gtk::ButtonBox _embed_button_box; class ExternalScriptsColumns : public Gtk::TreeModel::ColumnRecord { diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 2fb5f9e3b..5e7c68985 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -29,11 +29,7 @@ #include #include #include -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include #include @@ -218,15 +214,9 @@ Export::Export (void) : selectiontype_buttons[i]->signal_clicked().connect(sigc::mem_fun(*this, &Export::onAreaToggled)); } -#if WITH_GTKMM_3_0 - Gtk::Grid* t = new Gtk::Grid(); + auto t = new Gtk::Grid(); t->set_row_spacing(4); t->set_column_spacing(4); -#else - Gtk::Table* t = new Gtk::Table(3, 4, false); - t->set_row_spacings (4); - t->set_col_spacings (4); -#endif x0_adj = createSpinbutton ( "x0", 0.0, -1000000.0, 1000000.0, 0.1, 1.0, t, 0, 0, _("_x0:"), "", EXPORT_COORD_PRECISION, 1, @@ -268,15 +258,9 @@ Export::Export (void) : bm_label->set_use_markup(true); size_box.pack_start(*bm_label, false, false, 0); -#if WITH_GTKMM_3_0 - Gtk::Grid *t = new Gtk::Grid(); + auto t = new Gtk::Grid(); t->set_row_spacing(4); t->set_column_spacing(4); -#else - Gtk::Table *t = new Gtk::Table(2, 5, false); - t->set_row_spacings (4); - t->set_col_spacings (4); -#endif size_box.pack_start(*t); @@ -484,27 +468,14 @@ void Export::set_default_filename () { } } -#if WITH_GTKMM_3_0 Glib::RefPtr Export::createSpinbutton( gchar const * /*key*/, float val, float min, float max, float step, float page, Gtk::Grid *t, int x, int y, const Glib::ustring& ll, const Glib::ustring& lr, int digits, unsigned int sensitive, void (Export::*cb)() ) -#else -Gtk::Adjustment * Export::createSpinbutton( gchar const * /*key*/, float val, float min, float max, - float step, float page, - Gtk::Table *t, int x, int y, - const Glib::ustring& ll, const Glib::ustring& lr, - int digits, unsigned int sensitive, - void (Export::*cb)() ) -#endif { -#if WITH_GTKMM_3_0 - Glib::RefPtr adj = Gtk::Adjustment::create(val, min, max, step, page, 0); -#else - Gtk::Adjustment *adj = new Gtk::Adjustment ( val, min, max, step, page, 0 ); -#endif + auto adj = Gtk::Adjustment::create(val, min, max, step, page, 0); int pos = 0; Gtk::Label *l = NULL; @@ -512,28 +483,17 @@ Gtk::Adjustment * Export::createSpinbutton( gchar const * /*key*/, float val, fl if (!ll.empty()) { l = new Gtk::Label(ll,true); l->set_alignment (1.0, 0.5); - -#if WITH_GTKMM_3_0 l->set_hexpand(); l->set_vexpand(); t->attach(*l, x + pos, y, 1, 1); -#else - t->attach (*l, x + pos, x + pos + 1, y, y + 1, Gtk::EXPAND, Gtk::EXPAND, 0, 0 ); -#endif - l->set_sensitive(sensitive); pos++; } -#if WITH_GTKMM_3_0 - Gtk::SpinButton *sb = new Gtk::SpinButton(adj, 1.0, digits); + auto sb = new Gtk::SpinButton(adj, 1.0, digits); sb->set_hexpand(); sb->set_vexpand(); t->attach(*sb, x + pos, y, 1, 1); -#else - Gtk::SpinButton *sb = new Gtk::SpinButton(*adj, 1.0, digits); - t->attach (*sb, x + pos, x + pos + 1, y, y + 1, Gtk::EXPAND, Gtk::EXPAND, 0, 0 ); -#endif sb->set_width_chars(7); sb->set_sensitive (sensitive); @@ -546,15 +506,9 @@ Gtk::Adjustment * Export::createSpinbutton( gchar const * /*key*/, float val, fl if (!lr.empty()) { l = new Gtk::Label(lr,true); l->set_alignment (0.0, 0.5); - -#if WITH_GTKMM_3_0 l->set_hexpand(); l->set_vexpand(); t->attach(*l, x + pos, y, 1, 1); -#else - t->attach (*l, x + pos, x + pos + 1, y, y + 1, Gtk::EXPAND, Gtk::EXPAND, 0, 0 ); -#endif - l->set_sensitive (sensitive); pos++; l->set_mnemonic_widget (*sb); @@ -932,11 +886,7 @@ Gtk::Dialog * Export::create_progress_dialog (Glib::ustring progress_text) { Gtk::ProgressBar *prg = new Gtk::ProgressBar (); prg->set_text(progress_text); dlg->set_data ("progress", prg); -#if GTK_CHECK_VERSION(3,0,0) - Gtk::Box* CA = dlg->get_content_area(); -#else - Gtk::Box* CA = dlg->get_vbox(); -#endif + auto CA = dlg->get_content_area(); CA->pack_start(*prg, FALSE, FALSE, 4); Gtk::Button* btn = dlg->add_button (Gtk::Stock::CANCEL,Gtk::RESPONSE_CANCEL ); @@ -1357,11 +1307,7 @@ void Export::onBrowse () Glib::RefPtr parentWindow = desktop->getToplevel()->get_window(); g_assert(parentWindow->gobj() != NULL); -#if WITH_GTKMM_3_0 opf.hwndOwner = (HWND)gdk_win32_window_get_handle((GdkWindow*)parentWindow->gobj()); -#else - opf.hwndOwner = (HWND)gdk_win32_drawable_get_handle((GdkDrawable*)parentWindow->gobj()); -#endif opf.lpstrFilter = filter_string; opf.lpstrCustomFilter = 0; opf.nMaxCustFilter = 0L; @@ -1521,11 +1467,7 @@ void Export::detectSize() { } /* sp_export_detect_size */ /// Called when area x0 value is changed -#if WITH_GTKMM_3_0 void Export::areaXChange(Glib::RefPtr& adj) -#else -void Export::areaXChange (Gtk::Adjustment *adj) -#endif { float x0, x1, xdpi, width; @@ -1564,11 +1506,7 @@ void Export::areaXChange (Gtk::Adjustment *adj) } // end of sp_export_area_x_value_changed() /// Called when area y0 value is changed. -#if WITH_GTKMM_3_0 void Export::areaYChange(Glib::RefPtr& adj) -#else -void Export::areaYChange (Gtk::Adjustment *adj) -#endif { float y0, y1, ydpi, height; @@ -1875,11 +1813,7 @@ void Export::setArea( double x0, double y0, double x1, double y1 ) * @param adj The adjustment widget * @param val What value to set it to. */ -#if WITH_GTKMM_3_0 void Export::setValue(Glib::RefPtr& adj, double val ) -#else -void Export::setValue( Gtk::Adjustment *adj, double val ) -#endif { if (adj) { adj->set_value(val); @@ -1897,11 +1831,7 @@ void Export::setValue( Gtk::Adjustment *adj, double val ) * @param adj The adjustment widget * @param val What the value should be in points. */ -#if WITH_GTKMM_3_0 void Export::setValuePx(Glib::RefPtr& adj, double val) -#else -void Export::setValuePx( Gtk::Adjustment *adj, double val) -#endif { Unit const *unit = unit_selector.getUnit(); @@ -1920,11 +1850,7 @@ void Export::setValuePx( Gtk::Adjustment *adj, double val) * * @return The value in the specified adjustment. */ -#if WITH_GTKMM_3_0 float Export::getValue(Glib::RefPtr& adj) -#else -float Export::getValue( Gtk::Adjustment *adj ) -#endif { if (!adj) { g_message("sp_export_value_get : adj is NULL"); @@ -1946,11 +1872,7 @@ float Export::getValue( Gtk::Adjustment *adj ) * * @return The value in the adjustment in points. */ -#if WITH_GTKMM_3_0 float Export::getValuePx(Glib::RefPtr& adj) -#else -float Export::getValuePx( Gtk::Adjustment *adj ) -#endif { float value = getValue( adj); Unit const *unit = unit_selector.getUnit(); diff --git a/src/ui/dialog/export.h b/src/ui/dialog/export.h index 23af0109b..a1c44714b 100644 --- a/src/ui/dialog/export.h +++ b/src/ui/dialog/export.h @@ -79,17 +79,10 @@ private: /* * Getter/setter style functions for the spinbuttons */ -#if WITH_GTKMM_3_0 void setValue(Glib::RefPtr& adj, double val); void setValuePx(Glib::RefPtr& adj, double val); float getValue(Glib::RefPtr& adj); float getValuePx(Glib::RefPtr& adj); -#else - void setValue (Gtk::Adjustment *adj, double val); - void setValuePx (Gtk::Adjustment *adj, double val); - float getValue (Gtk::Adjustment *adj); - float getValuePx (Gtk::Adjustment *adj); -#endif /** * Helper function to create, style and pack spinbuttons for the export dialog. @@ -112,21 +105,12 @@ private: * * No unit_selector is stored in the created spinbutton, relies on external unit management */ -#if WITH_GTKMM_3_0 Glib::RefPtr createSpinbutton( gchar const *key, float val, float min, float max, float step, float page, Gtk::Grid *t, int x, int y, const Glib::ustring& ll, const Glib::ustring& lr, int digits, unsigned int sensitive, void (Export::*cb)() ); -#else - Gtk::Adjustment * createSpinbutton( gchar const *key, float val, float min, float max, - float step, float page, - Gtk::Table *t, int x, int y, - const Glib::ustring& ll, const Glib::ustring& lr, - int digits, unsigned int sensitive, - void (Export::*cb)() ); -#endif /** * One of the area select radio buttons was pressed @@ -152,11 +136,7 @@ private: void onAreaX1Change() { areaXChange(x1_adj); } ; -#if WITH_GTKMM_3_0 void areaXChange(Glib::RefPtr& adj); -#else - void areaXChange ( Gtk::Adjustment *adj); -#endif /** * Area Y value changed callback @@ -167,11 +147,7 @@ private: void onAreaY1Change() { areaYChange(y1_adj); } ; -#if WITH_GTKMM_3_0 void areaYChange(Glib::RefPtr& adj); -#else - void areaYChange ( Gtk::Adjustment *adj); -#endif /** * Unit changed callback @@ -298,7 +274,6 @@ private: Gtk::VBox area_box; Gtk::VBox singleexport_box; -#if WITH_GTKMM_3_0 /* Custom size widgets */ Glib::RefPtr x0_adj; Glib::RefPtr x1_adj; @@ -312,21 +287,6 @@ private: Glib::RefPtr bmheight_adj; Glib::RefPtr xdpi_adj; Glib::RefPtr ydpi_adj; -#else - /* Custom size widgets */ - Gtk::Adjustment *x0_adj; - Gtk::Adjustment *x1_adj; - Gtk::Adjustment *y0_adj; - Gtk::Adjustment *y1_adj; - Gtk::Adjustment *width_adj; - Gtk::Adjustment *height_adj; - - /* Bitmap size widgets */ - Gtk::Adjustment *bmwidth_adj; - Gtk::Adjustment *bmheight_adj; - Gtk::Adjustment *xdpi_adj; - Gtk::Adjustment *ydpi_adj; -#endif Gtk::VBox size_box; Gtk::Label* bm_label; diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp index 042637d22..e8c1bf723 100644 --- a/src/ui/dialog/filedialogimpl-gtkmm.cpp +++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp @@ -754,16 +754,9 @@ FileOpenDialogImplGtk::~FileOpenDialogImplGtk() void FileOpenDialogImplGtk::addFilterMenu(Glib::ustring name, Glib::ustring pattern) { - -#if WITH_GTKMM_3_0 - Glib::RefPtr allFilter = Gtk::FileFilter::create(); + auto allFilter = Gtk::FileFilter::create(); allFilter->set_name(_(name.c_str())); allFilter->add_pattern(pattern); -#else - Gtk::FileFilter allFilter; - allFilter.set_name(_(name.c_str())); - allFilter.add_pattern(pattern); -#endif extensionMap[Glib::ustring(_("All Files"))] = NULL; add_filter(allFilter); } @@ -775,51 +768,27 @@ void FileOpenDialogImplGtk::createFilterMenu() } if (_dialogType == EXE_TYPES) { -#if WITH_GTKMM_3_0 - Glib::RefPtr allFilter = Gtk::FileFilter::create(); + auto allFilter = Gtk::FileFilter::create(); allFilter->set_name(_("All Files")); allFilter->add_pattern("*"); -#else - Gtk::FileFilter allFilter; - allFilter.set_name(_("All Files")); - allFilter.add_pattern("*"); -#endif extensionMap[Glib::ustring(_("All Files"))] = NULL; add_filter(allFilter); } else { -#if WITH_GTKMM_3_0 - Glib::RefPtr allInkscapeFilter = Gtk::FileFilter::create(); + auto allInkscapeFilter = Gtk::FileFilter::create(); allInkscapeFilter->set_name(_("All Inkscape Files")); - Glib::RefPtr allFilter = Gtk::FileFilter::create(); + auto allFilter = Gtk::FileFilter::create(); allFilter->set_name(_("All Files")); allFilter->add_pattern("*"); - Glib::RefPtr allImageFilter = Gtk::FileFilter::create(); + auto allImageFilter = Gtk::FileFilter::create(); allImageFilter->set_name(_("All Images")); - Glib::RefPtr allVectorFilter = Gtk::FileFilter::create(); + auto allVectorFilter = Gtk::FileFilter::create(); allVectorFilter->set_name(_("All Vectors")); - Glib::RefPtr allBitmapFilter = Gtk::FileFilter::create(); + auto allBitmapFilter = Gtk::FileFilter::create(); allBitmapFilter->set_name(_("All Bitmaps")); -#else - Gtk::FileFilter allInkscapeFilter; - allInkscapeFilter.set_name(_("All Inkscape Files")); - - Gtk::FileFilter allFilter; - allFilter.set_name(_("All Files")); - allFilter.add_pattern("*"); - - Gtk::FileFilter allImageFilter; - allImageFilter.set_name(_("All Images")); - - Gtk::FileFilter allVectorFilter; - allVectorFilter.set_name(_("All Vectors")); - - Gtk::FileFilter allBitmapFilter; - allBitmapFilter.set_name(_("All Bitmaps")); -#endif extensionMap[Glib::ustring(_("All Inkscape Files"))] = NULL; add_filter(allInkscapeFilter); @@ -854,29 +823,16 @@ void FileOpenDialogImplGtk::createFilterMenu() Glib::ustring uname(_(imod->get_filetypename())); -#if WITH_GTKMM_3_0 - Glib::RefPtr filter = Gtk::FileFilter::create(); + auto filter = Gtk::FileFilter::create(); filter->set_name(uname); filter->add_pattern(upattern); -#else - Gtk::FileFilter filter; - filter.set_name(uname); - filter.add_pattern(upattern); -#endif - add_filter(filter); extensionMap[uname] = imod; // g_message("ext %s:%s '%s'\n", ioext->name, ioext->mimetype, upattern.c_str()); -#if WITH_GTKMM_3_0 allInkscapeFilter->add_pattern(upattern); if (strncmp("image", imod->get_mimetype(), 5) == 0) allImageFilter->add_pattern(upattern); -#else - allInkscapeFilter.add_pattern(upattern); - if (strncmp("image", imod->get_mimetype(), 5) == 0) - allImageFilter.add_pattern(upattern); -#endif // uncomment this to find out all mime types supported by Inkscape import/open // g_print ("%s\n", imod->get_mimetype()); @@ -896,17 +852,9 @@ void FileOpenDialogImplGtk::createFilterMenu() strncmp("image/x-tga", imod->get_mimetype(), 11) == 0 || strncmp("image/x-pcx", imod->get_mimetype(), 11) == 0) { -#if WITH_GTKMM_3_0 allBitmapFilter->add_pattern(upattern); -#else - allBitmapFilter.add_pattern(upattern); -#endif } else { -#if WITH_GTKMM_3_0 allVectorFilter->add_pattern(upattern); -#else - allVectorFilter.add_pattern(upattern); -#endif } } } @@ -972,18 +920,13 @@ Glib::ustring FileOpenDialogImplGtk::getFilename(void) */ std::vector FileOpenDialogImplGtk::getFilenames() { -#if WITH_GTKMM_3_0 - std::vector result_tmp = get_filenames(); + auto result_tmp = get_filenames(); // Copy filenames to a vector of type Glib::ustring std::vector result; - for (std::vector::iterator it = result_tmp.begin(); it != result_tmp.end(); ++it) - result.push_back(*it); - -#else - std::vector result = get_filenames(); -#endif + for (auto it : result_tmp) + result.push_back(it); #ifdef WITH_GNOME_VFS if (result.empty() && gnome_vfs_initialized()) @@ -1170,13 +1113,8 @@ void FileSaveDialogImplGtk::fileTypeChangedCallback() // g_message("selected: %s\n", type.name.c_str()); extension = type.extension; -#if WITH_GTKMM_3_0 - Glib::RefPtr filter = Gtk::FileFilter::create(); + auto filter = Gtk::FileFilter::create(); filter->add_pattern(type.pattern); -#else - Gtk::FileFilter filter; - filter.add_pattern(type.pattern); -#endif set_filter(filter); updateNameAndExtension(); diff --git a/src/ui/dialog/filedialogimpl-win32.cpp b/src/ui/dialog/filedialogimpl-win32.cpp index cafc3be4f..02d77cba1 100644 --- a/src/ui/dialog/filedialogimpl-win32.cpp +++ b/src/ui/dialog/filedialogimpl-win32.cpp @@ -128,11 +128,7 @@ FileDialogBaseWin32::FileDialogBaseWin32(Gtk::Window &parent, Glib::RefPtr parentWindow = parent.get_window(); g_assert(parentWindow->gobj() != NULL); -#if WITH_GTKMM_3_0 _ownerHwnd = (HWND)gdk_win32_window_get_handle((GdkWindow*)parentWindow->gobj()); -#else - _ownerHwnd = (HWND)gdk_win32_drawable_get_handle((GdkDrawable*)parentWindow->gobj()); -#endif } FileDialogBaseWin32::~FileDialogBaseWin32() diff --git a/src/ui/dialog/fill-and-stroke.cpp b/src/ui/dialog/fill-and-stroke.cpp index 8141f7696..923993514 100644 --- a/src/ui/dialog/fill-and-stroke.cpp +++ b/src/ui/dialog/fill-and-stroke.cpp @@ -111,11 +111,7 @@ void FillAndStroke::setTargetDesktop(SPDesktop *desktop) } } -#if WITH_GTKMM_3_0 void FillAndStroke::_onSwitchPage(Gtk::Widget * /*page*/, guint pagenum) -#else -void FillAndStroke::_onSwitchPage(GtkNotebookPage * /*page*/, guint pagenum) -#endif { _savePagePref(pagenum); } @@ -132,24 +128,14 @@ void FillAndStroke::_layoutPageFill() { fillWdgt = Gtk::manage(sp_fill_style_widget_new()); - -#if WITH_GTKMM_3_0 _page_fill->table().attach(*fillWdgt, 0, 0, 1, 1); -#else - _page_fill->table().attach(*fillWdgt, 0, 1, 0, 1); -#endif } void FillAndStroke::_layoutPageStrokePaint() { strokeWdgt = Gtk::manage(sp_stroke_style_paint_widget_new()); - -#if WITH_GTKMM_3_0 _page_stroke_paint->table().attach(*strokeWdgt, 0, 0, 1, 1); -#else - _page_stroke_paint->table().attach(*strokeWdgt, 0, 1, 0, 1); -#endif } void @@ -158,12 +144,7 @@ FillAndStroke::_layoutPageStrokeStyle() //Gtk::Widget *strokeStyleWdgt = manage(Glib::wrap(sp_stroke_style_line_widget_new())); //Gtk::Widget *strokeStyleWdgt = static_cast(sp_stroke_style_line_widget_new()); strokeStyleWdgt = sp_stroke_style_line_widget_new(); - -#if WITH_GTKMM_3_0 _page_stroke_style->table().attach(*strokeStyleWdgt, 0, 0, 1, 1); -#else - _page_stroke_style->table().attach(*strokeStyleWdgt, 0, 1, 0, 1); -#endif } void diff --git a/src/ui/dialog/fill-and-stroke.h b/src/ui/dialog/fill-and-stroke.h index f2a6bf39d..67e9d60ed 100644 --- a/src/ui/dialog/fill-and-stroke.h +++ b/src/ui/dialog/fill-and-stroke.h @@ -64,11 +64,7 @@ protected: void _layoutPageStrokePaint(); void _layoutPageStrokeStyle(); void _savePagePref(guint page_num); -#if WITH_GTKMM_3_0 void _onSwitchPage(Gtk::Widget *page, guint pagenum); -#else - void _onSwitchPage(GtkNotebookPage *page, guint pagenum); -#endif private: FillAndStroke(FillAndStroke const &d); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index d3ad5d1da..acf230b7f 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -22,9 +22,7 @@ #include "dialog-manager.h" #include -#if GTK_CHECK_VERSION(3,0,0) -# include -#endif +#include #include "ui/widget/spinbutton.h" @@ -319,15 +317,9 @@ public: set_tooltip_text(tip_text); } -#if WITH_GTKMM_3_0 Gdk::RGBA col; col.set_rgba_u(65535, 65535, 65535); set_rgba(col); -#else - Gdk::Color col; - col.set_rgb(65535, 65535, 65535); - set_color(col); -#endif } // Returns the color in 'rgb(r,g,b)' form. @@ -336,13 +328,8 @@ public: // no doubles here, so we can use the standard string stream. std::ostringstream os; -#if WITH_GTKMM_3_0 - const Gdk::RGBA c = get_rgba(); - const int r = c.get_red_u() / 257, g = c.get_green_u() / 257, b = c.get_blue_u() / 257;//TO-DO: verify this. This sounds a lot strange! shouldn't it be 256? -#else - const Gdk::Color c = get_color(); - const int r = c.get_red() / 257, g = c.get_green() / 257, b = c.get_blue() / 257;//TO-DO: verify this. This sounds a lot strange! shouldn't it be 256? -#endif + const auto c = get_rgba(); + const int r = c.get_red_u() / 257, g = c.get_green_u() / 257, b = c.get_blue_u() / 257;//TO-DO: verify this. This sounds a lot strange! shouldn't it be 256? os << "rgb(" << r << "," << g << "," << b << ")"; return os.str(); } @@ -359,15 +346,9 @@ public: } const int r = SP_RGBA32_R_U(i), g = SP_RGBA32_G_U(i), b = SP_RGBA32_B_U(i); -#if WITH_GTKMM_3_0 Gdk::RGBA col; col.set_rgba_u(r * 256, g * 256, b * 256); set_rgba(col); -#else - Gdk::Color col; - col.set_rgb(r * 256, g * 256, b * 256); - set_color(col); -#endif } }; @@ -1730,7 +1711,6 @@ Glib::PropertyProxy FilterEffectsDialog::CellRendererConnection::property return _primitive.get_proxy(); } -#if WITH_GTKMM_3_0 void FilterEffectsDialog::CellRendererConnection::get_preferred_width_vfunc(Gtk::Widget& widget, int& minimum_width, int& natural_width) const @@ -1764,27 +1744,6 @@ void FilterEffectsDialog::CellRendererConnection::get_preferred_height_for_width { get_preferred_height(widget, minimum_height, natural_height); } -#else -void FilterEffectsDialog::CellRendererConnection::get_size_vfunc( - Gtk::Widget& widget, const Gdk::Rectangle* /*cell_area*/, - int* x_offset, int* y_offset, int* width, int* height) const -{ - PrimitiveList& primlist = dynamic_cast(widget); - - if(x_offset) - (*x_offset) = 0; - if(y_offset) - (*y_offset) = 0; - if(width) - (*width) = size * primlist.primitive_count() + (primlist.get_input_type_width()) * 6; - if(height) { - // Scale the height depending on the number of inputs, unless it's - // the first primitive, in which case there are no connections - SPFilterPrimitive* prim = SP_FILTER_PRIMITIVE(_primitive.get_value()); - (*height) = size * input_count(prim); - } -} -#endif /*** PrimitiveList ***/ FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d) @@ -1792,13 +1751,8 @@ FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d) _in_drag(0), _observer(new Inkscape::XML::SignalObserver) { -#if WITH_GTKMM_3_0 d.signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw_signal)); signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw_signal)); -#else - d.signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal)); - signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal)); -#endif add_events(Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK); @@ -1961,25 +1915,9 @@ void FilterEffectsDialog::PrimitiveList::remove_selected() } } -#if !WITH_GTKMM_3_0 -bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose * /*evt*/) -{ - bool result = false; - - if (get_is_drawable()) - { - Cairo::RefPtr cr = get_bin_window()->create_cairo_context(); - result = on_draw_signal(cr); - } - - return result; -} -#endif - bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr & cr) { cr->set_line_width(1.0); -#if GTK_CHECK_VERSION(3,0,0) // In GTK+ 3, the draw function receives the widget window, not the // bin_window (i.e., just the area under the column headers). We // therefore translate the origin of our coordinate system to account for this @@ -1987,7 +1925,7 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtrtranslate(x_origin, y_origin); - GtkStyleContext *sc = gtk_widget_get_style_context(GTK_WIDGET(gobj())); + auto sc = gtk_widget_get_style_context(GTK_WIDGET(gobj())); GdkRGBA bg_color, fg_color; gtk_style_context_get_background_color(sc, GTK_STATE_FLAG_NORMAL, &bg_color); gtk_style_context_get_color(sc, GTK_STATE_FLAG_NORMAL, &fg_color); @@ -2005,9 +1943,6 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtrchildren().size(); @@ -2026,25 +1961,15 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtrsave(); cr->rectangle(x, 0, get_input_type_width(), vis.get_height()); -#if GTK_CHECK_VERSION(3,0,0) gdk_cairo_set_source_rgba(cr->cobj(), &bg_color); cr->fill_preserve(); gdk_cairo_set_source_rgba(cr->cobj(), &fg_color); -#else - gdk_cairo_set_source_color(cr->cobj(), &(style->bg[GTK_STATE_NORMAL])); - cr->fill_preserve(); - gdk_cairo_set_source_color(cr->cobj(), &(style->text[GTK_STATE_NORMAL])); -#endif cr->move_to(x+get_input_type_width(), 0); cr->rotate_degrees(90); _vertical_layout->show_in_cairo_context(cr); -#if GTK_CHECK_VERSION(3,0,0) gdk_cairo_set_source_rgba(cr->cobj(), &mid_color); -#else - gdk_cairo_set_source_color(cr->cobj(), &(style->dark[GTK_STATE_NORMAL])); -#endif cr->move_to(x, 0); cr->line_to(x, vis.get_height()); cr->stroke(); @@ -2061,24 +1986,16 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr display = get_bin_window()->get_display(); - Glib::RefPtr dm = display->get_device_manager(); - Glib::RefPtr device = dm->get_client_pointer(); + auto display = get_bin_window()->get_display(); + auto dm = display->get_device_manager(); + auto device = dm->get_client_pointer(); get_bin_window()->get_device_position(device, mx, my, mask); -#else - get_bin_window()->get_pointer(mx, my, mask); -#endif // Outline the bottom of the connection area const int outline_x = x + fheight * (row_count - row_index); cr->save(); -#if GTK_CHECK_VERSION(3,0,0) gdk_cairo_set_source_rgba(cr->cobj(), &mid_color); -#else - gdk_cairo_set_source_color(cr->cobj(), &(style->dark[GTK_STATE_NORMAL])); -#endif cr->move_to(x, y + h); cr->line_to(outline_x, y + h); @@ -2101,17 +2018,10 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtrsave(); -#if GTK_CHECK_VERSION(3,0,0) gdk_cairo_set_source_rgba(cr->cobj(), inside && mask & GDK_BUTTON1_MASK ? &mid_color : &mid_color_active); -#else - gdk_cairo_set_source_color(cr->cobj(), - inside && mask & GDK_BUTTON1_MASK ? - &(style->dark[GTK_STATE_NORMAL]) : - &(style->dark[GTK_STATE_ACTIVE])); -#endif draw_connection_node(cr, con_poly, inside); @@ -2137,17 +2047,10 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtrsave(); -#if GTK_CHECK_VERSION(3,0,0) gdk_cairo_set_source_rgba(cr->cobj(), inside && mask & GDK_BUTTON1_MASK ? &mid_color : &mid_color_active); -#else - gdk_cairo_set_source_color(cr->cobj(), - inside && mask & GDK_BUTTON1_MASK ? - &(style->dark[GTK_STATE_NORMAL]) : - &(style->dark[GTK_STATE_ACTIVE])); -#endif draw_connection_node(cr, con_poly, inside); @@ -2170,17 +2073,10 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtrsave(); -#if GTK_CHECK_VERSION(3,0,0) gdk_cairo_set_source_rgba(cr->cobj(), inside && mask & GDK_BUTTON1_MASK ? &mid_color : &mid_color_active); -#else - gdk_cairo_set_source_color(cr->cobj(), - inside && mask & GDK_BUTTON1_MASK ? - &(style->dark[GTK_STATE_NORMAL]) : - &(style->dark[GTK_STATE_ACTIVE])); -#endif draw_connection_node(cr, con_poly, inside); @@ -2216,8 +2112,7 @@ void FilterEffectsDialog::PrimitiveList::draw_connection(const Cairo::RefPtrsave(); -#if GTK_CHECK_VERSION(3,0,0) - GtkStyleContext *sc = gtk_widget_get_style_context(GTK_WIDGET(gobj())); + auto sc = gtk_widget_get_style_context(GTK_WIDGET(gobj())); GdkRGBA bg_color, fg_color; gtk_style_context_get_background_color(sc, GTK_STATE_FLAG_NORMAL, &bg_color); @@ -2227,9 +2122,6 @@ void FilterEffectsDialog::PrimitiveList::draw_connection(const Cairo::RefPtrcobj(), &mid_color); -#else - gdk_cairo_set_source_color(cr->cobj(), &(style->dark[GTK_STATE_NORMAL])); -#endif else cr->set_source_rgb(0.0, 0.0, 0.0); @@ -2669,8 +2557,7 @@ void FilterEffectsDialog::PrimitiveList::on_drag_end(const Glib::RefPtr a = dynamic_cast(get_parent())->get_vadjustment(); + auto a = dynamic_cast(get_parent())->get_vadjustment(); double v = a->get_value() + _autoscroll_y; if(v < 0) @@ -2679,25 +2566,13 @@ bool FilterEffectsDialog::PrimitiveList::on_scroll_timeout() v = a->get_upper() - a->get_page_size(); a->set_value(v); -#else - Gtk::Adjustment& a = *dynamic_cast(get_parent())->get_vadjustment(); - double v = a.get_value() + _autoscroll_y; - - if(v < 0) - v = 0; - if(v > a.get_upper() - a.get_page_size()) - v = a.get_upper() - a.get_page_size(); - - a.set_value(v); -#endif queue_draw(); } if(_autoscroll_x) { -#if WITH_GTKMM_3_0 - Glib::RefPtr a_h = dynamic_cast(get_parent())->get_hadjustment(); + auto a_h = dynamic_cast(get_parent())->get_hadjustment(); double h = a_h->get_value() + _autoscroll_x; if(h < 0) @@ -2706,18 +2581,6 @@ bool FilterEffectsDialog::PrimitiveList::on_scroll_timeout() h = a_h->get_upper() - a_h->get_page_size(); a_h->set_value(h); -#else - Gtk::Adjustment& a_h = *dynamic_cast(get_parent())->get_hadjustment(); - double h = a_h.get_value() + _autoscroll_x; - - if(h < 0) - h = 0; - if(h > a_h.get_upper() - a_h.get_page_size()) - h = a_h.get_upper() - a_h.get_page_size(); - - a_h.set_value(h); - -#endif queue_draw(); } @@ -2759,13 +2622,8 @@ FilterEffectsDialog::FilterEffectsDialog() _sizegroup->set_ignore_hidden(); // Initialize widget hierarchy -#if WITH_GTKMM_3_0 - Gtk::Paned* hpaned = Gtk::manage(new Gtk::Paned); + auto hpaned = Gtk::manage(new Gtk::Paned); _primitive_box = Gtk::manage(new Gtk::Paned); -#else - Gtk::HPaned* hpaned = Gtk::manage(new Gtk::HPaned); - _primitive_box = Gtk::manage(new Gtk::VPaned); -#endif _sw_infobox = Gtk::manage(new Gtk::ScrolledWindow); Gtk::ScrolledWindow* sw_prims = Gtk::manage(new Gtk::ScrolledWindow); diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h index 7c715327e..eae0fc317 100644 --- a/src/ui/dialog/filter-effects-dialog.h +++ b/src/ui/dialog/filter-effects-dialog.h @@ -163,7 +163,6 @@ private: static const int size = 24; protected: -#if WITH_GTKMM_3_0 virtual void get_preferred_width_vfunc(Gtk::Widget& widget, int& minimum_width, int& natural_width) const; @@ -181,10 +180,6 @@ private: int width, int& minimum_height, int& natural_height) const; -#else - virtual void get_size_vfunc(Gtk::Widget& widget, const Gdk::Rectangle* cell_area, - int* x_offset, int* y_offset, int* width, int* height) const; -#endif private: // void* should be SPFilterPrimitive*, some weirdness with properties prevents this Glib::Property _primitive; @@ -211,9 +206,6 @@ private: protected: bool on_draw_signal(const Cairo::RefPtr &cr); -#if !WITH_GTKMM_3_0 - bool on_expose_signal(GdkEventExpose*); -#endif bool on_button_press_event(GdkEventButton*); bool on_motion_notify_event(GdkEventMotion*); @@ -283,11 +275,7 @@ private: Gtk::ScrolledWindow* _sw_infobox; // View/add primitives -#if WITH_GTKMM_3_0 Gtk::Paned* _primitive_box; -#else - Gtk::VPaned* _primitive_box; -#endif UI::Widget::ComboBoxEnum _add_primitive_type; Gtk::Button _add_primitive; diff --git a/src/ui/dialog/find.h b/src/ui/dialog/find.h index 4bcb900b6..94d635037 100644 --- a/src/ui/dialog/find.h +++ b/src/ui/dialog/find.h @@ -286,13 +286,7 @@ private: Gtk::Label status; UI::Widget::Button button_find; UI::Widget::Button button_replace; - -#if WITH_GTKMM_3_0 Gtk::ButtonBox box_buttons; -#else - Gtk::HButtonBox box_buttons; -#endif - Gtk::HBox hboxbutton_row; /** diff --git a/src/ui/dialog/floating-behavior.cpp b/src/ui/dialog/floating-behavior.cpp index 55ef0c5bb..20209e2c9 100644 --- a/src/ui/dialog/floating-behavior.cpp +++ b/src/ui/dialog/floating-behavior.cpp @@ -140,11 +140,7 @@ FloatingBehavior::create(Dialog &dialog) inline FloatingBehavior::operator Gtk::Widget &() { return *_d; } inline GtkWidget *FloatingBehavior::gobj() { return GTK_WIDGET(_d->gobj()); } inline Gtk::Box* FloatingBehavior::get_vbox() { -#if WITH_GTKMM_3_0 return _d->get_content_area(); -#else - return _d->get_vbox(); -#endif } inline void FloatingBehavior::present() { _d->present(); } inline void FloatingBehavior::hide() { _d->hide(); } @@ -155,12 +151,8 @@ inline void FloatingBehavior::move(int x, int y) { _d-> inline void FloatingBehavior::set_position(Gtk::WindowPosition position) { _d->set_position(position); } inline void FloatingBehavior::set_size_request(int width, int height) { _d->set_size_request(width, height); } inline void FloatingBehavior::size_request(Gtk::Requisition &requisition) { -#if WITH_GTKMM_3_0 Gtk::Requisition requisition_natural; _d->get_preferred_size(requisition, requisition_natural); -#else - requisition = _d->size_request(); -#endif } inline void FloatingBehavior::get_position(int &x, int &y) { _d->get_position(x, y); } inline void FloatingBehavior::get_size(int &width, int &height) { _d->get_size(width, height); } diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp index 56b001291..1453797de 100644 --- a/src/ui/dialog/glyphs.cpp +++ b/src/ui/dialog/glyphs.cpp @@ -19,13 +19,7 @@ #include #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif - +#include #include #include @@ -342,12 +336,7 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) : instanceConns(), desktopConns() { -#if WITH_GTKMM_3_0 - Gtk::Grid *table = new Gtk::Grid(); -#else - Gtk::Table *table = new Gtk::Table(3, 1, false); -#endif - + auto table = new Gtk::Grid(); _getContents()->pack_start(*Gtk::manage(table), Gtk::PACK_EXPAND_WIDGET); guint row = 0; @@ -360,29 +349,16 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) : gtk_widget_set_size_request (fontsel, 0, 150); g_signal_connect( G_OBJECT(fontsel), "font_set", G_CALLBACK(fontChangeCB), this ); -#if WITH_GTKMM_3_0 table->attach(*Gtk::manage(Glib::wrap(fontsel)), 0, row, 3, 1); -#else - table->attach(*Gtk::manage(Glib::wrap(fontsel)), - 0, 3, row, row + 1, - Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL); -#endif - row++; // ------------------------------- { - Gtk::Label *label = new Gtk::Label(_("Script: ")); + auto label = new Gtk::Label(_("Script: ")); -#if WITH_GTKMM_3_0 table->attach( *Gtk::manage(label), 0, row, 1, 1); -#else - table->attach( *Gtk::manage(label), - 0, 1, row, row + 1, - Gtk::SHRINK, Gtk::SHRINK); -#endif scriptCombo = new Gtk::ComboBoxText(); for (std::map::iterator it = getScriptToName().begin(); it != getScriptToName().end(); ++it) @@ -396,14 +372,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) : Gtk::Alignment *align = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_START, Gtk::ALIGN_START, 0.0, 0.0)); align->add(*Gtk::manage(scriptCombo)); -#if WITH_GTKMM_3_0 align->set_hexpand(); table->attach( *align, 1, row, 1, 1); -#else - table->attach( *align, - 1, 2, row, row + 1, - Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK); -#endif } row++; @@ -411,15 +381,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) : // ------------------------------- { - Gtk::Label *label = new Gtk::Label(_("Range: ")); - -#if WITH_GTKMM_3_0 + auto label = new Gtk::Label(_("Range: ")); table->attach( *Gtk::manage(label), 0, row, 1, 1); -#else - table->attach( *Gtk::manage(label), - 0, 1, row, row + 1, - Gtk::SHRINK, Gtk::SHRINK); -#endif rangeCombo = new Gtk::ComboBoxText(); for ( std::vector::iterator it = getRanges().begin(); it != getRanges().end(); ++it ) { @@ -431,15 +394,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) : instanceConns.push_back(conn); Gtk::Alignment *align = new Gtk::Alignment(Gtk::ALIGN_START, Gtk::ALIGN_START, 0.0, 0.0); align->add(*Gtk::manage(rangeCombo)); - -#if WITH_GTKMM_3_0 align->set_hexpand(); table->attach( *Gtk::manage(align), 1, row, 1, 1); -#else - table->attach( *Gtk::manage(align), - 1, 2, row, row + 1, - Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK); -#endif } row++; @@ -462,16 +418,9 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) : Gtk::ScrolledWindow *scroller = new Gtk::ScrolledWindow(); scroller->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS); scroller->add(*Gtk::manage(iconView)); - -#if WITH_GTKMM_3_0 scroller->set_hexpand(); scroller->set_vexpand(); table->attach(*Gtk::manage(scroller), 0, row, 3, 1); -#else - table->attach(*Gtk::manage(scroller), - 0, 3, row, row + 1, - Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL); -#endif row++; @@ -501,15 +450,8 @@ GlyphsPanel::GlyphsPanel(gchar const *prefsPath) : insertBtn->set_sensitive(false); box->pack_end(*Gtk::manage(insertBtn), Gtk::PACK_SHRINK); - -#if WITH_GTKMM_3_0 box->set_hexpand(); table->attach( *Gtk::manage(box), 0, row, 3, 1); -#else - table->attach( *Gtk::manage(box), - 0, 3, row, row + 1, - Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK); -#endif row++; @@ -591,12 +533,7 @@ void GlyphsPanel::insertText() if (entry->get_text_length() > 0) { glyphs = entry->get_text(); } else { - -#if WITH_GTKMM_3_0 - std::vector itemArray = iconView->get_selected_items(); -#else - Gtk::IconView::ArrayHandle_TreePaths itemArray = iconView->get_selected_items(); -#endif + auto itemArray = iconView->get_selected_items(); if (!itemArray.empty()) { Gtk::TreeModel::Path const & path = *itemArray.begin(); @@ -641,11 +578,7 @@ void GlyphsPanel::glyphActivated(Gtk::TreeModel::Path const & path) void GlyphsPanel::glyphSelectionChanged() { -#if WITH_GTKMM_3_0 - std::vector itemArray = iconView->get_selected_items(); -#else - Gtk::IconView::ArrayHandle_TreePaths itemArray = iconView->get_selected_items(); -#endif + auto itemArray = iconView->get_selected_items(); if (itemArray.empty()) { label->set_text(" "); diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 639e463ea..eaf4e8ec0 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -19,12 +19,7 @@ #include //for GTK_RESPONSE* types #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include <2geom/transforms.h> @@ -570,11 +565,7 @@ GridArrangeTab::GridArrangeTab(ArrangeDialog *parent) : Parent(parent), XPadding(_("X:"), _("Horizontal spacing between columns."), UNIT_TYPE_LINEAR, "", "object-columns", &PaddingUnitMenu), YPadding(_("Y:"), _("Vertical spacing between rows."), XPadding, "", "object-rows", &PaddingUnitMenu), -#if WITH_GTKMM_3_0 PaddingTable(Gtk::manage(new Gtk::Grid())) -#else - PaddingTable(Gtk::manage(new Gtk::Table(2, 2, false))) -#endif { // bool used by spin button callbacks to stop loops where they change each other. updating = false; @@ -736,20 +727,11 @@ GridArrangeTab::GridArrangeTab(ArrangeDialog *parent) } PaddingTable->set_border_width(MARGIN); - -#if WITH_GTKMM_3_0 PaddingTable->set_row_spacing(MARGIN); PaddingTable->set_column_spacing(MARGIN); PaddingTable->attach(XPadding, 0, 0, 1, 1); PaddingTable->attach(PaddingUnitMenu, 1, 0, 1, 1); PaddingTable->attach(YPadding, 0, 1, 1, 1); -#else - PaddingTable->set_row_spacings(MARGIN); - PaddingTable->set_col_spacings(MARGIN); - PaddingTable->attach(XPadding, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - PaddingTable->attach(PaddingUnitMenu, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - PaddingTable->attach(YPadding, 0, 1, 1, 2, Gtk::SHRINK, Gtk::SHRINK); -#endif TileBox.pack_start(*PaddingTable, false, false, MARGIN); diff --git a/src/ui/dialog/grid-arrange-tab.h b/src/ui/dialog/grid-arrange-tab.h index a137d1694..891849f1a 100644 --- a/src/ui/dialog/grid-arrange-tab.h +++ b/src/ui/dialog/grid-arrange-tab.h @@ -111,12 +111,7 @@ private: Inkscape::UI::Widget::UnitMenu PaddingUnitMenu; Inkscape::UI::Widget::ScalarUnit XPadding; Inkscape::UI::Widget::ScalarUnit YPadding; - -#if WITH_GTKMM_3_0 Gtk::Grid *PaddingTable; -#else - Gtk::Table *PaddingTable; -#endif // BBox or manual spacing Gtk::VBox SpacingVBox; diff --git a/src/ui/dialog/guides.cpp b/src/ui/dialog/guides.cpp index 556d77a28..eb0fce978 100644 --- a/src/ui/dialog/guides.cpp +++ b/src/ui/dialog/guides.cpp @@ -124,13 +124,8 @@ void GuidelinePropertiesDialog::_onOK() g_free((gpointer) name); -#if WITH_GTKMM_3_0 - const Gdk::RGBA c = _color.get_rgba(); + const auto c = _color.get_rgba(); unsigned r = c.get_red_u()/257, g = c.get_green_u()/257, b = c.get_blue_u()/257; -#else - const Gdk::Color c = _color.get_color(); - unsigned r = c.get_red()/257, g = c.get_green()/257, b = c.get_blue()/257; -#endif //TODO: why 257? verify this! _guide->set_color(r, g, b, true); @@ -171,15 +166,9 @@ void GuidelinePropertiesDialog::_setup() { add_button(Gtk::Stock::DELETE, -12); add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); -#if WITH_GTKMM_3_0 - Gtk::Box *mainVBox = get_content_area(); + auto mainVBox = get_content_area(); _layout_table.set_row_spacing(4); _layout_table.set_column_spacing(4); -#else - Gtk::Box *mainVBox = get_vbox(); - _layout_table.set_spacings(4); - _layout_table.resize (3, 4); -#endif mainVBox->pack_start(_layout_table, false, false, 0); @@ -189,7 +178,6 @@ void GuidelinePropertiesDialog::_setup() { _label_descr.set_label("foo1"); _label_descr.set_alignment(0, 0.5); -#if WITH_GTKMM_3_0 _label_name.set_halign(Gtk::ALIGN_FILL); _label_name.set_valign(Gtk::ALIGN_FILL); _layout_table.attach(_label_name, 0, 0, 3, 1); @@ -207,19 +195,6 @@ void GuidelinePropertiesDialog::_setup() { _color.set_valign(Gtk::ALIGN_FILL); _color.set_hexpand(); _layout_table.attach(_color, 1, 3, 2, 1); -#else - _layout_table.attach(_label_name, - 0, 3, 0, 1, Gtk::FILL, Gtk::FILL); - - _layout_table.attach(_label_descr, - 0, 3, 1, 2, Gtk::FILL, Gtk::FILL); - - _layout_table.attach(_label_entry, - 1, 3, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); - - _layout_table.attach(_color, - 1, 3, 3, 4, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); -#endif // unitmenus /* fixme: We should allow percents here too, as percents of the canvas size */ @@ -238,7 +213,6 @@ void GuidelinePropertiesDialog::_setup() { _spin_button_y.setIncrements(1.0, 10.0); _spin_button_y.setRange(-1e6, 1e6); -#if WITH_GTKMM_3_0 _spin_button_x.set_halign(Gtk::ALIGN_FILL); _spin_button_x.set_valign(Gtk::ALIGN_FILL); _spin_button_x.set_hexpand(); @@ -252,22 +226,12 @@ void GuidelinePropertiesDialog::_setup() { _unit_menu.set_halign(Gtk::ALIGN_FILL); _unit_menu.set_valign(Gtk::ALIGN_FILL); _layout_table.attach(_unit_menu, 2, 4, 1, 1); -#else - _layout_table.attach(_spin_button_x, - 1, 2, 4, 5, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); - _layout_table.attach(_spin_button_y, - 1, 2, 5, 6, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); - - _layout_table.attach(_unit_menu, - 2, 3, 4, 5, Gtk::FILL, Gtk::FILL); -#endif // angle spinbutton _spin_angle.setDigits(3); _spin_angle.setIncrements(1.0, 10.0); _spin_angle.setRange(-3600., 3600.); -#if WITH_GTKMM_3_0 _spin_angle.set_halign(Gtk::ALIGN_FILL); _spin_angle.set_valign(Gtk::ALIGN_FILL); _spin_angle.set_hexpand(); @@ -284,18 +248,6 @@ void GuidelinePropertiesDialog::_setup() { _locked_toggle.set_valign(Gtk::ALIGN_FILL); _locked_toggle.set_hexpand(); _layout_table.attach(_locked_toggle, 1, 8, 2, 1); -#else - _layout_table.attach(_spin_angle, - 1, 3, 6, 7, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); - - // mode radio button - _layout_table.attach(_relative_toggle, - 1, 3, 7, 8, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); - - // locked radio button - _layout_table.attach(_locked_toggle, - 1, 3, 8, 9, Gtk::EXPAND | Gtk::FILL, Gtk::FILL); -#endif _relative_toggle.signal_toggled().connect(sigc::mem_fun(*this, &GuidelinePropertiesDialog::_modeChanged)); _relative_toggle.set_active(_relative_toggle_status); @@ -348,15 +300,9 @@ void GuidelinePropertiesDialog::_setup() { // init name entry _label_entry.getEntry()->set_text(_guide->getLabel() ? _guide->getLabel() : ""); -#if WITH_GTKMM_3_0 Gdk::RGBA c; c.set_rgba(((_guide->getColor()>>24)&0xff) / 255.0, ((_guide->getColor()>>16)&0xff) / 255.0, ((_guide->getColor()>>8)&0xff) / 255.0); _color.set_rgba(c); -#else - Gdk::Color c; - c.set_rgb_p(((_guide->getColor()>>24)&0xff) / 255.0, ((_guide->getColor()>>16)&0xff) / 255.0, ((_guide->getColor()>>8)&0xff) / 255.0); - _color.set_color(c); -#endif _modeChanged(); // sets values of spinboxes. diff --git a/src/ui/dialog/guides.h b/src/ui/dialog/guides.h index 5dce0d6ed..25d32015c 100644 --- a/src/ui/dialog/guides.h +++ b/src/ui/dialog/guides.h @@ -16,12 +16,7 @@ #endif #include - -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include #include @@ -71,12 +66,7 @@ private: SPDesktop *_desktop; SPGuide *_guide; -#if WITH_GTKMM_3_0 - Gtk::Grid _layout_table; -#else - Gtk::Table _layout_table; -#endif - + Gtk::Grid _layout_table; Gtk::Label _label_name; Gtk::Label _label_descr; Inkscape::UI::Widget::CheckButton _locked_toggle; diff --git a/src/ui/dialog/icon-preview.h b/src/ui/dialog/icon-preview.h index 8a6e19a25..caec7e3b5 100644 --- a/src/ui/dialog/icon-preview.h +++ b/src/ui/dialog/icon-preview.h @@ -66,13 +66,7 @@ private: gdouble minDelay; Gtk::VBox iconBox; - -#if WITH_GTKMM_3_0 Gtk::Paned splitter; -#else - Gtk::HPaned splitter; -#endif - Glib::ustring targetId; int hot; int numEntries; diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index 6dd62d3bb..8a69ef8e1 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -86,12 +86,8 @@ InkscapePreferences::InkscapePreferences() _getContents()->add(*sb); show_all_children(); Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 Gtk::Requisition sreq_natural; sb->get_preferred_size(sreq_natural, sreq); -#else - sreq = sb->size_request(); -#endif _sb_width = sreq.width; _getContents()->remove(*sb); delete sb; @@ -863,17 +859,10 @@ static void proofComboChanged( Gtk::ComboBoxText* combo ) } static void gamutColorChanged( Gtk::ColorButton* btn ) { -#if WITH_GTKMM_3_0 - Gdk::RGBA rgba = btn->get_rgba(); - gushort r = rgba.get_red_u(); - gushort g = rgba.get_green_u(); - gushort b = rgba.get_blue_u(); -#else - Gdk::Color color = btn->get_color(); - gushort r = color.get_red(); - gushort g = color.get_green(); - gushort b = color.get_blue(); -#endif + auto rgba = btn->get_rgba(); + auto r = rgba.get_red_u(); + auto g = rgba.get_green_u(); + auto b = rgba.get_blue_u(); gchar* tmp = g_strdup_printf("#%02x%02x%02x", (r >> 8), (g >> 8), (b >> 8) ); @@ -1043,13 +1032,8 @@ void InkscapePreferences::initPageIO() Glib::ustring colorStr = prefs->getString("/options/softproof/gamutcolor"); -#if WITH_GTKMM_3_0 Gdk::RGBA tmpColor( colorStr.empty() ? "#00ff00" : colorStr); _cms_gamutcolor.set_rgba( tmpColor ); -#else - Gdk::Color tmpColor( colorStr.empty() ? "#00ff00" : colorStr); - _cms_gamutcolor.set_color( tmpColor ); -#endif _page_cms.add_line( true, _("Out of gamut warning color:"), _cms_gamutcolor, "", _("Selects the color used for out of gamut warning"), false); @@ -1594,31 +1578,19 @@ void InkscapePreferences::initKeyboardShortcuts(Gtk::TreeModel::iterator iter_ui int row = 3; -#if WITH_GTKMM_3_0 scroller->set_hexpand(); scroller->set_vexpand(); _page_keyshortcuts.attach(*scroller, 0, row, 2, 1); -#else - _page_keyshortcuts.attach(*scroller, 0, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL); -#endif row++; -#if WITH_GTKMM_3_0 - Gtk::ButtonBox *box_buttons = Gtk::manage(new Gtk::ButtonBox); -#else - Gtk::HButtonBox *box_buttons = Gtk::manage (new Gtk::HButtonBox); -#endif + auto box_buttons = Gtk::manage(new Gtk::ButtonBox); box_buttons->set_layout(Gtk::BUTTONBOX_END); box_buttons->set_spacing(4); -#if WITH_GTKMM_3_0 box_buttons->set_hexpand(); _page_keyshortcuts.attach(*box_buttons, 0, row, 3, 1); -#else - _page_keyshortcuts.attach(*box_buttons, 0, 3, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK); -#endif UI::Widget::Button *kb_reset = Gtk::manage(new UI::Widget::Button(_("Reset"), _("Remove all your customized keyboard shortcuts, and revert to the shortcuts in the shortcut file listed above"))); box_buttons->pack_start(*kb_reset, true, true, 6); @@ -2051,12 +2023,8 @@ bool InkscapePreferences::SetMaxDialogSize(const Gtk::TreeModel::iterator& iter) _page_frame.add(*page); this->show_all_children(); Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 Gtk::Requisition sreq_natural; this->get_preferred_size(sreq_natural, sreq); -#else - sreq = this->size_request(); -#endif _max_dialog_width=std::max(_max_dialog_width, sreq.width); _max_dialog_height=std::max(_max_dialog_height, sreq.height); _page_frame.remove(); diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h index d1abcfc58..781b5e48e 100644 --- a/src/ui/dialog/inkscape-preferences.h +++ b/src/ui/dialog/inkscape-preferences.h @@ -97,11 +97,7 @@ enum { }; namespace Gtk { -#if WITH_GTKMM_3_0 class Scale; -#else -class HScale; -#endif } namespace Inkscape { @@ -206,11 +202,7 @@ protected: UI::Widget::PrefCheckButton _scroll_space; UI::Widget::PrefCheckButton _wheel_zoom; -#if WITH_GTKMM_3_0 Gtk::Scale *_slider_snapping_delay; -#else - Gtk::HScale *_slider_snapping_delay; -#endif UI::Widget::PrefCheckButton _snap_indicator; UI::Widget::PrefCheckButton _snap_closest_only; diff --git a/src/ui/dialog/input.cpp b/src/ui/dialog/input.cpp index 8343cd6fe..e731ed3ff 100644 --- a/src/ui/dialog/input.cpp +++ b/src/ui/dialog/input.cpp @@ -33,13 +33,7 @@ #include #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif - +#include #include #include #include @@ -431,13 +425,7 @@ private: Blink watcher; Gtk::CheckButton useExt; Gtk::Button save; - -#if WITH_GTKMM_3_0 Gtk::Paned pane; -#else - Gtk::HPaned pane; -#endif - Gtk::VBox detailsBox; Gtk::HBox titleFrame; Gtk::Label titleLabel; @@ -498,27 +486,14 @@ private: Inkscape::UI::Widget::Frame axisFrame; Gtk::ScrolledWindow treeScroller; Gtk::ScrolledWindow detailScroller; - -#if WITH_GTKMM_3_0 Gtk::Paned splitter; Gtk::Paned split2; -#else - Gtk::HPaned splitter; - Gtk::VPaned split2; -#endif - Gtk::Label devName; Gtk::Label devKeyCount; Gtk::Label devAxesCount; Gtk::ComboBoxText axesCombo; Gtk::ProgressBar axesValues[6]; - -#if WITH_GTKMM_3_0 Gtk::Grid axisTable; -#else - Gtk::Table axisTable; -#endif - Gtk::ComboBoxText buttonCombo; Gtk::ComboBoxText linkCombo; sigc::connection linkConnection; @@ -528,13 +503,7 @@ private: Gtk::Image testThumb; Gtk::Image testButtons[24]; Gtk::Image testAxes[8]; - -#if WITH_GTKMM_3_0 Gtk::Grid imageTable; -#else - Gtk::Table imageTable; -#endif - Gtk::EventBox testDetector; ConfPanel cfgPanel; @@ -620,20 +589,11 @@ InputDialogImpl::InputDialogImpl() : treeScroller(), detailScroller(), splitter(), -#if WITH_GTKMM_3_0 split2(Gtk::ORIENTATION_VERTICAL), axisTable(), -#else - split2(), - axisTable(11, 2), -#endif linkCombo(), topHolder(), -#if WITH_GTKMM_3_0 imageTable(), -#else - imageTable(8, 7), -#endif testDetector(), cfgPanel() { @@ -655,27 +615,16 @@ InputDialogImpl::InputDialogImpl() : testFrame.add(testDetector); testThumb.set(getPix(PIX_TABLET)); testThumb.set_padding(24, 24); - -#if WITH_GTKMM_3_0 testThumb.set_hexpand(); testThumb.set_vexpand(); imageTable.attach(testThumb, 0, 0, 8, 1); -#else - imageTable.attach(testThumb, 0, 8, 0, 1, ::Gtk::EXPAND, ::Gtk::EXPAND); -#endif { guint col = 0; guint row = 1; for ( guint num = 0; num < G_N_ELEMENTS(testButtons); num++ ) { testButtons[num].set(getPix(PIX_BUTTONS_NONE)); - -#if WITH_GTKMM_3_0 imageTable.attach(testButtons[num], col, row, 1, 1); -#else - imageTable.attach(testButtons[num], col, col + 1, row, row + 1, ::Gtk::FILL, ::Gtk::FILL); -#endif - col++; if (col > 7) { col = 0; @@ -686,13 +635,7 @@ InputDialogImpl::InputDialogImpl() : col = 0; for ( guint num = 0; num < G_N_ELEMENTS(testAxes); num++ ) { testAxes[num].set(getPix(PIX_AXIS_NONE)); - -#if WITH_GTKMM_3_0 imageTable.attach(testAxes[num], col * 2, row, 2, 1); -#else - imageTable.attach(testAxes[num], col * 2, (col + 1) * 2, row, row + 1, ::Gtk::FILL, ::Gtk::FILL); -#endif - col++; if (col > 3) { col = 0; @@ -730,45 +673,17 @@ InputDialogImpl::InputDialogImpl() : axisFrame.add(axisTable); Gtk::Label *lbl = Gtk::manage(new Gtk::Label(_("Link:"))); - -#if WITH_GTKMM_3_0 axisTable.attach(*lbl, 0, rowNum, 1, 1); -#else - axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1, - ::Gtk::FILL, - ::Gtk::SHRINK); -#endif - linkCombo.append(_("None")); linkCombo.set_active_text(_("None")); linkCombo.set_sensitive(false); linkConnection = linkCombo.signal_changed().connect(sigc::mem_fun(*this, &InputDialogImpl::linkComboChanged)); - -#if WITH_GTKMM_3_0 axisTable.attach(linkCombo, 1, rowNum, 1, 1); -#else - axisTable.attach(linkCombo, 1, 2, rowNum, rowNum + 1, - ::Gtk::FILL, - ::Gtk::SHRINK); -#endif - rowNum++; - lbl = Gtk::manage(new Gtk::Label(_("Axes count:"))); - -#if WITH_GTKMM_3_0 axisTable.attach(*lbl, 0, rowNum, 1, 1); axisTable.attach(devAxesCount, 1, rowNum, 1, 1); -#else - axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1, - ::Gtk::FILL, - ::Gtk::SHRINK); - axisTable.attach(devAxesCount, 1, 2, rowNum, rowNum + 1, - ::Gtk::SHRINK, - ::Gtk::SHRINK); -#endif - rowNum++; @@ -786,22 +701,11 @@ InputDialogImpl::InputDialogImpl() : for ( guint barNum = 0; barNum < static_cast(G_N_ELEMENTS(axesValues)); barNum++ ) { lbl = Gtk::manage(new Gtk::Label(_("axis:"))); - -#if WITH_GTKMM_3_0 lbl->set_hexpand(); axisTable.attach(*lbl, 0, rowNum, 1, 1); axesValues[barNum].set_hexpand(); axisTable.attach(axesValues[barNum], 1, rowNum, 1, 1); -#else - axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1, - ::Gtk::EXPAND, - ::Gtk::SHRINK); - axisTable.attach(axesValues[barNum], 1, 2, rowNum, rowNum + 1, - ::Gtk::EXPAND, - ::Gtk::SHRINK); -#endif - axesValues[barNum].set_sensitive(false); rowNum++; @@ -811,17 +715,8 @@ InputDialogImpl::InputDialogImpl() : lbl = Gtk::manage(new Gtk::Label(_("Button count:"))); -#if WITH_GTKMM_3_0 axisTable.attach(*lbl, 0, rowNum, 1, 1); axisTable.attach(devKeyCount, 1, rowNum, 1, 1); -#else - axisTable.attach(*lbl, 0, 1, rowNum, rowNum+ 1, - ::Gtk::FILL, - ::Gtk::SHRINK); - axisTable.attach(devKeyCount, 1, 2, rowNum, rowNum + 1, - ::Gtk::SHRINK, - ::Gtk::SHRINK); -#endif rowNum++; @@ -837,13 +732,7 @@ InputDialogImpl::InputDialogImpl() : rowNum++; */ -#if WITH_GTKMM_3_0 axisTable.attach(keyVal, 0, rowNum, 2, 1); -#else - axisTable.attach(keyVal, 0, 2, rowNum, rowNum + 1, - ::Gtk::FILL, - ::Gtk::SHRINK); -#endif rowNum++; @@ -857,18 +746,9 @@ InputDialogImpl::InputDialogImpl() : // TODO: Extension event stuff has been removed from public API in GTK+ 3 // Need to check that this hasn't broken anything -#if !GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_extension_events( GTK_WIDGET(testDetector.gobj()), GDK_EXTENSION_EVENTS_ALL ); -#endif testDetector.add_events(Gdk::POINTER_MOTION_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK |Gdk::PROXIMITY_IN_MASK|Gdk::PROXIMITY_OUT_MASK|Gdk::SCROLL_MASK); -#if WITH_GTKMM_3_0 axisTable.attach(keyEntry, 0, rowNum, 2, 1); -#else - axisTable.attach(keyEntry, 0, 2, rowNum, rowNum + 1, - ::Gtk::FILL, - ::Gtk::SHRINK); -#endif rowNum++; @@ -1150,12 +1030,7 @@ InputDialogImpl::ConfPanel::ConfPanel() : useExt.set_active(Preferences::get()->getBool("/options/useextinput/value")); useExt.signal_toggled().connect(sigc::mem_fun(*this, &InputDialogImpl::ConfPanel::useExtToggled)); -#if WITH_GTKMM_3_0 - Gtk::ButtonBox *buttonBox = Gtk::manage(new Gtk::ButtonBox); -#else - Gtk::HButtonBox *buttonBox = Gtk::manage (new Gtk::HButtonBox); -#endif - + auto buttonBox = Gtk::manage(new Gtk::ButtonBox); buttonBox->set_layout (Gtk::BUTTONBOX_END); //Gtk::Alignment *align = new Gtk::Alignment(Gtk::ALIGN_END, Gtk::ALIGN_START, 0, 0); buttonBox->add(save); @@ -1939,7 +1814,6 @@ bool InputDialogImpl::eventSnoop(GdkEvent* event) testThumb.set(getPix(PIX_ERASER)); break; } -#if WITH_GTKMM_3_0 /// \fixme GTK3 added new GDK_SOURCEs that should be handled here! case GDK_SOURCE_KEYBOARD: case GDK_SOURCE_TOUCHSCREEN: @@ -1947,7 +1821,6 @@ bool InputDialogImpl::eventSnoop(GdkEvent* event) g_warning("InputDialogImpl::eventSnoop : unhandled GDK_SOURCE type!"); break; } -#endif } updateTestButtons(key, hotButton); diff --git a/src/ui/dialog/layer-properties.cpp b/src/ui/dialog/layer-properties.cpp index 5d550ed48..6f5def886 100644 --- a/src/ui/dialog/layer-properties.cpp +++ b/src/ui/dialog/layer-properties.cpp @@ -40,22 +40,15 @@ namespace Dialogs { LayerPropertiesDialog::LayerPropertiesDialog() : _strategy(NULL), _desktop(NULL), _layer(NULL), _position_visible(false) { -#if WITH_GTKMM_3_0 - Gtk::Box *mainVBox = get_content_area(); + auto mainVBox = get_content_area(); _layout_table.set_row_spacing(4); _layout_table.set_column_spacing(4); -#else - Gtk::Box *mainVBox = get_vbox(); - _layout_table.set_spacings(4); - _layout_table.resize (1, 2); -#endif // Layer name widgets _layer_name_entry.set_activates_default(true); _layer_name_label.set_label(_("Layer name:")); _layer_name_label.set_alignment(1.0, 0.5); -#if WITH_GTKMM_3_0 _layer_name_label.set_halign(Gtk::ALIGN_FILL); _layer_name_label.set_valign(Gtk::ALIGN_FILL); _layout_table.attach(_layer_name_label, 0, 0, 1, 1); @@ -64,12 +57,6 @@ LayerPropertiesDialog::LayerPropertiesDialog() _layer_name_entry.set_valign(Gtk::ALIGN_FILL); _layer_name_entry.set_hexpand(); _layout_table.attach(_layer_name_entry, 1, 0, 1, 1); -#else - _layout_table.attach(_layer_name_label, - 0, 1, 0, 1, Gtk::FILL, Gtk::FILL); - _layout_table.attach(_layer_name_entry, - 1, 2, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL); -#endif mainVBox->pack_start(_layout_table, true, true, 4); @@ -166,10 +153,6 @@ LayerPropertiesDialog::_setup_position_controls() { _layer_position_combo.set_cell_data_func(_label_renderer, sigc::mem_fun(*this, &LayerPropertiesDialog::_prepareLabelRenderer)); -#if !WITH_GTKMM_3_0 - _layout_table.resize (2, 2); -#endif - Gtk::ListStore::iterator row; row = _dropdown_list->append(); row->set_value(_dropdown_columns.position, LPOS_ABOVE); @@ -185,7 +168,6 @@ LayerPropertiesDialog::_setup_position_controls() { _layer_position_label.set_label(_("Position:")); _layer_position_label.set_alignment(1.0, 0.5); -#if WITH_GTKMM_3_0 _layer_position_combo.set_halign(Gtk::ALIGN_FILL); _layer_position_combo.set_valign(Gtk::ALIGN_FILL); _layer_position_combo.set_hexpand(); @@ -194,12 +176,6 @@ LayerPropertiesDialog::_setup_position_controls() { _layer_position_label.set_halign(Gtk::ALIGN_FILL); _layer_position_label.set_valign(Gtk::ALIGN_FILL); _layout_table.attach(_layer_position_label, 0, 1, 1, 1); -#else - _layout_table.attach(_layer_position_combo, - 1, 2, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::FILL); - _layout_table.attach(_layer_position_label, - 0, 1, 1, 2, Gtk::FILL, Gtk::FILL); -#endif show_all_children(); } @@ -254,16 +230,11 @@ LayerPropertiesDialog::_setup_layers_controls() { _layout_table.remove(_layer_name_entry); _layout_table.remove(_layer_name_label); -#if WITH_GTKMM_3_0 _scroller.set_halign(Gtk::ALIGN_FILL); _scroller.set_valign(Gtk::ALIGN_FILL); _scroller.set_hexpand(); _scroller.set_vexpand(); _layout_table.attach(_scroller, 0, 1, 2, 1); -#else - _layout_table.attach(_scroller, - 0, 2, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND); -#endif show_all_children(); } diff --git a/src/ui/dialog/layer-properties.h b/src/ui/dialog/layer-properties.h index c75a7f190..f62f22782 100644 --- a/src/ui/dialog/layer-properties.h +++ b/src/ui/dialog/layer-properties.h @@ -19,12 +19,7 @@ #include #include #include - -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include #include @@ -102,12 +97,7 @@ protected: Gtk::Entry _layer_name_entry; Gtk::Label _layer_position_label; Gtk::ComboBox _layer_position_combo; - -#if WITH_GTKMM_3_0 Gtk::Grid _layout_table; -#else - Gtk::Table _layout_table; -#endif bool _position_visible; diff --git a/src/ui/dialog/layers.cpp b/src/ui/dialog/layers.cpp index 1c022ecad..77ced6d71 100644 --- a/src/ui/dialog/layers.cpp +++ b/src/ui/dialog/layers.cpp @@ -866,12 +866,8 @@ LayersPanel::LayersPanel() : _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); _scroller.set_shadow_type(Gtk::SHADOW_IN); Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 Gtk::Requisition sreq_natural; _scroller.get_preferred_size(sreq_natural, sreq); -#else - sreq = _scroller.size_request(); -#endif int minHeight = 70; if (sreq.height < minHeight) { // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar diff --git a/src/ui/dialog/layers.h b/src/ui/dialog/layers.h index 9cd2c3b92..893b31557 100644 --- a/src/ui/dialog/layers.h +++ b/src/ui/dialog/layers.h @@ -124,15 +124,9 @@ private: Gtk::TreeView _tree; Gtk::CellRendererText *_text_renderer; Gtk::TreeView::Column *_name_column; -#if WITH_GTKMM_3_0 Gtk::Box _buttonsRow; Gtk::Box _buttonsPrimary; Gtk::Box _buttonsSecondary; -#else - Gtk::HBox _buttonsRow; - Gtk::HBox _buttonsPrimary; - Gtk::HBox _buttonsSecondary; -#endif Gtk::ScrolledWindow _scroller; Gtk::Menu _popupMenu; Inkscape::UI::Widget::SpinButton _spinBtn; diff --git a/src/ui/dialog/livepatheffect-add.cpp b/src/ui/dialog/livepatheffect-add.cpp index c558eddaf..4346ebd3d 100644 --- a/src/ui/dialog/livepatheffect-add.cpp +++ b/src/ui/dialog/livepatheffect-add.cpp @@ -74,11 +74,7 @@ LivePathEffectAdd::LivePathEffectAdd() : add_button.set_use_underline(true); add_button.set_can_default(); -#if WITH_GTKMM_3_0 - Gtk::Box *mainVBox = get_content_area(); -#else - Gtk::Box *mainVBox = get_vbox(); -#endif + auto mainVBox = get_content_area(); mainVBox->pack_start(scrolled_window, true, true); add_action_widget(close_button, Gtk::RESPONSE_CLOSE); diff --git a/src/ui/dialog/livepatheffect-editor.cpp b/src/ui/dialog/livepatheffect-editor.cpp index 422ec10ae..f19652746 100644 --- a/src/ui/dialog/livepatheffect-editor.cpp +++ b/src/ui/dialog/livepatheffect-editor.cpp @@ -134,13 +134,6 @@ LivePathEffectEditor::LivePathEffectEditor() // Add toolbar items to toolbar toolbar_hbox.set_layout (Gtk::BUTTONBOX_END); - -#if !WITH_GTKMM_3_0 - // TODO: This has been removed from Gtkmm 3.0. Check that - // everything still looks OK! - toolbar_hbox.set_child_min_width( 16 ); -#endif - toolbar_hbox.add( button_add ); toolbar_hbox.set_child_secondary( button_add , true); toolbar_hbox.add( button_remove ); diff --git a/src/ui/dialog/livepatheffect-editor.h b/src/ui/dialog/livepatheffect-editor.h index 4aac25eaa..b69ee007a 100644 --- a/src/ui/dialog/livepatheffect-editor.h +++ b/src/ui/dialog/livepatheffect-editor.h @@ -112,11 +112,7 @@ private: void on_visibility_toggled( Glib::ustring const& str ); -#if WITH_GTKMM_3_0 Gtk::ButtonBox toolbar_hbox; -#else - Gtk::HButtonBox toolbar_hbox; -#endif Gtk::Button button_add; Gtk::Button button_remove; Gtk::Button button_up; diff --git a/src/ui/dialog/new-from-template.cpp b/src/ui/dialog/new-from-template.cpp index 74ec7111e..aed57871a 100644 --- a/src/ui/dialog/new-from-template.cpp +++ b/src/ui/dialog/new-from-template.cpp @@ -31,20 +31,12 @@ NewFromTemplate::NewFromTemplate() _main_widget = new TemplateLoadTab(this); -#if WITH_GTKMM_3_0 get_content_area()->pack_start(*_main_widget); -#else - get_vbox()->pack_start(*_main_widget); -#endif Gtk::Alignment *align; align = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER, 0.0, 0.0)); -#if WITH_GTKMM_3_0 get_content_area()->pack_end(*align, Gtk::PACK_SHRINK); -#else - get_vbox()->pack_end(*align, Gtk::PACK_SHRINK); -#endif align->set_padding(0, 0, 0, 15); align->add(_create_template_button); diff --git a/src/ui/dialog/object-properties.cpp b/src/ui/dialog/object-properties.cpp index be46129c4..9e10bbbeb 100644 --- a/src/ui/dialog/object-properties.cpp +++ b/src/ui/dialog/object-properties.cpp @@ -40,12 +40,7 @@ #include "xml/repr.h" #include -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif - +#include namespace Inkscape { namespace UI { @@ -106,16 +101,9 @@ void ObjectProperties::_init() Gtk::Box *contents = _getContents(); contents->set_spacing(0); -#if WITH_GTKMM_3_0 - Gtk::Grid *grid_top = Gtk::manage(new Gtk::Grid()); + auto grid_top = Gtk::manage(new Gtk::Grid()); grid_top->set_row_spacing(4); grid_top->set_column_spacing(0); -#else - Gtk::Table *grid_top = Gtk::manage(new Gtk::Table(4, 4)); - grid_top->set_row_spacings(4); - grid_top->set_col_spacings(0); -#endif - grid_top->set_border_width(4); contents->pack_start(*grid_top, false, false, 0); @@ -124,29 +112,14 @@ void ObjectProperties::_init() /* Create the label for the object id */ _label_id.set_label(_label_id.get_label() + " "); _label_id.set_alignment(1, 0.5); - -#if WITH_GTKMM_3_0 _label_id.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_label_id, 0, 0, 1, 1); -#else - grid_top->attach(_label_id, 0, 1, 0, 1, - Gtk::SHRINK | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif - /* Create the entry box for the object id */ _entry_id.set_tooltip_text(_("The id= attribute (only letters, digits, and the characters .-_: allowed)")); _entry_id.set_max_length(64); - -#if WITH_GTKMM_3_0 _entry_id.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_entry_id, 1, 0, 1, 1); -#else - grid_top->attach(_entry_id, 1, 2, 0, 1, - Gtk::EXPAND | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif _label_id.set_mnemonic_widget(_entry_id); @@ -160,29 +133,16 @@ void ObjectProperties::_init() _label_label.set_label(_label_label.get_label() + " "); _label_label.set_alignment(1, 0.5); -#if WITH_GTKMM_3_0 _label_label.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_label_label, 0, 1, 1, 1); -#else - grid_top->attach(_label_label, 0, 1, 1, 2, - Gtk::SHRINK | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif - /* Create the entry box for the object label */ _entry_label.set_tooltip_text(_("A freeform label for the object")); _entry_label.set_max_length(256); -#if WITH_GTKMM_3_0 _entry_label.set_hexpand(); _entry_label.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_entry_label, 1, 1, 1, 1); -#else - grid_top->attach(_entry_label, 1, 2, 1, 2, - Gtk::EXPAND | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif _label_label.set_mnemonic_widget(_entry_label); @@ -194,28 +154,16 @@ void ObjectProperties::_init() _label_title.set_label(_label_title.get_label() + " "); _label_title.set_alignment (1, 0.5); -#if WITH_GTKMM_3_0 _label_title.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_label_title, 0, 2, 1, 1); -#else - grid_top->attach(_label_title, 0, 1, 2, 3, - Gtk::SHRINK | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif /* Create the entry box for the object title */ _entry_title.set_sensitive (FALSE); _entry_title.set_max_length (256); -#if WITH_GTKMM_3_0 _entry_title.set_hexpand(); _entry_title.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_entry_title, 1, 2, 1, 1); -#else - grid_top->attach(_entry_title, 1, 2, 2, 3, - Gtk::EXPAND | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif _label_title.set_mnemonic_widget(_entry_title); // pressing enter in the label field is the same as clicking Set: @@ -244,14 +192,8 @@ void ObjectProperties::_init() _label_image_rendering.set_label(_label_image_rendering.get_label() + " "); _label_image_rendering.set_alignment(1, 0.5); -#if WITH_GTKMM_3_0 _label_image_rendering.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_label_image_rendering, 0, 3, 1, 1); -#else - grid_top->attach(_label_image_rendering, 0, 1, 3, 4, - Gtk::SHRINK | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif /* Create the combo box text for the 'image-rendering' property */ _combo_image_rendering.append( "auto" ); @@ -259,14 +201,8 @@ void ObjectProperties::_init() _combo_image_rendering.append( "optimizeSpeed" ); _combo_image_rendering.set_tooltip_text(_("The 'image-rendering' property can influence how a bitmap is up-scaled:\n\t'auto' no preference;\n\t'optimizeQuality' smooth;\n\t'optimizeSpeed' blocky.\nNote that this behaviour is not defined in the SVG 1.1 specification and not all browsers follow this interpretation.")); -#if WITH_GTKMM_3_0 _combo_image_rendering.set_valign(Gtk::ALIGN_CENTER); grid_top->attach(_combo_image_rendering, 1, 3, 1, 1); -#else - grid_top->attach(_combo_image_rendering, 1, 2, 3, 4, - Gtk::EXPAND | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif _label_image_rendering.set_mnemonic_widget(_combo_image_rendering); @@ -278,60 +214,36 @@ void ObjectProperties::_init() Gtk::HBox *hb_checkboxes = Gtk::manage(new Gtk::HBox()); contents->pack_start(*hb_checkboxes, FALSE, FALSE, 0); -#if WITH_GTKMM_3_0 - Gtk::Grid *grid_cb = Gtk::manage(new Gtk::Grid()); + auto grid_cb = Gtk::manage(new Gtk::Grid()); grid_cb->set_row_homogeneous(); grid_cb->set_column_homogeneous(true); -#else - Gtk::Table *grid_cb = Gtk::manage(new Gtk::Table(1, 2, true)); -#endif grid_cb->set_border_width(4); hb_checkboxes->pack_start(*grid_cb, true, true, 0); /* Hide */ _cb_hide.set_tooltip_text (_("Check to make the object invisible")); - -#if WITH_GTKMM_3_0 _cb_hide.set_hexpand(); _cb_hide.set_valign(Gtk::ALIGN_CENTER); grid_cb->attach(_cb_hide, 0, 0, 1, 1); -#else - grid_cb->attach(_cb_hide, 0, 1, 0, 1, - Gtk::EXPAND | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif _cb_hide.signal_toggled().connect(sigc::mem_fun(this, &ObjectProperties::_hiddenToggled)); /* Lock */ // TRANSLATORS: "Lock" is a verb here _cb_lock.set_tooltip_text(_("Check to make the object insensitive (not selectable by mouse)")); - -#if WITH_GTKMM_3_0 _cb_lock.set_hexpand(); _cb_lock.set_valign(Gtk::ALIGN_CENTER); grid_cb->attach(_cb_lock, 1, 0, 1, 1); -#else - grid_cb->attach(_cb_lock, 1, 2, 0, 1, - Gtk::EXPAND | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif _cb_lock.signal_toggled().connect(sigc::mem_fun(this, &ObjectProperties::_sensitivityToggled)); /* Button for setting the object's id, label, title and description. */ Gtk::Button *btn_set = Gtk::manage(new Gtk::Button(_("_Set"), 1)); -#if WITH_GTKMM_3_0 btn_set->set_hexpand(); btn_set->set_valign(Gtk::ALIGN_CENTER); grid_cb->attach(*btn_set, 2, 0, 1, 1); -#else - grid_cb->attach(*btn_set, 2, 3, 0, 1, - Gtk::EXPAND | Gtk::FILL, - Gtk::AttachOptions(), 0, 0 ); -#endif btn_set->signal_clicked().connect(sigc::mem_fun(this, &ObjectProperties::_labelChanged)); diff --git a/src/ui/dialog/object-properties.h b/src/ui/dialog/object-properties.h index dc28c0bad..8551d5fca 100644 --- a/src/ui/dialog/object-properties.h +++ b/src/ui/dialog/object-properties.h @@ -50,11 +50,7 @@ class SPDesktop; class SPItem; namespace Gtk { -#if WITH_GTKMM_3_0 class Grid; -#else -class Table; -#endif } namespace Inkscape { diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 27694a9ac..e4b48d10b 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -511,11 +511,7 @@ void ObjectsPanel::_setCompositingValues(SPItem *item) _blurConnection.block(); //Set the opacity -#if WITH_GTKMM_3_0 _opacity_adjustment->set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment->get_upper()); -#else - _opacity_adjustment.set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment.get_upper()); -#endif SPFeBlend *spblend = NULL; SPGaussianBlur *spblur = NULL; if (item->style->getFilter()) @@ -1481,11 +1477,7 @@ void ObjectsPanel::_opacityChangedIter(const Gtk::TreeIter& iter) if (item) { item->style->opacity.set = TRUE; -#if WITH_GTKMM_3_0 item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment->get_value() / _opacity_adjustment->get_upper()); -#else - item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment.get_value() / _opacity_adjustment.get_upper()); -#endif item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); } } @@ -1628,11 +1620,7 @@ ObjectsPanel::ObjectsPanel() : _opacity_vbox(false, 0), _opacity_label(_("Opacity:")), _opacity_label_unit(_("%")), -#if WITH_GTKMM_3_0 _opacity_adjustment(Gtk::Adjustment::create(100.0, 0.0, 100.0, 1.0, 1.0, 0.0)), -#else - _opacity_adjustment(100.0, 0.0, 100.0, 1.0, 1.0, 0.0), -#endif _opacity_hscale(_opacity_adjustment), _opacity_spin_button(_opacity_adjustment, 0.01, 1), _fe_cb(UI::Widget::SimpleFilterModifier::BLEND), @@ -1762,12 +1750,8 @@ ObjectsPanel::ObjectsPanel() : _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); _scroller.set_shadow_type(Gtk::SHADOW_IN); Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 Gtk::Requisition sreq_natural; _scroller.get_preferred_size(sreq_natural, sreq); -#else - sreq = _scroller.size_request(); -#endif int minHeight = 70; if (sreq.height < minHeight) { // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar @@ -1800,13 +1784,8 @@ ObjectsPanel::ObjectsPanel() : _opacity_hbox.pack_start(_opacity_spin_button, false, false, 0); _opacity_hbox.pack_start(_opacity_label_unit, false, false, 3); _opacity_hscale.set_draw_value(false); -#if WITH_GTKMM_3_0 _opacityConnection = _opacity_adjustment->signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged)); _opacity_label.set_mnemonic_widget(_opacity_hscale); -#else - _opacityConnection = _opacity_adjustment.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged)); - _opacity_label.set_mnemonic_widget(_opacity_hscale); -#endif //Keep the labels aligned GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); diff --git a/src/ui/dialog/objects.h b/src/ui/dialog/objects.h index 9b9a6025a..018f9191f 100644 --- a/src/ui/dialog/objects.h +++ b/src/ui/dialog/objects.h @@ -134,15 +134,9 @@ private: Gtk::TreeView _tree; Gtk::CellRendererText *_text_renderer; Gtk::TreeView::Column *_name_column; -#if WITH_GTKMM_3_0 Gtk::Box _buttonsRow; Gtk::Box _buttonsPrimary; Gtk::Box _buttonsSecondary; -#else - Gtk::HBox _buttonsRow; - Gtk::HBox _buttonsPrimary; - Gtk::HBox _buttonsSecondary; -#endif Gtk::ScrolledWindow _scroller; Gtk::Menu _popupMenu; Inkscape::UI::Widget::SpinButton _spinBtn; @@ -161,11 +155,7 @@ private: Gtk::HBox _opacity_hbox; Gtk::Label _opacity_label; Gtk::Label _opacity_label_unit; -#if WITH_GTKMM_3_0 Glib::RefPtr _opacity_adjustment; -#else - Gtk::Adjustment _opacity_adjustment; -#endif Gtk::HScale _opacity_hscale; Inkscape::UI::Widget::SpinButton _opacity_spin_button; diff --git a/src/ui/dialog/ocaldialogs.cpp b/src/ui/dialog/ocaldialogs.cpp index f2ee79d06..9e9037fdd 100644 --- a/src/ui/dialog/ocaldialogs.cpp +++ b/src/ui/dialog/ocaldialogs.cpp @@ -316,27 +316,10 @@ LoadingBox::LoadingBox() : Gtk::EventBox() draw_spinner = false; spinner_step = 0; -#if WITH_GTKMM_3_0 signal_draw().connect(sigc::mem_fun(*this, &LoadingBox::_on_draw), false); -#else - signal_expose_event().connect(sigc::mem_fun(*this, &LoadingBox::_on_expose_event), false); -#endif -} - -#if !WITH_GTKMM_3_0 -bool LoadingBox::_on_expose_event(GdkEventExpose* /*event*/) -{ - Cairo::RefPtr cr = get_window()->create_cairo_context(); - - return _on_draw(cr); } -#endif -bool LoadingBox::_on_draw(const Cairo::RefPtr & -#if WITH_GTKMM_3_0 -cr -#endif -) +bool LoadingBox::_on_draw(const Cairo::RefPtr &cr) { // Draw shadow int x = get_allocation().get_x(); @@ -344,27 +327,14 @@ cr int width = get_allocation().get_width(); int height = get_allocation().get_height(); -#if WITH_GTKMM_3_0 get_style_context()->render_frame(cr, x, y, width, height); -#else - get_style()->paint_shadow(get_window(), get_state(), Gtk::SHADOW_IN, - Gdk::Rectangle(x, y, width, height), - *this, Glib::ustring("viewport"), x, y, width, height); -#endif if (draw_spinner) { int spinner_size = 16; int spinner_x = x + (width - spinner_size) / 2; int spinner_y = y + (height - spinner_size) / 2; -#if WITH_GTKMM_3_0 get_style_context()->render_activity(cr, spinner_x, spinner_y, spinner_size, spinner_size); -#else - gtk_paint_spinner(gtk_widget_get_style(GTK_WIDGET(gobj())), - gtk_widget_get_window(GTK_WIDGET(gobj())), - gtk_widget_get_state(GTK_WIDGET(gobj())), NULL, GTK_WIDGET(gobj()), - NULL, spinner_step, spinner_x, spinner_y, spinner_size, spinner_size); -#endif } return false; @@ -434,11 +404,7 @@ PreviewWidget::PreviewWidget() : Gtk::VBox(false, 12) box_loading->set_size_request(90, 90); set_border_width(12); -#if WITH_GTKMM_3_0 signal_draw().connect(sigc::mem_fun(*this, &PreviewWidget::_on_draw), false); -#else - signal_expose_event().connect(sigc::mem_fun(*this, &PreviewWidget::_on_expose_event), false); -#endif clear(); } @@ -482,15 +448,6 @@ void PreviewWidget::clear() image->hide(); } -#if !WITH_GTKMM_3_0 -bool PreviewWidget::_on_expose_event(GdkEventExpose* /*event*/) -{ - Cairo::RefPtr cr = get_window()->create_cairo_context(); - - return _on_draw(cr); -} -#endif - bool PreviewWidget::_on_draw(const Cairo::RefPtr& cr) { // Draw background @@ -499,16 +456,10 @@ bool PreviewWidget::_on_draw(const Cairo::RefPtr& cr) int width = get_allocation().get_width(); int height = get_allocation().get_height(); -#if WITH_GTKMM_3_0 Gdk::RGBA background_fill; get_style_context()->lookup_color("base_color", background_fill); cr->rectangle(x, y, width, height); Gdk::Cairo::set_source_rgba(cr, background_fill); -#else - Gdk::Color background_fill = get_style()->get_base(get_state()); - cr->rectangle(x, y, width, height); - Gdk::Cairo::set_source_color(cr, background_fill); -#endif cr->fill(); @@ -573,57 +524,12 @@ void StatusWidget::end_process() clear(); } -#if !GTK_CHECK_VERSION(3,0,0) -SearchEntry::SearchEntry() : Gtk::Entry() -{ - signal_changed().connect(sigc::mem_fun(*this, &SearchEntry::_on_changed)); - signal_icon_press().connect(sigc::mem_fun(*this, &SearchEntry::_on_icon_pressed)); - - set_icon_from_icon_name(INKSCAPE_ICON("edit-find"), Gtk::ENTRY_ICON_PRIMARY); - gtk_entry_set_icon_from_icon_name(gobj(), GTK_ENTRY_ICON_SECONDARY, NULL); -} - -void SearchEntry::_on_icon_pressed(Gtk::EntryIconPosition icon_position, const GdkEventButton* /*event*/) -{ - if (icon_position == Gtk::ENTRY_ICON_SECONDARY) { - grab_focus(); - delete_text(0, -1); - } else if (icon_position == Gtk::ENTRY_ICON_PRIMARY) { - select_region(0, -1); - grab_focus(); - } -} - -void SearchEntry::_on_changed() -{ - if (get_text().empty()) { - gtk_entry_set_icon_from_icon_name(gobj(), GTK_ENTRY_ICON_SECONDARY, NULL); - } else { - set_icon_from_icon_name(INKSCAPE_ICON("edit-clear"), Gtk::ENTRY_ICON_SECONDARY); - } -} -#endif - - BaseBox::BaseBox() : Gtk::EventBox() { -#if WITH_GTKMM_3_0 signal_draw().connect(sigc::mem_fun(*this, &BaseBox::_on_draw), false); -#else - signal_expose_event().connect(sigc::mem_fun(*this, &BaseBox::_on_expose_event), false); -#endif set_visible_window(false); } -#if !WITH_GTKMM_3_0 -bool BaseBox::_on_expose_event(GdkEventExpose* /*event*/) -{ - Cairo::RefPtr cr = get_window()->create_cairo_context(); - - return _on_draw(cr); -} -#endif - bool BaseBox::_on_draw(const Cairo::RefPtr& cr) { // Draw background and shadow @@ -632,23 +538,12 @@ bool BaseBox::_on_draw(const Cairo::RefPtr& cr) int width = get_allocation().get_width(); int height = get_allocation().get_height(); -#if WITH_GTKMM_3_0 Gdk::RGBA background_fill; get_style_context()->lookup_color("base_color", background_fill); cr->rectangle(x, y, width, height); Gdk::Cairo::set_source_rgba(cr, background_fill); cr->fill(); get_style_context()->render_frame(cr, x, y, width, height); -#else - Gdk::Color background_fill = get_style()->get_base(get_state()); - cr->rectangle(x, y, width, height); - Gdk::Cairo::set_source_color(cr, background_fill); - cr->fill(); - - get_style()->paint_shadow(get_window(), get_state(), Gtk::SHADOW_IN, - Gdk::Rectangle(x, y, width, height), - *this, Glib::ustring("viewport"), x, y, width, height); -#endif return false; } @@ -665,23 +560,10 @@ LogoArea::LogoArea() : Gtk::EventBox() draw_logo = false; } -#if WITH_GTKMM_3_0 signal_draw().connect(sigc::mem_fun(*this, &LogoArea::_on_draw)); -#else - signal_expose_event().connect(sigc::mem_fun(*this, &LogoArea::_on_expose_event)); -#endif set_visible_window(false); } -#if !WITH_GTKMM_3_0 -bool LogoArea::_on_expose_event(GdkEventExpose* /*event*/) -{ - Cairo::RefPtr cr = get_window()->create_cairo_context(); - - return _on_draw(cr); -} -#endif - bool LogoArea::_on_draw(const Cairo::RefPtr& cr) { if (draw_logo) { @@ -692,16 +574,9 @@ bool LogoArea::_on_draw(const Cairo::RefPtr& cr) int x_logo = x + (width - 220) / 2; int y_logo = y + (height - 76) / 2; - // Draw logo, we mask [read fill] it with the mid colour from the - // user's GTK theme -#if WITH_GTKMM_3_0 - // For GTK+ 3, use grey + // Draw logo, we mask [read fill] it with grey Gdk::RGBA logo_fill("grey"); Gdk::Cairo::set_source_rgba(cr, logo_fill); -#else - Gdk::Color logo_fill = get_style()->get_mid(get_state()); - Gdk::Cairo::set_source_color(cr, logo_fill); -#endif cr->mask(logo_mask, x_logo, y_logo); } @@ -1179,16 +1054,9 @@ void ImportDialog::update_label_no_search_results() Glib::ustring msg_two = _("Please make sure all keywords are spelled correctly," " or try again with different keywords."); -#if WITH_GTKMM_3_0 - Glib::ustring markup = Glib::ustring::compose( + auto markup = Glib::ustring::compose( "%1\n%2", msg_one, msg_two); -#else - Gdk::Color grey = entry_search->get_style()->get_text_aa(entry_search->get_state()); - Glib::ustring markup = Glib::ustring::compose( - "%1\n%3", - msg_one, grey.to_string(), msg_two); -#endif label_not_found->set_markup(markup); } @@ -1208,33 +1076,17 @@ ImportDialog::ImportDialog(Gtk::Window& parent_window, FileDialogType file_types dialogType = file_types; // Creation - Gtk::VBox *vbox = new Gtk::VBox(false, 0); - -#if WITH_GTKMM_3_0 - Gtk::ButtonBox *hbuttonbox_bottom = new Gtk::ButtonBox(); -#else - Gtk::HButtonBox *hbuttonbox_bottom = new Gtk::HButtonBox(); -#endif - - Gtk::HBox *hbox_bottom = new Gtk::HBox(false, 12); + auto vbox = new Gtk::VBox(false, 0); + auto hbuttonbox_bottom = new Gtk::ButtonBox(); + auto hbox_bottom = new Gtk::HBox(false, 12); BaseBox *basebox_logo = new BaseBox(); BaseBox *basebox_no_search_results = new BaseBox(); label_not_found = new Gtk::Label(); label_description = new Gtk::Label(); - -#if GTK_CHECK_VERSION(3,0,0) entry_search = new Gtk::SearchEntry(); -#else - entry_search = new SearchEntry(); -#endif - button_search = new Gtk::Button(_("Search")); -#if WITH_GTKMM_3_0 - Gtk::ButtonBox* hbuttonbox_search = new Gtk::ButtonBox(); -#else - Gtk::HButtonBox* hbuttonbox_search = new Gtk::HButtonBox(); -#endif + auto hbuttonbox_search = new Gtk::ButtonBox(); Gtk::ScrolledWindow* scrolledwindow_preview = new Gtk::ScrolledWindow(); preview_files = new PreviewWidget(); diff --git a/src/ui/dialog/ocaldialogs.h b/src/ui/dialog/ocaldialogs.h index 9de24d821..db3c60786 100644 --- a/src/ui/dialog/ocaldialogs.h +++ b/src/ui/dialog/ocaldialogs.h @@ -17,19 +17,16 @@ # include #endif -//Gtk includes +// Gtkmm includes #include #include #include #include +#include #include #include -#if GTK_CHECK_VERSION(3,0,0) -# include -#endif - #include //Inkscape includes @@ -283,10 +280,6 @@ private: sigc::connection timeout; bool draw_spinner; -#if !WITH_GTKMM_3_0 - bool _on_expose_event(GdkEventExpose* event); -#endif - bool _on_draw(const Cairo::RefPtr& cr); bool on_timeout(); }; @@ -310,10 +303,6 @@ private: WrapLabel* label_description; WrapLabel* label_time; -#if !WITH_GTKMM_3_0 - bool _on_expose_event(GdkEventExpose* event); -#endif - bool _on_draw(const Cairo::RefPtr& cr); }; @@ -336,21 +325,6 @@ public: Gtk::Label* label; }; -#if !GTK_CHECK_VERSION(3,0,0) -/** - * A Gtk::Entry with search & clear icons - */ -class SearchEntry : public Gtk::Entry -{ -public: - SearchEntry(); - -private: - void _on_icon_pressed(Gtk::EntryIconPosition icon_position, const GdkEventButton* event); - void _on_changed(); -}; -#endif - /** * A box which paints an overlay of the OCAL logo */ @@ -359,9 +333,6 @@ class LogoArea : public Gtk::EventBox public: LogoArea(); private: -#if !WITH_GTKMM_3_0 - bool _on_expose_event(GdkEventExpose* event); -#endif bool _on_draw(const Cairo::RefPtr& cr); bool draw_logo; Cairo::RefPtr logo_mask; @@ -375,9 +346,6 @@ class BaseBox : public Gtk::EventBox public: BaseBox(); private: -#if !WITH_GTKMM_3_0 - bool _on_expose_event(GdkEventExpose* event); -#endif bool _on_draw(const Cairo::RefPtr& cr); }; @@ -459,12 +427,7 @@ protected: private: Glib::ustring filename_image; Glib::ustring filename_thumbnail; - -#if GTK_CHECK_VERSION(3,0,0) Gtk::SearchEntry *entry_search; -#else - SearchEntry *entry_search; -#endif LogoArea *drawingarea_logo; SearchResultList *list_results; diff --git a/src/ui/dialog/polar-arrange-tab.cpp b/src/ui/dialog/polar-arrange-tab.cpp index 5ec1285c1..5c588ebac 100644 --- a/src/ui/dialog/polar-arrange-tab.cpp +++ b/src/ui/dialog/polar-arrange-tab.cpp @@ -33,11 +33,7 @@ namespace Dialog { PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_) : parent(parent_), -#if WITH_GTKMM_3_0 parametersTable(), -#else - parametersTable(3, 3, false), -#endif centerY("", C_("Polar arrange tab", "Y coordinate of the center"), UNIT_TYPE_LINEAR), centerX("", C_("Polar arrange tab", "X coordinate of the center"), centerY), radiusY("", C_("Polar arrange tab", "Y coordinate of the radius"), UNIT_TYPE_LINEAR), @@ -81,11 +77,7 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_) pack_start(arrangeOnParametersRadio, false, false); centerLabel.set_text(C_("Polar arrange tab", "Center X/Y:")); -#if WITH_GTKMM_3_0 parametersTable.attach(centerLabel, 0, 0, 1, 1); -#else - parametersTable.attach(centerLabel, 0, 1, 0, 1, Gtk::FILL); -#endif centerX.setDigits(2); centerX.setIncrements(0.2, 0); centerX.setRange(-10000, 10000); @@ -94,20 +86,11 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_) centerY.setIncrements(0.2, 0); centerY.setRange(-10000, 10000); centerY.setValue(0, "px"); -#if WITH_GTKMM_3_0 parametersTable.attach(centerX, 1, 0, 1, 1); parametersTable.attach(centerY, 2, 0, 1, 1); -#else - parametersTable.attach(centerX, 1, 2, 0, 1, Gtk::FILL); - parametersTable.attach(centerY, 2, 3, 0, 1, Gtk::FILL); -#endif radiusLabel.set_text(C_("Polar arrange tab", "Radius X/Y:")); -#if WITH_GTKMM_3_0 parametersTable.attach(radiusLabel, 0, 1, 1, 1); -#else - parametersTable.attach(radiusLabel, 0, 1, 1, 2, Gtk::FILL); -#endif radiusX.setDigits(2); radiusX.setIncrements(0.2, 0); radiusX.setRange(0.001, 10000); @@ -116,20 +99,11 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_) radiusY.setIncrements(0.2, 0); radiusY.setRange(0.001, 10000); radiusY.setValue(100, "px"); -#if WITH_GTKMM_3_0 parametersTable.attach(radiusX, 1, 1, 1, 1); parametersTable.attach(radiusY, 2, 1, 1, 1); -#else - parametersTable.attach(radiusX, 1, 2, 1, 2, Gtk::FILL); - parametersTable.attach(radiusY, 2, 3, 1, 2, Gtk::FILL); -#endif angleLabel.set_text(_("Angle X/Y:")); -#if WITH_GTKMM_3_0 parametersTable.attach(angleLabel, 0, 2, 1, 1); -#else - parametersTable.attach(angleLabel, 0, 1, 2, 3, Gtk::FILL); -#endif angleX.setDigits(2); angleX.setIncrements(0.2, 0); angleX.setRange(-10000, 10000); @@ -138,13 +112,8 @@ PolarArrangeTab::PolarArrangeTab(ArrangeDialog *parent_) angleY.setIncrements(0.2, 0); angleY.setRange(-10000, 10000); angleY.setValue(180, "°"); -#if WITH_GTKMM_3_0 parametersTable.attach(angleX, 1, 2, 1, 1); parametersTable.attach(angleY, 2, 2, 1, 1); -#else - parametersTable.attach(angleX, 1, 2, 2, 3, Gtk::FILL); - parametersTable.attach(angleY, 2, 3, 2, 3, Gtk::FILL); -#endif pack_start(parametersTable, false, false); rotateObjectsCheckBox.set_label(_("Rotate objects")); diff --git a/src/ui/dialog/polar-arrange-tab.h b/src/ui/dialog/polar-arrange-tab.h index f7d7bf11f..1a4e04eda 100644 --- a/src/ui/dialog/polar-arrange-tab.h +++ b/src/ui/dialog/polar-arrange-tab.h @@ -20,12 +20,7 @@ #include #include - -#if WITH_GTKMM_3_0 - #include -#else - #include -#endif +#include namespace Inkscape { namespace UI { @@ -75,11 +70,7 @@ private: Gtk::RadioButton arrangeOnLastCircleRadio; Gtk::RadioButton arrangeOnParametersRadio; -#if WITH_GTKMM_3_0 Gtk::Grid parametersTable; -#else - Gtk::Table parametersTable; -#endif Gtk::Label centerLabel; Inkscape::UI::Widget::ScalarUnit centerY; diff --git a/src/ui/dialog/spellcheck.h b/src/ui/dialog/spellcheck.h index e98a9d80e..834f23c24 100644 --- a/src/ui/dialog/spellcheck.h +++ b/src/ui/dialog/spellcheck.h @@ -225,11 +225,7 @@ private: * Dialogs widgets */ Gtk::Label banner_label; -#if WITH_GTKMM_3_0 Gtk::ButtonBox banner_hbox; -#else - Gtk::HButtonBox banner_hbox; -#endif Gtk::ScrolledWindow scrolled_window; Gtk::TreeView tree_view; Glib::RefPtr model; @@ -243,21 +239,10 @@ private: Gtk::Button add_button; GtkWidget * dictionary_combo; Gtk::HBox dictionary_hbox; - -#if WITH_GTKMM_3_0 Gtk::Separator action_sep; -#else - Gtk::HSeparator action_sep; -#endif - Gtk::Button stop_button; Gtk::Button start_button; - -#if WITH_GTKMM_3_0 Gtk::ButtonBox actionbutton_hbox; -#else - Gtk::HButtonBox actionbutton_hbox; -#endif SPDesktop * desktop; DesktopTracker deskTrack; diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp index 08ebbcf14..58ac62cb0 100644 --- a/src/ui/dialog/svg-fonts-dialog.cpp +++ b/src/ui/dialog/svg-fonts-dialog.cpp @@ -890,12 +890,7 @@ void SvgFontsDialog::add_font(){ SvgFontsDialog::SvgFontsDialog() : UI::Widget::Panel("", "/dialogs/svgfonts", SP_VERB_DIALOG_SVG_FONTS), _add(Gtk::Stock::NEW) { -#if WITH_GTKMM_3_0 kerning_slider = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL)); -#else - kerning_slider = Gtk::manage(new Gtk::HScale); -#endif - _add.signal_clicked().connect(sigc::mem_fun(*this, &SvgFontsDialog::add_font)); Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox()); diff --git a/src/ui/dialog/svg-fonts-dialog.h b/src/ui/dialog/svg-fonts-dialog.h index e80bbfd39..1588c0fc2 100644 --- a/src/ui/dialog/svg-fonts-dialog.h +++ b/src/ui/dialog/svg-fonts-dialog.h @@ -27,11 +27,7 @@ #include "xml/helper-observer.h" namespace Gtk { -#if WITH_GTKMM_3_0 class Scale; -#else -class HScale; -#endif } class SPGlyph; @@ -216,12 +212,7 @@ private: GlyphComboBox first_glyph, second_glyph; SPGlyphKerning* kerning_pair; Inkscape::UI::Widget::SpinButton setwidth_spin; - -#if WITH_GTKMM_3_0 Gtk::Scale* kerning_slider; -#else - Gtk::HScale* kerning_slider; -#endif class EntryWidget : public Gtk::HBox { diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 6577c8d4e..964e844b2 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -658,12 +658,8 @@ SwatchesPanel::SwatchesPanel(gchar const* prefsPath) : if (Glib::ustring(prefsPath) == "/dialogs/swatches") { Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 Gtk::Requisition sreq_natural; get_preferred_size(sreq_natural, sreq); -#else - sreq = size_request(); -#endif int minHeight = 60; if (sreq.height < minHeight) { set_size_request(70, minHeight); diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index 06c17611f..597f90e95 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -20,14 +20,8 @@ #include #include - -#if WITH_GTKMM_3_0 -# include -# include -#else -# include -#endif - +#include +#include #include #include #include @@ -121,11 +115,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : { /******************** Table *************************/ -#if WITH_GTKMM_3_0 - Gtk::Grid *table = new Gtk::Grid(); -#else - Gtk::Table *table = new Gtk::Table(2, 4, false); -#endif + auto table = new Gtk::Grid(); // panel is a cloked Gtk::VBox _getContents()->pack_start(*Gtk::manage(table), Gtk::PACK_EXPAND_WIDGET); @@ -133,24 +123,12 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : /******************** Symbol Sets *************************/ Gtk::Label* labelSet = new Gtk::Label(_("Symbol set: ")); - -#if WITH_GTKMM_3_0 table->attach(*Gtk::manage(labelSet),0,row,1,1); -#else - table->attach(*Gtk::manage(labelSet),0,1,row,row+1,Gtk::SHRINK,Gtk::SHRINK); -#endif - symbolSet = new Gtk::ComboBoxText(); // Fill in later symbolSet->append(_("Current Document")); symbolSet->set_active_text(_("Current Document")); - -#if WITH_GTKMM_3_0 symbolSet->set_hexpand(); table->attach(*Gtk::manage(symbolSet),1,row,1,1); -#else - table->attach(*Gtk::manage(symbolSet),1,2,row,row+1,Gtk::FILL|Gtk::EXPAND,Gtk::SHRINK); -#endif - sigc::connection connSet = symbolSet->signal_changed().connect( sigc::mem_fun(*this, &SymbolsDialog::rebuild)); instanceConns.push_back(connSet); @@ -183,14 +161,9 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : Gtk::ScrolledWindow *scroller = new Gtk::ScrolledWindow(); scroller->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS); scroller->add(*Gtk::manage(iconView)); - -#if WITH_GTKMM_3_0 scroller->set_hexpand(); scroller->set_vexpand(); table->attach(*Gtk::manage(scroller),0,row,2,1); -#else - table->attach(*Gtk::manage(scroller),0,2,row,row+1,Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL); -#endif ++row; @@ -199,12 +172,8 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : Gtk::HBox* tools = new Gtk::HBox(); //tools->set_layout( Gtk::BUTTONBOX_END ); -#if WITH_GTKMM_3_0 scroller->set_hexpand(); table->attach(*Gtk::manage(tools),0,row,2,1); -#else - table->attach(*Gtk::manage(tools),0,2,row,row+1,Gtk::EXPAND|Gtk::FILL,Gtk::FILL); -#endif addSymbol = Gtk::manage(new Gtk::Button()); addSymbol->add(*Gtk::manage(Glib::wrap( @@ -398,11 +367,7 @@ void SymbolsDialog::revertSymbol() { void SymbolsDialog::iconDragDataGet(const Glib::RefPtr& /*context*/, Gtk::SelectionData& data, guint /*info*/, guint /*time*/) { -#if WITH_GTKMM_3_0 - std::vector iconArray = iconView->get_selected_items(); -#else - Gtk::IconView::ArrayHandle_TreePaths iconArray = iconView->get_selected_items(); -#endif + auto iconArray = iconView->get_selected_items(); if( iconArray.empty() ) { //std::cout << " iconArray empty: huh? " << std::endl; @@ -455,11 +420,7 @@ SPDocument* SymbolsDialog::selectedSymbols() { Glib::ustring SymbolsDialog::selectedSymbolId() { -#if WITH_GTKMM_3_0 - std::vector iconArray = iconView->get_selected_items(); -#else - Gtk::IconView::ArrayHandle_TreePaths iconArray = iconView->get_selected_items(); -#endif + auto iconArray = iconView->get_selected_items(); if( !iconArray.empty() ) { Gtk::TreeModel::Path const & path = *iconArray.begin(); diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index c99c1bff3..be91ca8af 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -980,12 +980,8 @@ TagsPanel::TagsPanel() : _scroller.set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC ); _scroller.set_shadow_type(Gtk::SHADOW_IN); Gtk::Requisition sreq; -#if WITH_GTKMM_3_0 Gtk::Requisition sreq_natural; _scroller.get_preferred_size(sreq_natural, sreq); -#else - sreq = _scroller.size_request(); -#endif int minHeight = 70; if (sreq.height < minHeight) { // Set a min height to see the layers when used with Ubuntu liboverlay-scrollbar diff --git a/src/ui/dialog/tags.h b/src/ui/dialog/tags.h index 3576bd111..bdda22dd4 100644 --- a/src/ui/dialog/tags.h +++ b/src/ui/dialog/tags.h @@ -141,15 +141,9 @@ private: Gtk::TreeView _tree; Gtk::CellRendererText *_text_renderer; Gtk::TreeView::Column *_name_column; -#if WITH_GTKMM_3_0 Gtk::Box _buttonsRow; Gtk::Box _buttonsPrimary; Gtk::Box _buttonsSecondary; -#else - Gtk::HBox _buttonsRow; - Gtk::HBox _buttonsPrimary; - Gtk::HBox _buttonsSecondary; -#endif Gtk::ScrolledWindow _scroller; Gtk::Menu _popupMenu; Inkscape::UI::Widget::SpinButton _spinBtn; diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index c01da8864..83b636ae2 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -99,9 +99,7 @@ TextEdit::TextEdit() styleButton(&align_right, _("Align right"), INKSCAPE_ICON("format-justify-right"), &align_left); styleButton(&align_justify, _("Justify (only flowed text)"), INKSCAPE_ICON("format-justify-fill"), &align_left); -#if WITH_GTKMM_3_0 align_sep.set_orientation(Gtk::ORIENTATION_VERTICAL); -#endif layout_hbox.pack_start(align_sep, false, false, 10); @@ -109,9 +107,7 @@ TextEdit::TextEdit() styleButton(&text_horizontal, _("Horizontal text"), INKSCAPE_ICON("format-text-direction-horizontal"), NULL); styleButton(&text_vertical, _("Vertical text"), INKSCAPE_ICON("format-text-direction-vertical"), &text_horizontal); -#if WITH_GTKMM_3_0 text_sep.set_orientation(Gtk::ORIENTATION_VERTICAL); -#endif layout_hbox.pack_start(text_sep, false, false, 10); @@ -146,12 +142,8 @@ TextEdit::TextEdit() gtk_widget_set_tooltip_text(startOffset, _("Text path offset")); -#if WITH_GTKMM_3_0 - Gtk::Separator *sep = Gtk::manage(new Gtk::Separator()); + auto sep = Gtk::manage(new Gtk::Separator()); sep->set_orientation(Gtk::ORIENTATION_VERTICAL); -#else - Gtk::VSeparator *sep = Gtk::manage(new Gtk::VSeparator); -#endif layout_hbox.pack_start(*sep, false, false, 10); layout_hbox.pack_start(*Gtk::manage(Glib::wrap(startOffset)), false, false); @@ -175,7 +167,6 @@ TextEdit::TextEdit() gtk_text_view_set_wrap_mode ((GtkTextView *) text_view, GTK_WRAP_WORD); #ifdef WITH_GTKSPELL -#ifdef WITH_GTKMM_3_0 /* TODO: Use computed xml:lang attribute of relevant element, if present, to specify the language (either as 2nd arg of gtkspell_new_attach, or with explicit @@ -187,20 +178,6 @@ TextEdit::TextEdit() if (! gtk_spell_checker_attach(speller, GTK_TEXT_VIEW(text_view))) { g_print("gtkspell error:\n"); } -#else - GError *error = NULL; - -/* - TODO: Use computed xml:lang attribute of relevant element, if present, to specify the - language (either as 2nd arg of gtkspell_new_attach, or with explicit - gtkspell_set_language call in; see advanced.c example in gtkspell docs). - onReadSelection looks like a suitable place. -*/ - if (gtkspell_new_attach(GTK_TEXT_VIEW(text_view), NULL, &error) == NULL) { - g_print("gtkspell error: %s\n", error->message); - g_error_free(error); - } -#endif #endif gtk_widget_set_size_request (text_view, -1, 64); diff --git a/src/ui/dialog/text-edit.h b/src/ui/dialog/text-edit.h index cfe612268..e974874d2 100644 --- a/src/ui/dialog/text-edit.h +++ b/src/ui/dialog/text-edit.h @@ -198,21 +198,10 @@ private: Gtk::RadioButton align_center; Gtk::RadioButton align_right; Gtk::RadioButton align_justify; - -#if WITH_GTKMM_3_0 Gtk::Separator align_sep; -#else - Gtk::VSeparator align_sep; -#endif - Gtk::RadioButton text_vertical; Gtk::RadioButton text_horizontal; - -#if WITH_GTKMM_3_0 Gtk::Separator text_sep; -#else - Gtk::VSeparator text_sep; -#endif GtkWidget *spacing_combo; diff --git a/src/ui/dialog/tile.h b/src/ui/dialog/tile.h index de1d3028b..2c29f85b8 100644 --- a/src/ui/dialog/tile.h +++ b/src/ui/dialog/tile.h @@ -29,12 +29,7 @@ namespace Gtk { class Button; - -#if WITH_GTKMM_3_0 class Grid; -#else -class Table; -#endif } namespace Inkscape { diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index b7638e8c1..72133f448 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -216,38 +216,20 @@ void Transformation::layoutPageMove() //_scalar_move_vertical.set_label_image( INKSCAPE_STOCK_ARROWS_HOR ); -#if WITH_GTKMM_3_0 _page_move.table().attach(_scalar_move_horizontal, 0, 0, 2, 1); _page_move.table().attach(_units_move, 2, 0, 1, 1); -#else - _page_move.table() - .attach(_scalar_move_horizontal, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK); - - _page_move.table() - .attach(_units_move, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); -#endif _scalar_move_horizontal.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onMoveValueChanged)); //_scalar_move_vertical.set_label_image( INKSCAPE_STOCK_ARROWS_VER ); -#if WITH_GTKMM_3_0 _page_move.table().attach(_scalar_move_vertical, 0, 1, 2, 1); -#else - _page_move.table() - .attach(_scalar_move_vertical, 0, 2, 1, 2, Gtk::FILL, Gtk::SHRINK); -#endif _scalar_move_vertical.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onMoveValueChanged)); // Relative moves -#if WITH_GTKMM_3_0 _page_move.table().attach(_check_move_relative, 0, 2, 2, 1); -#else - _page_move.table() - .attach(_check_move_relative, 0, 2, 2, 3, Gtk::FILL, Gtk::SHRINK); -#endif _check_move_relative.set_active(true); _check_move_relative.signal_toggled() @@ -273,36 +255,18 @@ void Transformation::layoutPageScale() _scalar_scale_vertical.setAbsoluteIsIncrement(true); _scalar_scale_vertical.setPercentageIsIncrement(true); -#if WITH_GTKMM_3_0 _page_scale.table().attach(_scalar_scale_horizontal, 0, 0, 2, 1); -#else - _page_scale.table() - .attach(_scalar_scale_horizontal, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK); -#endif _scalar_scale_horizontal.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onScaleXValueChanged)); -#if WITH_GTKMM_3_0 _page_scale.table().attach(_units_scale, 2, 0, 1, 1); _page_scale.table().attach(_scalar_scale_vertical, 0, 1, 2, 1); -#else - _page_scale.table() - .attach(_units_scale, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - - _page_scale.table() - .attach(_scalar_scale_vertical, 0, 2, 1, 2, Gtk::FILL, Gtk::SHRINK); -#endif _scalar_scale_vertical.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onScaleYValueChanged)); -#if WITH_GTKMM_3_0 _page_scale.table().attach(_check_scale_proportional, 0, 2, 2, 1); -#else - _page_scale.table() - .attach(_check_scale_proportional, 0, 2, 2, 3, Gtk::FILL, Gtk::SHRINK); -#endif _check_scale_proportional.set_active(false); _check_scale_proportional.signal_toggled() @@ -334,24 +298,10 @@ void Transformation::layoutPageRotate() Gtk::RadioButton::Group group = _counterclockwise_rotate.get_group(); _clockwise_rotate.set_group(group); -#if WITH_GTKMM_3_0 _page_rotate.table().attach(_scalar_rotate, 0, 0, 2, 1); _page_rotate.table().attach(_units_rotate, 2, 0, 1, 1); _page_rotate.table().attach(_counterclockwise_rotate, 3, 0, 1, 1); _page_rotate.table().attach(_clockwise_rotate, 4, 0, 1, 1); -#else - _page_rotate.table() - .attach(_scalar_rotate, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK); - - _page_rotate.table() - .attach(_units_rotate, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - - _page_rotate.table() - .attach(_counterclockwise_rotate, 3, 4, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - - _page_rotate.table() - .attach(_clockwise_rotate, 4, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); -#endif Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/dialogs/transformation/rotateCounterClockwise", TRUE)) { @@ -385,26 +335,13 @@ void Transformation::layoutPageSkew() _scalar_skew_vertical.setDigits(3); _scalar_skew_vertical.setIncrements(0.1, 1.0); -#if WITH_GTKMM_3_0 _page_skew.table().attach(_scalar_skew_horizontal, 0, 0, 2, 1); -#else - _page_skew.table() - .attach(_scalar_skew_horizontal, 0, 2, 0, 1, Gtk::FILL, Gtk::SHRINK); -#endif _scalar_skew_horizontal.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onSkewValueChanged)); -#if WITH_GTKMM_3_0 _page_skew.table().attach(_units_skew, 2, 0, 1, 1); _page_skew.table().attach(_scalar_skew_vertical, 0, 1, 2, 1); -#else - _page_skew.table() - .attach(_units_skew, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - - _page_skew.table() - .attach(_scalar_skew_vertical, 0, 2, 1, 2, Gtk::FILL, Gtk::SHRINK); -#endif _scalar_skew_vertical.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onSkewValueChanged)); @@ -422,12 +359,7 @@ void Transformation::layoutPageTransform() _scalar_transform_a.setIncrements(0.1, 1.0); _scalar_transform_a.setValue(1.0); -#if WITH_GTKMM_3_0 _page_transform.table().attach(_scalar_transform_a, 0, 0, 1, 1); -#else - _page_transform.table() - .attach(_scalar_transform_a, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); -#endif _scalar_transform_a.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged)); @@ -438,12 +370,7 @@ void Transformation::layoutPageTransform() _scalar_transform_b.setIncrements(0.1, 1.0); _scalar_transform_b.setValue(0.0); -#if WITH_GTKMM_3_0 _page_transform.table().attach(_scalar_transform_b, 0, 1, 1, 1); -#else - _page_transform.table() - .attach(_scalar_transform_b, 0, 1, 1, 2, Gtk::SHRINK, Gtk::SHRINK); -#endif _scalar_transform_b.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged)); @@ -454,12 +381,7 @@ void Transformation::layoutPageTransform() _scalar_transform_c.setIncrements(0.1, 1.0); _scalar_transform_c.setValue(0.0); -#if WITH_GTKMM_3_0 _page_transform.table().attach(_scalar_transform_c, 1, 0, 1, 1); -#else - _page_transform.table() - .attach(_scalar_transform_c, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK); -#endif _scalar_transform_c.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged)); @@ -471,12 +393,7 @@ void Transformation::layoutPageTransform() _scalar_transform_d.setIncrements(0.1, 1.0); _scalar_transform_d.setValue(1.0); -#if WITH_GTKMM_3_0 _page_transform.table().attach(_scalar_transform_d, 1, 1, 1, 1); -#else - _page_transform.table() - .attach(_scalar_transform_d, 1, 2, 1, 2, Gtk::SHRINK, Gtk::SHRINK); -#endif _scalar_transform_d.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged)); @@ -488,12 +405,7 @@ void Transformation::layoutPageTransform() _scalar_transform_e.setIncrements(0.1, 1.0); _scalar_transform_e.setValue(0.0); -#if WITH_GTKMM_3_0 _page_transform.table().attach(_scalar_transform_e, 2, 0, 1, 1); -#else - _page_transform.table() - .attach(_scalar_transform_e, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); -#endif _scalar_transform_e.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged)); @@ -505,23 +417,13 @@ void Transformation::layoutPageTransform() _scalar_transform_f.setIncrements(0.1, 1.0); _scalar_transform_f.setValue(0.0); -#if WITH_GTKMM_3_0 _page_transform.table().attach(_scalar_transform_f, 2, 1, 1, 1); -#else - _page_transform.table() - .attach(_scalar_transform_f, 2, 3, 1, 2, Gtk::SHRINK, Gtk::SHRINK); -#endif _scalar_transform_f.signal_value_changed() .connect(sigc::mem_fun(*this, &Transformation::onTransformValueChanged)); // Edit existing matrix -#if WITH_GTKMM_3_0 _page_transform.table().attach(_check_replace_matrix, 0, 2, 2, 1); -#else - _page_transform.table() - .attach(_check_replace_matrix, 0, 2, 2, 3, Gtk::FILL, Gtk::SHRINK); -#endif _check_replace_matrix.set_active(false); _check_replace_matrix.signal_toggled() @@ -568,11 +470,7 @@ void Transformation::updateSelection(PageType page, Inkscape::Selection *selecti selection && !selection->isEmpty()); } -#if WITH_GTKMM_3_0 void Transformation::onSwitchPage(Gtk::Widget * /*page*/, guint pagenum) -#else -void Transformation::onSwitchPage(GtkNotebookPage * /*page*/, guint pagenum) -#endif { updateSelection((PageType)pagenum, getDesktop()->getSelection()); } diff --git a/src/ui/dialog/transformation.h b/src/ui/dialog/transformation.h index 89aa95d90..9595e87bc 100644 --- a/src/ui/dialog/transformation.h +++ b/src/ui/dialog/transformation.h @@ -169,11 +169,7 @@ protected: virtual void _apply(); void presentPage(PageType page); -#if WITH_GTKMM_3_0 void onSwitchPage(Gtk::Widget *page, guint pagenum); -#else - void onSwitchPage(GtkNotebookPage *page, guint pagenum); -#endif /** * Callbacks for when a user changes values on the panels diff --git a/src/ui/dialog/undo-history.cpp b/src/ui/dialog/undo-history.cpp index a50a169eb..e7e68ed87 100644 --- a/src/ui/dialog/undo-history.cpp +++ b/src/ui/dialog/undo-history.cpp @@ -35,20 +35,11 @@ namespace UI { namespace Dialog { /* Rendering functions for custom cell renderers */ -#if WITH_GTKMM_3_0 void CellRendererSPIcon::render_vfunc(const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags) -#else -void CellRendererSPIcon::render_vfunc(const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags) -#endif { // if this event type doesn't have an icon... if ( !Inkscape::Verb::get(_property_event_type)->get_image() ) return; @@ -67,13 +58,8 @@ void CellRendererSPIcon::render_vfunc(const Glib::RefPtr& window, sp_icon_fetch_pixbuf(sp_icon); _property_icon = Glib::wrap(sp_icon->pb, true); } else if ( GTK_IS_IMAGE(icon->gobj()) ) { -#if WITH_GTKMM_3_0 _property_icon = Gtk::Invisible().render_icon_pixbuf(Gtk::StockID(image), Gtk::ICON_SIZE_MENU); -#else - _property_icon = Gtk::Invisible().render_icon(Gtk::StockID(image), - Gtk::ICON_SIZE_MENU); -#endif } else { delete icon; return; @@ -87,42 +73,23 @@ void CellRendererSPIcon::render_vfunc(const Glib::RefPtr& window, property_pixbuf() = _icon_cache[_property_event_type]; } -#if WITH_GTKMM_3_0 Gtk::CellRendererPixbuf::render_vfunc(cr, widget, background_area, cell_area, flags); -#else - Gtk::CellRendererPixbuf::render_vfunc(window, widget, background_area, - cell_area, expose_area, flags); -#endif } -#if WITH_GTKMM_3_0 void CellRendererInt::render_vfunc(const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags) -#else -void CellRendererInt::render_vfunc(const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags) -#endif { if( _filter(_property_number) ) { std::ostringstream s; s << _property_number << std::flush; property_text() = s.str(); -#if WITH_GTKMM_3_0 Gtk::CellRendererText::render_vfunc(cr, widget, background_area, cell_area, flags); -#else - Gtk::CellRendererText::render_vfunc(window, widget, background_area, - cell_area, expose_area, flags); -#endif } } diff --git a/src/ui/dialog/undo-history.h b/src/ui/dialog/undo-history.h index b0cc283cf..48929a0d0 100644 --- a/src/ui/dialog/undo-history.h +++ b/src/ui/dialog/undo-history.h @@ -50,20 +50,11 @@ public: property_event_type() { return _property_event_type.get_proxy(); } protected: -#if WITH_GTKMM_3_0 virtual void render_vfunc(const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags); -#else - virtual void render_vfunc(const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags); -#endif private: Glib::Property > _property_icon; @@ -95,20 +86,11 @@ public: static const Filter& no_filter; protected: -#if WITH_GTKMM_3_0 virtual void render_vfunc(const Cairo::RefPtr& cr, Gtk::Widget& widget, const Gdk::Rectangle& background_area, const Gdk::Rectangle& cell_area, Gtk::CellRendererState flags); -#else - virtual void render_vfunc(const Glib::RefPtr& window, - Gtk::Widget& widget, - const Gdk::Rectangle& background_area, - const Gdk::Rectangle& cell_area, - const Gdk::Rectangle& expose_area, - Gtk::CellRendererState flags); -#endif private: diff --git a/src/ui/dialog/xml-tree.cpp b/src/ui/dialog/xml-tree.cpp index 99a4acc69..714d59c50 100644 --- a/src/ui/dialog/xml-tree.cpp +++ b/src/ui/dialog/xml-tree.cpp @@ -79,11 +79,7 @@ XmlTree::XmlTree (void) : xml_attribute_delete_button (_("Delete attribute")), text_container (), attr_container (), -#if WITH_GTKMM_3_0 attr_subpaned_container(Gtk::ORIENTATION_VERTICAL), -#else - attr_subpaned_container(), -#endif set_attr (_("Set")), new_window(NULL) { @@ -100,9 +96,7 @@ XmlTree::XmlTree (void) : status.set_alignment( 0.0, 0.5); status.set_size_request(1, -1); status.set_markup(""); -#if WITH_GTKMM_3_0 status.set_line_wrap(true); -#endif status_box.pack_start( status, TRUE, TRUE, 0); contents->pack_end(status_box, false, false, 2); @@ -881,31 +875,19 @@ void XmlTree::cmd_new_element_node() g_signal_connect(G_OBJECT(new_window), "destroy", gtk_main_quit, NULL); g_signal_connect(G_OBJECT(new_window), "key-press-event", G_CALLBACK(quit_on_esc), new_window); -#if GTK_CHECK_VERSION(3,0,0) vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE); -#else - vbox = gtk_vbox_new(FALSE, 4); -#endif gtk_container_add(GTK_CONTAINER(new_window), vbox); name_entry = new Gtk::Entry(); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(name_entry->gobj()), FALSE, TRUE, 0); -#if GTK_CHECK_VERSION(3,0,0) sep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); -#else - sep = gtk_hseparator_new(); -#endif gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, TRUE, 0); -#if GTK_CHECK_VERSION(3,0,0) bbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); -#else - bbox = gtk_hbutton_box_new(); -#endif gtk_container_set_border_width(GTK_CONTAINER(bbox), 4); gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); diff --git a/src/ui/dialog/xml-tree.h b/src/ui/dialog/xml-tree.h index 58ef3aef8..a4c3fffcb 100644 --- a/src/ui/dialog/xml-tree.h +++ b/src/ui/dialog/xml-tree.h @@ -218,13 +218,7 @@ private: Gtk::Button *create_button; Gtk::Entry *name_entry; - -#if WITH_GTKMM_3_0 Gtk::Paned paned; -#else - Gtk::HPaned paned; -#endif - Gtk::VBox left_box; Gtk::VBox right_box; Gtk::HBox status_box; @@ -248,12 +242,7 @@ private: Gtk::ScrolledWindow text_container; Gtk::HBox attr_hbox; Gtk::VBox attr_container; - -#if WITH_GTKMM_3_0 Gtk::Paned attr_subpaned_container; -#else - Gtk::VPaned attr_subpaned_container; -#endif Gtk::Button set_attr; diff --git a/src/ui/previewholder.cpp b/src/ui/previewholder.cpp index 5e75179a3..8336467c4 100644 --- a/src/ui/previewholder.cpp +++ b/src/ui/previewholder.cpp @@ -18,12 +18,7 @@ #include #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #define COLUMNS_FOR_SMALL 16 #define COLUMNS_FOR_LARGE 8 @@ -55,7 +50,6 @@ PreviewHolder::PreviewHolder() : ((Gtk::ScrolledWindow *)_scroller)->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); -#if WITH_GTKMM_3_0 _insides = Gtk::manage(new Gtk::Grid()); _insides->set_name( "PreviewHolderGrid" ); _insides->set_column_spacing(8); @@ -66,21 +60,9 @@ PreviewHolder::PreviewHolder() : _scroller->set_hexpand(); _scroller->set_vexpand(); -#else - _insides = Gtk::manage(new Gtk::Table( 1, 2 )); - _insides->set_col_spacings( 8 ); - - // Add a container with the scroller and a spacer - Gtk::Table* spaceHolder = Gtk::manage( new Gtk::Table(1, 2) ); -#endif - _scroller->add( *_insides ); -#if WITH_GTKMM_3_0 spaceHolder->attach( *_scroller, 0, 0, 1, 1); -#else - spaceHolder->attach( *_scroller, 0, 1, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); -#endif pack_start(*spaceHolder, Gtk::PACK_EXPAND_WIDGET); } @@ -93,11 +75,7 @@ PreviewHolder::~PreviewHolder() bool PreviewHolder::on_scroll_event(GdkEventScroll *event) { // Scroll horizontally by page on mouse wheel -#if WITH_GTKMM_3_0 - Glib::RefPtr adj = dynamic_cast(_scroller)->get_hadjustment(); -#else - Gtk::Adjustment *adj = dynamic_cast(_scroller)->get_hadjustment(); -#endif + auto adj = dynamic_cast(_scroller)->get_hadjustment(); if (!adj) { return FALSE; @@ -141,7 +119,6 @@ void PreviewHolder::addPreview( Previewable* preview ) Gtk::Widget* label = Gtk::manage(preview->getPreview(PREVIEW_STYLE_BLURB, VIEW_TYPE_LIST, _baseSize, _ratio, _border)); Gtk::Widget* thing = Gtk::manage(preview->getPreview(PREVIEW_STYLE_PREVIEW, VIEW_TYPE_LIST, _baseSize, _ratio, _border)); -#if WITH_GTKMM_3_0 thing->set_hexpand(); thing->set_vexpand(); _insides->attach(*thing, 0, i, 1, 1); @@ -149,10 +126,6 @@ void PreviewHolder::addPreview( Previewable* preview ) label->set_hexpand(); label->set_valign(Gtk::ALIGN_CENTER); _insides->attach(*label, 1, i, 1, 1); -#else - _insides->attach( *thing, 0, 1, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); - _insides->attach( *label, 1, 2, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK ); -#endif } break; @@ -168,44 +141,25 @@ void PreviewHolder::addPreview( Previewable* preview ) int col = i % width; int row = i / width; -#if !WITH_GTKMM_3_0 - // If the existing grid isn't wide enough, we need to resize - // it and re-pack the existing widgets - if ( _insides && width > (int)_insides->property_n_columns() ) { - _insides->resize( height, width ); -#endif - std::vectorkids = _insides->get_children(); - int childCount = (int)kids.size(); - // g_message(" %3d resize from %d to %d (r:%d, c:%d) with %d children", i, oldWidth, width, row, col, childCount ); - - // Loop through the existing widgets and move them to new location - for ( int j = 1; j < childCount; j++ ) { - Gtk::Widget* target = kids[childCount - (j + 1)]; - int col2 = j % width; - int row2 = j / width; - Glib::RefPtr handle(target); - _insides->remove( *target ); - -#if WITH_GTKMM_3_0 - target->set_hexpand(); - target->set_vexpand(); - _insides->attach( *target, col2, row2, 1, 1); -#else - _insides->attach( *target, col2, col2+1, row2, row2+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); -#endif - } -#if WITH_GTKMM_3_0 - thing->set_hexpand(); - thing->set_vexpand(); - _insides->attach(*thing, col, row, 1, 1); -#else - } else if ( col == 0 ) { - // we just started a new row - _insides->resize( row + 1, width ); - } - - _insides->attach( *thing, col, col+1, row, row+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); -#endif + auto kids = _insides->get_children(); + int childCount = (int)kids.size(); + // g_message(" %3d resize from %d to %d (r:%d, c:%d) with %d children", i, oldWidth, width, row, col, childCount ); + + // Loop through the existing widgets and move them to new location + for ( int j = 1; j < childCount; j++ ) { + auto target = kids[childCount - (j + 1)]; + int col2 = j % width; + int row2 = j / width; + Glib::RefPtr handle(target); + _insides->remove( *target ); + + target->set_hexpand(); + target->set_vexpand(); + _insides->attach( *target, col2, row2, 1, 1); + } + thing->set_hexpand(); + thing->set_vexpand(); + _insides->attach(*thing, col, row, 1, 1); } } @@ -416,21 +370,11 @@ void PreviewHolder::rebuildUI() switch(_view) { case VIEW_TYPE_LIST: { - -#if WITH_GTKMM_3_0 _insides = Gtk::manage(new Gtk::Grid()); _insides->set_column_spacing(8); -#else - _insides = Gtk::manage(new Gtk::Table( 1, 2 )); - _insides->set_col_spacings( 8 ); -#endif if (_border == BORDER_WIDE) { -#if WITH_GTKMM_3_0 _insides->set_row_spacing(1); -#else - _insides->set_row_spacings( 1 ); -#endif } for ( unsigned int i = 0; i < items.size(); i++ ) { @@ -439,7 +383,6 @@ void PreviewHolder::rebuildUI() Gtk::Widget* thing = Gtk::manage(items[i]->getPreview(PREVIEW_STYLE_PREVIEW, _view, _baseSize, _ratio, _border)); -#if WITH_GTKMM_3_0 thing->set_hexpand(); thing->set_vexpand(); _insides->attach(*thing, 0, i, 1, 1); @@ -447,10 +390,6 @@ void PreviewHolder::rebuildUI() label->set_hexpand(); label->set_valign(Gtk::ALIGN_CENTER); _insides->attach(*label, 1, i, 1, 1); -#else - _insides->attach( *thing, 0, 1, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); - _insides->attach( *label, 1, 2, i, i+1, Gtk::FILL|Gtk::EXPAND, Gtk::SHRINK ); -#endif } _scroller->add( *_insides ); @@ -473,28 +412,16 @@ void PreviewHolder::rebuildUI() if ( !_insides ) { calcGridSize( thing, items.size(), width, height ); -#if WITH_GTKMM_3_0 _insides = Gtk::manage(new Gtk::Grid()); if (_border == BORDER_WIDE) { _insides->set_column_spacing(1); _insides->set_row_spacing(1); } -#else - _insides = Gtk::manage(new Gtk::Table( height, width )); - if (_border == BORDER_WIDE) { - _insides->set_col_spacings( 1 ); - _insides->set_row_spacings( 1 ); - } -#endif } -#if WITH_GTKMM_3_0 thing->set_hexpand(); thing->set_vexpand(); _insides->attach( *thing, col, row, 1, 1); -#else - _insides->attach( *thing, col, col+1, row, row+1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND ); -#endif if ( ++col >= width ) { col = 0; @@ -502,11 +429,7 @@ void PreviewHolder::rebuildUI() } } if ( !_insides ) { -#if WITH_GTKMM_3_0 _insides = Gtk::manage(new Gtk::Grid()); -#else - _insides = Gtk::manage(new Gtk::Table( 1, 2 )); -#endif } _scroller->add( *_insides ); diff --git a/src/ui/previewholder.h b/src/ui/previewholder.h index 28c0fd865..d370e8fc8 100644 --- a/src/ui/previewholder.h +++ b/src/ui/previewholder.h @@ -21,11 +21,7 @@ #include namespace Gtk { -#if WITH_GTKMM_3_0 class Grid; -#else -class Table; -#endif } #include "previewfillable.h" @@ -68,12 +64,7 @@ private: std::vector items; Gtk::Bin *_scroller; - -#if WITH_GTKMM_3_0 Gtk::Grid *_insides; -#else - Gtk::Table *_insides; -#endif int _prefCols; bool _updatesFrozen; diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index 72ba499de..17debb59c 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -149,16 +149,10 @@ void ToolBase::sp_event_context_set_cursor(GdkCursorType cursor_type) { GdkDisplay *display = gdk_display_get_default(); GdkCursor *cursor = gdk_cursor_new_for_display(display, cursor_type); -#if WITH_GTKMM_3_0 if (cursor) { gdk_window_set_cursor (gtk_widget_get_window (w), cursor); g_object_unref (cursor); } -#else - gdk_window_set_cursor (gtk_widget_get_window (w), cursor); - gdk_cursor_unref (cursor); -#endif - } /** diff --git a/src/widgets/dash-selector.cpp b/src/widgets/dash-selector.cpp index 9d591d33d..7c6c22ba3 100644 --- a/src/widgets/dash-selector.cpp +++ b/src/widgets/dash-selector.cpp @@ -61,18 +61,9 @@ SPDashSelector::SPDashSelector() dash_combo.signal_changed().connect( sigc::mem_fun(*this, &SPDashSelector::on_selection) ); this->pack_start(dash_combo, false, false, 0); - -#if WITH_GTKMM_3_0 offset = Gtk::Adjustment::create(0.0, 0.0, 10.0, 0.1, 1.0, 0.0); -#else - offset = new Gtk::Adjustment(0.0, 0.0, 10.0, 0.1, 1.0, 0.0); -#endif offset->signal_value_changed().connect(sigc::mem_fun(*this, &SPDashSelector::offset_value_changed)); -#if WITH_GTKMM_3_0 - Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(offset, 0.1, 2); -#else - Inkscape::UI::Widget::SpinButton *sb = new Inkscape::UI::Widget::SpinButton(*offset, 0.1, 2); -#endif + auto sb = new Inkscape::UI::Widget::SpinButton(offset, 0.1, 2); sb->set_tooltip_text(_("Pattern offset")); sp_dialog_defocus_on_enter_cpp(sb); sb->show(); @@ -99,9 +90,6 @@ SPDashSelector::SPDashSelector() SPDashSelector::~SPDashSelector() { // FIXME: for some reason this doesn't get called; does the call to manage() in // sp_stroke_style_line_widget_new() not processed correctly? -#if !WITH_GTKMM_3_0 - delete offset; -#endif } void SPDashSelector::prepareImageRenderer( Gtk::TreeModel::const_iterator const &row ) { diff --git a/src/widgets/dash-selector.h b/src/widgets/dash-selector.h index ec5a1cbd5..f176acf04 100644 --- a/src/widgets/dash-selector.h +++ b/src/widgets/dash-selector.h @@ -85,12 +85,7 @@ private: Glib::RefPtr dash_store; Gtk::ComboBox dash_combo; Gtk::CellRendererPixbuf image_renderer; - -#if WITH_GTKMM_3_0 Glib::RefPtr offset; -#else - Gtk::Adjustment *offset; -#endif static gchar const *const _prefs_path; int preview_width; diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index ef1f31751..8b035eb15 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -70,9 +70,7 @@ #include "widget-sizes.h" #include "verbs.h" -#if GTK_CHECK_VERSION(3,0,0) -# include -#endif +#include #include #include @@ -256,16 +254,11 @@ Geom::Point SPDesktopWidget::window_get_pointer() { gint x,y; - GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(canvas)); - -#if GTK_CHECK_VERSION(3,0,0) - GdkDisplay *display = gdk_window_get_display(window); - GdkDeviceManager *dm = gdk_display_get_device_manager(display); - GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + auto window = gtk_widget_get_window(GTK_WIDGET(canvas)); + auto display = gdk_window_get_display(window); + auto dm = gdk_display_get_device_manager(display); + auto device = gdk_device_manager_get_client_pointer(dm); gdk_window_get_device_position(window, device, &x, &y, NULL); -#else - gdk_window_get_pointer(window, &x, &y, NULL); -#endif return Geom::Point(x,y); } @@ -344,21 +337,11 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->_interaction_disabled_counter = 0; /* Main table */ -#if GTK_CHECK_VERSION(3,0,0) dtw->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_name(dtw->vbox, "DesktopMainTable"); -#else - dtw->vbox = gtk_vbox_new (FALSE, 0); -#endif gtk_container_add( GTK_CONTAINER(dtw), GTK_WIDGET(dtw->vbox) ); - -#if GTK_CHECK_VERSION(3,0,0) dtw->statusbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_name(dtw->statusbar, "DesktopStatusBar"); -#else - dtw->statusbar = gtk_hbox_new (FALSE, 0); -#endif - //gtk_widget_set_usize (dtw->statusbar, -1, BOTTOM_BAR_HEIGHT); gtk_box_pack_end (GTK_BOX (dtw->vbox), dtw->statusbar, FALSE, TRUE, 0); { @@ -366,19 +349,12 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->panels = new SwatchesPanel("/embedded/swatches" /*false*/); dtw->panels->setOrientation(SP_ANCHOR_SOUTH); -#if GTK_CHECK_VERSION(3,0,0) dtw->panels->set_vexpand(false); -#endif - gtk_box_pack_end( GTK_BOX( dtw->vbox ), GTK_WIDGET(dtw->panels->gobj()), FALSE, TRUE, 0 ); } -#if GTK_CHECK_VERSION(3,0,0) dtw->hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_name(dtw->hbox, "DesktopHbox"); -#else - dtw->hbox = gtk_hbox_new(FALSE, 0); -#endif gtk_box_pack_end( GTK_BOX (dtw->vbox), dtw->hbox, TRUE, TRUE, 0 ); gtk_widget_show(dtw->hbox); @@ -402,14 +378,12 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) NULL, INKSCAPE_ICON("object-locked"), _("Toggle lock of all guides in the document")); -#if GTK_CHECK_VERSION(3,0,0) - Glib::RefPtr guides_lock_style_provider = Gtk::CssProvider::create(); + auto guides_lock_style_provider = Gtk::CssProvider::create(); guides_lock_style_provider->load_from_data("GtkWidget { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }"); - Gtk::Widget * wnd = Glib::wrap(dtw->guides_lock); + auto wnd = Glib::wrap(dtw->guides_lock); wnd->set_name("LockGuides"); - Glib::RefPtr context = wnd->get_style_context(); + auto context = wnd->get_style_context(); context->add_provider(guides_lock_style_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); -#endif /* Horizontal ruler */ GtkWidget *eventbox = gtk_event_box_new (); @@ -424,29 +398,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) g_signal_connect (G_OBJECT (eventbox), "button_release_event", G_CALLBACK (sp_dt_hruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "motion_notify_event", G_CALLBACK (sp_dt_hruler_event), dtw); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *tbl_wrapper = gtk_grid_new(); // Is this widget really needed? + auto tbl_wrapper = gtk_grid_new(); // Is this widget really needed? gtk_widget_set_name(tbl_wrapper, "CanvasTableWrapper"); dtw->canvas_tbl = gtk_grid_new(); gtk_widget_set_name(dtw->canvas_tbl, "CanvasTable"); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->guides_lock, 0, 0, 1, 1); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 1, 0, 1, 1); -#else - GtkWidget *tbl_wrapper = gtk_table_new(2, 3, FALSE); - dtw->canvas_tbl = gtk_table_new(3, 3, FALSE); - - gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), - dtw->guides_lock, - 0, 1, 0, 1, - GTK_FILL, GTK_FILL, - 0, 0); - gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), - eventbox, - 1, 2, 0, 1, - GTK_FILL, GTK_FILL, - 0, 0); -#endif g_signal_connect (G_OBJECT (dtw->guides_lock), "toggled", G_CALLBACK (sp_update_guides_lock), dtw); gtk_box_pack_start( GTK_BOX(dtw->hbox), tbl_wrapper, TRUE, TRUE, 1 ); @@ -460,16 +418,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) sp_ruler_set_unit (SP_RULER (dtw->vruler), pt); gtk_widget_set_tooltip_text (dtw->vruler_box, gettext(pt->name_plural.c_str())); gtk_container_add (GTK_CONTAINER (eventbox), GTK_WIDGET (dtw->vruler)); - -#if GTK_CHECK_VERSION(3,0,0) gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), eventbox, 0, 1, 1, 1); -#else - gtk_table_attach(GTK_TABLE (dtw->canvas_tbl), - eventbox, - 0, 1, 1, 2, - GTK_FILL, GTK_FILL, - 0, 0); -#endif g_signal_connect (G_OBJECT (eventbox), "button_press_event", G_CALLBACK (sp_dt_vruler_event), dtw); g_signal_connect (G_OBJECT (eventbox), "button_release_event", G_CALLBACK (sp_dt_vruler_event), dtw); @@ -477,19 +426,10 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) // Horizontal scrollbar dtw->hadj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0)); - -#if GTK_CHECK_VERSION(3,0,0) dtw->hscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (dtw->hadj)); gtk_widget_set_name(dtw->hscrollbar, "HorizontalScrollbar"); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->hscrollbar, 1, 2, 1, 1); dtw->vscrollbar_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); -#else - dtw->hscrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (dtw->hadj)); - gtk_table_attach(GTK_TABLE (dtw->canvas_tbl), dtw->hscrollbar, 1, 2, 2, 3, - GTK_FILL, GTK_SHRINK, - 0, 0); - dtw->vscrollbar_box = gtk_vbox_new (FALSE, 0); -#endif // Sticky zoom button dtw->sticky_zoom = sp_button_new_from_data ( Inkscape::ICON_SIZE_DECORATION, @@ -504,23 +444,10 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) // Vertical scrollbar dtw->vadj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, -4000.0, 4000.0, 10.0, 100.0, 4.0)); - -#if GTK_CHECK_VERSION(3,0,0) dtw->vscrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT(dtw->vadj)); gtk_widget_set_name(dtw->vscrollbar, "VerticalScrollbar"); -#else - dtw->vscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (dtw->vadj)); -#endif - gtk_box_pack_start (GTK_BOX (dtw->vscrollbar_box), dtw->vscrollbar, TRUE, TRUE, 0); - -#if GTK_CHECK_VERSION(3,0,0) gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), dtw->vscrollbar_box, 2, 0, 1, 2); -#else - gtk_table_attach(GTK_TABLE(dtw->canvas_tbl), dtw->vscrollbar_box, 2, 3, 0, 2, - GTK_SHRINK, GTK_FILL, - 0, 0); -#endif gchar const* tip = ""; Inkscape::Verb* verb = Inkscape::Verb::get( SP_VERB_VIEW_CMS_TOGGLE ); @@ -554,15 +481,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) cms_adjust_set_sensitive(dtw, FALSE); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -#if GTK_CHECK_VERSION(3,0,0) gtk_grid_attach( GTK_GRID(dtw->canvas_tbl), dtw->cms_adjust, 2, 2, 1, 1); -#else - gtk_table_attach( GTK_TABLE(dtw->canvas_tbl), dtw->cms_adjust, 2, 3, 2, 3, - (GtkAttachOptions)(GTK_SHRINK), - (GtkAttachOptions)(GTK_SHRINK), - 0, 0); -#endif - { if (!watcher) { watcher = new CMSPrefWatcher(); @@ -579,10 +498,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) sp_ruler_add_track_widget (SP_RULER(dtw->hruler), GTK_WIDGET(dtw->canvas)); sp_ruler_add_track_widget (SP_RULER(dtw->vruler), GTK_WIDGET(dtw->canvas)); - -#if GTK_CHECK_VERSION(3,0,0) - GtkCssProvider *css_provider = gtk_css_provider_new(); - GtkStyleContext *style_context = gtk_widget_get_style_context(GTK_WIDGET(dtw->canvas)); + auto css_provider = gtk_css_provider_new(); + auto style_context = gtk_widget_get_style_context(GTK_WIDGET(dtw->canvas)); gtk_css_provider_load_from_data(css_provider, "SPCanvas {\n" @@ -593,21 +510,11 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_style_context_add_provider(style_context, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); -#else - GtkStyle *style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(dtw->canvas))); - style->bg[GTK_STATE_NORMAL] = style->white; - gtk_widget_set_style (GTK_WIDGET (dtw->canvas), style); -#endif - g_signal_connect (G_OBJECT (dtw->canvas), "event", G_CALLBACK (sp_desktop_widget_event), dtw); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(GTK_WIDGET(dtw->canvas), TRUE); gtk_widget_set_vexpand(GTK_WIDGET(dtw->canvas), TRUE); gtk_grid_attach(GTK_GRID(dtw->canvas_tbl), GTK_WIDGET(dtw->canvas), 1, 1, 1, 1); -#else - gtk_table_attach (GTK_TABLE (dtw->canvas_tbl), GTK_WIDGET(dtw->canvas), 1, 2, 1, 2, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 0, 0); -#endif /* Dock */ bool create_dock = @@ -616,12 +523,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) if (create_dock) { dtw->dock = new Inkscape::UI::Widget::Dock(); -#if WITH_GTKMM_3_0 - Gtk::Paned *paned = new Gtk::Paned(); + auto paned = new Gtk::Paned(); paned->set_name("Canvas_and_Dock"); -#else - Gtk::HPaned *paned = new Gtk::HPaned(); -#endif paned->pack1(*Glib::wrap(dtw->canvas_tbl)); paned->pack2(dtw->dock->getWidget(), Gtk::FILL); @@ -632,24 +535,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) paned_class->cycle_handle_focus = NULL; } -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(GTK_WIDGET(paned->gobj()), TRUE); gtk_widget_set_vexpand(GTK_WIDGET(paned->gobj()), TRUE); gtk_grid_attach(GTK_GRID(tbl_wrapper), GTK_WIDGET (paned->gobj()), 1, 1, 1, 1); -#else - gtk_table_attach (GTK_TABLE (tbl_wrapper), GTK_WIDGET (paned->gobj()), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); -#endif - } else { -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(GTK_WIDGET(dtw->canvas_tbl), TRUE); gtk_widget_set_vexpand(GTK_WIDGET(dtw->canvas_tbl), TRUE); gtk_grid_attach(GTK_GRID(tbl_wrapper), GTK_WIDGET (dtw->canvas_tbl), 1, 1, 1, 1); -#else - gtk_table_attach (GTK_TABLE (tbl_wrapper), GTK_WIDGET (dtw->canvas_tbl), 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); -#endif } // connect scrollbar signals @@ -666,11 +558,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) // Separator gtk_box_pack_start(GTK_BOX(dtw->statusbar), -#if GTK_CHECK_VERSION(3,0,0) gtk_separator_new(GTK_ORIENTATION_VERTICAL), -#else - gtk_vseparator_new(), -#endif FALSE, FALSE, 0); // Layer Selector @@ -689,12 +577,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_label_set_lines (GTK_LABEL(dtw->select_status), 2); #endif -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(dtw->select_status, GTK_ALIGN_START); -#else - gtk_misc_set_alignment (GTK_MISC (dtw->select_status), 0.0, 0.5); -#endif - gtk_widget_set_size_request (dtw->select_status, 1, -1); // Display the initial welcome message in the statusbar @@ -720,65 +603,36 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->zoom_update = g_signal_connect (G_OBJECT (dtw->zoom_status), "populate_popup", G_CALLBACK (sp_dtw_zoom_populate_popup), dtw); // Cursor coordinates -#if GTK_CHECK_VERSION(3,0,0) dtw->coord_status = gtk_grid_new(); gtk_widget_set_name(dtw->coord_status, "CoordinateAndZStatus"); gtk_grid_set_row_spacing(GTK_GRID(dtw->coord_status), 0); gtk_grid_set_column_spacing(GTK_GRID(dtw->coord_status), 2); - GtkWidget* sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL); + auto sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL); gtk_widget_set_name(sep, "CoordinateSeparator"); gtk_grid_attach(GTK_GRID(dtw->coord_status), GTK_WIDGET(sep), 0, 0, 1, 2); -#else - dtw->coord_status = gtk_table_new(5, 2, FALSE); - gtk_table_set_row_spacings(GTK_TABLE(dtw->coord_status), 0); - gtk_table_set_col_spacings(GTK_TABLE(dtw->coord_status), 2); - gtk_table_attach(GTK_TABLE(dtw->coord_status), - gtk_vseparator_new(), - 0, 1, 0, 2, - GTK_FILL, GTK_FILL, 0, 0); -#endif gtk_widget_set_tooltip_text (dtw->coord_status, _("Cursor coordinates")); - GtkWidget *label_x = gtk_label_new(_("X:")); - GtkWidget *label_y = gtk_label_new(_("Y:")); - -#if GTK_CHECK_VERSION(3,0,0) + auto label_x = gtk_label_new(_("X:")); + auto label_y = gtk_label_new(_("Y:")); gtk_widget_set_halign(label_x, GTK_ALIGN_START); gtk_widget_set_halign(label_y, GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(dtw->coord_status), label_x, 1, 0, 1, 1); gtk_grid_attach(GTK_GRID(dtw->coord_status), label_y, 1, 1, 1, 1); -#else - gtk_misc_set_alignment (GTK_MISC(label_x), 0.0, 0.5); - gtk_misc_set_alignment (GTK_MISC(label_y), 0.0, 0.5); - gtk_table_attach(GTK_TABLE(dtw->coord_status), label_x, 1,2, 0,1, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach(GTK_TABLE(dtw->coord_status), label_y, 1,2, 1,2, GTK_FILL, GTK_FILL, 0, 0); -#endif - dtw->coord_status_x = gtk_label_new(NULL); dtw->coord_status_y = gtk_label_new(NULL); gtk_label_set_markup( GTK_LABEL(dtw->coord_status_x), " 0.00 " ); gtk_label_set_markup( GTK_LABEL(dtw->coord_status_y), " 0.00 " ); - GtkWidget* label_z = gtk_label_new(_("Z:")); + auto label_z = gtk_label_new(_("Z:")); gtk_widget_set_name(label_z, "ZLabel"); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(dtw->coord_status_x, GTK_ALIGN_END); gtk_widget_set_halign(dtw->coord_status_y, GTK_ALIGN_END); gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->coord_status_x, 2, 0, 1, 1); gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->coord_status_y, 2, 1, 1, 1); gtk_grid_attach(GTK_GRID(dtw->coord_status), label_z, 3, 0, 1, 2); gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->zoom_status, 4, 0, 1, 2); -#else - gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_x), 1.0, 0.5); - gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_y), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->coord_status_x, 2,3, 0,1, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->coord_status_y, 2,3, 1,2, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach(GTK_TABLE(dtw->coord_status), label_z, 3,4, 0,2, GTK_FILL, GTK_FILL, 0, 0); - gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->zoom_status, 4,5, 0,2, GTK_FILL, GTK_FILL, 0, 0); -#endif sp_set_font_size_smaller (dtw->coord_status); diff --git a/src/widgets/sp-attribute-widget.cpp b/src/widgets/sp-attribute-widget.cpp index fb7eb1420..2e782cf16 100644 --- a/src/widgets/sp-attribute-widget.cpp +++ b/src/widgets/sp-attribute-widget.cpp @@ -17,12 +17,7 @@ #include #include #include - -#if WITH_GTKMM_3_0 -# include -#else -# include -#endif +#include #include #include @@ -156,11 +151,7 @@ void SPAttributeTable::set_object(SPObject *object, release_connection = object->connectRelease (sigc::bind<1>(sigc::ptr_fun(&sp_attribute_table_object_release), this)); // Create table -#if WITH_GTKMM_3_0 table = new Gtk::Grid(); -#else - table = new Gtk::Table(attributes.size(), 2, false); -#endif if (!(parent == NULL)) gtk_container_add(GTK_CONTAINER(parent), (GtkWidget*)table->gobj()); @@ -171,27 +162,17 @@ void SPAttributeTable::set_object(SPObject *object, Gtk::Label *ll = new Gtk::Label (_(labels[i].c_str())); ll->show(); ll->set_alignment (1.0, 0.5); - -#if WITH_GTKMM_3_0 ll->set_vexpand(); ll->set_margin_left(XPAD); ll->set_margin_right(XPAD); ll->set_margin_top(XPAD); ll->set_margin_bottom(XPAD); table->attach(*ll, 0, i, 1, 1); -#else - table->attach (*ll, 0, 1, i, i + 1, - Gtk::FILL, - (Gtk::EXPAND | Gtk::FILL), - XPAD, YPAD ); -#endif Gtk::Entry *ee = new Gtk::Entry(); ee->show(); const gchar *val = object->getRepr()->attribute(attributes[i].c_str()); ee->set_text (val ? val : (const gchar *) ""); - -#if WITH_GTKMM_3_0 ee->set_hexpand(); ee->set_vexpand(); ee->set_margin_left(XPAD); @@ -199,12 +180,6 @@ void SPAttributeTable::set_object(SPObject *object, ee->set_margin_top(XPAD); ee->set_margin_bottom(XPAD); table->attach(*ee, 1, i, 1, 1); -#else - table->attach (*ee, 1, 2, i, i + 1, - (Gtk::EXPAND | Gtk::FILL), - (Gtk::EXPAND | Gtk::FILL), - XPAD, YPAD ); -#endif _entries.push_back(ee); g_signal_connect ( ee->gobj(), "changed", diff --git a/src/widgets/sp-attribute-widget.h b/src/widgets/sp-attribute-widget.h index d9b972201..161bb706a 100644 --- a/src/widgets/sp-attribute-widget.h +++ b/src/widgets/sp-attribute-widget.h @@ -25,12 +25,7 @@ namespace Gtk { class Entry; - -#if WITH_GTKMM_3_0 class Grid; -#else -class Table; -#endif } namespace Inkscape { @@ -138,11 +133,7 @@ private: /** * Container widget for the dynamically created child widgets (labels and entry boxes). */ -#if WITH_GTKMM_3_0 Gtk::Grid *table; -#else - Gtk::Table *table; -#endif /** * List of attributes. diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index 84a6e77ad..990ec8d35 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -155,17 +155,9 @@ StrokeStyle::StrokeStyle() : Gtk::HBox *f = new Gtk::HBox(false, 0); f->show(); add(*f); - -#if WITH_GTKMM_3_0 table = new Gtk::Grid(); table->set_border_width(4); table->set_row_spacing(4); -#else - table = new Gtk::Table(3, 6, false); - table->set_border_width(4); - table->set_row_spacings(4); -#endif - table->show(); f->add(*table); @@ -181,13 +173,7 @@ StrokeStyle::StrokeStyle() : // stroke_width_set_unit will be removed (because ScalarUnit takes care of conversions itself), and // with it, the two remaining calls of stroke_average_width, allowing us to get rid of that // function in desktop-style. - -#if WITH_GTKMM_3_0 widthAdj = new Glib::RefPtr(Gtk::Adjustment::create(1.0, 0.0, 1000.0, 0.1, 10.0, 0.0)); -#else - widthAdj = new Gtk::Adjustment(1.0, 0.0, 1000.0, 0.1, 10.0, 0.0); -#endif - widthSpin = new Inkscape::UI::Widget::SpinButton(*widthAdj, 0.1, 3); widthSpin->set_tooltip_text(_("Stroke width")); widthSpin->show(); @@ -213,12 +199,7 @@ StrokeStyle::StrokeStyle() : us->show(); hb->pack_start(*us, FALSE, FALSE, 0); - -#if WITH_GTKMM_3_0 (*widthAdj)->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::widthChangedCB)); -#else - widthAdj->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::widthChangedCB)); -#endif i++; /* Dash */ @@ -230,16 +211,10 @@ StrokeStyle::StrokeStyle() : dashSelector = Gtk::manage(new SPDashSelector); dashSelector->show(); - -#if WITH_GTKMM_3_0 dashSelector->set_hexpand(); dashSelector->set_halign(Gtk::ALIGN_FILL); dashSelector->set_valign(Gtk::ALIGN_CENTER); table->attach(*dashSelector, 1, i, 3, 1); -#else - table->attach(*dashSelector, 1, 4, i, i+1, (Gtk::EXPAND | Gtk::FILL), static_cast(0), 0, 0); -#endif - dashSelector->changed_signal.connect(sigc::mem_fun(*this, &StrokeStyle::lineDashChangedCB)); i++; @@ -323,28 +298,14 @@ StrokeStyle::StrokeStyle() : // miter limit is to cut off such spikes (i.e. convert them into bevels) // when they become too long. //spw_label(t, _("Miter _limit:"), 0, i); - -#if WITH_GTKMM_3_0 miterLimitAdj = new Glib::RefPtr(Gtk::Adjustment::create(4.0, 0.0, 100.0, 0.1, 10.0, 0.0)); miterLimitSpin = new Inkscape::UI::Widget::SpinButton(*miterLimitAdj, 0.1, 2); -#else - miterLimitAdj = new Gtk::Adjustment(4.0, 0.0, 100.0, 0.1, 10.0, 0.0); - miterLimitSpin = new Inkscape::UI::Widget::SpinButton(*miterLimitAdj, 0.1, 2); -#endif - miterLimitSpin->set_tooltip_text(_("Maximum length of the miter (in units of stroke width)")); miterLimitSpin->show(); sp_dialog_defocus_on_enter_cpp(miterLimitSpin); hb->pack_start(*miterLimitSpin, false, false, 0); - -#if WITH_GTKMM_3_0 (*miterLimitAdj)->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::miterLimitChangedCB)); - -#else - miterLimitAdj->signal_value_changed().connect(sigc::mem_fun(*this, &StrokeStyle::miterLimitChangedCB)); -#endif - i++; /* Cap type */ @@ -927,17 +888,9 @@ StrokeStyle::updateLine() if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) { double avgwidth = Inkscape::Util::Quantity::convert(query.stroke_width.computed, "px", unit); -#if WITH_GTKMM_3_0 (*widthAdj)->set_value(avgwidth); -#else - widthAdj->set_value(avgwidth); -#endif } else { -#if WITH_GTKMM_3_0 (*widthAdj)->set_value(100); -#else - widthAdj->set_value(100); -#endif } // if none of the selected objects has a stroke, than quite some controls should be disabled @@ -958,11 +911,7 @@ StrokeStyle::updateLine() } if (result_ml != QUERY_STYLE_NOTHING) -#if WITH_GTKMM_3_0 (*miterLimitAdj)->set_value(query.stroke_miterlimit.value); // TODO: reflect averagedness? -#else - miterLimitAdj->set_value(query.stroke_miterlimit.value); // TODO: reflect averagedness? -#endif if (result_join != QUERY_STYLE_MULTIPLE_DIFFERENT && result_join != QUERY_STYLE_NOTHING ) { @@ -1050,13 +999,8 @@ StrokeStyle::scaleLine() SPCSSAttr *css = sp_repr_css_attr_new(); if (!items.empty()) { -#if WITH_GTKMM_3_0 double width_typed = (*widthAdj)->get_value(); double const miterlimit = (*miterLimitAdj)->get_value(); -#else - double width_typed = widthAdj->get_value(); - double const miterlimit = miterLimitAdj->get_value(); -#endif Inkscape::Util::Unit const *const unit = unitSelector->getUnit(); @@ -1096,11 +1040,7 @@ StrokeStyle::scaleLine() if (unit->type != Inkscape::Util::UNIT_TYPE_LINEAR) { // reset to 100 percent -#if WITH_GTKMM_3_0 (*widthAdj)->set_value(100.0); -#else - widthAdj->set_value(100.0); -#endif } } diff --git a/src/widgets/stroke-style.h b/src/widgets/stroke-style.h index d83067a4a..76582602d 100644 --- a/src/widgets/stroke-style.h +++ b/src/widgets/stroke-style.h @@ -23,12 +23,7 @@ #include "widgets/dash-selector.h" #include - -#if WITH_GTKMM_3_0 #include -#else -#include -#endif #include @@ -189,15 +184,9 @@ private: MarkerComboBox *startMarkerCombo; MarkerComboBox *midMarkerCombo; MarkerComboBox *endMarkerCombo; -#if WITH_GTKMM_3_0 Gtk::Grid *table; Glib::RefPtr *widthAdj; Glib::RefPtr *miterLimitAdj; -#else - Gtk::Table *table; - Gtk::Adjustment *widthAdj; - Gtk::Adjustment *miterLimitAdj; -#endif Inkscape::UI::Widget::SpinButton *miterLimitSpin; Inkscape::UI::Widget::SpinButton *widthSpin; Inkscape::UI::Widget::UnitMenu *unitSelector; diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index 8113c9619..caca0c267 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -1016,26 +1016,18 @@ static GtkWidget* toolboxNewCommon( GtkWidget* tb, BarId id, GtkPositionType /*h GtkWidget *ToolboxFactory::createToolToolbox() { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_name(tb, "ToolToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); -#else - GtkWidget *tb = gtk_vbox_new(FALSE, 0); -#endif return toolboxNewCommon( tb, BAR_TOOL, GTK_POS_TOP ); } GtkWidget *ToolboxFactory::createAuxToolbox() { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_name(tb, "AuxToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); -#else - GtkWidget *tb = gtk_vbox_new(FALSE, 0); -#endif return toolboxNewCommon( tb, BAR_AUX, GTK_POS_LEFT ); } @@ -1046,38 +1038,26 @@ GtkWidget *ToolboxFactory::createAuxToolbox() GtkWidget *ToolboxFactory::createCommandsToolbox() { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_name(tb, "CommandsToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); -#else - GtkWidget *tb = gtk_vbox_new(FALSE, 0); -#endif return toolboxNewCommon( tb, BAR_COMMANDS, GTK_POS_LEFT ); } GtkWidget *ToolboxFactory::createSnapToolbox() { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + auto tb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_name(tb, "SnapToolbox"); gtk_box_set_homogeneous(GTK_BOX(tb), FALSE); -#else - GtkWidget *tb = gtk_vbox_new(FALSE, 0); -#endif return toolboxNewCommon( tb, BAR_SNAP, GTK_POS_LEFT ); } static GtkWidget* createCustomSlider( GtkAdjustment *adjustment, gdouble climbRate, guint digits, Inkscape::UI::Widget::UnitTracker *unit_tracker) { -#if WITH_GTKMM_3_0 - Glib::RefPtr adj = Glib::wrap(adjustment, true); - Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(adj, climbRate, digits); -#else - Inkscape::UI::Widget::SpinButton *inkSpinner = new Inkscape::UI::Widget::SpinButton(*Glib::wrap(adjustment, true), climbRate, digits); -#endif + auto adj = Glib::wrap(adjustment, true); + auto inkSpinner = new Inkscape::UI::Widget::SpinButton(adj, climbRate, digits); inkSpinner->addUnitTracker(unit_tracker); inkSpinner = Gtk::manage( inkSpinner ); GtkWidget *widget = GTK_WIDGET( inkSpinner->gobj() ); @@ -1439,17 +1419,10 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop) if ( aux_toolboxes[i].prep_func ) { // converted to GtkActions and UIManager - GtkWidget* kludge = dataHolders[aux_toolboxes[i].type_name]; - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget* holder = gtk_grid_new(); + auto kludge = dataHolders[aux_toolboxes[i].type_name]; + auto holder = gtk_grid_new(); gtk_widget_set_name( holder, "ToolbarHolder" ); gtk_grid_attach( GTK_GRID(holder), kludge, 2, 0, 1, 1); -#else - GtkWidget* holder = gtk_table_new( 1, 3, FALSE ); - gtk_table_attach( GTK_TABLE(holder), kludge, 2, 3, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0 ); -#endif - gchar* tmp = g_strdup_printf( "/ui/%s", aux_toolboxes[i].ui_name ); GtkWidget* toolBar = gtk_ui_manager_get_widget( mgr, tmp ); g_free( tmp ); @@ -1461,30 +1434,20 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop) Inkscape::IconSize toolboxSize = ToolboxFactory::prefToSize("/toolbox/small"); gtk_toolbar_set_icon_size( GTK_TOOLBAR(toolBar), static_cast(toolboxSize) ); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(toolBar, TRUE); gtk_grid_attach( GTK_GRID(holder), toolBar, 0, 0, 1, 1); -#else - gtk_table_attach( GTK_TABLE(holder), toolBar, 0, 1, 0, 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0 ); -#endif if ( aux_toolboxes[i].swatch_verb_id != SP_VERB_INVALID ) { Inkscape::UI::Widget::StyleSwatch *swatch = new Inkscape::UI::Widget::StyleSwatch( NULL, _(aux_toolboxes[i].swatch_tip) ); swatch->setDesktop( desktop ); swatch->setClickVerb( aux_toolboxes[i].swatch_verb_id ); swatch->setWatchedTool( aux_toolboxes[i].swatch_tool, true ); - GtkWidget *swatch_ = GTK_WIDGET( swatch->gobj() ); - -#if GTK_CHECK_VERSION(3,0,0) + auto swatch_ = GTK_WIDGET( swatch->gobj() ); gtk_widget_set_margin_left(swatch_, AUX_BETWEEN_BUTTON_GROUPS); gtk_widget_set_margin_right(swatch_, AUX_BETWEEN_BUTTON_GROUPS); gtk_widget_set_margin_top(swatch_, AUX_SPACING); gtk_widget_set_margin_bottom(swatch_, AUX_SPACING); gtk_grid_attach( GTK_GRID(holder), swatch_, 1, 0, 1, 1); -#else - gtk_table_attach( GTK_TABLE(holder), swatch_, 1, 2, 0, 1, (GtkAttachOptions)(GTK_SHRINK | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), AUX_BETWEEN_BUTTON_GROUPS, AUX_SPACING ); -#endif } if(i==0){ gtk_widget_show_all( holder ); -- cgit v1.2.3 From 75a253f4352498e0b7b7de71e7701d97741cadf8 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 28 Jul 2016 11:11:07 -0500 Subject: Adding in the icon (bzr r14950.1.17) --- setup/gui/inkscape.svg | 1 + 1 file changed, 1 insertion(+) create mode 120000 setup/gui/inkscape.svg diff --git a/setup/gui/inkscape.svg b/setup/gui/inkscape.svg new file mode 120000 index 000000000..494db289d --- /dev/null +++ b/setup/gui/inkscape.svg @@ -0,0 +1 @@ +../../share/branding/inkscape.svg \ No newline at end of file -- cgit v1.2.3 From 49a7927ecf31ace696e9e5770e8d6543c356db7a Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 28 Jul 2016 19:15:34 +0100 Subject: Finish removing GTK+ 2 fallbacks (bzr r15023.2.8) --- CMakeScripts/DefineDependsandFlags.cmake | 1 - build-x64-gtk3.xml | 2 - build-x64.xml | 2 - build.xml | 2 - configure.ac | 117 ++++++++++------------ src/desktop-events.cpp | 46 ++------- src/desktop.cpp | 4 - src/display/sp-canvas.cpp | 100 ++----------------- src/display/sp-canvas.h | 7 -- src/inkview.cpp | 16 +-- src/knot.cpp | 41 +------- src/live_effects/parameter/togglebutton.cpp | 6 +- src/main.cpp | 5 - src/svg-view-widget.cpp | 37 +------ src/svg-view.cpp | 4 - src/ui/dialog/export.cpp | 5 - src/ui/dialog/font-substitution.cpp | 6 +- src/ui/interface.cpp | 32 +----- src/ui/previewholder.cpp | 22 +---- src/ui/tools/dropper-tool.cpp | 8 -- src/ui/tools/select-tool.cpp | 8 -- src/ui/tools/tool-base.cpp | 16 --- src/ui/widget/dock-item.h | 4 - src/ui/widget/gimpcolorwheel.c | 137 ------------------------- src/ui/widget/selected-style.cpp | 8 -- src/ui/widget/spinbutton.h | 4 - src/widgets/button.cpp | 29 ------ src/widgets/eek-preview.cpp | 148 +--------------------------- src/widgets/ege-adjustment-action.cpp | 12 +-- src/widgets/ege-output-action.cpp | 6 +- src/widgets/ege-select-one-action.cpp | 32 +----- src/widgets/font-selector.cpp | 33 +------ src/widgets/gradient-image.cpp | 45 --------- src/widgets/gradient-selector.cpp | 13 +-- src/widgets/gradient-selector.h | 8 -- src/widgets/gradient-vector.cpp | 65 +----------- src/widgets/gradient-vector.h | 8 -- src/widgets/icon.cpp | 51 ---------- src/widgets/ink-action.cpp | 39 +------- src/widgets/ink-comboboxentry-action.cpp | 14 --- src/widgets/paint-selector.cpp | 54 ++-------- src/widgets/paint-selector.h | 8 -- src/widgets/select-toolbar.cpp | 6 +- src/widgets/sp-color-selector.cpp | 6 -- src/widgets/sp-color-selector.h | 9 -- src/widgets/sp-widget.cpp | 30 ------ src/widgets/sp-xmlview-attr-list.cpp | 19 +--- src/widgets/sp-xmlview-content.cpp | 19 +--- src/widgets/sp-xmlview-tree.cpp | 20 +--- src/widgets/spw-utilities.cpp | 69 +------------ src/widgets/spw-utilities.h | 12 --- src/widgets/text-toolbar.cpp | 19 +--- testfiles/CMakeLists.txt | 4 - 53 files changed, 111 insertions(+), 1307 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 2c5acaff3..b56343eda 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -247,7 +247,6 @@ set(TRY_GTKSPELL 1) gdl-3.0>=3.4 ) list(APPEND INKSCAPE_CXX_FLAGS ${GTK3_CFLAGS_OTHER}) - set(WITH_EXT_GDL 1) # Check whether we can use new features in Gtkmm 3.10 # TODO: Drop this test and bump the version number in the GTK test above diff --git a/build-x64-gtk3.xml b/build-x64-gtk3.xml index c9f6db905..b4fa4f1e7 100644 --- a/build-x64-gtk3.xml +++ b/build-x64-gtk3.xml @@ -159,11 +159,9 @@ #define HAVE_LIBLCMS2 1 - #define WITH_GTKMM_3_0 1 #define WITH_GTKMM_3_10 1 //#define WITH_GLIBMM_2_32 1 #define HAVE_GLIBMM_THREADS_H 1 - #define WITH_EXT_GDL 1 #define WITH_GDL_3_6 1 #define ENABLE_NLS 1 diff --git a/build-x64.xml b/build-x64.xml index 1781f99ab..682fd712e 100644 --- a/build-x64.xml +++ b/build-x64.xml @@ -159,8 +159,6 @@ #define HAVE_LIBLCMS2 1 - #define WITH_GTKMM_2_24 1 - #define ENABLE_NLS 1 #define HAVE_BIND_TEXTDOMAIN_CODESET 1 diff --git a/build.xml b/build.xml index 1e437d772..b782183ae 100644 --- a/build.xml +++ b/build.xml @@ -158,8 +158,6 @@ #define HAVE_LIBLCMS2 1 - #define WITH_GTKMM_2_24 1 - #define ENABLE_NLS 1 #define HAVE_BIND_TEXTDOMAIN_CODESET 1 diff --git a/configure.ac b/configure.ac index d18c62a95..2d922addf 100644 --- a/configure.ac +++ b/configure.ac @@ -712,76 +712,67 @@ fi AC_CHECK_HEADER([boost/unordered_set.hpp], [AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1, [Boost unordered_set (Boost >= 1.36)])], []) - ink_spell_pkg= - if pkg-config --exists gtkspell-3.0; then - ink_spell_pkg=gtkspell-3.0 - AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget]) - fi +ink_spell_pkg= +if pkg-config --exists gtkspell-3.0; then + ink_spell_pkg=gtkspell-3.0 + AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget]) +fi - PKG_CHECK_MODULES(GTK, - gtk+-3.0 >= 3.8 - gdk-3.0 >= 3.8 - gdl-3.0 > 3.4 - $ink_spell_pkg) - - dnl Separate out dependencies that are known to introduce - dnl C++-specific compiler flags - PKG_CHECK_MODULES(GTKMM, - gtkmm-3.0 >= 3.8 - gdkmm-3.0 >= 3.8) - - -dnl Drop this hack as soon as we've got rid of all GTK+ 2/3 conditional blocks -AC_DEFINE([WITH_EXT_GDL], [1], [Use external GDL]) - - # Check whether we can use new features in Gtkmm 3.10 - # TODO: Drop this test and bump the version number in the GTK test above - # as soon as all supported distributions provide Gtkmm >= 3.10 - PKG_CHECK_MODULES(GTKMM_3_10, - gtkmm-3.0 >= 3.10, - with_gtkmm_3_10=yes, - with_gtkmm_3_10=no) - - if test "x$with_gtkmm_3_10" = "xyes"; then - AC_MSG_RESULT([Using Gtkmm 3.10 build]) - AC_DEFINE(WITH_GTKMM_3_10,1,[Build with Gtkmm 3.10.x or higher]) - fi +PKG_CHECK_MODULES(GTK, + gtk+-3.0 >= 3.8 + gdk-3.0 >= 3.8 + gdl-3.0 > 3.4 + $ink_spell_pkg) - # Check whether we are using Gdl >= 3.6. This version introduced an API/ABI change. - # TODO: We should drop support for older versions of Gdl once all supported distros - # provide Gdl 3.6 or higher - PKG_CHECK_MODULES(GDL_3_6, gdl-3.0 >= 3.6, with_gdl_3_6=yes, with_gdl_3_6=no) +dnl Separate out dependencies that are known to introduce +dnl C++-specific compiler flags +PKG_CHECK_MODULES(GTKMM, + gtkmm-3.0 >= 3.8 + gdkmm-3.0 >= 3.8) + +# Check whether we can use new features in Gtkmm 3.10 +# TODO: Drop this test and bump the version number in the GTK test above +# as soon as all supported distributions provide Gtkmm >= 3.10 +PKG_CHECK_MODULES(GTKMM_3_10, + gtkmm-3.0 >= 3.10, + with_gtkmm_3_10=yes, + with_gtkmm_3_10=no) + +if test "x$with_gtkmm_3_10" = "xyes"; then + AC_MSG_RESULT([Using Gtkmm 3.10 build]) + AC_DEFINE(WITH_GTKMM_3_10,1,[Build with Gtkmm 3.10.x or higher]) +fi - if test "x$with_gdl_3_6" = "xyes"; then - AC_MSG_RESULT([Using Gdl 3.6 or higher]) - AC_DEFINE(WITH_GDL_3_6,1,[Build with Gdl 3.6 or higher]) - fi +# Check whether we are using Gdl >= 3.6. This version introduced an API/ABI change. +# TODO: We should drop support for older versions of Gdl once all supported distros +# provide Gdl 3.6 or higher +PKG_CHECK_MODULES(GDL_3_6, gdl-3.0 >= 3.6, with_gdl_3_6=yes, with_gdl_3_6=no) - dnl The following test is only defined if Gtk+ 3 development libraries - dnl are installed on the system. Therefore, it is guarded by an - dnl m4_ifdef statement. The ifdef can be probably be removed once we - dnl switch to Gtk+ 3 as a hard dependency +if test "x$with_gdl_3_6" = "xyes"; then + AC_MSG_RESULT([Using Gdl 3.6 or higher]) + AC_DEFINE(WITH_GDL_3_6,1,[Build with Gdl 3.6 or higher]) +fi - # Check whether we are using the X11 backend target for Gtk+ 3. - GTK_CHECK_BACKEND([x11], , [have_x11=yes], [have_x11=no]) +# Check whether we are using the X11 backend target for Gtk+ 3. +GTK_CHECK_BACKEND([x11], , [have_x11=yes], [have_x11=no]) - # Enable strict build options that should work on most systems unless - # the build has been configured not to do so - if test "x$enable_strict_build" != "xno"; then - # Add build flags here as soon as Inkscape trunk can build - # against Gtk+ 3 with the option enabled - echo "" - fi +# Enable strict build options that should work on most systems unless +# the build has been configured not to do so +if test "x$enable_strict_build" != "xno"; then + # Add build flags here as soon as Inkscape trunk can build + # against Gtk+ 3 with the option enabled + echo "" +fi - # Enable strict build options that are known to cause failure in - # Gtk+ 3 builds - if test "x$enable_strict_build" = "xhigh"; then - # Disable deprecated Gtk+ symbols that have been removed since - # Gtk+ 3. - CPPFLAGS="-DGTKMM_DISABLE_DEPRECATED $CPPFLAGS" - CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS" - CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS" - fi +# Enable strict build options that are known to cause failure in +# Gtk+ 3 builds +if test "x$enable_strict_build" = "xhigh"; then + # Disable deprecated Gtk+ symbols that have been removed since + # Gtk+ 3. + CPPFLAGS="-DGTKMM_DISABLE_DEPRECATED $CPPFLAGS" + CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS" + CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS" +fi INKSCAPE_CFLAGS="$GTK_CFLAGS $INKSCAPE_CFLAGS" INKSCAPE_CXX_DEPS_CFLAGS="$GTKMM_CFLAGS $INKSCAPE_CXX_DEPS_CFLAGS" diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp index 9ad06e2ec..1932a9864 100644 --- a/src/desktop-events.cpp +++ b/src/desktop-events.cpp @@ -95,14 +95,9 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge gint width, height; -#if GTK_CHECK_VERSION(3,0,0) - GdkDevice *device = gdk_event_get_device(event); + auto device = gdk_event_get_device(event); gdk_window_get_device_position(window, device, &wx, &wy, NULL); gdk_window_get_geometry(window, NULL /*x*/, NULL /*y*/, &width, &height); -#else - gdk_window_get_pointer(window, &wx, &wy, NULL); - gdk_window_get_geometry(window, NULL /*x*/, NULL /*y*/, &width, &height, NULL/*depth*/); -#endif Geom::Point const event_win(wx, wy); @@ -158,7 +153,6 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge guide = sp_guideline_new(desktop->guides, NULL, event_dt, normal); sp_guideline_set_color(SP_GUIDELINE(guide), desktop->namedview->guidehicolor); -#if GTK_CHECK_VERSION(3,0,0) gdk_device_grab(device, gtk_widget_get_window(widget), GDK_OWNERSHIP_NONE, @@ -166,12 +160,6 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge (GdkEventMask)(GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK ), NULL, event->button.time); -#else - gdk_pointer_grab(gtk_widget_get_window (widget), FALSE, - (GdkEventMask)(GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK ), - NULL, NULL, - event->button.time); -#endif } break; case GDK_MOTION_NOTIFY: @@ -206,11 +194,7 @@ static gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidge if (clicked && event->button.button == 1) { sp_event_context_discard_delayed_snap_event(desktop->event_context); -#if GTK_CHECK_VERSION(3,0,0) gdk_device_ungrab(device, event->button.time); -#else - gdk_pointer_ungrab(event->button.time); -#endif Geom::Point const event_w(sp_canvas_window_to_world(dtw->canvas, event_win)); Geom::Point event_dt(desktop->w2d(event_w)); @@ -535,11 +519,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) guide_cursor = sp_cursor_new_from_xpm(cursor_select_xpm , 1, 1); } gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(guide_cursor); -#else - gdk_cursor_unref(guide_cursor); -#endif char *guide_description = guide->description(); desktop->guidesMessageContext()->setF(Inkscape::NORMAL_MESSAGE, _("Guideline: %s"), guide_description); @@ -573,11 +553,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) GdkDisplay *display = gdk_display_get_default(); GdkCursor *guide_cursor = gdk_cursor_new_for_display(display, GDK_EXCHANGE); gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(guide_cursor); -#else - gdk_cursor_unref(guide_cursor); -#endif ret = TRUE; break; } @@ -595,11 +571,7 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) GdkDisplay *display = gdk_display_get_default(); GdkCursor *guide_cursor = gdk_cursor_new_for_display(display, GDK_EXCHANGE); gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(guide_cursor); -#else - gdk_cursor_unref(guide_cursor); -#endif break; } default: @@ -622,19 +594,15 @@ static GdkInputSource lastType = GDK_SOURCE_MOUSE; static void init_extended() { Glib::ustring avoidName("pad"); - Glib::RefPtr display = Gdk::Display::get_default(); + auto display = Gdk::Display::get_default(); -#if GTK_CHECK_VERSION(3,0,0) - Glib::RefPtr dm = display->get_device_manager(); - std::vector< Glib::RefPtr > devices = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE); -#else - std::vector< Glib::RefPtr > devices = display->list_devices(); -#endif + auto dm = display->get_device_manager(); + auto const devices = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE); if ( !devices.empty() ) { - for ( std::vector< Glib::RefPtr >::const_iterator dev = devices.begin(); dev != devices.end(); ++dev ) { - Glib::ustring const devName = (*dev)->get_name(); - Gdk::InputSource devSrc = (*dev)->get_source(); + for (auto const dev : devices) { + auto const devName = dev->get_name(); + auto devSrc = dev->get_source(); if ( !devName.empty() && (avoidName != devName) diff --git a/src/desktop.cpp b/src/desktop.cpp index d482d0d7f..83110f8e0 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -1444,11 +1444,7 @@ void SPDesktop::setWaitingCursor() GdkDisplay *display = gdk_display_get_default(); GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(getCanvas())), waiting); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); -#else - gdk_cursor_unref(waiting); -#endif // GDK needs the flush for the cursor change to take effect gdk_flush(); waiting_cursor = true; diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 7d76fa043..9201168ef 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -322,13 +322,9 @@ void sp_canvas_item_dispose(GObject *object) if (item == item->canvas->_grabbed_item) { item->canvas->_grabbed_item = NULL; -#if GTK_CHECK_VERSION(3,0,0) - GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); - GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + auto dm = gdk_display_get_device_manager(gdk_display_get_default()); + auto device = gdk_device_manager_get_client_pointer(dm); gdk_device_ungrab(device, GDK_CURRENT_TIME); -#else - gdk_pointer_ungrab (GDK_CURRENT_TIME); -#endif } if (item == item->canvas->_focused_item) { @@ -617,9 +613,8 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor, // fixme: Top hack (Lauris) // fixme: If we add key masks to event mask, Gdk will abort (Lauris) // fixme: But Canvas actualle does get key events, so all we need is routing these here -#if GTK_CHECK_VERSION(3,0,0) - GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); - GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + auto dm = gdk_display_get_device_manager(gdk_display_get_default()); + auto device = gdk_device_manager_get_client_pointer(dm); gdk_device_grab(device, getWindow(item->canvas), GDK_OWNERSHIP_NONE, @@ -627,11 +622,6 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor, (GdkEventMask)(event_mask & (~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK))), cursor, etime); -#else - gdk_pointer_grab( getWindow(item->canvas), FALSE, - (GdkEventMask)(event_mask & (~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK))), - NULL, cursor, etime); -#endif item->canvas->_grabbed_item = item; item->canvas->_grabbed_event_mask = event_mask; @@ -658,13 +648,9 @@ void sp_canvas_item_ungrab(SPCanvasItem *item, guint32 etime) item->canvas->_grabbed_item = NULL; -#if GTK_CHECK_VERSION(3,0,0) - GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); - GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + auto dm = gdk_display_get_device_manager(gdk_display_get_default()); + auto device = gdk_device_manager_get_client_pointer(dm); gdk_device_ungrab(device, etime); -#else - gdk_pointer_ungrab (etime); -#endif } /** @@ -913,16 +899,9 @@ void sp_canvas_class_init(SPCanvasClass *klass) widget_class->realize = SPCanvas::handle_realize; widget_class->unrealize = SPCanvas::handle_unrealize; - -#if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = SPCanvas::handle_get_preferred_width; widget_class->get_preferred_height = SPCanvas::handle_get_preferred_height; widget_class->draw = SPCanvas::handle_draw; -#else - widget_class->size_request = SPCanvas::handle_size_request; - widget_class->expose_event = SPCanvas::handle_expose; -#endif - widget_class->size_allocate = SPCanvas::handle_size_allocate; widget_class->button_press_event = SPCanvas::handle_button; widget_class->button_release_event = SPCanvas::handle_button; @@ -980,13 +959,9 @@ void SPCanvas::shutdownTransients() if (_grabbed_item) { _grabbed_item = NULL; -#if GTK_CHECK_VERSION(3,0,0) - GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); - GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + auto dm = gdk_display_get_device_manager(gdk_display_get_default()); + auto device = gdk_device_manager_get_client_pointer(dm); gdk_device_ungrab(device, GDK_CURRENT_TIME); -#else - gdk_pointer_ungrab(GDK_CURRENT_TIME); -#endif } removeIdle(); } @@ -1053,10 +1028,6 @@ void SPCanvas::handle_realize(GtkWidget *widget) attributes.wclass = GDK_INPUT_OUTPUT; attributes.visual = gdk_visual_get_system(); -#if !GTK_CHECK_VERSION(3,0,0) - attributes.colormap = gdk_colormap_get_system(); -#endif - attributes.event_mask = (gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | @@ -1073,11 +1044,7 @@ void SPCanvas::handle_realize(GtkWidget *widget) GDK_SCROLL_MASK | GDK_FOCUS_CHANGE_MASK); -#if GTK_CHECK_VERSION(3,0,0) gint attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; -#else - gint attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; -#endif GdkWindow *window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); @@ -1086,18 +1053,8 @@ void SPCanvas::handle_realize(GtkWidget *widget) Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/options/useextinput/value", true)) { gtk_widget_set_events(widget, attributes.event_mask); -#if !GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_extension_events(widget, GDK_EXTENSION_EVENTS_ALL); - // TODO: Extension event stuff has been deprecated in GTK+ 3 -#endif } -#if !GTK_CHECK_VERSION(3,0,0) - // This does nothing in GTK+ 3 - GtkStyle *style = gtk_widget_get_style (widget); - gtk_widget_set_style (widget, gtk_style_attach (style, window)); -#endif - gtk_widget_set_realized (widget, TRUE); } @@ -1115,8 +1072,6 @@ void SPCanvas::handle_unrealize(GtkWidget *widget) (* GTK_WIDGET_CLASS(sp_canvas_parent_class)->unrealize)(widget); } - -#if GTK_CHECK_VERSION(3,0,0) void SPCanvas::handle_get_preferred_width(GtkWidget *widget, gint *minimum_width, gint *natural_width) { static_cast(SP_CANVAS (widget)); @@ -1130,16 +1085,6 @@ void SPCanvas::handle_get_preferred_height(GtkWidget *widget, gint *minimum_heig *minimum_height = 256; *natural_height = 256; } -#else -void SPCanvas::handle_size_request(GtkWidget *widget, GtkRequisition *req) -{ - static_cast(SP_CANVAS (widget)); - - req->width = 256; - req->height = 256; -} -#endif - void SPCanvas::handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { @@ -1219,9 +1164,7 @@ int SPCanvas::emitEvent(GdkEvent *event) break; case GDK_SCROLL: mask = GDK_SCROLL_MASK; -#if GTK_CHECK_VERSION(3,0,0) mask |= GDK_SMOOTH_SCROLL_MASK; -#endif break; default: mask = 0; @@ -1503,13 +1446,9 @@ gint SPCanvas::handle_scroll(GtkWidget *widget, GdkEventScroll *event) } static inline void request_motions(GdkWindow *w, GdkEventMotion *event) { -#if GTK_CHECK_VERSION(3,0,0) gdk_window_get_device_position(w, gdk_event_get_device((GdkEvent *)(event)), NULL, NULL, NULL); -#else - gdk_window_get_pointer(w, NULL, NULL, NULL); -#endif gdk_event_request_motions(event); } @@ -1746,16 +1685,12 @@ bool SPCanvas::paintRect(int xx0, int yy0, int xx1, int yy1) // Save the mouse location gint x, y; -#if GTK_CHECK_VERSION(3,0,0) - GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); - GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + auto dm = gdk_display_get_device_manager(gdk_display_get_default()); + auto device = gdk_device_manager_get_client_pointer(dm); gdk_window_get_device_position(gtk_widget_get_window(GTK_WIDGET(this)), device, &x, &y, NULL); -#else - gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(this)), &x, &y, NULL); -#endif setup.mouse_loc = sp_canvas_window_to_world(this, Geom::Point(x,y)); @@ -1818,21 +1753,6 @@ gboolean SPCanvas::handle_draw(GtkWidget *widget, cairo_t *cr) { return TRUE; } -#if !GTK_CHECK_VERSION(3,0,0) -gboolean SPCanvas::handle_expose(GtkWidget *widget, GdkEventExpose *event) -{ - cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(widget)); - - gdk_cairo_region (cr, event->region); - cairo_clip (cr); - gboolean result = SPCanvas::handle_draw(widget, cr); - - cairo_destroy (cr); - - return result; -} -#endif - gint SPCanvas::handle_key_event(GtkWidget *widget, GdkEventKey *event) { diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h index 171fdaf67..78d96d728 100644 --- a/src/display/sp-canvas.h +++ b/src/display/sp-canvas.h @@ -145,12 +145,8 @@ public: static void dispose(GObject *object); static void handle_realize(GtkWidget *widget); static void handle_unrealize(GtkWidget *widget); -#if GTK_CHECK_VERSION(3,0,0) static void handle_get_preferred_width(GtkWidget *widget, gint *min_w, gint *nat_w); static void handle_get_preferred_height(GtkWidget *widget, gint *min_h, gint *nat_h); -#else - static void handle_size_request(GtkWidget *widget, GtkRequisition *req); -#endif static void handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation); static gint handle_button(GtkWidget *widget, GdkEventButton *event); @@ -162,9 +158,6 @@ public: static gint handle_scroll(GtkWidget *widget, GdkEventScroll *event); static gint handle_motion(GtkWidget *widget, GdkEventMotion *event); static gboolean handle_draw(GtkWidget *widget, cairo_t *cr); -#if !GTK_CHECK_VERSION(3,0,0) - static gboolean handle_expose(GtkWidget *widget, GdkEventExpose *event); -#endif static gint handle_key_event(GtkWidget *widget, GdkEventKey *event); static gint handle_crossing(GtkWidget *widget, GdkEventCrossing *event); static gint handle_focus_in(GtkWidget *widget, GdkEventFocus *event); diff --git a/src/inkview.cpp b/src/inkview.cpp index db4b1aeb0..f6dfe34fe 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -346,13 +346,7 @@ static GtkWidget* sp_svgview_control_show(struct SPSlideShow *ss) gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(ss->window)); g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, ss); g_signal_connect(G_OBJECT (ctrlwin), "delete_event", (GCallback) sp_svgview_ctrlwin_delete, NULL); - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); -#else - GtkWidget *t = gtk_hbutton_box_new(); -#endif - + auto t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_container_add(GTK_CONTAINER(ctrlwin), t); #if GTK_CHECK_VERSION(3,10,0) @@ -431,19 +425,11 @@ static void sp_svgview_waiting_cursor(struct SPSlideShow *ss) GdkDisplay *display = gdk_display_get_default(); GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), waiting); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); -#else - gdk_cursor_unref(waiting); -#endif if (ctrlwin) { GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); -#else - gdk_cursor_unref(waiting); -#endif } while(gtk_events_pending()) { gtk_main_iteration(); diff --git a/src/knot.cpp b/src/knot.cpp index bfc0c4f0b..8027a0301 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -126,21 +126,14 @@ SPKnot::SPKnot(SPDesktop *desktop, gchar const *tip) } SPKnot::~SPKnot() { -#if GTK_CHECK_VERSION(3,0,0) - GdkDisplay *display = gdk_display_get_default(); - GdkDeviceManager *dm = gdk_display_get_device_manager(display); - GdkDevice *device = gdk_device_manager_get_client_pointer(dm); + auto display = gdk_display_get_default(); + auto dm = gdk_display_get_device_manager(display); + auto device = gdk_device_manager_get_client_pointer(dm); if ((this->flags & SP_KNOT_GRABBED) && gdk_display_device_is_grabbed(display, device)) { // This happens e.g. when deleting a node in node tool while dragging it gdk_device_ungrab(device, GDK_CURRENT_TIME); } -#else - if ((this->flags & SP_KNOT_GRABBED) && gdk_pointer_is_grabbed ()) { - // This happens e.g. when deleting a node in node tool while dragging it - gdk_pointer_ungrab (GDK_CURRENT_TIME); - } -#endif if (this->_event_handler_id > 0) { g_signal_handler_disconnect(G_OBJECT (this->item), this->_event_handler_id); @@ -154,11 +147,7 @@ SPKnot::~SPKnot() { for (gint i = 0; i < SP_KNOT_VISIBLE_STATES; i++) { if (this->cursor[i]) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(this->cursor[i]); -#else - gdk_cursor_unref(this->cursor[i]); -#endif this->cursor[i] = NULL; } } @@ -525,57 +514,33 @@ void SPKnot::setImage(guchar* normal, guchar* mouseover, guchar* dragging) { void SPKnot::setCursor(GdkCursor* normal, GdkCursor* mouseover, GdkCursor* dragging) { if (cursor[SP_KNOT_STATE_NORMAL]) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cursor[SP_KNOT_STATE_NORMAL]); -#else - gdk_cursor_unref(cursor[SP_KNOT_STATE_NORMAL]); -#endif } cursor[SP_KNOT_STATE_NORMAL] = normal; if (normal) { -#if GTK_CHECK_VERSION(3,0,0) g_object_ref(normal); -#else - gdk_cursor_ref(normal); -#endif } if (cursor[SP_KNOT_STATE_MOUSEOVER]) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cursor[SP_KNOT_STATE_MOUSEOVER]); -#else - gdk_cursor_unref(cursor[SP_KNOT_STATE_MOUSEOVER]); -#endif } cursor[SP_KNOT_STATE_MOUSEOVER] = mouseover; if (mouseover) { -#if GTK_CHECK_VERSION(3,0,0) g_object_ref(mouseover); -#else - gdk_cursor_ref(mouseover); -#endif } if (cursor[SP_KNOT_STATE_DRAGGING]) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cursor[SP_KNOT_STATE_DRAGGING]); -#else - gdk_cursor_unref(cursor[SP_KNOT_STATE_DRAGGING]); -#endif } cursor[SP_KNOT_STATE_DRAGGING] = dragging; if (dragging) { -#if GTK_CHECK_VERSION(3,0,0) g_object_ref(dragging); -#else - gdk_cursor_ref(dragging); -#endif } } diff --git a/src/live_effects/parameter/togglebutton.cpp b/src/live_effects/parameter/togglebutton.cpp index c761731b7..023bebc03 100644 --- a/src/live_effects/parameter/togglebutton.cpp +++ b/src/live_effects/parameter/togglebutton.cpp @@ -74,12 +74,8 @@ ToggleButtonParam::param_newWidget() false, param_effect->getRepr(), param_effect->getSPDoc()) ); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget * box_button = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + auto box_button = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(box_button), false); -#else - GtkWidget * box_button = gtk_hbox_new (false, 0); -#endif GtkWidget * label_button = gtk_label_new (""); if (!param_label.empty()) { if(value || inactive_label.empty()){ diff --git a/src/main.cpp b/src/main.cpp index 8cf52127b..3c0244e8b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,10 +52,8 @@ #include #include -#if GTK_CHECK_VERSION(3,0,0) #include #include -#endif #include "inkgc/gc-core.h" @@ -1056,8 +1054,6 @@ sp_main_gui(int argc, char const **argv) #endif g_free(usericondir); - -#if GTK_CHECK_VERSION(3,0,0) // Add style sheet (GTK3) Glib::RefPtr screen = Gdk::Screen::get_default(); @@ -1114,7 +1110,6 @@ sp_main_gui(int argc, char const **argv) Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } -#endif gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL); Inkscape::Debug::log_display_config(); diff --git a/src/svg-view-widget.cpp b/src/svg-view-widget.cpp index b1fddd7e6..7c72686b4 100644 --- a/src/svg-view-widget.cpp +++ b/src/svg-view-widget.cpp @@ -27,7 +27,6 @@ static void sp_svg_view_widget_dispose(GObject *object); static void sp_svg_view_widget_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static void sp_svg_view_widget_size_request (GtkWidget *widget, GtkRequisition *req); -#if GTK_CHECK_VERSION(3,0,0) static void sp_svg_view_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width); @@ -35,7 +34,6 @@ static void sp_svg_view_widget_get_preferred_width(GtkWidget *widget, static void sp_svg_view_widget_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height); -#endif static void sp_svg_view_widget_view_resized (SPViewWidget *vw, Inkscape::UI::View::View *view, gdouble width, gdouble height); @@ -53,12 +51,8 @@ static void sp_svg_view_widget_class_init(SPSVGSPViewWidgetClass *klass) object_class->dispose = sp_svg_view_widget_dispose; widget_class->size_allocate = sp_svg_view_widget_size_allocate; -#if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = sp_svg_view_widget_get_preferred_width; widget_class->get_preferred_height = sp_svg_view_widget_get_preferred_height; -#else - widget_class->size_request = sp_svg_view_widget_size_request; -#endif vw_class->view_resized = sp_svg_view_widget_view_resized; } @@ -83,16 +77,10 @@ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw) gtk_widget_show (vw->sw); /* Canvas */ -#if !GTK_CHECK_VERSION(3,0,0) - GdkColormap *cmap = gdk_colormap_get_system(); - gtk_widget_push_colormap(cmap); -#endif - vw->canvas = SPCanvas::createAA(); -#if GTK_CHECK_VERSION(3,0,0) - GtkCssProvider *css_provider = gtk_css_provider_new(); - GtkStyleContext *style_context = gtk_widget_get_style_context(GTK_WIDGET(vw->canvas)); + auto css_provider = gtk_css_provider_new(); + auto style_context = gtk_widget_get_style_context(GTK_WIDGET(vw->canvas)); gtk_css_provider_load_from_data(css_provider, "SPCanvas {\n" @@ -103,19 +91,8 @@ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw) gtk_style_context_add_provider(style_context, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); -#else - gtk_widget_pop_colormap (); - GtkStyle *style = gtk_style_copy (gtk_widget_get_style (vw->canvas)); - style->bg[GTK_STATE_NORMAL] = style->white; - gtk_widget_set_style (vw->canvas, style); -#endif - -#if GTK_CHECK_VERSION(3,0,0) - gtk_container_add (GTK_CONTAINER (vw->sw), vw->canvas); -#else - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (vw->sw), vw->canvas); -#endif + gtk_container_add (GTK_CONTAINER (vw->sw), vw->canvas); gtk_widget_show (vw->canvas); /* View */ @@ -146,7 +123,6 @@ static void sp_svg_view_widget_size_request(GtkWidget *widget, GtkRequisition *r SPSVGSPViewWidget *vw = SP_SVG_VIEW_WIDGET (widget); Inkscape::UI::View::View *v = SP_VIEW_WIDGET_VIEW (widget); -#if GTK_CHECK_VERSION(3,0,0) if (GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->get_preferred_width && GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->get_preferred_height) { gint width_min, height_min, width_nat, height_nat; @@ -156,11 +132,6 @@ static void sp_svg_view_widget_size_request(GtkWidget *widget, GtkRequisition *r req->width=width_min; req->height=height_min; } -#else - if (GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->size_request) { - GTK_WIDGET_CLASS(sp_svg_view_widget_parent_class)->size_request(widget, req); - } -#endif if (v->doc()) { SPSVGView *svgv; @@ -189,7 +160,6 @@ static void sp_svg_view_widget_size_request(GtkWidget *widget, GtkRequisition *r } } -#if GTK_CHECK_VERSION(3,0,0) static void sp_svg_view_widget_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkRequisition requisition; @@ -203,7 +173,6 @@ static void sp_svg_view_widget_get_preferred_height(GtkWidget *widget, gint *min sp_svg_view_widget_size_request(widget, &requisition); *minimal_height = *natural_height = requisition.height; } -#endif /** * Callback connected with size_allocate signal. diff --git a/src/svg-view.cpp b/src/svg-view.cpp index 53fa8633f..00ea0d381 100644 --- a/src/svg-view.cpp +++ b/src/svg-view.cpp @@ -107,11 +107,7 @@ void SPSVGView::mouseover() GdkCursor *cursor = gdk_cursor_new_for_display(display, GDK_HAND2); GdkWindow *window = gtk_widget_get_window (GTK_WIDGET(SP_CANVAS_ITEM(_drawing)->canvas)); gdk_window_set_cursor(window, cursor); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cursor); -#else - gdk_cursor_unref(cursor); -#endif } void SPSVGView::mouseout() diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 5e7c68985..5167ca2a2 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -67,12 +67,7 @@ #include "helper/png-write.h" -#if WITH_EXT_GDL #include -#else -#include "libgdl/gdl-dock-item.h" -#endif - // required to set status message after export #include "desktop.h" diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp index f219f3db6..18a7241a4 100644 --- a/src/ui/dialog/font-substitution.cpp +++ b/src/ui/dialog/font-substitution.cpp @@ -106,11 +106,7 @@ FontSubstitution::show(Glib::ustring out, std::vector &l) cbWarning->set_label(_("Don't show this warning again")); cbWarning->show(); -#if GTK_CHECK_VERSION(3,0,0) - Gtk::Box * box = warning.get_content_area(); -#else - Gtk::Box * box = warning.get_vbox(); -#endif + auto box = warning.get_content_area(); box->set_spacing(2); box->pack_start(*scrollwindow, true, true, 4); box->pack_start(*cbSelect, false, false, 0); diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index ab29471ed..1d2fa5b34 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -79,9 +79,7 @@ #include "message-stack.h" #include "ui/dialog/layer-properties.h" -#if GTK_CHECK_VERSION(3,0,0) - #include "widgets/image-menu-item.h" -#endif +#include "widgets/image-menu-item.h" #include @@ -417,11 +415,7 @@ sp_ui_menuitem_add_icon( GtkWidget *item, gchar *icon_name ) icon = sp_icon_new( Inkscape::ICON_SIZE_MENU, icon_name ); gtk_widget_show(icon); -#if GTK_CHECK_VERSION(3,0,0) image_menu_item_set_image((ImageMenuItem *) item, icon); -#else - gtk_image_menu_item_set_image((GtkImageMenuItem *) item, icon); -#endif } // end of sp_ui_menu_add_icon void @@ -475,11 +469,7 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb if (radio) { item = gtk_radio_menu_item_new_with_mnemonic(group, action->name); } else { -#if GTK_CHECK_VERSION(3,0,0) item = image_menu_item_new_with_mnemonic(action->name); -#else - item = gtk_image_menu_item_new_with_mnemonic(action->name); -#endif } gtk_label_set_markup_with_mnemonic( GTK_LABEL(gtk_bin_get_child(GTK_BIN (item))), action->name); @@ -570,11 +560,7 @@ static bool getViewStateFromPref(Inkscape::UI::View::View *view, gchar const *pr return prefs->getBool(pref_path, true); } -#if GTK_CHECK_VERSION(3,0,0) static gboolean checkitem_update(GtkWidget *widget, cairo_t * /*cr*/, gpointer user_data) -#else -static gboolean checkitem_update(GtkWidget *widget, GdkEventExpose * /*event*/, gpointer user_data) -#endif { GtkCheckMenuItem *menuitem=GTK_CHECK_MENU_ITEM(widget); @@ -631,11 +617,7 @@ static void taskToggled(GtkCheckMenuItem *menuitem, gpointer userData) /** * Callback function to update the status of the radio buttons in the View -> Display mode menu (Normal, No Filters, Outline) and Color display mode. */ -#if GTK_CHECK_VERSION(3,0,0) static gboolean update_view_menu(GtkWidget *widget, cairo_t * /*cr*/, gpointer user_data) -#else -static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose * /*event*/, gpointer user_data) -#endif { SPAction *action = (SPAction *) user_data; g_assert(action->id != NULL); @@ -679,11 +661,7 @@ static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose * /*event*/, static void sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View *view, gchar const *label, gchar const *tip, gchar const *pref, void (*callback_toggle)(GtkCheckMenuItem *, gpointer user_data), -#if GTK_CHECK_VERSION(3,0,0) gboolean (*callback_update)(GtkWidget *widget, cairo_t *cr, gpointer user_data), -#else - gboolean (*callback_update)(GtkWidget *widget, GdkEventExpose *event, gpointer user_data), -#endif Inkscape::Verb *verb) { unsigned int shortcut = (verb) ? sp_shortcut_get_primary(verb) : 0; @@ -707,11 +685,7 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View * g_signal_connect( G_OBJECT(item), "toggled", (GCallback) callback_toggle, (void *) pref); -#if GTK_CHECK_VERSION(3,0,0) g_signal_connect( G_OBJECT(item), "draw", (GCallback) callback_update, (void *) pref); -#else - g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) callback_update, (void *) pref); -#endif (*callback_update)(item, NULL, (void *)pref); @@ -854,11 +828,7 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I } if (verb->get_code() != SP_VERB_NONE) { SPAction *action = verb->get_action(Inkscape::ActionContext(view)); -#if GTK_CHECK_VERSION(3,0,0) g_signal_connect( G_OBJECT(item), "draw", (GCallback) update_view_menu, (void *) action); -#else - g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) update_view_menu, (void *) action); -#endif } } else if (menu_pntr->attribute("check") != NULL) { if (verb->get_code() != SP_VERB_NONE) { diff --git a/src/ui/previewholder.cpp b/src/ui/previewholder.cpp index 8336467c4..bb7f077b0 100644 --- a/src/ui/previewholder.cpp +++ b/src/ui/previewholder.cpp @@ -259,12 +259,8 @@ void PreviewHolder::on_size_allocate( Gtk::Allocation& allocation ) if ( _insides && !_wrap && (_view != VIEW_TYPE_LIST) && (_anchor == SP_ANCHOR_NORTH || _anchor == SP_ANCHOR_SOUTH) ) { Gtk::Requisition req; -#if GTK_CHECK_VERSION(3,0,0) Gtk::Requisition req_natural; _insides->get_preferred_size(req, req_natural); -#else - req = _insides->size_request(); -#endif gint delta = allocation.get_width() - req.width; if ( (delta > 4) && req.height < allocation.get_height() ) { @@ -306,43 +302,27 @@ void PreviewHolder::calcGridSize( const Gtk::Widget* thing, int itemCount, int& if ( _anchor == SP_ANCHOR_SOUTH || _anchor == SP_ANCHOR_NORTH ) { Gtk::Requisition req; -#if GTK_CHECK_VERSION(3,0,0) Gtk::Requisition req_natural; _scroller->get_preferred_size(req, req_natural); -#else - req = _scroller->size_request(); -#endif int currW = _scroller->get_width(); if ( currW > req.width ) { req.width = currW; } -#if GTK_CHECK_VERSION(3,0,0) - Gtk::Scrollbar* hs = dynamic_cast(_scroller)->get_hscrollbar(); -#else - Gtk::HScrollbar* hs = dynamic_cast(_scroller)->get_hscrollbar(); -#endif + auto hs = dynamic_cast(_scroller)->get_hscrollbar(); if ( hs ) { Gtk::Requisition scrollReq; -#if GTK_CHECK_VERSION(3,0,0) Gtk::Requisition scrollReq_natural; hs->get_preferred_size(scrollReq, scrollReq_natural); -#else - scrollReq = hs->size_request(); -#endif // the +8 is a temporary hack req.height -= scrollReq.height + 8; } Gtk::Requisition req2; -#if GTK_CHECK_VERSION(3,0,0) Gtk::Requisition req2_natural; const_cast(thing)->get_preferred_size(req2, req2_natural); -#else - req2 = const_cast(thing)->size_request(); -#endif int h2 = ((req2.height > 0) && (req.height > req2.height)) ? (req.height / req2.height) : 1; int w2 = ((req2.width > 0) && (req.width > req2.width)) ? (req.width / req2.width) : 1; diff --git a/src/ui/tools/dropper-tool.cpp b/src/ui/tools/dropper-tool.cpp index c838c27d5..fbc5f088c 100644 --- a/src/ui/tools/dropper-tool.cpp +++ b/src/ui/tools/dropper-tool.cpp @@ -121,20 +121,12 @@ void DropperTool::finish() { } if (cursor_dropper_fill) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cursor_dropper_fill); -#else - gdk_cursor_unref (cursor_dropper_fill); -#endif cursor_dropper_fill = NULL; } if (cursor_dropper_stroke) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cursor_dropper_stroke); -#else - gdk_cursor_unref (cursor_dropper_stroke); -#endif cursor_dropper_fill = NULL; } diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index b5ec3d88e..b29fb6979 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -128,20 +128,12 @@ SelectTool::~SelectTool() { this->_describer = NULL; if (CursorSelectDragging) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(CursorSelectDragging); -#else - gdk_cursor_unref (CursorSelectDragging); -#endif CursorSelectDragging = NULL; } if (CursorSelectMouseover) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(CursorSelectMouseover); -#else - gdk_cursor_unref (CursorSelectMouseover); -#endif CursorSelectMouseover = NULL; } } diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index 17debb59c..d504d82eb 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -118,11 +118,7 @@ ToolBase::~ToolBase() { } if (this->cursor != NULL) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(this->cursor); -#else - gdk_cursor_unref(this->cursor); -#endif this->cursor = NULL; } @@ -182,11 +178,7 @@ void ToolBase::sp_event_context_update_cursor() { ); if (pixbuf != NULL) { if (this->cursor) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(this->cursor); -#else - gdk_cursor_unref(this->cursor); -#endif } this->cursor = gdk_cursor_new_from_pixbuf(display, pixbuf, this->hot_x, this->hot_y); g_object_unref(pixbuf); @@ -196,11 +188,7 @@ void ToolBase::sp_event_context_update_cursor() { if (pixbuf) { if (this->cursor) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(this->cursor); -#else - gdk_cursor_unref(this->cursor); -#endif } this->cursor = gdk_cursor_new_from_pixbuf(display, pixbuf, this->hot_x, this->hot_y); @@ -771,11 +759,9 @@ bool ToolBase::root_handler(GdkEvent* event) { int const wheel_scroll = prefs->getIntLimited( "/options/wheelscroll/value", 40, 0, 1000); -#if GTK_CHECK_VERSION(3,0,0) // Size of smooth-scrolls (only used in GTK+ 3) gdouble delta_x = 0; gdouble delta_y = 0; -#endif /* shift + wheel, pan left--right */ if (event->scroll.state & GDK_SHIFT_MASK) { @@ -836,12 +822,10 @@ bool ToolBase::root_handler(GdkEvent* event) { desktop->scroll_world(-wheel_scroll, 0); break; -#if GTK_CHECK_VERSION(3,0,0) case GDK_SCROLL_SMOOTH: gdk_event_get_scroll_deltas(event, &delta_x, &delta_y); desktop->scroll_world(delta_x, delta_y); break; -#endif } } break; diff --git a/src/ui/widget/dock-item.h b/src/ui/widget/dock-item.h index 25a69d94c..2df45b207 100644 --- a/src/ui/widget/dock-item.h +++ b/src/ui/widget/dock-item.h @@ -19,11 +19,7 @@ #include #include -#if WITH_EXT_GDL #include -#else -#include "libgdl/gdl.h" -#endif namespace Gtk { class HButtonBox; diff --git a/src/ui/widget/gimpcolorwheel.c b/src/ui/widget/gimpcolorwheel.c index d54486505..212391497 100644 --- a/src/ui/widget/gimpcolorwheel.c +++ b/src/ui/widget/gimpcolorwheel.c @@ -110,7 +110,6 @@ static gboolean gimp_color_wheel_button_release (GtkWidget *widget, GdkEventButton *event); static gboolean gimp_color_wheel_motion (GtkWidget *widget, GdkEventMotion *event); -#if GTK_CHECK_VERSION(3,0,0) static gboolean gimp_color_wheel_draw (GtkWidget *widget, cairo_t *cr); static void gimp_color_wheel_get_preferred_width (GtkWidget *widget, @@ -119,13 +118,6 @@ static void gimp_color_wheel_get_preferred_width (GtkWidget *widget, static void gimp_color_wheel_get_preferred_height (GtkWidget *widget, gint *minimum_height, gint *natural_height); -#else -static gboolean gimp_color_wheel_expose (GtkWidget *widget, - GdkEventExpose *event); -static void gimp_color_wheel_size_request (GtkWidget *widget, - GtkRequisition *requisition); -#endif - static gboolean gimp_color_wheel_grab_broken (GtkWidget *widget, GdkEventGrabBroken *event); static gboolean gimp_color_wheel_focus (GtkWidget *widget, @@ -157,16 +149,9 @@ gimp_color_wheel_class_init (GimpColorWheelClass *class) widget_class->button_press_event = gimp_color_wheel_button_press; widget_class->button_release_event = gimp_color_wheel_button_release; widget_class->motion_notify_event = gimp_color_wheel_motion; - -#if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = gimp_color_wheel_get_preferred_width; widget_class->get_preferred_height = gimp_color_wheel_get_preferred_height; widget_class->draw = gimp_color_wheel_draw; -#else - widget_class->size_request = gimp_color_wheel_size_request; - widget_class->expose_event = gimp_color_wheel_expose; -#endif - widget_class->focus = gimp_color_wheel_focus; widget_class->grab_broken_event = gimp_color_wheel_grab_broken; @@ -302,10 +287,6 @@ gimp_color_wheel_realize (GtkWidget *widget) priv->window = gdk_window_new (parent_window, &attr, attr_mask); gdk_window_set_user_data (priv->window, wheel); - -#if !GTK_CHECK_VERSION(3,0,0) - gtk_widget_style_attach (widget); -#endif } static void @@ -321,7 +302,6 @@ gimp_color_wheel_unrealize (GtkWidget *widget) GTK_WIDGET_CLASS (parent_class)->unrealize (widget); } -#if GTK_CHECK_VERSION(3,0,0) static void gimp_color_wheel_get_preferred_width (GtkWidget *widget, gint *minimum_width, @@ -353,23 +333,6 @@ gimp_color_wheel_get_preferred_height (GtkWidget *widget, *minimum_height = *natural_height = DEFAULT_SIZE + 2 * (focus_width + focus_pad); } -#else -static void -gimp_color_wheel_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - gint focus_width; - gint focus_pad; - - gtk_widget_style_get (widget, - "focus-line-width", &focus_width, - "focus-padding", &focus_pad, - NULL); - - requisition->width = DEFAULT_SIZE + 2 * (focus_width + focus_pad); - requisition->height = DEFAULT_SIZE + 2 * (focus_width + focus_pad); -} -#endif static void gimp_color_wheel_size_allocate (GtkWidget *widget, @@ -688,7 +651,6 @@ set_cross_grab (GimpColorWheel *wheel, gdk_cursor_new_for_display (gtk_widget_get_display (GTK_WIDGET (wheel)), GDK_CROSSHAIR); -#if GTK_CHECK_VERSION(3,0,0) gdk_device_grab (gtk_get_current_event_device(), priv->window, GDK_OWNERSHIP_NONE, @@ -698,14 +660,6 @@ set_cross_grab (GimpColorWheel *wheel, GDK_BUTTON_RELEASE_MASK, cursor, time); g_object_unref (cursor); -#else - gdk_pointer_grab (priv->window, FALSE, - GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK | - GDK_BUTTON_RELEASE_MASK, - NULL, cursor, time); - gdk_cursor_unref (cursor); -#endif } static gboolean gimp_color_wheel_grab_broken(GtkWidget *widget, GdkEventGrabBroken *event) @@ -805,13 +759,8 @@ gimp_color_wheel_button_release (GtkWidget *widget, else g_assert_not_reached (); -#if GTK_CHECK_VERSION(3,0,0) gdk_device_ungrab (gtk_get_current_event_device(), event->time); -#else - gdk_display_pointer_ungrab (gdk_window_get_display (event->window), - event->time); -#endif return TRUE; } @@ -859,11 +808,7 @@ static void paint_ring (GimpColorWheel *wheel, cairo_t *cr) { -#if GTK_CHECK_VERSION(3,0,0) GtkWidget *widget = GTK_WIDGET (wheel); -#else - GtkAllocation allocation; -#endif GimpColorWheelPrivate *priv = wheel->priv; gint width, height; gint xx, yy; @@ -879,14 +824,8 @@ paint_ring (GimpColorWheel *wheel, cairo_t *source_cr; gint stride; -#if GTK_CHECK_VERSION(3,0,0) width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); -#else - gtk_widget_get_allocation (GTK_WIDGET (wheel), &allocation); - width = allocation.width; - height = allocation.height; -#endif center_x = width / 2.0; center_y = height / 2.0; @@ -1027,19 +966,10 @@ paint_triangle (GimpColorWheel *wheel, gdouble r, g, b; gint stride; gint width, height; -#if GTK_CHECK_VERSION(3,0,0) GtkStyleContext *context; width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); -#else - gchar *detail; - - GtkAllocation allocation; - gtk_widget_get_allocation (widget, &allocation); - width = allocation.width; - height = allocation.height; -#endif /* Compute triangle's vertices */ @@ -1180,28 +1110,18 @@ paint_triangle (GimpColorWheel *wheel, b = priv->v; hsv_to_rgb (&r, &g, &b); -#if GTK_CHECK_VERSION(3,0,0) context = gtk_widget_get_style_context (widget); gtk_style_context_save (context); -#endif if (INTENSITY (r, g, b) > 0.5) { -#if GTK_CHECK_VERSION(3,0,0) gtk_style_context_add_class (context, "light-area-focus"); -#else - detail = "colorwheel_light"; -#endif cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); } else { -#if GTK_CHECK_VERSION(3,0,0) gtk_style_context_add_class (context, "dark-area-focus"); -#else - detail = "colorwheel_dark"; -#endif cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); } @@ -1224,31 +1144,16 @@ paint_triangle (GimpColorWheel *wheel, "focus-padding", &focus_pad, NULL); -#if GTK_CHECK_VERSION(3,0,0) gtk_render_focus (context, cr, xx - FOCUS_RADIUS - focus_width - focus_pad, yy - FOCUS_RADIUS - focus_width - focus_pad, 2 * (FOCUS_RADIUS + focus_width + focus_pad), 2 * (FOCUS_RADIUS + focus_width + focus_pad)); -#else - gtk_widget_get_allocation (widget, &allocation); - gtk_paint_focus (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), - gtk_widget_get_state (widget), - NULL, widget, detail, - allocation.x + xx - FOCUS_RADIUS - focus_width - focus_pad, - allocation.y + yy - FOCUS_RADIUS - focus_width - focus_pad, - 2 * (FOCUS_RADIUS + focus_width + focus_pad), - 2 * (FOCUS_RADIUS + focus_width + focus_pad)); -#endif } -#if GTK_CHECK_VERSION(3,0,0) gtk_style_context_restore (context); -#endif } -#if GTK_CHECK_VERSION(3,0,0) static gboolean gimp_color_wheel_draw (GtkWidget *widget, cairo_t *cr) @@ -1273,48 +1178,6 @@ gimp_color_wheel_draw (GtkWidget *widget, return FALSE; } -#else -static gint -gimp_color_wheel_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (widget)); - - GimpColorWheel *wheel = GIMP_COLOR_WHEEL (widget); - GimpColorWheelPrivate *priv = wheel->priv; - gboolean draw_focus; - GtkAllocation allocation; - - if (! (event->window == gtk_widget_get_window (widget) && - gtk_widget_is_drawable (widget))) - return FALSE; - - gdk_cairo_region (cr, event->region); - cairo_clip (cr); - - gtk_widget_get_allocation (widget, &allocation); - cairo_translate (cr, allocation.x, allocation.y); - - draw_focus = gtk_widget_has_focus (widget); - - paint_ring (wheel, cr); - paint_triangle (wheel, cr, draw_focus); - - cairo_destroy (cr); - - if (draw_focus && priv->focus_on_ring) - gtk_paint_focus (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), - gtk_widget_get_state (widget), - &event->area, widget, NULL, - allocation.x, - allocation.y, - allocation.width, - allocation.height); - - return FALSE; -} -#endif static gboolean gimp_color_wheel_focus (GtkWidget *widget, diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index 7679fadb4..418cd13ae 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -1320,11 +1320,7 @@ RotateableSwatch::do_motion(double by, guint modifier) { g_object_unref(pixbuf); gdk_window_set_cursor(gtk_widget_get_window(w), cr); -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cr); -#else - gdk_cursor_unref(cr); -#endif cr = NULL; cr_set = true; } @@ -1388,11 +1384,7 @@ RotateableSwatch::do_release(double by, guint modifier) { GtkWidget *w = GTK_WIDGET(gobj()); gdk_window_set_cursor(gtk_widget_get_window(w), NULL); if (cr) { -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(cr); -#else - gdk_cursor_unref (cr); -#endif cr = NULL; } cr_set = false; diff --git a/src/ui/widget/spinbutton.h b/src/ui/widget/spinbutton.h index 30ffc7d77..ae571994b 100644 --- a/src/ui/widget/spinbutton.h +++ b/src/ui/widget/spinbutton.h @@ -36,11 +36,7 @@ public: { connect_signals(); }; -#if GTK_CHECK_VERSION(3,0,0) explicit SpinButton(Glib::RefPtr& adjustment, double climb_rate = 0.0, guint digits = 0) -#else - explicit SpinButton(Gtk::Adjustment& adjustment, double climb_rate = 0.0, guint digits = 0) -#endif : Gtk::SpinButton(adjustment, climb_rate, digits), _unit_menu(NULL), _unit_tracker(NULL), diff --git a/src/widgets/button.cpp b/src/widgets/button.cpp index 6ea8c1360..400cf2658 100644 --- a/src/widgets/button.cpp +++ b/src/widgets/button.cpp @@ -23,15 +23,8 @@ #include static void sp_button_dispose(GObject *object); - -#if GTK_CHECK_VERSION(3, 0, 0) static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width); - static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height); -#else -static void sp_button_size_request(GtkWidget *widget, GtkRequisition *requisition); -#endif - static void sp_button_clicked(GtkButton *button); static void sp_button_perform_action(SPButton *button, gpointer data); static gint sp_button_process_event(SPButton *button, GdkEvent *event); @@ -50,12 +43,8 @@ static void sp_button_class_init(SPButtonClass *klass) GtkButtonClass *button_class = GTK_BUTTON_CLASS(klass); object_class->dispose = sp_button_dispose; -#if GTK_CHECK_VERSION(3, 0, 0) widget_class->get_preferred_width = sp_button_get_preferred_width; widget_class->get_preferred_height = sp_button_get_preferred_height; -#else - widget_class->size_request = sp_button_size_request; -#endif button_class->clicked = sp_button_clicked; } @@ -92,7 +81,6 @@ static void sp_button_dispose(GObject *object) (G_OBJECT_CLASS(sp_button_parent_class))->dispose(object); } -#if GTK_CHECK_VERSION(3, 0, 0) static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget)); @@ -136,23 +124,6 @@ static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_heig *minimal_height += MAX(2, padding.top + padding.bottom + border.top + border.bottom); *natural_height += MAX(2, padding.top + padding.bottom + border.top + border.bottom); } -#else -static void sp_button_size_request(GtkWidget *widget, GtkRequisition *requisition) -{ - GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget)); - GtkStyle *style = gtk_widget_get_style(widget); - - if (child) { - gtk_widget_size_request(GTK_WIDGET(child), requisition); - } else { - requisition->width = 0; - requisition->height = 0; - } - - requisition->width += 2 + 2 * MAX(2, style->xthickness); - requisition->height += 2 + 2 * MAX(2, style->ythickness); -} -#endif static void sp_button_clicked(GtkButton *button) { diff --git a/src/widgets/eek-preview.cpp b/src/widgets/eek-preview.cpp index 9951a8957..5f1997672 100644 --- a/src/widgets/eek-preview.cpp +++ b/src/widgets/eek-preview.cpp @@ -194,7 +194,6 @@ static void eek_preview_size_request( GtkWidget* widget, GtkRequisition* req ) req->height = height; } -#if GTK_CHECK_VERSION(3,0,0) static void eek_preview_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkRequisition requisition; @@ -208,7 +207,6 @@ static void eek_preview_get_preferred_height(GtkWidget *widget, gint *minimal_he eek_preview_size_request(widget, &requisition); *minimal_height = *natural_height = requisition.height; } -#endif enum { CLICKED_SIGNAL, @@ -219,22 +217,6 @@ enum { static guint eek_preview_signals[LAST_SIGNAL] = { 0 }; -#if !GTK_CHECK_VERSION(3,0,0) -static gboolean eek_preview_expose_event( GtkWidget* widget, GdkEventExpose* /* event */ ) -{ - gboolean result = FALSE; - - if (gtk_widget_is_drawable(widget)) { - GdkWindow* window = gtk_widget_get_window(widget); - cairo_t* cr = gdk_cairo_create(window); - result = eek_preview_draw(widget, cr); - cairo_destroy(cr); - } - - return result; -} -#endif - static gboolean eek_preview_draw(GtkWidget *widget, cairo_t *cr) @@ -246,14 +228,6 @@ gboolean eek_preview_draw(GtkWidget *widget, GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); -#if !GTK_CHECK_VERSION(3,0,0) - GdkColor fg = { 0, - static_cast(priv->r), - static_cast(priv->g), - static_cast(priv->b) - }; -#endif - gint insetTop = 0, insetBottom = 0; gint insetLeft = 0, insetRight = 0; @@ -270,9 +244,7 @@ gboolean eek_preview_draw(GtkWidget *widget, insetLeft = insetRight = 1; } - -#if GTK_CHECK_VERSION(3,0,0) - GtkStyleContext *context = gtk_widget_get_style_context(widget); + auto context = gtk_widget_get_style_context(widget); gtk_render_frame(context, cr, @@ -283,22 +255,6 @@ gboolean eek_preview_draw(GtkWidget *widget, cr, 0, 0, allocation.width, allocation.height); -#else - GtkStyle *style = gtk_widget_get_style(widget); - GdkWindow *window = gtk_widget_get_window(widget); - - gtk_paint_flat_box( style, - window, - (GtkStateType)gtk_widget_get_state(widget), - GTK_SHADOW_NONE, - NULL, - widget, - NULL, - 0, 0, - allocation.width, allocation.height); - - gdk_colormap_alloc_color( gdk_colormap_get_system(), &fg, FALSE, TRUE ); -#endif // Border if (priv->border != BORDER_NONE) { @@ -377,27 +333,12 @@ gboolean eek_preview_draw(GtkWidget *widget, if (priv->linked & PREVIEW_LINK_IN) { -#if GTK_CHECK_VERSION(3,0,0) gtk_render_arrow(context, cr, G_PI, // Down-pointing arrow area.x, area.y, min(area.width, area.height) ); -#else - gtk_paint_arrow( style, - window, - gtk_widget_get_state (widget), - GTK_SHADOW_ETCHED_IN, - NULL, /* clip area. &area, */ - widget, /* may be NULL */ - NULL, /* detail */ - GTK_ARROW_DOWN, - FALSE, - area.x, area.y, - area.width, area.height - ); -#endif } if (priv->linked & PREVIEW_LINK_OUT) @@ -407,27 +348,12 @@ gboolean eek_preview_draw(GtkWidget *widget, otherArea.y = possible.y + (possible.height - otherArea.height); } -#if GTK_CHECK_VERSION(3,0,0) gtk_render_arrow(context, cr, G_PI, // Down-pointing arrow otherArea.x, otherArea.y, min(otherArea.width, otherArea.height) ); -#else - gtk_paint_arrow( style, - window, - gtk_widget_get_state (widget), - GTK_SHADOW_ETCHED_OUT, - NULL, /* clip area. &area, */ - widget, /* may be NULL */ - NULL, /* detail */ - GTK_ARROW_DOWN, - FALSE, - otherArea.x, otherArea.y, - otherArea.width, otherArea.height - ); -#endif } if (priv->linked & PREVIEW_LINK_OTHER) @@ -437,27 +363,12 @@ gboolean eek_preview_draw(GtkWidget *widget, otherArea.y = possible.y + (possible.height - otherArea.height) / 2; } -#if GTK_CHECK_VERSION(3,0,0) gtk_render_arrow(context, cr, 1.5*G_PI, // Left-pointing arrow otherArea.x, otherArea.y, min(otherArea.width, otherArea.height) ); -#else - gtk_paint_arrow( style, - window, - gtk_widget_get_state (widget), - GTK_SHADOW_ETCHED_OUT, - NULL, /* clip area. &area, */ - widget, /* may be NULL */ - NULL, /* detail */ - GTK_ARROW_LEFT, - FALSE, - otherArea.x, otherArea.y, - otherArea.width, otherArea.height - ); -#endif } @@ -469,22 +380,10 @@ gboolean eek_preview_draw(GtkWidget *widget, if ( otherArea.height < possible.height ) { otherArea.y = possible.y + (possible.height - otherArea.height) / 2; } -#if GTK_CHECK_VERSION(3,0,0) gtk_render_check(context, cr, otherArea.x, otherArea.y, otherArea.width, otherArea.height ); -#else - gtk_paint_check( style, - window, - gtk_widget_get_state (widget), - GTK_SHADOW_ETCHED_OUT, - NULL, - widget, - NULL, - otherArea.x, otherArea.y, - otherArea.width, otherArea.height ); -#endif } if (priv->linked & PREVIEW_STROKE) @@ -495,23 +394,11 @@ gboolean eek_preview_draw(GtkWidget *widget, if ( otherArea.height < possible.height ) { otherArea.y = possible.y + (possible.height - otherArea.height) / 2; } -#if GTK_CHECK_VERSION(3,0,0) // This should be a diamond too? gtk_render_check(context, cr, otherArea.x, otherArea.y, otherArea.width, otherArea.height ); -#else - gtk_paint_diamond( style, - window, - gtk_widget_get_state (widget), - GTK_SHADOW_ETCHED_OUT, - NULL, - widget, - NULL, - otherArea.x, otherArea.y, - otherArea.width, otherArea.height ); -#endif } } @@ -519,21 +406,10 @@ gboolean eek_preview_draw(GtkWidget *widget, if ( gtk_widget_has_focus(widget) ) { gtk_widget_get_allocation (widget, &allocation); -#if GTK_CHECK_VERSION(3,0,0) gtk_render_focus(context, cr, 0 + 1, 0 + 1, allocation.width - 2, allocation.height - 2 ); -#else - gtk_paint_focus( style, - window, - GTK_STATE_NORMAL, - NULL, /* GdkRectangle *area, */ - widget, - NULL, - 0 + 1, 0 + 1, - allocation.width - 2, allocation.height - 2 ); -#endif } return FALSE; @@ -547,11 +423,7 @@ static gboolean eek_preview_enter_cb( GtkWidget* widget, GdkEventCrossing* event EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview); priv->within = TRUE; -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_state_flags( widget, priv->hot ? GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_PRELIGHT, false ); -#else - gtk_widget_set_state( widget, priv->hot ? GTK_STATE_ACTIVE : GTK_STATE_PRELIGHT ); -#endif } return FALSE; @@ -564,11 +436,7 @@ static gboolean eek_preview_leave_cb( GtkWidget* widget, GdkEventCrossing* event EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview); priv->within = FALSE; -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_NORMAL, false ); -#else - gtk_widget_set_state( widget, GTK_STATE_NORMAL ); -#endif } return FALSE; @@ -593,11 +461,7 @@ static gboolean eek_preview_button_press_cb( GtkWidget* widget, GdkEventButton* if ( priv->within ) { -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_ACTIVE, false ); -#else - gtk_widget_set_state( widget, GTK_STATE_ACTIVE ); -#endif } } } @@ -612,11 +476,7 @@ static gboolean eek_preview_button_release_cb( GtkWidget* widget, GdkEventButton EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview); priv->hot = FALSE; -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_NORMAL, false ); -#else - gtk_widget_set_state( widget, GTK_STATE_NORMAL ); -#endif if ( priv->within && (event->button == PRIME_BUTTON_MAGIC_NUMBER || @@ -697,15 +557,9 @@ static void eek_preview_class_init( EekPreviewClass *klass ) parent_class = (GtkWidgetClass*)g_type_class_peek_parent( klass ); -#if GTK_CHECK_VERSION(3,0,0) widgetClass->get_preferred_width = eek_preview_get_preferred_width; widgetClass->get_preferred_height = eek_preview_get_preferred_height; widgetClass->draw = eek_preview_draw; -#else - widgetClass->size_request = eek_preview_size_request; - widgetClass->expose_event = eek_preview_expose_event; -#endif - widgetClass->button_press_event = eek_preview_button_press_cb; widgetClass->button_release_event = eek_preview_button_release_cb; widgetClass->enter_notify_event = eek_preview_enter_cb; diff --git a/src/widgets/ege-adjustment-action.cpp b/src/widgets/ege-adjustment-action.cpp index 272217aa4..8fef21741 100644 --- a/src/widgets/ege-adjustment-action.cpp +++ b/src/widgets/ege-adjustment-action.cpp @@ -813,12 +813,8 @@ static GtkWidget* create_tool_item( GtkAction* action ) if ( IS_EGE_ADJUSTMENT_ACTION(action) ) { EgeAdjustmentAction* act = EGE_ADJUSTMENT_ACTION( action ); GtkWidget* spinbutton = 0; -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget* hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget* hb = gtk_hbox_new( FALSE, 5 ); -#endif GValue value; memset( &value, 0, sizeof(value) ); g_value_init( &value, G_TYPE_STRING ); @@ -865,13 +861,7 @@ static GtkWidget* create_tool_item( GtkAction* action ) gtk_box_pack_start( GTK_BOX(hb), icon, FALSE, FALSE, 0 ); } else { GtkWidget* lbl = gtk_label_new( g_value_get_string( &value ) ? g_value_get_string( &value ) : "wwww" ); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(lbl, GTK_ALIGN_END); -#else - gtk_misc_set_alignment( GTK_MISC(lbl), 1.0, 0.5 ); -#endif - gtk_box_pack_start( GTK_BOX(hb), lbl, FALSE, FALSE, 0 ); } } diff --git a/src/widgets/ege-output-action.cpp b/src/widgets/ege-output-action.cpp index 5dece8e91..da29524a5 100644 --- a/src/widgets/ege-output-action.cpp +++ b/src/widgets/ege-output-action.cpp @@ -166,12 +166,8 @@ GtkWidget* create_tool_item( GtkAction* action ) if ( IS_EGE_OUTPUT_ACTION(action) ) { GValue value; -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget* hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget* hb = gtk_hbox_new( FALSE, 5 ); -#endif GtkWidget* lbl = 0; memset( &value, 0, sizeof(value) ); diff --git a/src/widgets/ege-select-one-action.cpp b/src/widgets/ege-select-one-action.cpp index 2e106154e..5555663e4 100644 --- a/src/widgets/ege-select-one-action.cpp +++ b/src/widgets/ege-select-one-action.cpp @@ -632,12 +632,8 @@ GtkWidget* create_tool_item( GtkAction* action ) item = GTK_WIDGET( gtk_tool_item_new() ); if ( act->private_data->appearanceMode == APPEARANCE_FULL ) { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget* holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(holder), FALSE); -#else - GtkWidget* holder = gtk_hbox_new( FALSE, 0 ); -#endif GtkRadioAction* ract = 0; GSList* group = 0; @@ -744,12 +740,8 @@ GtkWidget* create_tool_item( GtkAction* action ) gtk_container_add( GTK_CONTAINER(item), holder ); } else { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget* holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4); + auto holder = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_set_homogeneous(GTK_BOX(holder), FALSE); -#else - GtkWidget *holder = gtk_hbox_new( FALSE, 4 ); -#endif GtkEntry *entry = 0; GtkWidget *normal; @@ -818,14 +810,8 @@ GtkWidget* create_tool_item( GtkAction* action ) gtk_box_pack_start( GTK_BOX(holder), normal, FALSE, FALSE, 0 ); { -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(holder, GTK_ALIGN_START); gtk_container_add(GTK_CONTAINER(item), holder); -#else - GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0); - gtk_container_add( GTK_CONTAINER(align), holder); - gtk_container_add( GTK_CONTAINER(item), align ); -#endif } } @@ -861,13 +847,6 @@ void resync_active( EgeSelectOneAction* act, gint active, gboolean override ) if ( children && children->data ) { gpointer combodata = g_object_get_data( G_OBJECT(children->data), "ege-combo-box" ); -#if !GTK_CHECK_VERSION(3,0,0) - if (!combodata && GTK_IS_ALIGNMENT(children->data)) { - GList *other = gtk_container_get_children( GTK_CONTAINER(children->data) ); - combodata = g_object_get_data( G_OBJECT(other->data), "ege-combo-box" ); - } -#endif - if ( GTK_IS_COMBO_BOX(combodata) ) { GtkComboBox* combo = GTK_COMBO_BOX(combodata); if ((active == -1) && (gtk_combo_box_get_has_entry(combo))) { @@ -925,13 +904,6 @@ void resync_sensitive( EgeSelectOneAction* act ) if ( children && children->data ) { gpointer combodata = g_object_get_data( G_OBJECT(children->data), "ege-combo-box" ); -#if !GTK_CHECK_VERSION(3,0,0) - if (!combodata && GTK_IS_ALIGNMENT(children->data)) { - GList *other = gtk_container_get_children( GTK_CONTAINER(children->data) ); - combodata = g_object_get_data( G_OBJECT(other->data), "ege-combo-box" ); - } -#endif - if ( GTK_IS_COMBO_BOX(combodata) ) { /* Not implemented */ } else if ( GTK_IS_BOX(children->data) ) { diff --git a/src/widgets/font-selector.cpp b/src/widgets/font-selector.cpp index aefcb2e81..54b693ce0 100644 --- a/src/widgets/font-selector.cpp +++ b/src/widgets/font-selector.cpp @@ -36,11 +36,7 @@ struct SPFontSelector { -#if GTK_CHECK_VERSION(3,0,0) GtkBox hbox; -#else - GtkHBox hbox; -#endif unsigned int block_emit : 1; @@ -61,11 +57,7 @@ struct SPFontSelector struct SPFontSelectorClass { -#if GTK_CHECK_VERSION(3,0,0) GtkBoxClass parent_class; -#else - GtkHBoxClass parent_class; -#endif void (* font_set) (SPFontSelector *fsel, gchar *fontspec); }; @@ -91,11 +83,7 @@ static void sp_font_selector_set_sizes( SPFontSelector *fsel ); static guint fs_signals[LAST_SIGNAL] = { 0 }; -#if GTK_CHECK_VERSION(3,0,0) G_DEFINE_TYPE(SPFontSelector, sp_font_selector, GTK_TYPE_BOX); -#else -G_DEFINE_TYPE(SPFontSelector, sp_font_selector, GTK_TYPE_HBOX); -#endif static void sp_font_selector_class_init(SPFontSelectorClass *c) { @@ -160,8 +148,7 @@ static void sp_font_selector_init(SPFontSelector *fsel) /* Muck with style, see text-toolbar.cpp */ gtk_widget_set_name( GTK_WIDGET(fsel->family_treeview), "font_selector_family" ); -#if GTK_CHECK_VERSION(3,0,0) - GtkCssProvider *css_provider = gtk_css_provider_new(); + auto css_provider = gtk_css_provider_new(); gtk_css_provider_load_from_data(css_provider, "#font_selector_family {\n" " -GtkWidget-wide-separators: true;\n" @@ -169,14 +156,10 @@ static void sp_font_selector_init(SPFontSelector *fsel) "}\n", -1, NULL); - GdkScreen *screen = gdk_screen_get_default(); + auto screen = gdk_screen_get_default(); gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); -#else - gtk_rc_parse_string ( - "widget \"*font_selector_family\" style \"fontfamily-separator-style\""); -#endif Inkscape::FontLister* fontlister = Inkscape::FontLister::get_instance(); Glib::RefPtr store = fontlister->get_font_list(); @@ -195,12 +178,8 @@ static void sp_font_selector_init(SPFontSelector *fsel) gtk_widget_show(f); gtk_box_pack_start(GTK_BOX (fsel), f, TRUE, TRUE, 0); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); + auto vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); gtk_box_set_homogeneous(GTK_BOX(vb), FALSE); -#else - GtkWidget *vb = gtk_vbox_new(FALSE, 4); -#endif gtk_widget_show(vb); gtk_container_set_border_width(GTK_CONTAINER (vb), 4); gtk_container_add(GTK_CONTAINER(f), vb); @@ -235,12 +214,8 @@ static void sp_font_selector_init(SPFontSelector *fsel) selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(fsel->style_treeview)); g_signal_connect (G_OBJECT(selection), "changed", G_CALLBACK (sp_font_selector_style_select_row), fsel); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, 4); -#endif gtk_widget_show(hb); gtk_box_pack_start(GTK_BOX(vb), hb, FALSE, FALSE, 0); diff --git a/src/widgets/gradient-image.cpp b/src/widgets/gradient-image.cpp index 6901b8549..dff564feb 100644 --- a/src/widgets/gradient-image.cpp +++ b/src/widgets/gradient-image.cpp @@ -21,7 +21,6 @@ static void sp_gradient_image_size_request (GtkWidget *widget, GtkRequisition *requisition); -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_image_destroy(GtkWidget *object); static void sp_gradient_image_get_preferred_width(GtkWidget *widget, gint *minimal_width, @@ -30,11 +29,6 @@ static void sp_gradient_image_get_preferred_width(GtkWidget *widget, static void sp_gradient_image_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height); -#else -static void sp_gradient_image_destroy(GtkObject *object); -static gboolean sp_gradient_image_expose(GtkWidget *widget, GdkEventExpose *event); -#endif - static gboolean sp_gradient_image_draw(GtkWidget *widget, cairo_t *cr); static void sp_gradient_image_gradient_release (SPObject *, SPGradientImage *im); static void sp_gradient_image_gradient_modified (SPObject *, guint flags, SPGradientImage *im); @@ -46,18 +40,10 @@ static void sp_gradient_image_class_init(SPGradientImageClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); -#if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = sp_gradient_image_get_preferred_width; widget_class->get_preferred_height = sp_gradient_image_get_preferred_height; widget_class->draw = sp_gradient_image_draw; widget_class->destroy = sp_gradient_image_destroy; -#else - GtkObjectClass *object_class = GTK_OBJECT_CLASS(klass); - - object_class->destroy = sp_gradient_image_destroy; - widget_class->size_request = sp_gradient_image_size_request; - widget_class->expose_event = sp_gradient_image_expose; -#endif } static void @@ -71,11 +57,7 @@ sp_gradient_image_init (SPGradientImage *image) new (&image->modified_connection) sigc::connection(); } -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_image_destroy(GtkWidget *object) -#else -static void sp_gradient_image_destroy(GtkObject *object) -#endif { SPGradientImage *image = SP_GRADIENT_IMAGE (object); @@ -88,13 +70,8 @@ static void sp_gradient_image_destroy(GtkObject *object) image->release_connection.~connection(); image->modified_connection.~connection(); -#if GTK_CHECK_VERSION(3,0,0) if (GTK_WIDGET_CLASS(sp_gradient_image_parent_class)->destroy) GTK_WIDGET_CLASS(sp_gradient_image_parent_class)->destroy(object); -#else - if (GTK_OBJECT_CLASS(sp_gradient_image_parent_class)->destroy) - GTK_OBJECT_CLASS(sp_gradient_image_parent_class)->destroy(object); -#endif } static void sp_gradient_image_size_request(GtkWidget * /*widget*/, GtkRequisition *requisition) @@ -103,7 +80,6 @@ static void sp_gradient_image_size_request(GtkWidget * /*widget*/, GtkRequisitio requisition->height = 12; } -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_image_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkRequisition requisition; @@ -117,27 +93,6 @@ static void sp_gradient_image_get_preferred_height(GtkWidget *widget, gint *mini sp_gradient_image_size_request(widget, &requisition); *minimal_height = *natural_height = requisition.height; } -#endif - -#if !GTK_CHECK_VERSION(3,0,0) -static gboolean sp_gradient_image_expose(GtkWidget *widget, GdkEventExpose *event) -{ - gboolean result = TRUE; - if(gtk_widget_is_drawable(widget)) { - cairo_t *ct = gdk_cairo_create(gtk_widget_get_window (widget)); - cairo_rectangle(ct, event->area.x, event->area.y, - event->area.width, event->area.height); - cairo_clip(ct); - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - cairo_translate(ct, allocation.x, allocation.y); - result = sp_gradient_image_draw(widget, ct); - cairo_destroy(ct); - } - - return result; -} -#endif static gboolean sp_gradient_image_draw(GtkWidget *widget, cairo_t *ct) { diff --git a/src/widgets/gradient-selector.cpp b/src/widgets/gradient-selector.cpp index 604ecd108..7d88499ab 100644 --- a/src/widgets/gradient-selector.cpp +++ b/src/widgets/gradient-selector.cpp @@ -60,11 +60,7 @@ static void sp_gradient_selector_delete_vector_clicked (GtkWidget *w, SPGradient static guint signals[LAST_SIGNAL] = {0}; -#if GTK_CHECK_VERSION(3,0,0) G_DEFINE_TYPE(SPGradientSelector, sp_gradient_selector, GTK_TYPE_BOX); -#else -G_DEFINE_TYPE(SPGradientSelector, sp_gradient_selector, GTK_TYPE_VBOX); -#endif static void sp_gradient_selector_class_init(SPGradientSelectorClass *klass) { @@ -116,9 +112,7 @@ static void sp_gradient_selector_init(SPGradientSelector *sel) sel->safelyInit = true; sel->blocked = false; -#if GTK_CHECK_VERSION(3,0,0) gtk_orientable_set_orientation(GTK_ORIENTABLE(sel), GTK_ORIENTATION_VERTICAL); -#endif new (&sel->nonsolid) std::vector(); new (&sel->swatch_widgets) std::vector(); @@ -180,13 +174,8 @@ static void sp_gradient_selector_init(SPGradientSelector *sel) /* Create box for buttons */ -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new( FALSE, 2 ); -#endif - //sel->nonsolid.push_back(hb); gtk_box_pack_start( GTK_BOX(sel), hb, FALSE, FALSE, 0 ); sel->add = gtk_button_new(); diff --git a/src/widgets/gradient-selector.h b/src/widgets/gradient-selector.h index e090d7cbd..6b5d4ca60 100644 --- a/src/widgets/gradient-selector.h +++ b/src/widgets/gradient-selector.h @@ -45,11 +45,7 @@ class TreeView; struct SPGradientSelector { -#if GTK_CHECK_VERSION(3,0,0) GtkBox vbox; -#else - GtkVBox vbox; -#endif enum SelectorMode { MODE_LINEAR, @@ -131,11 +127,7 @@ struct SPGradientSelector { }; struct SPGradientSelectorClass { -#if GTK_CHECK_VERSION(3,0,0) GtkBoxClass parent_class; -#else - GtkVBoxClass parent_class; -#endif void (* grabbed) (SPGradientSelector *sel); void (* dragged) (SPGradientSelector *sel); diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 97e65141f..ce571bb6f 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -66,11 +66,7 @@ enum { LAST_SIGNAL }; -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_vector_selector_destroy(GtkWidget *object); -#else -static void sp_gradient_vector_selector_destroy(GtkObject *object); -#endif static void sp_gvs_gradient_release(SPObject *obj, SPGradientVectorSelector *gvs); static void sp_gvs_defs_release(SPObject *defs, SPGradientVectorSelector *gvs); @@ -89,11 +85,7 @@ static win_data wd; static gint x = -1000, y = -1000, w = 0, h = 0; // impossible original values to make sure they are read from prefs static Glib::ustring const prefs_path = "/dialogs/gradienteditor/"; -#if GTK_CHECK_VERSION(3,0,0) G_DEFINE_TYPE(SPGradientVectorSelector, sp_gradient_vector_selector, GTK_TYPE_BOX); -#else -G_DEFINE_TYPE(SPGradientVectorSelector, sp_gradient_vector_selector, GTK_TYPE_VBOX); -#endif static void sp_gradient_vector_selector_class_init(SPGradientVectorSelectorClass *klass) { @@ -108,20 +100,13 @@ static void sp_gradient_vector_selector_class_init(SPGradientVectorSelectorClass G_TYPE_NONE, 1, G_TYPE_POINTER); -#if GTK_CHECK_VERSION(3,0,0) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); widget_class->destroy = sp_gradient_vector_selector_destroy; -#else - GtkObjectClass *object_class = GTK_OBJECT_CLASS(klass); - object_class->destroy = sp_gradient_vector_selector_destroy; -#endif } static void sp_gradient_vector_selector_init(SPGradientVectorSelector *gvs) { -#if GTK_CHECK_VERSION(3,0,0) gtk_orientable_set_orientation(GTK_ORIENTABLE(gvs), GTK_ORIENTATION_VERTICAL); -#endif gvs->idlabel = TRUE; @@ -140,11 +125,7 @@ static void sp_gradient_vector_selector_init(SPGradientVectorSelector *gvs) } -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_vector_selector_destroy(GtkWidget *object) -#else -static void sp_gradient_vector_selector_destroy(GtkObject *object) -#endif { SPGradientVectorSelector *gvs = SP_GRADIENT_VECTOR_SELECTOR(object); @@ -165,15 +146,9 @@ static void sp_gradient_vector_selector_destroy(GtkObject *object) gvs->defs_modified_connection.~connection(); gvs->tree_select_connection.~connection(); -#if GTK_CHECK_VERSION(3,0,0) if ((GTK_WIDGET_CLASS(sp_gradient_vector_selector_parent_class))->destroy) { (GTK_WIDGET_CLASS(sp_gradient_vector_selector_parent_class))->destroy(object); } -#else - if ((GTK_OBJECT_CLASS(sp_gradient_vector_selector_parent_class))->destroy) { - (GTK_OBJECT_CLASS(sp_gradient_vector_selector_parent_class))->destroy(object); - } -#endif } GtkWidget *sp_gradient_vector_selector_new(SPDocument *doc, SPGradient *gr) @@ -484,15 +459,8 @@ static GtkWidget *sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *st static void sp_gradient_vector_widget_load_gradient(GtkWidget *widget, SPGradient *gradient); static gint sp_gradient_vector_dialog_delete(GtkWidget *widget, GdkEvent *event, GtkWidget *dialog); - -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_vector_dialog_destroy(GtkWidget *object, gpointer data); static void sp_gradient_vector_widget_destroy(GtkWidget *object, gpointer data); -#else -static void sp_gradient_vector_dialog_destroy(GtkObject *object, gpointer data); -static void sp_gradient_vector_widget_destroy(GtkObject *object, gpointer data); -#endif - static void sp_gradient_vector_gradient_release(SPObject *obj, GtkWidget *widget); static void sp_gradient_vector_gradient_modified(SPObject *obj, guint flags, GtkWidget *widget); static void sp_gradient_vector_color_dragged(Inkscape::UI::SelectedColor *selected_color, GObject *object); @@ -845,12 +813,8 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s g_return_val_if_fail(gradient != NULL, NULL); g_return_val_if_fail(SP_IS_GRADIENT(gradient), NULL); -#if GTK_CHECK_VERSION(3,0,0) vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, PAD); gtk_box_set_homogeneous(GTK_BOX(vb), FALSE); -#else - vb = gtk_vbox_new(FALSE, PAD); -#endif g_signal_connect(G_OBJECT(vb), "destroy", G_CALLBACK(sp_gradient_vector_widget_destroy), NULL); w = sp_gradient_image_new(gradient); @@ -883,12 +847,8 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s g_signal_connect(G_OBJECT(combo_box), "changed", G_CALLBACK(sp_grad_edit_combo_box_changed), vb); /* Add and Remove buttons */ -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, 1); -#endif // TRANSLATORS: "Stop" means: a "phase" of a gradient GtkWidget *b = gtk_button_new_with_label(_("Add stop")); gtk_widget_show(b); @@ -905,21 +865,12 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s gtk_box_pack_start(GTK_BOX(vb),hb, FALSE, FALSE, AUX_BETWEEN_BUTTON_GROUPS); /* Offset Slider and stuff */ -#if GTK_CHECK_VERSION(3,0,0) hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - hb = gtk_hbox_new(FALSE, 0); -#endif /* Label */ GtkWidget *l = gtk_label_new(C_("Gradient","Offset:")); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(l, GTK_ALIGN_END); -#else - gtk_misc_set_alignment(GTK_MISC(l), 1.0, 0.5); -#endif gtk_box_pack_start(GTK_BOX(hb),l, FALSE, FALSE, AUX_BETWEEN_BUTTON_GROUPS); gtk_widget_show(l); @@ -937,11 +888,7 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s gtk_adjustment_set_value(Offset_adj, stop->offset); /* Slider */ -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *slider = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, Offset_adj); -#else - GtkWidget *slider = gtk_hscale_new(Offset_adj); -#endif + auto slider = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, Offset_adj); gtk_scale_set_draw_value( GTK_SCALE(slider), FALSE ); gtk_widget_show(slider); gtk_box_pack_start(GTK_BOX(hb),slider, TRUE, TRUE, AUX_BETWEEN_BUTTON_GROUPS); @@ -1179,11 +1126,7 @@ static void sp_gradient_vector_widget_load_gradient(GtkWidget *widget, SPGradien blocked = FALSE; } -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_vector_dialog_destroy(GtkWidget * /*object*/, gpointer /*data*/) -#else -static void sp_gradient_vector_dialog_destroy(GtkObject * /*object*/, gpointer /*data*/) -#endif { GObject *obj = G_OBJECT(dlg); assert(obj != NULL); @@ -1234,11 +1177,7 @@ static gboolean sp_gradient_vector_dialog_delete(GtkWidget */*widget*/, GdkEvent } /* Widget destroy handler */ -#if GTK_CHECK_VERSION(3,0,0) static void sp_gradient_vector_widget_destroy(GtkWidget *object, gpointer /*data*/) -#else -static void sp_gradient_vector_widget_destroy(GtkObject *object, gpointer /*data*/) -#endif { SPObject *gradient = SP_OBJECT(g_object_get_data(G_OBJECT(object), "gradient")); diff --git a/src/widgets/gradient-vector.h b/src/widgets/gradient-vector.h index 5ae90b28f..b51b276b9 100644 --- a/src/widgets/gradient-vector.h +++ b/src/widgets/gradient-vector.h @@ -35,11 +35,7 @@ class SPGradient; class SPStop; struct SPGradientVectorSelector { -#if GTK_CHECK_VERSION(3,0,0) GtkBox vbox; -#else - GtkVBox vbox; -#endif guint idlabel : 1; @@ -61,11 +57,7 @@ struct SPGradientVectorSelector { }; struct SPGradientVectorSelectorClass { -#if GTK_CHECK_VERSION(3,0,0) GtkBoxClass parent_class; -#else - GtkVBoxClass parent_class; -#endif void (* vector_set) (SPGradientVectorSelector *gvs, SPGradient *gr); }; diff --git a/src/widgets/icon.cpp b/src/widgets/icon.cpp index f2031fe51..38b4f2897 100644 --- a/src/widgets/icon.cpp +++ b/src/widgets/icon.cpp @@ -64,10 +64,6 @@ struct IconImpl { static void sizeAllocate(GtkWidget *widget, GtkAllocation *allocation); static gboolean draw(GtkWidget *widget, cairo_t *cr); -#if !GTK_CHECK_VERSION(3,0,0) - static gboolean expose(GtkWidget *widget, GdkEventExpose *event); -#endif - static void screenChanged( GtkWidget *widget, GdkScreen *previous_screen ); static void styleSet( GtkWidget *widget, GtkStyle *previous_style ); static void themeChanged( SPIcon *icon ); @@ -149,14 +145,9 @@ sp_icon_class_init(SPIconClass *klass) object_class->dispose = IconImpl::dispose; -#if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = IconImpl::getPreferredWidth; widget_class->get_preferred_height = IconImpl::getPreferredHeight; widget_class->draw = IconImpl::draw; -#else - widget_class->size_request = IconImpl::sizeRequest; - widget_class->expose_event = IconImpl::expose; -#endif widget_class->size_allocate = IconImpl::sizeAllocate; widget_class->screen_changed = IconImpl::screenChanged; widget_class->style_set = IconImpl::styleSet; @@ -244,37 +235,15 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr) bool unref_image = false; /* copied from the expose function of GtkImage */ -#if GTK_CHECK_VERSION(3,0,0) if (gtk_widget_get_state_flags (GTK_WIDGET(icon)) != GTK_STATE_FLAG_NORMAL && image) { -#else - if (gtk_widget_get_state (GTK_WIDGET(icon)) != GTK_STATE_NORMAL && image) { - std::cerr << "IconImpl::draw: Ooops! It is called in GTK2" << std::endl; -#endif std::cerr << "IconImpl::draw: No image, creating fallback" << std::endl; -#if GTK_CHECK_VERSION(3,0,0) - // image = gtk_render_icon_pixbuf(gtk_widget_get_style_context(widget), - // source, - // (GtkIconSize)-1); - - // gtk_render_icon_pixbuf deprecated, replaced by: GtkIconTheme *icon_theme = gtk_icon_theme_get_default(); image = gtk_icon_theme_load_icon (icon_theme, "gtk-image", 32, (GtkIconLookupFlags)0, NULL); -#else - GtkIconSource *source = gtk_icon_source_new(); - gtk_icon_source_set_pixbuf(source, icon->pb); - gtk_icon_source_set_size(source, GTK_ICON_SIZE_SMALL_TOOLBAR); // note: this is boilerplate and not used - gtk_icon_source_set_size_wildcarded(source, FALSE); - image = gtk_style_render_icon(gtk_widget_get_style(widget), source, - gtk_widget_get_direction(widget), - (GtkStateType) gtk_widget_get_state(widget), - (GtkIconSize)-1, widget, "gtk-image"); - gtk_icon_source_free(source); -#endif unref_image = true; } @@ -283,12 +252,7 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr) GtkAllocation allocation; GtkRequisition requisition; gtk_widget_get_allocation(widget, &allocation); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_get_preferred_size(widget, &requisition, NULL); -#else - gtk_widget_get_requisition(widget, &requisition); -#endif int x = floor(allocation.x + ((allocation.width - requisition.width) * 0.5)); int y = floor(allocation.y + ((allocation.height - requisition.height) * 0.5)); @@ -308,21 +272,6 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr) return TRUE; } -#if !GTK_CHECK_VERSION(3,0,0) -gboolean IconImpl::expose(GtkWidget *widget, GdkEventExpose * /*event*/) -{ - gboolean result = TRUE; - - if (gtk_widget_is_drawable(widget)) { - cairo_t * cr = gdk_cairo_create(gtk_widget_get_window(widget)); - result = draw(widget, cr); - cairo_destroy(cr); - } - - return result; -} -#endif - // PUBLIC CALL: void sp_icon_fetch_pixbuf( SPIcon *icon ) { diff --git a/src/widgets/ink-action.cpp b/src/widgets/ink-action.cpp index ace99d9aa..52999dcce 100644 --- a/src/widgets/ink-action.cpp +++ b/src/widgets/ink-action.cpp @@ -2,18 +2,12 @@ #include "icon-size.h" #include - +#include "widgets/image-menu-item.h" #include "widgets/ink-action.h" - #include "widgets/button.h" #include -#if GTK_CHECK_VERSION(3,0,0) - // Fork of gtk-imagemenuitem to continue support - #include "widgets/image-menu-item.h" - -#endif static void ink_action_finalize( GObject* obj ); static void ink_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec ); @@ -165,12 +159,7 @@ static GtkWidget* ink_action_create_menu_item( GtkAction* action ) if ( act->private_data->iconId ) { gchar* label = 0; g_object_get( G_OBJECT(act), "label", &label, NULL ); - -#if GTK_CHECK_VERSION(3,0,0) item = image_menu_item_new_with_mnemonic( label ); -#else - item = gtk_image_menu_item_new_with_mnemonic( label ); -#endif GtkWidget* child = sp_icon_new( Inkscape::ICON_SIZE_MENU, act->private_data->iconId ); // TODO this work-around is until SPIcon will live properly inside of a popup menu @@ -185,12 +174,7 @@ static GtkWidget* ink_action_create_menu_item( GtkAction* action ) } } gtk_widget_show_all( child ); - -#if GTK_CHECK_VERSION(3,0,0) image_menu_item_set_image( IMAGE_MENU_ITEM(item), child ); -#else - gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(item), child ); -#endif g_free( label ); label = 0; @@ -393,15 +377,9 @@ static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action ) if ( act->private_data->iconId ) { GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId ); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(child, FALSE); gtk_widget_set_vexpand(child, FALSE); gtk_tool_button_set_icon_widget(button, child); -#else - GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 ); - gtk_container_add( GTK_CONTAINER(align), child ); - gtk_tool_button_set_icon_widget( button, align ); -#endif } else { gchar *label = 0; g_object_get( G_OBJECT(action), "short_label", &label, NULL ); @@ -430,18 +408,10 @@ static void ink_toggle_action_update_icon( InkToggleAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(proxies->data); GtkWidget* child = sp_icon_new( action->private_data->iconSize, action->private_data->iconId ); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(child, FALSE); gtk_widget_set_vexpand(child, FALSE); gtk_widget_show_all(child); gtk_tool_button_set_icon_widget(button, child); -#else - GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 ); - gtk_container_add( GTK_CONTAINER(align), child ); - gtk_widget_show_all( align ); - gtk_tool_button_set_icon_widget( button, align ); -#endif } } @@ -610,16 +580,9 @@ static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(item); GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId ); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_hexpand(child, FALSE); gtk_widget_set_vexpand(child, FALSE); gtk_tool_button_set_icon_widget(button, child); -#else - GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 ); - gtk_container_add( GTK_CONTAINER(align), child ); - gtk_tool_button_set_icon_widget( button, align ); -#endif } else { // For now trigger a warning but don't do anything else GtkToolButton* button = GTK_TOOL_BUTTON(item); diff --git a/src/widgets/ink-comboboxentry-action.cpp b/src/widgets/ink-comboboxentry-action.cpp index ec5e26cf5..2fecb06a4 100644 --- a/src/widgets/ink-comboboxentry-action.cpp +++ b/src/widgets/ink-comboboxentry-action.cpp @@ -371,16 +371,10 @@ GtkWidget* create_tool_item( GtkAction* action ) g_free( combobox_name ); { -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(comboBoxEntry, GTK_ALIGN_START); gtk_widget_set_hexpand(comboBoxEntry, FALSE); gtk_widget_set_vexpand(comboBoxEntry, FALSE); gtk_container_add(GTK_CONTAINER(item), comboBoxEntry); -#else - GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0); - gtk_container_add( GTK_CONTAINER(align), comboBoxEntry ); - gtk_container_add( GTK_CONTAINER(item), align ); -#endif } ink_comboboxentry_action->combobox = GTK_COMBO_BOX (comboBoxEntry); @@ -414,11 +408,7 @@ GtkWidget* create_tool_item( GtkAction* action ) // Optionally widen the combobox width... which widens the drop-down list in list mode. if( ink_comboboxentry_action->extra_width > 0 ) { GtkRequisition req; -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_get_preferred_size(GTK_WIDGET(ink_comboboxentry_action->combobox), &req, NULL); -#else - gtk_widget_size_request( GTK_WIDGET( ink_comboboxentry_action->combobox ), &req ); -#endif gtk_widget_set_size_request( GTK_WIDGET( ink_comboboxentry_action->combobox ), req.width + ink_comboboxentry_action->extra_width, -1 ); } @@ -635,11 +625,7 @@ void ink_comboboxentry_action_set_extra_width( Ink_ComboBoxEntry_Action* action, // Widget may not have been created.... if( action->combobox ) { GtkRequisition req; -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_get_preferred_size(GTK_WIDGET(action->combobox), &req, NULL); -#else - gtk_widget_size_request( GTK_WIDGET( action->combobox ), &req ); -#endif gtk_widget_set_size_request( GTK_WIDGET( action->combobox ), req.width + action->extra_width, -1 ); } } diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 58a178aec..a554f3cde 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -134,11 +134,7 @@ static SPGradientSelector *getGradientFromData(SPPaintSelector const *psel) return grad; } -#if GTK_CHECK_VERSION(3,0,0) G_DEFINE_TYPE(SPPaintSelector, sp_paint_selector, GTK_TYPE_BOX); -#else -G_DEFINE_TYPE(SPPaintSelector, sp_paint_selector, GTK_TYPE_VBOX); -#endif static void sp_paint_selector_class_init(SPPaintSelectorClass *klass) @@ -197,19 +193,13 @@ sp_paint_selector_class_init(SPPaintSelectorClass *klass) static void sp_paint_selector_init(SPPaintSelector *psel) { -#if GTK_CHECK_VERSION(3,0,0) gtk_orientable_set_orientation(GTK_ORIENTABLE(psel), GTK_ORIENTATION_VERTICAL); -#endif psel->mode = static_cast(-1); // huh? do you mean 0xff? -- I think this means "not in the enum" /* Paint style button box */ -#if GTK_CHECK_VERSION(3,0,0) psel->style = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(psel->style), FALSE); -#else - psel->style = gtk_hbox_new(FALSE, 0); -#endif gtk_widget_show(psel->style); gtk_container_set_border_width(GTK_CONTAINER(psel->style), 4); gtk_box_pack_start(GTK_BOX(psel), psel->style, FALSE, FALSE, 0); @@ -236,12 +226,8 @@ sp_paint_selector_init(SPPaintSelector *psel) /* Fillrule */ { -#if GTK_CHECK_VERSION(3,0,0) - psel->fillrulebox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_set_homogeneous(GTK_BOX(psel->fillrulebox), FALSE); -#else - psel->fillrulebox = gtk_hbox_new(FALSE, 0); -#endif + psel->fillrulebox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_box_set_homogeneous(GTK_BOX(psel->fillrulebox), FALSE); gtk_box_pack_end(GTK_BOX(psel->style), psel->fillrulebox, FALSE, FALSE, 0); GtkWidget *w; @@ -270,22 +256,14 @@ sp_paint_selector_init(SPPaintSelector *psel) /* Frame */ psel->label = gtk_label_new(""); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *lbbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4); + auto lbbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_set_homogeneous(GTK_BOX(lbbox), FALSE); -#else - GtkWidget *lbbox = gtk_hbox_new(FALSE, 4); -#endif gtk_widget_show(psel->label); gtk_box_pack_start(GTK_BOX(lbbox), psel->label, false, false, 4); gtk_box_pack_start(GTK_BOX(psel), lbbox, false, false, 4); -#if GTK_CHECK_VERSION(3,0,0) psel->frame = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); gtk_box_set_homogeneous(GTK_BOX(psel->frame), FALSE); -#else - psel->frame = gtk_vbox_new(FALSE, 4); -#endif gtk_widget_show(psel->frame); //gtk_container_set_border_width(GTK_CONTAINER(psel->frame), 0); gtk_box_pack_start(GTK_BOX(psel), psel->frame, TRUE, TRUE, 0); @@ -700,12 +678,8 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec sp_paint_selector_clear_frame(psel); /* Create new color selector */ /* Create vbox */ -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); - gtk_box_set_homogeneous(GTK_BOX(vb), FALSE); -#else - GtkWidget *vb = gtk_vbox_new(FALSE, 4); -#endif + auto vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); + gtk_box_set_homogeneous(GTK_BOX(vb), FALSE); gtk_widget_show(vb); /* Color selector */ @@ -1046,21 +1020,13 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel sp_paint_selector_clear_frame(psel); /* Create vbox */ -#if GTK_CHECK_VERSION(3,0,0) tbl = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); gtk_box_set_homogeneous(GTK_BOX(tbl), FALSE); -#else - tbl = gtk_vbox_new(FALSE, 4); -#endif gtk_widget_show(tbl); { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, 1); -#endif /** * Create a combo_box and store with 4 columns, @@ -1088,13 +1054,9 @@ static void sp_paint_selector_set_mode_pattern(SPPaintSelector *psel, SPPaintSel } { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, 0); -#endif - GtkWidget *l = gtk_label_new(NULL); + auto l = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(l), _("Use the Node tool to adjust position, scale, and rotation of the pattern on canvas. Use Object > Pattern > Objects to Pattern to create a new pattern from selection.")); gtk_label_set_line_wrap(GTK_LABEL(l), true); gtk_widget_set_size_request(l, 180, -1); diff --git a/src/widgets/paint-selector.h b/src/widgets/paint-selector.h index 23c2dd456..dde14b6a6 100644 --- a/src/widgets/paint-selector.h +++ b/src/widgets/paint-selector.h @@ -40,11 +40,7 @@ class SPStyle; * Generic paint selector widget. */ struct SPPaintSelector { -#if GTK_CHECK_VERSION(3,0,0) GtkBox vbox; -#else - GtkVBox vbox; -#endif enum Mode { MODE_EMPTY, @@ -130,11 +126,7 @@ enum {COMBO_COL_LABEL=0, COMBO_COL_STOCK=1, COMBO_COL_PATTERN=2, COMBO_COL_SEP=3 /// The SPPaintSelector vtable struct SPPaintSelectorClass { -#if GTK_CHECK_VERSION(3,0,0) GtkBoxClass parent_class; -#else - GtkVBoxClass parent_class; -#endif void (* mode_changed) (SPPaintSelector *psel, SPPaintSelector::Mode mode); diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp index 9851b0606..7dfa18f49 100644 --- a/src/widgets/select-toolbar.cpp +++ b/src/widgets/select-toolbar.cpp @@ -415,12 +415,8 @@ void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb g_object_set_data(G_OBJECT(spw), "dtw", desktop->getCanvas()); // The vb frame holds all other widgets and is used to set sensitivity depending on selection state. -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + auto vb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(vb), FALSE); -#else - GtkWidget *vb = gtk_hbox_new(FALSE, 0); -#endif gtk_widget_show(vb); gtk_container_add(GTK_CONTAINER(spw), vb); diff --git a/src/widgets/sp-color-selector.cpp b/src/widgets/sp-color-selector.cpp index 93eaaee8b..1d448b67b 100644 --- a/src/widgets/sp-color-selector.cpp +++ b/src/widgets/sp-color-selector.cpp @@ -32,11 +32,7 @@ static guint csel_signals[LAST_SIGNAL] = {0}; double ColorSelector::_epsilon = 1e-4; -#if GTK_CHECK_VERSION(3,0,0) G_DEFINE_TYPE(SPColorSelector, sp_color_selector, GTK_TYPE_BOX); -#else -G_DEFINE_TYPE(SPColorSelector, sp_color_selector, GTK_TYPE_VBOX); -#endif void sp_color_selector_class_init( SPColorSelectorClass *klass ) { @@ -86,9 +82,7 @@ void sp_color_selector_class_init( SPColorSelectorClass *klass ) void sp_color_selector_init( SPColorSelector *csel ) { -#if GTK_CHECK_VERSION(3,0,0) gtk_orientable_set_orientation(GTK_ORIENTABLE(csel), GTK_ORIENTATION_VERTICAL); -#endif if ( csel->base ) { diff --git a/src/widgets/sp-color-selector.h b/src/widgets/sp-color-selector.h index 75cb79b00..14a9fccdf 100644 --- a/src/widgets/sp-color-selector.h +++ b/src/widgets/sp-color-selector.h @@ -64,21 +64,12 @@ private: #define SP_COLOR_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SP_TYPE_COLOR_SELECTOR, SPColorSelectorClass)) struct SPColorSelector { -#if GTK_CHECK_VERSION(3,0,0) GtkBox vbox; -#else - GtkVBox vbox; -#endif - ColorSelector* base; }; struct SPColorSelectorClass { -#if GTK_CHECK_VERSION(3,0,0) GtkBoxClass parent_class; -#else - GtkVBoxClass parent_class; -#endif const gchar **name; guint submode_count; diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp index 5ab6b1bb5..0a4e722a5 100644 --- a/src/widgets/sp-widget.cpp +++ b/src/widgets/sp-widget.cpp @@ -41,7 +41,6 @@ public: static void show(GtkWidget *widget); static void hide(GtkWidget *widget); -#if GTK_CHECK_VERSION(3,0,0) static void getPreferredWidth(GtkWidget *widget, gint *minimal_width, gint *natural_width); @@ -50,10 +49,6 @@ public: gint *minimal_height, gint *natural_height); static gboolean draw(GtkWidget *widget, cairo_t *cr); -#else - static void sizeRequest(GtkWidget *widget, GtkRequisition *requisition); - static gboolean expose(GtkWidget *widget, GdkEventExpose *event); -#endif static void sizeAllocate(GtkWidget *widget, GtkAllocation *allocation); static void modifySelectionCB(Selection *selection, guint flags, SPWidget *spw); @@ -120,14 +115,9 @@ sp_widget_class_init(SPWidgetClass *klass) widget_class->show = SPWidgetImpl::show; widget_class->hide = SPWidgetImpl::hide; -#if GTK_CHECK_VERSION(3,0,0) widget_class->get_preferred_width = SPWidgetImpl::getPreferredWidth; widget_class->get_preferred_height = SPWidgetImpl::getPreferredHeight; widget_class->draw = SPWidgetImpl::draw; -#else - widget_class->size_request = SPWidgetImpl::sizeRequest; - widget_class->expose_event = SPWidgetImpl::expose; -#endif widget_class->size_allocate = SPWidgetImpl::sizeAllocate; } @@ -207,27 +197,18 @@ void SPWidgetImpl::hide(GtkWidget *widget) } } -#if GTK_CHECK_VERSION(3,0,0) gboolean SPWidgetImpl::draw(GtkWidget *widget, cairo_t *cr) -#else -gboolean SPWidgetImpl::expose(GtkWidget *widget, GdkEventExpose *event) -#endif { GtkBin *bin = GTK_BIN(widget); GtkWidget *child = gtk_bin_get_child(bin); if (child) { -#if GTK_CHECK_VERSION(3,0,0) gtk_container_propagate_draw(GTK_CONTAINER(widget), child, cr); -#else - gtk_container_propagate_expose(GTK_CONTAINER(widget), child, event); -#endif } return FALSE; } -#if GTK_CHECK_VERSION(3,0,0) void SPWidgetImpl::getPreferredWidth(GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkBin *bin = GTK_BIN(widget); @@ -247,17 +228,6 @@ void SPWidgetImpl::getPreferredHeight(GtkWidget *widget, gint *minimal_height, g gtk_widget_get_preferred_height(child, minimal_height, natural_height); } } -#else -void SPWidgetImpl::sizeRequest(GtkWidget *widget, GtkRequisition *requisition) -{ - GtkBin *bin = GTK_BIN(widget); - GtkWidget *child = gtk_bin_get_child(bin); - - if (child) { - gtk_widget_size_request(child, requisition); - } -} -#endif void SPWidgetImpl::sizeAllocate(GtkWidget *widget, GtkAllocation *allocation) { diff --git a/src/widgets/sp-xmlview-attr-list.cpp b/src/widgets/sp-xmlview-attr-list.cpp index a4c00db7c..8fe01a33d 100644 --- a/src/widgets/sp-xmlview-attr-list.cpp +++ b/src/widgets/sp-xmlview-attr-list.cpp @@ -20,11 +20,7 @@ #include "../xml/node-event-vector.h" #include "sp-xmlview-attr-list.h" -#if GTK_CHECK_VERSION(3,0,0) static void sp_xmlview_attr_list_destroy(GtkWidget * object); -#else -static void sp_xmlview_attr_list_destroy(GtkObject * object); -#endif static void event_attr_changed (Inkscape::XML::Node * repr, const gchar * name, const gchar * old_value, const gchar * new_value, bool is_interactive, gpointer data); @@ -87,13 +83,8 @@ G_DEFINE_TYPE(SPXMLViewAttrList, sp_xmlview_attr_list, GTK_TYPE_TREE_VIEW); void sp_xmlview_attr_list_class_init (SPXMLViewAttrListClass * klass) { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass); + auto widget_class = GTK_WIDGET_CLASS(klass); widget_class->destroy = sp_xmlview_attr_list_destroy; -#else - GtkObjectClass * object_class = GTK_OBJECT_CLASS(klass); - object_class->destroy = sp_xmlview_attr_list_destroy; -#endif g_signal_new("row-value-changed", G_TYPE_FROM_CLASS(klass), @@ -112,11 +103,7 @@ sp_xmlview_attr_list_init (SPXMLViewAttrList * list) list->repr = NULL; } -#if GTK_CHECK_VERSION(3,0,0) void sp_xmlview_attr_list_destroy(GtkWidget * object) -#else -void sp_xmlview_attr_list_destroy(GtkObject * object) -#endif { SPXMLViewAttrList * list; @@ -125,11 +112,7 @@ void sp_xmlview_attr_list_destroy(GtkObject * object) g_object_unref(list->store); sp_xmlview_attr_list_set_repr (list, NULL); -#if GTK_CHECK_VERSION(3,0,0) GTK_WIDGET_CLASS(sp_xmlview_attr_list_parent_class)->destroy (object); -#else - GTK_OBJECT_CLASS(sp_xmlview_attr_list_parent_class)->destroy (object); -#endif } void sp_xmlview_attr_list_select_row_by_key(SPXMLViewAttrList * list, const gchar *name) diff --git a/src/widgets/sp-xmlview-content.cpp b/src/widgets/sp-xmlview-content.cpp index a1d8475ba..6e59ba3cd 100644 --- a/src/widgets/sp-xmlview-content.cpp +++ b/src/widgets/sp-xmlview-content.cpp @@ -23,11 +23,7 @@ using Inkscape::DocumentUndo; -#if GTK_CHECK_VERSION(3,0,0) static void sp_xmlview_content_destroy(GtkWidget * object); -#else -static void sp_xmlview_content_destroy(GtkObject * object); -#endif void sp_xmlview_content_changed (GtkTextBuffer *tb, SPXMLViewContent *text); @@ -80,13 +76,8 @@ G_DEFINE_TYPE(SPXMLViewContent, sp_xmlview_content, GTK_TYPE_TEXT_VIEW); void sp_xmlview_content_class_init(SPXMLViewContentClass * klass) { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass); + auto widget_class = GTK_WIDGET_CLASS(klass); widget_class->destroy = sp_xmlview_content_destroy; -#else - GtkObjectClass * object_class = GTK_OBJECT_CLASS(klass); - object_class->destroy = sp_xmlview_content_destroy; -#endif } void @@ -96,21 +87,13 @@ sp_xmlview_content_init (SPXMLViewContent *text) text->blocked = FALSE; } -#if GTK_CHECK_VERSION(3,0,0) void sp_xmlview_content_destroy(GtkWidget * object) -#else -void sp_xmlview_content_destroy(GtkObject * object) -#endif { SPXMLViewContent * text = SP_XMLVIEW_CONTENT (object); sp_xmlview_content_set_repr (text, NULL); -#if GTK_CHECK_VERSION(3,0,0) GTK_WIDGET_CLASS (sp_xmlview_content_parent_class)->destroy (object); -#else - GTK_OBJECT_CLASS (sp_xmlview_content_parent_class)->destroy (object); -#endif } void diff --git a/src/widgets/sp-xmlview-tree.cpp b/src/widgets/sp-xmlview-tree.cpp index 5dff9adf3..131ac16bf 100644 --- a/src/widgets/sp-xmlview-tree.cpp +++ b/src/widgets/sp-xmlview-tree.cpp @@ -23,11 +23,7 @@ struct NodeData { enum { STORE_TEXT_COL = 0, STORE_DATA_COL, STORE_REPR_COL, STORE_N_COLS }; -#if GTK_CHECK_VERSION(3,0,0) static void sp_xmlview_tree_destroy(GtkWidget * object); -#else -static void sp_xmlview_tree_destroy(GtkObject * object); -#endif static NodeData * node_data_new (SPXMLViewTree * tree, GtkTreeIter * node, GtkTreeRowReference *rowref, Inkscape::XML::Node * repr); @@ -121,13 +117,8 @@ G_DEFINE_TYPE(SPXMLViewTree, sp_xmlview_tree, GTK_TYPE_TREE_VIEW); void sp_xmlview_tree_class_init(SPXMLViewTreeClass * klass) { -#if GTK_CHECK_VERSION(3,0,0) - GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass); + auto widget_class = GTK_WIDGET_CLASS(klass); widget_class->destroy = sp_xmlview_tree_destroy; -#else - GtkObjectClass * object_class = GTK_OBJECT_CLASS(klass); - object_class->destroy = sp_xmlview_tree_destroy; -#endif // Signal for when a tree drag and drop has completed g_signal_new ( "tree_move", @@ -148,22 +139,13 @@ sp_xmlview_tree_init (SPXMLViewTree * tree) tree->dndactive = FALSE; } - -#if GTK_CHECK_VERSION(3,0,0) void sp_xmlview_tree_destroy(GtkWidget * object) -#else -void sp_xmlview_tree_destroy(GtkObject * object) -#endif { SPXMLViewTree * tree = SP_XMLVIEW_TREE (object); sp_xmlview_tree_set_repr (tree, NULL); -#if GTK_CHECK_VERSION(3,0,0) GTK_WIDGET_CLASS(sp_xmlview_tree_parent_class)->destroy (object); -#else - GTK_OBJECT_CLASS(sp_xmlview_tree_parent_class)->destroy (object); -#endif } /* diff --git a/src/widgets/spw-utilities.cpp b/src/widgets/spw-utilities.cpp index 5500e1068..c0d4d9d58 100644 --- a/src/widgets/spw-utilities.cpp +++ b/src/widgets/spw-utilities.cpp @@ -19,12 +19,7 @@ #include #include - -#if GTK_CHECK_VERSION(3,0,0) #include -#else -#include -#endif #include "selection.h" @@ -36,11 +31,7 @@ * Creates a label widget with the given text, at the given col, row * position in the table. */ -#if GTK_CHECK_VERSION(3,0,0) Gtk::Label * spw_label(Gtk::Grid *table, const gchar *label_text, int col, int row, Gtk::Widget* target) -#else -Gtk::Label * spw_label(Gtk::Table *table, const gchar *label_text, int col, int row, Gtk::Widget* target) -#endif { Gtk::Label *label_widget = new Gtk::Label(); g_assert(label_widget != NULL); @@ -56,7 +47,6 @@ Gtk::Label * spw_label(Gtk::Table *table, const gchar *label_text, int col, int label_widget->set_alignment(1.0, 0.5); label_widget->show(); -#if GTK_CHECK_VERSION(3,0,0) label_widget->set_hexpand(); label_widget->set_halign(Gtk::ALIGN_FILL); label_widget->set_valign(Gtk::ALIGN_CENTER); @@ -70,9 +60,6 @@ Gtk::Label * spw_label(Gtk::Table *table, const gchar *label_text, int col, int #endif table->attach(*label_widget, col, row, 1, 1); -#else - table->attach(*label_widget, col, col+1, row, row+1, (Gtk::EXPAND | Gtk::FILL), static_cast(0), 4, 0); -#endif return label_widget; } @@ -84,16 +71,9 @@ spw_label_old(GtkWidget *table, const gchar *label_text, int col, int row) label_widget = gtk_label_new (label_text); g_assert(label_widget != NULL); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(label_widget, GTK_ALIGN_END); -#else - gtk_misc_set_alignment (GTK_MISC (label_widget), 1.0, 0.5); -#endif - gtk_widget_show (label_widget); -#if GTK_CHECK_VERSION(3,0,0) #if GTK_CHECK_VERSION(3,12,0) gtk_widget_set_margin_start(label_widget, 4); gtk_widget_set_margin_end(label_widget, 4); @@ -105,10 +85,6 @@ spw_label_old(GtkWidget *table, const gchar *label_text, int col, int row) gtk_widget_set_halign(label_widget, GTK_ALIGN_FILL); gtk_widget_set_valign(label_widget, GTK_ALIGN_CENTER); gtk_grid_attach(GTK_GRID(table), label_widget, col, row, 1, 1); -#else - gtk_table_attach(GTK_TABLE (table), label_widget, col, col+1, row, row+1, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 4, 0); -#endif return label_widget; } @@ -117,25 +93,16 @@ spw_label_old(GtkWidget *table, const gchar *label_text, int col, int row) * Creates a horizontal layout manager with 4-pixel spacing between children * and space for 'width' columns. */ -#if GTK_CHECK_VERSION(3,0,0) Gtk::HBox * spw_hbox(Gtk::Grid * table, int width, int col, int row) -#else -Gtk::HBox * spw_hbox(Gtk::Table * table, int width, int col, int row) -#endif { /* Create a new hbox with a 4-pixel spacing between children */ Gtk::HBox *hb = new Gtk::HBox(false, 4); g_assert(hb != NULL); hb->show(); - -#if GTK_CHECK_VERSION(3,0,0) hb->set_hexpand(); hb->set_halign(Gtk::ALIGN_FILL); hb->set_valign(Gtk::ALIGN_CENTER); table->attach(*hb, col, row, width, 1); -#else - table->attach(*hb, col, col+width, row, row+1, (Gtk::EXPAND | Gtk::FILL), static_cast(0), 0, 0); -#endif return hb; } @@ -177,37 +144,21 @@ spw_checkbutton(GtkWidget * dialog, GtkWidget * table, g_assert(table != NULL); GtkWidget *l = gtk_label_new (label); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(l, GTK_ALIGN_END); -#else - gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5); -#endif - gtk_widget_show (l); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(l, GTK_ALIGN_FILL); gtk_widget_set_hexpand(l, TRUE); gtk_widget_set_valign(l, GTK_ALIGN_CENTER); gtk_grid_attach(GTK_GRID(table), l, 0, row, 1, 1); -#else - gtk_table_attach (GTK_TABLE (table), l, 0, 1, row, row+1, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0); -#endif b = gtk_check_button_new (); gtk_widget_show (b); -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(b, GTK_ALIGN_FILL); gtk_widget_set_hexpand(b, TRUE); gtk_widget_set_valign(b, GTK_ALIGN_CENTER); gtk_grid_attach(GTK_GRID(table), b, 1, row, 1, 1); -#else - gtk_table_attach (GTK_TABLE (table), b, 1, 2, row, row+1, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0); -#endif g_object_set_data (G_OBJECT (b), "key", key); g_object_set_data (G_OBJECT (dialog), key, b); @@ -235,16 +186,10 @@ spw_dropdown(GtkWidget * dialog, GtkWidget * table, spw_label_old(table, label_text, 0, row); gtk_widget_show (selector); - -#if GTK_CHECK_VERSION(3,0,0) gtk_widget_set_halign(selector, GTK_ALIGN_FILL); gtk_widget_set_hexpand(selector, TRUE); gtk_widget_set_valign(selector, GTK_ALIGN_CENTER); gtk_grid_attach(GTK_GRID(table), selector, 1, row, 1, 1); -#else - gtk_table_attach (GTK_TABLE (table), selector, 1, 2, row, row+1, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)0, 0, 0); -#endif g_object_set_data (G_OBJECT (dialog), key, selector); return selector; @@ -255,8 +200,7 @@ sp_set_font_size_recursive (GtkWidget *w, gpointer font) { guint size = GPOINTER_TO_UINT (font); -#if GTK_CHECK_VERSION(3,0,0) - GtkCssProvider *css_provider = gtk_css_provider_new(); + auto css_provider = gtk_css_provider_new(); const double pt_size = size / static_cast(PANGO_SCALE); std::ostringstream css_data; @@ -268,25 +212,16 @@ sp_set_font_size_recursive (GtkWidget *w, gpointer font) css_data.str().c_str(), -1, NULL); - GtkStyleContext *style_context = gtk_widget_get_style_context(w); + auto style_context = gtk_widget_get_style_context(w); gtk_style_context_add_provider(style_context, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); -#else - PangoFontDescription* pan = pango_font_description_new (); - pango_font_description_set_size (pan, size); - gtk_widget_modify_font (w, pan); -#endif if (GTK_IS_CONTAINER(w)) { gtk_container_foreach (GTK_CONTAINER(w), (GtkCallback) sp_set_font_size_recursive, font); } -#if GTK_CHECK_VERSION(3,0,0) g_object_unref(css_provider); -#else - pango_font_description_free (pan); -#endif } void diff --git a/src/widgets/spw-utilities.h b/src/widgets/spw-utilities.h index 31f29e026..71b451631 100644 --- a/src/widgets/spw-utilities.h +++ b/src/widgets/spw-utilities.h @@ -20,25 +20,13 @@ namespace Gtk { class Label; - -#if GTK_CHECK_VERSION(3,0,0) class Grid; -#else - class Table; -#endif - class HBox; class Widget; } -#if GTK_CHECK_VERSION(3,0,0) Gtk::Label * spw_label(Gtk::Grid *table, gchar const *label_text, int col, int row, Gtk::Widget *target); Gtk::HBox * spw_hbox(Gtk::Grid *table, int width, int col, int row); -#else -Gtk::Label * spw_label(Gtk::Table *table, gchar const *label_text, int col, int row, Gtk::Widget *target); -Gtk::HBox * spw_hbox(Gtk::Table *table, int width, int col, int row); -#endif - GtkWidget * spw_label_old(GtkWidget *table, gchar const *label_text, int col, int row); GtkWidget * diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index 23acb74af..f256b466c 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -1562,8 +1562,7 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje g_object_set_data( holder, "TextFontFamilyAction", act ); // Change style of drop-down from menu to list -#if GTK_CHECK_VERSION(3,0,0) - GtkCssProvider *css_provider = gtk_css_provider_new(); + auto css_provider = gtk_css_provider_new(); gtk_css_provider_load_from_data(css_provider, "#TextFontFamilyAction_combobox {\n" " -GtkComboBox-appears-as-list: true;\n" @@ -1574,24 +1573,10 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje "}\n", -1, NULL); - GdkScreen *screen = gdk_screen_get_default(); + auto screen = gdk_screen_get_default(); gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); -#else - gtk_rc_parse_string ( - "style \"dropdown-as-list-style\"\n" - "{\n" - " GtkComboBox::appears-as-list = 1\n" - "}\n" - "widget \"*.TextFontFamilyAction_combobox\" style \"dropdown-as-list-style\"" - "style \"fontfamily-separator-style\"\n" - "{\n" - " GtkWidget::wide-separators = 1\n" - " GtkWidget::separator-height = 6\n" - "}\n" - "widget \"*gtk-combobox-popup-window.GtkScrolledWindow.GtkTreeView\" style \"fontfamily-separator-style\""); -#endif } /* Font size */ diff --git a/testfiles/CMakeLists.txt b/testfiles/CMakeLists.txt index ad022d21e..ea1febdd2 100644 --- a/testfiles/CMakeLists.txt +++ b/testfiles/CMakeLists.txt @@ -28,10 +28,6 @@ add_dependencies(unittest inkscape_version) set (_optional_unittest_libs ) -if (NOT "${WITH_EXT_GDL}") - list (APPEND _optional_unittest_libs "gdl_LIB") -endif() - target_link_libraries(unittest gmock_main -- cgit v1.2.3 From 1bd64804910f28ff16ea47e34baed41f22768fee Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Fri, 29 Jul 2016 14:35:20 +0100 Subject: ruler: Backport upstream patches (bzr r15023.2.9) --- src/widgets/ruler.cpp | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp index 92c2b611d..8b0a344f6 100644 --- a/src/widgets/ruler.cpp +++ b/src/widgets/ruler.cpp @@ -642,8 +642,14 @@ static gboolean sp_ruler_draw (GtkWidget *widget, cairo_t *cr) { - SPRuler *ruler = SP_RULER (widget); - SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler); + SPRuler *ruler = SP_RULER (widget); + SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler); + GtkStyleContext *context = gtk_widget_get_style_context (widget); + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); + gtk_render_background (context, cr, 0, 0, allocation.width, allocation.height); + gtk_render_frame (context, cr, 0, 0, allocation.width, allocation.height); sp_ruler_draw_ticks (ruler); @@ -669,7 +675,7 @@ sp_ruler_make_pixmap (SPRuler *ruler) priv->backing_store = gdk_window_create_similar_surface (gtk_widget_get_window (widget), - CAIRO_CONTENT_COLOR, + CAIRO_CONTENT_COLOR_ALPHA, allocation.width, allocation.height); @@ -1088,9 +1094,10 @@ sp_ruler_draw_ticks (SPRuler *ruler) cr = cairo_create (priv->backing_store); - gtk_render_background (context, cr, 0, 0, allocation.width, allocation.height); - gtk_render_frame (context, cr, 0, 0, allocation.width, allocation.height); - + cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR); + cairo_paint (cr); + cairo_set_operator (cr, CAIRO_OPERATOR_OVER); + gtk_style_context_get_color (context, gtk_widget_get_state_flags (widget), &color); gdk_cairo_set_source_rgba (cr, &color); @@ -1319,9 +1326,6 @@ sp_ruler_get_pos_rect (SPRuler *ruler, rect.y = ROUND ((position - lower) * increment) + (ythickness - rect.height) / 2 - 1; } - rect.x += allocation.x; - rect.y += allocation.y; - return rect; } @@ -1344,18 +1348,21 @@ sp_ruler_queue_pos_redraw (SPRuler *ruler) { SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler); const GdkRectangle rect = sp_ruler_get_pos_rect (ruler, priv->position); + GtkAllocation allocation; + + gtk_widget_get_allocation (GTK_WIDGET(ruler), &allocation); gtk_widget_queue_draw_area (GTK_WIDGET(ruler), - rect.x, - rect.y, + rect.x + allocation.x, + rect.y + allocation.y, rect.width, rect.height); if (priv->last_pos_rect.width != 0 || priv->last_pos_rect.height != 0) { gtk_widget_queue_draw_area (GTK_WIDGET(ruler), - priv->last_pos_rect.x, - priv->last_pos_rect.y, + priv->last_pos_rect.x + allocation.x, + priv->last_pos_rect.y + allocation.y, priv->last_pos_rect.width, priv->last_pos_rect.height); -- cgit v1.2.3 From 50baf6a41f90c551fed1a2f26f42c8f03cd008b2 Mon Sep 17 00:00:00 2001 From: xande6ruz Date: Sat, 30 Jul 2016 18:39:35 +0200 Subject: [Bug #1604789] Portuguese translation - Interface Fixed bugs: - https://launchpad.net/bugs/1604789 (bzr r15023.3.2) --- po/pt.po | 19300 +++++++++++++++++++++++++++---------------------------------- 1 file changed, 8563 insertions(+), 10737 deletions(-) diff --git a/po/pt.po b/po/pt.po index 4bb9d0d7a..d85d49837 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1,38 +1,47 @@ -# translation of pt.po to Português -# Portuguese translation for Inkscape. +# Translation of Inkscape to Portuguese. # This file is distributed under the same license as the Inkscape package. -# Copyright (C) 2004-2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2000 - 2013 Free Software Foundation, Inc. +# +# Do original em Português do Brasil por: +# Equipe de Tradução Inkscape Brasil , 2007: +# Aurélio A. Heckert +# Fábio Sousa +# Frederico G. Guimarães +# Krishnamurti L. L. V. Nunes +# Samy M. Nascimento +# Thiago Pimentel +# Vilson Vieira +# Victor Westmann # Juarez Rudsatz , 2004. # Antônio Cláudio (LedStyle) , 2006. -# Equipe de Tradução Inkscape Brasil , 2007. -# Luis Duarte , 2008. # -#: ../src/ui/dialog/clonetiler.cpp:1010 +# Traduzido do original em Português do Brasil e em Inglês para Português Europeu por: +# Luis Duarte , 2008, 2016. +# Rui Cruz , 2016. +# Tiago Santos , 2016. +# msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inkscape 0.92\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2016-06-02 12:12+0200\n" -"PO-Revision-Date: 2008-02-02 18:20-0000\n" -"Last-Translator: Luis Duarte \n" +"PO-Revision-Date: 2016-07-26 15:30+0100\n" +"Last-Translator: Rui Cruz \n" "Language-Team: \n" -"Language: \n" +"Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1\n" -"X-Poedit-Language: Portuguese\n" -"X-Poedit-Country: PORTUGAL\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.8.8\n" #: ../inkscape.appdata.xml.in.h:1 ../inkscape.desktop.in.h:1 -#, fuzzy msgid "Inkscape" -msgstr "Sair do Inkscape" +msgstr "Inkscape" #: ../inkscape.appdata.xml.in.h:2 ../inkscape.desktop.in.h:2 -#, fuzzy msgid "Vector Graphics Editor" -msgstr "Inkscape Editor de Imagem Vectorial" +msgstr "Editor de Imagens Vetoriais" #: ../inkscape.appdata.xml.in.h:3 msgid "" @@ -40,6 +49,9 @@ msgid "" "Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector " "Graphics (SVG) file format." msgstr "" +"Um editor de gráficos vetoriais com código-fonte aberto com capacidades " +"similares ao Illustrator, CorelDraw e Xara X, utilizando o formato padrão de " +"ficheiros do W3C: Scalable Vector Graphics (SVG)." #: ../inkscape.appdata.xml.in.h:4 msgid "" @@ -49,33 +61,37 @@ msgid "" "trace bitmaps and much more. We also aim to maintain a thriving user and " "developer community by using open, community-oriented development." msgstr "" +"O Inkscape suporta muitas funcionalidades SVG avançadas (marcadores, clones, " +"mistura de transparência, etc.) e é empregado bastante cuidado na concepção " +"de uma interface simples. É bastante fácil editar nós, fazer operações " +"complexas em linhas, vetorizar imagens bitmap e muito mais. Também " +"procuramos manter uma comunidade bem sucedida de utilizadores e " +"programadores ao utilizar um desenvolvimento transparente do programa " +"voltado para a comunidade." #: ../inkscape.appdata.xml.in.h:5 -#, fuzzy msgid "Main application window" -msgstr "Duplic_ar Janela" +msgstr "Janela principal da aplicação" #: ../inkscape.desktop.in.h:3 msgid "Inkscape Vector Graphics Editor" -msgstr "Inkscape Editor de Imagem Vectorial" +msgstr "Inkscape - Editor de Imagens Vetoriais" #: ../inkscape.desktop.in.h:4 msgid "Create and edit Scalable Vector Graphics images" -msgstr "Crie e edite imagens Gráficas Vectoriais Escalaveis" +msgstr "Criar e editar imagens gráficas vetoriais escaláveis" #: ../inkscape.desktop.in.h:5 msgid "image;editor;vector;drawing;" -msgstr "" +msgstr "imagem;editor;vetorial;desenho;" #: ../inkscape.desktop.in.h:6 -#, fuzzy msgid "New Drawing" -msgstr "Desenho" +msgstr "Novo Desenho" #: ../share/filters/filters.svg.h:2 -#, fuzzy msgid "Smart Jelly" -msgstr "Canal Fosco" +msgstr "Gelatina Inteligente" #: ../share/filters/filters.svg.h:3 ../share/filters/filters.svg.h:7 #: ../share/filters/filters.svg.h:15 ../share/filters/filters.svg.h:31 @@ -91,27 +107,24 @@ msgstr "Canal Fosco" #: ../src/extension/internal/filter/bevels.h:63 #: ../src/extension/internal/filter/bevels.h:144 #: ../src/extension/internal/filter/bevels.h:228 -#, fuzzy msgid "Bevels" -msgstr "Nível" +msgstr "Biselados" #: ../share/filters/filters.svg.h:4 msgid "Same as Matte jelly but with more controls" -msgstr "" +msgstr "O mesmo que a Gelatina Cinzenta mas com mais controlos" #: ../share/filters/filters.svg.h:6 -#, fuzzy msgid "Metal Casting" -msgstr "Ângulo esquerdo" +msgstr "Fundição" #: ../share/filters/filters.svg.h:8 msgid "Smooth drop-like bevel with metallic finish" -msgstr "" +msgstr "Biselado como gota com acabamento metálico" #: ../share/filters/filters.svg.h:10 -#, fuzzy msgid "Apparition" -msgstr "Saturação" +msgstr "Aparição" # Enevoar, desfocar ou borrar? -- krishna #: ../share/filters/filters.svg.h:11 ../share/filters/filters.svg.h:323 @@ -121,26 +134,24 @@ msgstr "Saturação" #: ../src/extension/internal/filter/blurs.h:201 #: ../src/extension/internal/filter/blurs.h:267 #: ../src/extension/internal/filter/blurs.h:351 -#, fuzzy msgid "Blurs" -msgstr "Desfocar" +msgstr "Desfocagens" #: ../share/filters/filters.svg.h:12 msgid "Edges are partly feathered out" -msgstr "" +msgstr "As bordas são parcialmente polidas para fora" #: ../share/filters/filters.svg.h:14 msgid "Jigsaw Piece" -msgstr "" +msgstr "Peça de Puzzle" #: ../share/filters/filters.svg.h:16 msgid "Low, sharp bevel" -msgstr "" +msgstr "Baixo, biselado facetado" #: ../share/filters/filters.svg.h:18 -#, fuzzy msgid "Rubber Stamp" -msgstr "Número de dentes" +msgstr "Carimbo" #: ../share/filters/filters.svg.h:19 ../share/filters/filters.svg.h:43 #: ../share/filters/filters.svg.h:47 ../share/filters/filters.svg.h:51 @@ -160,61 +171,54 @@ msgstr "Número de dentes" #: ../share/filters/filters.svg.h:711 ../share/filters/filters.svg.h:715 #: ../share/filters/filters.svg.h:723 #: ../src/extension/internal/filter/overlays.h:80 -#, fuzzy msgid "Overlays" -msgstr "Sobre" +msgstr "Sobreposições" #: ../share/filters/filters.svg.h:20 -#, fuzzy msgid "Random whiteouts inside" -msgstr "Posições aleatórias" +msgstr "Brancos aleatórios no interior" #: ../share/filters/filters.svg.h:22 -#, fuzzy msgid "Ink Bleed" -msgstr "Misturar" +msgstr "Desfocado com Bordas Esfarrapadas" #: ../share/filters/filters.svg.h:23 ../share/filters/filters.svg.h:27 #: ../share/filters/filters.svg.h:115 ../share/filters/filters.svg.h:431 -#, fuzzy msgid "Protrusions" -msgstr "Posição:" +msgstr "Prolongamentos" #: ../share/filters/filters.svg.h:24 msgid "Inky splotches underneath the object" msgstr "" +"Desfoca o objeto e prolonga as bordas como tecido felpudo rasgado nas pontas" #: ../share/filters/filters.svg.h:26 -#, fuzzy msgid "Fire" -msgstr "Ficheiro" +msgstr "Bordas a Arder" #: ../share/filters/filters.svg.h:28 msgid "Edges of object are on fire" -msgstr "" +msgstr "As bordas do objeto ficam em chamas" #: ../share/filters/filters.svg.h:30 -#, fuzzy msgid "Bloom" -msgstr "Ampliação" +msgstr "Eclodir" #: ../share/filters/filters.svg.h:32 msgid "Soft, cushion-like bevel with matte highlights" -msgstr "" +msgstr "Suave, biselado como almofada com luzes mate" #: ../share/filters/filters.svg.h:34 -#, fuzzy msgid "Ridged Border" -msgstr "Modo Limite" +msgstr "Moldura de Quadro" #: ../share/filters/filters.svg.h:36 msgid "Ridged border with inner bevel" -msgstr "" +msgstr "Borda de arestas biseladas por dentro" #: ../share/filters/filters.svg.h:38 -#, fuzzy msgid "Ripple" -msgstr "Substituir" +msgstr "Ondulação" #: ../share/filters/filters.svg.h:39 ../share/filters/filters.svg.h:123 #: ../share/filters/filters.svg.h:315 ../share/filters/filters.svg.h:319 @@ -223,47 +227,42 @@ msgstr "Substituir" #: ../share/filters/filters.svg.h:635 #: ../src/extension/internal/filter/distort.h:96 #: ../src/extension/internal/filter/distort.h:205 -#, fuzzy msgid "Distort" -msgstr "Divisor" +msgstr "Distorção" #: ../share/filters/filters.svg.h:40 -#, fuzzy msgid "Horizontal rippling of edges" -msgstr "Raio horizontal de cantos arredondados" +msgstr "Ondulado horizontal das bordas" # Tradução forçada... ao pé da letra... # - samymn #: ../share/filters/filters.svg.h:42 -#, fuzzy msgid "Speckle" -msgstr "Dessalpicar" +msgstr "Salpicado" #: ../share/filters/filters.svg.h:44 msgid "Fill object with sparse translucent specks" -msgstr "" +msgstr "Preencher o objeto com salpicos translucentes espaçados" #: ../share/filters/filters.svg.h:46 -#, fuzzy msgid "Oil Slick" -msgstr "Folga" +msgstr "Maré Negra" #: ../share/filters/filters.svg.h:48 msgid "Rainbow-colored semitransparent oily splotches" -msgstr "" +msgstr "Pontilhados oleosos semi-transparentes com cores do arco-íris" #: ../share/filters/filters.svg.h:50 -#, fuzzy msgid "Frost" -msgstr "Fonte" +msgstr "Gelo" #: ../share/filters/filters.svg.h:52 msgid "Flake-like white splotches" -msgstr "" +msgstr "Pontilhados brancos como flocos de neve" #: ../share/filters/filters.svg.h:54 msgid "Leopard Fur" -msgstr "" +msgstr "Pele de Leopardo" #: ../share/filters/filters.svg.h:55 ../share/filters/filters.svg.h:175 #: ../share/filters/filters.svg.h:179 ../share/filters/filters.svg.h:183 @@ -272,61 +271,56 @@ msgstr "" #: ../share/filters/filters.svg.h:247 ../share/filters/filters.svg.h:255 #: ../share/filters/filters.svg.h:387 ../share/filters/filters.svg.h:395 #: ../share/filters/filters.svg.h:399 ../share/filters/filters.svg.h:403 -#, fuzzy msgid "Materials" -msgstr "Matriz" +msgstr "Materiais" #: ../share/filters/filters.svg.h:56 msgid "Leopard spots (loses object's own color)" -msgstr "" +msgstr "Textura similar à pele de leopardo (perde-se a cor original)" #: ../share/filters/filters.svg.h:58 msgid "Zebra" -msgstr "" +msgstr "Zebra" #: ../share/filters/filters.svg.h:60 msgid "Irregular vertical dark stripes (loses object's own color)" -msgstr "" +msgstr "Listas escuras verticais irregulares (perde a cor do objeto)" #: ../share/filters/filters.svg.h:62 -#, fuzzy msgid "Clouds" -msgstr "Fe_char" +msgstr "Nuvens" #: ../share/filters/filters.svg.h:64 msgid "Airy, fluffy, sparse white clouds" -msgstr "" +msgstr "Nuvens brancas espaçadas" #: ../share/filters/filters.svg.h:66 #: ../src/extension/internal/bitmap/sharpen.cpp:38 msgid "Sharpen" -msgstr "Afiar" +msgstr "Nitidez" #: ../share/filters/filters.svg.h:67 ../share/filters/filters.svg.h:71 #: ../share/filters/filters.svg.h:87 ../share/filters/filters.svg.h:295 #: ../share/filters/filters.svg.h:415 #: ../src/extension/internal/filter/image.h:62 -#, fuzzy msgid "Image Effects" -msgstr "Gerenciar caminhos de efeitos" +msgstr "Efeitos de Imagem" #: ../share/filters/filters.svg.h:68 msgid "Sharpen edges and boundaries within the object, force=0.15" -msgstr "" +msgstr "Aumentar nitizez nas bordas e fronteiras dentro do objeto, grau=0.15" #: ../share/filters/filters.svg.h:70 -#, fuzzy msgid "Sharpen More" -msgstr "Afiar" +msgstr "Mais Nitidez" #: ../share/filters/filters.svg.h:72 msgid "Sharpen edges and boundaries within the object, force=0.3" -msgstr "" +msgstr "Aumentar nitidez nas bordas e fronteiras dentro do objeto, grau=0.3" #: ../share/filters/filters.svg.h:74 -#, fuzzy msgid "Oil painting" -msgstr "Pintura a Óleo" +msgstr "Pintura a óleo" #: ../share/filters/filters.svg.h:75 ../share/filters/filters.svg.h:79 #: ../share/filters/filters.svg.h:83 ../share/filters/filters.svg.h:447 @@ -346,12 +340,11 @@ msgstr "Pintura a Óleo" #: ../src/extension/internal/filter/paint.h:877 #: ../src/extension/internal/filter/paint.h:981 msgid "Image Paint and Draw" -msgstr "" +msgstr "Desenho e Pintura da Imagem" #: ../share/filters/filters.svg.h:76 -#, fuzzy msgid "Simulate oil painting style" -msgstr "Simular saída na Ecrã" +msgstr "Simular estilo de pintura a óleo" #. Pencil #: ../share/filters/filters.svg.h:78 @@ -361,30 +354,27 @@ msgstr "Lápis" #: ../share/filters/filters.svg.h:80 msgid "Detect color edges and retrace them in grayscale" -msgstr "" +msgstr "Detetar bordas de cor e redesenhar em escala de cinzas" #: ../share/filters/filters.svg.h:82 -#, fuzzy msgid "Blueprint" -msgstr "Largura igual" +msgstr "Cianotipo" #: ../share/filters/filters.svg.h:84 msgid "Detect color edges and retrace them in blue" -msgstr "" +msgstr "Detetar bordas de cor e redesenhar em azul" #: ../share/filters/filters.svg.h:86 -#, fuzzy msgid "Age" -msgstr "Ângulo" +msgstr "Antigo" #: ../share/filters/filters.svg.h:88 msgid "Imitate aged photograph" -msgstr "" +msgstr "Imitar fotografia envelhecida" #: ../share/filters/filters.svg.h:90 -#, fuzzy msgid "Organic" -msgstr "Origem X" +msgstr "Orgânico" #: ../share/filters/filters.svg.h:91 ../share/filters/filters.svg.h:119 #: ../share/filters/filters.svg.h:127 ../share/filters/filters.svg.h:187 @@ -396,109 +386,95 @@ msgstr "Origem X" #: ../share/filters/filters.svg.h:379 ../share/filters/filters.svg.h:383 #: ../share/filters/filters.svg.h:439 ../share/filters/filters.svg.h:467 #: ../share/filters/filters.svg.h:491 ../share/filters/filters.svg.h:531 -#, fuzzy msgid "Textures" -msgstr "Textos" +msgstr "Texturas" #: ../share/filters/filters.svg.h:92 msgid "Bulging, knotty, slick 3D surface" -msgstr "" +msgstr "Superfície 3D escorregadia, saliente com nós" #: ../share/filters/filters.svg.h:94 msgid "Barbed Wire" -msgstr "" +msgstr "Arame Farpado" #: ../share/filters/filters.svg.h:96 msgid "Gray bevelled wires with drop shadows" -msgstr "" +msgstr "Fios biselados a cinzento com sombras caídas" #: ../share/filters/filters.svg.h:98 -#, fuzzy msgid "Swiss Cheese" -msgstr "Curativo Ladrilhado" +msgstr "Queijo Suíço" #: ../share/filters/filters.svg.h:100 msgid "Random inner-bevel holes" -msgstr "" +msgstr "Buracos biselados para dentro aleatórios" #: ../share/filters/filters.svg.h:102 -#, fuzzy msgid "Blue Cheese" -msgstr "Canal Azul" +msgstr "Queijo Azul" #: ../share/filters/filters.svg.h:104 msgid "Marble-like bluish speckles" -msgstr "" +msgstr "Manchas azuladas como o mármore" #: ../share/filters/filters.svg.h:106 -#, fuzzy msgid "Button" -msgstr "Fundo" +msgstr "Botão 3D tipo Teclado" #: ../share/filters/filters.svg.h:108 msgid "Soft bevel, slightly depressed middle" -msgstr "" +msgstr "Biselado suave, com meio ligeiramente em depressão" #: ../share/filters/filters.svg.h:110 -#, fuzzy msgid "Inset" -msgstr "Co_mprimir" +msgstr "Inserção" #: ../share/filters/filters.svg.h:111 ../share/filters/filters.svg.h:267 #: ../share/filters/filters.svg.h:343 ../share/filters/filters.svg.h:435 #: ../share/filters/filters.svg.h:811 #: ../src/extension/internal/filter/shadows.h:81 -#, fuzzy msgid "Shadows and Glows" -msgstr "Desenhar Alças" +msgstr "Sobras e Auréolas" #: ../share/filters/filters.svg.h:112 -#, fuzzy msgid "Shadowy outer bevel" -msgstr "Alfa" +msgstr "Biselado por fora sombreado" #: ../share/filters/filters.svg.h:114 -#, fuzzy msgid "Dripping" -msgstr "Script" +msgstr "Escorrer" #: ../share/filters/filters.svg.h:116 msgid "Random paint streaks downwards" -msgstr "" +msgstr "Riscos de tinta aleatórios para baixo" #: ../share/filters/filters.svg.h:118 -#, fuzzy msgid "Jam Spread" -msgstr "Espalhar" +msgstr "Espalhamento de Geleia" #: ../share/filters/filters.svg.h:120 msgid "Glossy clumpy jam spread" -msgstr "" +msgstr "Espalhamento de geleia brilhante agrupada" #: ../share/filters/filters.svg.h:122 -#, fuzzy msgid "Pixel Smear" -msgstr "Pixels" +msgstr "Píxeis Esborratados" #: ../share/filters/filters.svg.h:124 -#, fuzzy msgid "Van Gogh painting effect for bitmaps" -msgstr "Converter textos em caminhos" +msgstr "Efeito de pintura Van Gogh para imagens bitmap" #: ../share/filters/filters.svg.h:126 -#, fuzzy msgid "Cracked Glass" -msgstr "Fechar intervalos" +msgstr "Vidro Rachado" #: ../share/filters/filters.svg.h:128 -#, fuzzy msgid "Under a cracked glass" -msgstr "Fechar intervalos" +msgstr "Por debaixo de um vidro rachado" #: ../share/filters/filters.svg.h:130 -#, fuzzy msgid "Bubbly Bumps" -msgstr "Bias" +msgstr "Saliências em Bolhas" #: ../share/filters/filters.svg.h:131 ../share/filters/filters.svg.h:307 #: ../share/filters/filters.svg.h:311 ../share/filters/filters.svg.h:347 @@ -516,250 +492,229 @@ msgstr "Bias" #: ../share/filters/filters.svg.h:799 ../share/filters/filters.svg.h:807 #: ../src/extension/internal/filter/bumps.h:142 #: ../src/extension/internal/filter/bumps.h:362 -#, fuzzy msgid "Bumps" -msgstr "Bias" +msgstr "Saliências" #: ../share/filters/filters.svg.h:132 msgid "Flexible bubbles effect with some displacement" -msgstr "" +msgstr "Efeito de bolhas flexível com algum deslocamento" #: ../share/filters/filters.svg.h:134 -#, fuzzy msgid "Glowing Bubble" -msgstr "Texto horizontal" +msgstr "Bolha com Auréola" #: ../share/filters/filters.svg.h:135 ../share/filters/filters.svg.h:155 #: ../share/filters/filters.svg.h:159 ../share/filters/filters.svg.h:203 #: ../share/filters/filters.svg.h:207 ../share/filters/filters.svg.h:215 #: ../share/filters/filters.svg.h:223 -#, fuzzy msgid "Ridges" -msgstr "Limite" +msgstr "Arestas" #: ../share/filters/filters.svg.h:136 msgid "Bubble effect with refraction and glow" -msgstr "" +msgstr "Efeito bolha com refração e halo" #: ../share/filters/filters.svg.h:138 -#, fuzzy msgid "Neon" -msgstr "Nenhum" +msgstr "Néon" #: ../share/filters/filters.svg.h:140 -#, fuzzy msgid "Neon light effect" -msgstr "Efeito actual" +msgstr "Efeito de luz néon" #: ../share/filters/filters.svg.h:142 -#, fuzzy msgid "Molten Metal" -msgstr "Meta-ficheiro otimizad" +msgstr "Metal a Derreter" #: ../share/filters/filters.svg.h:144 msgid "Melting parts of object together, with a glossy bevel and a glow" -msgstr "" +msgstr "Fundir partes do objeto, com um biselado brilhante e uma auréola" #: ../share/filters/filters.svg.h:146 -#, fuzzy msgid "Pressed Steel" -msgstr " R_edefinir " +msgstr "Aço Prensado" #: ../share/filters/filters.svg.h:148 -#, fuzzy msgid "Pressed metal with a rolled edge" -msgstr "Propriedades de Estrelas" +msgstr "Metal prensado com uma borda enrolada" #: ../share/filters/filters.svg.h:150 -#, fuzzy msgid "Matte Bevel" -msgstr "Colar tamanho" +msgstr "Biselado Mate" #: ../share/filters/filters.svg.h:152 msgid "Soft, pastel-colored, blurry bevel" -msgstr "" +msgstr "Biselado desfocado, suave, colorido a pastel" #: ../share/filters/filters.svg.h:154 msgid "Thin Membrane" -msgstr "" +msgstr "Membrana Fina" #: ../share/filters/filters.svg.h:156 msgid "Thin like a soap membrane" -msgstr "" +msgstr "Fino como uma bola de sabão" #: ../share/filters/filters.svg.h:158 -#, fuzzy msgid "Matte Ridge" -msgstr "Lugar de Luz" +msgstr "Fenda Mate" #: ../share/filters/filters.svg.h:160 -#, fuzzy msgid "Soft pastel ridge" -msgstr "Definir tamanho da página" +msgstr "Fenda em pastel suave" #: ../share/filters/filters.svg.h:162 -#, fuzzy msgid "Glowing Metal" -msgstr "Texto horizontal" +msgstr "Metal com Altas Luzes" #: ../share/filters/filters.svg.h:164 -#, fuzzy msgid "Glowing metal texture" -msgstr "Texto horizontal" +msgstr "Textura de metal com altas luzes direcionais brilhantes" #: ../share/filters/filters.svg.h:166 -#, fuzzy msgid "Leaves" -msgstr "Nível" +msgstr "Folhas" #: ../share/filters/filters.svg.h:167 ../share/filters/filters.svg.h:235 #: ../share/filters/filters.svg.h:271 ../share/filters/filters.svg.h:639 #: ../share/extensions/pathscatter.inx.h:1 -#, fuzzy msgid "Scatter" -msgstr "Padrão" +msgstr "Espalhar" #: ../share/filters/filters.svg.h:168 msgid "Leaves on the ground in Fall, or living foliage" msgstr "" +"Semelhante a folhas, quer mortas quer ainda verdes (cores conforme a imagem/" +"caminho original)" #: ../share/filters/filters.svg.h:170 #: ../src/extension/internal/filter/paint.h:339 -#, fuzzy msgid "Translucent" -msgstr "Único" +msgstr "Plástico Translucente" #: ../share/filters/filters.svg.h:172 msgid "Illuminated translucent plastic or glass effect" -msgstr "" +msgstr "Efeito de plástico ou vidro translucente e iluminado" #: ../share/filters/filters.svg.h:174 msgid "Iridescent Beeswax" -msgstr "" +msgstr "Cera de abelhas iridescente" #: ../share/filters/filters.svg.h:176 msgid "Waxy texture which keeps its iridescence through color fill change" msgstr "" +"Textura cerosa que mantém a sua iridescência através da alteração da cor do " +"preenchimento" #: ../share/filters/filters.svg.h:178 -#, fuzzy msgid "Eroded Metal" -msgstr "Meta-ficheiro otimizad" +msgstr "Metal Corroído" #: ../share/filters/filters.svg.h:180 msgid "Eroded metal texture with ridges, grooves, holes and bumps" -msgstr "" +msgstr "Textura de metal corroído com vincos, ranhuras, buracos e saliências." #: ../share/filters/filters.svg.h:182 -#, fuzzy msgid "Cracked Lava" -msgstr "Fechar intervalos" +msgstr "Lava com Rachas" #: ../share/filters/filters.svg.h:184 msgid "A volcanic texture, a little like leather" -msgstr "" +msgstr "Textura vulcânica, um pouco como o couro" #: ../share/filters/filters.svg.h:186 msgid "Bark" -msgstr "" +msgstr "Casca de Ãrvore" #: ../share/filters/filters.svg.h:188 msgid "Bark texture, vertical; use with deep colors" -msgstr "" +msgstr "Textura de casca de árvore, na vertical; usar com cores escuras" #: ../share/filters/filters.svg.h:190 msgid "Lizard Skin" -msgstr "" +msgstr "Pele de Lagarto" #: ../share/filters/filters.svg.h:192 msgid "Stylized reptile skin texture" -msgstr "" +msgstr "Textura estilizada de pele de réptil" #: ../share/filters/filters.svg.h:194 -#, fuzzy msgid "Stone Wall" -msgstr "Eliminar tudo" +msgstr "Muro de Pedra" #: ../share/filters/filters.svg.h:196 msgid "Stone wall texture to use with not too saturated colors" msgstr "" +"Textura de parede de pedra para ser usada com cores não muito saturadas" #: ../share/filters/filters.svg.h:198 msgid "Silk Carpet" -msgstr "" +msgstr "Carpete de Seda" #: ../share/filters/filters.svg.h:200 msgid "Silk carpet texture, horizontal stripes" -msgstr "" +msgstr "Textura de carpete de seda, riscas horizontais" #: ../share/filters/filters.svg.h:202 -#, fuzzy msgid "Refractive Gel A" -msgstr "Mudança rela_tiva" +msgstr "Gel Refratário A" #: ../share/filters/filters.svg.h:204 msgid "Gel effect with light refraction" -msgstr "" +msgstr "Efeito gel com baixa refração" #: ../share/filters/filters.svg.h:206 -#, fuzzy msgid "Refractive Gel B" -msgstr "Mudança rela_tiva" +msgstr "Gel Refratário B" #: ../share/filters/filters.svg.h:208 msgid "Gel effect with strong refraction" -msgstr "" +msgstr "Efeito gel com alta refração" #: ../share/filters/filters.svg.h:210 -#, fuzzy msgid "Metallized Paint" -msgstr "Ângulo esquerdo" +msgstr "Pintura Metalizada" #: ../share/filters/filters.svg.h:212 msgid "" "Metallized effect with a soft lighting, slightly translucent at the edges" msgstr "" +"Efeito metalizado com uma luz suave, ligeiramente translucente nas bordas" #: ../share/filters/filters.svg.h:214 -#, fuzzy msgid "Dragee" -msgstr "Arrastar curva" +msgstr "Pastilha" #: ../share/filters/filters.svg.h:216 msgid "Gel Ridge with a pearlescent look" -msgstr "" +msgstr "Borda de Gel com um aspeto pérola" #: ../share/filters/filters.svg.h:218 -#, fuzzy msgid "Raised Border" -msgstr "Levantar nó" +msgstr "Borda Levantada" #: ../share/filters/filters.svg.h:220 msgid "Strongly raised border around a flat surface" -msgstr "" +msgstr "Borda levantada à volta de uma superfície lisa" #: ../share/filters/filters.svg.h:222 -#, fuzzy msgid "Metallized Ridge" -msgstr "Ângulo esquerdo" +msgstr "Bordas Metalizadas" #: ../share/filters/filters.svg.h:224 msgid "Gel Ridge metallized at its top" -msgstr "" +msgstr "Borda de Gel metalizada no ponto mais alto" #: ../share/filters/filters.svg.h:226 -#, fuzzy msgid "Fat Oil" -msgstr "Cor lisa" +msgstr "Óleo Viscoso" #: ../share/filters/filters.svg.h:228 msgid "Fat oil with some adjustable turbulence" -msgstr "" +msgstr "Óleo gordo com alguma turbulência ajustável" #: ../share/filters/filters.svg.h:230 -#, fuzzy msgid "Black Hole" -msgstr "Traço preto" +msgstr "Buraco Negro" #: ../share/filters/filters.svg.h:231 ../share/filters/filters.svg.h:275 #: ../share/filters/filters.svg.h:279 ../share/filters/filters.svg.h:835 @@ -770,402 +725,381 @@ msgid "Morphology" msgstr "Morfologia" #: ../share/filters/filters.svg.h:232 -#, fuzzy msgid "Creates a black light inside and outside" -msgstr "Desenhar um caminho a uma grelha" +msgstr "Cria uma luz negra por dentro e por fora" #: ../share/filters/filters.svg.h:234 -#, fuzzy msgid "Cubes" -msgstr "Numerar Nós" +msgstr "Cubos" #: ../share/filters/filters.svg.h:236 msgid "Scattered cubes; adjust the Morphology primitive to vary size" -msgstr "" +msgstr "Cubos dispersos; ajustar a Morfologia para variar o tamanho" #: ../share/filters/filters.svg.h:238 -#, fuzzy msgid "Peel Off" -msgstr "Tipografia normal" +msgstr "Descascar" #: ../share/filters/filters.svg.h:240 msgid "Peeling painting on a wall" -msgstr "" +msgstr "Tinta a descascar numa parede" #: ../share/filters/filters.svg.h:242 -#, fuzzy msgid "Gold Splatter" -msgstr "Padrões" +msgstr "Borrifado a Ouro" #: ../share/filters/filters.svg.h:244 msgid "Splattered cast metal, with golden highlights" msgstr "" +"Semelhante a pedacinhos de folha de ouro amassados e rasgados com alto relevo" #: ../share/filters/filters.svg.h:246 -#, fuzzy msgid "Gold Paste" -msgstr "Proporção do raio:" +msgstr "Folha de Ouro Amassada" #: ../share/filters/filters.svg.h:248 msgid "Fat pasted cast metal, with golden highlights" msgstr "" +"Efeito de folha de ouro ligeiramente enrugada e rasgada nas bordas, com " +"altaz luzes douradas" #: ../share/filters/filters.svg.h:250 msgid "Crumpled Plastic" -msgstr "" +msgstr "Plástico Amassado" #: ../share/filters/filters.svg.h:252 msgid "Crumpled matte plastic, with melted edge" -msgstr "" +msgstr "Plástico amassado mate, com borda derretida" #: ../share/filters/filters.svg.h:254 msgid "Enamel Jewelry" -msgstr "" +msgstr "Jóia de Esmalte" #: ../share/filters/filters.svg.h:256 msgid "Slightly cracked enameled texture" -msgstr "" +msgstr "Textura de esmalte ligeiramente rachada" #: ../share/filters/filters.svg.h:258 -#, fuzzy msgid "Rough Paper" -msgstr "Modo áspero" +msgstr "Papel Rugoso" #: ../share/filters/filters.svg.h:260 msgid "Aquarelle paper effect which can be used for pictures as for objects" -msgstr "" +msgstr "Efeito de papel aguarela que pode ser usado em imagens e objetos" #: ../share/filters/filters.svg.h:262 -#, fuzzy msgid "Rough and Glossy" -msgstr "Modo áspero" +msgstr "Rugoso e Brilhante" #: ../share/filters/filters.svg.h:264 msgid "" "Crumpled glossy paper effect which can be used for pictures as for objects" msgstr "" +"Efeito de papel brilhante amassado que pode ser usado em imagens e objetos" #: ../share/filters/filters.svg.h:266 -#, fuzzy msgid "In and Out" -msgstr "Nenhuma pintura" +msgstr "Dentro e Fora" #: ../share/filters/filters.svg.h:268 msgid "Inner colorized shadow, outer black shadow" -msgstr "" +msgstr "Sombra por dentro colorida, com sombra por fora preta" #: ../share/filters/filters.svg.h:270 -#, fuzzy msgid "Air Spray" -msgstr "Espiral" +msgstr "Pulverização de Ar" #: ../share/filters/filters.svg.h:272 msgid "Convert to small scattered particles with some thickness" -msgstr "" +msgstr "Converte em pequenas partículas dispersas com alguma espessura" #: ../share/filters/filters.svg.h:274 -#, fuzzy msgid "Warm Inside" -msgstr "nó final" +msgstr "Quente por Dentro" #: ../share/filters/filters.svg.h:276 msgid "Blurred colorized contour, filled inside" -msgstr "" +msgstr "Contorno colorido desfocado, preenchido por dentro" #: ../share/filters/filters.svg.h:278 -#, fuzzy msgid "Cool Outside" -msgstr "Contorno da caixa" +msgstr "Frio por Fora" #: ../share/filters/filters.svg.h:280 msgid "Blurred colorized contour, empty inside" -msgstr "" +msgstr "Contorno colorido desfocado, vazio por dentro" #: ../share/filters/filters.svg.h:282 msgid "Electronic Microscopy" -msgstr "" +msgstr "Microscopia Eletrónica" #: ../share/filters/filters.svg.h:284 msgid "" "Bevel, crude light, discoloration and glow like in electronic microscopy" msgstr "" +"Biselado, luz crua, descoloração e auréola como na microscopia eletrónica" #: ../share/filters/filters.svg.h:286 -#, fuzzy msgid "Tartan" -msgstr "Alvo" +msgstr "Padrão escocês" #: ../share/filters/filters.svg.h:288 msgid "Checkered tartan pattern" -msgstr "" +msgstr "Padrão tartã quadricular" #: ../share/filters/filters.svg.h:290 -#, fuzzy msgid "Shaken Liquid" -msgstr "Alfa" +msgstr "Líquido Agitado" #: ../share/filters/filters.svg.h:292 msgid "Colorizable filling with flow inside like transparency" -msgstr "" +msgstr "Preenchimento colorizável com enchimento dentro como transparência" #: ../share/filters/filters.svg.h:294 msgid "Soft Focus Lens" -msgstr "" +msgstr "Lente de Foco Suave" #: ../share/filters/filters.svg.h:296 msgid "Glowing image content without blurring it" -msgstr "" +msgstr "Conteúdo da imagem como auréola sem desfocar" #: ../share/filters/filters.svg.h:298 -#, fuzzy msgid "Stained Glass" -msgstr "Fechar intervalos" +msgstr "Vitral" #: ../share/filters/filters.svg.h:300 -#, fuzzy msgid "Illuminated stained glass effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito vitral iluminado" #: ../share/filters/filters.svg.h:302 -#, fuzzy msgid "Dark Glass" -msgstr "Embutir" +msgstr "Vidro Escuro" #: ../share/filters/filters.svg.h:304 msgid "Illuminated glass effect with light coming from beneath" -msgstr "" +msgstr "Efeito de luz em vidro com luz por trás" #: ../share/filters/filters.svg.h:306 -#, fuzzy msgid "HSL Bumps Alpha" -msgstr "Bias" +msgstr "Transparência Saliente HSL" #: ../share/filters/filters.svg.h:308 msgid "Same as HSL Bumps but with transparent highlights" -msgstr "" +msgstr "O mesmo que o Saliente HSL com altas luzes transparentes" #: ../share/filters/filters.svg.h:310 -#, fuzzy msgid "Bubbly Bumps Alpha" -msgstr "Bias" +msgstr "Saliências em Bolhas Transparentes" #: ../share/filters/filters.svg.h:312 msgid "Same as Bubbly Bumps but with transparent highlights" -msgstr "" +msgstr "Igual a Saliências em Bolhas mas com altas luzes transparentes" #: ../share/filters/filters.svg.h:314 ../share/filters/filters.svg.h:362 -#, fuzzy msgid "Torn Edges" -msgstr "Mover nós" +msgstr "Bordas Rasgadas" #: ../share/filters/filters.svg.h:316 ../share/filters/filters.svg.h:364 msgid "" "Displace the outside of shapes and pictures without altering their content" msgstr "" +"Semelhante a papel rasgado, desloca as partes de fora das formas geométricas " +"e imagens sem alterar o conteúdo" #: ../share/filters/filters.svg.h:318 -#, fuzzy msgid "Roughen Inside" -msgstr "Modo áspero" +msgstr "Rugoso Dentro" #: ../share/filters/filters.svg.h:320 -#, fuzzy msgid "Roughen all inside shapes" -msgstr "Modo áspero" +msgstr "Torna rugoso todas as formas geométricas de dentro" #: ../share/filters/filters.svg.h:322 -#, fuzzy msgid "Evanescent" -msgstr "Único" +msgstr "Evanescente" #: ../share/filters/filters.svg.h:324 msgid "" "Blur the contents of objects, preserving the outline and adding progressive " "transparency at edges" msgstr "" +"Desfocar os conteúdos dos objetos, preservando o contorno e adicionando " +"transparência progressiva nas bordas" #: ../share/filters/filters.svg.h:326 msgid "Chalk and Sponge" -msgstr "" +msgstr "Giz e Esponja" #: ../share/filters/filters.svg.h:328 msgid "Low turbulence gives sponge look and high turbulence chalk" msgstr "" +"Turbulência baixa com aspeto de esponja e turbulência alta com aspeto de giz" #: ../share/filters/filters.svg.h:330 -#, fuzzy msgid "People" -msgstr "Substituir" +msgstr "Pessoas" #: ../share/filters/filters.svg.h:332 msgid "Colorized blotches, like a crowd of people" -msgstr "" +msgstr "Manchas coloridas, como uma multidão de pessoas" #: ../share/filters/filters.svg.h:334 -#, fuzzy msgid "Scotland" -msgstr "Folga" +msgstr "Escócia" #: ../share/filters/filters.svg.h:336 msgid "Colorized mountain tops out of the fog" -msgstr "" +msgstr "Cristas das montanhas acima do nevoeiro, colorizável" #: ../share/filters/filters.svg.h:338 -#, fuzzy msgid "Garden of Delights" -msgstr "Luminosidade" +msgstr "Jardim das Delícias" #: ../share/filters/filters.svg.h:340 msgid "" "Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of Delights" msgstr "" +"Pequenas turbulências fantasmagóricas, como o quadro O Jardim das Delícias " +"Terrenas de Hieronymus Bosch" #: ../share/filters/filters.svg.h:342 -#, fuzzy msgid "Cutout Glow" -msgstr "recuar" +msgstr "Auréola Recortada" #: ../share/filters/filters.svg.h:344 msgid "In and out glow with a possible offset and colorizable flood" msgstr "" +"Auréola dentro e fora com deslocamento possível e inundação de cor " +"colorizável" #: ../share/filters/filters.svg.h:346 -#, fuzzy msgid "Dark Emboss" -msgstr "Embutir" +msgstr "Alto Relevo Escuro" #: ../share/filters/filters.svg.h:348 msgid "Emboss effect : 3D relief where white is replaced by black" -msgstr "" +msgstr "Efeito de alto relevo: relevo 3D onde o branco é substituído por preto" #: ../share/filters/filters.svg.h:350 -#, fuzzy msgid "Bubbly Bumps Matte" -msgstr "Bias" +msgstr "Saliências em Bolhas Mate" #: ../share/filters/filters.svg.h:352 msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" msgstr "" +"Igual a Saliências em Bolhas mas com luz difusa em vez de uma especular" #: ../share/filters/filters.svg.h:354 -#, fuzzy msgid "Blotting Paper" -msgstr "Modo áspero" +msgstr "Papel Absorvente" #: ../share/filters/filters.svg.h:356 msgid "Inkblot on blotting paper" -msgstr "" +msgstr "Mancha de tinta em papel absorvente" #: ../share/filters/filters.svg.h:358 -#, fuzzy msgid "Wax Print" -msgstr "Impressão LaTeX" +msgstr "Impressão a Cera" #: ../share/filters/filters.svg.h:360 msgid "Wax print on tissue texture" -msgstr "" +msgstr "Impressão a cera em textura de tecido" #: ../share/filters/filters.svg.h:366 -#, fuzzy msgid "Watercolor" -msgstr "Colar cor" +msgstr "Aguarela" #: ../share/filters/filters.svg.h:368 msgid "Cloudy watercolor effect" -msgstr "" +msgstr "Efeito de aguarela nebulosa" #: ../share/filters/filters.svg.h:370 -#, fuzzy msgid "Felt" -msgstr "ArteLivre" +msgstr "Feltro" #: ../share/filters/filters.svg.h:372 msgid "" "Felt like texture with color turbulence and slightly darker at the edges" msgstr "" +"Textura como o feltro com turbulência de cor e ligeiramente mais escura nas " +"bordas" #: ../share/filters/filters.svg.h:374 -#, fuzzy msgid "Ink Paint" -msgstr "Nenhuma pintura" +msgstr "Pintura a Tinta" #: ../share/filters/filters.svg.h:376 msgid "Ink paint on paper with some turbulent color shift" -msgstr "" +msgstr "Pintura a tinta em papel com alguma descolocação turbulenta na cor" #: ../share/filters/filters.svg.h:378 -#, fuzzy msgid "Tinted Rainbow" -msgstr "Ângulo esquerdo" +msgstr "Arco-Ãris Tinturado" #: ../share/filters/filters.svg.h:380 msgid "Smooth rainbow colors melted along the edges and colorizable" -msgstr "" +msgstr "Cores do arco-íris suaves e fundidas ao longo das bordas e colorizável" #: ../share/filters/filters.svg.h:382 -#, fuzzy msgid "Melted Rainbow" -msgstr "Ângulo esquerdo" +msgstr "Arco-Ãris Fundido" #: ../share/filters/filters.svg.h:384 msgid "Smooth rainbow colors slightly melted along the edges" -msgstr "" +msgstr "Cores do arco-íris suaves ligeiramente fundidas ao longo das bordas" #: ../share/filters/filters.svg.h:386 -#, fuzzy msgid "Flex Metal" -msgstr "Meta-ficheiro otimizad" +msgstr "Metal Flexível" #: ../share/filters/filters.svg.h:388 msgid "Bright, polished uneven metal casting, colorizable" -msgstr "" +msgstr "Metal fundido, polido e desigual, colorizável" #: ../share/filters/filters.svg.h:390 -#, fuzzy msgid "Wavy Tartan" -msgstr "Alvo" +msgstr "Padrão Escocês Ondulado" #: ../share/filters/filters.svg.h:392 msgid "Tartan pattern with a wavy displacement and bevel around the edges" msgstr "" +"Padrão tartã com um deslocamento ondulado e biselado à volta das bordas" #: ../share/filters/filters.svg.h:394 msgid "3D Marble" -msgstr "" +msgstr "Mármore 3D" #: ../share/filters/filters.svg.h:396 msgid "3D warped marble texture" -msgstr "" +msgstr "Textura de mármure em 3D envolvente" #: ../share/filters/filters.svg.h:398 msgid "3D Wood" -msgstr "" +msgstr "Madeira 3D" #: ../share/filters/filters.svg.h:400 msgid "3D warped, fibered wood texture" -msgstr "" +msgstr "Textura de madeira fibrosa em 3D envolvente" #: ../share/filters/filters.svg.h:402 -#, fuzzy msgid "3D Mother of Pearl" -msgstr "Largura do papel" +msgstr "Madrepérola 3D" #: ../share/filters/filters.svg.h:404 msgid "3D warped, iridescent pearly shell texture" -msgstr "" +msgstr "Textura de concha de pérola iridescente em 3D envolvente" #: ../share/filters/filters.svg.h:406 msgid "Tiger Fur" -msgstr "" +msgstr "Pele de tigre" #: ../share/filters/filters.svg.h:408 msgid "Tiger fur pattern with folds and bevel around the edges" -msgstr "" +msgstr "Padrão de pele de tigre com dobras e saliências" #: ../share/filters/filters.svg.h:410 -#, fuzzy msgid "Black Light" -msgstr "Ponto Negro" +msgstr "Luz Negra" #: ../share/filters/filters.svg.h:411 ../share/filters/filters.svg.h:575 #: ../share/filters/filters.svg.h:587 ../share/filters/filters.svg.h:627 @@ -1231,41 +1165,36 @@ msgid "Color" msgstr "Cor" #: ../share/filters/filters.svg.h:412 -#, fuzzy msgid "Light areas turn to black" -msgstr "Brilho" +msgstr "Zonas claras tornam-se escuras" #: ../share/filters/filters.svg.h:414 -#, fuzzy msgid "Film Grain" -msgstr "Preencher com Tinta" +msgstr "Grão de Filme Fotográfico" #: ../share/filters/filters.svg.h:416 msgid "Adds a small scale graininess" -msgstr "" +msgstr "Adiciona pequenos grãos similares às películas fotográficas" #: ../share/filters/filters.svg.h:418 -#, fuzzy msgid "Plaster Color" -msgstr "Colar cor" +msgstr "Gesso Colorido" #: ../share/filters/filters.svg.h:420 -#, fuzzy msgid "Colored plaster emboss effect" -msgstr "Remover efeito de caminho" +msgstr "Efeito de alto relevo em gesso colorido" #: ../share/filters/filters.svg.h:422 msgid "Velvet Bumps" -msgstr "" +msgstr "Saliências de Veludo" #: ../share/filters/filters.svg.h:424 msgid "Gives Smooth Bumps velvet like" -msgstr "" +msgstr "Aplica saliências suaves como o veludo" #: ../share/filters/filters.svg.h:426 -#, fuzzy msgid "Comics Cream" -msgstr "Não redondo" +msgstr "Banda Desenhada Creme" #: ../share/filters/filters.svg.h:427 ../share/filters/filters.svg.h:727 #: ../share/filters/filters.svg.h:731 ../share/filters/filters.svg.h:735 @@ -1278,230 +1207,225 @@ msgstr "Não redondo" #: ../share/filters/filters.svg.h:787 ../share/filters/filters.svg.h:791 #: ../share/filters/filters.svg.h:795 msgid "Non realistic 3D shaders" -msgstr "" +msgstr "Sombreadores 3D não realistas" #: ../share/filters/filters.svg.h:428 msgid "Comics shader with creamy waves transparency" -msgstr "" +msgstr "Desenho de banda desenhada com transparência de ondas cremosas" #: ../share/filters/filters.svg.h:430 msgid "Chewing Gum" -msgstr "" +msgstr "Pastilha Elástica" #: ../share/filters/filters.svg.h:432 msgid "" "Creates colorizable blotches which smoothly flow over the edges of the lines " "at their crossings" msgstr "" +"Cria manchas colorizáveis que correm suavemente sobre as bordas das linhas " +"cruzadas" #: ../share/filters/filters.svg.h:434 -#, fuzzy msgid "Dark And Glow" -msgstr "Desenhar Alças" +msgstr "Escuro e Auréola" #: ../share/filters/filters.svg.h:436 msgid "Darkens the edge with an inner blur and adds a flexible glow" msgstr "" +"Escurece a borda com um desfocado interior e adiciona uma auréola flexível" #: ../share/filters/filters.svg.h:438 -#, fuzzy msgid "Warped Rainbow" -msgstr "Ângulo esquerdo" +msgstr "Arco-Ãris Distorcido" #: ../share/filters/filters.svg.h:440 msgid "Smooth rainbow colors warped along the edges and colorizable" -msgstr "" +msgstr "Cores do arco-íris suaves envolvido ao longo das bordas colorizável" #: ../share/filters/filters.svg.h:442 -#, fuzzy msgid "Rough and Dilate" -msgstr "Modo áspero" +msgstr "Rugoso e Dilatado" #: ../share/filters/filters.svg.h:444 msgid "Create a turbulent contour around" -msgstr "" +msgstr "Cria um contorno à volta turbulento" #: ../share/filters/filters.svg.h:446 -#, fuzzy msgid "Old Postcard" -msgstr "Pintura a Óleo" +msgstr "Postal Antigo" #: ../share/filters/filters.svg.h:448 msgid "Slightly posterize and draw edges like on old printed postcards" -msgstr "" +msgstr "Posterizar levemente e desenhar bordas como nos postais antigos" #: ../share/filters/filters.svg.h:450 -#, fuzzy msgid "Dots Transparency" -msgstr "0 (transparente)" +msgstr "Transparência de Pontos" #: ../share/filters/filters.svg.h:452 msgid "Gives a pointillist HSL sensitive transparency" -msgstr "" +msgstr "Aplica uma transparência sensível a HSL pontilhista" #: ../share/filters/filters.svg.h:454 -#, fuzzy msgid "Canvas Transparency" -msgstr "0 (transparente)" +msgstr "Transparência da Tela" #: ../share/filters/filters.svg.h:456 msgid "Gives a canvas like HSL sensitive transparency." -msgstr "" +msgstr "Aplica uma transparência sensível a HSL como tela de pintura." #: ../share/filters/filters.svg.h:458 -#, fuzzy msgid "Smear Transparency" -msgstr "0 (transparente)" +msgstr "Transparência Esborratada" #: ../share/filters/filters.svg.h:460 msgid "" "Paint objects with a transparent turbulence which turns around color edges" msgstr "" +"Pintar objetos com uma turbulência transparente que dá a volta às bordas de " +"cor" #: ../share/filters/filters.svg.h:462 -#, fuzzy msgid "Thick Paint" -msgstr "Nenhuma pintura" +msgstr "Pintura Espessa" #: ../share/filters/filters.svg.h:464 msgid "Thick painting effect with turbulence" -msgstr "" +msgstr "Efeito de pintura grossa com turbulência" # Enevoar, desfocar ou borrar? -- krishna #: ../share/filters/filters.svg.h:466 -#, fuzzy msgid "Burst" -msgstr "Desfocar" +msgstr "Rebentado" #: ../share/filters/filters.svg.h:468 msgid "Burst balloon texture crumpled and with holes" -msgstr "" +msgstr "Textura de balão rebentado e com buracos" #: ../share/filters/filters.svg.h:470 -#, fuzzy msgid "Embossed Leather" -msgstr "Sem efeito" +msgstr "Couro com Alto Relevo" #: ../share/filters/filters.svg.h:472 msgid "" "Combine a HSL edges detection bump with a leathery or woody and colorizable " "texture" msgstr "" +"Efeito que combina saliência de deteção de bordas HSL com textura colorível " +"de pele ou madeira" #: ../share/filters/filters.svg.h:474 -#, fuzzy msgid "Carnaval" -msgstr "Ciano" +msgstr "Carnaval" #: ../share/filters/filters.svg.h:476 msgid "White splotches evocating carnaval masks" -msgstr "" +msgstr "Salpicos brancos evocando máscaras de carnaval" #: ../share/filters/filters.svg.h:478 -#, fuzzy msgid "Plastify" -msgstr "Justificar" +msgstr "Plastificar" #: ../share/filters/filters.svg.h:480 msgid "" "HSL edges detection bump with a wavy reflective surface effect and variable " "crumple" msgstr "" +"Saliência de deteção de bordas HSL com um efeito de superfície ondulante " +"refletiva e amassado variável" #: ../share/filters/filters.svg.h:482 -#, fuzzy msgid "Plaster" -msgstr "Colar" +msgstr "Gesso" #: ../share/filters/filters.svg.h:484 msgid "" "Combine a HSL edges detection bump with a matte and crumpled surface effect" msgstr "" +"Efeito que combina saliência de deteção de bordas HSL e superfície amassada" #: ../share/filters/filters.svg.h:486 -#, fuzzy msgid "Rough Transparency" -msgstr "0 (transparente)" +msgstr "Transparência Rugosa" #: ../share/filters/filters.svg.h:488 msgid "Adds a turbulent transparency which displaces pixels at the same time" msgstr "" +"Adiciona uma transparência turbulenta que desloca simultaneamente os píxeis" #: ../share/filters/filters.svg.h:490 -#, fuzzy msgid "Gouache" -msgstr "Fonte" +msgstr "Guache" #: ../share/filters/filters.svg.h:492 msgid "Partly opaque water color effect with bleed" -msgstr "" +msgstr "Efeito de aguarela parcialmente opaca com sangria" #: ../share/filters/filters.svg.h:494 -#, fuzzy msgid "Alpha Engraving" -msgstr "Desenho" +msgstr "Gravura Transparente" #: ../share/filters/filters.svg.h:496 msgid "Gives a transparent engraving effect with rough line and filling" -msgstr "" +msgstr "Aplica um efeito gravura transparente com linha e preenchimento rude" #: ../share/filters/filters.svg.h:498 -#, fuzzy msgid "Alpha Draw Liquid" -msgstr "Alfa" +msgstr "Desenho Transparente Líquido" #: ../share/filters/filters.svg.h:500 msgid "Gives a transparent fluid drawing effect with rough line and filling" msgstr "" +"Aplica um efeito de desenho fluido transparente com linha e preenchimento " +"rude" #: ../share/filters/filters.svg.h:502 -#, fuzzy msgid "Liquid Drawing" -msgstr "desenho%s" +msgstr "Desenho Líquido" #: ../share/filters/filters.svg.h:504 msgid "Gives a fluid and wavy expressionist drawing effect to images" msgstr "" +"Aplica um efeito de desenho fluido e ondulante expressionista em imagens" #: ../share/filters/filters.svg.h:506 msgid "Marbled Ink" -msgstr "" +msgstr "Tinta Mármore" #: ../share/filters/filters.svg.h:508 msgid "Marbled transparency effect which conforms to image detected edges" msgstr "" +"Efeito de transparência marmoreada que conforma as bordas detetadas da imagem" #: ../share/filters/filters.svg.h:510 msgid "Thick Acrylic" -msgstr "" +msgstr "Acrílico Grosso" #: ../share/filters/filters.svg.h:512 msgid "Thick acrylic paint texture with high texture depth" -msgstr "" +msgstr "Textura de tinta de acrílico grossa com profundidade de textura alta" #: ../share/filters/filters.svg.h:514 -#, fuzzy msgid "Alpha Engraving B" -msgstr "Desenho" +msgstr "Gravura Transparente B" #: ../share/filters/filters.svg.h:516 msgid "" "Gives a controllable roughness engraving effect to bitmaps and materials" msgstr "" +"Fornece um efeito de gravura rugosa controlável para imagens e materiais" #: ../share/filters/filters.svg.h:518 -#, fuzzy msgid "Lapping" -msgstr "Alterar arredondamento" +msgstr "Borda Ondulante" #: ../share/filters/filters.svg.h:520 msgid "Something like a water noise" -msgstr "" +msgstr "Algo parecido com ruído de água" #: ../share/filters/filters.svg.h:522 -#, fuzzy msgid "Monochrome Transparency" -msgstr "0 (transparente)" +msgstr "Transparência Monocromática" #: ../share/filters/filters.svg.h:523 ../share/filters/filters.svg.h:527 #: ../share/filters/filters.svg.h:647 ../share/filters/filters.svg.h:651 @@ -1511,266 +1435,236 @@ msgstr "0 (transparente)" #: ../src/extension/internal/filter/transparency.h:215 #: ../src/extension/internal/filter/transparency.h:288 #: ../src/extension/internal/filter/transparency.h:350 -#, fuzzy msgid "Fill and Transparency" -msgstr "0 (transparente)" +msgstr "Preenchimento e Transparência" #: ../share/filters/filters.svg.h:524 -#, fuzzy msgid "Convert to a colorizable transparent positive or negative" -msgstr "Ajusta a Ecrã ao desenho" +msgstr "Converter numa transparência colorizável positiva ou negativa" #: ../share/filters/filters.svg.h:526 -#, fuzzy msgid "Saturation Map" -msgstr "Saturação" +msgstr "Mapa de Saturação" #: ../share/filters/filters.svg.h:528 msgid "" "Creates an approximative semi-transparent and colorizable image of the " "saturation levels" msgstr "" +"Cria uma aproximação a uma imagem colorizável dos níveis de saturação semi-" +"transparente" #: ../share/filters/filters.svg.h:530 -#, fuzzy msgid "Riddled" -msgstr "Ladrilhado" +msgstr "Esburacado" #: ../share/filters/filters.svg.h:532 msgid "Riddle the surface and add bump to images" -msgstr "" +msgstr "Esburacar a superície e adicionar saliências a imagens" #: ../share/filters/filters.svg.h:534 -#, fuzzy msgid "Wrinkled Varnish" -msgstr "Imprimir usando operadores PostScript" +msgstr "Verniz Enrugado" #: ../share/filters/filters.svg.h:536 msgid "Thick glossy and translucent paint texture with high depth" -msgstr "" +msgstr "Textura de tinta translucente grossa e brilhante com alta profundidade" #: ../share/filters/filters.svg.h:538 -#, fuzzy msgid "Canvas Bumps" -msgstr "Ciano" +msgstr "Saliência da Tela" #: ../share/filters/filters.svg.h:540 msgid "Canvas texture with an HSL sensitive height map" -msgstr "" +msgstr "Textura de tela com um mapa de altura sensível a HSL" #: ../share/filters/filters.svg.h:542 -#, fuzzy msgid "Canvas Bumps Matte" -msgstr "Ciano" +msgstr "Saliência da Ãrea Mate" #: ../share/filters/filters.svg.h:544 msgid "Same as Canvas Bumps but with a diffuse light instead of a specular one" -msgstr "" +msgstr "Saliência da Ãrea Transparente" #: ../share/filters/filters.svg.h:546 -#, fuzzy msgid "Canvas Bumps Alpha" -msgstr "Ciano" +msgstr "Saliência da Tela Transparente" #: ../share/filters/filters.svg.h:548 msgid "Same as Canvas Bumps but with transparent highlights" -msgstr "" +msgstr "Igual ao Saliência da Tela mas com altas luzes transparentes" #: ../share/filters/filters.svg.h:550 -#, fuzzy msgid "Bright Metal" -msgstr "Mais claro" +msgstr "Metal Brilhante" #: ../share/filters/filters.svg.h:552 msgid "Bright metallic effect for any color" -msgstr "" +msgstr "Efeito metal brilhante para qualquer cor" #: ../share/filters/filters.svg.h:554 msgid "Deep Colors Plastic" -msgstr "" +msgstr "Plástico Cores Profundas" #: ../share/filters/filters.svg.h:556 msgid "Transparent plastic with deep colors" -msgstr "" +msgstr "Plástico Transparente com cores profundas" #: ../share/filters/filters.svg.h:558 -#, fuzzy msgid "Melted Jelly Matte" -msgstr "Canal Fosco" +msgstr "Geleita Cinzenta Derretida" #: ../share/filters/filters.svg.h:560 -#, fuzzy msgid "Matte bevel with blurred edges" -msgstr "Propriedades de Estrelas" +msgstr "Saliência cinzenta com bordas desfocadas" #: ../share/filters/filters.svg.h:562 -#, fuzzy msgid "Melted Jelly" -msgstr "Canal Fosco" +msgstr "Geleia Derretida" #: ../share/filters/filters.svg.h:564 -#, fuzzy msgid "Glossy bevel with blurred edges" -msgstr "Propriedades de Estrelas" +msgstr "Saliência brilhante com bordas desfocadas" #: ../share/filters/filters.svg.h:566 -#, fuzzy msgid "Combined Lighting" -msgstr "Combinado" +msgstr "Luz Combinada" #: ../share/filters/filters.svg.h:568 #: ../src/extension/internal/filter/bevels.h:231 msgid "Basic specular bevel to use for building textures" -msgstr "" +msgstr "Biselado especular básico para criar texturas" #: ../share/filters/filters.svg.h:570 msgid "Tinfoil" -msgstr "" +msgstr "Papel de Alumínio" #: ../share/filters/filters.svg.h:572 msgid "Metallic foil effect combining two lighting types and variable crumple" -msgstr "" +msgstr "Efeito de folha metálica combinando 2 tipos de luz e amassado variável" #: ../share/filters/filters.svg.h:574 -#, fuzzy msgid "Soft Colors" -msgstr "Soltar cor" +msgstr "Cores Suaves" #: ../share/filters/filters.svg.h:576 msgid "Adds a colorizable edges glow inside objects and pictures" msgstr "" +"Adiciona uma auréola nas bordas colorizáveis dentro de objetos e imagens" #: ../share/filters/filters.svg.h:578 -#, fuzzy msgid "Relief Print" -msgstr "Largura igual" +msgstr "Impressão em Relevo" #: ../share/filters/filters.svg.h:580 msgid "Bumps effect with a bevel, color flood and complex lighting" -msgstr "" +msgstr "Efeito saliência com um biselado, preenchido com cor e luz complexa" #: ../share/filters/filters.svg.h:582 -#, fuzzy msgid "Growing Cells" -msgstr "Desenho cancelado" +msgstr "Células em Crescimento" #: ../share/filters/filters.svg.h:584 msgid "Random rounded living cells like fill" -msgstr "" +msgstr "Preenchimento de células vivas arredondadas e aleatórias" #: ../share/filters/filters.svg.h:586 -#, fuzzy msgid "Fluorescence" -msgstr "Presença" +msgstr "Fluorescência" #: ../share/filters/filters.svg.h:588 msgid "Oversaturate colors which can be fluorescent in real world" -msgstr "" +msgstr "Saturar cores que podem ser flourescentes na vida real" #: ../share/filters/filters.svg.h:590 -#, fuzzy msgid "Pixellize" -msgstr "Pixel" +msgstr "Pixelizar" #: ../share/filters/filters.svg.h:591 -#, fuzzy msgid "Pixel tools" -msgstr "Pixels" +msgstr "Píxeis" #: ../share/filters/filters.svg.h:592 msgid "Reduce or remove antialiasing around shapes" msgstr "" +"Rasteriza a imagem, diminuindo o anti-serrilhado (antialiasing) à volta das " +"formas geométricas" #: ../share/filters/filters.svg.h:594 -#, fuzzy msgid "Basic Diffuse Bump" -msgstr "Exponente Especular" +msgstr "Saliência Difusa Básica" #: ../share/filters/filters.svg.h:596 -#, fuzzy msgid "Matte emboss effect" -msgstr "Remover efeito de caminho" +msgstr "Efeito de alto relevo mate" #: ../share/filters/filters.svg.h:598 -#, fuzzy msgid "Basic Specular Bump" -msgstr "Exponente Especular" +msgstr "Saliência Especular Básica" #: ../share/filters/filters.svg.h:600 -#, fuzzy msgid "Specular emboss effect" -msgstr "Exponente Especular" +msgstr "Efeito de alto relevo especular" #: ../share/filters/filters.svg.h:602 msgid "Basic Two Lights Bump" -msgstr "" +msgstr "Saliência Básica de 2 Luzes" #: ../share/filters/filters.svg.h:604 -#, fuzzy msgid "Two types of lighting emboss effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Dois tipos de efeito de alto relevo de luz" #: ../share/filters/filters.svg.h:606 -#, fuzzy msgid "Linen Canvas" -msgstr "Ciano" +msgstr "Tela de Linho" #: ../share/filters/filters.svg.h:608 ../share/filters/filters.svg.h:616 -#, fuzzy msgid "Painting canvas emboss effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de alto relevo de tela de pintura" #: ../share/filters/filters.svg.h:610 -#, fuzzy msgid "Plasticine" -msgstr "Colar" +msgstr "Plasticina" #: ../share/filters/filters.svg.h:612 -#, fuzzy msgid "Matte modeling paste emboss effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de alto relevo de pasta de modelar mate" #: ../share/filters/filters.svg.h:614 -#, fuzzy msgid "Rough Canvas Painting" -msgstr "Pintura a Óleo" +msgstr "Pintura a Óleo Rugosa" #: ../share/filters/filters.svg.h:618 -#, fuzzy msgid "Paper Bump" -msgstr "Bias" +msgstr "Saliência do Papel" #: ../share/filters/filters.svg.h:620 -#, fuzzy msgid "Paper like emboss effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de alto relevo similar ao papel" #: ../share/filters/filters.svg.h:622 msgid "Jelly Bump" -msgstr "" +msgstr "Sobressair Geleia" #: ../share/filters/filters.svg.h:624 -#, fuzzy msgid "Convert pictures to thick jelly" -msgstr "Converter textos em caminhos" +msgstr "Converte imagens em gelatina espessa" #: ../share/filters/filters.svg.h:626 -#, fuzzy msgid "Blend Opposites" -msgstr "_Modo misturar:" +msgstr "Misturar Opostos" #: ../share/filters/filters.svg.h:628 msgid "Blend an image with its hue opposite" -msgstr "" +msgstr "Mistura uma imagem com a sua matiz oposta" #: ../share/filters/filters.svg.h:630 -#, fuzzy msgid "Hue to White" -msgstr "Rotacionar Matiz" +msgstr "Matiz para Branco" #: ../share/filters/filters.svg.h:632 msgid "Fades hue progressively to white" -msgstr "" +msgstr "Esvanece a matiz progressivamente para o branco" #: ../share/filters/filters.svg.h:634 #: ../src/extension/internal/bitmap/swirl.cpp:37 @@ -1781,563 +1675,496 @@ msgstr "Espiral" msgid "" "Paint objects with a transparent turbulence which wraps around color edges" msgstr "" +"Pintar objetos com uma turbulência transparente que envolve as bordas " +"coloridas" #: ../share/filters/filters.svg.h:638 -#, fuzzy msgid "Pointillism" -msgstr "Pontos" +msgstr "Pontilhismo" #: ../share/filters/filters.svg.h:640 msgid "Gives a turbulent pointillist HSL sensitive transparency" -msgstr "" +msgstr "Aplica uma transparência sensível a HSL como pontilhismo turbulento" #: ../share/filters/filters.svg.h:642 msgid "Silhouette Marbled" -msgstr "" +msgstr "Silhueta Marmoreada" #: ../share/filters/filters.svg.h:644 -#, fuzzy msgid "Basic noise transparency texture" -msgstr "0 (transparente)" +msgstr "Textura transparente de ruído básico" #: ../share/filters/filters.svg.h:646 -#, fuzzy msgid "Fill Background" -msgstr "Plano de fundo:" +msgstr "Preencher do Fundo" #: ../share/filters/filters.svg.h:648 -#, fuzzy msgid "Adds a colorizable opaque background" -msgstr "Desenhar um caminho a uma grelha" +msgstr "Adiciona um fundo opaco colorível" #: ../share/filters/filters.svg.h:650 -#, fuzzy msgid "Flatten Transparency" -msgstr "0 (transparente)" +msgstr "Transparência Achatada" #: ../share/filters/filters.svg.h:652 -#, fuzzy msgid "Adds a white opaque background" -msgstr "Remover fundo" +msgstr "Adiciona um fundo opaco branco" #: ../share/filters/filters.svg.h:654 -#, fuzzy msgid "Blur Double" -msgstr "_Modo misturar:" +msgstr "Desfocagem a Dobrar" #: ../share/filters/filters.svg.h:656 msgid "" "Overlays two copies with different blur amounts and modifiable blend and " "composite" msgstr "" +"Sobrepõe 2 cópias com diferentes desfocagens com mistura e compósito " +"alteráveis" #: ../share/filters/filters.svg.h:658 -#, fuzzy msgid "Image Drawing Basic" -msgstr "Desenho" +msgstr "Desenho Básico de Imagem" #: ../share/filters/filters.svg.h:660 -#, fuzzy msgid "Enhance and redraw color edges in 1 bit black and white" -msgstr "Inverter regiões pretas e brancas para traçados simples" +msgstr "Destaca e redesenha bordas coloridas em 1 bit a preto e branco" #: ../share/filters/filters.svg.h:662 -#, fuzzy msgid "Poster Draw" -msgstr "Colar" +msgstr "Desenho de Poster" #: ../share/filters/filters.svg.h:664 -#, fuzzy msgid "Enhance and redraw edges around posterized areas" -msgstr "Inverter regiões pretas e brancas para traçados simples" +msgstr "Destaca e redesenha bordas à volta de áreas posterizadas" #: ../share/filters/filters.svg.h:666 -#, fuzzy msgid "Cross Noise Poster" -msgstr "Ruído de Poisson" +msgstr "Poster de Ruído Cruzado" #: ../share/filters/filters.svg.h:668 msgid "Overlay with a small scale screen like noise" -msgstr "" +msgstr "Sobrecamada com um ecrã em pequena escala como ruído" #: ../share/filters/filters.svg.h:670 -#, fuzzy msgid "Cross Noise Poster B" -msgstr "Ruído de Poisson" +msgstr "Poster de Ruído Cruzado B" #: ../share/filters/filters.svg.h:672 msgid "Adds a small scale screen like noise locally" -msgstr "" +msgstr "Adiciona localmente uma sobrecamada com um ecrã pequeno como ruído" #: ../share/filters/filters.svg.h:674 -#, fuzzy msgid "Poster Color Fun" -msgstr "Colar cor" +msgstr "Poster a Cores Engraçado" #: ../share/filters/filters.svg.h:678 -#, fuzzy msgid "Poster Rough" -msgstr "Colar" +msgstr "Poster Rugoso" #: ../share/filters/filters.svg.h:680 msgid "Adds roughness to one of the two channels of the Poster paint filter" -msgstr "" +msgstr "Adiciona rugosidades a 1 ou 2 dos canais do filtro de pintura Poster" #: ../share/filters/filters.svg.h:682 msgid "Alpha Monochrome Cracked" -msgstr "" +msgstr "Transparência Monocromática Rachada" #: ../share/filters/filters.svg.h:684 ../share/filters/filters.svg.h:688 #: ../share/filters/filters.svg.h:692 ../share/filters/filters.svg.h:704 #: ../share/filters/filters.svg.h:708 ../share/filters/filters.svg.h:712 msgid "Basic noise fill texture; adjust color in Flood" -msgstr "" +msgstr "Textura do preenchimento de ruído básica; ajustar cor em Inudar" #: ../share/filters/filters.svg.h:686 -#, fuzzy msgid "Alpha Turbulent" -msgstr "Alfa (transparência)" +msgstr "Transparência Turbulenta" #: ../share/filters/filters.svg.h:690 -#, fuzzy msgid "Colorize Turbulent" -msgstr "Colorizar" +msgstr "Colorizar Turbulento" #: ../share/filters/filters.svg.h:694 -#, fuzzy msgid "Cross Noise B" -msgstr "Ruído de Poisson" +msgstr "Ruído Cruzado B" #: ../share/filters/filters.svg.h:696 msgid "Adds a small scale crossy graininess" -msgstr "" +msgstr "Adiciona um pequeno granulado cruzado" #: ../share/filters/filters.svg.h:698 -#, fuzzy msgid "Cross Noise" -msgstr "Ruído de Poisson" +msgstr "Ruído Cruzado" #: ../share/filters/filters.svg.h:700 msgid "Adds a small scale screen like graininess" -msgstr "" +msgstr "Adiciona uma tela pequena tipo granulado" #: ../share/filters/filters.svg.h:702 -#, fuzzy msgid "Duotone Turbulent" -msgstr "Turbulência" +msgstr "Turbulência em 2 Tons" #: ../share/filters/filters.svg.h:706 -#, fuzzy msgid "Light Eraser Cracked" -msgstr "Brilho" +msgstr "Apagador de Luz Rachado" #: ../share/filters/filters.svg.h:710 -#, fuzzy msgid "Poster Turbulent" -msgstr "Turbulência" +msgstr "Poster Turbulento" #: ../share/filters/filters.svg.h:714 -#, fuzzy msgid "Tartan Smart" -msgstr "Alvo" +msgstr "Tartã Esperto" #: ../share/filters/filters.svg.h:716 msgid "Highly configurable checkered tartan pattern" -msgstr "" +msgstr "Padrão de tartã quadriculado altamente configurável" #: ../share/filters/filters.svg.h:718 -#, fuzzy msgid "Light Contour" -msgstr "Fonte de Luz:" +msgstr "Contorno de Luz" #: ../share/filters/filters.svg.h:720 msgid "Uses vertical specular light to draw lines" -msgstr "" +msgstr "Usa luz especular vertical para desenhar linhas" #: ../share/filters/filters.svg.h:722 -#, fuzzy msgid "Liquid" -msgstr "desenho%s" +msgstr "Líquido" #: ../share/filters/filters.svg.h:724 -#, fuzzy msgid "Colorizable filling with liquid transparency" -msgstr "0 (transparente)" +msgstr "Preenchimento colorível com transparência líquida" #: ../share/filters/filters.svg.h:726 -#, fuzzy msgid "Aluminium" -msgstr "Tamanho mínimo" +msgstr "Alumínio" #: ../share/filters/filters.svg.h:728 msgid "Aluminium effect with sharp brushed reflections" -msgstr "" +msgstr "Efeito de alumínio com reflexões nítidas escovadas" #: ../share/filters/filters.svg.h:730 -#, fuzzy msgid "Comics" -msgstr "Combinar" +msgstr "Banda Desenhada" #: ../share/filters/filters.svg.h:732 -#, fuzzy msgid "Comics cartoon drawing effect" -msgstr "Ajusta a Ecrã ao desenho" +msgstr "Efeito de desenho de banda desenhada" #: ../share/filters/filters.svg.h:734 -#, fuzzy msgid "Comics Draft" -msgstr "Combinar" +msgstr "Esboço de Banda Desenhada" #: ../share/filters/filters.svg.h:736 ../share/filters/filters.svg.h:768 msgid "Draft painted cartoon shading with a glassy look" -msgstr "" +msgstr "Esboço de banda desenhada com aspeto vítreo" #: ../share/filters/filters.svg.h:738 -#, fuzzy msgid "Comics Fading" -msgstr "Combinar" +msgstr "Banda Desenhada a Desvanecer" #: ../share/filters/filters.svg.h:740 msgid "Cartoon paint style with some fading at the edges" -msgstr "" +msgstr "Desenho de banda desenhada a desvanecer nas bordas" #: ../share/filters/filters.svg.h:742 -#, fuzzy msgid "Brushed Metal" -msgstr "Meta-ficheiro otimizad" +msgstr "Metal Escovado" #: ../share/filters/filters.svg.h:744 -#, fuzzy msgid "Satiny metal surface effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de superfície metálica satinada" #: ../share/filters/filters.svg.h:746 -#, fuzzy msgid "Opaline" -msgstr "_Contorno" +msgstr "Opalino" #: ../share/filters/filters.svg.h:748 msgid "Contouring version of smooth shader" -msgstr "" +msgstr "Versão de contorno de sombreador suave" #: ../share/filters/filters.svg.h:750 -#, fuzzy msgid "Chrome" -msgstr "Combinar" +msgstr "Cromado" #: ../share/filters/filters.svg.h:752 -#, fuzzy msgid "Bright chrome effect" -msgstr "Mais claro" +msgstr "Efeito cromado brilhante" #: ../share/filters/filters.svg.h:754 -#, fuzzy msgid "Deep Chrome" -msgstr "Combinar" +msgstr "Cromado Profundo" #: ../share/filters/filters.svg.h:756 -#, fuzzy msgid "Dark chrome effect" -msgstr "Efeito actual" +msgstr "Efeito cromado escuro" #: ../share/filters/filters.svg.h:758 -#, fuzzy msgid "Emboss Shader" -msgstr "Sem efeito" +msgstr "Sombreado de Alto Relevo" #: ../share/filters/filters.svg.h:760 -#, fuzzy msgid "Combination of satiny and emboss effect" -msgstr "Remover efeito de caminho" +msgstr "Combinação de efeito alto relevo e sem defeitos" #: ../share/filters/filters.svg.h:762 -#, fuzzy msgid "Sharp Metal" -msgstr "Afiar" +msgstr "Metal Nítido" #: ../share/filters/filters.svg.h:764 -#, fuzzy msgid "Chrome effect with darkened edges" -msgstr "Propriedades de Estrelas" +msgstr "Efeito cromado com margens escurecidas" # Enevoar, desfocar ou borrar? -- krishna #: ../share/filters/filters.svg.h:766 -#, fuzzy msgid "Brush Draw" -msgstr "Desfocar" +msgstr "Desenho a Pincel" #: ../share/filters/filters.svg.h:770 -#, fuzzy msgid "Chrome Emboss" -msgstr "Embutir" +msgstr "Alto Relevo Cromado" #: ../share/filters/filters.svg.h:772 -#, fuzzy msgid "Embossed chrome effect" -msgstr "Remover efeito de caminho" +msgstr "Efeito de cromado em alto relevo" #: ../share/filters/filters.svg.h:774 -#, fuzzy msgid "Contour Emboss" -msgstr "Cores" +msgstr "Alto Relevo de Contorno" #: ../share/filters/filters.svg.h:776 -#, fuzzy msgid "Satiny and embossed contour effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de alto relevo e sem defeito no contorno" #: ../share/filters/filters.svg.h:778 -#, fuzzy msgid "Sharp Deco" -msgstr "Afiar" +msgstr "Nitidez Deco" #: ../share/filters/filters.svg.h:780 -#, fuzzy msgid "Unrealistic reflections with sharp edges" -msgstr "Propriedades de Estrelas" +msgstr "Reflexões não realísticas com bordas nítidas" #: ../share/filters/filters.svg.h:782 -#, fuzzy msgid "Deep Metal" -msgstr "Meta-ficheiro otimizad" +msgstr "Metal Profundo" #: ../share/filters/filters.svg.h:784 msgid "Deep and dark metal shading" -msgstr "" +msgstr "Sembreado de metal profundo" #: ../share/filters/filters.svg.h:786 -#, fuzzy msgid "Aluminium Emboss" -msgstr "Tamanho mínimo" +msgstr "Alto Relevo de Alumínio" #: ../share/filters/filters.svg.h:788 msgid "Satiny aluminium effect with embossing" -msgstr "" +msgstr "Efeito de alto relevo e sem defeito de alumínio" #: ../share/filters/filters.svg.h:790 -#, fuzzy msgid "Refractive Glass" -msgstr "Mudança rela_tiva" +msgstr "Vidro Refratário" #: ../share/filters/filters.svg.h:792 msgid "Double reflection through glass with some refraction" -msgstr "" +msgstr "Reflexo duplo através de vidro com alguma refraxão" #: ../share/filters/filters.svg.h:794 -#, fuzzy msgid "Frosted Glass" -msgstr "Fechar intervalos" +msgstr "Vidro Fosco" #: ../share/filters/filters.svg.h:796 -#, fuzzy msgid "Satiny glass effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de vidro satinado" #: ../share/filters/filters.svg.h:798 -#, fuzzy msgid "Bump Engraving" -msgstr "Desenho" +msgstr "Gravura em Alto Relevo" #: ../share/filters/filters.svg.h:800 -#, fuzzy msgid "Carving emboss effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de gravura a preto e branco com alto relevo" #: ../share/filters/filters.svg.h:802 msgid "Chromolitho Alternate" -msgstr "" +msgstr "Cromolito Alternativo" #: ../share/filters/filters.svg.h:804 -#, fuzzy msgid "Old chromolithographic effect" -msgstr "Criar e aplicar efeito de caminho" +msgstr "Efeito cromolitográfico antigo" #: ../share/filters/filters.svg.h:806 -#, fuzzy msgid "Convoluted Bump" -msgstr "Convolver" +msgstr "Alto Relevo Enrolado" #: ../share/filters/filters.svg.h:808 -#, fuzzy msgid "Convoluted emboss effect" -msgstr "Remover efeito de caminho" +msgstr "Efeito de alto relevo enrolado" #: ../share/filters/filters.svg.h:810 -#, fuzzy msgid "Emergence" -msgstr "Divergência" +msgstr "Surgir" #: ../share/filters/filters.svg.h:812 msgid "Cut out, add inner shadow and colorize some parts of an image" -msgstr "" +msgstr "Recortar, adicionar sombra dentro e colorizar algumas partes da imagem" #: ../share/filters/filters.svg.h:814 msgid "Litho" -msgstr "" +msgstr "Litografia" #: ../share/filters/filters.svg.h:816 -#, fuzzy msgid "Create a two colors lithographic effect" -msgstr "Criar e aplicar efeito de caminho" +msgstr "Cria um efeito litógráfico de 2 cores" #: ../share/filters/filters.svg.h:818 -#, fuzzy msgid "Paint Channels" -msgstr "Canal Ciano" +msgstr "Pintar canais" #: ../share/filters/filters.svg.h:820 msgid "Colorize separately the three color channels" -msgstr "" +msgstr "Colorir separadamente os 3 canais de cor" #: ../share/filters/filters.svg.h:822 -#, fuzzy msgid "Posterized Light Eraser" -msgstr "Brilho" +msgstr "Apagador de Luz Posterizado" #: ../share/filters/filters.svg.h:824 msgid "Create a semi transparent posterized image" -msgstr "" +msgstr "Cria uma imagem posterizada semi-transparente" #: ../share/filters/filters.svg.h:826 -#, fuzzy msgid "Trichrome" -msgstr "Combinar" +msgstr "Tricromia (3 cores)" #: ../share/filters/filters.svg.h:828 msgid "Like Duochrome but with three colors" -msgstr "" +msgstr "Como a Dicromia (2 cores) mas com 3 cores" #: ../share/filters/filters.svg.h:830 msgid "Simulate CMY" -msgstr "" +msgstr "Simular CMY" #: ../share/filters/filters.svg.h:832 msgid "Render Cyan, Magenta and Yellow channels with a colorizable background" -msgstr "" +msgstr "Renderiza os canais Ciano, Magenta e Amarelo com um fundo colorizável" #: ../share/filters/filters.svg.h:834 -#, fuzzy msgid "Contouring table" -msgstr "Único" +msgstr "Multiplicar Contornos" #: ../share/filters/filters.svg.h:836 -#, fuzzy msgid "Blurred multiple contours for objects" -msgstr "Encaixar nós e guias aos nós dos objectos" +msgstr "Contornos múltiplos desfocados nos objetos" #: ../share/filters/filters.svg.h:838 -#, fuzzy msgid "Posterized Blur" -msgstr "Brilho" +msgstr "Desfocado Posterizado" #: ../share/filters/filters.svg.h:840 msgid "Converts blurred contour to posterized steps" -msgstr "" +msgstr "Converte contornos desfocados em passos posterizados" #: ../share/filters/filters.svg.h:842 -#, fuzzy msgid "Contouring discrete" -msgstr "Continuando o caminho seleccionado" +msgstr "Contorno discreto" #: ../share/filters/filters.svg.h:844 -#, fuzzy msgid "Sharp multiple contour for objects" -msgstr "Encaixar nós e guias aos nós dos objectos" +msgstr "Aumentar nitidez em vários contornos para os objetos" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:2 -#, fuzzy msgctxt "Palette" msgid "Black" msgstr "Preto" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:3 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "90% Gray" -msgstr "Tons de cinza" +msgstr "90% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:4 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "80% Gray" -msgstr "Tons de cinza" +msgstr "80% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:5 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "70% Gray" -msgstr "Tons de cinza" +msgstr "70% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:6 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "60% Gray" -msgstr "Tons de cinza" +msgstr "60% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:7 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "50% Gray" -msgstr "Tons de cinza" +msgstr "50% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:8 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "40% Gray" -msgstr "Tons de cinza" +msgstr "40% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:9 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "30% Gray" -msgstr "Tons de cinza" +msgstr "30% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:10 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "20% Gray" -msgstr "Tons de cinza" +msgstr "20% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:11 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "10% Gray" -msgstr "Tons de cinza" +msgstr "10% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:12 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "7.5% Gray" -msgstr "Tons de cinza" +msgstr "7.5% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:13 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "5% Gray" -msgstr "Tons de cinza" +msgstr "5% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:14 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "2.5% Gray" -msgstr "Tons de cinza" +msgstr "2.5% Cinza" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:15 -#, fuzzy msgctxt "Palette" msgid "White" msgstr "Branco" @@ -2346,1277 +2173,1251 @@ msgstr "Branco" #: ../share/palettes/palettes.h:16 msgctxt "Palette" msgid "Maroon (#800000)" -msgstr "" +msgstr "Bordô (#800000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:17 msgctxt "Palette" msgid "Red (#FF0000)" -msgstr "" +msgstr "Vermelho (#FF0000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:18 msgctxt "Palette" msgid "Olive (#808000)" -msgstr "" +msgstr "Azeitona (#808000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:19 msgctxt "Palette" msgid "Yellow (#FFFF00)" -msgstr "" +msgstr "Amarelo (#FFFF00)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:20 msgctxt "Palette" msgid "Green (#008000)" -msgstr "" +msgstr "Verde (#008000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:21 msgctxt "Palette" msgid "Lime (#00FF00)" -msgstr "" +msgstr "Lima (#00FF00)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:22 msgctxt "Palette" msgid "Teal (#008080)" -msgstr "" +msgstr "Verde-azulado (#008080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:23 msgctxt "Palette" msgid "Aqua (#00FFFF)" -msgstr "" +msgstr "Ãgua (#00FFFF)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:24 msgctxt "Palette" msgid "Navy (#000080)" -msgstr "" +msgstr "Azul-marinho (#000080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:25 msgctxt "Palette" msgid "Blue (#0000FF)" -msgstr "" +msgstr "Azul (#0000FF)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:26 msgctxt "Palette" msgid "Purple (#800080)" -msgstr "" +msgstr "Púrpura (#800080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:27 msgctxt "Palette" msgid "Fuchsia (#FF00FF)" -msgstr "" +msgstr "Rosa vívido (#FF00FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:28 msgctxt "Palette" msgid "black (#000000)" -msgstr "" +msgstr "preto (#000000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:29 msgctxt "Palette" msgid "dimgray (#696969)" -msgstr "" +msgstr "cinza-escuro (#696969)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:30 msgctxt "Palette" msgid "gray (#808080)" -msgstr "" +msgstr "cinzento (#808080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:31 msgctxt "Palette" msgid "darkgray (#A9A9A9)" -msgstr "" +msgstr "cinza-escuro (#A9A9A9)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:32 msgctxt "Palette" msgid "silver (#C0C0C0)" -msgstr "" +msgstr "prateado (#C0C0C0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:33 msgctxt "Palette" msgid "lightgray (#D3D3D3)" -msgstr "" +msgstr "cinza-claro (#D3D3D3)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:34 msgctxt "Palette" msgid "gainsboro (#DCDCDC)" -msgstr "" +msgstr "cinza-claro-azulado (#DCDCDC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:35 msgctxt "Palette" msgid "whitesmoke (#F5F5F5)" -msgstr "" +msgstr "branco-fumo (#F5F5F5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:36 msgctxt "Palette" msgid "white (#FFFFFF)" -msgstr "" +msgstr "branco (#FFFFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:37 msgctxt "Palette" msgid "rosybrown (#BC8F8F)" -msgstr "" +msgstr "castanho-rosado (#BC8F8F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:38 msgctxt "Palette" msgid "indianred (#CD5C5C)" -msgstr "" +msgstr "vermelho-indiano (#CD5C5C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:39 msgctxt "Palette" msgid "brown (#A52A2A)" -msgstr "" +msgstr "castanho (#A52A2A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:40 msgctxt "Palette" msgid "firebrick (#B22222)" -msgstr "" +msgstr "cor-de-tijolo (#B22222)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:41 msgctxt "Palette" msgid "lightcoral (#F08080)" -msgstr "" +msgstr "coral-claro (#F08080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:42 msgctxt "Palette" msgid "maroon (#800000)" -msgstr "" +msgstr "bordô (#800000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:43 msgctxt "Palette" msgid "darkred (#8B0000)" -msgstr "" +msgstr "vermelho-escuro (#8B0000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:44 msgctxt "Palette" msgid "red (#FF0000)" -msgstr "" +msgstr "vermelho (#FF0000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:45 msgctxt "Palette" msgid "snow (#FFFAFA)" -msgstr "" +msgstr "neve (#FFFAFA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:46 msgctxt "Palette" msgid "mistyrose (#FFE4E1)" -msgstr "" +msgstr "rosa-místico (#FFE4E1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:47 msgctxt "Palette" msgid "salmon (#FA8072)" -msgstr "" +msgstr "salmão (#FA8072)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:48 msgctxt "Palette" msgid "tomato (#FF6347)" -msgstr "" +msgstr "tomate (#FF6347)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:49 msgctxt "Palette" msgid "darksalmon (#E9967A)" -msgstr "" +msgstr "salmão-escuro (#E9967A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:50 msgctxt "Palette" msgid "coral (#FF7F50)" -msgstr "" +msgstr "coral (#FF7F50)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:51 msgctxt "Palette" msgid "orangered (#FF4500)" -msgstr "" +msgstr "laranja-vermelho (#FF4500)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:52 msgctxt "Palette" msgid "lightsalmon (#FFA07A)" -msgstr "" +msgstr "salmão-claro (#FFA07A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:53 msgctxt "Palette" msgid "sienna (#A0522D)" -msgstr "" +msgstr "sienna (#A0522D)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:54 msgctxt "Palette" msgid "seashell (#FFF5EE)" -msgstr "" +msgstr "concha-do-mar (#FFF5EE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:55 msgctxt "Palette" msgid "chocolate (#D2691E)" -msgstr "" +msgstr "chocolate (#D2691E)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:56 msgctxt "Palette" msgid "saddlebrown (#8B4513)" -msgstr "" +msgstr "castanho-sela (#8B4513)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:57 msgctxt "Palette" msgid "sandybrown (#F4A460)" -msgstr "" +msgstr "castanho-areia (#F4A460)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:58 msgctxt "Palette" msgid "peachpuff (#FFDAB9)" -msgstr "" +msgstr "pêssego-rosa (#FFDAB9)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:59 msgctxt "Palette" msgid "peru (#CD853F)" -msgstr "" +msgstr "perú (#CD853F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:60 msgctxt "Palette" msgid "linen (#FAF0E6)" -msgstr "" +msgstr "linho (#FAF0E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:61 msgctxt "Palette" msgid "bisque (#FFE4C4)" -msgstr "" +msgstr "rosa-bisque (#FFE4C4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:62 msgctxt "Palette" msgid "darkorange (#FF8C00)" -msgstr "" +msgstr "laranja-escuro (#FF8C00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:63 msgctxt "Palette" msgid "burlywood (#DEB887)" -msgstr "" +msgstr "castanho-areia (#DEB887)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:64 msgctxt "Palette" msgid "tan (#D2B48C)" -msgstr "" +msgstr "pardo (#D2B48C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:65 msgctxt "Palette" msgid "antiquewhite (#FAEBD7)" -msgstr "" +msgstr "branco-envelhecido (#FAEBD7)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:66 msgctxt "Palette" msgid "navajowhite (#FFDEAD)" -msgstr "" +msgstr "branco-navajo (#FFDEAD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:67 msgctxt "Palette" msgid "blanchedalmond (#FFEBCD)" -msgstr "" +msgstr "amêndoa-branqueada (#FFEBCD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:68 msgctxt "Palette" msgid "papayawhip (#FFEFD5)" -msgstr "" +msgstr "papaia-batida (#FFEFD5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:69 msgctxt "Palette" msgid "moccasin (#FFE4B5)" -msgstr "" +msgstr "mocassim (#FFE4B5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:70 msgctxt "Palette" msgid "orange (#FFA500)" -msgstr "" +msgstr "laranja (#FFA500)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:71 msgctxt "Palette" msgid "wheat (#F5DEB3)" -msgstr "" +msgstr "trigo (#F5DEB3)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:72 msgctxt "Palette" msgid "oldlace (#FDF5E6)" -msgstr "" +msgstr "atacador-antigo (#FDF5E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:73 msgctxt "Palette" msgid "floralwhite (#FFFAF0)" -msgstr "" +msgstr "branco-floral (#FFFAF0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:74 msgctxt "Palette" msgid "darkgoldenrod (#B8860B)" -msgstr "" +msgstr "solidago-escuro (#B8860B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:75 msgctxt "Palette" msgid "goldenrod (#DAA520)" -msgstr "" +msgstr "solidago (#DAA520)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:76 msgctxt "Palette" msgid "cornsilk (#FFF8DC)" -msgstr "" +msgstr "folha-de-milho-seca (#FFF8DC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:77 msgctxt "Palette" msgid "gold (#FFD700)" -msgstr "" +msgstr "ouro (#FFD700)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:78 msgctxt "Palette" msgid "khaki (#F0E68C)" -msgstr "" +msgstr "caqui (#F0E68C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:79 msgctxt "Palette" msgid "lemonchiffon (#FFFACD)" -msgstr "" +msgstr "bolo-limão (#FFFACD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:80 msgctxt "Palette" msgid "palegoldenrod (#EEE8AA)" -msgstr "" +msgstr "ouro-pálido (#EEE8AA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:81 msgctxt "Palette" msgid "darkkhaki (#BDB76B)" -msgstr "" +msgstr "caqui-escuro (#BDB76B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:82 msgctxt "Palette" msgid "beige (#F5F5DC)" -msgstr "" +msgstr "bege (#F5F5DC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:83 msgctxt "Palette" msgid "lightgoldenrodyellow (#FAFAD2)" -msgstr "" +msgstr "ouro-pálido-claro (#FAFAD2)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:84 msgctxt "Palette" msgid "olive (#808000)" -msgstr "" +msgstr "oliva (#808000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:85 msgctxt "Palette" msgid "yellow (#FFFF00)" -msgstr "" +msgstr "amarelo (#FFFF00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:86 msgctxt "Palette" msgid "lightyellow (#FFFFE0)" -msgstr "" +msgstr "amarelo-claro (#FFFFE0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:87 msgctxt "Palette" msgid "ivory (#FFFFF0)" -msgstr "" +msgstr "marfim (#FFFFF0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:88 msgctxt "Palette" msgid "olivedrab (#6B8E23)" -msgstr "" +msgstr "verde-oliva (#6B8E23)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:89 msgctxt "Palette" msgid "yellowgreen (#9ACD32)" -msgstr "" +msgstr "amarelo-verde (#9ACD32)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:90 msgctxt "Palette" msgid "darkolivegreen (#556B2F)" -msgstr "" +msgstr "verde-azeitona-escuro" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:91 msgctxt "Palette" msgid "greenyellow (#ADFF2F)" -msgstr "" +msgstr "verde-amarelo (#ADFF2F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:92 msgctxt "Palette" msgid "chartreuse (#7FFF00)" -msgstr "" +msgstr "verde-limão (#7FFF00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:93 msgctxt "Palette" msgid "lawngreen (#7CFC00)" -msgstr "" +msgstr "verde-erva (#7CFC00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:94 msgctxt "Palette" msgid "darkseagreen (#8FBC8F)" -msgstr "" +msgstr "verde-mar-escuro (#8FBC8F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:95 msgctxt "Palette" msgid "forestgreen (#228B22)" -msgstr "" +msgstr "verde-floresta (#228B22)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:96 msgctxt "Palette" msgid "limegreen (#32CD32)" -msgstr "" +msgstr "verde-lima (#32CD32)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:97 msgctxt "Palette" msgid "lightgreen (#90EE90)" -msgstr "" +msgstr "verde-claro (#90EE90)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:98 msgctxt "Palette" msgid "palegreen (#98FB98)" -msgstr "" +msgstr "verde-pálido (#98FB98)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:99 msgctxt "Palette" msgid "darkgreen (#006400)" -msgstr "" +msgstr "verde-escuro (#006400)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:100 msgctxt "Palette" msgid "green (#008000)" -msgstr "" +msgstr "verde (#008000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:101 msgctxt "Palette" msgid "lime (#00FF00)" -msgstr "" +msgstr "lima (#00FF00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:102 msgctxt "Palette" msgid "honeydew (#F0FFF0)" -msgstr "" +msgstr "verde-melão (#F0FFF0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:103 msgctxt "Palette" msgid "seagreen (#2E8B57)" -msgstr "" +msgstr "verde-mar (#2E8B57)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:104 msgctxt "Palette" msgid "mediumseagreen (#3CB371)" -msgstr "" +msgstr "verde-mar-médio (#3CB371)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:105 msgctxt "Palette" msgid "springgreen (#00FF7F)" -msgstr "" +msgstr "verde-primavera (#00FF7F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:106 msgctxt "Palette" msgid "mintcream (#F5FFFA)" -msgstr "" +msgstr "creme-menta (#F5FFFA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:107 msgctxt "Palette" msgid "mediumspringgreen (#00FA9A)" -msgstr "" +msgstr "verde-primavera-médio (#00FA9A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:108 msgctxt "Palette" msgid "mediumaquamarine (#66CDAA)" -msgstr "" +msgstr "azul-marinho-médio (#66CDAA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:109 msgctxt "Palette" msgid "aquamarine (#7FFFD4)" -msgstr "" +msgstr "azul-marinho (#7FFFD4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:110 msgctxt "Palette" msgid "turquoise (#40E0D0)" -msgstr "" +msgstr "turquesa (#40E0D0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:111 msgctxt "Palette" msgid "lightseagreen (#20B2AA)" -msgstr "" +msgstr "verde-mar-claro (#20B2AA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:112 msgctxt "Palette" msgid "mediumturquoise (#48D1CC)" -msgstr "" +msgstr "turquesa-médio (#48D1CC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:113 msgctxt "Palette" msgid "darkslategray (#2F4F4F)" -msgstr "" +msgstr "ardósia-cinza-escuro" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:114 msgctxt "Palette" msgid "paleturquoise (#AFEEEE)" -msgstr "" +msgstr "turquesa-pálido (#AFEEEE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:115 msgctxt "Palette" msgid "teal (#008080)" -msgstr "" +msgstr "verde-azulado (#008080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:116 msgctxt "Palette" msgid "darkcyan (#008B8B)" -msgstr "" +msgstr "ciano-escuro (#008B8B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:117 msgctxt "Palette" msgid "cyan (#00FFFF)" -msgstr "" +msgstr "ciano (#00FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:118 msgctxt "Palette" msgid "lightcyan (#E0FFFF)" -msgstr "" +msgstr "ciano-claro (#E0FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:119 msgctxt "Palette" msgid "azure (#F0FFFF)" -msgstr "" +msgstr "azul-ciano-céu (#F0FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:120 msgctxt "Palette" msgid "darkturquoise (#00CED1)" -msgstr "" +msgstr "turquesa-escuro (#00CED1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:121 msgctxt "Palette" msgid "cadetblue (#5F9EA0)" -msgstr "" +msgstr "azul-cadete (#5F9EA0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:122 msgctxt "Palette" msgid "powderblue (#B0E0E6)" -msgstr "" +msgstr "azul-pó (#B0E0E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:123 msgctxt "Palette" msgid "lightblue (#ADD8E6)" -msgstr "" +msgstr "azul-claro (#ADD8E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:124 msgctxt "Palette" msgid "deepskyblue (#00BFFF)" -msgstr "" +msgstr "azul-céu-escuro (#00BFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:125 msgctxt "Palette" msgid "skyblue (#87CEEB)" -msgstr "" +msgstr "azul-céu (#87CEEB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:126 msgctxt "Palette" msgid "lightskyblue (#87CEFA)" -msgstr "" +msgstr "azul-céu-claro (#87CEFA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:127 msgctxt "Palette" msgid "steelblue (#4682B4)" -msgstr "" +msgstr "azul-aço (#4682B4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:128 msgctxt "Palette" msgid "aliceblue (#F0F8FF)" -msgstr "" +msgstr "azul-alice (#F0F8FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:129 msgctxt "Palette" msgid "dodgerblue (#1E90FF)" -msgstr "" +msgstr "azul-dodger (#1E90FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:130 msgctxt "Palette" msgid "slategray (#708090)" -msgstr "" +msgstr "cinza-ardósia (#708090)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:131 msgctxt "Palette" msgid "lightslategray (#778899)" -msgstr "" +msgstr "cinza-ardósia-claro (#778899)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:132 msgctxt "Palette" msgid "lightsteelblue (#B0C4DE)" -msgstr "" +msgstr "azul-aço-claro (#B0C4DE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:133 msgctxt "Palette" msgid "cornflowerblue (#6495ED)" -msgstr "" +msgstr "azul-centáurea (#6495ED)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:134 msgctxt "Palette" msgid "royalblue (#4169E1)" -msgstr "" +msgstr "azul-real (#4169E1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:135 msgctxt "Palette" msgid "midnightblue (#191970)" -msgstr "" +msgstr "azul-meia-noite (#191970)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:136 msgctxt "Palette" msgid "lavender (#E6E6FA)" -msgstr "" +msgstr "lavanda (#E6E6FA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:137 msgctxt "Palette" msgid "navy (#000080)" -msgstr "" +msgstr "azul-marinho (#000080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:138 msgctxt "Palette" msgid "darkblue (#00008B)" -msgstr "" +msgstr "azul-escuro (#00008B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:139 msgctxt "Palette" msgid "mediumblue (#0000CD)" -msgstr "" +msgstr "azul-médio (#0000CD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:140 msgctxt "Palette" msgid "blue (#0000FF)" -msgstr "" +msgstr "azul (#0000FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:141 msgctxt "Palette" msgid "ghostwhite (#F8F8FF)" -msgstr "" +msgstr "branco-fantasma (#F8F8FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:142 msgctxt "Palette" msgid "slateblue (#6A5ACD)" -msgstr "" +msgstr "azul-ardósia (#6A5ACD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:143 msgctxt "Palette" msgid "darkslateblue (#483D8B)" -msgstr "" +msgstr "azul-ardósia-escuro (#483D8B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:144 msgctxt "Palette" msgid "mediumslateblue (#7B68EE)" -msgstr "" +msgstr "azul-ardósia-médio (#7B68EE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:145 msgctxt "Palette" msgid "mediumpurple (#9370DB)" -msgstr "" +msgstr "púrpura-médio (#9370DB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:146 msgctxt "Palette" msgid "blueviolet (#8A2BE2)" -msgstr "" +msgstr "violeta-azul (#8A2BE2)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:147 msgctxt "Palette" msgid "indigo (#4B0082)" -msgstr "" +msgstr "indigo (#4B0082)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:148 msgctxt "Palette" msgid "darkorchid (#9932CC)" -msgstr "" +msgstr "orquídea-escuro (#9932CC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:149 msgctxt "Palette" msgid "darkviolet (#9400D3)" -msgstr "" +msgstr "violeta-escuro (#9400D3)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:150 msgctxt "Palette" msgid "mediumorchid (#BA55D3)" -msgstr "" +msgstr "orquídea-médio (#BA55D3)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:151 msgctxt "Palette" msgid "thistle (#D8BFD8)" -msgstr "" +msgstr "cardo (#D8BFD8)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:152 msgctxt "Palette" msgid "plum (#DDA0DD)" -msgstr "" +msgstr "ameixa (#DDA0DD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:153 msgctxt "Palette" msgid "violet (#EE82EE)" -msgstr "" +msgstr "violeta (#EE82EE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:154 msgctxt "Palette" msgid "purple (#800080)" -msgstr "" +msgstr "púrpura (#800080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:155 msgctxt "Palette" msgid "darkmagenta (#8B008B)" -msgstr "" +msgstr "magenta-escuro (#8B008B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:156 msgctxt "Palette" msgid "magenta (#FF00FF)" -msgstr "" +msgstr "magenta (#FF00FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:157 msgctxt "Palette" msgid "orchid (#DA70D6)" -msgstr "" +msgstr "orquídea (#DA70D6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:158 msgctxt "Palette" msgid "mediumvioletred (#C71585)" -msgstr "" +msgstr "vermelho-violeta-médio (#C71585)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:159 msgctxt "Palette" msgid "deeppink (#FF1493)" -msgstr "" +msgstr "rosa-escuro (#FF1493)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:160 msgctxt "Palette" msgid "hotpink (#FF69B4)" -msgstr "" +msgstr "rosa-choque (#FF69B4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:161 msgctxt "Palette" msgid "lavenderblush (#FFF0F5)" -msgstr "" +msgstr "lavanda-corado (#FFF0F5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:162 msgctxt "Palette" msgid "palevioletred (#DB7093)" -msgstr "" +msgstr "vermelho-violeta-pálido (#DB7093)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:163 msgctxt "Palette" msgid "crimson (#DC143C)" -msgstr "" +msgstr "carmesim (#DC143C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:164 msgctxt "Palette" msgid "pink (#FFC0CB)" -msgstr "" +msgstr "rosa (#FFC0CB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:165 msgctxt "Palette" msgid "lightpink (#FFB6C1)" -msgstr "" +msgstr "rosa-claro (#FFB6C1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:166 msgctxt "Palette" msgid "rebeccapurple (#663399)" -msgstr "" +msgstr "púrpura-rebbeca (#663399)" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:167 -#, fuzzy msgctxt "Palette" msgid "Butter 1" -msgstr "Sem ponta" +msgstr "Manteiga 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:168 -#, fuzzy msgctxt "Palette" msgid "Butter 2" -msgstr "Sem ponta" +msgstr "Manteiga 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:169 -#, fuzzy msgctxt "Palette" msgid "Butter 3" -msgstr "Sem ponta" +msgstr "Manteiga 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:170 msgctxt "Palette" msgid "Chameleon 1" -msgstr "" +msgstr "Camaleão 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:171 msgctxt "Palette" msgid "Chameleon 2" -msgstr "" +msgstr "Camaleão 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:172 msgctxt "Palette" msgid "Chameleon 3" -msgstr "" +msgstr "Camaleão 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:173 -#, fuzzy msgctxt "Palette" msgid "Orange 1" -msgstr "Ângulo" +msgstr "Laranja 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:174 -#, fuzzy msgctxt "Palette" msgid "Orange 2" -msgstr "Ângulo" +msgstr "Laranja 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:175 -#, fuzzy msgctxt "Palette" msgid "Orange 3" -msgstr "Ângulo" +msgstr "Laranja 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:176 msgctxt "Palette" msgid "Sky Blue 1" -msgstr "" +msgstr "Azul Céu 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:177 msgctxt "Palette" msgid "Sky Blue 2" -msgstr "" +msgstr "Azul Céu 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:178 msgctxt "Palette" msgid "Sky Blue 3" -msgstr "" +msgstr "Azul Céu 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:179 msgctxt "Palette" msgid "Plum 1" -msgstr "" +msgstr "Ameixa 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:180 msgctxt "Palette" msgid "Plum 2" -msgstr "" +msgstr "Ameixa 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:181 msgctxt "Palette" msgid "Plum 3" -msgstr "" +msgstr "Ameixa 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:182 msgctxt "Palette" msgid "Chocolate 1" -msgstr "" +msgstr "Chocolate 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:183 msgctxt "Palette" msgid "Chocolate 2" -msgstr "" +msgstr "Chocolate 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:184 msgctxt "Palette" msgid "Chocolate 3" -msgstr "" +msgstr "Chocolate 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:185 -#, fuzzy msgctxt "Palette" msgid "Scarlet Red 1" -msgstr "Escalar nós" +msgstr "Vermelho Escarlate 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:186 -#, fuzzy msgctxt "Palette" msgid "Scarlet Red 2" -msgstr "Escalar nós" +msgstr "Vermelho Escarlate 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:187 -#, fuzzy msgctxt "Palette" msgid "Scarlet Red 3" -msgstr "Escalar nós" +msgstr "Vermelho Escarlate 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:188 -#, fuzzy msgctxt "Palette" msgid "Snowy White" -msgstr "Branco" +msgstr "Branco Neve" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:189 -#, fuzzy msgctxt "Palette" msgid "Aluminium 1" -msgstr "Tamanho mínimo" +msgstr "Alumínio 1" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:190 -#, fuzzy msgctxt "Palette" msgid "Aluminium 2" -msgstr "Tamanho mínimo" +msgstr "Alumínio 2" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:191 -#, fuzzy msgctxt "Palette" msgid "Aluminium 3" -msgstr "Tamanho mínimo" +msgstr "Alumínio 3" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:192 -#, fuzzy msgctxt "Palette" msgid "Aluminium 4" -msgstr "Tamanho mínimo" +msgstr "Alumínio 4" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:193 -#, fuzzy msgctxt "Palette" msgid "Aluminium 5" -msgstr "Tamanho mínimo" +msgstr "Alumínio 5" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:194 -#, fuzzy msgctxt "Palette" msgid "Aluminium 6" -msgstr "Tamanho mínimo" +msgstr "Alumínio 6" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:195 -#, fuzzy msgctxt "Palette" msgid "Jet Black" -msgstr "Preto" +msgstr "Preto Carvão" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:1" -msgstr "" +msgstr "Listrado 1:1" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:1 white" -msgstr "" +msgstr "Listrado 1:1 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:1.5" -msgstr "" +msgstr "Listrado 1:1.5" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:1.5 white" -msgstr "" +msgstr "Listrado 1:1.5 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:2" -msgstr "" +msgstr "Listrado 1:2" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:2 white" -msgstr "" +msgstr "Listrado 1:2 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:3" -msgstr "" +msgstr "Listrado 1:3" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:3 white" -msgstr "" +msgstr "Listrado 1:3 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:4" -msgstr "" +msgstr "Listrado 1:4" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:4 white" -msgstr "" +msgstr "Listrado 1:4 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:5" -msgstr "" +msgstr "Listrado 1:5" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:5 white" -msgstr "" +msgstr "Listrado 1:5 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:8" -msgstr "" +msgstr "Listrado 1:8" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:8 white" -msgstr "" +msgstr "Listrado 1:8 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:10" -msgstr "" +msgstr "Listrado 1:10" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:10 white" -msgstr "" +msgstr "Listrado 1:10 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:16" -msgstr "" +msgstr "Listrado 1:16" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:16 white" -msgstr "" +msgstr "Listrado 1:16 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:32" -msgstr "" +msgstr "Listrado 1:32" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:32 white" -msgstr "" +msgstr "Listrado 1:32 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:64" -msgstr "" +msgstr "Listrado 1:64" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 2:1" -msgstr "" +msgstr "Listrado 2:1" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 2:1 white" -msgstr "" +msgstr "Listrado 2:1 branco" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 4:1" -msgstr "" +msgstr "Listrado 4:1" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 4:1 white" -msgstr "" +msgstr "Listrado 4:1 branco" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Checkerboard" -msgstr "Whiteboa_rd" +msgstr "Tabuleiro" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Checkerboard white" -msgstr "Whiteboa_rd" +msgstr "Tabuleiro branco" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Packed circles" -msgstr "círculo" +msgstr "Círculos Abarrotados" #: ../share/patterns/patterns.svg.h:1 msgid "Polka dots, small" -msgstr "" +msgstr "Pontilhado, pequeno" #: ../share/patterns/patterns.svg.h:1 msgid "Polka dots, small white" -msgstr "" +msgstr "Pontilhado, pequeno branco" #: ../share/patterns/patterns.svg.h:1 msgid "Polka dots, medium" -msgstr "" +msgstr "Pontilhado, médio" #: ../share/patterns/patterns.svg.h:1 msgid "Polka dots, medium white" -msgstr "" +msgstr "Pontilhado, médio branco" #: ../share/patterns/patterns.svg.h:1 msgid "Polka dots, large" -msgstr "" +msgstr "Pontilhado, grande" #: ../share/patterns/patterns.svg.h:1 msgid "Polka dots, large white" -msgstr "" +msgstr "Pontilhado, grande branco" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Wavy" -msgstr "Onda" +msgstr "Ondulado" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Wavy white" -msgstr "Branco" +msgstr "Ondulado Branco" #: ../share/patterns/patterns.svg.h:1 msgid "Camouflage" -msgstr "" +msgstr "Camuflagem" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Ermine" -msgstr "Combinar" +msgstr "Arminho" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Sand (bitmap)" -msgstr "Vectorizar bitmap" +msgstr "Areia (bitmap)" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Cloth (bitmap)" -msgstr "Criar bitmap" +msgstr "Tecido (bitmap)" #: ../share/patterns/patterns.svg.h:1 -#, fuzzy msgid "Old paint (bitmap)" -msgstr "Imprimir como bitmap" +msgstr "Pintura antiga (bitmap)" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:2 msgctxt "Symbol" msgid "AIGA Symbol Signs" -msgstr "" +msgstr "Pictogramas AIGA" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbolsNPS.svg @@ -3624,311 +3425,294 @@ msgstr "" #: ../share/symbols/symbols.h:281 ../share/symbols/symbols.h:282 msgctxt "Symbol" msgid "Telephone" -msgstr "" +msgstr "Telefone" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:5 ../share/symbols/symbols.h:6 msgctxt "Symbol" msgid "Mail" -msgstr "" +msgstr "Correio" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 -#, fuzzy msgctxt "Symbol" msgid "Currency Exchange" -msgstr "Camada actual" +msgstr "Câmbio" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:9 ../share/symbols/symbols.h:10 msgctxt "Symbol" msgid "Currency Exchange - Euro" -msgstr "" +msgstr "Câmbio - Euro" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:11 ../share/symbols/symbols.h:12 msgctxt "Symbol" msgid "Cashier" -msgstr "" +msgstr "Caixa de Pagamento" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:13 ../share/symbols/symbols.h:14 #: ../share/symbols/symbols.h:213 ../share/symbols/symbols.h:214 -#, fuzzy msgctxt "Symbol" msgid "First Aid" -msgstr "Primeiro seleccionado" +msgstr "Primeiros Socorros" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:15 ../share/symbols/symbols.h:16 -#, fuzzy msgctxt "Symbol" msgid "Lost and Found" -msgstr "Não arredondado" +msgstr "Perdidos e Achados" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:17 ../share/symbols/symbols.h:18 msgctxt "Symbol" msgid "Coat Check" -msgstr "" +msgstr "Guarda-Roupas" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:19 ../share/symbols/symbols.h:20 msgctxt "Symbol" msgid "Baggage Lockers" -msgstr "" +msgstr "Cacifos de Bagagem" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:21 ../share/symbols/symbols.h:22 msgctxt "Symbol" msgid "Escalator" -msgstr "" +msgstr "Escadas Rolantes" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:23 ../share/symbols/symbols.h:24 msgctxt "Symbol" msgid "Escalator Down" -msgstr "" +msgstr "Escadas Rolantes para Baixo" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:25 ../share/symbols/symbols.h:26 msgctxt "Symbol" msgid "Escalator Up" -msgstr "" +msgstr "Escadas Rolantes para Cima" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:27 ../share/symbols/symbols.h:28 msgctxt "Symbol" msgid "Stairs" -msgstr "" +msgstr "Escadas" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:29 ../share/symbols/symbols.h:30 msgctxt "Symbol" msgid "Stairs Down" -msgstr "" +msgstr "Escadas para Baixo" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:31 ../share/symbols/symbols.h:32 msgctxt "Symbol" msgid "Stairs Up" -msgstr "" +msgstr "Escadas para Cima" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:33 ../share/symbols/symbols.h:34 -#, fuzzy msgctxt "Symbol" msgid "Elevator" -msgstr "Elevação" +msgstr "Elevador" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:35 ../share/symbols/symbols.h:36 msgctxt "Symbol" msgid "Toilets - Men" -msgstr "" +msgstr "Casas de Banho - Homens" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:37 ../share/symbols/symbols.h:38 msgctxt "Symbol" msgid "Toilets - Women" -msgstr "" +msgstr "Casas de Banho - Mulheres" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:39 ../share/symbols/symbols.h:40 msgctxt "Symbol" msgid "Toilets" -msgstr "" +msgstr "Casas de Banho" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:41 ../share/symbols/symbols.h:42 msgctxt "Symbol" msgid "Nursery" -msgstr "" +msgstr "Bersário" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 msgctxt "Symbol" msgid "Drinking Fountain" -msgstr "" +msgstr "Fonte de Ãgua Potável" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:45 ../share/symbols/symbols.h:46 -#, fuzzy msgctxt "Symbol" msgid "Waiting Room" -msgstr "Script" +msgstr "Sala de Espera" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:47 ../share/symbols/symbols.h:48 #: ../share/symbols/symbols.h:231 ../share/symbols/symbols.h:232 -#, fuzzy msgctxt "Symbol" msgid "Information" msgstr "Informação" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:49 ../share/symbols/symbols.h:50 -#, fuzzy msgctxt "Symbol" msgid "Hotel Information" -msgstr "Informação" +msgstr "Informação de Hotéis" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:51 ../share/symbols/symbols.h:52 -#, fuzzy msgctxt "Symbol" msgid "Air Transportation" -msgstr "Informação" +msgstr "Transportes Aéreos" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:53 ../share/symbols/symbols.h:54 msgctxt "Symbol" msgid "Heliport" -msgstr "" +msgstr "Heliporto" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:55 ../share/symbols/symbols.h:56 msgctxt "Symbol" msgid "Taxi" -msgstr "" +msgstr "Táxi" # Enevoar, desfocar ou borrar? -- krishna #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:57 ../share/symbols/symbols.h:58 -#, fuzzy msgctxt "Symbol" msgid "Bus" -msgstr "Desfocar" +msgstr "Autocarro" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:59 ../share/symbols/symbols.h:60 -#, fuzzy msgctxt "Symbol" msgid "Ground Transportation" -msgstr "Informação" +msgstr "Transporte Terrestre" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:61 ../share/symbols/symbols.h:62 -#, fuzzy msgctxt "Symbol" msgid "Rail Transportation" -msgstr "Informação" +msgstr "Transporte Ferroviário" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:63 ../share/symbols/symbols.h:64 -#, fuzzy msgctxt "Symbol" msgid "Water Transportation" -msgstr "Informação" +msgstr "Transporte Aquático" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:65 ../share/symbols/symbols.h:66 msgctxt "Symbol" msgid "Car Rental" -msgstr "" +msgstr "Aluguer de Carros" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:67 ../share/symbols/symbols.h:68 msgctxt "Symbol" msgid "Restaurant" -msgstr "" +msgstr "Restaurante" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:69 ../share/symbols/symbols.h:70 msgctxt "Symbol" msgid "Coffeeshop" -msgstr "" +msgstr "Café" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:71 ../share/symbols/symbols.h:72 -#, fuzzy msgctxt "Symbol" msgid "Bar" -msgstr "Marca" +msgstr "Bar" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:73 ../share/symbols/symbols.h:74 msgctxt "Symbol" msgid "Shops" -msgstr "" +msgstr "Lojas" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:75 ../share/symbols/symbols.h:76 msgctxt "Symbol" msgid "Barber Shop - Beauty Salon" -msgstr "" +msgstr "Salão de Beleza" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:78 msgctxt "Symbol" msgid "Barber Shop" -msgstr "" +msgstr "Barbearia" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:79 ../share/symbols/symbols.h:80 msgctxt "Symbol" msgid "Beauty Salon" -msgstr "" +msgstr "Salão de Beleza" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:81 ../share/symbols/symbols.h:82 msgctxt "Symbol" msgid "Ticket Purchase" -msgstr "" +msgstr "Compra de Bilhetes" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:83 ../share/symbols/symbols.h:84 msgctxt "Symbol" msgid "Baggage Check In" -msgstr "" +msgstr "Apresentação de Bagagem" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:85 ../share/symbols/symbols.h:86 msgctxt "Symbol" msgid "Baggage Claim" -msgstr "" +msgstr "Recepção de Bagagem" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:87 ../share/symbols/symbols.h:88 -#, fuzzy msgctxt "Symbol" msgid "Customs" -msgstr "_Personalizado" +msgstr "Alfândega" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:89 ../share/symbols/symbols.h:90 -#, fuzzy msgctxt "Symbol" msgid "Immigration" -msgstr "Configurações de Impressão" +msgstr "Imigração" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:91 ../share/symbols/symbols.h:92 -#, fuzzy msgctxt "Symbol" msgid "Departing Flights" -msgstr "Luz Distante" +msgstr "Partidas de Vôos" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:93 ../share/symbols/symbols.h:94 -#, fuzzy msgctxt "Symbol" msgid "Arriving Flights" -msgstr "Luminosidade" +msgstr "Chegadas de Vôos" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:95 ../share/symbols/symbols.h:96 msgctxt "Symbol" msgid "Smoking" -msgstr "" +msgstr "Fumadores" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:97 ../share/symbols/symbols.h:98 msgctxt "Symbol" msgid "No Smoking" -msgstr "" +msgstr "Não Fumadores" #. Symbols: ./AigaSymbols.svg #. Symbols: ./MapSymbolsNPS.svg @@ -3936,820 +3720,775 @@ msgstr "" #: ../share/symbols/symbols.h:245 ../share/symbols/symbols.h:246 msgctxt "Symbol" msgid "Parking" -msgstr "" +msgstr "Estacionamento" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:101 ../share/symbols/symbols.h:102 msgctxt "Symbol" msgid "No Parking" -msgstr "" +msgstr "Proibido Estacionar" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 msgctxt "Symbol" msgid "No Dogs" -msgstr "" +msgstr "Proibido Cães" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 msgctxt "Symbol" msgid "No Entry" -msgstr "" +msgstr "Entrada Proibida" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:107 ../share/symbols/symbols.h:108 msgctxt "Symbol" msgid "Exit" -msgstr "" +msgstr "Saída" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:109 ../share/symbols/symbols.h:110 msgctxt "Symbol" msgid "Fire Extinguisher" -msgstr "" +msgstr "Extintor" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:111 ../share/symbols/symbols.h:112 -#, fuzzy msgctxt "Symbol" msgid "Right Arrow" -msgstr "Direitos" +msgstr "Seta para a Direita" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 msgctxt "Symbol" msgid "Forward and Right Arrow" -msgstr "" +msgstr "Seta para a Frente e Direita" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:115 ../share/symbols/symbols.h:116 -#, fuzzy msgctxt "Symbol" msgid "Up Arrow" -msgstr "Erros" +msgstr "Seta para Cima" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:117 ../share/symbols/symbols.h:118 msgctxt "Symbol" msgid "Forward and Left Arrow" -msgstr "" +msgstr "Seta para a Frente e Esquerda" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:119 ../share/symbols/symbols.h:120 -#, fuzzy msgctxt "Symbol" msgid "Left Arrow" -msgstr "Erros" +msgstr "Seta para a Esquerda" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:121 ../share/symbols/symbols.h:122 msgctxt "Symbol" msgid "Left and Down Arrow" -msgstr "" +msgstr "Seta para a Esquerda e para Baixo" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 -#, fuzzy msgctxt "Symbol" msgid "Down Arrow" -msgstr "Erros" +msgstr "Seta para Baixo" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 msgctxt "Symbol" msgid "Right and Down Arrow" -msgstr "" +msgstr "Seta para a Direita e para Baixo" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:127 ../share/symbols/symbols.h:128 msgctxt "Symbol" msgid "NPS Wheelchair Accessible - 1996" -msgstr "" +msgstr "Acessível a Cadeiras de Rodas - NPS 1996" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:129 ../share/symbols/symbols.h:130 msgctxt "Symbol" msgid "NPS Wheelchair Accessible" -msgstr "" +msgstr "Acessível a Cadeiras de Rodas - NPS" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:131 ../share/symbols/symbols.h:132 msgctxt "Symbol" msgid "New Wheelchair Accessible" -msgstr "" +msgstr "Acessível a Cadeiras de Rodas - Novo" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:133 msgctxt "Symbol" msgid "Word Balloons" -msgstr "" +msgstr "Balão de Banda Desenhada" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:134 msgctxt "Symbol" msgid "Thought Balloon" -msgstr "" +msgstr "Balão de Pensamento" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:135 msgctxt "Symbol" msgid "Dream Speaking" -msgstr "" +msgstr "Sonho Falado" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:136 -#, fuzzy msgctxt "Symbol" msgid "Rounded Balloon" -msgstr "Junção redonda" +msgstr "Balão Redondo" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:137 -#, fuzzy msgctxt "Symbol" msgid "Squared Balloon" -msgstr "Ponta quadrada" +msgstr "Balão Quadrado" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:138 msgctxt "Symbol" msgid "Over the Phone" -msgstr "" +msgstr "Ao Telefone" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:139 msgctxt "Symbol" msgid "Hip Balloon" -msgstr "" +msgstr "Balão Oco" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:140 -#, fuzzy msgctxt "Symbol" msgid "Circle Balloon" -msgstr "Círculo" +msgstr "Balão Circular" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:141 msgctxt "Symbol" msgid "Exclaim Balloon" -msgstr "" +msgstr "Balão de Exclamação" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:142 msgctxt "Symbol" msgid "Flow Chart Shapes" -msgstr "" +msgstr "Formas de Fluxogramas" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:143 msgctxt "Symbol" msgid "Process" -msgstr "" +msgstr "Processo" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:144 -#, fuzzy msgctxt "Symbol" msgid "Input/Output" -msgstr "Saída" +msgstr "Entrada/Saída" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:145 -#, fuzzy msgctxt "Symbol" msgid "Document" -msgstr "Desenho SVG" +msgstr "Documento" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:146 -#, fuzzy msgctxt "Symbol" msgid "Manual Operation" -msgstr "Saturação" +msgstr "Operação Manual" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:147 -#, fuzzy msgctxt "Symbol" msgid "Preparation" -msgstr "Saturação" +msgstr "Preparação" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:148 -#, fuzzy msgctxt "Symbol" msgid "Merge" -msgstr "Mesclar" +msgstr "União" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:149 -#, fuzzy msgctxt "Symbol" msgid "Decision" -msgstr "Precisão" +msgstr "Decisão" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:150 msgctxt "Symbol" msgid "Magnetic Tape" -msgstr "" +msgstr "Fita magnética" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:151 -#, fuzzy msgctxt "Symbol" msgid "Display" -msgstr "_Modo de visão" +msgstr "Painel" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:152 msgctxt "Symbol" msgid "Auxiliary Operation" -msgstr "" +msgstr "Operação Auxiliar" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:153 -#, fuzzy msgctxt "Symbol" msgid "Manual Input" -msgstr "Entrada EMF" +msgstr "Entrada Manual" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:154 -#, fuzzy msgctxt "Symbol" msgid "Extract" -msgstr "Extrair Uma Imagem" +msgstr "Extrair" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:155 msgctxt "Symbol" msgid "Terminal/Interrupt" -msgstr "" +msgstr "Terminal/Interrupção" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:156 msgctxt "Symbol" msgid "Punched Card" -msgstr "" +msgstr "Cartão Perfurado" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:157 -#, fuzzy msgctxt "Symbol" msgid "Punch Tape" -msgstr "Traço preto" +msgstr "Fita Perfurada" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:158 msgctxt "Symbol" msgid "Online Storage" -msgstr "" +msgstr "Armazenamento Online" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:159 msgctxt "Symbol" msgid "Keying" -msgstr "" +msgstr "Entrada" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:160 msgctxt "Symbol" msgid "Sort" -msgstr "" +msgstr "Ordenação" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:161 -#, fuzzy msgctxt "Symbol" msgid "Connector" -msgstr "Conector" +msgstr "Conetor" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:162 -#, fuzzy msgctxt "Symbol" msgid "Off-Page Connector" -msgstr "Conector" +msgstr "Conetor Para Trás" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:163 msgctxt "Symbol" msgid "Transmittal Tape" -msgstr "" +msgstr "Banda de Transmissão" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:164 msgctxt "Symbol" msgid "Communication Link" -msgstr "" +msgstr "Ligação de Comunicação" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:165 -#, fuzzy msgctxt "Symbol" msgid "Collate" -msgstr "Modular" +msgstr "Comparar" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:166 msgctxt "Symbol" msgid "Comment/Annotation" -msgstr "" +msgstr "Comentário/Anotação" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:167 msgctxt "Symbol" msgid "Core" -msgstr "" +msgstr "Núcleo" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:168 msgctxt "Symbol" msgid "Predefined Process" -msgstr "" +msgstr "Processo Pré-definido" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:169 msgctxt "Symbol" msgid "Magnetic Disk (Database)" -msgstr "" +msgstr "Disco Magnético (Base de Dados)" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:170 msgctxt "Symbol" msgid "Magnetic Drum (Direct Access)" -msgstr "" +msgstr "Tambor Magnético (Acesso Direto)" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:171 msgctxt "Symbol" msgid "Offline Storage" -msgstr "" +msgstr "Armazenamento Offline" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:172 msgctxt "Symbol" msgid "Logical Or" -msgstr "" +msgstr "OR Lógico" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:173 msgctxt "Symbol" msgid "Logical And" -msgstr "" +msgstr "AND Lógico" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:174 msgctxt "Symbol" msgid "Delay" -msgstr "" +msgstr "Atraso" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:175 msgctxt "Symbol" msgid "Loop Limit Begin" -msgstr "" +msgstr "Início de Limite de Ciclo" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:176 msgctxt "Symbol" msgid "Loop Limit End" -msgstr "" +msgstr "Fim de Limite de Ciclo" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:177 msgctxt "Symbol" msgid "Logic Symbols" -msgstr "" +msgstr "Símbolos Lógicos" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:178 msgctxt "Symbol" msgid "Xnor Gate" -msgstr "" +msgstr "Porta XNOR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:179 msgctxt "Symbol" msgid "Xor Gate" -msgstr "" +msgstr "Porta XOR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:180 msgctxt "Symbol" msgid "Nor Gate" -msgstr "" +msgstr "Porta NOR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:181 msgctxt "Symbol" msgid "Or Gate" -msgstr "" +msgstr "Porta OR" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:182 msgctxt "Symbol" msgid "Nand Gate" -msgstr "" +msgstr "Porta NAND" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:183 msgctxt "Symbol" msgid "And Gate" -msgstr "" +msgstr "Porta AND" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:184 msgctxt "Symbol" msgid "Buffer" -msgstr "" +msgstr "Buffer" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:185 msgctxt "Symbol" msgid "Not Gate" -msgstr "" +msgstr "Não Porta" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:186 msgctxt "Symbol" msgid "Buffer Small" -msgstr "" +msgstr "Buffer Pequeno" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:187 msgctxt "Symbol" msgid "Not Gate Small" -msgstr "" +msgstr "Não Porta Pequeno" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:188 msgctxt "Symbol" msgid "United States National Park Service Map Symbols" -msgstr "" +msgstr "Pictogramas do Serv.Parq.Nac.EUA" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:189 ../share/symbols/symbols.h:190 -#, fuzzy msgctxt "Symbol" msgid "Airport" -msgstr "Importar" +msgstr "Aeroporto" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:191 ../share/symbols/symbols.h:192 msgctxt "Symbol" msgid "Amphitheatre" -msgstr "" +msgstr "Anfiteatro" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:193 ../share/symbols/symbols.h:194 msgctxt "Symbol" msgid "Bicycle Trail" -msgstr "" +msgstr "Trilho de Bicicleta" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:195 ../share/symbols/symbols.h:196 msgctxt "Symbol" msgid "Boat Launch" -msgstr "" +msgstr "Rampa de Barcos" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:197 ../share/symbols/symbols.h:198 msgctxt "Symbol" msgid "Boat Tour" -msgstr "" +msgstr "Guia Turístico por Barco" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:199 ../share/symbols/symbols.h:200 -#, fuzzy msgctxt "Symbol" msgid "Bus Stop" -msgstr "_Aplicar" +msgstr "Paragem de Autocarro" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:201 ../share/symbols/symbols.h:202 -#, fuzzy msgctxt "Symbol" msgid "Campfire" -msgstr "Alterar arredondamento" +msgstr "Fogueira" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:203 ../share/symbols/symbols.h:204 -#, fuzzy msgctxt "Symbol" msgid "Campground" -msgstr "Alterar arredondamento" +msgstr "Parque de Campismo" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:205 ../share/symbols/symbols.h:206 msgctxt "Symbol" msgid "CanoeAccess" -msgstr "" +msgstr "Acesso a Canoas" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:207 ../share/symbols/symbols.h:208 msgctxt "Symbol" msgid "Crosscountry Ski Trail" -msgstr "" +msgstr "Trilho de Esqui Crosscountry" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:209 ../share/symbols/symbols.h:210 msgctxt "Symbol" msgid "Downhill Skiing" -msgstr "" +msgstr "Esqui Downhill" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:211 ../share/symbols/symbols.h:212 -#, fuzzy msgctxt "Symbol" msgid "Drinking Water" -msgstr "Imprimir usando operadores PostScript" +msgstr "Ãgua Potável" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:215 ../share/symbols/symbols.h:216 msgctxt "Symbol" msgid "Fishing" -msgstr "" +msgstr "Pesca" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:217 ../share/symbols/symbols.h:218 msgctxt "Symbol" msgid "Food Service" -msgstr "" +msgstr "Serviço de Comida" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:219 ../share/symbols/symbols.h:220 msgctxt "Symbol" msgid "Four Wheel Drive Road" -msgstr "" +msgstr "Estrada para Quatro Rodas" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:221 ../share/symbols/symbols.h:222 -#, fuzzy msgctxt "Symbol" msgid "Gas Station" -msgstr "Menos Saturação" +msgstr "Posto de combustível" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:223 ../share/symbols/symbols.h:224 -#, fuzzy msgctxt "Symbol" msgid "Golfing" -msgstr "Ponto" +msgstr "Golfe" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:225 ../share/symbols/symbols.h:226 msgctxt "Symbol" msgid "Horseback Riding" -msgstr "" +msgstr "Hipismo" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:227 ../share/symbols/symbols.h:228 msgctxt "Symbol" msgid "Hospital" -msgstr "" +msgstr "Hospital" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:229 ../share/symbols/symbols.h:230 -#, fuzzy msgctxt "Symbol" msgid "Ice Skating" -msgstr "Início" +msgstr "Patinagem no Gelo" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:233 ../share/symbols/symbols.h:234 msgctxt "Symbol" msgid "Litter Receptacle" -msgstr "" +msgstr "Caixote do Lixo" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:235 ../share/symbols/symbols.h:236 msgctxt "Symbol" msgid "Lodging" -msgstr "" +msgstr "Alojamento" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:237 ../share/symbols/symbols.h:238 msgctxt "Symbol" msgid "Marina" -msgstr "" +msgstr "Marina" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:239 ../share/symbols/symbols.h:240 msgctxt "Symbol" msgid "Motorbike Trail" -msgstr "" +msgstr "Trilho de Motocliclos" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:241 ../share/symbols/symbols.h:242 -#, fuzzy msgctxt "Symbol" msgid "Radiator Water" -msgstr "_Rotação" +msgstr "Ãgua de Refrigeração" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:243 ../share/symbols/symbols.h:244 msgctxt "Symbol" msgid "Recycling" -msgstr "" +msgstr "Reciclagem" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:247 ../share/symbols/symbols.h:248 -#, fuzzy msgctxt "Symbol" msgid "Pets On Leash" -msgstr "_Por no Caminho" +msgstr "Animais com Trela" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:249 ../share/symbols/symbols.h:250 -#, fuzzy msgctxt "Symbol" msgid "Picnic Area" -msgstr "Cor lisa" +msgstr "Ãrea de Pique-Niques" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:251 ../share/symbols/symbols.h:252 msgctxt "Symbol" msgid "Post Office" -msgstr "" +msgstr "Posto de Correios" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:253 ../share/symbols/symbols.h:254 -#, fuzzy msgctxt "Symbol" msgid "Ranger Station" -msgstr "Relação" +msgstr "Posto de Guarda Florestal" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:255 ../share/symbols/symbols.h:256 -#, fuzzy msgctxt "Symbol" msgid "RV Campground" -msgstr "Alterar arredondamento" +msgstr "Parque de Caravanas" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:257 ../share/symbols/symbols.h:258 msgctxt "Symbol" msgid "Restrooms" -msgstr "" +msgstr "Casas de Banho" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:259 ../share/symbols/symbols.h:260 -#, fuzzy msgctxt "Symbol" msgid "Sailing" -msgstr "Rolagem" +msgstr "Vela" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:261 ../share/symbols/symbols.h:262 msgctxt "Symbol" msgid "Sanitary Disposal Station" -msgstr "" +msgstr "Estação de Deposição Sanitária (caravanas)" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:263 ../share/symbols/symbols.h:264 -#, fuzzy msgctxt "Symbol" msgid "Scuba Diving" -msgstr "Divisão" +msgstr "Mergulho" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:265 ../share/symbols/symbols.h:266 msgctxt "Symbol" msgid "Self Guided Trail" -msgstr "" +msgstr "Trilho de Orientação" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:267 ../share/symbols/symbols.h:268 -#, fuzzy msgctxt "Symbol" msgid "Shelter" -msgstr "_Filtrar" +msgstr "Abrigo" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:269 ../share/symbols/symbols.h:270 -#, fuzzy msgctxt "Symbol" msgid "Showers" -msgstr "Mostrar:" +msgstr "Chuveiros" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:271 ../share/symbols/symbols.h:272 -#, fuzzy msgctxt "Symbol" msgid "Sledding" -msgstr "Espaçamento" +msgstr "Trenós de Escorregar" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:273 ../share/symbols/symbols.h:274 msgctxt "Symbol" msgid "SnowmobileTrail" -msgstr "" +msgstr "Trilho de Mota de Neve" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:275 ../share/symbols/symbols.h:276 -#, fuzzy msgctxt "Symbol" msgid "Stable" -msgstr "Tabela" +msgstr "Estábulo" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:277 ../share/symbols/symbols.h:278 msgctxt "Symbol" msgid "Store" -msgstr "" +msgstr "Loja" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:279 ../share/symbols/symbols.h:280 msgctxt "Symbol" msgid "Swimming" -msgstr "" +msgstr "Natação" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:283 ../share/symbols/symbols.h:284 -#, fuzzy msgctxt "Symbol" msgid "Emergency Telephone" -msgstr "Divergência" +msgstr "Telefone de Emergência" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:285 ../share/symbols/symbols.h:286 -#, fuzzy msgctxt "Symbol" msgid "Trailhead" -msgstr "Tipografia normal" +msgstr "Início do Trilho" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:287 ../share/symbols/symbols.h:288 msgctxt "Symbol" msgid "Wheelchair Accessible" -msgstr "" +msgstr "Acessível a Cadeiras de Rodas" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:289 ../share/symbols/symbols.h:290 msgctxt "Symbol" msgid "Wind Surfing" -msgstr "" +msgstr "Prancha à Vela (windsurf)" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:291 msgctxt "Symbol" msgid "Blank" -msgstr "" +msgstr "Vazio" #: ../share/templates/templates.h:1 msgid "CD Label 120mmx120mm " -msgstr "" +msgstr "Etiqueta de CD 120mmx120mm " #: ../share/templates/templates.h:1 msgid "Simple CD Label template with disc's pattern." -msgstr "" +msgstr "Modelo simples de etiqueta do CD com a figura do CD" #: ../share/templates/templates.h:1 msgid "CD label 120x120 disc disk" -msgstr "" +msgstr "Etiqueta de Disco de CD 120x120" #: ../share/templates/templates.h:1 -#, fuzzy msgid "No Layers" -msgstr "Camada" +msgstr "Sem Camadas" #: ../share/templates/templates.h:1 msgid "Empty sheet with no layers" -msgstr "" +msgstr "Folha vazia sem camadas" #: ../share/templates/templates.h:1 -#, fuzzy msgid "no layers empty" -msgstr "Mudar opacidade da camada" +msgstr "sem camadas vazias" #: ../share/templates/templates.h:1 -#, fuzzy msgid "LaTeX Beamer" -msgstr "Impressão LaTeX" +msgstr "LaTeX Beamer" #: ../share/templates/templates.h:1 msgid "LaTeX beamer template with helping grid." -msgstr "" +msgstr "Modelo LaTeX Beamer com grelha de ajuda." #: ../share/templates/templates.h:1 msgid "LaTex LaTeX latex grid beamer" -msgstr "" +msgstr "LaTex LaTeX latex - projetor de grelha" #: ../share/templates/templates.h:1 -#, fuzzy msgid "Typography Canvas" -msgstr "Espiral" +msgstr "Ãrea Tipográfica" #: ../share/templates/templates.h:1 msgid "Empty typography canvas with helping guidelines." -msgstr "" +msgstr "Ãrea de desenho tipográfico vazio com guias de ajuda." #: ../share/templates/templates.h:1 msgid "guidelines typography canvas" -msgstr "" +msgstr "guias de área de desenho tipográfico" #. 3D box #: ../src/box3d.cpp:255 ../src/box3d.cpp:1309 @@ -4757,17 +4496,16 @@ msgstr "" msgid "3D Box" msgstr "Caixa 3D" -#: ../src/color-profile.cpp:842 -#, fuzzy, c-format +#: ../src/color-profile.cpp:856 +#, c-format msgid "Color profiles directory (%s) is unavailable." -msgstr "Diretório de paletas (%s) não está disponível." +msgstr "A pasta de perfis de cores (%s) não está disponível." -#: ../src/color-profile.cpp:901 ../src/color-profile.cpp:918 +#: ../src/color-profile.cpp:928 ../src/color-profile.cpp:945 msgid "(invalid UTF-8 string)" -msgstr "" +msgstr "(expressão UTF-8 inválida)" -#: ../src/color-profile.cpp:903 -#, fuzzy +#: ../src/color-profile.cpp:930 msgctxt "Profile name" msgid "None" msgstr "Nenhum" @@ -4775,12 +4513,14 @@ msgstr "Nenhum" #: ../src/context-fns.cpp:33 ../src/context-fns.cpp:62 msgid "Current layer is hidden. Unhide it to be able to draw on it." msgstr "" -"A camada actual está escondida. Mostre-a para poder desenhar nela." +"A camada atual está oculta. Para desenhar nela é necessário desocultá-" +"la." #: ../src/context-fns.cpp:39 ../src/context-fns.cpp:68 msgid "Current layer is locked. Unlock it to be able to draw on it." msgstr "" -"A camada actual está bloqueada. Desbloque-a para poder desenhar nela." +"A camada atual está bloqueada. Para desenhar nela é necessário " +"desbloqueá-la." #: ../src/desktop-events.cpp:244 msgid "Create guide" @@ -4796,9 +4536,9 @@ msgid "Delete guide" msgstr "Eliminar guia" #: ../src/desktop-events.cpp:547 -#, fuzzy, c-format +#, c-format msgid "Guideline: %s" -msgstr "Linha guia: %s" +msgstr "Linha guia: %s" #: ../src/desktop.cpp:870 msgid "No previous zoom." @@ -4839,7 +4579,7 @@ msgstr "Espaçamento _Y:" #: ../src/display/canvas-axonomgrid.cpp:365 #: ../src/ui/dialog/inkscape-preferences.cpp:820 msgid "Base length of z-axis" -msgstr "" +msgstr "Comprimento base do eixo do Z" #: ../src/display/canvas-axonomgrid.cpp:368 #: ../src/ui/dialog/inkscape-preferences.cpp:823 @@ -4850,7 +4590,7 @@ msgstr "Ângulo X:" #: ../src/display/canvas-axonomgrid.cpp:368 #: ../src/ui/dialog/inkscape-preferences.cpp:823 msgid "Angle of x-axis" -msgstr "" +msgstr "Ângulo do eixo X" #: ../src/display/canvas-axonomgrid.cpp:370 #: ../src/ui/dialog/inkscape-preferences.cpp:824 @@ -4861,40 +4601,37 @@ msgstr "Ângulo Z:" #: ../src/display/canvas-axonomgrid.cpp:370 #: ../src/ui/dialog/inkscape-preferences.cpp:824 msgid "Angle of z-axis" -msgstr "" +msgstr "Ângulo do eixo Z" #: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 -#, fuzzy msgid "Minor grid line _color:" -msgstr "Cor da linha de grelha ma_ior:" +msgstr "_Cor da linha fina da grelha:" #: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 #: ../src/ui/dialog/inkscape-preferences.cpp:775 -#, fuzzy msgid "Minor grid line color" -msgstr "Cor da linha de grelha maior" +msgstr "Cor da linha fina da grelha" #: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 -#, fuzzy msgid "Color of the minor grid lines" -msgstr "Cor das linhas de grelha" +msgstr "Cor das linhas finas da grelha" #: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 msgid "Ma_jor grid line color:" -msgstr "Cor da linha de grelha ma_ior:" +msgstr "Cor da linha _grossa da grelha:" #: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 #: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Major grid line color" -msgstr "Cor da linha de grelha maior" +msgstr "Cor da linha grossa da grelha" #: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 msgid "Color of the major (highlighted) grid lines" -msgstr "Cor da linha de grelha maior (destacada)" +msgstr "Cor das linhas grossas (destacadas) da grelha" #: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "_Major grid line every:" -msgstr "_Linha de grelha maior a cada:" +msgstr "_Linha grossa da grelha a cada:" #: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "lines" @@ -4914,23 +4651,27 @@ msgstr "Criar nova grelha" #: ../src/display/canvas-grid.cpp:312 msgid "_Enabled" -msgstr "_Activado" +msgstr "_Ativado" #: ../src/display/canvas-grid.cpp:313 msgid "" "Determines whether to snap to this grid or not. Can be 'on' for invisible " "grids." msgstr "" +"Determina a atração ou não a esta grelha. Pode estar 'ativado' para grelhas " +"invisíveis." #: ../src/display/canvas-grid.cpp:317 msgid "Snap to visible _grid lines only" -msgstr "" +msgstr "Atrair apenas a _grelhas visíveis" #: ../src/display/canvas-grid.cpp:318 msgid "" "When zoomed out, not all grid lines will be displayed. Only the visible ones " "will be snapped to" msgstr "" +"Ao afastar a vista, nem todas as linhas da grelha são mostradas. Apenas as " +"visíveis irão atrair" #: ../src/display/canvas-grid.cpp:322 msgid "_Visible" @@ -4941,6 +4682,8 @@ msgid "" "Determines whether the grid is displayed or not. Objects are still snapped " "to invisible grids." msgstr "" +"Determina se a grelha é mostrada ou não. Os objetos continuam a ser atraídos " +"a grelhas invisíveis." #: ../src/display/canvas-grid.cpp:705 msgid "Spacing _X:" @@ -4954,265 +4697,221 @@ msgstr "Distância vertical entre linhas da grelha" #: ../src/display/canvas-grid.cpp:708 #: ../src/ui/dialog/inkscape-preferences.cpp:798 msgid "Distance between horizontal grid lines" -msgstr "Distância horizontal entre linhas" +msgstr "Distância horizontal entre linhas da grelha" #: ../src/display/canvas-grid.cpp:740 msgid "_Show dots instead of lines" -msgstr "_Mostrar pontos ao invés de linhas" +msgstr "_Mostrar grelha de pontos em vez de linhas" #: ../src/display/canvas-grid.cpp:741 msgid "If set, displays dots at gridpoints instead of gridlines" -msgstr "Mostrar pontos na grelha ao invés de linhas" +msgstr "Se ativado, mostra a grelha numa série de pontos em vez de linhas" #. TRANSLATORS: undefined target for snapping #: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 #: ../src/display/snap-indicator.cpp:180 ../src/display/snap-indicator.cpp:183 msgid "UNDEFINED" -msgstr "" +msgstr "NÃO DEFINIDO" #: ../src/display/snap-indicator.cpp:79 -#, fuzzy msgid "grid line" -msgstr "Linha guia" +msgstr "linha da grelha" #: ../src/display/snap-indicator.cpp:82 -#, fuzzy msgid "grid intersection" -msgstr "Ajustar às interseções de guias com a grelha" +msgstr "interseção da grelha" #: ../src/display/snap-indicator.cpp:85 -#, fuzzy msgid "grid line (perpendicular)" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "linha da grelha (perpendicular)" #: ../src/display/snap-indicator.cpp:88 -#, fuzzy msgid "guide" -msgstr "Guias" +msgstr "guia" #: ../src/display/snap-indicator.cpp:91 -#, fuzzy msgid "guide intersection" -msgstr "Ajustar às interseções de guias com a grelha" +msgstr "interseção das guias" #: ../src/display/snap-indicator.cpp:94 -#, fuzzy msgid "guide origin" -msgstr "Cor da linha guia" +msgstr "origem da guia" #: ../src/display/snap-indicator.cpp:97 -#, fuzzy msgid "guide (perpendicular)" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "guia (perpendicular)" #: ../src/display/snap-indicator.cpp:100 -#, fuzzy msgid "grid-guide intersection" -msgstr "Ajustar às interseções de guias com a grelha" +msgstr "interseção da grelha e guia" #: ../src/display/snap-indicator.cpp:103 -#, fuzzy msgid "cusp node" -msgstr "Encaixar aos n_ós" +msgstr "nó afiado" #: ../src/display/snap-indicator.cpp:106 -#, fuzzy msgid "smooth node" -msgstr "Suavidade" +msgstr "nó suave" #: ../src/display/snap-indicator.cpp:109 -#, fuzzy msgid "path" -msgstr "Caminho" +msgstr "caminho" #: ../src/display/snap-indicator.cpp:112 -#, fuzzy msgid "path (perpendicular)" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "caminho (perpendicular)" #: ../src/display/snap-indicator.cpp:115 msgid "path (tangential)" -msgstr "" +msgstr "caminho (tangencial)" #: ../src/display/snap-indicator.cpp:118 -#, fuzzy msgid "path intersection" -msgstr "Intersecção" +msgstr "interseção dos caminhos" #: ../src/display/snap-indicator.cpp:121 -#, fuzzy msgid "guide-path intersection" -msgstr "Ajustar às interseções de guias com a grelha" +msgstr "interseção da guia e caminho" #: ../src/display/snap-indicator.cpp:124 -#, fuzzy msgid "clip-path" -msgstr "Definir caminho recortado" +msgstr "caminho-recortado" #: ../src/display/snap-indicator.cpp:127 -#, fuzzy msgid "mask-path" -msgstr "Definir máscara" +msgstr "caminho-máscara" #: ../src/display/snap-indicator.cpp:130 -#, fuzzy msgid "bounding box corner" -msgstr "_Cantos de caixas limitadoras" +msgstr "canto da caixa limitadora" #: ../src/display/snap-indicator.cpp:133 -#, fuzzy msgid "bounding box side" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "lado da caixa limitadora" #: ../src/display/snap-indicator.cpp:136 -#, fuzzy msgid "page border" -msgstr "Cor da borda da página" +msgstr "borda da página" #: ../src/display/snap-indicator.cpp:139 -#, fuzzy msgid "line midpoint" -msgstr "Largura da Linha" +msgstr "ponto central da linha" #: ../src/display/snap-indicator.cpp:142 -#, fuzzy msgid "object midpoint" -msgstr "Objectos" +msgstr "ponto central do objeto" #: ../src/display/snap-indicator.cpp:145 -#, fuzzy msgid "object rotation center" -msgstr "Encontrar objectos no desenho" +msgstr "centro de rotação do objeto" #: ../src/display/snap-indicator.cpp:148 -#, fuzzy msgid "bounding box side midpoint" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "ponto do meio da lateral da caixa limitadora" #: ../src/display/snap-indicator.cpp:151 -#, fuzzy msgid "bounding box midpoint" -msgstr "_Cantos de caixas limitadoras" +msgstr "ponto do meio da caixa limitadora" #: ../src/display/snap-indicator.cpp:154 -#, fuzzy msgid "page corner" -msgstr "Cor da borda da página" +msgstr "canto da página" #: ../src/display/snap-indicator.cpp:157 -#, fuzzy msgid "quadrant point" -msgstr "Aumentar espaçamento entre linhas" +msgstr "ponto quadrante" #: ../src/display/snap-indicator.cpp:161 -#, fuzzy msgid "corner" -msgstr "Esquinas" +msgstr "canto" #: ../src/display/snap-indicator.cpp:164 msgid "text anchor" -msgstr "" +msgstr "âncora do texto" #: ../src/display/snap-indicator.cpp:167 -#, fuzzy msgid "text baseline" -msgstr "Alinhar linhas base do texto" +msgstr "linha base do texto" #: ../src/display/snap-indicator.cpp:170 -#, fuzzy msgid "constrained angle" -msgstr "Rotação (graus)" +msgstr "ângulo restringido" #: ../src/display/snap-indicator.cpp:173 -#, fuzzy msgid "constraint" -msgstr "Constante" +msgstr "restrinção" #: ../src/display/snap-indicator.cpp:187 -#, fuzzy msgid "Bounding box corner" -msgstr "_Cantos de caixas limitadoras" +msgstr "Canto da caixa limitadora" #: ../src/display/snap-indicator.cpp:190 -#, fuzzy msgid "Bounding box midpoint" -msgstr "_Cantos de caixas limitadoras" +msgstr "Ponto central da caixa limitadora" #: ../src/display/snap-indicator.cpp:193 -#, fuzzy msgid "Bounding box side midpoint" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Ponto central do lado da caixa limitadora" #: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1484 -#, fuzzy msgid "Smooth node" -msgstr "Suavidade" +msgstr "Nó suave" #: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1483 -#, fuzzy msgid "Cusp node" -msgstr "Levantar nó" +msgstr "Nó afiado" #: ../src/display/snap-indicator.cpp:202 -#, fuzzy msgid "Line midpoint" -msgstr "Largura da Linha" +msgstr "Ponto central da linha" #: ../src/display/snap-indicator.cpp:205 -#, fuzzy msgid "Object midpoint" -msgstr "Objectos" +msgstr "Ponto central do objeto" #: ../src/display/snap-indicator.cpp:208 -#, fuzzy msgid "Object rotation center" -msgstr "Objecto para padrão" +msgstr "Centro de rotação do objeto" #: ../src/display/snap-indicator.cpp:212 -#, fuzzy msgid "Handle" -msgstr "Ângulo" +msgstr "Alça" #: ../src/display/snap-indicator.cpp:215 -#, fuzzy msgid "Path intersection" -msgstr "Intersecção" +msgstr "Interseção de caminhos" #: ../src/display/snap-indicator.cpp:218 -#, fuzzy msgid "Guide" -msgstr "Guias" +msgstr "Guia" #: ../src/display/snap-indicator.cpp:221 -#, fuzzy msgid "Guide origin" -msgstr "Cor da linha guia" +msgstr "Origem da guia" #: ../src/display/snap-indicator.cpp:224 msgid "Convex hull corner" -msgstr "" +msgstr "Canto convexo" #: ../src/display/snap-indicator.cpp:227 msgid "Quadrant point" -msgstr "" +msgstr "Ponto quadrante" #: ../src/display/snap-indicator.cpp:231 -#, fuzzy msgid "Corner" -msgstr "Esquinas" +msgstr "Canto" #: ../src/display/snap-indicator.cpp:234 -#, fuzzy msgid "Text anchor" -msgstr "Entrada de Texto" +msgstr "Âncora de texto" #: ../src/display/snap-indicator.cpp:237 msgid "Multiple of grid spacing" -msgstr "" +msgstr "Múltiplo do espaçamento da grelha" #: ../src/display/snap-indicator.cpp:286 msgid " to " -msgstr "" +msgstr " para " #: ../src/document.cpp:531 #, c-format @@ -5220,14 +4919,13 @@ msgid "New document %d" msgstr "Novo documento %d" #: ../src/document.cpp:536 -#, fuzzy, c-format +#, c-format msgid "Memory document %d" -msgstr "Documento de memória %d" +msgstr "Memória do documento %d" #: ../src/document.cpp:565 -#, fuzzy msgid "Memory document %1" -msgstr "Documento de memória %d" +msgstr "Memória do documento %1" #: ../src/document.cpp:864 #, c-format @@ -5236,12 +4934,12 @@ msgstr "Documento sem nome %d" #: ../src/event-log.cpp:185 msgid "[Unchanged]" -msgstr "[Inalterado]" +msgstr "[Sem alterações]" #. Edit #: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2460 msgid "_Undo" -msgstr "_Desfazer" +msgstr "Desfa_zer" #: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2462 msgid "_Redo" @@ -5261,7 +4959,7 @@ msgstr " localização: " #: ../src/extension/dependency.cpp:258 msgid " string: " -msgstr " frase: " +msgstr " expressão: " #: ../src/extension/dependency.cpp:261 msgid " description: " @@ -5272,9 +4970,8 @@ msgid " (No preferences)" msgstr "(Sem preferências)" #: ../src/extension/effect.h:70 ../src/verbs.cpp:2234 -#, fuzzy msgid "Extensions" -msgstr "Extensão \"" +msgstr "Extensões" #. \FIXME change this #. This is some filler text, needs to change before relase @@ -5290,19 +4987,19 @@ msgstr "" "Uma ou mais extensões não puderam ser " "carregadas\n" "\n" -"As extensões não carregadas foram puladas. O Inkscape irá continuar a rodar " -"normalmente, mas estas extensões não estarão disponíveis. Para maiores " -"detalhes sobre este problema, por favor verifique o log do erro localizado " -"em: " +"As extensões não carregadas foram ignoradas. O Inkscape irá continuar a " +"correr normalmente mas estas extensões não estarão disponíveis. Para mais " +"detalhes sobre este problema, por favor verifique o registo do erro " +"localizado em: " #: ../src/extension/error-file.cpp:67 msgid "Show dialog on startup" -msgstr "Mostrar diálogo ao iniciar" +msgstr "Mostrar janela ao iniciar" #: ../src/extension/execution-env.cpp:136 #, c-format msgid "'%s' working, please wait..." -msgstr "'%s' processando, por favor aguarde..." +msgstr "'%s' a processar, por favor aguarde..." #. static int i = 0; #. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; @@ -5312,24 +5009,24 @@ msgid "" "inx file could have been caused by a faulty installation of Inkscape." msgstr "" " Isto foi causado por um ficheiro .inx impróprio para esta extensão. Um " -"ficheiro .inx impróprio poderia ter sido causado por uma instalação " -"defeituosa do Inkscape." +"ficheiro .inx impróprio pode ter sido causado por uma instalação defeituosa " +"do Inkscape." #: ../src/extension/extension.cpp:277 msgid "the extension is designed for Windows only." -msgstr "" +msgstr "a extensão foi comcebida apenas para o Microsoft Windows." #: ../src/extension/extension.cpp:282 msgid "an ID was not defined for it." -msgstr "um ID não foi definido." +msgstr "não foi definido um identificador (ID) para ele." #: ../src/extension/extension.cpp:286 msgid "there was no name defined for it." -msgstr "não houve nenhum nome definido." +msgstr "não houve nenhum nome definido para ele." #: ../src/extension/extension.cpp:290 msgid "the XML description of it got lost." -msgstr "a sua descrição XML se perdeu." +msgstr "a sua descrição XML foi perdida." #: ../src/extension/extension.cpp:294 msgid "no implementation was defined for the extension." @@ -5351,7 +5048,7 @@ msgstr "\" falha ao carregar porque " #: ../src/extension/extension.cpp:670 #, c-format msgid "Could not create extension error log file '%s'" -msgstr "Não foi possível criar o log de erro da extensão '%s'" +msgstr "Não foi possível criar o relatório de erros da extensão '%s'" #: ../src/extension/extension.cpp:778 #: ../share/extensions/webslicer_create_rect.inx.h:2 @@ -5384,6 +5081,9 @@ msgid "" "Inkscape website or ask on the mailing lists if you have questions regarding " "this extension." msgstr "" +"Neste momento não existe ajuda disponível para esta Extensão. Procure no " +"website do Inkscape ou pergunte nas listas de discussão ou fórum se tiver " +"questões sobre esta extensão." #: ../src/extension/implementation/script.cpp:1108 msgid "" @@ -5398,7 +5098,7 @@ msgstr "" #: ../src/extension/init.cpp:288 msgid "Null external module directory name. Modules will not be loaded." msgstr "" -"Nome de diretório externo do módulo inválido. Os módulos não serão " +"O nome da pasta do módulo externo é inválido. Os módulos não serão " "carregados." #: ../src/extension/init.cpp:302 @@ -5408,8 +5108,8 @@ msgid "" "Modules directory (%s) is unavailable. External modules in that directory " "will not be loaded." msgstr "" -"A pasta de módulos (%s) está indisponível. Módulos externos nesta pasta não " -"serão carregados." +"A pasta de módulos (%s) não está disponível. Os módulos externos nesta pasta " +"não serão carregados." #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 msgid "Adaptive Threshold" @@ -5442,7 +5142,7 @@ msgstr "Altura:" #: ../src/widgets/measure-toolbar.cpp:328 #: ../share/extensions/printing_marks.inx.h:12 msgid "Offset:" -msgstr "Offset:" +msgstr "Deslocamento:" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 #: ../src/extension/internal/bitmap/addNoise.cpp:58 @@ -5480,12 +5180,11 @@ msgstr "Offset:" #: ../src/extension/internal/bitmap/unsharpmask.cpp:50 #: ../src/extension/internal/bitmap/wave.cpp:45 msgid "Raster" -msgstr "Rasterizar" +msgstr "Raster" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 -#, fuzzy msgid "Apply adaptive thresholding to selected bitmap(s)" -msgstr "Aplicar limiar adaptativo para bitmaps(s) seleccionado(s)." +msgstr "Aplicar limiar adaptativo às imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/addNoise.cpp:45 msgid "Add Noise" @@ -5533,9 +5232,8 @@ msgid "Poisson Noise" msgstr "Ruído de Poisson" #: ../src/extension/internal/bitmap/addNoise.cpp:60 -#, fuzzy msgid "Add random noise to selected bitmap(s)" -msgstr "Adicionar ruído aleatório ao(s) bitmap(s) seleccionado(s)." +msgstr "Adicionar ruído aleatório às imagens bitmap selecionadas" # Enevoar, desfocar ou borrar? -- krishna #: ../src/extension/internal/bitmap/blur.cpp:38 @@ -5554,9 +5252,8 @@ msgstr "Desfocar" #: ../src/extension/internal/bitmap/sharpen.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:43 #: ../src/ui/dialog/filter-effects-dialog.cpp:2934 -#, fuzzy msgid "Radius:" -msgstr "Raio" +msgstr "Raio:" #: ../src/extension/internal/bitmap/blur.cpp:41 #: ../src/extension/internal/bitmap/charcoal.cpp:41 @@ -5564,22 +5261,20 @@ msgstr "Raio" #: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 #: ../src/extension/internal/bitmap/sharpen.cpp:41 #: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -#, fuzzy msgid "Sigma:" -msgstr "Sigma" +msgstr "Sigma:" #: ../src/extension/internal/bitmap/blur.cpp:47 msgid "Blur selected bitmap(s)" -msgstr "Desfocar bitmap(s) seleccionado(s)" +msgstr "Desfocar imagens bitmaps selecionadas" #: ../src/extension/internal/bitmap/channel.cpp:48 msgid "Channel" msgstr "Canal" #: ../src/extension/internal/bitmap/channel.cpp:50 -#, fuzzy msgid "Layer:" -msgstr "Camada" +msgstr "Camada:" #: ../src/extension/internal/bitmap/channel.cpp:51 #: ../src/extension/internal/bitmap/levelChannel.cpp:55 @@ -5627,9 +5322,8 @@ msgid "Matte Channel" msgstr "Canal Fosco" #: ../src/extension/internal/bitmap/channel.cpp:66 -#, fuzzy msgid "Extract specific channel from image" -msgstr "Extrair um canal específico de uma imagem." +msgstr "Extrair um canal específico de uma imagem" # Não sei se a traducao é essa mesmo... essa é traducao literal - krishna #: ../src/extension/internal/bitmap/charcoal.cpp:38 @@ -5637,21 +5331,19 @@ msgid "Charcoal" msgstr "Carvão" #: ../src/extension/internal/bitmap/charcoal.cpp:47 -#, fuzzy msgid "Apply charcoal stylization to selected bitmap(s)" -msgstr "Aplicar estilização de carvão aos bitmaps seleccionados." +msgstr "Aplicar estilização de carvão às imagens bitmaps selecionadas" #: ../src/extension/internal/bitmap/colorize.cpp:50 #: ../src/extension/internal/filter/color.h:392 msgid "Colorize" -msgstr "Colorizar" +msgstr "Colorir" #: ../src/extension/internal/bitmap/colorize.cpp:58 -#, fuzzy msgid "Colorize selected bitmap(s) with specified color, using given opacity" msgstr "" -"Colorizar bitmap(s) seleccionado(s) com uma cor específica, usando uma dada " -"opacidade." +"Colorir imagens bitmap selecionadas com uma cor específica, usando uma dada " +"opacidade" #: ../src/extension/internal/bitmap/contrast.cpp:40 #: ../src/extension/internal/filter/color.h:1189 @@ -5660,60 +5352,53 @@ msgid "Contrast" msgstr "Contraste" #: ../src/extension/internal/bitmap/contrast.cpp:42 -#, fuzzy msgid "Adjust:" -msgstr "Ajustar matiz" +msgstr "Ajustar:" #: ../src/extension/internal/bitmap/contrast.cpp:48 msgid "Increase or decrease contrast in bitmap(s)" -msgstr "" +msgstr "Aumentar ou diminuir contraste nas imagens bitmap" #: ../src/extension/internal/bitmap/crop.cpp:66 #: ../src/extension/internal/filter/bumps.h:86 #: ../src/extension/internal/filter/bumps.h:315 msgid "Crop" -msgstr "" +msgstr "Recortar" #: ../src/extension/internal/bitmap/crop.cpp:68 msgid "Top (px):" -msgstr "" +msgstr "Cima (px):" #: ../src/extension/internal/bitmap/crop.cpp:69 -#, fuzzy msgid "Bottom (px):" -msgstr "Fundo" +msgstr "Baixo (px):" #: ../src/extension/internal/bitmap/crop.cpp:70 -#, fuzzy msgid "Left (px):" -msgstr "Deslocamentos" +msgstr "Esquerda (px):" #: ../src/extension/internal/bitmap/crop.cpp:71 -#, fuzzy msgid "Right (px):" -msgstr "Direitos:" +msgstr "Direita (px):" #: ../src/extension/internal/bitmap/crop.cpp:77 -#, fuzzy msgid "Crop selected bitmap(s)" -msgstr "Desfocar bitmap(s) seleccionado(s)" +msgstr "Recortar imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/cycleColormap.cpp:37 msgid "Cycle Colormap" -msgstr "Trocar mapa de cores" +msgstr "Circular Mapa de Cores" #: ../src/extension/internal/bitmap/cycleColormap.cpp:39 #: ../src/extension/internal/bitmap/spread.cpp:39 #: ../src/extension/internal/bitmap/unsharpmask.cpp:45 #: ../src/widgets/spray-toolbar.cpp:411 -#, fuzzy msgid "Amount:" -msgstr "Quantidade" +msgstr "Quantidade:" #: ../src/extension/internal/bitmap/cycleColormap.cpp:45 -#, fuzzy msgid "Cycle colormap(s) of selected bitmap(s)" -msgstr "Trocar mapa de cores do(s) bitmap(s) seleccionado(s)." +msgstr "Alternar em círculo mapa de cores nas imagens bitmap selecionadas" # Tradução forçada... ao pé da letra... # - samymn @@ -5722,71 +5407,67 @@ msgid "Despeckle" msgstr "Dessalpicar" #: ../src/extension/internal/bitmap/despeckle.cpp:43 -#, fuzzy msgid "Reduce speckle noise of selected bitmap(s)" -msgstr "Reduzir o ruído salpicado do(s) bitmap(s) seleccionado(s)." +msgstr "Reduzir o ruído salpicado nas imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/edge.cpp:37 msgid "Edge" -msgstr "Limite" +msgstr "Borda" #: ../src/extension/internal/bitmap/edge.cpp:45 -#, fuzzy msgid "Highlight edges of selected bitmap(s)" -msgstr "Acender limites do(s) bitmap(s) seleccionado(s)." +msgstr "Destacar bordas das imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/emboss.cpp:38 msgid "Emboss" -msgstr "Embutir" +msgstr "Alto Relevo" #: ../src/extension/internal/bitmap/emboss.cpp:47 -#, fuzzy msgid "Emboss selected bitmap(s); highlight edges with 3D effect" -msgstr "Embutir bitmap(s) seleccionado(s) -- acender limites com efeito 3D." +msgstr "" +"Efeito de alto relevo nas imagens bitmap selecionadas; destacar bordas com " +"efeito 3D" #: ../src/extension/internal/bitmap/enhance.cpp:35 msgid "Enhance" msgstr "Realçar" #: ../src/extension/internal/bitmap/enhance.cpp:42 -#, fuzzy msgid "Enhance selected bitmap(s); minimize noise" -msgstr "Otimizar o(s) bitmap(s) seleccionado(s) -- minimizar ruído." +msgstr "" +"Realçar os detalhes das imagens bitmap selecionadas; reduzir o ruído das " +"imagens" #: ../src/extension/internal/bitmap/equalize.cpp:35 msgid "Equalize" msgstr "Equalizar" #: ../src/extension/internal/bitmap/equalize.cpp:42 -#, fuzzy msgid "Equalize selected bitmap(s); histogram equalization" -msgstr "Equalizar bitmap(s) seleccionado(s) -- equalização por histograma." +msgstr "Equalizar histograma nas imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 #: ../src/filter-enums.cpp:29 msgid "Gaussian Blur" -msgstr "Desfocagem gaussiana" +msgstr "Desfocagem Gaussiana" #: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 #: ../src/extension/internal/bitmap/implode.cpp:39 #: ../src/extension/internal/bitmap/solarize.cpp:41 -#, fuzzy msgid "Factor:" -msgstr "Fator" +msgstr "Fator:" #: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 -#, fuzzy msgid "Gaussian blur selected bitmap(s)" -msgstr "Aplicar desfocagem gaussiana no(s) bitmap(s) seleccionado(s)." +msgstr "Aplicar desfocagem gaussiana nas imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/implode.cpp:37 msgid "Implode" msgstr "Implodir" #: ../src/extension/internal/bitmap/implode.cpp:45 -#, fuzzy msgid "Implode selected bitmap(s)" -msgstr "Implodir bitmap(s) seleccionado(s)." +msgstr "Implodir imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/level.cpp:41 #: ../src/extension/internal/filter/color.h:817 @@ -5798,32 +5479,28 @@ msgstr "Nível" #: ../src/extension/internal/bitmap/level.cpp:43 #: ../src/extension/internal/bitmap/levelChannel.cpp:65 -#, fuzzy msgid "Black Point:" -msgstr "Ponto Negro" +msgstr "Ponto Preto:" #: ../src/extension/internal/bitmap/level.cpp:44 #: ../src/extension/internal/bitmap/levelChannel.cpp:66 -#, fuzzy msgid "White Point:" -msgstr "Ponto Branco" +msgstr "Ponto Branco:" #: ../src/extension/internal/bitmap/level.cpp:45 #: ../src/extension/internal/bitmap/levelChannel.cpp:67 -#, fuzzy msgid "Gamma Correction:" -msgstr "Correção Gama" +msgstr "Correção da Gama:" # Preciso que alguém revise isso -- krishna # É isso mesmo? -- samymn #: ../src/extension/internal/bitmap/level.cpp:51 -#, fuzzy msgid "" "Level selected bitmap(s) by scaling values falling between the given ranges " "to the full color range" msgstr "" -"Nivela o(s) bitmap(s) seleccionado(s) modificando os valores que caem entre " -"os intervalos dados para todo o espectro de cores." +"Nivela as imagens bitmap selecionadas redimensionando os valores que se " +"encontram entre os intervalos fornecidos e todo o espectro de cores." #: ../src/extension/internal/bitmap/levelChannel.cpp:52 msgid "Level (with Channel)" @@ -5831,93 +5508,81 @@ msgstr "Nível (com Canal)" #: ../src/extension/internal/bitmap/levelChannel.cpp:54 #: ../src/extension/internal/filter/color.h:711 -#, fuzzy msgid "Channel:" -msgstr "Canais:" +msgstr "Canal:" # Preciso que alguém dê uma olhada nisso -- krishna #: ../src/extension/internal/bitmap/levelChannel.cpp:73 -#, fuzzy msgid "" "Level the specified channel of selected bitmap(s) by scaling values falling " "between the given ranges to the full color range" msgstr "" -"Nivela o canal especificado do(s) bitmap(s) seleccionado(s)ao escalar os " -"valores que caem entre os intervalos dados para o intervalo de cor completo." +"Nivela o canal especificado nas imagens bitmap selecionadas ao redimensionar " +"os valores que caem entre os intervalos dados para o intervalo de cor total" #: ../src/extension/internal/bitmap/medianFilter.cpp:37 -#, fuzzy msgid "Median" -msgstr "Médio" +msgstr "Médiana" #: ../src/extension/internal/bitmap/medianFilter.cpp:45 -#, fuzzy msgid "" "Replace each pixel component with the median color in a circular neighborhood" msgstr "" -"Filtra o(s) bitmap(s) seleccionados, substituindo cada componente do pixel " -"pela cor média de uma vizinhança circular." +"Substitui cada componente de píxel com a cor média numa área circular de " +"píxeis vizinhos" #: ../src/extension/internal/bitmap/modulate.cpp:40 -#, fuzzy msgid "HSB Adjust" -msgstr "Ajustar matiz" +msgstr "Ajuste HSL" #: ../src/extension/internal/bitmap/modulate.cpp:42 -#, fuzzy msgid "Hue:" -msgstr "Matiz" +msgstr "Matiz:" #: ../src/extension/internal/bitmap/modulate.cpp:43 -#, fuzzy msgid "Saturation:" -msgstr "Saturação" +msgstr "Saturação:" #: ../src/extension/internal/bitmap/modulate.cpp:44 -#, fuzzy msgid "Brightness:" -msgstr "Luminosidade" +msgstr "Luminosidade:" #: ../src/extension/internal/bitmap/modulate.cpp:50 -#, fuzzy msgid "" "Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" msgstr "" -"Modula percentagens de matiz, saturação e luminosidade do(s) bitmap(s) " -"seleccionado(s)." +"Ajusta a quantidade de matiz, saturação e luminosidade nas imagens bitmap " +"selecionadas" #: ../src/extension/internal/bitmap/negate.cpp:36 msgid "Negate" msgstr "Obter negativo" #: ../src/extension/internal/bitmap/negate.cpp:43 -#, fuzzy msgid "Negate (take inverse) selected bitmap(s)" -msgstr "Obter negativo do(s) bitmaps(s) seleccionado(s)." +msgstr "inverter as imagens bitmap selecionadas" #: ../src/extension/internal/bitmap/normalize.cpp:36 msgid "Normalize" msgstr "Normalizar" #: ../src/extension/internal/bitmap/normalize.cpp:43 -#, fuzzy msgid "" "Normalize selected bitmap(s), expanding color range to the full possible " "range of color" msgstr "" -"Normaliza o(s) bitmap(s) seleccionado(s), expandindo o intervalo de cores " -"para o intervalo completo possível de cor." +"Normaliza as imagens bitmap selecionadas, expandindo o intervalo de cores " +"para máximo possível do intervalo de cores" #: ../src/extension/internal/bitmap/oilPaint.cpp:37 msgid "Oil Paint" msgstr "Pintura a Óleo" #: ../src/extension/internal/bitmap/oilPaint.cpp:45 -#, fuzzy msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" msgstr "" -"Estiliza o(s) bitmap(s) seleccionado(s) para que eles pareçam pintados com " -"tinta a óleo." +"Estiliza as imagens bitmaps selecionadas para que pareçam pintadas com tinta " +"a óleo" #: ../src/extension/internal/bitmap/opacity.cpp:38 #: ../src/extension/internal/filter/blurs.h:333 @@ -5928,17 +5593,16 @@ msgstr "" msgid "Opacity" msgstr "Opacidade" +# Por uma questão de coerência e claridade do texto, optou-se por usar sempre "transparência" em vez de "opacidade" #: ../src/extension/internal/bitmap/opacity.cpp:40 #: ../src/ui/dialog/filter-effects-dialog.cpp:2924 #: ../src/ui/dialog/objects.cpp:1629 ../src/widgets/dropper-toolbar.cpp:83 -#, fuzzy msgid "Opacity:" -msgstr "Opacidade" +msgstr "Transparência:" #: ../src/extension/internal/bitmap/opacity.cpp:46 -#, fuzzy msgid "Modify opacity channel(s) of selected bitmap(s)" -msgstr "Modifica o(s) canal(is) de opacidade do(s) bitmap(s) seleccionado(s)." +msgstr "Altera os canais de opacidade nas imagens bitmaps selecionadas" #: ../src/extension/internal/bitmap/raise.cpp:40 msgid "Raise" @@ -5949,16 +5613,15 @@ msgid "Raised" msgstr "Levantado" #: ../src/extension/internal/bitmap/raise.cpp:50 -#, fuzzy msgid "" "Alter lightness the edges of selected bitmap(s) to create a raised appearance" msgstr "" -"Ilumina alternadamente as bordas do(s) bitmap(s) seleccionado(s) para criar " -"uma impressão de que ele foi levantado." +"Altera a luminosidade das bordas as imagens bitmaps selecionadas para criar " +"a aparência que está levantada" #: ../src/extension/internal/bitmap/reduceNoise.cpp:40 msgid "Reduce Noise" -msgstr "Reduzir ruído" +msgstr "Reduzir Ruído" #. Paint order #. TRANSLATORS: Paint order determines the order the 'fill', 'stroke', and 'markers are painted. @@ -5967,95 +5630,84 @@ msgstr "Reduzir ruído" #: ../share/extensions/jessyInk_effects.inx.h:3 #: ../share/extensions/jessyInk_view.inx.h:3 #: ../share/extensions/lindenmayer.inx.h:5 -#, fuzzy msgid "Order:" -msgstr "Ordenar" +msgstr "Ordem:" #: ../src/extension/internal/bitmap/reduceNoise.cpp:48 -#, fuzzy msgid "" "Reduce noise in selected bitmap(s) using a noise peak elimination filter" msgstr "" -"Reduz o ruído em no(s) bitmap(s) seleccionado(s) usando um filtro de " -"eliminação de picos de ruído." +"Reduz o ruído nas imagens bitmaps selecionadas usando um filtro de " +"eliminação de picos de ruído" #: ../src/extension/internal/bitmap/sample.cpp:39 -#, fuzzy msgid "Resample" -msgstr "Amostra" +msgstr "Reamostra" #: ../src/extension/internal/bitmap/sample.cpp:48 -#, fuzzy msgid "" "Alter the resolution of selected image by resizing it to the given pixel size" msgstr "" -"Altera a resolução da imagem selecionada redimensionando-a pelos valores " -"dados." +"Altera a resolução da imagem selecionada redimensionando-a pelo tamanho em " +"píxeis indicado" #: ../src/extension/internal/bitmap/shade.cpp:40 msgid "Shade" msgstr "Sombra" #: ../src/extension/internal/bitmap/shade.cpp:42 -#, fuzzy msgid "Azimuth:" -msgstr "Azimute" +msgstr "Azimute:" #: ../src/extension/internal/bitmap/shade.cpp:43 -#, fuzzy msgid "Elevation:" -msgstr "Elevação" +msgstr "Elevação:" #: ../src/extension/internal/bitmap/shade.cpp:44 msgid "Colored Shading" -msgstr "Sombreamento colorido" +msgstr "Sombreamento Colorido" #: ../src/extension/internal/bitmap/shade.cpp:50 -#, fuzzy msgid "Shade selected bitmap(s) simulating distant light source" msgstr "" -"Sombrear bitmap(s) seleccionado(s) simulando uma fonte de luz distante." +"Sombrear as imagens bitmaps selecionadas simulando uma fonte de luz distante" #: ../src/extension/internal/bitmap/sharpen.cpp:47 -#, fuzzy msgid "Sharpen selected bitmap(s)" -msgstr "Focar bitmap(s) seleccionado(s)." +msgstr "Aumentar nitidez nas imagens bitmaps selecionadas" #: ../src/extension/internal/bitmap/solarize.cpp:39 #: ../src/extension/internal/filter/color.h:1569 #: ../src/extension/internal/filter/color.h:1573 msgid "Solarize" -msgstr "Ensolarar" +msgstr "Solarizar" #: ../src/extension/internal/bitmap/solarize.cpp:47 -#, fuzzy msgid "Solarize selected bitmap(s), like overexposing photographic film" msgstr "" -"Solariza o(s) bitmap(s) seleccionado(s), como em uma fotografia superexposta" +"Solariza as imagens bitmaps selecionadas, como numa película de fotografia " +"sobrexposta" #: ../src/extension/internal/bitmap/spread.cpp:37 -#, fuzzy msgid "Dither" -msgstr "Outro" +msgstr "Dispersão" #: ../src/extension/internal/bitmap/spread.cpp:45 -#, fuzzy msgid "" "Randomly scatter pixels in selected bitmap(s), within the given radius of " "the original position" msgstr "" -"Espalha pixels aleatoriamente no(s) bitmap(s) seleccionado(s), com o raio " -"'quantidade'" +"Dispersa píxeis aleatoriamente nas imagens bitmaps selecionadas, dentro do " +"raio da posição original" #: ../src/extension/internal/bitmap/swirl.cpp:39 msgid "Degrees:" msgstr "Graus:" #: ../src/extension/internal/bitmap/swirl.cpp:45 -#, fuzzy msgid "Swirl selected bitmap(s) around center point" msgstr "" -"Fazer espiral com bitmap(s) seleccionado(s) em redor de um ponto central." +"Fazer espiral nas imagens bitmaps selecionadas em redor de um ponto central" #. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html #: ../src/extension/internal/bitmap/threshold.cpp:38 @@ -6069,39 +5721,34 @@ msgid "Threshold:" msgstr "Limiar:" #: ../src/extension/internal/bitmap/threshold.cpp:46 -#, fuzzy msgid "Threshold selected bitmap(s)" -msgstr "Aplica limiar ao(s) bitmap(s) seleccionado(s)." +msgstr "Aplica limiar às imagens bitmaps selecionadas" #: ../src/extension/internal/bitmap/unsharpmask.cpp:41 msgid "Unsharp Mask" -msgstr "Máscara de desaguçar" +msgstr "Máscara de Nitidez" #: ../src/extension/internal/bitmap/unsharpmask.cpp:52 -#, fuzzy msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" msgstr "" -"Realça a nitidez do(s) bitmap(s) seleccionado(s) usando algoritmos de " -"máscara de desaguçar." +"Aumenta a nitidez das imagens bitmaps selecionadas usando algoritmos de " +"máscara de nitidez." #: ../src/extension/internal/bitmap/wave.cpp:38 msgid "Wave" msgstr "Onda" #: ../src/extension/internal/bitmap/wave.cpp:40 -#, fuzzy msgid "Amplitude:" -msgstr "Amplitude" +msgstr "Amplitude:" #: ../src/extension/internal/bitmap/wave.cpp:41 -#, fuzzy msgid "Wavelength:" -msgstr "Comprimento de onda" +msgstr "Comprimento de onda:" #: ../src/extension/internal/bitmap/wave.cpp:47 -#, fuzzy msgid "Alter selected bitmap(s) along sine wave" -msgstr "Altera bitmap(s) seleccionado(s) através de onda sinoidal." +msgstr "Altera as imagens bitmaps selecionadas ao longo de uma onda sinoidal" #: ../src/extension/internal/bluredge.cpp:132 msgid "Inset/Outset Halo" @@ -6112,13 +5759,12 @@ msgid "Width in px of the halo" msgstr "Largura em px do halo" #: ../src/extension/internal/bluredge.cpp:135 -#, fuzzy msgid "Number of steps:" -msgstr "Número de passos" +msgstr "Número de passos:" #: ../src/extension/internal/bluredge.cpp:135 msgid "Number of inset/outset copies of the object to make" -msgstr "Número de cópias internas/externas do objecto geradas" +msgstr "Número de cópias internas/externas do objeto a fazer" #: ../src/extension/internal/bluredge.cpp:139 #: ../share/extensions/extrude.inx.h:5 @@ -6128,49 +5774,43 @@ msgstr "Número de cópias internas/externas do objecto geradas" #: ../share/extensions/pathscatter.inx.h:20 #: ../share/extensions/voronoi2svg.inx.h:18 msgid "Generate from Path" -msgstr "Gerar do caminho" +msgstr "Gerar do Caminho" #: ../src/extension/internal/cairo-ps-out.cpp:327 #: ../share/extensions/ps_input.inx.h:3 -#, fuzzy msgid "PostScript" -msgstr "Postscript" +msgstr "PostScript" #: ../src/extension/internal/cairo-ps-out.cpp:329 #: ../src/extension/internal/cairo-ps-out.cpp:371 msgid "Restrict to PS level:" -msgstr "" +msgstr "Restringir ao nível do PostScript:" #: ../src/extension/internal/cairo-ps-out.cpp:330 #: ../src/extension/internal/cairo-ps-out.cpp:372 -#, fuzzy msgid "PostScript level 3" -msgstr "Ficheiro Postscript" +msgstr "Postscript nível 3" #: ../src/extension/internal/cairo-ps-out.cpp:331 #: ../src/extension/internal/cairo-ps-out.cpp:373 -#, fuzzy msgid "PostScript level 2" -msgstr "Ficheiro Postscript" +msgstr "Postscript nível 2" #: ../src/extension/internal/cairo-ps-out.cpp:333 #: ../src/extension/internal/cairo-ps-out.cpp:375 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 -#, fuzzy msgid "Text output options:" -msgstr "Orientação da página:" +msgstr "Opções de saída de texto:" #: ../src/extension/internal/cairo-ps-out.cpp:334 #: ../src/extension/internal/cairo-ps-out.cpp:376 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 -#, fuzzy msgid "Embed fonts" -msgstr "Embutir imagens" +msgstr "Embutir fontes" #: ../src/extension/internal/cairo-ps-out.cpp:335 #: ../src/extension/internal/cairo-ps-out.cpp:377 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 -#, fuzzy msgid "Convert text to paths" msgstr "Converter textos em caminhos" @@ -6178,109 +5818,96 @@ msgstr "Converter textos em caminhos" #: ../src/extension/internal/cairo-ps-out.cpp:378 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 msgid "Omit text in PDF and create LaTeX file" -msgstr "" +msgstr "Omitir texto no PDF e criar um ficheiro LaTeX" #: ../src/extension/internal/cairo-ps-out.cpp:338 #: ../src/extension/internal/cairo-ps-out.cpp:380 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 -#, fuzzy msgid "Rasterize filter effects" -msgstr "Administrar efeitos de filtro SVG" +msgstr "Efeitos de filtro de rasterização" #: ../src/extension/internal/cairo-ps-out.cpp:339 #: ../src/extension/internal/cairo-ps-out.cpp:381 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 -#, fuzzy msgid "Resolution for rasterization (dpi):" -msgstr "Resolução preferida para a figura (pontos por polegada)" +msgstr "Resolução para rasterização (dpi):" #: ../src/extension/internal/cairo-ps-out.cpp:340 #: ../src/extension/internal/cairo-ps-out.cpp:382 -#, fuzzy msgid "Output page size" -msgstr "Definir tamanho da página" +msgstr "Tamanho da página de saída" #: ../src/extension/internal/cairo-ps-out.cpp:341 #: ../src/extension/internal/cairo-ps-out.cpp:383 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 -#, fuzzy msgid "Use document's page size" -msgstr "Definir tamanho da página" +msgstr "Usar tamanho da página do documento" #: ../src/extension/internal/cairo-ps-out.cpp:342 #: ../src/extension/internal/cairo-ps-out.cpp:384 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 msgid "Use exported object's size" -msgstr "" +msgstr "Usar tamanho do objeto exportado" #: ../src/extension/internal/cairo-ps-out.cpp:344 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:261 -#, fuzzy msgid "Bleed/margin (mm):" -msgstr "Sangrar (in)" +msgstr "Sangria/margem (mm):" #: ../src/extension/internal/cairo-ps-out.cpp:345 #: ../src/extension/internal/cairo-ps-out.cpp:387 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:262 msgid "Limit export to the object with ID:" -msgstr "" +msgstr "Limitar exportação ao objeto com o ID:" #: ../src/extension/internal/cairo-ps-out.cpp:349 #: ../share/extensions/ps_input.inx.h:2 -#, fuzzy msgid "PostScript (*.ps)" -msgstr "Postscript (*.ps)" +msgstr "PostScript (*.ps)" #: ../src/extension/internal/cairo-ps-out.cpp:350 -#, fuzzy msgid "PostScript File" -msgstr "Ficheiro Postscript" +msgstr "Ficheiro PostScript" #: ../src/extension/internal/cairo-ps-out.cpp:369 #: ../share/extensions/eps_input.inx.h:3 -#, fuzzy msgid "Encapsulated PostScript" -msgstr "Encapsulated Postscript" +msgstr "PostScript Encapsulado" #: ../src/extension/internal/cairo-ps-out.cpp:386 -#, fuzzy msgid "Bleed/margin (mm)" -msgstr "Sangrar (in)" +msgstr "Sangria/margem (mm)" #: ../src/extension/internal/cairo-ps-out.cpp:391 #: ../share/extensions/eps_input.inx.h:2 -#, fuzzy msgid "Encapsulated PostScript (*.eps)" -msgstr "Postscript Encapsulado (*.eps)" +msgstr "PostScript Encapsulado (*.eps)" #: ../src/extension/internal/cairo-ps-out.cpp:392 -#, fuzzy msgid "Encapsulated PostScript File" -msgstr "Ficheiro Postscript Encapsulado" +msgstr "Ficheiro PostScript Encapsulado" #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 msgid "Restrict to PDF version:" -msgstr "" +msgstr "Restringir à versão PDF:" #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 msgid "PDF 1.5" -msgstr "" +msgstr "PDF 1.5" #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 msgid "PDF 1.4" -msgstr "" +msgstr "PDF 1.4" #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:257 -#, fuzzy msgid "Output page size:" -msgstr "Definir tamanho da página" +msgstr "Tamanho da página de saída:" #. Dialog settings #: ../src/extension/internal/cdr-input.cpp:103 #: ../src/extension/internal/vsd-input.cpp:105 -#, fuzzy msgid "Page Selector" -msgstr "Seletor" +msgstr "Selecionador de Página" #. Labels #: ../src/extension/internal/cdr-input.cpp:127 @@ -6295,61 +5922,59 @@ msgstr "Selecionar página:" #: ../src/extension/internal/vsd-input.cpp:138 #, c-format msgid "out of %i" -msgstr "de %i" +msgstr "de um total de %i" #: ../src/extension/internal/cdr-input.cpp:293 msgid "Corel DRAW Input" -msgstr "" +msgstr "Importar Corel DRAW" #: ../src/extension/internal/cdr-input.cpp:298 msgid "Corel DRAW 7-X4 files (*.cdr)" -msgstr "" +msgstr "Corel DRAW 7-X4 (*.cdr)" #: ../src/extension/internal/cdr-input.cpp:299 -#, fuzzy msgid "Open files saved in Corel DRAW 7-X4" -msgstr "Abrir ficheiros salvos com XFIG" +msgstr "Abrir ficheiros gravados no Corel DRAW 7-X4" #: ../src/extension/internal/cdr-input.cpp:306 msgid "Corel DRAW templates input" -msgstr "" +msgstr "Importar Corel DRAW template" #: ../src/extension/internal/cdr-input.cpp:311 msgid "Corel DRAW 7-13 template files (*.cdt)" -msgstr "" +msgstr "Corel DRAW 7-13 template (*.cdt)" #: ../src/extension/internal/cdr-input.cpp:312 -#, fuzzy msgid "Open files saved in Corel DRAW 7-13" -msgstr "Abrir ficheiros salvos com XFIG" +msgstr "Abrir ficheiros gravados no Corel DRAW 7-13" #: ../src/extension/internal/cdr-input.cpp:319 msgid "Corel DRAW Compressed Exchange files input" -msgstr "" +msgstr "Importar Corel DRAW Compressed Exchange" #: ../src/extension/internal/cdr-input.cpp:324 msgid "Corel DRAW Compressed Exchange files (*.ccx)" -msgstr "" +msgstr "Corel DRAW Compressed Exchange - ficheiros (*.ccx)" #: ../src/extension/internal/cdr-input.cpp:325 msgid "Open compressed exchange files saved in Corel DRAW" -msgstr "" +msgstr "Abrir ficheiros compressed exchange gravados no Corel DRAW" #: ../src/extension/internal/cdr-input.cpp:332 msgid "Corel DRAW Presentation Exchange files input" -msgstr "" +msgstr "Importar Corel DRAW Presentation Exchange" #: ../src/extension/internal/cdr-input.cpp:337 msgid "Corel DRAW Presentation Exchange files (*.cmx)" -msgstr "" +msgstr "Corel DRAW Presentation Exchange - ficheiros (*.cmx)" #: ../src/extension/internal/cdr-input.cpp:338 msgid "Open presentation exchange files saved in Corel DRAW" -msgstr "" +msgstr "Abrir ficheiros presentation exchange gravados no Corel DRAW" #: ../src/extension/internal/emf-inout.cpp:3601 msgid "EMF Input" -msgstr "Entrada EMF" +msgstr "Importar EMF" #: ../src/extension/internal/emf-inout.cpp:3606 msgid "Enhanced Metafiles (*.emf)" @@ -6361,7 +5986,7 @@ msgstr "Enhanced Metafiles" #: ../src/extension/internal/emf-inout.cpp:3615 msgid "EMF Output" -msgstr "Saída EMF" +msgstr "Exportar em EMF" #: ../src/extension/internal/emf-inout.cpp:3617 #: ../src/extension/internal/wmf-inout.cpp:3196 @@ -6371,95 +5996,87 @@ msgstr "Converter textos em caminhos" #: ../src/extension/internal/emf-inout.cpp:3618 #: ../src/extension/internal/wmf-inout.cpp:3197 msgid "Map Unicode to Symbol font" -msgstr "" +msgstr "Mapa Unicode para fonte Símbolo" #: ../src/extension/internal/emf-inout.cpp:3619 #: ../src/extension/internal/wmf-inout.cpp:3198 msgid "Map Unicode to Wingdings" -msgstr "" +msgstr "Mapa Unicode para Wingdings" #: ../src/extension/internal/emf-inout.cpp:3620 #: ../src/extension/internal/wmf-inout.cpp:3199 msgid "Map Unicode to Zapf Dingbats" -msgstr "" +msgstr "Mapa Unicode para Zapf Dingbats" #: ../src/extension/internal/emf-inout.cpp:3621 #: ../src/extension/internal/wmf-inout.cpp:3200 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" -msgstr "" +msgstr "Usar MS Unicode PUA (0xF020-0xF0FF) para caracteres convertidos" #: ../src/extension/internal/emf-inout.cpp:3622 #: ../src/extension/internal/wmf-inout.cpp:3201 msgid "Compensate for PPT font bug" -msgstr "" +msgstr "Compensar o erro de fonte PPT" #: ../src/extension/internal/emf-inout.cpp:3623 #: ../src/extension/internal/wmf-inout.cpp:3202 msgid "Convert dashed/dotted lines to single lines" -msgstr "" +msgstr "Converter linhas tracejadas/pontilhadas em linhas únicas" #: ../src/extension/internal/emf-inout.cpp:3624 #: ../src/extension/internal/wmf-inout.cpp:3203 -#, fuzzy msgid "Convert gradients to colored polygon series" -msgstr "Alterar cor da parada do degradê" +msgstr "Converter gradientes em série de polígonos coloridos" #: ../src/extension/internal/emf-inout.cpp:3625 -#, fuzzy msgid "Use native rectangular linear gradients" -msgstr "Criar degradê linear" +msgstr "Usar gradientes lineares retangulares nativos" #: ../src/extension/internal/emf-inout.cpp:3626 msgid "Map all fill patterns to standard EMF hatches" -msgstr "" +msgstr "Mapear todos os padrões do preenchimento para escotilhas EMF padrão" #: ../src/extension/internal/emf-inout.cpp:3627 -#, fuzzy msgid "Ignore image rotations" -msgstr "Orientação da página:" +msgstr "Ignorar imagens que tenham sido rodadas" #: ../src/extension/internal/emf-inout.cpp:3631 msgid "Enhanced Metafile (*.emf)" -msgstr "Meta-ficheiro otimizado (*.emf)" +msgstr "Enhanced Metafile (*.emf)" #: ../src/extension/internal/emf-inout.cpp:3632 msgid "Enhanced Metafile" -msgstr "Meta-ficheiro otimizad" +msgstr "Enhanced Metafile" #: ../src/extension/internal/filter/bevels.h:53 -#, fuzzy msgid "Diffuse Light" -msgstr "Iluminação Difusa" +msgstr "Luz Difusa" #: ../src/extension/internal/filter/bevels.h:55 #: ../src/extension/internal/filter/bevels.h:135 #: ../src/extension/internal/filter/bevels.h:219 #: ../src/extension/internal/filter/paint.h:89 #: ../src/extension/internal/filter/paint.h:340 -#, fuzzy msgid "Smoothness" msgstr "Suavidade" #: ../src/extension/internal/filter/bevels.h:56 #: ../src/extension/internal/filter/bevels.h:137 #: ../src/extension/internal/filter/bevels.h:221 -#, fuzzy msgid "Elevation (°)" -msgstr "Elevação" +msgstr "Elevação (°)" #: ../src/extension/internal/filter/bevels.h:57 #: ../src/extension/internal/filter/bevels.h:138 #: ../src/extension/internal/filter/bevels.h:222 -#, fuzzy msgid "Azimuth (°)" -msgstr "Azimute" +msgstr "Azimute (°)" #: ../src/extension/internal/filter/bevels.h:58 #: ../src/extension/internal/filter/bevels.h:139 #: ../src/extension/internal/filter/bevels.h:223 -#, fuzzy msgid "Lighting color" -msgstr "Cor de _destaque:" +msgstr "Cor da luz" #: ../src/extension/internal/filter/bevels.h:62 #: ../src/extension/internal/filter/bevels.h:143 @@ -6520,90 +6137,81 @@ msgstr "Filtros" #: ../src/extension/internal/filter/bevels.h:66 msgid "Basic diffuse bevel to use for building textures" -msgstr "" +msgstr "Biselado difuso básico para criar texturas" #: ../src/extension/internal/filter/bevels.h:133 -#, fuzzy msgid "Matte Jelly" -msgstr "Canal Fosco" +msgstr "Geleia Fosca" #: ../src/extension/internal/filter/bevels.h:136 #: ../src/extension/internal/filter/bevels.h:220 #: ../src/extension/internal/filter/blurs.h:187 #: ../src/extension/internal/filter/color.h:75 -#, fuzzy msgid "Brightness" -msgstr "Luminosidade" +msgstr "Brilho" #: ../src/extension/internal/filter/bevels.h:147 msgid "Bulging, matte jelly covering" -msgstr "" +msgstr "Cobertura de geleia fosca saliente" #: ../src/extension/internal/filter/bevels.h:217 -#, fuzzy msgid "Specular Light" -msgstr "Iluminação Especular" +msgstr "Luz Especular" #: ../src/extension/internal/filter/blurs.h:56 #: ../src/extension/internal/filter/blurs.h:189 #: ../src/extension/internal/filter/blurs.h:329 #: ../src/extension/internal/filter/distort.h:73 -#, fuzzy msgid "Horizontal blur" -msgstr "_Horizontal" +msgstr "Desfocagem horizontal" #: ../src/extension/internal/filter/blurs.h:57 #: ../src/extension/internal/filter/blurs.h:190 #: ../src/extension/internal/filter/blurs.h:330 #: ../src/extension/internal/filter/distort.h:74 -#, fuzzy msgid "Vertical blur" -msgstr "_Vertical" +msgstr "Desfocagem vertical" #: ../src/extension/internal/filter/blurs.h:58 -#, fuzzy msgid "Blur content only" -msgstr "_Modo misturar:" +msgstr "Desfocar apenas conteúdo (não sai para fora do caminho)" #: ../src/extension/internal/filter/blurs.h:66 msgid "Simple vertical and horizontal blur effect" -msgstr "" +msgstr "Efeito simples de desfocagem vertical e horizontal" #: ../src/extension/internal/filter/blurs.h:125 -#, fuzzy msgid "Clean Edges" -msgstr "Escurecer" +msgstr "Limpar Bordas" #: ../src/extension/internal/filter/blurs.h:127 #: ../src/extension/internal/filter/blurs.h:262 #: ../src/extension/internal/filter/paint.h:237 #: ../src/extension/internal/filter/paint.h:336 #: ../src/extension/internal/filter/paint.h:341 -#, fuzzy msgid "Strength" -msgstr "Tamanho do passo (px)" +msgstr "Força" #: ../src/extension/internal/filter/blurs.h:135 msgid "" "Removes or decreases glows and jaggeries around objects edges after applying " "some filters" msgstr "" +"Remove ou diminui auréolas e estragos à volta das bordas dos objetos após " +"aplicar alguns filtros" #: ../src/extension/internal/filter/blurs.h:185 -#, fuzzy msgid "Cross Blur" -msgstr "Desfocagem gaussiana" +msgstr "Desfocagem Cruzada" #: ../src/extension/internal/filter/blurs.h:188 -#, fuzzy msgid "Fading" -msgstr "Espaçamento" +msgstr "Esvanecimento" #: ../src/extension/internal/filter/blurs.h:191 #: ../src/extension/internal/filter/textures.h:74 -#, fuzzy msgid "Blend:" -msgstr "Misturar" +msgstr "Mistura:" #: ../src/extension/internal/filter/blurs.h:192 #: ../src/extension/internal/filter/blurs.h:339 @@ -6618,7 +6226,6 @@ msgstr "Misturar" #: ../src/extension/internal/filter/paint.h:705 #: ../src/extension/internal/filter/transparency.h:63 #: ../src/filter-enums.cpp:55 -#, fuzzy msgid "Darken" msgstr "Escurecer" @@ -6654,7 +6261,6 @@ msgstr "Ecrã" #: ../src/extension/internal/filter/paint.h:701 #: ../src/extension/internal/filter/transparency.h:60 #: ../src/filter-enums.cpp:53 -#, fuzzy msgid "Multiply" msgstr "Multiplicar" @@ -6670,27 +6276,24 @@ msgstr "Multiplicar" #: ../src/extension/internal/filter/paint.h:704 #: ../src/extension/internal/filter/transparency.h:64 #: ../src/filter-enums.cpp:56 -#, fuzzy msgid "Lighten" -msgstr "Iluminar" +msgstr "Clarear" #: ../src/extension/internal/filter/blurs.h:204 -#, fuzzy msgid "Combine vertical and horizontal blur" -msgstr "Mover nós horizontalmente" +msgstr "Combinar desfocado vertical e horizontal" #: ../src/extension/internal/filter/blurs.h:260 -#, fuzzy msgid "Feather" -msgstr "Metro" +msgstr "Polimento" #: ../src/extension/internal/filter/blurs.h:270 msgid "Blurred mask on the edge without altering the contents" -msgstr "" +msgstr "Máscara desfocada na borda sem alterar os conteúdos" #: ../src/extension/internal/filter/blurs.h:325 msgid "Out of Focus" -msgstr "" +msgstr "Fora de Foco" #: ../src/extension/internal/filter/blurs.h:331 #: ../src/extension/internal/filter/distort.h:75 @@ -6698,9 +6301,8 @@ msgstr "" #: ../src/extension/internal/filter/paint.h:235 #: ../src/extension/internal/filter/paint.h:342 #: ../src/extension/internal/filter/paint.h:346 -#, fuzzy msgid "Dilatation" -msgstr "Saturação" +msgstr "Dilatação" #: ../src/extension/internal/filter/blurs.h:332 #: ../src/extension/internal/filter/distort.h:76 @@ -6711,22 +6313,20 @@ msgstr "Saturação" #: ../src/extension/internal/filter/paint.h:347 #: ../src/extension/internal/filter/transparency.h:208 #: ../src/extension/internal/filter/transparency.h:282 -#, fuzzy msgid "Erosion" -msgstr "Posição:" +msgstr "Erosão" #: ../src/extension/internal/filter/blurs.h:336 #: ../src/extension/internal/filter/color.h:1280 #: ../src/extension/internal/filter/color.h:1392 #: ../src/ui/dialog/document-properties.cpp:123 msgid "Background color" -msgstr "Cor de plano de fundo" +msgstr "Cor do fundo" #: ../src/extension/internal/filter/blurs.h:337 #: ../src/extension/internal/filter/bumps.h:129 -#, fuzzy msgid "Blend type:" -msgstr " tipo: " +msgstr "Tipo de mistura:" #: ../src/extension/internal/filter/blurs.h:338 #: ../src/extension/internal/filter/bumps.h:130 @@ -6748,38 +6348,31 @@ msgid "Normal" msgstr "Normal" #: ../src/extension/internal/filter/blurs.h:344 -#, fuzzy msgid "Blend to background" -msgstr "Remover fundo" +msgstr "Misturar para o fundo" #: ../src/extension/internal/filter/blurs.h:354 msgid "Blur eroded by white or transparency" -msgstr "" +msgstr "Desfocagem com erosão de branco ou transparência" #: ../src/extension/internal/filter/bumps.h:80 -#, fuzzy msgid "Bump" -msgstr "Bias" +msgstr "Saliência" #: ../src/extension/internal/filter/bumps.h:84 #: ../src/extension/internal/filter/bumps.h:313 -#, fuzzy msgid "Image simplification" -msgstr "" -"%s não é uma pasta válida.\n" -"%s" +msgstr "Simplificação de imagem" #: ../src/extension/internal/filter/bumps.h:85 #: ../src/extension/internal/filter/bumps.h:314 -#, fuzzy msgid "Bump simplification" -msgstr "Limiar de simplificação:" +msgstr "Simplificação de saliência" #: ../src/extension/internal/filter/bumps.h:87 #: ../src/extension/internal/filter/bumps.h:316 -#, fuzzy msgid "Bump source" -msgstr "Bias" +msgstr "Fonte da saliência" #: ../src/extension/internal/filter/bumps.h:88 #: ../src/extension/internal/filter/bumps.h:317 @@ -6791,7 +6384,7 @@ msgstr "Bias" #: ../src/ui/widget/color-icc-selector.cpp:176 #: ../src/ui/widget/color-scales.cpp:385 ../src/ui/widget/color-scales.cpp:386 msgid "Red" -msgstr "Vermelho" +msgstr "Canal Vermelho" #: ../src/extension/internal/filter/bumps.h:89 #: ../src/extension/internal/filter/bumps.h:318 @@ -6803,7 +6396,7 @@ msgstr "Vermelho" #: ../src/ui/widget/color-icc-selector.cpp:177 #: ../src/ui/widget/color-scales.cpp:388 ../src/ui/widget/color-scales.cpp:389 msgid "Green" -msgstr "Verde" +msgstr "Canal Verde" #: ../src/extension/internal/filter/bumps.h:90 #: ../src/extension/internal/filter/bumps.h:319 @@ -6816,27 +6409,23 @@ msgstr "Verde" #: ../src/ui/widget/color-scales.cpp:391 ../src/ui/widget/color-scales.cpp:392 #: ../share/extensions/nicechart.inx.h:34 msgid "Blue" -msgstr "Azul" +msgstr "Canal Azul" #: ../src/extension/internal/filter/bumps.h:91 -#, fuzzy msgid "Bump from background" -msgstr "Remover fundo" +msgstr "Saliência a partir do fundo" #: ../src/extension/internal/filter/bumps.h:94 -#, fuzzy msgid "Lighting type:" -msgstr " tipo: " +msgstr "Tipo de luz:" #: ../src/extension/internal/filter/bumps.h:95 -#, fuzzy msgid "Specular" -msgstr "Exponente Especular" +msgstr "Especular" #: ../src/extension/internal/filter/bumps.h:96 -#, fuzzy msgid "Diffuse" -msgstr "Iluminação Difusa" +msgstr "Difuso" #: ../src/extension/internal/filter/bumps.h:98 #: ../src/extension/internal/filter/bumps.h:329 @@ -6859,29 +6448,25 @@ msgstr "Altura:" #: ../src/ui/widget/color-scales.cpp:417 ../src/ui/widget/color-scales.cpp:418 #: ../src/widgets/tweak-toolbar.cpp:318 msgid "Lightness" -msgstr "Brilho" +msgstr "Luminosidade" #: ../src/extension/internal/filter/bumps.h:100 #: ../src/extension/internal/filter/bumps.h:331 #: ../src/widgets/measure-toolbar.cpp:302 -#, fuzzy msgid "Precision" msgstr "Precisão" #: ../src/extension/internal/filter/bumps.h:103 -#, fuzzy msgid "Light source" -msgstr "Fonte de Luz:" +msgstr "Fonte de luz" #: ../src/extension/internal/filter/bumps.h:104 -#, fuzzy msgid "Light source:" -msgstr "Fonte de Luz:" +msgstr "Fonte de luz:" #: ../src/extension/internal/filter/bumps.h:105 -#, fuzzy msgid "Distant" -msgstr "Divisor" +msgstr "Distante" #: ../src/extension/internal/filter/bumps.h:106 #: ../src/ui/dialog/inkscape-preferences.cpp:470 @@ -6890,12 +6475,11 @@ msgstr "Ponto" #: ../src/extension/internal/filter/bumps.h:107 msgid "Spot" -msgstr "" +msgstr "Foco" #: ../src/extension/internal/filter/bumps.h:109 -#, fuzzy msgid "Distant light options" -msgstr "Luz Distante" +msgstr "Opções de luz distante" #: ../src/extension/internal/filter/bumps.h:110 #: ../src/extension/internal/filter/bumps.h:332 @@ -6910,81 +6494,67 @@ msgid "Elevation" msgstr "Elevação" #: ../src/extension/internal/filter/bumps.h:112 -#, fuzzy msgid "Point light options" -msgstr "Apontar Luz" +msgstr "Opções do ponto de luz" #: ../src/extension/internal/filter/bumps.h:113 #: ../src/extension/internal/filter/bumps.h:117 -#, fuzzy msgid "X location" -msgstr " localização: " +msgstr "Localização X" #: ../src/extension/internal/filter/bumps.h:114 #: ../src/extension/internal/filter/bumps.h:118 -#, fuzzy msgid "Y location" -msgstr " localização: " +msgstr "Localização Y" #: ../src/extension/internal/filter/bumps.h:115 #: ../src/extension/internal/filter/bumps.h:119 -#, fuzzy msgid "Z location" -msgstr " localização: " +msgstr "Localização Z" #: ../src/extension/internal/filter/bumps.h:116 -#, fuzzy msgid "Spot light options" -msgstr "Lugar de Luz" +msgstr "Opções do foco de luz" #: ../src/extension/internal/filter/bumps.h:120 -#, fuzzy msgid "X target" -msgstr "Alvo:" +msgstr "Alvo X" #: ../src/extension/internal/filter/bumps.h:121 -#, fuzzy msgid "Y target" -msgstr "Alvo:" +msgstr "Alvo Y" #: ../src/extension/internal/filter/bumps.h:122 -#, fuzzy msgid "Z target" -msgstr "Alvo:" +msgstr "Alvo Z" #: ../src/extension/internal/filter/bumps.h:123 -#, fuzzy msgid "Specular exponent" -msgstr "Exponente Especular" +msgstr "Exponente especular" #: ../src/extension/internal/filter/bumps.h:124 -#, fuzzy msgid "Cone angle" -msgstr "Ângulo de Cone" +msgstr "Ângulo do cone" #: ../src/extension/internal/filter/bumps.h:127 -#, fuzzy msgid "Image color" -msgstr "Colar cor" +msgstr "Cor da imagem" #: ../src/extension/internal/filter/bumps.h:128 -#, fuzzy msgid "Color bump" -msgstr "Cor" +msgstr "Saliência de cor" #: ../src/extension/internal/filter/bumps.h:145 msgid "All purposes bump filter" -msgstr "" +msgstr "Filtro de saliência para todos os fins" #: ../src/extension/internal/filter/bumps.h:309 -#, fuzzy msgid "Wax Bump" -msgstr "Bias" +msgstr "Saliência de Cera" #: ../src/extension/internal/filter/bumps.h:320 -#, fuzzy msgid "Background:" -msgstr "Plano de fundo:" +msgstr "Fundo:" #: ../src/extension/internal/filter/bumps.h:322 #: ../src/extension/internal/filter/transparency.h:57 @@ -6993,50 +6563,42 @@ msgid "Image" msgstr "Imagem" #: ../src/extension/internal/filter/bumps.h:323 -#, fuzzy msgid "Blurred image" -msgstr "Embutir imagens" +msgstr "Imagem desfocada" #: ../src/extension/internal/filter/bumps.h:325 -#, fuzzy msgid "Background opacity" -msgstr "Alfa de Fundo" +msgstr "Opacidade do fundo" #: ../src/extension/internal/filter/bumps.h:327 #: ../src/extension/internal/filter/color.h:1115 -#, fuzzy msgid "Lighting" -msgstr "Iluminar" +msgstr "Iluminação" #: ../src/extension/internal/filter/bumps.h:334 -#, fuzzy msgid "Lighting blend:" -msgstr "Desenho cancelado" +msgstr "Mistura de luminosidade:" #: ../src/extension/internal/filter/bumps.h:341 -#, fuzzy msgid "Highlight blend:" -msgstr "Cor de _destaque:" +msgstr "Mistura de altas luzes:" #: ../src/extension/internal/filter/bumps.h:350 -#, fuzzy msgid "Bump color" -msgstr "Soltar cor" +msgstr "Saliência de cor" #: ../src/extension/internal/filter/bumps.h:351 -#, fuzzy msgid "Revert bump" -msgstr "Re_verter" +msgstr "Saliência revertida" #: ../src/extension/internal/filter/bumps.h:352 -#, fuzzy msgid "Transparency type:" -msgstr "0 (transparente)" +msgstr "Tipo de transparência" #: ../src/extension/internal/filter/bumps.h:353 #: ../src/extension/internal/filter/morphology.h:176 ../src/filter-enums.cpp:91 msgid "Atop" -msgstr "Atop" +msgstr "Por Cima Cortado por Dentro (atop)" #: ../src/extension/internal/filter/bumps.h:354 #: ../src/extension/internal/filter/distort.h:70 @@ -7046,15 +6608,14 @@ msgstr "Dentro" #: ../src/extension/internal/filter/bumps.h:365 msgid "Turns an image to jelly" -msgstr "" +msgstr "Torna uma imagem em geleia" #: ../src/extension/internal/filter/color.h:73 msgid "Brilliance" -msgstr "" +msgstr "Brilho, Saturação, Luminosidade" #: ../src/extension/internal/filter/color.h:76 #: ../src/extension/internal/filter/color.h:1492 -#, fuzzy msgid "Over-saturation" msgstr "Saturação" @@ -7065,19 +6626,16 @@ msgstr "Saturação" #: ../src/extension/internal/filter/paint.h:502 #: ../src/extension/internal/filter/transparency.h:136 #: ../src/extension/internal/filter/transparency.h:210 -#, fuzzy msgid "Inverted" -msgstr "Inverter" +msgstr "Invertido" #: ../src/extension/internal/filter/color.h:86 -#, fuzzy msgid "Brightness filter" -msgstr "Níveis do brilho" +msgstr "Filtro de brilho" #: ../src/extension/internal/filter/color.h:153 -#, fuzzy msgid "Channel Painting" -msgstr "Pintura a Óleo" +msgstr "Pintura de Canal" #: ../src/extension/internal/filter/color.h:157 #: ../src/extension/internal/filter/color.h:332 @@ -7095,104 +6653,93 @@ msgstr "Saturação" #: ../src/extension/internal/filter/transparency.h:135 #: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:97 msgid "Alpha" -msgstr "Alfa" +msgstr "Transparência" #: ../src/extension/internal/filter/color.h:175 -#, fuzzy msgid "Replace RGB by any color" -msgstr "Substituir cor..." +msgstr "Substituir RBG por qualquer cor" #: ../src/extension/internal/filter/color.h:254 -#, fuzzy msgid "Color Blindness" -msgstr "Cor das linhas guias" +msgstr "Teste de Daltonismo" #: ../src/extension/internal/filter/color.h:258 -#, fuzzy msgid "Blindness type:" -msgstr " tipo: " +msgstr "Tipo de daltonismo:" #: ../src/extension/internal/filter/color.h:259 msgid "Rod monochromacy (atypical achromatopsia)" -msgstr "" +msgstr "Monocromacia bastonete (acromatopsia atípica)" #: ../src/extension/internal/filter/color.h:260 msgid "Cone monochromacy (typical achromatopsia)" -msgstr "" +msgstr "Monocromacia cone (acromatopsia típica)" #: ../src/extension/internal/filter/color.h:261 msgid "Green weak (deuteranomaly)" -msgstr "" +msgstr "Verde fraco (deuteranomalia)" #: ../src/extension/internal/filter/color.h:262 msgid "Green blind (deuteranopia)" -msgstr "" +msgstr "Verde cego (deuteranopia)" #: ../src/extension/internal/filter/color.h:263 msgid "Red weak (protanomaly)" -msgstr "" +msgstr "Vermelho fraco (protanomalia)" #: ../src/extension/internal/filter/color.h:264 msgid "Red blind (protanopia)" -msgstr "" +msgstr "Vermelho cego (protanopia)" #: ../src/extension/internal/filter/color.h:265 msgid "Blue weak (tritanomaly)" -msgstr "" +msgstr "Azul fraco (tritanomalia)" #: ../src/extension/internal/filter/color.h:266 msgid "Blue blind (tritanopia)" -msgstr "" +msgstr "Azul cego (tritanopia)" #: ../src/extension/internal/filter/color.h:286 -#, fuzzy msgid "Simulate color blindness" -msgstr "Simular saída na Ecrã" +msgstr "Simular daltonismo" #: ../src/extension/internal/filter/color.h:329 -#, fuzzy msgid "Color Shift" -msgstr "Sombreamento colorido" +msgstr "Desvio da Cor" #: ../src/extension/internal/filter/color.h:331 -#, fuzzy msgid "Shift (°)" -msgstr "D_eslocamento" +msgstr "Desvio (°)" #: ../src/extension/internal/filter/color.h:340 msgid "Rotate and desaturate hue" -msgstr "" +msgstr "Rodar e desaturar matiz" #: ../src/extension/internal/filter/color.h:396 -#, fuzzy msgid "Harsh light" -msgstr "Altura da Barra:" +msgstr "Luz dura" #: ../src/extension/internal/filter/color.h:397 -#, fuzzy msgid "Normal light" -msgstr "Tipografia normal" +msgstr "Luz suave" #: ../src/extension/internal/filter/color.h:398 -#, fuzzy msgid "Duotone" -msgstr "Fundo" +msgstr "Dois tons" #: ../src/extension/internal/filter/color.h:399 #: ../src/extension/internal/filter/color.h:1487 -#, fuzzy msgid "Blend 1:" -msgstr "Misturar" +msgstr "Mistura 1:" #: ../src/extension/internal/filter/color.h:406 #: ../src/extension/internal/filter/color.h:1493 -#, fuzzy msgid "Blend 2:" -msgstr "Misturar" +msgstr "Mistura 2:" #: ../src/extension/internal/filter/color.h:425 msgid "Blend image or object with a flood color" -msgstr "" +msgstr "Misturar imagem ou objeto com uma indunação de cor" #: ../src/extension/internal/filter/color.h:499 ../src/filter-enums.cpp:23 msgid "Component Transfer" @@ -7225,62 +6772,52 @@ msgid "Gamma" msgstr "Gama" #: ../src/extension/internal/filter/color.h:515 -#, fuzzy msgid "Basic component transfer structure" -msgstr "Transferência de Componente" +msgstr "Estrutura de transferência de componente básica" #: ../src/extension/internal/filter/color.h:584 -#, fuzzy msgid "Duochrome" -msgstr "Combinar" +msgstr "Dicromia (2 cores)" #: ../src/extension/internal/filter/color.h:588 -#, fuzzy msgid "Fluorescence level" -msgstr "Presença" +msgstr "Nível de fluorescência" #: ../src/extension/internal/filter/color.h:589 msgid "Swap:" -msgstr "" +msgstr "Trocar:" #: ../src/extension/internal/filter/color.h:590 msgid "No swap" -msgstr "" +msgstr "Sem troca" #: ../src/extension/internal/filter/color.h:591 -#, fuzzy msgid "Color and alpha" -msgstr "Gerenciamento de cor" +msgstr "Cor e transparência" #: ../src/extension/internal/filter/color.h:592 -#, fuzzy msgid "Color only" -msgstr "Cor das linhas guias" +msgstr "Apenas a cor" #: ../src/extension/internal/filter/color.h:593 -#, fuzzy msgid "Alpha only" -msgstr "Alfa" +msgstr "Apenas a transparência" #: ../src/extension/internal/filter/color.h:597 -#, fuzzy msgid "Color 1" -msgstr "Cor" +msgstr "Cor 1" #: ../src/extension/internal/filter/color.h:600 -#, fuzzy msgid "Color 2" -msgstr "Cor" +msgstr "Cor 2" #: ../src/extension/internal/filter/color.h:610 -#, fuzzy msgid "Convert luminance values to a duochrome palette" -msgstr "Selecionar cores de uma paleta modelo" +msgstr "Converter valores de luminosidade numa palete de 2 cores" #: ../src/extension/internal/filter/color.h:709 -#, fuzzy msgid "Extract Channel" -msgstr "Canal de Opacidade" +msgstr "Extrair Canal" #: ../src/extension/internal/filter/color.h:715 #: ../src/ui/widget/color-icc-selector.cpp:190 @@ -7304,29 +6841,24 @@ msgid "Yellow" msgstr "Amarelo" #: ../src/extension/internal/filter/color.h:719 -#, fuzzy msgid "Background blend mode:" -msgstr "Cor de plano de fundo" +msgstr "Modo de mistura do fundo:" #: ../src/extension/internal/filter/color.h:724 -#, fuzzy msgid "Channel to alpha" -msgstr "Luminância para Alfa" +msgstr "Canal para transparência" #: ../src/extension/internal/filter/color.h:732 -#, fuzzy msgid "Extract color channel as a transparent image" -msgstr "Extrair um canal específico de uma imagem." +msgstr "Extrair canal de cor como imagem transparente" #: ../src/extension/internal/filter/color.h:815 -#, fuzzy msgid "Fade to Black or White" -msgstr "Inverter regiões pretas e brancas para traçados simples" +msgstr "Esvanecer para Preto ou Branco" #: ../src/extension/internal/filter/color.h:818 -#, fuzzy msgid "Fade to:" -msgstr "Escurecer:" +msgstr "Esvanecer para:" #: ../src/extension/internal/filter/color.h:819 #: ../src/ui/widget/color-icc-selector.cpp:193 @@ -7341,25 +6873,22 @@ msgid "White" msgstr "Branco" #: ../src/extension/internal/filter/color.h:829 -#, fuzzy msgid "Fade to black or white" -msgstr "Inverter regiões pretas e brancas para traçados simples" +msgstr "Esvanecer para preto ou branco" #: ../src/extension/internal/filter/color.h:894 -#, fuzzy msgid "Greyscale" msgstr "Escala de cinzas" #: ../src/extension/internal/filter/color.h:900 #: ../src/extension/internal/filter/paint.h:83 #: ../src/extension/internal/filter/paint.h:239 -#, fuzzy msgid "Transparent" -msgstr "0 (transparente)" +msgstr "Transparente" #: ../src/extension/internal/filter/color.h:908 msgid "Customize greyscale components" -msgstr "" +msgstr "Personalizar os componentes da escala de cinzas" #: ../src/extension/internal/filter/color.h:980 #: ../src/ui/widget/selected-style.cpp:267 @@ -7367,63 +6896,54 @@ msgid "Invert" msgstr "Inverter" #: ../src/extension/internal/filter/color.h:982 -#, fuzzy msgid "Invert channels:" -msgstr "Inverter" +msgstr "Canais de inversão:" #: ../src/extension/internal/filter/color.h:983 -#, fuzzy msgid "No inversion" -msgstr "Novo Nesta Versão" +msgstr "Sem inversão" #: ../src/extension/internal/filter/color.h:984 -#, fuzzy msgid "Red and blue" -msgstr "Canal Vermelho" +msgstr "Vermelho e azul" #: ../src/extension/internal/filter/color.h:985 -#, fuzzy msgid "Red and green" -msgstr "Criar e editar degradês" +msgstr "Vermelho e verde" #: ../src/extension/internal/filter/color.h:986 -#, fuzzy msgid "Green and blue" -msgstr "Canal Verde" +msgstr "Verde e azul" #: ../src/extension/internal/filter/color.h:988 -#, fuzzy msgid "Light transparency" -msgstr "0 (transparente)" +msgstr "Transparência da luz" #: ../src/extension/internal/filter/color.h:989 -#, fuzzy msgid "Invert hue" -msgstr "Inverter" +msgstr "Inverter matiz" #: ../src/extension/internal/filter/color.h:990 -#, fuzzy msgid "Invert lightness" -msgstr "Inverter imagem" +msgstr "Inverter luminosidade" #: ../src/extension/internal/filter/color.h:991 -#, fuzzy msgid "Invert transparency" -msgstr "0 (transparente)" +msgstr "Inverter transparência" #: ../src/extension/internal/filter/color.h:999 msgid "Manage hue, lightness and transparency inversions" msgstr "" +"Permite inverter canais de cores, matiz, luminosidade e transparência de " +"forma independente" #: ../src/extension/internal/filter/color.h:1117 -#, fuzzy msgid "Lights" -msgstr "Direitos:" +msgstr "Luzes" #: ../src/extension/internal/filter/color.h:1118 -#, fuzzy msgid "Shadows" -msgstr "Sombra" +msgstr "Sombras" #: ../src/extension/internal/filter/color.h:1119 #: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 @@ -7433,29 +6953,27 @@ msgstr "Sombra" #: ../src/widgets/gradient-toolbar.cpp:1159 #: ../src/widgets/measure-toolbar.cpp:328 msgid "Offset" -msgstr "Deslocamentos" +msgstr "Deslocamento" #: ../src/extension/internal/filter/color.h:1127 msgid "Modify lights and shadows separately" -msgstr "" +msgstr "Alterar luzes e sombras separadamente" #: ../src/extension/internal/filter/color.h:1186 -#, fuzzy msgid "Lightness-Contrast" -msgstr "Brilho" +msgstr "Luminosidade-Contraste" #: ../src/extension/internal/filter/color.h:1197 msgid "Modify lightness and contrast separately" -msgstr "" +msgstr "Alterar luminosidade e contraste separadamente" #: ../src/extension/internal/filter/color.h:1265 msgid "Nudge RGB" -msgstr "" +msgstr "Deslocar e alterar cores RGB" #: ../src/extension/internal/filter/color.h:1269 -#, fuzzy msgid "Red offset" -msgstr "Padrão de Tipografia" +msgstr "Delocamento do vermelho" #: ../src/extension/internal/filter/color.h:1270 #: ../src/extension/internal/filter/color.h:1273 @@ -7475,59 +6993,54 @@ msgstr "X" #: ../src/extension/internal/filter/color.h:1386 #: ../src/extension/internal/filter/color.h:1389 #: ../src/ui/dialog/input.cpp:1616 ../src/ui/widget/page-sizer.cpp:248 -#, fuzzy msgid "Y" -msgstr "Y:" +msgstr "Y" #: ../src/extension/internal/filter/color.h:1272 -#, fuzzy msgid "Green offset" -msgstr "Padrão de Tipografia" +msgstr "Delocamento do verde" #: ../src/extension/internal/filter/color.h:1275 -#, fuzzy msgid "Blue offset" -msgstr "Valore(s)" +msgstr "Delocamento do azul" #: ../src/extension/internal/filter/color.h:1290 msgid "" "Nudge RGB channels separately and blend them to different types of " "backgrounds" msgstr "" +"Desviar canais RGB separadamente e misturá-los com tipos diferentes de fundo" #: ../src/extension/internal/filter/color.h:1377 msgid "Nudge CMY" -msgstr "" +msgstr "Deslocar e alterar cores CMY" #: ../src/extension/internal/filter/color.h:1381 -#, fuzzy msgid "Cyan offset" -msgstr "Padrão de Tipografia" +msgstr "Delocamento do ciano" #: ../src/extension/internal/filter/color.h:1384 -#, fuzzy msgid "Magenta offset" -msgstr "Tipografia tangencial" +msgstr "Delocamento do magenta" #: ../src/extension/internal/filter/color.h:1387 -#, fuzzy msgid "Yellow offset" -msgstr "Padrão de Tipografia" +msgstr "Delocamento do amarelo" #: ../src/extension/internal/filter/color.h:1402 msgid "" "Nudge CMY channels separately and blend them to different types of " "backgrounds" msgstr "" +"Ajustar canais CMY separadamente e misturá-los com tipos diferentes de fundo" #: ../src/extension/internal/filter/color.h:1483 msgid "Quadritone fantasy" -msgstr "" +msgstr "Fantasia de 4 tons" #: ../src/extension/internal/filter/color.h:1485 -#, fuzzy msgid "Hue distribution (°)" -msgstr "Usar distribuição normal" +msgstr "Distribuição de matiz (°)" #: ../src/extension/internal/filter/color.h:1486 #: ../share/extensions/svgcalendar.inx.h:19 @@ -7535,88 +7048,76 @@ msgid "Colors" msgstr "Cores" #: ../src/extension/internal/filter/color.h:1507 -#, fuzzy msgid "Replace hue by two colors" -msgstr "Substituir cor..." +msgstr "Substituir matiz por 2 cores" #: ../src/extension/internal/filter/color.h:1571 -#, fuzzy msgid "Hue rotation (°)" -msgstr "Rotação (graus)" +msgstr "Rotação de matiz (°)" #: ../src/extension/internal/filter/color.h:1574 -#, fuzzy msgid "Moonarize" -msgstr "Colorizar" +msgstr "Lunarizar" #: ../src/extension/internal/filter/color.h:1583 msgid "Classic photographic solarization effect" -msgstr "" +msgstr "Efeito fotográfico clássico de solarização" #: ../src/extension/internal/filter/color.h:1656 -#, fuzzy msgid "Tritone" -msgstr "Título" +msgstr "Três tons" #: ../src/extension/internal/filter/color.h:1662 -#, fuzzy msgid "Enhance hue" -msgstr "Realçar" +msgstr "Realçar matiz" #: ../src/extension/internal/filter/color.h:1663 -#, fuzzy msgid "Phosphorescence" -msgstr "Presença" +msgstr "Fosforescência" #: ../src/extension/internal/filter/color.h:1664 -#, fuzzy msgid "Colored nights" -msgstr "Sombreamento colorido" +msgstr "Luzes coloridas" #: ../src/extension/internal/filter/color.h:1665 -#, fuzzy msgid "Hue to background" -msgstr "Remover fundo" +msgstr "Matiz para o fundo" #: ../src/extension/internal/filter/color.h:1667 -#, fuzzy msgid "Global blend:" -msgstr "Configurações da página" +msgstr "Mistura global:" #: ../src/extension/internal/filter/color.h:1673 -#, fuzzy msgid "Glow" -msgstr "Soltar cor" +msgstr "Auréola" #: ../src/extension/internal/filter/color.h:1674 msgid "Glow blend:" -msgstr "" +msgstr "Mistura da auréola:" #: ../src/extension/internal/filter/color.h:1679 -#, fuzzy msgid "Local light" -msgstr "Iluminação Especular" +msgstr "Luz local" #: ../src/extension/internal/filter/color.h:1680 -#, fuzzy msgid "Global light" -msgstr "Configurações da página" +msgstr "Luz global" #: ../src/extension/internal/filter/color.h:1683 -#, fuzzy msgid "Hue distribution (°):" -msgstr "Usar distribuição normal" +msgstr "Distribuição da matiz (°):" #: ../src/extension/internal/filter/color.h:1694 msgid "" "Create a custom tritone palette with additional glow, blend modes and hue " "moving" msgstr "" +"Criar uma paleta tricolor personalizada com aurélula adicional, modos de " +"mistura e matiz a mover-se" #: ../src/extension/internal/filter/distort.h:67 -#, fuzzy msgid "Felt Feather" -msgstr "Metro" +msgstr "Polimento de Fletro" #: ../src/extension/internal/filter/distort.h:71 #: ../src/extension/internal/filter/morphology.h:175 ../src/filter-enums.cpp:90 @@ -7632,32 +7133,28 @@ msgstr "Traço:" #: ../src/extension/internal/filter/distort.h:79 #: ../src/extension/internal/filter/textures.h:76 -#, fuzzy msgid "Wide" -msgstr "_Ocultar" +msgstr "Grosso" #: ../src/extension/internal/filter/distort.h:80 #: ../src/extension/internal/filter/textures.h:78 -#, fuzzy msgid "Narrow" -msgstr "Abai_xar" +msgstr "Fino" #: ../src/extension/internal/filter/distort.h:81 msgid "No fill" msgstr "Sem preenchimento" #: ../src/extension/internal/filter/distort.h:83 -#, fuzzy msgid "Turbulence:" -msgstr "Turbulência" +msgstr "Turbulência:" #: ../src/extension/internal/filter/distort.h:84 #: ../src/extension/internal/filter/distort.h:193 #: ../src/extension/internal/filter/overlays.h:61 #: ../src/extension/internal/filter/paint.h:692 -#, fuzzy msgid "Fractal noise" -msgstr "Ruído Fractal" +msgstr "Ruído fractal" #: ../src/extension/internal/filter/distort.h:85 #: ../src/extension/internal/filter/distort.h:194 @@ -7671,134 +7168,118 @@ msgstr "Turbulência" #: ../src/extension/internal/filter/distort.h:196 #: ../src/extension/internal/filter/paint.h:93 #: ../src/extension/internal/filter/paint.h:695 -#, fuzzy msgid "Horizontal frequency" -msgstr "Desvio Horizontal" +msgstr "Frequência horizontal" #: ../src/extension/internal/filter/distort.h:88 #: ../src/extension/internal/filter/distort.h:197 #: ../src/extension/internal/filter/paint.h:94 #: ../src/extension/internal/filter/paint.h:696 -#, fuzzy msgid "Vertical frequency" -msgstr "Freqüência Base" +msgstr "Frequência vertical" #: ../src/extension/internal/filter/distort.h:89 #: ../src/extension/internal/filter/distort.h:198 #: ../src/extension/internal/filter/paint.h:95 #: ../src/extension/internal/filter/paint.h:697 -#, fuzzy msgid "Complexity" -msgstr "Composição" +msgstr "Complexidade" #: ../src/extension/internal/filter/distort.h:90 #: ../src/extension/internal/filter/distort.h:199 #: ../src/extension/internal/filter/paint.h:96 #: ../src/extension/internal/filter/paint.h:698 -#, fuzzy msgid "Variation" -msgstr "Saturação" +msgstr "Variação" #: ../src/extension/internal/filter/distort.h:91 #: ../src/extension/internal/filter/distort.h:200 -#, fuzzy msgid "Intensity" -msgstr "Intersecção" +msgstr "Intensidade" #: ../src/extension/internal/filter/distort.h:99 msgid "Blur and displace edges of shapes and pictures" -msgstr "" +msgstr "Desfocar e deslocar bordas das formas geométricas e imagens" #: ../src/extension/internal/filter/distort.h:190 #: ../src/live_effects/effect.cpp:142 -#, fuzzy msgid "Roughen" -msgstr "Modo áspero" +msgstr "Rugoso" #: ../src/extension/internal/filter/distort.h:192 #: ../src/extension/internal/filter/overlays.h:60 #: ../src/extension/internal/filter/paint.h:691 #: ../src/extension/internal/filter/textures.h:64 -#, fuzzy msgid "Turbulence type:" -msgstr "Turbulência" +msgstr "Tipo de turbulência:" #: ../src/extension/internal/filter/distort.h:208 -#, fuzzy msgid "Small-scale roughening to edges and content" -msgstr "Ampliar canto arredondados em retângulos" +msgstr "" +"Semelhante a ver através de um vidro fosco/martelado, torna levemente rugoso " +"as bordas e o conteúdo" #: ../src/extension/internal/filter/filter-file.cpp:34 -#, fuzzy msgid "Bundled" -msgstr "Arredondado" +msgstr "Empacotado" #: ../src/extension/internal/filter/filter-file.cpp:35 msgid "Personal" -msgstr "" +msgstr "Pessoal" #: ../src/extension/internal/filter/filter-file.cpp:47 -#, fuzzy msgid "Null external module directory name. Filters will not be loaded." msgstr "" -"Nome de diretório externo do módulo inválido. Os módulos não serão " +"O nome da pasta do módulo externo não é válido. Os filtros não serão " "carregados." #: ../src/extension/internal/filter/image.h:49 -#, fuzzy msgid "Edge Detect" -msgstr "Detecção de bordas" +msgstr "Deteção de Bordas" #: ../src/extension/internal/filter/image.h:51 msgid "Detect:" -msgstr "" +msgstr "Detetar:" #: ../src/extension/internal/filter/image.h:52 #: ../src/ui/dialog/template-load-tab.cpp:107 #: ../src/ui/dialog/template-load-tab.cpp:144 -#, fuzzy msgid "All" -msgstr "Tabela" +msgstr "Tudo" #: ../src/extension/internal/filter/image.h:53 -#, fuzzy msgid "Vertical lines" -msgstr "Espaçamento Vertical" +msgstr "Linhas verticais" #: ../src/extension/internal/filter/image.h:54 -#, fuzzy msgid "Horizontal lines" -msgstr " Horizontal" +msgstr "Linhas horizontais" #: ../src/extension/internal/filter/image.h:57 -#, fuzzy msgid "Invert colors" -msgstr "Fazer com que os conectores evitem os objectos seleccionados" +msgstr "Inverter cores" #: ../src/extension/internal/filter/image.h:65 msgid "Detect color edges in object" -msgstr "" +msgstr "Detetar bordas das cores no objeto" #: ../src/extension/internal/filter/morphology.h:58 -#, fuzzy msgid "Cross-smooth" -msgstr "suave" +msgstr "Suavidade cruzada" #: ../src/extension/internal/filter/morphology.h:61 #: ../src/extension/internal/filter/shadows.h:66 -#, fuzzy msgid "Inner" -msgstr "Raio interno:" +msgstr "Dentro" #: ../src/extension/internal/filter/morphology.h:62 #: ../src/extension/internal/filter/shadows.h:65 msgid "Outer" -msgstr "" +msgstr "Fora" #: ../src/extension/internal/filter/morphology.h:63 -#, fuzzy msgid "Open" -msgstr "_Abrir..." +msgstr "Aberto" #: ../src/extension/internal/filter/morphology.h:65 #: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 @@ -7810,38 +7291,33 @@ msgstr "Largura" #: ../src/extension/internal/filter/morphology.h:69 #: ../src/extension/internal/filter/morphology.h:190 -#, fuzzy msgid "Antialiasing" -msgstr "Simular saída na Ecrã" +msgstr "Anti-serrilhado" #: ../src/extension/internal/filter/morphology.h:70 -#, fuzzy msgid "Blur content" -msgstr "_Modo misturar:" +msgstr "Desfocar conteúdo" #: ../src/extension/internal/filter/morphology.h:79 msgid "Smooth edges and angles of shapes" -msgstr "" +msgstr "Suavizar bordas e ângulos das formas geométricas" #: ../src/extension/internal/filter/morphology.h:166 -#, fuzzy msgid "Outline" -msgstr "_Contorno" +msgstr "Contorno" +# significa aplicar também ao preenchimento e não só ao traço #: ../src/extension/internal/filter/morphology.h:170 -#, fuzzy msgid "Fill image" -msgstr "Embutir Todas as Imagens" +msgstr "Aplicar também ao preenchimento" #: ../src/extension/internal/filter/morphology.h:171 -#, fuzzy msgid "Hide image" -msgstr "Ocultar Camada" +msgstr "Ocultar imagem" #: ../src/extension/internal/filter/morphology.h:172 -#, fuzzy msgid "Composite type:" -msgstr "Composição" +msgstr "Tipo de composição:" #: ../src/extension/internal/filter/morphology.h:173 ../src/filter-enums.cpp:88 msgid "Over" @@ -7859,49 +7335,40 @@ msgid "Position:" msgstr "Posição:" #: ../src/extension/internal/filter/morphology.h:180 -#, fuzzy msgid "Inside" -msgstr "nó final" +msgstr "Dentro" #: ../src/extension/internal/filter/morphology.h:181 -#, fuzzy msgid "Outside" -msgstr "_Expandir" +msgstr "Fora" #: ../src/extension/internal/filter/morphology.h:182 -#, fuzzy msgid "Overlayed" -msgstr "Sobre" +msgstr "Sobreposto" #: ../src/extension/internal/filter/morphology.h:184 -#, fuzzy msgid "Width 1" -msgstr "Largura:" +msgstr "Largura 1" #: ../src/extension/internal/filter/morphology.h:185 -#, fuzzy msgid "Dilatation 1" -msgstr "Saturação" +msgstr "Dilatação 1" #: ../src/extension/internal/filter/morphology.h:186 -#, fuzzy msgid "Erosion 1" -msgstr "Posição:" +msgstr "Erosão 1" #: ../src/extension/internal/filter/morphology.h:187 -#, fuzzy msgid "Width 2" -msgstr "Largura:" +msgstr "Largura 2" #: ../src/extension/internal/filter/morphology.h:188 -#, fuzzy msgid "Dilatation 2" -msgstr "Saturação" +msgstr "Dilatação 2" #: ../src/extension/internal/filter/morphology.h:189 -#, fuzzy msgid "Erosion 2" -msgstr "Posição:" +msgstr "Erosão 2" #: ../src/extension/internal/filter/morphology.h:191 #: ../src/live_effects/lpe-roughen.cpp:41 @@ -7909,24 +7376,20 @@ msgid "Smooth" msgstr "Suavizar" #: ../src/extension/internal/filter/morphology.h:195 -#, fuzzy msgid "Fill opacity:" -msgstr "Opacidade, %" +msgstr "Opacidade do preenchimento:" #: ../src/extension/internal/filter/morphology.h:196 -#, fuzzy msgid "Stroke opacity:" -msgstr "_Pintura de traço" +msgstr "Opacidade do traço:" #: ../src/extension/internal/filter/morphology.h:206 -#, fuzzy msgid "Adds a colorizable outline" -msgstr "Desenhar um caminho a uma grelha" +msgstr "Adiciona um contorno colorível" #: ../src/extension/internal/filter/overlays.h:56 -#, fuzzy msgid "Noise Fill" -msgstr "Sem preenchimento" +msgstr "Preenchimento de Ruído" #: ../src/extension/internal/filter/overlays.h:59 #: ../src/extension/internal/filter/paint.h:690 @@ -7959,116 +7422,101 @@ msgid "Options" msgstr "Opções" #: ../src/extension/internal/filter/overlays.h:64 -#, fuzzy msgid "Horizontal frequency:" -msgstr "Desvio Horizontal" +msgstr "Frequência horizontal:" #: ../src/extension/internal/filter/overlays.h:65 -#, fuzzy msgid "Vertical frequency:" -msgstr "Freqüência Base" +msgstr "Frequência vertical:" #: ../src/extension/internal/filter/overlays.h:66 #: ../src/extension/internal/filter/textures.h:69 -#, fuzzy msgid "Complexity:" -msgstr "Composição" +msgstr "Complexidade:" #: ../src/extension/internal/filter/overlays.h:67 #: ../src/extension/internal/filter/textures.h:70 -#, fuzzy msgid "Variation:" -msgstr "Saturação" +msgstr "Variação:" #: ../src/extension/internal/filter/overlays.h:68 -#, fuzzy msgid "Dilatation:" -msgstr "Saturação" +msgstr "Dilatação:" #: ../src/extension/internal/filter/overlays.h:69 -#, fuzzy msgid "Erosion:" -msgstr "Posição:" +msgstr "Erosão:" #: ../src/extension/internal/filter/overlays.h:72 -#, fuzzy msgid "Noise color" -msgstr "Soltar cor" +msgstr "Cor do ruído" #: ../src/extension/internal/filter/overlays.h:83 msgid "Basic noise fill and transparency texture" -msgstr "" +msgstr "Textura de ruído básico no preenchimento e transparência" #: ../src/extension/internal/filter/paint.h:71 msgid "Chromolitho" -msgstr "" +msgstr "Cromolito" #: ../src/extension/internal/filter/paint.h:75 #: ../share/extensions/jessyInk_keyBindings.inx.h:16 -#, fuzzy msgid "Drawing mode" -msgstr "Desenho" +msgstr "Modo de desenho" #: ../src/extension/internal/filter/paint.h:76 -#, fuzzy msgid "Drawing blend:" -msgstr "Desenho cancelado" +msgstr "Mistura do desenho:" #: ../src/extension/internal/filter/paint.h:84 -#, fuzzy msgid "Dented" -msgstr "Centralizar" +msgstr "Dentado" #: ../src/extension/internal/filter/paint.h:88 #: ../src/extension/internal/filter/paint.h:699 -#, fuzzy msgid "Noise reduction" -msgstr "Descrição" +msgstr "Redução de ruído" #: ../src/extension/internal/filter/paint.h:91 -#, fuzzy msgid "Grain" -msgstr "Desenho" +msgstr "Grão" #: ../src/extension/internal/filter/paint.h:92 -#, fuzzy msgid "Grain mode" -msgstr "Desenho" +msgstr "Aplicar grão" #: ../src/extension/internal/filter/paint.h:97 #: ../src/extension/internal/filter/transparency.h:207 #: ../src/extension/internal/filter/transparency.h:281 -#, fuzzy msgid "Expansion" -msgstr "Extensão \"" +msgstr "Expansão" #: ../src/extension/internal/filter/paint.h:100 msgid "Grain blend:" -msgstr "" +msgstr "Mistura de grão:" #: ../src/extension/internal/filter/paint.h:116 msgid "Chromo effect with customizable edge drawing and graininess" -msgstr "" +msgstr "Efeito cromado com desenho de bordas e granulado personalizáveis" #: ../src/extension/internal/filter/paint.h:232 -#, fuzzy msgid "Cross Engraving" -msgstr "Desenho" +msgstr "Gravura Cruzada" #: ../src/extension/internal/filter/paint.h:234 #: ../src/extension/internal/filter/paint.h:337 msgid "Clean-up" -msgstr "" +msgstr "Limpeza" #: ../src/extension/internal/filter/paint.h:238 #: ../share/extensions/measure.inx.h:17 -#, fuzzy msgid "Length" -msgstr "Comprimento:" +msgstr "Comprimento" #: ../src/extension/internal/filter/paint.h:247 msgid "Convert image to an engraving made of vertical and horizontal lines" msgstr "" +"Converter a imagem numa gravura composta por linhas horizontais e verticais" #: ../src/extension/internal/filter/paint.h:331 #: ../src/ui/dialog/align-and-distribute.cpp:1090 @@ -8087,324 +7535,271 @@ msgstr "Simplificar" #: ../src/extension/internal/filter/paint.h:338 #: ../src/extension/internal/filter/paint.h:709 -#, fuzzy msgid "Erase" -msgstr "Rasterizar" +msgstr "Apagar" #: ../src/extension/internal/filter/paint.h:344 msgid "Melt" -msgstr "" +msgstr "Derreter" #: ../src/extension/internal/filter/paint.h:350 #: ../src/extension/internal/filter/paint.h:712 -#, fuzzy msgid "Fill color" -msgstr "Cor lisa" +msgstr "Cor do preenchimento" #: ../src/extension/internal/filter/paint.h:351 #: ../src/extension/internal/filter/paint.h:714 -#, fuzzy msgid "Image on fill" -msgstr "Imagem" +msgstr "Mostrar imagem original no preenchimento" #: ../src/extension/internal/filter/paint.h:354 -#, fuzzy msgid "Stroke color" -msgstr "Definir cor do traço" +msgstr "Cor do traço" #: ../src/extension/internal/filter/paint.h:355 -#, fuzzy msgid "Image on stroke" -msgstr "Padrão de traço" +msgstr "Mostrar imagem original no traço" #: ../src/extension/internal/filter/paint.h:366 -#, fuzzy msgid "Convert images to duochrome drawings" -msgstr "Ajusta a Ecrã ao desenho" +msgstr "Converter imagens em desenhos de dicromia (2 cores)" #: ../src/extension/internal/filter/paint.h:494 msgid "Electrize" -msgstr "" +msgstr "Eletrizar" #: ../src/extension/internal/filter/paint.h:497 #: ../src/extension/internal/filter/paint.h:852 -#, fuzzy msgid "Effect type:" -msgstr "Efeito_s" +msgstr "Tipo de efeito:" #: ../src/extension/internal/filter/paint.h:501 #: ../src/extension/internal/filter/paint.h:860 #: ../src/extension/internal/filter/paint.h:975 -#, fuzzy msgid "Levels" -msgstr "Nível" +msgstr "Níveis" #: ../src/extension/internal/filter/paint.h:510 msgid "Electro solarization effects" -msgstr "" +msgstr "Efeitos de solarização elétrica" #: ../src/extension/internal/filter/paint.h:584 -#, fuzzy msgid "Neon Draw" -msgstr "Nenhum" +msgstr "Desenho Néon" #: ../src/extension/internal/filter/paint.h:586 -#, fuzzy msgid "Line type:" -msgstr " tipo: " +msgstr "Tipo de linha:" #: ../src/extension/internal/filter/paint.h:587 -#, fuzzy msgid "Smoothed" -msgstr "Suavizar" +msgstr "Suavizada" #: ../src/extension/internal/filter/paint.h:588 -#, fuzzy msgid "Contrasted" -msgstr "Contraste" +msgstr "Contrastada" #: ../src/extension/internal/filter/paint.h:591 #: ../src/live_effects/lpe-jointype.cpp:54 -#, fuzzy msgid "Line width" -msgstr "Largura da Linha" +msgstr "Espessura da linha" #: ../src/extension/internal/filter/paint.h:593 #: ../src/extension/internal/filter/paint.h:861 #: ../src/ui/widget/filter-effect-chooser.cpp:25 -#, fuzzy msgid "Blend mode:" -msgstr "_Modo misturar:" +msgstr "Modo de mistura:" #: ../src/extension/internal/filter/paint.h:605 msgid "Posterize and draw smooth lines around color shapes" -msgstr "" +msgstr "Posterizar e desenhar linhas suaves à volta de formas coloridas" #: ../src/extension/internal/filter/paint.h:687 -#, fuzzy msgid "Point Engraving" -msgstr "Desenho" +msgstr "Gravura de Pontos" #: ../src/extension/internal/filter/paint.h:700 -#, fuzzy msgid "Noise blend:" -msgstr "Descrição" +msgstr "Mistura de ruído:" #: ../src/extension/internal/filter/paint.h:708 -#, fuzzy msgid "Grain lightness" -msgstr "Luminosidade" +msgstr "Luminosidade do grão" #: ../src/extension/internal/filter/paint.h:716 -#, fuzzy msgid "Points color" -msgstr "Soltar cor" +msgstr "Cor dos pontos" #: ../src/extension/internal/filter/paint.h:718 -#, fuzzy msgid "Image on points" -msgstr "Imagem" +msgstr "Imagem nos pontos" #: ../src/extension/internal/filter/paint.h:728 -#, fuzzy msgid "Convert image to a transparent point engraving" -msgstr "Ajusta a Ecrã ao desenho" +msgstr "Converter a imagem em gravura de ponto transparente" #: ../src/extension/internal/filter/paint.h:850 -#, fuzzy msgid "Poster Paint" -msgstr "Constante" +msgstr "Pintura de Poster" #: ../src/extension/internal/filter/paint.h:856 -#, fuzzy msgid "Transfer type:" -msgstr "Todos os tipos" +msgstr "Tipo de transferência:" #: ../src/extension/internal/filter/paint.h:857 -#, fuzzy msgid "Poster" -msgstr "Colar" +msgstr "Poster" #: ../src/extension/internal/filter/paint.h:858 -#, fuzzy msgid "Painting" -msgstr "Pintura a Óleo" +msgstr "Pintura" #: ../src/extension/internal/filter/paint.h:868 -#, fuzzy msgid "Simplify (primary)" -msgstr "Simplificando caminhos:" +msgstr "Simplificar (primário)" #: ../src/extension/internal/filter/paint.h:869 -#, fuzzy msgid "Simplify (secondary)" -msgstr "Simplificar" +msgstr "Simplificar (secundário)" #: ../src/extension/internal/filter/paint.h:870 -#, fuzzy msgid "Pre-saturation" -msgstr "Saturação" +msgstr "Pré-saturação" #: ../src/extension/internal/filter/paint.h:871 -#, fuzzy msgid "Post-saturation" -msgstr "Saturação" +msgstr "Pós-saturação" #: ../src/extension/internal/filter/paint.h:872 -#, fuzzy msgid "Simulate antialiasing" -msgstr "Simular saída na Ecrã" +msgstr "Simular anti-serrilhado (suaviza os gradientes)" #: ../src/extension/internal/filter/paint.h:880 -#, fuzzy msgid "Poster and painting effects" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeitos de poster e pintura" #: ../src/extension/internal/filter/paint.h:973 msgid "Posterize Basic" -msgstr "" +msgstr "Posterização Básica" #: ../src/extension/internal/filter/paint.h:984 msgid "Simple posterizing effect" -msgstr "" +msgstr "Efeito de posterização simples" #: ../src/extension/internal/filter/protrusions.h:48 -#, fuzzy msgid "Snow crest" -msgstr "Pré-visualizar" +msgstr "Neve a cair num telhado" #: ../src/extension/internal/filter/protrusions.h:50 -#, fuzzy msgid "Drift Size" -msgstr "Tamanho do ponto" +msgstr "Altura da borda" #: ../src/extension/internal/filter/protrusions.h:58 -#, fuzzy msgid "Snow has fallen on object" -msgstr "Definir estilo do objecto" +msgstr "A neve cai no objeto" #: ../src/extension/internal/filter/shadows.h:57 -#, fuzzy msgid "Drop Shadow" -msgstr "Soltar SVG" +msgstr "Sombra Caída" #: ../src/extension/internal/filter/shadows.h:61 -#, fuzzy msgid "Blur radius (px)" -msgstr "Raio interno:" +msgstr "Raio da desfocagem (px)" #: ../src/extension/internal/filter/shadows.h:62 -#, fuzzy msgid "Horizontal offset (px)" -msgstr "Desvio Horizontal" +msgstr "Deslocamento horizontal (px)" #: ../src/extension/internal/filter/shadows.h:63 -#, fuzzy msgid "Vertical offset (px)" -msgstr "Desvio Vertical" +msgstr "Deslocamento vertical (px)" #: ../src/extension/internal/filter/shadows.h:64 -#, fuzzy msgid "Shadow type:" -msgstr "Sombra" +msgstr "Tipo de sombra:" #: ../src/extension/internal/filter/shadows.h:67 msgid "Outer cutout" -msgstr "" +msgstr "Recorte por fora" #: ../src/extension/internal/filter/shadows.h:68 -#, fuzzy msgid "Inner cutout" -msgstr "Cor das linhas guias" +msgstr "Recorte por dentro" #: ../src/extension/internal/filter/shadows.h:69 -#, fuzzy msgid "Shadow only" -msgstr "Alfa" +msgstr "Apenas sombra" #: ../src/extension/internal/filter/shadows.h:72 -#, fuzzy msgid "Blur color" -msgstr "Cor lisa" +msgstr "Cor da desfocagem" #: ../src/extension/internal/filter/shadows.h:74 -#, fuzzy msgid "Use object's color" -msgstr "Ajustar a cor escolhida" +msgstr "Usar cor do objeto" #: ../src/extension/internal/filter/shadows.h:84 msgid "Colorizable Drop shadow" -msgstr "" +msgstr "Sombra caída colorível" #: ../src/extension/internal/filter/textures.h:62 msgid "Ink Blot" -msgstr "" +msgstr "Mancha de Tinta" #: ../src/extension/internal/filter/textures.h:68 -#, fuzzy msgid "Frequency:" -msgstr "Freqüência Base" +msgstr "Frequência:" #: ../src/extension/internal/filter/textures.h:71 -#, fuzzy msgid "Horizontal inlay:" -msgstr "Texto horizontal" +msgstr "Incrustração horizontal:" #: ../src/extension/internal/filter/textures.h:72 -#, fuzzy msgid "Vertical inlay:" -msgstr "Texto vertical" +msgstr "Incrustração vertical:" #: ../src/extension/internal/filter/textures.h:73 -#, fuzzy msgid "Displacement:" -msgstr "Mapa de Deslocamento" +msgstr "Deslocamento:" #: ../src/extension/internal/filter/textures.h:79 -#, fuzzy msgid "Overlapping" -msgstr "Alterar arredondamento" +msgstr "Sobreposição" #: ../src/extension/internal/filter/textures.h:80 -#, fuzzy msgid "External" -msgstr "Editar preenchimento..." +msgstr "Externo" #: ../src/extension/internal/filter/textures.h:81 #: ../share/extensions/markers_strokepaint.inx.h:8 #: ../share/extensions/restack.inx.h:4 -#, fuzzy msgid "Custom" -msgstr "_Personalizado" +msgstr "Personalizado" #: ../src/extension/internal/filter/textures.h:83 -#, fuzzy msgid "Custom stroke options" -msgstr "Opções da Linha de Comando" +msgstr "Opções do traço personalizado" #: ../src/extension/internal/filter/textures.h:84 -#, fuzzy msgid "k1:" -msgstr "K1" +msgstr "k1:" #: ../src/extension/internal/filter/textures.h:85 -#, fuzzy msgid "k2:" -msgstr "K2" +msgstr "k2:" #: ../src/extension/internal/filter/textures.h:86 -#, fuzzy msgid "k3:" -msgstr "K3" +msgstr "k3:" #: ../src/extension/internal/filter/textures.h:94 msgid "Inkblot on tissue or rough paper" -msgstr "" +msgstr "Mancha de tinta em tecido ou papel rugoso" #: ../src/extension/internal/filter/transparency.h:53 #: ../src/filter-enums.cpp:21 msgid "Blend" -msgstr "Misturar" +msgstr "Mistura" #: ../src/extension/internal/filter/transparency.h:55 ../src/rdf.cpp:261 msgid "Source:" @@ -8412,9 +7807,8 @@ msgstr "Origem:" #: ../src/extension/internal/filter/transparency.h:56 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1603 -#, fuzzy msgid "Background" -msgstr "Plano de fundo:" +msgstr "Fundo" #: ../src/extension/internal/filter/transparency.h:59 #: ../src/ui/dialog/filter-effects-dialog.cpp:2879 @@ -8427,59 +7821,54 @@ msgstr "Modo:" #: ../src/extension/internal/filter/transparency.h:73 msgid "Blend objects with background images or with themselves" -msgstr "" +msgstr "Misturar objetos com imagens de fundo ou com eles mesmos" #: ../src/extension/internal/filter/transparency.h:130 -#, fuzzy msgid "Channel Transparency" -msgstr "0 (transparente)" +msgstr "Transparência dos Canais" #: ../src/extension/internal/filter/transparency.h:144 -#, fuzzy msgid "Replace RGB with transparency" -msgstr "0 (transparente)" +msgstr "Substituir RGB por transparência" #: ../src/extension/internal/filter/transparency.h:205 -#, fuzzy msgid "Light Eraser" -msgstr "Brilho" +msgstr "Borracha de Luz" #: ../src/extension/internal/filter/transparency.h:209 #: ../src/extension/internal/filter/transparency.h:283 -#, fuzzy msgid "Global opacity" -msgstr "Configurações da página" +msgstr "Opacidade global" #: ../src/extension/internal/filter/transparency.h:218 msgid "Make the lightest parts of the object progressively transparent" -msgstr "" +msgstr "Tornar as partes mais claras do objeto progressivamente transparentes" #: ../src/extension/internal/filter/transparency.h:291 msgid "Set opacity and strength of opacity boundaries" -msgstr "" +msgstr "Definir opacidade e força dos limites de opacidade" #: ../src/extension/internal/filter/transparency.h:341 msgid "Silhouette" -msgstr "" +msgstr "Silhueta" #: ../src/extension/internal/filter/transparency.h:344 -#, fuzzy msgid "Cutout" -msgstr "recuar" +msgstr "Recorte" #: ../src/extension/internal/filter/transparency.h:353 msgid "Repaint anything visible monochrome" -msgstr "" +msgstr "Repintar monocromaticamente qualquer coisa visível" #: ../src/extension/internal/gdkpixbuf-input.cpp:188 -#, fuzzy, c-format +#, c-format msgid "%s bitmap image import" -msgstr "Soltar imagem Bitmap" +msgstr "Importar imagem %s" #: ../src/extension/internal/gdkpixbuf-input.cpp:195 #, c-format msgid "Image Import Type:" -msgstr "" +msgstr "Importar Imagem da Forma:" #: ../src/extension/internal/gdkpixbuf-input.cpp:195 #, c-format @@ -8487,23 +7876,27 @@ msgid "" "Embed results in stand-alone, larger SVG files. Link references a file " "outside this SVG document and all files must be moved together." msgstr "" +"Embutida: incorpora a imagem no ficheiro, ocupando mais espaço em disco. " +"Ligada: imagem permanece independente do ficheiro do Inkscape, caso se " +"altere a localização do ficheiro do Inkscape, deve-se alterar atmbém a " +"localização do ficheiro da imagem." #: ../src/extension/internal/gdkpixbuf-input.cpp:196 #: ../src/ui/dialog/inkscape-preferences.cpp:1511 -#, fuzzy, c-format +#, c-format msgid "Embed" -msgstr "embutido" +msgstr "Embutida" #: ../src/extension/internal/gdkpixbuf-input.cpp:197 ../src/sp-anchor.cpp:105 #: ../src/ui/dialog/inkscape-preferences.cpp:1511 -#, fuzzy, c-format +#, c-format msgid "Link" -msgstr "Linha" +msgstr "Ligada" #: ../src/extension/internal/gdkpixbuf-input.cpp:200 -#, fuzzy, c-format +#, c-format msgid "Image DPI:" -msgstr "Imagem" +msgstr "DPI da Imagem:" #: ../src/extension/internal/gdkpixbuf-input.cpp:200 #, c-format @@ -8511,21 +7904,23 @@ msgid "" "Take information from file or use default bitmap import resolution as " "defined in the preferences." msgstr "" +"Obter resolução do ficheiro ou usar a resolução padrão definida nas " +"preferências." #: ../src/extension/internal/gdkpixbuf-input.cpp:201 -#, fuzzy, c-format +#, c-format msgid "From file" -msgstr "_Propriedades da Ligação" +msgstr "Resolução do ficheiro" #: ../src/extension/internal/gdkpixbuf-input.cpp:202 -#, fuzzy, c-format +#, c-format msgid "Default import resolution" -msgstr "Resolução padrão de exportação" +msgstr "Resolução definida nas preferências" #: ../src/extension/internal/gdkpixbuf-input.cpp:205 -#, fuzzy, c-format +#, c-format msgid "Image Rendering Mode:" -msgstr "Render" +msgstr "Renderização da Imagem:" #: ../src/extension/internal/gdkpixbuf-input.cpp:205 #, c-format @@ -8533,75 +7928,73 @@ msgid "" "When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " "not work in all browsers.)" msgstr "" +"Quando uma imagem for aumentada, aplicar suavidade ou manter blocos de " +"píxeis (não funcionará em todos os navegadores de internet)." #: ../src/extension/internal/gdkpixbuf-input.cpp:206 #: ../src/ui/dialog/inkscape-preferences.cpp:1518 -#, fuzzy, c-format +#, c-format msgid "None (auto)" -msgstr "(padrão)" +msgstr "Nenhuma (auto)" #: ../src/extension/internal/gdkpixbuf-input.cpp:207 #: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Smooth (optimizeQuality)" -msgstr "" +msgstr "Suave (optimizeQuality)" #: ../src/extension/internal/gdkpixbuf-input.cpp:208 #: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Blocky (optimizeSpeed)" -msgstr "" +msgstr "Pixelizada (optimizeSpeed)" #: ../src/extension/internal/gdkpixbuf-input.cpp:211 #, c-format msgid "Hide the dialog next time and always apply the same actions." msgstr "" +"Não mostrar da próxima vez esta janela e aplicar as mesmas ações futuramente." #: ../src/extension/internal/gdkpixbuf-input.cpp:211 #, c-format msgid "Don't ask again" -msgstr "" +msgstr "Não perguntar de novo" #: ../src/extension/internal/gimpgrad.cpp:272 msgid "GIMP Gradients" -msgstr "Degradês do GIMP" +msgstr "Gradientes do GIMP" #: ../src/extension/internal/gimpgrad.cpp:277 msgid "GIMP Gradient (*.ggr)" -msgstr "Degradê do GIMP (*.ggr)" +msgstr "Gradiente do GIMP (*.ggr)" #: ../src/extension/internal/gimpgrad.cpp:278 msgid "Gradients used in GIMP" -msgstr "Degradês usados no GIMP" +msgstr "Gradientes usados no GIMP" #: ../src/extension/internal/grid.cpp:199 ../src/ui/widget/panel.cpp:117 msgid "Grid" msgstr "Grelha" #: ../src/extension/internal/grid.cpp:201 -#, fuzzy msgid "Line Width:" -msgstr "Largura da Linha" +msgstr "Espessura da Linha:" #: ../src/extension/internal/grid.cpp:202 -#, fuzzy msgid "Horizontal Spacing:" -msgstr "Espaçamento Horizontal" +msgstr "Espaçamento Horizontal:" #: ../src/extension/internal/grid.cpp:203 -#, fuzzy msgid "Vertical Spacing:" -msgstr "Espaçamento Vertical" +msgstr "Espaçamento Vertical:" #: ../src/extension/internal/grid.cpp:204 -#, fuzzy msgid "Horizontal Offset:" -msgstr "Desvio Horizontal" +msgstr "Desvio Horizontal:" #: ../src/extension/internal/grid.cpp:205 -#, fuzzy msgid "Vertical Offset:" -msgstr "Desvio Vertical" +msgstr "Desvio Vertical:" #: ../src/extension/internal/grid.cpp:209 #: ../src/ui/dialog/inkscape-preferences.cpp:1532 @@ -8638,29 +8031,27 @@ msgstr "Render" #: ../src/ui/dialog/inkscape-preferences.cpp:832 #: ../src/widgets/toolbox.cpp:1894 msgid "Grids" -msgstr "Grelha" +msgstr "Grelhas" #: ../src/extension/internal/grid.cpp:213 msgid "Draw a path which is a grid" -msgstr "Desenhar um caminho a uma grelha" +msgstr "Desenhar um caminho que é uma grelha" #: ../src/extension/internal/javafx-out.cpp:963 -#, fuzzy msgid "JavaFX Output" -msgstr "Saída LaTeX" +msgstr "Exportar em JavaFX" #: ../src/extension/internal/javafx-out.cpp:968 msgid "JavaFX (*.fx)" -msgstr "" +msgstr "JavaFX (*.fx)" #: ../src/extension/internal/javafx-out.cpp:969 -#, fuzzy msgid "JavaFX Raytracer File" -msgstr "Ficheiro PovRay Raytracer" +msgstr "JavaFX Raytracer" #: ../src/extension/internal/latex-pstricks-out.cpp:95 msgid "LaTeX Output" -msgstr "Saída LaTeX" +msgstr "Exportar em LaTeX" #: ../src/extension/internal/latex-pstricks-out.cpp:100 msgid "LaTeX With PSTricks macros (*.tex)" @@ -8668,7 +8059,7 @@ msgstr "LaTeX com macros PSTricks (*.tex)" #: ../src/extension/internal/latex-pstricks-out.cpp:101 msgid "LaTeX PSTricks File" -msgstr "Ficheiro LaTeX PSTricks" +msgstr "LaTeX PSTricks" #: ../src/extension/internal/latex-pstricks.cpp:330 msgid "LaTeX Print" @@ -8676,7 +8067,7 @@ msgstr "Impressão LaTeX" #: ../src/extension/internal/odf.cpp:2141 msgid "OpenDocument Drawing Output" -msgstr "Saída para OpenDocument Drawing" +msgstr "Exportar em OpenDocument Drawing" #: ../src/extension/internal/odf.cpp:2146 msgid "OpenDocument drawing (*.odg)" @@ -8684,7 +8075,7 @@ msgstr "OpenDocument drawing (*.odg)" #: ../src/extension/internal/odf.cpp:2147 msgid "OpenDocument drawing file" -msgstr "Ficheiro OpenDocument drawing" +msgstr "OpenDocument drawing" # O que são essas caixas? - samymn #. TRANSLATORS: The following are document crop settings for PDF import @@ -8695,7 +8086,7 @@ msgstr "caixa de mídia" #: ../src/extension/internal/pdfinput/pdf-input.cpp:78 msgid "crop box" -msgstr "caixa de ajuste à imagem" +msgstr "caixa de recorte" #: ../src/extension/internal/pdfinput/pdf-input.cpp:79 msgid "trim box" @@ -8712,16 +8103,15 @@ msgstr "caixa de arte" #. Crop settings #: ../src/extension/internal/pdfinput/pdf-input.cpp:117 msgid "Clip to:" -msgstr "Clipar a:" +msgstr "Recortar a:" #: ../src/extension/internal/pdfinput/pdf-input.cpp:128 msgid "Page settings" msgstr "Configurações da página" #: ../src/extension/internal/pdfinput/pdf-input.cpp:129 -#, fuzzy msgid "Precision of approximating gradient meshes:" -msgstr "Precisão da aproximação dos encontros de degradês:" +msgstr "Precisão da aproximação das malhas de gradientes:" #: ../src/extension/internal/pdfinput/pdf-input.cpp:130 msgid "" @@ -8729,11 +8119,11 @@ msgid "" "and slow performance." msgstr "" "Observação: ajustar a precisão para valores muito altos pode resultar " -"em um SVG grande demais e baixo desempenho." +"num SVG grande demais e numa performance baixa." #: ../src/extension/internal/pdfinput/pdf-input.cpp:134 msgid "Poppler/Cairo import" -msgstr "" +msgstr "Importação Poppler/Cairo" #: ../src/extension/internal/pdfinput/pdf-input.cpp:135 msgid "" @@ -8741,11 +8131,14 @@ msgid "" "glyphs where each glyph is a path. Images are stored internally. Meshes " "cause entire document to be rendered as a raster image." msgstr "" +"Importar através de uma biblioteca externa. O texto conciste num grupo que " +"contém caracteres clonados onde cada caractere é um caminho. As imagens são " +"armazenadas internamente. As malhas fazem com que o documento inteiro seja " +"renderizado como uma imagem raster (composta por píxeis)." #: ../src/extension/internal/pdfinput/pdf-input.cpp:136 -#, fuzzy msgid "Internal import" -msgstr "Texto vertical" +msgstr "Importação interna" #: ../src/extension/internal/pdfinput/pdf-input.cpp:137 msgid "" @@ -8753,10 +8146,13 @@ msgid "" "white space is missing. Meshes are converted to tiles, the number depends on " "the precision set below." msgstr "" +"Importar através de uma biblioteca interna (derivada do Poppler). O texto é " +"gravado como texto mas faltam os espaços em branco. As malhas são " +"convertidas em ladrilhos, o número depende da precisão definida abaixo." #: ../src/extension/internal/pdfinput/pdf-input.cpp:148 msgid "rough" -msgstr "áspero" +msgstr "básico" #. Text options #. _labelText = Gtk::manage(new class Gtk::Label(_("Text handling:"))); @@ -8768,6 +8164,7 @@ msgstr "áspero" #: ../src/extension/internal/pdfinput/pdf-input.cpp:159 msgid "Replace PDF fonts by closest-named installed fonts" msgstr "" +"Substituir fontes PDF pelas fontes instaladas como o nome mais semelhante" #: ../src/extension/internal/pdfinput/pdf-input.cpp:161 msgid "Embed images" @@ -8775,73 +8172,64 @@ msgstr "Embutir imagens" #: ../src/extension/internal/pdfinput/pdf-input.cpp:163 msgid "Import settings" -msgstr "Importar configurações" +msgstr "Configurações de importação" #: ../src/extension/internal/pdfinput/pdf-input.cpp:291 msgid "PDF Import Settings" -msgstr "Importar configurações de PDF" +msgstr "Configurações de importação PDF" #: ../src/extension/internal/pdfinput/pdf-input.cpp:438 -#, fuzzy msgctxt "PDF input precision" msgid "rough" -msgstr "áspero" +msgstr "mau" #: ../src/extension/internal/pdfinput/pdf-input.cpp:439 -#, fuzzy msgctxt "PDF input precision" msgid "medium" msgstr "médio" #: ../src/extension/internal/pdfinput/pdf-input.cpp:440 -#, fuzzy msgctxt "PDF input precision" msgid "fine" msgstr "ótimo" #: ../src/extension/internal/pdfinput/pdf-input.cpp:441 -#, fuzzy msgctxt "PDF input precision" msgid "very fine" msgstr "excelente" #: ../src/extension/internal/pdfinput/pdf-input.cpp:937 -#, fuzzy msgid "PDF Input" -msgstr "Entrada DXF" +msgstr "Importar PDF" #: ../src/extension/internal/pdfinput/pdf-input.cpp:942 -#, fuzzy msgid "Adobe PDF (*.pdf)" -msgstr "AutoCAD DXF (*.dxf)" +msgstr "Adobe PDF (*.pdf)" #: ../src/extension/internal/pdfinput/pdf-input.cpp:943 msgid "Adobe Portable Document Format" -msgstr "" +msgstr "Adobe Portable Document Format" #: ../src/extension/internal/pdfinput/pdf-input.cpp:950 -#, fuzzy msgid "AI Input" -msgstr "Entrada AI 8.0" +msgstr "Importar AI" #: ../src/extension/internal/pdfinput/pdf-input.cpp:955 -#, fuzzy msgid "Adobe Illustrator 9.0 and above (*.ai)" -msgstr "Adobe Illustrator 8.0 (*.ai)" +msgstr "Adobe Illustrator 9.0 e superior (*.ai)" #: ../src/extension/internal/pdfinput/pdf-input.cpp:956 -#, fuzzy msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" -msgstr "Abrir ficheiros salvos com o Adobe Illustrator" +msgstr "" +"Abrir ficheiros gravados no Adobe Illustrator 9.0 ou versões mais recentes" #: ../src/extension/internal/pov-out.cpp:714 msgid "PovRay Output" -msgstr "Saída PovRay" +msgstr "Exportar em PovRay" #: ../src/extension/internal/pov-out.cpp:719 -#, fuzzy msgid "PovRay (*.pov) (paths and shapes only)" -msgstr "PovRay (*.pov) (exportar splines)" +msgstr "PovRay (*.pov) (apenas caminhos e formas geométricas)" #: ../src/extension/internal/pov-out.cpp:720 msgid "PovRay Raytracer File" @@ -8849,11 +8237,11 @@ msgstr "Ficheiro PovRay Raytracer" #: ../src/extension/internal/svg.cpp:100 msgid "SVG Input" -msgstr "Entrada SVG" +msgstr "Importar SVG" #: ../src/extension/internal/svg.cpp:105 msgid "Scalable Vector Graphic (*.svg)" -msgstr "Gráfico Vectorial Escalável (*.svg)" +msgstr "Gráfico Vetorial Escalável (*.svg)" #: ../src/extension/internal/svg.cpp:106 msgid "Inkscape native file format and W3C standard" @@ -8861,7 +8249,7 @@ msgstr "Formato nativo de ficheiro para o Inkscape e padrão da W3C" #: ../src/extension/internal/svg.cpp:114 msgid "SVG Output Inkscape" -msgstr "Saída SVG Inkscape" +msgstr "Exportar em SVG Inkscape" #: ../src/extension/internal/svg.cpp:119 msgid "Inkscape SVG (*.svg)" @@ -8873,7 +8261,7 @@ msgstr "Formato de SVG com extensões de Inkscape" #: ../src/extension/internal/svg.cpp:128 ../share/extensions/scour.inx.h:19 msgid "SVG Output" -msgstr "Saída SVG" +msgstr "Exportar em SVG" #: ../src/extension/internal/svg.cpp:133 msgid "Plain SVG (*.svg)" @@ -8881,15 +8269,15 @@ msgstr "SVG Plano (*.svg)" #: ../src/extension/internal/svg.cpp:134 msgid "Scalable Vector Graphics format as defined by the W3C" -msgstr "Gráfico Vectorial Escalável (SVG) é um padrão definido pela W3C" +msgstr "Gráfico Vetorial Escalável (SVG) é um padrão definido pela W3C" #: ../src/extension/internal/svgz.cpp:46 msgid "SVGZ Input" -msgstr "Entrada SVGZ" +msgstr "Importar SVGZ" #: ../src/extension/internal/svgz.cpp:52 ../src/extension/internal/svgz.cpp:66 msgid "Compressed Inkscape SVG (*.svgz)" -msgstr "Ficheiro Compactado do Inkscape SVG (*.svgz)" +msgstr "Ficheiro do Inkscape SVG Compactado (*.svgz)" #: ../src/extension/internal/svgz.cpp:53 msgid "SVG file format compressed with GZip" @@ -8897,7 +8285,7 @@ msgstr "Ficheiro SVG compactado com GZip" #: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 msgid "SVGZ Output" -msgstr "Saída SVGZ" +msgstr "Exportar em SVGZ" #: ../src/extension/internal/svgz.cpp:67 msgid "Inkscape's native file format compressed with GZip" @@ -8905,66 +8293,60 @@ msgstr "Ficheiro nativo do Inkscape compactado com GZip" #: ../src/extension/internal/svgz.cpp:80 msgid "Compressed plain SVG (*.svgz)" -msgstr "SVG Limpo compactado (*.svgz)" +msgstr "SVG plain (limpo) compactado (*.svgz)" #: ../src/extension/internal/svgz.cpp:81 msgid "Scalable Vector Graphics format compressed with GZip" msgstr "Formato SVG compactado com GZip" #: ../src/extension/internal/vsd-input.cpp:296 -#, fuzzy msgid "VSD Input" -msgstr "Entrada DXF" +msgstr "Importar VSD" #: ../src/extension/internal/vsd-input.cpp:301 -#, fuzzy msgid "Microsoft Visio Diagram (*.vsd)" -msgstr "Diagrama Dia (*.dia)" +msgstr "Microsoft Visio Diagram (*.vsd)" #: ../src/extension/internal/vsd-input.cpp:302 msgid "File format used by Microsoft Visio 6 and later" -msgstr "" +msgstr "Formato de ficheiro usado pelo Microsoft Visio 6 e posterior" #: ../src/extension/internal/vsd-input.cpp:309 -#, fuzzy msgid "VDX Input" -msgstr "Entrada DXF" +msgstr "Importar VDX" #: ../src/extension/internal/vsd-input.cpp:314 -#, fuzzy msgid "Microsoft Visio XML Diagram (*.vdx)" -msgstr "Microsoft XAML (*.xaml)" +msgstr "Microsoft Visio XML Diagram (*.vdx)" #: ../src/extension/internal/vsd-input.cpp:315 msgid "File format used by Microsoft Visio 2010 and later" -msgstr "" +msgstr "Formato de ficheiro usado pelo Microsoft Visio 2010 e posterior" #: ../src/extension/internal/vsd-input.cpp:322 -#, fuzzy msgid "VSDM Input" -msgstr "Entrada EMF" +msgstr "Importar VSDM" #: ../src/extension/internal/vsd-input.cpp:327 msgid "Microsoft Visio 2013 drawing (*.vsdm)" -msgstr "" +msgstr "Microsoft Visio 2013 - desenho (*.vsdm)" #: ../src/extension/internal/vsd-input.cpp:328 #: ../src/extension/internal/vsd-input.cpp:341 msgid "File format used by Microsoft Visio 2013 and later" -msgstr "" +msgstr "Formato de ficheiro usado pelo Microsoft Visio 2013 e posterior" #: ../src/extension/internal/vsd-input.cpp:335 -#, fuzzy msgid "VSDX Input" -msgstr "Entrada DXF" +msgstr "Importar VSDX" #: ../src/extension/internal/vsd-input.cpp:340 msgid "Microsoft Visio 2013 drawing (*.vsdx)" -msgstr "" +msgstr "Microsoft Visio 2013 - desenho (*.vsdx)" #: ../src/extension/internal/wmf-inout.cpp:3180 msgid "WMF Input" -msgstr "Entrada WMF" +msgstr "Importar WMF" #: ../src/extension/internal/wmf-inout.cpp:3185 msgid "Windows Metafiles (*.wmf)" @@ -8972,30 +8354,28 @@ msgstr "Metafiles do Windows (*.wmf)" #: ../src/extension/internal/wmf-inout.cpp:3186 msgid "Windows Metafiles" -msgstr "MetFicheiros do Windows" +msgstr "MetaFicheiros do Windows" #: ../src/extension/internal/wmf-inout.cpp:3194 -#, fuzzy msgid "WMF Output" -msgstr "Saída EMF" +msgstr "Exportar em WMF" #: ../src/extension/internal/wmf-inout.cpp:3204 msgid "Map all fill patterns to standard WMF hatches" -msgstr "" +msgstr "Mapear todos os padrões do preenchimento para escotilhas WMF padrão" #: ../src/extension/internal/wmf-inout.cpp:3208 #: ../share/extensions/wmf_input.inx.h:2 ../share/extensions/wmf_output.inx.h:2 msgid "Windows Metafile (*.wmf)" -msgstr "Metafile do Windows (*.wmf)" +msgstr "Metaficheiro do Windows (*.wmf)" #: ../src/extension/internal/wmf-inout.cpp:3209 -#, fuzzy msgid "Windows Metafile" -msgstr "MetFicheiros do Windows" +msgstr "Metaficheiros do Windows" #: ../src/extension/internal/wpg-input.cpp:144 msgid "WPG Input" -msgstr "Entrada WPG" +msgstr "Importar WPG" #: ../src/extension/internal/wpg-input.cpp:149 msgid "WordPerfect Graphics (*.wpg)" @@ -9006,28 +8386,26 @@ msgid "Vector graphics format used by Corel WordPerfect" msgstr "Formato de gráficos vetoriais usado pelo Corel WordPerfect" #: ../src/extension/prefdialog.cpp:276 -#, fuzzy msgid "Live preview" -msgstr "Pré-Visualizar Ao Vivo" +msgstr "Prever" #: ../src/extension/prefdialog.cpp:276 -#, fuzzy msgid "Is the effect previewed live on canvas?" -msgstr "" -"Controla se as opções de efeito são processadas imediatamente na área de " -"desenho" +msgstr "O efeito é pré-visualizado em tempo real na área de trabalho?" #: ../src/extension/system.cpp:126 ../src/extension/system.cpp:128 msgid "Format autodetect failed. The file is being opened as SVG." -msgstr "Detecção de formato falhou. O ficheiro será aberto como SVG." +msgstr "A detecção do formato falhou. O ficheiro será aberto como SVG." #: ../src/file.cpp:185 msgid "default.svg" -msgstr "default.pt_BR.svg" +msgstr "default.pt.svg" #: ../src/file.cpp:332 msgid "Broken links have been changed to point to existing files." msgstr "" +"As ligações quebradas foram alteradas por forma a apontar a ficheiros " +"existentes." #: ../src/file.cpp:343 ../src/file.cpp:1278 #, c-format @@ -9036,41 +8414,40 @@ msgstr "Falha ao carregar o ficheiro %s" #: ../src/file.cpp:369 msgid "Document not saved yet. Cannot revert." -msgstr "Desenho não foi salvo ainda. Impossível reverter." +msgstr "O documento ainda não foi gravado. Impossível reverter." #: ../src/file.cpp:375 -#, fuzzy msgid "Changes will be lost! Are you sure you want to reload document %1?" msgstr "" -"As mudanças serão perdidas! Tem certeza que deseja recarregar o desenho %s?" +"As alterações serão perdidas! Tem a certeza que quer abrir de novo o " +"documento %1?" #: ../src/file.cpp:401 msgid "Document reverted." -msgstr "Desenho revertido." +msgstr "Documento revertido." #: ../src/file.cpp:403 msgid "Document not reverted." -msgstr "Desenho não foi revertido." +msgstr "O documento não foi revertido." #: ../src/file.cpp:553 msgid "Select file to open" msgstr "Selecionar um ficheiro para abrir" #: ../src/file.cpp:635 -#, fuzzy msgid "Clean up document" -msgstr "Guardar documento" +msgstr "Limpar documento" #: ../src/file.cpp:642 #, c-format msgid "Removed %i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." -msgstr[0] "%i definição não usada em <defs> removida." -msgstr[1] "%i definições não usadas em <defs> removidas." +msgstr[0] "Removida %i definição não usada em <defs>." +msgstr[1] "Removida %i definições não usadas em <defs>." #: ../src/file.cpp:647 msgid "No unused definitions in <defs>." -msgstr "Sem definições indefinidas em <defs>." +msgstr "Sem definições não usadas em <defs>." #: ../src/file.cpp:679 #, c-format @@ -9078,55 +8455,55 @@ msgid "" "No Inkscape extension found to save document (%s). This may have been " "caused by an unknown filename extension." msgstr "" -"Nenhum extensão do Inkscape foi encontrada para guardar o desenho (%s). Isto " -"deve ter sido causado por uma extensão de ficheiro desconhecida." +"Não foi encontrada nenhuma extensão do Inkscape para gravar o documento " +"(%s). Isto deve ter sido causado por uma extensão de ficheiro desconhecida." #: ../src/file.cpp:680 ../src/file.cpp:688 ../src/file.cpp:696 #: ../src/file.cpp:702 ../src/file.cpp:707 msgid "Document not saved." -msgstr "Desenho não salvo." +msgstr "Documento não gravado." #: ../src/file.cpp:687 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." msgstr "" +"O ficheiro %s está protegido contra escrita. Remova a proteção de escrita e " +"tente de novo." #: ../src/file.cpp:695 #, c-format msgid "File %s could not be saved." -msgstr "O ficheiro %s não pode ser salvo." +msgstr "Não foi possível gravar o ficheiro %s." #: ../src/file.cpp:725 ../src/file.cpp:727 msgid "Document saved." -msgstr "Desenho salvo." +msgstr "Documento gravado." #. We are saving for the first time; create a unique default filename #: ../src/file.cpp:870 ../src/file.cpp:1437 -#, fuzzy msgid "drawing" -msgstr "desenho%s" +msgstr "desenho" #: ../src/file.cpp:875 -#, fuzzy msgid "drawing-%1" -msgstr "desenho%s" +msgstr "desenho-%1" #: ../src/file.cpp:892 msgid "Select file to save a copy to" -msgstr "Selecionar o ficheiro para guardar uma cópia" +msgstr "Gravar uma cópia do documento" #: ../src/file.cpp:894 msgid "Select file to save to" -msgstr "Selecionar um ficheiro para guardar" +msgstr "Gravar documento" #: ../src/file.cpp:999 ../src/file.cpp:1001 msgid "No changes need to be saved." -msgstr "Nenhuma mudança que precise ser salva." +msgstr "Não há alterações a gravar." #: ../src/file.cpp:1020 msgid "Saving document..." -msgstr "Salvando o desenho..." +msgstr "A gravar o documento..." #: ../src/file.cpp:1275 ../src/ui/dialog/inkscape-preferences.cpp:1505 #: ../src/ui/dialog/ocaldialogs.cpp:1244 @@ -9135,16 +8512,15 @@ msgstr "Importar" #: ../src/file.cpp:1325 msgid "Select file to import" -msgstr "Seleccione o ficheiro para importar" +msgstr "Selecionar o ficheiro a importar" #: ../src/file.cpp:1458 msgid "Select file to export to" -msgstr "Seleccione o ficheiro para exportar" +msgstr "Selecionar o ficheiro a exportar" #: ../src/file.cpp:1711 -#, fuzzy msgid "Import Clip Art" -msgstr "Importar/Exportar" +msgstr "Importar Clip Ar_t" #: ../src/filter-enums.cpp:22 msgid "Color Matrix" @@ -9172,7 +8548,7 @@ msgstr "Inundar" #: ../src/filter-enums.cpp:31 ../share/extensions/text_merge.inx.h:1 msgid "Merge" -msgstr "Mesclar" +msgstr "Unir" #: ../src/filter-enums.cpp:34 msgid "Specular Lighting" @@ -9184,11 +8560,11 @@ msgstr "Ladrilhado" #: ../src/filter-enums.cpp:41 msgid "Source Graphic" -msgstr "Gráfico Fonte" +msgstr "Fonte do Gráfico" #: ../src/filter-enums.cpp:42 msgid "Source Alpha" -msgstr "Alfa Fonte " +msgstr "Fonte da Transparência" #: ../src/filter-enums.cpp:43 msgid "Background Image" @@ -9196,41 +8572,36 @@ msgstr "Imagem de Fundo" #: ../src/filter-enums.cpp:44 msgid "Background Alpha" -msgstr "Alfa de Fundo" +msgstr "Transparência de Fundo" #: ../src/filter-enums.cpp:45 msgid "Fill Paint" -msgstr "Preencher com Tinta" +msgstr "Tinta do Preenchimento" #: ../src/filter-enums.cpp:46 msgid "Stroke Paint" -msgstr "Pintura de Traço" +msgstr "Tinta do Traço" #. New in Compositing and Blending Level 1 #: ../src/filter-enums.cpp:58 -#, fuzzy msgid "Overlay" -msgstr "Sobre" +msgstr "Sobreposição" #: ../src/filter-enums.cpp:59 -#, fuzzy msgid "Color Dodge" -msgstr "Cor das linhas guias" +msgstr "Clarear Cor" #: ../src/filter-enums.cpp:60 -#, fuzzy msgid "Color Burn" -msgstr "Cores" +msgstr "Escurecer Cor" #: ../src/filter-enums.cpp:61 -#, fuzzy msgid "Hard Light" -msgstr "Altura da Barra:" +msgstr "Luz Dura" #: ../src/filter-enums.cpp:62 -#, fuzzy msgid "Soft Light" -msgstr "Lugar de Luz" +msgstr "Luz Suave" #: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:89 ../src/splivarot.cpp:95 msgid "Difference" @@ -9250,7 +8621,7 @@ msgstr "Matiz" #: ../src/filter-enums.cpp:68 msgid "Luminosity" -msgstr "" +msgstr "Luminosidade" #: ../src/filter-enums.cpp:78 msgid "Matrix" @@ -9262,11 +8633,11 @@ msgstr "Saturar" #: ../src/filter-enums.cpp:80 msgid "Hue Rotate" -msgstr "Rotacionar Matiz" +msgstr "Rodar Matiz" #: ../src/filter-enums.cpp:81 msgid "Luminance to Alpha" -msgstr "Luminância para Alfa" +msgstr "Luminância para Transparência" #: ../src/filter-enums.cpp:87 ../share/extensions/jessyInk_mouseHandler.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:7 @@ -9276,48 +8647,40 @@ msgstr "Padrão" #. New CSS #: ../src/filter-enums.cpp:95 -#, fuzzy msgid "Clear" -msgstr "_Limpar" +msgstr "Limpar" #: ../src/filter-enums.cpp:96 -#, fuzzy msgid "Copy" -msgstr "_Copiar" +msgstr "Copiar" #: ../src/filter-enums.cpp:97 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1623 -#, fuzzy msgid "Destination" -msgstr "Destino da impressão" +msgstr "Destino" #: ../src/filter-enums.cpp:98 -#, fuzzy msgid "Destination Over" -msgstr "Destino da impressão" +msgstr "Destino - Por Cima" #: ../src/filter-enums.cpp:99 -#, fuzzy msgid "Destination In" -msgstr "Destino da impressão" +msgstr "Destino - Cortado por Dentro" #: ../src/filter-enums.cpp:100 -#, fuzzy msgid "Destination Out" -msgstr "Destino da impressão" +msgstr "Destino - Cortado por Fora" #: ../src/filter-enums.cpp:101 -#, fuzzy msgid "Destination Atop" -msgstr "Destino da impressão" +msgstr "Destino - Cortado por Dentro pelo de Cima" #: ../src/filter-enums.cpp:102 -#, fuzzy msgid "Lighter" -msgstr "Iluminar" +msgstr "Mais claro" #: ../src/filter-enums.cpp:104 msgid "Arithmetic" -msgstr "Aritmética" +msgstr "Aritmético" #: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:545 #: ../src/ui/dialog/objects.cpp:1893 @@ -9329,7 +8692,6 @@ msgid "Wrap" msgstr "Envolver" #: ../src/filter-enums.cpp:122 -#, fuzzy msgctxt "Convolve matrix, edge mode" msgid "None" msgstr "Nenhum" @@ -9352,90 +8714,84 @@ msgstr "Luz Distante" #: ../src/filter-enums.cpp:152 msgid "Point Light" -msgstr "Apontar Luz" +msgstr "Ponto de Luz" #: ../src/filter-enums.cpp:153 msgid "Spot Light" -msgstr "Lugar de Luz" +msgstr "Foco de Luz" #: ../src/gradient-chemistry.cpp:1580 -#, fuzzy msgid "Invert gradient colors" -msgstr "Inverter degradê" +msgstr "Inverter cores do gradiente" #: ../src/gradient-chemistry.cpp:1607 -#, fuzzy msgid "Reverse gradient" -msgstr "Inverter degradê" +msgstr "Inverter gradiente" #: ../src/gradient-chemistry.cpp:1621 ../src/widgets/gradient-selector.cpp:222 -#, fuzzy msgid "Delete swatch" -msgstr "Eliminar parada" +msgstr "Eliminar amostra de cor" #: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:90 msgid "Linear gradient start" -msgstr "Início do degradê linear" +msgstr "Início do gradiente linear" #. POINT_LG_BEGIN #: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:91 msgid "Linear gradient end" -msgstr "Fim do degradê linear" +msgstr "Fim do gradiente linear" #: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:92 msgid "Linear gradient mid stop" -msgstr "Gradiente linear parada do meio" +msgstr "Paragem do meio do gradiente linear" #: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:93 msgid "Radial gradient center" -msgstr "Centro do degradê radial" +msgstr "Centro do gradiente radial" #: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 #: ../src/ui/tools/gradient-tool.cpp:94 ../src/ui/tools/gradient-tool.cpp:95 msgid "Radial gradient radius" -msgstr "Raio do degradê radial" +msgstr "Raio do gradiente radial" #: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:96 msgid "Radial gradient focus" -msgstr "Foco do degradê radial" +msgstr "Foco do gradiente radial" #. POINT_RG_FOCUS #: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 #: ../src/ui/tools/gradient-tool.cpp:97 ../src/ui/tools/gradient-tool.cpp:98 msgid "Radial gradient mid stop" -msgstr "Meio do degradê radial" +msgstr "Paragem do meio do gradiente radial" #: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:93 -#, fuzzy msgid "Mesh gradient corner" -msgstr "Centro do degradê radial" +msgstr "Canto do gradiente da malha" #: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:94 -#, fuzzy msgid "Mesh gradient handle" -msgstr "Mover alça do degradê" +msgstr "Alça do gradiente da malha" #: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:95 -#, fuzzy msgid "Mesh gradient tensor" -msgstr "Fim do degradê linear" +msgstr "Tensor do gradiente da malha" #: ../src/gradient-drag.cpp:565 msgid "Added patch row or column" -msgstr "" +msgstr "Adicionado remendo de linha ou coluna" #: ../src/gradient-drag.cpp:798 msgid "Merge gradient handles" -msgstr "Mesclar alças do degradê" +msgstr "Fundir alças do gradiente" #. we did an undoable action #: ../src/gradient-drag.cpp:1101 msgid "Move gradient handle" -msgstr "Mover alça do degradê" +msgstr "Mover alça do gradiente" #: ../src/gradient-drag.cpp:1160 ../src/widgets/gradient-vector.cpp:834 msgid "Delete gradient stop" -msgstr "Eliminar parada do degradê" +msgstr "Eliminar paragem do gradiente" #: ../src/gradient-drag.cpp:1423 #, c-format @@ -9443,8 +8799,8 @@ msgid "" "%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" "+Alt to delete stop" msgstr "" -"%s %d para: %s%s; arraste com Ctrl para dividir o deslocamento em " -"intervalos, clique com Ctrl+Alt Eliminar a parada" +"%s %d para: %s%s; arrastar com Ctrl para atrair ao deslocamento; " +"clicar com Ctrl+Alt para eliminar a paragem" #: ../src/gradient-drag.cpp:1427 ../src/gradient-drag.cpp:1434 msgid " (stroke)" @@ -9456,17 +8812,17 @@ msgid "" "%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " "preserve angle, with Ctrl+Shift to scale around center" msgstr "" -"%s para: %s%s; arraste com Ctrl para observar o ângulo, com Ctrl" -"+Alt para preservá-lo, e com Ctrl+Shift para modificar o tamanho " -"a partir de seu centro." +"%s para: %s%s; arrastar com Ctrl para atrair ao ângulo; com Ctrl" +"+Alt para manter o ângulo; com Ctrl+Shift para dimensionar pelo " +"centro" #: ../src/gradient-drag.cpp:1439 msgid "" "Radial gradient center and focus; drag with Shift to " "separate focus" msgstr "" -"Centro e foco do degradê radial; arraste com Shift para " -"separar o foco" +"Centro e foco do gradiente radial; arrastar com Shift " +"para separar o foco" #: ../src/gradient-drag.cpp:1442 #, c-format @@ -9477,59 +8833,54 @@ msgid_plural "" "Gradient point shared by %d gradients; drag with Shift to " "separate" msgstr[0] "" -"Ponto do degradê compartilhado pelo degradê %d; arraste com Shift para separar" +"Ponto do gradiente partilhado por %d gradiente; arrastar com " +"Shift para separar" msgstr[1] "" -"Ponto do degradê compartilhado pelos degradês %d; arraste com " +"Ponto do gradiente partilhado por %d gradientes; arrastar com " "Shift para separar" #: ../src/gradient-drag.cpp:2364 msgid "Move gradient handle(s)" -msgstr "Mover alça(s) do degradê" +msgstr "Mover alças do gradiente" #: ../src/gradient-drag.cpp:2398 msgid "Move gradient mid stop(s)" -msgstr "Mover parada(s) central(is) do degradê" +msgstr "Mover paragens do meio do gradiente" #: ../src/gradient-drag.cpp:2687 msgid "Delete gradient stop(s)" -msgstr "Eliminar parada(s) do degradê" +msgstr "Eliminar paragens do gradiente" #: ../src/inkscape.cpp:242 -#, fuzzy msgid "Autosave failed! Cannot create directory %1." -msgstr "" -"Não foi possível criar a pasta %s.\n" -"%s" +msgstr "A gravação automática falhou! Não foi possível criar a pasta %1." #: ../src/inkscape.cpp:251 -#, fuzzy msgid "Autosave failed! Cannot open directory %1." -msgstr "" -"Não foi possível criar a pasta %s.\n" -"%s" +msgstr "A gravação automática falhou! Não foi possível abrir a pasta %1." #: ../src/inkscape.cpp:267 -#, fuzzy msgid "Autosaving documents..." -msgstr "Salvando o desenho..." +msgstr "A gravar automaticamente os documentos..." #: ../src/inkscape.cpp:335 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "" +"A gravação automática falhou! Não foi possível encontrar a extensão do " +"Inkscape para gravar o documento." #: ../src/inkscape.cpp:338 ../src/inkscape.cpp:345 -#, fuzzy, c-format +#, c-format msgid "Autosave failed! File %s could not be saved." -msgstr "O ficheiro %s não pode ser salvo." +msgstr "A gravação automática falhou! Não foi possível gravar o ficheiro %s." #: ../src/inkscape.cpp:360 msgid "Autosave complete." -msgstr "" +msgstr "Gravação automática finalizada." #: ../src/inkscape.cpp:618 msgid "Untitled document" -msgstr "Desenho sem título" +msgstr "Documento sem título" #. Show nice dialog box #: ../src/inkscape.cpp:650 @@ -9541,12 +8892,12 @@ msgid "" "Automatic backups of unsaved documents were done to the following " "locations:\n" msgstr "" -"Cópias de segurança de desenhos não salvos foram feitas para os seguintes " -"lugares:\n" +"As cópias de segurança de documentos por gravar foram feitas para os " +"seguintes locais:\n" #: ../src/inkscape.cpp:652 msgid "Automatic backup of the following documents failed:\n" -msgstr "A cópia de segurança automática dos seguintes desenhos falhou:\n" +msgstr "Falhou a cópia de segurança automática dos seguintes documentos:\n" #: ../src/knot.cpp:348 msgid "Node or handle drag canceled." @@ -9554,118 +8905,118 @@ msgstr "Arrasto de nó ou alça cancelado." #: ../src/knotholder.cpp:171 msgid "Change handle" -msgstr "Mudar manualmente" +msgstr "Alterar alça" #: ../src/knotholder.cpp:258 msgid "Move handle" -msgstr "Mover manualmente" +msgstr "Mover alça" #. TRANSLATORS: This refers to the pattern that's inside the object #: ../src/knotholder.cpp:277 ../src/knotholder.cpp:299 msgid "Move the pattern fill inside the object" -msgstr "Mover preenchimento padrão para dentro do objecto" +msgstr "Mover o padrão do preenchimento dentro do objeto" #: ../src/knotholder.cpp:281 ../src/knotholder.cpp:303 -#, fuzzy msgid "Scale the pattern fill; uniformly if with Ctrl" -msgstr "Dimensionar o padrão de preenchimento uniformemente" +msgstr "" +"Dimensionar o padrão do preenchimento; Ctrl para dimensionar " +"em proporção" #: ../src/knotholder.cpp:285 ../src/knotholder.cpp:307 msgid "Rotate the pattern fill; with Ctrl to snap angle" msgstr "" -"Girar o padrão de preenchimento; com Ctrl para agarrar o ângulo" +"Rodar o padrão do preenchimento; com Ctrl para atrair ao ângulo" #: ../src/libgdl/gdl-dock-bar.c:105 -#, fuzzy msgid "Master" -msgstr "Rasterizar" +msgstr "Painel-Mestre" #: ../src/libgdl/gdl-dock-bar.c:106 msgid "GdlDockMaster object which the dockbar widget is attached to" -msgstr "" +msgstr "O objeto GdlDockMaster ao qual o widget dockbar está ligado" #: ../src/libgdl/gdl-dock-bar.c:113 -#, fuzzy msgid "Dockbar style" -msgstr "Docável" +msgstr "Estilo da barra de painéis" #: ../src/libgdl/gdl-dock-bar.c:114 msgid "Dockbar style to show items on it" -msgstr "" +msgstr "Como mostrar os painéis na barra de painéis recolhidos" #: ../src/libgdl/gdl-dock-item-grip.c:402 msgid "Iconify this dock" -msgstr "" +msgstr "Minimizar para ícone este painel" #: ../src/libgdl/gdl-dock-item-grip.c:404 -#, fuzzy msgid "Close this dock" -msgstr "Fechar a janela do documento" +msgstr "Fechar este painel" #: ../src/libgdl/gdl-dock-item-grip.c:723 ../src/libgdl/gdl-dock-tablabel.c:125 msgid "Controlling dock item" -msgstr "" +msgstr "Controlo do item no painel" #: ../src/libgdl/gdl-dock-item-grip.c:724 msgid "Dockitem which 'owns' this grip" -msgstr "" +msgstr "Item do painel que 'tem' esta garra" #: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:201 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 -#, fuzzy msgid "Orientation" -msgstr "Orientação da página:" +msgstr "Orientação" #: ../src/libgdl/gdl-dock-item.c:299 msgid "Orientation of the docking item" -msgstr "" +msgstr "Orientação do item no painel" #: ../src/libgdl/gdl-dock-item.c:314 msgid "Resizable" -msgstr "" +msgstr "Dimensionável" #: ../src/libgdl/gdl-dock-item.c:315 msgid "If set, the dock item can be resized when docked in a GtkPanel widget" msgstr "" +"Se definido, este item do painel pode ser dimensionado quando integrado num " +"widget GtkPanel" #: ../src/libgdl/gdl-dock-item.c:322 -#, fuzzy msgid "Item behavior" -msgstr "Comportamento" +msgstr "Comportamento do item" #: ../src/libgdl/gdl-dock-item.c:323 msgid "" "General behavior for the dock item (i.e. whether it can float, if it's " "locked, etc.)" msgstr "" +"Comportamento geral para o item do painel (isto é, se pode flutuar, se está " +"bloqueado, etc.)" #: ../src/libgdl/gdl-dock-item.c:331 ../src/libgdl/gdl-dock-master.c:148 -#, fuzzy msgid "Locked" -msgstr "Bloquear" +msgstr "Bloqueado" #: ../src/libgdl/gdl-dock-item.c:332 msgid "" "If set, the dock item cannot be dragged around and it doesn't show a grip" msgstr "" +"Se definido, o item do painel não pode ser arrastado à volta e não mostra " +"uma garra" #: ../src/libgdl/gdl-dock-item.c:340 msgid "Preferred width" -msgstr "" +msgstr "Largura preferida" #: ../src/libgdl/gdl-dock-item.c:341 msgid "Preferred width for the dock item" -msgstr "" +msgstr "Largura preferida para o item do painel" #: ../src/libgdl/gdl-dock-item.c:347 -#, fuzzy msgid "Preferred height" -msgstr "Altura da Barra:" +msgstr "Altura preferida" #: ../src/libgdl/gdl-dock-item.c:348 msgid "Preferred height for the dock item" -msgstr "" +msgstr "Altura preferida para o item do painel" #: ../src/libgdl/gdl-dock-item.c:716 #, c-format @@ -9673,6 +9024,8 @@ msgid "" "You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or " "some other compound dock object." msgstr "" +"Não pode adicionar um objeto do painel (%p do tipo %s) dentro de %s. Use um " +"GdlDock ou outro objeto de painel composto" #: ../src/libgdl/gdl-dock-item.c:723 #, c-format @@ -9680,23 +9033,23 @@ msgid "" "Attempting to add a widget with type %s to a %s, but it can only contain one " "widget at a time; it already contains a widget of type %s" msgstr "" +"A tentar adicionar um widget com o tipo %s a %s, mas apenas pode conter 1 " +"widget de cada vez; já contém 1 widget do tipo %s" #: ../src/libgdl/gdl-dock-item.c:1474 ../src/libgdl/gdl-dock-item.c:1524 #, c-format msgid "Unsupported docking strategy %s in dock object of type %s" -msgstr "" +msgstr "Estratégia de painel não suportada %s no objeto do painel do tipo %s" #. UnLock menuitem #: ../src/libgdl/gdl-dock-item.c:1632 -#, fuzzy msgid "UnLock" -msgstr "Bloquear" +msgstr "Desbloquear" #. Hide menuitem. #: ../src/libgdl/gdl-dock-item.c:1639 -#, fuzzy msgid "Hide" -msgstr "_Ocultar" +msgstr "Ocultar" #. Lock menuitem #: ../src/libgdl/gdl-dock-item.c:1644 @@ -9706,32 +9059,32 @@ msgstr "Bloquear" #: ../src/libgdl/gdl-dock-item.c:1907 #, c-format msgid "Attempt to bind an unbound item %p" -msgstr "" +msgstr "Tentar amarrar um item %p desamarrado" #: ../src/libgdl/gdl-dock-master.c:141 ../src/libgdl/gdl-dock.c:184 -#, fuzzy msgid "Default title" -msgstr "Unidades padrão:" +msgstr "Título padrão" #: ../src/libgdl/gdl-dock-master.c:142 msgid "Default title for newly created floating docks" -msgstr "" +msgstr "Título padrão para painéis flutuantes criados" #: ../src/libgdl/gdl-dock-master.c:149 msgid "" "If is set to 1, all the dock items bound to the master are locked; if it's " "0, all are unlocked; -1 indicates inconsistency among the items" msgstr "" +"Se for usado o valor 1, todos os itens do painel limitados pelo painel-" +"mestre; se for usado 0 todos eles estão bloqueados; -1 indica inconcistência " +"ao longo dos itens" #: ../src/libgdl/gdl-dock-master.c:157 ../src/libgdl/gdl-switcher.c:737 -#, fuzzy msgid "Switcher Style" -msgstr "Curativo Ladrilhado" +msgstr "Estilo dos Botões" #: ../src/libgdl/gdl-dock-master.c:158 ../src/libgdl/gdl-switcher.c:738 -#, fuzzy msgid "Switcher buttons style" -msgstr "Trocado para a próxima camada." +msgstr "Estilo dos botões dos painéis minimizados" #: ../src/libgdl/gdl-dock-master.c:783 #, c-format @@ -9739,6 +9092,8 @@ msgid "" "master %p: unable to add object %p[%s] to the hash. There already is an " "item with that name (%p)." msgstr "" +"painel-mestre %p: impossível adicionar o objeto %p[%s] ao hash. Já existe um " +"item com esse nome (%p)." #: ../src/libgdl/gdl-dock-master.c:955 #, c-format @@ -9746,6 +9101,8 @@ msgid "" "The new dock controller %p is automatic. Only manual dock objects should be " "named controller." msgstr "" +"O novo controlador do painel %p é automático. Apenas objetos de painel " +"manuais podem ser controladores com nome." #: ../src/libgdl/gdl-dock-notebook.c:132 #: ../src/ui/dialog/align-and-distribute.cpp:1089 @@ -9758,9 +9115,8 @@ msgid "Page" msgstr "Página" #: ../src/libgdl/gdl-dock-notebook.c:133 -#, fuzzy msgid "The index of the current page" -msgstr "Renomear a camada actual" +msgstr "O índice da página atual" #: ../src/libgdl/gdl-dock-object.c:125 #: ../src/live_effects/parameter/originalpatharray.cpp:82 @@ -9772,43 +9128,39 @@ msgstr "Nome" #: ../src/libgdl/gdl-dock-object.c:126 msgid "Unique name for identifying the dock object" -msgstr "" +msgstr "Nome único para identificar o painel" #: ../src/libgdl/gdl-dock-object.c:133 -#, fuzzy msgid "Long name" -msgstr "Não nomeado" +msgstr "Nome longo" #: ../src/libgdl/gdl-dock-object.c:134 -#, fuzzy msgid "Human readable name for the dock object" -msgstr "Um rótulo com forma livre para o objecto" +msgstr "Nome descritivo do painel" #: ../src/libgdl/gdl-dock-object.c:140 -#, fuzzy msgid "Stock Icon" -msgstr "Fechar brechas" +msgstr "Ãcone" #: ../src/libgdl/gdl-dock-object.c:141 msgid "Stock icon for the dock object" -msgstr "" +msgstr "Ãcone para o painel" #: ../src/libgdl/gdl-dock-object.c:147 msgid "Pixbuf Icon" -msgstr "" +msgstr "Ãcone Pixbuf" #: ../src/libgdl/gdl-dock-object.c:148 msgid "Pixbuf icon for the dock object" -msgstr "" +msgstr "Ãcone do Pixbuf para o painel" #: ../src/libgdl/gdl-dock-object.c:153 -#, fuzzy msgid "Dock master" -msgstr "Bloquear Camada" +msgstr "Painel-Mestre" #: ../src/libgdl/gdl-dock-object.c:154 msgid "Dock master this dock object is bound to" -msgstr "" +msgstr "Painel-mestre ao qual este painel é associado" #: ../src/libgdl/gdl-dock-object.c:463 #, c-format @@ -9816,6 +9168,8 @@ msgid "" "Call to gdl_dock_object_dock in a dock object %p (object type is %s) which " "hasn't implemented this method" msgstr "" +"Chamada para gdl_dock_object_dock num objeto painel %p (o tipo de objeto é " +"%s) que não tinha implementado este método" #: ../src/libgdl/gdl-dock-object.c:602 #, c-format @@ -9823,103 +9177,108 @@ msgid "" "Dock operation requested in a non-bound object %p. The application might " "crash" msgstr "" +"Operação pedida para introduzir um painel num objeto não associado %p. A " +"aplicação pode bloquear" #: ../src/libgdl/gdl-dock-object.c:609 #, c-format msgid "Cannot dock %p to %p because they belong to different masters" msgstr "" +"Não é possível introduzir %p em %p porque pertencem a painéis-mestres " +"diferentes" #: ../src/libgdl/gdl-dock-object.c:651 #, c-format msgid "" "Attempt to bind to %p an already bound dock object %p (current master: %p)" msgstr "" +"Tentativa de associar a %p um painel já associado %p (painel-mestre atual: " +"%p)" #: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:239 -#, fuzzy msgid "Position" -msgstr "Posição:" +msgstr "Posição" #: ../src/libgdl/gdl-dock-paned.c:131 msgid "Position of the divider in pixels" -msgstr "" +msgstr "Posição do divisor em píxeis" #: ../src/libgdl/gdl-dock-placeholder.c:141 -#, fuzzy msgid "Sticky" -msgstr "minúsculo" +msgstr "Atração como íman" #: ../src/libgdl/gdl-dock-placeholder.c:142 msgid "" "Whether the placeholder will stick to its host or move up the hierarchy when " "the host is redocked" msgstr "" +"Se o espaço reservado irá ser atraído ao seu hospedeiro ou se se moverá para " +"cima na hierarquia quando o hospedeiro for colocado de novo na barra de " +"painéis" #: ../src/libgdl/gdl-dock-placeholder.c:149 -#, fuzzy msgid "Host" -msgstr "recuar" +msgstr "Hospedeiro" #: ../src/libgdl/gdl-dock-placeholder.c:150 msgid "The dock object this placeholder is attached to" -msgstr "" +msgstr "O painel ao qual este espaço reservado está ligado" #: ../src/libgdl/gdl-dock-placeholder.c:157 -#, fuzzy msgid "Next placement" -msgstr "Novo nó elementar" +msgstr "Posicionamento seguinte" #: ../src/libgdl/gdl-dock-placeholder.c:158 msgid "" "The position an item will be docked to our host if a request is made to dock " "to us" msgstr "" +"A posição a que um item será associado ao nosso hospedeiro se for feito um " +"pedido para tal" #: ../src/libgdl/gdl-dock-placeholder.c:168 msgid "Width for the widget when it's attached to the placeholder" -msgstr "" +msgstr "Largura do widget quando é associado ao espaço reservado" #: ../src/libgdl/gdl-dock-placeholder.c:176 msgid "Height for the widget when it's attached to the placeholder" -msgstr "" +msgstr "Altura do widget quando é associado ao espaço reservado" #: ../src/libgdl/gdl-dock-placeholder.c:182 -#, fuzzy msgid "Floating Toplevel" -msgstr "Flutuando" +msgstr "Nível Flutuante do Topo" #: ../src/libgdl/gdl-dock-placeholder.c:183 msgid "Whether the placeholder is standing in for a floating toplevel dock" msgstr "" +"Se o espaço reservado está à espera de um painel de nível flutuante do topo" #: ../src/libgdl/gdl-dock-placeholder.c:189 -#, fuzzy msgid "X Coordinate" -msgstr "Coordenadas do cursor" +msgstr "Coordenada X" #: ../src/libgdl/gdl-dock-placeholder.c:190 -#, fuzzy msgid "X coordinate for dock when floating" -msgstr "Coordenada X da origem da grelha" +msgstr "Coordenada X para o painel quando estiver a flutuar" #: ../src/libgdl/gdl-dock-placeholder.c:196 -#, fuzzy msgid "Y Coordinate" -msgstr "Coordenadas do cursor" +msgstr "Coordenada Y" #: ../src/libgdl/gdl-dock-placeholder.c:197 -#, fuzzy msgid "Y coordinate for dock when floating" -msgstr "Coordenada Y da origem da grelha" +msgstr "Coordenada Y para o painel quando estiver a flutuar" #: ../src/libgdl/gdl-dock-placeholder.c:499 msgid "Attempt to dock a dock object to an unbound placeholder" -msgstr "" +msgstr "Tentar associar painel a um espaço reservado não associado" #: ../src/libgdl/gdl-dock-placeholder.c:611 #, c-format msgid "Got a detach signal from an object (%p) who is not our host %p" msgstr "" +"Foi obtido um sinal de desaclopar de um objeto (%p) que não é o nosso " +"hospedeiro %p" #: ../src/libgdl/gdl-dock-placeholder.c:636 #, c-format @@ -9927,10 +9286,11 @@ msgid "" "Something weird happened while getting the child placement for %p from " "parent %p" msgstr "" +"Aconteceu algo estranho ao obter o posicionamento do filho para %p do pai %p" #: ../src/libgdl/gdl-dock-tablabel.c:126 msgid "Dockitem which 'owns' this tablabel" -msgstr "" +msgstr "Item do painel que 'tem' esta etiqueta de tabela" #: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:687 #: ../src/ui/dialog/inkscape-preferences.cpp:730 @@ -9939,284 +9299,246 @@ msgstr "Flutuando" #: ../src/libgdl/gdl-dock.c:177 msgid "Whether the dock is floating in its own window" -msgstr "" +msgstr "Quando o painel estiver a flutuar na sua própria janela" #: ../src/libgdl/gdl-dock.c:185 msgid "Default title for the newly created floating docks" -msgstr "" +msgstr "Título padrão para painéis flutuantes criados" #: ../src/libgdl/gdl-dock.c:192 msgid "Width for the dock when it's of floating type" -msgstr "" +msgstr "Largura do painel quanto é do tipo flutuante" #: ../src/libgdl/gdl-dock.c:200 msgid "Height for the dock when it's of floating type" -msgstr "" +msgstr "Altura do painel quanto é do tipo flutuante" #: ../src/libgdl/gdl-dock.c:207 -#, fuzzy msgid "Float X" -msgstr "Flutuando" +msgstr "Flutuar X" #: ../src/libgdl/gdl-dock.c:208 -#, fuzzy msgid "X coordinate for a floating dock" -msgstr "Coordenada X da origem da grelha" +msgstr "Coordenada X para um painel flutuante" #: ../src/libgdl/gdl-dock.c:215 -#, fuzzy msgid "Float Y" -msgstr "Flutuando" +msgstr "Flutuar Y" #: ../src/libgdl/gdl-dock.c:216 -#, fuzzy msgid "Y coordinate for a floating dock" -msgstr "Coordenada Y da origem da grelha" +msgstr "Coordenada Y para um painel flutuante" #: ../src/libgdl/gdl-dock.c:476 #, c-format msgid "Dock #%d" -msgstr "" +msgstr "Painel #%d" #: ../src/libnrtype/FontFactory.cpp:636 msgid "Ignoring font without family that will crash Pango" -msgstr "Ignorando fonte sem família que irá Bloquear o Pango" +msgstr "Ignorando fonte sem família que irá bloquear o Pango" #: ../src/live_effects/effect.cpp:99 -#, fuzzy msgid "doEffect stack test" -msgstr "teste de pilha de Efeito" +msgstr "Teste de pilha doEffect" #: ../src/live_effects/effect.cpp:100 -#, fuzzy msgid "Angle bisector" -msgstr "Definir VP na direção X" +msgstr "Bisetor de ângulo" #: ../src/live_effects/effect.cpp:101 msgid "Circle (by center and radius)" -msgstr "" +msgstr "Círculo (pelo centro e raio)" #: ../src/live_effects/effect.cpp:102 msgid "Circle by 3 points" -msgstr "" +msgstr "Círculo por 3 pontos" #: ../src/live_effects/effect.cpp:103 -#, fuzzy msgid "Dynamic stroke" -msgstr "Traço preto" +msgstr "Traço dinâmico" #: ../src/live_effects/effect.cpp:104 ../share/extensions/extrude.inx.h:1 msgid "Extrude" msgstr "Extrudir" #: ../src/live_effects/effect.cpp:105 -#, fuzzy msgid "Lattice Deformation" -msgstr "Giro das letras" +msgstr "Deformação por Grelha" #: ../src/live_effects/effect.cpp:106 -#, fuzzy msgid "Line Segment" -msgstr "Segmentos de _linha" +msgstr "Segmento de Linha" #: ../src/live_effects/effect.cpp:108 -#, fuzzy msgid "Parallel" -msgstr "Tipografia normal" +msgstr "Paralelo" #: ../src/live_effects/effect.cpp:109 -#, fuzzy msgid "Path length" -msgstr "Caminho ao longo do caminho" +msgstr "Comprimento do caminho" #: ../src/live_effects/effect.cpp:110 -#, fuzzy msgid "Perpendicular bisector" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "Bisetor perpendicular" #: ../src/live_effects/effect.cpp:111 -#, fuzzy msgid "Perspective path" -msgstr "Perspectiva" +msgstr "Caminho de perspetiva" #: ../src/live_effects/effect.cpp:112 -#, fuzzy msgid "Recursive skeleton" -msgstr "Remover máscara da selecção" +msgstr "Esqueleto recursivo" #: ../src/live_effects/effect.cpp:113 -#, fuzzy msgid "Tangent to curve" -msgstr "Arrastar curva" +msgstr "Tangente à curva" #: ../src/live_effects/effect.cpp:114 -#, fuzzy msgid "Text label" -msgstr "Ajustar rótulo do objecto" +msgstr "Etiqueta do texto" #: ../src/live_effects/effect.cpp:115 msgid "Fillet/Chamfer" -msgstr "" +msgstr "Filete/Chanfra" #. 0.46 #: ../src/live_effects/effect.cpp:118 -#, fuzzy msgid "Bend" -msgstr "Misturar" +msgstr "Deformar" #: ../src/live_effects/effect.cpp:119 -#, fuzzy msgid "Gears" -msgstr "Engrenagens" +msgstr "Rodas Dentadas" #: ../src/live_effects/effect.cpp:120 -#, fuzzy msgid "Pattern Along Path" -msgstr "Padrão ao longo do caminho" +msgstr "Padrão ao Longo do Caminho" #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG #: ../src/live_effects/effect.cpp:121 -#, fuzzy msgid "Stitch Sub-Paths" -msgstr "Pontilhar peças" +msgstr "Sub-Caminhos Cosidos" #. 0.47 #: ../src/live_effects/effect.cpp:123 msgid "VonKoch" -msgstr "" +msgstr "VonKoch" #: ../src/live_effects/effect.cpp:124 msgid "Knot" -msgstr "" +msgstr "Nó de cruzamento" #: ../src/live_effects/effect.cpp:125 -#, fuzzy msgid "Construct grid" -msgstr "Grelha axonométrica" +msgstr "Grelha de construção" #: ../src/live_effects/effect.cpp:126 msgid "Spiro spline" -msgstr "" +msgstr "Espiral spline" #: ../src/live_effects/effect.cpp:127 -#, fuzzy msgid "Envelope Deformation" -msgstr "Informação" +msgstr "Deformação de Envelope" #: ../src/live_effects/effect.cpp:128 -#, fuzzy msgid "Interpolate Sub-Paths" -msgstr "Interpolar" +msgstr "Interpolar Sub-Caminhos" #: ../src/live_effects/effect.cpp:129 msgid "Hatches (rough)" -msgstr "" +msgstr "Rabiscos (rugoso)" #: ../src/live_effects/effect.cpp:130 -#, fuzzy msgid "Sketch" -msgstr "Ajustar" +msgstr "Riscos tipo Esboço" #: ../src/live_effects/effect.cpp:131 -#, fuzzy msgid "Ruler" -msgstr "_Réguas" +msgstr "Régua" #. 0.91 #: ../src/live_effects/effect.cpp:133 -#, fuzzy msgid "Power stroke" -msgstr "Padrão de traço" +msgstr "Traço variável" #: ../src/live_effects/effect.cpp:134 -#, fuzzy msgid "Clone original path" -msgstr "Substituir texto..." +msgstr "Clonar caminho original" #: ../src/live_effects/effect.cpp:137 -#, fuzzy msgid "Lattice Deformation 2" -msgstr "Giro das letras" +msgstr "Deformação por Grelha 2" #: ../src/live_effects/effect.cpp:138 -#, fuzzy msgid "Perspective/Envelope" -msgstr "Perspectiva" +msgstr "Perspetiva/Envelope" #: ../src/live_effects/effect.cpp:139 -#, fuzzy msgid "Interpolate points" -msgstr "Interpolar" +msgstr "Interpolar pontos" #: ../src/live_effects/effect.cpp:140 -#, fuzzy msgid "Transform by 2 points" -msgstr "Transformar degradês" +msgstr "Transformar com 2 pontos" #: ../src/live_effects/effect.cpp:141 #: ../src/live_effects/lpe-show_handles.cpp:26 -#, fuzzy msgid "Show handles" -msgstr "Desenhar Alças" +msgstr "Mostrar alças e nós" #: ../src/live_effects/effect.cpp:143 ../src/widgets/pencil-toolbar.cpp:118 -#, fuzzy msgid "BSpline" -msgstr "_Contorno" +msgstr "B-Spline" #: ../src/live_effects/effect.cpp:144 -#, fuzzy msgid "Join type" -msgstr " tipo: " +msgstr "Tipo de união" #: ../src/live_effects/effect.cpp:145 -#, fuzzy msgid "Taper stroke" -msgstr "Padrão de traço" +msgstr "Traço a estreitar" #: ../src/live_effects/effect.cpp:146 msgid "Mirror symmetry" -msgstr "" +msgstr "Simetria de espelho" #: ../src/live_effects/effect.cpp:147 -#, fuzzy msgid "Rotate copies" -msgstr "Girar nós" +msgstr "Rodar cópias" #. Ponyscape -> Inkscape 0.92 #: ../src/live_effects/effect.cpp:149 -#, fuzzy msgid "Attach path" -msgstr "Pontilhar peças" +msgstr "Anexar caminho" #: ../src/live_effects/effect.cpp:150 -#, fuzzy msgid "Fill between strokes" -msgstr "_Preenchimento e Traço" +msgstr "Preenchimento entre traços" #: ../src/live_effects/effect.cpp:151 ../src/selection-chemistry.cpp:2906 msgid "Fill between many" -msgstr "" +msgstr "Preenchimento entre vários" #: ../src/live_effects/effect.cpp:152 msgid "Ellipse by 5 points" -msgstr "" +msgstr "Elipse com 5 pontos" #: ../src/live_effects/effect.cpp:153 -#, fuzzy msgid "Bounding Box" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Caixa Limitadora" #: ../src/live_effects/effect.cpp:361 -#, fuzzy msgid "Is visible?" -msgstr "_Visível" +msgstr "É visível?" #: ../src/live_effects/effect.cpp:361 msgid "" "If unchecked, the effect remains applied to the object but is temporarily " "disabled on canvas" msgstr "" +"Se desativado, o efeito permanece aplicado ao objeto mas é temporariamente " +"desativado na área de desenho" #: ../src/live_effects/effect.cpp:386 msgid "No effect" @@ -10226,98 +9548,88 @@ msgstr "Sem efeito" #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "" +"Por favor especificar um caminho de parâmetro para a ferramenta de Efeitos " +"Interativos em Caminhos '%s' com %d cliques do rato" #: ../src/live_effects/effect.cpp:765 #, c-format msgid "Editing parameter %s." -msgstr "Parâmetro de edição %s." +msgstr "Editar o parâmetro %s." #: ../src/live_effects/effect.cpp:770 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" -"Nenhum dos parâmetros de efeito de caminho aplicados pode ser editado na " -"área de desenho. " +"Nenhum dos parâmetros de efeito no caminho aplicados pode ser editado na " +"área de desenho." #: ../src/live_effects/lpe-attach-path.cpp:29 -#, fuzzy msgid "Start path:" -msgstr "Pontilhar peças" +msgstr "Caminho inicial:" #: ../src/live_effects/lpe-attach-path.cpp:29 -#, fuzzy msgid "Path to attach to the start of this path" -msgstr "Caminho a ser colocado ao longo do caminho esqueleto" +msgstr "Caminho a ser anexado ao início deste caminho" #: ../src/live_effects/lpe-attach-path.cpp:30 -#, fuzzy msgid "Start path position:" -msgstr "Posição Aleatória" +msgstr "Posição do caminho inicial:" #: ../src/live_effects/lpe-attach-path.cpp:30 msgid "Position to attach path start to" -msgstr "" +msgstr "Posição na qual anexar o início do caminho" #: ../src/live_effects/lpe-attach-path.cpp:31 -#, fuzzy msgid "Start path curve start:" -msgstr "Definir cor do traço" +msgstr "Início da curva do caminho inicial:" #: ../src/live_effects/lpe-attach-path.cpp:31 #: ../src/live_effects/lpe-attach-path.cpp:35 -#, fuzzy msgid "Starting curve" -msgstr "Arrastar curva" +msgstr "Curva inicial" #. , true #: ../src/live_effects/lpe-attach-path.cpp:32 -#, fuzzy msgid "Start path curve end:" -msgstr "Definir cor do traço" +msgstr "Fim da curva do caminho inicial:" #: ../src/live_effects/lpe-attach-path.cpp:32 #: ../src/live_effects/lpe-attach-path.cpp:36 -#, fuzzy msgid "Ending curve" -msgstr "Arrastar curva" +msgstr "Curva final" #. , true #: ../src/live_effects/lpe-attach-path.cpp:33 -#, fuzzy msgid "End path:" -msgstr "Quebrar caminho" +msgstr "Caminho final:" #: ../src/live_effects/lpe-attach-path.cpp:33 -#, fuzzy msgid "Path to attach to the end of this path" -msgstr "Caminho a ser colocado ao longo do caminho esqueleto" +msgstr "Caminho a ser anexado ao final deste caminho" #: ../src/live_effects/lpe-attach-path.cpp:34 -#, fuzzy msgid "End path position:" -msgstr "Posição Aleatória" +msgstr "Posição do caminho final:" #: ../src/live_effects/lpe-attach-path.cpp:34 msgid "Position to attach path end to" -msgstr "" +msgstr "Posição na qual anexar o fim do caminho" #: ../src/live_effects/lpe-attach-path.cpp:35 msgid "End path curve start:" -msgstr "" +msgstr "Início da curva do caminho final:" #. , true #: ../src/live_effects/lpe-attach-path.cpp:36 msgid "End path curve end:" -msgstr "" +msgstr "Fim da curva do caminho final:" #: ../src/live_effects/lpe-bendpath.cpp:69 -#, fuzzy msgid "Bend path:" -msgstr "Quebrar caminho" +msgstr "Caminho de deformação:" #: ../src/live_effects/lpe-bendpath.cpp:69 -#, fuzzy msgid "Path along which to bend the original path" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminho ao longo do qual deformar o caminho original" #: ../src/live_effects/lpe-bendpath.cpp:71 #: ../src/live_effects/lpe-patternalongpath.cpp:74 @@ -10327,508 +9639,449 @@ msgid "_Width:" msgstr "_Largura:" #: ../src/live_effects/lpe-bendpath.cpp:71 -#, fuzzy msgid "Width of the path" -msgstr "Largura do padrão" +msgstr "Largura do caminho" #: ../src/live_effects/lpe-bendpath.cpp:72 -#, fuzzy msgid "W_idth in units of length" -msgstr "Largura em unidades de comprimento" +msgstr "Largura em un_idades de comprimento" #: ../src/live_effects/lpe-bendpath.cpp:72 -#, fuzzy msgid "Scale the width of the path in units of its length" -msgstr "Escala da largura do padrão em unidades de seu comprimento" +msgstr "Dimensionar a largura do caminho em unidades do seu comprimento" #: ../src/live_effects/lpe-bendpath.cpp:73 -#, fuzzy msgid "_Original path is vertical" -msgstr "Padrão é vertical" +msgstr "Caminho _original é vertical" #: ../src/live_effects/lpe-bendpath.cpp:73 msgid "Rotates the original 90 degrees, before bending it along the bend path" msgstr "" +"Roda o original em 90 graus, antes de o dobrar ao longo do caminho de dobra" #: ../src/live_effects/lpe-bendpath.cpp:178 #: ../src/live_effects/lpe-patternalongpath.cpp:285 -#, fuzzy msgid "Change the width" -msgstr "Alterar largura do traço" +msgstr "Alterar largura" #: ../src/live_effects/lpe-bounding-box.cpp:24 #: ../src/live_effects/lpe-clone-original.cpp:18 #: ../src/live_effects/lpe-fill-between-many.cpp:25 #: ../src/live_effects/lpe-fill-between-strokes.cpp:23 -#, fuzzy msgid "Linked path:" -msgstr "Encaixar no camin_ho" +msgstr "Caminho ligado:" #: ../src/live_effects/lpe-bounding-box.cpp:24 #: ../src/live_effects/lpe-clone-original.cpp:18 #: ../src/live_effects/lpe-fill-between-strokes.cpp:23 -#, fuzzy msgid "Path from which to take the original path data" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminho a partir do qual obter os dados do caminho original" #: ../src/live_effects/lpe-bounding-box.cpp:25 -#, fuzzy msgid "Visual Bounds" -msgstr "Margem oposta da caixa de limites" +msgstr "Limites Visuais" #: ../src/live_effects/lpe-bounding-box.cpp:25 -#, fuzzy msgid "Uses the visual bounding box" -msgstr "Margem oposta da caixa de limites" +msgstr "Usa a caixa limitadora visual" #: ../src/live_effects/lpe-bspline.cpp:30 msgid "Steps with CTRL:" -msgstr "" +msgstr "Passos com CTRL:" #: ../src/live_effects/lpe-bspline.cpp:30 msgid "Change number of steps with CTRL pressed" -msgstr "" +msgstr "Alterar número de passos com a tecla CTRL premida" #: ../src/live_effects/lpe-bspline.cpp:31 #: ../src/live_effects/lpe-simplify.cpp:33 #: ../src/live_effects/lpe-transform_2pts.cpp:43 -#, fuzzy msgid "Helper size:" -msgstr "Ângulo" +msgstr "Tamanho do indicador:" #: ../src/live_effects/lpe-bspline.cpp:31 #: ../src/live_effects/lpe-simplify.cpp:33 -#, fuzzy msgid "Helper size" -msgstr "Ângulo" +msgstr "Tamanho do indicador" #: ../src/live_effects/lpe-bspline.cpp:32 msgid "Apply changes if weight = 0%" -msgstr "" +msgstr "Aplicar alterações se a altura for = 0%" #: ../src/live_effects/lpe-bspline.cpp:33 msgid "Apply changes if weight > 0%" -msgstr "" +msgstr "Aplicar alterações se a altura for > 0%" #: ../src/live_effects/lpe-bspline.cpp:34 #: ../src/live_effects/lpe-fillet-chamfer.cpp:56 -#, fuzzy msgid "Change only selected nodes" -msgstr "Juntar camimhos nos nós seleccionados" +msgstr "Alterar apenas nós selecionados" #: ../src/live_effects/lpe-bspline.cpp:35 -#, fuzzy msgid "Change weight %:" -msgstr "Altura da Barra:" +msgstr "Alterar altura %:" #: ../src/live_effects/lpe-bspline.cpp:35 -#, fuzzy msgid "Change weight percent of the effect" -msgstr "Alterar posição da parada do degradê" +msgstr "Alterar percentagem da altura do efeito" #: ../src/live_effects/lpe-bspline.cpp:99 -#, fuzzy msgid "Default weight" -msgstr "Unidades padrão:" +msgstr "Altura padrão" #: ../src/live_effects/lpe-bspline.cpp:104 -#, fuzzy msgid "Make cusp" -msgstr "Criar estrela" +msgstr "Tornar afiado" #: ../src/live_effects/lpe-bspline.cpp:148 -#, fuzzy msgid "Change to default weight" -msgstr "Unidades padrão:" +msgstr "Alterar para a altura padrão" #: ../src/live_effects/lpe-bspline.cpp:154 -#, fuzzy msgid "Change to 0 weight" -msgstr "Altura da Barra:" +msgstr "Alterar para a altura 0" #: ../src/live_effects/lpe-bspline.cpp:160 #: ../src/live_effects/lpe-fillet-chamfer.cpp:240 #: ../src/live_effects/lpe-fillet-chamfer.cpp:262 #: ../src/live_effects/parameter/parameter.cpp:170 msgid "Change scalar parameter" -msgstr "Mudar parâmetro escalar" +msgstr "Alterar parâmetro de escala" #: ../src/live_effects/lpe-constructgrid.cpp:27 -#, fuzzy msgid "Size _X:" -msgstr "Tamanho" +msgstr "Tamanho _X:" #: ../src/live_effects/lpe-constructgrid.cpp:27 -#, fuzzy msgid "The size of the grid in X direction." -msgstr "Definir VP na direção X" +msgstr "Tamanho da grelha na direção X." #: ../src/live_effects/lpe-constructgrid.cpp:28 -#, fuzzy msgid "Size _Y:" -msgstr "Tamanho" +msgstr "Tamanho _Y:" #: ../src/live_effects/lpe-constructgrid.cpp:28 -#, fuzzy msgid "The size of the grid in Y direction." -msgstr "Definir VP na direção Y" +msgstr "Tamanho da grelha na direção Y." #: ../src/live_effects/lpe-curvestitch.cpp:41 -#, fuzzy msgid "Stitch path:" -msgstr "Pontilhar peças" +msgstr "Caminho a coser:" #: ../src/live_effects/lpe-curvestitch.cpp:41 msgid "The path that will be used as stitch." -msgstr "O caminho que será usado como um curativo." +msgstr "O caminho que será usado para coser." #: ../src/live_effects/lpe-curvestitch.cpp:42 -#, fuzzy msgid "N_umber of paths:" -msgstr "Nr de caminhos" +msgstr "Nú_mero de caminhos:" #: ../src/live_effects/lpe-curvestitch.cpp:42 msgid "The number of paths that will be generated." msgstr "O número de caminhos que serão gerados." #: ../src/live_effects/lpe-curvestitch.cpp:43 -#, fuzzy msgid "Sta_rt edge variance:" -msgstr "Propriedades de Estrelas" +msgstr "A va_riação da borda inicial:" #: ../src/live_effects/lpe-curvestitch.cpp:43 msgid "" "The amount of random jitter to move the start points of the stitches inside " "& outside the guide path" msgstr "" +"A quantidade de variação aleatória para mover os pontos iniciais dos " +"caminhos cosidos dentro e fora da guia" #: ../src/live_effects/lpe-curvestitch.cpp:44 -#, fuzzy msgid "Sta_rt spacing variance:" -msgstr "Variação do ponto de início" +msgstr "Variação do espaço _inicial:" #: ../src/live_effects/lpe-curvestitch.cpp:44 msgid "" "The amount of random shifting to move the start points of the stitches back " "& forth along the guide path" msgstr "" +"A quantidade do deslocamento aleatório para mover os pontos iniciais dos " +"caminhos cosidos para a frente e para trás ao longo da guia" #: ../src/live_effects/lpe-curvestitch.cpp:45 -#, fuzzy msgid "End ed_ge variance:" -msgstr "Propriedades de Estrelas" +msgstr "A variação da _borda final:" #: ../src/live_effects/lpe-curvestitch.cpp:45 msgid "" "The amount of randomness that moves the end points of the stitches inside & " "outside the guide path" msgstr "" +"A quantidade de aleatoriedade para mover os pontos finais dos caminhos " +"cosidos dentro e fora da guia" #: ../src/live_effects/lpe-curvestitch.cpp:46 -#, fuzzy msgid "End spa_cing variance:" -msgstr "Variação do ponto de início" +msgstr "Variação do espaço _final:" #: ../src/live_effects/lpe-curvestitch.cpp:46 msgid "" "The amount of random shifting to move the end points of the stitches back & " "forth along the guide path" msgstr "" +"A quantidade do deslocamento aleatório para mover os pontos finais dos " +"caminhos cosidos para a frente e para trás ao longo da guia" #: ../src/live_effects/lpe-curvestitch.cpp:47 -#, fuzzy msgid "Scale _width:" -msgstr "Escala de largura" +msgstr "Dimensão da _largura:" #: ../src/live_effects/lpe-curvestitch.cpp:47 -#, fuzzy msgid "Scale the width of the stitch path" -msgstr "Escala da largura do caminho de traço" +msgstr "Dimensão da largura do caminho cosido" #: ../src/live_effects/lpe-curvestitch.cpp:48 -#, fuzzy msgid "Scale _width relative to length" -msgstr "Escala de largura relativa" +msgstr "Dimensão da _largura relativa ao comprimento" #: ../src/live_effects/lpe-curvestitch.cpp:48 -#, fuzzy msgid "Scale the width of the stitch path relative to its length" -msgstr "Escala da largura do caminho de traço em relação ao seu comprimento" +msgstr "Dimensão da largura do caminho cosido em relação ao seu comprimento" #: ../src/live_effects/lpe-ellipse_5pts.cpp:77 msgid "Five points required for constructing an ellipse" -msgstr "" +msgstr "São necessários 5 pontos para construir uma elipse" #: ../src/live_effects/lpe-ellipse_5pts.cpp:162 msgid "No ellipse found for specified points" -msgstr "" +msgstr "Não foi encontrada nenhuma elipse para os pontos especificados" +# Não é necessário traduzir e introduzir "bend" aqui #: ../src/live_effects/lpe-envelope.cpp:31 -#, fuzzy msgid "Top bend path:" -msgstr "Quebrar caminho" +msgstr "Caminho de cima:" #: ../src/live_effects/lpe-envelope.cpp:31 -#, fuzzy msgid "Top path along which to bend the original path" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminho de cima ao longo do qual deformar o caminho original" +# Não é necessário traduzir e introduzir "bend" aqui #: ../src/live_effects/lpe-envelope.cpp:32 -#, fuzzy msgid "Right bend path:" -msgstr "Quebrar caminho" +msgstr "Caminho da direita:" #: ../src/live_effects/lpe-envelope.cpp:32 -#, fuzzy msgid "Right path along which to bend the original path" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminho da direita ao longo do qual deformar o caminho original" +# Não é necessário traduzir e introduzir "bend" aqui #: ../src/live_effects/lpe-envelope.cpp:33 -#, fuzzy msgid "Bottom bend path:" -msgstr "Quebrar caminho" +msgstr "Caminho de baixo:" #: ../src/live_effects/lpe-envelope.cpp:33 -#, fuzzy msgid "Bottom path along which to bend the original path" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminho de baixo ao longo do qual deformar o caminho original" +# Não é necessário traduzir e introduzir "bend" aqui #: ../src/live_effects/lpe-envelope.cpp:34 -#, fuzzy msgid "Left bend path:" -msgstr "Quebrar caminho" +msgstr "Caminho da esquerda:" #: ../src/live_effects/lpe-envelope.cpp:34 -#, fuzzy msgid "Left path along which to bend the original path" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminho da esquerda ao longo do qual deformar o caminho original" #: ../src/live_effects/lpe-envelope.cpp:35 -#, fuzzy msgid "_Enable left & right paths" -msgstr "Encaixar no camin_ho" +msgstr "Ativar caminhos da _esquerda e da direita" #: ../src/live_effects/lpe-envelope.cpp:35 msgid "Enable the left and right deformation paths" -msgstr "" +msgstr "Ativa os caminhos de deformação da esquerda e da direita" #: ../src/live_effects/lpe-envelope.cpp:36 -#, fuzzy msgid "_Enable top & bottom paths" -msgstr "Encaixar no camin_ho" +msgstr "Ativar caminhos de _cima e de baixo" #: ../src/live_effects/lpe-envelope.cpp:36 -#, fuzzy msgid "Enable the top and bottom deformation paths" -msgstr "Duplicar o padrão antes da deformação" +msgstr "Ativar os caminhos de deformação de cima e de baixo" #: ../src/live_effects/lpe-extrude.cpp:30 -#, fuzzy msgid "Direction" -msgstr "Descrição" +msgstr "Direção" #: ../src/live_effects/lpe-extrude.cpp:30 msgid "Defines the direction and magnitude of the extrusion" -msgstr "" +msgstr "Define a direção e a magnitude da extrusão" #: ../src/live_effects/lpe-fill-between-many.cpp:25 -#, fuzzy msgid "Paths from which to take the original path data" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminhos a partir dos quais obter os dados do caminho original" #: ../src/live_effects/lpe-fill-between-strokes.cpp:24 -#, fuzzy msgid "Second path:" -msgstr "Quebrar caminho" +msgstr "Segundo caminho:" #: ../src/live_effects/lpe-fill-between-strokes.cpp:24 -#, fuzzy msgid "Second path from which to take the original path data" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Segundo caminho a partir do qual obter os dados do caminho original" #: ../src/live_effects/lpe-fill-between-strokes.cpp:25 -#, fuzzy msgid "Reverse Second" -msgstr "Inverter degradê" +msgstr "Inverter o Segundo" #: ../src/live_effects/lpe-fill-between-strokes.cpp:25 -#, fuzzy msgid "Reverses the second path order" -msgstr "Editar as paradas do degradê" +msgstr "Inverte a ordem do segundo caminho" #: ../src/live_effects/lpe-fillet-chamfer.cpp:41 #: ../src/widgets/text-toolbar.cpp:1788 #: ../share/extensions/render_barcode_qrcode.inx.h:5 -#, fuzzy msgid "Auto" -msgstr "_Autores" +msgstr "Automático" #: ../src/live_effects/lpe-fillet-chamfer.cpp:42 -#, fuzzy msgid "Force arc" -msgstr "Força" +msgstr "Forçar arco" #: ../src/live_effects/lpe-fillet-chamfer.cpp:43 msgid "Force bezier" -msgstr "" +msgstr "Forçar Bézier" #: ../src/live_effects/lpe-fillet-chamfer.cpp:53 -#, fuzzy msgid "Fillet point" -msgstr "Preencher com Tinta" +msgstr "Ponto filete" #: ../src/live_effects/lpe-fillet-chamfer.cpp:54 -#, fuzzy msgid "Hide knots" -msgstr "Ocultar objecto" +msgstr "Ocultar nós" #: ../src/live_effects/lpe-fillet-chamfer.cpp:55 -#, fuzzy msgid "Ignore 0 radius knots" -msgstr "Raio interno:" +msgstr "Ignorar nós de raio 0" #: ../src/live_effects/lpe-fillet-chamfer.cpp:57 msgid "Flexible radius size (%)" -msgstr "" +msgstr "Tamanho do raio flexível (%)" #: ../src/live_effects/lpe-fillet-chamfer.cpp:58 msgid "Use knots distance instead radius" -msgstr "" +msgstr "Usar distância dos nós em vez dos raios" #: ../src/live_effects/lpe-fillet-chamfer.cpp:59 -#, fuzzy msgid "Method:" -msgstr "Metro" +msgstr "Método:" #: ../src/live_effects/lpe-fillet-chamfer.cpp:59 -#, fuzzy msgid "Fillets methods" -msgstr "Divisão" +msgstr "Métodos de filete" #: ../src/live_effects/lpe-fillet-chamfer.cpp:60 -#, fuzzy msgid "Radius (unit or %):" -msgstr "Raio" +msgstr "Raio (unidade ou %):" #: ../src/live_effects/lpe-fillet-chamfer.cpp:60 msgid "Radius, in unit or %" -msgstr "" +msgstr "Raio, em unidade ou %" #: ../src/live_effects/lpe-fillet-chamfer.cpp:61 -#, fuzzy msgid "Chamfer steps:" -msgstr "Número de passos" +msgstr "Passos da chanfra:" #: ../src/live_effects/lpe-fillet-chamfer.cpp:61 -#, fuzzy msgid "Chamfer steps" -msgstr "Número de passos" +msgstr "Passos da chanfra (quantos mais, mais suave é a curva)" #: ../src/live_effects/lpe-fillet-chamfer.cpp:63 -#, fuzzy msgid "Helper size with direction:" -msgstr "Definir VP na direção X" +msgstr "Tamanho das setas de direção:" #: ../src/live_effects/lpe-fillet-chamfer.cpp:63 -#, fuzzy msgid "Helper size with direction" -msgstr "Definir VP na direção X" +msgstr "Tamanho das setas de direção (visíveis ao editar os nós)" #: ../src/live_effects/lpe-fillet-chamfer.cpp:103 msgid "IMPORTANT! New version soon..." -msgstr "" +msgstr "IMPORTANTE! Nova versão brevemente..." #: ../src/live_effects/lpe-fillet-chamfer.cpp:107 msgid "Not compatible. Convert to path after." -msgstr "" +msgstr "Não compatível. Converter primeiro em caminho." #: ../src/live_effects/lpe-fillet-chamfer.cpp:165 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:72 -#, fuzzy msgid "Fillet" -msgstr "Preenchimento" +msgstr "Filete" #: ../src/live_effects/lpe-fillet-chamfer.cpp:169 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:74 -#, fuzzy msgid "Inverse fillet" -msgstr "Inverter preenchimento" +msgstr "Inverter filete" #: ../src/live_effects/lpe-fillet-chamfer.cpp:174 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 -#, fuzzy msgid "Chamfer" -msgstr "Combinar" +msgstr "Chanfra" #: ../src/live_effects/lpe-fillet-chamfer.cpp:178 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 -#, fuzzy msgid "Inverse chamfer" -msgstr "Inverter" +msgstr "Chanfra invertida" #: ../src/live_effects/lpe-fillet-chamfer.cpp:247 -#, fuzzy msgid "Convert to fillet" -msgstr "Converter para Texto" +msgstr "Converter para filete" #: ../src/live_effects/lpe-fillet-chamfer.cpp:254 #: ../src/live_effects/lpe-fillet-chamfer.cpp:278 -#, fuzzy msgid "Convert to inverse fillet" -msgstr "Converter para Texto" +msgstr "Converte para filete invertido" #: ../src/live_effects/lpe-fillet-chamfer.cpp:270 -#, fuzzy msgid "Convert to chamfer" -msgstr "Converter para Texto" +msgstr "Converter para chanfra" #: ../src/live_effects/lpe-fillet-chamfer.cpp:290 msgid "Knots and helper paths refreshed" -msgstr "" +msgstr "Nós e indicadores de caminhos atualizados" #: ../src/live_effects/lpe-gears.cpp:214 -#, fuzzy msgid "_Teeth:" -msgstr "Dentes" +msgstr "_Dentes:" #: ../src/live_effects/lpe-gears.cpp:214 msgid "The number of teeth" msgstr "O número de dentes" #: ../src/live_effects/lpe-gears.cpp:215 -#, fuzzy msgid "_Phi:" -msgstr "Phi" +msgstr "_Phi:" #: ../src/live_effects/lpe-gears.cpp:215 msgid "" "Tooth pressure angle (typically 20-25 deg). The ratio of teeth not in " "contact." msgstr "" +"Ângulo de pressão nos dentes (normalmente 20-25 graus). A proporção dos " +"dentes que não estejam em contacto." #: ../src/live_effects/lpe-interpolate.cpp:30 -#, fuzzy msgid "Trajectory:" -msgstr "Fator" +msgstr "Trajetória:" #: ../src/live_effects/lpe-interpolate.cpp:30 -#, fuzzy msgid "Path along which intermediate steps are created." -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Caminho ao longo do qual são criados os passos intermédios." #: ../src/live_effects/lpe-interpolate.cpp:31 -#, fuzzy msgid "Steps_:" -msgstr "Passos" +msgstr "Passos_:" #: ../src/live_effects/lpe-interpolate.cpp:31 msgid "Determines the number of steps from start to end path." -msgstr "" +msgstr "Determina o número de passos de início até ao final do caminho." #: ../src/live_effects/lpe-interpolate.cpp:32 -#, fuzzy msgid "E_quidistant spacing" -msgstr "Aumentar espaçamento entre linhas" +msgstr "Espaçamento e_quidistante" #: ../src/live_effects/lpe-interpolate.cpp:32 msgid "" @@ -10836,33 +10089,34 @@ msgid "" "the path. If false, the distance depends on the location of the nodes of the " "trajectory path." msgstr "" +"Se ativado, o espaço entre os intermédios é constante ao longo do " +"comprimento do caminho. Se desativado, a distância depende da localização " +"dos nós da trajetória do caminho." #: ../src/live_effects/lpe-interpolate_points.cpp:26 #: ../src/live_effects/lpe-powerstroke.cpp:134 msgid "CubicBezierFit" -msgstr "" +msgstr "Bézier Cúbico - Encaixe" #: ../src/live_effects/lpe-interpolate_points.cpp:27 #: ../src/live_effects/lpe-powerstroke.cpp:135 msgid "CubicBezierJohan" -msgstr "" +msgstr "Bézier Cúbico - Johan" #: ../src/live_effects/lpe-interpolate_points.cpp:28 #: ../src/live_effects/lpe-powerstroke.cpp:136 -#, fuzzy msgid "SpiroInterpolator" -msgstr "Interpolar" +msgstr "Interpolador de Espiral" #: ../src/live_effects/lpe-interpolate_points.cpp:29 #: ../src/live_effects/lpe-powerstroke.cpp:137 msgid "Centripetal Catmull-Rom" -msgstr "" +msgstr "Catmull-Rom Centrípedo" #: ../src/live_effects/lpe-interpolate_points.cpp:37 #: ../src/live_effects/lpe-powerstroke.cpp:179 -#, fuzzy msgid "Interpolator type:" -msgstr "Interpolar" +msgstr "Tipo de interpolador:" #: ../src/live_effects/lpe-interpolate_points.cpp:38 #: ../src/live_effects/lpe-powerstroke.cpp:179 @@ -10870,13 +10124,14 @@ msgid "" "Determines which kind of interpolator will be used to interpolate between " "stroke width along the path" msgstr "" +"Determina o tipo de interpolador que será usado para interpolar entre a " +"espessura do traço ao longo do caminho" #: ../src/live_effects/lpe-jointype.cpp:31 #: ../src/live_effects/lpe-powerstroke.cpp:166 #: ../src/live_effects/lpe-taperstroke.cpp:63 -#, fuzzy msgid "Beveled" -msgstr "Nível" +msgstr "Vincado" #: ../src/live_effects/lpe-jointype.cpp:32 #: ../src/live_effects/lpe-jointype.cpp:43 @@ -10889,67 +10144,57 @@ msgstr "Arredondado" #: ../src/live_effects/lpe-jointype.cpp:33 #: ../src/live_effects/lpe-powerstroke.cpp:170 #: ../src/live_effects/lpe-taperstroke.cpp:65 -#, fuzzy msgid "Miter" -msgstr "Junção aguda" +msgstr "Agudo" #: ../src/live_effects/lpe-jointype.cpp:34 -#, fuzzy msgid "Miter Clip" -msgstr "Limite de aguçamento:" +msgstr "Limite da Esquina" #. {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well #: ../src/live_effects/lpe-jointype.cpp:35 #: ../src/live_effects/lpe-powerstroke.cpp:169 msgid "Extrapolated arc" -msgstr "" +msgstr "Arco extrapolado" #: ../src/live_effects/lpe-jointype.cpp:36 -#, fuzzy msgid "Extrapolated arc Alt1" -msgstr "Interpolar" +msgstr "Arco extrapolado Alt1" #: ../src/live_effects/lpe-jointype.cpp:37 -#, fuzzy msgid "Extrapolated arc Alt2" -msgstr "Interpolar" +msgstr "Arco extrapolado Alt2" #: ../src/live_effects/lpe-jointype.cpp:38 -#, fuzzy msgid "Extrapolated arc Alt3" -msgstr "Interpolar" +msgstr "Arco extrapolado Alt3" #: ../src/live_effects/lpe-jointype.cpp:42 #: ../src/live_effects/lpe-powerstroke.cpp:149 -#, fuzzy msgid "Butt" -msgstr "Fundo" +msgstr "Sem ponta" #: ../src/live_effects/lpe-jointype.cpp:44 #: ../src/live_effects/lpe-powerstroke.cpp:150 -#, fuzzy msgid "Square" msgstr "Ponta quadrada" #: ../src/live_effects/lpe-jointype.cpp:45 #: ../src/live_effects/lpe-powerstroke.cpp:152 msgid "Peak" -msgstr "" +msgstr "Pico" #: ../src/live_effects/lpe-jointype.cpp:54 -#, fuzzy msgid "Thickness of the stroke" -msgstr "Traço branco" +msgstr "Espessura do traço" #: ../src/live_effects/lpe-jointype.cpp:55 -#, fuzzy msgid "Line cap" -msgstr "Linear" +msgstr "Ponta da linha" #: ../src/live_effects/lpe-jointype.cpp:55 -#, fuzzy msgid "The end shape of the stroke" -msgstr "Orientação da página:" +msgstr "A forma geométrica do fim do traço" #. Join type #. TRANSLATORS: The line join style specifies the shape to be used at the @@ -10958,438 +10203,381 @@ msgstr "Orientação da página:" #: ../src/live_effects/lpe-powerstroke.cpp:182 #: ../src/widgets/stroke-style.cpp:288 msgid "Join:" -msgstr "Juntar:" +msgstr "Esquina:" #: ../src/live_effects/lpe-jointype.cpp:56 #: ../src/live_effects/lpe-powerstroke.cpp:182 -#, fuzzy msgid "Determines the shape of the path's corners" -msgstr "Capturar o brilho da cor" +msgstr "Determina a forma dos cantos do caminho" #. start_lean(_("Start path lean"), _("Start path lean"), "start_lean", &wr, this, 0.), #. end_lean(_("End path lean"), _("End path lean"), "end_lean", &wr, this, 0.), #: ../src/live_effects/lpe-jointype.cpp:59 #: ../src/live_effects/lpe-powerstroke.cpp:183 #: ../src/live_effects/lpe-taperstroke.cpp:78 -#, fuzzy msgid "Miter limit:" -msgstr "Limite de aguçamento:" +msgstr "Limite da esquina:" #: ../src/live_effects/lpe-jointype.cpp:59 -#, fuzzy msgid "Maximum length of the miter join (in units of stroke width)" -msgstr "Tamanho máximo do aguçamento (em unidades de largura de traço)" +msgstr "Tamanho máximo da esquina aguda (em unidades da espessura do traço)" #: ../src/live_effects/lpe-jointype.cpp:60 -#, fuzzy msgid "Force miter" -msgstr "Força" +msgstr "Forçar esquina aguda" #: ../src/live_effects/lpe-jointype.cpp:60 msgid "Overrides the miter limit and forces a join." -msgstr "" +msgstr "Sobrepõe o limite de esquina aguda e força a esquina." #. initialise your parameters here: #: ../src/live_effects/lpe-knot.cpp:350 -#, fuzzy msgid "Fi_xed width:" -msgstr "Largura da caneta" +msgstr "Largura fi_xa:" #: ../src/live_effects/lpe-knot.cpp:350 msgid "Size of hidden region of lower string" msgstr "" +"Tamanho da área escondida do caminho que passa por baixo no cruzamento de " +"caminhos" #: ../src/live_effects/lpe-knot.cpp:351 -#, fuzzy msgid "_In units of stroke width" -msgstr "Largura do traço" +msgstr "Em un_idades da espessura do traço" #: ../src/live_effects/lpe-knot.cpp:351 msgid "Consider 'Interruption width' as a ratio of stroke width" msgstr "" +"Considerar 'Largura da interrupção' como uma proporção da espessura do traço" #: ../src/live_effects/lpe-knot.cpp:352 -#, fuzzy msgid "St_roke width" -msgstr "Largura do traço" +msgstr "_Adicionar espessura do traço" #: ../src/live_effects/lpe-knot.cpp:352 msgid "Add the stroke width to the interruption size" -msgstr "" +msgstr "Adicionar espessura do traço ao tamanho da interrupção" #: ../src/live_effects/lpe-knot.cpp:353 -#, fuzzy msgid "_Crossing path stroke width" -msgstr "Alterar largura do traço" +msgstr "_Adicionar espessura do cruzamento" #: ../src/live_effects/lpe-knot.cpp:353 msgid "Add crossed stroke width to the interruption size" -msgstr "" +msgstr "Adicionar a espessura do traço cruzado ao tamanho da interrupção" #: ../src/live_effects/lpe-knot.cpp:354 -#, fuzzy msgid "S_witcher size:" -msgstr "Curativo Ladrilhado" +msgstr "_Tamanho do controlador:" #: ../src/live_effects/lpe-knot.cpp:354 msgid "Orientation indicator/switcher size" msgstr "" +"Tamanho do controlador circular que aparece ao editar o nó de cruzamento" #: ../src/live_effects/lpe-knot.cpp:355 msgid "Crossing Signs" -msgstr "" +msgstr "Sinais de Cruzamento" #: ../src/live_effects/lpe-knot.cpp:355 msgid "Crossings signs" -msgstr "" +msgstr "Sinais de cruzamento" #: ../src/live_effects/lpe-knot.cpp:626 msgid "Drag to select a crossing, click to flip it" -msgstr "" +msgstr "Arrastar para selecionar um cruzamento, clicar para o inverter" #. / @todo Is this the right verb? #: ../src/live_effects/lpe-knot.cpp:664 -#, fuzzy msgid "Change knot crossing" -msgstr "Mudar espaçamento do conector" +msgstr "Alterar cruzamento de nó" #: ../src/live_effects/lpe-lattice2.cpp:47 #: ../src/live_effects/lpe-perspective-envelope.cpp:43 -#, fuzzy msgid "Mirror movements in horizontal" -msgstr "Mover nós horizontalmente" +msgstr "Espelhar movimentos na horizontal" #: ../src/live_effects/lpe-lattice2.cpp:48 #: ../src/live_effects/lpe-perspective-envelope.cpp:44 -#, fuzzy msgid "Mirror movements in vertical" -msgstr "Mover nós verticalmente" +msgstr "Espelhar movimentos na vertical" #: ../src/live_effects/lpe-lattice2.cpp:49 msgid "Update while moving knots (maybe slow)" -msgstr "" +msgstr "Atualizar ao mover nós (pode ser lento)" #: ../src/live_effects/lpe-lattice2.cpp:50 -#, fuzzy msgid "Control 0:" -msgstr "Mover alça do nó" +msgstr "Controle 0:" #: ../src/live_effects/lpe-lattice2.cpp:50 -#, fuzzy msgid "Control 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 0 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:51 -#, fuzzy msgid "Control 1:" -msgstr "Mover alça do nó" +msgstr "Controle 1:" #: ../src/live_effects/lpe-lattice2.cpp:51 -#, fuzzy msgid "Control 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 1 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:52 -#, fuzzy msgid "Control 2:" -msgstr "Mover alça do nó" +msgstr "Controle 2:" #: ../src/live_effects/lpe-lattice2.cpp:52 -#, fuzzy msgid "Control 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 2 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:53 -#, fuzzy msgid "Control 3:" -msgstr "Mover alça do nó" +msgstr "Controle 3:" #: ../src/live_effects/lpe-lattice2.cpp:53 -#, fuzzy msgid "Control 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 3 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:54 -#, fuzzy msgid "Control 4:" -msgstr "Mover alça do nó" +msgstr "Controle 4:" #: ../src/live_effects/lpe-lattice2.cpp:54 -#, fuzzy msgid "Control 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 4 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:55 -#, fuzzy msgid "Control 5:" -msgstr "Mover alça do nó" +msgstr "Controle 5:" #: ../src/live_effects/lpe-lattice2.cpp:55 -#, fuzzy msgid "Control 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 5 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:56 -#, fuzzy msgid "Control 6:" -msgstr "Mover alça do nó" +msgstr "Controle 6:" #: ../src/live_effects/lpe-lattice2.cpp:56 -#, fuzzy msgid "Control 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 6 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:57 -#, fuzzy msgid "Control 7:" -msgstr "Mover alça do nó" +msgstr "Controle 7:" #: ../src/live_effects/lpe-lattice2.cpp:57 -#, fuzzy msgid "Control 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 7 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:58 -#, fuzzy msgid "Control 8x9:" -msgstr "Mover alça do nó" +msgstr "Controle 8x9:" #: ../src/live_effects/lpe-lattice2.cpp:58 -#, fuzzy msgid "" "Control 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 8x9 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:59 -#, fuzzy msgid "Control 10x11:" -msgstr "Mover alça do nó" +msgstr "Controle 10x11:" #: ../src/live_effects/lpe-lattice2.cpp:59 -#, fuzzy msgid "" "Control 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 10x11 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:60 -#, fuzzy msgid "Control 12:" -msgstr "Mover alça do nó" +msgstr "Controle 12:" #: ../src/live_effects/lpe-lattice2.cpp:60 -#, fuzzy msgid "Control 12 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 12 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:61 -#, fuzzy msgid "Control 13:" -msgstr "Mover alça do nó" +msgstr "Controle 13:" #: ../src/live_effects/lpe-lattice2.cpp:61 -#, fuzzy msgid "Control 13 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 13 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:62 -#, fuzzy msgid "Control 14:" -msgstr "Mover alça do nó" +msgstr "Controle 14:" #: ../src/live_effects/lpe-lattice2.cpp:62 -#, fuzzy msgid "Control 14 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 14 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:63 -#, fuzzy msgid "Control 15:" -msgstr "Mover alça do nó" +msgstr "Controle 15:" #: ../src/live_effects/lpe-lattice2.cpp:63 -#, fuzzy msgid "Control 15 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 15 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:64 -#, fuzzy msgid "Control 16:" -msgstr "Mover alça do nó" +msgstr "Controle 16:" #: ../src/live_effects/lpe-lattice2.cpp:64 -#, fuzzy msgid "Control 16 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 16 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:65 -#, fuzzy msgid "Control 17:" -msgstr "Mover alça do nó" +msgstr "Controle 17:" #: ../src/live_effects/lpe-lattice2.cpp:65 -#, fuzzy msgid "Control 17 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 17 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:66 -#, fuzzy msgid "Control 18:" -msgstr "Mover alça do nó" +msgstr "Controle 18:" #: ../src/live_effects/lpe-lattice2.cpp:66 -#, fuzzy msgid "Control 18 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 18 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:67 -#, fuzzy msgid "Control 19:" -msgstr "Mover alça do nó" +msgstr "Controle 19:" #: ../src/live_effects/lpe-lattice2.cpp:67 -#, fuzzy msgid "Control 19 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 19 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo dos " +"eixos" #: ../src/live_effects/lpe-lattice2.cpp:68 -#, fuzzy msgid "Control 20x21:" -msgstr "Mover alça do nó" +msgstr "Controle 20x21:" #: ../src/live_effects/lpe-lattice2.cpp:68 -#, fuzzy msgid "" "Control 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 20x21 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:69 -#, fuzzy msgid "Control 22x23:" -msgstr "Mover alça do nó" +msgstr "Controle 22x23:" #: ../src/live_effects/lpe-lattice2.cpp:69 -#, fuzzy msgid "" "Control 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 22x23 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:70 -#, fuzzy msgid "Control 24x26:" -msgstr "Mover alça do nó" +msgstr "Controle 24x26:" #: ../src/live_effects/lpe-lattice2.cpp:70 -#, fuzzy msgid "" "Control 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 24x26 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:71 -#, fuzzy msgid "Control 25x27:" -msgstr "Mover alça do nó" +msgstr "Controle 25x27:" #: ../src/live_effects/lpe-lattice2.cpp:71 -#, fuzzy msgid "" "Control 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 25x27 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:72 -#, fuzzy msgid "Control 28x30:" -msgstr "Mover alça do nó" +msgstr "Controle 28x30:" #: ../src/live_effects/lpe-lattice2.cpp:72 -#, fuzzy msgid "" "Control 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 28x30 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:73 -#, fuzzy msgid "Control 29x31:" -msgstr "Mover alça do nó" +msgstr "Controle 29x31:" #: ../src/live_effects/lpe-lattice2.cpp:73 -#, fuzzy msgid "" "Control 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Controle 29x31 - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:74 msgid "Control 32x33x34x35:" -msgstr "" +msgstr "Controle 32x33x34x35:" #: ../src/live_effects/lpe-lattice2.cpp:74 msgid "" "Control 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move along " "axes" msgstr "" +"Controle 32x33x34x35 - Ctrl+Alt+clicar: repor, Ctrl: mover ao " +"longo dos eixos" #: ../src/live_effects/lpe-lattice2.cpp:239 -#, fuzzy msgid "Reset grid" -msgstr "Remover grelha" +msgstr "Repor grelha" #: ../src/live_effects/lpe-lattice2.cpp:271 #: ../src/live_effects/lpe-lattice2.cpp:286 -#, fuzzy msgid "Show Points" -msgstr "Orientação da página:" +msgstr "Mostrar Pontos" #: ../src/live_effects/lpe-lattice2.cpp:284 -#, fuzzy msgid "Hide Points" -msgstr "Pontos" +msgstr "Ocultar Pontos" #: ../src/live_effects/lpe-patternalongpath.cpp:63 #: ../share/extensions/pathalongpath.inx.h:10 @@ -11412,9 +10600,8 @@ msgid "Repeated, stretched" msgstr "Repetido, esticado" #: ../src/live_effects/lpe-patternalongpath.cpp:72 -#, fuzzy msgid "Pattern source:" -msgstr "Fonte padrão" +msgstr "Fonte do padrão:" #: ../src/live_effects/lpe-patternalongpath.cpp:72 msgid "Path to put along the skeleton path" @@ -11425,27 +10612,24 @@ msgid "Width of the pattern" msgstr "Largura do padrão" #: ../src/live_effects/lpe-patternalongpath.cpp:75 -#, fuzzy msgid "Pattern copies:" -msgstr "Cópias de padrão" +msgstr "Cópias do padrão:" #: ../src/live_effects/lpe-patternalongpath.cpp:75 msgid "How many pattern copies to place along the skeleton path" msgstr "Quantas cópias de padrão serão colocadas ao longo do caminho esqueleto" #: ../src/live_effects/lpe-patternalongpath.cpp:77 -#, fuzzy msgid "Wid_th in units of length" -msgstr "Largura em unidades de comprimento" +msgstr "Largura em unidades de comprimen_to" #: ../src/live_effects/lpe-patternalongpath.cpp:78 msgid "Scale the width of the pattern in units of its length" -msgstr "Escala da largura do padrão em unidades de seu comprimento" +msgstr "Dimensão da largura do padrão em unidades do seu comprimento" #: ../src/live_effects/lpe-patternalongpath.cpp:80 -#, fuzzy msgid "Spa_cing:" -msgstr "Espaçamento:" +msgstr "Espa_çamento:" #: ../src/live_effects/lpe-patternalongpath.cpp:82 #, no-c-format @@ -11453,448 +10637,424 @@ msgid "" "Space between copies of the pattern. Negative values allowed, but are " "limited to -90% of pattern width." msgstr "" +"Espaço entre cópias do padrão. Podem-se usar valores negativos, mas estão " +"limitados a -90% do padrão" #: ../src/live_effects/lpe-patternalongpath.cpp:84 -#, fuzzy msgid "No_rmal offset:" -msgstr "Tipografia normal" +msgstr "Desvio no_rmal:" #: ../src/live_effects/lpe-patternalongpath.cpp:85 -#, fuzzy msgid "Tan_gential offset:" -msgstr "Tipografia tangencial" +msgstr "Desvio tan_gencial:" #: ../src/live_effects/lpe-patternalongpath.cpp:86 -#, fuzzy msgid "Offsets in _unit of pattern size" -msgstr "Objecto para padrão" +msgstr "Deslocamentos em _unidade do tamanho do padrão" #: ../src/live_effects/lpe-patternalongpath.cpp:87 msgid "" "Spacing, tangential and normal offset are expressed as a ratio of width/" "height" msgstr "" +"O espaçamento, tangencial e deslocamento normal são exprimidos como um rácio " +"do comprimento/altura" #: ../src/live_effects/lpe-patternalongpath.cpp:89 -#, fuzzy msgid "Pattern is _vertical" -msgstr "Padrão é vertical" +msgstr "Padrão é _vertical" #: ../src/live_effects/lpe-patternalongpath.cpp:89 msgid "Rotate pattern 90 deg before applying" -msgstr "" +msgstr "Rodar padrão 90 graus antes de aplicar" #: ../src/live_effects/lpe-patternalongpath.cpp:91 msgid "_Fuse nearby ends:" -msgstr "" +msgstr "_Fundir terminais próximos:" #: ../src/live_effects/lpe-patternalongpath.cpp:91 msgid "Fuse ends closer than this number. 0 means don't fuse." msgstr "" +"Funde os nós finais de caminhos que estejam mais próximos que este número. " +"Usando 0 não funde os nós." #: ../src/live_effects/lpe-perspective-envelope.cpp:35 #: ../share/extensions/perspective.inx.h:1 msgid "Perspective" -msgstr "Perspectiva" +msgstr "Perspetiva" #: ../src/live_effects/lpe-perspective-envelope.cpp:36 -#, fuzzy msgid "Envelope deformation" -msgstr "Informação" +msgstr "Deformação por envelope" #: ../src/live_effects/lpe-perspective-envelope.cpp:45 -#, fuzzy msgid "Overflow perspective" -msgstr "Perspectiva" +msgstr "Perspetiva sobreposta" #: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Type" msgstr "Tipo" #: ../src/live_effects/lpe-perspective-envelope.cpp:46 -#, fuzzy msgid "Select the type of deformation" -msgstr "Duplicar o padrão antes da deformação" +msgstr "Selecionar tipo de deformação" #: ../src/live_effects/lpe-perspective-envelope.cpp:47 -#, fuzzy msgid "Top Left" -msgstr "Quebrar caminho" +msgstr "Topo Esquerdo" #: ../src/live_effects/lpe-perspective-envelope.cpp:47 -#, fuzzy msgid "Top Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Topo Esquerdo - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-perspective-envelope.cpp:48 -#, fuzzy msgid "Top Right" -msgstr "Dicas e _Truques" +msgstr "Topo Direito" #: ../src/live_effects/lpe-perspective-envelope.cpp:48 -#, fuzzy msgid "Top Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Topo Direito - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-perspective-envelope.cpp:49 -#, fuzzy msgid "Down Left" -msgstr "Quebrar caminho" +msgstr "Fundo Esquerdo" #: ../src/live_effects/lpe-perspective-envelope.cpp:49 -#, fuzzy msgid "Down Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Fundo Esquerdo - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-perspective-envelope.cpp:50 -#, fuzzy msgid "Down Right" -msgstr "Direitos" +msgstr "Fundo Direito" #: ../src/live_effects/lpe-perspective-envelope.cpp:50 -#, fuzzy msgid "Down Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"Alt: Bloquear o tamanho da alça. Ctrl+Alt: mover ao longo da " -"alça" +"Fundo Direito - Ctrl+Alt+clicar: repor, Ctrl: mover ao longo " +"dos eixos" #: ../src/live_effects/lpe-perspective-envelope.cpp:367 -#, fuzzy msgid "Handles:" -msgstr "Ângulo" +msgstr "Alças:" #: ../src/live_effects/lpe-powerstroke.cpp:132 msgid "CubicBezierSmooth" -msgstr "" +msgstr "Suavidade Bézier Cúbica" #: ../src/live_effects/lpe-powerstroke.cpp:151 #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 -#, fuzzy msgid "Round" -msgstr "Arredondado" +msgstr "Arredondada" #: ../src/live_effects/lpe-powerstroke.cpp:153 -#, fuzzy msgid "Zero width" -msgstr "Largura da caneta" +msgstr "Espessura zero" #: ../src/live_effects/lpe-powerstroke.cpp:171 #: ../src/widgets/pencil-toolbar.cpp:112 -#, fuzzy msgid "Spiro" msgstr "Espiral" #: ../src/live_effects/lpe-powerstroke.cpp:177 -#, fuzzy msgid "Offset points" -msgstr "Tipografia" +msgstr "Pontos deslocados" #: ../src/live_effects/lpe-powerstroke.cpp:178 -#, fuzzy msgid "Sort points" -msgstr "Orientação da página:" +msgstr "Ordenar pontos" #: ../src/live_effects/lpe-powerstroke.cpp:178 msgid "Sort offset points according to their time value along the curve" msgstr "" +"Ordenar pontos deslocados de acordo com o seu valor temporal ao longo da " +"curva" #: ../src/live_effects/lpe-powerstroke.cpp:180 #: ../share/extensions/fractalize.inx.h:3 -#, fuzzy msgid "Smoothness:" -msgstr "Suavidade" +msgstr "Suavidade:" #: ../src/live_effects/lpe-powerstroke.cpp:180 msgid "" "Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " "interpolation, 1 = smooth" msgstr "" +"Define a suavidade para o interpolador CubicBezierJohan; 0 = interpolação " +"linear, 1 = suave" #: ../src/live_effects/lpe-powerstroke.cpp:181 -#, fuzzy msgid "Start cap:" -msgstr "Início:" +msgstr "Ponta inicial:" #: ../src/live_effects/lpe-powerstroke.cpp:181 msgid "Determines the shape of the path's start" -msgstr "" +msgstr "Determina a forma geométrica do início do caminho" #: ../src/live_effects/lpe-powerstroke.cpp:183 #: ../src/widgets/stroke-style.cpp:335 msgid "Maximum length of the miter (in units of stroke width)" -msgstr "Tamanho máximo do aguçamento (em unidades de largura de traço)" +msgstr "Tamanho máximo da esquina aguda (em unidades da espessura do traço)" #: ../src/live_effects/lpe-powerstroke.cpp:184 -#, fuzzy msgid "End cap:" -msgstr "Ponta redonda" +msgstr "Ponta final:" #: ../src/live_effects/lpe-powerstroke.cpp:184 msgid "Determines the shape of the path's end" -msgstr "" +msgstr "Determina a forma geométrica do fim do caminho" #: ../src/live_effects/lpe-rough-hatches.cpp:225 -#, fuzzy msgid "Frequency randomness:" -msgstr "Não redondo" +msgstr "Frequência aleatória:" #: ../src/live_effects/lpe-rough-hatches.cpp:225 msgid "Variation of distance between hatches, in %." -msgstr "" +msgstr "Variação da distância entre rabiscos, em %." #: ../src/live_effects/lpe-rough-hatches.cpp:226 -#, fuzzy msgid "Growth:" -msgstr "Aumentar ajuste" +msgstr "Crescimento:" #: ../src/live_effects/lpe-rough-hatches.cpp:226 msgid "Growth of distance between hatches." -msgstr "" +msgstr "Crescimento da distância entre rabiscos." #. FIXME: top/bottom names are inverted in the UI/svg and in the code!! #: ../src/live_effects/lpe-rough-hatches.cpp:228 msgid "Half-turns smoothness: 1st side, in:" -msgstr "" +msgstr "Suavidade das meias-voltas: 1º lado, em:" #: ../src/live_effects/lpe-rough-hatches.cpp:228 msgid "" "Set smoothness/sharpness of path when reaching a 'bottom' half-turn. " "0=sharp, 1=default" msgstr "" +"Definir suavidade/nitidez do caminho ao alcançar um meio-termo 'baixo'. " +"0=nítido, 1=padrão" #: ../src/live_effects/lpe-rough-hatches.cpp:229 -#, fuzzy msgid "1st side, out:" -msgstr "Colar tamanho" +msgstr "1º lado, fora:" #: ../src/live_effects/lpe-rough-hatches.cpp:229 msgid "" "Set smoothness/sharpness of path when leaving a 'bottom' half-turn. 0=sharp, " "1=default" msgstr "" +"Definir suavidade/nitidez do caminho ao sair de um meio-termo 'baixo'. " +"0=nítido, 1=padrão" #: ../src/live_effects/lpe-rough-hatches.cpp:230 -#, fuzzy msgid "2nd side, in:" -msgstr "nó final" +msgstr "2º lado, dentro:" #: ../src/live_effects/lpe-rough-hatches.cpp:230 msgid "" "Set smoothness/sharpness of path when reaching a 'top' half-turn. 0=sharp, " "1=default" msgstr "" +"Definir suavidade/nitidez do caminho ao alcançar um meio-termo 'alto'. " +"0=nítido, 1=padrão" #: ../src/live_effects/lpe-rough-hatches.cpp:231 -#, fuzzy msgid "2nd side, out:" -msgstr "nó final" +msgstr "2º lado, fora:" #: ../src/live_effects/lpe-rough-hatches.cpp:231 msgid "" "Set smoothness/sharpness of path when leaving a 'top' half-turn. 0=sharp, " "1=default" msgstr "" +"Definir suavidade/nitidez do caminho ao sair de um meio-termo 'alto'. " +"0=nítido, 1=padrão" #: ../src/live_effects/lpe-rough-hatches.cpp:232 msgid "Magnitude jitter: 1st side:" -msgstr "" +msgstr "Magnitude da variação_ 1º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:232 msgid "Randomly moves 'bottom' half-turns to produce magnitude variations." msgstr "" +"Mover aleatoriamente meios-termos 'baixos' para produzir variações de " +"magnitude." #: ../src/live_effects/lpe-rough-hatches.cpp:233 #: ../src/live_effects/lpe-rough-hatches.cpp:235 #: ../src/live_effects/lpe-rough-hatches.cpp:237 -#, fuzzy msgid "2nd side:" -msgstr "nó final" +msgstr "2º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:233 msgid "Randomly moves 'top' half-turns to produce magnitude variations." msgstr "" +"Mover aleatoriamente meios-termos 'altos' para produzir variações de " +"magnitude." #: ../src/live_effects/lpe-rough-hatches.cpp:234 msgid "Parallelism jitter: 1st side:" -msgstr "" +msgstr "Variação em paralelo: 1º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:234 msgid "" "Add direction randomness by moving 'bottom' half-turns tangentially to the " "boundary." msgstr "" +"Adicionar alieatoriedade de direção movendo as meias-voltas do 'fundo' " +"tangencialmente aos limites." #: ../src/live_effects/lpe-rough-hatches.cpp:235 msgid "" "Add direction randomness by randomly moving 'top' half-turns tangentially to " "the boundary." msgstr "" +"Adicionar alieatoriedade de direção movendo as meias-voltas do 'topo' " +"tangencialmente aos limites." #: ../src/live_effects/lpe-rough-hatches.cpp:236 -#, fuzzy msgid "Variance: 1st side:" -msgstr "Colar tamanho" +msgstr "Variância: 1º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:236 msgid "Randomness of 'bottom' half-turns smoothness" -msgstr "" +msgstr "Aleatoriedade da suavidade de meios-termos 'baixos'" #: ../src/live_effects/lpe-rough-hatches.cpp:237 msgid "Randomness of 'top' half-turns smoothness" -msgstr "" +msgstr "Aleatoriedade da suavidade de meios-termos 'altos'" #. #: ../src/live_effects/lpe-rough-hatches.cpp:239 -#, fuzzy msgid "Generate thick/thin path" -msgstr "Criar novo caminho" +msgstr "Gerar caminho grosso/fino" #: ../src/live_effects/lpe-rough-hatches.cpp:239 -#, fuzzy msgid "Simulate a stroke of varying width" -msgstr "Ampliar largura do traço" +msgstr "Simular um caminho de espessura variável" #: ../src/live_effects/lpe-rough-hatches.cpp:240 -#, fuzzy msgid "Bend hatches" -msgstr "Quebrar caminho" +msgstr "Dobrar rabiscos" #: ../src/live_effects/lpe-rough-hatches.cpp:240 msgid "Add a global bend to the hatches (slower)" -msgstr "" +msgstr "Adicionar uma dobra global aos rabiscos(mais lento)" #: ../src/live_effects/lpe-rough-hatches.cpp:241 msgid "Thickness: at 1st side:" -msgstr "" +msgstr "Espessura: no 1º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:241 msgid "Width at 'bottom' half-turns" -msgstr "" +msgstr "Largura no 'fundo' nas meias-voltas" #: ../src/live_effects/lpe-rough-hatches.cpp:242 -#, fuzzy msgid "At 2nd side:" -msgstr "nó final" +msgstr "No 2º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:242 msgid "Width at 'top' half-turns" -msgstr "" +msgstr "Largura no 'topo' nas meias-voltas" #. #: ../src/live_effects/lpe-rough-hatches.cpp:244 -#, fuzzy msgid "From 2nd to 1st side:" -msgstr "nó final" +msgstr "Do 2º para o 1º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:244 msgid "Width from 'top' to 'bottom'" -msgstr "" +msgstr "Largura do 'topo' para o 'fundo'" #: ../src/live_effects/lpe-rough-hatches.cpp:245 -#, fuzzy msgid "From 1st to 2nd side:" -msgstr "nó final" +msgstr "Do 1º para o 2º lado:" #: ../src/live_effects/lpe-rough-hatches.cpp:245 msgid "Width from 'bottom' to 'top'" -msgstr "" +msgstr "Largura do 'fundo' para o 'topo'" #: ../src/live_effects/lpe-rough-hatches.cpp:247 -#, fuzzy msgid "Hatches width and dir" -msgstr "Largura, altura: " +msgstr "Largura e direção dos rabiscos" #: ../src/live_effects/lpe-rough-hatches.cpp:247 msgid "Defines hatches frequency and direction" -msgstr "" +msgstr "Define a frequência e direção dos rabiscos" #. #: ../src/live_effects/lpe-rough-hatches.cpp:249 msgid "Global bending" -msgstr "" +msgstr "Dobra global" #: ../src/live_effects/lpe-rough-hatches.cpp:249 msgid "" "Relative position to a reference point defines global bending direction and " "amount" msgstr "" +"Posição relativa para um ponto de referência define a direção de dobra " +"global e a quantidade" #: ../src/live_effects/lpe-roughen.cpp:31 ../share/extensions/addnodes.inx.h:4 -#, fuzzy msgid "By number of segments" -msgstr "O número de dentes" +msgstr "Pelo número de segmentos" #: ../src/live_effects/lpe-roughen.cpp:32 -#, fuzzy msgid "By max. segment size" -msgstr "Comprimento máximo dos segmentos" +msgstr "Pelo tamanho máximo do segmento" #: ../src/live_effects/lpe-roughen.cpp:38 -#, fuzzy msgid "Along nodes" -msgstr "Juntar nós" +msgstr "Ao longo dos nós" #: ../src/live_effects/lpe-roughen.cpp:39 -#, fuzzy msgid "Rand" -msgstr "Aleatório:" +msgstr "Aleatório" #: ../src/live_effects/lpe-roughen.cpp:40 -#, fuzzy msgid "Retract" -msgstr "Extrair Uma Imagem" +msgstr "Retrair" #. initialise your parameters here: #: ../src/live_effects/lpe-roughen.cpp:49 -#, fuzzy msgid "Method" -msgstr "Metro" +msgstr "Método" #: ../src/live_effects/lpe-roughen.cpp:49 -#, fuzzy msgid "Division method" -msgstr "Divisão" +msgstr "Método de divisão" #: ../src/live_effects/lpe-roughen.cpp:51 -#, fuzzy msgid "Max. segment size" -msgstr "Comprimento máximo dos segmentos" +msgstr "Comprimento máximo do segmento" #: ../src/live_effects/lpe-roughen.cpp:53 -#, fuzzy msgid "Number of segments" -msgstr "Número de passos" +msgstr "Número de segmentos" #: ../src/live_effects/lpe-roughen.cpp:55 -#, fuzzy msgid "Max. displacement in X" -msgstr "Deslocamento máximo, px" +msgstr "Deslocamento máximo em X" #: ../src/live_effects/lpe-roughen.cpp:57 -#, fuzzy msgid "Max. displacement in Y" -msgstr "Deslocamento máximo, px" +msgstr "Deslocamento máximo em Y" #: ../src/live_effects/lpe-roughen.cpp:59 -#, fuzzy msgid "Global randomize" -msgstr "visivelmente randômico" +msgstr "Aleatório global" #: ../src/live_effects/lpe-roughen.cpp:61 -#, fuzzy msgid "Handles" -msgstr "Ângulo" +msgstr "Alças" #: ../src/live_effects/lpe-roughen.cpp:61 -#, fuzzy msgid "Handles options" -msgstr "Posições aleatórias" +msgstr "Opções de alças" #: ../src/live_effects/lpe-roughen.cpp:63 #: ../share/extensions/jitternodes.inx.h:5 @@ -11902,64 +11062,59 @@ msgid "Shift nodes" msgstr "Deslocar nós" #: ../src/live_effects/lpe-roughen.cpp:65 -#, fuzzy msgid "Fixed displacement" -msgstr "Mapa de Deslocamento" +msgstr "Deslocamento fixo" #: ../src/live_effects/lpe-roughen.cpp:65 msgid "Fixed displacement, 1/3 of segment length" -msgstr "" +msgstr "Deslocamento fixo, 1/3 do comprimento do segmento" #: ../src/live_effects/lpe-roughen.cpp:67 -#, fuzzy msgid "Spray Tool friendly" -msgstr "Propriedades de Espirais" +msgstr "Compatibilidade com a Ferramenta Pulverizar" #: ../src/live_effects/lpe-roughen.cpp:67 msgid "For use with spray tool in copy mode" -msgstr "" +msgstr "Para usar com a ferramente de pulverizar no modo cópia" #: ../src/live_effects/lpe-roughen.cpp:121 msgid "Add nodes Subdivide each segment" -msgstr "" +msgstr "Adicionar nós: subdividir cada segmento" #: ../src/live_effects/lpe-roughen.cpp:130 msgid "Jitter nodes Move nodes/handles" -msgstr "" +msgstr "Nós nervosos: mover nós/alças" #: ../src/live_effects/lpe-roughen.cpp:139 msgid "Extra roughen Add a extra layer of rough" -msgstr "" +msgstr "Extra rugoso: adicionar uma camada extra de rugosidade" #: ../src/live_effects/lpe-roughen.cpp:148 msgid "Options Modify options to rough" -msgstr "" +msgstr "Opções: alterar as opções de rugosidade" #: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/measure.inx.h:27 #: ../share/extensions/restack.inx.h:16 #: ../share/extensions/text_extract.inx.h:8 #: ../share/extensions/text_merge.inx.h:8 msgid "Left" -msgstr "" +msgstr "Esquerda" #: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/measure.inx.h:29 #: ../share/extensions/restack.inx.h:18 #: ../share/extensions/text_extract.inx.h:10 #: ../share/extensions/text_merge.inx.h:10 -#, fuzzy msgid "Right" -msgstr "Direitos" +msgstr "Direita" #: ../src/live_effects/lpe-ruler.cpp:27 ../src/live_effects/lpe-ruler.cpp:35 -#, fuzzy msgid "Both" -msgstr "Fundo" +msgstr "Ambos" #: ../src/live_effects/lpe-ruler.cpp:32 -#, fuzzy msgctxt "Border mark" msgid "None" -msgstr "Nenhum" +msgstr "Nenhuma" #: ../src/live_effects/lpe-ruler.cpp:33 #: ../src/live_effects/lpe-transform_2pts.cpp:37 @@ -11974,467 +11129,408 @@ msgid "End" msgstr "Fim" #: ../src/live_effects/lpe-ruler.cpp:41 -#, fuzzy msgid "_Mark distance:" -msgstr "Encaixar _distância" +msgstr "Distância entre _marcas:" #: ../src/live_effects/lpe-ruler.cpp:41 -#, fuzzy msgid "Distance between successive ruler marks" -msgstr "Distância vertical entre linhas da grelha" +msgstr "Distância entre as marcas da régua" #: ../src/live_effects/lpe-ruler.cpp:42 ../share/extensions/foldablebox.inx.h:7 #: ../share/extensions/interp_att_g.inx.h:9 #: ../share/extensions/layout_nup.inx.h:3 #: ../share/extensions/printing_marks.inx.h:11 -#, fuzzy msgid "Unit:" -msgstr "Unidades:" +msgstr "Unidade:" #: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:211 msgid "Unit" msgstr "Unidade" #: ../src/live_effects/lpe-ruler.cpp:43 -#, fuzzy msgid "Ma_jor length:" -msgstr "Comprimento de onda" +msgstr "Comprimento marcas maiores:" #: ../src/live_effects/lpe-ruler.cpp:43 msgid "Length of major ruler marks" -msgstr "" +msgstr "Comprimento das marcas maiores da régua" #: ../src/live_effects/lpe-ruler.cpp:44 -#, fuzzy msgid "Mino_r length:" -msgstr "Comprimento de onda" +msgstr "Comprimento marcas menores:" #: ../src/live_effects/lpe-ruler.cpp:44 msgid "Length of minor ruler marks" -msgstr "" +msgstr "Comprimento das marcas menores da régua" #: ../src/live_effects/lpe-ruler.cpp:45 -#, fuzzy msgid "Major steps_:" -msgstr "Comprimento de onda" +msgstr "Marca maior após N menores:" #: ../src/live_effects/lpe-ruler.cpp:45 msgid "Draw a major mark every ... steps" -msgstr "" +msgstr "Mostrar uma marca maior a cada ... passos" #: ../src/live_effects/lpe-ruler.cpp:46 -#, fuzzy msgid "Shift marks _by:" -msgstr "Definir marcadores" +msgstr "_Deslocar marca maior:" #: ../src/live_effects/lpe-ruler.cpp:46 msgid "Shift marks by this many steps" -msgstr "" +msgstr "Deslocar marca maior por esta quantidade de marcas menores" #: ../src/live_effects/lpe-ruler.cpp:47 -#, fuzzy msgid "Mark direction:" -msgstr "Aumentar espaçamento entre linhas" +msgstr "Lado da linha com as marcas:" #: ../src/live_effects/lpe-ruler.cpp:47 msgid "Direction of marks (when viewing along the path from start to end)" -msgstr "" +msgstr "Lado da linha onde devem aparecer as marcas de medição" #: ../src/live_effects/lpe-ruler.cpp:48 -#, fuzzy msgid "_Offset:" -msgstr "Offset:" +msgstr "_Deslocar todas as marcas:" #: ../src/live_effects/lpe-ruler.cpp:48 msgid "Offset of first mark" -msgstr "" +msgstr "Deslocamento da primeira marca" #: ../src/live_effects/lpe-ruler.cpp:49 -#, fuzzy msgid "Border marks:" -msgstr "Cor da borda:" +msgstr "Marcas nas pontas:" #: ../src/live_effects/lpe-ruler.cpp:49 msgid "Choose whether to draw marks at the beginning and end of the path" -msgstr "" +msgstr "Escolher se mostrar marcas no início e no fim do caminho" #: ../src/live_effects/lpe-show_handles.cpp:25 -#, fuzzy msgid "Show nodes" -msgstr "Desenhar Alças" +msgstr "Mostrar nós" #: ../src/live_effects/lpe-show_handles.cpp:27 -#, fuzzy msgid "Show path" -msgstr "Caminho do traço" +msgstr "Mostrar caminho" #: ../src/live_effects/lpe-show_handles.cpp:28 -#, fuzzy msgid "Scale nodes and handles" -msgstr "Deslocar alças do nó" +msgstr "Tamanho dos nós e alças" #: ../src/live_effects/lpe-show_handles.cpp:29 #: ../src/ui/tool/multi-path-manipulator.cpp:788 #: ../src/ui/tool/multi-path-manipulator.cpp:791 msgid "Rotate nodes" -msgstr "Girar nós" +msgstr "Rodar nós" #: ../src/live_effects/lpe-show_handles.cpp:55 msgid "" "The \"show handles\" path effect will remove any custom style on the object " "you are applying it to. If this is not what you want, click Cancel." msgstr "" +"O efeito no caminho \"Mostrar alças e nós\" irá remover qualquer estilo " +"personalizado no objeto. Se não for isto que quer, clique em Cancelar." #: ../src/live_effects/lpe-simplify.cpp:30 -#, fuzzy msgid "Steps:" -msgstr "Passos" +msgstr "Passos:" #: ../src/live_effects/lpe-simplify.cpp:30 -#, fuzzy msgid "Change number of simplify steps " -msgstr "Alterar número de cantos" +msgstr "Alterar número de passos de simplificação " #: ../src/live_effects/lpe-simplify.cpp:31 -#, fuzzy msgid "Roughly threshold:" -msgstr "Limiar:" +msgstr "Limiar de rugosidade:" #: ../src/live_effects/lpe-simplify.cpp:32 -#, fuzzy msgid "Smooth angles:" -msgstr "Suavidade" +msgstr "Suavizar ângulos menores que:" #: ../src/live_effects/lpe-simplify.cpp:32 msgid "Max degree difference on handles to perform a smooth" -msgstr "" +msgstr "Grau máximo de diferença das alças, em graus, para fazer a suavidade" #: ../src/live_effects/lpe-simplify.cpp:34 -#, fuzzy msgid "Paths separately" -msgstr "Colar tamanho separadamente" +msgstr "Caminhos separadamente" #: ../src/live_effects/lpe-simplify.cpp:34 -#, fuzzy msgid "Simplifying paths (separately)" -msgstr "Simplificando caminhos (separadamente):" +msgstr "Simplificar caminhos (separadamente)" #: ../src/live_effects/lpe-simplify.cpp:36 -#, fuzzy msgid "Just coalesce" -msgstr "Justificar linhas" +msgstr "Apenas aglutinar" #: ../src/live_effects/lpe-simplify.cpp:36 -#, fuzzy msgid "Simplify just coalesce" -msgstr "Simplificar" +msgstr "Simplificar apenas aglutinar" #. initialise your parameters here: #. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), #: ../src/live_effects/lpe-sketch.cpp:38 -#, fuzzy msgid "Strokes:" -msgstr "Traço:" +msgstr "Traços:" #: ../src/live_effects/lpe-sketch.cpp:38 msgid "Draw that many approximating strokes" -msgstr "" +msgstr "Desenhar aproximadamente este número de traços" #: ../src/live_effects/lpe-sketch.cpp:39 -#, fuzzy msgid "Max stroke length:" -msgstr "Ampliar largura do traço" +msgstr "Comprimento máximo do traço:" #: ../src/live_effects/lpe-sketch.cpp:40 -#, fuzzy msgid "Maximum length of approximating strokes" -msgstr "Tamanho máximo do aguçamento (em unidades de largura de traço)" +msgstr "Tamanho máximo do aguçamento (em unidades da espessura do traço)" #: ../src/live_effects/lpe-sketch.cpp:41 -#, fuzzy msgid "Stroke length variation:" -msgstr "Propriedades de Estrelas" +msgstr "Variação do comprimento do traço:" #: ../src/live_effects/lpe-sketch.cpp:42 -#, fuzzy msgid "Random variation of stroke length (relative to maximum length)" -msgstr "Escala da largura do caminho de traço em relação ao seu comprimento" +msgstr "Dimensão da largura do caminho do traço em relação ao seu comprimento" #: ../src/live_effects/lpe-sketch.cpp:43 msgid "Max. overlap:" -msgstr "" +msgstr "Sobreposição máxima:" #: ../src/live_effects/lpe-sketch.cpp:44 -#, fuzzy msgid "How much successive strokes should overlap (relative to maximum length)" -msgstr "Escala da largura do caminho de traço em relação ao seu comprimento" +msgstr "Dimensão da largura do caminho do traço em relação ao seu comprimento" #: ../src/live_effects/lpe-sketch.cpp:45 -#, fuzzy msgid "Overlap variation:" -msgstr "Menos Saturação" +msgstr "Variação da sobreposição:" #: ../src/live_effects/lpe-sketch.cpp:46 msgid "Random variation of overlap (relative to maximum overlap)" -msgstr "" +msgstr "Variação aleatória da sobreposição (relativo à sobreposição máxima)" #: ../src/live_effects/lpe-sketch.cpp:47 -#, fuzzy msgid "Max. end tolerance:" -msgstr "Tolerância:" +msgstr "Máxima tolerância no fim:" #: ../src/live_effects/lpe-sketch.cpp:48 msgid "" "Maximum distance between ends of original and approximating paths (relative " "to maximum length)" msgstr "" +"Distância máxima entre fins do caminho original e caminho aproximado " +"(relativo ao comprimento máximo)" #: ../src/live_effects/lpe-sketch.cpp:49 -#, fuzzy msgid "Average offset:" -msgstr "Tipografia normal" +msgstr "Deslocamento médio:" #: ../src/live_effects/lpe-sketch.cpp:50 msgid "Average distance each stroke is away from the original path" -msgstr "" +msgstr "Distância média a que cada traço está do caminho original" #: ../src/live_effects/lpe-sketch.cpp:51 -#, fuzzy msgid "Max. tremble:" -msgstr "Ampliar largura do traço" +msgstr "Tremido máximo:" #: ../src/live_effects/lpe-sketch.cpp:52 msgid "Maximum tremble magnitude" -msgstr "" +msgstr "Máxima magnitude do tremido" #: ../src/live_effects/lpe-sketch.cpp:53 -#, fuzzy msgid "Tremble frequency:" -msgstr "Freqüência Base" +msgstr "Frequência do tremido:" #: ../src/live_effects/lpe-sketch.cpp:54 msgid "Average number of tremble periods in a stroke" -msgstr "" +msgstr "Número médio de períodos de tremido num traço" #: ../src/live_effects/lpe-sketch.cpp:56 -#, fuzzy msgid "Construction lines:" -msgstr "Centralizar linhas" +msgstr "Linhas de construção:" #: ../src/live_effects/lpe-sketch.cpp:57 msgid "How many construction lines (tangents) to draw" -msgstr "" +msgstr "Quantas linhas de construção (tangentes) mostrar" #: ../src/live_effects/lpe-sketch.cpp:58 #: ../src/ui/dialog/filter-effects-dialog.cpp:2918 #: ../share/extensions/render_alphabetsoup.inx.h:3 -#, fuzzy msgid "Scale:" -msgstr "Ampliar" +msgstr "Escala:" #: ../src/live_effects/lpe-sketch.cpp:59 msgid "" "Scale factor relating curvature and length of construction lines (try " "5*offset)" msgstr "" +"Fator de escala relacionando a curvatura e o comprimenro de linhas de " +"construção (tentar deslocamento 5*)" #: ../src/live_effects/lpe-sketch.cpp:60 -#, fuzzy msgid "Max. length:" -msgstr "Comprimento de onda" +msgstr "Comprimento máximo:" #: ../src/live_effects/lpe-sketch.cpp:60 msgid "Maximum length of construction lines" -msgstr "" +msgstr "Comprimento máximo das linhas de construção" #: ../src/live_effects/lpe-sketch.cpp:61 -#, fuzzy msgid "Length variation:" -msgstr "Menos Saturação" +msgstr "Variação do comprimento:" #: ../src/live_effects/lpe-sketch.cpp:61 msgid "Random variation of the length of construction lines" -msgstr "" +msgstr "Variação aleatória do comprimento das linhas de construção" #: ../src/live_effects/lpe-sketch.cpp:62 -#, fuzzy msgid "Placement randomness:" -msgstr "Não redondo" +msgstr "Aleatoriadade do posicionamento:" #: ../src/live_effects/lpe-sketch.cpp:62 msgid "0: evenly distributed construction lines, 1: purely random placement" msgstr "" +"0: linhas de construção distribuidas em proporção, 1: posicionamento " +"puramente aleatório" #: ../src/live_effects/lpe-sketch.cpp:64 -#, fuzzy msgid "k_min:" -msgstr "_Combinar" +msgstr "k_min:" #: ../src/live_effects/lpe-sketch.cpp:64 msgid "min curvature" -msgstr "" +msgstr "curvatura mínima" #: ../src/live_effects/lpe-sketch.cpp:65 -#, fuzzy msgid "k_max:" -msgstr "_x0:" +msgstr "k_max:" #: ../src/live_effects/lpe-sketch.cpp:65 -#, fuzzy msgid "max curvature" -msgstr "Arrastar curva" +msgstr "curvatura máxima" #: ../src/live_effects/lpe-taperstroke.cpp:66 -#, fuzzy msgid "Extrapolated" -msgstr "Interpolar" +msgstr "Extrapolado" #: ../src/live_effects/lpe-taperstroke.cpp:73 #: ../share/extensions/edge3d.inx.h:5 ../share/extensions/nicechart.inx.h:25 -#, fuzzy msgid "Stroke width:" -msgstr "Largura do traço" +msgstr "Espessura do traço:" #: ../src/live_effects/lpe-taperstroke.cpp:73 -#, fuzzy msgid "The (non-tapered) width of the path" -msgstr "Escala da largura do caminho de traço" +msgstr "A espessura (não estreitada) do caminho" #: ../src/live_effects/lpe-taperstroke.cpp:74 -#, fuzzy msgid "Start offset:" -msgstr "Ajustar a distância de compensação" +msgstr "Deslocamento inicial:" #: ../src/live_effects/lpe-taperstroke.cpp:74 msgid "Taper distance from path start" -msgstr "" +msgstr "Distância de estreitamento do início do caminho" #: ../src/live_effects/lpe-taperstroke.cpp:75 -#, fuzzy msgid "End offset:" -msgstr "Padrão de Tipografia" +msgstr "Deslocamento final:" #: ../src/live_effects/lpe-taperstroke.cpp:75 -#, fuzzy msgid "The ending position of the taper" -msgstr "Usar tamanho e posição salvos do ladrilho" +msgstr "A posição final do estreitamento" #: ../src/live_effects/lpe-taperstroke.cpp:76 -#, fuzzy msgid "Taper smoothing:" -msgstr "Suavizar" +msgstr "Suavização do estreitamento:" #: ../src/live_effects/lpe-taperstroke.cpp:76 msgid "Amount of smoothing to apply to the tapers" -msgstr "" +msgstr "Quantidade de suavização a aplicar aos estreitamentos" #: ../src/live_effects/lpe-taperstroke.cpp:77 -#, fuzzy msgid "Join type:" -msgstr " tipo: " +msgstr "Tipo de união:" #: ../src/live_effects/lpe-taperstroke.cpp:77 -#, fuzzy msgid "Join type for non-smooth nodes" -msgstr "Encaixar aos n_ós" +msgstr "Tipo de união para nós não suaves" #: ../src/live_effects/lpe-taperstroke.cpp:78 msgid "Limit for miter joins" -msgstr "" +msgstr "Limite para esquinas agudas" #: ../src/live_effects/lpe-taperstroke.cpp:447 -#, fuzzy msgid "Start point of the taper" -msgstr "Variação do ponto de início" +msgstr "Ponto inicial do estreitamento" #: ../src/live_effects/lpe-taperstroke.cpp:451 -#, fuzzy msgid "End point of the taper" -msgstr "Variação de ponto final" +msgstr "Ponto final do estreitamento" #: ../src/live_effects/lpe-transform_2pts.cpp:31 -#, fuzzy msgid "Elastic" -msgstr "Colar" +msgstr "Elástico" #: ../src/live_effects/lpe-transform_2pts.cpp:31 -#, fuzzy msgid "Elastic transform mode" -msgstr "Selecionar e transformar objectos" +msgstr "Modo de transformar elástico" #: ../src/live_effects/lpe-transform_2pts.cpp:32 -#, fuzzy msgid "From original width" -msgstr "Substituir texto..." +msgstr "Da largura original" #: ../src/live_effects/lpe-transform_2pts.cpp:33 -#, fuzzy msgid "Lock length" -msgstr "Bloquear Camada" +msgstr "Bloquear comprimento" #: ../src/live_effects/lpe-transform_2pts.cpp:33 -#, fuzzy msgid "Lock length to current distance" -msgstr "Bloquear ou desbloquear a camada actual" +msgstr "Bloquear comprimento à distância atual" #: ../src/live_effects/lpe-transform_2pts.cpp:34 -#, fuzzy msgid "Lock angle" -msgstr "Ângulo de Cone" +msgstr "Bloquear ângulo" #: ../src/live_effects/lpe-transform_2pts.cpp:35 -#, fuzzy msgid "Flip horizontal" -msgstr "Inverter horizontalmente" +msgstr "Espelhar na horizontal" #: ../src/live_effects/lpe-transform_2pts.cpp:36 -#, fuzzy msgid "Flip vertical" -msgstr "Inverter verticalmente" +msgstr "Espelhar na vertical" #: ../src/live_effects/lpe-transform_2pts.cpp:37 -#, fuzzy msgid "Start point" -msgstr "Orientação da página:" +msgstr "Ponto de início" #: ../src/live_effects/lpe-transform_2pts.cpp:38 -#, fuzzy msgid "End point" -msgstr "Variação de ponto final" +msgstr "Ponto de fim" #: ../src/live_effects/lpe-transform_2pts.cpp:39 -#, fuzzy msgid "Stretch" -msgstr "Tamanho do passo (px)" +msgstr "Esticar" #: ../src/live_effects/lpe-transform_2pts.cpp:39 -#, fuzzy msgid "Stretch the result" -msgstr "Resolução padrão de exportação" +msgstr "Esticar o resultado" #: ../src/live_effects/lpe-transform_2pts.cpp:40 -#, fuzzy msgid "Offset from knots" -msgstr "Tipografia" +msgstr "Deslocamento dos nós" #: ../src/live_effects/lpe-transform_2pts.cpp:41 -#, fuzzy msgid "First Knot" -msgstr "Primeiro seleccionado" +msgstr "Primeiro Nó" #: ../src/live_effects/lpe-transform_2pts.cpp:42 msgid "Last Knot" -msgstr "" +msgstr "Último Nó" #: ../src/live_effects/lpe-transform_2pts.cpp:43 -#, fuzzy msgid "Rotation helper size" -msgstr "Rotação (graus)" +msgstr "Tamanho do indicador de rotação" #: ../src/live_effects/lpe-transform_2pts.cpp:196 -#, fuzzy msgid "Change index of knot" -msgstr "Alterar tipo do nó" +msgstr "Alterar índice do nó" #: ../src/live_effects/lpe-transform_2pts.cpp:349 #: ../src/ui/dialog/inkscape-preferences.cpp:1623 @@ -12442,76 +11538,74 @@ msgstr "Alterar tipo do nó" #: ../src/ui/dialog/svg-fonts-dialog.cpp:699 #: ../src/ui/dialog/tracedialog.cpp:813 #: ../src/ui/widget/preferences-widget.cpp:742 -#, fuzzy msgid "Reset" -msgstr " R_edefinir " +msgstr "Repor" #: ../src/live_effects/lpe-vonkoch.cpp:46 -#, fuzzy msgid "N_r of generations:" -msgstr "Número de revoluções" +msgstr "Núme_ro de generações:" #: ../src/live_effects/lpe-vonkoch.cpp:46 msgid "Depth of the recursion --- keep low!!" -msgstr "" +msgstr "Profundidade do reocorrer --- manter baixo!!" #: ../src/live_effects/lpe-vonkoch.cpp:47 -#, fuzzy msgid "Generating path:" -msgstr "Criar novo caminho" +msgstr "Caminho gerador:" #: ../src/live_effects/lpe-vonkoch.cpp:47 msgid "Path whose segments define the iterated transforms" -msgstr "" +msgstr "Caminho do qual os segmentos definem as transformações repetidas" #: ../src/live_effects/lpe-vonkoch.cpp:48 msgid "_Use uniform transforms only" -msgstr "" +msgstr "_Usar apenas transformações uniformes" #: ../src/live_effects/lpe-vonkoch.cpp:48 msgid "" "2 consecutive segments are used to reverse/preserve orientation only " "(otherwise, they define a general transform)." msgstr "" +"São usados 2 segmentos consecutivos apenas para a orientação reversa/mantida " +"(caso contrário, eles definem a transformação geral)." #: ../src/live_effects/lpe-vonkoch.cpp:49 -#, fuzzy msgid "Dra_w all generations" -msgstr "Número de revoluções" +msgstr "_Desenhar todos os geradores" #: ../src/live_effects/lpe-vonkoch.cpp:49 msgid "If unchecked, draw only the last generation" -msgstr "" +msgstr "Se desativado, desenhar apenas a última geração." #. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) #: ../src/live_effects/lpe-vonkoch.cpp:51 -#, fuzzy msgid "Reference segment:" -msgstr "Eliminar segmento" +msgstr "Segmento de referência:" #: ../src/live_effects/lpe-vonkoch.cpp:51 msgid "The reference segment. Defaults to the horizontal midline of the bbox." msgstr "" +"O segmento de referência. Por padrão a linha do meio horizontal da caixa " +"limitadora." #. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), #. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), #. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. #: ../src/live_effects/lpe-vonkoch.cpp:55 msgid "_Max complexity:" -msgstr "" +msgstr "Complexidade _máxima:" #: ../src/live_effects/lpe-vonkoch.cpp:55 msgid "Disable effect if the output is too complex" -msgstr "" +msgstr "Desativar o efeito se o resultado for muito complexo" #: ../src/live_effects/parameter/bool.cpp:68 msgid "Change bool parameter" msgstr "Alterar parâmetro booleano" #: ../src/live_effects/parameter/enum.h:47 -#, fuzzy msgid "Change enumeration parameter" -msgstr "Alterar parâmetro enum" +msgstr "Alterar parâmetro de enumeração" #: ../src/live_effects/parameter/filletchamferpointarray.cpp:778 #: ../src/live_effects/parameter/filletchamferpointarray.cpp:839 @@ -12519,6 +11613,8 @@ msgid "" "Chamfer: Ctrl+Click toggle type, Shift+Click open " "dialog, Ctrl+Alt+Click reset" msgstr "" +"Chanfra: Ctrl+clicar alternar tipo, Shift+clicar abrir " +"janela, Ctrl+Alt+clicar repor" #: ../src/live_effects/parameter/filletchamferpointarray.cpp:782 #: ../src/live_effects/parameter/filletchamferpointarray.cpp:843 @@ -12526,6 +11622,8 @@ msgid "" "Inverse Chamfer: Ctrl+Click toggle type, Shift+Click " "open dialog, Ctrl+Alt+Click reset" msgstr "" +"Chanfra Invertida: Ctrl+clicar alternar tipo, Shift+clicar abrir janela, Ctrl+Alt+clicar repor" #: ../src/live_effects/parameter/filletchamferpointarray.cpp:786 #: ../src/live_effects/parameter/filletchamferpointarray.cpp:847 @@ -12533,6 +11631,8 @@ msgid "" "Inverse Fillet: Ctrl+Click toggle type, Shift+Click " "open dialog, Ctrl+Alt+Click reset" msgstr "" +"Filete Invertido: Ctrl+clicar alternar tipo, Shift+clicar abrir janela, Ctrl+Alt+clicar repor" #: ../src/live_effects/parameter/filletchamferpointarray.cpp:790 #: ../src/live_effects/parameter/filletchamferpointarray.cpp:851 @@ -12540,84 +11640,74 @@ msgid "" "Fillet: Ctrl+Click toggle type, Shift+Click open " "dialog, Ctrl+Alt+Click reset" msgstr "" +"Filete: Ctrl+clicar alternar tipo, Shift+clicar abrir " +"janela, Ctrl+Alt+clicar repor" #: ../src/live_effects/parameter/originalpath.cpp:67 #: ../src/live_effects/parameter/originalpatharray.cpp:155 -#, fuzzy msgid "Link to path" -msgstr "Encaixar no camin_ho" +msgstr "Ligação para o caminho" #: ../src/live_effects/parameter/originalpath.cpp:79 -#, fuzzy msgid "Select original" -msgstr "Selecionar _Original" +msgstr "Selecionar original" #: ../src/live_effects/parameter/originalpatharray.cpp:90 #: ../src/widgets/gradient-toolbar.cpp:1205 -#, fuzzy msgid "Reverse" -msgstr "_Reverter" +msgstr "Reverso" #: ../src/live_effects/parameter/originalpatharray.cpp:130 #: ../src/live_effects/parameter/originalpatharray.cpp:315 #: ../src/live_effects/parameter/path.cpp:486 -#, fuzzy msgid "Link path parameter to path" -msgstr "Colar caminho do parâmetro" +msgstr "Ligar o parâmetro do caminho ao caminho" #: ../src/live_effects/parameter/originalpatharray.cpp:167 -#, fuzzy msgid "Remove Path" -msgstr "_Remover do caminho" +msgstr "Remover Caminho" #: ../src/live_effects/parameter/originalpatharray.cpp:179 #: ../src/ui/dialog/objects.cpp:1854 -#, fuzzy msgid "Move Down" -msgstr "Mover para:" +msgstr "Mover para Baixo" #: ../src/live_effects/parameter/originalpatharray.cpp:191 #: ../src/ui/dialog/objects.cpp:1862 -#, fuzzy msgid "Move Up" -msgstr "Padrões" +msgstr "Mover para Cima" #: ../src/live_effects/parameter/originalpatharray.cpp:231 -#, fuzzy msgid "Move path up" -msgstr "Padrões" +msgstr "Mover caminho para cima" #: ../src/live_effects/parameter/originalpatharray.cpp:261 -#, fuzzy msgid "Move path down" -msgstr "Remover efeito de caminho" +msgstr "Mover caminho para baixo" #: ../src/live_effects/parameter/originalpatharray.cpp:279 -#, fuzzy msgid "Remove path" -msgstr "Padrões" +msgstr "Remover caminho" #: ../src/live_effects/parameter/path.cpp:170 msgid "Edit on-canvas" msgstr "Editar na área de desenho" #: ../src/live_effects/parameter/path.cpp:180 -#, fuzzy msgid "Copy path" -msgstr "Cortar Caminho" +msgstr "Copiar caminho" #: ../src/live_effects/parameter/path.cpp:190 msgid "Paste path" msgstr "Colar caminho" #: ../src/live_effects/parameter/path.cpp:200 -#, fuzzy msgid "Link to path on clipboard" -msgstr "Nada na área de transferência." +msgstr "Ligação para o caminho na área de transferência" #: ../src/live_effects/parameter/path.cpp:454 msgid "Paste path parameter" -msgstr "Colar caminho do parâmetro" +msgstr "Colar parâmetro do caminho" #: ../src/live_effects/parameter/point.cpp:132 msgid "Change point parameter" @@ -12630,42 +11720,41 @@ msgid "" "+click adds a control point, Ctrl+Alt+click deletes it, Shift" "+click launches width dialog." msgstr "" +"Ponto de controlo da espessura do traço: arrastar para alterar a " +"espessura do traço. Ctrl+clicar adiciona um ponto de controlo, Ctrl" +"+Alt+clicar elimina-o, Shift+clicar abre o painel da espessura." #: ../src/live_effects/parameter/random.cpp:134 msgid "Change random parameter" -msgstr "Alterar parâmetro randômico" +msgstr "Alterar parâmetro aleatório" #: ../src/live_effects/parameter/text.cpp:101 -#, fuzzy msgid "Change text parameter" -msgstr "Alterar parâmetro do ponto" +msgstr "Alterar parâmetro do texto" #: ../src/live_effects/parameter/togglebutton.cpp:112 -#, fuzzy msgid "Change togglebutton parameter" -msgstr "Alterar parâmetro do ponto" +msgstr "Alterar parâmetro do botão de alternar" #: ../src/live_effects/parameter/transformedpoint.cpp:98 #: ../src/live_effects/parameter/vector.cpp:99 -#, fuzzy msgid "Change vector parameter" -msgstr "Alterar parâmetro do ponto" +msgstr "Alterar parâmetro do vetor" #: ../src/live_effects/parameter/unit.cpp:80 -#, fuzzy msgid "Change unit parameter" -msgstr "Alterar parâmetro do ponto" +msgstr "Alterar parâmetro da unidade" #: ../src/main-cmdlineact.cpp:49 #, c-format msgid "Unable to find verb ID '%s' specified on the command line.\n" msgstr "" -"Impossível encontrar o ID de verbo '%s' especificado na linha de comando.\n" +"Impossível encontrar o ID do verbo '%s' especificado na linha de comando.\n" #: ../src/main-cmdlineact.cpp:60 #, c-format msgid "Unable to find node ID: '%s'\n" -msgstr "Impossível encontrar o ID de nó: '%s'\n" +msgstr "Impossível encontrar o ID do nó: '%s'\n" #: ../src/main.cpp:300 msgid "Print the Inkscape version number" @@ -12673,7 +11762,7 @@ msgstr "Imprimir o número de versão do Inkscape" #: ../src/main.cpp:305 msgid "Do not use X server (only process files from console)" -msgstr "Não usar o servidor X (somente ficheiros de processos do console)" +msgstr "Não usar o servidor X (processar apenas ficheiros da consola)" #: ../src/main.cpp:310 msgid "Try to use X server (even if $DISPLAY is not set)" @@ -12682,60 +11771,61 @@ msgstr "Tente usar o servidor X (mesmo se $DISPLAY não foi definido)" #: ../src/main.cpp:315 msgid "Open specified document(s) (option string may be excluded)" msgstr "" -"Abrir o(s) desenho(s) especificado(s) (frase de opção pode ser excluída)" +"Abrir os documentos especificados (expressão de opção pode ser excluída)" #: ../src/main.cpp:316 ../src/main.cpp:321 ../src/main.cpp:326 #: ../src/main.cpp:398 ../src/main.cpp:403 ../src/main.cpp:408 #: ../src/main.cpp:419 ../src/main.cpp:435 ../src/main.cpp:440 msgid "FILENAME" -msgstr "FICHEIRO" +msgstr "NOME DO FICHEIRO" #: ../src/main.cpp:320 msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "" -"Imprimir desenho(s) para ficheiro especificado ( use '| programa' para " -"redirecionamento)" +"Imprimir documentos para um ficheiro especificado (usar '| programa' para " +"pipe)" #: ../src/main.cpp:325 msgid "Export document to a PNG file" -msgstr "Exportar desenho para um ficheiro PNG" +msgstr "Exportar documento para um ficheiro PNG" #: ../src/main.cpp:330 msgid "" "Resolution for exporting to bitmap and for rasterization of filters in PS/" "EPS/PDF (default 96)" msgstr "" +"Resolução para exportar para imagem bitmap e para rasterização de filtros em " +"PS/EPS/PDF (padrão 96)" #: ../src/main.cpp:331 ../src/ui/widget/rendering-options.cpp:37 msgid "DPI" msgstr "DPI" #: ../src/main.cpp:335 -#, fuzzy msgid "" "Exported area in SVG user units (default is the page; 0,0 is lower-left " "corner)" msgstr "" -"Ãrea exportada em unidades de utilizador SVG (padrão é todo o desenho, 0,0 é " -"o canto esquerdo inferior)" +"Ãrea exportada em unidades de utilizador SVG (padrão é a página; 0,0 é o " +"canto esquerdo inferior)" #: ../src/main.cpp:336 msgid "x0:y0:x1:y1" msgstr "x0:y0:x1:y1" #: ../src/main.cpp:340 -#, fuzzy msgid "Exported area is the entire drawing (not page)" -msgstr "A área exportada é o desenho inteiro (não a Ecrã de pintura)" +msgstr "A área exportada é o desenho inteiro (não a página)" #: ../src/main.cpp:345 -#, fuzzy msgid "Exported area is the entire page" -msgstr "A área exportada é toda a Ecrã de pintura" +msgstr "A área exportada é a página inteira" #: ../src/main.cpp:350 msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" msgstr "" +"Apenas para PS/EPS/PDF, define a margem em mm à volta da área exportada " +"(padrão 0)" #: ../src/main.cpp:351 ../src/main.cpp:393 msgid "VALUE" @@ -12746,12 +11836,12 @@ msgid "" "Snap the bitmap export area outwards to the nearest integer values (in SVG " "user units)" msgstr "" -"Copie a imagem exportada para a área de transferência mantendo os valores " -"inteiros (no SVG com unidades do utilizador)" +"Atrair a área de exportar a imagem bitmap para fora para os valores inteiros " +"mais próximos (em unidades de utilizador SVG)" #: ../src/main.cpp:360 msgid "The width of exported bitmap in pixels (overrides export-dpi)" -msgstr "A largura da figura exportada em pixels (sobrescreve export-dpi)" +msgstr "A largura da imagem exportada em píxeis (prioridade a export-dpi)" #: ../src/main.cpp:361 msgid "WIDTH" @@ -12759,7 +11849,7 @@ msgstr "LARGURA" #: ../src/main.cpp:365 msgid "The height of exported bitmap in pixels (overrides export-dpi)" -msgstr "A altura da figura exportada em pixels (sobrescreve export-dpi)" +msgstr "A altura da imagem exportada em píxeis (prioridade a export-dpi)" #: ../src/main.cpp:366 msgid "HEIGHT" @@ -12767,7 +11857,7 @@ msgstr "ALTURA" #: ../src/main.cpp:370 msgid "The ID of the object to export" -msgstr "O ID do objecto para exportar" +msgstr "O ID do objeto para exportar" #: ../src/main.cpp:371 ../src/main.cpp:484 #: ../src/ui/dialog/inkscape-preferences.cpp:1569 @@ -12780,18 +11870,20 @@ msgstr "ID" msgid "" "Export just the object with export-id, hide all others (only with export-id)" msgstr "" -"Exportar somente o objecto com id-exportação, esconder todos os outros " -"(somente com id-exportação)" +"Exportar apenas o objeto com export-id, ocultar todos os outros (apenas com " +"export-id)" #: ../src/main.cpp:382 msgid "Use stored filename and DPI hints when exporting (only with export-id)" msgstr "" -"Usar nome de ficheiro armazenado e dicas de DPI ao exportar (somente com id-" -"exportação)" +"Usar nome de ficheiro armazenado e dicas de DPI ao exportar (apenas com " +"export-id)" #: ../src/main.cpp:387 msgid "Background color of exported bitmap (any SVG-supported color string)" -msgstr "Cor de fundo da figura exportada (qualquer palavra de cor do SVG)" +msgstr "" +"Cor de fundo da imagem bitmap exportada (qualquer expressão de cor suportada " +"pelo SVG)" #: ../src/main.cpp:388 msgid "COLOR" @@ -12799,17 +11891,18 @@ msgstr "COR" #: ../src/main.cpp:392 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" -msgstr "Opacidade do fundo da figura exportada (De 0 a 1, ou 1 a 255)" +msgstr "" +"Opacidade do fundo da imagem bitmap exportada (quer 0.0 a 1.0, ou 1 a 255)" #: ../src/main.cpp:397 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" msgstr "" -"Exportar o desenho para um ficheiro SVG simples (sem namespaces sodipodi ou " -"inkscape)" +"Exportar o documento para um ficheiro SVG simples (plain SVG, sem nomes de " +"espaço sodipodi ou inkscape)" #: ../src/main.cpp:402 msgid "Export document to a PS file" -msgstr "Exportar documento para um ficheiro PS" +msgstr "Exportar documento para um ficheiro PostScript" #: ../src/main.cpp:407 msgid "Export document to an EPS file" @@ -12820,11 +11913,12 @@ msgid "" "Choose the PostScript Level used to export. Possible choices are 2 and 3 " "(the default)" msgstr "" +"Escolher o Nível PostScript usado para exportar. Pode ser o nível 2 ou 3 " +"(padrão)" #: ../src/main.cpp:414 -#, fuzzy msgid "PS Level" -msgstr "Nível" +msgstr "Nível PS" #: ../src/main.cpp:418 msgid "Export document to a PDF file" @@ -12836,10 +11930,13 @@ msgid "" "Export PDF to given version. (hint: make sure to input the exact string " "found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)" msgstr "" +"Exportar o PDF na versão especificada. Dica: confirme se introduziu a " +"expressão exata encontrada na janela de exportar PDF, por exemplo \"PDF " +"1.4\" que está de acordo com a especificação PDF-a." #: ../src/main.cpp:425 msgid "PDF_VERSION" -msgstr "" +msgstr "VERSAO_PDF" #: ../src/main.cpp:429 msgid "" @@ -12847,26 +11944,29 @@ msgid "" "exported, putting the text on top of the PDF/PS/EPS file. Include the result " "in LaTeX like: \\input{latexfile.tex}" msgstr "" +"Exportar PDF/PS/EPS sem texto. Para além do PDF/PS/EPS, também é exportado " +"um ficheiro LaTeX, colocando o texto no topo do ficheiro PDF/PS/EPS. Incluir " +"o resultado no LaTeX como: \\input{latexfile.tex}" #: ../src/main.cpp:434 msgid "Export document to an Enhanced Metafile (EMF) File" msgstr "Exportar documento para um ficheiro Enhanced Metafile (EMF)" #: ../src/main.cpp:439 -#, fuzzy msgid "Export document to a Windows Metafile (WMF) File" -msgstr "Exportar documento para um ficheiro Enhanced Metafile (EMF)" +msgstr "Exportar documento para um ficheiro Windows Metafile (WMF)" #: ../src/main.cpp:444 -#, fuzzy msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" -msgstr "Converter texto em objectos ao exportar (EPS)" +msgstr "Converter texto em caminhos ao exportar (PS, EPS, PDF, SVG)" #: ../src/main.cpp:449 msgid "" "Render filtered objects without filters, instead of rasterizing (PS, EPS, " "PDF)" msgstr "" +"Renderizar objetos filtrados sem filtros, em vez de rasterização (PS, EPS, " +"PDF)" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" #: ../src/main.cpp:455 @@ -12874,7 +11974,7 @@ msgid "" "Query the X coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "" -"Perguntar as coordenadas X do desenho ou, se especificado, do objecto com --" +"Perguntar as coordenadas X do desenho ou, se especificado, do objeto com --" "query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" @@ -12883,7 +11983,7 @@ msgid "" "Query the Y coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "" -"Perguntar as coordenadas Y do desenho ou, se especificado, do objecto com --" +"Perguntar as coordenadas Y do desenho ou, se especificado, do objeto com --" "query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" @@ -12892,8 +11992,7 @@ msgid "" "Query the width of the drawing or, if specified, of the object with --query-" "id" msgstr "" -"Peguntar a largura de um desenho ou, se especificado, do objecto com --query-" -"id" +"Perguntar a largura do desenho ou, se especificado, do objeto com --query-id" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" #: ../src/main.cpp:473 @@ -12901,39 +12000,40 @@ msgid "" "Query the height of the drawing or, if specified, of the object with --query-" "id" msgstr "" -"Perguntar a largura de um desenho ou, se especificado, do objecto com --" -"query-id" +"Perguntar a altura do desenho ou, se especificado, do objeto com --query-id" #: ../src/main.cpp:478 msgid "List id,x,y,w,h for all objects" -msgstr "" +msgstr "Listar id,x,y,w,h para todos os objetos" #: ../src/main.cpp:483 msgid "The ID of the object whose dimensions are queried" -msgstr "O ID do objecto cujas dimensões são pesquisadas" +msgstr "O ID do objeto cujas dimensões são consultadas" #. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory #: ../src/main.cpp:489 msgid "Print out the extension directory and exit" -msgstr "Imprime o diretório das extensões e sai" +msgstr "Imprimir a pasta das extensões e sair" #: ../src/main.cpp:494 msgid "Remove unused definitions from the defs section(s) of the document" -msgstr "Eliminar definições não usadas da(s) seção(ões) do documento" +msgstr "Eliminar definições não usadas das secções do documento" #: ../src/main.cpp:500 msgid "Enter a listening loop for D-Bus messages in console mode" -msgstr "" +msgstr "Introduzir um ciclo de escuta para as mensagens D-Bus no modo terminal" #: ../src/main.cpp:505 msgid "" "Specify the D-Bus bus name to listen for messages on (default is org." "inkscape)" msgstr "" +"Especificar o nome do bus D-Bus no qual obter mensagens (o padrão é org." +"inkscape)" #: ../src/main.cpp:506 msgid "BUS-NAME" -msgstr "" +msgstr "NOME-DO-BUS" #: ../src/main.cpp:511 msgid "List the IDs of all the verbs in Inkscape" @@ -12949,15 +12049,15 @@ msgstr "VERBO-ID" #: ../src/main.cpp:521 msgid "Object ID to select when Inkscape opens." -msgstr "ID do objecto para selecionar quando o Inkscape abrir." +msgstr "ID do objeto para selecionar quando o Inkscape abrir." #: ../src/main.cpp:522 msgid "OBJECT-ID" -msgstr "OBJECTO-ID" +msgstr "OBJETO-ID" #: ../src/main.cpp:526 msgid "Start Inkscape in interactive shell mode." -msgstr "" +msgstr "Iniciar o Inkscape com a consola interativa" #: ../src/main.cpp:876 ../src/main.cpp:1349 msgid "" @@ -12989,9 +12089,8 @@ msgid "Clo_ne" msgstr "Clo_nar" #: ../src/menus-skeleton.h:79 -#, fuzzy msgid "Select Sa_me" -msgstr "Selecionar página:" +msgstr "Selecionar _Iguais" #: ../src/menus-skeleton.h:100 msgid "_View" @@ -12999,27 +12098,26 @@ msgstr "_Ver" #: ../src/menus-skeleton.h:101 msgid "_Zoom" -msgstr "_Zoom" +msgstr "_Aproximar/Afastar" #: ../src/menus-skeleton.h:117 msgid "_Display mode" -msgstr "_Modo de visão" +msgstr "_Modo de visualização" #. Better location in menu needs to be found #. " \n" #. " \n" #: ../src/menus-skeleton.h:126 -#, fuzzy msgid "_Color display mode" -msgstr "_Modo de visão" +msgstr "Modo de visualização a _cores" +# Usar "Elementos da Interface" ou similar #. Better location in menu needs to be found #. " \n" #. " \n" #: ../src/menus-skeleton.h:139 -#, fuzzy msgid "Sh_ow/Hide" -msgstr "Mostrar/Esconder" +msgstr "_Elementos da Interface" #. Not quite ready to be in the menus. #. " \n" @@ -13029,19 +12127,19 @@ msgstr "Ca_mada" #: ../src/menus-skeleton.h:183 msgid "_Object" -msgstr "_Objecto" +msgstr "_Objeto" #: ../src/menus-skeleton.h:195 msgid "Cli_p" -msgstr "Cli_p" +msgstr "_Recorte" #: ../src/menus-skeleton.h:199 msgid "Mas_k" -msgstr "Más_cara" +msgstr "_Máscara" #: ../src/menus-skeleton.h:203 msgid "Patter_n" -msgstr "Padrão de preenchime_nto" +msgstr "_Padrão" #: ../src/menus-skeleton.h:227 msgid "_Path" @@ -13053,14 +12151,12 @@ msgid "_Text" msgstr "_Texto" #: ../src/menus-skeleton.h:277 -#, fuzzy msgid "Filter_s" -msgstr "Filtros" +msgstr "_Filtros" #: ../src/menus-skeleton.h:283 -#, fuzzy msgid "Exte_nsions" -msgstr "Extensão \"" +msgstr "E_xtensões" #: ../src/menus-skeleton.h:289 msgid "_Help" @@ -13071,30 +12167,28 @@ msgid "Tutorials" msgstr "Tutoriais" #: ../src/path-chemistry.cpp:63 -#, fuzzy msgid "Select object(s) to combine." -msgstr "Seleccione alguns objectos para levantar." +msgstr "Selecionar objetos a combinar." #: ../src/path-chemistry.cpp:67 msgid "Combining paths..." -msgstr "Combinando caminhos..." +msgstr "A combinar caminhos..." #: ../src/path-chemistry.cpp:177 msgid "Combine" msgstr "Combinar" #: ../src/path-chemistry.cpp:184 -#, fuzzy msgid "No path(s) to combine in the selection." -msgstr "Nenhum caminho para simplificar na selecção." +msgstr "Nenhum caminho para combinar na seleção." #: ../src/path-chemistry.cpp:196 msgid "Select path(s) to break apart." -msgstr "Seleccione o(s) caminho(s) para separar." +msgstr "Selecionar os caminhos a separar." #: ../src/path-chemistry.cpp:200 msgid "Breaking apart paths..." -msgstr "Quebrar caminhos..." +msgstr "Separar caminhos..." #: ../src/path-chemistry.cpp:282 msgid "Break apart" @@ -13102,31 +12196,31 @@ msgstr "Separar" #: ../src/path-chemistry.cpp:285 msgid "No path(s) to break apart in the selection." -msgstr "Nenhum caminho para separar na selecção." +msgstr "Nenhum caminho para separar na seleção." #: ../src/path-chemistry.cpp:295 msgid "Select object(s) to convert to path." -msgstr "Seleccione o(s) objecto(s) para converter para caminho." +msgstr "Selecionar os objetos para converter em caminhos." #: ../src/path-chemistry.cpp:301 msgid "Converting objects to paths..." -msgstr "Convertendo objectos em caminhos..." +msgstr "A converter objetos em caminhos..." #: ../src/path-chemistry.cpp:320 msgid "Object to path" -msgstr "Objecto para Caminho" +msgstr "Converter objeto num caminho" #: ../src/path-chemistry.cpp:322 msgid "No objects to convert to path in the selection." -msgstr "Nenhum objecto para converter para um caminho na selecção." +msgstr "Nenhum objeto selecionado para converter num caminho." #: ../src/path-chemistry.cpp:609 msgid "Select path(s) to reverse." -msgstr "Seleccione um ou mais caminhos para reverter." +msgstr "Selecionar caminhos para reverter." #: ../src/path-chemistry.cpp:618 msgid "Reversing paths..." -msgstr "Revertendo caminhos..." +msgstr "A reverter caminhos..." #: ../src/path-chemistry.cpp:653 msgid "Reverse path" @@ -13134,144 +12228,128 @@ msgstr "Reverter caminho" #: ../src/path-chemistry.cpp:655 msgid "No paths to reverse in the selection." -msgstr "Nenhum caminho para reverter na selecção." +msgstr "Nenhum caminho para reverter na seleção." #: ../src/persp3d.cpp:323 -#, fuzzy msgid "Toggle vanishing point" -msgstr "Criar novo caminho" +msgstr "Alterar ponto de fuga" #: ../src/persp3d.cpp:334 -#, fuzzy msgid "Toggle multiple vanishing points" -msgstr "Criar novo caminho" +msgstr "Alterar pontos de fuga múltiplos" #: ../src/preferences-skeleton.h:102 -#, fuzzy msgid "Dip pen" -msgstr "Script" +msgstr "Bico de pena" #: ../src/preferences-skeleton.h:103 -#, fuzzy msgid "Marker" -msgstr "Mais escuro" +msgstr "Marca no caminho" # Enevoar, desfocar ou borrar? -- krishna #: ../src/preferences-skeleton.h:104 -#, fuzzy msgid "Brush" -msgstr "Desfocar" +msgstr "Pincel" #: ../src/preferences-skeleton.h:105 -#, fuzzy msgid "Wiggly" -msgstr "Ondulação:" +msgstr "Curvoso" #: ../src/preferences-skeleton.h:106 msgid "Splotchy" -msgstr "" +msgstr "Salpicado" #: ../src/preferences-skeleton.h:107 -#, fuzzy msgid "Tracing" -msgstr "Espaçamento" +msgstr "Vetorizar" #: ../src/preferences.cpp:136 -#, fuzzy msgid "" "Inkscape will run with default settings, and new settings will not be saved. " msgstr "" -"O Inkscape funcionará com as configurações padrão.\n" -"Novas configurações não serão salvas." +"O Inkscape funcionará com as configurações padrão e as novas configurações " +"não serão gravadas. " #. the creation failed #. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), #. Glib::filename_to_utf8(_prefs_dir)), not_saved); #: ../src/preferences.cpp:151 -#, fuzzy, c-format +#, c-format msgid "Cannot create profile directory %s." -msgstr "" -"Não foi possível criar a pasta %s.\n" -"%s" +msgstr "Não foi possível criar a pasta %s." #. The profile dir is not actually a directory #. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), #. Glib::filename_to_utf8(_prefs_dir)), not_saved); #: ../src/preferences.cpp:169 -#, fuzzy, c-format +#, c-format msgid "%s is not a valid directory." -msgstr "" -"%s não é uma pasta válida.\n" -"%s" +msgstr "%s não é uma pasta válida." #. The write failed. #. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), #. Glib::filename_to_utf8(_prefs_filename)), not_saved); #: ../src/preferences.cpp:180 -#, fuzzy, c-format +#, c-format msgid "Failed to create the preferences file %s." -msgstr "Falha ao carregar o ficheiro %s" +msgstr "Não foi possível criar o ficheiro das preferências %s." #: ../src/preferences.cpp:216 -#, fuzzy, c-format +#, c-format msgid "The preferences file %s is not a regular file." -msgstr "" -"%s não é um ficheiro comum.\n" -"%s" +msgstr "O ficheiro de preferências %s não é um ficheiro comum." #: ../src/preferences.cpp:226 -#, fuzzy, c-format +#, c-format msgid "The preferences file %s could not be read." -msgstr "O ficheiro %s não pode ser salvo." +msgstr "Não foi possível ler o ficheiro das preferências %s." #: ../src/preferences.cpp:237 #, c-format msgid "The preferences file %s is not a valid XML document." -msgstr "" +msgstr "O ficheiro de preferências %s não é um ficheiro XML válido." #: ../src/preferences.cpp:246 -#, fuzzy, c-format +#, c-format msgid "The file %s is not a valid Inkscape preferences file." -msgstr "" -"%s não é um ficheiro de configurações válido.\n" -"%s" +msgstr "O ficheiro %s não é um ficheiro de preferências do Inkscape válido." #: ../src/rdf.cpp:175 msgid "CC Attribution" -msgstr "Atribuição CC" +msgstr "CC BY: Atribuição" #: ../src/rdf.cpp:180 msgid "CC Attribution-ShareAlike" -msgstr "CC Atribuição-Compatilhamento pela mesma licença" +msgstr "CC BY-SA: Atribuição-Compatilhamento Pela Mesma Licença" #: ../src/rdf.cpp:185 msgid "CC Attribution-NoDerivs" -msgstr "CC Atribuição-NãoDerivados" +msgstr "CC BY-ND: Atribuição-NãoDerivados" #: ../src/rdf.cpp:190 msgid "CC Attribution-NonCommercial" -msgstr "CC Atribuição-NãoComercial" +msgstr "CC BY-NC: Atribuição-NãoComercial" #: ../src/rdf.cpp:195 msgid "CC Attribution-NonCommercial-ShareAlike" -msgstr "CC Atribuição-NãoComercial-Compatilhamento pela mesma licença" +msgstr "" +"CC BY-NC-SA: Atribuição-NãoComercial-Compatilhamento Pela Mesma Licença" #: ../src/rdf.cpp:200 msgid "CC Attribution-NonCommercial-NoDerivs" -msgstr "CC Atribuição-NãoComercial-NãoDerivados" +msgstr "CC BY-NC-ND: Atribuição-NãoComercial-NãoDerivados" #: ../src/rdf.cpp:205 -#, fuzzy msgid "CC0 Public Domain Dedication" -msgstr "Domínio Público" +msgstr "CC0: Dedicação ao Domínio Público" #: ../src/rdf.cpp:210 msgid "FreeArt" -msgstr "ArteLivre" +msgstr "Arte Livre (Art Libre)" #: ../src/rdf.cpp:215 msgid "Open Font License" -msgstr "Licença Open Font" +msgstr "Licença de Fonte Tipográfica Aberta (SIL Open Font License)" #. Create the Title label and edit control #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute @@ -13282,7 +12360,7 @@ msgstr "Título:" #: ../src/rdf.cpp:236 msgid "A name given to the resource" -msgstr "" +msgstr "Nome fornecido ao recurso" #: ../src/rdf.cpp:238 msgid "Date:" @@ -13292,7 +12370,7 @@ msgstr "Data:" msgid "" "A point or period of time associated with an event in the lifecycle of the " "resource" -msgstr "" +msgstr "Data ou período de tempo associado a este documento" #: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 msgid "Format:" @@ -13300,39 +12378,35 @@ msgstr "Formato:" #: ../src/rdf.cpp:242 msgid "The file format, physical medium, or dimensions of the resource" -msgstr "" +msgstr "O formato do ficheiro, meio físico ou dimensões deste documento" #: ../src/rdf.cpp:245 msgid "The nature or genre of the resource" -msgstr "" +msgstr "Natureza ou género do recurso" #: ../src/rdf.cpp:248 msgid "Creator:" msgstr "Autor:" #: ../src/rdf.cpp:249 -#, fuzzy msgid "An entity primarily responsible for making the resource" -msgstr "" -"Nome da entidade responsável pela elaboração do conteúdo deste desenho." +msgstr "Nome da entidade responsável pela elaboração deste documento" #: ../src/rdf.cpp:251 -#, fuzzy msgid "Rights:" msgstr "Direitos:" #: ../src/rdf.cpp:252 msgid "Information about rights held in and over the resource" -msgstr "" +msgstr "Informação sobre os direitos sobre o documento" #: ../src/rdf.cpp:254 msgid "Publisher:" msgstr "Publicador:" #: ../src/rdf.cpp:255 -#, fuzzy msgid "An entity responsible for making the resource available" -msgstr "Nome da entidade responsável por fazer este desenho disponível." +msgstr "Nome da entidade responsável por tornar este documento disponível" #: ../src/rdf.cpp:258 msgid "Identifier:" @@ -13340,43 +12414,39 @@ msgstr "Identificador:" #: ../src/rdf.cpp:259 msgid "An unambiguous reference to the resource within a given context" -msgstr "" +msgstr "Referência inequívoca do documento" #: ../src/rdf.cpp:262 msgid "A related resource from which the described resource is derived" -msgstr "" +msgstr "Um recurso relacionado do qual o documento é derivado" #: ../src/rdf.cpp:264 -#, fuzzy msgid "Relation:" -msgstr "Relação" +msgstr "Relação:" #: ../src/rdf.cpp:265 -#, fuzzy msgid "A related resource" -msgstr "_Modo misturar:" +msgstr "Recurso relacionado com este documento" #: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1925 msgid "Language:" -msgstr "Linguagem:" +msgstr "Língua:" #: ../src/rdf.cpp:268 msgid "A language of the resource" -msgstr "" +msgstr "Idioma do documento" #: ../src/rdf.cpp:270 -#, fuzzy msgid "Keywords:" -msgstr "Palavras chave" +msgstr "Palavras-chave:" #: ../src/rdf.cpp:271 msgid "The topic of the resource" -msgstr "" +msgstr "Palavras-chave principais que descrevam o documento" #. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. #. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ #: ../src/rdf.cpp:275 -#, fuzzy msgid "Coverage:" msgstr "Cobertura:" @@ -13385,55 +12455,49 @@ msgid "" "The spatial or temporal topic of the resource, the spatial applicability of " "the resource, or the jurisdiction under which the resource is relevant" msgstr "" +"Características espaciais ou temporais: se o conteúdo do documento está " +"relacionado com determinado sítio geográfico a nível de coordenadas ou nome " +"do local e/ou a uma data ou intervalo de datas no tempo." #: ../src/rdf.cpp:279 -#, fuzzy msgid "Description:" -msgstr "Descrição" +msgstr "Descrição:" #: ../src/rdf.cpp:280 -#, fuzzy msgid "An account of the resource" -msgstr "Uma esplicação curta para o conteúdo deste desenho." +msgstr "Uma esplicação curta para o conteúdo deste documento" #. FIXME: need to handle 1 agent per line of input #: ../src/rdf.cpp:284 -#, fuzzy msgid "Contributors:" -msgstr "Contribuidores" +msgstr "Contribuidores:" #: ../src/rdf.cpp:285 -#, fuzzy msgid "An entity responsible for making contributions to the resource" -msgstr "" -"Nome das entidades responsáveis por contribuições ao conteúdo deste desenho." +msgstr "Nome das entidades que contribuiram para o documento" #. TRANSLATORS: URL to a page that defines the license for the document #: ../src/rdf.cpp:289 -#, fuzzy msgid "URI:" -msgstr "URL" +msgstr "URL:" #. TRANSLATORS: this is where you put a URL to a page that defines the license #: ../src/rdf.cpp:291 -#, fuzzy msgid "URI to this document's license's namespace definition" -msgstr "URL da definição de espaço de nome da licença deste desenho." +msgstr "URL da descrição da licença" #. TRANSLATORS: fragment of XML representing the license of the document #: ../src/rdf.cpp:295 -#, fuzzy msgid "Fragment:" -msgstr "Fragmento" +msgstr "Fragmento:" #: ../src/rdf.cpp:296 -#, fuzzy msgid "XML fragment for the RDF 'License' section" -msgstr "Fragmento XML para a seção 'Licença' RDF." +msgstr "Fragmento XML para a secção 'Licença' RDF" #: ../src/resource-manager.cpp:336 msgid "Fixup broken links" -msgstr "" +msgstr "Corrigir ligações quebradas" #: ../src/selection-chemistry.cpp:401 msgid "Delete text" @@ -13441,7 +12505,7 @@ msgstr "Eliminar texto" #: ../src/selection-chemistry.cpp:409 msgid "Nothing was deleted." -msgstr "Nada foi apagado." +msgstr "Nada foi eliminado." #: ../src/selection-chemistry.cpp:426 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 @@ -13455,12 +12519,12 @@ msgstr "Eliminar" #: ../src/selection-chemistry.cpp:454 msgid "Select object(s) to duplicate." -msgstr "Seleccione alguns objectos para duplicar." +msgstr "Selecionar objetos para duplicar." #: ../src/selection-chemistry.cpp:551 #, c-format msgid "%s copy" -msgstr "" +msgstr "%s cópia" #: ../src/selection-chemistry.cpp:574 msgid "Delete all" @@ -13468,36 +12532,32 @@ msgstr "Eliminar tudo" #: ../src/selection-chemistry.cpp:762 msgid "Select some objects to group." -msgstr "Seleccione dois ou mais objectos para agrupar." +msgstr "Selecionar alguns objetos para agrupar." #: ../src/selection-chemistry.cpp:775 -#, fuzzy msgctxt "Verb" msgid "Group" msgstr "Agrupar" #: ../src/selection-chemistry.cpp:798 -#, fuzzy msgid "No objects selected to pop out of group." -msgstr "Nenhum objecto seleccionado para obter o estilo." +msgstr "Nenhum objeto selecionado para destacar do grupo." #: ../src/selection-chemistry.cpp:808 -#, fuzzy msgid "Selection not in a group." -msgstr "Seleccione um grupo para desagrupar." +msgstr "A seleção não está num grupo." #: ../src/selection-chemistry.cpp:822 -#, fuzzy msgid "Pop selection from group" -msgstr "A selecção não possui efeito de caminho aplicado." +msgstr "Destacar a seleção do grupo" #: ../src/selection-chemistry.cpp:830 msgid "Select a group to ungroup." -msgstr "Seleccione um grupo para desagrupar." +msgstr "Selecionar um grupo para desagrupar." #: ../src/selection-chemistry.cpp:845 msgid "No groups to ungroup in the selection." -msgstr "Nenhum grupo para desagrupar na selecção." +msgstr "Nenhum grupo para desagrupar na seleção." #: ../src/selection-chemistry.cpp:901 ../src/sp-item-group.cpp:550 #: ../src/ui/dialog/objects.cpp:1916 @@ -13506,49 +12566,47 @@ msgstr "Desagrupar" #: ../src/selection-chemistry.cpp:988 msgid "Select object(s) to raise." -msgstr "Seleccione alguns objectos para levantar." +msgstr "Selecionar objetos para levantar." #: ../src/selection-chemistry.cpp:994 ../src/selection-chemistry.cpp:1047 #: ../src/selection-chemistry.cpp:1073 ../src/selection-chemistry.cpp:1131 msgid "" "You cannot raise/lower objects from different groups or layers." msgstr "" -"Você não pode levantar/baixar objectos de diferentes grupos ou camadas." +"Não se pode levantar/baixar objetos de diferentes grupos ou " +"camadas." #. TRANSLATORS: "Raise" means "to raise an object" in the undo history #: ../src/selection-chemistry.cpp:1031 -#, fuzzy msgctxt "Undo action" msgid "Raise" msgstr "Levantar" #: ../src/selection-chemistry.cpp:1039 msgid "Select object(s) to raise to top." -msgstr "Seleccione alguns objectos para levantar até o topo." +msgstr "Selecionar objetos para levantar até o topo." #: ../src/selection-chemistry.cpp:1060 msgid "Raise to top" -msgstr "Levantar até o Topo" +msgstr "Levantar até ao topo" #: ../src/selection-chemistry.cpp:1067 msgid "Select object(s) to lower." -msgstr "Seleccione alguns objectos para baixar." +msgstr "Selecionar objetos para baixar." #. TRANSLATORS: "Lower" means "to lower an object" in the undo history #: ../src/selection-chemistry.cpp:1115 -#, fuzzy msgctxt "Undo action" msgid "Lower" -msgstr "Abai_xar" +msgstr "Abaixar" #: ../src/selection-chemistry.cpp:1123 msgid "Select object(s) to lower to bottom." -msgstr "Seleccione alguns objectos para baixar até o fundo." +msgstr "Selecione os objetos para baixar até o fundo." #: ../src/selection-chemistry.cpp:1154 msgid "Lower to bottom" -msgstr "A_baixar até o Fundo" +msgstr "Abaixar até o fundo" #: ../src/selection-chemistry.cpp:1164 msgid "Nothing to undo." @@ -13568,22 +12626,20 @@ msgstr "Colar estilo" #: ../src/selection-chemistry.cpp:1265 msgid "Paste live path effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Colar efeitos no caminho em tempo real" #: ../src/selection-chemistry.cpp:1287 -#, fuzzy msgid "Select object(s) to remove live path effects from." -msgstr "Seleccione objecto(s) para colar caminhos de efeito ao vivo." +msgstr "" +"Selecionar os objetos para remover efeitos no caminho em tempo real." #: ../src/selection-chemistry.cpp:1299 -#, fuzzy msgid "Remove live path effect" -msgstr "Remover efeito de caminho" +msgstr "Remover efeitos no caminho em tempo real" #: ../src/selection-chemistry.cpp:1310 -#, fuzzy msgid "Select object(s) to remove filters from." -msgstr "Seleccione texto(s) para remover kerns." +msgstr "Selecionar os objetos para remover os filtros deles." #: ../src/selection-chemistry.cpp:1320 #: ../src/ui/dialog/filter-effects-dialog.cpp:1695 @@ -13600,11 +12656,11 @@ msgstr "Colar tamanho separadamente" #: ../src/selection-chemistry.cpp:1367 msgid "Select object(s) to move to the layer above." -msgstr "Seleccione objecto(s) para mover para a camada acima." +msgstr "Selecionar os objetos a mover para a camada acima." #: ../src/selection-chemistry.cpp:1393 msgid "Raise to next layer" -msgstr "Mover para a próxima camada" +msgstr "Subir para a próxima camada" #: ../src/selection-chemistry.cpp:1400 msgid "No more layers above." @@ -13612,72 +12668,68 @@ msgstr "Não há mais camadas acima." #: ../src/selection-chemistry.cpp:1411 msgid "Select object(s) to move to the layer below." -msgstr "Seleccione objecto(s) para mover para a camada abaixo." +msgstr "Selecionar objetos a mover para a camada abaixo." #: ../src/selection-chemistry.cpp:1437 msgid "Lower to previous layer" -msgstr "Mover para a camada anterior" +msgstr "Baixar para a camada anterior" #: ../src/selection-chemistry.cpp:1444 msgid "No more layers below." msgstr "Não há mais camadas abaixo." #: ../src/selection-chemistry.cpp:1454 -#, fuzzy msgid "Select object(s) to move." -msgstr "Seleccione alguns objectos para baixar." +msgstr "Selecionar os objetos a mover." #: ../src/selection-chemistry.cpp:1472 ../src/verbs.cpp:2658 -#, fuzzy msgid "Move selection to layer" -msgstr "Mo_ver selecção para a Camada Acima" +msgstr "Mover seleção para a camada" #. An SVG element cannot have a transform. We could change 'x' and 'y' in response #. to a translation... but leave that for another day. #: ../src/selection-chemistry.cpp:1561 ../src/seltrans.cpp:391 msgid "Cannot transform an embedded SVG." -msgstr "" +msgstr "Não é possível transformar um SVG embutido." #: ../src/selection-chemistry.cpp:1731 msgid "Remove transform" msgstr "Remover transformações" #: ../src/selection-chemistry.cpp:1838 -#, fuzzy msgid "Rotate 90° CCW" -msgstr "Girar 90° (sentido anti-horário)" +msgstr "Rodar 90° (sentido anti-horário)" #: ../src/selection-chemistry.cpp:1838 -#, fuzzy msgid "Rotate 90° CW" -msgstr "Girar 90° (sentido horário)" +msgstr "Rodar 90° (sentido horário)" #: ../src/selection-chemistry.cpp:1859 ../src/seltrans.cpp:484 #: ../src/ui/dialog/transformation.cpp:890 msgid "Rotate" -msgstr "Girar" +msgstr "Rodar" #: ../src/selection-chemistry.cpp:2208 msgid "Rotate by pixels" -msgstr "Girar por pixels" +msgstr "Rodar por píxeis" #: ../src/selection-chemistry.cpp:2238 ../src/seltrans.cpp:481 #: ../src/ui/dialog/transformation.cpp:864 ../src/ui/widget/page-sizer.cpp:450 #: ../share/extensions/interp_att_g.inx.h:14 msgid "Scale" -msgstr "Ampliar" +msgstr "Dimensionar" #: ../src/selection-chemistry.cpp:2263 msgid "Scale by whole factor" -msgstr "Escalar por um fator inteiro" +msgstr "Dimensionar por um fator inteiro" #: ../src/selection-chemistry.cpp:2278 msgid "Move vertically" -msgstr "Mover verticalmente" +msgstr "Mover na vertical" #: ../src/selection-chemistry.cpp:2281 msgid "Move horizontally" -msgstr "Mover horizontalmente" +msgstr "Mover na horizontal" #: ../src/selection-chemistry.cpp:2284 ../src/selection-chemistry.cpp:2310 #: ../src/seltrans.cpp:478 ../src/ui/dialog/transformation.cpp:801 @@ -13686,54 +12738,50 @@ msgstr "Mover" #: ../src/selection-chemistry.cpp:2304 msgid "Move vertically by pixels" -msgstr "Mover verticalmente em pixels" +msgstr "Mover verticalmente em píxeis" #: ../src/selection-chemistry.cpp:2307 msgid "Move horizontally by pixels" -msgstr "Mover horizontalmente em pixels" +msgstr "Mover horizontalmente em píxeis" #: ../src/selection-chemistry.cpp:2510 msgid "The selection has no applied path effect." -msgstr "A selecção não possui efeito de caminho aplicado." +msgstr "A seleção não tem nenhum efeito no caminho aplicado." #: ../src/selection-chemistry.cpp:2602 ../src/ui/dialog/clonetiler.cpp:2238 msgid "Select an object to clone." -msgstr "Seleccione um objecto para clonar." +msgstr "Selecionar um objeto para clonar." #: ../src/selection-chemistry.cpp:2637 -#, fuzzy msgctxt "Action" msgid "Clone" -msgstr "Clones" +msgstr "Clone" #: ../src/selection-chemistry.cpp:2651 -#, fuzzy msgid "Select clones to relink." -msgstr "Selecionar um clone para romper a ligação." +msgstr "Selecionar clones para religar." #: ../src/selection-chemistry.cpp:2658 -#, fuzzy msgid "Copy an object to clipboard to relink clones to." -msgstr "Seleccione um objecto para clonar." +msgstr "" +"Copiar um objeto para a área de transferência para o qual religar os " +"clones." #: ../src/selection-chemistry.cpp:2679 -#, fuzzy msgid "No clones to relink in the selection." -msgstr "Nenhum clone para romper a ligação na selecção." +msgstr "Nenhum clone a religar na seleção." #: ../src/selection-chemistry.cpp:2682 -#, fuzzy msgid "Relink clone" -msgstr "Desligar clone" +msgstr "Religar clone" #: ../src/selection-chemistry.cpp:2696 -#, fuzzy msgid "Select clones to unlink." -msgstr "Selecionar um clone para romper a ligação." +msgstr "Selecionar os clones para desligar." #: ../src/selection-chemistry.cpp:2749 msgid "No clones to unlink in the selection." -msgstr "Nenhum clone para romper a ligação na selecção." +msgstr "Nenhum clone para retirar a ligação na seleção." #: ../src/selection-chemistry.cpp:2753 msgid "Unlink clone" @@ -13745,125 +12793,117 @@ msgid "" "to go to its source. Select a text on path to go to the path. Select " "a flowed text to go to its frame." msgstr "" -"Selecionar um clone para ir para seu original. Seleccione uma " -"tipografia ligada para ir para sua fonte. Seleccione um texto em " -"caminho pra ir para o caminho. Seleccione uma caixa de texto para " -"ir à sua moldura." +"Selecionar um clone para ir para o seu original. Selecionar uma " +"deslocamento ligado para ir para a sua fonte. Selecionar um texto " +"fluido para ir para a sua moldura." #: ../src/selection-chemistry.cpp:2816 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" msgstr "" -"Não foi encontrado o objecto para selecionar (clone órfão, tipografia " -"ou texto flutuante?)" +"Não foi possível encontrar o objeto para selecionar (clone órfão, " +"deslocamento, texto no caminho, texto fluido?)" #: ../src/selection-chemistry.cpp:2822 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" msgstr "" -"O objecto que está tentando selecionar não está visível (está no " -"<defs>)" +"O objeto que está a tentar selecionar não está visível (está em <" +"defs>)" #: ../src/selection-chemistry.cpp:2912 -#, fuzzy msgid "Select path(s) to fill." -msgstr "Seleccione algum caminho para simplificar." +msgstr "Selecionar caminhos para preencher." #: ../src/selection-chemistry.cpp:2930 msgid "Select object(s) to convert to marker." -msgstr "Seleccione um ou mais objectos para converter para marcador." +msgstr "Selecionar objetos para converter em marcador." #: ../src/selection-chemistry.cpp:3004 msgid "Objects to marker" -msgstr "Objectos para marcador" +msgstr "Objetos para marcador" #: ../src/selection-chemistry.cpp:3030 -#, fuzzy msgid "Select object(s) to convert to guides." -msgstr "Seleccione um ou mais objectos para converter para marcador." +msgstr "Selecionar objetos a converter em guias." #: ../src/selection-chemistry.cpp:3051 -#, fuzzy msgid "Objects to guides" -msgstr "Objectos para marcador" +msgstr "Objetos para guias" #: ../src/selection-chemistry.cpp:3087 -#, fuzzy msgid "Select objects to convert to symbol." -msgstr "Seleccione um ou mais objectos para converter para marcador." +msgstr "Selecionar objetos a converter em símbolo." #: ../src/selection-chemistry.cpp:3188 msgid "Group to symbol" -msgstr "" +msgstr "Grupo para símbolo" #: ../src/selection-chemistry.cpp:3207 -#, fuzzy msgid "Select a symbol to extract objects from." -msgstr "" -"Seleccione um objecto com padrão de preenchimento para extrair " -"objectos dele." +msgstr "Selecionar um objeto para extrair os objetos dele." #: ../src/selection-chemistry.cpp:3216 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" +"Selecionar apenas 1 símbolo na janela de Símbolos para converter num " +"grupo." #: ../src/selection-chemistry.cpp:3272 msgid "Group from symbol" -msgstr "" +msgstr "Grupo do símbolo" #: ../src/selection-chemistry.cpp:3290 msgid "Select object(s) to convert to pattern." -msgstr "Seleccione um ou mais objectos para converter em padrão." +msgstr "Selecionar objetos para converter em padrão." #: ../src/selection-chemistry.cpp:3386 msgid "Objects to pattern" -msgstr "Objecto para padrão" +msgstr "Converter em padrão" #: ../src/selection-chemistry.cpp:3402 msgid "Select an object with pattern fill to extract objects from." msgstr "" -"Seleccione um objecto com padrão de preenchimento para extrair " -"objectos dele." +"Selecionar um objeto com padrão no preenchimento para extrair os " +"objetos dele." #: ../src/selection-chemistry.cpp:3461 msgid "No pattern fills in the selection." -msgstr "Nenhum preenchimento com padrões de preenchimento na selecção." +msgstr "Nenhum objeto selecionado tem padrão no preenchimento." #: ../src/selection-chemistry.cpp:3464 msgid "Pattern to objects" -msgstr "Padrão para objecto" +msgstr "Padrão para objetos" #: ../src/selection-chemistry.cpp:3550 msgid "Select object(s) to make a bitmap copy." -msgstr "Seleccione alguns objectos para levantar até o topo." +msgstr "Selecionar objetos para fazer uma cópia da imagem bitmap." #: ../src/selection-chemistry.cpp:3554 -#, fuzzy msgid "Rendering bitmap..." -msgstr "Revertendo caminhos..." +msgstr "A renderizar imagem bitmap..." #: ../src/selection-chemistry.cpp:3739 msgid "Create bitmap" -msgstr "Criar bitmap" +msgstr "Criar imagem bitmap" #: ../src/selection-chemistry.cpp:3764 ../src/selection-chemistry.cpp:3876 msgid "Select object(s) to create clippath or mask from." msgstr "" -"Seleccione o(s) objecto(s) para criar um clippath ou uma máscara a " -"partir dele(s)." +"Selecionar os objetos para criar um caminho recortado ou uma máscara " +"a partir deles." #: ../src/selection-chemistry.cpp:3850 ../src/ui/dialog/objects.cpp:1922 -#, fuzzy msgid "Create Clip Group" -msgstr "Criar Clo_ne" +msgstr "Criar Grupo de Caminhos Recortados" #: ../src/selection-chemistry.cpp:3879 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -"Seleccione objecto máscara e o(s) objecto(s) para onde será colado o " -"estilo." +"Selecionar o objeto máscara e os objetos para aplicar o recorte ou a " +"máscara." #: ../src/selection-chemistry.cpp:4026 msgid "Set clipping path" @@ -13875,32 +12915,34 @@ msgstr "Definir máscara" #: ../src/selection-chemistry.cpp:4043 msgid "Select object(s) to remove clippath or mask from." -msgstr "Seleccione o(s) objectos(s) para remover o(s) seu(s) estilo(s)." +msgstr "" +"Selecionar os objetos para remover o caminho recortado ou a máscara " +"deles." #: ../src/selection-chemistry.cpp:4159 msgid "Release clipping path" -msgstr "Soltar caminho recortado" +msgstr "Retirar caminho recortado" #: ../src/selection-chemistry.cpp:4161 msgid "Release mask" -msgstr "Reverter máscara" +msgstr "Retirar máscara" #: ../src/selection-chemistry.cpp:4180 msgid "Select object(s) to fit canvas to." -msgstr "Seleccione objecto(s) para encaixar ao canvas." +msgstr "Selecionar os objetos para encaixar na área de desenho." #. Fit Page #: ../src/selection-chemistry.cpp:4200 ../src/verbs.cpp:3004 msgid "Fit Page to Selection" -msgstr "Ajustar Ecrã à Seleção" +msgstr "Ajustar Página à Seleção" #: ../src/selection-chemistry.cpp:4229 ../src/verbs.cpp:3006 msgid "Fit Page to Drawing" -msgstr "Ajustar Ecrã ao Desenho" +msgstr "Ajustar Página ao Desenho" #: ../src/selection-chemistry.cpp:4250 msgid "Fit Page to Selection or Drawing" -msgstr "Ajustar Ecrã à Seleção ou ao Desenho" +msgstr "Ajustar Página à Seleção ou ao Desenho" #: ../src/selection-describer.cpp:138 msgid "root" @@ -13914,12 +12956,12 @@ msgstr "nenhum" #: ../src/selection-describer.cpp:152 #, c-format msgid "layer %s" -msgstr "na camada %s" +msgstr "camada %s" #: ../src/selection-describer.cpp:154 #, c-format msgid "layer %s" -msgstr "na camada %s" +msgstr "camada %s" #: ../src/selection-describer.cpp:165 #, c-format @@ -13929,95 +12971,93 @@ msgstr "%s" #: ../src/selection-describer.cpp:175 #, c-format msgid " in %s" -msgstr "·em·%s" +msgstr " na %s" #: ../src/selection-describer.cpp:177 -#, fuzzy msgid " hidden in definitions" -msgstr "Prevenir compartilhamento de definições de degradê" +msgstr " oculto nas definições" #: ../src/selection-describer.cpp:179 #, c-format msgid " in group %s (%s)" -msgstr "no grupo %s (%s)" +msgstr " no grupo %s (%s)" #: ../src/selection-describer.cpp:181 -#, fuzzy, c-format +#, c-format msgid " in unnamed group (%s)" -msgstr "no grupo %s (%s)" +msgstr " no grupo sem nome (%s)" #: ../src/selection-describer.cpp:183 -#, fuzzy, c-format +#, c-format msgid " in %i parent (%s)" msgid_plural " in %i parents (%s)" -msgstr[0] "em %i na camada pai (%s)" -msgstr[1] "em %i nas camadas-pai (%s)" +msgstr[0] "em %i camada-pai (%s)" +msgstr[1] "em %i camadas-pai (%s)" #: ../src/selection-describer.cpp:186 -#, fuzzy, c-format +#, c-format msgid " in %i layer" msgid_plural " in %i layers" -msgstr[0] "em %i camada" -msgstr[1] "em %i camadas" +msgstr[0] " em %i camada" +msgstr[1] " em %i camadas" #: ../src/selection-describer.cpp:198 -#, fuzzy msgid "Convert symbol to group to edit" -msgstr "Converter borda do objecto em caminho" +msgstr "Converter símbolo para grupo para poder editá-lo" #: ../src/selection-describer.cpp:202 msgid "Remove from symbols tray to edit symbol" -msgstr "" +msgstr "Remover da lista de símbolos para editar o símbolo" #: ../src/selection-describer.cpp:208 msgid "Use Shift+D to look up original" -msgstr "Use Shift+D para procurar original" +msgstr "Usar Shift+D para procurar o original" #: ../src/selection-describer.cpp:214 msgid "Use Shift+D to look up path" -msgstr "Use Shift+D para procurar caminho" +msgstr "Usar Shift+D para procurar o caminho" #: ../src/selection-describer.cpp:220 msgid "Use Shift+D to look up frame" -msgstr "Use Shift+D para procurar quadro" +msgstr "Usar Shift+D para procurar a moldura" #: ../src/selection-describer.cpp:236 -#, fuzzy, c-format +#, c-format msgid "%1$i objects selected of type %2$s" msgid_plural "%1$i objects selected of types %2$s" -msgstr[0] "%i objecto seleccionado" -msgstr[1] "%i objectos seleccionados" +msgstr[0] "%1$i objeto selecionado do tipo %2$s" +msgstr[1] "%1$i objetos selecionados do tipo %2$s" +# Esta mensagem aparece na linha de estado e pretende indicar que estão aplicados efeitos de Filtros - menu Filtros - nos objetos #: ../src/selection-describer.cpp:246 -#, fuzzy, c-format +#, c-format msgid "; %d filtered object " msgid_plural "; %d filtered objects " -msgstr[0] "%s; clipado" -msgstr[1] "%s; clipado" +msgstr[0] "; %d objeto filtrado " +msgstr[1] "; %d objetos com efeito de Filtro " #: ../src/seltrans-handles.cpp:9 msgid "" "Squeeze or stretch selection; with Ctrl to scale uniformly; " "with Shift to scale around rotation center" msgstr "" -"Espremer ou esticar a selecção; com Ctrl para dimensionar " -"uniformemente; com Shift para dimensionar em redor do centro de " -"rotação" +"Espremer ou esticar a seleção; com Ctrl para dimensionar em " +"proporção; com Shift para dimensionar em redor do centro de rotação" #: ../src/seltrans-handles.cpp:10 msgid "" "Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" msgstr "" -"Dimensionar a selecção; com Ctrl para dimensionar " -"uniformemente;com Shift para dimensionar em redor do centro de rotação" +"Dimensionar a seleção; com Ctrl para dimensionar em proporção; " +"com Shift para dimensionar em redor do centro de rotação" #: ../src/seltrans-handles.cpp:11 msgid "" "Skew selection; with Ctrl to snap angle; with Shift to " "skew around the opposite side" msgstr "" -"Enviesar a selecção; com Ctrl para segurar o ângulo; com " +"Inclinar a seleção; com Ctrl para segurar o ângulo; com " "Shift para enviesar em redor do canto oposto" #: ../src/seltrans-handles.cpp:12 @@ -14025,20 +13065,20 @@ msgid "" "Rotate selection; with Ctrl to snap angle; with Shift " "to rotate around the opposite corner" msgstr "" -"Girar a selecção; com Ctrl para agarrar o ângulo; com " -"Shift para girar em redor do canto oposto" +"Rodar a seleção; com Ctrl para atrair ao ângulo; com Shift para rodar em redor do canto oposto" #: ../src/seltrans-handles.cpp:13 msgid "" "Center of rotation and skewing: drag to reposition; scaling with " "Shift also uses this center" msgstr "" -"Centro de rotação e inclinação: arraste para reposicionar; " +"Centro de rotação e inclinação: arrastar para reposicionar; " "dimensionar com Shift também usa este centro" #: ../src/seltrans.cpp:487 ../src/ui/dialog/transformation.cpp:979 msgid "Skew" -msgstr "Enviesar" +msgstr "Inclinar" #: ../src/seltrans.cpp:501 msgid "Set center" @@ -14050,13 +13090,13 @@ msgstr "Carimbo" #: ../src/seltrans.cpp:723 msgid "Reset center" -msgstr "Redefinir centro" +msgstr "Repor centro" #: ../src/seltrans.cpp:961 ../src/seltrans.cpp:1065 #, c-format msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" msgstr "" -"Dimensionar: %0.2f%% x %0.2f%%; com Ctrl para Bloquear a " +"Dimensionar: %0.2f%% x %0.2f%%; com Ctrl para bloquear a " "proporção" #. TRANSLATORS: don't modify the first ";" @@ -14064,19 +13104,19 @@ msgstr "" #: ../src/seltrans.cpp:1202 #, c-format msgid "Skew: %0.2f°; with Ctrl to snap angle" -msgstr "Enviesamento: %0.2f°; com Ctrl para segurar o ângulo" +msgstr "Inclinar: %0.2f°; com Ctrl para atrair ao ângulo" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) #: ../src/seltrans.cpp:1278 #, c-format msgid "Rotate: %0.2f°; with Ctrl to snap angle" -msgstr "Girar: %0.2f°; com Ctrl para agarrar o ângulo" +msgstr "Rodar: %0.2f°; com Ctrl para atrair ao ângulo" #: ../src/seltrans.cpp:1315 #, c-format msgid "Move center to %s, %s" -msgstr "Move o centro para %s, %s" +msgstr "Mover o centro para %s, %s" #: ../src/seltrans.cpp:1461 #, c-format @@ -14085,42 +13125,38 @@ msgid "" "with Shift to disable snapping" msgstr "" "Mover por %s, %s; com Ctrl para restringir na horizontal/" -"vertical com Shift para desabilitar o agarramento" +"vertical com Shift para desativar a atração" #: ../src/shortcuts.cpp:226 -#, fuzzy, c-format +#, c-format msgid "Keyboard directory (%s) is unavailable." -msgstr "Diretório de paletas (%s) não está disponível." +msgstr "A pasta do teclado (%s) não está disponível." #: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1305 #: ../src/ui/dialog/export.cpp:1339 msgid "Select a filename for exporting" -msgstr "Seleccione um nome de ficheiro para exportar" +msgstr "Selecionar um nome de ficheiro para exportar" #: ../src/shortcuts.cpp:370 -#, fuzzy msgid "Select a file to import" -msgstr "Seleccione o ficheiro para importar" +msgstr "Selecionar um ficheiro a importar" #: ../src/sp-anchor.cpp:111 #, c-format msgid "to %s" -msgstr "" +msgstr "para %s" #: ../src/sp-anchor.cpp:115 -#, fuzzy msgid "without URI" -msgstr "Link sem URI" +msgstr "sem URL" #: ../src/sp-ellipse.cpp:362 -#, fuzzy msgid "Segment" -msgstr "Segmentos de _linha" +msgstr "Segmento" #: ../src/sp-ellipse.cpp:364 -#, fuzzy msgid "Arc" -msgstr "Origem X" +msgstr "Arco" #. Ellipse #: ../src/sp-ellipse.cpp:367 ../src/sp-ellipse.cpp:374 @@ -14135,7 +13171,6 @@ msgstr "Círculo" #. TRANSLATORS: "Flow region" is an area where text is allowed to flow #: ../src/sp-flowregion.cpp:181 -#, fuzzy msgid "Flow Region" msgstr "Região Fluida" @@ -14144,152 +13179,143 @@ msgstr "Região Fluida" #. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and #. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. #: ../src/sp-flowregion.cpp:334 -#, fuzzy msgid "Flow Excluded Region" -msgstr "Fluir região excluida" +msgstr "Região Fluida Excluida" #: ../src/sp-flowtext.cpp:284 -#, fuzzy msgid "Flowed Text" -msgstr "Texto fluído" +msgstr "Texto Fluido" #: ../src/sp-flowtext.cpp:286 -#, fuzzy msgid "Linked Flowed Text" -msgstr "Texto fluído" +msgstr "Texto Fluido Ligado" #: ../src/sp-flowtext.cpp:292 ../src/sp-text.cpp:380 #: ../src/ui/tools/text-tool.cpp:1556 -#, fuzzy msgid " [truncated]" -msgstr "[Inalterado]" +msgstr " [truncado]" #: ../src/sp-flowtext.cpp:294 -#, fuzzy, c-format +#, c-format msgid "(%d character%s)" msgid_plural "(%d characters%s)" -msgstr[0] "Inserir caractere Unicode" -msgstr[1] "Inserir caractere Unicode" +msgstr[0] "(%d caractere%s)" +msgstr[1] "(%d caracteres%s)" -#: ../src/sp-guide.cpp:261 +#: ../src/sp-guide.cpp:262 msgid "Create Guides Around the Page" -msgstr "" +msgstr "Criar Guias à Volta da Página" -#: ../src/sp-guide.cpp:274 ../src/verbs.cpp:2544 -#, fuzzy +#: ../src/sp-guide.cpp:275 ../src/verbs.cpp:2544 msgid "Delete All Guides" -msgstr "Eliminar guia" +msgstr "Eliminar Todas as Guias" #. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:485 -#, fuzzy +#: ../src/sp-guide.cpp:486 msgid "Deleted" -msgstr "Eliminar" +msgstr "Eliminado" -#: ../src/sp-guide.cpp:494 -#, fuzzy +#: ../src/sp-guide.cpp:495 msgid "" "Shift+drag to rotate, Ctrl+drag to move origin, Del to " "delete" msgstr "" -"Arraste para criar uma elipse. Arraste as alças para fazer um " -"arco ou segmento. Clique para selecionar." +"Shift+arrastar para rodar, Ctrl+arrastar para mover a origem, " +"Del para eliminar" -#: ../src/sp-guide.cpp:498 -#, fuzzy, c-format +#: ../src/sp-guide.cpp:499 +#, c-format msgid "vertical, at %s" -msgstr "linha guia vertical" +msgstr "vertical, a %s" -#: ../src/sp-guide.cpp:501 -#, fuzzy, c-format +#: ../src/sp-guide.cpp:502 +#, c-format msgid "horizontal, at %s" -msgstr "linha guia horizontal" +msgstr "horizontal, a %s" -#: ../src/sp-guide.cpp:506 +#: ../src/sp-guide.cpp:507 #, c-format msgid "at %d degrees, through (%s,%s)" -msgstr "" +msgstr "a %d graus, atravessada (%s,%s)" #: ../src/sp-image.cpp:517 msgid "embedded" msgstr "embutido" #: ../src/sp-image.cpp:525 -#, fuzzy, c-format +#, c-format msgid "[bad reference]: %s" -msgstr "Propriedades de Estrelas" +msgstr "[referência errada]: %s" +# × Ã© o código HTML do símbolo de multiplicação #: ../src/sp-image.cpp:526 -#, fuzzy, c-format +#, c-format msgid "%d × %d: %s" -msgstr "Imagem %d × %d: %s" +msgstr "%d × %d: %s" #: ../src/sp-item-group.cpp:307 ../src/ui/dialog/objects.cpp:1915 msgid "Group" msgstr "Agrupar" #: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 -#, fuzzy, c-format +#, c-format msgid "of %d object" -msgstr "Grupo de %d objectos" +msgstr "de %d objeto" #: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 -#, fuzzy, c-format +#, c-format msgid "of %d objects" -msgstr "Grupo de %d objectos" +msgstr "de %d objetos" #: ../src/sp-item.cpp:1031 ../src/verbs.cpp:213 msgid "Object" -msgstr "Objecto" +msgstr "Objeto" #: ../src/sp-item.cpp:1043 #, c-format msgid "%s; clipped" -msgstr "%s; clipado" +msgstr "%s; com recorte" #: ../src/sp-item.cpp:1049 #, c-format msgid "%s; masked" -msgstr "%s; mascarado" +msgstr "%s; com máscara" #: ../src/sp-item.cpp:1059 -#, fuzzy, c-format +#, c-format msgid "%s; filtered (%s)" -msgstr "%s; clipado" +msgstr "%s; com efeito de filtro (%s)" #: ../src/sp-item.cpp:1061 -#, fuzzy, c-format +#, c-format msgid "%s; filtered" -msgstr "%s; clipado" +msgstr "%s; filtrado" #: ../src/sp-line.cpp:113 msgid "Line" msgstr "Linha" #: ../src/sp-lpe-item.cpp:258 ../src/sp-lpe-item.cpp:705 -#, fuzzy msgid "An exception occurred during execution of the Path Effect." -msgstr "Uma exceção ocorreu durante a execução de um Efeito de Caminho." +msgstr "Ocorreu um erro ao executar o Efeito do Caminho." #: ../src/sp-offset.cpp:331 -#, fuzzy msgid "Linked Offset" -msgstr "Tipografia _Ligada" +msgstr "Deslocamento Ligado ao Original" #: ../src/sp-offset.cpp:333 -#, fuzzy msgid "Dynamic Offset" -msgstr "Tipografia D_inâmica" +msgstr "Deslocamento Dinâmico" #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign #: ../src/sp-offset.cpp:339 #, c-format msgid "%s by %f pt" -msgstr "" +msgstr "%s por %f pt" #: ../src/sp-offset.cpp:340 msgid "outset" -msgstr "recuar" +msgstr "expandir" #: ../src/sp-offset.cpp:340 msgid "inset" @@ -14299,20 +13325,21 @@ msgstr "comprimir" msgid "Path" msgstr "Caminho" +# foi adicionado itálico e alterado para manter coerência com a mensagem semelhante dos efeitos de Filtros (procurar expressão "; com efeito de filtro"), desta forma também se torna mais legível na barra de estado - Ass.: Rui, 2016-7-21 #: ../src/sp-path.cpp:84 -#, fuzzy, c-format +#, c-format msgid ", path effect: %s" -msgstr "Colar efeito de caminho ao vivo" +msgstr ", com efeito em tempo real (%s)," #: ../src/sp-path.cpp:87 -#, fuzzy, c-format +#, c-format msgid "%i node%s" -msgstr "Juntar nós" +msgstr "%i nó%s" #: ../src/sp-path.cpp:87 -#, fuzzy, c-format +#, c-format msgid "%i nodes%s" -msgstr "Juntar nós" +msgstr "%i nós%s" #: ../src/sp-polygon.cpp:172 msgid "Polygon" @@ -14320,7 +13347,7 @@ msgstr "Polígono" #: ../src/sp-polyline.cpp:121 msgid "Polyline" -msgstr "MultiLinha" +msgstr "Polilinha" #. Rectangle #: ../src/sp-rect.cpp:161 ../src/ui/dialog/inkscape-preferences.cpp:411 @@ -14336,15 +13363,15 @@ msgstr "Espiral" #. TRANSLATORS: since turn count isn't an integer, please adjust the #. string as needed to deal with an localized plural forms. #: ../src/sp-spiral.cpp:226 -#, fuzzy, c-format +#, c-format msgid "with %3f turns" -msgstr "Espiral com %3f curvas" +msgstr "com %3f voltas" #. Star #: ../src/sp-star.cpp:247 ../src/ui/dialog/inkscape-preferences.cpp:425 #: ../src/widgets/star-toolbar.cpp:469 msgid "Star" -msgstr "Estrela" +msgstr "Polígono e Estrela" #: ../src/sp-star.cpp:248 ../src/widgets/star-toolbar.cpp:462 msgid "Polygon" @@ -14354,18 +13381,18 @@ msgstr "Polígono" #. make calls to ngettext because the pluralization may be different #. for various numbers >=3. The singular form is used as the index. #: ../src/sp-star.cpp:255 -#, fuzzy, c-format +#, c-format msgid "with %d vertex" -msgstr "Estrela de %d vértice" +msgstr "com %d vértice" #: ../src/sp-star.cpp:255 -#, fuzzy, c-format +#, c-format msgid "with %d vertices" -msgstr "Estrela de %d vértice" +msgstr "com %d vértices" #: ../src/sp-switch.cpp:63 msgid "Conditional Group" -msgstr "" +msgstr "Grupo Condicional" #: ../src/sp-text.cpp:361 ../src/verbs.cpp:347 #: ../share/extensions/lorem_ipsum.inx.h:8 @@ -14383,51 +13410,47 @@ msgid "Text" msgstr "Texto" #: ../src/sp-text.cpp:384 -#, fuzzy, c-format +#, c-format msgid "on path%s (%s, %s)" -msgstr "Text no caminho (%s, %s)" +msgstr "no caminho%s (%s, %s)" #: ../src/sp-text.cpp:385 -#, fuzzy, c-format +#, c-format msgid "%s (%s, %s)" -msgstr "Texto (%s, %s)" +msgstr "%s (%s, %s)" #: ../src/sp-tref.cpp:218 -#, fuzzy msgid "Cloned Character Data" -msgstr "Clone de %s" +msgstr "Dados de Caracteres Clonados" #: ../src/sp-tref.cpp:234 msgid " from " -msgstr "" +msgstr " de " #: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:271 msgid "[orphaned]" -msgstr "" +msgstr "[orfão]" #: ../src/sp-tspan.cpp:217 -#, fuzzy msgid "Text Span" -msgstr "Entrada de Texto" +msgstr "Espaço de Texto" #: ../src/sp-use.cpp:234 msgid "Symbol" -msgstr "" +msgstr "Símbolo" #: ../src/sp-use.cpp:236 -#, fuzzy msgid "Clone" -msgstr "Clones" +msgstr "Clone" #: ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 ../src/sp-use.cpp:248 #, c-format msgid "called %s" -msgstr "" +msgstr "como o nome %s" #: ../src/sp-use.cpp:248 -#, fuzzy msgid "Unnamed Symbol" -msgstr "Não nomeado" +msgstr "Símbolo sem Nome" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". @@ -14436,9 +13459,9 @@ msgid "..." msgstr "..." #: ../src/sp-use.cpp:266 -#, fuzzy, c-format +#, c-format msgid "of: %s" -msgstr "Erros" +msgstr "de: %s" #: ../src/splivarot.cpp:71 ../src/splivarot.cpp:77 msgid "Union" @@ -14459,58 +13482,58 @@ msgstr "Cortar Caminho" #: ../src/splivarot.cpp:342 msgid "Select at least 2 paths to perform a boolean operation." msgstr "" -"Seleccione pelo menos dois caminhos para fazer uma operação booleana." +"Selecionar pelo menos 2 caminhos para fazer uma operação booleana." #: ../src/splivarot.cpp:346 msgid "Select at least 1 path to perform a boolean union." -msgstr "" -"Seleccione pelo menos dois caminhos para fazer uma operação booleana." +msgstr "Selecionar pelo menos 1 caminho para fazer uma união booleana." #: ../src/splivarot.cpp:363 ../src/splivarot.cpp:378 msgid "" "Unable to determine the z-order of the objects selected for " "difference, XOR, division, or path cut." msgstr "" -"Incapaz de determinar a ordem-z dos objectos seleccionados para " -"diferença,ou-exclusivo, divisão ou corte de caminho." +"Incapaz de determinar a ordem Z dos objetos selecionados para " +"diferença, ou-exclusivo (XOR), divisão ou corte de caminho." #: ../src/splivarot.cpp:408 msgid "" "One of the objects is not a path, cannot perform boolean operation." msgstr "" -"Um dos objectos não é um caminho, a operação booleana não pode ser " +"Um dos objetos não é um caminho, a operação booleana não pode ser " "executada." #: ../src/splivarot.cpp:1153 msgid "Select stroked path(s) to convert stroke to path." -msgstr "Seleccione algum(ns) objecto(s) para converter para um caminho." +msgstr "" +"Selecionar caminhos com traço para converter o traço num caminho." #: ../src/splivarot.cpp:1511 msgid "Convert stroke to path" -msgstr "Converter borda do objecto em caminho" +msgstr "Converter traço num caminho" #. TRANSLATORS: "to outline" means "to convert stroke to path" #: ../src/splivarot.cpp:1514 msgid "No stroked paths in the selection." -msgstr "Nenhum caminho com traço para contornar na selecção." +msgstr "Nenhum caminho com traço na seleção." #: ../src/splivarot.cpp:1585 msgid "Selected object is not a path, cannot inset/outset." msgstr "" -"O objecto seleccionado não é um caminho. Não é possível comprimir/" -"expandir" +"O objeto selecionado não é um caminho. Não é possível comprimir/" +"expandir." #: ../src/splivarot.cpp:1676 ../src/splivarot.cpp:1743 msgid "Create linked offset" -msgstr "Criar ligação offset" +msgstr "Criar deslocamento ligado ao original" #: ../src/splivarot.cpp:1677 ../src/splivarot.cpp:1744 msgid "Create dynamic offset" -msgstr "Criar um objecto offset dinâmico" +msgstr "Criar deslocamento dinâmico" #: ../src/splivarot.cpp:1769 msgid "Select path(s) to inset/outset." -msgstr "Seleccione algum caminho para comprimir/expandir" +msgstr "Selecionar caminhos para comprimir/expandir" #: ../src/splivarot.cpp:1965 msgid "Outset path" @@ -14522,7 +13545,7 @@ msgstr "Caminho para dentro" #: ../src/splivarot.cpp:1967 msgid "No paths to inset/outset in the selection." -msgstr "Nenhum camimho para comprimir/expandir na selecção" +msgstr "Nenhum caminho para comprimir/expandir na seleção." #: ../src/splivarot.cpp:2129 msgid "Simplifying paths (separately):" @@ -14544,23 +13567,23 @@ msgstr "%d caminhos simplificados." #: ../src/splivarot.cpp:2195 msgid "Select path(s) to simplify." -msgstr "Seleccione algum caminho para simplificar." +msgstr "Selecionar caminhos para simplificar." #: ../src/splivarot.cpp:2211 msgid "No paths to simplify in the selection." -msgstr "Nenhum caminho para simplificar na selecção." +msgstr "Nenhum caminho para simplificar na seleção." #: ../src/text-chemistry.cpp:91 msgid "Select a text and a path to put text on path." -msgstr "Seleccione um texto e um caminho para por o texto no camiho." +msgstr "Selecionar um texto e um caminho para pôr o texto no camiho." #: ../src/text-chemistry.cpp:96 msgid "" "This text object is already put on a path. Remove it from the path " "first. Use Shift+D to look up its path." msgstr "" -"Este objecto de texto já foi posto no caminho. Remova-o do caminho " -"primeiro. Use Shift+D para espiar seu caminho." +"Este objeto de texto já foi posto num caminho. Remova-o do caminho " +"primeiro. Usar Shift+D para localizar o caminho." #. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it #: ../src/text-chemistry.cpp:102 @@ -14568,14 +13591,14 @@ msgid "" "You cannot put text on a rectangle in this version. Convert rectangle to " "path first." msgstr "" -"Você não pode colocar texto em um retângulo nesta versão. Converta-o em " -"caminho primeiro." +"Não pode colocar texto num retângulo nesta versão. Converta-o primeiro num " +"caminho." #: ../src/text-chemistry.cpp:112 msgid "The flowed text(s) must be visible in order to be put on a path." msgstr "" -"O(s) texto(s) fluido(s) precisa(am) estar visível(eis) para ser(em) " -"colocado(s) no caminho." +"Os textos fluidos têm de ser visíveis para serem colocados num " +"caminho." #: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2569 msgid "Put text on path" @@ -14583,11 +13606,11 @@ msgstr "Colocar texto no caminho" #: ../src/text-chemistry.cpp:194 msgid "Select a text on path to remove it from path." -msgstr "Seleccione um texto no caminhopara removê-lo do caminho." +msgstr "Selecionar um texto no caminho para removê-lo do caminho." #: ../src/text-chemistry.cpp:213 msgid "No texts-on-paths in the selection." -msgstr "Nenhum texto-no-caminho na selecção." +msgstr "Nenhum texto em caminhos na seleção." #: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2571 msgid "Remove text from path" @@ -14595,35 +13618,35 @@ msgstr "Remover texto do caminho" #: ../src/text-chemistry.cpp:257 ../src/text-chemistry.cpp:277 msgid "Select text(s) to remove kerns from." -msgstr "Seleccione texto(s) para remover kerns." +msgstr "Selecionar textos para remover entre-linhas." #: ../src/text-chemistry.cpp:280 msgid "Remove manual kerns" -msgstr "Remover kerns manuais" +msgstr "Remover entre-letras manuais" #: ../src/text-chemistry.cpp:300 msgid "" "Select a text and one or more paths or shapes to flow text " "into frame." msgstr "" -"Seleccione um texto e um ou mais caminhos para fluir texto no " -"quadro." +"Selecionar um texto e um ou mais caminhos ou formas geométricas para fluir texto na moldura." #: ../src/text-chemistry.cpp:369 msgid "Flow text into shape" -msgstr "Fluir texto em forma" +msgstr "Fluir texto na forma geométrica" #: ../src/text-chemistry.cpp:391 msgid "Select a flowed text to unflow it." -msgstr "Seleccione um texto fluido para destacá-lo." +msgstr "Selecionar um texto fluido para desflui-lo." #: ../src/text-chemistry.cpp:464 msgid "Unflow flowed text" -msgstr "Destacar texto fluido" +msgstr "Desfluir texto fluido" #: ../src/text-chemistry.cpp:476 msgid "Select flowed text(s) to convert." -msgstr "Seleccione texto(s) fluido(s) para converter." +msgstr "Selecionar textos fluidos para converter." #: ../src/text-chemistry.cpp:494 msgid "The flowed text(s) must be visible in order to be converted." @@ -14635,36 +13658,35 @@ msgstr "Converter texto fluido em texto" #: ../src/text-chemistry.cpp:526 msgid "No flowed text(s) to convert in the selection." -msgstr "Nenhum texto fluido para converter na selecção." +msgstr "Nenhuns textos fluidos para converter na seleção." #: ../src/text-editing.cpp:44 msgid "You cannot edit cloned character data." -msgstr "" +msgstr "Não pode editar dados de caracteres clonados." #: ../src/trace/potrace/inkscape-potrace.cpp:511 #: ../src/trace/potrace/inkscape-potrace.cpp:574 -#, fuzzy msgid "Trace: %1. %2 nodes" -msgstr "Vectorizar: %d. %ld nós" +msgstr "Vetorizar: %1. %2 nós" #: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 #: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 #: ../src/ui/dialog/pixelartdialog.cpp:370 #: ../src/ui/dialog/pixelartdialog.cpp:402 msgid "Select an image to trace" -msgstr "Seleccione uma imagem para vectorizar" +msgstr "Selecionar uma imagem para vetorizar" #: ../src/trace/trace.cpp:94 msgid "Select only one image to trace" -msgstr "Seleccione uma única imagem para vectorizar" +msgstr "Selecionar apenas 1 imagem para vetorizar" #: ../src/trace/trace.cpp:112 msgid "Select one image and one or more shapes above it" -msgstr "Seleccione uma imagem e uma ou mais formas acima dela" +msgstr "Selecionar 1 imagem e 1 ou mais formas geométricas acima dela" #: ../src/trace/trace.cpp:216 msgid "Trace: No active desktop" -msgstr "Vectorizar: Nenhum desenho ativo" +msgstr "Vetorizar: nenhum desenho ativo" #: ../src/trace/trace.cpp:314 msgid "Invalid SIOX result" @@ -14672,30 +13694,30 @@ msgstr "Resultado SIOX inválido" #: ../src/trace/trace.cpp:407 msgid "Trace: No active document" -msgstr "Vectorizar: Nenhum desenho ativo." +msgstr "Vetorizar: nenhum documento ativo." #: ../src/trace/trace.cpp:439 msgid "Trace: Image has no bitmap data" -msgstr "Vectorizar: A imagem não tem dados de figura." +msgstr "Vetorizar: a imagem não tem dados de píxeis" #: ../src/trace/trace.cpp:446 msgid "Trace: Starting trace..." -msgstr "Vectorizar: iniciando..." +msgstr "Vetorizar: a iniciar..." #. ## inform the document, so we can undo #: ../src/trace/trace.cpp:549 msgid "Trace bitmap" -msgstr "Vectorizar bitmap" +msgstr "Vetorizar imagem bitmap" #: ../src/trace/trace.cpp:553 #, c-format msgid "Trace: Done. %ld nodes created" -msgstr "Traçado: Terminado. %ld nós criados" +msgstr "Vetorizar: Terminado. %ld nós criados" #. check whether something is selected #: ../src/ui/clipboard.cpp:261 msgid "Nothing was copied." -msgstr "Nada foi copiado." +msgstr "Não foi copiado nada." #: ../src/ui/clipboard.cpp:392 ../src/ui/clipboard.cpp:606 #: ../src/ui/clipboard.cpp:635 @@ -14704,31 +13726,30 @@ msgstr "Nada na área de transferência." #: ../src/ui/clipboard.cpp:450 msgid "Select object(s) to paste style to." -msgstr "Seleccione os objectos para onde será colado o estilo." +msgstr "Selecionar os objetos nos quais será colado o estilo." #: ../src/ui/clipboard.cpp:461 ../src/ui/clipboard.cpp:478 -#, fuzzy msgid "No style on the clipboard." -msgstr "Nada na área de transferência." +msgstr "Nenhum estilo na área de transferência." #: ../src/ui/clipboard.cpp:503 msgid "Select object(s) to paste size to." -msgstr "Seleccione o(s) objecto(s) para onde será colado o tamanho." +msgstr "Selecionar os objetos nos quais será colado o tamanho." #: ../src/ui/clipboard.cpp:510 -#, fuzzy msgid "No size on the clipboard." -msgstr "Nada na área de transferência." +msgstr "Nenhum tamanho na área de transferência." #: ../src/ui/clipboard.cpp:567 msgid "Select object(s) to paste live path effect to." -msgstr "Seleccione objecto(s) para colar caminhos de efeito ao vivo." +msgstr "" +"Selecionar os objetos nos quais será colado o efeito no caminho em " +"tempo real." #. no_effect: #: ../src/ui/clipboard.cpp:593 -#, fuzzy msgid "No effect on the clipboard." -msgstr "Nada na área de transferência." +msgstr "Nenhum efeito na área de transferência." #: ../src/ui/clipboard.cpp:612 ../src/ui/clipboard.cpp:649 msgid "Clipboard does not contain a path." @@ -14743,7 +13764,7 @@ msgstr "Sobre o Inkscape" #: ../src/ui/dialog/aboutbox.cpp:91 msgid "_Splash" -msgstr "_Splash" +msgstr "_Início" #: ../src/ui/dialog/aboutbox.cpp:95 msgid "_Authors" @@ -14777,6 +13798,8 @@ msgstr "about.svg" #: ../src/ui/dialog/aboutbox.cpp:438 msgid "translator-credits" msgstr "" +"Do original em Português do Brasil por:\n" +"Comunidade InkscapeBrasil.org, 2007\n" "Aurélio A. Heckert\n" "Fábio Sousa\n" "Frederico G. Guimarães\n" @@ -14785,7 +13808,14 @@ msgstr "" "Thiago Pimentel\n" "Vilson Vieira\n" "Victor Westmann\n" -"Comunidade InkscapeBrasil.org, 2007." +"Juarez Rudsatz (juarez@correio.com), 2004.\n" +"Antônio Cláudio (LedStyle) (ledstyle@gmail.com), 2006.\n" +"\n" +"Traduzido do original em Português do Brasil e em Inglês para Português " +"Europeu por:\n" +"Luis Duarte (luis_asd@sapo.pt), 2008, 2016.\n" +"Rui Cruz (xande6ruz@yandex.com), 2016.\n" +"Tiago Santos (tiagofsantos81@sapo.pt), 2016." #: ../src/ui/dialog/align-and-distribute.cpp:206 #: ../src/ui/dialog/align-and-distribute.cpp:937 @@ -14803,10 +13833,9 @@ msgstr "Distância horizontal mínima (em px) entre caixas limitadoras" #. TRANSLATORS: "H:" stands for horizontal gap #: ../src/ui/dialog/align-and-distribute.cpp:463 -#, fuzzy msgctxt "Gap" msgid "_H:" -msgstr "_H" +msgstr "_H:" #: ../src/ui/dialog/align-and-distribute.cpp:471 msgid "Minimum vertical gap (in px units) between bounding boxes" @@ -14814,10 +13843,9 @@ msgstr "Distância vertical mínima (em px) entre caixas limitadoras" #. TRANSLATORS: Vertical gap #: ../src/ui/dialog/align-and-distribute.cpp:473 -#, fuzzy msgctxt "Gap" msgid "_V:" -msgstr "V:" +msgstr "_V:" #: ../src/ui/dialog/align-and-distribute.cpp:508 #: ../src/ui/dialog/align-and-distribute.cpp:940 @@ -14828,16 +13856,15 @@ msgstr "Remover sobreposições" #: ../src/ui/dialog/align-and-distribute.cpp:539 #: ../src/widgets/connector-toolbar.cpp:234 msgid "Arrange connector network" -msgstr "Organizar a rede dos conectores" +msgstr "Organizar a rede dos conetores" #: ../src/ui/dialog/align-and-distribute.cpp:632 -#, fuzzy msgid "Exchange Positions" -msgstr "Posições aleatórias" +msgstr "Trocar Posições" #: ../src/ui/dialog/align-and-distribute.cpp:666 msgid "Unclump" -msgstr "Desagrupar " +msgstr "Desempilhar" #: ../src/ui/dialog/align-and-distribute.cpp:737 msgid "Randomize positions" @@ -14852,9 +13879,8 @@ msgid "Align text baselines" msgstr "Alinhar linhas base do texto" #: ../src/ui/dialog/align-and-distribute.cpp:939 -#, fuzzy msgid "Rearrange" -msgstr "Ângulo" +msgstr "Reorganizar" #: ../src/ui/dialog/align-and-distribute.cpp:941 #: ../src/widgets/toolbox.cpp:1796 @@ -14867,27 +13893,24 @@ msgid "Relative to: " msgstr "Relativo a: " #: ../src/ui/dialog/align-and-distribute.cpp:957 -#, fuzzy msgid "_Treat selection as group: " -msgstr "A selecção não possui efeito de caminho aplicado." +msgstr "_Usar objetos selecionados como um só: " #. Align #: ../src/ui/dialog/align-and-distribute.cpp:963 ../src/verbs.cpp:3036 #: ../src/verbs.cpp:3037 -#, fuzzy msgid "Align right edges of objects to the left edge of the anchor" -msgstr "Lado direito dos objectos alinhados para o lado esquerdo da âncora" +msgstr "Alinhar lados direitos dos objetos ao lado esquerdo da âncora" #: ../src/ui/dialog/align-and-distribute.cpp:966 ../src/verbs.cpp:3038 #: ../src/verbs.cpp:3039 -#, fuzzy msgid "Align left edges" msgstr "Alinhar lados esquerdos" #: ../src/ui/dialog/align-and-distribute.cpp:969 ../src/verbs.cpp:3040 #: ../src/verbs.cpp:3041 msgid "Center on vertical axis" -msgstr "Centralizar verticalmente" +msgstr "Centrar no eixo vertical" #: ../src/ui/dialog/align-and-distribute.cpp:972 ../src/verbs.cpp:3042 #: ../src/verbs.cpp:3043 @@ -14896,205 +13919,182 @@ msgstr "Alinhar lados direitos" #: ../src/ui/dialog/align-and-distribute.cpp:975 ../src/verbs.cpp:3044 #: ../src/verbs.cpp:3045 -#, fuzzy msgid "Align left edges of objects to the right edge of the anchor" -msgstr "Lado esquerdo dos objectos alinhados para o lado direito da âncora" +msgstr "Alinhar lados esquerdos dos objetos ao lado direito da âncora" #: ../src/ui/dialog/align-and-distribute.cpp:978 ../src/verbs.cpp:3046 #: ../src/verbs.cpp:3047 -#, fuzzy msgid "Align bottom edges of objects to the top edge of the anchor" -msgstr "Lado inferior dos objectos alinhados para o topo da âncora" +msgstr "Alinhar lados inferiores dos objetos ao lado superior da âncora" #: ../src/ui/dialog/align-and-distribute.cpp:981 ../src/verbs.cpp:3048 #: ../src/verbs.cpp:3049 -#, fuzzy msgid "Align top edges" msgstr "Alinhar lados superiores" #: ../src/ui/dialog/align-and-distribute.cpp:984 ../src/verbs.cpp:3050 #: ../src/verbs.cpp:3051 msgid "Center on horizontal axis" -msgstr "Centralizar horizontalmente" +msgstr "Centrar no eixo horizontal" #: ../src/ui/dialog/align-and-distribute.cpp:987 ../src/verbs.cpp:3052 #: ../src/verbs.cpp:3053 -#, fuzzy msgid "Align bottom edges" msgstr "Alinhar lados inferiores" #: ../src/ui/dialog/align-and-distribute.cpp:990 ../src/verbs.cpp:3054 #: ../src/verbs.cpp:3055 -#, fuzzy msgid "Align top edges of objects to the bottom edge of the anchor" -msgstr "Topo dos objectos alinhados para o lado inferior da âncora" +msgstr "Alinhar lados superiores dos objetos ao lado inferior da âncora" #: ../src/ui/dialog/align-and-distribute.cpp:995 msgid "Align baseline anchors of texts horizontally" msgstr "Alinhar âncoras base dos textos horizontalmente" #: ../src/ui/dialog/align-and-distribute.cpp:998 -#, fuzzy msgid "Align baselines of texts" -msgstr "Alinhar âncoras base dos textos verticalmente" +msgstr "Alinhar linhas base dos textos" #: ../src/ui/dialog/align-and-distribute.cpp:1003 msgid "Make horizontal gaps between objects equal" -msgstr "Distribuir a distância horizontal igualmente entre os objectos" +msgstr "Tornar iguais os espaços entre os objetos na horizontal" #: ../src/ui/dialog/align-and-distribute.cpp:1007 -#, fuzzy msgid "Distribute left edges equidistantly" -msgstr "Distribuir o lado esquerdo dos objectos à mesma distância" +msgstr "Distribuir lados esquerdos à mesma distância" #: ../src/ui/dialog/align-and-distribute.cpp:1010 msgid "Distribute centers equidistantly horizontally" -msgstr "Distribuir o centro dos objectos à mesma distância" +msgstr "Distribuir centros à mesma distância na horizontal" #: ../src/ui/dialog/align-and-distribute.cpp:1013 -#, fuzzy msgid "Distribute right edges equidistantly" -msgstr "Distribuir o lado direito dos objectos à mesma distância" +msgstr "Distribuir os lados direitos à mesma distância" #: ../src/ui/dialog/align-and-distribute.cpp:1017 msgid "Make vertical gaps between objects equal" -msgstr "Distribuir a distância vertical igualmente entre os objectos" +msgstr "Tornar iguais os espaços entre os objetos na vertical" #: ../src/ui/dialog/align-and-distribute.cpp:1021 -#, fuzzy msgid "Distribute top edges equidistantly" -msgstr "Distribuir o lado superior dos objectos à mesma distância" +msgstr "Distribuir os lados superiores à mesma distância" #: ../src/ui/dialog/align-and-distribute.cpp:1024 msgid "Distribute centers equidistantly vertically" -msgstr "Distribuir o centro dos objectos à mesma distância verticalmente" +msgstr "Distribuir centros á mesma distância na vertical" #: ../src/ui/dialog/align-and-distribute.cpp:1027 -#, fuzzy msgid "Distribute bottom edges equidistantly" -msgstr "Distribuir o lado inferior dos objectos à mesma distância" +msgstr "Distribuir os lados inferiores à mesma distância" #: ../src/ui/dialog/align-and-distribute.cpp:1032 msgid "Distribute baseline anchors of texts horizontally" msgstr "Distribuir âncoras base dos textos horizontalmente" #: ../src/ui/dialog/align-and-distribute.cpp:1035 -#, fuzzy msgid "Distribute baselines of texts vertically" -msgstr "Distribuir âncoras de base de textos verticalmente" +msgstr "Distribuir linhas de base de textos verticalmente" #: ../src/ui/dialog/align-and-distribute.cpp:1041 #: ../src/widgets/connector-toolbar.cpp:367 msgid "Nicely arrange selected connector network" -msgstr "Arruma suavemente a rede de conectores" +msgstr "Arruma suavemente a rede de conetores" #: ../src/ui/dialog/align-and-distribute.cpp:1044 msgid "Exchange positions of selected objects - selection order" -msgstr "" +msgstr "Trocar posições dos objetos selecionados - ordem de seleção" #: ../src/ui/dialog/align-and-distribute.cpp:1047 msgid "Exchange positions of selected objects - stacking order" -msgstr "" +msgstr "Trocar posições dos objetos selecionados - ordem de empilhamento" #: ../src/ui/dialog/align-and-distribute.cpp:1050 msgid "Exchange positions of selected objects - clockwise rotate" -msgstr "" +msgstr "Trocar posições dos objetos selecionados - rotação no sentido horário" #: ../src/ui/dialog/align-and-distribute.cpp:1055 msgid "Randomize centers in both dimensions" -msgstr "Centros aleatórios em ambas dimensões" +msgstr "Empilhar aleatoriamente os centros na vertical e horizontal" #: ../src/ui/dialog/align-and-distribute.cpp:1058 msgid "Unclump objects: try to equalize edge-to-edge distances" -msgstr "Retirar objectos: tente equalizar as distâncias borda-a-borda" +msgstr "Desempilhar objetos: tentar igualar as distâncias de uma borda a outra" #: ../src/ui/dialog/align-and-distribute.cpp:1063 msgid "" "Move objects as little as possible so that their bounding boxes do not " "overlap" msgstr "" -"Mover objectos o mínimo possível para que suas caixas limitadoras não se " -"sobreponham" +"Mover os objetos o mínimo possível para que as suas caixas limitadoras não " +"se sobreponham" #: ../src/ui/dialog/align-and-distribute.cpp:1071 -#, fuzzy msgid "Align selected nodes to a common horizontal line" -msgstr "Alinhar nós seleccionados horizontalmente" +msgstr "Alinhar nós selecionados a uma linha horizontal comum" #: ../src/ui/dialog/align-and-distribute.cpp:1074 -#, fuzzy msgid "Align selected nodes to a common vertical line" -msgstr "Alinhar nós seleccionados verticalmente" +msgstr "Alinhar nós selecionados a uma linha vertical comum" #: ../src/ui/dialog/align-and-distribute.cpp:1077 msgid "Distribute selected nodes horizontally" -msgstr "Distribuir nós seleccionados horizontalmente" +msgstr "Distribuir nós selecionados horizontalmente" #: ../src/ui/dialog/align-and-distribute.cpp:1080 msgid "Distribute selected nodes vertically" -msgstr "Distribuir nós seleccionados verticalmente" +msgstr "Distribuir nós selecionados verticalmente" #. Rest of the widgetry #: ../src/ui/dialog/align-and-distribute.cpp:1085 #: ../src/ui/dialog/align-and-distribute.cpp:1095 msgid "Last selected" -msgstr "Último seleccionado" +msgstr "Último selecionado" #: ../src/ui/dialog/align-and-distribute.cpp:1086 #: ../src/ui/dialog/align-and-distribute.cpp:1096 msgid "First selected" -msgstr "Primeiro seleccionado" +msgstr "Primeiro selecionado" #: ../src/ui/dialog/align-and-distribute.cpp:1087 -#, fuzzy msgid "Biggest object" -msgstr "Ocultar objecto" +msgstr "Objeto maior" #: ../src/ui/dialog/align-and-distribute.cpp:1088 -#, fuzzy msgid "Smallest object" -msgstr "Ajustar ID do objecto" +msgstr "Objeto mais pequeno" #: ../src/ui/dialog/align-and-distribute.cpp:1091 -#, fuzzy msgid "Selection Area" -msgstr "Seleção" +msgstr "Ãrea da seleção" #: ../src/ui/dialog/align-and-distribute.cpp:1097 -#, fuzzy msgid "Middle of selection" -msgstr "Largura da selecção" +msgstr "Meio da seleção" #: ../src/ui/dialog/align-and-distribute.cpp:1098 -#, fuzzy msgid "Min value" -msgstr "Limpar os valores" +msgstr "Valor mínimo" #: ../src/ui/dialog/align-and-distribute.cpp:1099 -#, fuzzy msgid "Max value" -msgstr "Limpar os valores" +msgstr "Valor máximo" #: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 -#, fuzzy msgid "Edit profile" -msgstr "Perfil de dispositivo:" +msgstr "Editar perfil" #: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 -#, fuzzy msgid "Profile name:" -msgstr "Renomear ficheiro" +msgstr "Nome do perfil:" #: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 -#, fuzzy msgid "Save" -msgstr "_Guardar" +msgstr "Gravar" #: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 -#, fuzzy msgid "Add profile" -msgstr "Adicionar filtro" +msgstr "Adicionar perfil" #: ../src/ui/dialog/clonetiler.cpp:110 msgid "_Symmetry" @@ -15103,11 +14103,11 @@ msgstr "_Simetria" #. TRANSLATORS: "translation" means "shift" / "displacement" here. #: ../src/ui/dialog/clonetiler.cpp:122 msgid "P1: simple translation" -msgstr "P1: deslocamento simples" +msgstr "P1: tradução simples" #: ../src/ui/dialog/clonetiler.cpp:123 msgid "P2: 180° rotation" -msgstr "P2: 180° rotação" +msgstr "P2: rotação 180°" #: ../src/ui/dialog/clonetiler.cpp:124 msgid "PM: reflection" @@ -15129,71 +14129,71 @@ msgstr "PMM: reflexão + reflexão" #: ../src/ui/dialog/clonetiler.cpp:130 msgid "PMG: reflection + 180° rotation" -msgstr "PMG: reflexão + 180° rotação" +msgstr "PMG: reflexão + rotação 180°" #: ../src/ui/dialog/clonetiler.cpp:131 msgid "PGG: glide reflection + 180° rotation" -msgstr "PGG: reflexão deslizante + 180° rotação" +msgstr "PGG: reflexão deslizante + rotação 180°" #: ../src/ui/dialog/clonetiler.cpp:132 msgid "CMM: reflection + reflection + 180° rotation" -msgstr "CMM: reflexão + reflexão + 180° rotação" +msgstr "CMM: reflexão + reflexão + rotação 180°" #: ../src/ui/dialog/clonetiler.cpp:133 msgid "P4: 90° rotation" -msgstr "P4: 90° rotação" +msgstr "P4: rotação 90°" #: ../src/ui/dialog/clonetiler.cpp:134 msgid "P4M: 90° rotation + 45° reflection" -msgstr "P4M: 90° rotação + 45° reflexão" +msgstr "P4M: rotação 90° + reflexão 45°" #: ../src/ui/dialog/clonetiler.cpp:135 msgid "P4G: 90° rotation + 90° reflection" -msgstr "P4G: 90° rotação + 90° reflexão" +msgstr "P4G: rotação 90° + reflexão 90°" #: ../src/ui/dialog/clonetiler.cpp:136 msgid "P3: 120° rotation" -msgstr "P3: 120° rotação" +msgstr "P3: rotação 120°" #: ../src/ui/dialog/clonetiler.cpp:137 msgid "P31M: reflection + 120° rotation, dense" -msgstr "P31M: reflexão + 120° rotação, denso" +msgstr "P31M: reflexão + rotação 120°, denso" #: ../src/ui/dialog/clonetiler.cpp:138 msgid "P3M1: reflection + 120° rotation, sparse" -msgstr "P3M1: reflexão + 120° rotação, escasso" +msgstr "P3M1: reflexão + rotação 120°, escasso" #: ../src/ui/dialog/clonetiler.cpp:139 msgid "P6: 60° rotation" -msgstr "P6: 60° rotação" +msgstr "P6: rotação 60°" #: ../src/ui/dialog/clonetiler.cpp:140 msgid "P6M: reflection + 60° rotation" -msgstr "P6M: reflexão + 60° rotação" +msgstr "P6M: reflexão + rotação 60°" #: ../src/ui/dialog/clonetiler.cpp:160 msgid "Select one of the 17 symmetry groups for the tiling" -msgstr "Seleccione um dos 17 grupos de simetria para o ladrilho" +msgstr "Selecionar um dos 17 grupos de simetria para o ladrilho" #: ../src/ui/dialog/clonetiler.cpp:178 msgid "S_hift" -msgstr "D_eslocamento" +msgstr "D_eslocar" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount #: ../src/ui/dialog/clonetiler.cpp:188 #, no-c-format msgid "Shift X:" -msgstr "Deslocamento X:" +msgstr "Deslocar X:" #: ../src/ui/dialog/clonetiler.cpp:196 #, no-c-format msgid "Horizontal shift per row (in % of tile width)" -msgstr "Deslocamento horizontal por linha (em % da largura do objecto)" +msgstr "Deslocamento horizontal por linha (em % da largura do ladrilho)" #: ../src/ui/dialog/clonetiler.cpp:204 #, no-c-format msgid "Horizontal shift per column (in % of tile width)" -msgstr "Deslocamento horizontal por coluna (em % da largura do objecto)" +msgstr "Deslocamento horizontal por coluna (em % da largura do latrilho)" #: ../src/ui/dialog/clonetiler.cpp:210 msgid "Randomize the horizontal shift by this percentage" @@ -15208,12 +14208,12 @@ msgstr "Deslocar Y:" #: ../src/ui/dialog/clonetiler.cpp:228 #, no-c-format msgid "Vertical shift per row (in % of tile height)" -msgstr "Deslocamento vertical por coluna (em % da altura do objecto)" +msgstr "Deslocamento vertical por linha (em % da altura do ladrilho)" #: ../src/ui/dialog/clonetiler.cpp:236 #, no-c-format msgid "Vertical shift per column (in % of tile height)" -msgstr "Deslocamento vertical por coluna (em % da altura do objecto)" +msgstr "Deslocamento vertical por coluna (em % da altura do ladrilho)" #: ../src/ui/dialog/clonetiler.cpp:243 msgid "Randomize the vertical shift by this percentage" @@ -15253,37 +14253,33 @@ msgstr "Alternar o sinal dos deslocamentos para cada coluna" #. TRANSLATORS: "Cumulate" is a verb here #: ../src/ui/dialog/clonetiler.cpp:291 ../src/ui/dialog/clonetiler.cpp:455 #: ../src/ui/dialog/clonetiler.cpp:531 -#, fuzzy msgid "Cumulate:" -msgstr "Alternar:" +msgstr "Acumular:" #: ../src/ui/dialog/clonetiler.cpp:297 -#, fuzzy msgid "Cumulate the shifts for each row" -msgstr "Alternar o sinal dos deslocamentos para cada linha" +msgstr "Acumular os deslocamentos para cada linha" #: ../src/ui/dialog/clonetiler.cpp:302 -#, fuzzy msgid "Cumulate the shifts for each column" -msgstr "Alternar o sinal dos deslocamentos para cada coluna" +msgstr "Acumular os deslocamentos para cada coluna" #. TRANSLATORS: "Cumulate" is a verb here #: ../src/ui/dialog/clonetiler.cpp:309 -#, fuzzy msgid "Exclude tile:" -msgstr "Alternar:" +msgstr "Excluir ladrilho:" #: ../src/ui/dialog/clonetiler.cpp:315 msgid "Exclude tile height in shift" -msgstr "" +msgstr "Excluir altura do ladrilho no deslocamento" #: ../src/ui/dialog/clonetiler.cpp:320 msgid "Exclude tile width in shift" -msgstr "" +msgstr "Excluir largura do ladrilho no deslocamento" #: ../src/ui/dialog/clonetiler.cpp:329 msgid "Sc_ale" -msgstr "Ampli_ar" +msgstr "Escal_a" #: ../src/ui/dialog/clonetiler.cpp:337 msgid "Scale X:" @@ -15322,53 +14318,47 @@ msgid "Randomize the vertical scale by this percentage" msgstr "Deslocamento vertical aleatório por esta percentagem" #: ../src/ui/dialog/clonetiler.cpp:403 -#, fuzzy msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" -"Se as linhas estiverem espaçadas uniformemente (1), convergir (<1) ou " -"divergir (>1)" +"Se as linhas estão espaçadas uniformemente (1), convergente (<1) ou " +"divergente (>1)" #: ../src/ui/dialog/clonetiler.cpp:409 -#, fuzzy msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" -"Se as colunas estiverem espaçadas uniformemente (1), convergir (<1) ou " -"divergir (>1)" +"Se o espaço das colunas é uniforme (1), convergente (<1) ou divergente (>1)" #: ../src/ui/dialog/clonetiler.cpp:417 -#, fuzzy msgid "Base:" -msgstr "a" +msgstr "Base:" #: ../src/ui/dialog/clonetiler.cpp:423 ../src/ui/dialog/clonetiler.cpp:429 -#, fuzzy msgid "" "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" msgstr "" -"Se as linhas estiverem espaçadas uniformemente (1), convergir (<1) ou " -"divergir (>1)" +"Base para uma espiral logarítmica: não usado (0), convergir (<1) ou divergir " +"(>1)" #: ../src/ui/dialog/clonetiler.cpp:443 msgid "Alternate the sign of scales for each row" -msgstr "Alterar escala de medida para cada coluna" +msgstr "Alternar o sinal de escalas para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:448 msgid "Alternate the sign of scales for each column" msgstr "Alternar o sinal de escalas para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:461 -#, fuzzy msgid "Cumulate the scales for each row" -msgstr "Alterar escala de medida para cada coluna" +msgstr "Acumular as escalas para cada linha" #: ../src/ui/dialog/clonetiler.cpp:466 -#, fuzzy msgid "Cumulate the scales for each column" -msgstr "Alternar o sinal de escalas para cada coluna" +msgstr "Acumular as escalas para cada coluna" +# em vez de Rotação conforme o original em inglês, optei por Rodar por ser mais curto para não alargar muito o painel lateral #: ../src/ui/dialog/clonetiler.cpp:475 msgid "_Rotation" -msgstr "_Rotação" +msgstr "_Rodar" #: ../src/ui/dialog/clonetiler.cpp:483 msgid "Angle:" @@ -15377,12 +14367,12 @@ msgstr "Ângulo:" #: ../src/ui/dialog/clonetiler.cpp:491 #, no-c-format msgid "Rotate tiles by this angle for each row" -msgstr "Girar ladrilhos por este ângulo para cada linha" +msgstr "Rodar ladrilhos por este ângulo para cada linha" #: ../src/ui/dialog/clonetiler.cpp:499 #, no-c-format msgid "Rotate tiles by this angle for each column" -msgstr "Girar ladrilhos por este ângulo para cada coluna" +msgstr "Rodar ladrilhos por este ângulo para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:505 msgid "Randomize the rotation angle by this percentage" @@ -15397,47 +14387,45 @@ msgid "Alternate the rotation direction for each column" msgstr "Alternar a direção da rotação para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:537 -#, fuzzy msgid "Cumulate the rotation for each row" -msgstr "Alternar a direção da rotação para cada linha" +msgstr "Acumular a rotação para cada linha" #: ../src/ui/dialog/clonetiler.cpp:542 -#, fuzzy msgid "Cumulate the rotation for each column" -msgstr "Alternar a direção da rotação para cada coluna" +msgstr "Acumular a rotação para cada coluna" +# em vez de "_Desfocagem e opacidade" é preferível este campo mais curto para não alargar muito o painel lateral #: ../src/ui/dialog/clonetiler.cpp:551 msgid "_Blur & opacity" -msgstr "_Desfoque & opacidade" +msgstr "_Desfocar/opacidade" #: ../src/ui/dialog/clonetiler.cpp:560 msgid "Blur:" -msgstr "Desfoque:" +msgstr "Desfocagem:" #: ../src/ui/dialog/clonetiler.cpp:566 msgid "Blur tiles by this percentage for each row" -msgstr "Aplicar desfoque ao ladrilho por esta percentagem para cada linha" +msgstr "Aplicar desfocagem ao ladrilho por esta percentagem para cada linha" #: ../src/ui/dialog/clonetiler.cpp:572 msgid "Blur tiles by this percentage for each column" -msgstr "Aplicar desfoque ao ladrilho por esta percentagem para cada coluna" +msgstr "Aplicar desfocagem ao ladrilho por esta percentagem para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:578 msgid "Randomize the tile blur by this percentage" -msgstr "Desfoque aleatório do ladrilho por esta percentagem" +msgstr "Desfocagem aleatória do ladrilho por esta percentagem" #: ../src/ui/dialog/clonetiler.cpp:592 msgid "Alternate the sign of blur change for each row" -msgstr "Alternar o sinal do desfoque para cada linha" +msgstr "Alternar o sinal da desfocagem para cada linha" #: ../src/ui/dialog/clonetiler.cpp:597 msgid "Alternate the sign of blur change for each column" -msgstr "Alternar o sinal do desfoque para cada coluna" +msgstr "Alternar o sinal da desfocagem para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:606 -#, fuzzy msgid "Opacity:" -msgstr "Opacidade" +msgstr "Transparência:" #: ../src/ui/dialog/clonetiler.cpp:612 msgid "Decrease tile opacity by this percentage for each row" @@ -15472,29 +14460,28 @@ msgid "Initial color of tiled clones" msgstr "Cor inicial dos clones ladrilhados" #: ../src/ui/dialog/clonetiler.cpp:665 -#, fuzzy msgid "" "Initial color for clones (works only if the original has unset fill or " "stroke or on spray tool in copy mode)" msgstr "" -"Cor inicial para clones (só funciona se o original não tiver preenchimento " -"ou traço)" +"Cor inicial para os clones (só funciona se o original não tiver " +"preenchimento ou traço ou na ferramenta pulverizar no modo cópia)" #: ../src/ui/dialog/clonetiler.cpp:680 msgid "H:" -msgstr "H:" +msgstr "M:" #: ../src/ui/dialog/clonetiler.cpp:686 msgid "Change the tile hue by this percentage for each row" -msgstr "Alterar contraste do ladrilho por esta percentagem para cada linha" +msgstr "Alterar matiz do ladrilho por esta percentagem para cada linha" #: ../src/ui/dialog/clonetiler.cpp:692 msgid "Change the tile hue by this percentage for each column" -msgstr "Alterar contraste do ladrilho por esta percentagem para cada coluna" +msgstr "Alterar matiz do ladrilho por esta percentagem para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:698 msgid "Randomize the tile hue by this percentage" -msgstr "Contraste aleatório do ladrilho por esta percentagem" +msgstr "Matiz aleatória do ladrilho por esta percentagem" #: ../src/ui/dialog/clonetiler.cpp:707 msgid "S:" @@ -15502,15 +14489,15 @@ msgstr "S:" #: ../src/ui/dialog/clonetiler.cpp:713 msgid "Change the color saturation by this percentage for each row" -msgstr "Mudar a saturação de cor sob esta percentagem para cada linha" +msgstr "Alterar a saturação da cor por esta percentagem para cada linha" #: ../src/ui/dialog/clonetiler.cpp:719 msgid "Change the color saturation by this percentage for each column" -msgstr "Mudar a saturação de cor sob esta percentagem para cada coluna" +msgstr "Alterar a saturação da cor por esta percentagem para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:725 msgid "Randomize the color saturation by this percentage" -msgstr "Saturação aleatório de cor por esta percentagem" +msgstr "Saturação aleatória da cor por esta percentagem" #: ../src/ui/dialog/clonetiler.cpp:733 msgid "L:" @@ -15518,41 +14505,39 @@ msgstr "L:" #: ../src/ui/dialog/clonetiler.cpp:739 msgid "Change the color lightness by this percentage for each row" -msgstr "Mudar o brilho da cor sob esta percentagem para cada linha" +msgstr "Alterar a luminosidade da cor por esta percentagem para cada linha" #: ../src/ui/dialog/clonetiler.cpp:745 msgid "Change the color lightness by this percentage for each column" -msgstr "Mudar o brilho da cor sob esta percentagem para cada coluna" +msgstr "Alterar a luminosidade da cor por esta percentagem para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:751 msgid "Randomize the color lightness by this percentage" -msgstr "Brilho da cor aleatório por esta percentagem" +msgstr "Luminosidade da cor aleatória por esta percentagem" #: ../src/ui/dialog/clonetiler.cpp:765 msgid "Alternate the sign of color changes for each row" -msgstr "Alternar o valor de mudanças de cor para cada linha" +msgstr "Alternar o símbolo das mudanças de cor para cada linha" #: ../src/ui/dialog/clonetiler.cpp:770 msgid "Alternate the sign of color changes for each column" -msgstr "Alternar o valor de mudanças de cor para cada coluna" +msgstr "Alternar o símbolo das mudanças de cor para cada coluna" #: ../src/ui/dialog/clonetiler.cpp:778 msgid "_Trace" -msgstr "_Vectorizar" +msgstr "_Vetorizar" #: ../src/ui/dialog/clonetiler.cpp:788 -#, fuzzy msgid "Trace the drawing under the clones/sprayed items" -msgstr "Vectorizar o desenho em baixo dos ladrilhos" +msgstr "Vetorizar o desenho por baixo dos clones/itens pulverizados" #: ../src/ui/dialog/clonetiler.cpp:792 -#, fuzzy msgid "" "For each clone/sprayed item, pick a value from the drawing in its location " "and apply it" msgstr "" -"Para cada clone, pegar um valor do desenho no local daquele clone e aplicar " -"ao clone" +"Para cada clone ou item pulverizado, pegar um valor do desenho na sua " +"localização e aplicá-lo" #: ../src/ui/dialog/clonetiler.cpp:811 msgid "1. Pick from the drawing:" @@ -15560,7 +14545,7 @@ msgstr "1. Capturar do desenho:" #: ../src/ui/dialog/clonetiler.cpp:829 msgid "Pick the visible color and opacity" -msgstr "Escolha a cor visível e a opacidade" +msgstr "Capturar a cor visível e a opacidade" #: ../src/ui/dialog/clonetiler.cpp:837 msgid "Pick the total accumulated opacity" @@ -15591,17 +14576,15 @@ msgid "Pick the Blue component of the color" msgstr "Capturar o componente Azul da cor" #: ../src/ui/dialog/clonetiler.cpp:868 -#, fuzzy msgctxt "Clonetiler color hue" msgid "H" -msgstr "H" +msgstr "M" #: ../src/ui/dialog/clonetiler.cpp:869 msgid "Pick the hue of the color" -msgstr "Capturar a tonalidade da cor" +msgstr "Capturar a matiz da cor" #: ../src/ui/dialog/clonetiler.cpp:876 -#, fuzzy msgctxt "Clonetiler color saturation" msgid "S" msgstr "S" @@ -15611,27 +14594,26 @@ msgid "Pick the saturation of the color" msgstr "Capturar a saturação da cor" #: ../src/ui/dialog/clonetiler.cpp:884 -#, fuzzy msgctxt "Clonetiler color lightness" msgid "L" msgstr "L" #: ../src/ui/dialog/clonetiler.cpp:885 msgid "Pick the lightness of the color" -msgstr "Capturar o brilho da cor" +msgstr "Capturar a luminosidade da cor" #: ../src/ui/dialog/clonetiler.cpp:895 msgid "2. Tweak the picked value:" -msgstr "2. Altere o valor requerido:" +msgstr "2. Ajustar o valor capturado:" #: ../src/ui/dialog/clonetiler.cpp:912 msgid "Gamma-correct:" -msgstr "Correção-gama:" +msgstr "Correção do gama:" #: ../src/ui/dialog/clonetiler.cpp:916 msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" msgstr "" -"Desloque a escala média do valor escolhido para cima (> 0) ou para baixo (< " +"Deslocar a escala média do valor capturado para cima (> 0) ou para baixo (< " "0)" #: ../src/ui/dialog/clonetiler.cpp:923 @@ -15640,7 +14622,7 @@ msgstr "Aleatório:" #: ../src/ui/dialog/clonetiler.cpp:927 msgid "Randomize the picked value by this percentage" -msgstr "Valor aleatório captado sob esta percentagem" +msgstr "Aleatoriedade do valor capturado por esta percentagem" #: ../src/ui/dialog/clonetiler.cpp:934 msgid "Invert:" @@ -15648,7 +14630,7 @@ msgstr "Inverter:" #: ../src/ui/dialog/clonetiler.cpp:938 msgid "Invert the picked value" -msgstr "Inverter o valor captado" +msgstr "Inverter o valor capturado" #: ../src/ui/dialog/clonetiler.cpp:944 msgid "3. Apply the value to the clones':" @@ -15663,8 +14645,8 @@ msgid "" "Each clone is created with the probability determined by the picked value in " "that point" msgstr "" -"Cada clone é criado com a probabilidade determinada pelo valor captado neste " -"ponto" +"Cada clone é criado com a probabilidade determinada pelo valor capturado " +"neste ponto" #: ../src/ui/dialog/clonetiler.cpp:969 msgid "Size" @@ -15672,24 +14654,24 @@ msgstr "Tamanho" #: ../src/ui/dialog/clonetiler.cpp:972 msgid "Each clone's size is determined by the picked value in that point" -msgstr "O tamanho de cada clone é determinado pelo valor captado neste ponto" +msgstr "O tamanho de cada clone é determinado pelo valor capturado neste ponto" #: ../src/ui/dialog/clonetiler.cpp:982 msgid "" "Each clone is painted by the picked color (the original must have unset fill " "or stroke)" msgstr "" -"Cada clone é preenchido com a cor selecionada (a original não deve ter " -"preenchimento ou traço ativados)" +"Cada clone é preenchido com a cor capturada (a original não deve ter " +"definidos o preenchimento nem o traço)" #: ../src/ui/dialog/clonetiler.cpp:992 msgid "Each clone's opacity is determined by the picked value in that point" -msgstr "A opacidade de cada clone é determinada pelo valor captado neste ponto" +msgstr "" +"A opacidade de cada clone é determinada pelo valor capturado neste ponto" #: ../src/ui/dialog/clonetiler.cpp:1011 -#, fuzzy msgid "Apply to tiled clones:" -msgstr "Eliminar clones ladrilhados" +msgstr "Aplicar aos clones ladrilhados:" #: ../src/ui/dialog/clonetiler.cpp:1052 msgid "How many rows in the tiling" @@ -15709,7 +14691,7 @@ msgstr "Altura do retângulo a ser preenchido" #: ../src/ui/dialog/clonetiler.cpp:1185 msgid "Rows, columns: " -msgstr "Linhas, colunas: " +msgstr "Linhas, colunas:" #: ../src/ui/dialog/clonetiler.cpp:1186 msgid "Create the specified number of rows and columns" @@ -15721,19 +14703,19 @@ msgstr "Largura, altura: " #: ../src/ui/dialog/clonetiler.cpp:1196 msgid "Fill the specified width and height with the tiling" -msgstr "Preencher a largura e altura com os ladrilhos" +msgstr "Preencher com a largura e altura especificados com os ladrilhos" #: ../src/ui/dialog/clonetiler.cpp:1217 msgid "Use saved size and position of the tile" -msgstr "Usar tamanho e posição salvos do ladrilho" +msgstr "Usar tamanho e posição gravados do ladrilho" #: ../src/ui/dialog/clonetiler.cpp:1220 msgid "" "Pretend that the size and position of the tile are the same as the last time " "you tiled it (if any), instead of using the current size" msgstr "" -"Fazer com que o tamanho e posição do ladrilho sejam as mesmas da última vez " -"que o fez (se fez), ao invés do tamanho actual" +"Fazer com que o tamanho e posição do ladrilho sejam os mesmos que foram " +"utilizados da última vez (se for o caso), em vez de usar o tamanho atual" #: ../src/ui/dialog/clonetiler.cpp:1254 msgid " _Create " @@ -15741,7 +14723,7 @@ msgstr " _Criar " #: ../src/ui/dialog/clonetiler.cpp:1256 msgid "Create and tile the clones of the selection" -msgstr "Criar e ladrilhar os clones da selecção" +msgstr "Criar e ladrilhar os clones da seleção" #. TRANSLATORS: if a group of objects are "clumped" together, then they #. are unevenly spread in the given amount of space - as shown in the @@ -15750,11 +14732,12 @@ msgstr "Criar e ladrilhar os clones da selecção" #. So unclumping is the process of spreading a number of objects out more evenly. #: ../src/ui/dialog/clonetiler.cpp:1276 msgid " _Unclump " -msgstr " _Desagrupar " +msgstr " _Desempilhar " #: ../src/ui/dialog/clonetiler.cpp:1277 msgid "Spread out clones to reduce clumping; can be applied repeatedly" -msgstr "Espalhar clones para reduzir o ruído; pode ser aplicado repetidamente" +msgstr "" +"Espalhar clones para reduzir o empilhamento; pode ser aplicado repetidamente" #: ../src/ui/dialog/clonetiler.cpp:1283 msgid " Re_move " @@ -15762,11 +14745,13 @@ msgstr " Re_mover " #: ../src/ui/dialog/clonetiler.cpp:1284 msgid "Remove existing tiled clones of the selected object (siblings only)" -msgstr "Remover clones ladrilhados do objecto seleccionado (somente cópias)" +msgstr "" +"Remover clones ladrilhados existentes do objeto selecionado (apenas " +"similares)" #: ../src/ui/dialog/clonetiler.cpp:1301 msgid " R_eset " -msgstr " R_edefinir " +msgstr " R_epor " #. TRANSLATORS: "change" is a noun here #: ../src/ui/dialog/clonetiler.cpp:1303 @@ -15774,37 +14759,37 @@ msgid "" "Reset all shifts, scales, rotates, opacity and color changes in the dialog " "to zero" msgstr "" -"Reiniciar todas as modificações, escalas, rotações, opacidade e mudanças de " -"cores na caixa de diálogo para zero" +"Repor os valores a zero no painel de todos os deslocamentos, " +"redimensionamentos, rotações, opacidade e mudanças de cores" #: ../src/ui/dialog/clonetiler.cpp:1375 msgid "Nothing selected." -msgstr "Nada seleccionado." +msgstr "Nada selecionado." #: ../src/ui/dialog/clonetiler.cpp:1381 msgid "More than one object selected." -msgstr "Mais de um objecto seleccionado." +msgstr "Mais do que 1 objeto selecionado." #: ../src/ui/dialog/clonetiler.cpp:1388 #, c-format msgid "Object has %d tiled clones." -msgstr "O objecto possui %d clones ladrilhados." +msgstr "O objeto tem %d clones ladrilhados." #: ../src/ui/dialog/clonetiler.cpp:1393 msgid "Object has no tiled clones." -msgstr "O objecto não possui clones ladrilhados." +msgstr "O objeto não tem clones ladrilhados." #: ../src/ui/dialog/clonetiler.cpp:2117 msgid "Select one object whose tiled clones to unclump." -msgstr "Seleccione um objecto para separar clones." +msgstr "Selecionar 1 objeto nos clones ladrilhados para desempilhar." #: ../src/ui/dialog/clonetiler.cpp:2137 msgid "Unclump tiled clones" -msgstr "Separa clones em ladrilho" +msgstr "Desempilhar clones no ladrilho" #: ../src/ui/dialog/clonetiler.cpp:2166 msgid "Select one object whose tiled clones to remove." -msgstr "Seleccione um objecto clonado para remover clones." +msgstr "Selecionar 1 objeto nos clones ladrilhados remover." #: ../src/ui/dialog/clonetiler.cpp:2191 msgid "Delete tiled clones" @@ -15815,12 +14800,12 @@ msgid "" "If you want to clone several objects, group them and clone the " "group." msgstr "" -"Se quiser clonar diversos objectos, agrupe-os e clone o grupo." +"Para clonar vários objetos, é necessário agrupá-los e então clonar " +"o grupo." #: ../src/ui/dialog/clonetiler.cpp:2253 -#, fuzzy msgid "Creating tiled clones..." -msgstr "O objecto não possui clones ladrilhados." +msgstr "A criar clones ladrilhados..." #: ../src/ui/dialog/clonetiler.cpp:2670 msgid "Create tiled clones" @@ -15828,53 +14813,51 @@ msgstr "Criar clones ladrilhados" #: ../src/ui/dialog/clonetiler.cpp:2907 msgid "Per row:" -msgstr "Por linha:" +msgstr "Por linha" #: ../src/ui/dialog/clonetiler.cpp:2925 msgid "Per column:" -msgstr "Por coluna:" +msgstr "Por coluna" #: ../src/ui/dialog/clonetiler.cpp:2933 msgid "Randomize:" -msgstr "Aleatório:" +msgstr "Aleatório" #: ../src/ui/dialog/color-item.cpp:127 #, c-format msgid "" "Color: %s; Click to set fill, Shift+click to set stroke" msgstr "" +"Cor: %s; Clicar para aplicar no preenchimento, Shift" +"+clicar para aplicar no traço" #: ../src/ui/dialog/color-item.cpp:505 msgid "Change color definition" -msgstr "Modificar definição de cor" +msgstr "Alterar definição de cor" #: ../src/ui/dialog/color-item.cpp:677 -#, fuzzy msgid "Remove stroke color" -msgstr "Remover traço" +msgstr "Remover cor da linha" #: ../src/ui/dialog/color-item.cpp:677 -#, fuzzy msgid "Remove fill color" -msgstr "Remover preenchimento" +msgstr "Remover cor do preenchimento" #: ../src/ui/dialog/color-item.cpp:682 -#, fuzzy msgid "Set stroke color to none" -msgstr "Definir cor do traço" +msgstr "Remover cor do traço" #: ../src/ui/dialog/color-item.cpp:682 -#, fuzzy msgid "Set fill color to none" -msgstr "Definir cor de preenchimento" +msgstr "Remover cor do preenchimento" #: ../src/ui/dialog/color-item.cpp:700 msgid "Set stroke color from swatch" -msgstr "Definir traço da paleta de cores" +msgstr "Aplicar cor do traço a partir da amostra de cor" #: ../src/ui/dialog/color-item.cpp:700 msgid "Set fill color from swatch" -msgstr "Definir preenchimento da paleta de cores de cores" +msgstr "Aplicar cor do preenchimento a partir da amostra de cor" #: ../src/ui/dialog/debug.cpp:69 msgid "Messages" @@ -15903,65 +14886,68 @@ msgid "License" msgstr "Licença" #: ../src/ui/dialog/document-metadata.cpp:126 -#: ../src/ui/dialog/document-properties.cpp:994 +#: ../src/ui/dialog/document-properties.cpp:1037 msgid "Dublin Core Entities" -msgstr "Entidades do núcleo Dublin" +msgstr "Entidades do esquema de metadados Dublin Core" #: ../src/ui/dialog/document-metadata.cpp:168 -#: ../src/ui/dialog/document-properties.cpp:1056 +#: ../src/ui/dialog/document-properties.cpp:1099 msgid "License" msgstr "Licença" #. --------------------------------------------------------------- #: ../src/ui/dialog/document-properties.cpp:118 -#, fuzzy msgid "Use antialiasing" -msgstr "Simular saída na Ecrã" +msgstr "Usar anti-serrilhado" #: ../src/ui/dialog/document-properties.cpp:118 -#, fuzzy msgid "If unset, no antialiasing will be done on the drawing" -msgstr "Bordas no topo do desenho" +msgstr "" +"Se não estiver ativado, não será usado o anti-serrilhado (antialiasing)" #: ../src/ui/dialog/document-properties.cpp:119 -#, fuzzy msgid "Checkerboard background" -msgstr "Remover fundo" +msgstr "Fundo quadriculado tipo tabuleiro de damas" #: ../src/ui/dialog/document-properties.cpp:119 msgid "" "If set, use checkerboard for background, otherwise use background color at " "full opacity." msgstr "" +"Se ativado, usa o tabuleiro de damas no fundo, caso contrário usa a cor do " +"fundo na opacidade máxima." #: ../src/ui/dialog/document-properties.cpp:120 msgid "Show page _border" -msgstr "Mostrar bordas da página" +msgstr "Mostrar _bordas da página" #: ../src/ui/dialog/document-properties.cpp:120 msgid "If set, rectangular page border is shown" -msgstr "Borda retangular da página" +msgstr "" +"Se ativado é mostrada uma borda retangular que representa os limites da " +"página" #: ../src/ui/dialog/document-properties.cpp:121 msgid "Border on _top of drawing" -msgstr "Bordas no topo do desenho" +msgstr "Mostrar bordas por cima do _desenho" #: ../src/ui/dialog/document-properties.cpp:121 msgid "If set, border is always on top of the drawing" -msgstr "Bordas no topo do desenho" +msgstr "" +"Se ativado, as bordas da página são sempre mostradas por cima dos desenhos " +"que as intersetem" #: ../src/ui/dialog/document-properties.cpp:122 msgid "_Show border shadow" -msgstr "Ver sombra da página" +msgstr "Mostrar _sombra da página" #: ../src/ui/dialog/document-properties.cpp:122 msgid "If set, page border shows a shadow on its right and lower side" -msgstr "Ver sombra da página" +msgstr "Se ativado, é mostrada uma pequena sombra na borda direita e de baixo" #: ../src/ui/dialog/document-properties.cpp:123 -#, fuzzy msgid "Back_ground color:" -msgstr "Cor de plano de fundo" +msgstr "Cor do _fundo:" #: ../src/ui/dialog/document-properties.cpp:123 msgid "" @@ -15969,10 +14955,13 @@ msgid "" "editing if 'Checkerboard background' unset (but used when exporting to " "bitmap)." msgstr "" +"Cor do fundo da página. Nota: a transparência é ignorada ao editar se a " +"opção 'Fundo de tabuleiro de damas' estiver desativada, mas é usada ao " +"exportar para imagem bitmap." #: ../src/ui/dialog/document-properties.cpp:124 msgid "Border _color:" -msgstr "Cor da borda:" +msgstr "_Cor da borda:" #: ../src/ui/dialog/document-properties.cpp:124 msgid "Page border color" @@ -15983,9 +14972,8 @@ msgid "Color of the page border" msgstr "Cor da borda da página" #: ../src/ui/dialog/document-properties.cpp:125 -#, fuzzy msgid "Display _units:" -msgstr "_Unidades da grelha:" +msgstr "_Unidades de visualização:" #. --------------------------------------------------------------- #. General snap options @@ -15999,7 +14987,7 @@ msgstr "Mostrar ou esconder guias" #: ../src/ui/dialog/document-properties.cpp:130 msgid "Guide co_lor:" -msgstr "Cor das gui_as:" +msgstr "Cor das _guias:" #: ../src/ui/dialog/document-properties.cpp:130 msgid "Guideline color" @@ -16019,142 +15007,136 @@ msgstr "Cor da linha guia destacada" #: ../src/ui/dialog/document-properties.cpp:131 msgid "Color of a guideline when it is under mouse" -msgstr "Cor da linha guia quando sob o cursor" +msgstr "Cor da linha guia ao passar com o rato por cima" #. --------------------------------------------------------------- #: ../src/ui/dialog/document-properties.cpp:133 msgid "Snap _distance" -msgstr "Encaixar _distância" +msgstr "_Distância de atração" #: ../src/ui/dialog/document-properties.cpp:133 msgid "Snap only when _closer than:" -msgstr "" +msgstr "Atrair apenas quando estiver a uma distância menor _que:" #: ../src/ui/dialog/document-properties.cpp:133 #: ../src/ui/dialog/document-properties.cpp:138 #: ../src/ui/dialog/document-properties.cpp:143 msgid "Always snap" -msgstr "" +msgstr "Atrair sempre" # Termo melhor para "agarramento"? #: ../src/ui/dialog/document-properties.cpp:134 -#, fuzzy msgid "Snapping distance, in screen pixels, for snapping to objects" -msgstr "Distância de ajuste, em pixels da Ecrã, para agarrar aos objectos" +msgstr "Distância de atração, em píxeis, para atrair aos objetos" #: ../src/ui/dialog/document-properties.cpp:134 -#, fuzzy msgid "Always snap to objects, regardless of their distance" -msgstr "Objectos se ajustam ao objecto mais próximo quando movidos" +msgstr "Atrair sempre aos objetos, independentemente da distância" #: ../src/ui/dialog/document-properties.cpp:135 msgid "" "If set, objects only snap to another object when it's within the range " "specified below" msgstr "" +"Se definido, os objetos serão atraídos a outro objeto se estiverem dentro do " +"alcance especificado abaixo" #. Options for snapping to grids #: ../src/ui/dialog/document-properties.cpp:138 -#, fuzzy msgid "Snap d_istance" -msgstr "Encaixar _distância" +msgstr "D_istância de atração" #: ../src/ui/dialog/document-properties.cpp:138 msgid "Snap only when c_loser than:" -msgstr "" +msgstr "Atrair apenas quando mais perto do que:" # Termo melhor para "agarramento"? #: ../src/ui/dialog/document-properties.cpp:139 -#, fuzzy msgid "Snapping distance, in screen pixels, for snapping to grid" -msgstr "Distância de agarramento, em pixels da Ecrã, para agarrar à grelha" +msgstr "Distância de atração, em píxeis, para atrair à grelha" #: ../src/ui/dialog/document-properties.cpp:139 -#, fuzzy msgid "Always snap to grids, regardless of the distance" -msgstr "Objectos se ajustam à linha guia mais próxima quando movidos" +msgstr "Atrair sempre às grelhas, independentemente da distância" #: ../src/ui/dialog/document-properties.cpp:140 msgid "" "If set, objects only snap to a grid line when it's within the range " "specified below" msgstr "" +"Se definido, os objetos serão atraídos a uma linha da grelha se estiverem " +"dentro do alcance especificado abaixo" #. Options for snapping to guides #: ../src/ui/dialog/document-properties.cpp:143 msgid "Snap dist_ance" -msgstr "Encaixar distânci_a" +msgstr "Distânci_a de atração" #: ../src/ui/dialog/document-properties.cpp:143 msgid "Snap only when close_r than:" -msgstr "" +msgstr "Atrai_r apenas quando mais próximo do que:" # Termo melhor para "agarramento"? #: ../src/ui/dialog/document-properties.cpp:144 msgid "Snapping distance, in screen pixels, for snapping to guides" -msgstr "Encaixando distância, em pixels da Ecrã, para encaixar às guias" +msgstr "Distância de atração, em píxeis, para atrair às guias" #: ../src/ui/dialog/document-properties.cpp:144 -#, fuzzy msgid "Always snap to guides, regardless of the distance" -msgstr "Objectos se ajustam à linha guia mais próxima quando movidos" +msgstr "Atrair sempre às guias, independentemente da distância" #: ../src/ui/dialog/document-properties.cpp:145 msgid "" "If set, objects only snap to a guide when it's within the range specified " "below" msgstr "" +"Se definido, os objetos serão atraídos a uma guia se estiverem dentro do " +"alcance especificado abaixo" #. --------------------------------------------------------------- #: ../src/ui/dialog/document-properties.cpp:148 -#, fuzzy msgid "Snap to clip paths" -msgstr "Encaixar no camin_ho" +msgstr "Atrair aos caminhos recortados" #: ../src/ui/dialog/document-properties.cpp:148 msgid "When snapping to paths, then also try snapping to clip paths" -msgstr "" +msgstr "Ao atrair a caminhos, tentar também atrair aos caminhos recortados" #: ../src/ui/dialog/document-properties.cpp:149 -#, fuzzy msgid "Snap to mask paths" -msgstr "Encaixar no camin_ho" +msgstr "Atrair aos caminhos de máscara" #: ../src/ui/dialog/document-properties.cpp:149 msgid "When snapping to paths, then also try snapping to mask paths" -msgstr "" +msgstr "Ao atrair a caminhos, tentar também atrair aos caminhos de máscaras" #: ../src/ui/dialog/document-properties.cpp:150 -#, fuzzy msgid "Snap perpendicularly" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "Atrair perpendicularmente" #: ../src/ui/dialog/document-properties.cpp:150 msgid "" "When snapping to paths or guides, then also try snapping perpendicularly" -msgstr "" +msgstr "Ao atrair a caminhos ou guias, tentar também atrair na perpendicular" #: ../src/ui/dialog/document-properties.cpp:151 -#, fuzzy msgid "Snap tangentially" -msgstr "Desfazer preenchimento" +msgstr "Atrair tangencialmente" #: ../src/ui/dialog/document-properties.cpp:151 msgid "When snapping to paths or guides, then also try snapping tangentially" -msgstr "" +msgstr "Ao atrair a caminhos ou guias, tentar também atrair às tangentes" #: ../src/ui/dialog/document-properties.cpp:154 -#, fuzzy msgctxt "Grid" msgid "_New" -msgstr "_Novo" +msgstr "_Adicionar grelha" #: ../src/ui/dialog/document-properties.cpp:154 msgid "Create new grid." -msgstr "Criar nova grelha." +msgstr "Cria uma nova grelha." #: ../src/ui/dialog/document-properties.cpp:155 -#, fuzzy msgctxt "Grid" msgid "_Remove" msgstr "_Remover" @@ -16169,218 +15151,188 @@ msgstr "Guias" #: ../src/ui/dialog/document-properties.cpp:164 ../src/verbs.cpp:2837 msgid "Snap" -msgstr "Encaixe" +msgstr "Atrair" #: ../src/ui/dialog/document-properties.cpp:166 -#, fuzzy msgid "Scripting" -msgstr "Script" +msgstr "Programação" #: ../src/ui/dialog/document-properties.cpp:330 msgid "General" msgstr "Geral" #: ../src/ui/dialog/document-properties.cpp:333 -#, fuzzy msgid "Page Size" -msgstr "Linha" +msgstr "Tamanho da Página" #: ../src/ui/dialog/document-properties.cpp:336 -#, fuzzy msgid "Background" -msgstr "Plano de fundo:" +msgstr "Fundo" #: ../src/ui/dialog/document-properties.cpp:339 msgid "Border" msgstr "Borda" #: ../src/ui/dialog/document-properties.cpp:342 -#, fuzzy msgid "Display" -msgstr "a" +msgstr "Visualização" #: ../src/ui/dialog/document-properties.cpp:381 msgid "Guides" msgstr "Guias" #: ../src/ui/dialog/document-properties.cpp:399 -#, fuzzy msgid "Snap to objects" -msgstr "Snapping to objects" +msgstr "Atrair aos objetos" #: ../src/ui/dialog/document-properties.cpp:401 -#, fuzzy msgid "Snap to grids" -msgstr "Encaixar à grelha" +msgstr "Atrair às grelhas" #: ../src/ui/dialog/document-properties.cpp:403 -#, fuzzy msgid "Snap to guides" -msgstr "Encaixando às guias" +msgstr "Atrair às guias" #: ../src/ui/dialog/document-properties.cpp:405 msgid "Miscellaneous" -msgstr "Miscelânia" +msgstr "Miscelânea" #. TODO check if this next line was sometimes needed. It being there caused an assertion. #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:526 ../src/verbs.cpp:3020 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:542 ../src/verbs.cpp:3020 msgid "Link Color Profile" -msgstr "Pegar cores da imagem" +msgstr "Perfil de Cor Associado" -#: ../src/ui/dialog/document-properties.cpp:623 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:654 msgid "Remove linked color profile" -msgstr "Remover primitiva de filtro" +msgstr "Remover perfil de cor associado" -#: ../src/ui/dialog/document-properties.cpp:636 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:673 msgid "Linked Color Profiles:" -msgstr "Grelha definidas" +msgstr "Perfis de Cor Associados ao Documento:" -#: ../src/ui/dialog/document-properties.cpp:638 +#: ../src/ui/dialog/document-properties.cpp:675 msgid "Available Color Profiles:" -msgstr "" +msgstr "Perfis de Cor Disponíveis:" -#: ../src/ui/dialog/document-properties.cpp:640 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:677 msgid "Link Profile" -msgstr "_Propriedades da Ligação" +msgstr "Associar Perfil" -#: ../src/ui/dialog/document-properties.cpp:643 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:680 msgid "Unlink Profile" -msgstr "_Propriedades da Ligação" +msgstr "Desassociar Perfil" -#: ../src/ui/dialog/document-properties.cpp:721 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:764 msgid "Profile Name" -msgstr "Renomear ficheiro" +msgstr "Nome do Perfil" -#: ../src/ui/dialog/document-properties.cpp:757 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:800 msgid "External scripts" -msgstr "Editar preenchimento..." +msgstr "Scripts externos" -#: ../src/ui/dialog/document-properties.cpp:758 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:801 msgid "Embedded scripts" -msgstr "Remover grelha" +msgstr "Scripts embutidos" -#: ../src/ui/dialog/document-properties.cpp:763 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:806 msgid "External script files:" -msgstr "Encaixando às guias" +msgstr "Ficheiros de scripts externos:" -#: ../src/ui/dialog/document-properties.cpp:765 +#: ../src/ui/dialog/document-properties.cpp:808 msgid "Add the current file name or browse for a file" -msgstr "" +msgstr "Adicionar o nome do ficheiro atual ou procurar um ficheiro" -#: ../src/ui/dialog/document-properties.cpp:768 -#: ../src/ui/dialog/document-properties.cpp:845 +#: ../src/ui/dialog/document-properties.cpp:811 +#: ../src/ui/dialog/document-properties.cpp:888 #: ../src/ui/widget/selected-style.cpp:357 msgid "Remove" msgstr "Remover" -#: ../src/ui/dialog/document-properties.cpp:832 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:875 msgid "Filename" -msgstr "Renomear ficheiro" +msgstr "Nome do ficheiro" -#: ../src/ui/dialog/document-properties.cpp:840 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:883 msgid "Embedded script files:" -msgstr "Encaixando às guias" +msgstr "Ficheiros script embutidos:" -#: ../src/ui/dialog/document-properties.cpp:842 +#: ../src/ui/dialog/document-properties.cpp:885 #: ../src/ui/dialog/objects.cpp:1894 -#, fuzzy msgid "New" msgstr "Novo" -#: ../src/ui/dialog/document-properties.cpp:909 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:952 msgid "Script id" -msgstr "Script" +msgstr "ID do script" -#: ../src/ui/dialog/document-properties.cpp:915 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:958 msgid "Content:" -msgstr "Expoente:" +msgstr "Conteúdo:" -#: ../src/ui/dialog/document-properties.cpp:1032 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1075 msgid "_Save as default" -msgstr "Ajustar como padrão" +msgstr "_Guardar como padrão" -#: ../src/ui/dialog/document-properties.cpp:1033 +#: ../src/ui/dialog/document-properties.cpp:1076 msgid "Save this metadata as the default metadata" -msgstr "" +msgstr "Guardar estes metadados como metadados padrão" -#: ../src/ui/dialog/document-properties.cpp:1034 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1077 msgid "Use _default" -msgstr "Ajustar como padrão" +msgstr "Usar _padrão" -#: ../src/ui/dialog/document-properties.cpp:1035 +#: ../src/ui/dialog/document-properties.cpp:1078 msgid "Use the previously saved default metadata here" -msgstr "" +msgstr "Usar os metadados padrão gravados anteriormente aqui" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1108 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1151 msgid "Add external script..." -msgstr "Editar preenchimento..." +msgstr "Adicionar script externo..." -#: ../src/ui/dialog/document-properties.cpp:1147 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1190 msgid "Select a script to load" -msgstr "O item não é uma forma ou caminho" +msgstr "Selecionar um script para carregar" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1175 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1218 msgid "Add embedded script..." -msgstr "Editar preenchimento..." +msgstr "Adicionar script embutido..." #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1206 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1249 msgid "Remove external script" -msgstr "Remover texto do caminho" +msgstr "Remover script externo" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1235 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1278 msgid "Remove embedded script" -msgstr "Remover grelha" +msgstr "Remover script embutido" #. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1331 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1374 msgid "Edit embedded script" -msgstr "Remover grelha" +msgstr "Editar script embutido" -#: ../src/ui/dialog/document-properties.cpp:1415 +#: ../src/ui/dialog/document-properties.cpp:1458 msgid "Creation" -msgstr " Criação " +msgstr "Criação" -#: ../src/ui/dialog/document-properties.cpp:1416 +#: ../src/ui/dialog/document-properties.cpp:1459 msgid "Defined grids" msgstr "Grelha definidas" -#: ../src/ui/dialog/document-properties.cpp:1660 +#: ../src/ui/dialog/document-properties.cpp:1703 msgid "Remove grid" msgstr "Remover grelha" -#: ../src/ui/dialog/document-properties.cpp:1752 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:1795 msgid "Changed default display unit" -msgstr "Documento sem nome %d" +msgstr "Alterada a unidade padrão de visualização" #: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2887 msgid "_Page" @@ -16405,48 +15357,47 @@ msgid "Units:" msgstr "Unidades:" #: ../src/ui/dialog/export.cpp:167 -#, fuzzy msgid "_Export As..." -msgstr "_Exportar Bitmap..." +msgstr "_Exportar..." #: ../src/ui/dialog/export.cpp:170 -#, fuzzy msgid "B_atch export all selected objects" -msgstr "Exportar em grupo todos os objectos seleccionados" +msgstr "Exportar em _grupo todos os objetos selecionados" #: ../src/ui/dialog/export.cpp:170 msgid "" "Export each selected object into its own PNG file, using export hints if any " "(caution, overwrites without asking!)" msgstr "" -"Exportar cada objecto seleccionado para seu próprio ficheiro PNG " -"(sobrescreve sem perguntar)" +"Exportar cada um dos objetos selecionados ficheiros PNG separados, " +"utilizando a configuração de exportação (cuidado: grava por cima de " +"ficheiros existentes sem pedir confirmação!)" #: ../src/ui/dialog/export.cpp:172 -#, fuzzy msgid "Hide a_ll except selected" -msgstr "Ocultar tudo exceto seleccionado" +msgstr "_Ocultar tudo exceto o selecionado" #: ../src/ui/dialog/export.cpp:172 msgid "In the exported image, hide all objects except those that are selected" -msgstr "Na imagem exportada, ocultar todos os objectos exceto os seleccionados" +msgstr "" +"Na imagem exportada, ocultar todos os objetos exceto os que estão " +"selecionados" #: ../src/ui/dialog/export.cpp:173 msgid "Close when complete" -msgstr "" +msgstr "Fechar painel após concluído" #: ../src/ui/dialog/export.cpp:173 msgid "Once the export completes, close this dialog" -msgstr "" +msgstr "Após a exportação ser concluída, fechar este painel" #: ../src/ui/dialog/export.cpp:175 msgid "_Export" msgstr "_Exportar" #: ../src/ui/dialog/export.cpp:193 -#, fuzzy msgid "Export area" -msgstr "Exportar área" +msgstr "Ãrea a Exportar" #: ../src/ui/dialog/export.cpp:232 msgid "_x0:" @@ -16457,9 +15408,8 @@ msgid "x_1:" msgstr "x_1:" #: ../src/ui/dialog/export.cpp:240 -#, fuzzy msgid "Wid_th:" -msgstr "Largura:" +msgstr "_Largura:" #: ../src/ui/dialog/export.cpp:244 msgid "_y0:" @@ -16470,18 +15420,16 @@ msgid "y_1:" msgstr "y_1:" #: ../src/ui/dialog/export.cpp:252 -#, fuzzy msgid "Hei_ght:" -msgstr "Altura:" +msgstr "_Altura:" #: ../src/ui/dialog/export.cpp:267 -#, fuzzy msgid "Image size" -msgstr "Linha" +msgstr "Tamanho da imagem" #: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/export.cpp:296 msgid "pixels at" -msgstr "pixels em" +msgstr "píxeis a" #: ../src/ui/dialog/export.cpp:291 msgid "dp_i" @@ -16500,44 +15448,40 @@ msgid "dpi" msgstr "dpi" #: ../src/ui/dialog/export.cpp:312 -#, fuzzy msgid "_Filename" -msgstr "_Nome do ficheiro" +msgstr "Nome do _ficheiro" #: ../src/ui/dialog/export.cpp:354 msgid "Export the bitmap file with these settings" -msgstr "Exportar o ficheiro bitmap com estas configurações" +msgstr "Exportar o ficheiro com estas configurações" #: ../src/ui/dialog/export.cpp:479 -#, fuzzy msgid "bitmap" -msgstr "Bias" +msgstr "imagem bitmap" #: ../src/ui/dialog/export.cpp:614 -#, fuzzy, c-format +#, c-format msgid "B_atch export %d selected object" msgid_plural "B_atch export %d selected objects" -msgstr[0] "Exportar em grupo %d objectos seleccionados" -msgstr[1] "Exportar em grupo %d objectos seleccionados" +msgstr[0] "Exportar %d objeto selecionado" +msgstr[1] "Exportar %d objetos selecionados para ficheiros separados" #: ../src/ui/dialog/export.cpp:930 msgid "Export in progress" -msgstr "Exportação em progresso" +msgstr "A exportar" #: ../src/ui/dialog/export.cpp:1022 -#, fuzzy msgid "No items selected." -msgstr "Nenhum efeito seleccionado" +msgstr "Nenhum item selecionado." #: ../src/ui/dialog/export.cpp:1026 ../src/ui/dialog/export.cpp:1028 -#, fuzzy msgid "Exporting %1 files" -msgstr "Exportando %d ficheiros" +msgstr "A exportar %1 ficheiros" #: ../src/ui/dialog/export.cpp:1069 ../src/ui/dialog/export.cpp:1071 -#, fuzzy, c-format +#, c-format msgid "Exporting file %s..." -msgstr "Exportando %d ficheiros" +msgstr "A exportar ficheiro %s..." #: ../src/ui/dialog/export.cpp:1080 ../src/ui/dialog/export.cpp:1172 #, c-format @@ -16545,28 +15489,28 @@ msgid "Could not export to filename %s.\n" msgstr "Não foi possível exportar para o ficheiro %s.\n" #: ../src/ui/dialog/export.cpp:1083 -#, fuzzy, c-format +#, c-format msgid "Could not export to filename %s." -msgstr "Não foi possível exportar para o ficheiro %s.\n" +msgstr "Não foi possível exportar para o ficheiro %s." #: ../src/ui/dialog/export.cpp:1098 #, c-format msgid "Successfully exported %d files from %d selected items." msgstr "" +"Exportação para %d ficheiros de %d itens selecionados " +"concluída." #: ../src/ui/dialog/export.cpp:1109 -#, fuzzy msgid "You have to enter a filename." -msgstr "Você deve informar um nome de ficheiro" +msgstr "Tem de introduzir um nome do ficheiro." #: ../src/ui/dialog/export.cpp:1110 msgid "You have to enter a filename" -msgstr "Você deve informar um nome de ficheiro" +msgstr "Tem de introduzir um nome do ficheiro" #: ../src/ui/dialog/export.cpp:1124 -#, fuzzy msgid "The chosen area to be exported is invalid." -msgstr "A área escolhida para ser exportada não é válida" +msgstr "A área escolhida para ser exportada não é válida." #: ../src/ui/dialog/export.cpp:1125 msgid "The chosen area to be exported is invalid" @@ -16579,31 +15523,28 @@ msgstr "A pasta %s não existe ou não é uma pasta.\n" #. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image #: ../src/ui/dialog/export.cpp:1154 ../src/ui/dialog/export.cpp:1156 -#, fuzzy msgid "Exporting %1 (%2 x %3)" -msgstr "A exportar %s (%lu x %lu)" +msgstr "A exportar %1 (%2 x %3)" #: ../src/ui/dialog/export.cpp:1183 -#, fuzzy, c-format +#, c-format msgid "Drawing exported to %s." -msgstr "Parâmetro de edição %s." +msgstr "Desenho exportado para %s." #: ../src/ui/dialog/export.cpp:1187 -#, fuzzy msgid "Export aborted." -msgstr "Exportação em progresso" +msgstr "Exportação interrompida." #: ../src/ui/dialog/export.cpp:1308 ../src/ui/interface.cpp:1401 #: ../src/widgets/desktop-widget.cpp:1201 #: ../src/widgets/desktop-widget.cpp:1263 -#, fuzzy msgid "_Cancel" -msgstr "Cancelar" +msgstr "_Cancelar" #: ../src/ui/dialog/export.cpp:1309 ../src/ui/dialog/input.cpp:1082 #: ../src/verbs.cpp:2432 ../src/widgets/desktop-widget.cpp:1202 msgid "_Save" -msgstr "_Guardar" +msgstr "_Gravar" #: ../src/ui/dialog/extension-editor.cpp:81 msgid "Information" @@ -16664,18 +15605,16 @@ msgstr "Parâmetros" #. Fill in the template #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:427 -#, fuzzy msgid "No preview" -msgstr "Pré-visualizar" +msgstr "Sem pré-visualização" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:531 msgid "too large for preview" -msgstr "" +msgstr "demasiado grande para prever" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:617 -#, fuzzy msgid "Enable preview" -msgstr "Pré-Visualizar Ao Vivo" +msgstr "Ativar pré-visualização" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:767 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 @@ -16686,105 +15625,92 @@ msgstr "Pré-Visualizar Ao Vivo" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:826 #: ../src/ui/dialog/filedialogimpl-win32.cpp:286 #: ../src/ui/dialog/filedialogimpl-win32.cpp:417 -#, fuzzy msgid "All Files" -msgstr "Todos os tipos" +msgstr "Todos os Ficheiros" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:792 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:808 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:823 #: ../src/ui/dialog/filedialogimpl-win32.cpp:287 -#, fuzzy msgid "All Inkscape Files" -msgstr "Todas as formas" +msgstr "Todos os Ficheiros Inkscape" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:799 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:815 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:829 #: ../src/ui/dialog/filedialogimpl-win32.cpp:288 -#, fuzzy msgid "All Images" -msgstr "Embutir Todas as Imagens" +msgstr "Todas as Imagens" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:802 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:818 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:832 #: ../src/ui/dialog/filedialogimpl-win32.cpp:289 -#, fuzzy msgid "All Vectors" -msgstr "Seletor" +msgstr "Todos os Ficheiros Vetoriais" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:805 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:821 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:835 #: ../src/ui/dialog/filedialogimpl-win32.cpp:290 -#, fuzzy msgid "All Bitmaps" -msgstr "Bias" +msgstr "Todos os Ficheiros Bitmap" #. ###### File options #. ###### Do we want the .xxx extension automatically added? #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1054 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1612 msgid "Append filename extension automatically" -msgstr "" +msgstr "Adicionar extensão automaticamente" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1227 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1480 -#, fuzzy msgid "Guess from extension" -msgstr "Obter da selecção" +msgstr "Adivinhar da extensão" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1499 msgid "Left edge of source" -msgstr "" +msgstr "Borda esquerda da fonte" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1500 msgid "Top edge of source" -msgstr "" +msgstr "Borda superior da fonte" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 -#, fuzzy msgid "Right edge of source" -msgstr "Nova fonte de luz" +msgstr "Borda direita da fonte" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1502 msgid "Bottom edge of source" -msgstr "" +msgstr "Borda inferior da fonte" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1503 -#, fuzzy msgid "Source width" -msgstr "Escala de largura" +msgstr "Largura da fonte" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1504 -#, fuzzy msgid "Source height" -msgstr "Altura da Barra:" +msgstr "Altura da fonte" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 -#, fuzzy msgid "Destination width" -msgstr "Destino da impressão" +msgstr "Largura do destino" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1506 -#, fuzzy msgid "Destination height" -msgstr "Luz Distante" +msgstr "Altura do destino" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1507 -#, fuzzy msgid "Resolution (dots per inch)" -msgstr "Resolução preferida para a figura (pontos por polegada)" +msgstr "Resolução (pontos por polegada)" #. ######################################### #. ## EXTRA WIDGET -- SOURCE SIDE #. ######################################### #. ##### Export options buttons/spinners, etc #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 -#, fuzzy msgid "Document" -msgstr "Desenho SVG" +msgstr "Documento" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1553 ../src/verbs.cpp:175 #: ../src/widgets/desktop-widget.cpp:2091 @@ -16793,10 +15719,9 @@ msgid "Selection" msgstr "Seleção" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1557 -#, fuzzy msgctxt "Export dialog" msgid "Custom" -msgstr "_Personalizado" +msgstr "Personalizado" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1577 msgid "Source" @@ -16804,41 +15729,36 @@ msgstr "Fonte" # Não sei se a traducao é essa mesmo... essa é traducao literal - krishna #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1597 -#, fuzzy msgid "Cairo" -msgstr "Carvão" +msgstr "Cairo" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1600 msgid "Antialias" -msgstr "" +msgstr "Anti-serrilhado" #: ../src/ui/dialog/filedialogimpl-win32.cpp:418 -#, fuzzy msgid "All Executable Files" -msgstr "Embutir Todas as Imagens" +msgstr "Todos os Ficheiros Executáveis" #: ../src/ui/dialog/filedialogimpl-win32.cpp:610 -#, fuzzy msgid "Show Preview" -msgstr "Pré-visualizar" +msgstr "Mostrar Pré-Visualização" #: ../src/ui/dialog/filedialogimpl-win32.cpp:748 -#, fuzzy msgid "No file selected" -msgstr "Nenhum efeito seleccionado" +msgstr "Nenhum ficheiro selecionado" #: ../src/ui/dialog/fill-and-stroke.cpp:62 -#, fuzzy msgid "_Fill" -msgstr "Preenchimento" +msgstr "_Preenchimento" #: ../src/ui/dialog/fill-and-stroke.cpp:63 msgid "Stroke _paint" -msgstr "_Pintura de traço" +msgstr "_Pintura do traço" #: ../src/ui/dialog/fill-and-stroke.cpp:64 msgid "Stroke st_yle" -msgstr "Estilo de traço" +msgstr "_Estilo do traço" #. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor #: ../src/ui/dialog/filter-effects-dialog.cpp:547 @@ -16848,62 +15768,58 @@ msgid "" "component from the input is passed to the output. The last column does not " "depend on input colors, so can be used to adjust a constant component value." msgstr "" +"Esta matriz determina uma transformação linear no espaço de cor. Cada linha " +"afeta um dos componentes de cor. Cada coluna determina quanto de cada " +"componente de cor de entrada é passado para a saída. A última coluna não " +"depende das cores de entrada, por isso pode ser usada para ajustar um valor " +"de componente constante." #: ../src/ui/dialog/filter-effects-dialog.cpp:550 #: ../share/extensions/grid_polar.inx.h:4 -#, fuzzy msgctxt "Label" msgid "None" msgstr "Nenhum" #: ../src/ui/dialog/filter-effects-dialog.cpp:657 -#, fuzzy msgid "Image File" -msgstr "Imagem" +msgstr "Ficheiro de Imagem" #: ../src/ui/dialog/filter-effects-dialog.cpp:660 -#, fuzzy msgid "Selected SVG Element" -msgstr "Eliminar Segmento" +msgstr "Elemento SVG Selecionado" #. TODO: any image, not just svg #: ../src/ui/dialog/filter-effects-dialog.cpp:730 -#, fuzzy msgid "Select an image to be used as feImage input" -msgstr "Seleccione uma imagem e uma ou mais formas acima dela" +msgstr "Selecionar uma imagem a ser usada como entrada feImage" #: ../src/ui/dialog/filter-effects-dialog.cpp:822 msgid "This SVG filter effect does not require any parameters." -msgstr "" +msgstr "Este efeito de filtro SVG não requer parâmetros." #: ../src/ui/dialog/filter-effects-dialog.cpp:828 msgid "This SVG filter effect is not yet implemented in Inkscape." -msgstr "" +msgstr "Este efeito de filtro SVG ainda não está implementado no Inkscape." #: ../src/ui/dialog/filter-effects-dialog.cpp:1042 -#, fuzzy msgid "Slope" -msgstr "Envelope" +msgstr "Inclinar" #: ../src/ui/dialog/filter-effects-dialog.cpp:1043 -#, fuzzy msgid "Intercept" msgstr "Interceptar" #: ../src/ui/dialog/filter-effects-dialog.cpp:1046 -#, fuzzy msgid "Amplitude" msgstr "Amplitude" #: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#, fuzzy msgid "Exponent" msgstr "Expoente" #: ../src/ui/dialog/filter-effects-dialog.cpp:1144 -#, fuzzy msgid "New transfer function type" -msgstr "Todos os tipos" +msgstr "Novo tipo de função de transferência" #: ../src/ui/dialog/filter-effects-dialog.cpp:1179 msgid "Light Source:" @@ -16911,41 +15827,37 @@ msgstr "Fonte de Luz:" #: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Direction angle for the light source on the XY plane, in degrees" -msgstr "" +msgstr "Ângulo de direção para a fonte de luz no plano XY, em graus" #: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Direction angle for the light source on the YZ plane, in degrees" -msgstr "" +msgstr "Ângulo de direção para a fonte de luz no plano YZ, em graus" #. default x: #. default y: #. default z: #: ../src/ui/dialog/filter-effects-dialog.cpp:1200 #: ../src/ui/dialog/filter-effects-dialog.cpp:1203 -#, fuzzy msgid "Location:" -msgstr "Localização" +msgstr "Localização:" #: ../src/ui/dialog/filter-effects-dialog.cpp:1200 #: ../src/ui/dialog/filter-effects-dialog.cpp:1203 #: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -#, fuzzy msgid "X coordinate" -msgstr "Coordenada X:" +msgstr "Coordenada X" #: ../src/ui/dialog/filter-effects-dialog.cpp:1200 #: ../src/ui/dialog/filter-effects-dialog.cpp:1203 #: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -#, fuzzy msgid "Y coordinate" -msgstr "Coordenada Y:" +msgstr "Coordenada Y" #: ../src/ui/dialog/filter-effects-dialog.cpp:1200 #: ../src/ui/dialog/filter-effects-dialog.cpp:1203 #: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -#, fuzzy msgid "Z coordinate" -msgstr "Coordenada X:" +msgstr "Coordenada Z" #: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Points At" @@ -16957,12 +15869,12 @@ msgstr "Exponente Especular" #: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Exponent value controlling the focus for the light source" -msgstr "" +msgstr "Valor exponente que controla o foco para a fonte de luz" #. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. #: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "Cone Angle" -msgstr "Ângulo de Cone" +msgstr "Ângulo do Cone" #: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "" @@ -16970,6 +15882,9 @@ msgid "" "light source and the point to which it is pointing at) and the spot light " "cone. No light is projected outside this cone." msgstr "" +"Isto é o ângulo entre o eixo do foco de luz (isto é, o eixo entre a fonte de " +"luz e o ponto para o qual aponta) e o cone do foco de luz. Nenhuma luz é " +"projetada fora deste cone." #: ../src/ui/dialog/filter-effects-dialog.cpp:1275 msgid "New light source" @@ -16981,24 +15896,23 @@ msgstr "_Duplicar" #: ../src/ui/dialog/filter-effects-dialog.cpp:1360 msgid "_Filter" -msgstr "_Filtrar" +msgstr "_Filtro" #: ../src/ui/dialog/filter-effects-dialog.cpp:1388 msgid "R_ename" -msgstr "R_enomear" +msgstr "_Alterar Nome" #: ../src/ui/dialog/filter-effects-dialog.cpp:1522 msgid "Rename filter" -msgstr "Renomear filtro" +msgstr "Alterar nome do filtro" #: ../src/ui/dialog/filter-effects-dialog.cpp:1574 msgid "Apply filter" msgstr "Aplicar filtro" #: ../src/ui/dialog/filter-effects-dialog.cpp:1654 -#, fuzzy msgid "filter" -msgstr "_Filtrar" +msgstr "filtro" #: ../src/ui/dialog/filter-effects-dialog.cpp:1661 msgid "Add filter" @@ -17014,19 +15928,17 @@ msgstr "_Efeito" #: ../src/ui/dialog/filter-effects-dialog.cpp:1820 msgid "Connections" -msgstr "Conexões" +msgstr "Ligações" #: ../src/ui/dialog/filter-effects-dialog.cpp:1958 msgid "Remove filter primitive" msgstr "Remover primitiva de filtro" #: ../src/ui/dialog/filter-effects-dialog.cpp:2545 -#, fuzzy msgid "Remove merge node" -msgstr "Remover verde" +msgstr "Remover nó de união" #: ../src/ui/dialog/filter-effects-dialog.cpp:2665 -#, fuzzy msgid "Reorder filter primitive" msgstr "Reordenar primitiva de filtro" @@ -17036,54 +15948,48 @@ msgstr "Adicionar Efeito:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2746 msgid "No effect selected" -msgstr "Nenhum efeito seleccionado" +msgstr "Nenhum efeito selecionado" #: ../src/ui/dialog/filter-effects-dialog.cpp:2747 -#, fuzzy msgid "No filter selected" -msgstr "Nenhum efeito seleccionado" +msgstr "Nenhum filtro selecionado" #: ../src/ui/dialog/filter-effects-dialog.cpp:2814 -#, fuzzy msgid "Effect parameters" -msgstr "Parâmetros de efeitos" +msgstr "Parâmetros do efeito" #: ../src/ui/dialog/filter-effects-dialog.cpp:2815 msgid "Filter General Settings" -msgstr "" +msgstr "Definições Gerais do Filtro" #. default x: #. default y: #: ../src/ui/dialog/filter-effects-dialog.cpp:2875 -#, fuzzy msgid "Coordinates:" -msgstr "Coordenadas do cursor" +msgstr "Coordenadas:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2875 -#, fuzzy msgid "X coordinate of the left corners of filter effects region" -msgstr "Criar e ladrilhar os clones da selecção" +msgstr "Coordenada X dos cantos esquerdos da região dos filtros de efeitos" #: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "Y coordinate of the upper corners of filter effects region" msgstr "" +"Coordenada Y dos cantos esquerdos da região dos filtros de efeitosselec" #. default width: #. default height: #: ../src/ui/dialog/filter-effects-dialog.cpp:2876 -#, fuzzy msgid "Dimensions:" -msgstr "Divisão" +msgstr "Dimensões:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2876 -#, fuzzy msgid "Width of filter effects region" -msgstr "Largura da selecção" +msgstr "Largura da região de efeitos de filtros" #: ../src/ui/dialog/filter-effects-dialog.cpp:2876 -#, fuzzy msgid "Height of filter effects region" -msgstr "Altura da selecção" +msgstr "Altura da região de efeitos de filtros" #: ../src/ui/dialog/filter-effects-dialog.cpp:2882 msgid "" @@ -17092,43 +15998,40 @@ msgid "" "convenience shortcuts to allow commonly used color operations to be " "performed without specifying a complete matrix." msgstr "" +"Indica o tipo da operação de matriz. A palavra-chave 'matriz' indica que " +"será fornecida uma matriz completa de 5x4 de valores. As outras palavras-" +"chave representam atalhos de conveniência para permitir operações de cor " +"normalmente usadas a serem utilizadas sem especificar a matriz completa." #: ../src/ui/dialog/filter-effects-dialog.cpp:2883 -#, fuzzy msgid "Value(s):" -msgstr "Valore(s)" +msgstr "Valores:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -#, fuzzy msgid "R:" -msgstr "Rx:" +msgstr "R:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2888 #: ../src/ui/widget/color-icc-selector.cpp:180 -#, fuzzy msgid "G:" -msgstr "_G" +msgstr "G:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2889 -#, fuzzy msgid "B:" -msgstr "_B" +msgstr "B:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2890 -#, fuzzy msgid "A:" -msgstr "_A" +msgstr "T:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2893 #: ../src/ui/dialog/filter-effects-dialog.cpp:2933 -#, fuzzy msgid "Operator:" -msgstr "Operador" +msgstr "Operador:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2894 -#, fuzzy msgid "K1:" -msgstr "K1" +msgstr "K1:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2894 #: ../src/ui/dialog/filter-effects-dialog.cpp:2895 @@ -17139,35 +16042,33 @@ msgid "" "the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " "values of the first and second inputs respectively." msgstr "" +"Se for escolhida a operação aritmética, cada píxel resultante é processado " +"utilizando a fórmula k1*i1*i2 + k2*i1 + k3*i2 + k4 onde i1 e i2 são os " +"valores do píxel da primeira e segunda entrada respetivamente." #: ../src/ui/dialog/filter-effects-dialog.cpp:2895 -#, fuzzy msgid "K2:" -msgstr "K2" +msgstr "K2:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2896 -#, fuzzy msgid "K3:" -msgstr "K3" +msgstr "K3:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2897 -#, fuzzy msgid "K4:" -msgstr "K4" +msgstr "K4:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "Size:" msgstr "Tamanho:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -#, fuzzy msgid "width of the convolve matrix" -msgstr "Largura do padrão" +msgstr "largura da matriz de convulsão" #: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -#, fuzzy msgid "height of the convolve matrix" -msgstr "Altura do retângulo a ser preenchido" +msgstr "altura da matriz de convulsão" #. default x: #. default y: @@ -17181,18 +16082,21 @@ msgid "" "X coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." msgstr "" +"Coordenada X do ponto alvo na matriz de convulsão (enrolar). A convulsão é " +"aplicada aos píxeis à volta deste ponto." #: ../src/ui/dialog/filter-effects-dialog.cpp:2901 msgid "" "Y coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." msgstr "" +"Coordenada Y do ponto alvo na matriz de convulsão (enrolar). A convulsão é " +"aplicada aos píxeis à volta deste ponto." #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) #: ../src/ui/dialog/filter-effects-dialog.cpp:2903 -#, fuzzy msgid "Kernel:" -msgstr "Kernel" +msgstr "Núcleo:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "" @@ -17203,11 +16107,16 @@ msgid "" "the matrix diagonal) while a matrix filled with a constant non-zero value " "would lead to a common blur effect." msgstr "" +"Esta matriz descreve a operação de convolver (enrolar) que é aplicada à " +"imagem de forma a calcular as cores dos píxeis na imagem resultante. " +"Arranjos diferentes nos valores desta matriz resultam em vários efeitos " +"possíveis. Uma matriz de entidade conduzirá a um efeito de desfocado de " +"movimento (paralelo à diagonal da matriz) enquanto que uma matriz preenchida " +"com um valor constante não zero levará a um efeito de desfocado comum." #: ../src/ui/dialog/filter-effects-dialog.cpp:2905 -#, fuzzy msgid "Divisor:" -msgstr "Divisor" +msgstr "Divisor:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2905 msgid "" @@ -17216,22 +16125,26 @@ msgid "" "divisor that is the sum of all the matrix values tends to have an evening " "effect on the overall color intensity of the result." msgstr "" +"Após aplicar a matriz de núcleo (kernelMatrix) à imagem para ceder um " +"número, esse número é dividido por um divisor para ceder o valor da cor de " +"destino final. Um divisor que seja a soma de todos os valores da matriz " +"tende a ter um efeito terminal na intensidade de cor geral do resultado." #: ../src/ui/dialog/filter-effects-dialog.cpp:2906 -#, fuzzy msgid "Bias:" -msgstr "Bias" +msgstr "Tendência:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2906 msgid "" "This value is added to each component. This is useful to define a constant " "value as the zero response of the filter." msgstr "" +"Este valor é adicionado a cada componente. Isto é útil para definir um valor " +"constante como a resposta zero do filtro." #: ../src/ui/dialog/filter-effects-dialog.cpp:2907 -#, fuzzy msgid "Edge Mode:" -msgstr "Modo Limite" +msgstr "Modo Borda:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2907 msgid "" @@ -17239,32 +16152,34 @@ msgid "" "that the matrix operations can be applied when the kernel is positioned at " "or near the edge of the input image." msgstr "" +"Determina como estender a imagem conforme necessário com valores de cor para " +"que a operação de matriz possa ser aplicada quando o núcleo é posicionado em " +"ou perto da borda da imagem." #: ../src/ui/dialog/filter-effects-dialog.cpp:2908 -#, fuzzy msgid "Preserve Alpha" -msgstr "Preservada" +msgstr "Manter Transparência" #: ../src/ui/dialog/filter-effects-dialog.cpp:2908 msgid "If set, the alpha channel won't be altered by this filter primitive." msgstr "" +"Se definido, o canal de transparência (alfa) não será alterado por este " +"filtro." #. default: white #: ../src/ui/dialog/filter-effects-dialog.cpp:2911 -#, fuzzy msgid "Diffuse Color:" -msgstr "Cores Visíveis" +msgstr "Cor Difusa:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2911 #: ../src/ui/dialog/filter-effects-dialog.cpp:2944 msgid "Defines the color of the light source" -msgstr "" +msgstr "Define a cor da fonte de luz" #: ../src/ui/dialog/filter-effects-dialog.cpp:2912 #: ../src/ui/dialog/filter-effects-dialog.cpp:2945 -#, fuzzy msgid "Surface Scale:" -msgstr "Escala da Superfície" +msgstr "Escala da Superfície:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2912 #: ../src/ui/dialog/filter-effects-dialog.cpp:2945 @@ -17272,143 +16187,138 @@ msgid "" "This value amplifies the heights of the bump map defined by the input alpha " "channel" msgstr "" +"Este valor amplifica a altura do mapa de saliência definido pelo canal de " +"transparência" #: ../src/ui/dialog/filter-effects-dialog.cpp:2913 #: ../src/ui/dialog/filter-effects-dialog.cpp:2946 -#, fuzzy msgid "Constant:" -msgstr "Constante" +msgstr "Constante:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2913 #: ../src/ui/dialog/filter-effects-dialog.cpp:2946 msgid "This constant affects the Phong lighting model." -msgstr "" +msgstr "Esta constante afeta o modelo de luz Phong." #: ../src/ui/dialog/filter-effects-dialog.cpp:2914 #: ../src/ui/dialog/filter-effects-dialog.cpp:2948 msgid "Kernel Unit Length:" -msgstr "" +msgstr "Comprimento da Unidade do Núcleo:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2918 msgid "This defines the intensity of the displacement effect." -msgstr "" +msgstr "Isto define a intensidade do efeito de deslocamento." #: ../src/ui/dialog/filter-effects-dialog.cpp:2919 -#, fuzzy msgid "X displacement:" -msgstr "Mapa de Deslocamento" +msgstr "Deslocamento X:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "Color component that controls the displacement in the X direction" -msgstr "" +msgstr "Componente da cor que controla o deslocamento na direção X" #: ../src/ui/dialog/filter-effects-dialog.cpp:2920 -#, fuzzy msgid "Y displacement:" -msgstr "Mapa de Deslocamento" +msgstr "Deslocamento Y:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Color component that controls the displacement in the Y direction" -msgstr "" +msgstr "Componente da cor que controla o deslocamento na direção Y" #. default: black #: ../src/ui/dialog/filter-effects-dialog.cpp:2923 -#, fuzzy msgid "Flood Color:" -msgstr "Flood Color" +msgstr "Cor de Inundar:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "The whole filter region will be filled with this color." -msgstr "" +msgstr "Toda a região do filtro será preenchida com esta cor." #: ../src/ui/dialog/filter-effects-dialog.cpp:2927 -#, fuzzy msgid "Standard Deviation:" -msgstr "Desvio Padrão" +msgstr "Desvio Padrão:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2927 msgid "The standard deviation for the blur operation." -msgstr "" +msgstr "O desvio padrão para a operação de desfocagem." #: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." msgstr "" +"Erosão: faz o \"estreitamento\" da imagem.\n" +"Dilatação: faz o \"alargamento\" da imagem." #: ../src/ui/dialog/filter-effects-dialog.cpp:2937 -#, fuzzy msgid "Source of Image:" -msgstr "Número de páginas" +msgstr "Fonte da Imagem:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2940 -#, fuzzy msgid "Delta X:" -msgstr "Delta X" +msgstr "Delta X:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2940 msgid "This is how far the input image gets shifted to the right" -msgstr "" +msgstr "Isto é quão longe a imagem de entrada é deslocada para a direita" #: ../src/ui/dialog/filter-effects-dialog.cpp:2941 -#, fuzzy msgid "Delta Y:" -msgstr "Delta Y" +msgstr "Delta Y:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2941 msgid "This is how far the input image gets shifted downwards" -msgstr "" +msgstr "Isto é quão longe a imagem de entrada é deslocada para baixo" #. default: white #: ../src/ui/dialog/filter-effects-dialog.cpp:2944 -#, fuzzy msgid "Specular Color:" -msgstr "Cor especular" +msgstr "Cor Especular:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2947 #: ../share/extensions/interp.inx.h:2 -#, fuzzy msgid "Exponent:" -msgstr "Expoente" +msgstr "Expoente:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2947 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "" +"Exponente para o termo especular, quanto maior o valor mais é brilhante, " +"mais luz reflete." #: ../src/ui/dialog/filter-effects-dialog.cpp:2956 msgid "" "Indicates whether the filter primitive should perform a noise or turbulence " "function." -msgstr "" +msgstr "Indica se um filtro deve fazer uma função ruído ou turbulência." #: ../src/ui/dialog/filter-effects-dialog.cpp:2957 -#, fuzzy msgid "Base Frequency:" -msgstr "Freqüência Base" +msgstr "Frequência Base:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2958 -#, fuzzy msgid "Octaves:" -msgstr "Oitavos" +msgstr "Oitavos:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2959 -#, fuzzy msgid "Seed:" -msgstr "Velocidade:" +msgstr "Semear:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2959 msgid "The starting number for the pseudo random number generator." -msgstr "" +msgstr "O número inicial do pseudo gerador de números aleatórios." #: ../src/ui/dialog/filter-effects-dialog.cpp:2971 msgid "Add filter primitive" -msgstr "Adicionar filtro " +msgstr "Adicionar filtro" #: ../src/ui/dialog/filter-effects-dialog.cpp:2986 msgid "" "The feBlend filter primitive provides 4 image blending modes: screen, " "multiply, darken and lighten." msgstr "" +"O filtro feBlend fornece 4 modos de mistura de imagem: ecrã, " +"multiplicar, mais escuro e mais claro." #: ../src/ui/dialog/filter-effects-dialog.cpp:2990 msgid "" @@ -17416,6 +16326,9 @@ msgid "" "color of each rendered pixel. This allows for effects like turning object to " "grayscale, modifying color saturation and changing color hue." msgstr "" +"O feColorMatrix aplica uma matriz de transformação para colorir cada " +"píxel renderizado. Isto permite efeitos como tornar um objeto em escala de " +"cinza, alterar a saturação da cor e alterar a matiz da cor." #: ../src/ui/dialog/filter-effects-dialog.cpp:2994 msgid "" @@ -17424,6 +16337,10 @@ msgid "" "transfer functions, allowing operations like brightness and contrast " "adjustment, color balance, and thresholding." msgstr "" +"O filtro feComponentTransfer manipula a entrada dos componentes de " +"cor (vermelho, verde, azul e trasnparência) de acordo com funções " +"particulares de transferência, permitindo operações como o ajuste da " +"luminosidade, contraste, balanço de cores e limiar." #: ../src/ui/dialog/filter-effects-dialog.cpp:2998 msgid "" @@ -17432,6 +16349,10 @@ msgid "" "standard. Porter-Duff blending modes are essentially logical operations " "between the corresponding pixel values of the images." msgstr "" +"O filtro feComposite mistura 2 imagens utilizando um dos modos de " +"mistura Porter-Duff ou o modo aritmético descrito no padrão SVG. Os modos de " +"mistura Porter-Duff são essencialmente operações lógicas entre os valores " +"correspondentes de píxeis das imagens." #: ../src/ui/dialog/filter-effects-dialog.cpp:3002 msgid "" @@ -17441,6 +16362,12 @@ msgid "" "be created using this filter primitive, the special gaussian blur primitive " "is faster and resolution-independent." msgstr "" +"O feConvolveMatrix permite especificar uma Convulção (aspeto " +"enrolado) a ser aplicada na imagem. Os efeitos comuns criados utilizando " +"matrizes de convulção são desfocar, nitidez, alto relevo e deteção de " +"bordas. Notar que apesar do desfocar gaussiano poder ser criado utilizando a " +"primitiva deste filtro, a primitiva especial de desfocagem gaussiana é mais " +"rápida e é independente da resolução." #: ../src/ui/dialog/filter-effects-dialog.cpp:3006 msgid "" @@ -17449,6 +16376,11 @@ msgid "" "information: higher opacity areas are raised toward the viewer and lower " "opacity areas recede away from the viewer." msgstr "" +"Os filtros feDiffuseLighting e feSpecularLighting criam " +"sombreados em \"alto relevo\". O canal de transparência de entrada é " +"utilizado para fornecer informação de profundidade: as áreas com menos " +"transparência são levantadas na direção do observador e as áreas com mais " +"transparência são afastadas do observador." #: ../src/ui/dialog/filter-effects-dialog.cpp:3010 msgid "" @@ -17457,6 +16389,10 @@ msgid "" "how far the pixel should come from. Classical examples are whirl and pinch " "effects." msgstr "" +"O filtro feDisplacementMap desloca os píxeis na primeira fonte " +"utilizando a segunda fonte como um mapa de deslocamento. Isso mostra quão " +"longe o píxel se deve deslocar. Exemplos clássicos são os efeitos de rodar e " +"apertar." #: ../src/ui/dialog/filter-effects-dialog.cpp:3014 msgid "" @@ -17464,18 +16400,26 @@ msgid "" "opacity. It is usually used as an input to other filters to apply color to " "a graphic." msgstr "" +"O filtro feFlood preenche a região com uma cor e opacidade definidos. " +"É normalmente utilizado como entrada para outros filtros para aplicar cor a " +"um gráfico." #: ../src/ui/dialog/filter-effects-dialog.cpp:3018 msgid "" "The feGaussianBlur filter primitive uniformly blurs its input. It is " "commonly used together with feOffset to create a drop shadow effect." msgstr "" +"O filtro feGaussianBlur desfoca uniformemente a entrada. É utilizado " +"normalmente em conjunto com o filtro feOffset para criar um efeito de sombra " +"caída." #: ../src/ui/dialog/filter-effects-dialog.cpp:3022 msgid "" "The feImage filter primitive fills the region with an external image " "or another part of the document." msgstr "" +"O filtro feImage preenche a região com uma imagem externa ou com " +"outra parte do documento." #: ../src/ui/dialog/filter-effects-dialog.cpp:3026 msgid "" @@ -17484,6 +16428,10 @@ msgid "" "compositing for this. This is equivalent to using several feBlend primitives " "in 'normal' mode or several feComposite primitives in 'over' mode." msgstr "" +"O filtro feMerge mistura temporariamente várias imagens dentor do " +"filtro numa só imagem. Para isso usa a mistura normal do canal de " +"transparência. Isto é o equivalente a usar vários filtros feBlend (mistura) " +"no modo 'normal' ou vários feComposite (mistura) no modo por 'cima'." #: ../src/ui/dialog/filter-effects-dialog.cpp:3030 msgid "" @@ -17491,6 +16439,9 @@ msgid "" "For single-color objects erode makes the object thinner and dilate makes it " "thicker." msgstr "" +"O filtro feMorphology faz efeitos de erosão e dilatação. Para objetos " +"de uma só cor, a erosão torna o objeto mais fino e o dilatar torna-os mais " +"grossos." #: ../src/ui/dialog/filter-effects-dialog.cpp:3034 msgid "" @@ -17498,6 +16449,9 @@ msgid "" "amount. For example, this is useful for drop shadows, where the shadow is in " "a slightly different position than the actual object." msgstr "" +"O filtro feOffset desloca a imagem numa distância fornecida. Por " +"exemplo, isto é útil para sombras caídas, onde a sombra está numa posição " +"ligeiramente diferente do objeto atual." #: ../src/ui/dialog/filter-effects-dialog.cpp:3038 msgid "" @@ -17506,12 +16460,19 @@ msgid "" "depth information: higher opacity areas are raised toward the viewer and " "lower opacity areas recede away from the viewer." msgstr "" +"Os filtros feDiffuseLighting e feSpecularLighting criam " +"sombreados em \"alto relevo\". O canal de transparência de entrada é " +"utilizado para fornecer informação de profundidade: as áreas com menos " +"transparência são levantadas na direção do observador e as áreas com mais " +"transparência são afastadas do observador." #: ../src/ui/dialog/filter-effects-dialog.cpp:3042 msgid "" "The feTile filter primitive tiles a region with an input graphic. The " "source tile is defined by the filter primitive subregion of the input." msgstr "" +"O filtro feTile ladrilha uma região com uma imagem. A imagem de " +"origem é definida pela subregião do filtro." #: ../src/ui/dialog/filter-effects-dialog.cpp:3046 msgid "" @@ -17519,6 +16480,9 @@ msgid "" "noise is useful in simulating several nature phenomena like clouds, fire and " "smoke and in generating complex textures like marble or granite." msgstr "" +"O filtro feTurbulence renderiza ruído Perlin. Este tipo de ruído é " +"útil para simular vários fenómenos naturais como nuvens, fogo e fumo e a " +"gerar texturas complexas como mármore e granito." #: ../src/ui/dialog/filter-effects-dialog.cpp:3066 msgid "Duplicate filter primitive" @@ -17530,178 +16494,159 @@ msgstr "Definir atributo de primitiva de filtro" #: ../src/ui/dialog/find.cpp:72 msgid "F_ind:" -msgstr "" +msgstr "P_rocurar:" #: ../src/ui/dialog/find.cpp:72 -#, fuzzy msgid "Find objects by their content or properties (exact or partial match)" msgstr "" -"Encontrar objectos pelo seu conteúdo de texto (por casamento exato ou " -"parcial)" +"Procura objetos pelo seu conteúdo ou propriedades (por correspondência exata " +"ou parcial)" #: ../src/ui/dialog/find.cpp:73 -#, fuzzy msgid "R_eplace:" -msgstr "Substituir" +msgstr "_Substituir por:" #: ../src/ui/dialog/find.cpp:73 -#, fuzzy msgid "Replace match with this value" -msgstr "0 (transparente)" +msgstr "Substituir resultados que correspondam com este valor" #: ../src/ui/dialog/find.cpp:75 msgid "_All" -msgstr "" +msgstr "T_udo" #: ../src/ui/dialog/find.cpp:75 -#, fuzzy msgid "Search in all layers" -msgstr "Selecionar em todas as camadas" +msgstr "Procurar em todas as camadas" #: ../src/ui/dialog/find.cpp:76 -#, fuzzy msgid "Current _layer" -msgstr "Camada actual" +msgstr "_Camada atual" #: ../src/ui/dialog/find.cpp:76 msgid "Limit search to the current layer" -msgstr "Limitar a busca à camada actual" +msgstr "Limitar a procura à camada atual" #: ../src/ui/dialog/find.cpp:77 -#, fuzzy msgid "Sele_ction" -msgstr "Seleção" +msgstr "_Seleção" #: ../src/ui/dialog/find.cpp:77 msgid "Limit search to the current selection" -msgstr "Limitar a busca na selecção actual" +msgstr "Limitar a procura à seleção atual" #: ../src/ui/dialog/find.cpp:78 -#, fuzzy msgid "Search in text objects" -msgstr "Procurar objectos de texto" +msgstr "Procurar nos objetos de texto" #: ../src/ui/dialog/find.cpp:79 -#, fuzzy msgid "_Properties" -msgstr "%s Propriedades" +msgstr "Propr_iedades" #: ../src/ui/dialog/find.cpp:79 msgid "Search in object properties, styles, attributes and IDs" msgstr "" +"Procurar nas propriedades dos objetos, estilos, atributos e identificadores " +"(ID)" #: ../src/ui/dialog/find.cpp:81 -#, fuzzy msgid "Search in" -msgstr "Procurar" +msgstr "Procurar em" #: ../src/ui/dialog/find.cpp:82 msgid "Scope" -msgstr "" +msgstr "Abrangência" #: ../src/ui/dialog/find.cpp:84 -#, fuzzy msgid "Case sensiti_ve" -msgstr "Sensibilidade de agarrar:" +msgstr "Sensível a _maiúsculas e minúsculas" #: ../src/ui/dialog/find.cpp:84 msgid "Match upper/lower case" msgstr "" +"Sensível a maiúscula/minúscula, caso se procure por \"Abelha\" apenas " +"encontra \"Abelha\" e não \"abelha\"" #: ../src/ui/dialog/find.cpp:85 -#, fuzzy msgid "E_xact match" -msgstr "Extrair Uma Imagem" +msgstr "Correspondência e_xata" #: ../src/ui/dialog/find.cpp:85 -#, fuzzy msgid "Match whole objects only" -msgstr "Inverter objectos seleccionados horizontalmente" +msgstr "" +"Apenas encontra objetos que correspondam exatamente à procura (e não " +"parcialmente)" #: ../src/ui/dialog/find.cpp:86 msgid "Include _hidden" -msgstr "Incluir _ocultos" +msgstr "Incluir objetos _ocultos" #: ../src/ui/dialog/find.cpp:86 msgid "Include hidden objects in search" -msgstr "Incluir objectos ocultos à busca" +msgstr "Incluir objetos ocultos na procura" #: ../src/ui/dialog/find.cpp:87 -#, fuzzy msgid "Include loc_ked" -msgstr "Incluir bl_oqueados" +msgstr "Incluir objetos _bloqueados" #: ../src/ui/dialog/find.cpp:87 msgid "Include locked objects in search" -msgstr "Incluir objectos bloqueados na pesquisa" +msgstr "Incluir objetos bloqueados na procura" #: ../src/ui/dialog/find.cpp:89 -#, fuzzy msgid "General" -msgstr "Geral" +msgstr "Geral" #: ../src/ui/dialog/find.cpp:91 -#, fuzzy msgid "_ID" -msgstr "_ID: " +msgstr "_ID" #: ../src/ui/dialog/find.cpp:91 -#, fuzzy msgid "Search id name" -msgstr "Procurar imagens" +msgstr "Procurar nome ID (identificador)" #: ../src/ui/dialog/find.cpp:92 -#, fuzzy msgid "Attribute _name" -msgstr "Nome do atributo" +msgstr "_Nome do atributo" #: ../src/ui/dialog/find.cpp:92 -#, fuzzy msgid "Search attribute name" -msgstr "Nome do atributo" +msgstr "Procurar no nome do atributo" #: ../src/ui/dialog/find.cpp:93 -#, fuzzy msgid "Attri_bute value" -msgstr "Valor do atributo" +msgstr "_Valor do atributo" #: ../src/ui/dialog/find.cpp:93 -#, fuzzy msgid "Search attribute value" -msgstr "Valor do atributo" +msgstr "Procurar no valor do atributo" #: ../src/ui/dialog/find.cpp:94 -#, fuzzy msgid "_Style" -msgstr "E_stilo: " +msgstr "_Estilo" #: ../src/ui/dialog/find.cpp:94 -#, fuzzy msgid "Search style" -msgstr "Procurar clones" +msgstr "Procurar estilo" #: ../src/ui/dialog/find.cpp:95 msgid "F_ont" -msgstr "" +msgstr "F_onte" #: ../src/ui/dialog/find.cpp:95 -#, fuzzy msgid "Search fonts" -msgstr "Procurar clones" +msgstr "Procurar fontes" #: ../src/ui/dialog/find.cpp:96 -#, fuzzy msgid "Properties" -msgstr "%s Propriedades" +msgstr "Propriedades" #: ../src/ui/dialog/find.cpp:98 msgid "All types" msgstr "Todos os tipos" #: ../src/ui/dialog/find.cpp:98 -#, fuzzy msgid "Search all object types" -msgstr "Procurar em todos os tipos de objecto" +msgstr "Procurar em todos os tipos de objetos" #: ../src/ui/dialog/find.cpp:99 msgid "Rectangles" @@ -17713,7 +16658,7 @@ msgstr "Procurar retângulos" #: ../src/ui/dialog/find.cpp:100 msgid "Ellipses" -msgstr "Elipses" +msgstr "Círculos, Arcos, Elipses" #: ../src/ui/dialog/find.cpp:100 msgid "Search ellipses, arcs, circles" @@ -17721,7 +16666,7 @@ msgstr "Procurar elipses, arcos e círculos" #: ../src/ui/dialog/find.cpp:101 msgid "Stars" -msgstr "Estrelas" +msgstr "Estrelas, Polígonos" #: ../src/ui/dialog/find.cpp:101 msgid "Search stars and polygons" @@ -17749,7 +16694,7 @@ msgstr "Textos" #: ../src/ui/dialog/find.cpp:104 msgid "Search text objects" -msgstr "Procurar objectos de texto" +msgstr "Procurar objetos de texto" #: ../src/ui/dialog/find.cpp:105 msgid "Groups" @@ -17761,7 +16706,6 @@ msgstr "Procurar grupos" #. TRANSLATORS: "Clones" is a noun indicating type of object to find #: ../src/ui/dialog/find.cpp:108 -#, fuzzy msgctxt "Find dialog" msgid "Clones" msgstr "Clones" @@ -17782,48 +16726,45 @@ msgstr "Procurar imagens" #: ../src/ui/dialog/find.cpp:111 msgid "Offsets" -msgstr "Offsets" +msgstr "Deslocamentos" #: ../src/ui/dialog/find.cpp:111 msgid "Search offset objects" -msgstr "Procurar objectos tipográficos" +msgstr "Procurar objetos deslocados" #: ../src/ui/dialog/find.cpp:112 -#, fuzzy msgid "Object types" -msgstr "Objecto" +msgstr "Tipos de objeto" #: ../src/ui/dialog/find.cpp:115 msgid "_Find" -msgstr "_Localizar" +msgstr "_Procurar" #: ../src/ui/dialog/find.cpp:115 -#, fuzzy msgid "Select all objects matching the selection criteria" -msgstr "Busca por objectos casando com os valores que preencheu" +msgstr "Selecionar todos os objetos que correspondam aos critérios de seleção" #: ../src/ui/dialog/find.cpp:116 -#, fuzzy msgid "_Replace All" -msgstr "Substituir" +msgstr "Substitui_r Tudo" #: ../src/ui/dialog/find.cpp:116 -#, fuzzy msgid "Replace all matches" -msgstr "Substituir texto..." +msgstr "Substituir todas as correspondências" #: ../src/ui/dialog/find.cpp:801 -#, fuzzy msgid "Nothing to replace" -msgstr "Nada para refazer." +msgstr "Nada a substituir" #. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed #: ../src/ui/dialog/find.cpp:842 #, c-format msgid "%d object found (out of %d), %s match." msgid_plural "%d objects found (out of %d), %s match." -msgstr[0] "%d objecto(s) encontrados (de %d), %s casados." -msgstr[1] "%d objecto(s) encontrados (de %d), %s casados." +msgstr[0] "" +"%d objeto encontrado (de um total de %d), %s correspondem." +msgstr[1] "" +"%d objetos encontrados (de um total de %d), %s correspondem." #: ../src/ui/dialog/find.cpp:845 msgid "exact" @@ -17835,864 +16776,790 @@ msgstr "parcial" #. TRANSLATORS: "%1" is replaced with the number of matches #: ../src/ui/dialog/find.cpp:848 -#, fuzzy msgid "%1 match replaced" msgid_plural "%1 matches replaced" -msgstr[0] "Substituir" -msgstr[1] "Substituir" +msgstr[0] "%1 correspondência substituída" +msgstr[1] "%1 correspondências substituídas" #. TRANSLATORS: "%1" is replaced with the number of matches #: ../src/ui/dialog/find.cpp:852 -#, fuzzy msgid "%1 object found" msgid_plural "%1 objects found" -msgstr[0] "Nenhum objecto encontrado" -msgstr[1] "Nenhum objecto encontrado" +msgstr[0] "%1 objeto encontrado" +msgstr[1] "%1 objetos encontrados" #: ../src/ui/dialog/find.cpp:866 -#, fuzzy msgid "Replace text or property" -msgstr "Definir propriedades da guia" +msgstr "Susbtituir texto ou propriedade" #: ../src/ui/dialog/find.cpp:870 -#, fuzzy msgid "Nothing found" -msgstr "Nada para desfazer." +msgstr "Nada encontrado" #: ../src/ui/dialog/find.cpp:875 msgid "No objects found" -msgstr "Nenhum objecto encontrado" +msgstr "Não foi encontrado nenhum objeto" #: ../src/ui/dialog/find.cpp:896 -#, fuzzy msgid "Select an object type" -msgstr "Duplicar os objectos seleccionados" +msgstr "Selecionar tipo de objeto" #: ../src/ui/dialog/find.cpp:914 -#, fuzzy msgid "Select a property" -msgstr "Definir propriedades da guia" +msgstr "Selecionar uma propriedade" #: ../src/ui/dialog/font-substitution.cpp:79 msgid "" "\n" "Some fonts are not available and have been substituted." msgstr "" +"\n" +"Algumas fontes não estão disponíveis e foram substituídas por outras." #: ../src/ui/dialog/font-substitution.cpp:82 msgid "Font substitution" -msgstr "" +msgstr "Substituição de fonte" #: ../src/ui/dialog/font-substitution.cpp:101 -#, fuzzy msgid "Select all the affected items" -msgstr "Duplicar os objectos seleccionados" +msgstr "Selecionar todos os itens afetados" #: ../src/ui/dialog/font-substitution.cpp:106 msgid "Don't show this warning again" -msgstr "" +msgstr "Não mostrar este aviso novamente" #: ../src/ui/dialog/font-substitution.cpp:245 msgid "Font '%1' substituted with '%2'" -msgstr "" +msgstr "Fonte '%1' substituida por '%2'" #: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 -#, fuzzy msgid "all" -msgstr "Tabela" +msgstr "todos" #: ../src/ui/dialog/glyphs.cpp:61 msgid "common" -msgstr "" +msgstr "comuns" #: ../src/ui/dialog/glyphs.cpp:62 msgid "inherited" -msgstr "" +msgstr "herdado" #: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 -#, fuzzy msgid "Arabic" -msgstr "Origem X" +msgstr "Ãrabe" #: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 -#, fuzzy msgid "Armenian" -msgstr "São desligados" +msgstr "Arménio" #: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 msgid "Bengali" -msgstr "" +msgstr "Bengali" #: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 -#, fuzzy msgid "Bopomofo" -msgstr "Ampliação" +msgstr "Bopomofo" #: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 -#, fuzzy msgid "Cherokee" -msgstr "Combinar" +msgstr "Cherokee" #: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 -#, fuzzy msgid "Coptic" -msgstr "Combinado" +msgstr "Cóptico" #: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 #: ../share/extensions/hershey.inx.h:22 msgid "Cyrillic" -msgstr "" +msgstr "Cirílico" #: ../src/ui/dialog/glyphs.cpp:70 -#, fuzzy msgid "Deseret" -msgstr "Remover S_eleção" +msgstr "Deseret" #: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 msgid "Devanagari" -msgstr "" +msgstr "Devanágari" #: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 msgid "Ethiopic" -msgstr "" +msgstr "Etíope" #: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 -#, fuzzy msgid "Georgian" -msgstr "Cor da linha guia" +msgstr "Georgiano" #: ../src/ui/dialog/glyphs.cpp:74 -#, fuzzy msgid "Gothic" -msgstr "Aumentar ajuste" +msgstr "Gótico" #: ../src/ui/dialog/glyphs.cpp:75 -#, fuzzy msgid "Greek" -msgstr "Verde" +msgstr "Grego" #: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 msgid "Gujarati" -msgstr "" +msgstr "Gujarati" #: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 msgid "Gurmukhi" -msgstr "" +msgstr "Gurmukhi" #: ../src/ui/dialog/glyphs.cpp:78 -#, fuzzy msgid "Han" -msgstr "Ângulo" +msgstr "Han" #: ../src/ui/dialog/glyphs.cpp:79 -#, fuzzy msgid "Hangul" -msgstr "Ângulo" +msgstr "Hangul" #: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 msgid "Hebrew" -msgstr "" +msgstr "Hebraico" #: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 msgid "Hiragana" -msgstr "" +msgstr "Hiragana" #: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 msgid "Kannada" -msgstr "" +msgstr "Canarês (kn)" #: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 msgid "Katakana" -msgstr "" +msgstr "Katakana" #: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 -#, fuzzy msgid "Khmer" -msgstr "Outro" +msgstr "Khmer" #: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 -#, fuzzy msgid "Lao" -msgstr "Arranjo" +msgstr "Laociano" #: ../src/ui/dialog/glyphs.cpp:86 -#, fuzzy msgid "Latin" -msgstr "Início" +msgstr "Latim" #: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 msgid "Malayalam" -msgstr "" +msgstr "Malaiala" #: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 msgid "Mongolian" -msgstr "" +msgstr "Mongólio" #: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 msgid "Myanmar" -msgstr "" +msgstr "Myanmar" #: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 msgid "Ogham" -msgstr "" +msgstr "Ogham" #: ../src/ui/dialog/glyphs.cpp:91 -#, fuzzy msgid "Old Italic" -msgstr "Itálico" +msgstr "Itálico Antigo" #: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 msgid "Oriya" -msgstr "" +msgstr "Oriá" #: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 -#, fuzzy msgid "Runic" -msgstr "Arredondado" +msgstr "Rúnico" #: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 -#, fuzzy msgid "Sinhala" -msgstr "Único" +msgstr "Cingalês" #: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 msgid "Syriac" -msgstr "" +msgstr "Síriaco" #: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 -#, fuzzy msgid "Tamil" -msgstr "Ladrilhado" +msgstr "Tamil" #: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 msgid "Telugu" -msgstr "" +msgstr "Telugu" #: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 -#, fuzzy msgid "Thaana" -msgstr "Alvo" +msgstr "Thaana" #: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 msgid "Thai" -msgstr "" +msgstr "Tailandês" #: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 -#, fuzzy msgid "Tibetan" -msgstr "Alvo" +msgstr "Tibetano" #: ../src/ui/dialog/glyphs.cpp:101 msgid "Canadian Aboriginal" -msgstr "" +msgstr "Canadiano Indígena" #: ../src/ui/dialog/glyphs.cpp:102 msgid "Yi" -msgstr "" +msgstr "Yi" #: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 -#, fuzzy msgid "Tagalog" -msgstr "Alvo" +msgstr "Tagalo" #: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 msgid "Hanunoo" -msgstr "" +msgstr "Hanunoo" #: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 -#, fuzzy msgid "Buhid" -msgstr "Guias" +msgstr "Buhid" #: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 msgid "Tagbanwa" -msgstr "" +msgstr "Tagbanwa" #: ../src/ui/dialog/glyphs.cpp:107 -#, fuzzy msgid "Braille" -msgstr "Tipografia normal" +msgstr "Braile" #: ../src/ui/dialog/glyphs.cpp:108 msgid "Cypriot" -msgstr "" +msgstr "Cipriota" #: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 msgid "Limbu" -msgstr "" +msgstr "Limbu" #: ../src/ui/dialog/glyphs.cpp:110 msgid "Osmanya" -msgstr "" +msgstr "Osmanya" #: ../src/ui/dialog/glyphs.cpp:111 -#, fuzzy msgid "Shavian" -msgstr "Espaçamento" +msgstr "Shavian" #: ../src/ui/dialog/glyphs.cpp:112 -#, fuzzy msgid "Linear B" -msgstr "Linear" +msgstr "Linear B" #: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 -#, fuzzy msgid "Tai Le" -msgstr "Ladrilhado" +msgstr "Tai Le" #: ../src/ui/dialog/glyphs.cpp:114 msgid "Ugaritic" -msgstr "" +msgstr "Ugarítico" #: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 -#, fuzzy msgid "New Tai Lue" -msgstr "Nova linha" +msgstr "Novo Tai Lue" #: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 -#, fuzzy msgid "Buginese" -msgstr "Linha" +msgstr "Buginês" #: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 msgid "Glagolitic" -msgstr "" +msgstr "Glagolítico" #: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 msgid "Tifinagh" -msgstr "" +msgstr "Tifinague" #: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 msgid "Syloti Nagri" -msgstr "" +msgstr "Syloti Nagri" #: ../src/ui/dialog/glyphs.cpp:120 -#, fuzzy msgid "Old Persian" -msgstr "Pintura a Óleo" +msgstr "Persa Antigo" #: ../src/ui/dialog/glyphs.cpp:121 msgid "Kharoshthi" -msgstr "" +msgstr "Kharoshthi" #: ../src/ui/dialog/glyphs.cpp:122 -#, fuzzy msgid "unassigned" -msgstr "Alinhar" +msgstr "não atribuido" #: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 -#, fuzzy msgid "Balinese" -msgstr "linhas" +msgstr "Balinês" #: ../src/ui/dialog/glyphs.cpp:124 msgid "Cuneiform" -msgstr "" +msgstr "Cuniforme" #: ../src/ui/dialog/glyphs.cpp:125 -#, fuzzy msgid "Phoenician" -msgstr "Lápis" +msgstr "Fenício" #: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 msgid "Phags-pa" -msgstr "" +msgstr "Phags-pa" #: ../src/ui/dialog/glyphs.cpp:127 msgid "N'Ko" -msgstr "" +msgstr "N'Ko" #: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 msgid "Kayah Li" -msgstr "" +msgstr "Kayah Li" #: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 msgid "Lepcha" -msgstr "" +msgstr "Lepcha" #: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 -#, fuzzy msgid "Rejang" -msgstr "Retângulo" +msgstr "Rejang" #: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 -#, fuzzy msgid "Sundanese" -msgstr "Encaixe" +msgstr "Sudanês" #: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 -#, fuzzy msgid "Saurashtra" -msgstr "Saturar" +msgstr "Saurashtra" #: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 -#, fuzzy msgid "Cham" -msgstr "Combinar" +msgstr "Cham" #: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 msgid "Ol Chiki" -msgstr "" +msgstr "Ol Chiki" #: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 msgid "Vai" -msgstr "" +msgstr "Vai" #: ../src/ui/dialog/glyphs.cpp:136 -#, fuzzy msgid "Carian" -msgstr "Alvo" +msgstr "Carian" #: ../src/ui/dialog/glyphs.cpp:137 -#, fuzzy msgid "Lycian" -msgstr "Linha" +msgstr "Lycian" #: ../src/ui/dialog/glyphs.cpp:138 -#, fuzzy msgid "Lydian" -msgstr "Médio" +msgstr "Lício" #: ../src/ui/dialog/glyphs.cpp:153 msgid "Basic Latin" -msgstr "" +msgstr "Latim Básico" #: ../src/ui/dialog/glyphs.cpp:154 -#, fuzzy msgid "Latin-1 Supplement" -msgstr "Segmentos de _linha" +msgstr "Latim-1 Sumplemento" #: ../src/ui/dialog/glyphs.cpp:155 msgid "Latin Extended-A" -msgstr "" +msgstr "Latin Extendido-A" #: ../src/ui/dialog/glyphs.cpp:156 msgid "Latin Extended-B" -msgstr "" +msgstr "Latin Extendido-B" #: ../src/ui/dialog/glyphs.cpp:157 -#, fuzzy msgid "IPA Extensions" -msgstr "Extensão \"" +msgstr "IPA Extensões" #: ../src/ui/dialog/glyphs.cpp:158 -#, fuzzy msgid "Spacing Modifier Letters" -msgstr "Espaçamento entre letras" +msgstr "Letras de Alterações de Espaço" #: ../src/ui/dialog/glyphs.cpp:159 msgid "Combining Diacritical Marks" -msgstr "" +msgstr "Combinações de Marcas Diacríticas" #: ../src/ui/dialog/glyphs.cpp:160 msgid "Greek and Coptic" -msgstr "" +msgstr "Grego e Copta" #: ../src/ui/dialog/glyphs.cpp:162 msgid "Cyrillic Supplement" -msgstr "" +msgstr "Cirílico Sumplemento" #: ../src/ui/dialog/glyphs.cpp:167 msgid "Arabic Supplement" -msgstr "" +msgstr "Ãrabe Sumplemento" #: ../src/ui/dialog/glyphs.cpp:169 msgid "NKo" -msgstr "" +msgstr "NKo" #: ../src/ui/dialog/glyphs.cpp:170 -#, fuzzy msgid "Samaritan" -msgstr "Alvo" +msgstr "Samaritano" #: ../src/ui/dialog/glyphs.cpp:186 msgid "Hangul Jamo" -msgstr "" +msgstr "Hangul Jamo" #: ../src/ui/dialog/glyphs.cpp:188 msgid "Ethiopic Supplement" -msgstr "" +msgstr "Etíope - Suplemento" #: ../src/ui/dialog/glyphs.cpp:190 msgid "Unified Canadian Aboriginal Syllabics" -msgstr "" +msgstr "Silabários Canadiano Indígena Unificado" #: ../src/ui/dialog/glyphs.cpp:199 msgid "Unified Canadian Aboriginal Syllabics Extended" -msgstr "" +msgstr "Silabários Canadiano Indígena Unificado - Extendido" #: ../src/ui/dialog/glyphs.cpp:203 msgid "Khmer Symbols" -msgstr "" +msgstr "Símbolos Khmer" #: ../src/ui/dialog/glyphs.cpp:205 msgid "Tai Tham" -msgstr "" +msgstr "Tai Tham" #: ../src/ui/dialog/glyphs.cpp:210 -#, fuzzy msgid "Vedic Extensions" -msgstr "Extensão \"" +msgstr "Védico - Extensões" #: ../src/ui/dialog/glyphs.cpp:211 -#, fuzzy msgid "Phonetic Extensions" -msgstr "Sobre E_xtensões" +msgstr "Extensões Fonéticas" #: ../src/ui/dialog/glyphs.cpp:212 msgid "Phonetic Extensions Supplement" -msgstr "" +msgstr "Suplemento de Extensões Fonéticas" #: ../src/ui/dialog/glyphs.cpp:213 msgid "Combining Diacritical Marks Supplement" -msgstr "" +msgstr "Suplemento de Combinações de Marcas Diacríticas" #: ../src/ui/dialog/glyphs.cpp:214 msgid "Latin Extended Additional" -msgstr "" +msgstr "Latim Extendido Adicional" #: ../src/ui/dialog/glyphs.cpp:215 msgid "Greek Extended" -msgstr "" +msgstr "Grego Extendido" #: ../src/ui/dialog/glyphs.cpp:216 -#, fuzzy msgid "General Punctuation" -msgstr "Função Verde" +msgstr "Pontuação Geral" #: ../src/ui/dialog/glyphs.cpp:217 msgid "Superscripts and Subscripts" -msgstr "" +msgstr "Sobrescrito e Subscrito" #: ../src/ui/dialog/glyphs.cpp:218 msgid "Currency Symbols" -msgstr "" +msgstr "Símbolos de Moeda" #: ../src/ui/dialog/glyphs.cpp:219 msgid "Combining Diacritical Marks for Symbols" -msgstr "" +msgstr "Combinações de Marcas Diacríticas para Símbolos" #: ../src/ui/dialog/glyphs.cpp:220 msgid "Letterlike Symbols" -msgstr "" +msgstr "Símbolos Como as Letras" #: ../src/ui/dialog/glyphs.cpp:221 -#, fuzzy msgid "Number Forms" -msgstr "Número de linhas" +msgstr "Formas Numerais" #: ../src/ui/dialog/glyphs.cpp:222 -#, fuzzy msgid "Arrows" -msgstr "Erros" +msgstr "Setas" #: ../src/ui/dialog/glyphs.cpp:223 msgid "Mathematical Operators" -msgstr "" +msgstr "Operadores Matemáticos" #: ../src/ui/dialog/glyphs.cpp:224 -#, fuzzy msgid "Miscellaneous Technical" -msgstr "Miscelânio:" +msgstr "Miscelânea Técnica" #: ../src/ui/dialog/glyphs.cpp:225 -#, fuzzy msgid "Control Pictures" -msgstr "Contribuidores" +msgstr "Imagens de Controle" #: ../src/ui/dialog/glyphs.cpp:226 msgid "Optical Character Recognition" -msgstr "" +msgstr "Reconhecimento Óptico de Caracteres" #: ../src/ui/dialog/glyphs.cpp:227 msgid "Enclosed Alphanumerics" -msgstr "" +msgstr "Alfanuméricos Contidos" #: ../src/ui/dialog/glyphs.cpp:228 -#, fuzzy msgid "Box Drawing" -msgstr "Desenho" +msgstr "Desenho de Caixa" #: ../src/ui/dialog/glyphs.cpp:229 msgid "Block Elements" -msgstr "" +msgstr "Elementos de Bloco" #: ../src/ui/dialog/glyphs.cpp:230 msgid "Geometric Shapes" -msgstr "" +msgstr "Formas Geométricas" #: ../src/ui/dialog/glyphs.cpp:231 -#, fuzzy msgid "Miscellaneous Symbols" -msgstr "Miscelânio:" +msgstr "Miscelânea de Símbolos" #: ../src/ui/dialog/glyphs.cpp:232 msgid "Dingbats" -msgstr "" +msgstr "Ornamentais" #: ../src/ui/dialog/glyphs.cpp:233 -#, fuzzy msgid "Miscellaneous Mathematical Symbols-A" -msgstr "Dicas e truques variados" +msgstr "Miscelâneas - Símbolos Matemáticos-A" #: ../src/ui/dialog/glyphs.cpp:234 msgid "Supplemental Arrows-A" -msgstr "" +msgstr "Setas Suplementares-A" #: ../src/ui/dialog/glyphs.cpp:235 -#, fuzzy msgid "Braille Patterns" -msgstr "Padrões" +msgstr "Padrões de Braile" #: ../src/ui/dialog/glyphs.cpp:236 msgid "Supplemental Arrows-B" -msgstr "" +msgstr "Setas Suplementares-B" #: ../src/ui/dialog/glyphs.cpp:237 -#, fuzzy msgid "Miscellaneous Mathematical Symbols-B" -msgstr "Dicas e truques variados" +msgstr "Miscelâneas - Símbolos Matemáticos-B" #: ../src/ui/dialog/glyphs.cpp:238 msgid "Supplemental Mathematical Operators" -msgstr "" +msgstr "Operadores Matemáticas Suplementares" #: ../src/ui/dialog/glyphs.cpp:239 -#, fuzzy msgid "Miscellaneous Symbols and Arrows" -msgstr "Dicas e truques variados" +msgstr "Miscelâneas - Símbolos e Setas" #: ../src/ui/dialog/glyphs.cpp:241 msgid "Latin Extended-C" -msgstr "" +msgstr "Latim Extendido-C" #: ../src/ui/dialog/glyphs.cpp:243 msgid "Georgian Supplement" -msgstr "" +msgstr "Georgiano Suplemento" #: ../src/ui/dialog/glyphs.cpp:245 msgid "Ethiopic Extended" -msgstr "" +msgstr "Etíope Extendido" #: ../src/ui/dialog/glyphs.cpp:246 msgid "Cyrillic Extended-A" -msgstr "" +msgstr "Cirílico Extendido-A" #: ../src/ui/dialog/glyphs.cpp:247 msgid "Supplemental Punctuation" -msgstr "" +msgstr "Pontuação Suplementar" #: ../src/ui/dialog/glyphs.cpp:248 msgid "CJK Radicals Supplement" -msgstr "" +msgstr "CJK - Sumplemento de Radicais" #: ../src/ui/dialog/glyphs.cpp:249 msgid "Kangxi Radicals" -msgstr "" +msgstr "Kangxi - Radicais" #: ../src/ui/dialog/glyphs.cpp:250 msgid "Ideographic Description Characters" -msgstr "" +msgstr "Caracteres de Descrição Ideográfica" #: ../src/ui/dialog/glyphs.cpp:251 msgid "CJK Symbols and Punctuation" -msgstr "" +msgstr "CJK - Símbolos e Pontuação" #: ../src/ui/dialog/glyphs.cpp:255 msgid "Hangul Compatibility Jamo" -msgstr "" +msgstr "Hangul - Compatibilidade Jamo" #: ../src/ui/dialog/glyphs.cpp:256 msgid "Kanbun" -msgstr "" +msgstr "Kanbun" #: ../src/ui/dialog/glyphs.cpp:257 msgid "Bopomofo Extended" -msgstr "" +msgstr "Bopomofo - Extendido" #: ../src/ui/dialog/glyphs.cpp:258 -#, fuzzy msgid "CJK Strokes" -msgstr "Traço:" +msgstr "CJK - Traços" #: ../src/ui/dialog/glyphs.cpp:259 msgid "Katakana Phonetic Extensions" -msgstr "" +msgstr "Katakana - Extensões Fonéticas" #: ../src/ui/dialog/glyphs.cpp:260 msgid "Enclosed CJK Letters and Months" -msgstr "" +msgstr "CJK - Letras e Meses Contidos" #: ../src/ui/dialog/glyphs.cpp:261 msgid "CJK Compatibility" -msgstr "" +msgstr "CJK - Compatibilidade" #: ../src/ui/dialog/glyphs.cpp:262 msgid "CJK Unified Ideographs Extension A" -msgstr "" +msgstr "CJK - Ideogramas Unificados Extensão A" #: ../src/ui/dialog/glyphs.cpp:263 msgid "Yijing Hexagram Symbols" -msgstr "" +msgstr "Yijing - Símbolos Hexagramas" #: ../src/ui/dialog/glyphs.cpp:264 msgid "CJK Unified Ideographs" -msgstr "" +msgstr "Ideogramas Unificados CJK" #: ../src/ui/dialog/glyphs.cpp:265 msgid "Yi Syllables" -msgstr "" +msgstr "Yi - Sílabas" #: ../src/ui/dialog/glyphs.cpp:266 msgid "Yi Radicals" -msgstr "" +msgstr "Yi - Radicais" #: ../src/ui/dialog/glyphs.cpp:267 -#, fuzzy msgid "Lisu" -msgstr "Listar" +msgstr "Lisu" #: ../src/ui/dialog/glyphs.cpp:269 msgid "Cyrillic Extended-B" -msgstr "" +msgstr "Cirílico Extendido-B" #: ../src/ui/dialog/glyphs.cpp:270 -#, fuzzy msgid "Bamum" -msgstr "Médio" +msgstr "Bamum" #: ../src/ui/dialog/glyphs.cpp:271 msgid "Modifier Tone Letters" -msgstr "" +msgstr "Letras de Tem Modificativo" #: ../src/ui/dialog/glyphs.cpp:272 msgid "Latin Extended-D" -msgstr "" +msgstr "Latim Extendido-D" #: ../src/ui/dialog/glyphs.cpp:274 msgid "Common Indic Number Forms" -msgstr "" +msgstr "Formas Numerais Ãndicas Comuns" #: ../src/ui/dialog/glyphs.cpp:277 msgid "Devanagari Extended" -msgstr "" +msgstr "Devanágari - Extendido" #: ../src/ui/dialog/glyphs.cpp:280 msgid "Hangul Jamo Extended-A" -msgstr "" +msgstr "Hangul Jamo - Extendido-A" #: ../src/ui/dialog/glyphs.cpp:281 msgid "Javanese" -msgstr "" +msgstr "Javanês" #: ../src/ui/dialog/glyphs.cpp:283 msgid "Myanmar Extended-A" -msgstr "" +msgstr "Myanmar - Extendido-B" #: ../src/ui/dialog/glyphs.cpp:284 msgid "Tai Viet" -msgstr "" +msgstr "Tai Viet" #: ../src/ui/dialog/glyphs.cpp:285 -#, fuzzy msgid "Meetei Mayek" -msgstr "Eliminar camada" +msgstr "Meetei Mayek" #: ../src/ui/dialog/glyphs.cpp:286 msgid "Hangul Syllables" -msgstr "" +msgstr "Hangul - Sílabas" #: ../src/ui/dialog/glyphs.cpp:287 msgid "Hangul Jamo Extended-B" -msgstr "" +msgstr "Hangul Jamo - Extendido-B" #: ../src/ui/dialog/glyphs.cpp:288 msgid "High Surrogates" -msgstr "" +msgstr "Substitutos Altos" #: ../src/ui/dialog/glyphs.cpp:289 msgid "High Private Use Surrogates" -msgstr "" +msgstr "Substitutos de Uso Privado Alto" #: ../src/ui/dialog/glyphs.cpp:290 msgid "Low Surrogates" -msgstr "" +msgstr "Substitutos Baixos" #: ../src/ui/dialog/glyphs.cpp:291 msgid "Private Use Area" -msgstr "" +msgstr "Ãrea de Uso Privado" #: ../src/ui/dialog/glyphs.cpp:292 msgid "CJK Compatibility Ideographs" -msgstr "" +msgstr "CJK - Ideogramas de Compatibilidade " #: ../src/ui/dialog/glyphs.cpp:293 msgid "Alphabetic Presentation Forms" -msgstr "" +msgstr "Formas de Apresentação Alfabética" #: ../src/ui/dialog/glyphs.cpp:294 msgid "Arabic Presentation Forms-A" -msgstr "" +msgstr "Arábico - Formas de Apresentação-A" #: ../src/ui/dialog/glyphs.cpp:295 -#, fuzzy msgid "Variation Selectors" -msgstr "Ajustar Ecrã à Seleção" +msgstr "Seletores de Variação" #: ../src/ui/dialog/glyphs.cpp:296 -#, fuzzy msgid "Vertical Forms" -msgstr "Espaçamento Vertical" +msgstr "Formas Verticais" #: ../src/ui/dialog/glyphs.cpp:297 -#, fuzzy msgid "Combining Half Marks" -msgstr "Imprimir usando operadores PostScript" +msgstr "Combinando Meias Marcas" #: ../src/ui/dialog/glyphs.cpp:298 msgid "CJK Compatibility Forms" -msgstr "" +msgstr "CJK - Formas de Compatibilidade" #: ../src/ui/dialog/glyphs.cpp:299 msgid "Small Form Variants" -msgstr "" +msgstr "Variantes de Pequenas Formas" #: ../src/ui/dialog/glyphs.cpp:300 msgid "Arabic Presentation Forms-B" -msgstr "" +msgstr "Arábico - Formas de Apresentação-B" #: ../src/ui/dialog/glyphs.cpp:301 msgid "Halfwidth and Fullwidth Forms" -msgstr "" +msgstr "Formas Meia-Largura e Largura Total" #: ../src/ui/dialog/glyphs.cpp:302 -#, fuzzy msgid "Specials" -msgstr "Espirais" +msgstr "Especiais" #: ../src/ui/dialog/glyphs.cpp:377 -#, fuzzy msgid "Script: " -msgstr "Script" +msgstr "Sistema de Escrita: " #: ../src/ui/dialog/glyphs.cpp:414 -#, fuzzy msgid "Range: " -msgstr "Ângulo" +msgstr "Intervalo: " #: ../src/ui/dialog/glyphs.cpp:497 -#, fuzzy msgid "Append" -msgstr "Script" +msgstr "Adicionar" #: ../src/ui/dialog/glyphs.cpp:619 -#, fuzzy msgid "Append text" -msgstr "Digite o texto" +msgstr "Adicionar texto" #: ../src/ui/dialog/grid-arrange-tab.cpp:345 msgid "Arrange in a grid" -msgstr "Organizar na grelha" +msgstr "Organizar numa grelha" #: ../src/ui/dialog/grid-arrange-tab.cpp:571 #: ../src/ui/dialog/object-attributes.cpp:66 @@ -18703,9 +17570,8 @@ msgid "X:" msgstr "X:" #: ../src/ui/dialog/grid-arrange-tab.cpp:571 -#, fuzzy msgid "Horizontal spacing between columns." -msgstr "Espaçamento horizontal entre colunas (em px)" +msgstr "Espaçamento horizontal entre colunas." #: ../src/ui/dialog/grid-arrange-tab.cpp:572 #: ../src/ui/dialog/object-attributes.cpp:67 @@ -18716,130 +17582,111 @@ msgid "Y:" msgstr "Y:" #: ../src/ui/dialog/grid-arrange-tab.cpp:572 -#, fuzzy msgid "Vertical spacing between rows." -msgstr "Espaçamento vertical entre linhas (em px)" +msgstr "Espaçamento vertical entre linhas." #: ../src/ui/dialog/grid-arrange-tab.cpp:618 -#, fuzzy msgid "_Rows:" -msgstr "Linhas:" +msgstr "_Linhas:" #: ../src/ui/dialog/grid-arrange-tab.cpp:627 msgid "Number of rows" msgstr "Número de linhas" #: ../src/ui/dialog/grid-arrange-tab.cpp:631 -#, fuzzy msgid "Equal _height" -msgstr "Altura igual" +msgstr "_Altura igual" #: ../src/ui/dialog/grid-arrange-tab.cpp:642 msgid "If not set, each row has the height of the tallest object in it" -msgstr "" -"Se não configurado, cada linha terá a altura do objecto mais alto dentre eles" +msgstr "Se não for definido, cada linha terá a altura do objeto mais alto" #. #### Number of columns #### #: ../src/ui/dialog/grid-arrange-tab.cpp:658 -#, fuzzy msgid "_Columns:" -msgstr "Colunas:" +msgstr "_Colunas:" #: ../src/ui/dialog/grid-arrange-tab.cpp:667 msgid "Number of columns" msgstr "Número de colunas" #: ../src/ui/dialog/grid-arrange-tab.cpp:671 -#, fuzzy msgid "Equal _width" -msgstr "Largura igual" +msgstr "L_argura igual" #: ../src/ui/dialog/grid-arrange-tab.cpp:681 msgid "If not set, each column has the width of the widest object in it" -msgstr "" -"Se não configurado, cada coluna terá a altura do objecto mais largo dentre " -"eles" +msgstr "Se não for definido, cada coluna terá a altura do objeto mais largo" #. Anchor selection widget #: ../src/ui/dialog/grid-arrange-tab.cpp:692 -#, fuzzy msgid "Alignment:" -msgstr "Alinhar à esquerda" +msgstr "Alinhamento:" #. #### Radio buttons to control spacing manually or to fit selection bbox #### #: ../src/ui/dialog/grid-arrange-tab.cpp:701 -#, fuzzy msgid "_Fit into selection box" -msgstr "Ajustar à caixa de selecção" +msgstr "_Ajustar à caixa de seleção" #: ../src/ui/dialog/grid-arrange-tab.cpp:708 -#, fuzzy msgid "_Set spacing:" -msgstr "Definir espaçamento:" +msgstr "Definir _espaçamento:" #: ../src/ui/dialog/guides.cpp:47 -#, fuzzy msgid "Lo_cked" -msgstr "Bloquear" +msgstr "_Bloqueada" #: ../src/ui/dialog/guides.cpp:47 msgid "Lock the movement of guides" -msgstr "" +msgstr "Bloquear a deslocação das guias" #: ../src/ui/dialog/guides.cpp:48 -#, fuzzy msgid "Rela_tive change" -msgstr "Movimento relativo" +msgstr "Alteração _relativa" #: ../src/ui/dialog/guides.cpp:48 -#, fuzzy msgid "Move and/or rotate the guide relative to current settings" -msgstr "Mover guia em relação à posição actual" +msgstr "Mover e/ou rodar a guia relativamente às definições atuais" #: ../src/ui/dialog/guides.cpp:49 -#, fuzzy msgctxt "Guides" msgid "_X:" -msgstr "X:" +msgstr "_X:" #: ../src/ui/dialog/guides.cpp:50 -#, fuzzy msgctxt "Guides" msgid "_Y:" -msgstr "Y:" +msgstr "_Y:" #: ../src/ui/dialog/guides.cpp:51 ../src/ui/dialog/object-properties.cpp:59 -#, fuzzy msgid "_Label:" -msgstr "_Rótulo" +msgstr "_Etiqueta:" #: ../src/ui/dialog/guides.cpp:51 msgid "Optionally give this guideline a name" -msgstr "" +msgstr "Opcionalmente pode-se atribuir um nome a esta guia" #: ../src/ui/dialog/guides.cpp:52 -#, fuzzy msgid "_Angle:" -msgstr "Ângulo:" +msgstr "Â_ngulo:" #: ../src/ui/dialog/guides.cpp:139 msgid "Set guide properties" msgstr "Definir propriedades da guia" #: ../src/ui/dialog/guides.cpp:169 -#, fuzzy msgid "Guideline" -msgstr "Cor da linha guia" +msgstr "Linha guia" #: ../src/ui/dialog/guides.cpp:336 -#, fuzzy, c-format +#, c-format msgid "Guideline ID: %s" -msgstr "Linha guia: %s" +msgstr "ID da linha guia: %s" #: ../src/ui/dialog/guides.cpp:342 -#, fuzzy, c-format +#, c-format msgid "Current: %s" -msgstr "Configurações actuais: %s" +msgstr "Atual: %s" #: ../src/ui/dialog/icon-preview.cpp:155 #, c-format @@ -18847,96 +17694,99 @@ msgid "%d x %d" msgstr "%d x %d" #: ../src/ui/dialog/icon-preview.cpp:167 -#, fuzzy msgid "Magnified:" -msgstr "Magnitude" +msgstr "Ampliado:" #: ../src/ui/dialog/icon-preview.cpp:236 -#, fuzzy msgid "Actual Size:" -msgstr "Atuar:" +msgstr "Tamanho Atual:" #: ../src/ui/dialog/icon-preview.cpp:241 -#, fuzzy msgctxt "Icon preview window" msgid "Sele_ction" -msgstr "Seleção" +msgstr "Prever apenas o _selecionado" #: ../src/ui/dialog/icon-preview.cpp:243 msgid "Selection only or whole document" -msgstr "Somente selecção ou documento inteiro" +msgstr "" +"Prever apenas o que estiver selecionado; se desativado, prever o que estiver " +"dentro da página" #: ../src/ui/dialog/inkscape-preferences.cpp:183 msgid "Show selection cue" -msgstr "Mostrar taco de selecção" +msgstr "Mostrar indicador de seleção" #: ../src/ui/dialog/inkscape-preferences.cpp:184 msgid "" "Whether selected objects display a selection cue (the same as in selector)" msgstr "" -"Se os objectos seleccionados exibem um taco de selecção (o mesmo do seletor)" +"Se os objetos selecionados mostram um indicador de seleção (o mesmo da " +"ferramenta de selecionar)" #: ../src/ui/dialog/inkscape-preferences.cpp:190 msgid "Enable gradient editing" -msgstr "Ativar edição de degradê" +msgstr "Mostrar controlos dos gradientes (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:191 msgid "Whether selected objects display gradient editing controls" -msgstr "Se os objectos seleccionados exibem controles de edição de degradês" +msgstr "" +"Mostra os controlos do grandiente ao selecionar objetos, permitindo com a " +"ferramenta de selecionar editar esses controlos" #: ../src/ui/dialog/inkscape-preferences.cpp:196 msgid "Conversion to guides uses edges instead of bounding box" -msgstr "" +msgstr "Na conversão em guias usar as bordas em vez da caixa limitadora" #: ../src/ui/dialog/inkscape-preferences.cpp:197 msgid "" "Converting an object to guides places these along the object's true edges " "(imitating the object's shape), not along the bounding box" msgstr "" +"Ao converter um objeto em guias, posiciona-as ao longo das bordas " +"verdadeiras do objeto (imitando a forma geométrica do objeto), e não ao " +"longo da caixa limitadora" #: ../src/ui/dialog/inkscape-preferences.cpp:204 -#, fuzzy msgid "Ctrl+click _dot size:" -msgstr "Barra de Controles de Ferramenta" +msgstr "Tamanho _do ponto com Ctrl+clicar:" #: ../src/ui/dialog/inkscape-preferences.cpp:204 -#, fuzzy msgid "times current stroke width" -msgstr "Ampliar largura do traço" +msgstr "vezes a espessura do traço atual" #: ../src/ui/dialog/inkscape-preferences.cpp:205 msgid "Size of dots created with Ctrl+click (relative to current stroke width)" msgstr "" +"Tamanho dos pontos criados com Ctrl+clicar (relativo à espessura do traço " +"atual)" #: ../src/ui/dialog/inkscape-preferences.cpp:213 -#, fuzzy msgid "Base simplify:" -msgstr "Simplificar" +msgstr "Simplificação base:" #: ../src/ui/dialog/inkscape-preferences.cpp:213 msgid "on dynamic LPE simplify" -msgstr "" +msgstr "em simplificação de Efeitos Interativos em Caminhos dinâmicos" #: ../src/ui/dialog/inkscape-preferences.cpp:214 msgid "Base simplify of dynamic LPE based simplify" -msgstr "" +msgstr "Base da simplificação dos Efeitos Interativos em Caminhos dinâmicos" #: ../src/ui/dialog/inkscape-preferences.cpp:229 msgid "No objects selected to take the style from." -msgstr "Nenhum objecto seleccionado para obter o estilo." +msgstr "Nenhum objeto selecionado para obter o estilo." #: ../src/ui/dialog/inkscape-preferences.cpp:238 msgid "" "More than one object selected. Cannot take style from multiple " "objects." msgstr "" -"Mais de um objecto seleccionado. Não é possível obter o estilo a " -"partir de múltiplos objectos." +"Mais de 1 objeto selecionado. Não é possível obter o estilo a partir " +"de vários objetos." #: ../src/ui/dialog/inkscape-preferences.cpp:274 -#, fuzzy msgid "Style of new objects" -msgstr "Estilo de novos retângulos" +msgstr "Estilo de novos objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:276 msgid "Last used style" @@ -18944,34 +17794,33 @@ msgstr "Último estilo usado" #: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "Apply the style you last set on an object" -msgstr "Aplicar o estilo do seu último objecto" +msgstr "Aplicar o último estilo usado num objeto" #: ../src/ui/dialog/inkscape-preferences.cpp:283 msgid "This tool's own style:" -msgstr "O estilo próprio desta ferramenta:" +msgstr "Estilo padrão desta ferramenta:" #: ../src/ui/dialog/inkscape-preferences.cpp:287 msgid "" "Each tool may store its own style to apply to the newly created objects. Use " "the button below to set it." msgstr "" -"Cada ferramenta deve guardar seu próprio estilo para aplicar para objectos " -"recémcriados. Use o botão abaixo para ajustá-lo." +"Cada ferramenta pode guardar seu próprio estilo para o aplicar a novos " +"objetos. Usar o botão abaixo para o configurar." #. style swatch #: ../src/ui/dialog/inkscape-preferences.cpp:291 msgid "Take from selection" -msgstr "Obter da selecção" +msgstr "Obter da seleção" #: ../src/ui/dialog/inkscape-preferences.cpp:300 -#, fuzzy msgid "This tool's style of new objects" -msgstr "O estilo próprio desta ferramenta:" +msgstr "O estilo desta ferramenta para novos objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:307 msgid "Remember the style of the (first) selected object as this tool's style" msgstr "" -"Lembrar do estilo do (primeiro) objecto seleccionado como estilo desta " +"Obter estilo do (primeiro) objeto selecionado como estilo padrão desta " "ferramenta" #: ../src/ui/dialog/inkscape-preferences.cpp:312 @@ -18979,66 +17828,64 @@ msgid "Tools" msgstr "Ferramentas" #: ../src/ui/dialog/inkscape-preferences.cpp:315 -#, fuzzy msgid "Bounding box to use" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Caixa limitadora a usar" #: ../src/ui/dialog/inkscape-preferences.cpp:316 -#, fuzzy msgid "Visual bounding box" -msgstr "Margem oposta da caixa de limites" +msgstr "Caixa limitadora visual" #: ../src/ui/dialog/inkscape-preferences.cpp:318 -#, fuzzy msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "" -"Esta caixa delimitadora inclui largura do curso, marcadores, margens de " -"filtros, etc." +"Esta caixa limitadora inclui espessura do traço, marcadores, margens de " +"filtros, efeitos, etc." #: ../src/ui/dialog/inkscape-preferences.cpp:319 -#, fuzzy msgid "Geometric bounding box" -msgstr "Margem oposta da caixa de limites" +msgstr "Caixa limitadora geométrica" #: ../src/ui/dialog/inkscape-preferences.cpp:321 -#, fuzzy msgid "This bounding box includes only the bare path" -msgstr "Esta caixa delimitadora inclui somente o caminho simples" +msgstr "" +"Esta caixa limitadora inclui apenas o esqueleto do caminho, ignorando os " +"efeitos, espessuras dos traços, etc." #: ../src/ui/dialog/inkscape-preferences.cpp:323 -#, fuzzy msgid "Conversion to guides" -msgstr "Remover guias existentes" +msgstr "Converter objetos em guias" #: ../src/ui/dialog/inkscape-preferences.cpp:324 msgid "Keep objects after conversion to guides" -msgstr "" +msgstr "Não eliminar os objetos após convertê-los em guias" #: ../src/ui/dialog/inkscape-preferences.cpp:326 msgid "" "When converting an object to guides, don't delete the object after the " "conversion" msgstr "" +"Ao converter um objeto em guias através do menu \"Objeto->Converter em Guias" +"\" não elimina os objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:327 -#, fuzzy msgid "Treat groups as a single object" -msgstr "Criar novo caminho" +msgstr "Considerar grupos de objetos como um só objeto" #: ../src/ui/dialog/inkscape-preferences.cpp:329 msgid "" "Treat groups as a single object during conversion to guides rather than " "converting each child separately" msgstr "" +"Considera os grupos de objetos como um só objeto criando guias apenas pelos " +"limites do grupo e não dos objetos individuais" #: ../src/ui/dialog/inkscape-preferences.cpp:331 -#, fuzzy msgid "Average all sketches" -msgstr "Qualidade média" +msgstr "Fazer a média de todos os esboços" #: ../src/ui/dialog/inkscape-preferences.cpp:332 msgid "Width is in absolute units" -msgstr "Largura em unidades absolutas" +msgstr "A largura é em unidades absolutas" #: ../src/ui/dialog/inkscape-preferences.cpp:333 msgid "Select new path" @@ -19046,25 +17893,24 @@ msgstr "Selecionar novo caminho" #: ../src/ui/dialog/inkscape-preferences.cpp:334 msgid "Don't attach connectors to text objects" -msgstr "Não anexar conectores a textos" +msgstr "Não ligar conetores a textos" #. Selector #: ../src/ui/dialog/inkscape-preferences.cpp:337 msgid "Selector" -msgstr "Seletor" +msgstr "Selecionar" #: ../src/ui/dialog/inkscape-preferences.cpp:342 -#, fuzzy msgid "When transforming, show" -msgstr "Enquanto tranformar, mostrar:" +msgstr "Ao tranformar, mostrar" #: ../src/ui/dialog/inkscape-preferences.cpp:343 msgid "Objects" -msgstr "Objectos" +msgstr "Objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:345 msgid "Show the actual objects when moving or transforming" -msgstr "Mostrar os objectos atuais quando mover ou transformar" +msgstr "Mostrar os objetos atuais quando mover ou transformar" #: ../src/ui/dialog/inkscape-preferences.cpp:346 msgid "Box outline" @@ -19073,22 +17919,20 @@ msgstr "Contorno da caixa" #: ../src/ui/dialog/inkscape-preferences.cpp:348 msgid "Show only a box outline of the objects when moving or transforming" msgstr "" -"Mostrar somente um contorno de caixa dos objectos quando mover ou transformar" +"Mostrar apenas um contorno da caixa dos objetos quando mover ou transformar" #: ../src/ui/dialog/inkscape-preferences.cpp:349 -#, fuzzy msgid "Per-object selection cue" -msgstr "Taco de selecção por objecto:" +msgstr "Indicador de seleção por objeto" #: ../src/ui/dialog/inkscape-preferences.cpp:350 -#, fuzzy msgctxt "Selection cue" msgid "None" msgstr "Nenhum" #: ../src/ui/dialog/inkscape-preferences.cpp:352 msgid "No per-object selection indication" -msgstr "Nenhuma indicação de selecção por objecto" +msgstr "Nenhum indicador de seleção por objeto" #: ../src/ui/dialog/inkscape-preferences.cpp:353 msgid "Mark" @@ -19097,7 +17941,7 @@ msgstr "Marca" #: ../src/ui/dialog/inkscape-preferences.cpp:355 msgid "Each selected object has a diamond mark in the top left corner" msgstr "" -"Cada objecto seleccionado tem um marca de diamante no canto esquerdo superior" +"Cada objeto selecionado tem um marca de diamante no canto superior esquerdo" #: ../src/ui/dialog/inkscape-preferences.cpp:356 msgid "Box" @@ -19105,7 +17949,7 @@ msgstr "Caixa" #: ../src/ui/dialog/inkscape-preferences.cpp:358 msgid "Each selected object displays its bounding box" -msgstr "Cada objecto seleccionado exibe sua caixa de limites" +msgstr "Cada objeto selecionado mostra a sua caixa limitadora" #. Node #: ../src/ui/dialog/inkscape-preferences.cpp:361 @@ -19113,81 +17957,81 @@ msgid "Node" msgstr "Nó" #: ../src/ui/dialog/inkscape-preferences.cpp:364 -#, fuzzy msgid "Path outline" -msgstr "Contorno da caixa" +msgstr "Destaque do caminho" #: ../src/ui/dialog/inkscape-preferences.cpp:365 -#, fuzzy msgid "Path outline color" -msgstr "Colar cor" +msgstr "Cor do destaque do caminho" #: ../src/ui/dialog/inkscape-preferences.cpp:366 -#, fuzzy msgid "Selects the color used for showing the path outline" -msgstr "Cor da linha de grelha maior (destacada)" +msgstr "Selecionar a cor usada para mostrar o destaque do caminho" #: ../src/ui/dialog/inkscape-preferences.cpp:367 -#, fuzzy msgid "Always show outline" -msgstr "_Contorno" +msgstr "Mostrar sempre o destaque" #: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Show outlines for all paths, not only invisible paths" msgstr "" +"Mostrar destaque em todos os caminhos, e não apenas dos caminhos invisíveis" #: ../src/ui/dialog/inkscape-preferences.cpp:369 msgid "Update outline when dragging nodes" -msgstr "" +msgstr "Atualizar destaque ao arrastar nós" #: ../src/ui/dialog/inkscape-preferences.cpp:370 msgid "" "Update the outline when dragging or transforming nodes; if this is off, the " "outline will only update when completing a drag" msgstr "" +"Atualiza em tempo real o destaque ao arrastar ou transformar nós; se isto " +"estiver desativado, o destaque será atualizado apenas ao terminar o arrasto" #: ../src/ui/dialog/inkscape-preferences.cpp:371 msgid "Update paths when dragging nodes" -msgstr "" +msgstr "Atualizar caminhos ao arrastar nós" #: ../src/ui/dialog/inkscape-preferences.cpp:372 msgid "" "Update paths when dragging or transforming nodes; if this is off, paths will " "only be updated when completing a drag" msgstr "" +"Atualizar caminhos ao arrastar ou transformar nós; se isto estiver " +"desativado, os caminhos serão atualizados apenas ao terminar o arrasto" #: ../src/ui/dialog/inkscape-preferences.cpp:373 msgid "Show path direction on outlines" -msgstr "" +msgstr "Mostrar direção do caminho no destaque" #: ../src/ui/dialog/inkscape-preferences.cpp:374 msgid "" "Visualize the direction of selected paths by drawing small arrows in the " "middle of each outline segment" msgstr "" +"Ver a direção dos caminhos selecionados, mostrando 1 meia-seta no meio de " +"cada segmento" #: ../src/ui/dialog/inkscape-preferences.cpp:375 -#, fuzzy msgid "Show temporary path outline" -msgstr "Contorno da caixa" +msgstr "Mostrar caminho destacado" #: ../src/ui/dialog/inkscape-preferences.cpp:376 msgid "When hovering over a path, briefly flash its outline" -msgstr "" +msgstr "Ao passar com o cursor sobre um caminho, destacar brevemente o caminho" #: ../src/ui/dialog/inkscape-preferences.cpp:377 -#, fuzzy msgid "Show temporary outline for selected paths" -msgstr "Largura do padrão" +msgstr "Mostrar destaque nos caminhos selecionados" #: ../src/ui/dialog/inkscape-preferences.cpp:378 msgid "Show temporary outline even when a path is selected for editing" -msgstr "" +msgstr "Mostrar destaque mesmo quando um caminho é selecionado para editar" #: ../src/ui/dialog/inkscape-preferences.cpp:380 -#, fuzzy msgid "_Flash time:" -msgstr "Redefinir centro" +msgstr "_Tempo de destaque:" #: ../src/ui/dialog/inkscape-preferences.cpp:380 msgid "" @@ -19195,59 +18039,59 @@ msgid "" "milliseconds); specify 0 to have the outline shown until mouse leaves the " "path" msgstr "" +"Especifica por quanto tempo o caminho será destacado após passar com o " +"cursor por cima (em milisegundos); usar 0 para ter destacado até o cursor " +"deixar de estar sobre o caminho" #: ../src/ui/dialog/inkscape-preferences.cpp:381 -#, fuzzy msgid "Editing preferences" -msgstr "Preferências do degradê" +msgstr "Preferências ao editar" #: ../src/ui/dialog/inkscape-preferences.cpp:382 -#, fuzzy msgid "Show transform handles for single nodes" -msgstr "Mostrar as alças de Bezier dos nós seleccionados" +msgstr "Mostrar as alças de transformar em nós únicos" #: ../src/ui/dialog/inkscape-preferences.cpp:383 -#, fuzzy msgid "Show transform handles even when only a single node is selected" -msgstr "Mostrar as alças de Bezier dos nós seleccionados" +msgstr "Mostrar as alças de transformar mesmo quando só está selecionado 1 nó" #: ../src/ui/dialog/inkscape-preferences.cpp:384 -#, fuzzy msgid "Deleting nodes preserves shape" -msgstr "Eliminar nós preservando a forma" +msgstr "Após eliminar nós, manter a forma geométrica anterior" #: ../src/ui/dialog/inkscape-preferences.cpp:385 msgid "" "Move handles next to deleted nodes to resemble original shape; hold Ctrl to " "get the other behavior" msgstr "" +"Mover alças dos nós em redor dos nós eliminados para manter a forma " +"geométrica original; manter premida a tecla Ctrl para não usar isto " +"temporariamente" #. Tweak #: ../src/ui/dialog/inkscape-preferences.cpp:388 msgid "Tweak" -msgstr "Ajuste" +msgstr "Forças" #: ../src/ui/dialog/inkscape-preferences.cpp:389 -#, fuzzy msgid "Object paint style" -msgstr "Objectos" +msgstr "Estilo de pintura do objeto" #. Zoom #: ../src/ui/dialog/inkscape-preferences.cpp:394 #: ../src/widgets/desktop-widget.cpp:709 msgid "Zoom" -msgstr "Ampliação" +msgstr "Lupa" #. Measure #: ../src/ui/dialog/inkscape-preferences.cpp:399 ../src/verbs.cpp:2763 -#, fuzzy msgctxt "ContextVerb" msgid "Measure" -msgstr "Medida" +msgstr "Medir" #: ../src/ui/dialog/inkscape-preferences.cpp:401 msgid "Ignore first and last points" -msgstr "" +msgstr "Ignorar o primeiro e último ponto" #: ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "" @@ -19255,6 +18099,9 @@ msgid "" "considered for calculating lengths. Only lengths between actual curve " "intersections will be displayed." msgstr "" +"O início e o fim da linha da ferramenta Fita Métrica não será considerado " +"para calcular comprimentos. Apenas serão mostrados comprimentos entre as " +"interseções da curva atual." #. Shapes #: ../src/ui/dialog/inkscape-preferences.cpp:405 @@ -19262,15 +18109,16 @@ msgid "Shapes" msgstr "Formas" #: ../src/ui/dialog/inkscape-preferences.cpp:438 -#, fuzzy msgid "Sketch mode" -msgstr "Ajustar" +msgstr "Modo esboço" #: ../src/ui/dialog/inkscape-preferences.cpp:440 msgid "" "If on, the sketch result will be the normal average of all sketches made, " "instead of averaging the old result with the new sketch" msgstr "" +"Se ativado, o resultado do esboço será a média normal de todos os esboços " +"feitos, em vez de calcular a média do resultado anterior com o novo esboço" #. Pen #: ../src/ui/dialog/inkscape-preferences.cpp:443 @@ -19288,52 +18136,54 @@ msgid "" "If on, pen width is in absolute units (px) independent of zoom; otherwise " "pen width depends on zoom so that it looks the same at any zoom" msgstr "" -"Se activado, o tamanho da caneta é definido em unidades absolutas (px) " +"Se ativado, o tamanho da caneta é em unidades absolutas (px) " "independentemente da ampliação; senão o tamanho da caneta depende da " -"ampliação para que pareça a mesma a qualquer ampliação." +"ampliação para que pareça a mesma em qualquer ampliação" #: ../src/ui/dialog/inkscape-preferences.cpp:455 msgid "" "If on, each newly created object will be selected (deselecting previous " "selection)" msgstr "" -"Se activado, cada novo objecto criado será seleccionado (desfazendo a " -"selecção anterior)" +"Se ativado, cada objeto criado será selecionado (desselecionando a anterior " +"seleção)" #. Text #: ../src/ui/dialog/inkscape-preferences.cpp:458 ../src/verbs.cpp:2755 -#, fuzzy msgctxt "ContextVerb" msgid "Text" msgstr "Texto" #: ../src/ui/dialog/inkscape-preferences.cpp:463 msgid "Show font samples in the drop-down list" -msgstr "" +msgstr "Mostrar aspeto real das fontes na lista de fontes" #: ../src/ui/dialog/inkscape-preferences.cpp:464 msgid "" "Show font samples alongside font names in the drop-down list in Text bar" msgstr "" +"Mostrar aspeto real das fontes e o nome das fontes na lista de fontes da " +"barra de Texto" #: ../src/ui/dialog/inkscape-preferences.cpp:466 -#, fuzzy msgid "Show font substitution warning dialog" -msgstr "Mostrar botões de fechar em diálogos" +msgstr "Mostrar janela de aviso de substituição de fontes" #: ../src/ui/dialog/inkscape-preferences.cpp:467 msgid "" "Show font substitution warning dialog when requested fonts are not available " "on the system" msgstr "" +"Mostrar aviso de substituição de fontes quando as fontes necessárias não " +"estiverem disponíveis no sistema" #: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Pixel" -msgstr "Pixel" +msgstr "Píxel" #: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Pica" -msgstr "" +msgstr "Pica" #: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Millimeter" @@ -19349,39 +18199,36 @@ msgstr "Polegada" #: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Em square" -msgstr "Quadras Em" +msgstr "Eme quadrado" #. , _("Ex square"), _("Percent") #. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT #: ../src/ui/dialog/inkscape-preferences.cpp:473 -#, fuzzy msgid "Text units" -msgstr "Entrada de Texto" +msgstr "Sistema de medida do texto" #: ../src/ui/dialog/inkscape-preferences.cpp:475 -#, fuzzy msgid "Text size unit type:" -msgstr "Texto: Alterar estilo da fonte" +msgstr "Sistema de medida do tamanho do texto:" #: ../src/ui/dialog/inkscape-preferences.cpp:476 msgid "Set the type of unit used in the text toolbar and text dialogs" msgstr "" +"Definir o tipo de unidade usada na barra de texto e nos painéis de texto" #: ../src/ui/dialog/inkscape-preferences.cpp:477 msgid "Always output text size in pixels (px)" -msgstr "" +msgstr "Mostrar sempre tamanho do texto em píxeis (px)" #. Spray #: ../src/ui/dialog/inkscape-preferences.cpp:483 -#, fuzzy msgid "Spray" -msgstr "Espiral" +msgstr "Pulverizador" #. Eraser #: ../src/ui/dialog/inkscape-preferences.cpp:488 -#, fuzzy msgid "Eraser" -msgstr "Rasterizar" +msgstr "Borracha" #. Paint Bucket #: ../src/ui/dialog/inkscape-preferences.cpp:493 @@ -19393,11 +18240,11 @@ msgstr "Balde de Tinta" #: ../src/widgets/gradient-selector.cpp:144 #: ../src/widgets/gradient-selector.cpp:295 msgid "Gradient" -msgstr "Degradê" +msgstr "Gradiente" #: ../src/ui/dialog/inkscape-preferences.cpp:501 msgid "Prevent sharing of gradient definitions" -msgstr "Prevenir compartilhamento de definições de degradê" +msgstr "Prevenir partilha de definições de gradiente" #: ../src/ui/dialog/inkscape-preferences.cpp:503 msgid "" @@ -19405,539 +18252,518 @@ msgid "" "uncheck to allow sharing of gradient definitions so that editing one object " "may affect other objects using the same gradient" msgstr "" -"Quando activada, definições de degradê partilhadas são automaticamente " -"diferenciadas quando alteradas; desmarque para permitir a partilha de " -"definições de degradê de modo que a alteração de um objecto afecte todos " -"utilizando o mesmo degradê." +"Quando ativado, definições de gradiente partilhadas são automaticamente " +"separadas quando alteradas; desativar para permitir a partilha de definições " +"de gradiente ao editar um objeto, alterando assim os outros objetos que usem " +"o mesmo gradiente" #: ../src/ui/dialog/inkscape-preferences.cpp:504 -#, fuzzy msgid "Use legacy Gradient Editor" -msgstr "Editor de degradê" +msgstr "Usar Editor de Gradiente Antigo" #: ../src/ui/dialog/inkscape-preferences.cpp:506 msgid "" "When on, the Gradient Edit button in the Fill & Stroke dialog will show the " "legacy Gradient Editor dialog, when off the Gradient Tool will be used" msgstr "" +"Quando ativado, o botão Editar Gradiente no painel Preenchimento e Traço " +"mostrará o painel antigo do Editor de Gradiente. Quando desativado é " +"mostrada a Ferramenta Gradiente" #: ../src/ui/dialog/inkscape-preferences.cpp:509 -#, fuzzy msgid "Linear gradient _angle:" -msgstr "Preenchimento em degradê linear" +msgstr "Ângulo do gradiente _linear:" #: ../src/ui/dialog/inkscape-preferences.cpp:510 msgid "" "Default angle of new linear gradients in degrees (clockwise from horizontal)" msgstr "" +"Ângulo padrão em graus para novos gradientes lineares (sentido horário da " +"horizontal)" #. Dropper #: ../src/ui/dialog/inkscape-preferences.cpp:514 msgid "Dropper" -msgstr "Borrão" +msgstr "Pipeta" #. Connector #: ../src/ui/dialog/inkscape-preferences.cpp:519 msgid "Connector" -msgstr "Conector" +msgstr "Conetor de Diagrama" #: ../src/ui/dialog/inkscape-preferences.cpp:522 msgid "If on, connector attachment points will not be shown for text objects" msgstr "" -"Se activado, os pontos de ligação dos conectores não serão mostrados para " -"objectos de texto" +"Se ativado, os pontos de ligação dos conetores não serão mostrados para " +"objetos de texto" #. LPETool #. disabled, because the LPETool is not finished yet. #: ../src/ui/dialog/inkscape-preferences.cpp:527 -#, fuzzy msgid "LPE Tool" -msgstr "Ferramentas" +msgstr "Ferramenta Efeitos Interativos em Caminhos" #: ../src/ui/dialog/inkscape-preferences.cpp:534 -#, fuzzy msgid "Interface" -msgstr "Interceptar" +msgstr "Interface" #: ../src/ui/dialog/inkscape-preferences.cpp:537 -#, fuzzy msgid "System default" -msgstr "Ajustar como padrão" +msgstr "Padrão do sistema" #: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Albanian (sq)" -msgstr "" +msgstr "Albanês (sq)" #: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Amharic (am)" -msgstr "" +msgstr "Amárico (am)" #: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Arabic (ar)" -msgstr "" +msgstr "Arábico (ar)" #: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Armenian (hy)" -msgstr "" +msgstr "Arménio (hy)" #: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Assamese (as)" -msgstr "" +msgstr "Assamês (as)" #: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Azerbaijani (az)" -msgstr "" +msgstr "Azerbaijano (az)" #: ../src/ui/dialog/inkscape-preferences.cpp:539 -#, fuzzy msgid "Basque (eu)" -msgstr "Medida" +msgstr "Basco (eu)" #: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Belarusian (be)" -msgstr "" +msgstr "Bielorrusso (be)" #: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bulgarian (bg)" -msgstr "" +msgstr "Búlgaro (bg)" #: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bengali (bn)" -msgstr "" +msgstr "Bengali (bn)" #: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bengali/Bangladesh (bn_BD)" -msgstr "" +msgstr "Bengali/Bangladeche (bn_BD)" #: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bodo (brx)" -msgstr "" +msgstr "Bodo (brx)" #: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Breton (br)" -msgstr "" +msgstr "Bretão (br)" #: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Catalan (ca)" -msgstr "" +msgstr "Catalão (ca)" #: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Valencian Catalan (ca@valencia)" -msgstr "" +msgstr "Catalão Valenciano (ca@valencia)" #: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Chinese/China (zh_CN)" -msgstr "" +msgstr "Chinês/China (zh_CN)" #: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Chinese/Taiwan (zh_TW)" -msgstr "" +msgstr "Chinese/Taiwan (zh_TW)" #: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Croatian (hr)" -msgstr "" +msgstr "Croata (hr)" #: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Czech (cs)" -msgstr "" +msgstr "Checo (cs)" #: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Danish (da)" -msgstr "" +msgstr "Dinamarquês (da)" #: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dogri (doi)" -msgstr "" +msgstr "Dogri (doi)" #: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dutch (nl)" -msgstr "" +msgstr "Neerlandês (nl)" #: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dzongkha (dz)" -msgstr "" +msgstr "Butanês (dz)" #: ../src/ui/dialog/inkscape-preferences.cpp:542 msgid "German (de)" -msgstr "" +msgstr "Alemão (de)" #: ../src/ui/dialog/inkscape-preferences.cpp:542 -#, fuzzy msgid "Greek (el)" -msgstr "Canal Verde" +msgstr "Grego (el)" #: ../src/ui/dialog/inkscape-preferences.cpp:543 -#, fuzzy msgid "English (en)" -msgstr "Ângulo da caneta" +msgstr "Inglês (en)" #: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Australia (en_AU)" -msgstr "" +msgstr "Inglês/Austrália (en_AU)" #: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Canada (en_CA)" -msgstr "" +msgstr "Inglês/Canadá (en_CA)" #: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Great Britain (en_GB)" -msgstr "" +msgstr "Inglês/Grâ-Bretanha (en_GB)" #: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Pig Latin (en_US@piglatin)" -msgstr "" +msgstr "Pig Latin (en_US@piglatin)" #: ../src/ui/dialog/inkscape-preferences.cpp:543 -#, fuzzy msgid "Esperanto (eo)" -msgstr "Operador" +msgstr "Esperanto (eo)" #: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Estonian (et)" -msgstr "" +msgstr "Estónio (et)" #: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "Farsi (fa)" -msgstr "" +msgstr "Persa (fa)" #: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "Finnish (fi)" -msgstr "" +msgstr "Finlandês (fi)" #: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "French (fr)" -msgstr "" +msgstr "Francês (fr)" #: ../src/ui/dialog/inkscape-preferences.cpp:545 msgid "Galician (gl)" -msgstr "" +msgstr "Galego (gl)" #: ../src/ui/dialog/inkscape-preferences.cpp:545 msgid "Gujarati (gu)" -msgstr "" +msgstr "Gujaráti (gu)" #: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hebrew (he)" -msgstr "" +msgstr "Hebraico (he)" #: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hindi (hi)" -msgstr "" +msgstr "Hindi (hi)" #: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hungarian (hu)" -msgstr "" +msgstr "Húngaro (hu)" #: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Icelandic (is)" -msgstr "" +msgstr "Islandês (is)" #: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Indonesian (id)" -msgstr "" +msgstr "Indonésio (id)" #: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Irish (ga)" -msgstr "" +msgstr "Irlandês (ga)" #: ../src/ui/dialog/inkscape-preferences.cpp:547 -#, fuzzy msgid "Italian (it)" -msgstr "Itálico" +msgstr "Italiano (it)" #: ../src/ui/dialog/inkscape-preferences.cpp:548 msgid "Japanese (ja)" -msgstr "" +msgstr "Japonês (ja)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kannada (kn)" -msgstr "" +msgstr "Canarês (kn)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kashmiri in Peso-Arabic script (ks@aran)" -msgstr "" +msgstr "Caxemiriano no alfabeto Persa-Ãrabe (ks@aran)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kashmiri in Devanagari script (ks@deva)" -msgstr "" +msgstr "Caxemiriano no alfabeto Devanágari (ks@deva)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Khmer (km)" -msgstr "" +msgstr "Cambojano (km)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kinyarwanda (rw)" -msgstr "" +msgstr "Quiniaruanda (rw)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Konkani (kok)" -msgstr "" +msgstr "Concani (kok)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Konkani in Latin script (kok@latin)" -msgstr "" +msgstr "Concani no alfabeto Latino (kok@latin)" #: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Korean (ko)" -msgstr "" +msgstr "Coreano (ko)" #: ../src/ui/dialog/inkscape-preferences.cpp:550 msgid "Latvian (lv)" -msgstr "" +msgstr "Letão (lv)" #: ../src/ui/dialog/inkscape-preferences.cpp:550 msgid "Lithuanian (lt)" -msgstr "" +msgstr "Lituano (lt)" #: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Macedonian (mk)" -msgstr "" +msgstr "Macedónio (mk)" #: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Maithili (mai)" -msgstr "" +msgstr "Maithili (mai)" #: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Malayalam (ml)" -msgstr "" +msgstr "Malaiala (ml)" #: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Manipuri (mni)" -msgstr "" +msgstr "Manipuri (mni)" #: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Manipuri in Bengali script (mni@beng)" -msgstr "" +msgstr "Manipuri no alfabeto Bengali (mni@beng)" #: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Marathi (mr)" -msgstr "" +msgstr "Marata (mr)" #: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Mongolian (mn)" -msgstr "" +msgstr "Mongol (mn)" #: ../src/ui/dialog/inkscape-preferences.cpp:552 -#, fuzzy msgid "Nepali (ne)" -msgstr "Nova linha" +msgstr "Nepalês (ne)" #: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Norwegian BokmÃ¥l (nb)" -msgstr "" +msgstr "BokmÃ¥l Norueguês (nb)" #: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Norwegian Nynorsk (nn)" -msgstr "" +msgstr "Novo Norueguês (nn)" #: ../src/ui/dialog/inkscape-preferences.cpp:553 msgid "Odia (or)" -msgstr "" +msgstr "Odia (or)" #: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Panjabi (pa)" -msgstr "" +msgstr "Panjabi (pa)" #: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Polish (pl)" -msgstr "" +msgstr "Polaco (pl)" #: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Portuguese (pt)" -msgstr "" +msgstr "Português (pt)" #: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Portuguese/Brazil (pt_BR)" -msgstr "" +msgstr "Português/Brasil (pt_BR)" #: ../src/ui/dialog/inkscape-preferences.cpp:555 msgid "Romanian (ro)" -msgstr "" +msgstr "Romeno (ro)" #: ../src/ui/dialog/inkscape-preferences.cpp:555 -#, fuzzy msgid "Russian (ru)" -msgstr "Desfocagem gaussiana" +msgstr "Russo (ru)" #: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Sanskrit (sa)" -msgstr "" +msgstr "Sânscrito (sa)" #: ../src/ui/dialog/inkscape-preferences.cpp:556 -#, fuzzy msgid "Santali (sat)" -msgstr "Itálico" +msgstr "Santali (sat)" #: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Santali in Devanagari script (sat@deva)" -msgstr "" +msgstr "Santali no alfabeto Devanágari (sat@deva)" #: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Serbian (sr)" -msgstr "" +msgstr "Sérvio (sr)" #: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Serbian in Latin script (sr@latin)" -msgstr "" +msgstr "Sérvio no alfabeto Latino (sr@latin)" #: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Sindhi (sd)" -msgstr "" +msgstr "Sindi (sd)" #: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Sindhi in Devanagari script (sd@deva)" -msgstr "" +msgstr "Sindi no alfabeto Devanágari (sd@deva)" #: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Slovak (sk)" -msgstr "" +msgstr "Eslovaco (sk)" #: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Slovenian (sl)" -msgstr "" +msgstr "Esloveno (sl)" #: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Spanish (es)" -msgstr "" +msgstr "Espanhol (es)" #: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Spanish/Mexico (es_MX)" -msgstr "" +msgstr "Espanhol/México (es_MX)" #: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Swedish (sv)" -msgstr "" +msgstr "Sueco (sv)" #: ../src/ui/dialog/inkscape-preferences.cpp:558 -#, fuzzy msgid "Tamil (ta)" -msgstr "Ladrilhado" +msgstr "Tâmil (ta)" #: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Telugu (te)" -msgstr "" +msgstr "Telugo (te)" #: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Thai (th)" -msgstr "" +msgstr "Tailandês (th)" #: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Turkish (tr)" -msgstr "" +msgstr "Turco (tr)" #: ../src/ui/dialog/inkscape-preferences.cpp:559 msgid "Ukrainian (uk)" -msgstr "" +msgstr "Ucraniano (uk)" #: ../src/ui/dialog/inkscape-preferences.cpp:559 msgid "Urdu (ur)" -msgstr "" +msgstr "Urdu (ur)" #: ../src/ui/dialog/inkscape-preferences.cpp:560 msgid "Vietnamese (vi)" -msgstr "" +msgstr "Vietnamita (vi)" #: ../src/ui/dialog/inkscape-preferences.cpp:612 -#, fuzzy msgid "Language (requires restart):" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "Língua (necessário reiniciar):" #: ../src/ui/dialog/inkscape-preferences.cpp:613 msgid "Set the language for menus and number formats" -msgstr "" +msgstr "Definir o idioma nos menus e formatos de números" #: ../src/ui/dialog/inkscape-preferences.cpp:616 -#, fuzzy msgctxt "Icon size" msgid "Larger" -msgstr "Grande" +msgstr "Maior" #: ../src/ui/dialog/inkscape-preferences.cpp:616 -#, fuzzy msgctxt "Icon size" msgid "Large" msgstr "Grande" #: ../src/ui/dialog/inkscape-preferences.cpp:616 -#, fuzzy msgctxt "Icon size" msgid "Small" msgstr "Pequeno" #: ../src/ui/dialog/inkscape-preferences.cpp:616 -#, fuzzy msgctxt "Icon size" msgid "Smaller" -msgstr "Pequeno" +msgstr "Pequenino" #: ../src/ui/dialog/inkscape-preferences.cpp:621 -#, fuzzy msgid "Toolbox icon size:" -msgstr "Fazer ferramentas principais menores" +msgstr "Tamanho dos ícones na barra de ferramentas:" #: ../src/ui/dialog/inkscape-preferences.cpp:622 -#, fuzzy msgid "Set the size for the tool icons (requires restart)" -msgstr "" -"Fazer com que a barra de ferramentas de comandos utilize o tamanho " -"'secundário' (é necessário reiniciar)" +msgstr "Definir o tamanho dos ícones das ferramentas (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:625 -#, fuzzy msgid "Control bar icon size:" -msgstr "Barra de Controles de Ferramenta" +msgstr "Tamanho dos ícones na barra de ferramenta atual:" #: ../src/ui/dialog/inkscape-preferences.cpp:626 -#, fuzzy msgid "" "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "" -"Fazer com que a barra de ferramentas de comandos utilize o tamanho " -"'secundário' (é necessário reiniciar)" +"Definir o tamanho dos ícones na barra de ferramenta atual (necessário " +"reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:629 -#, fuzzy msgid "Secondary toolbar icon size:" -msgstr "Fazer ferramentas principais menores" +msgstr "Tamanho dos ícones na barra de ferramentas secundária:" #: ../src/ui/dialog/inkscape-preferences.cpp:630 -#, fuzzy msgid "" "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "" -"Fazer com que a barra de ferramentas de comandos utilize o tamanho " -"'secundário' (é necessário reiniciar)" +"Definir o tamanho dos ícones das barras de ferramentas secundárias " +"(necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:633 msgid "Work-around color sliders not drawing" -msgstr "" +msgstr "Alternativa para deslizadores de cores mal mostrados" #: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "" "When on, will attempt to work around bugs in certain GTK themes drawing " "color sliders" msgstr "" +"Quando ativado, tentar resover problemas que possam surgir, como não mostrar " +"corretamente os deslisadores de cores em certos temas GTK" #: ../src/ui/dialog/inkscape-preferences.cpp:640 -#, fuzzy msgid "Clear list" -msgstr "Limpar os valores" +msgstr "Limpar lista" #: ../src/ui/dialog/inkscape-preferences.cpp:643 -#, fuzzy msgid "Maximum documents in Open _Recent:" -msgstr "Máximo de desenhos recentes:" +msgstr "Número máximo de documentos no menu Abrir _Recentes:" #: ../src/ui/dialog/inkscape-preferences.cpp:644 -#, fuzzy msgid "" "Set the maximum length of the Open Recent list in the File menu, or clear " "the list" -msgstr "O tamanho máximo para a lista de Abrir Recentes no menu Ficheiro" +msgstr "" +"Definir o número máximo da lista em Abrir Recentes no menu Ficheiro, ou " +"limpar a lista" #: ../src/ui/dialog/inkscape-preferences.cpp:647 msgid "_Zoom correction factor (in %):" -msgstr "" +msgstr "Fator de correção de _apliação/redução (em %):" #: ../src/ui/dialog/inkscape-preferences.cpp:648 msgid "" @@ -19945,122 +18771,124 @@ msgid "" "real length. This information is used when zooming to 1:1, 1:2, etc., to " "display objects in their true sizes" msgstr "" +"Ajustar o deslizador até que o comprimento da régua no ecrã seja igual ao " +"comprimento real. Esta informação é utilizada ao aproximar ou afastar para " +"1:1, 1:2, etc. para mostrar objetos nos seus tamanhos reais." #: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Enable dynamic relayout for incomplete sections" -msgstr "" +msgstr "Ativar recriar layout dinâmico para secções incompletas" #: ../src/ui/dialog/inkscape-preferences.cpp:653 msgid "" "When on, will allow dynamic layout of components that are not completely " "finished being refactored" msgstr "" +"Quanto ativado, permite o layout dinâmico dos componentes que não estejam " +"completamente terminados serem refeitos" #. show infobox #: ../src/ui/dialog/inkscape-preferences.cpp:656 -#, fuzzy msgid "Show filter primitives infobox (requires restart)" -msgstr "Definir atributo de primitiva de filtro" +msgstr "Mostrar caixa de informação dos filtros (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:658 msgid "" "Show icons and descriptions for the filter primitives available at the " "filter effects dialog" msgstr "" +"Mostrar ícones e descrições para os filtros disponíveis no painel de efeitos " +"de filtros" #: ../src/ui/dialog/inkscape-preferences.cpp:661 #: ../src/ui/dialog/inkscape-preferences.cpp:669 -#, fuzzy msgid "Icons only" -msgstr "Cor das linhas guias" +msgstr "Apenas ícones" #: ../src/ui/dialog/inkscape-preferences.cpp:661 #: ../src/ui/dialog/inkscape-preferences.cpp:669 -#, fuzzy msgid "Text only" -msgstr "Entrada de Texto" +msgstr "Apenas texto" #: ../src/ui/dialog/inkscape-preferences.cpp:661 #: ../src/ui/dialog/inkscape-preferences.cpp:669 -#, fuzzy msgid "Icons and text" -msgstr "Nenhuma pintura" +msgstr "Ãcones e texto" #: ../src/ui/dialog/inkscape-preferences.cpp:666 -#, fuzzy msgid "Dockbar style (requires restart):" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "Estilo da barra vertical dos painéis (necessário reiniciar):" #: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "" "Selects whether the vertical bars on the dockbar will show text labels, " "icons, or both" msgstr "" +"Define se a barra vertical dos painéis são mostradas com texto, ícones ou " +"ambos" #: ../src/ui/dialog/inkscape-preferences.cpp:674 -#, fuzzy msgid "Switcher style (requires restart):" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "Estilo dos painéis minimizados (necessário reiniciar):" #: ../src/ui/dialog/inkscape-preferences.cpp:675 msgid "" "Selects whether the dockbar switcher will show text labels, icons, or both" msgstr "" +"Define se os painéis minimizados mostram o nome do painel, o ícone, ou ambos." #. Windows #: ../src/ui/dialog/inkscape-preferences.cpp:679 msgid "Save and restore window geometry for each document" -msgstr "Guardar e restaurar a geometria das janelas para cada documento" +msgstr "Guardar e restaurar a posição e tamanho da janela em cada documento" #: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Remember and use last window's geometry" -msgstr "Lembrar e usar a última geometria de janela" +msgstr "Lembrar e usar a última posição e tamanho da janela" #: ../src/ui/dialog/inkscape-preferences.cpp:681 msgid "Don't save window geometry" -msgstr "Não guardar geometria da janela" +msgstr "Não guardar posição e tamanho da janela" #: ../src/ui/dialog/inkscape-preferences.cpp:683 msgid "Save and restore dialogs status" -msgstr "" +msgstr "Guardar e restaurar o estado dos painéis laterais" #: ../src/ui/dialog/inkscape-preferences.cpp:684 #: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Don't save dialogs status" -msgstr "" +msgstr "Não guardar o estado dos painéis laterais" #: ../src/ui/dialog/inkscape-preferences.cpp:686 #: ../src/ui/dialog/inkscape-preferences.cpp:728 msgid "Dockable" -msgstr "Docável" +msgstr "Agrupados num painel principal (docáveis)" #: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "Native open/save dialogs" -msgstr "" +msgstr "Janelas de abrir/gravar nativas" #: ../src/ui/dialog/inkscape-preferences.cpp:691 msgid "GTK open/save dialogs" -msgstr "" +msgstr "Janelas de abrir/gravar do GTK" #: ../src/ui/dialog/inkscape-preferences.cpp:693 msgid "Dialogs are hidden in taskbar" -msgstr "Janelas são escondidas na barra de tarefas" +msgstr "As janelas são escondidas na barra de tarefas" #: ../src/ui/dialog/inkscape-preferences.cpp:694 -#, fuzzy msgid "Save and restore documents viewport" -msgstr "Guardar e restaurar a geometria das janelas para cada documento" +msgstr "Gravar e restaurar a área visível para cada documento" #: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Zoom when window is resized" -msgstr "Ampliar quando janela for redimensionada" +msgstr "Ampliar desenho quando a janela for redimensionada" #: ../src/ui/dialog/inkscape-preferences.cpp:696 msgid "Show close button on dialogs" -msgstr "Mostrar botões de fechar em diálogos" +msgstr "Mostrar botões de fechar em janelas de diálogo" #: ../src/ui/dialog/inkscape-preferences.cpp:697 -#, fuzzy msgctxt "Dialog on top" msgid "None" msgstr "Nenhum" @@ -20070,37 +18898,31 @@ msgid "Aggressive" msgstr "Agressivo" #: ../src/ui/dialog/inkscape-preferences.cpp:702 -#, fuzzy msgctxt "Window size" msgid "Small" -msgstr "Pequeno" +msgstr "Pequena" #: ../src/ui/dialog/inkscape-preferences.cpp:702 -#, fuzzy msgctxt "Window size" msgid "Large" msgstr "Grande" #: ../src/ui/dialog/inkscape-preferences.cpp:702 -#, fuzzy msgctxt "Window size" msgid "Maximized" -msgstr "Otimizado" +msgstr "Maximizada" #: ../src/ui/dialog/inkscape-preferences.cpp:706 -#, fuzzy msgid "Default window size:" -msgstr "Configurações da página" +msgstr "Tamanho padrão da janela:" #: ../src/ui/dialog/inkscape-preferences.cpp:707 -#, fuzzy msgid "Set the default window size" -msgstr "Criar degradê padrão" +msgstr "Definir o tamanho da janela padrão do Inkscape" #: ../src/ui/dialog/inkscape-preferences.cpp:710 -#, fuzzy msgid "Saving window geometry (size and position)" -msgstr "Salvando geometria da janela (tamanho e posição):" +msgstr "Guardar tamanho e posição da janela (geometria)" #: ../src/ui/dialog/inkscape-preferences.cpp:712 msgid "Let the window manager determine placement of all windows" @@ -20114,56 +18936,55 @@ msgid "" "preferences)" msgstr "" "Lembrar e utilizar a última geometria da janela (guardar nas preferências do " -"utilizador) " +"utilizador)" #: ../src/ui/dialog/inkscape-preferences.cpp:716 msgid "" "Save and restore window geometry for each document (saves geometry in the " "document)" msgstr "" -"Guardar e restaurar a geometria da janela para cada documento (guardar no " -"documento)" +"Guardar e restaurar a geometria da janela para cada documento (guarda a " +"geometria no documento)" #: ../src/ui/dialog/inkscape-preferences.cpp:718 -#, fuzzy msgid "Saving dialogs status" -msgstr "Mostrar diálogo ao iniciar" +msgstr "Guardar estados dos painéis laterais" #: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "" "Save and restore dialogs status (the last open windows dialogs are saved " "when it closes)" msgstr "" +"Guardar e restaurar estados dos painéis laterais (os últimos painéis " +"laterais são guardados quando se fecha)" #: ../src/ui/dialog/inkscape-preferences.cpp:726 -#, fuzzy msgid "Dialog behavior (requires restart)" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "Disposição dos painéis laterais (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:732 -#, fuzzy msgid "Desktop integration" -msgstr "Destino da impressão" +msgstr "Integração no ambiente de trabalho" #: ../src/ui/dialog/inkscape-preferences.cpp:734 msgid "Use Windows like open and save dialogs" -msgstr "" +msgstr "Usar janelas de diálogo de abrir e guardar como as do Windows" #: ../src/ui/dialog/inkscape-preferences.cpp:736 msgid "Use GTK open and save dialogs " -msgstr "" +msgstr "Usar janelas de diálogo de abrir e guardar como do GTK " #: ../src/ui/dialog/inkscape-preferences.cpp:740 msgid "Dialogs on top:" -msgstr "Janelas no topo:" +msgstr "Janelas de diálogo no topo:" #: ../src/ui/dialog/inkscape-preferences.cpp:743 msgid "Dialogs are treated as regular windows" -msgstr "Diálogos são tratados como janelas normais" +msgstr "As janelas de diálogo são tratadas como janelas normais" #: ../src/ui/dialog/inkscape-preferences.cpp:745 msgid "Dialogs stay on top of document windows" -msgstr "Diálogos permanecem acima das janelas de desenho" +msgstr "As janelas de diálogo permanecem acima das janelas de documentos" #: ../src/ui/dialog/inkscape-preferences.cpp:747 msgid "Same as Normal but may work better with some window managers" @@ -20171,32 +18992,28 @@ msgstr "" "Igual a Normal mas pode funcionar melhor com alguns gerenciadores de janelas" #: ../src/ui/dialog/inkscape-preferences.cpp:750 -#, fuzzy msgid "Dialog Transparency" -msgstr "0 (transparente)" +msgstr "Transparência das Janelas de Diálogo" #: ../src/ui/dialog/inkscape-preferences.cpp:752 -#, fuzzy msgid "_Opacity when focused:" -msgstr "Canal de Opacidade" +msgstr "_Opacidade quando destacadas:" #: ../src/ui/dialog/inkscape-preferences.cpp:754 -#, fuzzy msgid "Opacity when _unfocused:" -msgstr "Canal de Opacidade" +msgstr "Opacidade quando _não-destacadas:" #: ../src/ui/dialog/inkscape-preferences.cpp:756 msgid "_Time of opacity change animation:" -msgstr "" +msgstr "_Tempo da animação de alteração da opacidade:" #: ../src/ui/dialog/inkscape-preferences.cpp:759 -#, fuzzy msgid "Miscellaneous" -msgstr "Miscelânio:" +msgstr "Miscelânea" #: ../src/ui/dialog/inkscape-preferences.cpp:762 msgid "Whether dialog windows are to be hidden in the window manager taskbar" -msgstr "Quando janelas de diálogo são escondidas na barra de tarefas" +msgstr "Se janelas de diálogo são escondidas, ou não, na barra de tarefas" #: ../src/ui/dialog/inkscape-preferences.cpp:765 msgid "" @@ -20204,19 +19021,22 @@ msgid "" "(this is the default which can be changed in any window using the button " "above the right scrollbar)" msgstr "" -"Ampliar desenho quando janela for redimensionada. Para manter a mesma área " -"visível (Este é o padrão que pode ser mudado em qualquer janela usando o " -"botão que está abaixo da barra de rolagem direita)" +"Ampliar desenho quando a janela do documento for redimensionada, para manter " +"a mesma área visível (isto é o comportamento padrão que pode ser alterado em " +"qualquer janela usando o botão da lupa 1:1 por cima da barra de elevador)" #: ../src/ui/dialog/inkscape-preferences.cpp:767 msgid "" "Save documents viewport (zoom and panning position). Useful to turn off when " "sharing version controlled files." msgstr "" +"Guardar vista dos documentos (posição e apliação). Útil para desativar ao " +"partilhar ficheiros controlados pela versão." #: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Whether dialog windows have a close button (requires restart)" -msgstr "Janelas de diálogo possuem um botão de fechar (requer reinicialização)" +msgstr "" +"Se as janelas de diálogo têm ou não um botão de fechar (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:770 msgid "Windows" @@ -20225,102 +19045,88 @@ msgstr "Janelas" #. Grids #: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Line color when zooming out" -msgstr "" +msgstr "Cor a usar nas linhas ao afastar a vista" #: ../src/ui/dialog/inkscape-preferences.cpp:776 msgid "The gridlines will be shown in minor grid line color" -msgstr "" +msgstr "As linhas da grelha serão mostradas na cor da linha fina da grelha" #: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "The gridlines will be shown in major grid line color" -msgstr "" +msgstr "As linhas da grelha serão mostradas na cor da linha grossa da grelha" #: ../src/ui/dialog/inkscape-preferences.cpp:780 -#, fuzzy msgid "Default grid settings" -msgstr "Configurações da página" +msgstr "Definições da grelha padrão" #: ../src/ui/dialog/inkscape-preferences.cpp:786 #: ../src/ui/dialog/inkscape-preferences.cpp:811 -#, fuzzy msgid "Grid units:" -msgstr "_Unidades da grelha:" +msgstr "Unidades da grelha:" #: ../src/ui/dialog/inkscape-preferences.cpp:791 #: ../src/ui/dialog/inkscape-preferences.cpp:816 -#, fuzzy msgid "Origin X:" -msgstr "_Origem X:" +msgstr "Origem X:" #: ../src/ui/dialog/inkscape-preferences.cpp:792 #: ../src/ui/dialog/inkscape-preferences.cpp:817 -#, fuzzy msgid "Origin Y:" -msgstr "O_rigem Y:" +msgstr "Origem Y:" #: ../src/ui/dialog/inkscape-preferences.cpp:797 -#, fuzzy msgid "Spacing X:" -msgstr "Espaçamento _X:" +msgstr "Espaçamento X:" #: ../src/ui/dialog/inkscape-preferences.cpp:798 #: ../src/ui/dialog/inkscape-preferences.cpp:820 -#, fuzzy msgid "Spacing Y:" -msgstr "Espaçamento _Y:" +msgstr "Espaçamento Y:" #: ../src/ui/dialog/inkscape-preferences.cpp:800 #: ../src/ui/dialog/inkscape-preferences.cpp:801 #: ../src/ui/dialog/inkscape-preferences.cpp:825 #: ../src/ui/dialog/inkscape-preferences.cpp:826 -#, fuzzy msgid "Minor grid line color:" -msgstr "Cor da linha de grelha ma_ior:" +msgstr "Cor da linha fina da grelha:" #: ../src/ui/dialog/inkscape-preferences.cpp:801 #: ../src/ui/dialog/inkscape-preferences.cpp:826 -#, fuzzy msgid "Color used for normal grid lines" -msgstr "Cor das linhas de grelha" +msgstr "Cor das linhas finas da grelha" #: ../src/ui/dialog/inkscape-preferences.cpp:802 #: ../src/ui/dialog/inkscape-preferences.cpp:803 #: ../src/ui/dialog/inkscape-preferences.cpp:827 #: ../src/ui/dialog/inkscape-preferences.cpp:828 -#, fuzzy msgid "Major grid line color:" -msgstr "Cor da linha de grelha ma_ior:" +msgstr "Cor da linha grossa da grelha:" #: ../src/ui/dialog/inkscape-preferences.cpp:803 #: ../src/ui/dialog/inkscape-preferences.cpp:828 -#, fuzzy msgid "Color used for major (highlighted) grid lines" -msgstr "Cor da linha de grelha maior (destacada)" +msgstr "Cor das linhas grossas da grelha" #: ../src/ui/dialog/inkscape-preferences.cpp:805 #: ../src/ui/dialog/inkscape-preferences.cpp:830 -#, fuzzy msgid "Major grid line every:" -msgstr "_Linha de grelha maior a cada:" +msgstr "Linha grossa da grelha a cada:" #: ../src/ui/dialog/inkscape-preferences.cpp:806 -#, fuzzy msgid "Show dots instead of lines" -msgstr "_Mostrar pontos ao invés de linhas" +msgstr "Mostrar grelha de pontos em vez de linhas" #: ../src/ui/dialog/inkscape-preferences.cpp:807 -#, fuzzy msgid "If set, display dots at gridpoints instead of gridlines" -msgstr "Mostrar pontos na grelha ao invés de linhas" +msgstr "Se ativado, mostra a grelha numa série de pontos em vez de linhas" #: ../src/ui/dialog/inkscape-preferences.cpp:888 -#, fuzzy msgid "Input/Output" -msgstr "Saída" +msgstr "Entrada/Saída" #: ../src/ui/dialog/inkscape-preferences.cpp:891 msgid "Use current directory for \"Save As ...\"" -msgstr "" +msgstr "Usar a pasta atual para \"Guardar como ...\"" #: ../src/ui/dialog/inkscape-preferences.cpp:893 msgid "" @@ -20329,161 +19135,154 @@ msgid "" "it's off, each will open in the directory where you last saved a file using " "it" msgstr "" +"Quando esta opção está ativada, ao \"Gravar como...\" e \"Gravar uma Cópia..." +"\" será aberta a janela de diálogo com a localização do documento atual; " +"quando desativada esta opção, será mostrada a localização do último " +"documento gravado" #: ../src/ui/dialog/inkscape-preferences.cpp:895 msgid "Add label comments to printing output" -msgstr "Adicionar comentários etiqueta para a saída de impressão" +msgstr "Adicionar comentários de etiquetas para a saída de impressão" #: ../src/ui/dialog/inkscape-preferences.cpp:897 msgid "" "When on, a comment will be added to the raw print output, marking the " "rendered output for an object with its label" msgstr "" -"Se activado, um comentário será adicionado à saída de impressão padrão, " -"marcando a saída restituída para um objecto com esta etiqueta" +"Se ativado, será adicionado um comentário à saída de impressão em bruto, " +"marcando a saída para um objeto com a sua etiqueta" #: ../src/ui/dialog/inkscape-preferences.cpp:899 -#, fuzzy msgid "Add default metadata to new documents" -msgstr "Metadados salvos com o desenho" +msgstr "Adicionar metadados padrão aos novos documentos" #: ../src/ui/dialog/inkscape-preferences.cpp:901 msgid "" "Add default metadata to new documents. Default metadata can be set from " "Document Properties->Metadata." msgstr "" +"Adicionar metadados padrão. Os metadados padrão podem ser configurados em " +"Propriedades do Documento->Metadados" #: ../src/ui/dialog/inkscape-preferences.cpp:905 -#, fuzzy msgid "_Grab sensitivity:" -msgstr "Sensibilidade de agarrar:" +msgstr "Sensibilidade de _agarrar:" #: ../src/ui/dialog/inkscape-preferences.cpp:905 -#, fuzzy msgid "pixels (requires restart)" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "píxeis (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:906 msgid "" "How close on the screen you need to be to an object to be able to grab it " "with mouse (in screen pixels)" msgstr "" -"Quão perto da Ecrã é preciso que o de um objecto esteja para ser possível " -"agarrá-lo com o mouse (em pixels)" +"Quão perto do ecrã é preciso que o de um objeto esteja para ser possível " +"agarrá-lo com o rato (em píxeis do ecrã)" #: ../src/ui/dialog/inkscape-preferences.cpp:908 -#, fuzzy msgid "_Click/drag threshold:" -msgstr "Limiar para clicar/arrastar:" +msgstr "Limiar para _clicar/arrastar:" #: ../src/ui/dialog/inkscape-preferences.cpp:908 #: ../src/ui/dialog/inkscape-preferences.cpp:1250 #: ../src/ui/dialog/inkscape-preferences.cpp:1254 #: ../src/ui/dialog/inkscape-preferences.cpp:1264 msgid "pixels" -msgstr "pixels" +msgstr "píxeis" #: ../src/ui/dialog/inkscape-preferences.cpp:909 msgid "" "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "" -"Arrasto máximo do mouse (em pixels) que é considerado um clicar e não " +"Arrasto máximo do rato (em píxeis do ecrã) que é considerado um clicar e não " "arrastar" #: ../src/ui/dialog/inkscape-preferences.cpp:912 -#, fuzzy msgid "_Handle size:" -msgstr "Ângulo" +msgstr "_Tamanho da alça:" #: ../src/ui/dialog/inkscape-preferences.cpp:913 -#, fuzzy msgid "Set the relative size of node handles" -msgstr "Deslocar alças do nó" +msgstr "Definir o tamanho relativo das alças dos nós" #: ../src/ui/dialog/inkscape-preferences.cpp:915 -#, fuzzy msgid "Use pressure-sensitive tablet (requires restart)" -msgstr "" -"Use a pressão sensível da Mesa Digitalizadora (tablet) ou outro dispositivo " -"(necessita reiniciar)" +msgstr "Usar dispositivo sensível à pressão (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:917 -#, fuzzy msgid "" "Use the capabilities of a tablet or other pressure-sensitive device. Disable " "this only if you have problems with the tablet (you can still use it as a " "mouse)" msgstr "" -"Use as capacidades da Mesa Digitalizadora (tablet) ou outro dispositivo de " -"sensível a pressão. Desative-o apenas se tiver problemas com a Mesa " -"Digitalizadora." +"Usar as capacidades de uma nesa digitalizadora, tablet ou outro dispositivo " +"sensível à pressão. Desativar isto apenas se tiver problemas com o " +"dispositivo (pode usá-lo na mesma como um simples rato)" #: ../src/ui/dialog/inkscape-preferences.cpp:919 -#, fuzzy msgid "Switch tool based on tablet device (requires restart)" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "Mudança de ferramenta baseado em tablet (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:921 msgid "" "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" +"Alterar a ferramenta conforme sejam utilizados diferentes dispositivos na " +"tablet (caneta, borracha, rato)" #: ../src/ui/dialog/inkscape-preferences.cpp:922 -#, fuzzy msgid "Input devices" -msgstr "D_ispositivos de Entrada..." +msgstr "Dispositivos de entrada" #. SVG output options #: ../src/ui/dialog/inkscape-preferences.cpp:925 -#, fuzzy msgid "Use named colors" -msgstr "Ajustar a cor escolhida" +msgstr "Usar nomes das cores" #: ../src/ui/dialog/inkscape-preferences.cpp:926 msgid "" "If set, write the CSS name of the color when available (e.g. 'red' or " "'magenta') instead of the numeric value" msgstr "" +"Se ativado, gravar o nome CSS da cor quando disponível (por exemplo " +"'vermelho' ou 'magenta') em vez do valor numérico" #: ../src/ui/dialog/inkscape-preferences.cpp:928 -#, fuzzy msgid "XML formatting" -msgstr "Informação" +msgstr "Formatação XML" #: ../src/ui/dialog/inkscape-preferences.cpp:930 -#, fuzzy msgid "Inline attributes" -msgstr "Ajustar atributo" +msgstr "Atributos inline" #: ../src/ui/dialog/inkscape-preferences.cpp:931 msgid "Put attributes on the same line as the element tag" -msgstr "" +msgstr "Colocar atributos na mesma linha do elemento etiqueta" #: ../src/ui/dialog/inkscape-preferences.cpp:934 -#, fuzzy msgid "_Indent, spaces:" -msgstr "Indentar nó" +msgstr "_Indentação, espaços:" #: ../src/ui/dialog/inkscape-preferences.cpp:934 -#, fuzzy msgid "" "The number of spaces to use for indenting nested elements; set to 0 for no " "indentation" -msgstr "O número de caminhos que serão gerados." +msgstr "" +"O número de espaços a usar para identar elementos em redor; usar 0 para não " +"identar" #: ../src/ui/dialog/inkscape-preferences.cpp:936 -#, fuzzy msgid "Path data" -msgstr "Colar caminho" +msgstr "Caminho dos dados" #: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "Absolute" -msgstr "" +msgstr "Absoluto" #: ../src/ui/dialog/inkscape-preferences.cpp:939 -#, fuzzy msgid "Relative" -msgstr "Relativo a: " +msgstr "Relativo" #: ../src/ui/dialog/inkscape-preferences.cpp:939 #: ../src/ui/dialog/inkscape-preferences.cpp:1229 @@ -20492,7 +19291,7 @@ msgstr "Otimizado" #: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "Path string format:" -msgstr "" +msgstr "Formato da expressão do caminho:" #: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "" @@ -20500,96 +19299,101 @@ msgid "" "relative coordinates, or optimized for string length (mixed absolute and " "relative coordinates)" msgstr "" +"Os dados dos caminhos devem ser gravados: apenas com coordenadas absolutas, " +"apenas com coordenadas relativas, ou optimizadas para o comprimento da " +"expressão (coordenadas absolutas e relativas misturadas)" #: ../src/ui/dialog/inkscape-preferences.cpp:945 msgid "Force repeat commands" -msgstr "" +msgstr "Forçar comandos repetitivos" #: ../src/ui/dialog/inkscape-preferences.cpp:946 msgid "" "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " "of 'L 1,2 3,4')" msgstr "" +"Forçar a repetição do mesmo comando de caminho (por exemplo, 'L 1,2 L 3,4' " +"em vez de 'L 1,2 3,4')" #: ../src/ui/dialog/inkscape-preferences.cpp:948 -#, fuzzy msgid "Numbers" -msgstr "Numerar Nós" +msgstr "Números" #: ../src/ui/dialog/inkscape-preferences.cpp:951 -#, fuzzy msgid "_Numeric precision:" -msgstr "Precisão" +msgstr "Precisão _numérica:" #: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "Significant figures of the values written to the SVG file" -msgstr "" +msgstr "Números significativos dos valores gravados no ficheiro SVG" #: ../src/ui/dialog/inkscape-preferences.cpp:954 -#, fuzzy msgid "Minimum _exponent:" -msgstr "Tamanho mínimo" +msgstr "_Exponente mínimo:" #: ../src/ui/dialog/inkscape-preferences.cpp:954 msgid "" "The smallest number written to SVG is 10 to the power of this exponent; " "anything smaller is written as zero" msgstr "" +"O número mais pequeno gravado no SVG é 10 elevado a este exponente; tudo o " +"que seja mais pequeno é gravado como zero" #. Code to add controls for attribute checking options #. Add incorrect style properties options #: ../src/ui/dialog/inkscape-preferences.cpp:959 msgid "Improper Attributes Actions" -msgstr "" +msgstr "Ações de Atributos Impróprias" #: ../src/ui/dialog/inkscape-preferences.cpp:961 #: ../src/ui/dialog/inkscape-preferences.cpp:969 #: ../src/ui/dialog/inkscape-preferences.cpp:977 -#, fuzzy msgid "Print warnings" -msgstr "Imprimir usando operadores PostScript" +msgstr "Mostrar avisos" #: ../src/ui/dialog/inkscape-preferences.cpp:962 msgid "" "Print warning if invalid or non-useful attributes found. Database files " "located in inkscape_data_dir/attributes." msgstr "" +"Mostrar informações caso sejam encontrados atributos inválidos ou inúteis. " +"Os ficheiros da base de dados encontram-se em pasta_do_inkscape/attributes" #: ../src/ui/dialog/inkscape-preferences.cpp:963 -#, fuzzy msgid "Remove attributes" -msgstr "Ajustar atributo" +msgstr "Remover atributos" #: ../src/ui/dialog/inkscape-preferences.cpp:964 msgid "Delete invalid or non-useful attributes from element tag" -msgstr "" +msgstr "Eliminar atributos inválidos ou inúteis da etiqueta do elemento" #. Add incorrect style properties options #: ../src/ui/dialog/inkscape-preferences.cpp:967 msgid "Inappropriate Style Properties Actions" -msgstr "" +msgstr "Ações de Propriedades de Estilo Inapropriadas" #: ../src/ui/dialog/inkscape-preferences.cpp:970 msgid "" "Print warning if inappropriate style properties found (i.e. 'font-family' " "set on a ). Database files located in inkscape_data_dir/attributes." msgstr "" +"Mostrar avisos se forem econtradas propriedades de estilo inapropriadas (por " +"exemplo, \"font-family\" encontrado em ). Os ficheiros da base de " +"dados encontram-se em inkscape_data_dir/attributes" #: ../src/ui/dialog/inkscape-preferences.cpp:971 #: ../src/ui/dialog/inkscape-preferences.cpp:979 -#, fuzzy msgid "Remove style properties" -msgstr "Definir propriedades da guia" +msgstr "Remover propriedades dos estilos" #: ../src/ui/dialog/inkscape-preferences.cpp:972 -#, fuzzy msgid "Delete inappropriate style properties" -msgstr "Definir propriedades da guia" +msgstr "Eliminar porpriedades de estilo inapropriadas" #. Add default or inherited style properties options #: ../src/ui/dialog/inkscape-preferences.cpp:975 msgid "Non-useful Style Properties Actions" -msgstr "" +msgstr "Ações de Propriedades de Estilos Inúteis" #: ../src/ui/dialog/inkscape-preferences.cpp:978 msgid "" @@ -20598,74 +19402,76 @@ msgid "" "same as would be inherited). Database files located in inkscape_data_dir/" "attributes." msgstr "" +"Mostrar avisos se forem encontradas propriedades de estilo redundantes (isto " +"é, se uma propriedade tiver o valor padrão e um valor diferente não for " +"herdado ou se o valor for o mesmo se fosse herdado). Os ficheiros da base de " +"dados encontram-se em inkscape_data_dir/attributes" #: ../src/ui/dialog/inkscape-preferences.cpp:980 -#, fuzzy msgid "Delete redundant style properties" -msgstr "Definir propriedades da guia" +msgstr "Eliminar porpriedades de estilo redundantes" #: ../src/ui/dialog/inkscape-preferences.cpp:982 msgid "Check Attributes and Style Properties on" -msgstr "" +msgstr "Verificar atributos e propriedades de estilo ao" #: ../src/ui/dialog/inkscape-preferences.cpp:984 -#, fuzzy msgid "Reading" -msgstr "Espaçamento" +msgstr "Ler" #: ../src/ui/dialog/inkscape-preferences.cpp:985 msgid "" "Check attributes and style properties on reading in SVG files (including " "those internal to Inkscape which will slow down startup)" msgstr "" +"Verificar atributos e propriedades de estilo ao ler ficheiros SVG (incluindo " +"os internos do Inkscape que irá tornar o arranque do Inkscape mais lento)" #: ../src/ui/dialog/inkscape-preferences.cpp:986 -#, fuzzy msgid "Editing" -msgstr "_Editar" +msgstr "Editar" #: ../src/ui/dialog/inkscape-preferences.cpp:987 msgid "" "Check attributes and style properties while editing SVG files (may slow down " "Inkscape, mostly useful for debugging)" msgstr "" +"Verificar atributos e propriedades de estilo ao editar ficheiros SVG (pode " +"tornar o Inkscape lento, é útil para tentar encontrar a fonte de alguns " +"problemas)" #: ../src/ui/dialog/inkscape-preferences.cpp:988 -#, fuzzy msgid "Writing" -msgstr "Script" +msgstr "Gravar" #: ../src/ui/dialog/inkscape-preferences.cpp:989 msgid "Check attributes and style properties on writing out SVG files" -msgstr "" +msgstr "Verificar atributos e propriedades de estilo ao gravar ficheiros SVG" #: ../src/ui/dialog/inkscape-preferences.cpp:991 -#, fuzzy msgid "SVG output" -msgstr "Saída SVG" +msgstr "Exportar em SVG" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm #: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Perceptual" -msgstr "" +msgstr "Perceptual" #: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Relative Colorimetric" -msgstr "Colorimetria Relativa" +msgstr "Colorimétrico Relativo" #: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Absolute Colorimetric" -msgstr "Clorimetria Absoluta" +msgstr "Colorimétrico Absoluto" #: ../src/ui/dialog/inkscape-preferences.cpp:1001 -#, fuzzy msgid "(Note: Color management has been disabled in this build)" -msgstr "(Nota: o Gerenciamento de Cores foi desabilitado nessa construção)" +msgstr "(Nota: a gestão de cores foi desativada nesta versão)" #: ../src/ui/dialog/inkscape-preferences.cpp:1005 -#, fuzzy msgid "Display adjustment" -msgstr "_Modo de visão" +msgstr "Ecrã" #: ../src/ui/dialog/inkscape-preferences.cpp:1015 #, c-format @@ -20673,158 +19479,154 @@ msgid "" "The ICC profile to use to calibrate display output.\n" "Searched directories:%s" msgstr "" +"O perfil de cor ICC a usar para calibrar o ecrã.\n" +"Pastas procuradas:%s" #: ../src/ui/dialog/inkscape-preferences.cpp:1016 msgid "Display profile:" -msgstr "Mostrar perfil:" +msgstr "Perfil de cores do ecrã:" #: ../src/ui/dialog/inkscape-preferences.cpp:1021 msgid "Retrieve profile from display" -msgstr "" +msgstr "Obter perfil a partir do ecrã" #: ../src/ui/dialog/inkscape-preferences.cpp:1024 msgid "Retrieve profiles from those attached to displays via XICC" -msgstr "" +msgstr "Obter perfis a partir dos anexados aos ecrãs via XICC" #: ../src/ui/dialog/inkscape-preferences.cpp:1026 msgid "Retrieve profiles from those attached to displays" -msgstr "" +msgstr "Obter perfis a partir dos anexados aos ecrãs" #: ../src/ui/dialog/inkscape-preferences.cpp:1031 -#, fuzzy msgid "Display rendering intent:" -msgstr "_Modo de visão" +msgstr "Propósito de renderização do ecrã:" #: ../src/ui/dialog/inkscape-preferences.cpp:1032 msgid "The rendering intent to use to calibrate display output" -msgstr "" +msgstr "O propósito de renderização a usar para calibrar o ecrã" #: ../src/ui/dialog/inkscape-preferences.cpp:1034 -#, fuzzy msgid "Proofing" -msgstr "Ponto" +msgstr "Prova de cor" #: ../src/ui/dialog/inkscape-preferences.cpp:1036 msgid "Simulate output on screen" -msgstr "Simular saída na Ecrã" +msgstr "Simular saída no ecrã" #: ../src/ui/dialog/inkscape-preferences.cpp:1038 -#, fuzzy msgid "Simulates output of target device" -msgstr "Simula a saída do dispositivo alvo." +msgstr "Simular saída do dispositivo de destino" #: ../src/ui/dialog/inkscape-preferences.cpp:1040 msgid "Mark out of gamut colors" -msgstr "" +msgstr "Destacar cores fora da gama de cores" #: ../src/ui/dialog/inkscape-preferences.cpp:1042 msgid "Highlights colors that are out of gamut for the target device" msgstr "" +"Destaca cores que estejam fora da gama de cores para o dispositivo alvo" #: ../src/ui/dialog/inkscape-preferences.cpp:1054 msgid "Out of gamut warning color:" -msgstr "" +msgstr "Cor de aviso de fora de gama:" #: ../src/ui/dialog/inkscape-preferences.cpp:1055 -#, fuzzy msgid "Selects the color used for out of gamut warning" -msgstr "Cor da linha de grelha maior (destacada)" +msgstr "Cor utilizada para avisar que cores estão fora da gama" #: ../src/ui/dialog/inkscape-preferences.cpp:1057 msgid "Device profile:" -msgstr "Perfil de dispositivo:" +msgstr "Perfil do dispositivo:" #: ../src/ui/dialog/inkscape-preferences.cpp:1058 msgid "The ICC profile to use to simulate device output" -msgstr "" +msgstr "O perfil de cores ICC a usar para simular o dispositivo de destino" #: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "Device rendering intent:" -msgstr "" +msgstr "Propósito de renderização do dispositivo:" #: ../src/ui/dialog/inkscape-preferences.cpp:1062 msgid "The rendering intent to use to calibrate device output" msgstr "" +"O propósito de renderização a usar para calibrar a saída do dispositivo" #: ../src/ui/dialog/inkscape-preferences.cpp:1064 -#, fuzzy msgid "Black point compensation" -msgstr "Compensação de Ponto Preto" +msgstr "Compensação de ponto preto" #: ../src/ui/dialog/inkscape-preferences.cpp:1066 -#, fuzzy msgid "Enables black point compensation" -msgstr "Compensação de Ponto Preto" +msgstr "Ativa a compensação de ponto preto" #: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "Preserve black" -msgstr "Preservar preto" +msgstr "Manter preto" #: ../src/ui/dialog/inkscape-preferences.cpp:1075 msgid "(LittleCMS 1.15 or later required)" -msgstr "(LittleCMS 1.15 ou mais recente é requerido)" +msgstr "(é necessário o LittleCMS 1.15 ou mais recente)" #: ../src/ui/dialog/inkscape-preferences.cpp:1077 -#, fuzzy msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "Preservar o canal K em transformações CMYK -> CMYK" #: ../src/ui/dialog/inkscape-preferences.cpp:1091 #: ../src/ui/widget/color-icc-selector.cpp:394 -#: ../src/ui/widget/color-icc-selector.cpp:685 -#, fuzzy +#: ../src/ui/widget/color-icc-selector.cpp:699 msgid "" -msgstr "nenhum" +msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1136 -#, fuzzy msgid "Color management" -msgstr "Gerenciamento de cor" +msgstr "Gestão de cor" #. Autosave options #: ../src/ui/dialog/inkscape-preferences.cpp:1139 -#, fuzzy msgid "Enable autosave (requires restart)" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "Ativar gravação automática (necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:1140 msgid "" "Automatically save the current document(s) at a given interval, thus " "minimizing loss in case of a crash" msgstr "" +"Grava automaticamente os documentos atuais num dado intervalo de tempo, " +"minimizando assim a perda de dados caso ocorram problemas" #: ../src/ui/dialog/inkscape-preferences.cpp:1146 -#, fuzzy msgctxt "Filesystem" msgid "Autosave _directory:" -msgstr "" -"%s não é uma pasta válida.\n" -"%s" +msgstr "_Pasta de gravação automática:" #: ../src/ui/dialog/inkscape-preferences.cpp:1146 msgid "" "The directory where autosaves will be written. This should be an absolute " "path (starts with / on UNIX or a drive letter such as C: on Windows). " msgstr "" +"Pasta onde as gravações automáticas serão armazenadas. Isto deve ser um " +"caminho absoluto (começa com / em sistemas UNIX ou com uma letra como C: no " +"Windows). " #: ../src/ui/dialog/inkscape-preferences.cpp:1148 -#, fuzzy msgid "_Interval (in minutes):" -msgstr "Passos da interpolação" +msgstr "_Intervalo (em minutos):" #: ../src/ui/dialog/inkscape-preferences.cpp:1148 msgid "Interval (in minutes) at which document will be autosaved" -msgstr "" +msgstr "Intervalo (em minutos) no qual o documento será gravado" #: ../src/ui/dialog/inkscape-preferences.cpp:1150 -#, fuzzy msgid "_Maximum number of autosaves:" -msgstr "Máximo de desenhos recentes:" +msgstr "Número _máximo de gravações automáticas:" #: ../src/ui/dialog/inkscape-preferences.cpp:1150 msgid "" "Maximum number of autosaved files; use this to limit the storage space used" msgstr "" +"Número máximo de ficheiros gravados automaticamente; configurar isto para " +"limitar o espaço em disco usado" #. When changing the interval or enabling/disabling the autosave function, #. * update our running configuration @@ -20839,61 +19641,51 @@ msgstr "" #. #. ----------- #: ../src/ui/dialog/inkscape-preferences.cpp:1165 -#, fuzzy msgid "Autosave" -msgstr "_Autores" +msgstr "Gravação automática" #: ../src/ui/dialog/inkscape-preferences.cpp:1169 -#, fuzzy msgid "Open Clip Art Library _Server Name:" -msgstr "Nome de servidor Open Clip Art Library:" +msgstr "Nome do _Servidor do Open Clip Art Library:" #: ../src/ui/dialog/inkscape-preferences.cpp:1170 -#, fuzzy msgid "" "The server name of the Open Clip Art Library webdav server; it's used by the " "Import and Export to OCAL function" msgstr "" -"O nome de servidor webdav do Open Clip Art Library. Usado pelas funções " -"Importar e Exportar OCAL." +"O nome de servidor webdav do Open Clip Art Library. É usado pelas função " +"Importar e Exportar para o Open Clip Art Library" #: ../src/ui/dialog/inkscape-preferences.cpp:1172 -#, fuzzy msgid "Open Clip Art Library _Username:" -msgstr "Nome de utilizador Open Clip Art Library:" +msgstr "Nome de _Utilizador Open Clip Art Library:" #: ../src/ui/dialog/inkscape-preferences.cpp:1173 -#, fuzzy msgid "The username used to log into Open Clip Art Library" -msgstr "O nome de utilizador utilizado para acessar o Open Clip Art Library." +msgstr "" +"O nome de utilizador usado para aceder à conta no Open Clip Art Library" #: ../src/ui/dialog/inkscape-preferences.cpp:1175 -#, fuzzy msgid "Open Clip Art Library _Password:" -msgstr "Senha do Open Clip Art Library:" +msgstr "_Palavra-chave do Open Clip Art Library:" #: ../src/ui/dialog/inkscape-preferences.cpp:1176 -#, fuzzy msgid "The password used to log into Open Clip Art Library" -msgstr "A senha utilizada para acessar o Open Clip Art Library." +msgstr "A palavra-chave utilizada para aceder à conta no Open Clip Art Library" #: ../src/ui/dialog/inkscape-preferences.cpp:1177 -#, fuzzy msgid "Open Clip Art" -msgstr "Login do Open Clip Art" +msgstr "Open Clip Art" #: ../src/ui/dialog/inkscape-preferences.cpp:1182 -#, fuzzy msgid "Behavior" msgstr "Comportamento" #: ../src/ui/dialog/inkscape-preferences.cpp:1186 -#, fuzzy msgid "_Simplification threshold:" -msgstr "Limiar de simplificação:" +msgstr "Limiar de _simplificação:" #: ../src/ui/dialog/inkscape-preferences.cpp:1187 -#, fuzzy msgid "" "How strong is the Node tool's Simplify command by default. If you invoke " "this command several times in quick succession, it will act more and more " @@ -20901,20 +19693,20 @@ msgid "" msgstr "" "Quão forte é o comando Simplificar por padrão. Se este comando for invocado " "diversas vezes em intervalos curtos, ele agirá mais agressivamente; " -"invocando-o novamente após uma pausa restaura o limiar padrão." +"invocando-o novamente após uma pausa restaura o comportamento padrão." #: ../src/ui/dialog/inkscape-preferences.cpp:1189 msgid "Color stock markers the same color as object" -msgstr "" +msgstr "Aplicar cor do objeto aos marcadores originais" #: ../src/ui/dialog/inkscape-preferences.cpp:1190 msgid "Color custom markers the same color as object" -msgstr "" +msgstr "Aplicar cor do objeto aos marcadores personalizados" #: ../src/ui/dialog/inkscape-preferences.cpp:1191 #: ../src/ui/dialog/inkscape-preferences.cpp:1411 msgid "Update marker color when object color changes" -msgstr "" +msgstr "Atualizar a cor do marcador quando a cor do objeto é alterada" #. Selecting options #: ../src/ui/dialog/inkscape-preferences.cpp:1194 @@ -20923,88 +19715,84 @@ msgstr "Selecionar em todas as camadas" #: ../src/ui/dialog/inkscape-preferences.cpp:1195 msgid "Select only within current layer" -msgstr "Selecionar apenas dentro da camada actual" +msgstr "Selecionar apenas dentro da camada atual" #: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "Select in current layer and sublayers" msgstr "Selecionar apenas dentro da camada e subcamadas atuais" #: ../src/ui/dialog/inkscape-preferences.cpp:1197 -#, fuzzy msgid "Ignore hidden objects and layers" -msgstr "Ignorar objectos ocultos" +msgstr "Ignorar objetos e camadas ocultos" #: ../src/ui/dialog/inkscape-preferences.cpp:1198 -#, fuzzy msgid "Ignore locked objects and layers" -msgstr "Ignorar objectos bloqueados" +msgstr "Ignorar objetos e camadas bloqueados" #: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Deselect upon layer change" -msgstr "Desfazer selecção ao mudar de camada" +msgstr "Desselecionar ao mudar de camada" #: ../src/ui/dialog/inkscape-preferences.cpp:1202 msgid "" "Uncheck this to be able to keep the current objects selected when the " "current layer changes" msgstr "" -"Desmarque para poder manter os objectos seleccionados quando a camada actual " -"é alterada" +"Desmarcar para poder manter os objetos selecionados quando a camada atual é " +"alterada" #: ../src/ui/dialog/inkscape-preferences.cpp:1204 -#, fuzzy msgid "Ctrl+A, Tab, Shift+Tab" -msgstr "Ctrl+A, Tab, Shift+Tab:" +msgstr "Ctrl+A, Tab, Shift+Tab" #: ../src/ui/dialog/inkscape-preferences.cpp:1206 msgid "Make keyboard selection commands work on objects in all layers" msgstr "" -"Marque esta opção para fazer os comandos de selecção do teclado trabalharem " -"com objectos em todas as camadas" +"Marcar esta opção para fazer com que os comandos de seleção do teclado " +"trabalhem com objetos em todas as camadas" #: ../src/ui/dialog/inkscape-preferences.cpp:1208 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "" -"Marque esta opção para fazer os comandos de selecção do teclado trabalharem " -"apenas com objectos na camada actual" +"Marcar esta opção para fazer com que os comandos de seleção do teclado " +"trabalhem apenas com objetos na camada atual" #: ../src/ui/dialog/inkscape-preferences.cpp:1210 msgid "" "Make keyboard selection commands work on objects in current layer and all " "its sublayers" msgstr "" -"Marque esta opção para fazer os comandos de selecção do teclado trabalharem " -"com objectos na camada actual e em todas as suas subcamadas" +"Marcar esta opção para fazer com que os comandos de seleção do teclado " +"trabalhem com objetos na camada atual e em todas as suas subcamadas" #: ../src/ui/dialog/inkscape-preferences.cpp:1212 -#, fuzzy msgid "" "Uncheck this to be able to select objects that are hidden (either by " "themselves or by being in a hidden layer)" msgstr "" -"Desmarque esta opção para poder selecionar os objectos que estão escondidos " +"Desmarcar esta opção para poder selecionar os objetos que estão escondidos " "(que estejam em um grupo ou em uma camada escondida)" #: ../src/ui/dialog/inkscape-preferences.cpp:1214 -#, fuzzy msgid "" "Uncheck this to be able to select objects that are locked (either by " "themselves or by being in a locked layer)" msgstr "" -"Desmarque para poder selecionar objectos que estão travados (por eles mesmos " -"ou por estarem em uma camada ou grupo travado)" +"Desmarcar para poder selecionar objetos que estão bloqueados (por eles " +"mesmos ou por estarem numa camada bloqueada)" #: ../src/ui/dialog/inkscape-preferences.cpp:1216 msgid "Wrap when cycling objects in z-order" -msgstr "" +msgstr "Ciclo de seleção dos objetos empilhados" #: ../src/ui/dialog/inkscape-preferences.cpp:1218 msgid "Alt+Scroll Wheel" -msgstr "" +msgstr "Alt+Roda de Rolar do Rato" #: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Wrap around at start and end when cycling objects in z-order" msgstr "" +"Voltar ao início após o ciclo de seleção dos objetos empilhados selecionados" #: ../src/ui/dialog/inkscape-preferences.cpp:1222 msgid "Selecting" @@ -21014,15 +19802,15 @@ msgstr "Selecionando" #: ../src/ui/dialog/inkscape-preferences.cpp:1225 #: ../src/widgets/select-toolbar.cpp:564 msgid "Scale stroke width" -msgstr "Ampliar largura do traço" +msgstr "Dimensionar espessura do traço" #: ../src/ui/dialog/inkscape-preferences.cpp:1226 msgid "Scale rounded corners in rectangles" -msgstr "Ampliar canto arredondados em retângulos" +msgstr "Dimensionar cantos arredondados em retângulos" #: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Transform gradients" -msgstr "Transformar degradês" +msgstr "Transformar gradientes" #: ../src/ui/dialog/inkscape-preferences.cpp:1228 msgid "Transform patterns" @@ -21030,191 +19818,187 @@ msgstr "Transformar padrões" #: ../src/ui/dialog/inkscape-preferences.cpp:1230 msgid "Preserved" -msgstr "Preservada" +msgstr "Preservado" #: ../src/ui/dialog/inkscape-preferences.cpp:1233 #: ../src/widgets/select-toolbar.cpp:565 msgid "When scaling objects, scale the stroke width by the same proportion" -msgstr "Ao ampliar objectos, amplie a largura do traço pela mesma proporção" +msgstr "" +"Ao redimensionar objetos, redimensionar também a espessura do traço pela " +"mesma proporção" #: ../src/ui/dialog/inkscape-preferences.cpp:1235 #: ../src/widgets/select-toolbar.cpp:576 msgid "When scaling rectangles, scale the radii of rounded corners" -msgstr "Ao ampliar retângulos, ampliar o raio dos cantos arredondados" +msgstr "" +"Ao redimensionar retângulos, redimensionar também o raio dos cantos " +"arredondados" #: ../src/ui/dialog/inkscape-preferences.cpp:1237 #: ../src/widgets/select-toolbar.cpp:587 msgid "Move gradients (in fill or stroke) along with the objects" -msgstr "Transformar degradês (em preenchimento ou traço) junto com os objectos" +msgstr "Mover gradientes (no preenchimento ou traço) junto com os objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:1239 #: ../src/widgets/select-toolbar.cpp:598 msgid "Move patterns (in fill or stroke) along with the objects" -msgstr "Editar padrões (em preenchimento ou no traçado) ao longo dos objectos" +msgstr "Mover padrões (no preenchimento ou no traço) junto com os objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:1240 -#, fuzzy msgid "Store transformation" -msgstr "Armazenar transformação:" +msgstr "Armazenar transformação" #: ../src/ui/dialog/inkscape-preferences.cpp:1242 msgid "" "If possible, apply transformation to objects without adding a transform= " "attribute" msgstr "" -"Se possível, aplicar a transformação para um objecto sem acrescentar um " -"atributo de transformação" +"Se possível, aplicar a transformação aos objetos sem adicionar um atributo " +"de transformação (transform=)" #: ../src/ui/dialog/inkscape-preferences.cpp:1244 msgid "Always store transformation as a transform= attribute on objects" msgstr "" -"Sempre armazenar a transformação como um atributo de transformação em " -"objectos" +"Armazenar sempre a transformação como um atributo de transformação em " +"objetos (transform=)" #: ../src/ui/dialog/inkscape-preferences.cpp:1246 msgid "Transforms" msgstr "Transformações" #: ../src/ui/dialog/inkscape-preferences.cpp:1250 -#, fuzzy msgid "Mouse _wheel scrolls by:" -msgstr "A roda do mouse rola em:" +msgstr "A _roda do rato desloca:" #: ../src/ui/dialog/inkscape-preferences.cpp:1251 msgid "" "One mouse wheel notch scrolls by this distance in screen pixels " "(horizontally with Shift)" msgstr "" -"Uma roda do mouse rola por esta distância em pixels da Ecrã (horizontalmente " -"com Shift)" +"Uma rotação da roda do rato desloca esta distância em píxeis do ecrã " +"(horizontalmente com Shift)" #: ../src/ui/dialog/inkscape-preferences.cpp:1252 msgid "Ctrl+arrows" msgstr "Ctrl+setas" #: ../src/ui/dialog/inkscape-preferences.cpp:1254 -#, fuzzy msgid "Sc_roll by:" -msgstr "Rolar em:" +msgstr "_Deslocar em:" #: ../src/ui/dialog/inkscape-preferences.cpp:1255 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" -msgstr "Pressionando Ctrl+seta deslizar por esta distância (em pixels)" +msgstr "Pressionando Ctrl+seta deslocar a esta distância (em píxeis do ecrã)" #: ../src/ui/dialog/inkscape-preferences.cpp:1257 -#, fuzzy msgid "_Acceleration:" -msgstr "Aceleração:" +msgstr "_Aceleração:" #: ../src/ui/dialog/inkscape-preferences.cpp:1258 msgid "" "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " "acceleration)" msgstr "" -"Pressionando e segurando Ctrl+seta aumentará gradualmente a velocidade de " -"rolagem (0 para nenhuma aceleração)" +"Pressionando e segurando Ctrl+seta aumentará gradualmente a velocidade da " +"deslocação (0 para nenhuma aceleração)" #: ../src/ui/dialog/inkscape-preferences.cpp:1259 msgid "Autoscrolling" msgstr "Autorolagem" #: ../src/ui/dialog/inkscape-preferences.cpp:1261 -#, fuzzy msgid "_Speed:" -msgstr "Velocidade:" +msgstr "_Velocidade:" #: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "" "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " "autoscroll off)" msgstr "" -"Quão rápido a Ecrã rola quando é arrastada além da beira da Ecrã (0 para " -"desligar a rolagem)" +"Quão rápido a área de desenho rola quando é arrastada além das bordas (0 " +"para desligar a rolagem)" #: ../src/ui/dialog/inkscape-preferences.cpp:1264 #: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 -#, fuzzy msgid "_Threshold:" -msgstr "Limiar:" +msgstr "_Limiar:" #: ../src/ui/dialog/inkscape-preferences.cpp:1265 msgid "" "How far (in screen pixels) you need to be from the canvas edge to trigger " "autoscroll; positive is outside the canvas, negative is within the canvas" msgstr "" -"Quão longe (em pixels) é preciso estar da beira da Ecrã para disparar a " -"rolagem. Positivo é do lado de fora da Ecrã e negativo é dentro da Ecrã." +"Quão longe (em píxeis do ecrã) é preciso estar das bordas da área de desenho " +"para ativar a autorolagem. Positivo é do lado de fora e negativo é do lado " +"de dentro." #: ../src/ui/dialog/inkscape-preferences.cpp:1266 -#, fuzzy msgid "Mouse move pans when Space is pressed" -msgstr "" -"Botão esquerdo do mouse percorre a área de desenho quando a tecla de espaço " -"é pressionada" +msgstr "O rato desloca a área de desenho quando é premida a tecla Espaço" #: ../src/ui/dialog/inkscape-preferences.cpp:1268 msgid "When on, pressing and holding Space and dragging pans canvas" msgstr "" +"Quando ativado, premir e manter premida a tecla Espaço, deslocando o rato " +"também se desloca a área de desenho" #: ../src/ui/dialog/inkscape-preferences.cpp:1269 msgid "Mouse wheel zooms by default" -msgstr "Roda do mouse altera zoom por padrão" +msgstr "Usar a roda do rato para aumentar ou diminuir a vista (Lupa)" #: ../src/ui/dialog/inkscape-preferences.cpp:1271 -#, fuzzy msgid "" "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " "off, it zooms with Ctrl and scrolls without Ctrl" msgstr "" -"Quando activada, a roda do mouse altera o zoom sem Ctrl e desloca a área de " -"desenho com Ctrl; quando desabilitada, altera o zoom com Ctrl e desloca sem " -"Ctrl." +"Quando ativado, a roda do rato altera a aproximação sem Ctrl e desloca a " +"área de desenho com Ctrl; quando desativado, altera a aproximação com Ctrl e " +"desloca sem Ctrl" #: ../src/ui/dialog/inkscape-preferences.cpp:1272 msgid "Scrolling" -msgstr "Rolagem" +msgstr "Roda do Rato" #. Snapping options #: ../src/ui/dialog/inkscape-preferences.cpp:1275 -#, fuzzy msgid "Snap indicator" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "Indicador de atração" #: ../src/ui/dialog/inkscape-preferences.cpp:1277 msgid "Enable snap indicator" -msgstr "" +msgstr "Ativar indicador de atração" #: ../src/ui/dialog/inkscape-preferences.cpp:1279 msgid "After snapping, a symbol is drawn at the point that has snapped" -msgstr "" +msgstr "Após atrair, é mostrado um símbolo no ponto que foi atraído" #: ../src/ui/dialog/inkscape-preferences.cpp:1284 msgid "Snap indicator persistence (in seconds):" -msgstr "" +msgstr "Tempo de visualização do indicador de atração (em segundos):" #: ../src/ui/dialog/inkscape-preferences.cpp:1285 msgid "" "Controls how long the snap indicator message will be shown, before it " "disappears" -msgstr "" +msgstr "Controla durante quanto tempo o indicador de atração é mostrado" #: ../src/ui/dialog/inkscape-preferences.cpp:1287 msgid "What should snap" -msgstr "" +msgstr "O que deve ser atraído" #: ../src/ui/dialog/inkscape-preferences.cpp:1289 msgid "Only snap the node closest to the pointer" -msgstr "" +msgstr "Apenas atrair o nó mais próximo do cursor" #: ../src/ui/dialog/inkscape-preferences.cpp:1291 msgid "" "Only try to snap the node that is initially closest to the mouse pointer" msgstr "" +"Apenas tentar atrair o nó que inicialmente estiver mais próximo do cursor" #: ../src/ui/dialog/inkscape-preferences.cpp:1294 -#, fuzzy msgid "_Weight factor:" -msgstr "Altura do papel" +msgstr "_Fator de importância:" #: ../src/ui/dialog/inkscape-preferences.cpp:1295 msgid "" @@ -21222,10 +20006,13 @@ msgid "" "closest transformation (when set to 0), or prefer the node that was " "initially the closest to the pointer (when set to 1)" msgstr "" +"Quando são encontrados vários alvos de atração, o Inkscape pode preferir a " +"transformação mais próxima (quando usado 0) ou preferir o nó que " +"inicialmente estava mais próximo do cursor (quando usado 1)" #: ../src/ui/dialog/inkscape-preferences.cpp:1297 msgid "Snap the mouse pointer when dragging a constrained knot" -msgstr "" +msgstr "Atrair o cursor ao arrastar um nó restringido" #: ../src/ui/dialog/inkscape-preferences.cpp:1299 msgid "" @@ -21233,15 +20020,16 @@ msgid "" "mouse pointer instead of snapping the projection of the knot onto the " "constraint line" msgstr "" +"Ao arrastar um nó ao longo de uma linha de restrição, atrair a posição do " +"cursor em vez de atrair a projeção do nó na linha de restrição" #: ../src/ui/dialog/inkscape-preferences.cpp:1301 msgid "Delayed snap" -msgstr "" +msgstr "Atração atrasada" #: ../src/ui/dialog/inkscape-preferences.cpp:1304 -#, fuzzy msgid "Delay (in seconds):" -msgstr "Nome da camada:" +msgstr "Atraso (em segundos):" #: ../src/ui/dialog/inkscape-preferences.cpp:1305 msgid "" @@ -21249,49 +20037,43 @@ msgid "" "additional fraction of a second. This additional delay is specified here. " "When set to zero or to a very small number, snapping will be immediate." msgstr "" +"Atrasar a atração enquanto estiver a mover o cursor, e então aguardar uma " +"fração de segundo adicional. Este atraso adicional é especificado aqui. " +"Quando usado zero ou um número muito pequeno neste campo, a atração será " +"imediata." #: ../src/ui/dialog/inkscape-preferences.cpp:1307 -#, fuzzy msgid "Snapping" -msgstr "Encaixar no camin_ho" +msgstr "Atração" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here #: ../src/ui/dialog/inkscape-preferences.cpp:1312 -#, fuzzy msgid "_Arrow keys move by:" -msgstr "Setas movem por:" +msgstr "_Teclas de setas movem:" #: ../src/ui/dialog/inkscape-preferences.cpp:1313 -#, fuzzy msgid "" "Pressing an arrow key moves selected object(s) or node(s) by this distance" msgstr "" -"Pressionando um seta move o(s) objecto(s) ou nó(s) seleccionados por esta " -"distância (em pixels)" +"Ao usar uma tecla de setas, move os objetos selecionados ou nós por esta " +"distância" #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here #: ../src/ui/dialog/inkscape-preferences.cpp:1316 -#, fuzzy msgid "> and < _scale by:" -msgstr "> e < ampliam em:" +msgstr "Teclas > e < alteram o _tamanho em:" #: ../src/ui/dialog/inkscape-preferences.cpp:1317 -#, fuzzy msgid "Pressing > or < scales selection up or down by this increment" -msgstr "" -"Pressionando > ou < amplia ou reduz a selecção por este valor (em pixels)" +msgstr "Ao usar a tecla > ou < amplia ou reduz a seleção por esta distância" #: ../src/ui/dialog/inkscape-preferences.cpp:1319 -#, fuzzy msgid "_Inset/Outset by:" -msgstr "Comprimir/Expandir em:" +msgstr "_Comprimir/Expandir em:" #: ../src/ui/dialog/inkscape-preferences.cpp:1320 -#, fuzzy msgid "Inset and Outset commands displace the path by this distance" -msgstr "" -"Os comandos Comprimir e Expandir deslocam o caminho por esta distância (em " -"pixels)" +msgstr "Os comandos Comprimir e Expandir deslocam o caminho por esta distância" #: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Compass-like display of angles" @@ -21303,20 +20085,18 @@ msgid "" "clockwise; otherwise with 0 at east, -180 to 180 range, positive " "counterclockwise" msgstr "" -"Quando activado, os ângulo serão exibidos como 0 ao norte, intervalo de 0 a " -"360, sentido horário; caso contrário como 0 a oeste, intervalo de -180 a " -"180, sentido anti-horário" +"Quando ativado, os ângulos são mostrados com 0 ao Norte, intervalo de 0 a " +"360, no sentido horário; caso contrário como 0 a Oeste, intervalo de -180 a " +"180, e no sentido anti-horário" #: ../src/ui/dialog/inkscape-preferences.cpp:1325 -#, fuzzy msgctxt "Rotation angle" msgid "None" msgstr "Nenhum" #: ../src/ui/dialog/inkscape-preferences.cpp:1329 -#, fuzzy msgid "_Rotation snaps every:" -msgstr "Ajuste de rotação a cada:" +msgstr "Atração à _rotação a cada:" #: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "degrees" @@ -21327,23 +20107,24 @@ msgid "" "Rotating with Ctrl pressed snaps every that much degrees; also, pressing " "[ or ] rotates by this amount" msgstr "" -"Girando com Ctrl pressionado ajusta cada um neste ângulo. Pressionando, " -"também, [ ou ] gira nesta proporção" +"Rodando com Ctrl pressionado atrair a cada um destes ângulos. Pressionando " +"também [ ou ] roda neste valor" #: ../src/ui/dialog/inkscape-preferences.cpp:1331 msgid "Relative snapping of guideline angles" -msgstr "" +msgstr "Atração relativa dos ângulos de guias" #: ../src/ui/dialog/inkscape-preferences.cpp:1333 msgid "" "When on, the snap angles when rotating a guideline will be relative to the " "original angle" msgstr "" +"Quando ativado, ao rodar uma guia, os ângulos atraídos serão rodados " +"relativamente ao ângulo original" #: ../src/ui/dialog/inkscape-preferences.cpp:1335 -#, fuzzy msgid "_Zoom in/out by:" -msgstr "Ampliar/Reduzir em:" +msgstr "_Ampliar/reduzir vista com a lupa em:" #: ../src/ui/dialog/inkscape-preferences.cpp:1335 #: ../src/ui/dialog/objects.cpp:1630 @@ -21356,8 +20137,9 @@ msgid "" "Zoom tool click, +/- keys, and middle click zoom in and out by this " "multiplier" msgstr "" -"Um clique na ferramenta Zoom, as teclas +/- e clique com botão do meio " -"ampliam e reduzem por este multiplicador" +"Ao ampliar ou reduzir a vista através da ferramenta Lupa, assim como das " +"teclas +/- ou clique com botão do meio do rato, ampliar e reduzir vista " +"nesta proporção" #: ../src/ui/dialog/inkscape-preferences.cpp:1337 msgid "Steps" @@ -21366,15 +20148,15 @@ msgstr "Passos" #. Clones options #: ../src/ui/dialog/inkscape-preferences.cpp:1340 msgid "Move in parallel" -msgstr "Se movem em paralelo" +msgstr "Movem-se em paralelo" #: ../src/ui/dialog/inkscape-preferences.cpp:1342 msgid "Stay unmoved" -msgstr "Ficam inertes" +msgstr "Ficam imóveis" #: ../src/ui/dialog/inkscape-preferences.cpp:1344 msgid "Move according to transform" -msgstr "Mover de acordo com a tranformação" +msgstr "Movem-se de acordo com a transformação" #: ../src/ui/dialog/inkscape-preferences.cpp:1346 msgid "Are unlinked" @@ -21382,57 +20164,48 @@ msgstr "São desligados" #: ../src/ui/dialog/inkscape-preferences.cpp:1348 msgid "Are deleted" -msgstr "São apagados" +msgstr "São eliminados" #: ../src/ui/dialog/inkscape-preferences.cpp:1351 -#, fuzzy msgid "Moving original: clones and linked offsets" -msgstr "Quando o original se move, seus clones e deslocamentos associados:" +msgstr "Ao mover o objeto original, os clones e deslocamentos ligados a ele:" #: ../src/ui/dialog/inkscape-preferences.cpp:1353 -#, fuzzy msgid "Clones are translated by the same vector as their original" -msgstr "Os clones são transladados pelo mesmo vetor do original." +msgstr "Os clones são deslocados pelo mesmo vetor do original" #: ../src/ui/dialog/inkscape-preferences.cpp:1355 -#, fuzzy msgid "Clones preserve their positions when their original is moved" -msgstr "Os clones preservam suas posições quando o seu original é movido." +msgstr "Os clones preservam as posições quando o original é movido" #: ../src/ui/dialog/inkscape-preferences.cpp:1357 -#, fuzzy msgid "" "Each clone moves according to the value of its transform= attribute; for " "example, a rotated clone will move in a different direction than its original" msgstr "" -"Cada clone se move de acordo com o valor do seu atributo de transformação." -"Por exemplo, um clone girado se moverá numa direção diferente do seu " -"original." +"Cada clone move-se de acordo com o valor do seu atributo de transformação. " +"Por exemplo, um clone rodado irá mover-se numa direção diferente do seu " +"original" #: ../src/ui/dialog/inkscape-preferences.cpp:1358 -#, fuzzy msgid "Deleting original: clones" -msgstr "Eliminar clones ladrilhados" +msgstr "Ao eliminar o objeto original, os clones dele:" #: ../src/ui/dialog/inkscape-preferences.cpp:1360 -#, fuzzy msgid "Orphaned clones are converted to regular objects" -msgstr "Clones órfãos são convertidos para objectos regulares." +msgstr "Clones órfãos são convertidos em objetos regulares" #: ../src/ui/dialog/inkscape-preferences.cpp:1362 -#, fuzzy msgid "Orphaned clones are deleted along with their original" -msgstr "Clones órfãos são apagados juntamente com seu original." +msgstr "Clones órfãos são eliminados juntamente com os seus originais" #: ../src/ui/dialog/inkscape-preferences.cpp:1364 -#, fuzzy msgid "Duplicating original+clones/linked offset" -msgstr "Quando o original se move, seus clones e deslocamentos associados:" +msgstr "Ao duplicar o objeto original+clones ou deslocamento ligado dele:" #: ../src/ui/dialog/inkscape-preferences.cpp:1366 -#, fuzzy msgid "Relink duplicated clones" -msgstr "Eliminar clones ladrilhados" +msgstr "Religar clones duplicados" #: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "" @@ -21440,6 +20213,9 @@ msgid "" "(possibly in groups), relink the duplicated clone to the duplicated original " "instead of the old original" msgstr "" +"Ao duplicar uma seleção que contém um clone e o seu original (possivelmente " +"em grupos), religar o clone duplicado ao original duplicado em vez do " +"orignal anterior" #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page #: ../src/ui/dialog/inkscape-preferences.cpp:1371 @@ -21448,81 +20224,79 @@ msgstr "Clones" #. Clip paths and masks options #: ../src/ui/dialog/inkscape-preferences.cpp:1374 -#, fuzzy msgid "When applying, use the topmost selected object as clippath/mask" msgstr "" -"Use o objecto superior seleccionado como caminho para aparagem ou máscara" +"Ao aplicar, usar o objeto mais acima selecionado como caminho recortado ou " +"máscara" #: ../src/ui/dialog/inkscape-preferences.cpp:1376 msgid "" "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "" -"Desmarque isso para usar o objecto inferior seleccionado como caminho de " -"aparagem ou máscara" +"Desmarcar isto para usar o objeto mais abaixo selecionado como caminho " +"recortado ou máscara" #: ../src/ui/dialog/inkscape-preferences.cpp:1377 -#, fuzzy msgid "Remove clippath/mask object after applying" -msgstr "Remova o caminho de aparagem ou a máscara após aplicar" +msgstr "Remover o caminho recortado ou a máscara após aplicar" #: ../src/ui/dialog/inkscape-preferences.cpp:1379 msgid "" "After applying, remove the object used as the clipping path or mask from the " "drawing" msgstr "" -"Após aplicar-se, remover do objecto usado o clip ou a mask para o desenho" +"Após aplicar, remover o objeto usado como caminho recortado ou máscara do " +"desenho" #: ../src/ui/dialog/inkscape-preferences.cpp:1381 -#, fuzzy msgid "Before applying" -msgstr "Ângulo esquerdo" +msgstr "Antes de aplicar" #: ../src/ui/dialog/inkscape-preferences.cpp:1383 msgid "Do not group clipped/masked objects" -msgstr "" +msgstr "Não agrupar caminhos recortados ou máscaras" #: ../src/ui/dialog/inkscape-preferences.cpp:1384 msgid "Put every clipped/masked object in its own group" -msgstr "" +msgstr "Colocar cada caminho recortado ou máscara nos seus próprios grupos" #: ../src/ui/dialog/inkscape-preferences.cpp:1385 msgid "Put all clipped/masked objects into one group" -msgstr "" +msgstr "Colocar todos os caminhos recortados ou máscaras num só grupo" #: ../src/ui/dialog/inkscape-preferences.cpp:1388 msgid "Apply clippath/mask to every object" -msgstr "" +msgstr "Aplicar caminho recortado ou máscara a todos os objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "Apply clippath/mask to groups containing single object" msgstr "" +"Aplicar caminho recortado ou máscara a grupos que contêm um único objeto" #: ../src/ui/dialog/inkscape-preferences.cpp:1394 msgid "Apply clippath/mask to group containing all objects" msgstr "" +"Aplicar caminho recortado ou máscara a grupos que contêm todos os objetos" #: ../src/ui/dialog/inkscape-preferences.cpp:1396 msgid "After releasing" -msgstr "" +msgstr "Após libertar" #: ../src/ui/dialog/inkscape-preferences.cpp:1398 -#, fuzzy msgid "Ungroup automatically created groups" -msgstr "Desagrupar os grupos seleccionados" +msgstr "Desagrupar automaticamente os grupos criados" #: ../src/ui/dialog/inkscape-preferences.cpp:1400 msgid "Ungroup groups created when setting clip/mask" -msgstr "" +msgstr "Desagrupar grupos criados ao definir caminho recortado ou máscara" #: ../src/ui/dialog/inkscape-preferences.cpp:1402 -#, fuzzy msgid "Clippaths and masks" -msgstr "Aparagem e máscara" +msgstr "Caminhos recortados e máscaras" #: ../src/ui/dialog/inkscape-preferences.cpp:1405 -#, fuzzy msgid "Stroke Style Markers" -msgstr "Estilo de traço" +msgstr "Marcadores aplicados no Traço de caminhos" #: ../src/ui/dialog/inkscape-preferences.cpp:1407 #: ../src/ui/dialog/inkscape-preferences.cpp:1409 @@ -21530,91 +20304,94 @@ msgid "" "Stroke color same as object, fill color either object fill color or marker " "fill color" msgstr "" +"Cor do traço igual ao objeto; a cor do preenchimento é a cor do " +"preenchimento do objeto ou cor do preenchimento do marcador" #: ../src/ui/dialog/inkscape-preferences.cpp:1413 #: ../share/extensions/hershey.inx.h:27 -#, fuzzy msgid "Markers" -msgstr "Mais escuro" +msgstr "Marcadores" #: ../src/ui/dialog/inkscape-preferences.cpp:1416 -#, fuzzy msgid "Document cleanup" -msgstr "Desenho SVG" +msgstr "Optimização de documento" #: ../src/ui/dialog/inkscape-preferences.cpp:1417 #: ../src/ui/dialog/inkscape-preferences.cpp:1419 msgid "Remove unused swatches when doing a document cleanup" msgstr "" +"Remover amostras de cor não utilizadas ao utilizar Ficheiro->Optimizar " +"Documento" #. tooltip #: ../src/ui/dialog/inkscape-preferences.cpp:1420 -#, fuzzy msgid "Cleanup" -msgstr "_Limpar" +msgstr "Optimização" #: ../src/ui/dialog/inkscape-preferences.cpp:1428 -#, fuzzy msgid "Number of _Threads:" -msgstr "Número de linhas" +msgstr "Número de _Unidades de Execução:" #: ../src/ui/dialog/inkscape-preferences.cpp:1428 #: ../src/ui/dialog/inkscape-preferences.cpp:1964 -#, fuzzy msgid "(requires restart)" -msgstr "Caixa de diálogo de comportamento (requer reinício):" +msgstr "(necessário reiniciar)" #: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "Configure number of processors/threads to use when rendering filters" msgstr "" +"Configurar número de processadores/unidades de execução (threads) a usar ao " +"renderizar filtros" #: ../src/ui/dialog/inkscape-preferences.cpp:1433 -#, fuzzy msgid "Rendering _cache size:" -msgstr "Render" +msgstr "Tamanho da _cache para rederizar:" #: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgctxt "mebibyte (2^20 bytes) abbreviation" msgid "MiB" -msgstr "" +msgstr "MiB" #: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgid "" "Set the amount of memory per document which can be used to store rendered " "parts of the drawing for later reuse; set to zero to disable caching" msgstr "" +"Definir a quantidade de cache por documento que pode ser usada para " +"armazenar partes renderizadas do desenho para usar posteriormente; usar zero " +"para desativar a cache" +# desnecessário referir em todas "qualidade" porque acaba-se por repetir sempre, e a qualidade é indicada no título #. blur quality #. filter quality #: ../src/ui/dialog/inkscape-preferences.cpp:1436 #: ../src/ui/dialog/inkscape-preferences.cpp:1460 msgid "Best quality (slowest)" -msgstr "Melhor qualidade (mais lento)" +msgstr "Máxima (mais lento)" #: ../src/ui/dialog/inkscape-preferences.cpp:1438 #: ../src/ui/dialog/inkscape-preferences.cpp:1462 msgid "Better quality (slower)" -msgstr "Qualidade boa (lento)" +msgstr "Melhor (lento)" #: ../src/ui/dialog/inkscape-preferences.cpp:1440 #: ../src/ui/dialog/inkscape-preferences.cpp:1464 msgid "Average quality" -msgstr "Qualidade média" +msgstr "Média" #: ../src/ui/dialog/inkscape-preferences.cpp:1442 #: ../src/ui/dialog/inkscape-preferences.cpp:1466 msgid "Lower quality (faster)" -msgstr "Qualidade ruim (rápido)" +msgstr "Baixa (rápido)" #: ../src/ui/dialog/inkscape-preferences.cpp:1444 #: ../src/ui/dialog/inkscape-preferences.cpp:1468 msgid "Lowest quality (fastest)" -msgstr "Pior qualidade (mais rápido)" +msgstr "Mínima (mais rápido)" #: ../src/ui/dialog/inkscape-preferences.cpp:1447 -#, fuzzy msgid "Gaussian blur quality for display" -msgstr "Qualidade do desfoque gaussiano para exibição:" +msgstr "Qualidade no ecrã da Desfocagem Gaussiana" #: ../src/ui/dialog/inkscape-preferences.cpp:1449 #: ../src/ui/dialog/inkscape-preferences.cpp:1473 @@ -21622,60 +20399,62 @@ msgid "" "Best quality, but display may be very slow at high zooms (bitmap export " "always uses best quality)" msgstr "" -"Melhor qualidade, mas a exibição poderá ficar lenta com a ampliação " -"(exportar em bitmap sempre usará a melhor qualidade)" +"Melhor qualidade, mas a visualização poderá ficar lenta ao ampliar muito " +"(isto não afeta a exportação, as imagens bitmap são exportadas sempre na " +"melhor qualidade)" #: ../src/ui/dialog/inkscape-preferences.cpp:1451 #: ../src/ui/dialog/inkscape-preferences.cpp:1475 msgid "Better quality, but slower display" -msgstr "Melhor qualidade, mas exibição lenta" +msgstr "Melhor qualidade, mas visualização no ecrã é lenta" #: ../src/ui/dialog/inkscape-preferences.cpp:1453 #: ../src/ui/dialog/inkscape-preferences.cpp:1477 msgid "Average quality, acceptable display speed" -msgstr "Qualidade média, velocidade aceitável da exposição" +msgstr "Qualidade média, velocidade aceitável da visualização no ecrã" #: ../src/ui/dialog/inkscape-preferences.cpp:1455 #: ../src/ui/dialog/inkscape-preferences.cpp:1479 msgid "Lower quality (some artifacts), but display is faster" -msgstr "Qualidade baixa (alguns ruídos), mas a exibição é mais rápida" +msgstr "" +"Qualidade baixa (alguns ruídos), mas a visualização no ecrã é mais rápida" #: ../src/ui/dialog/inkscape-preferences.cpp:1457 #: ../src/ui/dialog/inkscape-preferences.cpp:1481 msgid "Lowest quality (considerable artifacts), but display is fastest" -msgstr "Pior qualidade (muitos ruídos), mas é a exibição mais rápida" +msgstr "" +"Pior qualidade (muito ruído), mas é a visualização no ecrã mais rápida de " +"todas" #: ../src/ui/dialog/inkscape-preferences.cpp:1471 -#, fuzzy msgid "Filter effects quality for display" -msgstr "Qualidade do desfoque gaussiano para exibição:" +msgstr "Qualidade no ecrã do efeitos dos filtros" #. build custom preferences tab #: ../src/ui/dialog/inkscape-preferences.cpp:1483 #: ../src/ui/dialog/print.cpp:215 -#, fuzzy msgid "Rendering" -msgstr "Render" +msgstr "Renderização" #. Note: /options/bitmapoversample removed with Cairo renderer #: ../src/ui/dialog/inkscape-preferences.cpp:1489 ../src/verbs.cpp:156 #: ../src/widgets/calligraphy-toolbar.cpp:626 -#, fuzzy msgid "Edit" -msgstr "_Editar" +msgstr "Editar" #: ../src/ui/dialog/inkscape-preferences.cpp:1490 msgid "Automatically reload bitmaps" -msgstr "" +msgstr "Recarregar automaticamente as imagens bitmap" #: ../src/ui/dialog/inkscape-preferences.cpp:1492 msgid "Automatically reload linked images when file is changed on disk" msgstr "" +"Recarregar automaticamente as imagens bitmap ligadas quando o ficheiro é " +"alterado no disco" #: ../src/ui/dialog/inkscape-preferences.cpp:1494 -#, fuzzy msgid "_Bitmap editor:" -msgstr "Editor de degradê" +msgstr "Editor de imagem _bitmap:" #: ../src/ui/dialog/inkscape-preferences.cpp:1496 #: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:65 @@ -21684,14 +20463,14 @@ msgid "Export" msgstr "Exportar" #: ../src/ui/dialog/inkscape-preferences.cpp:1498 -#, fuzzy msgid "Default export _resolution:" -msgstr "Resolução padrão de exportação" +msgstr "_Resolução padrão ao exportar:" #: ../src/ui/dialog/inkscape-preferences.cpp:1499 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "" -"Resolução padrão de figura (em pontos por polegada) na janela de exportação" +"Resolução padrão em imagens bitmap (em pontos por polegada) na janela de " +"definições ao exportar" #: ../src/ui/dialog/inkscape-preferences.cpp:1500 #: ../src/ui/dialog/xml-tree.cpp:920 @@ -21699,89 +20478,89 @@ msgid "Create" msgstr "Criar" #: ../src/ui/dialog/inkscape-preferences.cpp:1502 -#, fuzzy msgid "Resolution for Create Bitmap _Copy:" -msgstr "Resolução preferida para a figura (pontos por polegada)" +msgstr "Resolução ao _Criar uma Cópia de Imagem Bitmap:" #: ../src/ui/dialog/inkscape-preferences.cpp:1503 msgid "Resolution used by the Create Bitmap Copy command" -msgstr "" +msgstr "Resolução usada ao criar uma cópia da imagem bitmap" #: ../src/ui/dialog/inkscape-preferences.cpp:1506 msgid "Ask about linking and scaling when importing" -msgstr "" +msgstr "Ao importar, perguntar sobre o tipo de importação e dpi da imagem" #: ../src/ui/dialog/inkscape-preferences.cpp:1508 msgid "Pop-up linking and scaling dialog when importing bitmap image." msgstr "" +"Abrir janela de diálogo para configurar ligação e dimensão ao importar uma " +"imagem bitmap." #: ../src/ui/dialog/inkscape-preferences.cpp:1514 -#, fuzzy msgid "Bitmap link:" -msgstr "Editor de degradê" +msgstr "Incorporar imagem da forma:" #: ../src/ui/dialog/inkscape-preferences.cpp:1521 msgid "Bitmap scale (image-rendering):" -msgstr "" +msgstr "Renderização da imagem:" #: ../src/ui/dialog/inkscape-preferences.cpp:1526 -#, fuzzy msgid "Default _import resolution:" -msgstr "Resolução padrão de exportação" +msgstr "Resolução padrão ao _importar:" #: ../src/ui/dialog/inkscape-preferences.cpp:1527 -#, fuzzy msgid "Default bitmap resolution (in dots per inch) for bitmap import" msgstr "" -"Resolução padrão de figura (em pontos por polegada) na janela de exportação" +"Resolução padrão da imagem bitmap (em pontos por polegada) ao importar " +"imagens" #: ../src/ui/dialog/inkscape-preferences.cpp:1528 -#, fuzzy msgid "Override file resolution" -msgstr "Resolução padrão de exportação" +msgstr "Ignorar resolução do ficheiro e usar esta resolução" #: ../src/ui/dialog/inkscape-preferences.cpp:1530 -#, fuzzy msgid "Use default bitmap resolution in favor of information from file" msgstr "" -"Resolução padrão de figura (em pontos por polegada) na janela de exportação" +"Usar a resolução padrão definida aqui e ignorar a resolução nativa do " +"ficheiro importado" #. rendering outlines for pixmap image tags #: ../src/ui/dialog/inkscape-preferences.cpp:1534 -#, fuzzy msgid "Images in Outline Mode" -msgstr "Desenhar um caminho a uma grelha" +msgstr "Imagens em Modo de Contorno" #: ../src/ui/dialog/inkscape-preferences.cpp:1535 msgid "" "When active will render images while in outline mode instead of a red box " "with an x. This is useful for manual tracing." msgstr "" +"Quando ativo, as imagens serão renderizadas em modo de contorno em vez de " +"uma caixa vermelha com um X. Isto é útil para usar a ferramenta de " +"vetorização manual." #: ../src/ui/dialog/inkscape-preferences.cpp:1537 -#, fuzzy msgid "Bitmaps" -msgstr "Bias" +msgstr "Imagens Bitmap" #: ../src/ui/dialog/inkscape-preferences.cpp:1549 msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " "create will be added separately to " msgstr "" +"Selecionar um ficheiro com atalhos pré-definidos a utilizar. Todos os " +"atalhos personalizados que criar serão adicionados separadamente a " #: ../src/ui/dialog/inkscape-preferences.cpp:1552 msgid "Shortcut file:" -msgstr "" +msgstr "Ficheiro de atalhos:" #: ../src/ui/dialog/inkscape-preferences.cpp:1555 #: ../src/ui/dialog/template-load-tab.cpp:49 -#, fuzzy msgid "Search:" -msgstr "Procurar" +msgstr "Procurar:" #: ../src/ui/dialog/inkscape-preferences.cpp:1567 msgid "Shortcut" -msgstr "" +msgstr "Atalho" #: ../src/ui/dialog/inkscape-preferences.cpp:1568 #: ../src/ui/widget/page-sizer.cpp:287 @@ -21793,29 +20572,28 @@ msgid "" "Remove all your customized keyboard shortcuts, and revert to the shortcuts " "in the shortcut file listed above" msgstr "" +"Remover todos os atalhos de teclado personalizados e repor os atalhos de " +"origem presentes no ficheiro de atalhos da lista de cima" #: ../src/ui/dialog/inkscape-preferences.cpp:1627 -#, fuzzy msgid "Import ..." -msgstr "_Importar..." +msgstr "Importar..." #: ../src/ui/dialog/inkscape-preferences.cpp:1627 msgid "Import custom keyboard shortcuts from a file" -msgstr "" +msgstr "Importar atalhos de teclado personalizados de um ficheiro" #: ../src/ui/dialog/inkscape-preferences.cpp:1630 -#, fuzzy msgid "Export ..." -msgstr "_Exportar Bitmap..." +msgstr "Exportar..." #: ../src/ui/dialog/inkscape-preferences.cpp:1630 -#, fuzzy msgid "Export custom keyboard shortcuts to a file" -msgstr "Exportar documento para um ficheiro PS" +msgstr "Exportar atalhos de teclado personalizados para um ficheiro" #: ../src/ui/dialog/inkscape-preferences.cpp:1640 msgid "Keyboard Shortcuts" -msgstr "" +msgstr "Atalhos de Teclado" #. Find this group in the tree #: ../src/ui/dialog/inkscape-preferences.cpp:1803 @@ -21823,166 +20601,162 @@ msgid "Misc" msgstr "Outros" #: ../src/ui/dialog/inkscape-preferences.cpp:1905 -#, fuzzy msgctxt "Spellchecker language" msgid "None" -msgstr "Nenhum" +msgstr "Nenhuma" #: ../src/ui/dialog/inkscape-preferences.cpp:1926 msgid "Set the main spell check language" -msgstr "" +msgstr "Definir idioma principal do verificador ortográfico" #: ../src/ui/dialog/inkscape-preferences.cpp:1929 -#, fuzzy msgid "Second language:" -msgstr "Linguagem:" +msgstr "Segunda língua:" #: ../src/ui/dialog/inkscape-preferences.cpp:1930 msgid "" "Set the second spell check language; checking will only stop on words " "unknown in ALL chosen languages" msgstr "" +"Definir a segunda língua do corretor ortográfico; a verificação ortográfica " +"apenas detetará palavras desconhecidas em TODAS as línguas escolhidas" #: ../src/ui/dialog/inkscape-preferences.cpp:1933 -#, fuzzy msgid "Third language:" -msgstr "Linguagem:" +msgstr "Terceira língua:" #: ../src/ui/dialog/inkscape-preferences.cpp:1934 msgid "" "Set the third spell check language; checking will only stop on words unknown " "in ALL chosen languages" msgstr "" +"Definir a terceira língua do corretor ortográfico; a verificação ortográfica " +"apenas detetará palavras desconhecidas em TODAS as línguas escolhidas" #: ../src/ui/dialog/inkscape-preferences.cpp:1936 msgid "Ignore words with digits" -msgstr "" +msgstr "Ignorar palavras com dígitos" #: ../src/ui/dialog/inkscape-preferences.cpp:1938 msgid "Ignore words containing digits, such as \"R2D2\"" -msgstr "" +msgstr "Ignorar palavras com dígitos, como \"R2D2\"" #: ../src/ui/dialog/inkscape-preferences.cpp:1940 msgid "Ignore words in ALL CAPITALS" -msgstr "" +msgstr "Ignorar palavras TOTALMENTE EM MAIÚSCULAS" #: ../src/ui/dialog/inkscape-preferences.cpp:1942 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "" +"Ignorar palavras com letras todas em maiúsculas, normalmente siglas como " +"UNICEF, EUA, CPLP..." #: ../src/ui/dialog/inkscape-preferences.cpp:1944 -#, fuzzy msgid "Spellcheck" -msgstr "Selecionar" +msgstr "Verificador ortográfico" #: ../src/ui/dialog/inkscape-preferences.cpp:1964 msgid "Latency _skew:" -msgstr "" +msgstr "Deslocamento da latência:" #: ../src/ui/dialog/inkscape-preferences.cpp:1965 msgid "" "Factor by which the event clock is skewed from the actual time (0.9766 on " "some systems)" msgstr "" +"Fator pelo qual o relógio de eventos é deslocado do tempo atual (0.9766 em " +"alguns sistemas)" #: ../src/ui/dialog/inkscape-preferences.cpp:1967 msgid "Pre-render named icons" -msgstr "" +msgstr "Pré-renderizar ícones com nome" #: ../src/ui/dialog/inkscape-preferences.cpp:1969 msgid "" "When on, named icons will be rendered before displaying the ui. This is for " "working around bugs in GTK+ named icon notification" msgstr "" +"Quando ativado, os ícones com nome serão renderizados antes de mostrar a " +"interface gráfica. Isto é utilizado para contornar problemas na notificação " +"de ícones com nome do GTK+" #: ../src/ui/dialog/inkscape-preferences.cpp:1977 -#, fuzzy msgid "System info" -msgstr "Sistema" +msgstr "Informações do sistema" #: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "User config: " -msgstr "" +msgstr "Configuração do utilizador: " #: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "Location of users configuration" -msgstr "" +msgstr "Localização da configuração do utilizador" #: ../src/ui/dialog/inkscape-preferences.cpp:1985 -#, fuzzy msgid "User preferences: " -msgstr "Propriedades de Estrelas" +msgstr "Preferências do utilizador: " #: ../src/ui/dialog/inkscape-preferences.cpp:1985 -#, fuzzy msgid "Location of the users preferences file" -msgstr "Falha ao carregar o ficheiro %s" +msgstr "Localização das preferências do utilizador" #: ../src/ui/dialog/inkscape-preferences.cpp:1989 -#, fuzzy msgid "User extensions: " -msgstr "Extensão \"" +msgstr "Extensões do utilizador: " #: ../src/ui/dialog/inkscape-preferences.cpp:1989 -#, fuzzy msgid "Location of the users extensions" -msgstr "Informações sobre extensões do Inkscape" +msgstr "Localização das extensões do utilizador" #: ../src/ui/dialog/inkscape-preferences.cpp:1993 -#, fuzzy msgid "User cache: " -msgstr "Nome do utilizador:" +msgstr "Ficheiros temporários do utilizador: " #: ../src/ui/dialog/inkscape-preferences.cpp:1993 -#, fuzzy msgid "Location of users cache" -msgstr "Rotação (graus)" +msgstr "Localização dos ficheiros temporários do utilizador" #: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Temporary files: " -msgstr "" +msgstr "Ficheiros temporários: " #: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Location of the temporary files used for autosave" msgstr "" +"Localização dos ficheiros temporários usados na gravação automática de " +"ficheiros de cópia de segurança" #: ../src/ui/dialog/inkscape-preferences.cpp:2005 -#, fuzzy msgid "Inkscape data: " -msgstr "Manual do Inkscape" +msgstr "Dados do Inkscape: " #: ../src/ui/dialog/inkscape-preferences.cpp:2005 -#, fuzzy msgid "Location of Inkscape data" -msgstr "Informações sobre extensões do Inkscape" +msgstr "Localização dos dados do Inkscape" #: ../src/ui/dialog/inkscape-preferences.cpp:2009 -#, fuzzy msgid "Inkscape extensions: " -msgstr "Informações sobre extensões do Inkscape" +msgstr "Extensões do Inkscape: " #: ../src/ui/dialog/inkscape-preferences.cpp:2009 -#, fuzzy msgid "Location of the Inkscape extensions" -msgstr "Informações sobre extensões do Inkscape" +msgstr "Localização das extensões do Inkscape" #: ../src/ui/dialog/inkscape-preferences.cpp:2018 -#, fuzzy msgid "System data: " -msgstr "Ajustar como padrão" +msgstr "Dados do sistema: " #: ../src/ui/dialog/inkscape-preferences.cpp:2018 msgid "Locations of system data" -msgstr "" +msgstr "Localização dos dados do sistema" #: ../src/ui/dialog/inkscape-preferences.cpp:2042 msgid "Icon theme: " -msgstr "" +msgstr "Tema de ícones: " #: ../src/ui/dialog/inkscape-preferences.cpp:2042 -#, fuzzy msgid "Locations of icon themes" -msgstr "Rotação (graus)" +msgstr "Localização dos temas de ícones" #: ../src/ui/dialog/inkscape-preferences.cpp:2044 msgid "System" @@ -21990,42 +20764,37 @@ msgstr "Sistema" #: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 #: ../src/ui/dialog/input.cpp:1641 -#, fuzzy msgid "Disabled" -msgstr "_Activado" +msgstr "Desativado" #: ../src/ui/dialog/input.cpp:361 -#, fuzzy msgctxt "Input device" msgid "Screen" msgstr "Ecrã" #: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 -#, fuzzy msgid "Window" -msgstr "Janelas" +msgstr "Janela" #: ../src/ui/dialog/input.cpp:618 msgid "Test Area" -msgstr "" +msgstr "Ãrea de Testes" #: ../src/ui/dialog/input.cpp:619 msgid "Axis" -msgstr "" +msgstr "Eixo" #: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 -#, fuzzy msgid "Configuration" -msgstr "Configurações de Impressão" +msgstr "Configuração" #: ../src/ui/dialog/input.cpp:709 msgid "Hardware" -msgstr "" +msgstr "Hardware" #: ../src/ui/dialog/input.cpp:732 -#, fuzzy msgid "Link:" -msgstr "Linha" +msgstr "Ligação:" #: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 #: ../src/ui/dialog/input.cpp:1571 ../src/ui/widget/color-scales.cpp:46 @@ -22034,50 +20803,44 @@ msgid "None" msgstr "Nenhum" #: ../src/ui/dialog/input.cpp:758 -#, fuzzy msgid "Axes count:" -msgstr "Quantidade" +msgstr "Quantidade de eixos:" #: ../src/ui/dialog/input.cpp:788 -#, fuzzy msgid "axis:" -msgstr "Raio" +msgstr "eixo:" #: ../src/ui/dialog/input.cpp:812 -#, fuzzy msgid "Button count:" -msgstr "Fundo" +msgstr "Número de botões:" #: ../src/ui/dialog/input.cpp:1010 -#, fuzzy msgid "Tablet" -msgstr "Tabela" +msgstr "Tablet" #: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1928 msgid "pad" -msgstr "" +msgstr "painel tátil" #: ../src/ui/dialog/input.cpp:1081 -#, fuzzy msgid "_Use pressure-sensitive tablet (requires restart)" -msgstr "" -"Use a pressão sensível da Mesa Digitalizadora (tablet) ou outro dispositivo " -"(necessita reiniciar)" +msgstr "_Usar dispositivo sensível à pressão (necessário reiniciar)" #: ../src/ui/dialog/input.cpp:1086 -#, fuzzy msgid "Axes" -msgstr "Desenhar Eixos" +msgstr "Eixos" #: ../src/ui/dialog/input.cpp:1087 msgid "Keys" -msgstr "" +msgstr "Teclas" #: ../src/ui/dialog/input.cpp:1170 msgid "" "A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " "or to a single (usually focused) 'Window'" msgstr "" +"Um dispositivo pode ser 'desativado', as suas coordenadas mapeadas ao 'ecrã' " +"total, ou apenas a uma janela (normalmente ativa)" #: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 #: ../src/widgets/spray-toolbar.cpp:311 ../src/widgets/spray-toolbar.cpp:427 @@ -22087,36 +20850,32 @@ msgstr "Pressão" #: ../src/ui/dialog/input.cpp:1616 msgid "X tilt" -msgstr "" +msgstr "Inclinação X" #: ../src/ui/dialog/input.cpp:1616 msgid "Y tilt" -msgstr "" +msgstr "Inclinação Y" #: ../src/ui/dialog/input.cpp:1616 ../src/ui/widget/color-wheel-selector.cpp:29 msgid "Wheel" msgstr "Roda" #: ../src/ui/dialog/input.cpp:1625 -#, fuzzy msgctxt "Input device axe" msgid "None" -msgstr "Nenhum" +msgstr "Nenhuma" #: ../src/ui/dialog/knot-properties.cpp:59 -#, fuzzy msgid "Position X:" -msgstr "Posição:" +msgstr "Posição X:" #: ../src/ui/dialog/knot-properties.cpp:66 -#, fuzzy msgid "Position Y:" -msgstr "Posição:" +msgstr "Posição Y:" #: ../src/ui/dialog/knot-properties.cpp:120 -#, fuzzy msgid "Modify Knot Position" -msgstr "Posição:" +msgstr "Alterar Posição do Nó" #: ../src/ui/dialog/knot-properties.cpp:121 #: ../src/ui/dialog/layer-properties.cpp:411 @@ -22126,14 +20885,14 @@ msgid "_Move" msgstr "_Mover" #: ../src/ui/dialog/knot-properties.cpp:180 -#, fuzzy, c-format +#, c-format msgid "Position X (%s):" -msgstr "Posição:" +msgstr "Posição X (%s):" #: ../src/ui/dialog/knot-properties.cpp:181 -#, fuzzy, c-format +#, c-format msgid "Position Y (%s):" -msgstr "Posição:" +msgstr "Posição Y (%s):" #: ../src/ui/dialog/layer-properties.cpp:55 msgid "Layer name:" @@ -22145,19 +20904,19 @@ msgstr "Adicionar camada" #: ../src/ui/dialog/layer-properties.cpp:176 msgid "Above current" -msgstr "Acima do actual" +msgstr "Acima da atual" #: ../src/ui/dialog/layer-properties.cpp:180 msgid "Below current" -msgstr "Abaixo da actual" +msgstr "Abaixo da atual" #: ../src/ui/dialog/layer-properties.cpp:183 msgid "As sublayer of current" -msgstr "Como subcamada da actual" +msgstr "Como subcamada da atual" #: ../src/ui/dialog/layer-properties.cpp:352 msgid "Rename Layer" -msgstr "Renomear Camada" +msgstr "Alterar Nome da Camada" #. TODO: find an unused layer number, forming name from _("Layer ") + "%d" #: ../src/ui/dialog/layer-properties.cpp:354 @@ -22168,16 +20927,16 @@ msgstr "Camada" #: ../src/ui/dialog/layer-properties.cpp:355 msgid "_Rename" -msgstr "_Renomear" +msgstr "_Alterar nome" #: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:758 msgid "Rename layer" -msgstr "Renomear camada" +msgstr "Alterar nome da camada" #. TRANSLATORS: This means "The layer has been renamed" #: ../src/ui/dialog/layer-properties.cpp:370 msgid "Renamed layer" -msgstr "A camada foi renomeada" +msgstr "O nome da camada foi alterado" #: ../src/ui/dialog/layer-properties.cpp:374 msgid "Add Layer" @@ -22192,206 +20951,177 @@ msgid "New layer created." msgstr "Nova camada criada." #: ../src/ui/dialog/layer-properties.cpp:408 -#, fuzzy msgid "Move to Layer" -msgstr "Baixar camada" +msgstr "Mover Para a Camada" #: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:612 msgid "Unhide layer" -msgstr "Mostrar Camada" +msgstr "Desocultar camada" #: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:612 msgid "Hide layer" -msgstr "Ocultar Camada" +msgstr "Ocultar camada" #: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:604 msgid "Lock layer" -msgstr "Bloquear Camada" +msgstr "Bloquear camada" #: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:604 msgid "Unlock layer" -msgstr "DesBloquear Camada" +msgstr "Desbloquear camada" #: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:844 #: ../src/verbs.cpp:1423 -#, fuzzy msgid "Toggle layer solo" -msgstr "Tornar a camada actual visível" +msgstr "Alterar apenas esta camada/todas" #: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:847 #: ../src/verbs.cpp:1447 -#, fuzzy msgid "Lock other layers" -msgstr "Bloquear Camada" +msgstr "Bloquear outra camadas" #: ../src/ui/dialog/layers.cpp:730 -#, fuzzy msgid "Move layer" -msgstr "Baixar camada" +msgstr "Mover camada" #: ../src/ui/dialog/layers.cpp:892 -#, fuzzy msgctxt "Layers" msgid "New" -msgstr "Novo" +msgstr "Nova" #: ../src/ui/dialog/layers.cpp:897 -#, fuzzy msgctxt "Layers" msgid "Bot" msgstr "Fundo" #: ../src/ui/dialog/layers.cpp:903 -#, fuzzy msgctxt "Layers" msgid "Dn" msgstr "Abaixo" #: ../src/ui/dialog/layers.cpp:909 -#, fuzzy msgctxt "Layers" msgid "Up" msgstr "Acima" #: ../src/ui/dialog/layers.cpp:915 -#, fuzzy msgctxt "Layers" msgid "Top" msgstr "Topo" #: ../src/ui/dialog/livepatheffect-add.cpp:32 -#, fuzzy msgid "Add Path Effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Adicionar Efeito no Caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:119 -#, fuzzy msgid "Add path effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Adicionar efeito no caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:123 -#, fuzzy msgid "Delete current path effect" -msgstr "Eliminar Camada Atual" +msgstr "Eliminar efeito atual no caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:127 -#, fuzzy msgid "Raise the current path effect" -msgstr "Levantar a camada actual" +msgstr "Subir o efeito atual do caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:131 -#, fuzzy msgid "Lower the current path effect" -msgstr "Baixar a camada actual" +msgstr "baixar o efeito atual do caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:298 msgid "Unknown effect is applied" -msgstr "Efeito desconhecido está aplicado" +msgstr "Está aplicado um efeito desconhecido" #: ../src/ui/dialog/livepatheffect-editor.cpp:301 -#, fuzzy msgid "Click button to add an effect" -msgstr "Ajusta a Ecrã ao desenho" +msgstr "Clicar no botão para adicionar um efeito" #: ../src/ui/dialog/livepatheffect-editor.cpp:316 msgid "Click add button to convert clone" -msgstr "" +msgstr "Clicar no botão de adicionar para converter clone" #: ../src/ui/dialog/livepatheffect-editor.cpp:321 #: ../src/ui/dialog/livepatheffect-editor.cpp:325 #: ../src/ui/dialog/livepatheffect-editor.cpp:334 -#, fuzzy msgid "Select a path or shape" -msgstr "O item não é uma forma ou caminho" +msgstr "Selecionar um caminho ou forma geométrica" #: ../src/ui/dialog/livepatheffect-editor.cpp:330 msgid "Only one item can be selected" -msgstr "Apenas um item pode ser seleccionado" +msgstr "Apenas pode ser selecionado 1 item" #: ../src/ui/dialog/livepatheffect-editor.cpp:362 -#, fuzzy msgid "Unknown effect" -msgstr "Efeito desconhecido está aplicado" +msgstr "Efeito desconhecido" #: ../src/ui/dialog/livepatheffect-editor.cpp:438 msgid "Create and apply path effect" -msgstr "Criar e aplicar efeito de caminho" +msgstr "Criar e aplicar efeito no caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:478 -#, fuzzy msgid "Create and apply Clone original path effect" -msgstr "Criar e aplicar efeito de caminho" +msgstr "Criar e aplicar Clone do efeito no caminho original" #: ../src/ui/dialog/livepatheffect-editor.cpp:500 msgid "Remove path effect" -msgstr "Remover efeito de caminho" +msgstr "Remover efeito no caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:518 -#, fuzzy msgid "Move path effect up" -msgstr "Remover efeito de caminho" +msgstr "Mover efeito no caminho para cima" #: ../src/ui/dialog/livepatheffect-editor.cpp:535 -#, fuzzy msgid "Move path effect down" -msgstr "Remover efeito de caminho" +msgstr "Mover efeito no caminho para baixo" #: ../src/ui/dialog/livepatheffect-editor.cpp:574 -#, fuzzy msgid "Activate path effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Ativar efeito no caminho" #: ../src/ui/dialog/livepatheffect-editor.cpp:574 -#, fuzzy msgid "Deactivate path effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Desativar efeito no caminho" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:53 -#, fuzzy msgid "Radius (pixels):" -msgstr "Raio" +msgstr "Raio (píxeis):" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:65 -#, fuzzy msgid "Chamfer subdivisions:" -msgstr "Subdivisões" +msgstr "Subdivisões da chanfra:" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:136 msgid "Modify Fillet-Chamfer" -msgstr "" +msgstr "Alterar Filete-Chanfra" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:137 -#, fuzzy msgid "_Modify" -msgstr "Modificar Caminho" +msgstr "_Alterar" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:201 msgid "Radius" msgstr "Raio" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:203 -#, fuzzy msgid "Radius approximated" -msgstr "(aproximadamente redondo)" +msgstr "Raio aproximado" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:206 -#, fuzzy msgid "Knot distance" -msgstr "Encaixar _distância" +msgstr "Distância do nó" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:213 -#, fuzzy msgid "Position (%):" -msgstr "Posição:" +msgstr "Posição (%):" #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:216 -#, fuzzy msgid "%1:" -msgstr "K1" +msgstr "%1:" #: ../src/ui/dialog/lpe-powerstroke-properties.cpp:122 msgid "Modify Node Position" -msgstr "" +msgstr "Alterar Posição do Nó" #: ../src/ui/dialog/memory.cpp:96 msgid "Heap" @@ -22399,13 +21129,13 @@ msgstr "Pilha" #: ../src/ui/dialog/memory.cpp:97 msgid "In Use" -msgstr "Em Uso" +msgstr "Utilizado" #. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. #. More typical usage is to call this memory "free" rather than "slack". #: ../src/ui/dialog/memory.cpp:100 msgid "Slack" -msgstr "Folga" +msgstr "Não Utilizado" #: ../src/ui/dialog/memory.cpp:101 msgid "Total" @@ -22425,9 +21155,8 @@ msgid "Recalculate" msgstr "Recalcular" #: ../src/ui/dialog/messages.cpp:47 -#, fuzzy msgid "Clear log messages" -msgstr "Capturar mensagens de depuração" +msgstr "Limpar registo de mensagens" #: ../src/ui/dialog/messages.cpp:81 msgid "Ready." @@ -22435,20 +21164,19 @@ msgstr "Pronto." #: ../src/ui/dialog/messages.cpp:174 msgid "Log capture started." -msgstr "" +msgstr "Captura para o registo de mensagens iniciado." #: ../src/ui/dialog/messages.cpp:203 msgid "Log capture stopped." -msgstr "" +msgstr "Captura para o registo de mensagens parado." #: ../src/ui/dialog/new-from-template.cpp:27 -#, fuzzy msgid "Create from template" -msgstr "Criar espirais" +msgstr "Criar do modelo" #: ../src/ui/dialog/new-from-template.cpp:29 msgid "New From Template" -msgstr "" +msgstr "Novo Documento a Partir do Modelo" #: ../src/ui/dialog/object-attributes.cpp:47 msgid "Href:" @@ -22458,14 +21186,14 @@ msgstr "Href:" #. Identifies the type of the related resource with an absolute URI #: ../src/ui/dialog/object-attributes.cpp:52 msgid "Role:" -msgstr "Cargo:" +msgstr "Papel:" # "arcrole: URI de um recurso que descreve o papel do arco" segundo http://www.di.ufpe.br/~mbr/xml/aulas_2004/08-Xlink-Xpointer-XPath.ppt #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute #. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. #: ../src/ui/dialog/object-attributes.cpp:55 msgid "Arcrole:" -msgstr "Função do arco:" +msgstr "Papel do arco:" #: ../src/ui/dialog/object-attributes.cpp:58 #: ../share/extensions/polyhedron_3d.inx.h:47 @@ -22482,27 +21210,23 @@ msgid "URL:" msgstr "URL:" #: ../src/ui/dialog/object-attributes.cpp:70 -#, fuzzy msgid "Image Rendering:" -msgstr "Render" +msgstr "Renderização da Imagem:" #: ../src/ui/dialog/object-properties.cpp:58 #: ../src/ui/dialog/object-properties.cpp:399 #: ../src/ui/dialog/object-properties.cpp:470 #: ../src/ui/dialog/object-properties.cpp:477 -#, fuzzy msgid "_ID:" -msgstr "_ID: " +msgstr "_ID:" #: ../src/ui/dialog/object-properties.cpp:60 -#, fuzzy msgid "_Title:" -msgstr "Título" +msgstr "_Título:" #: ../src/ui/dialog/object-properties.cpp:61 -#, fuzzy msgid "_Image Rendering:" -msgstr "Render" +msgstr "_Renderização da Imagem:" #: ../src/ui/dialog/object-properties.cpp:62 msgid "_Hide" @@ -22510,26 +21234,25 @@ msgstr "_Ocultar" #: ../src/ui/dialog/object-properties.cpp:63 msgid "L_ock" -msgstr "Bl_oquear" +msgstr "_Bloquear" #. Create the entry box for the object id #: ../src/ui/dialog/object-properties.cpp:139 -#, fuzzy msgid "" "The id= attribute (only letters, digits, and the characters .-_: allowed)" msgstr "" -"_:No atributo id= (apenas letras, dígitos, e os caracteres .- são permitidos)" +"O atributo ID (identificador), apenas são permitidas letras, dígitos e os " +"caracteres .-_:" #. Create the entry box for the object label #: ../src/ui/dialog/object-properties.cpp:174 msgid "A freeform label for the object" -msgstr "Um rótulo com forma livre para o objecto" +msgstr "Um rótulo de forma livre para o objeto" #. Create the frame for the object description #: ../src/ui/dialog/object-properties.cpp:225 -#, fuzzy msgid "_Description:" -msgstr "Descrição" +msgstr "_Descrição:" #: ../src/ui/dialog/object-properties.cpp:260 msgid "" @@ -22540,17 +21263,24 @@ msgid "" "Note that this behaviour is not defined in the SVG 1.1 specification and not " "all browsers follow this interpretation." msgstr "" +"A propriedade 'image-rendering' pode influenciar como uma imagem bitmap é " +"aumentada em escala:\n" +"\t'auto' sem preferência (automático);\n" +"\t'optimizeQuality' suaviza (mais qualidade);\n" +"\t'optimizeSpeed' pixelizada (menos qualidade).\n" +"Notar que este comportamento não é definido na especificação SVG 1.1 e nem " +"todos os navegadores de internet o suportam." #. Hide #: ../src/ui/dialog/object-properties.cpp:293 msgid "Check to make the object invisible" -msgstr "Marque para tornar o objecto invisível" +msgstr "Ativar para tornar o objeto invisível" #. Lock #. TRANSLATORS: "Lock" is a verb here #: ../src/ui/dialog/object-properties.cpp:309 msgid "Check to make the object insensitive (not selectable by mouse)" -msgstr "Marque para fazer o objecto intangível (não selecionável pelo mouse)" +msgstr "Ativar para fazer o objeto intangível (não selecionável com o rato)" #. Button for setting the object's id, label, title and description. #: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2713 @@ -22560,9 +21290,8 @@ msgstr "_Aplicar" #. Create the frame for interactivity options #: ../src/ui/dialog/object-properties.cpp:339 -#, fuzzy msgid "_Interactivity" -msgstr "_Interseção" +msgstr "_Interatividade" #: ../src/ui/dialog/object-properties.cpp:386 #: ../src/ui/dialog/object-properties.cpp:391 @@ -22571,7 +21300,7 @@ msgstr "Ref" #: ../src/ui/dialog/object-properties.cpp:472 msgid "Id invalid! " -msgstr "ID inválido! " +msgstr "ID é inválido! " #: ../src/ui/dialog/object-properties.cpp:474 msgid "Id exists! " @@ -22579,414 +21308,374 @@ msgstr "ID existe! " #: ../src/ui/dialog/object-properties.cpp:480 msgid "Set object ID" -msgstr "Ajustar ID do objecto" +msgstr "Definir ID do objeto" #: ../src/ui/dialog/object-properties.cpp:494 msgid "Set object label" -msgstr "Ajustar rótulo do objecto" +msgstr "Definir etiqueta do objeto" #: ../src/ui/dialog/object-properties.cpp:500 msgid "Set object title" -msgstr "Ajustar título do objecto" +msgstr "Definir título do objeto" #: ../src/ui/dialog/object-properties.cpp:509 msgid "Set object description" -msgstr "Ajustar descrição do objecto" +msgstr "Definir descrição do objeto" #: ../src/ui/dialog/object-properties.cpp:535 -#, fuzzy msgid "Set image rendering option" -msgstr "Render" +msgstr "Definir opção da renderização da imagem" #: ../src/ui/dialog/object-properties.cpp:554 msgid "Lock object" -msgstr "Bloquear objecto" +msgstr "Bloquear objeto" #: ../src/ui/dialog/object-properties.cpp:554 msgid "Unlock object" -msgstr "DesBloquear objectos" +msgstr "Desbloquear objeto" #: ../src/ui/dialog/object-properties.cpp:570 msgid "Hide object" -msgstr "Ocultar objecto" +msgstr "Ocultar objeto" #: ../src/ui/dialog/object-properties.cpp:570 msgid "Unhide object" -msgstr "Mostrar objecto" +msgstr "Desocultar objeto" #: ../src/ui/dialog/objects.cpp:874 -#, fuzzy msgid "Unhide objects" -msgstr "Mostrar objecto" +msgstr "Desocultar objetos" #: ../src/ui/dialog/objects.cpp:874 -#, fuzzy msgid "Hide objects" -msgstr "Ocultar objecto" +msgstr "Ocultar objetos" #: ../src/ui/dialog/objects.cpp:894 -#, fuzzy msgid "Lock objects" -msgstr "Bloquear objecto" +msgstr "Bloquear objetos" #: ../src/ui/dialog/objects.cpp:894 -#, fuzzy msgid "Unlock objects" -msgstr "DesBloquear objectos" +msgstr "Desbloquear objetos" #: ../src/ui/dialog/objects.cpp:906 -#, fuzzy msgid "Layer to group" -msgstr "Camada para o topo" +msgstr "Camada para grupo" #: ../src/ui/dialog/objects.cpp:906 -#, fuzzy msgid "Group to layer" -msgstr "Baixar camada" +msgstr "Grupo para camada" #: ../src/ui/dialog/objects.cpp:1104 -#, fuzzy msgid "Moved objects" -msgstr "Nenhum objecto" +msgstr "Objetos movidos" #: ../src/ui/dialog/objects.cpp:1353 ../src/ui/dialog/tags.cpp:853 #: ../src/ui/dialog/tags.cpp:860 -#, fuzzy msgid "Rename object" -msgstr "Girar nós" +msgstr "Alterar nome do objeto" #: ../src/ui/dialog/objects.cpp:1459 -#, fuzzy msgid "Set object highlight color" -msgstr "Ajustar título do objecto" +msgstr "Definir cor de destaque do objeto" #: ../src/ui/dialog/objects.cpp:1469 -#, fuzzy msgid "Set object opacity" -msgstr "Ajustar título do objecto" +msgstr "Definir opacidade do objeto" #: ../src/ui/dialog/objects.cpp:1502 -#, fuzzy msgid "Set object blend mode" -msgstr "Ajustar rótulo do objecto" +msgstr "Definir modo de mistura do objeto" #: ../src/ui/dialog/objects.cpp:1558 -#, fuzzy msgid "Set object blur" -msgstr "Ajustar rótulo do objecto" +msgstr "Definir desfocagem do objeto" #: ../src/ui/dialog/objects.cpp:1621 msgctxt "Visibility" msgid "V" -msgstr "" +msgstr "Visi" #: ../src/ui/dialog/objects.cpp:1622 -#, fuzzy msgctxt "Lock" msgid "L" -msgstr "L" +msgstr "Bloq" #: ../src/ui/dialog/objects.cpp:1623 msgctxt "Type" msgid "T" -msgstr "" +msgstr "Tipo" #: ../src/ui/dialog/objects.cpp:1624 -#, fuzzy msgctxt "Clip and mask" msgid "CM" -msgstr "CMYK" +msgstr "RM" #: ../src/ui/dialog/objects.cpp:1625 -#, fuzzy msgctxt "Highlight" msgid "HL" -msgstr "HSL" +msgstr "DE" #: ../src/ui/dialog/objects.cpp:1626 -#, fuzzy msgid "Label" -msgstr "_Rótulo" +msgstr "Etiqueta" #. In order to get tooltips on header, we must create our own label. #: ../src/ui/dialog/objects.cpp:1668 -#, fuzzy msgid "Toggle visibility of Layer, Group, or Object." -msgstr "Baixar a camada actual" +msgstr "Alternar visibilidade da Camada, Grupo ou Objeto." #: ../src/ui/dialog/objects.cpp:1681 msgid "Toggle lock of Layer, Group, or Object." -msgstr "" +msgstr "Alternar bloqueio da Camada, Grupo ou Objeto." #: ../src/ui/dialog/objects.cpp:1693 msgid "" "Type: Layer, Group, or Object. Clicking on Layer or Group icon, toggles " "between the two types." msgstr "" +"Tipo: Camada, Grupo ou Objeto. Clicar no ícone da Camada ou Grupo, alterna " +"entre os dois tipos." #: ../src/ui/dialog/objects.cpp:1712 msgid "Is object clipped and/or masked?" -msgstr "" +msgstr "O objeto contém recorte ou máscara?" #: ../src/ui/dialog/objects.cpp:1723 msgid "" "Highlight color of outline in Node tool. Click to set. If alpha is zero, use " "inherited color." msgstr "" +"Destacar cor do contorno na ferramenta Nó. Clicar para definir. Se a " +"transparência for zero, usar a cor herdada." #: ../src/ui/dialog/objects.cpp:1734 msgid "" "Layer/Group/Object label (inkscape:label). Double-click to set. Default " "value is object 'id'." msgstr "" +"Etiqueta da Camada/Grupo/Objeto (inkscape:label). Clicar 2 vezes para " +"definir. O valor padrão é o ID (identificador) do objeto." #: ../src/ui/dialog/objects.cpp:1831 -#, fuzzy msgid "Add layer..." -msgstr "_Adicionar Camada..." +msgstr "Adicionar camada..." #: ../src/ui/dialog/objects.cpp:1838 -#, fuzzy msgid "Remove object" -msgstr "Remover filtro" +msgstr "Remover objeto" #: ../src/ui/dialog/objects.cpp:1846 -#, fuzzy msgid "Move To Bottom" -msgstr "_Baixar para o Fundo" +msgstr "Mover Para o Fundo" #: ../src/ui/dialog/objects.cpp:1870 -#, fuzzy msgid "Move To Top" -msgstr "Mover para:" +msgstr "Mover Para o Topo" #: ../src/ui/dialog/objects.cpp:1878 -#, fuzzy msgid "Collapse All" -msgstr "Limpa_r Todos" +msgstr "Contrair Tudo" #: ../src/ui/dialog/objects.cpp:1892 -#, fuzzy msgid "Rename" -msgstr "_Renomear" +msgstr "Alterar o Nome" #: ../src/ui/dialog/objects.cpp:1898 msgid "Solo" -msgstr "" +msgstr "Mostrar Só Esta Camada" #: ../src/ui/dialog/objects.cpp:1899 -#, fuzzy msgid "Show All" -msgstr "Mostrar:" +msgstr "Mostrar Todas as Camadas" #: ../src/ui/dialog/objects.cpp:1900 -#, fuzzy msgid "Hide All" -msgstr "Mostrar Tudo" +msgstr "Ocultar Todas as Camadas" #: ../src/ui/dialog/objects.cpp:1904 -#, fuzzy msgid "Lock Others" -msgstr "Bloquear Camada" +msgstr "Bloquear Outras Camadas" #: ../src/ui/dialog/objects.cpp:1905 -#, fuzzy msgid "Lock All" -msgstr "DesBloquear Tudo" +msgstr "Bloquear Todas as Camadas" #. LockAndHide #: ../src/ui/dialog/objects.cpp:1906 ../src/verbs.cpp:3011 msgid "Unlock All" -msgstr "DesBloquear Tudo" +msgstr "Desbloquear Todas" #: ../src/ui/dialog/objects.cpp:1910 -#, fuzzy msgid "Up" msgstr "Acima" #: ../src/ui/dialog/objects.cpp:1911 msgid "Down" -msgstr "" +msgstr "Abaixo" #: ../src/ui/dialog/objects.cpp:1920 -#, fuzzy msgid "Set Clip" -msgstr "Desfazer preenchimento" +msgstr "Aplicar Recorte" #. will never be implemented #. _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_INVERSE_CLIPPATH, 0, "Set Inverse Clip", (int)BUTTON_SETINVCLIP ) ); #: ../src/ui/dialog/objects.cpp:1926 -#, fuzzy msgid "Unset Clip" -msgstr "Desfazer preenchimento" +msgstr "Retirar Recorte" #. Set mask #: ../src/ui/dialog/objects.cpp:1930 ../src/ui/interface.cpp:1754 -#, fuzzy msgid "Set Mask" -msgstr "Definir máscara" +msgstr "Definir Máscara" #: ../src/ui/dialog/objects.cpp:1931 -#, fuzzy msgid "Unset Mask" -msgstr "Definir máscara" +msgstr "Retirar Máscara" #: ../src/ui/dialog/objects.cpp:1953 -#, fuzzy msgid "Select Highlight Color" -msgstr "Cor de _destaque:" +msgstr "Selecionar Cor de Destaque:" #: ../src/ui/dialog/ocaldialogs.cpp:715 msgid "Clipart found" -msgstr "" +msgstr "Clipart encontrado" #: ../src/ui/dialog/ocaldialogs.cpp:764 -#, fuzzy msgid "Downloading image..." -msgstr "Revertendo caminhos..." +msgstr "A descarregar imagem..." #: ../src/ui/dialog/ocaldialogs.cpp:912 -#, fuzzy msgid "Could not download image" -msgstr "Não foi possível exportar para o ficheiro %s.\n" +msgstr "Não foi possível descarregar a imagem" #: ../src/ui/dialog/ocaldialogs.cpp:922 msgid "Clipart downloaded successfully" -msgstr "" +msgstr "Clipart descarregado com sucesso" #: ../src/ui/dialog/ocaldialogs.cpp:936 -#, fuzzy msgid "Could not download thumbnail file" -msgstr "Não foi possível exportar para o ficheiro %s.\n" +msgstr "Não foi possível descarregar o ficheiro miniatura" #: ../src/ui/dialog/ocaldialogs.cpp:1011 -#, fuzzy msgid "No description" -msgstr " descrição: " +msgstr "Sem descrição" #: ../src/ui/dialog/ocaldialogs.cpp:1079 -#, fuzzy msgid "Searching clipart..." -msgstr "Revertendo caminhos..." +msgstr "A procurar clipart..." #: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 -#, fuzzy msgid "Could not connect to the Open Clip Art Library" -msgstr "Exportar este documento para a Biblioteca Open Clip Art" +msgstr "Não foi possível estabelecer a ligação a Open Clip Art Library" #: ../src/ui/dialog/ocaldialogs.cpp:1145 -#, fuzzy msgid "Could not parse search results" -msgstr "Não foi possível interpretar os dados do SVG" +msgstr "Não foi possível processar os resultados da pesquisa" #: ../src/ui/dialog/ocaldialogs.cpp:1177 msgid "No clipart named %1 was found." -msgstr "" +msgstr "Não foi encontrado nenhum clipart com o nome %1." #: ../src/ui/dialog/ocaldialogs.cpp:1179 msgid "" "Please make sure all keywords are spelled correctly, or try again with " "different keywords." msgstr "" +"Por favor confirmar se todas as palavras-chave estão corretas ou tentar de " +"novo com outras palavras-chave." #: ../src/ui/dialog/ocaldialogs.cpp:1231 msgid "Search" msgstr "Procurar" #: ../src/ui/dialog/ocaldialogs.cpp:1243 -#, fuzzy msgid "Close" -msgstr "Fe_char" +msgstr "Fechar" #: ../src/ui/dialog/pixelartdialog.cpp:190 msgid "_Curves (multiplier):" -msgstr "" +msgstr "_Curvas (multiplicador):" #: ../src/ui/dialog/pixelartdialog.cpp:193 msgid "Favors connections that are part of a long curve" -msgstr "" +msgstr "Favorece ligações que fazem parte de uma curva longa" #: ../src/ui/dialog/pixelartdialog.cpp:204 -#, fuzzy msgid "_Islands (weight):" -msgstr "Altura da Barra:" +msgstr "_Ilhas (altura):" #: ../src/ui/dialog/pixelartdialog.cpp:207 msgid "Avoid single disconnected pixels" -msgstr "" +msgstr "Evitar píxeis únicos não ligados" #: ../src/ui/dialog/pixelartdialog.cpp:209 -#, fuzzy msgid "A constant vote value" -msgstr "Rotação (graus)" +msgstr "Um valor de voto constante" #: ../src/ui/dialog/pixelartdialog.cpp:219 msgid "Sparse pixels (window _radius):" -msgstr "" +msgstr "Píxeis dispersos (_raio da janela):" #: ../src/ui/dialog/pixelartdialog.cpp:228 msgid "The radius of the window analyzed" -msgstr "" +msgstr "O raio da janela analizada" #: ../src/ui/dialog/pixelartdialog.cpp:229 msgid "Sparse pixels (_multiplier):" -msgstr "" +msgstr "Píxeis dispersos (_multiplicador):" #: ../src/ui/dialog/pixelartdialog.cpp:240 msgid "Favors connections that are part of foreground color" -msgstr "" +msgstr "Favorece ligações que fazem parte da cor de cima" #: ../src/ui/dialog/pixelartdialog.cpp:246 msgid "The heuristic computed vote will be multiplied by this value" -msgstr "" +msgstr "O voto heurístico calculado será multiplicado por este valor" #: ../src/ui/dialog/pixelartdialog.cpp:259 msgid "Heuristics" -msgstr "" +msgstr "Heurísticas" #: ../src/ui/dialog/pixelartdialog.cpp:266 -#, fuzzy msgid "_Voronoi diagram" -msgstr "Padrões" +msgstr "Diagrama _Voronoi" #: ../src/ui/dialog/pixelartdialog.cpp:267 msgid "Output composed of straight lines" -msgstr "" +msgstr "Saída composta por linhas direitas" #: ../src/ui/dialog/pixelartdialog.cpp:273 -#, fuzzy msgid "Convert to _B-spline curves" -msgstr "Converter para Texto" +msgstr "Converter para curvas _B-Spline" #: ../src/ui/dialog/pixelartdialog.cpp:274 msgid "Preserve staircasing artifacts" -msgstr "" +msgstr "Preservar artefactos em escada" #: ../src/ui/dialog/pixelartdialog.cpp:281 -#, fuzzy msgid "_Smooth curves" -msgstr "Suavizar cantos" +msgstr "Curvas _suaves" #: ../src/ui/dialog/pixelartdialog.cpp:282 msgid "The Kopf-Lischinski algorithm" -msgstr "" +msgstr "O algoritmo Kopf-Lischinski" #: ../src/ui/dialog/pixelartdialog.cpp:289 msgid "Output" msgstr "Saída" #: ../src/ui/dialog/pixelartdialog.cpp:297 ../src/ui/dialog/tracedialog.cpp:814 -#, fuzzy msgid "Reset all settings to defaults" -msgstr "Redefinir todos os parâmetros para padrão" +msgstr "Repor todos os parâmetros padrão" #: ../src/ui/dialog/pixelartdialog.cpp:302 ../src/ui/dialog/tracedialog.cpp:819 msgid "Abort a trace in progress" -msgstr "Abortar vectorização em progresso" +msgstr "Abortar vetorização em progresso" #: ../src/ui/dialog/pixelartdialog.cpp:306 ../src/ui/dialog/tracedialog.cpp:823 msgid "Execute the trace" -msgstr "Vectorizar" +msgstr "Vetorizar" #: ../src/ui/dialog/pixelartdialog.cpp:388 #: ../src/ui/dialog/pixelartdialog.cpp:422 @@ -22996,139 +21685,123 @@ msgid "" "\n" "Continue the procedure (without saving)?" msgstr "" +"A imagem parece demasiado grande. O processamento poderá demorar um pouco e " +"é aconselhável gravar o documento antes de continuar.\n" +"\n" +"Continuar (sem gravar)?" #: ../src/ui/dialog/pixelartdialog.cpp:499 -#, fuzzy msgid "Trace pixel art" -msgstr "pixels em" +msgstr "Vetorizar arte de píxeis" #: ../src/ui/dialog/polar-arrange-tab.cpp:41 -#, fuzzy msgctxt "Polar arrange tab" msgid "Y coordinate of the center" -msgstr "Coordenada X do nó(s) seleccionado(s)" +msgstr "Coordenada Y do centro" #: ../src/ui/dialog/polar-arrange-tab.cpp:42 -#, fuzzy msgctxt "Polar arrange tab" msgid "X coordinate of the center" -msgstr "Coordenada X do nó(s) seleccionado(s)" +msgstr "Coordenada X do centro" #: ../src/ui/dialog/polar-arrange-tab.cpp:43 -#, fuzzy msgctxt "Polar arrange tab" msgid "Y coordinate of the radius" -msgstr "Coordenada X do nó(s) seleccionado(s)" +msgstr "Coordenada Y do raio" #: ../src/ui/dialog/polar-arrange-tab.cpp:44 -#, fuzzy msgctxt "Polar arrange tab" msgid "X coordinate of the radius" -msgstr "Coordenada X do nó(s) seleccionado(s)" +msgstr "Coordenada X do raio" #: ../src/ui/dialog/polar-arrange-tab.cpp:45 -#, fuzzy msgctxt "Polar arrange tab" msgid "Starting angle" -msgstr "Valor de x inicial" +msgstr "Ângulo inicial" #: ../src/ui/dialog/polar-arrange-tab.cpp:46 -#, fuzzy msgctxt "Polar arrange tab" msgid "End angle" -msgstr "Ângulo de Cone" +msgstr "Ângulo final" #: ../src/ui/dialog/polar-arrange-tab.cpp:48 -#, fuzzy msgctxt "Polar arrange tab" msgid "Anchor point:" -msgstr "Orientação da página:" +msgstr "Ponto âncora:" #: ../src/ui/dialog/polar-arrange-tab.cpp:52 -#, fuzzy msgctxt "Polar arrange tab" msgid "Object's bounding box:" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Caixa limitadora do objeto:" #: ../src/ui/dialog/polar-arrange-tab.cpp:59 -#, fuzzy msgctxt "Polar arrange tab" msgid "Object's rotational center" -msgstr "Objecto para padrão" +msgstr "Centro de rotação do objeto" #: ../src/ui/dialog/polar-arrange-tab.cpp:64 -#, fuzzy msgctxt "Polar arrange tab" msgid "Arrange on:" -msgstr "Ângulo" +msgstr "Organizar em:" #: ../src/ui/dialog/polar-arrange-tab.cpp:68 -#, fuzzy msgctxt "Polar arrange tab" msgid "First selected circle/ellipse/arc" -msgstr "Criar círculos, elipses e arcos" +msgstr "O primeiro círculo/elipse/arco selecionado" #: ../src/ui/dialog/polar-arrange-tab.cpp:73 -#, fuzzy msgctxt "Polar arrange tab" msgid "Last selected circle/ellipse/arc" -msgstr "Última cor selecionada" +msgstr "O último círculo/elipse/arco selecionado" #: ../src/ui/dialog/polar-arrange-tab.cpp:78 -#, fuzzy msgctxt "Polar arrange tab" msgid "Parameterized:" -msgstr "Parâmetros" +msgstr "Parameterizado:" #: ../src/ui/dialog/polar-arrange-tab.cpp:83 -#, fuzzy msgctxt "Polar arrange tab" msgid "Center X/Y:" -msgstr "Centralizar" +msgstr "Centro X/Y:" #: ../src/ui/dialog/polar-arrange-tab.cpp:105 -#, fuzzy msgctxt "Polar arrange tab" msgid "Radius X/Y:" -msgstr "Raio" +msgstr "Raio X/Y:" #: ../src/ui/dialog/polar-arrange-tab.cpp:127 -#, fuzzy msgid "Angle X/Y:" -msgstr "Ângulo X:" +msgstr "Ângulo X/Y:" #: ../src/ui/dialog/polar-arrange-tab.cpp:150 -#, fuzzy msgid "Rotate objects" -msgstr "Girar nós" +msgstr "Rodar objetos" #: ../src/ui/dialog/polar-arrange-tab.cpp:336 msgid "Couldn't find an ellipse in selection" -msgstr "" +msgstr "Não foi encontrada nenhuma elipse na seleção" #: ../src/ui/dialog/polar-arrange-tab.cpp:399 -#, fuzzy msgid "Arrange on ellipse" -msgstr "Criar elipse" +msgstr "Dispôr em elipse" #: ../src/ui/dialog/print.cpp:111 msgid "Could not open temporary PNG for bitmap printing" msgstr "" +"Não foi possível abrir o PNG temporário para a impressão da imagem bitmap" #: ../src/ui/dialog/print.cpp:138 -#, fuzzy msgid "Could not set up Document" -msgstr "Não foi possível definir a origem da impressão: %s" +msgstr "Não foi possível configurar o Documento" #: ../src/ui/dialog/print.cpp:142 msgid "Failed to set CairoRenderContext" -msgstr "" +msgstr "Não foi possível definir o CairoRenderContext" #. set up dialog title, based on document name #: ../src/ui/dialog/print.cpp:180 -#, fuzzy msgid "SVG Document" -msgstr "Desenho SVG" +msgstr "Documento SVG" #: ../src/ui/dialog/print.cpp:181 msgid "Print" @@ -23136,426 +21809,369 @@ msgstr "Imprimir" #: ../src/ui/dialog/spellcheck.cpp:73 msgid "_Accept" -msgstr "" +msgstr "_Alterar" #: ../src/ui/dialog/spellcheck.cpp:74 -#, fuzzy msgid "_Ignore once" -msgstr "Ignorar" +msgstr "Ignorar uma _vez" #: ../src/ui/dialog/spellcheck.cpp:75 -#, fuzzy msgid "_Ignore" -msgstr "Ignorar" +msgstr "_Ignorar todas" #: ../src/ui/dialog/spellcheck.cpp:76 msgid "A_dd" -msgstr "" +msgstr "A_dicionar" #: ../src/ui/dialog/spellcheck.cpp:78 -#, fuzzy msgid "_Stop" -msgstr "_Aplicar" +msgstr "_Parar" #: ../src/ui/dialog/spellcheck.cpp:79 -#, fuzzy msgid "_Start" -msgstr "Início" +msgstr "_Começar" #: ../src/ui/dialog/spellcheck.cpp:109 -#, fuzzy msgid "Suggestions:" -msgstr "Resolução:" +msgstr "Sugestões:" #: ../src/ui/dialog/spellcheck.cpp:124 msgid "Accept the chosen suggestion" -msgstr "" +msgstr "Aceitar a sugestão escolhida e corrigir a palavra" #: ../src/ui/dialog/spellcheck.cpp:125 msgid "Ignore this word only once" -msgstr "" +msgstr "Ignorar esta palavra apenas desta vez" #: ../src/ui/dialog/spellcheck.cpp:126 msgid "Ignore this word in this session" -msgstr "" +msgstr "Ignorar esta palavra durante esta sessão" #: ../src/ui/dialog/spellcheck.cpp:127 msgid "Add this word to the chosen dictionary" -msgstr "" +msgstr "Adicionar esta palavra ao dicionário escolhido" #: ../src/ui/dialog/spellcheck.cpp:141 msgid "Stop the check" -msgstr "" +msgstr "Parar verificação ortográfica" #: ../src/ui/dialog/spellcheck.cpp:142 msgid "Start the check" -msgstr "" +msgstr "Iniciar verificação ortográfica" #: ../src/ui/dialog/spellcheck.cpp:460 #, c-format msgid "Finished, %d words added to dictionary" -msgstr "" +msgstr "Terminado, %d palavras adicionadas ao dicionário" #: ../src/ui/dialog/spellcheck.cpp:462 msgid "Finished, nothing suspicious found" -msgstr "" +msgstr "Terminado, não foi encontrado nada suspeito" #: ../src/ui/dialog/spellcheck.cpp:578 #, c-format msgid "Not in dictionary (%s): %s" -msgstr "" +msgstr "Não encontrado no dicionário (%s): %s" #: ../src/ui/dialog/spellcheck.cpp:727 msgid "Checking..." -msgstr "" +msgstr "A verificar..." #: ../src/ui/dialog/spellcheck.cpp:796 msgid "Fix spelling" -msgstr "" +msgstr "Corrigir ortografia" #: ../src/ui/dialog/svg-fonts-dialog.cpp:139 -#, fuzzy msgid "Set SVG Font attribute" -msgstr "Ajustar atributo" +msgstr "Definir atributo da Fonte SVG" #: ../src/ui/dialog/svg-fonts-dialog.cpp:197 -#, fuzzy msgid "Adjust kerning value" -msgstr "Ajustar matiz" +msgstr "Ajustar valor de espaço entre-letras" #: ../src/ui/dialog/svg-fonts-dialog.cpp:387 -#, fuzzy msgid "Family Name:" -msgstr "Renomear ficheiro" +msgstr "Nome da Família:" #: ../src/ui/dialog/svg-fonts-dialog.cpp:397 -#, fuzzy msgid "Set width:" -msgstr "Escala de largura" +msgstr "Definir largura:" #: ../src/ui/dialog/svg-fonts-dialog.cpp:456 -#, fuzzy msgid "glyph" -msgstr "Alfa" +msgstr "caractere" #. SPGlyph* glyph = #: ../src/ui/dialog/svg-fonts-dialog.cpp:488 -#, fuzzy msgid "Add glyph" -msgstr "Adicionar camada" +msgstr "Adicionar caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:522 #: ../src/ui/dialog/svg-fonts-dialog.cpp:564 -#, fuzzy msgid "Select a path to define the curves of a glyph" -msgstr "Seleccione algum caminho para comprimir/expandir" +msgstr "Selecionar um caminho para definir as curvas do caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:530 #: ../src/ui/dialog/svg-fonts-dialog.cpp:572 -#, fuzzy msgid "The selected object does not have a path description." -msgstr "" -"O objecto seleccionado não é um caminho. Não é possível comprimir/" -"expandir" +msgstr "O objeto selecionado não tem uma descrição do caminho." #: ../src/ui/dialog/svg-fonts-dialog.cpp:537 msgid "No glyph selected in the SVGFonts dialog." -msgstr "" +msgstr "Nenhum caractere selecionado na janela Fontes SVG." #: ../src/ui/dialog/svg-fonts-dialog.cpp:548 #: ../src/ui/dialog/svg-fonts-dialog.cpp:587 msgid "Set glyph curves" -msgstr "" +msgstr "Definir curvas do caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:607 msgid "Reset missing-glyph" -msgstr "" +msgstr "Repor caractere em falta" #: ../src/ui/dialog/svg-fonts-dialog.cpp:623 msgid "Edit glyph name" -msgstr "" +msgstr "Editar nome do caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:637 msgid "Set glyph unicode" -msgstr "" +msgstr "Definir unicode do caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:649 -#, fuzzy msgid "Remove font" -msgstr "Remover filtro" +msgstr "Remover fonte" #: ../src/ui/dialog/svg-fonts-dialog.cpp:666 -#, fuzzy msgid "Remove glyph" -msgstr "Remover preenchimento" +msgstr "Remover caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:683 -#, fuzzy msgid "Remove kerning pair" -msgstr "Remover guias existentes" +msgstr "Remover par de entre-letras" #: ../src/ui/dialog/svg-fonts-dialog.cpp:693 msgid "Missing Glyph:" -msgstr "" +msgstr "Caractere em Falta:" #: ../src/ui/dialog/svg-fonts-dialog.cpp:697 -#, fuzzy msgid "From selection..." -msgstr "Obter da selecção" +msgstr "Da seleção..." #: ../src/ui/dialog/svg-fonts-dialog.cpp:710 -#, fuzzy msgid "Glyph name" -msgstr "Nome da camada:" +msgstr "Nome do caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:711 -#, fuzzy msgid "Matching string" -msgstr " frase: " +msgstr "Expressão correspondente" #: ../src/ui/dialog/svg-fonts-dialog.cpp:714 -#, fuzzy msgid "Add Glyph" -msgstr "Adicionar camada" +msgstr "Adicionar Caractere" #: ../src/ui/dialog/svg-fonts-dialog.cpp:721 -#, fuzzy msgid "Get curves from selection..." -msgstr "Remover máscara da selecção" +msgstr "Obter curvas da seleção..." #: ../src/ui/dialog/svg-fonts-dialog.cpp:770 msgid "Add kerning pair" -msgstr "" +msgstr "Adicionar par de entre-letras" #. Kerning Setup: #: ../src/ui/dialog/svg-fonts-dialog.cpp:778 -#, fuzzy msgid "Kerning Setup" -msgstr "Aumentar Kern" +msgstr "Configuração de Entre-Letras" #: ../src/ui/dialog/svg-fonts-dialog.cpp:780 msgid "1st Glyph:" -msgstr "" +msgstr "1º Caractere:" #: ../src/ui/dialog/svg-fonts-dialog.cpp:782 msgid "2nd Glyph:" -msgstr "" +msgstr "2º Caractere:" #: ../src/ui/dialog/svg-fonts-dialog.cpp:785 -#, fuzzy msgid "Add pair" -msgstr "Adicionar camada" +msgstr "Adicionar par" #: ../src/ui/dialog/svg-fonts-dialog.cpp:797 -#, fuzzy msgid "First Unicode range" -msgstr "Inserir caractere Unicode" +msgstr "Primeiro intervalo Unicode" #: ../src/ui/dialog/svg-fonts-dialog.cpp:798 msgid "Second Unicode range" -msgstr "" +msgstr "Segundo intervalo Unicode" #: ../src/ui/dialog/svg-fonts-dialog.cpp:805 -#, fuzzy msgid "Kerning value:" -msgstr "Limpar os valores" +msgstr "Valor de entre-letras:" #: ../src/ui/dialog/svg-fonts-dialog.cpp:863 -#, fuzzy msgid "Set font family" -msgstr "Família da fonte" +msgstr "Definir família da fonte" #: ../src/ui/dialog/svg-fonts-dialog.cpp:872 -#, fuzzy msgid "font" -msgstr "Fonte" +msgstr "fonte" #. select_font(font); #: ../src/ui/dialog/svg-fonts-dialog.cpp:887 -#, fuzzy msgid "Add font" -msgstr "Adicionar filtro" +msgstr "Adicionar fonte" #: ../src/ui/dialog/svg-fonts-dialog.cpp:913 ../src/ui/dialog/text-edit.cpp:69 -#, fuzzy msgid "_Font" -msgstr "Fonte" +msgstr "_Fonte" #: ../src/ui/dialog/svg-fonts-dialog.cpp:921 -#, fuzzy msgid "_Global Settings" -msgstr "Configurações da página" +msgstr "Definições _Globais" #: ../src/ui/dialog/svg-fonts-dialog.cpp:922 msgid "_Glyphs" -msgstr "" +msgstr "_Caracteres" #: ../src/ui/dialog/svg-fonts-dialog.cpp:923 -#, fuzzy msgid "_Kerning" -msgstr "_Desenho" +msgstr "_Entre-letras" #: ../src/ui/dialog/svg-fonts-dialog.cpp:930 #: ../src/ui/dialog/svg-fonts-dialog.cpp:931 -#, fuzzy msgid "Sample Text" -msgstr "Ampliar" +msgstr "Texto de Exemplo" #: ../src/ui/dialog/svg-fonts-dialog.cpp:935 -#, fuzzy msgid "Preview Text:" -msgstr "Pré-visualizar" +msgstr "Pré-visualização do Texto:" #: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:360 #: ../src/ui/tools/gradient-tool.cpp:458 ../src/widgets/gradient-vector.cpp:801 msgid "Add gradient stop" -msgstr "Adicionar parada do degradê" +msgstr "Adicionar paragem no gradiente" #. TRANSLATORS: An item in context menu on a colour in the swatches #: ../src/ui/dialog/swatches.cpp:257 -#, fuzzy msgid "Set fill" -msgstr "Desfazer preenchimento" +msgstr "Aplicar no preenchimento" #. TRANSLATORS: An item in context menu on a colour in the swatches #: ../src/ui/dialog/swatches.cpp:265 -#, fuzzy msgid "Set stroke" -msgstr "Redefinir o traço" +msgstr "Aplicar no traço" #: ../src/ui/dialog/swatches.cpp:286 msgid "Edit..." msgstr "Editar..." #: ../src/ui/dialog/swatches.cpp:298 -#, fuzzy msgid "Convert" -msgstr "Capa" +msgstr "Converter" #: ../src/ui/dialog/swatches.cpp:543 #, c-format msgid "Palettes directory (%s) is unavailable." -msgstr "Diretório de paletas (%s) não está disponível." +msgstr "A pasta de paletas (%s) não está disponível." #. ******************* Symbol Sets ************************ #: ../src/ui/dialog/symbols.cpp:135 msgid "Symbol set: " -msgstr "" +msgstr "Conjunto de símbolos: " #. Fill in later #: ../src/ui/dialog/symbols.cpp:144 ../src/ui/dialog/symbols.cpp:145 -#, fuzzy msgid "Current Document" -msgstr "Imprimir documento" +msgstr "Documento Atual" #: ../src/ui/dialog/symbols.cpp:212 -#, fuzzy msgid "Add Symbol from the current document." -msgstr "Baixar a camada actual" +msgstr "Adicionar Símbolo do documento atual." #: ../src/ui/dialog/symbols.cpp:221 -#, fuzzy msgid "Remove Symbol from the current document." -msgstr "Editar as paradas do degradê" +msgstr "Remover Símbolo do documento atual." #: ../src/ui/dialog/symbols.cpp:235 -#, fuzzy msgid "Display more icons in row." -msgstr "_Modo de visão" +msgstr "Mostrar mais ícones por cada linha." #: ../src/ui/dialog/symbols.cpp:244 -#, fuzzy msgid "Display fewer icons in row." -msgstr "_Modo de visão" +msgstr "Mostrar menos ícones por cada linha." #: ../src/ui/dialog/symbols.cpp:254 msgid "Toggle 'fit' symbols in icon space." -msgstr "" +msgstr "Mostrar símbolos encaixados no espaço do ícone." #: ../src/ui/dialog/symbols.cpp:266 msgid "Make symbols smaller by zooming out." -msgstr "" +msgstr "Reduzir tamanho dos símbolos." #: ../src/ui/dialog/symbols.cpp:276 msgid "Make symbols bigger by zooming in." -msgstr "" +msgstr "Aumentar tamanho dos símbolos." #: ../src/ui/dialog/symbols.cpp:637 -#, fuzzy msgid "Unnamed Symbols" -msgstr "Ajustar a cor escolhida" +msgstr "Símbolos sem Nome" #: ../src/ui/dialog/tags.cpp:270 ../src/ui/dialog/tags.cpp:569 #: ../src/ui/dialog/tags.cpp:683 ../src/ui/dialog/tags.cpp:946 -#, fuzzy msgid "Remove from selection set" -msgstr "Remover máscara da selecção" +msgstr "Remover do conjunto de seleção" #: ../src/ui/dialog/tags.cpp:427 msgid "Items" -msgstr "" +msgstr "Itens" #: ../src/ui/dialog/tags.cpp:666 ../src/ui/dialog/tags.cpp:944 -#, fuzzy msgid "Add selection to set" -msgstr "Levantar a selecção para o topo" +msgstr "Adicionar seleção ao conjunto" #: ../src/ui/dialog/tags.cpp:824 -#, fuzzy msgid "Moved sets" -msgstr "Mover alça do degradê" +msgstr "Conjuntos movidos" #: ../src/ui/dialog/tags.cpp:1004 -#, fuzzy msgid "Add a new selection set" -msgstr "Mudar espaçamento do conector" +msgstr "Adicionar novo conjunto de seleção" #: ../src/ui/dialog/tags.cpp:1013 -#, fuzzy msgid "Remove Item/Set" -msgstr "Remover efeito de caminho" +msgstr "Remover Item/Conjunto" #: ../src/ui/dialog/template-widget.cpp:37 -#, fuzzy msgid "More info" -msgstr "Mais Luz" +msgstr "Mais informações" #: ../src/ui/dialog/template-widget.cpp:39 -#, fuzzy msgid "no template selected" -msgstr "Nenhum efeito seleccionado" +msgstr "nenhum modelo selecionado" #: ../src/ui/dialog/template-widget.cpp:131 -#, fuzzy msgid "Path: " -msgstr "Caminho" +msgstr "Caminho: " #: ../src/ui/dialog/template-widget.cpp:134 -#, fuzzy msgid "Description: " -msgstr "Descrição" +msgstr "Descrição: " #: ../src/ui/dialog/template-widget.cpp:136 -#, fuzzy msgid "Keywords: " -msgstr "Palavras chave" +msgstr "Palavras-chave: " #: ../src/ui/dialog/template-widget.cpp:143 msgid "By: " -msgstr "" +msgstr "Por: " #: ../src/ui/dialog/text-edit.cpp:72 -#, fuzzy msgid "_Variants" -msgstr "Saturação" +msgstr "_Variantes" #: ../src/ui/dialog/text-edit.cpp:73 -#, fuzzy msgid "Set as _default" -msgstr "Ajustar como padrão" +msgstr "_Definir como padrão" #: ../src/ui/dialog/text-edit.cpp:87 -#, fuzzy msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "AaBbCcIiPpQq12369$€¢?.;/()" @@ -23567,9 +22183,8 @@ msgstr "Alinhar à esquerda" #: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1688 #: ../src/widgets/text-toolbar.cpp:1689 -#, fuzzy msgid "Align center" -msgstr "Alinhar à esquerda" +msgstr "Alinhar ao centro" #: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1696 #: ../src/widgets/text-toolbar.cpp:1697 @@ -23577,9 +22192,8 @@ msgid "Align right" msgstr "Alinhar à direita" #: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1705 -#, fuzzy msgid "Justify (only flowed text)" -msgstr "Destacar texto fluido" +msgstr "Justificar (apenas texto fluido)" #. Direction buttons #: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1740 @@ -23591,14 +22205,12 @@ msgid "Vertical text" msgstr "Texto vertical" #: ../src/ui/dialog/text-edit.cpp:130 ../src/ui/dialog/text-edit.cpp:131 -#, fuzzy msgid "Spacing between baselines (percent of font size)" -msgstr "Espaçamento entre linhas" +msgstr "Espaçamento entre linhas base (percentagem do tamanho da fonte)" #: ../src/ui/dialog/text-edit.cpp:147 -#, fuzzy msgid "Text path offset" -msgstr "Ajustar a distância de compensação" +msgstr "Deslocamento do texto no caminho" #: ../src/ui/dialog/text-edit.cpp:612 ../src/ui/dialog/text-edit.cpp:699 #: ../src/ui/tools/text-tool.cpp:1446 @@ -23606,26 +22218,23 @@ msgid "Set text style" msgstr "Definir estilo do texto" #: ../src/ui/dialog/tile.cpp:36 -#, fuzzy msgctxt "Arrange dialog" msgid "Rectangular grid" msgstr "Grelha retangular" #: ../src/ui/dialog/tile.cpp:37 -#, fuzzy msgctxt "Arrange dialog" msgid "Polar Coordinates" -msgstr "Coordenadas do cursor" +msgstr "Coordenadas Polares" #: ../src/ui/dialog/tile.cpp:40 -#, fuzzy msgctxt "Arrange dialog" msgid "_Arrange" -msgstr "Ângulo" +msgstr "_Organizar" #: ../src/ui/dialog/tile.cpp:42 msgid "Arrange selected objects" -msgstr "Organizar os objectos seleccionados" +msgstr "Organizar os objetos selecionados" #. #### begin left panel #. ### begin notebook @@ -23633,70 +22242,64 @@ msgstr "Organizar os objectos seleccionados" #. # begin single scan #. brightness #: ../src/ui/dialog/tracedialog.cpp:508 -#, fuzzy msgid "_Brightness cutoff" -msgstr "Intensidade do Brilho" +msgstr "Nível de _brilho" #: ../src/ui/dialog/tracedialog.cpp:512 msgid "Trace by a given brightness level" -msgstr "Vectorizar pela intensidade do nível de brilho" +msgstr "Vetorizar pelo nível de brilho" #: ../src/ui/dialog/tracedialog.cpp:519 msgid "Brightness cutoff for black/white" -msgstr "Intensidade do Brilho para preto/branco" +msgstr "Corte no brilho para preto/branco" #: ../src/ui/dialog/tracedialog.cpp:529 msgid "Single scan: creates a path" -msgstr "Busca única: criar caminhos" +msgstr "Uma passagem: cria um caminho" #. canny edge detection #. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method #: ../src/ui/dialog/tracedialog.cpp:534 -#, fuzzy msgid "_Edge detection" -msgstr "Detecção de bordas" +msgstr "_Deteção de bordas" #: ../src/ui/dialog/tracedialog.cpp:538 msgid "Trace with optimal edge detection by J. Canny's algorithm" -msgstr "Vectorizar com o algoritmo de detecção de borda de J. Canny's" +msgstr "Vetorizar com o algoritmo de deteção de borda de J. Canny" #: ../src/ui/dialog/tracedialog.cpp:556 msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" msgstr "" -"Intensidade do Brilho para reduzir em pixels (determina a espessura da borda)" +"Corte no brilho para píxeis adjacentes (determina a espessura da borda)" #: ../src/ui/dialog/tracedialog.cpp:559 -#, fuzzy msgid "T_hreshold:" -msgstr "Limiar:" +msgstr "_Limiar:" #. quantization #. TRANSLATORS: Color Quantization: the process of reducing the number #. of colors in an image by selecting an optimized set of representative #. colors and then re-applying this reduced set to the original image. #: ../src/ui/dialog/tracedialog.cpp:571 -#, fuzzy msgid "Color _quantization" -msgstr "Quantidade de Cores" +msgstr "Nú_mero de cores" #: ../src/ui/dialog/tracedialog.cpp:575 msgid "Trace along the boundaries of reduced colors" -msgstr "Vectorizar pelo limite da quantidade de cores especificada" +msgstr "Vetorizar ao longo dos limites de número reduzido de cores" #: ../src/ui/dialog/tracedialog.cpp:583 msgid "The number of reduced colors" msgstr "Número de cores reduzidas" #: ../src/ui/dialog/tracedialog.cpp:586 -#, fuzzy msgid "_Colors:" -msgstr "Cores:" +msgstr "_Cores:" #. swap black and white #: ../src/ui/dialog/tracedialog.cpp:594 -#, fuzzy msgid "_Invert image" -msgstr "Inverter imagem" +msgstr "_Inverter imagem" #: ../src/ui/dialog/tracedialog.cpp:599 msgid "Invert black and white regions" @@ -23705,110 +22308,100 @@ msgstr "Inverter regiões pretas e brancas para traçados simples" #. # end single scan #. # begin multiple scan #: ../src/ui/dialog/tracedialog.cpp:609 -#, fuzzy msgid "B_rightness steps" -msgstr "Níveis do brilho" +msgstr "_Níveis do brilho" #: ../src/ui/dialog/tracedialog.cpp:613 msgid "Trace the given number of brightness levels" -msgstr "Vectorizar o número dado de níveis do brilho" +msgstr "Vetorizar o número fornecido de níveis de brilho" #: ../src/ui/dialog/tracedialog.cpp:621 -#, fuzzy msgid "Sc_ans:" -msgstr "Níveis:" +msgstr "_Passagens:" #: ../src/ui/dialog/tracedialog.cpp:625 msgid "The desired number of scans" -msgstr "Quantidade de níveis desejado" +msgstr "Número de passos pretendido" #: ../src/ui/dialog/tracedialog.cpp:630 -#, fuzzy msgid "Co_lors" -msgstr "Co_r" +msgstr "_Cores" #: ../src/ui/dialog/tracedialog.cpp:634 msgid "Trace the given number of reduced colors" -msgstr "Vectorizar o número dado de cores reduzidas" +msgstr "Vetorizar o número fornecido de cores reduzidas" #: ../src/ui/dialog/tracedialog.cpp:639 -#, fuzzy msgid "_Grays" -msgstr "Tons de cinza" +msgstr "Tons de _cinza" #: ../src/ui/dialog/tracedialog.cpp:643 msgid "Same as Colors, but the result is converted to grayscale" -msgstr "Cores iguais, mas converter o resultado para escala de cinza" +msgstr "Como o de Cores, mas converte o resultado numa escala de cinzas" #. TRANSLATORS: "Smooth" is a verb here #: ../src/ui/dialog/tracedialog.cpp:649 -#, fuzzy msgid "S_mooth" -msgstr "Suavizar" +msgstr "_Suavizar" #: ../src/ui/dialog/tracedialog.cpp:653 msgid "Apply Gaussian blur to the bitmap before tracing" -msgstr "Aplicar desfoque gaussiano ao bitmap antes de traçá-lo" +msgstr "Aplicar desfocagem Gaussiana na imagem bitmap antes de vetorizar" +# Mais curto "Empilhar" para não ocupar tanto espaço e é suficiente #. TRANSLATORS: "Stack" is a verb here #: ../src/ui/dialog/tracedialog.cpp:657 -#, fuzzy msgid "Stac_k scans" -msgstr "Fechar brechas" +msgstr "_Empilhar" #: ../src/ui/dialog/tracedialog.cpp:661 msgid "" "Stack scans on top of one another (no gaps) instead of tiling (usually with " "gaps)" msgstr "" -"Empilhe os traços uma sobre a outra (sem brechas) ao invés de mantê-las " -"(usualmente com aberturas)" +"Empilhar passagens umas sobre as outras (sem aberturas) ao invés de lado a " +"lado (normalmente com aberturas)" #: ../src/ui/dialog/tracedialog.cpp:665 -#, fuzzy msgid "Remo_ve background" -msgstr "Remover fundo" +msgstr "Remo_ver fundo" #. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan #: ../src/ui/dialog/tracedialog.cpp:670 msgid "Remove bottom (background) layer when done" -msgstr "Remova o plano de fundo (camada) quando acabar" +msgstr "Remover a camada de fundo ao terminar" #: ../src/ui/dialog/tracedialog.cpp:675 msgid "Multiple scans: creates a group of paths" -msgstr "Múltiplas buscas: criar um grupo de caminhos" +msgstr "Várias passagens: cria grupos de caminhos" #. # end multiple scan #. ## end mode page #: ../src/ui/dialog/tracedialog.cpp:684 -#, fuzzy msgid "_Mode" -msgstr "Modo" +msgstr "_Modo" #. ## begin option page #. # potrace parameters #: ../src/ui/dialog/tracedialog.cpp:690 -#, fuzzy msgid "Suppress _speckles" -msgstr "Suprimir pequenos pontos" +msgstr "Eliminar _pontos pequenos" #: ../src/ui/dialog/tracedialog.cpp:692 msgid "Ignore small spots (speckles) in the bitmap" -msgstr "Ignorar os pequenos pontos do bitmap" +msgstr "Ignorar pontos pequenos na imagem bitmap" #: ../src/ui/dialog/tracedialog.cpp:700 msgid "Speckles of up to this many pixels will be suppressed" -msgstr "Pequenos pontos de muitos pixels serão suprimidos" +msgstr "Os pontos pequenos até esta quantidade serão eliminados" #: ../src/ui/dialog/tracedialog.cpp:703 -#, fuzzy msgid "S_ize:" -msgstr "Tamanho:" +msgstr "_Tamanho:" #: ../src/ui/dialog/tracedialog.cpp:708 -#, fuzzy msgid "Smooth _corners" -msgstr "Suavizar cantos" +msgstr "Suavizar _cantos" #: ../src/ui/dialog/tracedialog.cpp:710 msgid "Smooth out sharp corners of the trace" @@ -23819,45 +22412,45 @@ msgid "Increase this to smooth corners more" msgstr "Aumentar isso para suavizar mais os cantos" #: ../src/ui/dialog/tracedialog.cpp:726 -#, fuzzy msgid "Optimize p_aths" -msgstr "Otimize as formas" +msgstr "Otimizar c_aminhos" #: ../src/ui/dialog/tracedialog.cpp:729 msgid "Try to optimize paths by joining adjacent Bezier curve segments" msgstr "" -"Tente otimizar as formas unindo os segmentos adjacentes através de curvas " -"Bezier" +"Tentar otimizar os caminhos unindo os segmentos de curvas Bézier adjacentes" #: ../src/ui/dialog/tracedialog.cpp:737 msgid "" "Increase this to reduce the number of nodes in the trace by more aggressive " "optimization" msgstr "" -"Aumente isto pra reduzir o número de nós no traço através de uma otimização " -"mais agressiva" +"Aumentar isto para reduzir o número de nós na vetorização através de uma " +"otimização mais agressiva" #: ../src/ui/dialog/tracedialog.cpp:739 -#, fuzzy msgid "To_lerance:" -msgstr "Tolerância:" +msgstr "To_lerância:" #. ## end option page #: ../src/ui/dialog/tracedialog.cpp:753 -#, fuzzy msgid "O_ptions" -msgstr "Opções" +msgstr "O_pções" #. ### credits #: ../src/ui/dialog/tracedialog.cpp:757 -#, fuzzy msgid "" "Inkscape bitmap tracing\n" "is based on Potrace,\n" "created by Peter Selinger\n" "\n" "http://potrace.sourceforge.net" -msgstr "Agradecimentos a Peter Selinger, http://potrace.sourceforge.net" +msgstr "" +"A vetorização de imagens bitmap\n" +"do Inkscape é baseado no Potrace,\n" +"criado por Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" #: ../src/ui/dialog/tracedialog.cpp:760 msgid "Credits" @@ -23866,40 +22459,36 @@ msgstr "Créditos" #. #### begin right panel #. ## SIOX #: ../src/ui/dialog/tracedialog.cpp:774 -#, fuzzy msgid "SIOX _foreground selection" -msgstr "SIOX sobre a selecção" +msgstr "Seleção do fundo SIOX" #: ../src/ui/dialog/tracedialog.cpp:777 msgid "Cover the area you want to select as the foreground" -msgstr "Cubra a área que deseja seleccionar como sendo o primeiro plano" +msgstr "Cobre a área que deseja selecionar como sendo o primeiro plano" #: ../src/ui/dialog/tracedialog.cpp:782 -#, fuzzy msgid "Live Preview" -msgstr "Pré-Visualizar Ao Vivo" +msgstr "Prever" #: ../src/ui/dialog/tracedialog.cpp:788 -#, fuzzy msgid "_Update" -msgstr "Actualizar" +msgstr "_Atualizar" #. I guess it's correct to call the "intermediate bitmap" a preview of the trace #: ../src/ui/dialog/tracedialog.cpp:796 msgid "" "Preview the intermediate bitmap with the current settings, without actual " "tracing" -msgstr "Pré-visualizar o resultado, sem vectorizar" +msgstr "Prever o resultado com a configuração atual, sem vetorizar" #: ../src/ui/dialog/tracedialog.cpp:800 msgid "Preview" -msgstr "Pré-visualizar" +msgstr "Prever" #: ../src/ui/dialog/transformation.cpp:69 #: ../src/ui/dialog/transformation.cpp:79 -#, fuzzy msgid "_Horizontal:" -msgstr "_Horizontal" +msgstr "_Horizontal:" #: ../src/ui/dialog/transformation.cpp:69 msgid "Horizontal displacement (relative) or position (absolute)" @@ -23907,49 +22496,45 @@ msgstr "Deslocamento horizontal (relativo) ou posição (absoluto)" #: ../src/ui/dialog/transformation.cpp:71 #: ../src/ui/dialog/transformation.cpp:81 -#, fuzzy msgid "_Vertical:" -msgstr "_Vertical" +msgstr "_Vertical:" #: ../src/ui/dialog/transformation.cpp:71 msgid "Vertical displacement (relative) or position (absolute)" msgstr "Deslocamento vertical (relativo) ou posição (absoluto)" #: ../src/ui/dialog/transformation.cpp:73 -#, fuzzy msgid "Horizontal size (absolute or percentage of current)" -msgstr "Aumento do tamanho horizontal (absoluto ou percentagem)" +msgstr "Tamanho horizontal (absoluto ou percentagem do atual)" #: ../src/ui/dialog/transformation.cpp:75 -#, fuzzy msgid "Vertical size (absolute or percentage of current)" -msgstr "Aumento do tamanho vertical (absoluto ou percentagem)" +msgstr "Tamanho vertical (absoluto ou percentagem do atual)" #: ../src/ui/dialog/transformation.cpp:77 -#, fuzzy msgid "A_ngle:" -msgstr "Ân_gulo" +msgstr "Â_ngulo:" #: ../src/ui/dialog/transformation.cpp:77 #: ../src/ui/dialog/transformation.cpp:1102 msgid "Rotation angle (positive = counterclockwise)" -msgstr "Ângulo de rotação (sentido positivo anti-horário)" +msgstr "Ângulo de rotação (positivo = anti-horário)" #: ../src/ui/dialog/transformation.cpp:79 msgid "" "Horizontal skew angle (positive = counterclockwise), or absolute " "displacement, or percentage displacement" msgstr "" -"Ângulo de enviesamento horizontal (positivo = anti-horário), ou deslocamento " -"absoluto, ou deslocamento percentual" +"Ângulo de inclinação horizontal (positivo = anti-horário), ou deslocamento " +"absoluto, ou deslocamento em percentagem" #: ../src/ui/dialog/transformation.cpp:81 msgid "" "Vertical skew angle (positive = counterclockwise), or absolute displacement, " "or percentage displacement" msgstr "" -"Ângulo de enviesamento vertical (positivo = anti-horário), ou deslocamento " -"absoluto, ou deslocamento percentual" +"Ângulo da inclinação vertical (positivo = anti-horário), ou deslocamento " +"absoluto, ou deslocamento em percentagem" #: ../src/ui/dialog/transformation.cpp:84 msgid "Transformation matrix element A" @@ -23977,56 +22562,55 @@ msgstr "Matriz de transformação do elemento F" #: ../src/ui/dialog/transformation.cpp:94 msgid "Rela_tive move" -msgstr "Movimento relativo" +msgstr "_Movimento relativo" #: ../src/ui/dialog/transformation.cpp:94 msgid "" "Add the specified relative displacement to the current position; otherwise, " "edit the current absolute position directly" msgstr "" -"Adicionar a especificação relativa do deslocamento à posição actual; se não, " -"editar a posição absoluta actual diretamente" +"Adicionar a especificação relativa do deslocamento à posição atual; se não, " +"editar a posição absoluta atual diretamente" #: ../src/ui/dialog/transformation.cpp:95 -#, fuzzy msgid "_Scale proportionally" -msgstr "Escala proporcional" +msgstr "_Dimensionar proporcionalmente" #: ../src/ui/dialog/transformation.cpp:95 msgid "Preserve the width/height ratio of the scaled objects" -msgstr "Preserve o relação largura/altura da escala dos objectos" +msgstr "Preservar a relação largura/altura dos objetos redimensionados" #: ../src/ui/dialog/transformation.cpp:96 msgid "Apply to each _object separately" -msgstr "Aplicar a cada _objecto separado" +msgstr "Aplicar a cada _objeto separadamente" #: ../src/ui/dialog/transformation.cpp:96 msgid "" "Apply the scale/rotate/skew to each selected object separately; otherwise, " "transform the selection as a whole" msgstr "" -"Aplicar o tamanho/rotação/enviesamento a cada objecto seleccionado separado; " -"se não, transformar a selecção ao todo " +"Aplicar a dimensão/rotação/inclinação a cada objeto selecionado " +"separadamente; caso contrário, transformar a seleção como um todo" #: ../src/ui/dialog/transformation.cpp:97 msgid "Edit c_urrent matrix" -msgstr "Editar matriz _actual" +msgstr "Editar matriz _atual" #: ../src/ui/dialog/transformation.cpp:97 msgid "" "Edit the current transform= matrix; otherwise, post-multiply transform= by " "this matrix" msgstr "" -"Editar a transformação actual= matriz; senão, transformação pós-" -"multiplicação= por esta matriz" +"Editar a transformação atual da matriz; senão, pós-multiplicar a " +"transformação atual por esta matriz" #: ../src/ui/dialog/transformation.cpp:110 msgid "_Scale" -msgstr "_Escala" +msgstr "_Dimensionar" #: ../src/ui/dialog/transformation.cpp:113 msgid "_Rotate" -msgstr "_Girar" +msgstr "_Rodar" #: ../src/ui/dialog/transformation.cpp:116 msgid "Ske_w" @@ -24038,21 +22622,19 @@ msgstr "Matri_z" #: ../src/ui/dialog/transformation.cpp:143 msgid "Reset the values on the current tab to defaults" -msgstr "Reinicie os valores da tabela actual para os valores padrão" +msgstr "Repor os valores padrão da tabela atual" #: ../src/ui/dialog/transformation.cpp:150 msgid "Apply transformation to selection" -msgstr "Aplicar transformação à selecção" +msgstr "Aplicar transformação à seleção" #: ../src/ui/dialog/transformation.cpp:326 -#, fuzzy msgid "Rotate in a counterclockwise direction" -msgstr "Girar no sentido anti-horário" +msgstr "Rodar no sentido anti-horário" #: ../src/ui/dialog/transformation.cpp:332 -#, fuzzy msgid "Rotate in a clockwise direction" -msgstr "Girar no sentido horário" +msgstr "Rodar no sentido horário" #: ../src/ui/dialog/transformation.cpp:905 #: ../src/ui/dialog/transformation.cpp:916 @@ -24062,20 +22644,19 @@ msgstr "Girar no sentido horário" #: ../src/ui/dialog/transformation.cpp:970 #: ../src/ui/dialog/transformation.cpp:994 msgid "Transform matrix is singular, not used." -msgstr "" +msgstr "A matriz de transformação é singular, não utilizada." #: ../src/ui/dialog/transformation.cpp:1010 msgid "Edit transformation matrix" msgstr "Editar matriz de transformação" #: ../src/ui/dialog/transformation.cpp:1109 -#, fuzzy msgid "Rotation angle (positive = clockwise)" -msgstr "Ângulo de rotação (sentido positivo anti-horário)" +msgstr "Ângulo de rotação (positivo = sentido horário)" #: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:126 msgid "New element node" -msgstr "Novo nó elementar" +msgstr "Novo nó de elemento" #: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:132 msgid "New text node" @@ -24083,7 +22664,7 @@ msgstr "Novo nó de texto" #: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:146 msgid "nodeAsInXMLdialogTooltip|Delete node" -msgstr "" +msgstr "Eliminar nó" #: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 #: ../src/ui/dialog/xml-tree.cpp:985 @@ -24097,11 +22678,11 @@ msgstr "Eliminar atributo" #: ../src/ui/dialog/xml-tree.cpp:87 msgid "Set" -msgstr "Ajustar" +msgstr "Aplicar" #: ../src/ui/dialog/xml-tree.cpp:121 msgid "Drag to reorder nodes" -msgstr "Arraste para reordenar os nós" +msgstr "Arrastar para reordenar os nós" #: ../src/ui/dialog/xml-tree.cpp:154 ../src/ui/dialog/xml-tree.cpp:155 #: ../src/ui/dialog/xml-tree.cpp:1143 @@ -24116,7 +22697,7 @@ msgstr "Indentar nó" #: ../src/ui/dialog/xml-tree.cpp:168 ../src/ui/dialog/xml-tree.cpp:169 #: ../src/ui/dialog/xml-tree.cpp:1072 msgid "Raise node" -msgstr "Levantar nó" +msgstr "Subir nó" #: ../src/ui/dialog/xml-tree.cpp:175 ../src/ui/dialog/xml-tree.cpp:176 #: ../src/ui/dialog/xml-tree.cpp:1090 @@ -24133,11 +22714,11 @@ msgstr "Valor do atributo" #: ../src/ui/dialog/xml-tree.cpp:319 msgid "Click to select nodes, drag to rearrange." -msgstr "Clique para selecionar nós, arraste para rearranjar." +msgstr "Clicar para selecionar nós, arrastar para organizar." #: ../src/ui/dialog/xml-tree.cpp:330 msgid "Click attribute to edit." -msgstr "Clique sobre o atributo para editá-lo." +msgstr "Clicar sobre o atributo para editá-lo." #: ../src/ui/dialog/xml-tree.cpp:334 #, c-format @@ -24145,12 +22726,11 @@ msgid "" "Attribute %s selected. Press Ctrl+Enter when done editing to " "commit changes." msgstr "" -"Atributo %s seleccionado. Pressione Ctrl+Enter ao terminar a " -"edição para aplicar as mudanças." +"Atributo %s selecionado. Ctrl+Enter para aplicar as alterações." #: ../src/ui/dialog/xml-tree.cpp:574 msgid "Drag XML subtree" -msgstr "Arrastar subárvore XML" +msgstr "Arrastar sub-árvore XML" #: ../src/ui/dialog/xml-tree.cpp:876 msgid "New element node..." @@ -24162,7 +22742,7 @@ msgstr "Cancelar" #: ../src/ui/dialog/xml-tree.cpp:951 msgid "Create new element node" -msgstr "Criar novo elemento de nó" +msgstr "Criar novo nó de elemento" #: ../src/ui/dialog/xml-tree.cpp:967 msgid "Create new text node" @@ -24170,42 +22750,38 @@ msgstr "Criar novo nó de texto" #: ../src/ui/dialog/xml-tree.cpp:1002 msgid "nodeAsInXMLinHistoryDialog|Delete node" -msgstr "" +msgstr "Eliminar nó" #: ../src/ui/dialog/xml-tree.cpp:1046 msgid "Change attribute" -msgstr "Ajustar atributo" +msgstr "Alterar atributo" #: ../src/ui/interface.cpp:763 -#, fuzzy msgctxt "Interface setup" msgid "Default" -msgstr "Padrão" +msgstr "Disposição da Interface Padrão" #: ../src/ui/interface.cpp:763 -#, fuzzy msgid "Default interface setup" -msgstr "Padrões" +msgstr "Configuração padrão da interface" #: ../src/ui/interface.cpp:764 -#, fuzzy msgctxt "Interface setup" msgid "Custom" -msgstr "_Personalizado" +msgstr "Disposição da Interface Personalizada" #: ../src/ui/interface.cpp:764 msgid "Setup for custom task" -msgstr "" +msgstr "Configuração para tarefa personalizada" #: ../src/ui/interface.cpp:765 -#, fuzzy msgctxt "Interface setup" msgid "Wide" -msgstr "_Ocultar" +msgstr "Disposição da Interface em Ecrãs Largos" #: ../src/ui/interface.cpp:765 msgid "Setup for widescreen work" -msgstr "" +msgstr "Configuração para ecrâs panorâmicos" #: ../src/ui/interface.cpp:875 #, c-format @@ -24214,7 +22790,7 @@ msgstr "Verbo \"%s\" Desconhecido" #: ../src/ui/interface.cpp:910 msgid "Open _Recent" -msgstr "Abrir _Recentes" +msgstr "A_brir Recentes" #: ../src/ui/interface.cpp:1018 ../src/ui/interface.cpp:1104 #: ../src/ui/interface.cpp:1207 ../src/ui/widget/selected-style.cpp:543 @@ -24223,24 +22799,23 @@ msgstr "Soltar cor" #: ../src/ui/interface.cpp:1057 ../src/ui/interface.cpp:1167 msgid "Drop color on gradient" -msgstr "Soltar cor no degradê" +msgstr "Soltar cor no gradiente" #: ../src/ui/interface.cpp:1220 msgid "Could not parse SVG data" -msgstr "Não foi possível interpretar os dados do SVG" +msgstr "Não foi possível processar os dados do SVG" #: ../src/ui/interface.cpp:1259 msgid "Drop SVG" msgstr "Soltar SVG" #: ../src/ui/interface.cpp:1272 -#, fuzzy msgid "Drop Symbol" -msgstr "Soltar cor" +msgstr "Soltar Símbolo" #: ../src/ui/interface.cpp:1303 msgid "Drop bitmap image" -msgstr "Soltar imagem Bitmap" +msgstr "Soltar imagem bitmap" #: ../src/ui/interface.cpp:1395 #, c-format @@ -24250,10 +22825,11 @@ msgid "" "\n" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -"Um ficheiro de nome \"%s\" já existe. " -"Deseja substituí-lo?\n" +"Já existe um ficheiro com o nome \"%s" +"\". Quer substituí-lo?\n" "\n" -"O ficheiro já existe em \"%s\". Substituí-lo irá sobrescrever o seu conteudo." +"O ficheiro já existe em \"%s\". Substituí-lo irá gravar por cima do " +"existente." #: ../src/ui/interface.cpp:1402 ../share/extensions/web-set-att.inx.h:21 #: ../share/extensions/web-transmit-att.inx.h:19 @@ -24266,100 +22842,86 @@ msgstr "Ir para o pai" #. TRANSLATORS: #%1 is the id of the group e.g. , not a number. #: ../src/ui/interface.cpp:1514 -#, fuzzy msgid "Enter group #%1" -msgstr "Entrar grupo #%s" +msgstr "Introduzir grupo #%1" #. Pop selection out of group #: ../src/ui/interface.cpp:1528 -#, fuzzy msgid "_Pop selection out of group" -msgstr "A selecção não possui efeito de caminho aplicado." +msgstr "_Destacar seleção do grupo" #. Item dialog #: ../src/ui/interface.cpp:1656 ../src/verbs.cpp:2940 msgid "_Object Properties..." -msgstr "Propriedades do _Objecto" +msgstr "Propriedades do _Objeto..." #: ../src/ui/interface.cpp:1665 msgid "_Select This" msgstr "_Selecionar Isto" #: ../src/ui/interface.cpp:1676 -#, fuzzy msgid "Select Same" -msgstr "Selecionar página:" +msgstr "Selecionar Iguais" #. Select same fill and stroke #: ../src/ui/interface.cpp:1686 -#, fuzzy msgid "Fill and Stroke" -msgstr "_Preenchimento e Traço" +msgstr "Preenchimento e Traço" #. Select same fill color #: ../src/ui/interface.cpp:1693 -#, fuzzy msgid "Fill Color" -msgstr "Cor lisa" +msgstr "Cor do Preenchimento" #. Select same stroke color #: ../src/ui/interface.cpp:1700 -#, fuzzy msgid "Stroke Color" -msgstr "Definir cor do traço" +msgstr "Cor do Traço" #. Select same stroke style #: ../src/ui/interface.cpp:1707 -#, fuzzy msgid "Stroke Style" -msgstr "Estilo de traço" +msgstr "Estilo do Traço" #. Select same stroke style #: ../src/ui/interface.cpp:1714 -#, fuzzy msgid "Object type" -msgstr "Objecto" +msgstr "Tipo de objeto" #. Move to layer #: ../src/ui/interface.cpp:1721 -#, fuzzy msgid "_Move to layer ..." -msgstr "Baixar camada" +msgstr "_Mover para a camada..." #. Create link #: ../src/ui/interface.cpp:1731 -#, fuzzy msgid "Create _Link" -msgstr "_Criar Ligação" +msgstr "Criar _Ligação" #. Release mask #: ../src/ui/interface.cpp:1765 -#, fuzzy msgid "Release Mask" -msgstr "Reverter máscara" +msgstr "Retirar Máscara" #. SSet Clip Group #: ../src/ui/interface.cpp:1776 -#, fuzzy msgid "Create Clip G_roup" -msgstr "Criar Clo_ne" +msgstr "Criar G_rupo de Recorte" #. Set Clip #: ../src/ui/interface.cpp:1783 -#, fuzzy msgid "Set Cl_ip" -msgstr "Desfazer preenchimento" +msgstr "Apl_icar Recorte" #. Release Clip #: ../src/ui/interface.cpp:1794 -#, fuzzy msgid "Release C_lip" -msgstr "_Remover" +msgstr "_Retirar Recorte" #. Group #: ../src/ui/interface.cpp:1805 ../src/verbs.cpp:2561 msgid "_Group" -msgstr "A_grupar" +msgstr "_Agrupar" #: ../src/ui/interface.cpp:1876 msgid "Create link" @@ -24368,18 +22930,17 @@ msgstr "Criar ligação" #. Ungroup #: ../src/ui/interface.cpp:1911 ../src/verbs.cpp:2563 msgid "_Ungroup" -msgstr "Desagr_upar" +msgstr "_Desagrupar" #. Link dialog #: ../src/ui/interface.cpp:1941 -#, fuzzy msgid "Link _Properties..." -msgstr "_Propriedades da Ligação" +msgstr "_Propriedades da Ligação..." #. Select item #: ../src/ui/interface.cpp:1947 msgid "_Follow Link" -msgstr "Se_guir Ligação" +msgstr "_Seguir Ligação" #. Reset transformations #: ../src/ui/interface.cpp:1953 @@ -24387,44 +22948,39 @@ msgid "_Remove Link" msgstr "_Remover Ligação" #: ../src/ui/interface.cpp:1984 -#, fuzzy msgid "Remove link" -msgstr "_Remover Ligação" +msgstr "Remover ligação" #. Image properties #: ../src/ui/interface.cpp:1994 -#, fuzzy msgid "Image _Properties..." -msgstr "_Propriedades da Imagem" +msgstr "_Propriedades da Imagem..." #. Edit externally #: ../src/ui/interface.cpp:2000 -#, fuzzy msgid "Edit Externally..." -msgstr "Editar preenchimento..." +msgstr "Editar com Programa Externo..." #. Trace Bitmap #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) #: ../src/ui/interface.cpp:2009 ../src/verbs.cpp:2628 msgid "_Trace Bitmap..." -msgstr "_Vectorizar Bitmap..." +msgstr "_Vetorizar Imagem Bitmap..." #. Trace Pixel Art #: ../src/ui/interface.cpp:2018 msgid "Trace Pixel Art" -msgstr "" +msgstr "Vetorizar Arte de Píxeis" #: ../src/ui/interface.cpp:2028 -#, fuzzy msgctxt "Context menu" msgid "Embed Image" -msgstr "Embutir imagens" +msgstr "Embutir Imagem" #: ../src/ui/interface.cpp:2039 -#, fuzzy msgctxt "Context menu" msgid "Extract Image..." -msgstr "Extrair Uma Imagem" +msgstr "Extrair Imagem..." #. Item dialog #. Fill and Stroke dialog @@ -24441,14 +22997,14 @@ msgstr "_Texto e Fonte..." #. Spellcheck dialog #: ../src/ui/interface.cpp:2215 ../src/verbs.cpp:2930 msgid "Check Spellin_g..." -msgstr "" +msgstr "Verificar Orto_grafia..." #: ../src/ui/object-edit.cpp:450 msgid "" "Adjust the horizontal rounding radius; with Ctrl to make the " "vertical radius the same" msgstr "" -"Ajustar o raio de arredondamento horizontal; com Ctrl para " +"Ajustar o raio de arredondamento horizontal; com Ctrl para " "fazer o mesmo no raio vertical" #: ../src/ui/object-edit.cpp:455 @@ -24456,17 +23012,16 @@ msgid "" "Adjust the vertical rounding radius; with Ctrl to make the " "horizontal radius the same" msgstr "" -"Ajustar o raio de arredondamento vertical; com Ctrl para fazer " +"Ajustar o raio de arredondamento vertical; com Ctrl para fazer " "o mesmo no raio horizontal" #: ../src/ui/object-edit.cpp:460 ../src/ui/object-edit.cpp:465 -#, fuzzy msgid "" "Adjust the width and height of the rectangle; with Ctrl to " "lock ratio or stretch in one dimension only" msgstr "" -"Ajustar a largura e altura do retângulo; com Ctrlpara Bloquear " -"a proporção ou esticar somente numa dimensão" +"Ajustar a largura e altura do retângulo; com Ctrl para " +"bloquear a proporção ou esticar apenas numa dimensão" #: ../src/ui/object-edit.cpp:712 ../src/ui/object-edit.cpp:716 #: ../src/ui/object-edit.cpp:720 ../src/ui/object-edit.cpp:724 @@ -24484,12 +23039,11 @@ msgid "" "Ctrl to constrain to the directions of edges or diagonals" msgstr "" "Redimensionar caixa ao longo do eixo Z; com Shift na direção X/Y; com " -"Ctrl para as direções dos limites ou diagonais" +"Ctrl para restringir às direções das bordas ou diagonais" #: ../src/ui/object-edit.cpp:744 -#, fuzzy msgid "Move the box in perspective" -msgstr "Mover a caixa em perspectiva." +msgstr "Mover a caixa em perspetiva" #: ../src/ui/object-edit.cpp:983 msgid "Adjust ellipse width, with Ctrl to make circle" @@ -24502,15 +23056,14 @@ msgstr "" "Ajustar a altura da elipse, com Ctrl para formar um círculo" #: ../src/ui/object-edit.cpp:991 -#, fuzzy msgid "" "Position the start point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " "segment" msgstr "" "Posiciona o ponto inicial do arco ou segmento; com Ctrl para " -"observar o ângulo; arraste para dentro da elipse para um arco, " -"para fora para um segmento" +"atrair ao ângulo; arrastar dentro da elipse para um arco; arrastar " +"fora para um segmento" #: ../src/ui/object-edit.cpp:996 msgid "" @@ -24518,16 +23071,16 @@ msgid "" "snap angle; drag inside the ellipse for arc, outside for " "segment" msgstr "" -"Posicionar o ponto final do arco ou segment; com Ctrl para " -"observar o ângulo; arraste para dentro da elipse para um arco, " -"para fora para um segmento" +"Posicionar o ponto final do arco ou segmento; com Ctrl para " +"atrair ao ângulo; arrastar dentro da elipse para um arco; arrastar " +"fora para um segmento" #: ../src/ui/object-edit.cpp:1142 msgid "" "Adjust the tip radius of the star or polygon; with Shift to " "round; with Alt to randomize" msgstr "" -"Ajusta o raio de dica da estrela ou polígono; com Shift para " +"Ajustar a ponta do raio da estrela ou polígono; com Shift para " "arredondar; com Alt para aleatório" #: ../src/ui/object-edit.cpp:1150 @@ -24536,7 +23089,7 @@ msgid "" "rays radial (no skew); with Shift to round; with Alt to " "randomize" msgstr "" -"Ajusta o raio de base da estrela ou polígono; com Ctrl para " +"Ajustar o raio da base da estrela ou polígono; com Ctrl para " "manter os raios das estrelas radiais (nenhuma inclinação); com Shiftpara arredondar; com Alt para aleatório" @@ -24545,49 +23098,44 @@ msgid "" "Roll/unroll the spiral from inside; with Ctrl to snap angle; " "with Alt to converge/diverge" msgstr "" -"Enrolar/Desenrolar a espiral do interior; com Ctrl para " -"agarrar; com Alt para convergir/divergir" +"Enrolar/Desenrolar a espiral do interior; com Ctrl para atrair " +"ao ângulo; com Alt para convergir/divergir" #: ../src/ui/object-edit.cpp:1349 -#, fuzzy msgid "" "Roll/unroll the spiral from outside; with Ctrl to snap angle; " "with Shift to scale/rotate; with Alt to lock radius" msgstr "" -"Enrolar/Desenrolar a espiral do exterior; com Ctrl para " -"agarrar o ângulo; com Shift para dimensionar/girar" +"Enrolar/desenrolar a espiral do exterior; com Ctrl para atrair " +"o ângulo; com Shift para dimensionar/rodar; com Alt para " +"bloquear o raio" #: ../src/ui/object-edit.cpp:1398 msgid "Adjust the offset distance" -msgstr "Ajustar a distância de compensação" +msgstr "Ajustar a distância de deslocação" #: ../src/ui/object-edit.cpp:1435 msgid "Drag to resize the flowed text frame" -msgstr "Arraste para redimensionar a caixa de texto flutuante" +msgstr "Arrastar para redimensionar a moldura do texto fluido" #: ../src/ui/tool/curve-drag-point.cpp:131 msgid "Drag curve" msgstr "Arrastar curva" #: ../src/ui/tool/curve-drag-point.cpp:192 -#, fuzzy msgctxt "Path segment tip" msgid "Shift: drag to open or move BSpline handles" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "Shift: arrastar para abrir ou mover alças B-Spline" #: ../src/ui/tool/curve-drag-point.cpp:196 -#, fuzzy msgctxt "Path segment tip" msgid "Shift: click to toggle segment selection" -msgstr "" -"Shift: clique para selecionar ou remover da selecção, arraste para " -"selecção elástica" +msgstr "Shift: clicar para alternar seleção de segmento" #: ../src/ui/tool/curve-drag-point.cpp:200 -#, fuzzy msgctxt "Path segment tip" msgid "Ctrl+Alt: click to insert a node" -msgstr "Ponto de conexão: clique ou arraste para criar um novo conector" +msgstr "Ctrl+Alt: clicar para inserir um nó" #: ../src/ui/tool/curve-drag-point.cpp:204 msgctxt "Path segment tip" @@ -24595,6 +23143,8 @@ msgid "" "BSpline segment: drag to shape the segment, doubleclick to insert " "node, click to select (more: Shift, Ctrl+Alt)" msgstr "" +"Segmento B-Spline: arrastar para formar o segmento; clicar 2 vezes " +"para inserir nó; clicar para selecionar (mais: Shift, Ctrl+Alt)" #: ../src/ui/tool/curve-drag-point.cpp:209 msgctxt "Path segment tip" @@ -24602,6 +23152,8 @@ msgid "" "Linear segment: drag to convert to a Bezier segment, doubleclick to " "insert node, click to select (more: Shift, Ctrl+Alt)" msgstr "" +"Segmento linear: arrastar para converter num segmento Bézier; clicar " +"2 vezes para inserir nó; clicar para selecionar (mais: Shift, Ctrl+Alt)" #: ../src/ui/tool/curve-drag-point.cpp:213 msgctxt "Path segment tip" @@ -24609,25 +23161,24 @@ msgid "" "Bezier segment: drag to shape the segment, doubleclick to insert " "node, click to select (more: Shift, Ctrl+Alt)" msgstr "" +"Segmento Bézier: arrastar para formar o segmento; clicar 2 vezes para " +"inserir nó; clicar para selecionar (mais: Shift, Ctrl+Alt)" #: ../src/ui/tool/multi-path-manipulator.cpp:315 -#, fuzzy msgid "Retract handles" -msgstr "Retrair alça" +msgstr "Retrair alças" #: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:297 msgid "Change node type" -msgstr "Alterar tipo do nó" +msgstr "Alterar tipo de nó" #: ../src/ui/tool/multi-path-manipulator.cpp:323 -#, fuzzy msgid "Straighten segments" -msgstr "Endireitar Segmentos" +msgstr "Endireitar segmentos" #: ../src/ui/tool/multi-path-manipulator.cpp:325 -#, fuzzy msgid "Make segments curves" -msgstr "Converter segmentos seleccionados em curvas" +msgstr "Curvar segmentos" #: ../src/ui/tool/multi-path-manipulator.cpp:333 #: ../src/ui/tool/multi-path-manipulator.cpp:347 @@ -24635,14 +23186,12 @@ msgid "Add nodes" msgstr "Adicionar nós" #: ../src/ui/tool/multi-path-manipulator.cpp:339 -#, fuzzy msgid "Add extremum nodes" -msgstr "Adicionar nós" +msgstr "Adicionar nós extremos" #: ../src/ui/tool/multi-path-manipulator.cpp:354 -#, fuzzy msgid "Duplicate nodes" -msgstr "Duplicar nó" +msgstr "Duplicar nós" #: ../src/ui/tool/multi-path-manipulator.cpp:417 #: ../src/widgets/node-toolbar.cpp:408 @@ -24651,9 +23200,8 @@ msgstr "Juntar nós" #: ../src/ui/tool/multi-path-manipulator.cpp:424 #: ../src/widgets/node-toolbar.cpp:419 -#, fuzzy msgid "Break nodes" -msgstr "Mover nós" +msgstr "Separar nós" #: ../src/ui/tool/multi-path-manipulator.cpp:431 msgid "Delete nodes" @@ -24673,78 +23221,67 @@ msgstr "Mover nós verticalmente" #: ../src/ui/tool/multi-path-manipulator.cpp:795 #: ../src/ui/tool/multi-path-manipulator.cpp:801 -#, fuzzy msgid "Scale nodes uniformly" -msgstr "Escalar nós" +msgstr "Dimensionar nós proporcionalmente" #: ../src/ui/tool/multi-path-manipulator.cpp:798 msgid "Scale nodes" -msgstr "Escalar nós" +msgstr "Dimensionar nós" #: ../src/ui/tool/multi-path-manipulator.cpp:805 -#, fuzzy msgid "Scale nodes horizontally" -msgstr "Mover nós horizontalmente" +msgstr "Dimensionar nós horizontalmente" #: ../src/ui/tool/multi-path-manipulator.cpp:809 -#, fuzzy msgid "Scale nodes vertically" -msgstr "Mover nós verticalmente" +msgstr "Dimensionar nós verticalmente" #: ../src/ui/tool/multi-path-manipulator.cpp:813 -#, fuzzy msgid "Skew nodes horizontally" -msgstr "Mover nós horizontalmente" +msgstr "Inclinar nós horizontalmente" #: ../src/ui/tool/multi-path-manipulator.cpp:817 -#, fuzzy msgid "Skew nodes vertically" -msgstr "Mover nós verticalmente" +msgstr "Inclinar nós verticalmente" #: ../src/ui/tool/multi-path-manipulator.cpp:821 -#, fuzzy msgid "Flip nodes horizontally" -msgstr "Inverter horizontalmente" +msgstr "Inverter nós horizontalmente" #: ../src/ui/tool/multi-path-manipulator.cpp:824 -#, fuzzy msgid "Flip nodes vertically" -msgstr "Inverter verticalmente" +msgstr "Inverter nós verticalmente" #: ../src/ui/tool/node.cpp:272 -#, fuzzy msgid "Cusp node handle" -msgstr "Mover alça do nó" +msgstr "Alça do nó afiado" #: ../src/ui/tool/node.cpp:273 -#, fuzzy msgid "Smooth node handle" -msgstr "Deslocar alças do nó" +msgstr "Alça do nó suave" #: ../src/ui/tool/node.cpp:274 -#, fuzzy msgid "Symmetric node handle" -msgstr "Deslocar alças do nó" +msgstr "Alça do nó simétrico" #: ../src/ui/tool/node.cpp:275 -#, fuzzy msgid "Auto-smooth node handle" -msgstr "Mover alça do nó" +msgstr "Alça do nó auto-suave" #: ../src/ui/tool/node.cpp:494 msgctxt "Path handle tip" msgid "more: Shift, Ctrl, Alt" -msgstr "" +msgstr "mais: Shift, Ctrl, Alt" #: ../src/ui/tool/node.cpp:496 msgctxt "Path handle tip" msgid "more: Ctrl" -msgstr "" +msgstr "mais: Ctrl" #: ../src/ui/tool/node.cpp:498 msgctxt "Path handle tip" msgid "more: Ctrl, Alt" -msgstr "" +msgstr "mais: Ctrl, Alt" #: ../src/ui/tool/node.cpp:504 #, c-format @@ -24753,6 +23290,8 @@ msgid "" "Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " "increments while rotating both handles" msgstr "" +"Shift+Ctrl+Alt: manter comprimento e atração ao ângulo de rotação em " +"incrementos de %g° ao rodar ambas as alças" #: ../src/ui/tool/node.cpp:509 #, c-format @@ -24760,58 +23299,59 @@ msgctxt "Path handle tip" msgid "" "Ctrl+Alt: preserve length and snap rotation angle to %g° increments" msgstr "" +"Ctrl+Alt: preservar comprimento e atração ao ângulo de rotação em " +"incrementos de %g°" #: ../src/ui/tool/node.cpp:515 -#, fuzzy msgctxt "Path handle tip" msgid "Shift+Alt: preserve handle length and rotate both handles" -msgstr "" -"Shift: muda a selecção de nó, desabilita observação, gira ambas as " -"alças" +msgstr "Shift+Alt: preservar comprimento da alça e rodar ambas as alças" #: ../src/ui/tool/node.cpp:518 msgctxt "Path handle tip" msgid "Alt: preserve handle length while dragging" -msgstr "" +msgstr "Alt: preservar comprimento da alça ao arrastar" #: ../src/ui/tool/node.cpp:525 -#, fuzzy, c-format +#, c-format msgctxt "Path handle tip" msgid "" "Shift+Ctrl: snap rotation angle to %g° increments and rotate both " "handles" msgstr "" -"Shift: muda a selecção de nó, desabilita observação, gira ambas as " -"alças" +"Shift+Ctrl: atrair ao ângulo de rotação em incrementos de %g° e rodar " +"ambas as alças" #: ../src/ui/tool/node.cpp:529 msgctxt "Path handle tip" msgid "Ctrl: Snap handle to steps defined in BSpline Live Path Effect" msgstr "" +"Ctrl: atrair alça aos passos definidos em Efeito no Caminho B-Spline " +"em Tempo Real" #: ../src/ui/tool/node.cpp:532 #, c-format msgctxt "Path handle tip" msgid "Ctrl: snap rotation angle to %g° increments, click to retract" msgstr "" +"Ctrl: atrair ao ângulo de rotação em incrementos de %g°; clicar para " +"retrair" #: ../src/ui/tool/node.cpp:537 -#, fuzzy msgctxt "Path hande tip" msgid "Shift: rotate both handles by the same angle" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "Shift: rodar ambas as alças pelo mesmo ângulo" #: ../src/ui/tool/node.cpp:540 -#, fuzzy msgctxt "Path hande tip" msgid "Shift: move handle" -msgstr "Deslocar alças do nó" +msgstr "Shift: mover alça" #: ../src/ui/tool/node.cpp:547 ../src/ui/tool/node.cpp:551 #, c-format msgctxt "Path handle tip" msgid "Auto node handle: drag to convert to smooth node (%s)" -msgstr "" +msgstr "Alça de nó automática: arrastar para converter em nó suave (%s)" #: ../src/ui/tool/node.cpp:554 #, c-format @@ -24820,50 +23360,48 @@ msgid "" "BSpline node handle: Shift to drag, double click to reset (%s). %g " "power" msgstr "" +"Alça de nó B-Spline: Shift para arrastar; clicar 2 vezes para repor " +"(%s). %g força" #: ../src/ui/tool/node.cpp:574 #, c-format msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" -msgstr "" +msgstr "Mover alça %s, %s; ângulo %.2f°, comprimento %s" #: ../src/ui/tool/node.cpp:1425 -#, fuzzy msgctxt "Path node tip" msgid "Shift: drag out a handle, click to toggle selection" msgstr "" -"Shift: clique para selecionar ou remover da selecção, arraste para " -"selecção elástica" +"Shift: arrastar para fora uma alça; clicar para alternar seleção" #: ../src/ui/tool/node.cpp:1427 -#, fuzzy msgctxt "Path node tip" msgid "Shift: click to toggle selection" -msgstr "" -"Shift: clique para selecionar ou remover da selecção, arraste para " -"selecção elástica" +msgstr "Shift: clicar para alternar seleção" #: ../src/ui/tool/node.cpp:1432 msgctxt "Path node tip" msgid "Ctrl+Alt: move along handle lines, click to delete node" msgstr "" +"Ctrl+Alt: mover ao longo das linhas das alças; clicar para eliminar o " +"nó" #: ../src/ui/tool/node.cpp:1435 msgctxt "Path node tip" msgid "Ctrl: move along axes, click to change node type" -msgstr "" +msgstr "Ctrl: mover ao longo dos eixos; clicar para alterar tipo de nó" #: ../src/ui/tool/node.cpp:1439 -#, fuzzy msgctxt "Path node tip" msgid "Alt: sculpt nodes" -msgstr "Ctrl: agarra o ângulo" +msgstr "Alt: esculpir nós" #: ../src/ui/tool/node.cpp:1448 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" -msgstr "" +msgstr "%s: arrastar para formar o caminho (mais: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1451 #, c-format @@ -24872,6 +23410,8 @@ msgid "" "BSpline node: drag to shape the path (more: Shift, Ctrl, Alt). %g " "power" msgstr "" +"Nó B-Spline: arrastar para formar o caminho (mais: Shift, Ctrl, Alt). " +"%g força" #: ../src/ui/tool/node.cpp:1454 #, c-format @@ -24880,6 +23420,8 @@ msgid "" "%s: drag to shape the path, click to toggle scale/rotation handles " "(more: Shift, Ctrl, Alt)" msgstr "" +"%s: arrastar para formar o caminho, clicar para alternar as alças de " +"escala/rotação (mais: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1458 #, c-format @@ -24888,6 +23430,8 @@ msgid "" "%s: drag to shape the path, click to select only this node (more: " "Shift, Ctrl, Alt)" msgstr "" +"%s: arrastar para formar o caminho, clicar para selecionar apenas " +"este nó (mais: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1461 #, c-format @@ -24896,36 +23440,34 @@ msgid "" "BSpline node: drag to shape the path, click to select only this node " "(more: Shift, Ctrl, Alt). %g power" msgstr "" +"Nó B-Spline: arrastar para formar o caminho, clicar para selecionar " +"apenas este nó (mais: Shift, Ctrl, Alt). %g força" #: ../src/ui/tool/node.cpp:1474 -#, fuzzy, c-format +#, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" -msgstr "Mover nós" +msgstr "Mover nó %s, %s" #: ../src/ui/tool/node.cpp:1485 -#, fuzzy msgid "Symmetric node" -msgstr "simétrico" +msgstr "Nó simétrico" #: ../src/ui/tool/node.cpp:1486 -#, fuzzy msgid "Auto-smooth node" -msgstr "Suavidade" +msgstr "Nó auto-suave" #: ../src/ui/tool/path-manipulator.cpp:296 msgid "Add node" -msgstr "Acrescentar nó" +msgstr "Adicionar nó" #: ../src/ui/tool/path-manipulator.cpp:861 -#, fuzzy msgid "Scale handle" -msgstr "Escalar nós" +msgstr "Dimensionar alça" #: ../src/ui/tool/path-manipulator.cpp:885 -#, fuzzy msgid "Rotate handle" -msgstr "Retrair alça" +msgstr "Rodar alça" #. We need to call MPM's method because it could have been our last node #: ../src/ui/tool/path-manipulator.cpp:1555 ../src/widgets/node-toolbar.cpp:397 @@ -24933,61 +23475,57 @@ msgid "Delete node" msgstr "Eliminar nó" #: ../src/ui/tool/path-manipulator.cpp:1563 -#, fuzzy msgid "Cycle node type" -msgstr "Alterar tipo do nó" +msgstr "Alterar tipo de nó" #: ../src/ui/tool/path-manipulator.cpp:1578 -#, fuzzy msgid "Drag handle" -msgstr "Desenhar Alças" +msgstr "Arrastar alça" #: ../src/ui/tool/path-manipulator.cpp:1587 msgid "Retract handle" msgstr "Retrair alça" #: ../src/ui/tool/transform-handle-set.cpp:203 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift+Ctrl: scale uniformly about the rotation center" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "" +"Shift+Ctrl: redimensionar proporcionalmente à volta do centro de " +"rotação" #: ../src/ui/tool/transform-handle-set.cpp:205 -#, fuzzy msgctxt "Transform handle tip" msgid "Ctrl: scale uniformly" -msgstr "Ctrl: agarra o ângulo" +msgstr "Ctrl: redimensionar proporcionalmente" #: ../src/ui/tool/transform-handle-set.cpp:210 -#, fuzzy msgctxt "Transform handle tip" msgid "" "Shift+Alt: scale using an integer ratio about the rotation center" -msgstr "Shift: desenhar o degradê em redor do ponto inicial" +msgstr "" +"Shift+Alt: redimensionar utilizando um rácio de número inteiro à " +"volta do centro de rotação" #: ../src/ui/tool/transform-handle-set.cpp:212 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift: scale from the rotation center" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "Shift: redimensionar a partir do centro de rotação" #: ../src/ui/tool/transform-handle-set.cpp:215 -#, fuzzy msgctxt "Transform handle tip" msgid "Alt: scale using an integer ratio" -msgstr "Alt: trava o raio da espiral" +msgstr "Alt: redimensionar utilizando um rácio de número inteiro" #: ../src/ui/tool/transform-handle-set.cpp:217 -#, fuzzy msgctxt "Transform handle tip" msgid "Scale handle: drag to scale the selection" -msgstr "Nenhum caminho para reverter na selecção." +msgstr "Alça de redimensionar: arrastar para redimensionar a seleção" #: ../src/ui/tool/transform-handle-set.cpp:222 #, c-format msgctxt "Transform handle tip" msgid "Scale by %.2f%% x %.2f%%" -msgstr "" +msgstr "Redimensionar por %.2f%% x %.2f%%" #: ../src/ui/tool/transform-handle-set.cpp:449 #, c-format @@ -24996,18 +23534,19 @@ msgid "" "Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " "increments" msgstr "" +"Shift+Ctrl: rodar à volta do canto oposto e atração ao ângulo em " +"incrementos de %f°" #: ../src/ui/tool/transform-handle-set.cpp:452 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift: rotate around the opposite corner" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "Shift: rodar à volta do canto oposto" #: ../src/ui/tool/transform-handle-set.cpp:456 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Ctrl: snap angle to %f° increments" -msgstr "Ctrl: agarra o ângulo" +msgstr "Ctrl: atração ao ângulo em incrementos de %f°" #: ../src/ui/tool/transform-handle-set.cpp:458 msgctxt "Transform handle tip" @@ -25015,13 +23554,15 @@ msgid "" "Rotation handle: drag to rotate the selection around the rotation " "center" msgstr "" +"Alça de rotação: arrastar para rodar a seleção à volta do centro de " +"rotação" #. event #: ../src/ui/tool/transform-handle-set.cpp:463 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Rotate by %.2f°" -msgstr "Girar por pixels" +msgstr "Rodar %.2f°" #: ../src/ui/tool/transform-handle-set.cpp:588 #, c-format @@ -25030,172 +23571,174 @@ msgid "" "Shift+Ctrl: skew about the rotation center with snapping to %f° " "increments" msgstr "" +"Shift+Ctrl: inclinar à volta do centro de rotação com atração em " +"incrementos de %f°" #: ../src/ui/tool/transform-handle-set.cpp:591 -#, fuzzy msgctxt "Transform handle tip" msgid "Shift: skew about the rotation center" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "Shift: inclinar à volta do centro de rotação" #: ../src/ui/tool/transform-handle-set.cpp:595 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Ctrl: snap skew angle to %f° increments" -msgstr "Ctrl: agarra o ângulo" +msgstr "Ctrl: atrair ao ângulo de inclinação em incrementos de %f°" #: ../src/ui/tool/transform-handle-set.cpp:598 msgctxt "Transform handle tip" msgid "" "Skew handle: drag to skew (shear) selection about the opposite handle" msgstr "" +"Alça de distorção: arrastar para inclinar a seleção sobre a alça " +"oposta" #: ../src/ui/tool/transform-handle-set.cpp:604 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Skew horizontally by %.2f°" -msgstr "Mover horizontalmente em pixels" +msgstr "Inclinar horizontalmente %.2f°" #: ../src/ui/tool/transform-handle-set.cpp:607 -#, fuzzy, c-format +#, c-format msgctxt "Transform handle tip" msgid "Skew vertically by %.2f°" -msgstr "Mover verticalmente em pixels" +msgstr "Inclinar verticalmente %.2f°" #: ../src/ui/tool/transform-handle-set.cpp:666 msgctxt "Transform handle tip" msgid "Rotation center: drag to change the origin of transforms" msgstr "" +"Centro de rotação: arrastar para alterar a origem das transformações" #: ../src/ui/tools-switch.cpp:101 -#, fuzzy msgid "" "Click to Select and Transform objects, Drag to select many " "objects." -msgstr "Clique para selecionar nós, arraste para rearranjar." +msgstr "" +"Clicar para selecionar e transformar objetos; Arrastar para " +"selecionar vários objetos." #: ../src/ui/tools-switch.cpp:102 -#, fuzzy msgid "Modify selected path points (nodes) directly." -msgstr "Simplificar os caminhos seleccionados removendo nós adicionais" +msgstr "Alterar diretamente os pontos (nós)." #: ../src/ui/tools-switch.cpp:103 msgid "To tweak a path by pushing, select it and drag over it." msgstr "" +"Para ajustar um caminho puxando-o, selecioná-lo e arrastar por cima dele." #: ../src/ui/tools-switch.cpp:104 -#, fuzzy msgid "" "Drag, click or click and scroll to spray the selected " "objects." msgstr "" -"Clique ou clique e arraste para fechar e terminar o caminho." +"Arrastar, clicar ou clicar e rodar (botão central do " +"rato) para pulverizar os objetos selecionados." #: ../src/ui/tools-switch.cpp:105 msgid "" "Drag to create a rectangle. Drag controls to round corners and " "resize. Click to select." msgstr "" -"Arraste para criar um retângulo. Arraste os controles para " -"arredondar os cantos e redimensionar. Clique para selecioná-lo." +"Arrastar para criar um retângulo. Arrastar os controladores " +"para arredondar os cantos e redimensionar. Clicar para selecionar." #: ../src/ui/tools-switch.cpp:106 msgid "" "Drag to create a 3D box. Drag controls to resize in " "perspective. Click to select (with Ctrl+Alt for single faces)." msgstr "" -"Arraste para criar uma caixa 3D. Arraste os controles para " -"redimensionar em perspectiva. Clique para selecionar (com Ctrl" -"+Alt para faces únicas)" +"Arrastar para criar uma caixa 3D. Arrastar nós de controlos " +"para redimensionar em perspectiva. Clicar para selecionar. Ctrl+Alt" +"+clicar para selecionar 1 face da caixa 3D." #: ../src/ui/tools-switch.cpp:107 msgid "" "Drag to create an ellipse. Drag controls to make an arc or " "segment. Click to select." msgstr "" -"Arraste para criar uma elipse. Arraste as alças para fazer um " -"arco ou segmento. Clique para selecionar." +"Arrastar para criar uma elipse. Arrastar os controlos para " +"fazer um arco ou segmento. Clicar para selecionar." #: ../src/ui/tools-switch.cpp:108 msgid "" "Drag to create a star. Drag controls to edit the star shape. " "Click to select." msgstr "" -"Arraste para criar uma estrela. Arraste as alças para alterar " -"a forma da estrela. Clique para selecionar." +"Arrastar para criar uma estrela. Arrastar os controlos para " +"editar a forma da estrela. Clicar para selecionar." #: ../src/ui/tools-switch.cpp:109 msgid "" "Drag to create a spiral. Drag controls to edit the spiral " "shape. Click to select." msgstr "" -"Arraste para criar uma espiral. Arraste as alças para alterar " -"a forma da espiral. Clique para selecionar." +"Arrastar para criar uma espiral. Arrastar os controlos para " +"editar a forma da espiral. Clicar para selecionar." #: ../src/ui/tools-switch.cpp:110 -#, fuzzy msgid "" "Drag to create a freehand line. Shift appends to selected " "path, Alt activates sketch mode." msgstr "" -"Arraste para criar uma linha à mão-livre. Comece a desenhar mantendo " -"a tecla Shift precionada para acrescentar ao caminho seleccionado." +"Arrastar para criar uma linha à mão-livre. Shift adiciona ao " +"caminho selecionado. Alt ativa o modo esboço." #: ../src/ui/tools-switch.cpp:111 -#, fuzzy msgid "" "Click or click and drag to start a path; with Shift to " "append to selected path. Ctrl+click to create single dots (straight " "line modes only)." msgstr "" -"Clique ou clique e arraste para iniciar um caminho; com " -"Shift para adicionar ao caminho seleccionado." +"Clicar ou clicar e arrastar para iniciar um caminho; com " +"Shift para adicionar ao caminho selecionado.Ctrl+clicar para " +"criar pontos únicos (apenas nos modos linha direita)." #: ../src/ui/tools-switch.cpp:112 -#, fuzzy msgid "" "Drag to draw a calligraphic stroke; with Ctrl to track a guide " "path. Arrow keys adjust width (left/right) and angle (up/down)." msgstr "" -"Arraste para desenhar uma linha caligráfica; com Ctrl para " -"rastrear uma guia, com Alt para afinar/espessar. As setas " -"ajustam largura (esquerda/direita) e o ângulo (cima/baixo)." +"Arrastar para desenhar uma linha caligráfica; com Ctrl para " +"seguir um caminho de guia. Teclas de setas para ajustar a largura " +"(esquerda/direita) e o ângulo (cima/baixo)." #: ../src/ui/tools-switch.cpp:113 ../src/ui/tools/text-tool.cpp:1583 msgid "" "Click to select or create text, drag to create flowed text; " "then type." msgstr "" -"Clique para selecionar ou criar um texto, arraste para criar " -"uma caixa de texto; e então digite." +"Clicar para selecionar ou criar um texto; arrastar para criar " +"texto fluido; digitar de seguida o texto." #: ../src/ui/tools-switch.cpp:114 msgid "" "Drag or double click to create a gradient on selected objects, " "drag handles to adjust gradients." msgstr "" -"Arraste ou dê um duplo clique para criar um degradê nos " -"objectos seleccionados, arraste as alças para ajustar degradês" +"Arrastar ou clicar 2 vezes para criar um gradiente nos objetos " +"selecionados, arrastar as alças para ajustar os gradientes." #: ../src/ui/tools-switch.cpp:115 -#, fuzzy msgid "" "Drag or double click to create a mesh on selected objects, " "drag handles to adjust meshes." msgstr "" -"Arraste ou dê um duplo clique para criar um degradê nos " -"objectos seleccionados, arraste as alças para ajustar degradês" +"Arrastar ou clicar 2 vezes para criar uma malha nos objetos " +"selecionados, arrastar as alças para ajustar as malhas." #: ../src/ui/tools-switch.cpp:116 msgid "" "Click or drag around an area to zoom in, Shift+click to " "zoom out." msgstr "" -"Clique ou arraste em redor de uma área para ampliá-la. Clique " -"com Shift para reduzi-la." +"Clicar ou arrastar em redor de uma área para aproximar a " +"vista. Shift+clicar para afastar a vista." #: ../src/ui/tools-switch.cpp:117 msgid "Drag to measure the dimensions of objects." -msgstr "" +msgstr "Arrastar para medir a dimensão dos objetos." #: ../src/ui/tools-switch.cpp:118 ../src/ui/tools/dropper-tool.cpp:274 msgid "" @@ -25203,14 +23746,14 @@ msgid "" "average color in area; with Alt to pick inverse color; Ctrl+C " "to copy the color under mouse to clipboard" msgstr "" -"Clique para ajustar a cor de preenchimento. Clique com Shift " -"para ajustar a cor do traço. Clique e arraste para escolher a cor " -"média de uma área. UseCtrl+C para copiar a cor sob o mouse para a " -"área de transferência." +"Clicar para aplicar no preenchimento. Shift+clicar para " +"aplicar a cor no traço. Arrastar para escolher a cor média de uma " +"área. Usar Ctrl+C para copiar a cor sob o rato para a área de " +"transferência." #: ../src/ui/tools-switch.cpp:119 msgid "Click and drag between shapes to create a connector." -msgstr "Clique e arraste entre as formas para criar um conector." +msgstr "Clicar e arrastar entre as formas para criar um conetor." #: ../src/ui/tools-switch.cpp:121 msgid "" @@ -25218,24 +23761,23 @@ msgid "" "fill with the current selection, Ctrl+click to change the clicked " "object's fill and stroke to the current setting." msgstr "" -"Clique para pintar uma área fechada, Shift+clique para unir o " -"novo preenchimento à selecção actual, Ctrl+clique para mudar o " -"preeenchimento e o traço do objecto clicado para as opções atuais." +"Clicar para pintar uma área fechada, Shift+clicar para unir o " +"novo preenchimento à seleção atual, Ctrl+clicar para mudar o " +"preeenchimento e o traço do objeto clicado para as definições atuais." #: ../src/ui/tools-switch.cpp:123 -#, fuzzy msgid "Drag to erase." -msgstr "Ligar em %s" +msgstr "Arrastar para eliminar." #: ../src/ui/tools-switch.cpp:124 msgid "Choose a subtool from the toolbar" -msgstr "" +msgstr "Escolher sub-ferramenta da barra de ferramentas" #: ../src/ui/tools/arc-tool.cpp:242 msgid "" "Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "" -"Ctrl: cria círculo ou elipse de proporção inteira, ajusta o ângulo do " +"Ctrl: cria círculo ou elipse de rácio inteiro, atrai ao ângulo do " "arco/segmento" #: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:278 @@ -25248,7 +23790,7 @@ msgid "" "Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " "to draw around the starting point" msgstr "" -"Elipse: %s × %s (proporção forçada a %d:%d); com Shift " +"Elipse: %s × %s (restringida ao rácio %d:%d); com Shift " "para desenhar em redor do ponto inicial" #: ../src/ui/tools/arc-tool.cpp:414 @@ -25257,102 +23799,102 @@ msgid "" "Ellipse: %s × %s; with Ctrl to make square or integer-" "ratio ellipse; with Shift to draw around the starting point" msgstr "" -"Elipse: %s × %s; com Ctrl para criar elipse de proporção " -"quadrada ou inteira; com Shift para desenhar em redor do ponto inicial" +"Elipse: %s × %s; com Ctrl para criar elipse de rácio " +"quadrado ou inteiro; com Shift para desenhar em redor do ponto inicial" #: ../src/ui/tools/arc-tool.cpp:437 msgid "Create ellipse" msgstr "Criar elipse" +# Translators: PL is short for Perspective Line #: ../src/ui/tools/box3d-tool.cpp:360 ../src/ui/tools/box3d-tool.cpp:367 #: ../src/ui/tools/box3d-tool.cpp:374 ../src/ui/tools/box3d-tool.cpp:381 #: ../src/ui/tools/box3d-tool.cpp:388 ../src/ui/tools/box3d-tool.cpp:395 -#, fuzzy msgid "Change perspective (angle of PLs)" -msgstr "Alterar retângulo" +msgstr "Alterar perspetiva (ângulo das linhas de Perspetiva)" #. status text #: ../src/ui/tools/box3d-tool.cpp:573 msgid "3D Box; with Shift to extrude along the Z axis" -msgstr "" +msgstr "Caixa 3D; com Shift para extrudir ao longo do eixo Z" #: ../src/ui/tools/box3d-tool.cpp:599 -#, fuzzy msgid "Create 3D box" -msgstr "Criar caixas 3D" +msgstr "Criar caixa 3D" #: ../src/ui/tools/calligraphic-tool.cpp:525 msgid "" "Guide path selected; start drawing along the guide with Ctrl" msgstr "" -"Caminho guia seleccionado; desenhar ao longo do guia com Ctrl" +"Caminho guia selecionado; começar a desenhar ao longo da guia com " +"Ctrl" #: ../src/ui/tools/calligraphic-tool.cpp:527 msgid "Select a guide path to track with Ctrl" -msgstr "Seleccione um caminho guia para rastrear com Ctrl" +msgstr "Selecionar um caminho guia para rastrear com Ctrl" #: ../src/ui/tools/calligraphic-tool.cpp:662 msgid "Tracking: connection to guide path lost!" -msgstr "Rastreando: conexão ao caminho guia perdida!" +msgstr "A rastrear: ligação ao caminho guia perdida!" #: ../src/ui/tools/calligraphic-tool.cpp:662 msgid "Tracking a guide path" -msgstr "Rastreando um caminho guia" +msgstr "A rastrear um caminho guia" #: ../src/ui/tools/calligraphic-tool.cpp:665 msgid "Drawing a calligraphic stroke" -msgstr "Traçando uma linha caligráfica" +msgstr "Desenhando uma linha caligráfica" #: ../src/ui/tools/calligraphic-tool.cpp:966 msgid "Draw calligraphic stroke" -msgstr "Desenhar linhas caligráficas" +msgstr "Desenhar linha caligráfica" #: ../src/ui/tools/connector-tool.cpp:489 msgid "Creating new connector" -msgstr "Criar novo conector" +msgstr "Criar novo conetor" #: ../src/ui/tools/connector-tool.cpp:730 msgid "Connector endpoint drag cancelled." -msgstr "Arrasto de ponto final de conector cancelado." +msgstr "Arrasto de ponto final de conetor cancelado." #: ../src/ui/tools/connector-tool.cpp:773 msgid "Reroute connector" -msgstr "Redefinir conector" +msgstr "Redefinir conetor" #: ../src/ui/tools/connector-tool.cpp:926 msgid "Create connector" -msgstr "Criar conector" +msgstr "Criar conetor" #: ../src/ui/tools/connector-tool.cpp:943 msgid "Finishing connector" -msgstr "Finalizando conector" +msgstr "Criação de conetor terminada" #: ../src/ui/tools/connector-tool.cpp:1181 msgid "Connector endpoint: drag to reroute or connect to new shapes" msgstr "" -"Ponto final do conector: arraste para redefinir ou conectar a novas " +"Ponto final do conetor: arrastar para redefinir ou conetar a novas " "formas" #: ../src/ui/tools/connector-tool.cpp:1324 msgid "Select at least one non-connector object." -msgstr "Seleccione pelo menos um objecto que não seja conector." +msgstr "Selecione pelo menos um objeto que não seja conetor." #: ../src/ui/tools/connector-tool.cpp:1329 #: ../src/widgets/connector-toolbar.cpp:308 msgid "Make connectors avoid selected objects" -msgstr "Fazer com que os conectores evitem os objectos seleccionados" +msgstr "Fazer com que os conetores evitem os objetos selecionados" #: ../src/ui/tools/connector-tool.cpp:1330 #: ../src/widgets/connector-toolbar.cpp:318 msgid "Make connectors ignore selected objects" -msgstr "Fazer com que os conectores ignorem os objectos seleccionados" +msgstr "Fazer com que os conetores ignorem os objetos selecionados" #. alpha of color under cursor, to show in the statusbar #. locale-sensitive printf is OK, since this goes to the UI, not into SVG #: ../src/ui/tools/dropper-tool.cpp:270 #, c-format msgid " alpha %.3g" -msgstr " alfa %.3g" +msgstr " transparência %.3g" #. where the color is picked, to show in the statusbar #: ../src/ui/tools/dropper-tool.cpp:272 @@ -25362,76 +23904,69 @@ msgstr ", médio com raio %d" #: ../src/ui/tools/dropper-tool.cpp:272 msgid " under cursor" -msgstr " sob cursor" +msgstr " debaixo do cursor" #. message, to show in the statusbar #: ../src/ui/tools/dropper-tool.cpp:274 msgid "Release mouse to set color." -msgstr "Libere o mouse para ajustar a cor." +msgstr "Liberar o rato para definir a cor." #: ../src/ui/tools/dropper-tool.cpp:322 msgid "Set picked color" -msgstr "Ajustar a cor escolhida" +msgstr "Capturar cor" #: ../src/ui/tools/eraser-tool.cpp:436 -#, fuzzy msgid "Drawing an eraser stroke" -msgstr "Traçando uma linha caligráfica" +msgstr "Desenhando uma linha de borracha" #: ../src/ui/tools/eraser-tool.cpp:797 -#, fuzzy msgid "Draw eraser stroke" -msgstr "Desenhar linhas caligráficas" +msgstr "Desenhar linha de borracha" #: ../src/ui/tools/flood-tool.cpp:90 msgid "Visible Colors" msgstr "Cores Visíveis" #: ../src/ui/tools/flood-tool.cpp:102 -#, fuzzy msgctxt "Flood autogap" msgid "None" msgstr "Nenhum" #: ../src/ui/tools/flood-tool.cpp:103 -#, fuzzy msgctxt "Flood autogap" msgid "Small" msgstr "Pequeno" #: ../src/ui/tools/flood-tool.cpp:104 -#, fuzzy msgctxt "Flood autogap" msgid "Medium" msgstr "Médio" #: ../src/ui/tools/flood-tool.cpp:105 -#, fuzzy msgctxt "Flood autogap" msgid "Large" msgstr "Grande" #: ../src/ui/tools/flood-tool.cpp:415 msgid "Too much inset, the result is empty." -msgstr "Muita inserção, o resultado é vazio." +msgstr "Demasiada inserção, o resultado é vazio." #: ../src/ui/tools/flood-tool.cpp:456 -#, fuzzy, c-format +#, c-format msgid "" "Area filled, path with %d node created and unioned with selection." msgid_plural "" "Area filled, path with %d nodes created and unioned with selection." -msgstr[0] "" -"Ãrea preenchida, caminho com %d nós criado e unido à selecção." +msgstr[0] "Ãrea preenchida, caminho com %d nó criado e unido à seleção." msgstr[1] "" -"Ãrea preenchida, caminho com %d nós criado e unido à selecção." +"Ãrea preenchida, caminho com %d nós criados e unidos à seleção." #: ../src/ui/tools/flood-tool.cpp:462 -#, fuzzy, c-format +#, c-format msgid "Area filled, path with %d node created." msgid_plural "Area filled, path with %d nodes created." -msgstr[0] "Ãrea preenchida, caminho com %d nós criado." -msgstr[1] "Ãrea preenchida, caminho com %d nós criado." +msgstr[0] "Ãrea preenchida, caminho com %d nó criado." +msgstr[1] "Ãrea preenchida, caminho com %d nós criados." #: ../src/ui/tools/flood-tool.cpp:730 ../src/ui/tools/flood-tool.cpp:1040 msgid "Area is not bounded, cannot fill." @@ -25442,22 +23977,23 @@ msgid "" "Only the visible part of the bounded area was filled. If you want to " "fill all of the area, undo, zoom out, and fill again." msgstr "" -"Apenas a parte visível da área fechada foi preenchida. Para preencher " -"toda a área, desfazer, reduzir o zoom e preencher novamente." +"Apenas a parte visível da área fechada foi preenchida. S pretende " +"preencher toda a área, desfazer a última ação, reduzir o afastar a vista e " +"preencher novamente." #: ../src/ui/tools/flood-tool.cpp:1063 ../src/ui/tools/flood-tool.cpp:1214 msgid "Fill bounded area" -msgstr "Preencher área fechada" +msgstr "Preencher área fechada com balde de tinta" #: ../src/ui/tools/flood-tool.cpp:1079 msgid "Set style on object" -msgstr "Definir estilo do objecto" +msgstr "Definir estilo no objeto" #: ../src/ui/tools/flood-tool.cpp:1139 msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "" -"Desenhe sobre as áreas para adicionar preenchimento, segure Alt para preencher tudo o que for tocado" +"Desenhar sobre as áreas para adicionar preenchimento, manter premido " +"Alt para preencher tudo o que for tocado" #. We hit green anchor, closing Green-Blue-Red #: ../src/ui/tools/freehand-base.cpp:677 @@ -25474,123 +24010,119 @@ msgid "Draw path" msgstr "Desenhar caminho" #: ../src/ui/tools/freehand-base.cpp:984 -#, fuzzy msgid "Creating single dot" -msgstr "Criar novo caminho" +msgstr "A criar um ponto único" #: ../src/ui/tools/freehand-base.cpp:985 -#, fuzzy msgid "Create single dot" -msgstr "Criar clones ladrilhados" +msgstr "Criar ponto único" #. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message #: ../src/ui/tools/gradient-tool.cpp:121 ../src/ui/tools/mesh-tool.cpp:120 -#, fuzzy, c-format +#, c-format msgid "%s selected" -msgstr "Último seleccionado" +msgstr "%s selecionado" #. TRANSLATORS: Mind the space in front. This is part of a compound message #: ../src/ui/tools/gradient-tool.cpp:123 ../src/ui/tools/gradient-tool.cpp:132 -#, fuzzy, c-format +#, c-format msgid " out of %d gradient handle" msgid_plural " out of %d gradient handles" -msgstr[0] "Mover alça do degradê" -msgstr[1] "Mover alça do degradê" +msgstr[0] " de um total de %d alça de gradiente" +msgstr[1] " de um total de %d alças de gradiente" #. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message #: ../src/ui/tools/gradient-tool.cpp:124 ../src/ui/tools/gradient-tool.cpp:133 #: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:123 #: ../src/ui/tools/mesh-tool.cpp:134 ../src/ui/tools/mesh-tool.cpp:142 -#, fuzzy, c-format +#, c-format msgid " on %d selected object" msgid_plural " on %d selected objects" -msgstr[0] "Exportar em grupo %d objectos seleccionados" -msgstr[1] "Exportar em grupo %d objectos seleccionados" +msgstr[0] " em %d objeto selecionado" +msgstr[1] " em %d objetos selecionados" #. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) #: ../src/ui/tools/gradient-tool.cpp:130 ../src/ui/tools/mesh-tool.cpp:130 -#, fuzzy, c-format +#, c-format msgid "" "One handle merging %d stop (drag with Shift to separate) selected" msgid_plural "" "One handle merging %d stops (drag with Shift to separate) selected" msgstr[0] "" -"Uma alça mesclando %d paradas (arraste com Shift para separar) " -"selecionadas de %d alças de degradê em %d objecto(s) seleccionado(s)" +"Uma alça a fundir %d paragem (arrastar com Shift para separar) " +"selecionada" msgstr[1] "" -"Uma alça mesclando %d paradas (arraste com Shift para separar) " -"selecionadas de %d alças de degradê em %d objecto(s) seleccionado(s)" +"Uma alça a fundir %d paragens (arrastar com Shift para separar) " +"selecionadas" #. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) #: ../src/ui/tools/gradient-tool.cpp:138 -#, fuzzy, c-format +#, c-format msgid "%d gradient handle selected out of %d" msgid_plural "%d gradient handles selected out of %d" -msgstr[0] "" -"%d de %d alças de degradê selecionadas em %d objecto(s) " -"seleccionado(s)" -msgstr[1] "" -"%d de %d alças de degradê selecionadas em %d objecto(s) " -"seleccionado(s)" +msgstr[0] "%d alças de gradiente selecionada de um total de %d" +msgstr[1] "%d alças de gradiente selecionadas de um total de %d" #. TRANSLATORS: The plural refers to number of selected objects #: ../src/ui/tools/gradient-tool.cpp:145 -#, fuzzy, c-format +#, c-format msgid "No gradient handles selected out of %d on %d selected object" msgid_plural "" "No gradient handles selected out of %d on %d selected objects" msgstr[0] "" -"Nenhuma alça de degradê selecionada de %d em %d objecto(s) " -"seleccionado(s)" +"Nenhuma alça de gradiente selecionada de um total de %d em %d objeto " +"selecionado" msgstr[1] "" -"Nenhuma alça de degradê selecionada de %d em %d objecto(s) " -"seleccionado(s)" +"Nenhuma alça de gradiente selecionada de um total de %d em %d objetos " +"selecionados" #: ../src/ui/tools/gradient-tool.cpp:433 msgid "Simplify gradient" -msgstr "Simplificar degradê" +msgstr "Simplificar gradiente" #: ../src/ui/tools/gradient-tool.cpp:510 msgid "Create default gradient" -msgstr "Criar degradê padrão" +msgstr "Criar gradiente padrão" #: ../src/ui/tools/gradient-tool.cpp:569 ../src/ui/tools/mesh-tool.cpp:561 msgid "Draw around handles to select them" -msgstr "Arraste em redor das alças para selecioná-las" +msgstr "Desenhar em redor das alças para selecioná-las" #: ../src/ui/tools/gradient-tool.cpp:690 msgid "Ctrl: snap gradient angle" -msgstr "Ctrl: divide o ângulo do degradê" +msgstr "Ctrl: atrair ao ângulo do gradiente" #: ../src/ui/tools/gradient-tool.cpp:691 msgid "Shift: draw gradient around the starting point" -msgstr "Shift: desenhar o degradê em redor do ponto inicial" +msgstr "Shift: desenhar o gradiente em redor do ponto inicial" #: ../src/ui/tools/gradient-tool.cpp:945 ../src/ui/tools/mesh-tool.cpp:977 #, c-format msgid "Gradient for %d object; with Ctrl to snap angle" msgid_plural "Gradient for %d objects; with Ctrl to snap angle" msgstr[0] "" -"Degradê para objectos %d; use Ctrl para ângulos exatos" +"Gradiente para %d objeto; com Ctrl para atrair ao ângulo" msgstr[1] "" -"Degradês para objectos %d; use Ctrl para ângulos exatos" +"Gradiente para %d objetos; com Ctrl para atrair ao ângulo" #: ../src/ui/tools/gradient-tool.cpp:949 ../src/ui/tools/mesh-tool.cpp:981 msgid "Select objects on which to create gradient." -msgstr "Seleccione objectos onde criar um degradê." +msgstr "Selecionar objetos nos quais criar um gradiente." #: ../src/ui/tools/lpe-tool.cpp:195 msgid "Choose a construction tool from the toolbar." -msgstr "" +msgstr "Escolher uma ferramenta de contrução da barra de ferramentas." #. create the knots #: ../src/ui/tools/measure-tool.cpp:349 msgid "Measure start, Shift+Click for position dialog" msgstr "" +"Início da medição; Shift+Click para abrir a janela de posicionamento" #: ../src/ui/tools/measure-tool.cpp:355 msgid "Measure end, Shift+Click for position dialog" msgstr "" +"Fim da medição; Shift+Click para abrir a janela de posicionamento" #: ../src/ui/tools/measure-tool.cpp:747 ../share/extensions/measure.inx.h:2 msgid "Measure" @@ -25598,106 +24130,95 @@ msgstr "Medida" #: ../src/ui/tools/measure-tool.cpp:752 msgid "Base" -msgstr "" +msgstr "Base" #: ../src/ui/tools/measure-tool.cpp:761 msgid "Add guides from measure tool" -msgstr "" +msgstr "Adicionar guias com base na ferramenta Fita Métrica" #: ../src/ui/tools/measure-tool.cpp:781 -msgid "Add Stored to measure tool" -msgstr "" +msgid "Keep last measure on the canvas, for reference" +msgstr "Manter última medição na área de trabalho, para referência" #: ../src/ui/tools/measure-tool.cpp:801 -#, fuzzy msgid "Convert measure to items" -msgstr "Converter borda do objecto em caminho" +msgstr "Converter medição em objeto permanente" #: ../src/ui/tools/measure-tool.cpp:839 msgid "Add global measure line" -msgstr "" +msgstr "Adicionar cota de medida" #: ../src/ui/tools/measure-tool.cpp:1290 ../src/ui/tools/measure-tool.cpp:1292 -#, fuzzy, c-format +#, c-format msgid "Crossing %lu" -msgstr "Desfocagem gaussiana" +msgstr "A cruzar %lu" #. TRANSLATORS: Mind the space in front. This is part of a compound message #: ../src/ui/tools/mesh-tool.cpp:122 ../src/ui/tools/mesh-tool.cpp:133 -#, fuzzy, c-format +#, c-format msgid " out of %d mesh handle" msgid_plural " out of %d mesh handles" -msgstr[0] "Mover alça do degradê" -msgstr[1] "Mover alça do degradê" +msgstr[0] " de um total de %d alça da malha" +msgstr[1] " de um total de %d alças da malha" #: ../src/ui/tools/mesh-tool.cpp:140 -#, fuzzy, c-format +#, c-format msgid "%d mesh handle selected out of %d" msgid_plural "%d mesh handles selected out of %d" -msgstr[0] "" -"%d de %d alças de degradê selecionadas em %d objecto(s) " -"seleccionado(s)" -msgstr[1] "" -"%d de %d alças de degradê selecionadas em %d objecto(s) " -"seleccionado(s)" +msgstr[0] "%d alça selecionada da malha de um total de %d alças" +msgstr[1] "%d alças selecionadas da malha de um total de %d alças" #. TRANSLATORS: The plural refers to number of selected objects #: ../src/ui/tools/mesh-tool.cpp:147 -#, fuzzy, c-format +#, c-format msgid "No mesh handles selected out of %d on %d selected object" msgid_plural "No mesh handles selected out of %d on %d selected objects" msgstr[0] "" -"Nenhuma alça de degradê selecionada de %d em %d objecto(s) " -"seleccionado(s)" +"Nenhumas alças de gradiente selecionadas de um total de %d alças em " +"%d objeto selecionado" msgstr[1] "" -"Nenhuma alça de degradê selecionada de %d em %d objecto(s) " -"seleccionado(s)" +"Nenhumas alças de gradiente selecionadas de um total de %d alças em " +"%d objetos selecionados" #: ../src/ui/tools/mesh-tool.cpp:311 msgid "Split mesh row/column" -msgstr "" +msgstr "Separar coluna/linha da malha" #: ../src/ui/tools/mesh-tool.cpp:397 msgid "Toggled mesh path type." -msgstr "" +msgstr "ALternado o tipo de caminho da malha." #: ../src/ui/tools/mesh-tool.cpp:401 msgid "Approximated arc for mesh side." -msgstr "" +msgstr "Aproximado o arco para o lado da malha." #: ../src/ui/tools/mesh-tool.cpp:405 msgid "Toggled mesh tensors." -msgstr "" +msgstr "Tensores da malha invertidos." #: ../src/ui/tools/mesh-tool.cpp:409 -#, fuzzy msgid "Smoothed mesh corner color." -msgstr "Suavidade" +msgstr "Cor do canto suave da malha." #: ../src/ui/tools/mesh-tool.cpp:413 -#, fuzzy msgid "Picked mesh corner color." -msgstr "Capturar a tonalidade da cor" +msgstr "Capturada cor do canto da malha." #: ../src/ui/tools/mesh-tool.cpp:489 -#, fuzzy msgid "Create default mesh" -msgstr "Criar degradê padrão" +msgstr "Criar gradiente de malha padrão" #: ../src/ui/tools/mesh-tool.cpp:713 -#, fuzzy msgid "FIXMECtrl: snap mesh angle" -msgstr "Ctrl: agarra o ângulo" +msgstr "CORRIGIRCtrl: atrair ao ângulo da malha" #: ../src/ui/tools/mesh-tool.cpp:714 -#, fuzzy msgid "FIXMEShift: draw mesh around the starting point" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "CORRIGIRShift: desenhar malha em redor do ponto inicial" #: ../src/ui/tools/mesh-tool.cpp:971 -#, fuzzy msgid "Create mesh" -msgstr "Criar degradê padrão" +msgstr "Criar malha" #: ../src/ui/tools/node-tool.cpp:648 msgctxt "Node tool tip" @@ -25705,53 +24226,56 @@ msgid "" "Shift: drag to add nodes to the selection, click to toggle object " "selection" msgstr "" +"Shift: arrastar para adicionar nós à seleção; clicar para alterar a " +"seleção do objeto" #: ../src/ui/tools/node-tool.cpp:652 -#, fuzzy msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection" -msgstr "Shift: desenhar em redor do ponto inicial" +msgstr "Shift: arrastar para adicionar nós à seleção" #: ../src/ui/tools/node-tool.cpp:681 -#, fuzzy, c-format +#, c-format msgid "%u of %u node selected." msgid_plural "%u of %u nodes selected." -msgstr[0] "%i de %i nó seleccionado; %s." -msgstr[1] "%i de %i nós seleccionados; %s." +msgstr[0] "%u de %u nó selecionado." +msgstr[1] "%u de %u nós selecionados." #: ../src/ui/tools/node-tool.cpp:688 -#, fuzzy, c-format +#, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" -msgstr "Criar e ladrilhar os clones da selecção" +msgstr "" +"%s Arrastar para selecionar nós; clicar para editar apenas este objeto " +"(mais: Shift)" #: ../src/ui/tools/node-tool.cpp:694 -#, fuzzy, c-format +#, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" -msgstr "Criar e ladrilhar os clones da selecção" +msgstr "%s Arrastar para selecionar nós; clicar para limpar a seleção" #: ../src/ui/tools/node-tool.cpp:703 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" -msgstr "" +msgstr "Arrastar para selecionar nós; clicar para editar apenas este objeto" #: ../src/ui/tools/node-tool.cpp:706 -#, fuzzy msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" -msgstr "Criar e ladrilhar os clones da selecção" +msgstr "Arrastar para selecionar nós; clicar para limpar a seleção" #: ../src/ui/tools/node-tool.cpp:711 msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "" +"Arrastar para selecionar os objetos a editar; clicar para editar este objeto " +"(mais: Shift)" #: ../src/ui/tools/node-tool.cpp:714 -#, fuzzy msgctxt "Node tool tip" msgid "Drag to select objects to edit" -msgstr "Converte os objectos seleccionados em caminhos" +msgstr "Arrastar para selecionar os objetos a editar" #: ../src/ui/tools/pen-tool.cpp:223 ../src/ui/tools/pencil-tool.cpp:455 msgid "Drawing cancelled" @@ -25759,7 +24283,7 @@ msgstr "Desenho cancelado" #: ../src/ui/tools/pen-tool.cpp:463 ../src/ui/tools/pencil-tool.cpp:196 msgid "Continuing selected path" -msgstr "Continuando o caminho seleccionado" +msgstr "Continuando o caminho selecionado" #: ../src/ui/tools/pen-tool.cpp:473 ../src/ui/tools/pencil-tool.cpp:204 msgid "Creating new path" @@ -25767,72 +24291,75 @@ msgstr "Criar novo caminho" #: ../src/ui/tools/pen-tool.cpp:475 ../src/ui/tools/pencil-tool.cpp:207 msgid "Appending to selected path" -msgstr "Acrescentando ao caminho seleccionado" +msgstr "Acrescentando ao caminho selecionado" #: ../src/ui/tools/pen-tool.cpp:640 msgid "Click or click and drag to close and finish the path." msgstr "" -"Clique ou clique e arraste para fechar e terminar o caminho." +"Clicar ou clicar e arrastar para fechar e terminar o caminho." #: ../src/ui/tools/pen-tool.cpp:642 -#, fuzzy msgid "" "Click or click and drag to close and finish the path. Shift" "+Click make a cusp node" msgstr "" -"Clique ou clique e arraste para fechar e terminar o caminho." +"Clicar ou clicar e arrastar para fechar e terminar o caminho. " +"Shift+clicar para fazer um nó afiado" #: ../src/ui/tools/pen-tool.cpp:654 msgid "" "Click or click and drag to continue the path from this point." msgstr "" -"Clique ou clique e arraste para continuar o caminho a partir " +"Clicar ou clicar e arrastar para continuar o caminho a partir " "deste ponto." #: ../src/ui/tools/pen-tool.cpp:656 -#, fuzzy msgid "" "Click or click and drag to continue the path from this point. " "Shift+Click make a cusp node" msgstr "" -"Clique ou clique e arraste para continuar o caminho a partir " -"deste ponto." +"Clicar ou clicar e arrastar para continuar o caminho a partir " +"deste ponto. Shift+clicar para fazer um nó afiado" #: ../src/ui/tools/pen-tool.cpp:1797 -#, fuzzy, c-format +#, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Ctrl to " "snap angle, Enter or Shift+Enter to finish the path" msgstr "" -"%s: ângulo %3.2f°, distância %s; com Ctrl para observar o " -"ângulo, Enter para terminar o camingo." +"Segmento curvo: ângulo %3.2f°, distância %s; com Ctrl " +"para atrair ao ângulo, Enter ou Shift+Enter para terminar o " +"caminho" #: ../src/ui/tools/pen-tool.cpp:1798 -#, fuzzy, c-format +#, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Ctrl to " "snap angle, Enter or Shift+Enter to finish the path" msgstr "" -"%s: ângulo %3.2f°, distância %s; com Ctrl para observar o " -"ângulo, Enter para terminar o camingo." +"Segmento linha: ângulo %3.2f°, distância %s; com Ctrl " +"para atrair ao ângulo, Enter ou Shift+Enter para terminar o " +"caminho" #: ../src/ui/tools/pen-tool.cpp:1801 -#, fuzzy, c-format +#, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter or Shift+Enter to finish the path" msgstr "" -"%s: ângulo %3.2f°, distância %s; com Ctrl para observar o " -"ângulo, Enter para terminar o camingo." +"Segmento curvo: ângulo %3.2f°, distância %s; com Shift" +"+clicar fazer um nó afiado, Enter ou Shift+Enter para " +"terminar o caminho" #: ../src/ui/tools/pen-tool.cpp:1802 -#, fuzzy, c-format +#, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Shift+Click " "make a cusp node, Enter or Shift+Enter to finish the path" msgstr "" -"%s: ângulo %3.2f°, distância %s; com Ctrl para observar o " -"ângulo, Enter para terminar o camingo." +"Segmento de linha: ângulo %3.2f°, distância %s; com Shift" +"+clicar fazer um nó afiado, Enter ou Shift+Enter para " +"terminar o caminho" #: ../src/ui/tools/pen-tool.cpp:1819 #, c-format @@ -25841,63 +24368,67 @@ msgid "" "angle" msgstr "" "Alça da curva: ângulo %3.2f°, comprimento %s; com Ctrl " -"para observar o ângulo." +"para atrair ao ângulo" #: ../src/ui/tools/pen-tool.cpp:1843 -#, fuzzy, c-format +#, c-format msgid "" "Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" msgstr "" -"%s: ângulo %3.2f°, comprimento %s; com Ctrl para observar " -"o ângulo, com Shift somente para mover esta alça." +"Alça da curva, simétrica: ângulo %3.2f°, comprimento %s; com " +"Ctrl para atrair ao ângulo, com Shift para mover apenas esta " +"alça" #: ../src/ui/tools/pen-tool.cpp:1844 -#, fuzzy, c-format +#, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " "angle, with Shift to move this handle only" msgstr "" -"%s: ângulo %3.2f°, comprimento %s; com Ctrl para observar " -"o ângulo, com Shift somente para mover esta alça." +"Alça da curva: ângulo %3.2f°, comprimento %s; com Ctrl " +"para atrair ao ângulo, com Shift para mover apenas esta alça" #: ../src/ui/tools/pen-tool.cpp:1978 msgid "Drawing finished" -msgstr "Desenho concluído" +msgstr "Desenho terminado" #: ../src/ui/tools/pencil-tool.cpp:308 msgid "Release here to close and finish the path." -msgstr "Solte aqui para fechar e terminar o caminho." +msgstr "Soltar aqui para fechar e terminar o caminho." #: ../src/ui/tools/pencil-tool.cpp:314 msgid "Drawing a freehand path" -msgstr "Desenhar caminhos à mão-livre" +msgstr "Desenhar caminho à mão-livre" #: ../src/ui/tools/pencil-tool.cpp:319 msgid "Drag to continue the path from this point." -msgstr "Arraste para continuar o caminho a partir deste ponto." +msgstr "Arrastar para continuar o caminho a partir deste ponto." #. Write curves to object #: ../src/ui/tools/pencil-tool.cpp:402 msgid "Finishing freehand" -msgstr "Finalizando mão-livre" +msgstr "Desenho à mão-livre terminado" #: ../src/ui/tools/pencil-tool.cpp:504 msgid "" "Sketch mode: holding Alt interpolates between sketched paths. " "Release Alt to finalize." msgstr "" +"Modo esboço: manter Alt premido faz interpolação entre os " +"caminhos esboçados. Libertar Alt para finalizar." #: ../src/ui/tools/pencil-tool.cpp:531 -#, fuzzy msgid "Finishing freehand sketch" -msgstr "Finalizando mão-livre" +msgstr "Esboço à mão-livre terminado" #: ../src/ui/tools/rect-tool.cpp:277 msgid "" "Ctrl: make square or integer-ratio rect, lock a rounded corner " "circular" -msgstr "Ctrl: faz o quadrado ou retângulo Bloquear um canto arredondado" +msgstr "" +"Ctrl: fazer um quadrado ou retângulo de rácio inteiro; manter " +"circular um canto aredondado" #: ../src/ui/tools/rect-tool.cpp:438 #, c-format @@ -25905,26 +24436,26 @@ msgid "" "Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" msgstr "" -"Retângulo: %s × %s (restrito à razão %d:%d); Shift para " -"desenhar em redor do ponto inicial" +"Retângulo: %s × %s (restringido ao rácio %d:%d); com Shift para desenhar em redor do ponto inicial" #: ../src/ui/tools/rect-tool.cpp:441 -#, fuzzy, c-format +#, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " "Shift to draw around the starting point" msgstr "" -"Retângulo: %s × %s (restrito à razão %d:%d); Shift para " -"desenhar em redor do ponto inicial" +"Retângulo: %s × %s (restringido ao rácio 1.618 : 1); com " +"Shift para desenhar em redor do ponto inicial" #: ../src/ui/tools/rect-tool.cpp:443 -#, fuzzy, c-format +#, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " "Shift to draw around the starting point" msgstr "" -"Retângulo: %s × %s (restrito à razão %d:%d); Shift para " -"desenhar em redor do ponto inicial" +"Retângulo: %s × %s (restringido ao rácio 1 : 1.618); com " +"Shift para desenhar em redor do ponto inicial" #: ../src/ui/tools/rect-tool.cpp:447 #, c-format @@ -25933,7 +24464,8 @@ msgid "" "ratio rectangle; with Shift to draw around the starting point" msgstr "" "Retângulo: %s × %s; com Ctrl para fazer um quadrado ou " -"retângulo; Shift para desenhar em redor do ponto inicial" +"retângulo de rácio inteiro; com Shift para desenhar em redor do ponto " +"inicial" #: ../src/ui/tools/rect-tool.cpp:470 msgid "Create rectangle" @@ -25941,16 +24473,15 @@ msgstr "Criar retângulo" #: ../src/ui/tools/select-tool.cpp:156 msgid "Click selection to toggle scale/rotation handles" -msgstr "Clique na selecção para trocar as alças ampliar/girar" +msgstr "Clicar na seleção para alternar entre as alças de redimensionar/rodar" #: ../src/ui/tools/select-tool.cpp:157 -#, fuzzy msgid "" "No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " "or drag around objects to select." msgstr "" -"Nenhum objecto seleccionado. Clique, clique com shift ou arraste em redor " -"dos objectos para selecionar." +"Nenhum objeto selecionado. Clicar, Shift+clicar, Alt+rodar (botão central do " +"rato) por cima dos objetos, ou arrastar à volta dos objetos para selecionar." #: ../src/ui/tools/select-tool.cpp:210 msgid "Move canceled." @@ -25965,149 +24496,149 @@ msgid "" "Draw over objects to select them; release Alt to switch to " "rubberband selection" msgstr "" -"Arraste sobre os objectos para selecioná-los; solte Alt para " -"alternar para a selecção elástica" +"Arrastar sobre os objetos para os selecionar; libertar Alt " +"para mudar para a seleção elástica" #: ../src/ui/tools/select-tool.cpp:640 msgid "" "Drag around objects to select them; press Alt to switch to " "touch selection" msgstr "" -"Arraste em redor dos objectos para selecioná-los; aperte Alt " -"para alternar para a selecção por toque" +"Arrastar em redor dos objetos para os selecionar; pressionar Alt para mudar para a seleção por toque" #: ../src/ui/tools/select-tool.cpp:921 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" -"Ctrl: clique para selecionar em grupos, arraste para mover " +"Ctrl: clicar para selecionar em grupos; arrastar para mover " "horizontalmente/verticalmente" #: ../src/ui/tools/select-tool.cpp:922 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "" -"Shift: clique para selecionar ou remover da selecção, arraste para " -"selecção elástica" +"Shift: clicar para alternar seleção; arrastar para seleção elástica" #: ../src/ui/tools/select-tool.cpp:923 -#, fuzzy msgid "" "Alt: click to select under; scroll mouse-wheel to cycle-select; drag " "to move selected or select by touch" msgstr "" -"Alt: clique para selecionar abaixo, arraste para mover a selecção ou " -"selecionar por toque" +"Alt: clicar para selecionar os de baixo; rodar botão do meio do rato " +"para seleção cíclica; arrastar para mover o selecionado ou selecionar por " +"toque" #: ../src/ui/tools/select-tool.cpp:1131 msgid "Selected object is not a group. Cannot enter." -msgstr "O objecto seleccionado não é um grupo. Não pode entrar." +msgstr "O objeto selecionado não é um grupo. Não pode entrar." #: ../src/ui/tools/spiral-tool.cpp:249 msgid "Ctrl: snap angle" -msgstr "Ctrl: agarra o ângulo" +msgstr "Ctrl: atrair ao ângulo" #: ../src/ui/tools/spiral-tool.cpp:251 msgid "Alt: lock spiral radius" -msgstr "Alt: trava o raio da espiral" +msgstr "Alt: bloqueia o raio da espiral" #: ../src/ui/tools/spiral-tool.cpp:390 #, c-format msgid "" "Spiral: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" -"Espiral: raio %s, ângulo %5g°; com Ctrl para segurar o " +"Espiral: raio %s, ângulo %5g°; com Ctrl para atrair ao " "ângulo" #: ../src/ui/tools/spiral-tool.cpp:411 msgid "Create spiral" -msgstr "Criar espirais" +msgstr "Criar espiral" #: ../src/ui/tools/spray-tool.cpp:214 ../src/ui/tools/tweak-tool.cpp:157 #, c-format msgid "%i object selected" msgid_plural "%i objects selected" -msgstr[0] "%i objecto seleccionado" -msgstr[1] "%i objectos seleccionados" +msgstr[0] "%i objeto selecionado" +msgstr[1] "%i objetos selecionados" #: ../src/ui/tools/spray-tool.cpp:216 ../src/ui/tools/tweak-tool.cpp:159 -#, fuzzy msgid "Nothing selected" -msgstr "Nada foi apagado." +msgstr "Nada selecionado" #: ../src/ui/tools/spray-tool.cpp:221 -#, fuzzy, c-format +#, c-format msgid "" "%s. Drag, click or click and scroll to spray copies of the initial " "selection." -msgstr "Aplicar efeito escolhido à selecção" +msgstr "" +"%s. Arrastar, clicar ou clicar e rodar botão central do rato para pulverizar " +"cópias da seleção inicial." #: ../src/ui/tools/spray-tool.cpp:224 -#, fuzzy, c-format +#, c-format msgid "" "%s. Drag, click or click and scroll to spray clones of the initial " "selection." -msgstr "Criar e ladrilhar os clones da selecção" +msgstr "" +"%s. Arrastar, clicar ou clicar e rodar botão central do rato para pulverizar " +"clones da seleção inicial." #: ../src/ui/tools/spray-tool.cpp:227 -#, fuzzy, c-format +#, c-format msgid "" "%s. Drag, click or click and scroll to spray in a single path of the " "initial selection." -msgstr "Aplicar efeito escolhido à selecção" +msgstr "" +"%s. Arrastar, clicar ou clicar e rodar botão central do rato para pulverizar " +"num só caminho da seleção inicial." #: ../src/ui/tools/spray-tool.cpp:1305 -#, fuzzy msgid "Nothing selected! Select objects to spray." -msgstr "Tornando áspero %d objecto seleccionado" +msgstr "Nada selecionado! Selecionar objetos para pulverizar." #: ../src/ui/tools/spray-tool.cpp:1380 ../src/widgets/spray-toolbar.cpp:360 -#, fuzzy msgid "Spray with copies" -msgstr "Espaço entre cópias:" +msgstr "Pulverizar com cópias" #: ../src/ui/tools/spray-tool.cpp:1384 ../src/widgets/spray-toolbar.cpp:367 -#, fuzzy msgid "Spray with clones" -msgstr "Procurar clones" +msgstr "Pulverizar com clones" #: ../src/ui/tools/spray-tool.cpp:1388 -#, fuzzy msgid "Spray in single path" -msgstr "Criar novo caminho" +msgstr "Pulverizar num único caminho" #: ../src/ui/tools/star-tool.cpp:261 msgid "Ctrl: snap angle; keep rays radial" -msgstr "Ctrl: agarrar o ângulo; preserva os raios radiais" +msgstr "Ctrl: atrair ao ângulo; mantém os raios radiais" #: ../src/ui/tools/star-tool.cpp:407 #, c-format msgid "" "Polygon: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" -"Polígono: raio %s, ângulo %5g°; com Ctrl para segurar o " +"Polígono: raio %s, ângulo %5g°; com Ctrl para atrair ao " "ângulo" #: ../src/ui/tools/star-tool.cpp:408 #, c-format msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" -"Estrela: raio %s, ângulo %5g°; com Ctrl para segurar o " +"Estrela: raio %s, ângulo %5g°; com Ctrl para atrair ao " "ângulo" #: ../src/ui/tools/star-tool.cpp:436 msgid "Create star" -msgstr "Criar estrela" +msgstr "Criar estrela ou polígono" #: ../src/ui/tools/text-tool.cpp:370 msgid "Click to edit the text, drag to select part of the text." msgstr "" -"Clique para editar o texto, arrastar para selecionar parte do " +"Clicar para editar o texto, arrastar para selecionar parte do " "texto." #: ../src/ui/tools/text-tool.cpp:372 msgid "" "Click to edit the flowed text, drag to select part of the text." msgstr "" -"Clique para editar o texto fluido, arrastar para selecionar " +"Clicar para editar o texto fluido, arrastar para selecionar " "parte do texto." #: ../src/ui/tools/text-tool.cpp:426 @@ -26134,35 +24665,35 @@ msgstr "Unicode (Enter para finalizar): " #: ../src/ui/tools/text-tool.cpp:586 #, c-format msgid "Flowed text frame: %s × %s" -msgstr "Caixa de texto: %s × %s" +msgstr "Moldura do texto fluido: %s × %s" #: ../src/ui/tools/text-tool.cpp:644 msgid "Type text; Enter to start new line." -msgstr "Entre com o texto; Pressione Enter para iniciar uma nova linha." +msgstr "Introduzir texto; Enter para iniciar uma nova linha." #: ../src/ui/tools/text-tool.cpp:655 msgid "Flowed text is created." -msgstr "Caixa de texto criada." +msgstr "O texto fluido está criado." #: ../src/ui/tools/text-tool.cpp:656 msgid "Create flowed text" -msgstr "Criar caixa de texto" +msgstr "Criar texto fluido" #: ../src/ui/tools/text-tool.cpp:658 msgid "" "The frame is too small for the current font size. Flowed text not " "created." msgstr "" -"O quadro é muito pequeno para o actual tamanho da fonte. Caixa de " -"texto não criada." +"A moldura é muito pequena para o tamanho da fonte atual. O texto " +"fluido não foi criado." #: ../src/ui/tools/text-tool.cpp:794 msgid "No-break space" -msgstr "Espaço sem quebras" +msgstr "Espaço sem quebras de linha" #: ../src/ui/tools/text-tool.cpp:795 msgid "Insert no-break space" -msgstr "Inserir espaço sem quebras" +msgstr "Inserir espaço sem quebras de linha" #: ../src/ui/tools/text-tool.cpp:831 msgid "Make bold" @@ -26182,50 +24713,50 @@ msgstr "Backspace" #: ../src/ui/tools/text-tool.cpp:981 msgid "Kern to the left" -msgstr "Ajustar Kern para a esquerda" +msgstr "Entre-linha para a esquerda" #: ../src/ui/tools/text-tool.cpp:1005 msgid "Kern to the right" -msgstr "Ajustar Kern para a direita" +msgstr "Entre-linha para a direita" #: ../src/ui/tools/text-tool.cpp:1029 msgid "Kern up" -msgstr "Aumentar Kern" +msgstr "Entre-linha para cima" #: ../src/ui/tools/text-tool.cpp:1053 msgid "Kern down" -msgstr "Diminuir Kern" +msgstr "Entre-linha para baixo" #: ../src/ui/tools/text-tool.cpp:1128 msgid "Rotate counterclockwise" -msgstr "Girar no sentido anti-horário" +msgstr "Rodar no sentido anti-horário" #: ../src/ui/tools/text-tool.cpp:1148 msgid "Rotate clockwise" -msgstr "Girar no sentido horário" +msgstr "Rodar no sentido horário" #: ../src/ui/tools/text-tool.cpp:1164 msgid "Contract line spacing" -msgstr "Diminuir espaçamento entre linhas" +msgstr "Diminuir espaçamento entre as linhas" #: ../src/ui/tools/text-tool.cpp:1170 msgid "Contract letter spacing" -msgstr "Diminuir espaçamento entre letras" +msgstr "Diminuir espaçamento entre as letras" #: ../src/ui/tools/text-tool.cpp:1187 msgid "Expand line spacing" -msgstr "Aumentar espaçamento entre linhas" +msgstr "Aumentar espaçamento entre as linhas" #: ../src/ui/tools/text-tool.cpp:1193 msgid "Expand letter spacing" -msgstr "Aumentar espaçamento entre letras" +msgstr "Aumentar espaçamento entre as letras" #: ../src/ui/tools/text-tool.cpp:1323 msgid "Paste text" msgstr "Colar texto" #: ../src/ui/tools/text-tool.cpp:1573 -#, fuzzy, c-format +#, c-format msgid "" "Type or edit flowed text (%d character%s); Enter to start new " "paragraph." @@ -26233,48 +24764,55 @@ msgid_plural "" "Type or edit flowed text (%d characters%s); Enter to start new " "paragraph." msgstr[0] "" -"Entre com o texto; Pressione Enter para começar um novo parágrafo." +"Escrever ou editar texto fluido (%d caractere%s); Enter para começar " +"um novo parágrafo." msgstr[1] "" -"Entre com o texto; Pressione Enter para começar um novo parágrafo." +"Escrever ou editar texto fluido (%d caracteres%s); Enter para começar " +"um novo parágrafo." #: ../src/ui/tools/text-tool.cpp:1575 -#, fuzzy, c-format +#, c-format msgid "Type or edit text (%d character%s); Enter to start new line." msgid_plural "" "Type or edit text (%d characters%s); Enter to start new line." msgstr[0] "" -"Entre com o texto; Pressione Enter para iniciar uma nova linha." +"Escrever ou editar texto (%d caractere%s); Enter para começar uma " +"nova linha." msgstr[1] "" -"Entre com o texto; Pressione Enter para iniciar uma nova linha." +"Escrever ou editar texto (%d caracteres%s); Enter para começar uma " +"nova linha." #: ../src/ui/tools/text-tool.cpp:1685 msgid "Type text" -msgstr "Digite o texto" +msgstr "Escrever o texto" #: ../src/ui/tools/tool-base.cpp:700 -#, fuzzy msgid "Space+mouse move to pan canvas" -msgstr "Espaço + arrastar o mouse para percorrer a área de desenho" +msgstr "Espaço + mover o rato para arrastar a área de desenho" #: ../src/ui/tools/tweak-tool.cpp:164 #, c-format msgid "%s. Drag to move." -msgstr "" +msgstr "%s. Arrastar para mover." #: ../src/ui/tools/tweak-tool.cpp:168 #, c-format msgid "%s. Drag or click to move in; with Shift to move out." msgstr "" +"%s. Arrastar ou clicar para mover para dentro; com Shift para " +"mover para fora." #: ../src/ui/tools/tweak-tool.cpp:176 #, c-format msgid "%s. Drag or click to move randomly." -msgstr "" +msgstr "%s. Arrastar ou clicar para mover em direções aleatórias." #: ../src/ui/tools/tweak-tool.cpp:180 #, c-format msgid "%s. Drag or click to scale down; with Shift to scale up." msgstr "" +"%s. Arrastar ou clicar para diminuir tamanho; com Shift para " +"aumentar tamanho." #: ../src/ui/tools/tweak-tool.cpp:188 #, c-format @@ -26282,216 +24820,204 @@ msgid "" "%s. Drag or click to rotate clockwise; with Shift, " "counterclockwise." msgstr "" +"%s. Arrastar ou clicar para rodar no sentido horário; com Shift para " +"rodar no sentido anti-horário." #: ../src/ui/tools/tweak-tool.cpp:196 #, c-format msgid "%s. Drag or click to duplicate; with Shift, delete." msgstr "" +"%s. Arrastar ou clicar para duplicar; com Shift para eliminar." #: ../src/ui/tools/tweak-tool.cpp:204 #, c-format msgid "%s. Drag to push paths." -msgstr "" +msgstr "%s. Arrastar para puxar caminhos." #: ../src/ui/tools/tweak-tool.cpp:208 #, c-format msgid "%s. Drag or click to inset paths; with Shift to outset." msgstr "" +"%s. Arrastar ou clicar para encolher caminhos para dentro; com Shift " +"para expandir caminhos para fora." #: ../src/ui/tools/tweak-tool.cpp:216 #, c-format msgid "%s. Drag or click to attract paths; with Shift to repel." msgstr "" +"%s. Arrastar ou clicar para atrair caminhos; com Shift para " +"repelir." #: ../src/ui/tools/tweak-tool.cpp:224 #, c-format msgid "%s. Drag or click to roughen paths." -msgstr "" +msgstr "%s. Arrastar ou clicar para tornar os caminhos rugosos." #: ../src/ui/tools/tweak-tool.cpp:228 #, c-format msgid "%s. Drag or click to paint objects with color." msgstr "" +"%s. Arrastar ou clicar para pintar objetos com cor (apenas objetos " +"com cor definida)" #: ../src/ui/tools/tweak-tool.cpp:232 #, c-format msgid "%s. Drag or click to randomize colors." -msgstr "" +msgstr "%s. Arrastar ou clicar para cores aleatórias." #: ../src/ui/tools/tweak-tool.cpp:236 #, c-format msgid "" "%s. Drag or click to increase blur; with Shift to decrease." msgstr "" +"%s. Arrastar ou clicar para aumentar desfocagem; com Shift para " +"diminuir desfocagem." #: ../src/ui/tools/tweak-tool.cpp:1191 msgid "Nothing selected! Select objects to tweak." -msgstr "" +msgstr "Nada selecionado! Selecionar objetos para ajustar." #: ../src/ui/tools/tweak-tool.cpp:1225 -#, fuzzy msgid "Move tweak" -msgstr "Aumentar ajuste" +msgstr "Forças: movimento" #: ../src/ui/tools/tweak-tool.cpp:1229 -#, fuzzy msgid "Move in/out tweak" -msgstr "Ajuste de cor de pintura" +msgstr "Forças: movimento para dentro/fora" #: ../src/ui/tools/tweak-tool.cpp:1233 -#, fuzzy msgid "Move jitter tweak" -msgstr "Ajuste de atração" +msgstr "Forças: variância de mover" #: ../src/ui/tools/tweak-tool.cpp:1237 -#, fuzzy msgid "Scale tweak" -msgstr "Ampliar" +msgstr "Forças: escala" #: ../src/ui/tools/tweak-tool.cpp:1241 -#, fuzzy msgid "Rotate tweak" -msgstr "Ajuste de atração" +msgstr "Forças: rotação" #: ../src/ui/tools/tweak-tool.cpp:1245 -#, fuzzy msgid "Duplicate/delete tweak" -msgstr "Duplicar os objectos seleccionados" +msgstr "Forças: duplicar/eliminar" #: ../src/ui/tools/tweak-tool.cpp:1249 -#, fuzzy msgid "Push path tweak" -msgstr "Ajuste empurrar" +msgstr "Forças: puxar o caminho" #: ../src/ui/tools/tweak-tool.cpp:1253 -#, fuzzy msgid "Shrink/grow path tweak" -msgstr "Encolher ajuste" +msgstr "Forças: encolher/alargar" #: ../src/ui/tools/tweak-tool.cpp:1257 -#, fuzzy msgid "Attract/repel path tweak" -msgstr "Ajuste de atração" +msgstr "Forças: atrair/repelir" #: ../src/ui/tools/tweak-tool.cpp:1261 -#, fuzzy msgid "Roughen path tweak" -msgstr "Ajuste áspero" +msgstr "Forças: rugosidade do caminho" #: ../src/ui/tools/tweak-tool.cpp:1265 msgid "Color paint tweak" -msgstr "Ajuste de cor de pintura" +msgstr "Forças: cor de pintura" #: ../src/ui/tools/tweak-tool.cpp:1269 msgid "Color jitter tweak" -msgstr "" +msgstr "Forças: variância das cores" #: ../src/ui/tools/tweak-tool.cpp:1273 -#, fuzzy msgid "Blur tweak" -msgstr "Ajuste empurrar" +msgstr "Forças: desfocar" #: ../src/ui/widget/color-entry.cpp:31 msgid "Hexadecimal RGBA value of the color" -msgstr "Valor hexadecimal RGBA da cor" +msgstr "Forças: valor hexadecimal RGBA da cor" #: ../src/ui/widget/color-icc-selector.cpp:176 #: ../src/ui/widget/color-scales.cpp:384 -#, fuzzy msgid "_R:" -msgstr "_R" +msgstr "_R:" #. TYPE_RGB_16 #: ../src/ui/widget/color-icc-selector.cpp:177 #: ../src/ui/widget/color-scales.cpp:387 -#, fuzzy msgid "_G:" -msgstr "_G" +msgstr "_G:" #: ../src/ui/widget/color-icc-selector.cpp:178 #: ../src/ui/widget/color-scales.cpp:390 -#, fuzzy msgid "_B:" -msgstr "_B" +msgstr "_B:" #: ../src/ui/widget/color-icc-selector.cpp:180 #: ../share/extensions/nicechart.inx.h:35 -#, fuzzy msgid "Gray" -msgstr "Tons de cinza" +msgstr "Cinzento" #. TYPE_GRAY_16 #: ../src/ui/widget/color-icc-selector.cpp:182 #: ../src/ui/widget/color-icc-selector.cpp:186 #: ../src/ui/widget/color-scales.cpp:410 -#, fuzzy msgid "_H:" -msgstr "_H" +msgstr "_M:" #. TYPE_HSV_16 #: ../src/ui/widget/color-icc-selector.cpp:183 #: ../src/ui/widget/color-icc-selector.cpp:188 #: ../src/ui/widget/color-scales.cpp:413 -#, fuzzy msgid "_S:" -msgstr "_S" +msgstr "_S:" #. TYPE_HLS_16 #: ../src/ui/widget/color-icc-selector.cpp:187 #: ../src/ui/widget/color-scales.cpp:416 -#, fuzzy msgid "_L:" -msgstr "_L" +msgstr "_L:" #: ../src/ui/widget/color-icc-selector.cpp:190 #: ../src/ui/widget/color-icc-selector.cpp:195 #: ../src/ui/widget/color-scales.cpp:438 -#, fuzzy msgid "_C:" -msgstr "_C" +msgstr "_C:" #. TYPE_CMYK_16 #. TYPE_CMY_16 #: ../src/ui/widget/color-icc-selector.cpp:191 #: ../src/ui/widget/color-icc-selector.cpp:196 #: ../src/ui/widget/color-scales.cpp:441 -#, fuzzy msgid "_M:" -msgstr "_M" +msgstr "_M:" #: ../src/ui/widget/color-icc-selector.cpp:192 #: ../src/ui/widget/color-icc-selector.cpp:197 #: ../src/ui/widget/color-scales.cpp:444 -#, fuzzy msgid "_Y:" -msgstr "Y:" +msgstr "_Y:" #: ../src/ui/widget/color-icc-selector.cpp:193 #: ../src/ui/widget/color-scales.cpp:447 -#, fuzzy msgid "_K:" -msgstr "_K" +msgstr "_K:" #: ../src/ui/widget/color-icc-selector.cpp:310 msgid "CMS" -msgstr "" +msgstr "CMS" #: ../src/ui/widget/color-icc-selector.cpp:375 msgid "Fix" -msgstr "" +msgstr "Fixar" #: ../src/ui/widget/color-icc-selector.cpp:379 msgid "Fix RGB fallback to match icc-color() value." -msgstr "" +msgstr "Fixar um valor RGB para corresponder ao valor icc-color()." #. Label #: ../src/ui/widget/color-icc-selector.cpp:496 #: ../src/ui/widget/color-scales.cpp:393 ../src/ui/widget/color-scales.cpp:419 #: ../src/ui/widget/color-scales.cpp:450 #: ../src/ui/widget/color-wheel-selector.cpp:83 -#, fuzzy msgid "_A:" -msgstr "_A" +msgstr "_T:" #: ../src/ui/widget/color-icc-selector.cpp:513 #: ../src/ui/widget/color-icc-selector.cpp:524 @@ -26501,25 +25027,23 @@ msgstr "_A" #: ../src/ui/widget/color-wheel-selector.cpp:112 #: ../src/ui/widget/color-wheel-selector.cpp:142 msgid "Alpha (opacity)" -msgstr "Alfa (transparência)" +msgstr "Transparência (canal alfa)" #: ../src/ui/widget/color-notebook.cpp:182 -#, fuzzy msgid "Color Managed" -msgstr "Gerenciamento de cor" +msgstr "Cores Geridas" #: ../src/ui/widget/color-notebook.cpp:189 msgid "Out of gamut!" -msgstr "" +msgstr "Fora da gama!" #: ../src/ui/widget/color-notebook.cpp:196 -#, fuzzy msgid "Too much ink!" -msgstr "Ampliar" +msgstr "Temasiada tinta!" #: ../src/ui/widget/color-notebook.cpp:207 ../src/verbs.cpp:2766 msgid "Pick colors from image" -msgstr "Pegar cores da imagem" +msgstr "Ferramenta Pipeta: retirar amostras de cores da área de trabalho" #. Create RGBA entry and color preview #: ../src/ui/widget/color-notebook.cpp:212 @@ -26539,323 +25063,302 @@ msgid "CMYK" msgstr "CMYK" #: ../src/ui/widget/filter-effect-chooser.cpp:26 -#, fuzzy msgid "_Blur:" -msgstr "B_orrar:" +msgstr "_Desfocar:" # Enevoar, desfocar ou borrar? -- krishna #: ../src/ui/widget/filter-effect-chooser.cpp:29 -#, fuzzy msgid "Blur (%)" -msgstr "Desfocar" +msgstr "Desfocagem (%)" #: ../src/ui/widget/font-variants.cpp:38 msgctxt "Font variant" msgid "Ligatures" -msgstr "" +msgstr "Ligaduras" #: ../src/ui/widget/font-variants.cpp:39 -#, fuzzy msgctxt "Font variant" msgid "Common" -msgstr "Objectos" +msgstr "Comum" #: ../src/ui/widget/font-variants.cpp:40 -#, fuzzy msgctxt "Font variant" msgid "Discretionary" -msgstr "Descrição" +msgstr "Discricionário" #: ../src/ui/widget/font-variants.cpp:41 -#, fuzzy msgctxt "Font variant" msgid "Historical" -msgstr "Tutoriais" +msgstr "Histórico" #: ../src/ui/widget/font-variants.cpp:42 -#, fuzzy msgctxt "Font variant" msgid "Contextual" -msgstr "Contraste" +msgstr "Contextual" #: ../src/ui/widget/font-variants.cpp:44 -#, fuzzy msgctxt "Font variant" msgid "Position" -msgstr "Posição:" +msgstr "Posição" #: ../src/ui/widget/font-variants.cpp:45 ../src/ui/widget/font-variants.cpp:50 -#, fuzzy msgctxt "Font variant" msgid "Normal" msgstr "Normal" #: ../src/ui/widget/font-variants.cpp:46 -#, fuzzy msgctxt "Font variant" msgid "Subscript" -msgstr "Script" +msgstr "Subscrito" #: ../src/ui/widget/font-variants.cpp:47 -#, fuzzy msgctxt "Font variant" msgid "Superscript" -msgstr "Script" +msgstr "Sobrescrito" #: ../src/ui/widget/font-variants.cpp:49 msgctxt "Font variant" msgid "Capitals" -msgstr "" +msgstr "Maiúsculas" #: ../src/ui/widget/font-variants.cpp:51 -#, fuzzy msgctxt "Font variant" msgid "Small" -msgstr "Pequeno" +msgstr "Versaletes" #: ../src/ui/widget/font-variants.cpp:52 -#, fuzzy msgctxt "Font variant" msgid "All small" -msgstr "pequeno" +msgstr "Todas versaletes" #: ../src/ui/widget/font-variants.cpp:53 -#, fuzzy msgctxt "Font variant" msgid "Petite" -msgstr "Todos os tipos" +msgstr "Pequenas capitais" #: ../src/ui/widget/font-variants.cpp:54 -#, fuzzy msgctxt "Font variant" msgid "All petite" -msgstr "Todos os tipos" +msgstr "Todas pequenas capitais" #: ../src/ui/widget/font-variants.cpp:55 -#, fuzzy msgctxt "Font variant" msgid "Unicase" -msgstr "Descarregado" +msgstr "Unicasa" #: ../src/ui/widget/font-variants.cpp:56 -#, fuzzy msgctxt "Font variant" msgid "Titling" -msgstr "Rolagem" +msgstr "Maiúsculas de títulos" #: ../src/ui/widget/font-variants.cpp:58 msgctxt "Font variant" msgid "Numeric" -msgstr "" +msgstr "Numérico" #: ../src/ui/widget/font-variants.cpp:59 -#, fuzzy msgctxt "Font variant" msgid "Lining" -msgstr "Sinuoso" +msgstr "Numerais alinhados" #: ../src/ui/widget/font-variants.cpp:60 -#, fuzzy msgctxt "Font variant" msgid "Old Style" -msgstr "Estilo" +msgstr "Estilo Antigo" #: ../src/ui/widget/font-variants.cpp:61 -#, fuzzy msgctxt "Font variant" msgid "Default Style" -msgstr "Unidades padrão:" +msgstr "Estilo Padrão" #: ../src/ui/widget/font-variants.cpp:62 -#, fuzzy msgctxt "Font variant" msgid "Proportional" -msgstr "Escala proporcional" +msgstr "Proporcional" #: ../src/ui/widget/font-variants.cpp:63 msgctxt "Font variant" msgid "Tabular" -msgstr "" +msgstr "Tabular" #: ../src/ui/widget/font-variants.cpp:64 -#, fuzzy msgctxt "Font variant" msgid "Default Width" -msgstr "Unidades padrão:" +msgstr "Largura Padrão" #: ../src/ui/widget/font-variants.cpp:65 -#, fuzzy msgctxt "Font variant" msgid "Diagonal" -msgstr "Encaixando às guias" +msgstr "Diagonal" #: ../src/ui/widget/font-variants.cpp:66 -#, fuzzy msgctxt "Font variant" msgid "Stacked" -msgstr "Plano de fundo:" +msgstr "Empilhado" #: ../src/ui/widget/font-variants.cpp:67 -#, fuzzy msgctxt "Font variant" msgid "Default Fractions" -msgstr "Configurações da página" +msgstr "Frações Padrão" #: ../src/ui/widget/font-variants.cpp:68 msgctxt "Font variant" msgid "Ordinal" -msgstr "" +msgstr "Ordinal" #: ../src/ui/widget/font-variants.cpp:69 msgctxt "Font variant" msgid "Slashed Zero" -msgstr "" +msgstr "Zero com Barra" #: ../src/ui/widget/font-variants.cpp:71 -#, fuzzy msgctxt "Font variant" msgid "Feature Settings" -msgstr "Configurações da página" +msgstr "Configurações de Características" #: ../src/ui/widget/font-variants.cpp:72 msgctxt "Font variant" msgid "Selection has different Feature Settings!" -msgstr "" +msgstr "A seleção tem Configurações de Características diferentes!" #: ../src/ui/widget/font-variants.cpp:85 msgid "Common ligatures. On by default. OpenType tables: 'liga', 'clig'" msgstr "" +"Ligaduras comuns. Ativadas por padrão. Tabelas OpenType: 'liga', 'clig'" #: ../src/ui/widget/font-variants.cpp:87 msgid "Discretionary ligatures. Off by default. OpenType table: 'dlig'" msgstr "" +"Ligaduras discricionárias. Desativadas por padrão. Tabela OpenType: 'dlig'" #: ../src/ui/widget/font-variants.cpp:89 msgid "Historical ligatures. Off by default. OpenType table: 'hlig'" -msgstr "" +msgstr "Ligaduras históricas. Desativadas por padrão. Tabela OpenType: 'hlig'" #: ../src/ui/widget/font-variants.cpp:91 msgid "Contextual forms. On by default. OpenType table: 'calt'" -msgstr "" +msgstr "Formas contextuais. Ativado por padrão. Tabela OpenType: 'calt'" #. Position ---------------------------------- #. Add tooltips #: ../src/ui/widget/font-variants.cpp:112 -#, fuzzy msgid "Normal position." -msgstr "Posição:" +msgstr "Posição normal." #: ../src/ui/widget/font-variants.cpp:113 msgid "Subscript. OpenType table: 'subs'" -msgstr "" +msgstr "Subscrito. Tabela OpenType: 'subs'" #: ../src/ui/widget/font-variants.cpp:114 msgid "Superscript. OpenType table: 'sups'" -msgstr "" +msgstr "Sobrescrito. Tabela OpenType: 'sups'" #. Caps ---------------------------------- #. Add tooltips #: ../src/ui/widget/font-variants.cpp:138 -#, fuzzy msgid "Normal capitalization." -msgstr "Localização" +msgstr "Capitalização normal." #: ../src/ui/widget/font-variants.cpp:139 msgid "Small-caps (lowercase). OpenType table: 'smcp'" -msgstr "" +msgstr "Versaletes (minúsculas). Tabela OpenType: 'smcp'" #: ../src/ui/widget/font-variants.cpp:140 msgid "" "All small-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'smcp'" msgstr "" +"Todas versaletes (maiúsculas e minúsculas). Tabelas OpenType: 'c2sc' e 'smcp'" #: ../src/ui/widget/font-variants.cpp:141 msgid "Petite-caps (lowercase). OpenType table: 'pcap'" -msgstr "" +msgstr "Pequenas capitais (minúsculas). Tabela OpenType: 'pcap'" #: ../src/ui/widget/font-variants.cpp:142 msgid "" "All petite-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'pcap'" msgstr "" +"Todas pequenas capitais (maiúsculas e minúsculas). Tabelas OpenType: 'c2sc' " +"e 'pcap'" #: ../src/ui/widget/font-variants.cpp:143 msgid "" "Unicase (small caps for uppercase, normal for lowercase). OpenType table: " "'unic'" msgstr "" +"Unicasa (versaletes para maiúsculas, normal para minúsculas). Tabela " +"OpenType: 'unic'" #: ../src/ui/widget/font-variants.cpp:144 msgid "" "Titling caps (lighter-weight uppercase for use in titles). OpenType table: " "'titl'" msgstr "" +"Maiúsculas de títulos (maiúscula mais fina para títulos). Tabela OpenType: " +"'titl'" #. Numeric ------------------------------ #. Add tooltips #: ../src/ui/widget/font-variants.cpp:180 -#, fuzzy msgid "Normal style." -msgstr "Tipografia normal" +msgstr "Estilo normal." #: ../src/ui/widget/font-variants.cpp:181 msgid "Lining numerals. OpenType table: 'lnum'" -msgstr "" +msgstr "Numerais alinhados. Tabela OpenType: 'lnum'" #: ../src/ui/widget/font-variants.cpp:182 msgid "Old style numerals. OpenType table: 'onum'" -msgstr "" +msgstr "Numerais de estilo antigo. Tabela OpenType: 'onum'" #: ../src/ui/widget/font-variants.cpp:183 -#, fuzzy msgid "Normal widths." -msgstr "Tipografia normal" +msgstr "Larguras normais." #: ../src/ui/widget/font-variants.cpp:184 msgid "Proportional width numerals. OpenType table: 'pnum'" -msgstr "" +msgstr "Numerais de largura proporcional. Tabela OpenType: 'pnum'" #: ../src/ui/widget/font-variants.cpp:185 msgid "Same width numerals. OpenType table: 'tnum'" -msgstr "" +msgstr "Numerais da mesma largura. Tabela OpenType: 'tnum'" #: ../src/ui/widget/font-variants.cpp:186 -#, fuzzy msgid "Normal fractions." -msgstr "Orientação da página:" +msgstr "Frações normais." #: ../src/ui/widget/font-variants.cpp:187 msgid "Diagonal fractions. OpenType table: 'frac'" -msgstr "" +msgstr "Frações diagonais. Tabela OpenType: 'frac'" #: ../src/ui/widget/font-variants.cpp:188 msgid "Stacked fractions. OpenType table: 'afrc'" -msgstr "" +msgstr "Frações empilhadas. Tabela OpenType: 'afrc'" #: ../src/ui/widget/font-variants.cpp:189 msgid "Ordinals (raised 'th', etc.). OpenType table: 'ordn'" -msgstr "" +msgstr "Ordinais ('o', 'a', 'th' levantados, etc.). Tabela OpenType: 'ordn'" #: ../src/ui/widget/font-variants.cpp:190 msgid "Slashed zeros. OpenType table: 'zero'" -msgstr "" +msgstr "Zeros com Barra. Tabela OpenType: 'zero'" #. Feature settings --------------------- #. Add tooltips #: ../src/ui/widget/font-variants.cpp:240 msgid "Feature settings in CSS form. No sanity checking is performed." -msgstr "" +msgstr "Definições de características no CSS. Não é feita nenhuma verificação." #: ../src/ui/widget/layer-selector.cpp:118 msgid "Toggle current layer visibility" -msgstr "Tornar a camada actual visível" +msgstr "Pcoltar ou desocultar camada atual" #: ../src/ui/widget/layer-selector.cpp:138 msgid "Lock or unlock current layer" -msgstr "Bloquear ou desbloquear a camada actual" +msgstr "Bloquear ou desbloquear a camada atual" #: ../src/ui/widget/layer-selector.cpp:141 msgid "Current layer" -msgstr "Camada actual" +msgstr "Camada atual" #: ../src/ui/widget/layer-selector.cpp:582 msgid "(root)" @@ -26863,27 +25366,25 @@ msgstr "(raiz)" #: ../src/ui/widget/licensor.cpp:40 msgid "Proprietary" -msgstr "Proprietário" +msgstr "Proprietário (totalmente protegido por direitos de autor)" #: ../src/ui/widget/licensor.cpp:43 msgid "MetadataLicence|Other" -msgstr "" +msgstr "Outra" #: ../src/ui/widget/licensor.cpp:72 -#, fuzzy msgid "Document license updated" -msgstr "Desenho SVG" +msgstr "Licença do documento atualizada" #: ../src/ui/widget/object-composite-settings.cpp:47 #: ../src/ui/widget/selected-style.cpp:1118 #: ../src/ui/widget/selected-style.cpp:1119 -#, fuzzy msgid "Opacity (%)" -msgstr "Opacidade, %" +msgstr "Opacidade (%)" #: ../src/ui/widget/object-composite-settings.cpp:160 msgid "Change blur" -msgstr "Alterar desfoque" +msgstr "Alterar desfocagem" #: ../src/ui/widget/object-composite-settings.cpp:200 #: ../src/ui/widget/selected-style.cpp:942 @@ -26905,75 +25406,63 @@ msgstr "Altura do papel" #: ../src/ui/widget/page-sizer.cpp:239 msgid "T_op margin:" -msgstr "" +msgstr "Margem de _cima:" #: ../src/ui/widget/page-sizer.cpp:239 -#, fuzzy msgid "Top margin" -msgstr "Soltar cor" +msgstr "Margem de cima" #: ../src/ui/widget/page-sizer.cpp:240 -#, fuzzy msgid "L_eft:" -msgstr "Comprimento:" +msgstr "_Esquerda:" #: ../src/ui/widget/page-sizer.cpp:240 -#, fuzzy msgid "Left margin" -msgstr "Ângulo esquerdo" +msgstr "Margem esquerda" #: ../src/ui/widget/page-sizer.cpp:241 -#, fuzzy msgid "Ri_ght:" -msgstr "Direitos:" +msgstr "_Direita:" #: ../src/ui/widget/page-sizer.cpp:241 -#, fuzzy msgid "Right margin" -msgstr "Ângulo direito" +msgstr "Margem direita" #: ../src/ui/widget/page-sizer.cpp:242 -#, fuzzy msgid "Botto_m:" -msgstr "Fundo" +msgstr "Margem de _baixo:" #: ../src/ui/widget/page-sizer.cpp:242 -#, fuzzy msgid "Bottom margin" -msgstr "Soltar cor" +msgstr "Margem de baixo" #: ../src/ui/widget/page-sizer.cpp:244 -#, fuzzy msgid "Scale _x:" -msgstr "Ampliar" +msgstr "Escala _x:" #: ../src/ui/widget/page-sizer.cpp:244 -#, fuzzy msgid "Scale X" -msgstr "Ampliar" +msgstr "Escala X" #: ../src/ui/widget/page-sizer.cpp:245 -#, fuzzy msgid "Scale _y:" -msgstr "Ampliar" +msgstr "Escala _Y:" #: ../src/ui/widget/page-sizer.cpp:245 -#, fuzzy msgid "Scale Y" -msgstr "Ampliar" +msgstr "Escala Y" #: ../src/ui/widget/page-sizer.cpp:323 -#, fuzzy msgid "Orientation:" -msgstr "Orientação da página:" +msgstr "Orientação:" #: ../src/ui/widget/page-sizer.cpp:326 msgid "_Landscape" -msgstr "_Paisagem" +msgstr "_Horizontal" #: ../src/ui/widget/page-sizer.cpp:331 msgid "_Portrait" -msgstr "_Retrato" +msgstr "_Vertical" #. ## Set up custom size frame #: ../src/ui/widget/page-sizer.cpp:350 @@ -26982,20 +25471,19 @@ msgstr "Tamanho personalizado" #: ../src/ui/widget/page-sizer.cpp:395 msgid "Resi_ze page to content..." -msgstr "" +msgstr "Redimensionar página ao _conteúdo..." #: ../src/ui/widget/page-sizer.cpp:447 -#, fuzzy msgid "_Resize page to drawing or selection" -msgstr "_Ajustar página à selecção" +msgstr "_Redimensionar o tamanho da página ao conteúdo" #: ../src/ui/widget/page-sizer.cpp:448 msgid "" "Resize the page to fit the current selection, or the entire drawing if there " "is no selection" msgstr "" -"Redimensionar a página para caber a selecção actual, ou o desenho inteiro se " -"não houver nenhuma selecção" +"Redimensionar a página para caber na seleção atual, ou o desenho inteiro se " +"não houver nada selecionado" #: ../src/ui/widget/page-sizer.cpp:479 msgid "" @@ -27003,11 +25491,13 @@ msgid "" "scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' " "directly." msgstr "" +"Apesar do SVG permitir redimensionamento não uniforme, é recomendável usar " +"apenas o redimensionamento uniforme no Inkscape. Para aplicar " +"redimensionamento não uniforme, aplicar diretamente o 'viewBox'." #: ../src/ui/widget/page-sizer.cpp:483 -#, fuzzy msgid "_Viewbox..." -msgstr "_Ver" +msgstr "Caixa de _Visualização..." #: ../src/ui/widget/page-sizer.cpp:590 msgid "Set page size" @@ -27015,183 +25505,162 @@ msgstr "Definir tamanho da página" #: ../src/ui/widget/page-sizer.cpp:836 msgid "User units per " -msgstr "" +msgstr "Unidades personalizadas por " #: ../src/ui/widget/page-sizer.cpp:932 -#, fuzzy msgid "Set page scale" -msgstr "Definir tamanho da página" +msgstr "Definir escala da página" #: ../src/ui/widget/page-sizer.cpp:958 msgid "Set 'viewBox'" -msgstr "" +msgstr "Definir caixa de visualização ('viewBox')" #: ../src/ui/widget/panel.cpp:116 msgid "List" -msgstr "Listar" +msgstr "Lista" #: ../src/ui/widget/panel.cpp:139 -#, fuzzy msgctxt "Swatches" msgid "Size" msgstr "Tamanho" #: ../src/ui/widget/panel.cpp:143 -#, fuzzy msgctxt "Swatches height" msgid "Tiny" -msgstr "minúsculo" +msgstr "Minúsculo" #: ../src/ui/widget/panel.cpp:144 -#, fuzzy msgctxt "Swatches height" msgid "Small" msgstr "Pequeno" #: ../src/ui/widget/panel.cpp:145 -#, fuzzy msgctxt "Swatches height" msgid "Medium" msgstr "Médio" #: ../src/ui/widget/panel.cpp:146 -#, fuzzy msgctxt "Swatches height" msgid "Large" msgstr "Grande" #: ../src/ui/widget/panel.cpp:147 -#, fuzzy msgctxt "Swatches height" msgid "Huge" -msgstr "Matiz" +msgstr "Enorme" #: ../src/ui/widget/panel.cpp:169 -#, fuzzy msgctxt "Swatches" msgid "Width" msgstr "Largura" #: ../src/ui/widget/panel.cpp:173 -#, fuzzy msgctxt "Swatches width" msgid "Narrower" -msgstr "Abai_xar" +msgstr "Mais estreito" #: ../src/ui/widget/panel.cpp:174 -#, fuzzy msgctxt "Swatches width" msgid "Narrow" -msgstr "Abai_xar" +msgstr "Estreito" #: ../src/ui/widget/panel.cpp:175 -#, fuzzy msgctxt "Swatches width" msgid "Medium" msgstr "Médio" #: ../src/ui/widget/panel.cpp:176 -#, fuzzy msgctxt "Swatches width" msgid "Wide" -msgstr "_Ocultar" +msgstr "Largo" #: ../src/ui/widget/panel.cpp:177 -#, fuzzy msgctxt "Swatches width" msgid "Wider" -msgstr "_Ocultar" +msgstr "Mais largo" #: ../src/ui/widget/panel.cpp:207 -#, fuzzy msgctxt "Swatches" msgid "Border" -msgstr "Ordenar" +msgstr "Borda" #: ../src/ui/widget/panel.cpp:211 -#, fuzzy msgctxt "Swatches border" msgid "None" -msgstr "Nenhum" +msgstr "Nenhuma" #: ../src/ui/widget/panel.cpp:212 msgctxt "Swatches border" msgid "Solid" -msgstr "" +msgstr "Sólida" #: ../src/ui/widget/panel.cpp:213 -#, fuzzy msgctxt "Swatches border" msgid "Wide" -msgstr "_Ocultar" +msgstr "Larga" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed #: ../src/ui/widget/panel.cpp:244 -#, fuzzy msgctxt "Swatches" msgid "Wrap" -msgstr "Envolver" +msgstr "Retornar à linha" #: ../src/ui/widget/preferences-widget.cpp:795 msgid "_Browse..." msgstr "_Navegar..." #: ../src/ui/widget/preferences-widget.cpp:881 -#, fuzzy msgid "Select a bitmap editor" -msgstr "Editor de degradê" +msgstr "Selecionar editor de imagem bitmap" #: ../src/ui/widget/random.cpp:84 msgid "" "Reseed the random number generator; this creates a different sequence of " "random numbers." msgstr "" +"Reiniciar o gerador de números aleatórios. Isto cria uma sequência diferente " +"de números aleatórios." #: ../src/ui/widget/rendering-options.cpp:33 -#, fuzzy msgid "Backend" -msgstr "Plano de fundo:" +msgstr "Motor" #: ../src/ui/widget/rendering-options.cpp:34 -#, fuzzy msgid "Vector" -msgstr "Seletor" +msgstr "Vetorial" #: ../src/ui/widget/rendering-options.cpp:35 -#, fuzzy msgid "Bitmap" -msgstr "Bias" +msgstr "Imagem bitmap" #: ../src/ui/widget/rendering-options.cpp:36 msgid "Bitmap options" -msgstr "" +msgstr "Opções de imagem bitmap" #: ../src/ui/widget/rendering-options.cpp:38 -#, fuzzy msgid "Preferred resolution of rendering, in dots per inch." -msgstr "Resolução preferida para a figura (pontos por polegada)" +msgstr "Resolução preferida para a visualização, em pontos por polegada." #: ../src/ui/widget/rendering-options.cpp:47 -#, fuzzy msgid "" "Render using Cairo vector operations. The resulting image is usually " "smaller in file size and can be arbitrarily scaled, but some filter effects " "will not be correctly rendered." msgstr "" -"Use os operadores de vetor PDF. A imagem resultante é geralmente menor em " -"tamanho de ficheiro e pode arbitrariamente ser escalada, mas os padrões de " -"preenchimento serão perdidas. " +"Renderizar utilizando as operações de vetor Cairo. A imagem resultante " +"geralmente ocupa menos espaço em disco e pode ser dimensionada " +"arbitrariamente, mas alguns efeitos de filtros não serão renderizados " +"corretamente." #: ../src/ui/widget/rendering-options.cpp:52 -#, fuzzy msgid "" "Render everything as bitmap. The resulting image is usually larger in file " "size and cannot be arbitrarily scaled without quality loss, but all objects " "will be rendered exactly as displayed." msgstr "" "Imprimir tudo como bitmap. A imagem resultante é geralmente maior em tamanho " -"e não pode ser ampliada sem perda de qualidade. Porém todos os objectos são " -"gerados exatamente como mostrado." +"e não pode ser ampliada sem perda de qualidade. Porém todos os objetos são " +"gerados exatamente como mostrado no ecrã." #: ../src/ui/widget/selected-style.cpp:131 #: ../src/ui/widget/style-swatch.cpp:129 @@ -27211,30 +25680,26 @@ msgstr "N/A" #: ../src/ui/widget/selected-style.cpp:1112 #: ../src/widgets/gradient-toolbar.cpp:162 msgid "Nothing selected" -msgstr "Nenhum objecto seleccionado" +msgstr "Nada selecionado" #: ../src/ui/widget/selected-style.cpp:185 -#, fuzzy msgctxt "Fill" msgid "None" msgstr "Nenhum" #: ../src/ui/widget/selected-style.cpp:187 -#, fuzzy msgctxt "Stroke" msgid "None" msgstr "Nenhum" #: ../src/ui/widget/selected-style.cpp:191 #: ../src/ui/widget/style-swatch.cpp:323 -#, fuzzy msgctxt "Fill and stroke" msgid "No fill" msgstr "Sem preenchimento" #: ../src/ui/widget/selected-style.cpp:191 #: ../src/ui/widget/style-swatch.cpp:323 -#, fuzzy msgctxt "Fill and stroke" msgid "No stroke" msgstr "Sem traço" @@ -27247,55 +25712,52 @@ msgstr "Padrão" #: ../src/ui/widget/selected-style.cpp:196 #: ../src/ui/widget/style-swatch.cpp:304 msgid "Pattern fill" -msgstr "Padrão de preenchimento" +msgstr "Padrão no preenchimento" #: ../src/ui/widget/selected-style.cpp:196 #: ../src/ui/widget/style-swatch.cpp:304 msgid "Pattern stroke" -msgstr "Padrão de traço" +msgstr "Padrão no traço" #: ../src/ui/widget/selected-style.cpp:198 msgid "L" -msgstr "E" +msgstr "L" #: ../src/ui/widget/selected-style.cpp:201 #: ../src/ui/widget/style-swatch.cpp:296 msgid "Linear gradient fill" -msgstr "Preenchimento em degradê linear" +msgstr "Preenchimento em gradiente linear" #: ../src/ui/widget/selected-style.cpp:201 #: ../src/ui/widget/style-swatch.cpp:296 msgid "Linear gradient stroke" -msgstr "Traço em degradê linear" +msgstr "Traço em gradiente linear" #: ../src/ui/widget/selected-style.cpp:208 msgid "R" -msgstr "D" +msgstr "R" #: ../src/ui/widget/selected-style.cpp:211 #: ../src/ui/widget/style-swatch.cpp:300 msgid "Radial gradient fill" -msgstr "Preenchimento em degradê radial" +msgstr "Preenchimento em gradiente radial" #: ../src/ui/widget/selected-style.cpp:211 #: ../src/ui/widget/style-swatch.cpp:300 msgid "Radial gradient stroke" -msgstr "Traço em degradê radial" +msgstr "Traço em gradiente radial" #: ../src/ui/widget/selected-style.cpp:219 -#, fuzzy msgid "M" -msgstr "E" +msgstr "M" #: ../src/ui/widget/selected-style.cpp:222 -#, fuzzy msgid "Mesh gradient fill" -msgstr "Preenchimento em degradê linear" +msgstr "Preenchimento em gradiente de malha" #: ../src/ui/widget/selected-style.cpp:222 -#, fuzzy msgid "Mesh gradient stroke" -msgstr "Traço em degradê linear" +msgstr "Traço em gradiente de malha" #: ../src/ui/widget/selected-style.cpp:230 msgid "Different" @@ -27311,9 +25773,8 @@ msgstr "Traços diferentes" #: ../src/ui/widget/selected-style.cpp:235 #: ../src/ui/widget/style-swatch.cpp:326 -#, fuzzy msgid "Unset" -msgstr "Linha" +msgstr "Indefinido" #. TRANSLATORS COMMENT: unset is a verb here #: ../src/ui/widget/selected-style.cpp:238 @@ -27321,14 +25782,14 @@ msgstr "Linha" #: ../src/ui/widget/selected-style.cpp:574 #: ../src/ui/widget/style-swatch.cpp:328 ../src/widgets/fill-style.cpp:703 msgid "Unset fill" -msgstr "Desfazer preenchimento" +msgstr "Preenchimento não definido" #: ../src/ui/widget/selected-style.cpp:238 #: ../src/ui/widget/selected-style.cpp:296 #: ../src/ui/widget/selected-style.cpp:590 #: ../src/ui/widget/style-swatch.cpp:328 ../src/widgets/fill-style.cpp:703 msgid "Unset stroke" -msgstr "Redefinir o traço" +msgstr "Traço não definido" #: ../src/ui/widget/selected-style.cpp:241 msgid "Flat color fill" @@ -27341,28 +25802,28 @@ msgstr "Traço em cor lisa" #. TRANSLATOR COMMENT: A means "Averaged" #: ../src/ui/widget/selected-style.cpp:244 msgid "a" -msgstr "a" +msgstr "md" #: ../src/ui/widget/selected-style.cpp:247 msgid "Fill is averaged over selected objects" -msgstr "Preenchimento médio entre os objectos seleccionados" +msgstr "Média do preenchimento dos objetos selecionados" #: ../src/ui/widget/selected-style.cpp:247 msgid "Stroke is averaged over selected objects" -msgstr "Traço médio entre os objectos seleccionados" +msgstr "Média do traço dos objetos selecionados" #. TRANSLATOR COMMENT: M means "Multiple" #: ../src/ui/widget/selected-style.cpp:250 msgid "m" -msgstr "m" +msgstr "ig" #: ../src/ui/widget/selected-style.cpp:253 msgid "Multiple selected objects have the same fill" -msgstr "Objectos seleccionados possuem o mesmo preenchimento" +msgstr "Vários objetos selecionados têm o mesmo preenchimento" #: ../src/ui/widget/selected-style.cpp:253 msgid "Multiple selected objects have the same stroke" -msgstr "Objectos seleccionados possuem o mesmo traço" +msgstr "Vários objetos selecionados têm o mesmo traço" #: ../src/ui/widget/selected-style.cpp:255 msgid "Edit fill..." @@ -27397,11 +25858,11 @@ msgstr "Trocar preenchimento e traço" #: ../src/ui/widget/selected-style.cpp:599 #: ../src/ui/widget/selected-style.cpp:608 msgid "Make fill opaque" -msgstr "Tornar preenchimento opaco" +msgstr "Tornar o preenchimento opaco" #: ../src/ui/widget/selected-style.cpp:291 msgid "Make stroke opaque" -msgstr "Tornar traço opaco" +msgstr "Tornar o traço opaco" #: ../src/ui/widget/selected-style.cpp:300 #: ../src/ui/widget/selected-style.cpp:556 ../src/widgets/fill-style.cpp:503 @@ -27415,19 +25876,19 @@ msgstr "Remover traço" #: ../src/ui/widget/selected-style.cpp:620 msgid "Apply last set color to fill" -msgstr "Aplicar a última cor para preenchimento" +msgstr "Aplicar a última cor definida ao preenchimento" #: ../src/ui/widget/selected-style.cpp:632 msgid "Apply last set color to stroke" -msgstr "Aplicar a última cor para traço" +msgstr "Aplicar a última cor definida ao traço" #: ../src/ui/widget/selected-style.cpp:643 msgid "Apply last selected color to fill" -msgstr "Aplicar a última cor para preenchimento da selecção" +msgstr "Aplicar a última cor selecionada ao preenchimento" #: ../src/ui/widget/selected-style.cpp:654 msgid "Apply last selected color to stroke" -msgstr "Aplicar a última cor para traço da selecção" +msgstr "Aplicar a última cor selecionada ao traço" #: ../src/ui/widget/selected-style.cpp:680 msgid "Invert fill" @@ -27463,16 +25924,16 @@ msgstr "Colar traço" #: ../src/ui/widget/selected-style.cpp:969 msgid "Change stroke width" -msgstr "Alterar largura do traço" +msgstr "Alterar espessura do traço" #: ../src/ui/widget/selected-style.cpp:1072 msgid ", drag to adjust" -msgstr ", arraste para ajustar" +msgstr ", arrastar para ajustar" #: ../src/ui/widget/selected-style.cpp:1157 #, c-format msgid "Stroke width: %.5g%s%s" -msgstr "Largura do traço: %.5g%s%s" +msgstr "Espessura do traço: %.5g%s%s" #: ../src/ui/widget/selected-style.cpp:1161 msgid " (averaged)" @@ -27487,88 +25948,90 @@ msgid "100% (opaque)" msgstr "100% (opaco)" #: ../src/ui/widget/selected-style.cpp:1385 -#, fuzzy msgid "Adjust alpha" -msgstr "Ajustar matiz" +msgstr "Ajustar transparência" #: ../src/ui/widget/selected-style.cpp:1387 -#, fuzzy, c-format +#, c-format msgid "" "Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrl to adjust lightness, with Shift to adjust saturation, without " "modifiers to adjust hue" msgstr "" -"Ajustando luminosidade: foi %.3g, agora %.3g (diff %.3g); com " -"Shift para ajustar a saturação, sem modificadores para ajustar a Matiz" +"A ajustar a transparência: era %.3g, agora %.3g (diferença " +"%.3g); com Ctrl para ajustar a luminosidade; com Shift para " +"ajustar saturação; sem modificadores para ajustar a matiz" #: ../src/ui/widget/selected-style.cpp:1391 msgid "Adjust saturation" msgstr "Ajustar saturação" #: ../src/ui/widget/selected-style.cpp:1393 -#, fuzzy, c-format +#, c-format msgid "" "Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " "Ctrl to adjust lightness, with Alt to adjust alpha, without " "modifiers to adjust hue" msgstr "" -"Ajustando saturação: foi %.3g, agora %.3g (diff %.3g); com " -"Ctrl para ajustar a luminosidade, sem modificadores para ajustar matiz" +"A ajustar a saturação: era %.3g, agora %.3g (diferença %.3g); " +"com Ctrl para ajustar luminosidade; com Alt para ajustar a " +"transparência; sem modificadores para ajustar a matiz" #: ../src/ui/widget/selected-style.cpp:1397 msgid "Adjust lightness" msgstr "Ajustar luminosidade" #: ../src/ui/widget/selected-style.cpp:1399 -#, fuzzy, c-format +#, c-format msgid "" "Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " "Shift to adjust saturation, with Alt to adjust alpha, without " "modifiers to adjust hue" msgstr "" -"Ajustando luminosidade: foi %.3g, agora %.3g (diff %.3g); com " -"Shift para ajustar a saturação, sem modificadores para ajustar a Matiz" +"A ajustar luminosidade: era %.3g, agora %.3g (diferença %.3g); " +"com Shift para ajustar a saturação; com Alt para ajustar a " +"transparência; sem modificadores para ajustar a matiz" #: ../src/ui/widget/selected-style.cpp:1403 msgid "Adjust hue" msgstr "Ajustar matiz" #: ../src/ui/widget/selected-style.cpp:1405 -#, fuzzy, c-format +#, c-format msgid "" "Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shift to adjust saturation, with Alt to adjust alpha, with Ctrl " "to adjust lightness" msgstr "" -"Ajustando matiz: foi %.3g, agora %.3g (diff %.3g); com " -"Shift para ajustar saturação, com Ctrl para ajustar a " -"luminosidade" +"A ajustar a matiz: era %.3g, agora %.3g (diferença %.3g); com " +"Shift para ajustar a saturação; com Alt para ajustar a " +"transparência; com Ctrl para ajustar a luminosidade" #: ../src/ui/widget/selected-style.cpp:1523 #: ../src/ui/widget/selected-style.cpp:1537 -#, fuzzy msgid "Adjust stroke width" -msgstr "Largura do traço" +msgstr "Ajustar espessura do traço" #: ../src/ui/widget/selected-style.cpp:1524 #, c-format msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" msgstr "" +"A ajustar a espessura do traço: era %.3g, agora %.3g " +"(diferença %.3g)" #. TRANSLATORS: "Link" means to _link_ two sliders together #: ../src/ui/widget/spin-scale.cpp:138 ../src/ui/widget/spin-slider.cpp:156 -#, fuzzy msgctxt "Sliders" msgid "Link" -msgstr "Linha" +msgstr "Ligação" #: ../src/ui/widget/style-swatch.cpp:294 msgid "L Gradient" -msgstr "Degradê L" +msgstr "Gradiente L" #: ../src/ui/widget/style-swatch.cpp:298 msgid "R Gradient" -msgstr "Degradê R" +msgstr "Gradiente R" #: ../src/ui/widget/style-swatch.cpp:314 #, c-format @@ -27581,7 +26044,6 @@ msgid "Stroke: %06x/%.3g" msgstr "Traço: %06x/%.3g" #: ../src/ui/widget/style-swatch.cpp:321 -#, fuzzy msgctxt "Fill and stroke" msgid "None" msgstr "Nenhum" @@ -27589,30 +26051,29 @@ msgstr "Nenhum" #: ../src/ui/widget/style-swatch.cpp:348 #, c-format msgid "Stroke width: %.5g%s" -msgstr "Largura do traço: %.5g%s" +msgstr "Espessura do traço: %.5g%s" #: ../src/ui/widget/style-swatch.cpp:364 #, c-format msgid "O: %2.0f" -msgstr "" +msgstr "O: %2.0f" #: ../src/ui/widget/style-swatch.cpp:369 -#, fuzzy, c-format +#, c-format msgid "Opacity: %2.1f %%" -msgstr "Opacidade: %.3g" +msgstr "Opacidade: %2.1f %%" #: ../src/vanishing-point.cpp:133 msgid "Split vanishing points" -msgstr "" +msgstr "Separar pontos de fuga" #: ../src/vanishing-point.cpp:178 -#, fuzzy msgid "Merge vanishing points" -msgstr "Criar novo caminho" +msgstr "Unir pontos de fuga" #: ../src/vanishing-point.cpp:246 msgid "3D box: Move vanishing point" -msgstr "" +msgstr "Caixa 3D: mover ponto de fuga" #: ../src/vanishing-point.cpp:329 #, c-format @@ -27620,8 +26081,10 @@ msgid "Finite vanishing point shared by %d box" msgid_plural "" "Finite vanishing point shared by %d boxes; drag with Shift to separate selected box(es)" -msgstr[0] "" +msgstr[0] "Ponto de fuga finito partilhado por %d caixa" msgstr[1] "" +"Ponto de fuga finito partilhado por %d caixas; arrastar com " +"Shift para separar as caixas selecionadas" #. This won't make sense any more when infinite VPs are not shown on the canvas, #. but currently we update the status message anyway @@ -27631,118 +26094,114 @@ msgid "Infinite vanishing point shared by %d box" msgid_plural "" "Infinite vanishing point shared by %d boxes; drag with " "Shift to separate selected box(es)" -msgstr[0] "" +msgstr[0] "Ponto de fuga infinito partilhado por %d caixa" msgstr[1] "" +"Ponto de fuga infinito partilhado por %d caixas; arrastar com " +"Shift para separar as caixas selecionadas" #: ../src/vanishing-point.cpp:344 -#, fuzzy, c-format +#, c-format msgid "" "shared by %d box; drag with Shift to separate selected box(es)" msgid_plural "" "shared by %d boxes; drag with Shift to separate selected " "box(es)" msgstr[0] "" -"Ponto do degradê compartilhado pelo degradê %d; arraste com Shift para separar" +"partilhado por %d caixa; arrastar com Shift para separar as " +"caixas selecionadas" msgstr[1] "" -"Ponto do degradê compartilhado pelos degradês %d; arraste com " -"Shift para separar" +"partilhado por %d caixas; arrastar com Shift para separar as " +"caixas selecionadas" #: ../src/verbs.cpp:137 msgid "File" msgstr "Ficheiro" #: ../src/verbs.cpp:232 ../share/extensions/interp_att_g.inx.h:24 -#, fuzzy msgid "Tag" -msgstr "Alvo" +msgstr "Etiqueta" #: ../src/verbs.cpp:251 -#, fuzzy msgid "Context" -msgstr "Contraste" +msgstr "Contexto" #: ../src/verbs.cpp:270 ../src/verbs.cpp:2297 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 -#, fuzzy msgid "View" -msgstr "_Ver" +msgstr "Vista" #: ../src/verbs.cpp:290 -#, fuzzy msgid "Dialog" -msgstr "Diálogo Pin" +msgstr "Diálogo" #: ../src/verbs.cpp:1275 msgid "Switch to next layer" -msgstr "Trocar para a próxima camada" +msgstr "Mudar para a camada seguinte" #: ../src/verbs.cpp:1276 msgid "Switched to next layer." -msgstr "Trocado para a próxima camada." +msgstr "Mudado para a camada seguinte." #: ../src/verbs.cpp:1278 msgid "Cannot go past last layer." -msgstr "Não é possível ir antes da última camada." +msgstr "Não é possível ir para a última camada." #: ../src/verbs.cpp:1287 msgid "Switch to previous layer" -msgstr "Trocar para a camada anterior" +msgstr "Mudar para a camada anterior" #: ../src/verbs.cpp:1288 msgid "Switched to previous layer." -msgstr "Trocado para a camada anterior." +msgstr "Mudado para a camada anterior." #: ../src/verbs.cpp:1290 msgid "Cannot go before first layer." -msgstr "Não é possível ir antes da primeira camada." +msgstr "Não é possível ir para a primeira camada." #: ../src/verbs.cpp:1311 ../src/verbs.cpp:1378 ../src/verbs.cpp:1414 #: ../src/verbs.cpp:1420 ../src/verbs.cpp:1444 ../src/verbs.cpp:1459 msgid "No current layer." -msgstr "Nenhuma camada actual." +msgstr "Nenhuma camada atual." #: ../src/verbs.cpp:1340 ../src/verbs.cpp:1344 #, c-format msgid "Raised layer %s." -msgstr "Camada %s levantada." +msgstr "Camada %s alterada para cima." #: ../src/verbs.cpp:1341 msgid "Layer to top" -msgstr "Camada para o topo" +msgstr "Camada para cima" #: ../src/verbs.cpp:1345 msgid "Raise layer" -msgstr "Levantar camada" +msgstr "Mudar camada para cima" #: ../src/verbs.cpp:1348 ../src/verbs.cpp:1352 #, c-format msgid "Lowered layer %s." -msgstr "Camada abaixada %s." +msgstr "Camada mudada para baixo %s." #: ../src/verbs.cpp:1349 msgid "Layer to bottom" -msgstr "Camada para o fundo" +msgstr "Camada para baixo" #: ../src/verbs.cpp:1353 msgid "Lower layer" -msgstr "Baixar camada" +msgstr "Mudar camada para baixo" #: ../src/verbs.cpp:1362 msgid "Cannot move layer any further." -msgstr "Não é possível movimentar mais a camada." +msgstr "Não é possível mover mais a camada." #: ../src/verbs.cpp:1373 -#, fuzzy msgid "Duplicate layer" -msgstr "Duplicar filtro" +msgstr "Duplicar camada" #. TRANSLATORS: this means "The layer has been duplicated." #: ../src/verbs.cpp:1376 -#, fuzzy msgid "Duplicated layer." -msgstr "Duplicar filtro" +msgstr "Camada duplicada." #: ../src/verbs.cpp:1409 msgid "Delete layer" @@ -27751,45 +26210,40 @@ msgstr "Eliminar camada" #. TRANSLATORS: this means "The layer has been deleted." #: ../src/verbs.cpp:1412 msgid "Deleted layer." -msgstr "Camada apagada." +msgstr "Camada eliminada." #: ../src/verbs.cpp:1429 -#, fuzzy msgid "Show all layers" -msgstr "Selecionar em todas as camadas" +msgstr "Mostrar todas as camadas" #: ../src/verbs.cpp:1434 -#, fuzzy msgid "Hide all layers" -msgstr "Ocultar Camada" +msgstr "Ocultar todas as camadas" #: ../src/verbs.cpp:1439 -#, fuzzy msgid "Lock all layers" -msgstr "Selecionar em todas as camadas" +msgstr "Bloquear todas as camadas" #: ../src/verbs.cpp:1453 -#, fuzzy msgid "Unlock all layers" -msgstr "DesBloquear Camada" +msgstr "Desbloquear todas as camadas" #: ../src/verbs.cpp:1537 msgid "Flip horizontally" -msgstr "Inverter horizontalmente" +msgstr "Espelhar na horizontal" #: ../src/verbs.cpp:1542 msgid "Flip vertically" -msgstr "Inverter verticalmente" +msgstr "Espelhar na vertical" #: ../src/verbs.cpp:1590 -#, fuzzy, c-format +#, c-format msgid "Set %d" -msgstr "Definir alfa" +msgstr "Conjunto %d" #: ../src/verbs.cpp:1599 ../src/verbs.cpp:2729 -#, fuzzy msgid "Create new selection set" -msgstr "Criar novo elemento de nó" +msgstr "Criar novo conjunto de seleção" #. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language, #. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language @@ -27814,9 +26268,8 @@ msgid "tutorial-tracing.svg" msgstr "tutorial-tracing.pt_BR.svg" #: ../src/verbs.cpp:2194 -#, fuzzy msgid "tutorial-tracing-pixelart.svg" -msgstr "tutorial-tracing.pt_BR.svg" +msgstr "tutorial-tracing-pixelart.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. #: ../src/verbs.cpp:2198 @@ -27825,9 +26278,8 @@ msgstr "tutorial-calligraphy.pt_BR.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. #: ../src/verbs.cpp:2202 -#, fuzzy msgid "tutorial-interpolate.svg" -msgstr "tutorial-tips.pt_BR.svg" +msgstr "tutorial-interpolate.pt_BR.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. #: ../src/verbs.cpp:2206 @@ -27841,25 +26293,24 @@ msgstr "tutorial-tips.pt_BR.svg" #: ../src/verbs.cpp:2396 ../src/verbs.cpp:3012 msgid "Unlock all objects in the current layer" -msgstr "DesBloquear todos os objectos da camada actual" +msgstr "Desbloquear todos os objetos da camada atual" #: ../src/verbs.cpp:2400 ../src/verbs.cpp:3014 msgid "Unlock all objects in all layers" -msgstr "DesBloquear todos os objectos de todas as camadas" +msgstr "Desbloquear todos os objetos em todas as camadas" #: ../src/verbs.cpp:2404 ../src/verbs.cpp:3016 msgid "Unhide all objects in the current layer" -msgstr "Mostrar todos os objectos na camada actual" +msgstr "Desocultar todos os objetos escondidos na camada actual" #: ../src/verbs.cpp:2408 ../src/verbs.cpp:3018 msgid "Unhide all objects in all layers" -msgstr "Mostrar todos os objectos em todas as camadas" +msgstr "Desocultar todos os objetos escondidos em todas as camadas" #: ../src/verbs.cpp:2423 -#, fuzzy msgctxt "Verb" msgid "None" -msgstr "Nenhum" +msgstr "Nada" #: ../src/verbs.cpp:2423 msgid "Does nothing" @@ -27881,36 +26332,37 @@ msgstr "_Abrir..." #: ../src/verbs.cpp:2429 msgid "Open an existing document" -msgstr "Abrir um desenho existente" +msgstr "Abrir um documento existente" #: ../src/verbs.cpp:2430 msgid "Re_vert" -msgstr "Re_verter" +msgstr "_Reverter" #: ../src/verbs.cpp:2431 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "" -"Reverter para a última versão salva do desenho (mudanças serão perdidas)" +"Reverter para a última versão gravada do documento (as alterações serão " +"perdidas)" #: ../src/verbs.cpp:2432 msgid "Save document" -msgstr "Guardar documento" +msgstr "Gravar documento" #: ../src/verbs.cpp:2434 msgid "Save _As..." -msgstr "Guardar _Como..." +msgstr "Gravar _Como..." #: ../src/verbs.cpp:2435 msgid "Save document under a new name" -msgstr "Guardar documento com outro nome" +msgstr "Gravar documento com outro nome" #: ../src/verbs.cpp:2436 msgid "Save a Cop_y..." -msgstr "Guardar Cóp_ia..." +msgstr "Gra_var Cópia..." #: ../src/verbs.cpp:2437 msgid "Save a copy of the document under a new name" -msgstr "Guardar uma cópia do documento com outro nome" +msgstr "Gravar uma cópia do documento com outro nome" #: ../src/verbs.cpp:2438 msgid "_Print..." @@ -27922,17 +26374,16 @@ msgstr "Imprimir documento" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) #: ../src/verbs.cpp:2441 -#, fuzzy msgid "Clean _up document" -msgstr "Não foi possível definir a origem da impressão: %s" +msgstr "_Optimizar Documento" #: ../src/verbs.cpp:2441 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" msgstr "" -"Limpar recursos pré-definidos não utilizados neste documento (como degradês, " -"pincéis, clipping, etc)" +"Remover definições não utilizadas (como gradientes ou caminhos de recorte) " +"das <defs> do documento" #: ../src/verbs.cpp:2443 msgid "_Import..." @@ -27940,18 +26391,16 @@ msgstr "_Importar..." #: ../src/verbs.cpp:2444 msgid "Import a bitmap or SVG image into this document" -msgstr "Importar figura ou imagem SVG para o documento" +msgstr "Importar imagem bitmap ou SVG para este documento" #. new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON("document-export")), #: ../src/verbs.cpp:2446 -#, fuzzy msgid "Import Clip Art..." -msgstr "_Importar..." +msgstr "Importar Clip Art..." #: ../src/verbs.cpp:2447 -#, fuzzy msgid "Import clipart from Open Clip Art Library" -msgstr "Importar de Open Clip Art Library" +msgstr "Importar imagens clip art de Open Clip Art Library" #. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL), #: ../src/verbs.cpp:2449 @@ -27960,7 +26409,7 @@ msgstr "Próxima Jan_ela" #: ../src/verbs.cpp:2450 msgid "Switch to the next document window" -msgstr "Trocar para a próxima janela de documento" +msgstr "Mudar para a próxima janela do documento" #: ../src/verbs.cpp:2451 msgid "P_revious Window" @@ -27968,15 +26417,15 @@ msgstr "Janela Ante_rior" #: ../src/verbs.cpp:2452 msgid "Switch to the previous document window" -msgstr "Trocar para a janela anterior de documento" +msgstr "Mudar para a janela anterior do documento" #: ../src/verbs.cpp:2453 msgid "_Close" -msgstr "Fe_char" +msgstr "_Fechar" #: ../src/verbs.cpp:2454 msgid "Close this document window" -msgstr "Fechar a janela do documento" +msgstr "Fechar a janela deste documento" #: ../src/verbs.cpp:2455 msgid "_Quit" @@ -27987,14 +26436,12 @@ msgid "Quit Inkscape" msgstr "Sair do Inkscape" #: ../src/verbs.cpp:2456 -#, fuzzy msgid "New from _Template..." -msgstr "Modelos de Cores..." +msgstr "Novo a partir de um _modelo..." #: ../src/verbs.cpp:2457 -#, fuzzy msgid "Create new project from template" -msgstr "Criar um novo documento a partir do modelo padrão" +msgstr "Criar um novo documento a partir de um modelo padrão" #: ../src/verbs.cpp:2460 msgid "Undo last action" @@ -28002,7 +26449,7 @@ msgstr "Desfazer a última ação" #: ../src/verbs.cpp:2463 msgid "Do again the last undone action" -msgstr "Refazer a última ação desfeita" +msgstr "Tornar a fazer a última ação desfeita" #: ../src/verbs.cpp:2464 msgid "Cu_t" @@ -28010,7 +26457,7 @@ msgstr "Cor_tar" #: ../src/verbs.cpp:2465 msgid "Cut selection to clipboard" -msgstr "Cortar a selecção para a área de transferência" +msgstr "Cortar a seleção para a área de transferência" #: ../src/verbs.cpp:2466 msgid "_Copy" @@ -28018,7 +26465,7 @@ msgstr "_Copiar" #: ../src/verbs.cpp:2467 msgid "Copy selection to clipboard" -msgstr "Copiar a selecção para a área de transferência" +msgstr "Copiar a seleção para a área de transferência" #: ../src/verbs.cpp:2468 msgid "_Paste" @@ -28027,7 +26474,7 @@ msgstr "Co_lar" #: ../src/verbs.cpp:2469 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "" -"Colar objectos ou texto da área de transferência para a posição do mouse" +"Colar objetos ou texto da área de transferência para a posição do cursor" #: ../src/verbs.cpp:2470 msgid "Paste _Style" @@ -28035,11 +26482,11 @@ msgstr "Colar E_stilo" #: ../src/verbs.cpp:2471 msgid "Apply the style of the copied object to selection" -msgstr "Aplicar o estilo do objecto copiado para a selecção" +msgstr "Aplicar na seleção o estilo do objeto copiado" #: ../src/verbs.cpp:2473 msgid "Scale selection to match the size of the copied object" -msgstr "Redimensionar selecção para o tamanho do objecto seleccionado" +msgstr "Redimensionar seleção para o tamanho do objeto selecionado" #: ../src/verbs.cpp:2474 msgid "Paste _Width" @@ -28047,8 +26494,7 @@ msgstr "Colar La_rgura" #: ../src/verbs.cpp:2475 msgid "Scale selection horizontally to match the width of the copied object" -msgstr "" -"Redimensionar selecção horizontalmente para a largura do objecto copiado" +msgstr "Redimensionar seleção horizontalmente para a largura do objeto copiado" #: ../src/verbs.cpp:2476 msgid "Paste _Height" @@ -28056,7 +26502,7 @@ msgstr "Colar _Altura" #: ../src/verbs.cpp:2477 msgid "Scale selection vertically to match the height of the copied object" -msgstr "Redimensionar selecção verticalmente para a altura do objecto copiado" +msgstr "Redimensionar seleção verticalmente para a altura do objeto copiado" #: ../src/verbs.cpp:2478 msgid "Paste Size Separately" @@ -28064,8 +26510,7 @@ msgstr "Colar Tamanho Separadamente" #: ../src/verbs.cpp:2479 msgid "Scale each selected object to match the size of the copied object" -msgstr "" -"Redimensionar cada objecto seleccionado para o tamanho do objecto copiado" +msgstr "Redimensionar cada objeto selecionado para o tamanho do objeto copiado" #: ../src/verbs.cpp:2480 msgid "Paste Width Separately" @@ -28076,8 +26521,8 @@ msgid "" "Scale each selected object horizontally to match the width of the copied " "object" msgstr "" -"Redimensionar horizontalmente cada objecto seleccionado para a largura do " -"objecto copiado" +"Redimensionar horizontalmente cada objeto selecionado para a largura do " +"objeto copiado" #: ../src/verbs.cpp:2482 msgid "Paste Height Separately" @@ -28088,8 +26533,8 @@ msgid "" "Scale each selected object vertically to match the height of the copied " "object" msgstr "" -"Redimensionar verticalmente cada objecto seleccionado para a altura do " -"objecto copiado" +"Redimensionar verticalmente cada objeto selecionado para a altura do objeto " +"copiado" #: ../src/verbs.cpp:2484 msgid "Paste _In Place" @@ -28098,53 +26543,48 @@ msgstr "Colar _No Lugar" #: ../src/verbs.cpp:2485 msgid "Paste objects from clipboard to the original location" msgstr "" -"Colar os objectos da área de transferência para o lugar original de onde " -"foram copiados" +"Colar os objetos da área de transferência no local original de onde foram " +"copiados" #: ../src/verbs.cpp:2486 msgid "Paste Path _Effect" -msgstr "Colar Caminho do _Efeito" +msgstr "Colar _Efeito em Tempo Real no Caminho" #: ../src/verbs.cpp:2487 -#, fuzzy msgid "Apply the path effect of the copied object to selection" -msgstr "Aplicar o estilo do objecto copiado para a selecção" +msgstr "Aplicar o efeito em tempo real no caminho copiado na seleção" #: ../src/verbs.cpp:2488 -#, fuzzy msgid "Remove Path _Effect" -msgstr "Remover efeito de caminho" +msgstr "Remover _Efeito em Tempo Real do Caminho" #: ../src/verbs.cpp:2489 -#, fuzzy msgid "Remove any path effects from selected objects" -msgstr "Remover efeito da selecção" +msgstr "Remover todos os efeitos em tempo real dos objetos selecionados" #: ../src/verbs.cpp:2490 -#, fuzzy msgid "_Remove Filters" -msgstr "Remover filtro" +msgstr "_Remover Filtros" #: ../src/verbs.cpp:2491 -#, fuzzy msgid "Remove any filters from selected objects" -msgstr "Remover máscara da selecção" +msgstr "Remover todos os filtros dos objetos selecionados" #: ../src/verbs.cpp:2492 msgid "_Delete" -msgstr "Apa_gar" +msgstr "_Eliminar" #: ../src/verbs.cpp:2493 msgid "Delete selection" -msgstr "Eliminar a selecção" +msgstr "Eliminar a seleção" #: ../src/verbs.cpp:2494 msgid "Duplic_ate" -msgstr "Duplic_ar" +msgstr "D_uplicar" #: ../src/verbs.cpp:2495 msgid "Duplicate selected objects" -msgstr "Duplicar os objectos seleccionados" +msgstr "Duplicar os objetos selecionados" #: ../src/verbs.cpp:2496 msgid "Create Clo_ne" @@ -28152,27 +26592,28 @@ msgstr "Criar Clo_ne" #: ../src/verbs.cpp:2497 msgid "Create a clone (a copy linked to the original) of selected object" -msgstr "" -"Criar um clone dos objectos seleccionados (uma cópia ligada ao original)" +msgstr "Criar um clone dos objetos selecionados (uma cópia ligada ao original)" #: ../src/verbs.cpp:2498 msgid "Unlin_k Clone" msgstr "Desl_igar Clone" #: ../src/verbs.cpp:2499 -#, fuzzy msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" -msgstr "Remover a ligação do clone com seu original" +msgstr "" +"Cortar as ligações dos clones selecionados aos originais, tornando-os em " +"objetos independentes" #: ../src/verbs.cpp:2500 msgid "Relink to Copied" -msgstr "" +msgstr "Religar para o Copiado" #: ../src/verbs.cpp:2501 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "" +"Religar os clones selecionados ao objeto atualmente na área de transferência" #: ../src/verbs.cpp:2502 msgid "Select _Original" @@ -28180,72 +26621,74 @@ msgstr "Selecionar _Original" #: ../src/verbs.cpp:2503 msgid "Select the object to which the selected clone is linked" -msgstr "Seleccione o objecto ao qual o clone está ligado" +msgstr "Selecionar o objeto ao qual o clone está ligado" #: ../src/verbs.cpp:2504 -#, fuzzy msgid "Clone original path (LPE)" -msgstr "Substituir texto..." +msgstr "Clonar caminho original (Efeitos Interativos em Caminhos)" #: ../src/verbs.cpp:2505 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" msgstr "" +"Cria um novo caminho, Aplica o Clone original Efeitos Interativos em " +"Caminhos, e refere-o ao caminho selecionado" #: ../src/verbs.cpp:2506 -#, fuzzy msgid "Objects to _Marker" -msgstr "Objecto para padrão" +msgstr "Converter em _Marcador" #: ../src/verbs.cpp:2507 -#, fuzzy msgid "Convert selection to a line marker" -msgstr "Cortar a selecção para a área de transferência" +msgstr "" +"Converte os objetos selecionados num marcador de linha (aparece nos " +"marcadores em Estilo do Traço)" #: ../src/verbs.cpp:2508 -#, fuzzy msgid "Objects to Gu_ides" -msgstr "Objecto para padrão" +msgstr "Converter em _Guias" #: ../src/verbs.cpp:2509 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" msgstr "" +"Converte os objetos selecionados em várias guias com base nas bordas dos " +"objetos" #: ../src/verbs.cpp:2510 msgid "Objects to Patter_n" -msgstr "O_bjecto para Padrão" +msgstr "Co_nverter em Padrão" #: ../src/verbs.cpp:2511 msgid "Convert selection to a rectangle with tiled pattern fill" -msgstr "Converter a selecção para um padrão, a ser usado como preenchimento." +msgstr "" +"Converter a seleção num retângulo com preenchimento de padrão ladrilhado" #: ../src/verbs.cpp:2512 msgid "Pattern to _Objects" -msgstr "Padrão para _Objecto" +msgstr "Padrão para _Objetos" #: ../src/verbs.cpp:2513 msgid "Extract objects from a tiled pattern fill" -msgstr "Extrai objectos de um preenchimento com padrões" +msgstr "Extrai objetos de um preenchimento com padrões ladrilhados" #: ../src/verbs.cpp:2514 msgid "Group to Symbol" -msgstr "" +msgstr "Grupo para Símbolo" #: ../src/verbs.cpp:2515 -#, fuzzy msgid "Convert group to a symbol" -msgstr "Converter borda do objecto em caminho" +msgstr "Converte grupo em símbolo" #: ../src/verbs.cpp:2516 msgid "Symbol to Group" -msgstr "" +msgstr "Símbolo para Grupo" #: ../src/verbs.cpp:2517 msgid "Extract group from a symbol" -msgstr "" +msgstr "Extrair grupo de um símbolo" #: ../src/verbs.cpp:2518 msgid "Clea_r All" @@ -28253,85 +26696,76 @@ msgstr "Limpa_r Todos" #: ../src/verbs.cpp:2519 msgid "Delete all objects from document" -msgstr "Eliminar todos os objectos do desenho" +msgstr "Elimina todos os objetos do documento" #: ../src/verbs.cpp:2520 msgid "Select Al_l" -msgstr "Se_lecionar Todos" +msgstr "Selecionar _Tudo" #: ../src/verbs.cpp:2521 msgid "Select all objects or all nodes" -msgstr "Selecionar todos os objectos ou todos os nós" +msgstr "Selecionar todos os objetos ou todos os nós" #: ../src/verbs.cpp:2522 msgid "Select All in All La_yers" -msgstr "Selecionar _Tudo em Todas Camadas" +msgstr "Seleci_onar Tudo em Todas as Camadas" #: ../src/verbs.cpp:2523 msgid "Select all objects in all visible and unlocked layers" -msgstr "Selecionar todos os objectos em todas camadas visíveis e não trancadas" +msgstr "Selecionar todos os objetos em todas camadas visíveis e não bloqueadas" #: ../src/verbs.cpp:2524 -#, fuzzy msgid "Fill _and Stroke" -msgstr "_Preenchimento e Traço" +msgstr "Preenchimento e Tr_aço" #: ../src/verbs.cpp:2525 -#, fuzzy msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "" -"Seleccione um objecto com padrão de preenchimento para extrair " -"objectos dele." +"Selecionar todos os objetos com o mesmo preenchimento e traço dos objetos " +"selecionados" #: ../src/verbs.cpp:2526 -#, fuzzy msgid "_Fill Color" -msgstr "Cor lisa" +msgstr "Cor do _Preenchimento" #: ../src/verbs.cpp:2527 -#, fuzzy msgid "Select all objects with the same fill as the selected objects" msgstr "" -"Seleccione um objecto com padrão de preenchimento para extrair " -"objectos dele." +"Selecionar todos os objetos com o mesmo preenchimento dos objetos " +"selecionados" #: ../src/verbs.cpp:2528 -#, fuzzy msgid "_Stroke Color" -msgstr "Definir cor do traço" +msgstr "Cor do _Traço" #: ../src/verbs.cpp:2529 -#, fuzzy msgid "Select all objects with the same stroke as the selected objects" -msgstr "" -"Redimensionar cada objecto seleccionado para o tamanho do objecto copiado" +msgstr "Selecionar todos os objetos com o mesmo traço dos objetos selecionados" #: ../src/verbs.cpp:2530 -#, fuzzy msgid "Stroke St_yle" -msgstr "Estilo de traço" +msgstr "_Estilo do Traço" #: ../src/verbs.cpp:2531 -#, fuzzy msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" msgstr "" -"Redimensionar cada objecto seleccionado para o tamanho do objecto copiado" +"Selecionar todos os objetos com o mesmo estilo do traço (espessura, " +"tracejado, marcadores) dos objetos selecionados" #: ../src/verbs.cpp:2532 -#, fuzzy msgid "_Object Type" -msgstr "Objecto" +msgstr "Tipo de _Objeto" #: ../src/verbs.cpp:2533 -#, fuzzy msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" msgstr "" -"Redimensionar cada objecto seleccionado para o tamanho do objecto copiado" +"Selecionar todos os objetos do mesmo tipo (retângulo, arco, texto, caminho, " +"bitmap, etc.) dos objetos selecionados" #: ../src/verbs.cpp:2534 msgid "In_vert Selection" @@ -28340,8 +26774,8 @@ msgstr "In_verter Seleção" #: ../src/verbs.cpp:2535 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" -"Inverter selecção (desselecionar o que está seleccionado e selecionar todo o " -"restante)" +"Inverter seleção (desseleciona o que está selecionado e seleciona tudo o " +"resto)" #: ../src/verbs.cpp:2536 msgid "Invert in All Layers" @@ -28349,7 +26783,7 @@ msgstr "Inverter em Todas Camadas" #: ../src/verbs.cpp:2537 msgid "Invert selection in all visible and unlocked layers" -msgstr "Inverter selecção em todas camadas visíveis e destravadas." +msgstr "Inverter seleção em todas camadas visíveis e desbloqueadas" #: ../src/verbs.cpp:2538 msgid "Select Next" @@ -28357,7 +26791,7 @@ msgstr "Selecionar Próximo" #: ../src/verbs.cpp:2539 msgid "Select next object or node" -msgstr "Selecionar próximo objecto ou nó" +msgstr "Selecionar próximo objeto ou nó" #: ../src/verbs.cpp:2540 msgid "Select Previous" @@ -28365,103 +26799,96 @@ msgstr "Selecionar Anterior" #: ../src/verbs.cpp:2541 msgid "Select previous object or node" -msgstr "Selecionar objecto ou nó anterior" +msgstr "Selecionar objeto ou nó anterior" #: ../src/verbs.cpp:2542 msgid "D_eselect" -msgstr "Remover S_eleção" +msgstr "_Desselecionar" #: ../src/verbs.cpp:2543 msgid "Deselect any selected objects or nodes" -msgstr "Retira a selecção de qualquer objecto ou nó" +msgstr "Desselecionar qualquer objeto ou nó selecionados" #: ../src/verbs.cpp:2545 -#, fuzzy msgid "Delete all the guides in the document" -msgstr "Eliminar todos os objectos do desenho" +msgstr "Eliminar todas as guias no documento" #: ../src/verbs.cpp:2546 -#, fuzzy msgid "Lock All Guides" -msgstr "DesBloquear Tudo" +msgstr "Bloquear Todas as Guias" #: ../src/verbs.cpp:2546 ../src/widgets/desktop-widget.cpp:404 -#, fuzzy msgid "Toggle lock of all guides in the document" -msgstr "Eliminar todos os objectos do desenho" +msgstr "Bloquear/desbloquear todas as guias no documento" #: ../src/verbs.cpp:2547 msgid "Create _Guides Around the Page" -msgstr "" +msgstr "Criar _Guias à Volta da Página" #: ../src/verbs.cpp:2548 msgid "Create four guides aligned with the page borders" -msgstr "" +msgstr "Criar 4 guias alinhadas às bordas da página" #: ../src/verbs.cpp:2549 -#, fuzzy msgid "Next path effect parameter" -msgstr "Próximo " +msgstr "Próximo parâmetro de efeito no caminho" #: ../src/verbs.cpp:2550 -#, fuzzy msgid "Show next editable path effect parameter" -msgstr "Próximo " +msgstr "Mostrar o próximo parâmetro de efeito no caminho editável" #. Selection #: ../src/verbs.cpp:2553 msgid "Raise to _Top" -msgstr "Levantar para o _Topo" +msgstr "Subir para o _Topo" #: ../src/verbs.cpp:2554 msgid "Raise selection to top" -msgstr "Levantar a selecção para o topo" +msgstr "Levantar a seleção para o topo de todos os outros elementos" #: ../src/verbs.cpp:2555 msgid "Lower to _Bottom" -msgstr "_Baixar para o Fundo" +msgstr "Baixar para o _Fundo" #: ../src/verbs.cpp:2556 msgid "Lower selection to bottom" -msgstr "Baixar a selecção até ficar em baixo de todos os outros elementos" +msgstr "Baixar a seleção até ao fundo de todos os outros elementos" #: ../src/verbs.cpp:2557 msgid "_Raise" -msgstr "Levanta_r" +msgstr "_Subir" #: ../src/verbs.cpp:2558 msgid "Raise selection one step" -msgstr "Levantar a selecção um passo" +msgstr "Levantar a seleção um passo" #: ../src/verbs.cpp:2559 msgid "_Lower" -msgstr "Bai_xar" +msgstr "_Baixar" #: ../src/verbs.cpp:2560 msgid "Lower selection one step" -msgstr "Baixar a selecção um passo" +msgstr "Baixar a seleção um passo" #: ../src/verbs.cpp:2562 msgid "Group selected objects" -msgstr "Agrupar os objectos seleccionados" +msgstr "Agrupar os objetos selecionados" #: ../src/verbs.cpp:2564 msgid "Ungroup selected groups" -msgstr "Desagrupar os grupos seleccionados" +msgstr "Desagrupar os grupos selecionados" #: ../src/verbs.cpp:2565 -#, fuzzy msgid "_Pop selected objects out of group" -msgstr "Agrupar os objectos seleccionados" +msgstr "_Subir Objetos Selecionados para o Topo" #: ../src/verbs.cpp:2566 -#, fuzzy msgid "Pop selected objects out of group" -msgstr "Agrupar os objectos seleccionados" +msgstr "Desagrupa e coloca na camada mais acima os objetos selecionados" #: ../src/verbs.cpp:2568 msgid "_Put on Path" -msgstr "_Por no Caminho" +msgstr "_Colocar no Caminho" #: ../src/verbs.cpp:2570 msgid "_Remove from Path" @@ -28469,13 +26896,15 @@ msgstr "_Remover do caminho" #: ../src/verbs.cpp:2572 msgid "Remove Manual _Kerns" -msgstr "Remover _Kerns Manuais" +msgstr "Remover _Entre-Letras Manuais" #. TRANSLATORS: "glyph": An image used in the visual representation of characters; #. roughly speaking, how a character looks. A font is a set of glyphs. #: ../src/verbs.cpp:2575 msgid "Remove all manual kerns and glyph rotations from a text object" -msgstr "Remover todos kerns manuais e rotações de glyph de um objecto de texto" +msgstr "" +"Remover todos espaçamentos entre-letras manuais e rotações de caracteres de " +"um texto" #: ../src/verbs.cpp:2577 msgid "_Union" @@ -28483,7 +26912,7 @@ msgstr "_União" #: ../src/verbs.cpp:2578 msgid "Create union of selected paths" -msgstr "União entre os caminhos seleccionados" +msgstr "Criar união dos caminhos selecionados" #: ../src/verbs.cpp:2579 msgid "_Intersection" @@ -28491,7 +26920,7 @@ msgstr "_Interseção" #: ../src/verbs.cpp:2580 msgid "Create intersection of selected paths" -msgstr "Interseção entre os caminhos seleccionados" +msgstr "Criar interseção dos caminhos selecionados" #: ../src/verbs.cpp:2581 msgid "_Difference" @@ -28499,7 +26928,7 @@ msgstr "_Diferença" #: ../src/verbs.cpp:2582 msgid "Create difference of selected paths (bottom minus top)" -msgstr "Diferença entre os objectos seleccionados (fundo menos topo)" +msgstr "Criar diferença dos caminhos selecionados (de baixo menos o de cima)" #: ../src/verbs.cpp:2583 msgid "E_xclusion" @@ -28510,8 +26939,8 @@ msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" msgstr "" -"OU exclusivo entre os objectos seleccionados (as partes pertencentes a " -"apenas um caminho)" +"Criar exclusivo OU dos caminhos selecionados (as partes que pertençam apenas " +"a 1 caminho)" #: ../src/verbs.cpp:2585 msgid "Di_vision" @@ -28519,7 +26948,7 @@ msgstr "Di_visão" #: ../src/verbs.cpp:2586 msgid "Cut the bottom path into pieces" -msgstr "Cortar o objecto do fundo em pedaços" +msgstr "Cortar o objeto do fundo em pedaços" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info @@ -28530,7 +26959,7 @@ msgstr "Cortar Camin_ho" #: ../src/verbs.cpp:2590 msgid "Cut the bottom path's stroke into pieces, removing fill" msgstr "" -"Cortar o traço do objecto do fundo em pedaços, removendo o preenchimento" +"Cortar o traço do objeto do fundo em pedaços, removendo o preenchimento" #. TRANSLATORS: "outset": expand a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. @@ -28541,7 +26970,7 @@ msgstr "_Expandir" #: ../src/verbs.cpp:2595 msgid "Outset selected paths" -msgstr "Expandir o(s) caminho(s) seleccionados" +msgstr "Expandir os caminhos selecionados" #: ../src/verbs.cpp:2597 msgid "O_utset Path by 1 px" @@ -28549,15 +26978,15 @@ msgstr "E_xpandir Caminho em 1px" #: ../src/verbs.cpp:2598 msgid "Outset selected paths by 1 px" -msgstr "Expandir os caminhos seleccionados em 1px" +msgstr "Expandir os caminhos selecionados em 1px" #: ../src/verbs.cpp:2600 msgid "O_utset Path by 10 px" -msgstr "E_xpandir Ca_minho em 10px" +msgstr "Expandir Ca_minho em 10px" #: ../src/verbs.cpp:2601 msgid "Outset selected paths by 10 px" -msgstr "Expandir os caminhos seleccionados em 10px" +msgstr "Expandir os caminhos selecionados em 10px" #. TRANSLATORS: "inset": contract a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. @@ -28568,47 +26997,49 @@ msgstr "Co_mprimir" #: ../src/verbs.cpp:2606 msgid "Inset selected paths" -msgstr "Comprimir caminhos seleccionados" +msgstr "Comprimir caminhos selecionados" #: ../src/verbs.cpp:2608 msgid "I_nset Path by 1 px" -msgstr "Ava_nçar Caminho por 1px" +msgstr "Co_mprimir Caminho 1px" #: ../src/verbs.cpp:2609 msgid "Inset selected paths by 1 px" -msgstr "Comprime o caminho seleccionado por 1px" +msgstr "Comprimir o caminho selecionado em 1px" #: ../src/verbs.cpp:2611 msgid "I_nset Path by 10 px" -msgstr "Ava_nçar Caminho por 10px" +msgstr "Com_primir Caminho 10px" #: ../src/verbs.cpp:2612 msgid "Inset selected paths by 10 px" -msgstr "Comprimir o caminho seleccionado por 10px" +msgstr "Comprimir o caminho selecionado em 10px" #: ../src/verbs.cpp:2614 msgid "D_ynamic Offset" -msgstr "Tipografia D_inâmica" +msgstr "Deslocamento D_inâmico" #: ../src/verbs.cpp:2614 msgid "Create a dynamic offset object" -msgstr "Criar um objecto tipográfico dinâmico" +msgstr "Criar um objeto deslocado dinâmico" #: ../src/verbs.cpp:2616 msgid "_Linked Offset" -msgstr "Tipografia _Ligada" +msgstr "Deslocamento _Ligado ao Original" #: ../src/verbs.cpp:2617 msgid "Create a dynamic offset object linked to the original path" -msgstr "Cria um objecto tipográfico dinâmico ligado ao caminho original" +msgstr "Criar um objeto deslocado dinâmico ligado ao caminho original" #: ../src/verbs.cpp:2619 msgid "_Stroke to Path" -msgstr "_Traço para caminho" +msgstr "_Converter Traço num Caminho" #: ../src/verbs.cpp:2620 msgid "Convert selected object's stroke to paths" -msgstr "Converte o traço do objecto seleccionado em caminho" +msgstr "" +"Converter o traço do objeto selecionado em caminhos (se tiver traço, " +"converte-o num caminho pelos contornos do traço)" #: ../src/verbs.cpp:2621 msgid "Si_mplify" @@ -28616,38 +27047,38 @@ msgstr "Si_mplificar" #: ../src/verbs.cpp:2622 msgid "Simplify selected paths (remove extra nodes)" -msgstr "Simplificar os caminhos seleccionados removendo nós adicionais" +msgstr "Simplificar os caminhos selecionados (remove nós adicionais)" #: ../src/verbs.cpp:2623 msgid "_Reverse" -msgstr "_Reverter" +msgstr "_Inverter" #: ../src/verbs.cpp:2624 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" -"Reverte a direção dos caminhos seleccionados (útil para inverter marcadores)" +"Inverter a direção dos caminhos selecionados (útil para inverter marcadores)" #: ../src/verbs.cpp:2629 msgid "Create one or more paths from a bitmap by tracing it" -msgstr "Cria um ou mais caminhos a partir de uma figura" +msgstr "Criar um ou mais caminhos a partir da vetorização de uma imagem bitmap" #: ../src/verbs.cpp:2632 -#, fuzzy msgid "Trace Pixel Art..." -msgstr "_Vectorizar Bitmap..." +msgstr "Vetorizar Arte de Píxeis..." #: ../src/verbs.cpp:2633 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" +"Criar caminhos utilizando o algoritmo Kopf-Lischinski para vetorizar imagens " +"compostas por píxeis" #: ../src/verbs.cpp:2634 -#, fuzzy msgid "Make a _Bitmap Copy" -msgstr "Fazer u_ma Cópia em Bitmap" +msgstr "Fazer uma Cópia _Bitmap" #: ../src/verbs.cpp:2635 msgid "Export selection to a bitmap and insert it into document" -msgstr "Exportar selecção para uma figura e inseri-la para dentro do desenho" +msgstr "Exportar seleção para uma imagem bitmap e inseri-la no documento" #: ../src/verbs.cpp:2636 msgid "_Combine" @@ -28655,7 +27086,7 @@ msgstr "_Combinar" #: ../src/verbs.cpp:2637 msgid "Combine several paths into one" -msgstr "Combina diversos caminhos em um" +msgstr "Combina os caminhos selecionados num só caminho" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info @@ -28665,17 +27096,15 @@ msgstr "Sep_arar" #: ../src/verbs.cpp:2641 msgid "Break selected paths into subpaths" -msgstr "Separar caminhos seleccionados em outros caminhos" +msgstr "Separa os caminhos selecionados" #: ../src/verbs.cpp:2642 -#, fuzzy msgid "_Arrange..." -msgstr "Ângulo" +msgstr "_Organizar..." #: ../src/verbs.cpp:2643 -#, fuzzy msgid "Arrange selected objects in a table or circle" -msgstr "Arrumar objectos seleccionados em um padrão de grelha" +msgstr "Organizar objetos selecionados num retângulo ou círculo" #. Layer #: ../src/verbs.cpp:2645 @@ -28688,19 +27117,19 @@ msgstr "Cria uma nova camada" #: ../src/verbs.cpp:2647 msgid "Re_name Layer..." -msgstr "Re_nomear Camada..." +msgstr "Alterar _Nome da Camada..." #: ../src/verbs.cpp:2648 msgid "Rename the current layer" -msgstr "Renomear a camada actual" +msgstr "Muda o nome da camada atual" #: ../src/verbs.cpp:2649 msgid "Switch to Layer Abov_e" -msgstr "Mudar para a Camada Acima" +msgstr "Mudar para a Camada Aci_ma" #: ../src/verbs.cpp:2650 msgid "Switch to the layer above the current" -msgstr "Mudar para a camada acima da actual" +msgstr "Mudar para a camada acima da atual" #: ../src/verbs.cpp:2651 msgid "Switch to Layer Belo_w" @@ -28708,28 +27137,27 @@ msgstr "Mudar para a Camada Abai_xo" #: ../src/verbs.cpp:2652 msgid "Switch to the layer below the current" -msgstr "Mudar para a camada abaixo da corrente" +msgstr "Mudar para a camada abaixo da atual" #: ../src/verbs.cpp:2653 msgid "Move Selection to Layer Abo_ve" -msgstr "Mo_ver selecção para a Camada Acima" +msgstr "Mover Seleção para a Camada _Acima" #: ../src/verbs.cpp:2654 msgid "Move selection to the layer above the current" -msgstr "Mover selecção para a camada acima da actual" +msgstr "Mover seleção para a camada acima da atual" #: ../src/verbs.cpp:2655 msgid "Move Selection to Layer Bel_ow" -msgstr "Mover selecção para a camada abaix_o" +msgstr "Mover Seleção para a Camada A_baixo" #: ../src/verbs.cpp:2656 msgid "Move selection to the layer below the current" -msgstr "Mover selecção para a camada abaixo da actual" +msgstr "Mover seleção para a camada abaixo da atual" #: ../src/verbs.cpp:2657 -#, fuzzy msgid "Move Selection to Layer..." -msgstr "Mo_ver selecção para a Camada Acima" +msgstr "Mover Seleção para a Camada..." #: ../src/verbs.cpp:2659 msgid "Layer to _Top" @@ -28737,152 +27165,132 @@ msgstr "Camada para o _Topo" #: ../src/verbs.cpp:2660 msgid "Raise the current layer to the top" -msgstr "Levanta a camada actual para o topo" +msgstr "Levanta a camada atual para o topo" #: ../src/verbs.cpp:2661 msgid "Layer to _Bottom" -msgstr "Camada para o _Baixo" +msgstr "Camada para o _Fundo" #: ../src/verbs.cpp:2662 msgid "Lower the current layer to the bottom" -msgstr "Abaixa a camada actual para o fundo" +msgstr "Baixa a camada atual para o fundo" #: ../src/verbs.cpp:2663 msgid "_Raise Layer" -msgstr "_Levantar Camada" +msgstr "_Subir Camada" #: ../src/verbs.cpp:2664 msgid "Raise the current layer" -msgstr "Levantar a camada actual" +msgstr "Levanta a camada atual" #: ../src/verbs.cpp:2665 msgid "_Lower Layer" -msgstr "Baixar Camada" +msgstr "_Baixar Camada" #: ../src/verbs.cpp:2666 msgid "Lower the current layer" -msgstr "Baixar a camada actual" +msgstr "Baixa a camada atual" #: ../src/verbs.cpp:2667 -#, fuzzy msgid "D_uplicate Current Layer" -msgstr "Eliminar Camada Atual" +msgstr "D_uplicar Camada Atual" #: ../src/verbs.cpp:2668 -#, fuzzy msgid "Duplicate an existing layer" -msgstr "Duplicar filtro" +msgstr "Duplica uma camada existente" #: ../src/verbs.cpp:2669 msgid "_Delete Current Layer" -msgstr "Eliminar Camada Atual" +msgstr "_Eliminar Camada Atual" #: ../src/verbs.cpp:2670 msgid "Delete the current layer" -msgstr "Eliminar a camada actual" +msgstr "Elimina a camada atual" #: ../src/verbs.cpp:2671 -#, fuzzy msgid "_Show/hide other layers" -msgstr "Mostrar ou esconder as réguas da Ecrã" +msgstr "_Ocultar ou desocultar outras camadas" #: ../src/verbs.cpp:2672 -#, fuzzy msgid "Solo the current layer" -msgstr "Baixar a camada actual" +msgstr "Apenas a camada atual" #: ../src/verbs.cpp:2673 -#, fuzzy msgid "_Show all layers" -msgstr "Selecionar em todas as camadas" +msgstr "_Mostrar todas as camadas" #: ../src/verbs.cpp:2674 -#, fuzzy msgid "Show all the layers" -msgstr "Mostrar ou esconder as réguas da Ecrã" +msgstr "Mostra todas as camadas" #: ../src/verbs.cpp:2675 -#, fuzzy msgid "_Hide all layers" -msgstr "Ocultar Camada" +msgstr "_Ocultar todas as camadas" #: ../src/verbs.cpp:2676 -#, fuzzy msgid "Hide all the layers" -msgstr "Ocultar Camada" +msgstr "Oculta todas as camadas" #: ../src/verbs.cpp:2677 -#, fuzzy msgid "_Lock all layers" -msgstr "Selecionar em todas as camadas" +msgstr "_Bloquear todas as camadas" #: ../src/verbs.cpp:2678 -#, fuzzy msgid "Lock all the layers" -msgstr "Mostrar ou esconder as réguas da Ecrã" +msgstr "Bloqueia todas as camadas" #: ../src/verbs.cpp:2679 -#, fuzzy msgid "Lock/Unlock _other layers" -msgstr "Bloquear ou desbloquear a camada actual" +msgstr "Bloquear ou desbloquear _outras camadas" #: ../src/verbs.cpp:2680 -#, fuzzy msgid "Lock all the other layers" -msgstr "Mostrar ou esconder as réguas da Ecrã" +msgstr "Bloqueia todas as outras camadas" #: ../src/verbs.cpp:2681 -#, fuzzy msgid "_Unlock all layers" -msgstr "DesBloquear Camada" +msgstr "_Desbloquear todas as camadas" #: ../src/verbs.cpp:2682 -#, fuzzy msgid "Unlock all the layers" -msgstr "Mostrar ou esconder as réguas da Ecrã" +msgstr "Desbloqueia todas as camadas" #: ../src/verbs.cpp:2683 -#, fuzzy msgid "_Lock/Unlock Current Layer" -msgstr "Bloquear ou desbloquear a camada actual" +msgstr "_Bloquear ou Desbloquear Camada Atual" #: ../src/verbs.cpp:2684 -#, fuzzy msgid "Toggle lock on current layer" -msgstr "Baixar a camada actual" +msgstr "Bloqueia ou desbloqueia a camada atual" #: ../src/verbs.cpp:2685 -#, fuzzy msgid "_Show/hide Current Layer" -msgstr "Mostrar ou esconder as réguas da Ecrã" +msgstr "_Ocultar ou Desocultar a Camada Atual" #: ../src/verbs.cpp:2686 -#, fuzzy msgid "Toggle visibility of current layer" -msgstr "Baixar a camada actual" +msgstr "Mostra ou oculta a camada atual" #. Object #: ../src/verbs.cpp:2689 -#, fuzzy msgid "Rotate _90° CW" -msgstr "Girar +_90° graus" +msgstr "Rodar _90°" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. #: ../src/verbs.cpp:2692 msgid "Rotate selection 90° clockwise" -msgstr "Girar a selecção 90° graus sentido hórario" +msgstr "Rodar a seleção 90° no sentido horário" #: ../src/verbs.cpp:2693 -#, fuzzy msgid "Rotate 9_0° CCW" -msgstr "Girar 9_0° graus" +msgstr "Rodar -9_0°" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. #: ../src/verbs.cpp:2696 msgid "Rotate selection 90° counter-clockwise" -msgstr "Girar a selecção 90° graus sentido anti-horário" +msgstr "Rodar a seleção 90° no sentido anti-horário" #: ../src/verbs.cpp:2697 msgid "Remove _Transformations" @@ -28890,27 +27298,29 @@ msgstr "Remover _Transformações" #: ../src/verbs.cpp:2698 msgid "Remove transformations from object" -msgstr "Remover transformações do objecto seleccionado" +msgstr "Remover transformações do objeto selecionado" #: ../src/verbs.cpp:2699 msgid "_Object to Path" -msgstr "_Objecto para Caminho" +msgstr "_Converter Objeto num Caminho" #: ../src/verbs.cpp:2700 msgid "Convert selected object to path" -msgstr "Converte os objectos seleccionados em caminhos" +msgstr "" +"Converte os objetos selecionados em caminhos, por exemplo converte " +"retângulos ou textos em caminhos" #: ../src/verbs.cpp:2701 msgid "_Flow into Frame" -msgstr "_Formatar Texto na Moldura" +msgstr "_Fluir na Moldura" #: ../src/verbs.cpp:2702 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" msgstr "" -"Posiciona o texto em uma moldura (forma ou caminho), criando uma caixa de " -"texto ligada ao objecto" +"Posiciona o texto numa moldura (forma ou caminho), criando um texto fluido " +"ligado à moldura do objeto" #: ../src/verbs.cpp:2703 msgid "_Unflow" @@ -28918,43 +27328,40 @@ msgstr "Retirar da Mold_ura" #: ../src/verbs.cpp:2704 msgid "Remove text from frame (creates a single-line text object)" -msgstr "" -"Remover texto da caixa de texto (criar um objecto de texto com linha simples)" +msgstr "Remover texto da moldura (cria um objeto com texto numa só linha)" #: ../src/verbs.cpp:2705 msgid "_Convert to Text" -msgstr "Converter para Texto" +msgstr "Retirar da Moldura mas Manter _Aparência" #: ../src/verbs.cpp:2706 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "" -"Converter o texto flutuante para um objecto de texto normal (preservar " -"aparência)" +"Converter texto fluido num texto normal (preservando a aparência na moldura)" #: ../src/verbs.cpp:2708 msgid "Flip _Horizontal" -msgstr "Inverter _Horizontalmente" +msgstr "Espelhar na _Horizontal" #: ../src/verbs.cpp:2708 msgid "Flip selected objects horizontally" -msgstr "Inverter objectos seleccionados horizontalmente" +msgstr "Espelhar horizontalmente os objetos selecionados" #: ../src/verbs.cpp:2711 msgid "Flip _Vertical" -msgstr "Inverter _Verticalmente" +msgstr "Espelhar na _Vertical" #: ../src/verbs.cpp:2711 msgid "Flip selected objects vertically" -msgstr "Inverter objectos seleccionados verticalmente" +msgstr "Espelhar verticalmente os objetos selecionados" #: ../src/verbs.cpp:2714 msgid "Apply mask to selection (using the topmost object as mask)" -msgstr "Aplicar mask para a selecção (usando o objecto acima como mask)" +msgstr "Aplica máscara à seleção (usando o objeto mais acima como máscara)" #: ../src/verbs.cpp:2716 -#, fuzzy msgid "Edit mask" -msgstr "Definir máscara" +msgstr "Editar máscara" #: ../src/verbs.cpp:2717 ../src/verbs.cpp:2725 msgid "_Release" @@ -28962,214 +27369,196 @@ msgstr "_Remover" #: ../src/verbs.cpp:2718 msgid "Remove mask from selection" -msgstr "Remover máscara da selecção" +msgstr "Remove a máscara da seleção" #: ../src/verbs.cpp:2720 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" -"Aplicar clip ao caminho da selecção (usa o objecto acima como o caminho para " -"o clip)" +"Aplicar caminho recortado à seleção (usando o objeto mais acima como caminho " +"recortado)" #: ../src/verbs.cpp:2721 -#, fuzzy msgid "Create Cl_ip Group" -msgstr "Criar Clo_ne" +msgstr "Criar Grupo de _Recorte" #: ../src/verbs.cpp:2722 -#, fuzzy msgid "Creates a clip group using the selected objects as a base" msgstr "" -"Criar um clone dos objectos seleccionados (uma cópia ligada ao original)" +"Cria um grupo de caminhos recortados utilizando os objetos selecionados como " +"base" #: ../src/verbs.cpp:2724 -#, fuzzy msgid "Edit clipping path" -msgstr "Definir caminho recortado" +msgstr "Editar caminho recortado" #: ../src/verbs.cpp:2726 msgid "Remove clipping path from selection" -msgstr "Remover clip ao caminho da selecção" +msgstr "Remover caminho recortado da seleção" #. Tools #: ../src/verbs.cpp:2731 -#, fuzzy msgctxt "ContextVerb" msgid "Select" msgstr "Selecionar" #: ../src/verbs.cpp:2732 msgid "Select and transform objects" -msgstr "Selecionar e transformar objectos" +msgstr "Ferramenta de Selecionar: selecionar e transformar objetos" #: ../src/verbs.cpp:2733 -#, fuzzy msgctxt "ContextVerb" msgid "Node Edit" -msgstr "Alterar Nó" +msgstr "Editar Nó" #: ../src/verbs.cpp:2734 msgid "Edit paths by nodes" -msgstr "Editar caminhos por nós" +msgstr "Ferramenta Nó: editar caminhos pelos nós" #: ../src/verbs.cpp:2735 -#, fuzzy msgctxt "ContextVerb" msgid "Tweak" -msgstr "Ajuste" +msgstr "Ajustar" #: ../src/verbs.cpp:2736 msgid "Tweak objects by sculpting or painting" -msgstr "Ajustar objectos ao esculpí-los ou pintá-los" +msgstr "" +"Ferramenta de Forças: altera objetos sob ação de forças gravíticas ou toque" #: ../src/verbs.cpp:2737 -#, fuzzy msgctxt "ContextVerb" msgid "Spray" -msgstr "Espiral" +msgstr "Pulverizar" #: ../src/verbs.cpp:2738 -#, fuzzy msgid "Spray objects by sculpting or painting" -msgstr "Ajustar objectos ao esculpí-los ou pintá-los" +msgstr "" +"Ferramenta Pulverizar: criar vários objetos iguais através de escultura ou " +"pintura" #: ../src/verbs.cpp:2739 -#, fuzzy msgctxt "ContextVerb" msgid "Rectangle" msgstr "Retângulo" #: ../src/verbs.cpp:2740 msgid "Create rectangles and squares" -msgstr "Criar retângulos e quadrados" +msgstr "Ferramenta Retângulo: criar retângulos e quadrados" #: ../src/verbs.cpp:2741 -#, fuzzy msgctxt "ContextVerb" msgid "3D Box" msgstr "Caixa 3D" #: ../src/verbs.cpp:2742 msgid "Create 3D boxes" -msgstr "Criar caixas 3D" +msgstr "Ferramenta Caixa 3D: criar caixas 3D em perspetiva" #: ../src/verbs.cpp:2743 -#, fuzzy msgctxt "ContextVerb" msgid "Ellipse" msgstr "Elipse" #: ../src/verbs.cpp:2744 msgid "Create circles, ellipses, and arcs" -msgstr "Criar círculos, elipses e arcos" +msgstr "Ferramenta Círculo: criar círculos, elipses e arcos" #: ../src/verbs.cpp:2745 -#, fuzzy msgctxt "ContextVerb" msgid "Star" -msgstr "Estrela" +msgstr "Polígono" #: ../src/verbs.cpp:2746 msgid "Create stars and polygons" -msgstr "Criar estrelas e polígonos" +msgstr "Ferramenta Polígono: criar polígonos e estrelas" #: ../src/verbs.cpp:2747 -#, fuzzy msgctxt "ContextVerb" msgid "Spiral" msgstr "Espiral" #: ../src/verbs.cpp:2748 msgid "Create spirals" -msgstr "Criar espirais" +msgstr "Ferramenta Espiral: criar espirais" #: ../src/verbs.cpp:2749 -#, fuzzy msgctxt "ContextVerb" msgid "Pencil" msgstr "Lápis" #: ../src/verbs.cpp:2750 msgid "Draw freehand lines" -msgstr "Desenhar linhas a mão-livre" +msgstr "Ferramenta Lápis: desenhar linhas à mão-livre" #: ../src/verbs.cpp:2751 -#, fuzzy msgctxt "ContextVerb" msgid "Pen" msgstr "Caneta" #: ../src/verbs.cpp:2752 msgid "Draw Bezier curves and straight lines" -msgstr "Desenhar curvas Bezier e linhas retas" +msgstr "Ferramenta Caneta: desenhar curvas Bézier e linhas retas" #: ../src/verbs.cpp:2753 -#, fuzzy msgctxt "ContextVerb" msgid "Calligraphy" msgstr "Caligrafia" #: ../src/verbs.cpp:2754 msgid "Draw calligraphic or brush strokes" -msgstr "Desenhar linhas caligráficas ou traços de pincel" +msgstr "" +"Ferramenta Caligrafia: desenhar linhas caligráficas ou traços de pincel" #: ../src/verbs.cpp:2756 msgid "Create and edit text objects" -msgstr "Criar e alterar objectos texto" +msgstr "Ferramenta Texto: criar e alterar textos" #: ../src/verbs.cpp:2757 -#, fuzzy msgctxt "ContextVerb" msgid "Gradient" -msgstr "Degradê" +msgstr "Gradiente" #: ../src/verbs.cpp:2758 msgid "Create and edit gradients" -msgstr "Criar e editar degradês" +msgstr "Ferramenta Gradiente: criar e editar gradientes" #: ../src/verbs.cpp:2759 msgctxt "ContextVerb" msgid "Mesh" -msgstr "" +msgstr "Malha" #: ../src/verbs.cpp:2760 -#, fuzzy msgid "Create and edit meshes" -msgstr "Criar e editar degradês" +msgstr "Ferramenta Malha: criar e editar malhas" #: ../src/verbs.cpp:2761 -#, fuzzy msgctxt "ContextVerb" msgid "Zoom" -msgstr "Ampliação" +msgstr "Lupa" #: ../src/verbs.cpp:2762 msgid "Zoom in or out" -msgstr "Ampliar ou Reduzir nível de zoom" +msgstr "Ferramenta Lupa: aumentar ou diminuir a vista" #: ../src/verbs.cpp:2764 -#, fuzzy msgid "Measurement tool" -msgstr "Unidade de medida:" +msgstr "Ferramenta Fita Métrica: medir e criar cotas no desenho" #: ../src/verbs.cpp:2765 -#, fuzzy msgctxt "ContextVerb" msgid "Dropper" -msgstr "Borrão" +msgstr "Pipeta" #: ../src/verbs.cpp:2767 -#, fuzzy msgctxt "ContextVerb" msgid "Connector" -msgstr "Conector" +msgstr "Conetor de Diagrama" #: ../src/verbs.cpp:2768 msgid "Create diagram connectors" -msgstr "Criar conectores de diagrama" +msgstr "Ferramenta Conetor de Diagrama: criar conetores de diagramas" #: ../src/verbs.cpp:2771 -#, fuzzy msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "Balde de Tinta" @@ -29177,112 +27566,105 @@ msgstr "Balde de Tinta" # Talvez seja melhor "próximas" ao invés de "coladas" #: ../src/verbs.cpp:2772 msgid "Fill bounded areas" -msgstr "Preencher áreas fechadas" +msgstr "Ferramenta Balde de Tinta: preencher áreas fechadas" #: ../src/verbs.cpp:2775 -#, fuzzy msgctxt "ContextVerb" msgid "LPE Edit" -msgstr "_Editar" +msgstr "Edição Efeitos Interativos em Caminhos" #: ../src/verbs.cpp:2776 -#, fuzzy msgid "Edit Path Effect parameters" -msgstr "Próximo " +msgstr "" +"Ferramenta Efeitos Interativos em Caminhos: editar parâmetros de Efeitos " +"Interativos em Caminhos" #: ../src/verbs.cpp:2777 -#, fuzzy msgctxt "ContextVerb" msgid "Eraser" -msgstr "Rasterizar" +msgstr "Borracha" #: ../src/verbs.cpp:2778 -#, fuzzy msgid "Erase existing paths" -msgstr "Soltar caminho recortado" +msgstr "Ferramenta Borracha: apagar caminhos existentes" #: ../src/verbs.cpp:2779 -#, fuzzy msgctxt "ContextVerb" msgid "LPE Tool" -msgstr "Ferramentas" +msgstr "Ferramenta Efeitos Interativos em Caminhos" #: ../src/verbs.cpp:2780 msgid "Do geometric constructions" -msgstr "" +msgstr "Fazer construções geométricas" #. Tool prefs #: ../src/verbs.cpp:2782 msgid "Selector Preferences" -msgstr "Propriedades do Seletor" +msgstr "Preferências da Ferramenta Selecionar" #: ../src/verbs.cpp:2783 msgid "Open Preferences for the Selector tool" -msgstr "Abrir Preferências para a ferramenta Seletor" +msgstr "Abrir Preferências da Ferramenta Selecionar" #: ../src/verbs.cpp:2784 msgid "Node Tool Preferences" -msgstr "Propriedades da Ferramenta Nó" +msgstr "Preferências da Ferramenta Nó" #: ../src/verbs.cpp:2785 msgid "Open Preferences for the Node tool" -msgstr "Abre as Preferências da Ferramenta Nó" +msgstr "Abrir Preferências da Ferramenta Nó" #: ../src/verbs.cpp:2786 msgid "Tweak Tool Preferences" -msgstr "Preferências da Ferramenta de Ajuster" +msgstr "Preferências da Ferramenta de Ajuste" #: ../src/verbs.cpp:2787 -#, fuzzy msgid "Open Preferences for the Tweak tool" -msgstr "Abrir Preferências da Ferramenta de Texto" +msgstr "Abrir Preferências da Ferramenta de Ajuste" #: ../src/verbs.cpp:2788 -#, fuzzy msgid "Spray Tool Preferences" -msgstr "Propriedades de Espirais" +msgstr "Preferências da Ferramenta Pulverizar" #: ../src/verbs.cpp:2789 -#, fuzzy msgid "Open Preferences for the Spray tool" -msgstr "Abrir Preferências da Ferramenta Espiral" +msgstr "Abrir Preferências da Ferramenta Pulverizar" #: ../src/verbs.cpp:2790 msgid "Rectangle Preferences" -msgstr "Propriedades de Retângulos" +msgstr "Preferências da Ferramenta Retângulo" #: ../src/verbs.cpp:2791 msgid "Open Preferences for the Rectangle tool" -msgstr "Abre as Preferências da ferramenta Retângulo" +msgstr "Abrir Preferências da Ferramenta Retângulo" #: ../src/verbs.cpp:2792 msgid "3D Box Preferences" -msgstr "Preferências de Caixa 3D" +msgstr "Preferências da Ferramenta Caixa 3D" #: ../src/verbs.cpp:2793 -#, fuzzy msgid "Open Preferences for the 3D Box tool" -msgstr "Abre as Preferências da Ferramenta Nó" +msgstr "Abrir Preferências da Ferramenta Caixa 3D" #: ../src/verbs.cpp:2794 msgid "Ellipse Preferences" -msgstr "Propriedades de Elipses" +msgstr "Preferências da Ferramenta Elipse" #: ../src/verbs.cpp:2795 msgid "Open Preferences for the Ellipse tool" -msgstr "Abre as Preferências da ferramenta Elipse" +msgstr "Abrir Preferências da Ferramenta Elipse" #: ../src/verbs.cpp:2796 msgid "Star Preferences" -msgstr "Propriedades de Estrelas" +msgstr "Preferências da Ferramenta Polígono e Estrela" #: ../src/verbs.cpp:2797 msgid "Open Preferences for the Star tool" -msgstr "Abre as Preferências da ferramenta Estrela" +msgstr "Abrir Preferências da Ferramenta Polígono e Estrela" #: ../src/verbs.cpp:2798 msgid "Spiral Preferences" -msgstr "Propriedades de Espirais" +msgstr "Preferências da Ferramenta Espiral" #: ../src/verbs.cpp:2799 msgid "Open Preferences for the Spiral tool" @@ -29290,7 +27672,7 @@ msgstr "Abrir Preferências da Ferramenta Espiral" #: ../src/verbs.cpp:2800 msgid "Pencil Preferences" -msgstr "Propriedades do Lápis" +msgstr "Preferências da Ferramenta Lápis" #: ../src/verbs.cpp:2801 msgid "Open Preferences for the Pencil tool" @@ -29298,7 +27680,7 @@ msgstr "Abrir Preferências da Ferramenta Lápis" #: ../src/verbs.cpp:2802 msgid "Pen Preferences" -msgstr "Propriedades da Caneta" +msgstr "Preferências da Ferramenta Caneta" #: ../src/verbs.cpp:2803 msgid "Open Preferences for the Pen tool" @@ -29306,15 +27688,15 @@ msgstr "Abrir Preferências da Ferramenta Caneta" #: ../src/verbs.cpp:2804 msgid "Calligraphic Preferences" -msgstr "Propriedades de Linhas Caligráficas" +msgstr "Preferências da Ferramenta Caligrafia" #: ../src/verbs.cpp:2805 msgid "Open Preferences for the Calligraphy tool" -msgstr "Abrir Preferências da Ferramenta Caligráfica" +msgstr "Abrir Preferências da Ferramenta Caligrafia" #: ../src/verbs.cpp:2806 msgid "Text Preferences" -msgstr "Propriedades de Textos" +msgstr "Preferências da Ferramenta Texto" #: ../src/verbs.cpp:2807 msgid "Open Preferences for the Text tool" @@ -29322,84 +27704,75 @@ msgstr "Abrir Preferências da Ferramenta de Texto" #: ../src/verbs.cpp:2808 msgid "Gradient Preferences" -msgstr "Preferências do degradê" +msgstr "Preferências da Ferramenta Gradiente" #: ../src/verbs.cpp:2809 msgid "Open Preferences for the Gradient tool" -msgstr "Abrir Preferências da Ferramenta de degradê" +msgstr "Abrir Preferências da Ferramenta de Gradiente" #: ../src/verbs.cpp:2810 -#, fuzzy msgid "Mesh Preferences" -msgstr "Propriedades de Estrelas" +msgstr "Preferências da Ferramenta Malha" #: ../src/verbs.cpp:2811 -#, fuzzy msgid "Open Preferences for the Mesh tool" -msgstr "Abre as Preferências da ferramenta Estrela" +msgstr "Abrir Preferências da ferramenta Malha" #: ../src/verbs.cpp:2812 msgid "Zoom Preferences" -msgstr "Propriedades de Ampliações" +msgstr "Preferências da Ferramenta Lupa" #: ../src/verbs.cpp:2813 msgid "Open Preferences for the Zoom tool" -msgstr "Abrir Preferências da Ferramenta de Ampliação" +msgstr "Abrir Preferências da Ferramenta Lupa" #: ../src/verbs.cpp:2814 -#, fuzzy msgid "Measure Preferences" -msgstr "Propriedades de Estrelas" +msgstr "Preferências da Ferramenta Fita Métrica" #: ../src/verbs.cpp:2815 -#, fuzzy msgid "Open Preferences for the Measure tool" -msgstr "Abre as Preferências da ferramenta Estrela" +msgstr "Abrir Preferências da ferramenta de Medir" #: ../src/verbs.cpp:2816 msgid "Dropper Preferences" -msgstr "Propriedades do Borrão" +msgstr "Preferências da Ferramenta Pipeta" #: ../src/verbs.cpp:2817 msgid "Open Preferences for the Dropper tool" -msgstr "Abrir Preferências da Ferramenta Borrão" +msgstr "Abrir Preferências da Ferramenta Pipeta" #: ../src/verbs.cpp:2818 msgid "Connector Preferences" -msgstr "Propriedades do Seletor" +msgstr "Preferências da Ferramenta Conetor de Diagrama" #: ../src/verbs.cpp:2819 msgid "Open Preferences for the Connector tool" -msgstr "Abre as Preferências da ferramenta Conector" +msgstr "Abrir Preferências da ferramenta Conetor" #: ../src/verbs.cpp:2822 msgid "Paint Bucket Preferences" -msgstr "Preferências do balde de tinta" +msgstr "Preferências da Ferramenta Balde de Tinta" #: ../src/verbs.cpp:2823 -#, fuzzy msgid "Open Preferences for the Paint Bucket tool" -msgstr "Abrir Preferências da Ferramenta Caneta" +msgstr "Abrir Preferências da ferramenta Balde de Tinta" #: ../src/verbs.cpp:2826 -#, fuzzy msgid "Eraser Preferences" -msgstr "Propriedades de Estrelas" +msgstr "Preferências da Ferramenta Borracha" #: ../src/verbs.cpp:2827 -#, fuzzy msgid "Open Preferences for the Eraser tool" -msgstr "Abre as Preferências da ferramenta Estrela" +msgstr "Abrir Preferências da ferramenta Borracha" #: ../src/verbs.cpp:2828 -#, fuzzy msgid "LPE Tool Preferences" -msgstr "Propriedades da Ferramenta Nó" +msgstr "Preferências da Ferramenta Efeitos Interativos em Caminhos" #: ../src/verbs.cpp:2829 -#, fuzzy msgid "Open Preferences for the LPETool tool" -msgstr "Abrir Preferências da Ferramenta de Ampliação" +msgstr "Abrir Preferências da ferramenta Efeitos Interativos em Caminhos" #. Zoom/View #: ../src/verbs.cpp:2831 @@ -29408,7 +27781,7 @@ msgstr "Ampliar" #: ../src/verbs.cpp:2831 msgid "Zoom in" -msgstr "Ampliar" +msgstr "Ampliar vista" #: ../src/verbs.cpp:2832 msgid "Zoom Out" @@ -29416,7 +27789,7 @@ msgstr "Reduzir" #: ../src/verbs.cpp:2832 msgid "Zoom out" -msgstr "Reduzir" +msgstr "Reduzir vista" #: ../src/verbs.cpp:2833 msgid "_Rulers" @@ -29424,25 +27797,26 @@ msgstr "_Réguas" #: ../src/verbs.cpp:2833 msgid "Show or hide the canvas rulers" -msgstr "Mostrar ou esconder as réguas da Ecrã" +msgstr "Mostrar ou esconder as réguas" #: ../src/verbs.cpp:2834 msgid "Scroll_bars" -msgstr "_Barras de Rolagem" +msgstr "_Barras de Elevadores" #: ../src/verbs.cpp:2834 msgid "Show or hide the canvas scrollbars" -msgstr "Mostrar ou esconder as barras de rolagem da Ecrã" +msgstr "" +"Mostrar ou esconder as barras de deslocação da vista que se encontram " +"normalmente do lado direito e inferior" +# não usar "Grelha da Página" porque a grelha não é mostrada apenas na página mas na área de desenho toda #: ../src/verbs.cpp:2835 -#, fuzzy msgid "Page _Grid" -msgstr "_Largura da Página" +msgstr "_Grelha" #: ../src/verbs.cpp:2835 -#, fuzzy msgid "Show or hide the page grid" -msgstr "Mostrar ou esconder a grelha da Ecrã" +msgstr "Mostrar ou esconder a grelha" #: ../src/verbs.cpp:2836 msgid "G_uides" @@ -29450,58 +27824,51 @@ msgstr "G_uias" #: ../src/verbs.cpp:2836 msgid "Show or hide guides (drag from a ruler to create a guide)" -msgstr "" -"Mostrar ou esconder guias (clique e arraste a partir de uma das réguas para " -"criar uma guia)" +msgstr "Mostrar ou esconder guias (arrastar de uma régua para criar 1 guia)" #: ../src/verbs.cpp:2837 -#, fuzzy msgid "Enable snapping" -msgstr "Pré-Visualizar Ao Vivo" +msgstr "Ativar atração" #: ../src/verbs.cpp:2838 -#, fuzzy msgid "_Commands Bar" -msgstr "Barra de Comandos" +msgstr "Barra de _Botões Principais" #: ../src/verbs.cpp:2838 msgid "Show or hide the Commands bar (under the menu)" -msgstr "Mostrar ou esconder a Barra de Comandos (sob o menu)" +msgstr "Mostrar ou esconder a Barra de Botões Principais (abaixo do menu)" #: ../src/verbs.cpp:2839 -#, fuzzy msgid "Sn_ap Controls Bar" -msgstr "Barra de Controles de Ferramenta" +msgstr "Barra da Ferramenta de Atração" #: ../src/verbs.cpp:2839 -#, fuzzy msgid "Show or hide the snapping controls" -msgstr "Mostrar ou esconder a Barra de Controles de Ferramenta" +msgstr "Mostrar ou esconder os botões da ferramenta de atração" #: ../src/verbs.cpp:2840 -#, fuzzy msgid "T_ool Controls Bar" -msgstr "Barra de Controles de Ferramenta" +msgstr "Barra da Ferramenta _Atual" #: ../src/verbs.cpp:2840 msgid "Show or hide the Tool Controls bar" -msgstr "Mostrar ou esconder a Barra de Controles de Ferramenta" +msgstr "Mostrar ou esconder a Barra da Ferramenta Atual" #: ../src/verbs.cpp:2841 msgid "_Toolbox" -msgstr "Caixa de _Ferramentas" +msgstr "Barra de _Ferramentas" #: ../src/verbs.cpp:2841 msgid "Show or hide the main toolbox (on the left)" -msgstr "Mostrar ou esconder a caixa de ferramentas principal (à esquerda)" +msgstr "Mostrar ou esconder a barra de ferramentas principal (à esquerda)" #: ../src/verbs.cpp:2842 msgid "_Palette" -msgstr "_Paleta" +msgstr "_Palete de cores" #: ../src/verbs.cpp:2842 msgid "Show or hide the color palette" -msgstr "Mostrar ou esconder a paleta de cores" +msgstr "Mostrar ou esconder a palete de cores" #: ../src/verbs.cpp:2843 msgid "_Statusbar" @@ -29509,7 +27876,7 @@ msgstr "Barra de E_stado" #: ../src/verbs.cpp:2843 msgid "Show or hide the statusbar (at the bottom of the window)" -msgstr "Mostra ou esconde a barra de estado (em baixo na janela)" +msgstr "Mostra ou esconde a barra de estado (no fundo da janela)" #: ../src/verbs.cpp:2844 msgid "Nex_t Zoom" @@ -29525,7 +27892,7 @@ msgstr "Amp_liação Anterior" #: ../src/verbs.cpp:2846 msgid "Previous zoom (from the history of zooms)" -msgstr "Ampliação Anterior (da lista de ampliações utilizadas)" +msgstr "Ampliação anterior (da lista de ampliações utilizadas)" #: ../src/verbs.cpp:2848 msgid "Zoom 1:_1" @@ -29533,7 +27900,7 @@ msgstr "Ampliação 1:_1" #: ../src/verbs.cpp:2848 msgid "Zoom to 1:1" -msgstr "Mostra do tamanho original do desenho" +msgstr "Mostra o desenho no tamanho original" #: ../src/verbs.cpp:2850 msgid "Zoom 1:_2" @@ -29541,7 +27908,7 @@ msgstr "Ampliação 1:_2" #: ../src/verbs.cpp:2850 msgid "Zoom to 1:2" -msgstr "Mostra no dobro do tamanho do desenho" +msgstr "Mostra o desenho no dobro do tamanho" #: ../src/verbs.cpp:2852 msgid "_Zoom 2:1" @@ -29549,27 +27916,28 @@ msgstr "Ampliaçã_o 2:1" #: ../src/verbs.cpp:2852 msgid "Zoom to 2:1" -msgstr "Mostra na metade do tamanho do desenho" +msgstr "Mostra o desenho na metade do tamanho" #: ../src/verbs.cpp:2854 msgid "_Fullscreen" -msgstr "_Ecrã cheia" +msgstr "_Ecrã inteiro" #: ../src/verbs.cpp:2854 ../src/verbs.cpp:2856 msgid "Stretch this document window to full screen" -msgstr "Alarga esta janela de desenho para ocupar todo o monitor" +msgstr "Alarga esta janela por forma a ocupar todo o monitor" #: ../src/verbs.cpp:2856 msgid "Fullscreen & Focus Mode" -msgstr "" +msgstr "Ecrã Inteiro e Modo de Foco" #: ../src/verbs.cpp:2858 msgid "Toggle _Focus Mode" -msgstr "" +msgstr "Alternar Modo de _Foco" #: ../src/verbs.cpp:2858 msgid "Remove excess toolbars to focus on drawing" msgstr "" +"Remove barras de ferramentas excessivas para focar a atenção no desenho" #: ../src/verbs.cpp:2860 msgid "Duplic_ate Window" @@ -29577,7 +27945,7 @@ msgstr "Duplic_ar Janela" #: ../src/verbs.cpp:2860 msgid "Open a new window with the same document" -msgstr "Abre uma novo janela com o mesmo desenho" +msgstr "Abre uma nova janela com o mesmo desenho" #: ../src/verbs.cpp:2862 msgid "_New View Preview" @@ -29585,7 +27953,7 @@ msgstr "_Nova Visualização" #: ../src/verbs.cpp:2863 msgid "New View Preview" -msgstr "Nova visualização" +msgstr "Nova Visualização" #. "view_new_preview" #: ../src/verbs.cpp:2865 ../src/verbs.cpp:2873 @@ -29594,17 +27962,15 @@ msgstr "_Normal" #: ../src/verbs.cpp:2866 msgid "Switch to normal display mode" -msgstr "Trocar para o modo de visualização normal" +msgstr "Mudar para o modo de visualização normal" #: ../src/verbs.cpp:2867 -#, fuzzy msgid "No _Filters" -msgstr "_Filtrar" +msgstr "Sem _Filtros" #: ../src/verbs.cpp:2868 -#, fuzzy msgid "Switch to normal display without filters" -msgstr "Trocar para o modo de visualização normal" +msgstr "Mudar para o modo de visualização sem filtros" #: ../src/verbs.cpp:2869 msgid "_Outline" @@ -29612,7 +27978,7 @@ msgstr "_Contorno" #: ../src/verbs.cpp:2870 msgid "Switch to outline (wireframe) display mode" -msgstr "Trocar para o modo de visualização de contorno" +msgstr "Mudar para o modo de visualização de contornos (linhas)" #. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"), #. N_("Switch to print colors preview mode"), NULL), @@ -29622,46 +27988,39 @@ msgstr "Al_ternar" #: ../src/verbs.cpp:2872 msgid "Toggle between normal and outline display modes" -msgstr "Alternar entre os modos de visualização" +msgstr "Alternar entre os modos de visualização normal e contorno" #: ../src/verbs.cpp:2874 -#, fuzzy msgid "Switch to normal color display mode" -msgstr "Trocar para o modo de visualização normal" +msgstr "Mudar para o modo de visualização a cores normal" #: ../src/verbs.cpp:2875 -#, fuzzy msgid "_Grayscale" -msgstr "Escala de cinzas" +msgstr "_Escala de cinzas" #: ../src/verbs.cpp:2876 -#, fuzzy msgid "Switch to grayscale display mode" -msgstr "Trocar para o modo de visualização normal" +msgstr "Mudar para o modo de visualização em cinzas" #: ../src/verbs.cpp:2880 -#, fuzzy msgid "Toggle between normal and grayscale color display modes" -msgstr "Alternar entre os modos de visualização" +msgstr "Alternar entre os modos de visualização a cores e modo a cinzas" #: ../src/verbs.cpp:2882 -#, fuzzy msgid "Color-managed view" -msgstr "Gerenciamento de cor" +msgstr "Visualização com gestão de cor" #: ../src/verbs.cpp:2883 -#, fuzzy msgid "Toggle color-managed display for this document window" -msgstr "Fechar a janela do documento" +msgstr "Alternar entre visualização com gestão de cor ou não nesta janela" #: ../src/verbs.cpp:2885 msgid "Ico_n Preview..." -msgstr "Pré-visualização do Ãco_ne..." +msgstr "Prever Ãco_ne..." #: ../src/verbs.cpp:2886 msgid "Open a window to preview objects at different icon resolutions" -msgstr "" -"Abre uma janela para pré-visualizar itens em diferentes resoluções de ícone" +msgstr "Abre uma janela para prever ícones com vários tamanhos" #: ../src/verbs.cpp:2888 msgid "Zoom to fit page in window" @@ -29681,104 +28040,99 @@ msgstr "Ampliar para caber o desenho na janela" #: ../src/verbs.cpp:2894 msgid "Zoom to fit selection in window" -msgstr "Ampliar para caber a selecção na janela" +msgstr "Ampliar para caber a seleção na janela" #. Dialogs #: ../src/verbs.cpp:2897 -#, fuzzy msgid "P_references..." -msgstr "Propriedades da Caneta" +msgstr "P_referências..." #: ../src/verbs.cpp:2898 msgid "Edit global Inkscape preferences" -msgstr "Editar configurações globais do Inkscape" +msgstr "Editar preferências globais do Inkscape" #: ../src/verbs.cpp:2899 msgid "_Document Properties..." -msgstr "Propriedades do _Desenho..." +msgstr "Propriedades do _Documento..." #: ../src/verbs.cpp:2900 msgid "Edit properties of this document (to be saved with the document)" -msgstr "Propriedades salvas com o desenho" +msgstr "Editar propriedades deste documento (a serem gravados no documento)" #: ../src/verbs.cpp:2901 msgid "Document _Metadata..." -msgstr "_Metadados do Desenho..." +msgstr "_Metadados do Documento..." #: ../src/verbs.cpp:2902 msgid "Edit document metadata (to be saved with the document)" -msgstr "Metadados salvos com o desenho" +msgstr "Editar metadados do documento (a serem gravados no documento)" #: ../src/verbs.cpp:2904 -#, fuzzy msgid "" "Edit objects' colors, gradients, arrowheads, and other fill and stroke " "properties..." msgstr "" -"Editar cores de objectos, degradês, largura de traço, pontas de setas, " -"padrões de traço..." +"Editar cores dos objetos, gradientes, pontas de setas, e outras propriedades " +"do preenchimento e traço..." #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon #: ../src/verbs.cpp:2906 msgid "Gl_yphs..." -msgstr "" +msgstr "_Caracteres..." #: ../src/verbs.cpp:2907 -#, fuzzy msgid "Select characters from a glyphs palette" -msgstr "Selecionar cores de uma paleta modelo" +msgstr "Selecionar caracteres de uma paleta de caracteres" #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-color" icon #. TRANSLATORS: "Swatches" means: color samples #: ../src/verbs.cpp:2910 msgid "S_watches..." -msgstr "Modelos de Cores..." +msgstr "Amostras de _Cores..." #: ../src/verbs.cpp:2911 msgid "Select colors from a swatches palette" -msgstr "Selecionar cores de uma paleta modelo" +msgstr "Selecionar cores de uma paleta de amostras de cores" #: ../src/verbs.cpp:2912 msgid "S_ymbols..." -msgstr "" +msgstr "Símbo_los..." #: ../src/verbs.cpp:2913 -#, fuzzy msgid "Select symbol from a symbols palette" -msgstr "Selecionar cores de uma paleta modelo" +msgstr "Selecionar símbolo de uma paleta de símbolos" #: ../src/verbs.cpp:2914 msgid "Transfor_m..." -msgstr "Transfor_mação..." +msgstr "_Transformar..." #: ../src/verbs.cpp:2915 msgid "Precisely control objects' transformations" -msgstr "Controlar precisamente as transformações dos objectos" +msgstr "Controlar com precisão as transformações dos objetos" #: ../src/verbs.cpp:2916 msgid "_Align and Distribute..." -msgstr "_Alinhar e Distribuir..." +msgstr "Al_inhar e Distribuir..." #: ../src/verbs.cpp:2917 msgid "Align and distribute objects" -msgstr "Alinhar e distribuir objectos" +msgstr "Alinhar e distribuir objetos" #: ../src/verbs.cpp:2918 msgid "_Spray options..." -msgstr "" +msgstr "Opções de _Pulverizar..." #: ../src/verbs.cpp:2919 -#, fuzzy msgid "Some options for the spray" -msgstr "Largura do padrão" +msgstr "Algumas opções da ferramenta pulverizar" #: ../src/verbs.cpp:2920 msgid "Undo _History..." -msgstr "_Histórico do desfazer..." +msgstr "_Histórico de Alterações..." #: ../src/verbs.cpp:2921 msgid "Undo History" -msgstr "Histórico do desfazer" +msgstr "Histórico de Alterações" #: ../src/verbs.cpp:2923 msgid "View and select font family, font size and other text properties" @@ -29790,30 +28144,27 @@ msgstr "Editor _XML..." #: ../src/verbs.cpp:2925 msgid "View and edit the XML tree of the document" -msgstr "Ver e editar a árvore XML do desenho" +msgstr "Ver e editar a árvore XML do documento" #: ../src/verbs.cpp:2926 -#, fuzzy msgid "_Find/Replace..." -msgstr "_Encontrar..." +msgstr "_Procurar/Substituir..." #: ../src/verbs.cpp:2927 msgid "Find objects in document" -msgstr "Encontrar objectos no desenho" +msgstr "Encontra objetos no documento" #: ../src/verbs.cpp:2928 msgid "Find and _Replace Text..." -msgstr "" +msgstr "Procu_rar e Substituir Texto...." #: ../src/verbs.cpp:2929 -#, fuzzy msgid "Find and replace text in document" -msgstr "Encontrar objectos no desenho" +msgstr "Procurar e substituir texto no documento" #: ../src/verbs.cpp:2931 -#, fuzzy msgid "Check spelling of text in document" -msgstr "Abrir um desenho existente" +msgstr "Verificar ortografia do texto no documento" #: ../src/verbs.cpp:2932 msgid "_Messages..." @@ -29825,11 +28176,11 @@ msgstr "Ver mensagens de depuração" #: ../src/verbs.cpp:2934 msgid "Show/Hide D_ialogs" -msgstr "Mostrar/Esconder Ca_ixas de Diálogo" +msgstr "Mostrar/Esconder _Painéis Laterais" #: ../src/verbs.cpp:2935 msgid "Show or hide all open dialogs" -msgstr "Mostrar ou esconder todas as janelas ativas" +msgstr "Mostrar ou esconder todos os painéis laterais da direita" #: ../src/verbs.cpp:2936 msgid "Create Tiled Clones..." @@ -29840,23 +28191,22 @@ msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" msgstr "" -"Criar múltiplos clones do objecto seleccionado, arrumando-os em um padrão " -"definido" +"Criar múltiplos clones do objeto selecionado, arrumando-os num padrão ou " +"dispersão" #: ../src/verbs.cpp:2938 -#, fuzzy msgid "_Object attributes..." -msgstr "Propriedades do _Objecto" +msgstr "Atributos do _Objeto..." #: ../src/verbs.cpp:2939 -#, fuzzy msgid "Edit the object attributes..." -msgstr "Ajustar atributo" +msgstr "Editar atributos do objeto..." #: ../src/verbs.cpp:2941 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" -"Editar a ID, estados de visão e edição e outras propriedades do objecto" +"Editar o ID, estados de bloqueio e visibilidade e outras propriedades do " +"objeto" #: ../src/verbs.cpp:2942 msgid "_Input Devices..." @@ -29874,7 +28224,7 @@ msgstr "_Extensões..." #: ../src/verbs.cpp:2945 msgid "Query information about extensions" -msgstr "Buscar informações sobre extensões" +msgstr "Procurar informações sobre extensões" #: ../src/verbs.cpp:2946 msgid "Layer_s..." @@ -29882,94 +28232,83 @@ msgstr "_Camadas..." #: ../src/verbs.cpp:2947 msgid "View Layers" -msgstr "Visualizar Camadas" +msgstr "Ver Camadas" #: ../src/verbs.cpp:2948 -#, fuzzy msgid "Object_s..." -msgstr "Objectos" +msgstr "Objeto_s..." #: ../src/verbs.cpp:2949 -#, fuzzy msgid "View Objects" -msgstr "Objectos" +msgstr "Ver Objetos" #: ../src/verbs.cpp:2950 -#, fuzzy msgid "Selection se_ts..." -msgstr "Seleção" +msgstr "Conjuntos de seleções..." #: ../src/verbs.cpp:2951 -#, fuzzy msgid "View Tags" -msgstr "Visualizar Camadas" +msgstr "Ver Etiquetas" #: ../src/verbs.cpp:2952 -#, fuzzy msgid "Path E_ffects ..." -msgstr "Caminho de Efeitos..." +msgstr "E_feitos em Tempo Real no Caminho..." #: ../src/verbs.cpp:2953 -#, fuzzy msgid "Manage, edit, and apply path effects" -msgstr "Criar e aplicar efeito de caminho" +msgstr "Gerir, editar e aplicar efeitos em tempo real nos caminhos" #: ../src/verbs.cpp:2954 -#, fuzzy msgid "Filter _Editor..." -msgstr "Filtro de Efeitos..." +msgstr "_Editor de Filtros..." #: ../src/verbs.cpp:2955 -#, fuzzy msgid "Manage, edit, and apply SVG filters" -msgstr "Administrar efeitos de filtro SVG" +msgstr "Gerir, editar e aplicar filtros SVG" #: ../src/verbs.cpp:2956 -#, fuzzy msgid "SVG Font Editor..." -msgstr "Editor _XML..." +msgstr "Editor de Fontes SVG..." #: ../src/verbs.cpp:2957 -#, fuzzy msgid "Edit SVG fonts" -msgstr "Administrar efeitos de filtro SVG" +msgstr "Editar fontes SVG" #: ../src/verbs.cpp:2958 -#, fuzzy msgid "Print Colors..." -msgstr "Im_primir..." +msgstr "Imprimir Cores..." #: ../src/verbs.cpp:2959 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" +"Selecionar quais as separações de cor a renderizar no modo Prever Cores de " +"Impressão" #: ../src/verbs.cpp:2960 -#, fuzzy msgid "_Export PNG Image..." -msgstr "Extrair Uma Imagem" +msgstr "_Exportar para Imagem PNG..." #: ../src/verbs.cpp:2961 -#, fuzzy msgid "Export this document or a selection as a PNG image" -msgstr "Exportar o documento ou a selecção como uma imagem bitmap" +msgstr "Exportar este documento ou a seleção como imagem PNG" #. Help #: ../src/verbs.cpp:2963 msgid "About E_xtensions" -msgstr "Sobre E_xtensões" +msgstr "Sobre as E_xtensões" #: ../src/verbs.cpp:2964 msgid "Information on Inkscape extensions" -msgstr "Informações sobre extensões do Inkscape" +msgstr "Informações sobre as extensões do Inkscape" #: ../src/verbs.cpp:2965 msgid "About _Memory" -msgstr "Sobre a _Memória" +msgstr "Sobre a _Memória RAM" #: ../src/verbs.cpp:2966 msgid "Memory usage information" -msgstr "Informações sobre uso de memória" +msgstr "Informações sobre uso de memória RAM" #: ../src/verbs.cpp:2967 msgid "_About Inkscape" @@ -29977,7 +28316,7 @@ msgstr "_Sobre o Inkscape" #: ../src/verbs.cpp:2968 msgid "Inkscape version, authors, license" -msgstr "Inkscape versão, autores, licença" +msgstr "Versão, autores e licença do Inkscape" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), @@ -29997,7 +28336,7 @@ msgstr "Inkscape: Forma_s" #: ../src/verbs.cpp:2976 msgid "Using shape tools to create and edit shapes" -msgstr "Usar ferramentas de formas para criar e alterar formas" +msgstr "Usar ferramentas de formas geométricas para criar e alterar formas" #: ../src/verbs.cpp:2977 msgid "Inkscape: _Advanced" @@ -30005,25 +28344,24 @@ msgstr "Inkscape: _Avançado" #: ../src/verbs.cpp:2978 msgid "Advanced Inkscape topics" -msgstr "Tópicos Avançados do Inkscape" +msgstr "Tópicos avançados do Inkscape" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) #: ../src/verbs.cpp:2982 msgid "Inkscape: T_racing" -msgstr "Inkscape: Traçando" +msgstr "Inkscape: Ve_torização" #: ../src/verbs.cpp:2983 msgid "Using bitmap tracing" -msgstr "Usando o traçador de bitmaps" +msgstr "Usando o vetorizador de imagens bitmap" #: ../src/verbs.cpp:2986 -#, fuzzy msgid "Inkscape: Tracing Pixel Art" -msgstr "Inkscape: Traçando" +msgstr "Inkscape: Vetorizar Arte de Píxeis" #: ../src/verbs.cpp:2987 msgid "Using Trace Pixel Art dialog" -msgstr "" +msgstr "Janela Usando Vetorização de Arte de Píxeis" #: ../src/verbs.cpp:2988 msgid "Inkscape: _Calligraphy" @@ -30034,22 +28372,21 @@ msgid "Using the Calligraphy pen tool" msgstr "Utilizando a ferramenta Caneta Caligráfica" #: ../src/verbs.cpp:2990 -#, fuzzy msgid "Inkscape: _Interpolate" -msgstr "Inkscape: Forma_s" +msgstr "Inkscape: _Interpolar" #: ../src/verbs.cpp:2991 msgid "Using the interpolate extension" -msgstr "" +msgstr "Usar a extensão de interpolação" #. "tutorial_interpolate" #: ../src/verbs.cpp:2992 msgid "_Elements of Design" -msgstr "_Elementos do Desenho" +msgstr "_Elementos do Design" #: ../src/verbs.cpp:2993 msgid "Principles of design in the tutorial form" -msgstr "Tutorial sobre os princípios do desenho" +msgstr "Tutorial sobre os princípios do design" #. "tutorial_design" #: ../src/verbs.cpp:2994 @@ -30058,137 +28395,120 @@ msgstr "Dicas e _Truques" #: ../src/verbs.cpp:2995 msgid "Miscellaneous tips and tricks" -msgstr "Dicas e truques variados" +msgstr "Dicas e truques" #. "tutorial_tips" #. Effect -- renamed Extension #: ../src/verbs.cpp:2998 -#, fuzzy msgid "Previous Exte_nsion" -msgstr "Sobre E_xtensões" +msgstr "Exte_nsão Anterior" #: ../src/verbs.cpp:2999 -#, fuzzy msgid "Repeat the last extension with the same settings" -msgstr "Repetir o último efeito com as mesmas configurações" +msgstr "Repetir a última extensão com as mesmas configurações" #: ../src/verbs.cpp:3000 -#, fuzzy msgid "_Previous Extension Settings..." -msgstr "Configuração de efeito anterior..." +msgstr "_Configurações da Extensão Anterior..." #: ../src/verbs.cpp:3001 -#, fuzzy msgid "Repeat the last extension with new settings" -msgstr "Repetir o último efeito com novas configurações" +msgstr "Repetir a última extensão com as novas configurações" #: ../src/verbs.cpp:3005 msgid "Fit the page to the current selection" -msgstr "Ajusta a Ecrã à selecção actual" +msgstr "Ajusta a página à seleção atual" #: ../src/verbs.cpp:3007 msgid "Fit the page to the drawing" -msgstr "Ajusta a Ecrã ao desenho" +msgstr "Ajusta a página ao desenho" #: ../src/verbs.cpp:3008 -#, fuzzy msgid "_Resize Page to Selection" -msgstr "Ajustar Ecrã à Seleção" +msgstr "_Dimensionar Página à Seleção" #: ../src/verbs.cpp:3009 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" -"Ajustar a Ecrã à selecção actual ou ao desenho se não houver nada " -"seleccionado" +"Alterar tamanho da página para o tamanho da seleção atual ou ao desenho se " +"não houver nada selecionado" #: ../src/verbs.cpp:3013 msgid "Unlock All in All Layers" -msgstr "DesBloquear Tudo em Todas as Camadas" +msgstr "Desbloquear Tudo em Todas as Camadas" #: ../src/verbs.cpp:3015 msgid "Unhide All" -msgstr "Mostrar Tudo" +msgstr "Desocultar Tudo" #: ../src/verbs.cpp:3017 msgid "Unhide All in All Layers" -msgstr "Mostrar Tudo em Todas as Camadas" +msgstr "Desocultar Tudo em Todas as Camadas" #: ../src/verbs.cpp:3021 msgid "Link an ICC color profile" -msgstr "" +msgstr "Associar um perfil de cor ICC" #: ../src/verbs.cpp:3022 -#, fuzzy msgid "Remove Color Profile" -msgstr "Remover filtro" +msgstr "Remover Perfil de Cor" #: ../src/verbs.cpp:3023 msgid "Remove a linked ICC color profile" -msgstr "" +msgstr "Remover um perfil de cor ICC associado" #: ../src/verbs.cpp:3026 -#, fuzzy msgid "Add External Script" -msgstr "Editar preenchimento..." +msgstr "Adicionar Script Externo" #: ../src/verbs.cpp:3026 -#, fuzzy msgid "Add an external script" -msgstr "Editar preenchimento..." +msgstr "Adicionar um script externo" #: ../src/verbs.cpp:3028 -#, fuzzy msgid "Add Embedded Script" -msgstr "Editar preenchimento..." +msgstr "Adicionar Script Embutido" #: ../src/verbs.cpp:3028 -#, fuzzy msgid "Add an embedded script" -msgstr "Editar preenchimento..." +msgstr "Adicionar um script embutido" #: ../src/verbs.cpp:3030 -#, fuzzy msgid "Edit Embedded Script" -msgstr "Remover grelha" +msgstr "Editar Script Embutido" #: ../src/verbs.cpp:3030 -#, fuzzy msgid "Edit an embedded script" -msgstr "Remover grelha" +msgstr "Editar um script embutido" #: ../src/verbs.cpp:3032 -#, fuzzy msgid "Remove External Script" -msgstr "Remover texto do caminho" +msgstr "Remover Script Externo" #: ../src/verbs.cpp:3032 -#, fuzzy msgid "Remove an external script" -msgstr "Remover texto do caminho" +msgstr "Remover um script externo" #: ../src/verbs.cpp:3034 -#, fuzzy msgid "Remove Embedded Script" -msgstr "Remover grelha" +msgstr "Remover Script Embutido" #: ../src/verbs.cpp:3034 -#, fuzzy msgid "Remove an embedded script" -msgstr "Remover grelha" +msgstr "Remover um script embutido" #: ../src/verbs.cpp:3056 ../src/verbs.cpp:3057 -#, fuzzy msgid "Center on horizontal and vertical axis" -msgstr "Centralizar horizontalmente" +msgstr "Centrar no eixo horizontal e vertical" #: ../src/widgets/arc-toolbar.cpp:129 msgid "Arc: Change start/end" -msgstr "Arc: Mudanças inicio/fim" +msgstr "Arco: alterar início/fim" #: ../src/widgets/arc-toolbar.cpp:191 msgid "Arc: Change open/closed" -msgstr "Arc: Mudanças abrir/fechar" +msgstr "Arco: alterar aberto/fechado" #: ../src/widgets/arc-toolbar.cpp:280 ../src/widgets/arc-toolbar.cpp:310 #: ../src/widgets/rect-toolbar.cpp:260 ../src/widgets/rect-toolbar.cpp:299 @@ -30204,7 +28524,7 @@ msgstr "Novo:" #: ../src/widgets/spiral-toolbar.cpp:212 ../src/widgets/spiral-toolbar.cpp:223 #: ../src/widgets/star-toolbar.cpp:384 msgid "Change:" -msgstr "Modificado:" +msgstr "Alterar:" #: ../src/widgets/arc-toolbar.cpp:319 msgid "Start:" @@ -30212,7 +28532,7 @@ msgstr "Início:" #: ../src/widgets/arc-toolbar.cpp:320 msgid "The angle (in degrees) from the horizontal to the arc's start point" -msgstr "O ângulo (em graus) do do horizontal para o ponto inicial do arco." +msgstr "O ângulo (em graus) da horizontal para o ponto inicial do arco." #: ../src/widgets/arc-toolbar.cpp:332 msgid "End:" @@ -30220,18 +28540,15 @@ msgstr "Fim:" #: ../src/widgets/arc-toolbar.cpp:333 msgid "The angle (in degrees) from the horizontal to the arc's end point" -msgstr "O ângulo (em graus) do do horizontal para o ponto final do arco." +msgstr "O ângulo (em graus) da horizontal para o ponto final do arco." #: ../src/widgets/arc-toolbar.cpp:349 msgid "Closed arc" msgstr "Arco fechado" #: ../src/widgets/arc-toolbar.cpp:350 -#, fuzzy msgid "Switch to segment (closed shape with two radii)" -msgstr "" -"Trocar entre arco (forma não fechada) e segmento (forma fechada com dois " -"raios)" +msgstr "Alterar para segmento de arco (forma fechada com 2 raios)" #: ../src/widgets/arc-toolbar.cpp:356 msgid "Open Arc" @@ -30239,7 +28556,7 @@ msgstr "Arco Aberto" #: ../src/widgets/arc-toolbar.cpp:357 msgid "Switch to arc (unclosed shape)" -msgstr "" +msgstr "Alterar para arco (forma por fechar)" #: ../src/widgets/arc-toolbar.cpp:380 msgid "Make whole" @@ -30247,40 +28564,35 @@ msgstr "Tornar inteiro" #: ../src/widgets/arc-toolbar.cpp:381 msgid "Make the shape a whole ellipse, not arc or segment" -msgstr "Tornar a forma uma elipse inteira e não um arco ou segmento" +msgstr "Tornar a forma numa elipse inteira e não um arco ou segmento de arco" #. TODO: use the correct axis here, too #: ../src/widgets/box3d-toolbar.cpp:233 -#, fuzzy msgid "3D Box: Change perspective (angle of infinite axis)" -msgstr "Caixa 3D: Alterar perspectiva" +msgstr "Caixa 3D: alterar perspectiva (ângulo do eixo infinito)" #: ../src/widgets/box3d-toolbar.cpp:302 -#, fuzzy msgid "Angle in X direction" -msgstr "Definir VP na direção X" +msgstr "Ângulo na direção X" #. Translators: PL is short for 'perspective line' #: ../src/widgets/box3d-toolbar.cpp:304 -#, fuzzy msgid "Angle of PLs in X direction" -msgstr "Definir VP na direção X" +msgstr "Ângulo das Linhas de Perspetiva na direção X" #. Translators: VP is short for 'vanishing point' #: ../src/widgets/box3d-toolbar.cpp:326 -#, fuzzy msgid "State of VP in X direction" -msgstr "Definir VP na direção X" +msgstr "Estado do Ponto de Fuga na direção X" #: ../src/widgets/box3d-toolbar.cpp:327 -#, fuzzy msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" -msgstr "Definir VP na direção X entre 'finito' e 'infinito' (=paralelo)" +msgstr "" +"Alterna o ponto de fuga na direção X entre 'finito' e 'infinito' (=paralelo)" #: ../src/widgets/box3d-toolbar.cpp:342 -#, fuzzy msgid "Angle in Y direction" -msgstr "Definir VP na direção Y" +msgstr "Ângulo na direção Y" #: ../src/widgets/box3d-toolbar.cpp:342 msgid "Angle Y:" @@ -30288,56 +28600,50 @@ msgstr "Ângulo Y:" #. Translators: PL is short for 'perspective line' #: ../src/widgets/box3d-toolbar.cpp:344 -#, fuzzy msgid "Angle of PLs in Y direction" -msgstr "Definir VP na direção Y" +msgstr "Ângulo das Linhas de Perspetiva na direção Y" #. Translators: VP is short for 'vanishing point' #: ../src/widgets/box3d-toolbar.cpp:365 -#, fuzzy msgid "State of VP in Y direction" -msgstr "Definir VP na direção Y" +msgstr "Estado do Ponto de Fuga na direção Y" #: ../src/widgets/box3d-toolbar.cpp:366 -#, fuzzy msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" -msgstr "Definir VP na direção Y entre 'finito' e 'infinito' (=paralelo)" +msgstr "" +"Alterna o ponto de fuga na direção Y entre 'finito' e 'infinito' (=paralelo)" #: ../src/widgets/box3d-toolbar.cpp:381 -#, fuzzy msgid "Angle in Z direction" -msgstr "Definir VP na direção Z" +msgstr "Ângulo na direção Z" #. Translators: PL is short for 'perspective line' #: ../src/widgets/box3d-toolbar.cpp:383 -#, fuzzy msgid "Angle of PLs in Z direction" -msgstr "Definir VP na direção Z" +msgstr "Ângulo das Linhas de Perspetiva na direção Z" #. Translators: VP is short for 'vanishing point' #: ../src/widgets/box3d-toolbar.cpp:404 -#, fuzzy msgid "State of VP in Z direction" -msgstr "Definir VP na direção Z" +msgstr "Estado do Ponto de Fuga na direção Z" #: ../src/widgets/box3d-toolbar.cpp:405 -#, fuzzy msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" -msgstr "Definir VP na direção Z entre 'finito' e 'infinito' (=paralelo)" +msgstr "" +"Alterna o ponto de fuga na direção Z entre 'finito' e 'infinito' (=paralelo)" #. gint preset_index = ege_select_one_action_get_active( sel ); #: ../src/widgets/calligraphy-toolbar.cpp:218 #: ../src/widgets/calligraphy-toolbar.cpp:262 #: ../src/widgets/calligraphy-toolbar.cpp:267 -#, fuzzy msgid "No preset" -msgstr "Pré-visualizar" +msgstr "Sem modelo" #. Width #: ../src/widgets/calligraphy-toolbar.cpp:427 #: ../src/widgets/eraser-toolbar.cpp:151 msgid "(hairline)" -msgstr "(linha do cabelo)" +msgstr "(linha fina)" #. Mean #. Rotation @@ -30355,48 +28661,47 @@ msgstr "(padrão)" #: ../src/widgets/calligraphy-toolbar.cpp:427 #: ../src/widgets/eraser-toolbar.cpp:151 -#, fuzzy msgid "(broad stroke)" -msgstr " (traço)" +msgstr "(linha larga)" #: ../src/widgets/calligraphy-toolbar.cpp:430 #: ../src/widgets/eraser-toolbar.cpp:154 msgid "Pen Width" -msgstr "Largura da caneta" +msgstr "Espessura da Caneta" #: ../src/widgets/calligraphy-toolbar.cpp:431 msgid "The width of the calligraphic pen (relative to the visible canvas area)" -msgstr "A largura da caneta caligráfica (em relação a área visível da página)" +msgstr "" +"A espessura da caneta caligráfica (em relação a área visível da página)" #. Thinning #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(speed blows up stroke)" -msgstr "" +msgstr "(a velocidade aumenta a espessura)" #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(slight widening)" -msgstr "" +msgstr "(ligeiramente espesso)" #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(constant width)" -msgstr "(comprimento constante)" +msgstr "(espessura constante)" #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(slight thinning, default)" -msgstr "" +msgstr "(ligeiramente estreito, padrão)" #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(speed deflates stroke)" -msgstr "" +msgstr "(a velocidade reduz a espessura do traço)" #: ../src/widgets/calligraphy-toolbar.cpp:447 -#, fuzzy msgid "Stroke Thinning" -msgstr "Pintura de Traço" +msgstr "Estreitamento do Traço" #: ../src/widgets/calligraphy-toolbar.cpp:447 msgid "Thinning:" -msgstr "Sinuoso" +msgstr "Estreitamento:" #: ../src/widgets/calligraphy-toolbar.cpp:448 msgid "" @@ -30404,12 +28709,12 @@ msgid "" "makes them broader, 0 makes width independent of velocity)" msgstr "" "Quão rápido a velocidade afina o traço (> 0 torna os traços rápidos mais " -"finos, < 0 torna-os mais fortes, 0 os torna independente da velocidade)" +"finos, < 0 torna-os mais largos, 0 a espessura é independente da velocidade)" #. Angle #: ../src/widgets/calligraphy-toolbar.cpp:460 msgid "(left edge up)" -msgstr "" +msgstr "(borda esquerda para cima)" #: ../src/widgets/calligraphy-toolbar.cpp:460 msgid "(horizontal)" @@ -30417,11 +28722,11 @@ msgstr "(horizontal)" #: ../src/widgets/calligraphy-toolbar.cpp:460 msgid "(right edge up)" -msgstr "" +msgstr "(borda direita para cima)" #: ../src/widgets/calligraphy-toolbar.cpp:463 msgid "Pen Angle" -msgstr "Ângulo da caneta" +msgstr "Ângulo da Caneta" #: ../src/widgets/calligraphy-toolbar.cpp:463 #: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:5 @@ -30434,7 +28739,7 @@ msgid "" "fixation = 0)" msgstr "" "O ângulo da ponta da caneta (em graus; 0 = horizontal; não tem efeito se " -"fixar = 0)" +"fixação = 0)" #. Fixation #: ../src/widgets/calligraphy-toolbar.cpp:478 @@ -30443,39 +28748,36 @@ msgstr "(perpendicular ao traço, \"escova\")" #: ../src/widgets/calligraphy-toolbar.cpp:478 msgid "(almost fixed, default)" -msgstr "" +msgstr "(quase fixo, padrão)" #: ../src/widgets/calligraphy-toolbar.cpp:478 msgid "(fixed by Angle, \"pen\")" -msgstr "" +msgstr "(fixo por Ângulo, \"caneta\")" #: ../src/widgets/calligraphy-toolbar.cpp:481 -#, fuzzy msgid "Fixation" -msgstr "Fixação:" +msgstr "Fixação" #: ../src/widgets/calligraphy-toolbar.cpp:481 msgid "Fixation:" msgstr "Fixação:" #: ../src/widgets/calligraphy-toolbar.cpp:482 -#, fuzzy msgid "" "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " "fixed angle)" msgstr "" -"Comportamento do ângulo (0 = sempre perpendicular à direção do traço, 1 = " -"fixo)" +"Comportamento do ângulo (0 = ponta sempre perpendicular à direção do traço, " +"100 = ângulo fixo)" #. Cap Rounding #: ../src/widgets/calligraphy-toolbar.cpp:494 -#, fuzzy msgid "(blunt caps, default)" -msgstr "Ajustar como padrão" +msgstr "(pontas planas, padrão)" #: ../src/widgets/calligraphy-toolbar.cpp:494 msgid "(slightly bulging)" -msgstr "" +msgstr "(ligeiramente salientes)" #: ../src/widgets/calligraphy-toolbar.cpp:494 msgid "(approximately round)" @@ -30483,12 +28785,11 @@ msgstr "(aproximadamente redondo)" #: ../src/widgets/calligraphy-toolbar.cpp:494 msgid "(long protruding caps)" -msgstr "" +msgstr "(pontas muito salientes)" #: ../src/widgets/calligraphy-toolbar.cpp:498 -#, fuzzy msgid "Cap rounding" -msgstr "Alterar arredondamento" +msgstr "Arredondamento das pontas" #: ../src/widgets/calligraphy-toolbar.cpp:498 msgid "Caps:" @@ -30499,7 +28800,7 @@ msgid "" "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " "round caps)" msgstr "" -"Aumente para tornar as pontas dos traços mais salientes (0 = sem ponta, 1 = " +"Aumentar para tornar as pontas dos traços mais salientes (0 = sem ponta, 1 = " "ponta redonda)" #. Tremor @@ -30509,55 +28810,52 @@ msgstr "(linha suave)" #: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(slight tremor)" -msgstr "(tremor leve)" +msgstr "(tremido leve)" #: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(noticeable tremor)" -msgstr "(tremor perceptível)" +msgstr "(tremido perceptível)" #: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(maximum tremor)" -msgstr "(tremor máximo)" +msgstr "(tremido máximo)" #: ../src/widgets/calligraphy-toolbar.cpp:514 -#, fuzzy msgid "Stroke Tremor" -msgstr "Definir cor do traço" +msgstr "Traço Tremido" #: ../src/widgets/calligraphy-toolbar.cpp:514 msgid "Tremor:" -msgstr "Tremor:" +msgstr "Tremido:" #: ../src/widgets/calligraphy-toolbar.cpp:515 msgid "Increase to make strokes rugged and trembling" -msgstr "Aumente para fazer traços ásperos e trêmulos" +msgstr "Aumentar para fazer traços rugosos e tremidos" #. Wiggle #: ../src/widgets/calligraphy-toolbar.cpp:529 msgid "(no wiggle)" -msgstr "" +msgstr "(sem ondulação)" #: ../src/widgets/calligraphy-toolbar.cpp:529 -#, fuzzy msgid "(slight deviation)" -msgstr "Destino da impressão" +msgstr "(ligeiro desvio)" #: ../src/widgets/calligraphy-toolbar.cpp:529 msgid "(wild waves and curls)" -msgstr "" +msgstr "(ondas grandes e caracóis)" #: ../src/widgets/calligraphy-toolbar.cpp:532 -#, fuzzy msgid "Pen Wiggle" -msgstr "Ondulação:" +msgstr "Ondulação da Caneta" #: ../src/widgets/calligraphy-toolbar.cpp:532 msgid "Wiggle:" -msgstr "Ondulação:" +msgstr "Ondulado:" #: ../src/widgets/calligraphy-toolbar.cpp:533 msgid "Increase to make the pen waver and wiggle" -msgstr "Aumente para fazer traços ondulados e sinuosos" +msgstr "Aumentar para fazer traços ondulados e sinuosos" #. Mass #: ../src/widgets/calligraphy-toolbar.cpp:546 @@ -30568,12 +28866,12 @@ msgstr "(sem inércia)" #: ../src/widgets/calligraphy-toolbar.cpp:546 #: ../src/widgets/eraser-toolbar.cpp:168 msgid "(slight smoothing, default)" -msgstr "" +msgstr "(suavidade leve, padrão)" #: ../src/widgets/calligraphy-toolbar.cpp:546 #: ../src/widgets/eraser-toolbar.cpp:168 msgid "(noticeable lagging)" -msgstr "" +msgstr "(atraso notável)" #: ../src/widgets/calligraphy-toolbar.cpp:546 #: ../src/widgets/eraser-toolbar.cpp:168 @@ -30581,77 +28879,73 @@ msgid "(maximum inertia)" msgstr "(inércia máxima)" #: ../src/widgets/calligraphy-toolbar.cpp:549 -#, fuzzy msgid "Pen Mass" -msgstr "Massa:" +msgstr "Massa da Caneta" #: ../src/widgets/calligraphy-toolbar.cpp:549 #: ../src/widgets/eraser-toolbar.cpp:171 msgid "Mass:" -msgstr "Massa:" +msgstr "Inércia:" #: ../src/widgets/calligraphy-toolbar.cpp:550 msgid "Increase to make the pen drag behind, as if slowed by inertia" msgstr "" -"Aumente para tornar a caneta mais pesada, como se atrasada pela inércia" +"Aumentar para tornar a caneta mais pesada, como que atrasada pela inércia" #: ../src/widgets/calligraphy-toolbar.cpp:565 -#, fuzzy msgid "Trace Background" -msgstr "Plano de fundo:" +msgstr "Vetorizar Fundo" #: ../src/widgets/calligraphy-toolbar.cpp:566 msgid "" "Trace the lightness of the background by the width of the pen (white - " "minimum width, black - maximum width)" msgstr "" +"Vetorizar a luminosidade do fundo pela espessura da caneta (branco - " +"espessura mínima; preto - espessura máxima)" #: ../src/widgets/calligraphy-toolbar.cpp:579 msgid "Use the pressure of the input device to alter the width of the pen" msgstr "" -"Usar a pressão do dispositivo de entrada para alterar a largura da caneta" +"Usar a pressão do dispositivo de entrada para alterar a espessura da caneta" #: ../src/widgets/calligraphy-toolbar.cpp:591 msgid "Tilt" -msgstr "Tilt" +msgstr "Inclinação" #: ../src/widgets/calligraphy-toolbar.cpp:592 msgid "Use the tilt of the input device to alter the angle of the pen's nib" msgstr "" -"Usar a inclunação do dispositivo de entrada para alterar o ângulo da ponta " -"da caneta." +"Usar a inclinação do dispositivo de entrada para alterar o ângulo da ponta " +"da caneta" #: ../src/widgets/calligraphy-toolbar.cpp:607 -#, fuzzy msgid "Choose a preset" -msgstr "Pré-visualizar" +msgstr "Escolher modelo" #: ../src/widgets/calligraphy-toolbar.cpp:622 -#, fuzzy msgid "Add/Edit Profile" -msgstr "_Propriedades da Ligação" +msgstr "Adicionar/Editar Perfil" #: ../src/widgets/calligraphy-toolbar.cpp:623 -#, fuzzy msgid "Add or edit calligraphic profile" -msgstr "Desenhar linhas caligráficas" +msgstr "Adicionar ou editar perfil caligráfico" #: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: orthogonal" -msgstr "" +msgstr "Definir tipo de conetor: ortogonal" #: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: polyline" -msgstr "" +msgstr "Definir tipo de conetor: polilinha" #: ../src/widgets/connector-toolbar.cpp:165 -#, fuzzy msgid "Change connector curvature" -msgstr "Mudar espaçamento do conector" +msgstr "Alterar curvatura do conetor" #: ../src/widgets/connector-toolbar.cpp:214 msgid "Change connector spacing" -msgstr "Mudar espaçamento do conector" +msgstr "Alterar espaçamento do conetor" #: ../src/widgets/connector-toolbar.cpp:307 msgid "Avoid" @@ -30663,30 +28957,27 @@ msgstr "Ignorar" #: ../src/widgets/connector-toolbar.cpp:328 msgid "Orthogonal" -msgstr "" +msgstr "Ortogonal" #: ../src/widgets/connector-toolbar.cpp:329 msgid "Make connector orthogonal or polyline" -msgstr "" +msgstr "Tornar os conetores ortogonais ou polilinhas" #: ../src/widgets/connector-toolbar.cpp:343 -#, fuzzy msgid "Connector Curvature" -msgstr "Propriedades do Seletor" +msgstr "Curvatura do Conetor" #: ../src/widgets/connector-toolbar.cpp:343 -#, fuzzy msgid "Curvature:" -msgstr "Arrastar curva" +msgstr "Curvatura:" #: ../src/widgets/connector-toolbar.cpp:344 msgid "The amount of connectors curvature" -msgstr "" +msgstr "O valor da curvatura dos conetores" #: ../src/widgets/connector-toolbar.cpp:354 -#, fuzzy msgid "Connector Spacing" -msgstr "Mudar espaçamento do conector" +msgstr "Espaçamento do Conetor" #: ../src/widgets/connector-toolbar.cpp:354 msgid "Spacing:" @@ -30695,17 +28986,16 @@ msgstr "Espaçamento:" #: ../src/widgets/connector-toolbar.cpp:355 msgid "The amount of space left around objects by auto-routing connectors" msgstr "" -"Quantidade de espaço deixada em redor dos objectos quando os conectores são " -"posicionados automaticamente " +"Quantidade de espaço deixada em redor dos objetos quando os conetores são " +"posicionados automaticamente" #: ../src/widgets/connector-toolbar.cpp:366 msgid "Graph" msgstr "Gráfico" #: ../src/widgets/connector-toolbar.cpp:376 -#, fuzzy msgid "Connector Length" -msgstr "Conector" +msgstr "Comprimento do Conetor" #: ../src/widgets/connector-toolbar.cpp:376 msgid "Length:" @@ -30713,15 +29003,15 @@ msgstr "Comprimento:" #: ../src/widgets/connector-toolbar.cpp:377 msgid "Ideal length for connectors when layout is applied" -msgstr "Comprimento ideal para os conectores quando o layout é aplicado" +msgstr "Comprimento ideal para os conetores quando o layout é aplicado" #: ../src/widgets/connector-toolbar.cpp:389 msgid "Downwards" -msgstr "" +msgstr "Para baixo" #: ../src/widgets/connector-toolbar.cpp:390 msgid "Make connectors with end-markers (arrows) point downwards" -msgstr "Criar conectores com marcadores-fim (setas) apontando para baixo" +msgstr "Criar conetores com marcadores de fim (setas) apontando para baixo" #: ../src/widgets/connector-toolbar.cpp:406 msgid "Do not allow overlapping shapes" @@ -30729,15 +29019,16 @@ msgstr "Não permitir sobreposição de formas" #: ../src/widgets/dash-selector.cpp:59 msgid "Dash pattern" -msgstr "Padrão de traço" +msgstr "Padrão tracejado" #: ../src/widgets/dash-selector.cpp:76 msgid "Pattern offset" -msgstr "Padrão de Tipografia" +msgstr "Deslocamento do padrão" #: ../src/widgets/desktop-widget.cpp:499 msgid "Zoom drawing if window size changes" -msgstr "Ajustar nível de zoom do desenho se o tamanho da janela mudar" +msgstr "" +"Ajustar nível de aproximação do desenho se o tamanho da janela for alterado" #. Display the initial welcome message in the statusbar #: ../src/widgets/desktop-widget.cpp:701 @@ -30745,8 +29036,9 @@ msgid "" "Welcome to Inkscape! Use shape or freehand tools to create objects; " "use selector (arrow) to move or transform them." msgstr "" -"Bem vindo ao Inkscape! Use as ferramentas de forma ou mão-livre para " -"criar objectos. Use o selector (seta) para mover ou transformá-los." +"Bem vindo ao Inkscape! Use as ferramentas de formas geométricas ou " +"desenho à mão-livre para criar objetos. Use a Ferramenta de Selecionar " +"(seta) para os mover ou transformar." #: ../src/widgets/desktop-widget.cpp:743 msgid "Cursor coordinates" @@ -30754,87 +29046,77 @@ msgstr "Coordenadas do cursor" #: ../src/widgets/desktop-widget.cpp:764 msgid "Z:" -msgstr "" +msgstr "L:" #: ../src/widgets/desktop-widget.cpp:885 -#, fuzzy msgid "grayscale" -msgstr "Escala de cinzas" +msgstr "escala de cinzas" #: ../src/widgets/desktop-widget.cpp:886 -#, fuzzy msgid ", grayscale" -msgstr "Escala de cinzas" +msgstr ", escala de cinzas" #: ../src/widgets/desktop-widget.cpp:887 -#, fuzzy msgid "print colors preview" -msgstr "_Visualizar Impressão" +msgstr "prever cores de impressão" #: ../src/widgets/desktop-widget.cpp:888 -#, fuzzy msgid ", print colors preview" -msgstr "_Visualizar Impressão" +msgstr ", prever cores de impressão" #: ../src/widgets/desktop-widget.cpp:889 -#, fuzzy msgid "outline" -msgstr "_Contorno" +msgstr "contorno" #: ../src/widgets/desktop-widget.cpp:890 -#, fuzzy msgid "no filters" -msgstr "_Filtrar" +msgstr "sem filtros" #: ../src/widgets/desktop-widget.cpp:917 -#, fuzzy, c-format +#, c-format msgid "%s%s: %d (%s%s) - Inkscape" -msgstr "%s: %d - Inkscape" +msgstr "%s%s: %d (%s%s) - Inkscape" #: ../src/widgets/desktop-widget.cpp:919 ../src/widgets/desktop-widget.cpp:923 -#, fuzzy, c-format +#, c-format msgid "%s%s: %d (%s) - Inkscape" -msgstr "%s: %d - Inkscape" +msgstr "%s%s: %d (%s) - Inkscape" #: ../src/widgets/desktop-widget.cpp:925 -#, fuzzy, c-format +#, c-format msgid "%s%s: %d - Inkscape" -msgstr "%s: %d - Inkscape" +msgstr "%s%s: %d - Inkscape" #: ../src/widgets/desktop-widget.cpp:931 -#, fuzzy, c-format +#, c-format msgid "%s%s (%s%s) - Inkscape" -msgstr "%s - Inkscape" +msgstr "%s%s (%s%s) - Inkscape" #: ../src/widgets/desktop-widget.cpp:933 ../src/widgets/desktop-widget.cpp:937 -#, fuzzy, c-format +#, c-format msgid "%s%s (%s) - Inkscape" -msgstr "%s - Inkscape" +msgstr "%s%s (%s) - Inkscape" #: ../src/widgets/desktop-widget.cpp:939 -#, fuzzy, c-format +#, c-format msgid "%s%s - Inkscape" -msgstr "%s - Inkscape" +msgstr "%s%s - Inkscape" #: ../src/widgets/desktop-widget.cpp:1111 -#, fuzzy msgid "Locked all guides" -msgstr "Selecionar em todas as camadas" +msgstr "Bloqueadas todas as guias" #: ../src/widgets/desktop-widget.cpp:1113 -#, fuzzy msgid "Unlocked all guides" -msgstr "DesBloquear Camada" +msgstr "Desbloqueadas todas as guias" #: ../src/widgets/desktop-widget.cpp:1130 -#, fuzzy msgid "Color-managed display is enabled in this window" -msgstr "Fechar a janela do documento" +msgstr "A visualização com gestão de cor está ativada nesta janela" #: ../src/widgets/desktop-widget.cpp:1132 -#, fuzzy msgid "Color-managed display is disabled in this window" -msgstr "Fechar a janela do documento" +msgstr "A visualização com gestão de cor está desativada nesta janela" #: ../src/widgets/desktop-widget.cpp:1187 #, c-format @@ -30844,152 +29126,139 @@ msgid "" "\n" "If you close without saving, your changes will be discarded." msgstr "" -"Guardar as modificações do desenho \"%s" +"Gravar as alterações no documento \"%s" "\" antes de fechar?\n" "\n" -"Se fechar sem guardar, suas modificações serão descartadas." +"Se fechar sem gravar, as alterações serão perdidas." #: ../src/widgets/desktop-widget.cpp:1197 #: ../src/widgets/desktop-widget.cpp:1256 msgid "Close _without saving" -msgstr "Fechar _sem guardar" +msgstr "_Fechar sem guardar" #: ../src/widgets/desktop-widget.cpp:1246 -#, fuzzy, c-format +#, c-format msgid "" "The file \"%s\" was saved with a " "format that may cause data loss!\n" "\n" "Do you want to save this file as Inkscape SVG?" msgstr "" -"O ficheiro \"%s\" foi salvo com um " -"formato (%s) que causará perda de dados!\n" +"O ficheiro \"%s\" foi gravado num " +"formato que poderá causar perda de dados!\n" "\n" -"Deseja guardar este ficheiro noutro formato?" +"Quer guardar este ficheiro no formato Inkscape SVG?" #: ../src/widgets/desktop-widget.cpp:1258 -#, fuzzy msgid "_Save as Inkscape SVG" -msgstr "_Guardar como SVG" +msgstr "_Guardar como Inkscape SVG" #: ../src/widgets/desktop-widget.cpp:1472 msgid "Note:" -msgstr "" +msgstr "Nota:" #: ../src/widgets/dropper-toolbar.cpp:90 -#, fuzzy msgid "Pick opacity" -msgstr "Capturar alfa" +msgstr "Capturar opacidade" #: ../src/widgets/dropper-toolbar.cpp:91 msgid "" "Pick both the color and the alpha (transparency) under cursor; otherwise, " "pick only the visible color premultiplied by alpha" msgstr "" -"Capturar a cor e o alfa (transparência) sob o cursor; senão, capturar apenas " -"a cor visível pré-multiplicada pelo alfa" +"Capturar a cor e a transparência (canal alfa); Se desativado, capturar " +"apenas a cor equivalente, mas sem usar a transparência" #: ../src/widgets/dropper-toolbar.cpp:94 -#, fuzzy msgid "Pick" -msgstr "Bias" +msgstr "Capturar" #: ../src/widgets/dropper-toolbar.cpp:103 -#, fuzzy msgid "Assign opacity" -msgstr "Alterar opacidade" +msgstr "Atribuir transparência" #: ../src/widgets/dropper-toolbar.cpp:104 msgid "" "If alpha was picked, assign it to selection as fill or stroke transparency" msgstr "" -"Com o alfa capturado, atribuí-lo à selecção como transparência de " -"preenchimento ou de traço" +"Se a transparência foi capturada, aplicá-la à seleção como transparência do " +"preenchimento ou do traço" #: ../src/widgets/dropper-toolbar.cpp:107 -#, fuzzy msgid "Assign" -msgstr "Alinhar" +msgstr "Atribuir" #: ../src/widgets/ege-paint-def.cpp:87 -#, fuzzy msgid "remove" -msgstr "Remover" +msgstr "remover" #: ../src/widgets/eraser-toolbar.cpp:121 msgid "Delete objects touched by the eraser" -msgstr "" +msgstr "Eliminar objetos tocados pela borracha" #: ../src/widgets/eraser-toolbar.cpp:127 -#, fuzzy msgid "Cut" -msgstr "Cor_tar" +msgstr "Cortar" #: ../src/widgets/eraser-toolbar.cpp:128 -#, fuzzy msgid "Cut out from objects" -msgstr "Padrão para objecto" +msgstr "Recortar os objetos" #. Width #: ../src/widgets/eraser-toolbar.cpp:151 -#, fuzzy msgid "(no width)" -msgstr "Largura da caneta" +msgstr "(sem espessura)" #: ../src/widgets/eraser-toolbar.cpp:155 -#, fuzzy msgid "The width of the eraser pen (relative to the visible canvas area)" -msgstr "A largura da caneta caligráfica (em relação a área visível da página)" +msgstr "A largura da borracha (em relação a área visível da página)" #: ../src/widgets/eraser-toolbar.cpp:171 -#, fuzzy msgid "Eraser Mass" -msgstr "Rasterizar" +msgstr "Massa da Borracha" #: ../src/widgets/eraser-toolbar.cpp:172 -#, fuzzy msgid "Increase to make the eraser drag behind, as if slowed by inertia" msgstr "" -"Aumente para tornar a caneta mais pesada, como se atrasada pela inércia" +"Aumentar para tornar a borracha mais pesada, como se ficasse mais lenta " +"devido à inércia" #: ../src/widgets/eraser-toolbar.cpp:186 ../src/widgets/eraser-toolbar.cpp:187 -#, fuzzy msgid "Break apart cut items" -msgstr "Separar" +msgstr "Separar itens cortados (se for cortado de um lado ao outro)" #: ../src/widgets/fill-style.cpp:356 msgid "Change fill rule" -msgstr "Mudar regra de preenchimento" +msgstr "Alterar regra do preenchimento" #: ../src/widgets/fill-style.cpp:440 ../src/widgets/fill-style.cpp:518 msgid "Set fill color" -msgstr "Definir cor de preenchimento" +msgstr "Aplicar cor do preenchimento" #: ../src/widgets/fill-style.cpp:440 ../src/widgets/fill-style.cpp:518 msgid "Set stroke color" -msgstr "Definir cor do traço" +msgstr "Aplicar cor do traço" #: ../src/widgets/fill-style.cpp:616 msgid "Set gradient on fill" -msgstr "Definir degradê no preenchimento" +msgstr "Aplicar gradiente no preenchimento" #: ../src/widgets/fill-style.cpp:616 msgid "Set gradient on stroke" -msgstr "Criar degradê no traço" +msgstr "Aplicar gradiente no traço" #: ../src/widgets/fill-style.cpp:676 msgid "Set pattern on fill" -msgstr "Definir padrão de preenchimento" +msgstr "Aplicar padrão no preenchimento" #: ../src/widgets/fill-style.cpp:677 msgid "Set pattern on stroke" -msgstr "Definir padrão de traço" +msgstr "Aplicar padrão no traço" #: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:1207 #: ../src/widgets/text-toolbar.cpp:1606 -#, fuzzy msgid "Font size" -msgstr "Tamanho da Fonte" +msgstr "Tamanho da fonte" #. Family frame #: ../src/widgets/font-selector.cpp:134 @@ -30998,157 +29267,137 @@ msgstr "Família da fonte" #. Style frame #: ../src/widgets/font-selector.cpp:194 -#, fuzzy msgctxt "Font selector" msgid "Style" msgstr "Estilo" #: ../src/widgets/font-selector.cpp:226 -#, fuzzy msgid "Face" -msgstr "Nivelar" +msgstr "Fonte" #: ../src/widgets/font-selector.cpp:255 ../share/extensions/dots.inx.h:3 #: ../share/extensions/nicechart.inx.h:17 msgid "Font size:" -msgstr "Tamanho da Fonte" +msgstr "Tamanho da fonte:" #: ../src/widgets/gradient-selector.cpp:201 -#, fuzzy msgid "Create a duplicate gradient" -msgstr "Criar e editar degradês" +msgstr "Criar gradiente duplicado" #: ../src/widgets/gradient-selector.cpp:212 -#, fuzzy msgid "Edit gradient" -msgstr "Degradê radial" +msgstr "Editar gradiente" #: ../src/widgets/gradient-selector.cpp:281 #: ../src/widgets/paint-selector.cpp:233 -#, fuzzy msgid "Swatch" -msgstr "Ajustar" +msgstr "Amostra de cor" #: ../src/widgets/gradient-selector.cpp:331 -#, fuzzy msgid "Rename gradient" -msgstr "Degradê linear" +msgstr "Alterar nome do gradiente" #: ../src/widgets/gradient-toolbar.cpp:156 #: ../src/widgets/gradient-toolbar.cpp:169 #: ../src/widgets/gradient-toolbar.cpp:758 #: ../src/widgets/gradient-toolbar.cpp:1097 -#, fuzzy msgid "No gradient" -msgstr "Mover alça do degradê" +msgstr "Sem gradiente" #: ../src/widgets/gradient-toolbar.cpp:176 -#, fuzzy msgid "Multiple gradients" -msgstr "Mover alça do degradê" +msgstr "Gradientes múltiplos" #: ../src/widgets/gradient-toolbar.cpp:678 -#, fuzzy msgid "Multiple stops" -msgstr "Estilos múltiplos" +msgstr "Múltiplas paragens" #: ../src/widgets/gradient-toolbar.cpp:776 #: ../src/widgets/gradient-vector.cpp:614 msgid "No stops in gradient" -msgstr "Nenhuma parada no degradê" +msgstr "Nenhuma paragem no gradiente" #: ../src/widgets/gradient-toolbar.cpp:930 msgid "Assign gradient to object" -msgstr "Atribuir o degradê ao objecto" +msgstr "Aplicar o gradiente no objeto" #: ../src/widgets/gradient-toolbar.cpp:952 -#, fuzzy msgid "Set gradient repeat" -msgstr "Criar degradê no traço" +msgstr "Definir repedição do gradiente" #: ../src/widgets/gradient-toolbar.cpp:990 #: ../src/widgets/gradient-vector.cpp:727 msgid "Change gradient stop offset" -msgstr "Alterar posição da parada do degradê" +msgstr "Alterar posição da paragem no gradiente" #: ../src/widgets/gradient-toolbar.cpp:1037 -#, fuzzy msgid "linear" -msgstr "Linear" +msgstr "linear" #: ../src/widgets/gradient-toolbar.cpp:1037 msgid "Create linear gradient" -msgstr "Criar degradê linear" +msgstr "Criar gradiente linear" #: ../src/widgets/gradient-toolbar.cpp:1041 msgid "radial" -msgstr "" +msgstr "radial" #: ../src/widgets/gradient-toolbar.cpp:1041 msgid "Create radial (elliptic or circular) gradient" -msgstr "Criar degradê radial (elíptico ou circular)" +msgstr "Criar gradiente radial (elíptico ou circular)" #: ../src/widgets/gradient-toolbar.cpp:1044 ../src/widgets/mesh-toolbar.cpp:387 msgid "New:" -msgstr "" +msgstr "Novo:" #: ../src/widgets/gradient-toolbar.cpp:1067 ../src/widgets/mesh-toolbar.cpp:410 -#, fuzzy msgid "fill" -msgstr "Tipografia normal" +msgstr "preencher" #: ../src/widgets/gradient-toolbar.cpp:1067 ../src/widgets/mesh-toolbar.cpp:410 msgid "Create gradient in the fill" -msgstr "Criar degradê no preenchimento" +msgstr "Criar gradiente no preenchimento" #: ../src/widgets/gradient-toolbar.cpp:1071 ../src/widgets/mesh-toolbar.cpp:414 -#, fuzzy msgid "stroke" -msgstr "Traço:" +msgstr "traço" #: ../src/widgets/gradient-toolbar.cpp:1071 ../src/widgets/mesh-toolbar.cpp:414 msgid "Create gradient in the stroke" -msgstr "Criar degradê no traço" +msgstr "Criar gradiente no traço" #: ../src/widgets/gradient-toolbar.cpp:1074 ../src/widgets/mesh-toolbar.cpp:417 -#, fuzzy msgid "on:" -msgstr "ligado" +msgstr "em:" #: ../src/widgets/gradient-toolbar.cpp:1099 msgid "Select" msgstr "Selecionar" #: ../src/widgets/gradient-toolbar.cpp:1099 -#, fuzzy msgid "Choose a gradient" -msgstr "Pré-visualizar" +msgstr "Escolher gradiente" #: ../src/widgets/gradient-toolbar.cpp:1100 -#, fuzzy msgid "Select:" -msgstr "Selecionar" +msgstr "Selecionar:" #: ../src/widgets/gradient-toolbar.cpp:1115 -#, fuzzy msgctxt "Gradient repeat type" msgid "None" -msgstr "Nenhum" +msgstr "Nenhuma" #: ../src/widgets/gradient-toolbar.cpp:1118 -#, fuzzy msgid "Reflected" -msgstr "refletido" +msgstr "Refletida" #: ../src/widgets/gradient-toolbar.cpp:1121 -#, fuzzy msgid "Direct" -msgstr "direto" +msgstr "Direita" #: ../src/widgets/gradient-toolbar.cpp:1123 -#, fuzzy msgid "Repeat" -msgstr "Repetir:" +msgstr "Repetição" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute #: ../src/widgets/gradient-toolbar.cpp:1125 @@ -31158,201 +29407,184 @@ msgid "" "(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite " "directions (spreadMethod=\"reflect\")" msgstr "" -"Se para preencher com uma cor além do final do vetor do degradê " -"(spreadMethod=\"pad\"), ou repetir o degradê na mesma direção (spreadMethod=" -"\"repeat\"), ou repetir o degradê ao alternar entre direções opostas " -"(spreadMethod=\"reflect\")" +"Se para preencher com uma cor lisa além dos finais do vetor do gradiente " +"(spreadMethod=\"pad\"), ou repetir o gradiente na mesma direção " +"(spreadMethod=\"repeat\"), ou repetir o gradiente ao alternar entre direções " +"opostas (spreadMethod=\"reflect\")" #: ../src/widgets/gradient-toolbar.cpp:1130 msgid "Repeat:" -msgstr "Repetir:" +msgstr "Repetição:" #: ../src/widgets/gradient-toolbar.cpp:1144 -#, fuzzy msgid "No stops" -msgstr "Sem traço" +msgstr "Sem paragens" #: ../src/widgets/gradient-toolbar.cpp:1146 -#, fuzzy msgid "Stops" -msgstr "_Aplicar" +msgstr "Paragens" #: ../src/widgets/gradient-toolbar.cpp:1146 -#, fuzzy msgid "Select a stop for the current gradient" -msgstr "Editar as paradas do degradê" +msgstr "Selecionar uma paragem para o gradiente atual" #: ../src/widgets/gradient-toolbar.cpp:1147 -#, fuzzy msgid "Stops:" -msgstr "_Aplicar" +msgstr "Paragens:" #. Label #: ../src/widgets/gradient-toolbar.cpp:1159 #: ../src/widgets/gradient-vector.cpp:916 -#, fuzzy msgctxt "Gradient" msgid "Offset:" -msgstr "Offset:" +msgstr "Deslocamento:" #: ../src/widgets/gradient-toolbar.cpp:1159 -#, fuzzy msgid "Offset of selected stop" -msgstr "Expandir o(s) caminho(s) seleccionados" +msgstr "Deslocamento da paragem selecionada" #: ../src/widgets/gradient-toolbar.cpp:1177 #: ../src/widgets/gradient-toolbar.cpp:1178 -#, fuzzy msgid "Insert new stop" -msgstr "Inserir nó" +msgstr "Inserir nova paragem" #: ../src/widgets/gradient-toolbar.cpp:1191 #: ../src/widgets/gradient-toolbar.cpp:1192 #: ../src/widgets/gradient-vector.cpp:898 msgid "Delete stop" -msgstr "Eliminar parada" +msgstr "Eliminar paragem" #: ../src/widgets/gradient-toolbar.cpp:1206 -#, fuzzy msgid "Reverse the direction of the gradient" -msgstr "Editar as paradas do degradê" +msgstr "Inverter a direção do gradiente" #: ../src/widgets/gradient-toolbar.cpp:1220 -#, fuzzy msgid "Link gradients" -msgstr "Degradê linear" +msgstr "Ligar gradientes" #: ../src/widgets/gradient-toolbar.cpp:1221 msgid "Link gradients to change all related gradients" -msgstr "" +msgstr "Ligar gradientes para alterar todos os gradientes relacionados" #: ../src/widgets/gradient-vector.cpp:317 ../src/widgets/paint-selector.cpp:965 #: ../src/widgets/stroke-marker-selector.cpp:154 msgid "No document selected" -msgstr "Nenhum documento seleccionado" +msgstr "Nenhum documento selecionado" #: ../src/widgets/gradient-vector.cpp:321 msgid "No gradients in document" -msgstr "Nenhum degradê no desenho" +msgstr "Nenhum gradiente no desenho" #: ../src/widgets/gradient-vector.cpp:325 msgid "No gradient selected" -msgstr "Nenhum degradê seleccionado" +msgstr "Nenhum gradiente selecionado" #. TRANSLATORS: "Stop" means: a "phase" of a gradient #: ../src/widgets/gradient-vector.cpp:893 msgid "Add stop" -msgstr "Acrescentar parada" +msgstr "Adicionar paragem" #: ../src/widgets/gradient-vector.cpp:896 msgid "Add another control stop to gradient" -msgstr "Acrescentar outra parada de controle no degradê" +msgstr "Acrescentar outra paragem de controle no gradiente" #: ../src/widgets/gradient-vector.cpp:901 msgid "Delete current control stop from gradient" -msgstr "Eliminar parada de controle actual do degradê" +msgstr "Eliminar paragem de controle atual do gradiente" #. TRANSLATORS: "Stop" means: a "phase" of a gradient #: ../src/widgets/gradient-vector.cpp:975 msgid "Stop Color" -msgstr "Cor da Parada" +msgstr "Cor da Paragem" #: ../src/widgets/gradient-vector.cpp:1014 msgid "Gradient editor" -msgstr "Editor de degradê" +msgstr "Editor de gradiente" #: ../src/widgets/gradient-vector.cpp:1366 msgid "Change gradient stop color" -msgstr "Alterar cor da parada do degradê" +msgstr "Alterar cor da paragem no gradiente" #: ../src/widgets/image-menu-item.c:151 -#, fuzzy msgid "Image widget" -msgstr "Imagem" +msgstr "Imagem do widget" #: ../src/widgets/image-menu-item.c:152 msgid "Child widget to appear next to the menu text" -msgstr "" +msgstr "Widget filho a aparecer a seguir ao texto do menu" #: ../src/widgets/image-menu-item.c:167 -#, fuzzy msgid "Use stock" -msgstr "Colar traço" +msgstr "Usar originais" #: ../src/widgets/image-menu-item.c:168 msgid "Whether to use the label text to create a stock menu item" msgstr "" +"Se usar ou não a etiqueta de texto para criar um item de menu de origem" #: ../src/widgets/image-menu-item.c:183 -#, fuzzy msgid "Accel Group" -msgstr "Agrupar" +msgstr "Grupo de Acelaração" #: ../src/widgets/image-menu-item.c:184 msgid "The Accel Group to use for stock accelerator keys" -msgstr "" +msgstr "O Grupo de Acelaração a usar para as teclas de acelaração padrão" #: ../src/widgets/lpe-toolbar.cpp:233 -#, fuzzy msgid "Closed" -msgstr "Fe_char" +msgstr "Fechado" #: ../src/widgets/lpe-toolbar.cpp:235 -#, fuzzy msgid "Open start" -msgstr "Arco Aberto" +msgstr "Início aberto" #: ../src/widgets/lpe-toolbar.cpp:237 -#, fuzzy msgid "Open end" -msgstr "Abrir _Recentes" +msgstr "Fim aberto" #: ../src/widgets/lpe-toolbar.cpp:239 msgid "Open both" -msgstr "" +msgstr "Ambos abertos" #: ../src/widgets/lpe-toolbar.cpp:301 msgid "All inactive" -msgstr "" +msgstr "Todos inativos" #: ../src/widgets/lpe-toolbar.cpp:302 msgid "No geometric tool is active" -msgstr "" +msgstr "Nenhuma ferramenta geométrica está ativa" #: ../src/widgets/lpe-toolbar.cpp:335 -#, fuzzy msgid "Show limiting bounding box" -msgstr "Margem oposta da caixa de limites" +msgstr "Mostrar caixa limitadora" #: ../src/widgets/lpe-toolbar.cpp:336 msgid "Show bounding box (used to cut infinite lines)" -msgstr "" +msgstr "Mostrar caixa limitadora (usada para cortar linhas infinitas)" #: ../src/widgets/lpe-toolbar.cpp:347 -#, fuzzy msgid "Get limiting bounding box from selection" -msgstr "Remover clip ao caminho da selecção" +msgstr "Obter caixa limitadora da seleção" #: ../src/widgets/lpe-toolbar.cpp:348 -#, fuzzy msgid "" "Set limiting bounding box (used to cut infinite lines) to the bounding box " "of current selection" -msgstr "Ajustar cantos das caixas limitadoras a outros cantos" +msgstr "" +"Definir a caixa limitadora (usada para cortar linhas infinitas) à caixa " +"limitadora da seleção atual" #: ../src/widgets/lpe-toolbar.cpp:360 -#, fuzzy msgid "Choose a line segment type" -msgstr "Alterar tipo do segmento" +msgstr "Escolher tipo de segmento de linha" #: ../src/widgets/lpe-toolbar.cpp:376 -#, fuzzy msgid "Display measuring info" -msgstr "_Modo de visão" +msgstr "Mostrar medidas" #: ../src/widgets/lpe-toolbar.cpp:377 msgid "Display measuring info for selected items" -msgstr "" +msgstr "Mostrar medidas dos itens selecionados" #. Add the units menu. #: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 @@ -31364,304 +29596,268 @@ msgstr "Unidades" #: ../src/widgets/lpe-toolbar.cpp:397 msgid "Open LPE dialog" -msgstr "" +msgstr "Abrir janela de Efeitos Interativos em Caminhos" #: ../src/widgets/lpe-toolbar.cpp:398 msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "" +"Abre a janela de Efeitos Interativos em Caminhos para ajustar os parâmetros " +"numericamente" #: ../src/widgets/measure-toolbar.cpp:157 msgid "Start and end measures inactive." -msgstr "" +msgstr "Medidas inicial e final inativas." #: ../src/widgets/measure-toolbar.cpp:159 msgid "Start and end measures active." -msgstr "" +msgstr "Medidas inicial e final ativas." #: ../src/widgets/measure-toolbar.cpp:175 -#, fuzzy msgid "Show all crossings." -msgstr "Selecionar em todas as camadas" +msgstr "Mostrar todos os cruzamentos." #: ../src/widgets/measure-toolbar.cpp:177 msgid "Show visible crossings." -msgstr "" +msgstr "Mostrar cruzamentos visíveis." #: ../src/widgets/measure-toolbar.cpp:193 msgid "Use all layers in the measure." -msgstr "" +msgstr "Usar todas as camadas na medição." #: ../src/widgets/measure-toolbar.cpp:195 -#, fuzzy msgid "Use current layer in the measure." -msgstr "Levanta a camada actual para o topo" +msgstr "Usar camada atual na medição." #: ../src/widgets/measure-toolbar.cpp:211 -#, fuzzy msgid "Compute all elements." -msgstr "tutorial-elements.pt_BR.svg" +msgstr "Calcular todos os elementos." #: ../src/widgets/measure-toolbar.cpp:213 -#, fuzzy msgid "Compute max length." -msgstr "Caminho ao longo do caminho" +msgstr "Calcular comprimento máximo." #: ../src/widgets/measure-toolbar.cpp:274 ../src/widgets/text-toolbar.cpp:1609 -#, fuzzy msgid "Font Size" -msgstr "Tamanho da fonte" +msgstr "Tamanho da Fonte" #: ../src/widgets/measure-toolbar.cpp:274 -#, fuzzy msgid "Font Size:" -msgstr "Tamanho da fonte" +msgstr "Tamanho da Fonte:" #: ../src/widgets/measure-toolbar.cpp:275 msgid "The font size to be used in the measurement labels" -msgstr "" +msgstr "Tamanho da fonte utlizada nas medidas mostradas" #: ../src/widgets/measure-toolbar.cpp:286 #: ../src/widgets/measure-toolbar.cpp:294 msgid "The units to be used for the measurements" -msgstr "" +msgstr "Unidade utilizada nas medidas" #: ../src/widgets/measure-toolbar.cpp:302 ../share/extensions/measure.inx.h:14 -#, fuzzy msgid "Precision:" -msgstr "Precisão" +msgstr "Precisão:" #: ../src/widgets/measure-toolbar.cpp:303 msgid "Decimal precision of measure" -msgstr "" +msgstr "Número de casas decimais nas medidas" #: ../src/widgets/measure-toolbar.cpp:315 -#, fuzzy msgid "Scale %" -msgstr "Ampliar" +msgstr "Escala %" #: ../src/widgets/measure-toolbar.cpp:315 -#, fuzzy msgid "Scale %:" -msgstr "Ampliar" +msgstr "Escala %:" #: ../src/widgets/measure-toolbar.cpp:316 msgid "Scale the results" -msgstr "" +msgstr "Permite alterar a escala das medidas" #: ../src/widgets/measure-toolbar.cpp:329 -#, fuzzy msgid "The offset size" -msgstr "Padrão de Tipografia" +msgstr "Tamanho do deslocamento" #: ../src/widgets/measure-toolbar.cpp:341 #: ../src/widgets/measure-toolbar.cpp:342 -#, fuzzy msgid "Ignore first and last" -msgstr "Ignorar objectos ocultos" +msgstr "Não mostrar primeira e última medidas" #: ../src/widgets/measure-toolbar.cpp:352 #: ../src/widgets/measure-toolbar.cpp:353 -#, fuzzy msgid "Show hidden intersections" -msgstr "Ajustar às interseções de guias com a grelha" +msgstr "Mostrar interseções ocultas" #: ../src/widgets/measure-toolbar.cpp:363 #: ../src/widgets/measure-toolbar.cpp:364 -#, fuzzy msgid "Show measures between items" -msgstr "Espaço entre cópias:" +msgstr "Mostrar medidas entre itens" #: ../src/widgets/measure-toolbar.cpp:374 #: ../src/widgets/measure-toolbar.cpp:375 -#, fuzzy msgid "Measure all layers" -msgstr "Selecionar em todas as camadas" +msgstr "Medir todas as camadas" #: ../src/widgets/measure-toolbar.cpp:385 #: ../src/widgets/measure-toolbar.cpp:386 -#, fuzzy msgid "Reverse measure" -msgstr "Reverter caminho" +msgstr "Medida inversa" #: ../src/widgets/measure-toolbar.cpp:395 #: ../src/widgets/measure-toolbar.cpp:396 msgid "Phantom measure" -msgstr "" +msgstr "Medida fantasma" #: ../src/widgets/measure-toolbar.cpp:405 #: ../src/widgets/measure-toolbar.cpp:406 -#, fuzzy msgid "To guides" -msgstr "Mostrar _guias" +msgstr "Criar guias" #: ../src/widgets/measure-toolbar.cpp:415 #: ../src/widgets/measure-toolbar.cpp:416 -#, fuzzy msgid "Mark Dimension" -msgstr "Divisão" +msgstr "Criar Cota" #: ../src/widgets/measure-toolbar.cpp:425 #: ../src/widgets/measure-toolbar.cpp:426 -#, fuzzy msgid "Convert to item" -msgstr "Converter para Texto" +msgstr "Converter medição em objeto permanente do desenho" #: ../src/widgets/mesh-toolbar.cpp:318 -#, fuzzy msgid "Set mesh type" -msgstr "Definir estilo do texto" +msgstr "Definir tipo de malha" #: ../src/widgets/mesh-toolbar.cpp:380 -#, fuzzy msgid "normal" -msgstr "Normal" +msgstr "normal" #: ../src/widgets/mesh-toolbar.cpp:380 -#, fuzzy msgid "Create mesh gradient" -msgstr "Criar degradê linear" +msgstr "Criar gradiente de malha" #: ../src/widgets/mesh-toolbar.cpp:384 msgid "conical" -msgstr "" +msgstr "cónico" #: ../src/widgets/mesh-toolbar.cpp:384 -#, fuzzy msgid "Create conical gradient" -msgstr "Criar degradê linear" +msgstr "Criar gradiente cónico" #: ../src/widgets/mesh-toolbar.cpp:439 -#, fuzzy msgid "Rows" -msgstr "Linhas:" +msgstr "Linhas" #: ../src/widgets/mesh-toolbar.cpp:439 #: ../share/extensions/guides_creator.inx.h:5 #: ../share/extensions/layout_nup.inx.h:12 -#, fuzzy msgid "Rows:" msgstr "Linhas:" #: ../src/widgets/mesh-toolbar.cpp:439 -#, fuzzy msgid "Number of rows in new mesh" -msgstr "Número de linhas" +msgstr "Número de linhas na nova malha" #: ../src/widgets/mesh-toolbar.cpp:455 -#, fuzzy msgid "Columns" -msgstr "Colunas:" +msgstr "Colunas" #: ../src/widgets/mesh-toolbar.cpp:455 #: ../share/extensions/guides_creator.inx.h:4 -#, fuzzy msgid "Columns:" msgstr "Colunas:" #: ../src/widgets/mesh-toolbar.cpp:455 -#, fuzzy msgid "Number of columns in new mesh" -msgstr "Número de colunas" +msgstr "Número de colunas na nova malha" #: ../src/widgets/mesh-toolbar.cpp:469 -#, fuzzy msgid "Edit Fill" -msgstr "Editar preenchimento..." +msgstr "Editar Preenchimento" #: ../src/widgets/mesh-toolbar.cpp:470 -#, fuzzy msgid "Edit fill mesh" -msgstr "Editar preenchimento..." +msgstr "Editar preenchimento da malha" #: ../src/widgets/mesh-toolbar.cpp:481 -#, fuzzy msgid "Edit Stroke" -msgstr "Editar traço..." +msgstr "Editar Traço" #: ../src/widgets/mesh-toolbar.cpp:482 -#, fuzzy msgid "Edit stroke mesh" -msgstr "Editar traço..." +msgstr "Editar traço da malha" #: ../src/widgets/mesh-toolbar.cpp:493 ../src/widgets/node-toolbar.cpp:521 -#, fuzzy msgid "Show Handles" -msgstr "Desenhar Alças" +msgstr "Mostrar Alças" #: ../src/widgets/mesh-toolbar.cpp:494 -#, fuzzy msgid "Show side and tensor handles" -msgstr "Armazenar transformação:" +msgstr "Mostrar alças de lado e tensor" #: ../src/widgets/mesh-toolbar.cpp:509 msgid "WARNING: Mesh SVG Syntax Subject to Change" -msgstr "" +msgstr "AVISO: a sintaxe da Malha SVG está sujeita a alterações" #: ../src/widgets/mesh-toolbar.cpp:519 msgctxt "Type" msgid "Coons" -msgstr "" +msgstr "Coons" #: ../src/widgets/mesh-toolbar.cpp:522 msgid "Bicubic" -msgstr "" +msgstr "Bicúbico" #: ../src/widgets/mesh-toolbar.cpp:524 msgid "Coons" -msgstr "" +msgstr "Coons" #: ../src/widgets/mesh-toolbar.cpp:525 msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." msgstr "" +"Coons: sem suavidade. Bicúbico: suavidade através dos limites do remendo." #: ../src/widgets/mesh-toolbar.cpp:527 ../src/widgets/pencil-toolbar.cpp:375 -#, fuzzy msgid "Smoothing:" -msgstr "Suavizar" +msgstr "Suavizar:" #: ../src/widgets/mesh-toolbar.cpp:537 -#, fuzzy msgid "Toggle Sides" -msgstr "Al_ternar" +msgstr "Trocar Lados" #: ../src/widgets/mesh-toolbar.cpp:538 msgid "Toggle selected sides between Beziers and lines." -msgstr "" +msgstr "Alternar lados selecionados entre Béziers e linhas." #: ../src/widgets/mesh-toolbar.cpp:541 -#, fuzzy msgid "Toggle side:" -msgstr "Al_ternar" +msgstr "Trocar lado:" #: ../src/widgets/mesh-toolbar.cpp:548 -#, fuzzy msgid "Make elliptical" -msgstr "Tornar itálico" +msgstr "Tornar elíptico" #: ../src/widgets/mesh-toolbar.cpp:549 msgid "" "Make selected sides elliptical by changing length of handles. Works best if " "handles already approximate ellipse." msgstr "" +"Tornar os lados selecionados elípticos alterando o comprimento das alças. " +"Funciona melhor se as alças já aproximam a elipse." #: ../src/widgets/mesh-toolbar.cpp:552 -#, fuzzy msgid "Make elliptical:" -msgstr "Tornar itálico" +msgstr "Tornar elíptico:" #: ../src/widgets/mesh-toolbar.cpp:559 -#, fuzzy msgid "Pick colors:" -msgstr "Soltar cor" +msgstr "Pegar cores:" #: ../src/widgets/mesh-toolbar.cpp:560 msgid "Pick colors for selected corner nodes from underneath mesh." -msgstr "" +msgstr "Pegar cores dos nós de cantos selecionados da malha de baixo." #: ../src/widgets/mesh-toolbar.cpp:563 -#, fuzzy msgid "Pick Color" -msgstr "Cor lisa" +msgstr "Pegar cor" #: ../src/widgets/node-toolbar.cpp:341 msgid "Insert node" @@ -31669,80 +29865,67 @@ msgstr "Inserir nó" #: ../src/widgets/node-toolbar.cpp:342 msgid "Insert new nodes into selected segments" -msgstr "Inserir novos nós dentro dos segmentos seleccionados" +msgstr "Inserir novos nós nos segmentos selecionados" #: ../src/widgets/node-toolbar.cpp:345 msgid "Insert" msgstr "Inserir" #: ../src/widgets/node-toolbar.cpp:356 -#, fuzzy msgid "Insert node at min X" -msgstr "Inserir nó" +msgstr "Inserir nó no X mínimo" #: ../src/widgets/node-toolbar.cpp:357 -#, fuzzy msgid "Insert new nodes at min X into selected segments" -msgstr "Inserir novos nós dentro dos segmentos seleccionados" +msgstr "Inserir novos nós no X mínimo nos segmentos selecionados" #: ../src/widgets/node-toolbar.cpp:360 -#, fuzzy msgid "Insert min X" -msgstr "Inserir nó" +msgstr "Inserir X mínimo" #: ../src/widgets/node-toolbar.cpp:366 -#, fuzzy msgid "Insert node at max X" -msgstr "Inserir nó" +msgstr "Inserir nó no X máximo" #: ../src/widgets/node-toolbar.cpp:367 -#, fuzzy msgid "Insert new nodes at max X into selected segments" -msgstr "Inserir novos nós dentro dos segmentos seleccionados" +msgstr "Inserir novos nós no X máximo nos segmentos selecionados" #: ../src/widgets/node-toolbar.cpp:370 -#, fuzzy msgid "Insert max X" -msgstr "Inserir" +msgstr "Inserir X máximo" #: ../src/widgets/node-toolbar.cpp:376 -#, fuzzy msgid "Insert node at min Y" -msgstr "Inserir nó" +msgstr "Inserir nó no Y mínimo" #: ../src/widgets/node-toolbar.cpp:377 -#, fuzzy msgid "Insert new nodes at min Y into selected segments" -msgstr "Inserir novos nós dentro dos segmentos seleccionados" +msgstr "Inserir novos nós no Y mínimo nos segmentos selecionados" #: ../src/widgets/node-toolbar.cpp:380 -#, fuzzy msgid "Insert min Y" -msgstr "Inserir nó" +msgstr "Inserir Y mínimo" #: ../src/widgets/node-toolbar.cpp:386 -#, fuzzy msgid "Insert node at max Y" -msgstr "Inserir nó" +msgstr "Inserir nó no Y máximo" #: ../src/widgets/node-toolbar.cpp:387 -#, fuzzy msgid "Insert new nodes at max Y into selected segments" -msgstr "Inserir novos nós dentro dos segmentos seleccionados" +msgstr "Inserir novos nós no Y máximo nos segmentos selecionados" #: ../src/widgets/node-toolbar.cpp:390 -#, fuzzy msgid "Insert max Y" -msgstr "Inserir" +msgstr "Inserir Y máximo" #: ../src/widgets/node-toolbar.cpp:398 msgid "Delete selected nodes" -msgstr "Eliminar nós seleccionados" +msgstr "Eliminar nós selecionados" #: ../src/widgets/node-toolbar.cpp:409 -#, fuzzy msgid "Join selected nodes" -msgstr "Juntar camimhos nos nós seleccionados" +msgstr "Unir nós selecionados" #: ../src/widgets/node-toolbar.cpp:412 msgid "Join" @@ -31750,121 +29933,107 @@ msgstr "Unir" #: ../src/widgets/node-toolbar.cpp:420 msgid "Break path at selected nodes" -msgstr "Quebrar caminho nos nós seleccionados" +msgstr "Partir caminho nos nós selecionados" #: ../src/widgets/node-toolbar.cpp:430 -#, fuzzy msgid "Join with segment" -msgstr "Unir Segmento" +msgstr "Unir ao segmento" #: ../src/widgets/node-toolbar.cpp:431 msgid "Join selected endnodes with a new segment" -msgstr "Juntar caminhos nos nós seleccionados com novo segmento" +msgstr "Unir nós finais selecionados com um novo segmento" #: ../src/widgets/node-toolbar.cpp:440 msgid "Delete segment" msgstr "Eliminar segmento" #: ../src/widgets/node-toolbar.cpp:441 -#, fuzzy msgid "Delete segment between two non-endpoint nodes" -msgstr "Separar caminho entre dois nós que não sejam pontos finais" +msgstr "Eliminar segmento entre 2 nós não extremos" #: ../src/widgets/node-toolbar.cpp:450 -#, fuzzy msgid "Node Cusp" -msgstr "Nós" +msgstr "Nó Afiado" #: ../src/widgets/node-toolbar.cpp:451 msgid "Make selected nodes corner" -msgstr "Tornar nós seleccionados em um canto" +msgstr "Tornar os nós selecionados em nós afiados" #: ../src/widgets/node-toolbar.cpp:460 msgid "Node Smooth" -msgstr "Suavizar Nó" +msgstr "Nó Suave" #: ../src/widgets/node-toolbar.cpp:461 msgid "Make selected nodes smooth" -msgstr "Suavizar nós seleccionados" +msgstr "Tornar os nós selecionados em nós suaves" #: ../src/widgets/node-toolbar.cpp:470 msgid "Node Symmetric" -msgstr "Simetria do Nó" +msgstr "Nó Simétrico" #: ../src/widgets/node-toolbar.cpp:471 msgid "Make selected nodes symmetric" -msgstr "Tornar nós seleccionados simétricos" +msgstr "Tornar os nós selecionados em nós simétricos" #: ../src/widgets/node-toolbar.cpp:480 -#, fuzzy msgid "Node Auto" -msgstr "Alterar Nó" +msgstr "Nó Automático" #: ../src/widgets/node-toolbar.cpp:481 -#, fuzzy msgid "Make selected nodes auto-smooth" -msgstr "Suavizar nós seleccionados" +msgstr "Tornar os nós selecionados em nós suavizados automaticamente" #: ../src/widgets/node-toolbar.cpp:490 msgid "Node Line" -msgstr "Linha do Nó" +msgstr "Nó Linha" #: ../src/widgets/node-toolbar.cpp:491 msgid "Make selected segments lines" -msgstr "Converter segmentos seleccionados em linhas" +msgstr "Alterar segmentos selecionados para linhas retas" #: ../src/widgets/node-toolbar.cpp:500 msgid "Node Curve" -msgstr "Curva do Nó" +msgstr "Nó Curvo" #: ../src/widgets/node-toolbar.cpp:501 msgid "Make selected segments curves" -msgstr "Converter segmentos seleccionados em curvas" +msgstr "Alterar segmentos selecionados para curvas" #: ../src/widgets/node-toolbar.cpp:510 -#, fuzzy msgid "Show Transform Handles" -msgstr "Desenhar Alças" +msgstr "Mostrar Alças de Transformar" #: ../src/widgets/node-toolbar.cpp:511 -#, fuzzy msgid "Show transformation handles for selected nodes" -msgstr "Mostrar as alças de Bezier dos nós seleccionados" +msgstr "Mostrar alças de transformação em nós selecionados" #: ../src/widgets/node-toolbar.cpp:522 -#, fuzzy msgid "Show Bezier handles of selected nodes" -msgstr "Mostrar as alças de Bezier dos nós seleccionados" +msgstr "Mostrar alças de Bézier em nós selecionados" #: ../src/widgets/node-toolbar.cpp:532 -#, fuzzy msgid "Show Outline" -msgstr "_Contorno" +msgstr "Mostrar Contorno" #: ../src/widgets/node-toolbar.cpp:533 -#, fuzzy msgid "Show path outline (without path effects)" -msgstr "Largura do padrão" +msgstr "Mostrar e destacar caminho (sem efeitos aplicados)" #: ../src/widgets/node-toolbar.cpp:555 -#, fuzzy msgid "Edit clipping paths" -msgstr "Definir caminho recortado" +msgstr "Editar caminhos recortados" #: ../src/widgets/node-toolbar.cpp:556 -#, fuzzy msgid "Show clipping path(s) of selected object(s)" -msgstr "Definir caminho recortado" +msgstr "Mostrar caminhos recortados dos objetos selecionados" #: ../src/widgets/node-toolbar.cpp:566 -#, fuzzy msgid "Edit masks" -msgstr "Definir máscara" +msgstr "Editar máscaras" #: ../src/widgets/node-toolbar.cpp:567 -#, fuzzy msgid "Show mask(s) of selected object(s)" -msgstr "Fazer com que os conectores evitem os objectos seleccionados" +msgstr "Mostrar máscaras dos objetos selecionados" #: ../src/widgets/node-toolbar.cpp:581 msgid "X coordinate:" @@ -31872,7 +30041,7 @@ msgstr "Coordenada X:" #: ../src/widgets/node-toolbar.cpp:581 msgid "X coordinate of selected node(s)" -msgstr "Coordenada X do nó(s) seleccionado(s)" +msgstr "Coordenada X dos nós selecionados" #: ../src/widgets/node-toolbar.cpp:599 msgid "Y coordinate:" @@ -31880,7 +30049,7 @@ msgstr "Coordenada Y:" #: ../src/widgets/node-toolbar.cpp:599 msgid "Y coordinate of selected node(s)" -msgstr "Coordenada X do nó(s) seleccionado(s)" +msgstr "Coordenada Y dos nós selecionados" #: ../src/widgets/paint-selector.cpp:219 msgid "No paint" @@ -31892,20 +30061,19 @@ msgstr "Cor lisa" #: ../src/widgets/paint-selector.cpp:223 msgid "Linear gradient" -msgstr "Degradê linear" +msgstr "Gradiente linear" #: ../src/widgets/paint-selector.cpp:225 msgid "Radial gradient" -msgstr "Degradê radial" +msgstr "Gradiente radial" #: ../src/widgets/paint-selector.cpp:228 -#, fuzzy msgid "Mesh gradient" -msgstr "Mover alça do degradê" +msgstr "Gradiente de malha" #: ../src/widgets/paint-selector.cpp:235 msgid "Unset paint (make it undefined so it can be inherited)" -msgstr "Pintura indefinida (deixe indefinido e ela poderá ser herdada)" +msgstr "Pintura indefinida (deixar indefinida para poder ser herdada)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty #: ../src/widgets/paint-selector.cpp:252 @@ -31913,110 +30081,102 @@ msgid "" "Any path self-intersections or subpaths create holes in the fill (fill-rule: " "evenodd)" msgstr "" -"Para cada auto intersecção de caminhos ou sub-caminhos, criar buracos no " -"preenchimanto (ench-régua: evenodd) " +"Qualquer auto-interseção de caminhos ou sub-caminhos cria buracos no " +"preenchimento (fill-rule: evenodd)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty #: ../src/widgets/paint-selector.cpp:263 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" -"O preenchimento será sólido a menos que um caminho secundário seja " -"direcionado ao contrário (fill-rule: nonzero)" +"O preenchimento é sólido a não ser que um sub-caminho tenha direção " +"contrária (fill-rule: nonzero)" #: ../src/widgets/paint-selector.cpp:605 -#, fuzzy msgid "No objects" -msgstr "Snapping to objects" +msgstr "Nenhum objeto" #: ../src/widgets/paint-selector.cpp:616 -#, fuzzy msgid "Multiple styles" -msgstr "Estilos múltiplos" +msgstr "Vários estilos" #: ../src/widgets/paint-selector.cpp:627 -#, fuzzy msgid "Paint is undefined" -msgstr "A pintura está indefinida" +msgstr "A pintura é indefinida" #: ../src/widgets/paint-selector.cpp:638 -#, fuzzy msgid "No paint" -msgstr "Opacidade" +msgstr "Sem pintura" #: ../src/widgets/paint-selector.cpp:722 -#, fuzzy msgid "Flat color" -msgstr "Cor lisa" +msgstr "Cor lisa" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); #: ../src/widgets/paint-selector.cpp:791 -#, fuzzy msgid "Linear gradient" -msgstr "Degradê linear" +msgstr "Gradiente linear" #: ../src/widgets/paint-selector.cpp:794 -#, fuzzy msgid "Radial gradient" -msgstr "Degradê radial" +msgstr "Gradiente radial" #: ../src/widgets/paint-selector.cpp:799 -#, fuzzy msgid "Mesh gradient" -msgstr "Degradê linear" +msgstr "Gradiente de malha" #: ../src/widgets/paint-selector.cpp:1098 -#, fuzzy msgid "" "Use the Node tool to adjust position, scale, and rotation of the " "pattern on canvas. Use Object > Pattern > Objects to Pattern to " "create a new pattern from selection." msgstr "" -"Use Objecto > Padrão de preenchimento > Objecto para Padrão " -"para criar um novo padrão a partir da selecção." +"Selecionar a Ferramenta Nó e mover os controlos que aparecem no canto " +"superior esquerdo da página para ajustar a posição, escala, e rotação do " +"padrão na área de desenho. Usar Objeto > Padrão > Objetos para " +"Padrão para criar um novo padrão a partir da seleção." #: ../src/widgets/paint-selector.cpp:1111 -#, fuzzy msgid "Pattern fill" -msgstr "Padrão de preenchimento" +msgstr "Padrão do preenchimento" #: ../src/widgets/paint-selector.cpp:1205 -#, fuzzy msgid "Swatch fill" -msgstr "Desfazer preenchimento" +msgstr "Preenchimento de amostra de cor" #: ../src/widgets/paintbucket-toolbar.cpp:134 -#, fuzzy msgid "Fill by" -msgstr "Preencher por:" +msgstr "Preencher em" #: ../src/widgets/paintbucket-toolbar.cpp:135 msgid "Fill by:" -msgstr "Preencher por:" +msgstr "Preencher em:" #: ../src/widgets/paintbucket-toolbar.cpp:147 -#, fuzzy msgid "Fill Threshold" -msgstr "Limiar" +msgstr "Limiar do Preenchimento" #: ../src/widgets/paintbucket-toolbar.cpp:148 msgid "" "The maximum allowed difference between the clicked pixel and the neighboring " "pixels to be counted in the fill" msgstr "" +"A diferença máxima permitida entre o píxel clicado e os píxeis em redor a " +"ser considerado no preenchimento" #: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by" -msgstr "Aumentar/Diminuir por" +msgstr "Aumentar/diminuir" #: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by:" -msgstr "Aumentar/Diminuir por:" +msgstr "Aumentar/diminuir:" #: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" +"O valor da área de preenchimento a aumentar (positivo) ou diminuir (negativo)" #: ../src/widgets/paintbucket-toolbar.cpp:199 msgid "Close gaps" @@ -32033,128 +30193,115 @@ msgid "Defaults" msgstr "Padrões" #: ../src/widgets/paintbucket-toolbar.cpp:212 -#, fuzzy msgid "" "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " "to change defaults)" msgstr "" -"Reiniciar parâmetros da forma para padrões (use Configurações do Inkscape > " -"Ferramentas para alterar os padrões)" +"Repor parâmetros padrão do balde de tinta. Usar \"Preferências do Inkscape-" +">Ferramentas\" para alterar os valores padrão." #: ../src/widgets/pencil-toolbar.cpp:105 msgid "Bezier" -msgstr "" +msgstr "Bézier" #: ../src/widgets/pencil-toolbar.cpp:106 -#, fuzzy msgid "Create regular Bezier path" -msgstr "Criar novo caminho" +msgstr "Criar caminho Bézier regular" #: ../src/widgets/pencil-toolbar.cpp:113 -#, fuzzy msgid "Create Spiro path" -msgstr "Criar espirais" +msgstr "Criar caminho Espiral Clotóide" #: ../src/widgets/pencil-toolbar.cpp:119 -#, fuzzy msgid "Create BSpline path" -msgstr "Criar espirais" +msgstr "Criar caminho B-Spline" #: ../src/widgets/pencil-toolbar.cpp:125 msgid "Zigzag" -msgstr "" +msgstr "Ziguezague" #: ../src/widgets/pencil-toolbar.cpp:126 msgid "Create a sequence of straight line segments" -msgstr "" +msgstr "Criar uma sequência de linhas direitas" #: ../src/widgets/pencil-toolbar.cpp:132 -#, fuzzy msgid "Paraxial" -msgstr "parcial" +msgstr "Paraxial" #: ../src/widgets/pencil-toolbar.cpp:133 msgid "Create a sequence of paraxial line segments" -msgstr "" +msgstr "Criar uma sequência de segmentos de linha paraxiais" #: ../src/widgets/pencil-toolbar.cpp:141 msgid "Mode of new lines drawn by this tool" -msgstr "" +msgstr "Modo de linhas novas criadas por esta ferramenta" #: ../src/widgets/pencil-toolbar.cpp:176 -#, fuzzy msgctxt "Freehand shape" msgid "None" -msgstr "Nenhum" +msgstr "Nenhuma" #: ../src/widgets/pencil-toolbar.cpp:177 -#, fuzzy msgid "Triangle in" -msgstr "Único" +msgstr "Triângulo para dentro" #: ../src/widgets/pencil-toolbar.cpp:178 -#, fuzzy msgid "Triangle out" -msgstr "Único" +msgstr "Triângulo para fora" #: ../src/widgets/pencil-toolbar.cpp:180 msgid "From clipboard" -msgstr "" +msgstr "Da área de transferência" #: ../src/widgets/pencil-toolbar.cpp:181 -#, fuzzy msgid "Bend from clipboard" -msgstr "Cortar a selecção para a área de transferência" +msgstr "Dobra da área de transferência" #: ../src/widgets/pencil-toolbar.cpp:182 -#, fuzzy msgid "Last applied" -msgstr "Colar tamanho" +msgstr "Último aplicado" #: ../src/widgets/pencil-toolbar.cpp:207 ../src/widgets/pencil-toolbar.cpp:208 -#, fuzzy msgid "Shape:" -msgstr "Formas" +msgstr "Forma:" #: ../src/widgets/pencil-toolbar.cpp:207 -#, fuzzy msgid "Shape of new paths drawn by this tool" -msgstr "Estilo de novos caminhos criados pelo Lápis" +msgstr "" +"Forma geométrica dos novos caminhos criados com esta ferramenta (através de " +"Efeito no Caminho)" #: ../src/widgets/pencil-toolbar.cpp:372 msgid "(many nodes, rough)" -msgstr "" +msgstr "(muitos nós, rugoso)" #: ../src/widgets/pencil-toolbar.cpp:372 -#, fuzzy msgid "(few nodes, smooth)" -msgstr "Suavizar nós seleccionados" +msgstr "(poucos nós, suave)" #: ../src/widgets/pencil-toolbar.cpp:375 -#, fuzzy msgid "Smoothing: " -msgstr "Suavizar" +msgstr "Suavizar: " #: ../src/widgets/pencil-toolbar.cpp:376 msgid "How much smoothing (simplifying) is applied to the line" -msgstr "" +msgstr "Quantidade de suavização (simplificando) aplicada na linha" #: ../src/widgets/pencil-toolbar.cpp:397 -#, fuzzy msgid "" "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" -"Reiniciar parâmetros da forma para padrões (use Configurações do Inkscape > " -"Ferramentas para alterar os padrões)" +"Repor parâmetros do lápis (usar Preferências do Inkscape->Ferramentas para " +"alterar os valores padrão)" #: ../src/widgets/pencil-toolbar.cpp:407 ../src/widgets/pencil-toolbar.cpp:408 msgid "LPE based interactive simplify" -msgstr "" +msgstr "Efeitos Interativos em Caminhos baseados em simplificação interativa" #: ../src/widgets/pencil-toolbar.cpp:418 ../src/widgets/pencil-toolbar.cpp:419 msgid "LPE simplify flatten" -msgstr "" +msgstr "Aplanar simplificado de Efeitos Interativos em Caminhos" #: ../src/widgets/rect-toolbar.cpp:125 msgid "Change rectangle" @@ -32162,7 +30309,7 @@ msgstr "Alterar retângulo" #: ../src/widgets/rect-toolbar.cpp:317 msgid "W:" -msgstr "W:" +msgstr "L:" #: ../src/widgets/rect-toolbar.cpp:317 msgid "Width of rectangle" @@ -32170,7 +30317,7 @@ msgstr "Largura do retângulo" #: ../src/widgets/rect-toolbar.cpp:334 msgid "H:" -msgstr "H:" +msgstr "A:" #: ../src/widgets/rect-toolbar.cpp:334 msgid "Height of rectangle" @@ -32178,11 +30325,11 @@ msgstr "Altura do retângulo" #: ../src/widgets/rect-toolbar.cpp:348 ../src/widgets/rect-toolbar.cpp:363 msgid "not rounded" -msgstr "Não redondo" +msgstr "não redondo" #: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius" -msgstr " Horizontal" +msgstr "Raio horizontal" #: ../src/widgets/rect-toolbar.cpp:351 msgid "Rx:" @@ -32190,12 +30337,11 @@ msgstr "Rx:" #: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius of rounded corners" -msgstr "Raio horizontal de cantos arredondados" +msgstr "Raio horizontal dos cantos arredondados" #: ../src/widgets/rect-toolbar.cpp:366 -#, fuzzy msgid "Vertical radius" -msgstr "Espaçamento Vertical" +msgstr "Raio vertical" #: ../src/widgets/rect-toolbar.cpp:366 msgid "Ry:" @@ -32203,7 +30349,7 @@ msgstr "Ry:" #: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius of rounded corners" -msgstr "Raio vertical de cantos arredondados" +msgstr "Raio vertical dos cantos arredondados" #: ../src/widgets/rect-toolbar.cpp:385 msgid "Not rounded" @@ -32214,46 +30360,40 @@ msgid "Make corners sharp" msgstr "Tornar cantos agudos" #: ../src/widgets/ruler.cpp:202 -#, fuzzy msgid "The orientation of the ruler" -msgstr "Orientação da página:" +msgstr "Orientação da régua" #: ../src/widgets/ruler.cpp:212 -#, fuzzy msgid "Unit of the ruler" -msgstr "Largura do padrão" +msgstr "Unidades da régua" #: ../src/widgets/ruler.cpp:219 msgid "Lower" -msgstr "Abai_xar" +msgstr "Inferior" #: ../src/widgets/ruler.cpp:220 -#, fuzzy msgid "Lower limit of ruler" -msgstr "Mover para a camada anterior" +msgstr "Limite inferior da régua" #: ../src/widgets/ruler.cpp:229 -#, fuzzy msgid "Upper" -msgstr "Borrão" +msgstr "Superior" #: ../src/widgets/ruler.cpp:230 msgid "Upper limit of ruler" -msgstr "" +msgstr "Limite superior da régua" #: ../src/widgets/ruler.cpp:240 -#, fuzzy msgid "Position of mark on the ruler" -msgstr "Rotação (graus)" +msgstr "Posição da marca na régua" #: ../src/widgets/ruler.cpp:249 -#, fuzzy msgid "Max Size" -msgstr "Tamanho" +msgstr "Tamanho Máximo" #: ../src/widgets/ruler.cpp:250 msgid "Maximum size of the ruler" -msgstr "" +msgstr "Tamanho máximo da régua" #: ../src/widgets/select-toolbar.cpp:262 msgid "Transform by toolbar" @@ -32262,22 +30402,22 @@ msgstr "Transformar através da barra de ferramentas" #: ../src/widgets/select-toolbar.cpp:280 msgid "Now stroke width is scaled when objects are scaled." msgstr "" -"Agora a largura do traço é redimensionada de acordo com os " -"objectos." +"Agora a espessura do traço é redimensionada quando os objetos " +"são redimensionados." #: ../src/widgets/select-toolbar.cpp:282 msgid "Now stroke width is not scaled when objects are scaled." msgstr "" -"Agora a largura do traço não é redimensionada de acordo com os " -"objectos." +"Agora a espessura do traço não é redimensionada quando os " +"objetos são redimensionados." #: ../src/widgets/select-toolbar.cpp:293 msgid "" "Now rounded rectangle corners are scaled when rectangles are " "scaled." msgstr "" -"Agora os cantos arredondados dos retângulos são redimensionada " -"de acordo com os retângulos." +"Agora os cantos arredondados dos retângulos são redimensionados retângulos são redimensionados." #: ../src/widgets/select-toolbar.cpp:295 msgid "" @@ -32285,147 +30425,131 @@ msgid "" "are scaled." msgstr "" "Agora os cantos arredondados dos retângulos não são " -"redimensionados de acordo com os retângulos." +"redimensionados retângulos são redimensionados." #: ../src/widgets/select-toolbar.cpp:306 msgid "" "Now gradients are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." msgstr "" -"Agora os degradês são transformados de acordo com as " -"transformações nos objectos (mover, redimensionar, girar ou inclinar)." +"Agora os gradientes são transformados com os objetos quando os " +"objetos forem transformados (mover, redimensionar, rodar ou inclinar)." #: ../src/widgets/select-toolbar.cpp:308 msgid "" "Now gradients remain fixed when objects are transformed " "(moved, scaled, rotated, or skewed)." msgstr "" -"Agora os degradês permanecem fixos com as transformações nos " -"objectos (mover, redimensionar, girar ou inclinar)." +"Agora os gradientes permanecem fixos quando os objetos forem " +"transformados (mover, redimensionar, rodar ou inclinar)." #: ../src/widgets/select-toolbar.cpp:319 msgid "" "Now patterns are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." msgstr "" -"Agora os padrões são transformados de acordo com as " -"transformações nos objectos (mover, redimensionar, girar ou inclinar)." +"Agora os padrões são transformados com os objetos quando os " +"objetos forem transformados (mover, redimensionar, rodar ou inclinar)." #: ../src/widgets/select-toolbar.cpp:321 msgid "" "Now patterns remain fixed when objects are transformed (moved, " "scaled, rotated, or skewed)." msgstr "" -"Agora os padrões permanecem fixos com as transformações nos " -"objectos (mover, redimensionar, girar ou inclinar)." +"Agora os padrões permanecem fixos quando os objetos são " +"transformados (mover, redimensionar, rodar ou inclinar)." #. name #: ../src/widgets/select-toolbar.cpp:441 -#, fuzzy msgctxt "Select toolbar" msgid "X position" -msgstr "Posição:" +msgstr "Posição X" #. label #: ../src/widgets/select-toolbar.cpp:442 -#, fuzzy msgctxt "Select toolbar" msgid "X:" msgstr "X:" #. shortLabel #: ../src/widgets/select-toolbar.cpp:443 -#, fuzzy msgctxt "Select toolbar" msgid "Horizontal coordinate of selection" -msgstr "Coordenada horizontal da selecção" +msgstr "Coordenada horizontal da seleção" #. name #: ../src/widgets/select-toolbar.cpp:460 -#, fuzzy msgctxt "Select toolbar" msgid "Y position" -msgstr "Posição:" +msgstr "Posição Y" #. label #: ../src/widgets/select-toolbar.cpp:461 -#, fuzzy msgctxt "Select toolbar" msgid "Y:" msgstr "Y:" #. shortLabel #: ../src/widgets/select-toolbar.cpp:462 -#, fuzzy msgctxt "Select toolbar" msgid "Vertical coordinate of selection" -msgstr "Coordenada vertical da selecção" +msgstr "Coordenada vertical da seleção" #. name #: ../src/widgets/select-toolbar.cpp:479 -#, fuzzy msgctxt "Select toolbar" msgid "Width" msgstr "Largura" #. label #: ../src/widgets/select-toolbar.cpp:480 -#, fuzzy msgctxt "Select toolbar" msgid "W:" -msgstr "W:" +msgstr "L:" #. shortLabel #: ../src/widgets/select-toolbar.cpp:481 -#, fuzzy msgctxt "Select toolbar" msgid "Width of selection" -msgstr "Largura da selecção" +msgstr "Largura da seleção" #: ../src/widgets/select-toolbar.cpp:499 -#, fuzzy msgid "Lock width and height" -msgstr "Largura, altura: " +msgstr "Bloquear largura e altura" #: ../src/widgets/select-toolbar.cpp:500 msgid "When locked, change both width and height by the same proportion" -msgstr "Alterar largura e altura pela mesma proporção" +msgstr "Quando bloqueado, alterar largura e altura pela mesma proporção" #. name #: ../src/widgets/select-toolbar.cpp:511 -#, fuzzy msgctxt "Select toolbar" msgid "Height" -msgstr "Altura:" +msgstr "Altura" #. label #: ../src/widgets/select-toolbar.cpp:512 -#, fuzzy msgctxt "Select toolbar" msgid "H:" -msgstr "H:" +msgstr "A:" #. shortLabel #: ../src/widgets/select-toolbar.cpp:513 -#, fuzzy msgctxt "Select toolbar" msgid "Height of selection" -msgstr "Altura da selecção" +msgstr "Altura da seleção" #: ../src/widgets/select-toolbar.cpp:575 -#, fuzzy msgid "Scale rounded corners" -msgstr "Ampliar canto arredondados em retângulos" +msgstr "Redimensionar cantos arredondados" #: ../src/widgets/select-toolbar.cpp:586 -#, fuzzy msgid "Move gradients" -msgstr "Mover alça do degradê" +msgstr "Mover gradientes" #: ../src/widgets/select-toolbar.cpp:597 -#, fuzzy msgid "Move patterns" -msgstr "Padrões" +msgstr "Mover padrões" #: ../src/widgets/sp-attribute-widget.cpp:299 msgid "Set attribute" @@ -32457,11 +30581,11 @@ msgstr "uma revolução completa" #: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of turns" -msgstr "Número de curvas" +msgstr "Número de voltas" #: ../src/widgets/spiral-toolbar.cpp:245 msgid "Turns:" -msgstr "Rotação:" +msgstr "Voltas:" #: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of revolutions" @@ -32473,15 +30597,15 @@ msgstr "círculo" #: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is much denser" -msgstr "limite é muito mais denso" +msgstr "borda é muito mais densa" #: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is denser" -msgstr "limite é mais denso" +msgstr "borda é mais densa" #: ../src/widgets/spiral-toolbar.cpp:256 msgid "even" -msgstr "mesmo" +msgstr "igual" #: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is denser" @@ -32501,7 +30625,7 @@ msgstr "Divergência:" #: ../src/widgets/spiral-toolbar.cpp:259 msgid "How much denser/sparser are outer revolutions; 1 = uniform" -msgstr "Quão densas/esparsas são revoluções externas; 1 = uniforme" +msgstr "Quão densas/esparsas são as revoluções externas; 1 = uniforme" #: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts from center" @@ -32513,12 +30637,11 @@ msgstr "começa no meio do caminho" #: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts near edge" -msgstr "começa perto do limite" +msgstr "começa perto da borda" #: ../src/widgets/spiral-toolbar.cpp:273 -#, fuzzy msgid "Inner radius" -msgstr "Raio interno:" +msgstr "Raio interno" #: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius:" @@ -32533,105 +30656,90 @@ msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" -"Reiniciar parâmetros da forma para padrões (use Configurações do Inkscape > " -"Ferramentas para alterar os padrões)" +"Repor parâmetros padrão da forma (usar Configurações do Inkscape > " +"Ferramentas para alterar o padrão)" #. Width #: ../src/widgets/spray-toolbar.cpp:294 -#, fuzzy msgid "(narrow spray)" -msgstr "Abai_xar" +msgstr "(pulverizar estreito)" #: ../src/widgets/spray-toolbar.cpp:294 -#, fuzzy msgid "(broad spray)" -msgstr " (traço)" +msgstr "(pulverizar largo)" #: ../src/widgets/spray-toolbar.cpp:297 -#, fuzzy msgid "The width of the spray area (relative to the visible canvas area)" -msgstr "A largura da caneta caligráfica (em relação a área visível da página)" +msgstr "A largura da área pulverizada (em relação à área visível da página)" #: ../src/widgets/spray-toolbar.cpp:312 -#, fuzzy msgid "Use the pressure of the input device to alter the width of spray area" msgstr "" -"Usar a pressão do dispositivo de entrada para alterar a largura da caneta" +"Usar a pressão do dispositivo de entrada para alterar a largura da área " +"pulverizada" #: ../src/widgets/spray-toolbar.cpp:323 -#, fuzzy msgid "(maximum mean)" -msgstr "(inércia máxima)" +msgstr "(significado máximo)" #: ../src/widgets/spray-toolbar.cpp:326 -#, fuzzy msgid "Focus" -msgstr "agudo" +msgstr "Foco" #: ../src/widgets/spray-toolbar.cpp:326 -#, fuzzy msgid "Focus:" -msgstr "Força:" +msgstr "Foco:" #: ../src/widgets/spray-toolbar.cpp:326 msgid "0 to spray a spot; increase to enlarge the ring radius" -msgstr "" +msgstr "0 para pulverizar um ponto; aumentar para usar um diâmetro maior" #. Standard_deviation #: ../src/widgets/spray-toolbar.cpp:339 -#, fuzzy msgid "(minimum scatter)" -msgstr "(força mínima)" +msgstr "(dispersão mínima)" #: ../src/widgets/spray-toolbar.cpp:339 -#, fuzzy msgid "(maximum scatter)" -msgstr "(tremor máximo)" +msgstr "(dispersão máxima)" #: ../src/widgets/spray-toolbar.cpp:342 -#, fuzzy msgctxt "Spray tool" msgid "Scatter" -msgstr "Padrão" +msgstr "Dispersar" #: ../src/widgets/spray-toolbar.cpp:342 -#, fuzzy msgctxt "Spray tool" msgid "Scatter:" -msgstr "Padrão" +msgstr "Dispersar:" #: ../src/widgets/spray-toolbar.cpp:342 msgid "Increase to scatter sprayed objects" -msgstr "" +msgstr "Aumentar para espalhar os objetos pulverizados" #: ../src/widgets/spray-toolbar.cpp:361 -#, fuzzy msgid "Spray copies of the initial selection" -msgstr "Aplicar efeito escolhido à selecção" +msgstr "Pulverizar cópias da seleção inicial" #: ../src/widgets/spray-toolbar.cpp:368 -#, fuzzy msgid "Spray clones of the initial selection" -msgstr "Criar e ladrilhar os clones da selecção" +msgstr "Pulverizar clones da seleção inicial" #: ../src/widgets/spray-toolbar.cpp:375 -#, fuzzy msgid "Spray single path" -msgstr "Soltar caminho recortado" +msgstr "Pulverizar num caminho" #: ../src/widgets/spray-toolbar.cpp:376 msgid "Spray objects in a single path" -msgstr "" +msgstr "Pulverizar os objetos num caminho" #: ../src/widgets/spray-toolbar.cpp:383 -#, fuzzy msgid "Delete sprayed items" -msgstr "Eliminar parada do degradê" +msgstr "Eliminar itens pulverizados" #: ../src/widgets/spray-toolbar.cpp:384 -#, fuzzy msgid "Delete sprayed items from selection" -msgstr "Remover máscara da selecção" +msgstr "Eliminar itens pulverizados da seleção" #: ../src/widgets/spray-toolbar.cpp:388 ../src/widgets/tweak-toolbar.cpp:253 msgid "Mode" @@ -32640,42 +30748,38 @@ msgstr "Modo" #. Population #: ../src/widgets/spray-toolbar.cpp:408 msgid "(low population)" -msgstr "" +msgstr "(poucos)" #: ../src/widgets/spray-toolbar.cpp:408 -#, fuzzy msgid "(high population)" -msgstr "Destino da impressão" +msgstr "(muitos)" #: ../src/widgets/spray-toolbar.cpp:411 msgid "Amount" -msgstr "Quantidade" +msgstr "Número" #: ../src/widgets/spray-toolbar.cpp:412 msgid "Adjusts the number of items sprayed per click" -msgstr "" +msgstr "Ajustar a quantidade de itens pulverizados por cada clique" #: ../src/widgets/spray-toolbar.cpp:428 -#, fuzzy msgid "" "Use the pressure of the input device to alter the amount of sprayed objects" msgstr "" -"Usar a pressão do dispositivo de entrada para alterar a largura da caneta" +"Usar a pressão do dispositivo de entrada para alterar a quantidade de " +"objetos pulverizados" #: ../src/widgets/spray-toolbar.cpp:438 -#, fuzzy msgid "(high rotation variation)" -msgstr "Destino da impressão" +msgstr "(variação de rotação alta)" #: ../src/widgets/spray-toolbar.cpp:441 -#, fuzzy msgid "Rotation" -msgstr "_Rotação" +msgstr "Rotação" #: ../src/widgets/spray-toolbar.cpp:441 -#, fuzzy msgid "Rotation:" -msgstr "_Rotação" +msgstr "Rotação:" #: ../src/widgets/spray-toolbar.cpp:443 #, no-c-format @@ -32683,23 +30787,22 @@ msgid "" "Variation of the rotation of the sprayed objects; 0% for the same rotation " "than the original object" msgstr "" +"Variação da rotação dos objetos pulverizados; 0% para usar a mesma rotação " +"do objeto original" #: ../src/widgets/spray-toolbar.cpp:456 -#, fuzzy msgid "(high scale variation)" -msgstr "Destino da impressão" +msgstr "(variação da escala alta)" #: ../src/widgets/spray-toolbar.cpp:459 -#, fuzzy msgctxt "Spray tool" msgid "Scale" -msgstr "Ampliar" +msgstr "Escala" #: ../src/widgets/spray-toolbar.cpp:459 -#, fuzzy msgctxt "Spray tool" msgid "Scale:" -msgstr "Ampliar" +msgstr "Escala:" #: ../src/widgets/spray-toolbar.cpp:461 #, no-c-format @@ -32707,86 +30810,83 @@ msgid "" "Variation in the scale of the sprayed objects; 0% for the same scale than " "the original object" msgstr "" +"Variação na escala dos objetos pulverizados. Usar 0% para a mesma escala do " +"objeto original" #: ../src/widgets/spray-toolbar.cpp:477 -#, fuzzy msgid "Use the pressure of the input device to alter the scale of new items" msgstr "" -"Usar a pressão do dispositivo de entrada para alterar a largura da caneta" +"Usar a pressão do dispositivo de entrada para alterar a escala dos itens " +"novos" #: ../src/widgets/spray-toolbar.cpp:489 ../src/widgets/spray-toolbar.cpp:490 msgid "" "Pick color from the drawing. You can use clonetiler trace dialog for " "advanced effects. In clone mode original fill or stroke colors must be unset." msgstr "" +"Capturar cor do desenho. Pode-se usar a janela de clonar ladrilho do traço " +"para efeitos avançados. No modo clone, o preenchimento original e as cores " +"de traço não devem estar definidos." #: ../src/widgets/spray-toolbar.cpp:502 ../src/widgets/spray-toolbar.cpp:503 msgid "Pick from center instead average area." -msgstr "" +msgstr "Capturar do centro em vez da média da área." #: ../src/widgets/spray-toolbar.cpp:515 ../src/widgets/spray-toolbar.cpp:516 msgid "Inverted pick value, retaining color in advanced trace mode" -msgstr "" +msgstr "Valor capturado invertido, retendo a cor no modo de vetorizar avançado" #: ../src/widgets/spray-toolbar.cpp:528 ../src/widgets/spray-toolbar.cpp:529 -#, fuzzy msgid "Apply picked color to fill" -msgstr "Aplicar a última cor para preenchimento da selecção" +msgstr "Aplicar cor capturada ao preenchimento" #: ../src/widgets/spray-toolbar.cpp:541 ../src/widgets/spray-toolbar.cpp:542 -#, fuzzy msgid "Apply picked color to stroke" -msgstr "Aplicar a última cor para traço da selecção" +msgstr "Aplicar cor capturada ao traço" #: ../src/widgets/spray-toolbar.cpp:554 ../src/widgets/spray-toolbar.cpp:555 msgid "No overlap between colors" -msgstr "" +msgstr "Não sobrepor entre cores" #: ../src/widgets/spray-toolbar.cpp:567 ../src/widgets/spray-toolbar.cpp:568 msgid "Apply over transparent areas" -msgstr "" +msgstr "Aplicar sobre áreas transparentes" #: ../src/widgets/spray-toolbar.cpp:580 ../src/widgets/spray-toolbar.cpp:581 msgid "Apply over no transparent areas" -msgstr "" +msgstr "Aplicar sobre áreas não transparentes" #: ../src/widgets/spray-toolbar.cpp:593 ../src/widgets/spray-toolbar.cpp:594 -#, fuzzy msgid "Prevent overlapping objects" -msgstr "Duplicar os objectos seleccionados" +msgstr "Impedir sobreposição dos objetos" #: ../src/widgets/spray-toolbar.cpp:605 -#, fuzzy msgid "(minimum offset)" -msgstr "(força mínima)" +msgstr "(deslocamento mínimo)" #: ../src/widgets/spray-toolbar.cpp:605 -#, fuzzy msgid "(maximum offset)" -msgstr "(força máxima)" +msgstr "(deslocamento máximo)" #: ../src/widgets/spray-toolbar.cpp:608 -#, fuzzy msgid "Offset %" -msgstr "Deslocamentos" +msgstr "Deslocamento %" #: ../src/widgets/spray-toolbar.cpp:608 -#, fuzzy msgid "Offset %:" -msgstr "Offset:" +msgstr "Deslocamento %:" #: ../src/widgets/spray-toolbar.cpp:609 msgid "Increase to segregate objects more (value in percent)" -msgstr "" +msgstr "Aumentar para separar mais os objetos (valor em percentagem)" #: ../src/widgets/star-toolbar.cpp:103 msgid "Star: Change number of corners" -msgstr "Alterar número de cantos" +msgstr "Estrela ou polígono: alterar número de cantos" #: ../src/widgets/star-toolbar.cpp:156 -#, fuzzy msgid "Star: Change spoke ratio" -msgstr "Alterar proporção do raio" +msgstr "Estrela: alterar proporção do raio" #: ../src/widgets/star-toolbar.cpp:201 msgid "Make polygon" @@ -32798,40 +30898,39 @@ msgstr "Criar estrela" #: ../src/widgets/star-toolbar.cpp:240 msgid "Star: Change rounding" -msgstr "Alterar arredondamento" +msgstr "Estrela ou polígono: alterar arredondamento" #: ../src/widgets/star-toolbar.cpp:280 msgid "Star: Change randomization" -msgstr "Alterar aleatoriedade" +msgstr "Estrela ou polígono: alterar aleatoriedade" #: ../src/widgets/star-toolbar.cpp:463 msgid "Regular polygon (with one handle) instead of a star" -msgstr "Polígono regular (com uma alça) ao invés de uma estrela" +msgstr "Polígono regular (com 1 alça) em vez de uma estrela" #: ../src/widgets/star-toolbar.cpp:470 -#, fuzzy msgid "Star instead of a regular polygon (with one handle)" -msgstr "Polígono regular (com uma alça) ao invés de uma estrela" +msgstr "Estrela em vez de um polígono regular (com 1 alça)" #: ../src/widgets/star-toolbar.cpp:491 msgid "triangle/tri-star" -msgstr "triângulo/tri-estrela" +msgstr "triângulo/estrela de 3 pontas" #: ../src/widgets/star-toolbar.cpp:491 msgid "square/quad-star" -msgstr "quadrado/quad-estrela" +msgstr "quadrado/estrela de 4 pontas" #: ../src/widgets/star-toolbar.cpp:491 msgid "pentagon/five-pointed star" -msgstr "pentágono/estrela de cinco pontas" +msgstr "pentágono/estrela de 5 pontas" #: ../src/widgets/star-toolbar.cpp:491 msgid "hexagon/six-pointed star" -msgstr "hexágono/estrela de seis pontas" +msgstr "hexágono/estrela de 6 pontas" #: ../src/widgets/star-toolbar.cpp:494 msgid "Corners" -msgstr "Esquinas" +msgstr "Cantos" #: ../src/widgets/star-toolbar.cpp:494 msgid "Corners:" @@ -32839,11 +30938,11 @@ msgstr "Cantos:" #: ../src/widgets/star-toolbar.cpp:494 msgid "Number of corners of a polygon or star" -msgstr "Número de cantos de um polígono ou estrela" +msgstr "Número de cantos do polígono ou estrela" #: ../src/widgets/star-toolbar.cpp:507 msgid "thin-ray star" -msgstr "estrela raio-fino" +msgstr "estrela de raio fino" #: ../src/widgets/star-toolbar.cpp:507 msgid "pentagram" @@ -32866,9 +30965,8 @@ msgid "regular polygon" msgstr "polígono regular" #: ../src/widgets/star-toolbar.cpp:510 -#, fuzzy msgid "Spoke ratio" -msgstr "Proporção do raio:" +msgstr "Proporção do raio" #: ../src/widgets/star-toolbar.cpp:510 msgid "Spoke ratio:" @@ -32878,7 +30976,7 @@ msgstr "Proporção do raio:" #. Base radius is the same for the closest handle. #: ../src/widgets/star-toolbar.cpp:513 msgid "Base radius to tip radius ratio" -msgstr "Proporção do raio base para o raio externo" +msgstr "Proporção entre o raio interno e o raio externo" #: ../src/widgets/star-toolbar.cpp:531 msgid "stretched" @@ -32890,31 +30988,32 @@ msgstr "torcido" #: ../src/widgets/star-toolbar.cpp:531 msgid "slightly pinched" -msgstr "" +msgstr "ligeiramente comprimido" #: ../src/widgets/star-toolbar.cpp:531 msgid "NOT rounded" -msgstr "Não redondo" +msgstr "NÃO redondo" #: ../src/widgets/star-toolbar.cpp:531 msgid "slightly rounded" -msgstr "Levemente redondo" +msgstr "levemente redondo" #: ../src/widgets/star-toolbar.cpp:531 msgid "visibly rounded" -msgstr "Visivelmente redondo" +msgstr "visivelmente redondo" #: ../src/widgets/star-toolbar.cpp:531 msgid "well rounded" -msgstr "bem arredondado" +msgstr "bem redondo" #: ../src/widgets/star-toolbar.cpp:531 msgid "amply rounded" msgstr "amplamente redondo" +# optou-se por "muito" porque esta mensagem é utilizada em 2 contextos diferentes: "muito arredondado" e "muito aleatório" #: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 msgid "blown up" -msgstr "explodido" +msgstr "muito" #: ../src/widgets/star-toolbar.cpp:534 msgid "Rounded:" @@ -32922,23 +31021,24 @@ msgstr "Arredondado:" #: ../src/widgets/star-toolbar.cpp:534 msgid "How much rounded are the corners (0 for sharp)" -msgstr "Quão redondos são os cantos (0 para agudo)" +msgstr "Quão redondos são os cantos (0 para não arredondado)" #: ../src/widgets/star-toolbar.cpp:546 msgid "NOT randomized" -msgstr "NÃO randômico" +msgstr "NÃO aleatório" +# usar "aleatório" e não "irregular" para manter coerência com as outras #: ../src/widgets/star-toolbar.cpp:546 msgid "slightly irregular" -msgstr "levemente irregular" +msgstr "levemente aleatório" #: ../src/widgets/star-toolbar.cpp:546 msgid "visibly randomized" -msgstr "visivelmente randômico" +msgstr "visivelmente aleatório" #: ../src/widgets/star-toolbar.cpp:546 msgid "strongly randomized" -msgstr "fortemente randômico" +msgstr "muito aleatório" #: ../src/widgets/star-toolbar.cpp:549 msgid "Randomized" @@ -32950,71 +31050,74 @@ msgstr "Aleatório:" #: ../src/widgets/star-toolbar.cpp:549 msgid "Scatter randomly the corners and angles" -msgstr "Difunde aleatoriamente os cantos e ângulos" +msgstr "Dispersar aleatoriamente os cantos e ângulos" #: ../src/widgets/stroke-marker-selector.cpp:388 -#, fuzzy msgctxt "Marker" msgid "None" msgstr "Nenhum" #: ../src/widgets/stroke-style.cpp:192 msgid "Stroke width" -msgstr "Largura do traço" +msgstr "Espessura do traço" #: ../src/widgets/stroke-style.cpp:194 -#, fuzzy msgctxt "Stroke width" msgid "_Width:" -msgstr "_Largura:" +msgstr "_Espessura:" #. Dash #: ../src/widgets/stroke-style.cpp:225 msgid "Dashes:" -msgstr "Traços:" +msgstr "Tracejado:" #. Drop down marker selectors #. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes #. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. #: ../src/widgets/stroke-style.cpp:251 -#, fuzzy msgid "Markers:" -msgstr "Mais escuro" +msgstr "Marcadores:" #: ../src/widgets/stroke-style.cpp:257 msgid "Start Markers are drawn on the first node of a path or shape" msgstr "" +"Marcadores Iniciais são desenhados no primeiro nó de um caminho ou forma " +"geométrica" #: ../src/widgets/stroke-style.cpp:266 msgid "" "Mid Markers are drawn on every node of a path or shape except the first and " "last nodes" msgstr "" +"Marcadores do Meio são desenhados em todos os nós de um caminho ou forma " +"geométrica exceto o primeiro e último nós" #: ../src/widgets/stroke-style.cpp:275 msgid "End Markers are drawn on the last node of a path or shape" msgstr "" +"Marcadores Finais são desenhados no último nó de um caminho ou forma " +"geométrica" #. TRANSLATORS: Round join: joining lines with a rounded corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). #: ../src/widgets/stroke-style.cpp:300 msgid "Round join" -msgstr "Junção redonda" +msgstr "Esquina redonda" #. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). #: ../src/widgets/stroke-style.cpp:308 msgid "Bevel join" -msgstr "Junção de vinco" +msgstr "Esquina vincada" #. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). #: ../src/widgets/stroke-style.cpp:316 msgid "Miter join" -msgstr "Junção aguda" +msgstr "Esquina aguda" #. Cap type #. TRANSLATORS: cap type specifies the shape for the ends of lines @@ -33042,33 +31145,28 @@ msgid "Square cap" msgstr "Ponta quadrada" #: ../src/widgets/stroke-style.cpp:392 -#, fuzzy msgid "Fill, Stroke, Markers" -msgstr "Estilo de traço" +msgstr "Preenchimento, Traço, Marcadores" #: ../src/widgets/stroke-style.cpp:396 -#, fuzzy msgid "Stroke, Fill, Markers" -msgstr "Estilo de traço" +msgstr "Traço, Preenchimento, Marcadores" #: ../src/widgets/stroke-style.cpp:400 -#, fuzzy msgid "Fill, Markers, Stroke" -msgstr "_Preenchimento e Traço" +msgstr "Preenchimento, Marcadores, Traço" #: ../src/widgets/stroke-style.cpp:408 -#, fuzzy msgid "Markers, Fill, Stroke" -msgstr "_Preenchimento e Traço" +msgstr "Marcadores, Preenchimento, Traço" #: ../src/widgets/stroke-style.cpp:412 -#, fuzzy msgid "Stroke, Markers, Fill" -msgstr "Estilo de traço" +msgstr "Traço, Marcadores, Preenchimento" #: ../src/widgets/stroke-style.cpp:416 msgid "Markers, Stroke, Fill" -msgstr "" +msgstr "Marcadores, Traço, Preenchimento" #: ../src/widgets/stroke-style.cpp:534 msgid "Set markers" @@ -33076,132 +31174,121 @@ msgstr "Definir marcadores" #: ../src/widgets/stroke-style.cpp:1116 ../src/widgets/stroke-style.cpp:1205 msgid "Set stroke style" -msgstr "Definir estilo de traço" +msgstr "Definir estilo do traço" #: ../src/widgets/stroke-style.cpp:1309 -#, fuzzy msgid "Set marker color" -msgstr "Definir cor do traço" +msgstr "Definir cor do marcador" #: ../src/widgets/swatch-selector.cpp:89 -#, fuzzy msgid "Change swatch color" -msgstr "Alterar cor da parada do degradê" +msgstr "Alterar cor da amostra de cor" #: ../src/widgets/text-toolbar.cpp:179 msgid "Text: Change font family" -msgstr "Alterar fonte" +msgstr "Texto: alterar fonte" #: ../src/widgets/text-toolbar.cpp:245 msgid "Text: Change font size" -msgstr "Texto: Alterar o tamanho da fonte" +msgstr "Texto: alterar o tamanho da fonte" #: ../src/widgets/text-toolbar.cpp:281 msgid "Text: Change font style" -msgstr "Texto: Alterar estilo da fonte" +msgstr "Texto: alterar estilo da fonte" #: ../src/widgets/text-toolbar.cpp:359 msgid "Text: Change superscript or subscript" -msgstr "" +msgstr "Texto: alterar sobrescrito ou subscrito" #: ../src/widgets/text-toolbar.cpp:502 msgid "Text: Change alignment" -msgstr "Texto: Alterar alinhamento" +msgstr "Texto: alterar alinhamento" #: ../src/widgets/text-toolbar.cpp:573 -#, fuzzy msgid "Text: Change line-height" -msgstr "Texto: Alterar alinhamento" +msgstr "Texto: alterar altura da linha" #: ../src/widgets/text-toolbar.cpp:728 -#, fuzzy msgid "Text: Change line-height unit" -msgstr "Texto: Alterar alinhamento" +msgstr "Texto: alterar unidade da altura da linha" #: ../src/widgets/text-toolbar.cpp:777 -#, fuzzy msgid "Text: Change word-spacing" -msgstr "Texto: Alterar orientação" +msgstr "Texto: alterar espaço entre palavras" #: ../src/widgets/text-toolbar.cpp:817 -#, fuzzy msgid "Text: Change letter-spacing" -msgstr "Aumentar espaçamento entre letras" +msgstr "Texto: alterar espaço entre letras" #: ../src/widgets/text-toolbar.cpp:855 -#, fuzzy msgid "Text: Change dx (kern)" -msgstr "Texto: Alterar o tamanho da fonte" +msgstr "Texto: alterar dX (entre-letras)" #: ../src/widgets/text-toolbar.cpp:889 -#, fuzzy msgid "Text: Change dy" -msgstr "Texto: Alterar estilo da fonte" +msgstr "Texto: alterar dY" #: ../src/widgets/text-toolbar.cpp:924 -#, fuzzy msgid "Text: Change rotate" -msgstr "Texto: Alterar estilo da fonte" +msgstr "Texto: alterar rotação" #: ../src/widgets/text-toolbar.cpp:977 -#, fuzzy msgid "Text: Change writing mode" -msgstr "Texto: Alterar orientação" +msgstr "Texto: alterar modo de escrita" #: ../src/widgets/text-toolbar.cpp:1031 msgid "Text: Change orientation" -msgstr "Texto: Alterar orientação" +msgstr "Texto: alterar orientação" #: ../src/widgets/text-toolbar.cpp:1539 -#, fuzzy msgid "Font Family" -msgstr "Família da fonte" +msgstr "Família da Fonte" #: ../src/widgets/text-toolbar.cpp:1540 -#, fuzzy msgid "Select Font Family (Alt-X to access)" -msgstr "Família da fonte" +msgstr "Selecionar Família da Fonte (Alt-X para aceder)" #. Focus widget #. Enable entry completion #: ../src/widgets/text-toolbar.cpp:1550 msgid "Select all text with this font-family" -msgstr "" +msgstr "Selecionar todo o texto com esta família de fonte" #: ../src/widgets/text-toolbar.cpp:1554 msgid "Font not found on system" -msgstr "" +msgstr "Fonte não encontrada no sistema" #: ../src/widgets/text-toolbar.cpp:1631 -#, fuzzy msgid "Font Style" -msgstr "Tamanho da fonte" +msgstr "Estilo da Fonte" #: ../src/widgets/text-toolbar.cpp:1632 -#, fuzzy msgid "Font style" -msgstr "Tamanho da fonte" +msgstr "Estilo da fonte" +# Apenas "Sobrescrito" por não fazer sentido usar o "Alternar sobrescrito" nos botões. Ou está ativo ou não. #. Name #: ../src/widgets/text-toolbar.cpp:1649 msgid "Toggle Superscript" -msgstr "" +msgstr "Sobrescrito" +# Apenas "Sobrescrito" por não fazer sentido usar o "Alternar sobrescrito" nos botões. Ou está ativo ou não. #. Label #: ../src/widgets/text-toolbar.cpp:1650 msgid "Toggle superscript" -msgstr "" +msgstr "sobrescrito" +# Apenas "Subscrito" por não fazer sentido usar o "Alternar subscrito" nos botões. Ou está ativo ou não. #. Name #: ../src/widgets/text-toolbar.cpp:1662 msgid "Toggle Subscript" -msgstr "" +msgstr "Subscrito" +# Apenas "Subscrito" por não fazer sentido usar o "Alternar subscrito" nos botões. Ou está ativo ou não. #. Label #: ../src/widgets/text-toolbar.cpp:1663 -#, fuzzy msgid "Toggle subscript" -msgstr "Postscript" +msgstr "subscrito" #: ../src/widgets/text-toolbar.cpp:1704 msgid "Justify" @@ -33209,221 +31296,187 @@ msgstr "Justificar" #. Name #: ../src/widgets/text-toolbar.cpp:1711 -#, fuzzy msgid "Alignment" -msgstr "Alinhar à esquerda" +msgstr "Alinhamento" #. Label #: ../src/widgets/text-toolbar.cpp:1712 -#, fuzzy msgid "Text alignment" -msgstr "Texto: Alterar alinhamento" +msgstr "Alinhamento do texto" #: ../src/widgets/text-toolbar.cpp:1739 -#, fuzzy msgid "Horizontal" -msgstr "_Horizontal" +msgstr "Horizontal" #: ../src/widgets/text-toolbar.cpp:1746 -#, fuzzy msgid "Vertical — RL" -msgstr "_Vertical" +msgstr "Vertical — DE" #: ../src/widgets/text-toolbar.cpp:1747 msgid "Vertical text — lines: right to left" -msgstr "" +msgstr "Texto vertical — linhas: da direita para a esquerda" #: ../src/widgets/text-toolbar.cpp:1753 -#, fuzzy msgid "Vertical — LR" -msgstr "_Vertical" +msgstr "Vertical — ED" #: ../src/widgets/text-toolbar.cpp:1754 msgid "Vertical text — lines: left to right" -msgstr "" +msgstr "Texto vertical — linhas: da esquerda para a direita" #. Name #: ../src/widgets/text-toolbar.cpp:1759 -#, fuzzy msgid "Writing mode" -msgstr "Desenho" +msgstr "Modo de escrita" #. Label #: ../src/widgets/text-toolbar.cpp:1760 msgid "Block progression" -msgstr "" +msgstr "Progressão do bloco" #: ../src/widgets/text-toolbar.cpp:1789 -#, fuzzy msgid "Auto glyph orientation" -msgstr "Orientação da página:" +msgstr "Orientação automática do caractere" #: ../src/widgets/text-toolbar.cpp:1796 -#, fuzzy msgid "Upright" -msgstr "Mais claro" +msgstr "Na vertical" #: ../src/widgets/text-toolbar.cpp:1797 -#, fuzzy msgid "Upright glyph orientation" -msgstr "Orientação da página:" +msgstr "Orientação do caractere na vertical" #: ../src/widgets/text-toolbar.cpp:1804 msgid "Sideways" -msgstr "" +msgstr "Para os lados" #: ../src/widgets/text-toolbar.cpp:1805 -#, fuzzy msgid "Sideways glyph orientation" -msgstr "Orientação da página:" +msgstr "Orientação do caractere para os lados" #. Name #: ../src/widgets/text-toolbar.cpp:1811 -#, fuzzy msgid "Text orientation" -msgstr "Orientação da página:" +msgstr "Orientação do texto" #. Label #: ../src/widgets/text-toolbar.cpp:1812 msgid "Text (glyph) orientation in vertical text." -msgstr "" +msgstr "Orientação do texto (caractere) em texto vertical." #. Drop down menu #: ../src/widgets/text-toolbar.cpp:1845 -#, fuzzy msgid "Smaller spacing" -msgstr "Definir espaçamento:" +msgstr "Espaçamento pequeno" #: ../src/widgets/text-toolbar.cpp:1845 ../src/widgets/text-toolbar.cpp:1884 #: ../src/widgets/text-toolbar.cpp:1915 -#, fuzzy msgctxt "Text tool" msgid "Normal" msgstr "Normal" #: ../src/widgets/text-toolbar.cpp:1845 -#, fuzzy msgid "Larger spacing" -msgstr "Espaçamento de linha:" +msgstr "Espaçamento grande" #. name #: ../src/widgets/text-toolbar.cpp:1850 -#, fuzzy msgid "Line Height" -msgstr "Altura:" +msgstr "Altura da Linha" #. label #: ../src/widgets/text-toolbar.cpp:1851 -#, fuzzy msgid "Line:" -msgstr "Linha" +msgstr "Linha:" #. short label #: ../src/widgets/text-toolbar.cpp:1852 -#, fuzzy msgid "Spacing between baselines (times font size)" -msgstr "Espaçamento entre linhas" +msgstr "Espaçamento entre linhas (tamanho da fonte Times)" #. Drop down menu #: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 -#, fuzzy msgid "Negative spacing" -msgstr "Definir espaçamento:" +msgstr "Espaçamento negativo" #: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 -#, fuzzy msgid "Positive spacing" -msgstr "Espaçamento de linha:" +msgstr "Espaçamento positivo" #. name #: ../src/widgets/text-toolbar.cpp:1889 -#, fuzzy msgid "Word spacing" -msgstr "Definir espaçamento:" +msgstr "Espaçamento entre palavras" #. label #: ../src/widgets/text-toolbar.cpp:1890 -#, fuzzy msgid "Word:" -msgstr "Modo:" +msgstr "Palavra:" #. short label #: ../src/widgets/text-toolbar.cpp:1891 -#, fuzzy msgid "Spacing between words (px)" -msgstr "Espaçamento entre letras" +msgstr "Espaçamento entre palavras (px)" #. name #: ../src/widgets/text-toolbar.cpp:1920 -#, fuzzy msgid "Letter spacing" -msgstr "Definir espaçamento:" +msgstr "Espaçamento entre letras" #. label #: ../src/widgets/text-toolbar.cpp:1921 -#, fuzzy msgid "Letter:" -msgstr "Comprimento:" +msgstr "Letra:" #. short label #: ../src/widgets/text-toolbar.cpp:1922 -#, fuzzy msgid "Spacing between letters (px)" -msgstr "Espaçamento entre letras" +msgstr "Espaçamento entre letras (px)" #. name #: ../src/widgets/text-toolbar.cpp:1951 -#, fuzzy msgid "Kerning" -msgstr "_Desenho" +msgstr "Entre-letras" #. label #: ../src/widgets/text-toolbar.cpp:1952 -#, fuzzy msgid "Kern:" -msgstr "Kernel" +msgstr "Entre-letras:" #. short label #: ../src/widgets/text-toolbar.cpp:1953 -#, fuzzy msgid "Horizontal kerning (px)" -msgstr "Espaçamento Horizontal" +msgstr "Espaçamento entre-letras horizontal (px)" #. name #: ../src/widgets/text-toolbar.cpp:1982 -#, fuzzy msgid "Vertical Shift" -msgstr "Texto vertical" +msgstr "Deslocamento Vertical" #. label #: ../src/widgets/text-toolbar.cpp:1983 -#, fuzzy msgid "Vert:" -msgstr "Inverter:" +msgstr "Vert:" #. short label #: ../src/widgets/text-toolbar.cpp:1984 -#, fuzzy msgid "Vertical shift (px)" -msgstr "Desvio Vertical" +msgstr "Deslocamento vertical (px)" #. name #: ../src/widgets/text-toolbar.cpp:2013 -#, fuzzy msgid "Letter rotation" -msgstr "Definir espaçamento:" +msgstr "Rotação da letra" #. label #: ../src/widgets/text-toolbar.cpp:2014 -#, fuzzy msgid "Rot:" -msgstr "Cargo:" +msgstr "Rot:" #. short label #: ../src/widgets/text-toolbar.cpp:2015 -#, fuzzy msgid "Character rotation (degrees)" -msgstr "Rotação (graus)" +msgstr "Rotação do caractere (graus)" #: ../src/widgets/toolbox.cpp:186 msgid "Color/opacity used for color tweaking" @@ -33451,7 +31504,7 @@ msgstr "Estilo de novas espirais" #: ../src/widgets/toolbox.cpp:204 msgid "Style of new paths created by Pencil" -msgstr "Estilo de novos caminhos criados pelo Lápis" +msgstr "Estilo dos novos caminhos criados pelo Lápis" #: ../src/widgets/toolbox.cpp:206 msgid "Style of new paths created by Pen" @@ -33460,189 +31513,159 @@ msgstr "Estilo dos novos caminhos criados pela Caneta" # Porque estes "Style of new..." alguns têm estas traduções estranhas? #: ../src/widgets/toolbox.cpp:208 msgid "Style of new calligraphic strokes" -msgstr "Estilo de novos traços caligráficos" +msgstr "Estilo dos novos traços caligráficos" #: ../src/widgets/toolbox.cpp:210 ../src/widgets/toolbox.cpp:212 msgid "TBD" -msgstr "" +msgstr "A definir" #: ../src/widgets/toolbox.cpp:225 -#, fuzzy msgid "Style of Paint Bucket fill objects" -msgstr "Estilo do preenchimento dos objectos da Ecrã de Pintura" +msgstr "Estilo do preenchimento do Balde de Tinta nos objetos" #: ../src/widgets/toolbox.cpp:1750 -#, fuzzy msgid "Bounding box" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Caixa limitadora" #: ../src/widgets/toolbox.cpp:1750 -#, fuzzy msgid "Snap bounding boxes" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Atrair às caixas limitadoras" #: ../src/widgets/toolbox.cpp:1759 -#, fuzzy msgid "Bounding box edges" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Laterais da caixa limitadora" #: ../src/widgets/toolbox.cpp:1759 -#, fuzzy msgid "Snap to edges of a bounding box" -msgstr "Ajustar aos _nós do objecto" +msgstr "Atrair às laterais da caixa limitadora" #: ../src/widgets/toolbox.cpp:1768 -#, fuzzy msgid "Bounding box corners" -msgstr "_Cantos de caixas limitadoras" +msgstr "Cantos da caixa limitadora" #: ../src/widgets/toolbox.cpp:1768 -#, fuzzy msgid "Snap bounding box corners" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Atrair aos cantos da caixa limitadora" #: ../src/widgets/toolbox.cpp:1777 msgid "BBox Edge Midpoints" -msgstr "" +msgstr "Pontos Centrais das Laterais da Caixa Limitadora" #: ../src/widgets/toolbox.cpp:1777 -#, fuzzy msgid "Snap midpoints of bounding box edges" -msgstr "Ajustar aos _nós do objecto" +msgstr "Atrair aos pontos centrais dos lados da caixa limitadora" #: ../src/widgets/toolbox.cpp:1787 -#, fuzzy msgid "BBox Centers" -msgstr "Centralizar" +msgstr "Centros da Caixa Limitadora" #: ../src/widgets/toolbox.cpp:1787 -#, fuzzy msgid "Snapping centers of bounding boxes" -msgstr "" -"Ajustar cantos das caixas limitadoras e guias às fronteiras das caixas " -"limitadoras" +msgstr "Atrair aos centros das caixas limitadoras" #: ../src/widgets/toolbox.cpp:1796 -#, fuzzy msgid "Snap nodes, paths, and handles" -msgstr "Deslocar alças do nó" +msgstr "Atrair aos nós, caminhos e alças" #: ../src/widgets/toolbox.cpp:1804 -#, fuzzy msgid "Snap to paths" -msgstr "Encaixar no camin_ho" +msgstr "Atrair aos caminhos" #: ../src/widgets/toolbox.cpp:1813 -#, fuzzy msgid "Path intersections" -msgstr "Intersecção" +msgstr "Interseções de caminhos" #: ../src/widgets/toolbox.cpp:1813 -#, fuzzy msgid "Snap to path intersections" -msgstr "Ajustar às interseções de guias com a grelha" +msgstr "Atrair às interseções de caminhos" #: ../src/widgets/toolbox.cpp:1822 -#, fuzzy msgid "To nodes" -msgstr "Mover nós" +msgstr "Aos nós" #: ../src/widgets/toolbox.cpp:1822 msgid "Snap cusp nodes, incl. rectangle corners" -msgstr "" +msgstr "Atrair aos nós afiados, incluindo cantos de retângulos" #: ../src/widgets/toolbox.cpp:1831 -#, fuzzy msgid "Smooth nodes" -msgstr "Suavidade" +msgstr "Nós suaves" #: ../src/widgets/toolbox.cpp:1831 msgid "Snap smooth nodes, incl. quadrant points of ellipses" -msgstr "" +msgstr "Atrair aos nós suaves, incluindo pontos quadrantes e elipses" #: ../src/widgets/toolbox.cpp:1840 -#, fuzzy msgid "Line Midpoints" -msgstr "Largura da Linha" +msgstr "Pontos do Meio das Linhas" #: ../src/widgets/toolbox.cpp:1840 -#, fuzzy msgid "Snap midpoints of line segments" -msgstr "Ajustar aos _nós do objecto" +msgstr "Atrair aos pontos centrais de segmentos de linha" #: ../src/widgets/toolbox.cpp:1849 -#, fuzzy msgid "Others" -msgstr "Outro" +msgstr "Outros" #: ../src/widgets/toolbox.cpp:1849 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" +"Atrair aos outros pontos (centros, origens de guias, alças de gradientes, " +"etc.)" #: ../src/widgets/toolbox.cpp:1857 -#, fuzzy msgid "Object Centers" -msgstr "_Propriedades do Objecto" +msgstr "Centros dos objetos" #: ../src/widgets/toolbox.cpp:1857 -#, fuzzy msgid "Snap centers of objects" -msgstr "Encaixar nós e guias aos nós dos objectos" +msgstr "Atrair aos centros dos objetos" #: ../src/widgets/toolbox.cpp:1866 -#, fuzzy msgid "Rotation Centers" -msgstr "Rotação (graus)" +msgstr "Centros de Rotação" #: ../src/widgets/toolbox.cpp:1866 -#, fuzzy msgid "Snap an item's rotation center" -msgstr "Incluir objectos ocultos à busca" +msgstr "Atrair ao centro de rotação de um item" #: ../src/widgets/toolbox.cpp:1875 -#, fuzzy msgid "Text baseline" -msgstr "Alinhar linhas base do texto" +msgstr "Linhas base do texto" #: ../src/widgets/toolbox.cpp:1875 -#, fuzzy msgid "Snap text anchors and baselines" -msgstr "Alinhar linhas base do texto" +msgstr "Atrair às âncoras de texto e linhas base de texto" #: ../src/widgets/toolbox.cpp:1885 -#, fuzzy msgid "Page border" -msgstr "Cor da borda da página" +msgstr "Borda da página" #: ../src/widgets/toolbox.cpp:1885 -#, fuzzy msgid "Snap to the page border" -msgstr "Mostrar bordas da página" +msgstr "Atrair às bordas da página" #: ../src/widgets/toolbox.cpp:1894 -#, fuzzy msgid "Snap to grids" -msgstr "Encaixar à grelha" +msgstr "Atrair às grelhas" #: ../src/widgets/toolbox.cpp:1903 -#, fuzzy msgid "Snap guides" -msgstr "Encaixando às guias" +msgstr "Atrair às guias" #. Width #: ../src/widgets/tweak-toolbar.cpp:125 msgid "(pinch tweak)" -msgstr "" +msgstr "(largura pequena)" #: ../src/widgets/tweak-toolbar.cpp:125 -#, fuzzy msgid "(broad tweak)" -msgstr " (traço)" +msgstr "(largura grande)" #: ../src/widgets/tweak-toolbar.cpp:128 -#, fuzzy msgid "The width of the tweak area (relative to the visible canvas area)" -msgstr "A largura da caneta caligráfica (em relação a área visível da página)" +msgstr "" +"A largura da área de forças (em relação a área visível da área de desenho)" #. Force #: ../src/widgets/tweak-toolbar.cpp:142 @@ -33663,100 +31686,93 @@ msgstr "Força:" #: ../src/widgets/tweak-toolbar.cpp:145 msgid "The force of the tweak action" -msgstr "" +msgstr "A intensidade da força para alterar os objetos" #: ../src/widgets/tweak-toolbar.cpp:163 -#, fuzzy msgid "Move mode" -msgstr "Mover nós" +msgstr "Modo mover" #: ../src/widgets/tweak-toolbar.cpp:164 -#, fuzzy msgid "Move objects in any direction" -msgstr "Definir VP na direção X" +msgstr "Mover objetos em qualquer direção" #: ../src/widgets/tweak-toolbar.cpp:170 -#, fuzzy msgid "Move in/out mode" -msgstr "Mover nós" +msgstr "Mover para dentro/para fora" #: ../src/widgets/tweak-toolbar.cpp:171 msgid "Move objects towards cursor; with Shift from cursor" msgstr "" +"Mover objetos na direção do cursor; com Shift na direção inversa oposta do " +"cursor" #: ../src/widgets/tweak-toolbar.cpp:177 -#, fuzzy msgid "Move jitter mode" -msgstr "Aguçar nós" +msgstr "Mover no modo nervoso" #: ../src/widgets/tweak-toolbar.cpp:178 -#, fuzzy msgid "Move objects in random directions" -msgstr "Definir VP na direção X" +msgstr "Mover objetos em direções aleatórias" #: ../src/widgets/tweak-toolbar.cpp:184 -#, fuzzy msgid "Scale mode" -msgstr "Escalar nós" +msgstr "Modo dimensionar" #: ../src/widgets/tweak-toolbar.cpp:185 -#, fuzzy msgid "Shrink objects, with Shift enlarge" -msgstr "Ajustar título do objecto" +msgstr "Encolher objetos, com Shift alargar" #: ../src/widgets/tweak-toolbar.cpp:191 -#, fuzzy msgid "Rotate mode" -msgstr "Girar nós" +msgstr "Modo rodar" #: ../src/widgets/tweak-toolbar.cpp:192 -#, fuzzy msgid "Rotate objects, with Shift counterclockwise" -msgstr "Girar a selecção 90° graus sentido anti-horário" +msgstr "" +"Rodar objetos no sentido horário; com Shift rodar no sentido anti-horário" #: ../src/widgets/tweak-toolbar.cpp:198 -#, fuzzy msgid "Duplicate/delete mode" -msgstr "Duplicar nó" +msgstr "Modo Duplicar/eliminar" #: ../src/widgets/tweak-toolbar.cpp:199 msgid "Duplicate objects, with Shift delete" -msgstr "" +msgstr "Duplicar objetos; com Shift elimina" #: ../src/widgets/tweak-toolbar.cpp:205 msgid "Push mode" -msgstr "" +msgstr "Modo puxar" #: ../src/widgets/tweak-toolbar.cpp:206 msgid "Push parts of paths in any direction" -msgstr "" +msgstr "Puxar partes dos caminhos em qualquer direção" #: ../src/widgets/tweak-toolbar.cpp:212 -#, fuzzy msgid "Shrink/grow mode" -msgstr "Modo encolher" +msgstr "Modo encolher/crescer" #: ../src/widgets/tweak-toolbar.cpp:213 -#, fuzzy msgid "Shrink (inset) parts of paths; with Shift grow (outset)" -msgstr "Separar caminhos seleccionados em outros caminhos" +msgstr "" +"Encolher (para dentro) partes dos caminhos; com Shift crescer (para fora)" #: ../src/widgets/tweak-toolbar.cpp:219 -#, fuzzy msgid "Attract/repel mode" -msgstr "Modo atrair" +msgstr "Modo atrair/repelir" #: ../src/widgets/tweak-toolbar.cpp:220 msgid "Attract parts of paths towards cursor; with Shift from cursor" msgstr "" +"Atrai partes de caminhos na direção do cursor; com Shift na direção oposta " +"do cursor" #: ../src/widgets/tweak-toolbar.cpp:226 msgid "Roughen mode" -msgstr "Modo áspero" +msgstr "Modo rugoso" #: ../src/widgets/tweak-toolbar.cpp:227 msgid "Roughen parts of paths" -msgstr "" +msgstr "Torna rugoso as partes dos caminhos" #: ../src/widgets/tweak-toolbar.cpp:233 msgid "Color paint mode" @@ -33764,27 +31780,25 @@ msgstr "Modo cor da tinta" #: ../src/widgets/tweak-toolbar.cpp:234 msgid "Paint the tool's color upon selected objects" -msgstr "Pintar a ferramenta de cor sobre os objectos seleccionados" +msgstr "" +"Aplicar a cor da ferramenta nos objetos selecionados (apenas objetos com cor " +"definida)" #: ../src/widgets/tweak-toolbar.cpp:240 -#, fuzzy msgid "Color jitter mode" -msgstr "Aguçar nós" +msgstr "Modo de variação das cores" #: ../src/widgets/tweak-toolbar.cpp:241 -#, fuzzy msgid "Jitter the colors of selected objects" -msgstr "Fazer com que os conectores evitem os objectos seleccionados" +msgstr "Alterar cores aleatoriamente nos objetos selecionados" #: ../src/widgets/tweak-toolbar.cpp:247 -#, fuzzy msgid "Blur mode" -msgstr "_Modo misturar:" +msgstr "Modo desfocar" #: ../src/widgets/tweak-toolbar.cpp:248 -#, fuzzy msgid "Blur selected objects more; with Shift, blur less" -msgstr "Inverter objectos seleccionados horizontalmente" +msgstr "Desfocar mais os objetos selecionados; com Shift, desfocar menos" #: ../src/widgets/tweak-toolbar.cpp:275 msgid "Channels:" @@ -33792,44 +31806,40 @@ msgstr "Canais:" #: ../src/widgets/tweak-toolbar.cpp:287 msgid "In color mode, act on objects' hue" -msgstr "Em modo de cor, agir na matiz do objecto" +msgstr "Em modo de cor, agir na matiz do objeto" #. TRANSLATORS: "H" here stands for hue #: ../src/widgets/tweak-toolbar.cpp:291 -#, fuzzy msgctxt "Hue" msgid "H" -msgstr "H" +msgstr "M" #: ../src/widgets/tweak-toolbar.cpp:303 msgid "In color mode, act on objects' saturation" -msgstr "" +msgstr "No modo a cores, atuar na saturação do objeto" #. TRANSLATORS: "S" here stands for Saturation #: ../src/widgets/tweak-toolbar.cpp:307 -#, fuzzy msgctxt "Saturation" msgid "S" msgstr "S" #: ../src/widgets/tweak-toolbar.cpp:319 msgid "In color mode, act on objects' lightness" -msgstr "" +msgstr "No modo a cores, atuar na luminosidade do objeto" #. TRANSLATORS: "L" here stands for Lightness #: ../src/widgets/tweak-toolbar.cpp:323 -#, fuzzy msgctxt "Lightness" msgid "L" msgstr "L" #: ../src/widgets/tweak-toolbar.cpp:335 msgid "In color mode, act on objects' opacity" -msgstr "" +msgstr "No modo a cores, atuar na opacidade do objeto" #. TRANSLATORS: "O" here stands for Opacity #: ../src/widgets/tweak-toolbar.cpp:339 -#, fuzzy msgctxt "Opacity" msgid "O" msgstr "O" @@ -33837,7 +31847,7 @@ msgstr "O" #. Fidelity #: ../src/widgets/tweak-toolbar.cpp:350 msgid "(rough, simplified)" -msgstr "(áspero, simplificado)" +msgstr "(rugoso, simplificado)" #: ../src/widgets/tweak-toolbar.cpp:350 msgid "(fine, but many nodes)" @@ -33849,68 +31859,68 @@ msgstr "Fidelidade" #: ../src/widgets/tweak-toolbar.cpp:353 msgid "Fidelity:" -msgstr "Fideliade:" +msgstr "Fidelidade:" #: ../src/widgets/tweak-toolbar.cpp:354 msgid "" "Low fidelity simplifies paths; high fidelity preserves path features but may " "generate a lot of new nodes" msgstr "" +"Fidelidade baixa simplifica caminhos; fidelidade alta preserva as " +"características do caminho mas pode criar muitos nós novos" #: ../src/widgets/tweak-toolbar.cpp:373 -#, fuzzy msgid "Use the pressure of the input device to alter the force of tweak action" msgstr "" -"Usar a pressão do dispositivo de entrada para alterar a largura da caneta" +"Usar a pressão do dispositivo de entrada para alterar a força do ajuste da " +"caneta" #: ../share/extensions/convert2dashes.py:56 msgid "Total number of objects not converted: {}\n" -msgstr "" +msgstr "Número total de objetos não convertidos: {}\n" #: ../share/extensions/dimension.py:108 -#, fuzzy msgid "Please select an object." -msgstr "Duplicar os objectos seleccionados" +msgstr "Selecione um objeto." #: ../share/extensions/dimension.py:133 msgid "Unable to process this object. Try changing it into a path first." msgstr "" +"Não foi possível processar este objeto. Tente alterá-lo para um caminho " +"primeiro." #. report to the Inkscape console using errormsg #: ../share/extensions/draw_from_triangle.py:179 -#, fuzzy msgid "Side Length 'a' (px): " -msgstr "Tamanho do passo (px)" +msgstr "Comprimento do Lado 'a' (px): " #: ../share/extensions/draw_from_triangle.py:180 -#, fuzzy msgid "Side Length 'b' (px): " -msgstr "Tamanho do passo (px)" +msgstr "Comprimento do Lado 'b' (px): " #: ../share/extensions/draw_from_triangle.py:181 -#, fuzzy msgid "Side Length 'c' (px): " -msgstr "Tamanho do passo (px)" +msgstr "Comprimento do Lado 'c' (px): " #: ../share/extensions/draw_from_triangle.py:182 msgid "Angle 'A' (radians): " -msgstr "" +msgstr "Ângulo 'A' (radianos): " #: ../share/extensions/draw_from_triangle.py:183 msgid "Angle 'B' (radians): " -msgstr "" +msgstr "Ângulo 'B' (radianos): " #: ../share/extensions/draw_from_triangle.py:184 msgid "Angle 'C' (radians): " -msgstr "" +msgstr "Ângulo 'C' (radianos): " #: ../share/extensions/draw_from_triangle.py:185 msgid "Semiperimeter (px): " -msgstr "" +msgstr "Semi-perímetro (px): " #: ../share/extensions/draw_from_triangle.py:186 msgid "Area (px^2): " -msgstr "" +msgstr "Ãrea (px^2): " #: ../share/extensions/dxf_input.py:530 #, python-format @@ -33918,34 +31928,43 @@ msgid "" "%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " "to Release 13 format using QCad." msgstr "" +"%d ENTIDADES do tipo POLILINHA encontradas e ignoradas. Por favor tentar " +"converter para o formato Release 13 utilizando o QCad." #: ../share/extensions/dxf_outlines.py:47 msgid "" "Failed to import the numpy or numpy.linalg modules. These modules are " "required by this extension. Please install them and try again." msgstr "" +"Falhou a importação dos módulos numpy ou numpy.linalg. Estes módulos são " +"necessários para esta extensão. Instale-os e tente de novo." #: ../share/extensions/dxf_outlines.py:313 msgid "" "Error: Field 'Layer match name' must be filled when using 'By name match' " "option" msgstr "" +"Erro: o campo 'Nome que corresponde à camada' tem de ser preenchido ao " +"utilizar a opção 'Por correspondência do nome'" #: ../share/extensions/dxf_outlines.py:354 -#, fuzzy, python-format +#, python-format msgid "Warning: Layer '%s' not found!" -msgstr "Camada para o topo" +msgstr "Aviso: a camada '%s' não foi encontrada!" #: ../share/extensions/embedimage.py:83 msgid "" "No xlink:href or sodipodi:absref attributes found, or they do not point to " "an existing file! Unable to embed image." msgstr "" +"Não foram encontrados os atributos xlink:href ou sodipodi:absref, ou eles " +"não apontam para um ficheiro existente, por isso não foi possível embutir a " +"imagem." #: ../share/extensions/embedimage.py:85 #, python-format msgid "Sorry we could not locate %s" -msgstr "" +msgstr "Não foi possível localizar %s" #: ../share/extensions/embedimage.py:110 #, python-format @@ -33953,43 +31972,48 @@ msgid "" "%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, " "or image/x-icon" msgstr "" +"%s não é do tipo image/png, image/jpeg, image/bmp, image/gif, image/tiff ou " +"image/x-icon" #: ../share/extensions/export_gimp_palette.py:16 msgid "" "The export_gpl.py module requires PyXML. Please download the latest version " "from http://pyxml.sourceforge.net/." msgstr "" +"O módulo export_gpl.py necessita de PyXML. Descarregar a última versão em " +"http://pyxml.sourceforge.net/" #: ../share/extensions/extractimage.py:66 #, python-format msgid "Image extracted to: %s" -msgstr "" +msgstr "Imagem extraída para: %s" #: ../share/extensions/extractimage.py:73 -#, fuzzy msgid "Unable to find image data." -msgstr "Impossível encontrar o ID de nó: '%s'\n" +msgstr "Não foi possível encontrar os dados da imagem." #: ../share/extensions/extrude.py:41 -#, fuzzy msgid "Need at least 2 paths selected" -msgstr "Nenhum objecto seleccionado" +msgstr "Necessário selecionar pelo menos 2 caminhos" #: ../share/extensions/funcplot.py:46 msgid "" "x-interval cannot be zero. Please modify 'Start X value' or 'End X value'" msgstr "" +"O intervalo X não pode ser zero. Altere o 'Valor X inicial' ou o 'Valor X " +"final'" #: ../share/extensions/funcplot.py:58 msgid "" "y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y " "value of rectangle's bottom'" msgstr "" +"O intervalo Y não pode ser zero. Altere o 'Valor Y do topo do retângulo' ou " +"o 'Valor Y do fundo do retângulo'" #: ../share/extensions/funcplot.py:313 -#, fuzzy msgid "Please select a rectangle" -msgstr "Duplicar os objectos seleccionados" +msgstr "Selecione um retângulo" #: ../share/extensions/gcodetools.py:3319 #: ../share/extensions/gcodetools.py:4524 @@ -33998,28 +32022,27 @@ msgstr "Duplicar os objectos seleccionados" #: ../share/extensions/gcodetools.py:6425 msgid "No paths are selected! Trying to work on all available paths." msgstr "" +"Nenhum caminho selecionado! A tentar trabalhar em todos os caminhos " +"disponíveis." #: ../share/extensions/gcodetools.py:3322 -#, fuzzy msgid "Nothing is selected. Please select something." -msgstr "" -"Mais de um objecto seleccionado. Não é possível obter o estilo a " -"partir de múltiplos objectos." +msgstr "Não está nada selecionado. Selecione algo." #: ../share/extensions/gcodetools.py:3862 -#, fuzzy msgid "" "Directory does not exist! Please specify existing directory at Preferences " "tab!" -msgstr "A pasta %s não existe ou não é uma pasta.\n" +msgstr "" +"A pasta não existe! Especifique uma pasta existente na aba das Preferências!" #: ../share/extensions/gcodetools.py:3892 -#, fuzzy, python-format +#, python-format msgid "" "Can not write to specified file!\n" "%s" msgstr "" -"Não foi possível modificar o ficheiro %s.\n" +"Não foi possível gravar para o ficheiro especificado!\n" "%s" #: ../share/extensions/gcodetools.py:4038 @@ -34028,11 +32051,13 @@ msgid "" "Orientation points for '%s' layer have not been found! Please add " "orientation points using Orientation tab!" msgstr "" +"Os pontos de orientação para a camada '%s' não foram encontrados! Adicione " +"pontos de orientação utilizando a aba Orientação!" #: ../share/extensions/gcodetools.py:4045 #, python-format msgid "There are more than one orientation point groups in '%s' layer" -msgstr "" +msgstr "Existem mais do que 1 grupo de pontos de orientação na camada '%s'" #: ../share/extensions/gcodetools.py:4076 #: ../share/extensions/gcodetools.py:4078 @@ -34041,6 +32066,9 @@ msgid "" "should not be the same. If there are three orientation points they should " "not be in a straight line.)" msgstr "" +"Os pontos de orientação estão errados! Se existirem mais do que 2 pontos de " +"orientação, estes não devem ser os mesmos. Se existirem 3 pontos de " +"orientação, estes devem estar numa linha reta." #: ../share/extensions/gcodetools.py:4248 #, python-format @@ -34048,6 +32076,8 @@ msgid "" "Warning! Found bad orientation points in '%s' layer. Resulting Gcode could " "be corrupt!" msgstr "" +"Aviso: foram encontrados pontos de orientação errados na camada '%s'. O " +"Gcode resultante pode estar corrompido!" #: ../share/extensions/gcodetools.py:4261 #, python-format @@ -34055,6 +32085,8 @@ msgid "" "Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode " "could be corrupt!" msgstr "" +"Aviso: foi encontrado um ponto de referência grafiti errado na camada '%s'. " +"O Gcode resultante pode estar corrompido!" #. xgettext:no-pango-format #: ../share/extensions/gcodetools.py:4282 @@ -34066,18 +32098,30 @@ msgid "" "Solution 3: export all contours to PostScript level 2 (File->Save As->.ps) " "and File->Import this file." msgstr "" +"Esta extensão funciona apenas com Caminhos, Deslocamentos Dinâmicos e grupos " +"destes! Todos os outros objetos serão ignorados!\n" +"Solução 1: usar o menu Caminho->Converter Objeto num Caminho ou Shift+Ctrl" +"+C.\n" +"Solução 2: Caminho->Deslocamento Dinâmico ou Ctrl+J.\n" +"Solução 3: exportar todos os contornos no formato PostScript nível 2 " +"(Ficheiro->Gravar Como->.ps) e de seguida importar esse ficheiro no menu " +"Ficheiro->Importar." #: ../share/extensions/gcodetools.py:4288 msgid "" "Document has no layers! Add at least one layer using layers panel (Ctrl+Shift" "+L)" msgstr "" +"O documento não tem camadas! Adicionar pelo menos 1 camada utilizando o " +"painel Camadas (Ctrl+Shift+L)" #: ../share/extensions/gcodetools.py:4292 msgid "" "Warning! There are some paths in the root of the document, but not in any " "layer! Using bottom-most layer for them." msgstr "" +"Aviso: existem alguns caminhos na raiz do documento que não estão em nenhuma " +"camada! A utilizar a camada mais baixa para estes objetos." #: ../share/extensions/gcodetools.py:4369 #, python-format @@ -34085,22 +32129,28 @@ msgid "" "Warning! Tool's and default tool's parameter's (%s) types are not the same " "( type('%s') != type('%s') )." msgstr "" +"Aviso: os tipos de parâmetro da ferramenta e da ferramenta padrão (%s) não " +"são os mesmos ( tipo('%s') != tipo('%s') )." #: ../share/extensions/gcodetools.py:4372 #, python-format msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." msgstr "" +"Aviso: a ferramenta tem o parãmetro que a ferramenta padrão não tem ( '%s': " +"'%s' )." #: ../share/extensions/gcodetools.py:4386 #, python-format msgid "Layer '%s' contains more than one tool!" -msgstr "" +msgstr "A camada '%s' contém mais do que 1 ferramenta!" #: ../share/extensions/gcodetools.py:4389 #, python-format msgid "" "Can not find tool for '%s' layer! Please add one with Tools library tab!" msgstr "" +"Não foi possível encontrar a ferramenta para a camada '%s'! Adicione uma na " +"aba da biblioteca de Ferramentas!" #: ../share/extensions/gcodetools.py:4551 #: ../share/extensions/gcodetools.py:4706 @@ -34108,68 +32158,76 @@ msgid "" "Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl" "+Shift+G) and Object to Path (Ctrl+Shift+C)!" msgstr "" +"Aviso: um ou mais caminhos não têm o parâmetro 'd'. Tente Desagrupar (Ctrl" +"+Shift+G) e usar Converter Objeto num Caminho (Ctrl+Shift+C)!" #: ../share/extensions/gcodetools.py:4665 msgid "" "Nothing is selected. Please select something to convert to drill point " "(dxfpoint) or clear point sign." msgstr "" +"Não está nada selecionado. Selecione algo para converter em ponto perfurado " +"(dxfpoint) ou limpar o símbolo de ponto." #: ../share/extensions/gcodetools.py:4748 #: ../share/extensions/gcodetools.py:4994 -#, fuzzy msgid "This extension requires at least one selected path." -msgstr "União entre os caminhos seleccionados" +msgstr "Esta extensão requer pelo menos um caminho selecionado." #: ../share/extensions/gcodetools.py:4754 #: ../share/extensions/gcodetools.py:5000 #, python-format msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" msgstr "" +"O diâmetro da ferramenta tem de ser > 0 mas o diâmetro na camada '%s' não é " +"> 0!" #: ../share/extensions/gcodetools.py:4765 #: ../share/extensions/gcodetools.py:4954 #: ../share/extensions/gcodetools.py:5009 msgid "Warning: omitting non-path" -msgstr "" +msgstr "Aviso: a omitir um não-caminho" #: ../share/extensions/gcodetools.py:5509 -#, fuzzy msgid "Please select at least one path to engrave and run again." msgstr "" -"Seleccione pelo menos dois caminhos para fazer uma operação booleana." +"Selecionar pelo menos 1 caminho para fazer a gravura e fazer de novo." #: ../share/extensions/gcodetools.py:5517 msgid "Unknown unit selected. mm assumed" -msgstr "" +msgstr "Unidade selecionada desconhecida. A utilizar milímetros" #: ../share/extensions/gcodetools.py:5538 #, python-format msgid "Tool '%s' has no shape. 45 degree cone assumed!" msgstr "" +"A ferramenta '%s' não tem forma geométrica. Foi assumido um cone de 45 graus!" #: ../share/extensions/gcodetools.py:5609 #: ../share/extensions/gcodetools.py:5614 msgid "csp_normalised_normal error. See log." -msgstr "" +msgstr "Erro csp_normalised_normal. Ver registos." #: ../share/extensions/gcodetools.py:5802 msgid "No need to engrave sharp angles." -msgstr "" +msgstr "Não é necessário talhar ângulos pontiagudos." #: ../share/extensions/gcodetools.py:5846 msgid "" "Active layer already has orientation points! Remove them or select another " "layer!" msgstr "" +"A camada ativa já tem pontos de orientação! Remova-os ou selecione outra " +"camada!" #: ../share/extensions/gcodetools.py:5891 msgid "Active layer already has a tool! Remove it or select another layer!" msgstr "" +"A camada ativa já tem uma ferramenta! Remova-a ou selecione outra camada!" #: ../share/extensions/gcodetools.py:6006 msgid "Selection is empty! Will compute whole drawing." -msgstr "" +msgstr "A seleção econtra-se vazia! Será processado todo o desenho." #: ../share/extensions/gcodetools.py:6060 msgid "" @@ -34179,14 +32237,20 @@ msgid "" "and Russian support forum:\n" "\thttp://www.cnc-club.ru/gcodetoolsru" msgstr "" +"Podem-se encontrar tutoriais, manuais e ajuda\n" +"no fórum em inglês:\n" +"\thttp://www.cnc-club.ru/gcodetools\n" +"e no fórum em russo:\n" +"\thttp://www.cnc-club.ru/gcodetoolsru" #: ../share/extensions/gcodetools.py:6105 msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." msgstr "" +"Os eixos X e Z do remapear do torno deviam ser 'X', 'Y' ou 'Z'. A sair..." #: ../share/extensions/gcodetools.py:6108 msgid "Lathe X and Z axis remap should be the same. Exiting..." -msgstr "" +msgstr "Os eixos X e Z do remapear do torno deviam ser os mesmos. A sair..." #: ../share/extensions/gcodetools.py:6660 #, python-format @@ -34195,83 +32259,91 @@ msgid "" "Orientation, Offset, Lathe or Tools library.\n" " Current active tab id is %s" msgstr "" +"Selecionar uma das abas de ação - Caminho para Gcode, Ãrea, Gravura, pontos " +"DXF, orientação, Deslocamento, Tornear ou biblioteca de Ferramentas.\n" +" O identificador (ID) da aba atual ativa é %s" #: ../share/extensions/gcodetools.py:6666 msgid "" "Orientation points have not been defined! A default set of orientation " "points has been automatically added." msgstr "" +"Os pontos de orientação não foram definidos! Foi adicionado automaticamente " +"um conjunto de pontos de orientação padrão." #: ../share/extensions/gcodetools.py:6670 msgid "" "Cutting tool has not been defined! A default tool has been automatically " "added." msgstr "" +"A ferramenta de corte não foi definida! Foi adicionada automaticamente uma " +"ferramenta padrão." #: ../share/extensions/generate_voronoi.py:33 msgid "" "Failed to import the subprocess module. Please report this as a bug at: " "https://bugs.launchpad.net/inkscape." msgstr "" +"Falhou a importação do módulo subprocesso. Por favor reportar isto como erro " +"em: https://bugs.launchpad.net/inkscape" #: ../share/extensions/generate_voronoi.py:34 -#, fuzzy msgid "Python version is: " -msgstr "Remover guias existentes" +msgstr "A versão do Python é: " #: ../share/extensions/generate_voronoi.py:92 -#, fuzzy msgid "Please select an object" -msgstr "Duplicar os objectos seleccionados" +msgstr "Selecione um objeto" #: ../share/extensions/gimp_xcf.py:37 msgid "Inkscape must be installed and set in your path variable." msgstr "" +"O Inkscape tem de estar instalado e acessível na variável PATH do sistema." #: ../share/extensions/gimp_xcf.py:41 msgid "Gimp must be installed and set in your path variable." -msgstr "" +msgstr "O GIMP tem de estar instalado e acessível na variável PATH do sistema." #: ../share/extensions/gimp_xcf.py:45 msgid "An error occurred while processing the XCF file." -msgstr "" +msgstr "Ocorreu um erro ao processar o ficheiro XCF." #: ../share/extensions/gimp_xcf.py:183 -#, fuzzy msgid "This extension requires at least one non empty layer." -msgstr "União entre os caminhos seleccionados" +msgstr "Esta extensão requer pelo menos 1 camada não vazia." #: ../share/extensions/guillotine.py:248 msgid "The sliced bitmaps have been saved as:" -msgstr "" +msgstr "As imagens bitmap fatiadas foram gravadas como:" #: ../share/extensions/hpgl_decoder.py:42 -#, fuzzy msgid "Movements" -msgstr "Mover alça do degradê" +msgstr "Movimentos" #: ../share/extensions/hpgl_decoder.py:43 -#, fuzzy msgid "Pen " -msgstr "Massa:" +msgstr "Caneta " #. issue error if no hpgl data found #: ../share/extensions/hpgl_input.py:56 -#, fuzzy msgid "No HPGL data found." -msgstr "Não arredondado" +msgstr "Nenhuns dados HPGL encontrados." #: ../share/extensions/hpgl_input.py:64 msgid "" "The HPGL data contained unknown (unsupported) commands, there is a " "possibility that the drawing is missing some content." msgstr "" +"Os dados HPGL contêm comandos desconhecidos (não suportados). Existe a " +"possibilidade de faltar algum conteúdo no desenho." #. issue error if no paths found #: ../share/extensions/hpgl_output.py:57 msgid "" "No paths where found. Please convert all objects you want to save into paths." msgstr "" +"Não foram encontrados caminhos. Converta todos os objetos que quer gravar em " +"caminhos." #: ../share/extensions/inkex.py:116 #, python-format @@ -34284,32 +32356,37 @@ msgid "" "Technical details:\n" "%s" msgstr "" +"O lxml wrapper para libxml2 é necessário por inkex.py e também por esta " +"extensão. Descarregue e instale a última versão de http://cheeseshop.python." +"org/pypi/lxml/ ou, em sistemas Linux, instale-o através do gestor de pacotes " +"com um comando como: sudo apt-get install python-lxml\n" +"\n" +"Detalhes técnicos:\n" +"%s" #: ../share/extensions/inkex.py:184 -#, fuzzy, python-format +#, python-format msgid "Unable to open specified file: %s" -msgstr "" -"Não foi possível modificar o ficheiro %s.\n" -"%s" +msgstr "Não foi possível abrir o ficheiro: %s" #: ../share/extensions/inkex.py:193 #, python-format msgid "Unable to open object member file: %s" -msgstr "" +msgstr "Não foi possível abrir o ficheiro membro do objeto: %s" #: ../share/extensions/inkex.py:299 #, python-format msgid "No matching node for expression: %s" -msgstr "" +msgstr "Nenhum nó corresponde à expressão: %s" #: ../share/extensions/inkex.py:358 msgid "SVG Width not set correctly! Assuming width = 100" msgstr "" +"A Largura SVG não está definida corretamente! A assumir a largura = 100" #: ../share/extensions/interp_att_g.py:175 -#, fuzzy msgid "There is no selection to interpolate" -msgstr "Levantar a selecção para o topo" +msgstr "Não há nenhuma seleção a interpolar" #: ../share/extensions/jessyInk_autoTexts.py:44 #: ../share/extensions/jessyInk_effects.py:49 @@ -34328,13 +32405,18 @@ msgid "" "update the JessyInk script.\n" "\n" msgstr "" +"O script JessyInk não está instalado neste ficheiro SVG ou tem uma versão " +"diferente das extensões JessyInk. Selecione \"Extensões->JessyInk->instalar/" +"atualizar...\" para instalar ou atualizar o script JessyInk.\n" +"\n" #: ../share/extensions/jessyInk_autoTexts.py:47 -#, fuzzy msgid "" "To assign an effect, please select an object.\n" "\n" -msgstr "Duplicar os objectos seleccionados" +msgstr "" +"Para aplicar um efeito, selecionar um objeto.\n" +"\n" #: ../share/extensions/jessyInk_autoTexts.py:53 #, python-brace-format @@ -34342,71 +32424,81 @@ msgid "" "Node with id '{0}' is not a suitable text node and was therefore ignored.\n" "\n" msgstr "" +"O nó com o ID '{0}' não é um nó de texto adequado e foi por isso ignorado.\n" +"\n" #: ../share/extensions/jessyInk_effects.py:52 msgid "" "No object selected. Please select the object you want to assign an effect to " "and then press apply.\n" msgstr "" +"Nenhum objeto selecionado. Selecione o objeto ao qual quer atribuir um " +"efeito e clique em Aplicar.\n" #: ../share/extensions/jessyInk_export.py:80 msgid "Could not find Inkscape command.\n" -msgstr "" +msgstr "Não foi possível encontrar o comando do Inkscape.\n" #: ../share/extensions/jessyInk_masterSlide.py:54 msgid "Layer not found. Removed current master slide selection.\n" msgstr "" +"Camada não encontrada. Foi removida a seleção do slide principal atual.\n" #: ../share/extensions/jessyInk_masterSlide.py:56 msgid "" "More than one layer with this name found. Removed current master slide " "selection.\n" msgstr "" +"Encontrada mais do que uma camada com este nome. Foi removida a seleção do " +"slide principal atual.\n" #: ../share/extensions/jessyInk_summary.py:68 #, python-brace-format msgid "JessyInk script version {0} installed." -msgstr "" +msgstr "Versão do script JessyInk {0} instalada." #: ../share/extensions/jessyInk_summary.py:70 msgid "JessyInk script installed." -msgstr "" +msgstr "Script JessyInk instalado." #: ../share/extensions/jessyInk_summary.py:82 -#, fuzzy msgid "" "\n" "Master slide:" -msgstr "Colar tamanho" +msgstr "" +"\n" +"Slide principal:" #: ../share/extensions/jessyInk_summary.py:88 msgid "" "\n" "Slide {0!s}:" msgstr "" +"\n" +"Slide {0!s}:" #: ../share/extensions/jessyInk_summary.py:93 -#, fuzzy, python-brace-format +#, python-brace-format msgid "{0}Layer name: {1}" -msgstr "Nome da camada:" +msgstr "{0}Nome da camada: {1}" #: ../share/extensions/jessyInk_summary.py:101 msgid "{0}Transition in: {1} ({2!s} s)" -msgstr "" +msgstr "{0}Transição de entrada: {1} ({2!s} s)" #: ../share/extensions/jessyInk_summary.py:103 -#, fuzzy, python-brace-format +#, python-brace-format msgid "{0}Transition in: {1}" -msgstr "Informação" +msgstr "{0}Transição de entrada: {1}" #: ../share/extensions/jessyInk_summary.py:110 msgid "{0}Transition out: {1} ({2!s} s)" -msgstr "" +msgstr "{0}Transição de saída: {1} ({2!s} s)" #: ../share/extensions/jessyInk_summary.py:112 -#, fuzzy, python-brace-format +#, python-brace-format msgid "{0}Transition out: {1}" -msgstr "Colar efeito de caminho ao vivo" +msgstr "{0}Transição de saída: {1}" #: ../share/extensions/jessyInk_summary.py:119 #, python-brace-format @@ -34414,11 +32506,13 @@ msgid "" "\n" "{0}Auto-texts:" msgstr "" +"\n" +"{0}Textos automáticos:" #: ../share/extensions/jessyInk_summary.py:122 #, python-brace-format msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." -msgstr "" +msgstr "{0}\t\"{1}\" (o id \"{2}\" do objeto) será substituido por \"{3}\"." #: ../share/extensions/jessyInk_summary.py:167 #, python-brace-format @@ -34426,54 +32520,55 @@ msgid "" "\n" "{0}Initial effect (order number {1}):" msgstr "" +"\n" +"{0}Efeito inicial (número {1} da ordem):" #: ../share/extensions/jessyInk_summary.py:169 msgid "" "\n" "{0}Effect {1!s} (order number {2}):" msgstr "" +"\n" +"{0}Efeito {1!s} (número {2} da ordem):" #: ../share/extensions/jessyInk_summary.py:173 #, python-brace-format msgid "{0}\tView will be set according to object \"{1}\"" -msgstr "" +msgstr "{0}\tA vista será definida de acordo com o objeto \"{1}\"" #: ../share/extensions/jessyInk_summary.py:175 #, python-brace-format msgid "{0}\tObject \"{1}\"" -msgstr "" +msgstr "{0}\tObjeto \"{1}\"" #: ../share/extensions/jessyInk_summary.py:178 -#, fuzzy msgid " will appear" -msgstr "Preencher área fechada" +msgstr " irá aparecer" #: ../share/extensions/jessyInk_summary.py:180 msgid " will disappear" -msgstr "" +msgstr " irá desaparecer" #: ../share/extensions/jessyInk_summary.py:183 #, python-brace-format msgid " using effect \"{0}\"" -msgstr "" +msgstr " usando o efeito \"{0}\"" #: ../share/extensions/jessyInk_summary.py:186 msgid " in {0!s} s" -msgstr "" +msgstr " em {0!s} s" #: ../share/extensions/jessyInk_transitions.py:54 -#, fuzzy msgid "Layer not found.\n" -msgstr "Camada para o topo" +msgstr "Camada não encontrada.\n" #: ../share/extensions/jessyInk_transitions.py:56 msgid "More than one layer with this name found.\n" -msgstr "" +msgstr "Encontrada mais do que 1 camada com este nome.\n" #: ../share/extensions/jessyInk_transitions.py:69 -#, fuzzy msgid "Please enter a layer name.\n" -msgstr "Você deve informar um nome de ficheiro" +msgstr "Introduza um nome de camada.\n" #: ../share/extensions/jessyInk_video.py:52 #: ../share/extensions/jessyInk_video.py:57 @@ -34481,29 +32576,31 @@ msgid "" "Could not obtain the selected layer for inclusion of the video element.\n" "\n" msgstr "" +"Não foi possível obter a camada selecionada para a inclusão do elemento de " +"vídeo.\n" +"\n" #: ../share/extensions/jessyInk_view.py:74 -#, fuzzy msgid "More than one object selected. Please select only one object.\n" -msgstr "" -"Mais de um objecto seleccionado. Não é possível obter o estilo a " -"partir de múltiplos objectos." +msgstr "Mais do que um objeto selecionado. Selecione apenas 1 objeto.\n" #: ../share/extensions/jessyInk_view.py:78 msgid "" "No object selected. Please select the object you want to assign a view to " "and then press apply.\n" msgstr "" +"Nenhum objeto selecionado. Selecione o objeto no qual pretende atribuir uma " +"vista e então clicar em Aplicar.\n" #: ../share/extensions/markers_strokepaint.py:82 #, python-format msgid "No style attribute found for id: %s" -msgstr "" +msgstr "Não foi encontrado nenhum atributo de estilo para o ID: %s" #: ../share/extensions/markers_strokepaint.py:136 #, python-format msgid "unable to locate marker: %s" -msgstr "" +msgstr "não foi possível encontrar o marcador: %s" #: ../share/extensions/measure.py:57 msgid "" @@ -34511,33 +32608,40 @@ msgid "" "extension. Please install them and try again. On a Debian-like system this " "can be done with the command, sudo apt-get install python-numpy." msgstr "" +"Não foi possível importar os módulos numpy. Estes módulos são necessários " +"para esta extensão. Instale-os e tente de novo. Num sistema Debian ou " +"similar isto pode ser feito com o comando 'sudo apt-get install python-" +"numpy'." #: ../share/extensions/measure.py:119 msgid "Area is zero, cannot calculate Center of Mass" -msgstr "" +msgstr "A área é zero, não é possível calcular o Centro da Massa" #: ../share/extensions/pathalongpath.py:207 #: ../share/extensions/pathscatter.py:226 ../share/extensions/perspective.py:50 -#, fuzzy msgid "This extension requires two selected paths." -msgstr "União entre os caminhos seleccionados" +msgstr "Esta extensão requer 2 caminhos selecionados." #: ../share/extensions/pathalongpath.py:233 msgid "" "The total length of the pattern is too small :\n" "Please choose a larger object or set 'Space between copies' > 0" msgstr "" +"O comprimento total do padrão é demasiado pequeno:\n" +"Escolha um objeto maior ou altere o 'Espaço entre cópias' > 0" #: ../share/extensions/pathalongpath.py:276 msgid "" "The 'stretch' option requires that the pattern must have non-zero width :\n" "Please edit the pattern width." msgstr "" +"A opção 'esticar' necessita que o padrão tenha uma largura não zero:\n" +"Edite a largura do padrão." #: ../share/extensions/pathmodifier.py:235 #, python-format msgid "Please first convert objects to paths! (Got [%s].)" -msgstr "" +msgstr "Converta primeiro os objetos em caminhos! (Obtido [%s].)" #: ../share/extensions/perspective.py:42 msgid "" @@ -34546,6 +32650,10 @@ msgid "" "like system this can be done with the command, sudo apt-get install python-" "numpy." msgstr "" +"Não foi possível importar o módulo numpy ou numpy.linalg. Estes módulos são " +"necessários para esta extensão. Instale-os e tente de novo. Num sistema " +"Debian ou similar isto pode ser feito com o comando 'sudo apt-get install " +"python-numpy'." #: ../share/extensions/perspective.py:58 ../share/extensions/summersnight.py:49 #, python-format @@ -34553,64 +32661,81 @@ msgid "" "The first selected object is of type '%s'.\n" "Try using the procedure Path->Object to Path." msgstr "" +"O primeiro objeto selecionado é do tipo '%s'.\n" +"Tente usar o menu Caminho->Converter Objeto num Caminho." #: ../share/extensions/perspective.py:65 ../share/extensions/summersnight.py:57 msgid "" "This extension requires that the second selected path be four nodes long." msgstr "" +"Esta extensão necessita que o segundo caminho contenha pelo menos 4 nós." #: ../share/extensions/perspective.py:91 ../share/extensions/summersnight.py:90 msgid "" "The second selected object is a group, not a path.\n" "Try using the procedure Object->Ungroup." msgstr "" +"O segundo objeto selecionado está num grupo, não num caminho.\n" +"Tente usar o menu Objeto->Desagrupar." #: ../share/extensions/perspective.py:93 ../share/extensions/summersnight.py:92 msgid "" "The second selected object is not a path.\n" "Try using the procedure Path->Object to Path." msgstr "" +"O segundo objeto selecionado não é um caminho.\n" +"Tente usar o menu Caminho->Converter Objeto num Caminho." #: ../share/extensions/perspective.py:96 ../share/extensions/summersnight.py:95 msgid "" "The first selected object is not a path.\n" "Try using the procedure Path->Object to Path." msgstr "" +"O primeiro objeto selecionado não é um caminho.\n" +"Tente usar o menu Caminho->Converter Objeto num Caminho." #. issue error if no paths found #: ../share/extensions/plotter.py:68 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" +"Não foram encontrados caminhos. Converta todos os objetos que quer converter " +"em caminhos." #: ../share/extensions/plotter.py:146 msgid "pySerial is not installed. Please follow these steps:" -msgstr "" +msgstr "O pySerial não está instalado. Siga estes passos:" #: ../share/extensions/plotter.py:147 msgid "1. Download and extract (unzip) this file to your local harddisk:" -msgstr "" +msgstr "1. Descarregar e extrair este ficheiro ZIP para o disco rígido:" #: ../share/extensions/plotter.py:149 msgid "" "2. Copy the \"serial\" folder (Can be found inside the just extracted folder)" msgstr "" +"2. Copiar a pasta \"serial\" (encontra-se na pasta para onde se extraiu o " +"ficheiro ZIP)" #: ../share/extensions/plotter.py:150 msgid "" " into the following Inkscape folder: C:\\[Program files]\\inkscape\\python" "\\Lib\\" msgstr "" +" para a seguinte pasta do Inkscape: C:\\[Programas]\\inkscape\\python\\Lib" +"\\" #: ../share/extensions/plotter.py:151 msgid "3. Close and restart Inkscape." -msgstr "" +msgstr "3. Fechar e reabrir o Inkscape" #: ../share/extensions/plotter.py:200 msgid "" "Could not open port. Please check that your plotter is running, connected " "and the settings are correct." msgstr "" +"Não foi possível abrir a porta. Verifique que a plotter está ligada, com os " +"cabos ligados e se as configurações estão corretas." #: ../share/extensions/polyhedron_3d.py:64 msgid "" @@ -34618,22 +32743,27 @@ msgid "" "extension. Please install it and try again. On a Debian-like system this " "can be done with the command 'sudo apt-get install python-numpy'." msgstr "" +"Não foi possível importar o módulo numpy. Este módulo é necessário para esta " +"extensão. Instale-o e tente de novo. Num sistema Debian ou similar isto pode " +"ser feito com o comando 'sudo apt-get install python-numpy'." #: ../share/extensions/polyhedron_3d.py:335 msgid "No face data found in specified file." -msgstr "" +msgstr "Não foram encontrados dados de faces no ficheiro especificado." #: ../share/extensions/polyhedron_3d.py:336 msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" msgstr "" +"Tente selecionar \"Especificado pelas Bordas\" na aba Ficheiro de Modelo.\n" #: ../share/extensions/polyhedron_3d.py:342 msgid "No edge data found in specified file." -msgstr "" +msgstr "Não foram encontrados dados de bordas no ficheiro especificado." #: ../share/extensions/polyhedron_3d.py:343 msgid "Try selecting \"Face Specified\" in the Model File tab.\n" msgstr "" +"Tente selecionar \"Especificado pelas Faces\" na aba Ficheiro de Modelo.\n" #. we cannot generate a list of faces from the edges without a lot of computation #: ../share/extensions/polyhedron_3d.py:522 @@ -34641,56 +32771,59 @@ msgid "" "Face Data Not Found. Ensure file contains face data, and check the file is " "imported as \"Face-Specified\" under the \"Model File\" tab.\n" msgstr "" +"Não foram encontrados dados de faces. Confirme se o ficheir contém dados de " +"faces, e verifique se o ficheiro é importado como \"Especificado pelas Faces" +"\" na aba \"Ficheiro de Modelo\".\n" #: ../share/extensions/polyhedron_3d.py:524 msgid "Internal Error. No view type selected\n" -msgstr "" +msgstr "Erro Interno. Nenhum tipo de vista selecionada\n" #: ../share/extensions/print_win32_vector.py:39 msgid "sorry, this will run only on Windows, exiting..." -msgstr "" +msgstr "desculpe, isto funciona apenas em Windows, a sair..." #: ../share/extensions/print_win32_vector.py:177 -#, fuzzy msgid "Failed to open default printer" -msgstr "Criar degradê padrão" +msgstr "Não foi possível abrir a impressora padrão" #: ../share/extensions/render_barcode_datamatrix.py:201 msgid "Unrecognised DataMatrix size" -msgstr "" +msgstr "Tamanho não reconhecido da Matriz de Dados." #. we have an invalid bit value #: ../share/extensions/render_barcode_datamatrix.py:642 msgid "Invalid bit value, this is a bug!" -msgstr "" +msgstr "Valor de bit inválido, isto é um erro!" #. abort if converting blank text #: ../share/extensions/render_barcode_datamatrix.py:677 msgid "Please enter an input string" -msgstr "" +msgstr "Introduza uma expressão de entrada" #. abort if converting blank text #: ../share/extensions/render_barcode_qrcode.py:1053 -#, fuzzy msgid "Please enter an input text" -msgstr "Você deve informar um nome de ficheiro" +msgstr "Introduza um texto de entrada" #: ../share/extensions/replace_font.py:131 msgid "" "Couldn't find anything using that font, please ensure the spelling and " "spacing is correct." msgstr "" +"Não foi encontrado nada que utilize essa fonte. Confirmar se a grafia e os " +"espaços estão corretos." #: ../share/extensions/replace_font.py:138 #: ../share/extensions/svg_and_media_zip_output.py:193 msgid "Didn't find any fonts in this document/selection." -msgstr "" +msgstr "Não foram encontradas fontes neste documento/seleção." #: ../share/extensions/replace_font.py:141 #: ../share/extensions/svg_and_media_zip_output.py:196 #, python-format msgid "Found the following font only: %s" -msgstr "" +msgstr "Foi encontrada apenas a seguinte fonte: %s" #: ../share/extensions/replace_font.py:143 #: ../share/extensions/svg_and_media_zip_output.py:198 @@ -34699,45 +32832,46 @@ msgid "" "Found the following fonts:\n" "%s" msgstr "" +"Foram encontradas as seguintes fontes:\n" +"%s" #: ../share/extensions/replace_font.py:194 -#, fuzzy msgid "There was nothing selected" -msgstr "Nenhum objecto seleccionado" +msgstr "Não estava nada selecionado" #: ../share/extensions/replace_font.py:242 msgid "Please enter a search string in the find box." -msgstr "" +msgstr "Introduza uma expressão a pesquisar na caixa de pesquisa." #: ../share/extensions/replace_font.py:246 msgid "Please enter a replacement font in the replace with box." -msgstr "" +msgstr "Introduza uma fonte de substituição na caixa de substituir." #: ../share/extensions/replace_font.py:251 msgid "Please enter a replacement font in the replace all box." -msgstr "" +msgstr "Introduza uma fonte de substituição na caixa de substituir tudo." #: ../share/extensions/restack.py:75 -#, fuzzy msgid "There is no selection to restack." -msgstr "Levantar a selecção para o topo" +msgstr "Não é nenhuma selecção para tornar a empilhar." #: ../share/extensions/summersnight.py:41 -#, fuzzy msgid "" "This extension requires two selected paths. \n" "The second path must be exactly four nodes long." -msgstr "União entre os caminhos seleccionados" +msgstr "" +"Esta extensão necessita de 2 caminhos selecionados. \n" +"O segundo caminho tem de ter exatamente 4 nós." #: ../share/extensions/svg_and_media_zip_output.py:128 -#, fuzzy, python-format +#, python-format msgid "Could not locate file: %s" -msgstr "Não foi possível exportar para o ficheiro %s.\n" +msgstr "Não foi possível localizar o ficheiro: %s" #: ../share/extensions/svgcalendar.py:265 #: ../share/extensions/svgcalendar.py:287 msgid "You must select a correct system encoding." -msgstr "" +msgstr "Tem de selecionar uma codificação de sistema correta." #: ../share/extensions/uniconv-ext.py:54 #: ../share/extensions/uniconv_output.py:121 @@ -34748,72 +32882,77 @@ msgid "" "http://sk1project.org/modules.php?name=Products&product=uniconvertor\n" "and install into your Inkscape's Python location\n" msgstr "" +"É necessário instalar o programa UniConvertor.\n" +"Em GNU/Linux: instalar o pacote python-uniconvertor.\n" +"Em Windows: descarregar em\n" +"http://sk1project.org/modules.php?name=Products&product=uniconvertor\n" +"e instalar na localização do Python no Inkscape\n" #: ../share/extensions/voronoi2svg.py:205 -#, fuzzy msgid "Please select objects!" -msgstr "Duplicar os objectos seleccionados" +msgstr "Por favor selecione os objetos!" #: ../share/extensions/web-set-att.py:56 #: ../share/extensions/web-transmit-att.py:53 msgid "You must select at least two elements." -msgstr "" +msgstr "Tem de selecionar pelo menos 2 elementos." #: ../share/extensions/webslicer_create_group.py:55 msgid "" "You must create and select some \"Slicer rectangles\" before trying to group." msgstr "" +"É necessário criar e selecionar alguns \"Retângulos fatiados\" antes de " +"tentar agrupar." #: ../share/extensions/webslicer_create_group.py:70 msgid "" "You must to select some \"Slicer rectangles\" or other \"Layout groups\"." msgstr "" +"É necessário selecionar alguns \"Retângulos fatiados\" ou outros \"Grupos de " +"layout\"" #: ../share/extensions/webslicer_create_group.py:74 #, python-format msgid "Oops... The element \"%s\" is not in the Web Slicer layer" -msgstr "" +msgstr "Oops... O elemento \"%s\" não está na camada Fatiador Web (Web Slicer)" #: ../share/extensions/webslicer_export.py:55 msgid "You must give a directory to export the slices." -msgstr "" +msgstr "Tem de indicar uma pasta para onde exportar as fatias." #: ../share/extensions/webslicer_export.py:67 -#, fuzzy, python-format +#, python-format msgid "Can't create \"%s\"." -msgstr "" -"Não foi possível criar o ficheiro %s.\n" -"%s" +msgstr "Não foi possível criar \"%s\"." #: ../share/extensions/webslicer_export.py:68 -#, fuzzy, python-format +#, python-format msgid "Error: %s" -msgstr "Erros" +msgstr "Erro: %s" #: ../share/extensions/webslicer_export.py:71 -#, fuzzy, python-format +#, python-format msgid "The directory \"%s\" does not exists." -msgstr "A pasta %s não existe ou não é uma pasta.\n" +msgstr "A pasta \"%s\" não existe." #: ../share/extensions/webslicer_export.py:76 -#, fuzzy msgid "No slicer layer found." -msgstr "Nenhuma camada actual." +msgstr "Não foi encontrada nenhuma camada de fatias." #: ../share/extensions/webslicer_export.py:106 #, python-format msgid "You have more than one element with \"%s\" html-id." -msgstr "" +msgstr "Tem mais do que um elemento com o id HTML \"%s\"." #: ../share/extensions/webslicer_export.py:336 msgid "You must install the ImageMagick to get JPG and GIF." -msgstr "" +msgstr "Tem de instalar o ImageMagick para poder usar JPG e GIF." #. PARAMETER PROCESSING #. lines of longitude are odd : abort #: ../share/extensions/wireframe_sphere.py:116 msgid "Please enter an even number of lines of longitude." -msgstr "" +msgstr "Introduzir um número par de linhas de longitude." #. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 #: ../share/extensions/addnodes.inx.h:1 @@ -34821,24 +32960,20 @@ msgid "Add Nodes" msgstr "Adicionar Nós" #: ../share/extensions/addnodes.inx.h:2 -#, fuzzy msgid "Division method:" -msgstr "Divisão" +msgstr "Método de divisão:" #: ../share/extensions/addnodes.inx.h:3 -#, fuzzy msgid "By max. segment length" -msgstr "Comprimento máximo dos segmentos" +msgstr "Pelo comprimento máximo do segmento" #: ../share/extensions/addnodes.inx.h:5 -#, fuzzy msgid "Maximum segment length (px):" -msgstr "Comprimento máximo dos segmentos" +msgstr "Comprimento máximo do segmento (px):" #: ../share/extensions/addnodes.inx.h:6 -#, fuzzy msgid "Number of segments:" -msgstr "Número de passos" +msgstr "Número de segmentos:" #: ../share/extensions/addnodes.inx.h:7 #: ../share/extensions/convert2dashes.inx.h:2 @@ -34853,25 +32988,24 @@ msgstr "Número de passos" #: ../share/extensions/straightseg.inx.h:4 #: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4 msgid "Modify Path" -msgstr "Modificar Caminho" +msgstr "Alterar Caminho" #: ../share/extensions/ai_input.inx.h:1 msgid "AI 8.0 Input" -msgstr "Entrada AI 8.0" +msgstr "Importar AI 8.0" #: ../share/extensions/ai_input.inx.h:2 -#, fuzzy msgid "Adobe Illustrator 8.0 and below (*.ai)" -msgstr "Adobe Illustrator 8.0 (*.ai)" +msgstr "Adobe Illustrator 8.0 ou inferior (*.ai)" #: ../share/extensions/ai_input.inx.h:3 -#, fuzzy msgid "Open files saved with Adobe Illustrator 8.0 or older" -msgstr "Abrir ficheiros salvos com o Adobe Illustrator" +msgstr "" +"Abrir ficheiros gravados no Adobe Illustrator 8.0 ou versões inferiores" #: ../share/extensions/aisvg.inx.h:1 msgid "AI SVG Input" -msgstr "Entrada AI SVG" +msgstr "Importar AI SVG" #: ../share/extensions/aisvg.inx.h:2 msgid "Adobe Illustrator SVG (*.ai.svg)" @@ -34883,103 +33017,93 @@ msgstr "Limpa as impurezas dos Adobe Illustrator SVGs antes de abrir" #: ../share/extensions/ccx_input.inx.h:1 msgid "Corel DRAW Compressed Exchange files input (UC)" -msgstr "" +msgstr "Importar Corel DRAW Compressed Exchange (UC)" #: ../share/extensions/ccx_input.inx.h:2 msgid "Corel DRAW Compressed Exchange files (UC) (*.ccx)" -msgstr "" +msgstr "Corel DRAW Compressed Exchange (UC) (*.ccx)" #: ../share/extensions/ccx_input.inx.h:3 -#, fuzzy msgid "Open compressed exchange files saved in Corel DRAW (UC)" -msgstr "Abrir ficheiros salvos com XFIG" +msgstr "Abrir ficheiros Compressed Exchange gravados no Corel DRAW (UC)" #: ../share/extensions/cdr_input.inx.h:1 msgid "Corel DRAW Input (UC)" -msgstr "" +msgstr "Importar Corel DRAW (UC)" #: ../share/extensions/cdr_input.inx.h:2 msgid "Corel DRAW 7-X4 files (UC) (*.cdr)" -msgstr "" +msgstr "Corel DRAW 7-X4 (UC) (*.cdr)" #: ../share/extensions/cdr_input.inx.h:3 -#, fuzzy msgid "Open files saved in Corel DRAW 7-X4 (UC)" -msgstr "Abrir ficheiros salvos com XFIG" +msgstr "Abrir ficheiros gravados no Corel DRAW 7-X4 (UC)" #: ../share/extensions/cdt_input.inx.h:1 msgid "Corel DRAW templates input (UC)" -msgstr "" +msgstr "Importar Corel DRAW template (UC)" #: ../share/extensions/cdt_input.inx.h:2 msgid "Corel DRAW 7-13 template files (UC) (*.cdt)" -msgstr "" +msgstr "Corel DRAW 7-13 template (UC) (*.cdt)" #: ../share/extensions/cdt_input.inx.h:3 -#, fuzzy msgid "Open files saved in Corel DRAW 7-13 (UC)" -msgstr "Abrir ficheiros salvos com XFIG" +msgstr "Abrir ficheiros gravados no Corel DRAW 7-13 (UC)" #: ../share/extensions/cgm_input.inx.h:1 msgid "Computer Graphics Metafile files input" -msgstr "" +msgstr "Importar Computer Graphics Metafile" #: ../share/extensions/cgm_input.inx.h:2 -#, fuzzy msgid "Computer Graphics Metafile files (*.cgm)" -msgstr "Ficheiro XFIG Graphics (*.fig)" +msgstr "Computer Graphics Metafile (*.cgm)" #: ../share/extensions/cgm_input.inx.h:3 msgid "Open Computer Graphics Metafile files" -msgstr "" +msgstr "Ficheiros Open Computer Graphics Metafile" #: ../share/extensions/cmx_input.inx.h:1 msgid "Corel DRAW Presentation Exchange files input (UC)" -msgstr "" +msgstr "Importar Corel DRAW Presentation Exchange (UC)" #: ../share/extensions/cmx_input.inx.h:2 msgid "Corel DRAW Presentation Exchange files (UC) (*.cmx)" -msgstr "" +msgstr "Corel DRAW Presentation Exchange (UC) (*.cmx)" #: ../share/extensions/cmx_input.inx.h:3 -#, fuzzy msgid "Open presentation exchange files saved in Corel DRAW (UC)" -msgstr "Abrir ficheiros salvos com XFIG" +msgstr "Abrir ficheiros presentation exchange gravados no Corel DRAW (UC)" #: ../share/extensions/color_HSL_adjust.inx.h:1 -#, fuzzy msgid "HSL Adjust" -msgstr "Ajustar matiz" +msgstr "Ajuste HSL" #: ../share/extensions/color_HSL_adjust.inx.h:3 -#, fuzzy msgid "Hue (°)" -msgstr "Rotação (graus)" +msgstr "Matiz (°)" #: ../share/extensions/color_HSL_adjust.inx.h:4 -#, fuzzy msgid "Random hue" -msgstr "Ãrvore Aleatória" +msgstr "Matiz aleatória" #: ../share/extensions/color_HSL_adjust.inx.h:6 -#, fuzzy, no-c-format +#, no-c-format msgid "Saturation (%)" -msgstr "Saturação" +msgstr "Saturação (%)" #: ../share/extensions/color_HSL_adjust.inx.h:7 -#, fuzzy msgid "Random saturation" -msgstr "Ajustar saturação" +msgstr "Saturação aleatória" #: ../share/extensions/color_HSL_adjust.inx.h:9 -#, fuzzy, no-c-format +#, no-c-format msgid "Lightness (%)" -msgstr "Brilho" +msgstr "Luminosidade (%)" #: ../share/extensions/color_HSL_adjust.inx.h:10 -#, fuzzy msgid "Random lightness" -msgstr "Luminosidade" +msgstr "Luminosidade aleatória" #: ../share/extensions/color_HSL_adjust.inx.h:13 #, no-c-format @@ -34993,44 +33117,48 @@ msgid "" " * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" " " msgstr "" +"Ajusta a matiz, saturação e luminosidade na representação HSL da cor dos " +"objetos selecionados.\n" +"Opções:\n" +" * Matiz: rodar em graus (roda à volta).\n" +" * Saturação: adicionar/subtrair % (mín=-100, máx=100).\n" +" * Luminosidade: adicionar/subtrair % (mín=-100, máx=100).\n" +" * Matiz/Saturação/Luminosidade aleatórios: atribuir valor aleatório ao " +"parâmetro.\n" +" " #: ../share/extensions/color_blackandwhite.inx.h:1 -#, fuzzy msgid "Black and White" -msgstr "Inverter regiões pretas e brancas para traçados simples" +msgstr "Preto e Branco" #: ../share/extensions/color_blackandwhite.inx.h:2 msgid "Threshold Color (1-255):" -msgstr "" +msgstr "Limiar de Cor (1-255):" #: ../share/extensions/color_brighter.inx.h:1 msgid "Brighter" msgstr "Mais claro" #: ../share/extensions/color_custom.inx.h:1 -#, fuzzy msgctxt "Custom color extension" msgid "Custom" -msgstr "_Personalizado" +msgstr "Personalizado" #: ../share/extensions/color_custom.inx.h:3 -#, fuzzy msgid "Red Function:" -msgstr "Função Vermelho" +msgstr "Função Vermelho:" #: ../share/extensions/color_custom.inx.h:4 -#, fuzzy msgid "Green Function:" -msgstr "Função Verde" +msgstr "Função Verde:" #: ../share/extensions/color_custom.inx.h:5 -#, fuzzy msgid "Blue Function:" -msgstr "Função Azul" +msgstr "Função Azul:" #: ../share/extensions/color_custom.inx.h:6 msgid "Input (r,g,b) Color Range:" -msgstr "" +msgstr "Intervalo de cor (r,g,b) de entrada:" #: ../share/extensions/color_custom.inx.h:8 msgid "" @@ -35043,6 +33171,15 @@ msgid "" " Green Function: b \n" " Blue Function: g" msgstr "" +"Permite avaliar diferentes funções para cada canal.\n" +"r, g e b são os valores normalizados dos canais vermelho, verde e azul. Os " +"valores RGB resultantes são processados automaticamente para caberem no " +"intervalo.\n" +" \n" +"Exemplo (metade do vermelho, troca do verde e azul):\n" +" Função Vermelho: r*0.5 \n" +" Função Verde: b \n" +" Função Azul: g" #: ../share/extensions/color_darker.inx.h:1 msgid "Darker" @@ -35059,7 +33196,7 @@ msgstr "Escala de cinzas" #: ../share/extensions/color_lesshue.inx.h:1 msgid "Less Hue" -msgstr "Menos Gama" +msgstr "Menos Matiz" #: ../share/extensions/color_lesslight.inx.h:1 msgid "Less Light" @@ -35071,7 +33208,7 @@ msgstr "Menos Saturação" #: ../share/extensions/color_morehue.inx.h:1 msgid "More Hue" -msgstr "Mais Gama" +msgstr "Mais Matiz" #: ../share/extensions/color_morelight.inx.h:1 msgid "More Light" @@ -35087,29 +33224,28 @@ msgstr "Negativo" #: ../share/extensions/color_randomize.inx.h:1 #: ../share/extensions/render_alphabetsoup.inx.h:4 -#, fuzzy msgid "Randomize" -msgstr "Aleatório:" +msgstr "Aleatório" #: ../share/extensions/color_randomize.inx.h:4 -#, fuzzy, no-c-format +#, no-c-format msgid "Hue range (%)" -msgstr "Rotação (graus)" +msgstr "Intervalo da matiz (%)" #: ../share/extensions/color_randomize.inx.h:6 -#, fuzzy, no-c-format +#, no-c-format msgid "Saturation range (%)" -msgstr "Saturação" +msgstr "Intervalo da saturação (%)" #: ../share/extensions/color_randomize.inx.h:8 -#, fuzzy, no-c-format +#, no-c-format msgid "Lightness range (%)" -msgstr "Brilho" +msgstr "Intervalo da luminosidade (%)" #: ../share/extensions/color_randomize.inx.h:10 -#, fuzzy, no-c-format +#, no-c-format msgid "Opacity range (%)" -msgstr "Opacidade, %" +msgstr "Intervalo da opacidade (%)" #: ../share/extensions/color_randomize.inx.h:12 msgid "" @@ -35117,6 +33253,9 @@ msgid "" "only for objects and groups). Change the range values to limit the distance " "between the original color and the randomized one." msgstr "" +"Atribui valores aleatórios à matiz, saturação, luminosidade e/ou opacidade " +"(opacidade aleatória apenas em objetos e grupos). Alterar os valores do " +"intervalo para limitar a distância entre a cor original e a cor aleatória." #: ../share/extensions/color_removeblue.inx.h:1 msgid "Remove Blue" @@ -35131,53 +33270,48 @@ msgid "Remove Red" msgstr "Remover Vermelho" #: ../share/extensions/color_replace.inx.h:1 -#, fuzzy msgid "Replace color" -msgstr "Substituir cor..." +msgstr "Substituir cor" #: ../share/extensions/color_replace.inx.h:2 msgid "Replace color (RRGGBB hex):" msgstr "Substituir cor (RRGGBB hex):" #: ../share/extensions/color_replace.inx.h:3 -#, fuzzy msgid "Color to replace" -msgstr "Cor das linhas de grelha" +msgstr "Cor a substituir" #: ../share/extensions/color_replace.inx.h:4 msgid "By color (RRGGBB hex):" -msgstr "Por cor (RRGGBB hex):" +msgstr "Pela cor (RRGGBB hex):" #: ../share/extensions/color_replace.inx.h:5 -#, fuzzy msgid "New color" -msgstr "Soltar cor" +msgstr "Nova cor" #: ../share/extensions/color_rgbbarrel.inx.h:1 msgid "RGB Barrel" msgstr "Barril RGB" #: ../share/extensions/convert2dashes.inx.h:1 -#, fuzzy msgid "Convert to Dashes" -msgstr "Converter para Texto" +msgstr "Converter para Traços" #: ../share/extensions/dhw_input.inx.h:1 -#, fuzzy msgid "DHW file input" -msgstr "Entrada de Metafile do Windows" +msgstr "Importar DHW" #: ../share/extensions/dhw_input.inx.h:2 msgid "ACECAD Digimemo File (*.dhw)" -msgstr "" +msgstr "ACECAD Digimemo (*.dhw)" #: ../share/extensions/dhw_input.inx.h:3 msgid "Open files from ACECAD Digimemo" -msgstr "" +msgstr "Abrir ficheiros de ACECAD Digimemo" #: ../share/extensions/dia.inx.h:1 msgid "Dia Input" -msgstr "Entrada DIA" +msgstr "Importar DIA" #: ../share/extensions/dia.inx.h:2 msgid "" @@ -35185,16 +33319,16 @@ msgid "" "If you do not have it, there is likely to be something wrong with your " "Inkscape installation." msgstr "" -"O script dia2svg.sh deve ter sido instalado juntamente com o Inkscape. Se " -"não o possue, há algo errado com sua instalação do Inkscape." +"O script dia2svg.sh é instalado automaticamente com o Inkscape. Se não o " +"tem, há algo errado com sua instalação do Inkscape." #: ../share/extensions/dia.inx.h:3 msgid "" "In order to import Dia files, Dia itself must be installed. You can get Dia " "at http://live.gnome.org/Dia" msgstr "" -"Para importar ficheiros Dia, o próprio Dia ser instalado. Você pode obtê-lo " -"em http://live.gnome.org/Dia" +"Para importar ficheiros Dia, o programa Dia tem de estar instalado. Pode " +"obtê-lo em http://live.gnome.org/Dia" #: ../share/extensions/dia.inx.h:4 msgid "Dia Diagram (*.dia)" @@ -35205,58 +33339,49 @@ msgid "A diagram created with the program Dia" msgstr "Um diagrama criado com o programa Dia" #: ../share/extensions/dimension.inx.h:1 -#, fuzzy msgid "Dimensions" -msgstr "Divisão" +msgstr "Dimensões" #: ../share/extensions/dimension.inx.h:2 -#, fuzzy msgid "X Offset:" -msgstr "Deslocamentos" +msgstr "Deslocamento X:" #: ../share/extensions/dimension.inx.h:3 -#, fuzzy msgid "Y Offset:" -msgstr "Deslocamentos" +msgstr "Deslocamento Y:" #: ../share/extensions/dimension.inx.h:4 -#, fuzzy msgid "Bounding box type:" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Tipo de caixa limitadora:" #: ../share/extensions/dimension.inx.h:5 -#, fuzzy msgid "Geometric" -msgstr "Aumentar ajuste" +msgstr "Geométrico" #: ../share/extensions/dimension.inx.h:6 -#, fuzzy msgid "Visual" -msgstr "Visualizando Caminho" +msgstr "Visual" #: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 #: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:42 msgid "Visualize Path" -msgstr "Visualizando Caminho" +msgstr "Visualizar Caminho" #: ../share/extensions/dots.inx.h:1 msgid "Number Nodes" msgstr "Numerar Nós" #: ../share/extensions/dots.inx.h:4 -#, fuzzy msgid "Dot size:" -msgstr "Tamanho do ponto" +msgstr "Tamanho do ponto:" #: ../share/extensions/dots.inx.h:5 -#, fuzzy msgid "Starting dot number:" -msgstr "Ângulo da caneta" +msgstr "Começo do número do ponto:" #: ../share/extensions/dots.inx.h:6 -#, fuzzy msgid "Step:" -msgstr "Passos" +msgstr "Passo:" #: ../share/extensions/dots.inx.h:8 msgid "" @@ -35268,169 +33393,152 @@ msgid "" "first node of the path.\n" " * Step: numbering step between two nodes." msgstr "" +"Esta extensão substitui os nós da seleção por pontos numerados de acordo com " +"as seguintes opções:\n" +" * Tamanho da fonte: tamanho das etiquetas do número dos pontos (20px, " +"12pt...).\n" +" * Tamanho do ponto: diâmetro dos pontos colocados nos nós do caminho " +"(10px, 2mm...).\n" +" * Número inicial do ponto: primeiro número na sequência, atribuído ao " +"primeiro nó do caminho.\n" +" * Passo: intervalo de número entre 2 nós." #: ../share/extensions/draw_from_triangle.inx.h:1 -#, fuzzy msgid "Draw From Triangle" -msgstr "Único" +msgstr "Desenhar do Triângulo" #: ../share/extensions/draw_from_triangle.inx.h:2 -#, fuzzy msgid "Common Objects" -msgstr "Objectos" +msgstr "Objetos Comuns" #: ../share/extensions/draw_from_triangle.inx.h:3 -#, fuzzy msgid "Circumcircle" -msgstr "Círculo" +msgstr "Circuncírculo" #: ../share/extensions/draw_from_triangle.inx.h:4 -#, fuzzy msgid "Circumcentre" -msgstr "Desenho SVG" +msgstr "Circuncentro" #: ../share/extensions/draw_from_triangle.inx.h:5 -#, fuzzy msgid "Incircle" -msgstr "círculo" +msgstr "Círculo Inscrito" #: ../share/extensions/draw_from_triangle.inx.h:6 -#, fuzzy msgid "Incentre" -msgstr "Indentar nó" +msgstr "Centro Inscrito" #: ../share/extensions/draw_from_triangle.inx.h:7 -#, fuzzy msgid "Contact Triangle" -msgstr "Único" +msgstr "Triângulo de Contacto" #: ../share/extensions/draw_from_triangle.inx.h:8 -#, fuzzy msgid "Excircles" -msgstr "círculo" +msgstr "Círculo Exinscrito" #: ../share/extensions/draw_from_triangle.inx.h:9 -#, fuzzy msgid "Excentres" -msgstr "Extrudir" +msgstr "Centro Exinscrito" #: ../share/extensions/draw_from_triangle.inx.h:10 -#, fuzzy msgid "Extouch Triangle" -msgstr "Único" +msgstr "Triângulo Extoque" #: ../share/extensions/draw_from_triangle.inx.h:11 -#, fuzzy msgid "Excentral Triangle" -msgstr "Único" +msgstr "Triângulo Excentral" #: ../share/extensions/draw_from_triangle.inx.h:12 -#, fuzzy msgid "Orthocentre" -msgstr "Outro" +msgstr "Ortocentro" #: ../share/extensions/draw_from_triangle.inx.h:13 -#, fuzzy msgid "Orthic Triangle" -msgstr "Único" +msgstr "Triângulo Órtico" #: ../share/extensions/draw_from_triangle.inx.h:14 -#, fuzzy msgid "Altitudes" -msgstr "Amplitude" +msgstr "Altitudes" #: ../share/extensions/draw_from_triangle.inx.h:15 -#, fuzzy msgid "Angle Bisectors" -msgstr "Divisão" +msgstr "Bissetriz" #: ../share/extensions/draw_from_triangle.inx.h:16 -#, fuzzy msgid "Centroid" -msgstr "Centralizar" +msgstr "Centróide" #: ../share/extensions/draw_from_triangle.inx.h:17 msgid "Nine-Point Centre" -msgstr "" +msgstr "Centro de 9 Pontos" #: ../share/extensions/draw_from_triangle.inx.h:18 msgid "Nine-Point Circle" -msgstr "" +msgstr "Círculo de 9 Pontos" #: ../share/extensions/draw_from_triangle.inx.h:19 msgid "Symmedians" -msgstr "" +msgstr "Simedianos" #: ../share/extensions/draw_from_triangle.inx.h:20 -#, fuzzy msgid "Symmedian Point" -msgstr "Texto vertical" +msgstr "Ponto Simediano" #: ../share/extensions/draw_from_triangle.inx.h:21 -#, fuzzy msgid "Symmedial Triangle" -msgstr "Único" +msgstr "Triângulo Simedial" #: ../share/extensions/draw_from_triangle.inx.h:22 -#, fuzzy msgid "Gergonne Point" -msgstr "Pintura de Traço" +msgstr "Ponto de Gergonne" #: ../share/extensions/draw_from_triangle.inx.h:23 -#, fuzzy msgid "Nagel Point" -msgstr "Ponto Negro" +msgstr "Ponto de Nagel" #: ../share/extensions/draw_from_triangle.inx.h:24 -#, fuzzy msgid "Custom Points and Options" -msgstr "Opções da Linha de Comando" +msgstr "Pontos Personalizados e Opções" #: ../share/extensions/draw_from_triangle.inx.h:25 msgid "Custom Point Specified By:" -msgstr "" +msgstr "Ponto Personalizado Especificado Por:" #: ../share/extensions/draw_from_triangle.inx.h:26 -#, fuzzy msgid "Point At:" -msgstr "Pontos Em" +msgstr "Ponto em:" #: ../share/extensions/draw_from_triangle.inx.h:27 msgid "Draw Marker At This Point" -msgstr "" +msgstr "Desenhar Marcador Neste Ponto" #: ../share/extensions/draw_from_triangle.inx.h:28 msgid "Draw Circle Around This Point" -msgstr "" +msgstr "Desenhar Círculo À Volta Deste Ponto" #: ../share/extensions/draw_from_triangle.inx.h:29 #: ../share/extensions/wireframe_sphere.inx.h:6 -#, fuzzy msgid "Radius (px):" -msgstr "Raio" +msgstr "Raio (px):" #: ../share/extensions/draw_from_triangle.inx.h:30 msgid "Draw Isogonal Conjugate" -msgstr "" +msgstr "Desenhar Conjugador Isogonal" #: ../share/extensions/draw_from_triangle.inx.h:31 msgid "Draw Isotomic Conjugate" -msgstr "" +msgstr "Desenhar Conjugador Isotómico" #: ../share/extensions/draw_from_triangle.inx.h:32 -#, fuzzy msgid "Report this triangle's properties" -msgstr "Definir propriedades da guia" +msgstr "Reportar as propriedades deste triângulo" #: ../share/extensions/draw_from_triangle.inx.h:33 -#, fuzzy msgid "Trilinear Coordinates" -msgstr "Coordenadas do cursor" +msgstr "Coordenadas Trilineares" #: ../share/extensions/draw_from_triangle.inx.h:34 -#, fuzzy msgid "Triangle Function" -msgstr "Função Azul" +msgstr "Função Triangulo" #: ../share/extensions/draw_from_triangle.inx.h:36 msgid "" @@ -35464,42 +33572,70 @@ msgid "" "may cause a divide-by-zero error for certain points.\n" " " msgstr "" +"Esta extensão desenha construções à volta de um triângulo definido pelos " +"primeiros 3 nós de um caminho selecionado. Pode-se selecionar um dos objetos " +"presentes ou criar outros.\n" +" \n" +"Todas as unidades estão na unidade de píxel do Inkscape. Os ângulos estão " +"todos em radianos.\n" +"Pode-se especificar um ponto por coordenadas trilineares ou por uma função " +"de centro do triângulo.\n" +"Introduzir como funções do comprimento do lado ou ângulos.\n" +"Os elementos trilineares devem ser separados por dois pontos (':').\n" +"Os comprimentos do lado são representados como 's_a', 's_b' e 's_c'.\n" +"Os ângulos correspondentes a estes são 'a_a', 'a_b', e 'a_c'.\n" +"Também se pode usar o semi-perímetro e a área do triângulo como constantes. " +"Digitar 'area' ou 'semiperim' para estes.\n" +"\n" +"Também se pode usar qualquer função matemática do Python Padrão:\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x)\n" +"\n" +"Também estáo disponíveis as funções de trigonometria inversa:\n" +"sec(x); csc(x); cot(x)\n" +"\n" +"Pode-se especificar o raio de um círculo à volta de um ponto personalizado " +"utilizando uma fórmula, que pode conter também o comprimento dos lados, " +"ângulos, etc. Pode-se também traçar o conjugado isogonal e isotómico do " +"ponto. Ter em conta que isto pode causar um erro de divisão-por-zero para " +"certos pontos.\n" +" " #: ../share/extensions/dxf_input.inx.h:1 msgid "DXF Input" -msgstr "Entrada DXF" +msgstr "Importar DXF" #: ../share/extensions/dxf_input.inx.h:3 msgid "Method of Scaling:" -msgstr "" +msgstr "Método de Escala:" #: ../share/extensions/dxf_input.inx.h:4 -#, fuzzy msgid "Manual scale factor:" -msgstr "Cor lisa" +msgstr "Fator de escala manual:" #: ../share/extensions/dxf_input.inx.h:5 msgid "Manual x-axis origin (mm):" -msgstr "" +msgstr "Origem do eixo X manual (mm):" #: ../share/extensions/dxf_input.inx.h:6 msgid "Manual y-axis origin (mm):" -msgstr "" +msgstr "Origem do eixo Y manual (mm):" #: ../share/extensions/dxf_input.inx.h:7 msgid "Gcodetools compatible point import" -msgstr "" +msgstr "Importação de ponto compatível com Gcodetools" #: ../share/extensions/dxf_input.inx.h:8 #: ../share/extensions/render_barcode_qrcode.inx.h:16 -#, fuzzy msgid "Character encoding:" -msgstr "Alterar arredondamento" +msgstr "Codificação de caracteres:" #: ../share/extensions/dxf_input.inx.h:9 -#, fuzzy msgid "Text Font:" -msgstr "Entrada de Texto" +msgstr "Fonte do Texto:" #: ../share/extensions/dxf_input.inx.h:11 msgid "" @@ -35512,11 +33648,19 @@ msgid "" "- layers are preserved only on File->Open, not Import.\n" "- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." msgstr "" +"- AutoCAD Release 13 e mais recentes.\n" +"- para escala manual assumir que o desenho DXF está em mm.\n" +"- assumir que o desenho SVG está em píxeis, a 96 dpi.\n" +"- fator de escala e origem aplicam-se apenas a escala manual.\n" +"- 'Escala automática' irá enquadrar a largura numa página A4.\n" +"- 'Ler do ficheiro' usa a variável $MEASUREMENT.\n" +"- as camadas são preservadas apenas em Ficheiro->Abrir, não em Importar.\n" +"- suporte limitado para BLOCKS, usar em vez disso AutoCAD Explode Blocks, se " +"necessário." #: ../share/extensions/dxf_input.inx.h:19 -#, fuzzy msgid "AutoCAD DXF R13 (*.dxf)" -msgstr "AutoCAD DXF (*.dxf)" +msgstr "AutoCAD DXF R13 (*.dxf)" #: ../share/extensions/dxf_input.inx.h:20 msgid "Import AutoCAD's Document Exchange Format" @@ -35524,35 +33668,31 @@ msgstr "Importar Formato AutoCAD's Document Exchange" #: ../share/extensions/dxf_outlines.inx.h:1 msgid "Desktop Cutting Plotter" -msgstr "" +msgstr "Desktop Cutting Plotter" #: ../share/extensions/dxf_outlines.inx.h:3 msgid "use ROBO-Master type of spline output" -msgstr "" +msgstr "usar tipo de spline ROBO-Master na saída" #: ../share/extensions/dxf_outlines.inx.h:4 msgid "use LWPOLYLINE type of line output" -msgstr "" +msgstr "usar tipo de linha LWPOLYLINE na saída" #: ../share/extensions/dxf_outlines.inx.h:5 -#, fuzzy msgid "Base unit:" -msgstr "Freqüência Base" +msgstr "Unidade base:" #: ../share/extensions/dxf_outlines.inx.h:6 -#, fuzzy msgid "Character Encoding:" -msgstr "Alterar arredondamento" +msgstr "Codificação de Caracteres:" #: ../share/extensions/dxf_outlines.inx.h:7 -#, fuzzy msgid "Layer export selection:" -msgstr "Eliminar a selecção" +msgstr "Seleção da camada a exportar:" #: ../share/extensions/dxf_outlines.inx.h:8 -#, fuzzy msgid "Layer match name:" -msgstr "Nome da camada:" +msgstr "Nome que corresponde à camada:" #: ../share/extensions/dxf_outlines.inx.h:9 msgid "pt" @@ -35560,7 +33700,7 @@ msgstr "pt" #: ../share/extensions/dxf_outlines.inx.h:10 msgid "pc" -msgstr "" +msgstr "pc" #: ../share/extensions/dxf_outlines.inx.h:11 #: ../share/extensions/render_gears.inx.h:7 @@ -35597,42 +33737,39 @@ msgstr "m" #: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 #: ../share/extensions/render_gears.inx.h:8 msgid "in" -msgstr "in" +msgstr "polegadas" #: ../share/extensions/dxf_outlines.inx.h:16 msgid "ft" -msgstr "" +msgstr "pés" #: ../share/extensions/dxf_outlines.inx.h:17 -#, fuzzy msgid "Latin 1" -msgstr "Início" +msgstr "Latim 1" #: ../share/extensions/dxf_outlines.inx.h:18 msgid "CP 1250" -msgstr "" +msgstr "CP 1250" #: ../share/extensions/dxf_outlines.inx.h:19 msgid "CP 1252" -msgstr "" +msgstr "CP 1252" #: ../share/extensions/dxf_outlines.inx.h:20 msgid "UTF 8" -msgstr "" +msgstr "UTF 8" #: ../share/extensions/dxf_outlines.inx.h:21 -#, fuzzy msgid "All (default)" -msgstr "(padrão)" +msgstr "Tudo (padrão)" #: ../share/extensions/dxf_outlines.inx.h:22 -#, fuzzy msgid "Visible only" -msgstr "Cores Visíveis" +msgstr "Apenas visíveis" #: ../share/extensions/dxf_outlines.inx.h:23 msgid "By name match" -msgstr "" +msgstr "Por correspondência do nome" #: ../share/extensions/dxf_outlines.inx.h:25 msgid "" @@ -35650,196 +33787,184 @@ msgid "" "- You can choose to export all layers, only visible ones or by name match " "(case insensitive and use comma ',' as separator)" msgstr "" +"- Formato AutoCAD Release 14 DXF.\n" +"- O parâmetro de unidade base especifica em que unidade as coordenadas são " +"usadas na saída (96 px = 1 in).\n" +"- Tipos de elementos suportados\n" +" - caminhos (linhas e splines)\n" +" - retângulos\n" +" - clones (a referência cruzada ao original é perdida)\n" +"- Saída ROBO-Master spline é uma spline especializada legível apenas por " +"visualizadores ROBO-Master e AutoDesk, não pelo Inkscape.\n" +"- Saída LWPOLYLINE é uma polilinha ligada multiplicarmente, desativar para " +"usar uma versão anterior da saída LINE.\n" +"- Pode escolher exportar todas as camadas, apenas as visíveis ou por " +"correspondência de nome (não sensível a maiúsculas e minúsculas e usar a " +"vírgula ',' como separador)" #: ../share/extensions/dxf_outlines.inx.h:34 -#, fuzzy msgid "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)" -msgstr "AutoCAD DXF (*.dxf)" +msgstr "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)" #: ../share/extensions/dxf_output.inx.h:1 msgid "DXF Output" -msgstr "Saída DXF" +msgstr "Exportar em DXF" #: ../share/extensions/dxf_output.inx.h:2 msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit" -msgstr "O pstoedit deve estar instalado; veja http://www.pstoedit.net/pstoedit" +msgstr "" +"O pstoedit tem de estar instalado; ver http://www.pstoedit.net/pstoedit" #: ../share/extensions/dxf_output.inx.h:3 -#, fuzzy msgid "AutoCAD DXF R12 (*.dxf)" -msgstr "AutoCAD DXF (*.dxf)" +msgstr "AutoCAD DXF R12 (*.dxf)" #: ../share/extensions/dxf_output.inx.h:4 msgid "DXF file written by pstoedit" msgstr "Ficheiro DXF escrito pelo pstoedit" #: ../share/extensions/edge3d.inx.h:1 -#, fuzzy msgid "Edge 3D" -msgstr "Limite" +msgstr "Edge 3D" #: ../share/extensions/edge3d.inx.h:2 -#, fuzzy msgid "Illumination Angle:" -msgstr "Rotação (graus)" +msgstr "Ângulo de Iluminação:" #: ../share/extensions/edge3d.inx.h:3 -#, fuzzy msgid "Shades:" -msgstr "Sombra" +msgstr "Sombras:" #: ../share/extensions/edge3d.inx.h:4 -#, fuzzy msgid "Only black and white:" -msgstr "Inverter regiões pretas e brancas para traçados simples" +msgstr "Apenas preto e branco:" #: ../share/extensions/edge3d.inx.h:6 -#, fuzzy msgid "Blur stdDeviation:" -msgstr "Desvio Padrão" +msgstr "Defocagem do Desvio Padrão (stdDeviation):" #: ../share/extensions/edge3d.inx.h:7 -#, fuzzy msgid "Blur width:" -msgstr "Largura igual" +msgstr "Largura da desfocagem:" #: ../share/extensions/edge3d.inx.h:8 -#, fuzzy msgid "Blur height:" -msgstr "Altura da Barra:" +msgstr "Altura da desfocagem:" #: ../share/extensions/embedimage.inx.h:1 -#, fuzzy msgid "Embed Images" -msgstr "Embutir imagens" +msgstr "Embutir Imagens" #: ../share/extensions/embedimage.inx.h:2 #: ../share/extensions/embedselectedimages.inx.h:2 msgid "Embed only selected images" -msgstr "Embutir somente a imagem selecionada" +msgstr "Embutir apenas as imagens selecionadas" #: ../share/extensions/embedselectedimages.inx.h:1 -#, fuzzy msgid "Embed Selected Images" -msgstr "Embutir somente a imagem selecionada" +msgstr "Embutir Imagens Selecionadas" #: ../share/extensions/empty_business_card.inx.h:1 msgid "Business Card" -msgstr "" +msgstr "Cartão Comercial" #: ../share/extensions/empty_business_card.inx.h:2 msgid "Business card size:" -msgstr "" +msgstr "Tamanho do Cartão Comercial:" #: ../share/extensions/empty_desktop.inx.h:1 msgid "Desktop" -msgstr "" +msgstr "Secretária" #: ../share/extensions/empty_desktop.inx.h:2 -#, fuzzy msgid "Desktop size:" -msgstr "Tamanho do ponto" +msgstr "Tamanho da secretária:" #. Maximum size is '16k' #: ../share/extensions/empty_desktop.inx.h:4 #: ../share/extensions/empty_generic.inx.h:2 #: ../share/extensions/empty_video.inx.h:4 -#, fuzzy msgid "Custom Width:" -msgstr "Tamanho personalizado" +msgstr "Largura Personalizada:" #: ../share/extensions/empty_desktop.inx.h:5 #: ../share/extensions/empty_generic.inx.h:3 #: ../share/extensions/empty_video.inx.h:5 -#, fuzzy msgid "Custom Height:" -msgstr "Altura da Barra:" +msgstr "Altura Personalizada:" #: ../share/extensions/empty_dvd_cover.inx.h:1 -#, fuzzy msgid "DVD Cover" -msgstr "Capa" +msgstr "Capa de DVD" #: ../share/extensions/empty_dvd_cover.inx.h:2 -#, fuzzy msgid "DVD spine width:" -msgstr "Largura da Linha" +msgstr "Largura da lomba do DVD:" #: ../share/extensions/empty_dvd_cover.inx.h:3 msgid "DVD cover bleed (mm):" -msgstr "" +msgstr "Sangria da Capa de DVD (mm):" #: ../share/extensions/empty_generic.inx.h:1 -#, fuzzy msgid "Generic Canvas" -msgstr "Ciano" +msgstr "Ãrea de Trabalho Genérica" #: ../share/extensions/empty_generic.inx.h:4 -#, fuzzy msgid "SVG Unit:" -msgstr "Unidades:" +msgstr "Unidade SVG:" #: ../share/extensions/empty_generic.inx.h:5 -#, fuzzy msgid "Canvas background:" -msgstr "Plano de fundo:" +msgstr "Fundo da área de trabalho :" #: ../share/extensions/empty_generic.inx.h:6 #: ../share/extensions/empty_page.inx.h:5 -#, fuzzy msgid "Hide border" -msgstr "Modo Limite" +msgstr "Esconder borda" #: ../share/extensions/empty_icon.inx.h:1 msgid "Icon" -msgstr "" +msgstr "Ãcone" #: ../share/extensions/empty_icon.inx.h:2 -#, fuzzy msgid "Icon size:" -msgstr "Tamanho da Fonte" +msgstr "Tamanho do Ãcone:" #: ../share/extensions/empty_page.inx.h:2 -#, fuzzy msgid "Page size:" -msgstr "T_amanho da página:" +msgstr "Tamanho da página:" #: ../share/extensions/empty_page.inx.h:3 msgid "Page orientation:" msgstr "Orientação da página:" #: ../share/extensions/empty_page.inx.h:4 -#, fuzzy msgid "Page background:" -msgstr "Plano de fundo:" +msgstr "Fundo da página:" #: ../share/extensions/empty_video.inx.h:1 -#, fuzzy msgid "Video Screen" msgstr "Ecrã" #: ../share/extensions/empty_video.inx.h:2 -#, fuzzy msgid "Video size:" -msgstr "Tamanho do ponto" +msgstr "Tamanho do ecrâ:" #: ../share/extensions/eps_input.inx.h:1 msgid "EPS Input" -msgstr "Entrada EPS" +msgstr "Importar EPS" #: ../share/extensions/eqtexsvg.inx.h:1 -#, fuzzy msgid "LaTeX" -msgstr "Impressão LaTeX" +msgstr "LaTeX" #: ../share/extensions/eqtexsvg.inx.h:2 -#, fuzzy msgid "LaTeX input: " -msgstr "Impressão LaTeX" +msgstr "Entrada LaTeX: " #: ../share/extensions/eqtexsvg.inx.h:3 msgid "Additional packages (comma-separated): " -msgstr "" +msgstr "Pacotes adicionais (separados por vírgula): " #: ../share/extensions/export_gimp_palette.inx.h:1 msgid "Export as GIMP Palette" @@ -35854,14 +33979,12 @@ msgid "Exports the colors of this document as GIMP Palette" msgstr "Exporta as cores do desenho como Paleta do GIMP" #: ../share/extensions/extractimage.inx.h:1 -#, fuzzy msgid "Extract Image" -msgstr "Extrair Uma Imagem" +msgstr "Extrair Imagem" #: ../share/extensions/extractimage.inx.h:2 -#, fuzzy msgid "Path to save image:" -msgstr "Local onde guardar a imagem" +msgstr "Local onde guardar a imagem:" #: ../share/extensions/extractimage.inx.h:3 msgid "" @@ -35869,20 +33992,22 @@ msgid "" "* A relative path (or a filename without path) is relative to the user's " "home directory." msgstr "" +"* Não escrever a extensão do ficheiro, esta será introduzida " +"automaticamente.\n" +"* Um caminho relativo (ou nome de ficheiro sem caminho) é relativo à pasta " +"principal do utilizador." #: ../share/extensions/extrude.inx.h:3 -#, fuzzy msgid "Lines" -msgstr "Linha" +msgstr "Linhas" #: ../share/extensions/extrude.inx.h:4 -#, fuzzy msgid "Polygons" -msgstr "Polígono" +msgstr "Polígonos" #: ../share/extensions/fig_input.inx.h:1 msgid "XFIG Input" -msgstr "Entrada XFIG" +msgstr "Importar XFIG" #: ../share/extensions/fig_input.inx.h:2 msgid "XFIG Graphics File (*.fig)" @@ -35890,110 +34015,97 @@ msgstr "Ficheiro XFIG Graphics (*.fig)" #: ../share/extensions/fig_input.inx.h:3 msgid "Open files saved with XFIG" -msgstr "Abrir ficheiros salvos com XFIG" +msgstr "Abrir ficheiros gravados com o XFIG" #: ../share/extensions/flatten.inx.h:1 msgid "Flatten Beziers" -msgstr "Nivelar Curvas" +msgstr "Nivelar Béziers" #: ../share/extensions/flatten.inx.h:2 -#, fuzzy msgid "Flatness:" -msgstr "Nivelar" +msgstr "Grau da Nivelação:" #: ../share/extensions/foldablebox.inx.h:1 msgid "Foldable Box" -msgstr "" +msgstr "Caixa Dobrável" #: ../share/extensions/foldablebox.inx.h:4 -#, fuzzy msgid "Depth:" -msgstr "Dentes" +msgstr "Profundidade:" #: ../share/extensions/foldablebox.inx.h:5 -#, fuzzy msgid "Paper Thickness:" -msgstr "Medida da Grossura do Papel" +msgstr "Grossura do Papel:" #: ../share/extensions/foldablebox.inx.h:6 -#, fuzzy msgid "Tab Proportion:" -msgstr "Escala proporcional" +msgstr "Proporção da Tabulação:" #: ../share/extensions/foldablebox.inx.h:8 -#, fuzzy msgid "Add Guide Lines" -msgstr "Linha guia" +msgstr "Adicionar Linhas Guia" #: ../share/extensions/fractalize.inx.h:1 msgid "Fractalize" msgstr "Fractalizar" #: ../share/extensions/fractalize.inx.h:2 -#, fuzzy msgid "Subdivisions:" -msgstr "Subdivisões" +msgstr "Subdivisões:" #: ../share/extensions/funcplot.inx.h:1 msgid "Function Plotter" msgstr "Desenhar Função" #: ../share/extensions/funcplot.inx.h:2 -#, fuzzy msgid "Range and sampling" -msgstr "Escala e Amostragem" +msgstr "Alcance e amostra" #: ../share/extensions/funcplot.inx.h:3 -#, fuzzy msgid "Start X value:" -msgstr "Valor de x inicial" +msgstr "Valor de X inicial:" #: ../share/extensions/funcplot.inx.h:4 -#, fuzzy msgid "End X value:" -msgstr "Valor de x final" +msgstr "Valor de X final:" #: ../share/extensions/funcplot.inx.h:5 -#, fuzzy msgid "Multiply X range by 2*pi" -msgstr "Multiplicar a escala x por 2*pi" +msgstr "Multiplicar alcance X por 2*pi" #: ../share/extensions/funcplot.inx.h:6 -#, fuzzy msgid "Y value of rectangle's bottom:" -msgstr "Valor de y da base do retângulo" +msgstr "Valor de Y da base do retângulo:" #: ../share/extensions/funcplot.inx.h:7 -#, fuzzy msgid "Y value of rectangle's top:" -msgstr "Valor de y do topo do retângulo" +msgstr "Valor de Y do topo do retângulo:" #: ../share/extensions/funcplot.inx.h:8 -#, fuzzy msgid "Number of samples:" -msgstr "Número de passos" +msgstr "Número de amostras:" #: ../share/extensions/funcplot.inx.h:9 #: ../share/extensions/param_curves.inx.h:11 msgid "Isotropic scaling" -msgstr "" +msgstr "Escala isotrópica" #: ../share/extensions/funcplot.inx.h:10 msgid "Use polar coordinates" -msgstr "Use coordenadas polar" +msgstr "Usar coordenadas polares" #: ../share/extensions/funcplot.inx.h:11 #: ../share/extensions/param_curves.inx.h:12 -#, fuzzy msgid "" "When set, Isotropic scaling uses smallest of width/xrange or height/yrange" msgstr "" -"Escala isotrópica (usa o menor entre largura/escala x ou altura/escala y)" +"Quando definido, a escala isotrópica usa o menor de largura/alcance X ou " +"altura/alcance Y" #: ../share/extensions/funcplot.inx.h:12 #: ../share/extensions/param_curves.inx.h:13 msgid "Use" -msgstr "Uso" +msgstr "Usar" #: ../share/extensions/funcplot.inx.h:13 msgid "" @@ -36007,6 +34119,16 @@ msgid "" " Isotropic scaling is disabled.\n" " First derivative is always determined numerically." msgstr "" +"Selecionar um retângulo antes de usar a extensão,\n" +"irá determinar as escalas X e Y. Se desejar preencher a área, então adicione " +"pontos terminais no eixo do X.\n" +"\n" +"Com coordenadas polares:\n" +" Os valores de início e fim de X definem o alcance do ângulo em radianos.\n" +" A escala X é definida para que as bordas esquerda e direita do retângulo " +"estão a +/-1.\n" +" A escala isotrópica é desativada.\n" +" A primeira derivada é determinada sempre numericamente." #: ../share/extensions/funcplot.inx.h:21 #: ../share/extensions/param_curves.inx.h:16 @@ -36015,7 +34137,6 @@ msgstr "Funções" #: ../share/extensions/funcplot.inx.h:22 #: ../share/extensions/param_curves.inx.h:17 -#, fuzzy msgid "" "Standard Python math functions are available:\n" "\n" @@ -36027,31 +34148,31 @@ msgid "" "\n" "The constants pi and e are also available." msgstr "" -"As seguintes funções estão disponíveis: (funções matemáticas padrão da " -"linguagem python) ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x," -"i); modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); " -"asin(x); atan(x); atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); " -"degrees(x); radians(x); cosh(x); sinh(x); tanh(x). As constantes pi e e " -"também estão disponíveis." +"Funções matemáticas do Python Padrão disponíveis:\n" +"\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x).\n" +"\n" +"As constantes \"pi\" e \"e\" também estão disponíveis." #: ../share/extensions/funcplot.inx.h:31 -#, fuzzy msgid "Function:" -msgstr "Função" +msgstr "Função:" #: ../share/extensions/funcplot.inx.h:32 msgid "Calculate first derivative numerically" -msgstr "Calcular primeira derivada numericamente" +msgstr "Calcular a primeira derivada numericamente" #: ../share/extensions/funcplot.inx.h:33 -#, fuzzy msgid "First derivative:" -msgstr "Primeira derivada" +msgstr "Primeira derivada:" #: ../share/extensions/funcplot.inx.h:34 -#, fuzzy msgid "Clip with rectangle" -msgstr "Largura do retângulo" +msgstr "Recorte com retângulo" #: ../share/extensions/funcplot.inx.h:35 #: ../share/extensions/param_curves.inx.h:28 @@ -36065,11 +34186,11 @@ msgstr "Desenhar Eixos" #: ../share/extensions/funcplot.inx.h:37 msgid "Add x-axis endpoints" -msgstr "" +msgstr "Adicionar pontos terminais no eixo X" #: ../share/extensions/gcodetools_about.inx.h:1 msgid "About" -msgstr "" +msgstr "Sobre" #: ../share/extensions/gcodetools_about.inx.h:2 msgid "" @@ -36080,6 +34201,12 @@ msgid "" "engravers Plotters etc. To get more info visit developers page at http://www." "cnc-club.ru/gcodetools" msgstr "" +"Ferramentas-Gcode foi desenvolvido para fazer Gcode simples a partir de " +"caminhos do Inkscape. O Gcode é um formato especial que é usado na maioria " +"das máquinas CNC. Por isso o Ferramentas-Gcode permite usar o Inkscape como " +"um programa CAD. Pode ser usado com muitos tipos de máquinas: fresadoras, " +"tornos, cortadores laser e plasma, gravadores, plotters, etc. para mais " +"informações ver a página http://www.cnc-club.ru/gcodetools" #: ../share/extensions/gcodetools_about.inx.h:4 #: ../share/extensions/gcodetools_area.inx.h:54 @@ -36101,6 +34228,13 @@ msgid "" "www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " "John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" msgstr "" +"Módulo Ferramentas-Gcode: converte caminhos para Gcode (utilizando " +"interpolação circular), faz caminhos deslocados e gravuras de cantos " +"pontiagudos utilizando cortadores em cone. Este módulo calcula o Gcode para " +"caminhos utilizando interpolação circular ou movimento linear quando " +"necessário. Podem ser encontrados tutotiais, manuais e apoio em http://www." +"cnc-club.ru/gcodetools Créditos: Nick Drobchenko, Vladimir Kalyaev, John " +"Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools versão 1.7" #: ../share/extensions/gcodetools_about.inx.h:5 #: ../share/extensions/gcodetools_area.inx.h:55 @@ -36114,25 +34248,23 @@ msgstr "" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:19 #: ../share/extensions/gcodetools_tools_library.inx.h:14 msgid "Gcodetools" -msgstr "" +msgstr "Ferramentas-Gcode" #: ../share/extensions/gcodetools_area.inx.h:1 -#, fuzzy msgid "Area" -msgstr "São desligados" +msgstr "Ãrea" #: ../share/extensions/gcodetools_area.inx.h:2 msgid "Maximum area cutting curves:" -msgstr "" +msgstr "Ãrea máxima das curvas de corte:" #: ../share/extensions/gcodetools_area.inx.h:3 -#, fuzzy msgid "Area width:" -msgstr "Escala de largura" +msgstr "Largura da área:" #: ../share/extensions/gcodetools_area.inx.h:4 msgid "Area tool overlap (0..0.9):" -msgstr "" +msgstr "Sobreposição da ferramenta de área (0..0.9):" #: ../share/extensions/gcodetools_area.inx.h:5 msgid "" @@ -36142,56 +34274,56 @@ msgid "" "the nearest tool definition (\"Tool diameter\" value). Only one offset will " "be created if the \"Area width\" is equal to \"1/2 D\"." msgstr "" +"\"Criar deslocamento de área\": cria vários deslocamentos de caminhos para " +"preencher a área original até ao valor \"Raio da área\". Os contornos " +"começam de \"1/2 D\" até largura total de \"Largura da área\" com \"D\" " +"intervalos onde D é obtido da definição mais próxima da ferramenta (valor de " +"\"Diâmetro da ferramenta\"). Apenas será criado um deslocamento se a " +"\"Largura da área\" for igual a \"1/2 D\"." #: ../share/extensions/gcodetools_area.inx.h:6 -#, fuzzy msgid "Fill area" -msgstr "Preencher área fechada" +msgstr "Ãrea de preenchimento" #: ../share/extensions/gcodetools_area.inx.h:7 -#, fuzzy msgid "Area fill angle" -msgstr "Ângulo esquerdo" +msgstr "Ângulo da área de preenchimento" #: ../share/extensions/gcodetools_area.inx.h:8 msgid "Area fill shift" -msgstr "" +msgstr "Deslocamento da área de preenchimento" #: ../share/extensions/gcodetools_area.inx.h:9 -#, fuzzy msgid "Filling method" -msgstr "Divisão" +msgstr "Método de preenchimento" #: ../share/extensions/gcodetools_area.inx.h:10 msgid "Zig zag" -msgstr "" +msgstr "Ziguezague" #: ../share/extensions/gcodetools_area.inx.h:12 msgid "Area artifacts" -msgstr "" +msgstr "Artefactos da área" #: ../share/extensions/gcodetools_area.inx.h:13 msgid "Artifact diameter:" -msgstr "" +msgstr "Diâmetro dos artefactos:" #: ../share/extensions/gcodetools_area.inx.h:14 -#, fuzzy msgid "Action:" -msgstr "Aceleração:" +msgstr "Ação:" #: ../share/extensions/gcodetools_area.inx.h:15 msgid "mark with an arrow" -msgstr "" +msgstr "marcar com seta" #: ../share/extensions/gcodetools_area.inx.h:16 -#, fuzzy msgid "mark with style" -msgstr "Curativo Ladrilhado" +msgstr "marcar com o estilo" #: ../share/extensions/gcodetools_area.inx.h:17 -#, fuzzy msgid "delete" -msgstr "Eliminar" +msgstr "eliminar" #: ../share/extensions/gcodetools_area.inx.h:18 msgid "" @@ -36199,65 +34331,63 @@ msgid "" "+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " "colored arrows." msgstr "" +"Utilização: 1. Selecionar todos os Deslocamentos de Ãrea (contornos " +"cinzentos) 2. Objeto/Desagrupar (Shift+Ctrl+G) 3. Clicar em Aplicar. Os " +"objetos pequenos suspeitos serão marcados com setas coloridas." #: ../share/extensions/gcodetools_area.inx.h:19 #: ../share/extensions/gcodetools_lathe.inx.h:12 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 -#, fuzzy msgid "Path to Gcode" -msgstr "O caminho está fechado." +msgstr "Caminho para o Gcode" #: ../share/extensions/gcodetools_area.inx.h:20 #: ../share/extensions/gcodetools_lathe.inx.h:13 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 -#, fuzzy msgid "Biarc interpolation tolerance:" -msgstr "Passos da interpolação" +msgstr "Tolerância de interpolação Biarco:" #: ../share/extensions/gcodetools_area.inx.h:21 #: ../share/extensions/gcodetools_lathe.inx.h:14 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 -#, fuzzy msgid "Maximum splitting depth:" -msgstr "Simplificando caminhos:" +msgstr "Máxima profundidade de separação:" #: ../share/extensions/gcodetools_area.inx.h:22 #: ../share/extensions/gcodetools_lathe.inx.h:15 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 msgid "Cutting order:" -msgstr "" +msgstr "Ordem de corte:" #: ../share/extensions/gcodetools_area.inx.h:23 #: ../share/extensions/gcodetools_lathe.inx.h:16 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 -#, fuzzy msgid "Depth function:" -msgstr "Função Vermelho" +msgstr "Função de profundidade:" #: ../share/extensions/gcodetools_area.inx.h:24 #: ../share/extensions/gcodetools_lathe.inx.h:17 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 msgid "Sort paths to reduse rapid distance" -msgstr "" +msgstr "Ordenar caminhos para reduzir distância rápida" #: ../share/extensions/gcodetools_area.inx.h:25 #: ../share/extensions/gcodetools_lathe.inx.h:18 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 msgid "Subpath by subpath" -msgstr "" +msgstr "Subcaminho por subcaminho" #: ../share/extensions/gcodetools_area.inx.h:26 #: ../share/extensions/gcodetools_lathe.inx.h:19 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 -#, fuzzy msgid "Path by path" -msgstr "Colar caminho" +msgstr "Caminho por caminho" #: ../share/extensions/gcodetools_area.inx.h:27 #: ../share/extensions/gcodetools_lathe.inx.h:20 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 msgid "Pass by Pass" -msgstr "" +msgstr "Passagem por Passagem" #: ../share/extensions/gcodetools_area.inx.h:28 #: ../share/extensions/gcodetools_lathe.inx.h:21 @@ -36270,6 +34400,12 @@ msgid "" "(black), d is the depth defined by orientation points, s - surface defined " "by orientation points." msgstr "" +"A tolerância de interpolação biarco é a distância máxima entre o caminho e a " +"sua aproximação. O segmento será separado em 2 segmentos se a distância " +"entre o segmento do caminho e a sua aproximação exceder a tolerância da " +"interpolação biarco. Para a função profundidade c=intensidade da cor de 0.0 " +"(branco) até 1.0 (preto),d - é a profundidade definida pelos pontos de " +"orientação, s - é superfície definida pelos pontos de orientação." #: ../share/extensions/gcodetools_area.inx.h:30 #: ../share/extensions/gcodetools_engraving.inx.h:8 @@ -36277,7 +34413,7 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:23 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 msgid "Scale along Z axis:" -msgstr "" +msgstr "Escala ao longo do eixo Z:" #: ../share/extensions/gcodetools_area.inx.h:31 #: ../share/extensions/gcodetools_engraving.inx.h:9 @@ -36285,7 +34421,7 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:24 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 msgid "Offset along Z axis:" -msgstr "" +msgstr "Deslocamento ao longo do eixo Z:" #: ../share/extensions/gcodetools_area.inx.h:32 #: ../share/extensions/gcodetools_engraving.inx.h:10 @@ -36293,16 +34429,15 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:25 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 msgid "Select all paths if nothing is selected" -msgstr "" +msgstr "Selecionar todos os caminhos se não estiver nada selecionado" #: ../share/extensions/gcodetools_area.inx.h:33 #: ../share/extensions/gcodetools_engraving.inx.h:11 #: ../share/extensions/gcodetools_graffiti.inx.h:25 #: ../share/extensions/gcodetools_lathe.inx.h:26 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 -#, fuzzy msgid "Minimum arc radius:" -msgstr "Raio interno:" +msgstr "Raio mínimo do arco:" #: ../share/extensions/gcodetools_area.inx.h:34 #: ../share/extensions/gcodetools_engraving.inx.h:12 @@ -36310,7 +34445,7 @@ msgstr "Raio interno:" #: ../share/extensions/gcodetools_lathe.inx.h:27 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 msgid "Comment Gcode:" -msgstr "" +msgstr "Comentário Gcode:" #: ../share/extensions/gcodetools_area.inx.h:35 #: ../share/extensions/gcodetools_engraving.inx.h:13 @@ -36318,7 +34453,7 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:28 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 msgid "Get additional comments from object's properties" -msgstr "" +msgstr "Obter comentários adicionais das propriedades do objeto" #: ../share/extensions/gcodetools_area.inx.h:36 #: ../share/extensions/gcodetools_dxf_points.inx.h:8 @@ -36326,9 +34461,8 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:28 #: ../share/extensions/gcodetools_lathe.inx.h:29 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 -#, fuzzy msgid "Preferences" -msgstr "Propriedades da Caneta" +msgstr "Preferências" #: ../share/extensions/gcodetools_area.inx.h:37 #: ../share/extensions/gcodetools_dxf_points.inx.h:9 @@ -36337,9 +34471,8 @@ msgstr "Propriedades da Caneta" #: ../share/extensions/gcodetools_lathe.inx.h:30 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 #: ../share/extensions/nicechart.inx.h:4 -#, fuzzy msgid "File:" -msgstr "Ficheiro" +msgstr "Ficheiro:" #: ../share/extensions/gcodetools_area.inx.h:38 #: ../share/extensions/gcodetools_dxf_points.inx.h:10 @@ -36348,7 +34481,7 @@ msgstr "Ficheiro" #: ../share/extensions/gcodetools_lathe.inx.h:31 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 msgid "Add numeric suffix to filename" -msgstr "" +msgstr "Adicionar sufixo numérico ao nome do ficheiro" #: ../share/extensions/gcodetools_area.inx.h:39 #: ../share/extensions/gcodetools_dxf_points.inx.h:11 @@ -36356,9 +34489,8 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:31 #: ../share/extensions/gcodetools_lathe.inx.h:32 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 -#, fuzzy msgid "Directory:" -msgstr "Descrição" +msgstr "Pasta:" #: ../share/extensions/gcodetools_area.inx.h:40 #: ../share/extensions/gcodetools_dxf_points.inx.h:12 @@ -36367,7 +34499,7 @@ msgstr "Descrição" #: ../share/extensions/gcodetools_lathe.inx.h:33 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 msgid "Z safe height for G00 move over blank:" -msgstr "" +msgstr "Altura segura Z para o movimento G00 sobre o vazio:" #: ../share/extensions/gcodetools_area.inx.h:41 #: ../share/extensions/gcodetools_dxf_points.inx.h:13 @@ -36377,7 +34509,7 @@ msgstr "" #: ../share/extensions/gcodetools_orientation_points.inx.h:6 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 msgid "Units (mm or in):" -msgstr "" +msgstr "Unidades (mm ou polegadas):" #: ../share/extensions/gcodetools_area.inx.h:42 #: ../share/extensions/gcodetools_dxf_points.inx.h:14 @@ -36386,7 +34518,7 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:35 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 msgid "Post-processor:" -msgstr "" +msgstr "Pós-processador:" #: ../share/extensions/gcodetools_area.inx.h:43 #: ../share/extensions/gcodetools_dxf_points.inx.h:15 @@ -36395,7 +34527,7 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:36 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 msgid "Additional post-processor:" -msgstr "" +msgstr "Pós-processador adicional:" #: ../share/extensions/gcodetools_area.inx.h:44 #: ../share/extensions/gcodetools_dxf_points.inx.h:16 @@ -36403,9 +34535,8 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:35 #: ../share/extensions/gcodetools_lathe.inx.h:37 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 -#, fuzzy msgid "Generate log file" -msgstr "Gerar Modelo" +msgstr "Gerar ficheiro de registos" #: ../share/extensions/gcodetools_area.inx.h:45 #: ../share/extensions/gcodetools_dxf_points.inx.h:17 @@ -36413,9 +34544,8 @@ msgstr "Gerar Modelo" #: ../share/extensions/gcodetools_graffiti.inx.h:36 #: ../share/extensions/gcodetools_lathe.inx.h:38 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 -#, fuzzy msgid "Full path to log file:" -msgstr "Preenchimento em cor lisa" +msgstr "Caminho completo do ficheiro de registos:" #: ../share/extensions/gcodetools_area.inx.h:48 #: ../share/extensions/gcodetools_dxf_points.inx.h:20 @@ -36423,7 +34553,6 @@ msgstr "Preenchimento em cor lisa" #: ../share/extensions/gcodetools_graffiti.inx.h:37 #: ../share/extensions/gcodetools_lathe.inx.h:41 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 -#, fuzzy msgctxt "GCode postprocessor" msgid "None" msgstr "Nenhum" @@ -36434,9 +34563,8 @@ msgstr "Nenhum" #: ../share/extensions/gcodetools_graffiti.inx.h:38 #: ../share/extensions/gcodetools_lathe.inx.h:42 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 -#, fuzzy msgid "Parameterize Gcode" -msgstr "Parâmetros" +msgstr "Parameterizar Gcode" #: ../share/extensions/gcodetools_area.inx.h:50 #: ../share/extensions/gcodetools_dxf_points.inx.h:22 @@ -36445,7 +34573,7 @@ msgstr "Parâmetros" #: ../share/extensions/gcodetools_lathe.inx.h:43 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 msgid "Flip y axis and parameterize Gcode" -msgstr "" +msgstr "Espelhar eixo Y e parameterizar o Gcode" #: ../share/extensions/gcodetools_area.inx.h:51 #: ../share/extensions/gcodetools_dxf_points.inx.h:23 @@ -36454,7 +34582,7 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:44 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 msgid "Round all values to 4 digits" -msgstr "" +msgstr "Arredondar todos os valores para 4 dígitos" #: ../share/extensions/gcodetools_area.inx.h:52 #: ../share/extensions/gcodetools_dxf_points.inx.h:24 @@ -36463,30 +34591,29 @@ msgstr "" #: ../share/extensions/gcodetools_lathe.inx.h:45 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 msgid "Fast pre-penetrate" -msgstr "" +msgstr "Pré-penetração rápida" #: ../share/extensions/gcodetools_check_for_updates.inx.h:1 msgid "Check for updates" -msgstr "" +msgstr "Verificar atualizações" #: ../share/extensions/gcodetools_check_for_updates.inx.h:2 msgid "Check for Gcodetools latest stable version and try to get the updates." msgstr "" +"Verificar pela última versão estável de Gcodetools e tentar obter as " +"atualizações." #: ../share/extensions/gcodetools_dxf_points.inx.h:1 -#, fuzzy msgid "DXF Points" -msgstr "Pontos" +msgstr "Pontos DXF" #: ../share/extensions/gcodetools_dxf_points.inx.h:2 -#, fuzzy msgid "DXF points" -msgstr "Entrada DXF" +msgstr "Pontos DXF" #: ../share/extensions/gcodetools_dxf_points.inx.h:3 -#, fuzzy msgid "Convert selection:" -msgstr "In_verter Seleção" +msgstr "Converter seleção:" #: ../share/extensions/gcodetools_dxf_points.inx.h:4 msgid "" @@ -36495,40 +34622,43 @@ msgid "" "used. Also you can manually select object, open XML editor (Shift+Ctrl+X) " "and add or remove XML tag 'dxfpoint' with any value." msgstr "" +"Converter os objetos selecionados para perfurar pontos (tal como o módulo " +"dxf_import faz). Também pode gravar a forma original. Apenas será utilizado " +"o ponto inicial de cada curva. Também pode selecionar o objeto manualmente, " +"abrir o editor XML (Shift+Ctrl+X) e adicionar ou remover a etiqueta XML " +"'dxfpoint' com qualquer valor." #: ../share/extensions/gcodetools_dxf_points.inx.h:5 msgid "set as dxfpoint and save shape" -msgstr "" +msgstr "definir como ponto dxf (dxfpoint) e gravar forma" #: ../share/extensions/gcodetools_dxf_points.inx.h:6 msgid "set as dxfpoint and draw arrow" -msgstr "" +msgstr "definir como ponto dxf (dxfpoint) e desenhar seta" #: ../share/extensions/gcodetools_dxf_points.inx.h:7 msgid "clear dxfpoint sign" -msgstr "" +msgstr "limpar sinal de ponto dxf (dxfpoint)" #: ../share/extensions/gcodetools_engraving.inx.h:1 -#, fuzzy msgid "Engraving" -msgstr "Desenho" +msgstr "Gravura" #: ../share/extensions/gcodetools_engraving.inx.h:2 msgid "Smooth convex corners between this value and 180 degrees:" -msgstr "" +msgstr "Suavizar cantos convexos entre este valor e 180 graus:" #: ../share/extensions/gcodetools_engraving.inx.h:3 -#, fuzzy msgid "Maximum distance for engraving (mm/inch):" -msgstr "Deslocamento máximo, px" +msgstr "Distância máxima para gravura (mm/polegadas):" #: ../share/extensions/gcodetools_engraving.inx.h:4 msgid "Accuracy factor (2 low to 10 high):" -msgstr "" +msgstr "Fator de precisão (de 2 baixo até 10 alto):" #: ../share/extensions/gcodetools_engraving.inx.h:5 msgid "Draw additional graphics to see engraving path" -msgstr "" +msgstr "Desenhar gráficos adicionais para ver o caminho de gravura" #: ../share/extensions/gcodetools_engraving.inx.h:6 msgid "" @@ -36539,83 +34669,81 @@ msgid "" "sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) " "ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" msgstr "" +"Esta função cria um caminho para letras de gravura ou qualquer forma com " +"ângulos agudos. A profundidade de corte como função do raio é definida pela " +"ferramenta. A profundidade pode ser qualquer expressão Python. Por exemplo: " +"cone....(45 degrees)......................: w cone....(height/" +"diameter=10/3)..: 10*w/3 sphere..(radius r)...........................: math." +"sqrt(max(0,r**2-w**2)) ellipse.(minor axis r, major 4r).....: math." +"sqrt(max(0,r**2-w**2))*4" #: ../share/extensions/gcodetools_graffiti.inx.h:1 msgid "Graffiti" -msgstr "" +msgstr "Grafiti" #: ../share/extensions/gcodetools_graffiti.inx.h:2 -#, fuzzy msgid "Maximum segment length:" -msgstr "Comprimento máximo dos segmentos" +msgstr "Comprimento máximo do segmento:" #: ../share/extensions/gcodetools_graffiti.inx.h:3 -#, fuzzy msgid "Minimal connector radius:" -msgstr "Raio interno:" +msgstr "Raio mínimo do conetor:" #: ../share/extensions/gcodetools_graffiti.inx.h:4 -#, fuzzy msgid "Start position (x;y):" -msgstr "Posição Aleatória" +msgstr "Posição inicial (x;y):" #: ../share/extensions/gcodetools_graffiti.inx.h:5 -#, fuzzy msgid "Create preview" -msgstr "Pré-Visualizar Ao Vivo" +msgstr "Criar pré-visuzalização" #: ../share/extensions/gcodetools_graffiti.inx.h:6 -#, fuzzy msgid "Create linearization preview" -msgstr "Criar degradê linear" +msgstr "Criar pré-visuzalização linear" #: ../share/extensions/gcodetools_graffiti.inx.h:7 -#, fuzzy msgid "Preview's size (px):" -msgstr "Ponta quadrada" +msgstr "Tamanho da pré-visualização (px):" #: ../share/extensions/gcodetools_graffiti.inx.h:8 msgid "Preview's paint emmit (pts/s):" -msgstr "" +msgstr "Prever a emissão de pintura (pontos/segundo):" #: ../share/extensions/gcodetools_graffiti.inx.h:10 #: ../share/extensions/gcodetools_orientation_points.inx.h:3 -#, fuzzy msgid "Orientation type:" -msgstr "Orientação da página:" +msgstr "Tipo de orientação:" #: ../share/extensions/gcodetools_graffiti.inx.h:11 #: ../share/extensions/gcodetools_orientation_points.inx.h:4 msgid "Z surface:" -msgstr "" +msgstr "Superfície Z:" #: ../share/extensions/gcodetools_graffiti.inx.h:12 #: ../share/extensions/gcodetools_orientation_points.inx.h:5 -#, fuzzy msgid "Z depth:" -msgstr "Dentes" +msgstr "Profundidade Z:" #: ../share/extensions/gcodetools_graffiti.inx.h:14 #: ../share/extensions/gcodetools_orientation_points.inx.h:7 msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" -msgstr "" +msgstr "Modo 2-pontos (mover e rodar, rácio altura/largura X/Y inalterado)" #: ../share/extensions/gcodetools_graffiti.inx.h:15 #: ../share/extensions/gcodetools_orientation_points.inx.h:8 msgid "3-points mode (move, rotate and mirror, different X/Y scale)" msgstr "" +"Modo 3 pontos (mover, rodar e espelhar, escala altura/largura X/Y diferente)" #: ../share/extensions/gcodetools_graffiti.inx.h:16 #: ../share/extensions/gcodetools_orientation_points.inx.h:9 -#, fuzzy msgid "graffiti points" -msgstr "Orientação da página:" +msgstr "pontos grafiti" #: ../share/extensions/gcodetools_graffiti.inx.h:17 #: ../share/extensions/gcodetools_orientation_points.inx.h:10 -#, fuzzy msgid "in-out reference point" -msgstr "Preferências do degradê" +msgstr "ponto de referência dentro-fora" #: ../share/extensions/gcodetools_graffiti.inx.h:20 #: ../share/extensions/gcodetools_orientation_points.inx.h:13 @@ -36629,177 +34757,168 @@ msgid "" "the group or by Ctrl+Click. Now press apply to create control points " "(independent set for each layer)." msgstr "" +"Os pontos de orientação são usados para calcular a transformação " +"(deslocamento, escala, espelho, rotação no plano XY) do caminho. Modo 3 " +"pontos apenas: não puxar todos os 3 para 1 linha (usar antes modo de 2 " +"pontos). Pode alterar a superfície Z e os valores de profundidade Z mais " +"tarde utilizando a ferramenta de texto (terceiras coordenadas). Se não " +"houverem pontos de orientação dentro da camada atual, estes são retirados da " +"camada acima. Não desagrupar pontos de orientação! Pode-se selecioná-los com " +"clique duplo neles para entrar no grupo ou com Ctrl+clicar. Agora clicar em " +"Aplicar para criar os pontos de controlo (definição independente para cada " +"camada)." #: ../share/extensions/gcodetools_lathe.inx.h:1 -#, fuzzy msgid "Lathe" -msgstr "Metro" +msgstr "Torneado" #: ../share/extensions/gcodetools_lathe.inx.h:2 -#, fuzzy msgid "Lathe width:" -msgstr "Escala de largura" +msgstr "Largura do torneado:" #: ../share/extensions/gcodetools_lathe.inx.h:3 -#, fuzzy msgid "Fine cut width:" -msgstr "Escala de largura" +msgstr "Largura do corte perfeito:" #: ../share/extensions/gcodetools_lathe.inx.h:4 -#, fuzzy msgid "Fine cut count:" -msgstr "Fundo" +msgstr "Contagem do corte perfeito:" #: ../share/extensions/gcodetools_lathe.inx.h:5 -#, fuzzy msgid "Create fine cut using:" -msgstr "Criar novos objectos com:" +msgstr "Criar corte perfeito com:" #: ../share/extensions/gcodetools_lathe.inx.h:6 msgid "Lathe X axis remap:" -msgstr "" +msgstr "Remapear o tornear do eixo X:" #: ../share/extensions/gcodetools_lathe.inx.h:7 msgid "Lathe Z axis remap:" -msgstr "" +msgstr "Remapear o tornear do eixo Z:" #: ../share/extensions/gcodetools_lathe.inx.h:8 -#, fuzzy msgid "Move path" -msgstr "Padrões" +msgstr "Caminho de mover" #: ../share/extensions/gcodetools_lathe.inx.h:9 msgid "Offset path" -msgstr "Tipografia" +msgstr "Caminho de deslocamento" #: ../share/extensions/gcodetools_lathe.inx.h:10 -#, fuzzy msgid "Lathe modify path" -msgstr "Modificar Caminho" +msgstr "Caminho para alterar o torneado" #: ../share/extensions/gcodetools_lathe.inx.h:11 msgid "" "This function modifies path so it will be able to be cut with the " "rectangular cutter." msgstr "" +"Esta função altera o caminho para que este possa ser cortado com o cortante " +"retangular." #: ../share/extensions/gcodetools_orientation_points.inx.h:1 -#, fuzzy msgid "Orientation points" -msgstr "Orientação da página:" +msgstr "Pontos de orientação" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 msgid "Prepare path for plasma" -msgstr "" +msgstr "Preparar caminho para plasma" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 msgid "Prepare path for plasma or laser cuters" -msgstr "" +msgstr "Preparar o caminho para corte a plasma ou a laser" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 -#, fuzzy msgid "Create in-out paths" -msgstr "Criar espirais" +msgstr "Criar caminhos dentro-fora" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 -#, fuzzy msgid "In-out path length:" -msgstr "Caminho ao longo do caminho" +msgstr "Comprimento do caminho dentro-fora:" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 msgid "In-out path max distance to reference point:" -msgstr "" +msgstr "Distância máxima do caminho dentro-fora ao ponto de referência:" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 msgid "In-out path type:" -msgstr "" +msgstr "Tipo do caminho dentro-fora:" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 msgid "In-out path radius for round path:" -msgstr "" +msgstr "Raio do caminho dentro-fora para o caminho redondo:" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 -#, fuzzy msgid "Replace original path" -msgstr "Substituir texto..." +msgstr "Substituir caminho original" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 msgid "Do not add in-out reference points" -msgstr "" +msgstr "Náo adicionar pontos de referência dentro-fora" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 -#, fuzzy msgid "Prepare corners" -msgstr "Cor da borda da página" +msgstr "Preparar cantos" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 -#, fuzzy msgid "Stepout distance for corners:" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "A distância de saída para os cantos:" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 msgid "Maximum angle for corner (0-180 deg):" -msgstr "" +msgstr "Ângulo máximo para o canto (0-180 graus):" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 -#, fuzzy msgid "Perpendicular" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "Perpendicular" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 -#, fuzzy msgid "Tangent" -msgstr "Magenta" +msgstr "Tangente" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 msgid "-------------------------------------------------" -msgstr "" +msgstr "-------------------------------------------------" #: ../share/extensions/gcodetools_tools_library.inx.h:1 msgid "Tools library" -msgstr "" +msgstr "Biblioteca de ferramentas" #: ../share/extensions/gcodetools_tools_library.inx.h:2 -#, fuzzy msgid "Tools type:" -msgstr "Todos os tipos" +msgstr "Tipo de ferramentas:" #: ../share/extensions/gcodetools_tools_library.inx.h:3 -#, fuzzy msgid "default" -msgstr "(padrão)" +msgstr "padrão" #: ../share/extensions/gcodetools_tools_library.inx.h:4 -#, fuzzy msgid "cylinder" -msgstr "Multilinha" +msgstr "cilindro" #: ../share/extensions/gcodetools_tools_library.inx.h:5 -#, fuzzy msgid "cone" -msgstr "Esquinas" +msgstr "cone" #: ../share/extensions/gcodetools_tools_library.inx.h:6 -#, fuzzy msgid "plasma" -msgstr "_Splash" +msgstr "plasma" #: ../share/extensions/gcodetools_tools_library.inx.h:7 -#, fuzzy msgid "tangent knife" -msgstr "Tipografia tangencial" +msgstr "faca tangente" #: ../share/extensions/gcodetools_tools_library.inx.h:8 msgid "lathe cutter" -msgstr "" +msgstr "cortante de torno" #: ../share/extensions/gcodetools_tools_library.inx.h:9 msgid "graffiti" -msgstr "" +msgstr "grafiti" #: ../share/extensions/gcodetools_tools_library.inx.h:10 msgid "Just check tools" -msgstr "" +msgstr "Apenas verificar ferramentas" #: ../share/extensions/gcodetools_tools_library.inx.h:11 msgid "" @@ -36808,19 +34927,23 @@ msgid "" "active layer is used. If there is no tool inside the current layer it is " "taken from the upper layer. Press Apply to create new tool." msgstr "" +"O tipo de ferramenta selecionada preenche os valores padrão apropriados. " +"Pode-se alterar estes valores utilizando a ferramenta Texto posteriormente. " +"É usada a ferramenta mais acima (ordem Z) na camada ativa. Se não existir " +"nenhuma ferramenta dentro da camada atual, é usada a ferramenta da camada " +"acima. Clicar em Aplicar para criar uma nova ferramenta." #: ../share/extensions/generate_voronoi.inx.h:1 -#, fuzzy msgid "Voronoi Pattern" -msgstr "Padrões" +msgstr "Padrão Voronoi" #: ../share/extensions/generate_voronoi.inx.h:3 msgid "Average size of cell (px):" -msgstr "" +msgstr "Tamanho médio da célula (px):" #: ../share/extensions/generate_voronoi.inx.h:4 msgid "Size of Border (px):" -msgstr "" +msgstr "Tamanho da Borda (px):" #: ../share/extensions/generate_voronoi.inx.h:6 msgid "" @@ -36832,30 +34955,33 @@ msgid "" "join of the pattern at the edges. Use a negative border to reduce the size " "of the pattern and get an empty border." msgstr "" +"Gera um padrão aleatório de células Voronoi. O padrão estará acessível no " +"painel de Preenchimento e Traço. Tem de se selecionar um objeto ou grupo.\n" +"\n" +"Se a borda for zero, o padrão será descontínuo nas laterais. Usar uma borda " +"de valor positivo, preferencialmente maior que o tamanho da célula, para " +"produzir uma união suave do padrão nas bordas. Usar uma borda de valor " +"negativo para reduzir o tamanho do padrão e para obter uma borda vazia." #: ../share/extensions/gimp_xcf.inx.h:1 msgid "GIMP XCF" msgstr "GIMP XCF" #: ../share/extensions/gimp_xcf.inx.h:3 -#, fuzzy msgid "Save Guides" -msgstr "Guias" +msgstr "Gravar Guias" #: ../share/extensions/gimp_xcf.inx.h:4 -#, fuzzy msgid "Save Grid" -msgstr "Guias" +msgstr "Gravar Grelha" #: ../share/extensions/gimp_xcf.inx.h:5 -#, fuzzy msgid "Save Background" -msgstr "Plano de fundo:" +msgstr "Gravar Fundo" #: ../share/extensions/gimp_xcf.inx.h:6 -#, fuzzy msgid "File Resolution:" -msgstr "Relação:" +msgstr "Resolução do Ficheiro:" #: ../share/extensions/gimp_xcf.inx.h:8 msgid "" @@ -36871,170 +34997,161 @@ msgid "" "concatenated and converted with their first level parent layer into a single " "Gimp layer." msgstr "" +"Esta extensão exporta o documento para o formato GIMP XCF de acordo com as " +"seguintes opções:\n" +" * Gravar Guias: converte todas as guias em guias GIMP.\n" +" * Gravar Grelha: converte a primeira grelha retangular numa grelha GIMP " +"(notar que a grelha padrão do Inkscape é muito estreita quando mostrada no " +"GIMP).\n" +" * Gravar Fundo: adiciona o fundo do documento a cada camada convertida.\n" +" * Resolução do Ficheiro: resolução em pontos por polegada (DPI) do " +"ficheiro XCF.\n" +"\n" +"Cada camada de primeiro nível é convertida numa camada GIMP. As sub-camadas " +"são unidas e convertidas com a camada acima numa camada apenas do GIMP." #: ../share/extensions/gimp_xcf.inx.h:15 -#, fuzzy msgid "GIMP XCF maintaining layers (*.xcf)" -msgstr "GIMP XCF preservando camadas (*.XCF)" +msgstr "GIMP XCF preservando camadas (*.xcf" #: ../share/extensions/grid_cartesian.inx.h:1 -#, fuzzy msgid "Cartesian Grid" -msgstr "Criar nova grelha" +msgstr "Grelha Cartesiana" #: ../share/extensions/grid_cartesian.inx.h:2 #: ../share/extensions/grid_isometric.inx.h:10 -#, fuzzy msgid "Border Thickness (px):" -msgstr "Medida da Grossura do Papel" +msgstr "Espessura da Borda (px):" #: ../share/extensions/grid_cartesian.inx.h:3 msgid "X Axis" -msgstr "" +msgstr "Eixo X" #: ../share/extensions/grid_cartesian.inx.h:4 -#, fuzzy msgid "Major X Divisions:" -msgstr "Divisão" +msgstr "Divisões X Maiores:" #: ../share/extensions/grid_cartesian.inx.h:5 -#, fuzzy msgid "Major X Division Spacing (px):" -msgstr "Espaçamento Horizontal" +msgstr "Espaçamento da Divisão X Maior (px):" #: ../share/extensions/grid_cartesian.inx.h:6 -#, fuzzy msgid "Subdivisions per Major X Division:" -msgstr "Divisão" +msgstr "Subdivisões por Divisão X Maior:" #: ../share/extensions/grid_cartesian.inx.h:7 msgid "Logarithmic X Subdiv. (Base given by entry above)" -msgstr "" +msgstr "Subdivisão X Logarítmica (base obtida da entrada acima)" #: ../share/extensions/grid_cartesian.inx.h:8 msgid "Subsubdivs. per X Subdivision:" -msgstr "" +msgstr "Subsubdiviões por Subdivisão X:" #: ../share/extensions/grid_cartesian.inx.h:9 msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):" msgstr "" +"Metade das subsubdivisões X. Frequência após 'N' Suvdivisões. (apenas log):" #: ../share/extensions/grid_cartesian.inx.h:10 -#, fuzzy msgid "Major X Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão X Maior (px):" #: ../share/extensions/grid_cartesian.inx.h:11 -#, fuzzy msgid "Minor X Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão X Menor (px):" #: ../share/extensions/grid_cartesian.inx.h:12 -#, fuzzy msgid "Subminor X Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão X Submenor (px):" #: ../share/extensions/grid_cartesian.inx.h:13 msgid "Y Axis" -msgstr "" +msgstr "Eixo Y" #: ../share/extensions/grid_cartesian.inx.h:14 -#, fuzzy msgid "Major Y Divisions:" -msgstr "Divisão" +msgstr "Divisões Y Maiores:" #: ../share/extensions/grid_cartesian.inx.h:15 -#, fuzzy msgid "Major Y Division Spacing (px):" -msgstr "Espaçamento Horizontal" +msgstr "Espaçamento Divisão Y Maior (px):" #: ../share/extensions/grid_cartesian.inx.h:16 -#, fuzzy msgid "Subdivisions per Major Y Division:" -msgstr "Divisão" +msgstr "Subdivisões por Divisão Y Maior:" #: ../share/extensions/grid_cartesian.inx.h:17 msgid "Logarithmic Y Subdiv. (Base given by entry above)" -msgstr "" +msgstr "Subdivisão Y Logarítmica (base obtida da entrada acima)" #: ../share/extensions/grid_cartesian.inx.h:18 msgid "Subsubdivs. per Y Subdivision:" -msgstr "" +msgstr "Subsubdiviões por Subdivisão Y:" #: ../share/extensions/grid_cartesian.inx.h:19 msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):" msgstr "" +"Metade das subsubdivisões Y. Frequência após 'N' Suvdivisões. (apenas log):" #: ../share/extensions/grid_cartesian.inx.h:20 -#, fuzzy msgid "Major Y Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Y Maior (px):" #: ../share/extensions/grid_cartesian.inx.h:21 -#, fuzzy msgid "Minor Y Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Y Menor (px):" #: ../share/extensions/grid_cartesian.inx.h:22 -#, fuzzy msgid "Subminor Y Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Y Submenor (px):" #: ../share/extensions/grid_isometric.inx.h:1 -#, fuzzy msgid "Isometric Grid" -msgstr "Grelha axonométrica" +msgstr "Grelha Isométrica:" #: ../share/extensions/grid_isometric.inx.h:2 -#, fuzzy msgid "X Divisions [x2]:" -msgstr "Divisão" +msgstr "Divisões X [x2]:" #: ../share/extensions/grid_isometric.inx.h:3 msgid "Y Divisions [x2] [> 1/2 X Div]:" -msgstr "" +msgstr "Divisões Y [x2] [> 1/2 Div X]:" #: ../share/extensions/grid_isometric.inx.h:4 -#, fuzzy msgid "Division Spacing (px):" -msgstr "Espaçamento Horizontal" +msgstr "Espaçamento das Divisões (px):" #: ../share/extensions/grid_isometric.inx.h:5 -#, fuzzy msgid "Subdivisions per Major Division:" -msgstr "Divisão" +msgstr "Subdivisões por Divisão Maior:" #: ../share/extensions/grid_isometric.inx.h:6 -#, fuzzy msgid "Subsubdivs per Subdivision:" -msgstr "Divisão" +msgstr "Subsubdivisões por Subdivisão:" #: ../share/extensions/grid_isometric.inx.h:7 -#, fuzzy msgid "Major Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Maior (px):" #: ../share/extensions/grid_isometric.inx.h:8 -#, fuzzy msgid "Minor Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Menor (px):" #: ../share/extensions/grid_isometric.inx.h:9 -#, fuzzy msgid "Subminor Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Submenor (px):" #: ../share/extensions/grid_polar.inx.h:1 msgid "Polar Grid" -msgstr "" +msgstr "Grelha Polar" #: ../share/extensions/grid_polar.inx.h:2 msgid "Centre Dot Diameter (px):" -msgstr "" +msgstr "Diâmetro do Ponto do Meio (px):" #: ../share/extensions/grid_polar.inx.h:3 msgid "Circumferential Labels:" -msgstr "" +msgstr "Etiquetas Circunferenciais:" #: ../share/extensions/grid_polar.inx.h:5 msgid "Degrees" @@ -37042,203 +35159,172 @@ msgstr "Graus" #: ../share/extensions/grid_polar.inx.h:6 msgid "Circumferential Label Size (px):" -msgstr "" +msgstr "Tamanho da Etiqueta Circunferencial (px):" #: ../share/extensions/grid_polar.inx.h:7 msgid "Circumferential Label Outset (px):" -msgstr "" +msgstr "Deslocamento da Etiqueta Circunferencial (px):" #: ../share/extensions/grid_polar.inx.h:8 -#, fuzzy msgid "Circular Divisions" -msgstr "Divisão" +msgstr "Divisões Circulares" #: ../share/extensions/grid_polar.inx.h:9 -#, fuzzy msgid "Major Circular Divisions:" -msgstr "Divisão" +msgstr "Divisões Circulares Maiores:" #: ../share/extensions/grid_polar.inx.h:10 -#, fuzzy msgid "Major Circular Division Spacing (px):" -msgstr "Espaçamento Horizontal" +msgstr "Espaçamento da Divisão Circular Maior (px):" #: ../share/extensions/grid_polar.inx.h:11 msgid "Subdivisions per Major Circular Division:" -msgstr "" +msgstr "Subdivisões por Divisão Circular Maior:" #: ../share/extensions/grid_polar.inx.h:12 msgid "Logarithmic Subdiv. (Base given by entry above)" -msgstr "" +msgstr "Subdivisão Logarítmica (base fornecida pela entrada acima)" #: ../share/extensions/grid_polar.inx.h:13 -#, fuzzy msgid "Major Circular Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Circular Maior (px):" #: ../share/extensions/grid_polar.inx.h:14 -#, fuzzy msgid "Minor Circular Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Circular Menor (px):" #: ../share/extensions/grid_polar.inx.h:15 -#, fuzzy msgid "Angular Divisions" -msgstr "Divisão" +msgstr "Divisões Angulares" #: ../share/extensions/grid_polar.inx.h:16 -#, fuzzy msgid "Angle Divisions:" -msgstr "Divisão" +msgstr "Divisões do Ângulo:" #: ../share/extensions/grid_polar.inx.h:17 -#, fuzzy msgid "Angle Divisions at Centre:" -msgstr "Divisão" +msgstr "Divisões do Ângulo no Centro:" #: ../share/extensions/grid_polar.inx.h:18 msgid "Subdivisions per Major Angular Division:" -msgstr "" +msgstr "Subdivisões por Divisão Angular Maior:" #: ../share/extensions/grid_polar.inx.h:19 msgid "Minor Angle Division End 'n' Divs. Before Centre:" -msgstr "" +msgstr "Divisão do Ângulo Menor Termina a 'N' Divs. Antes do Centro:" #: ../share/extensions/grid_polar.inx.h:20 -#, fuzzy msgid "Major Angular Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Angular Maior (px):" #: ../share/extensions/grid_polar.inx.h:21 -#, fuzzy msgid "Minor Angular Division Thickness (px):" -msgstr "Divisão" +msgstr "Espessura da Divisão Angular Menor (px):" #: ../share/extensions/guides_creator.inx.h:1 -#, fuzzy msgid "Guides creator" -msgstr "Cor das gui_as:" +msgstr "Criador de guias" #: ../share/extensions/guides_creator.inx.h:2 -#, fuzzy msgid "Regular guides" -msgstr "Grelha retangular" +msgstr "Guias regulares" #: ../share/extensions/guides_creator.inx.h:3 -#, fuzzy msgid "Guides preset:" -msgstr "Cor das gui_as:" +msgstr "Modelo de guias:" #: ../share/extensions/guides_creator.inx.h:6 -#, fuzzy msgid "Start from edges" -msgstr "começar do centro" +msgstr "Começar pelas bordas" #: ../share/extensions/guides_creator.inx.h:7 -#, fuzzy msgid "Delete existing guides" -msgstr "Remover guias existentes" +msgstr "Eliminar guias existentes" #: ../share/extensions/guides_creator.inx.h:8 msgid "Custom..." -msgstr "Personalizar..." +msgstr "Personalizado..." #: ../share/extensions/guides_creator.inx.h:9 -#, fuzzy msgid "Golden ratio" -msgstr "Proporção do raio:" +msgstr "Proporção de ouro" #: ../share/extensions/guides_creator.inx.h:10 msgid "Rule-of-third" -msgstr "" +msgstr "Regra dos terços" #: ../share/extensions/guides_creator.inx.h:11 -#, fuzzy msgid "Diagonal guides" -msgstr "Encaixando às guias" +msgstr "Guias diagonais" #: ../share/extensions/guides_creator.inx.h:12 -#, fuzzy msgid "Upper left corner" -msgstr "Cor da borda da página" +msgstr "Canto superior esquerdo" #: ../share/extensions/guides_creator.inx.h:13 -#, fuzzy msgid "Upper right corner" -msgstr "Cor da borda da página" +msgstr "Canto superior direito" #: ../share/extensions/guides_creator.inx.h:14 -#, fuzzy msgid "Lower left corner" -msgstr "Baixar a camada actual" +msgstr "Canto inferior esquerdo" #: ../share/extensions/guides_creator.inx.h:15 -#, fuzzy msgid "Lower right corner" -msgstr "Baixar a camada actual" +msgstr "Canto inferior direito" #: ../share/extensions/guides_creator.inx.h:16 -#, fuzzy msgid "Margins" -msgstr "caixa de arte" +msgstr "Margens" #: ../share/extensions/guides_creator.inx.h:17 msgid "Margins preset:" -msgstr "" +msgstr "Modelo de margens:" #: ../share/extensions/guides_creator.inx.h:18 -#, fuzzy msgid "Header margin:" -msgstr "Ângulo esquerdo" +msgstr "Margem do cabeçalho:" #: ../share/extensions/guides_creator.inx.h:19 -#, fuzzy msgid "Footer margin:" -msgstr "Soltar cor" +msgstr "Margem do rodapé:" #: ../share/extensions/guides_creator.inx.h:20 -#, fuzzy msgid "Left margin:" -msgstr "Ângulo esquerdo" +msgstr "Margem esquerda:" #: ../share/extensions/guides_creator.inx.h:21 -#, fuzzy msgid "Right margin:" -msgstr "Ângulo direito" +msgstr "Margem direita:" #: ../share/extensions/guides_creator.inx.h:22 -#, fuzzy msgid "Left book page" -msgstr "Ângulo esquerdo" +msgstr "Página esquerda de livro" #: ../share/extensions/guides_creator.inx.h:23 -#, fuzzy msgid "Right book page" -msgstr "Ângulo direito" +msgstr "Página direita de livro" #: ../share/extensions/guides_creator.inx.h:24 -#, fuzzy msgctxt "Margin" msgid "None" -msgstr "Nenhum" +msgstr "Nenhuma" #: ../share/extensions/guillotine.inx.h:1 -#, fuzzy msgid "Guillotine" -msgstr "Cor da linha guia" +msgstr "Guilhotina" #: ../share/extensions/guillotine.inx.h:2 -#, fuzzy msgid "Directory to save images to:" -msgstr "Local onde guardar a imagem" +msgstr "Local onde gravar as imagens:" #: ../share/extensions/guillotine.inx.h:3 msgid "Image name (without extension):" -msgstr "" +msgstr "Nome da imagem (sem extensão):" #: ../share/extensions/guillotine.inx.h:4 msgid "Ignore these settings and use export hints" -msgstr "" +msgstr "Ignorar estas definições e usar dicas de exportar" #: ../share/extensions/handles.inx.h:1 msgid "Draw Handles" @@ -37246,138 +35332,118 @@ msgstr "Desenhar Alças" #: ../share/extensions/hershey.inx.h:1 msgid "Hershey Text" -msgstr "" +msgstr "Texto Hershey" #: ../share/extensions/hershey.inx.h:2 -#, fuzzy msgid "Render Text" -msgstr "Render" +msgstr "Renderizar Texto" #: ../share/extensions/hershey.inx.h:3 #: ../share/extensions/render_alphabetsoup.inx.h:2 #: ../share/extensions/render_barcode_datamatrix.inx.h:2 #: ../share/extensions/render_barcode_qrcode.inx.h:3 -#, fuzzy msgid "Text:" -msgstr "Texto" +msgstr "Texto:" #: ../share/extensions/hershey.inx.h:4 -#, fuzzy msgid "Action: " -msgstr "Aceleração:" +msgstr "Ação: " #: ../share/extensions/hershey.inx.h:5 -#, fuzzy msgid "Font face: " -msgstr "Tamanho da Fonte" +msgstr "Fonte: " #: ../share/extensions/hershey.inx.h:6 -#, fuzzy msgid "Typeset that text" -msgstr "Digite o texto" +msgstr "Escrever esse texto" #: ../share/extensions/hershey.inx.h:7 msgid "Write glyph table" -msgstr "" +msgstr "Escrever tabela de caracteres" #: ../share/extensions/hershey.inx.h:8 -#, fuzzy msgid "Sans 1-stroke" -msgstr "Redefinir o traço" +msgstr "Sem serifa 1-traço" #: ../share/extensions/hershey.inx.h:9 -#, fuzzy msgid "Sans bold" -msgstr "Tornar negrito" +msgstr "Sem serifa negrito" #: ../share/extensions/hershey.inx.h:10 -#, fuzzy msgid "Serif medium" -msgstr "médio" +msgstr "Serifa médio" #: ../share/extensions/hershey.inx.h:11 msgid "Serif medium italic" -msgstr "" +msgstr "Serifa médio itálico" #: ../share/extensions/hershey.inx.h:12 msgid "Serif bold italic" -msgstr "" +msgstr "Serifa negrito itálico" #: ../share/extensions/hershey.inx.h:13 -#, fuzzy msgid "Serif bold" -msgstr "Tornar negrito" +msgstr "Serifa negrito" #: ../share/extensions/hershey.inx.h:14 -#, fuzzy msgid "Script 1-stroke" -msgstr "Redefinir o traço" +msgstr "Cursiva 1-traço" #: ../share/extensions/hershey.inx.h:15 msgid "Script 1-stroke (alt)" -msgstr "" +msgstr "Cursiva 1-traço (alt)" #: ../share/extensions/hershey.inx.h:16 -#, fuzzy msgid "Script medium" -msgstr "Script" +msgstr "Cursiva média" #: ../share/extensions/hershey.inx.h:17 -#, fuzzy msgid "Gothic English" -msgstr "Aumentar ajuste" +msgstr "Gótico Inglês" #: ../share/extensions/hershey.inx.h:18 -#, fuzzy msgid "Gothic German" -msgstr "Aumentar ajuste" +msgstr "Gótico Alemão" #: ../share/extensions/hershey.inx.h:19 -#, fuzzy msgid "Gothic Italian" -msgstr "Aumentar ajuste" +msgstr "Gótico Italiano" #: ../share/extensions/hershey.inx.h:20 -#, fuzzy msgid "Greek 1-stroke" -msgstr "Redefinir o traço" +msgstr "Grego 1-traço" #: ../share/extensions/hershey.inx.h:21 -#, fuzzy msgid "Greek medium" -msgstr "médio" +msgstr "Grego médio" #: ../share/extensions/hershey.inx.h:23 -#, fuzzy msgid "Japanese" -msgstr "linhas" +msgstr "Japonês" #: ../share/extensions/hershey.inx.h:24 -#, fuzzy msgid "Astrology" -msgstr "Morfologia" +msgstr "Astrologia" #: ../share/extensions/hershey.inx.h:25 msgid "Math (lower)" -msgstr "" +msgstr "Matemática (baixa)" #: ../share/extensions/hershey.inx.h:26 -#, fuzzy msgid "Math (upper)" -msgstr "(perpendicular ao traço, \"escova\")" +msgstr "Matemática (alta)" #: ../share/extensions/hershey.inx.h:28 -#, fuzzy msgid "Meteorology" -msgstr "Morfologia" +msgstr "Metereologia" #: ../share/extensions/hershey.inx.h:29 msgid "Music" -msgstr "" +msgstr "Música" #: ../share/extensions/hershey.inx.h:30 msgid "Symbolic" -msgstr "" +msgstr "Simbólico" #: ../share/extensions/hershey.inx.h:31 msgid "" @@ -37386,10 +35452,14 @@ msgid "" "\n" "\n" msgstr "" +" \n" +"\n" +"\n" +"\n" #: ../share/extensions/hershey.inx.h:36 msgid "About..." -msgstr "" +msgstr "Sobre..." #: ../share/extensions/hershey.inx.h:37 msgid "" @@ -37409,11 +35479,25 @@ msgid "" "For additional information, please visit:\n" " www.evilmadscientist.com/go/hershey" msgstr "" +"\n" +"Esta extensão renderiza uma linha de texto usando\n" +"as fontes \"Hershey\" para plotters, derivadas de \n" +"NBS SP-424 1976-04, \"A contribution to \n" +"computer typesetting techniques: Tables of\n" +"Coordinates for Hershey's Repertory of\n" +"Occidental Type Fonts and Graphic Symbols.\"\n" +"\n" +"Estas fontes não são fontes tradicionais\n" +"de \"contorno\", mas sim fontes de \"traço único\",\n" +"ou fontes tipo \"gravura\" nas quais o caracter é\n" +"formado pela linha (e não o preenchimento).\n" +"\n" +"Para mais informações, aceder a:\n" +" www.evilmadscientist.com/go/hershey" #: ../share/extensions/hpgl_input.inx.h:1 -#, fuzzy msgid "HPGL Input" -msgstr "Entrada WPG" +msgstr "Importar HPGL" #: ../share/extensions/hpgl_input.inx.h:2 msgid "" @@ -37421,12 +35505,14 @@ msgid "" "other HPGL files please change their file extension to .plt, make sure you " "have UniConverter installed and open them again." msgstr "" +"Notar que apenas se pode abrir ficheiros HPGL gravados no Inkscape. Para " +"abrir ficheiros HPGL gravados noutros programas, tem de se alterar a " +"extensão dos ficheiros para .plt e ter instalado o UniConverter." #: ../share/extensions/hpgl_input.inx.h:3 #: ../share/extensions/hpgl_output.inx.h:4 ../share/extensions/plotter.inx.h:32 -#, fuzzy msgid "Resolution X (dpi):" -msgstr "Resolução preferida para a figura (pontos por polegada)" +msgstr "Resolução X (dpi):" #: ../share/extensions/hpgl_input.inx.h:4 #: ../share/extensions/hpgl_output.inx.h:5 ../share/extensions/plotter.inx.h:33 @@ -37434,12 +35520,13 @@ msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the X axis " "(Default: 1016.0)" msgstr "" +"A quantidade de passos que a plotter se move em 1 polegada no eixo do Y " +"(padrão: 1016.0)" #: ../share/extensions/hpgl_input.inx.h:5 #: ../share/extensions/hpgl_output.inx.h:6 ../share/extensions/plotter.inx.h:34 -#, fuzzy msgid "Resolution Y (dpi):" -msgstr "Resolução preferida para a figura (pontos por polegada)" +msgstr "Resolução Y (dpi):" #: ../share/extensions/hpgl_input.inx.h:6 #: ../share/extensions/hpgl_output.inx.h:7 ../share/extensions/plotter.inx.h:35 @@ -37447,30 +35534,29 @@ msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" msgstr "" +"A quantidade de passos que a plotter se move em 1 polegada no eixo do Y " +"(padrão: 1016.0)" #: ../share/extensions/hpgl_input.inx.h:7 msgid "Show movements between paths" -msgstr "" +msgstr "Mostrar movimentos entre caminhos" #: ../share/extensions/hpgl_input.inx.h:8 msgid "Check this to show movements between paths (Default: Unchecked)" -msgstr "" +msgstr "Ativar para mostrar movimentos entre caminhos (padrão: desativado)" #: ../share/extensions/hpgl_input.inx.h:9 #: ../share/extensions/hpgl_output.inx.h:35 -#, fuzzy msgid "HP Graphics Language file (*.hpgl)" -msgstr "Ficheiro XFIG Graphics (*.fig)" +msgstr "HP Graphics Language(*.hpgl)" #: ../share/extensions/hpgl_input.inx.h:10 -#, fuzzy msgid "Import an HP Graphics Language file" -msgstr "Ficheiro XFIG Graphics (*.fig)" +msgstr "Importar um ficheiro HP Graphics Language" #: ../share/extensions/hpgl_output.inx.h:1 -#, fuzzy msgid "HPGL Output" -msgstr "Saída SVG" +msgstr "Exportar em HPGL" #: ../share/extensions/hpgl_output.inx.h:2 msgid "" @@ -37478,25 +35564,26 @@ msgid "" "Please use the plotter extension (Extensions menu) to plot directly over a " "serial connection." msgstr "" +"Confirmar se todos os objetos que se pretende gravar estão convertidos em " +"caminhos. Usar a extensão Plotter (menu Extensões) para enviar para a " +"plotter diretamente sob uma ligação em série." #: ../share/extensions/hpgl_output.inx.h:3 ../share/extensions/plotter.inx.h:31 -#, fuzzy msgid "Plotter Settings " -msgstr "Importar configurações de PDF" +msgstr "Configurações da Plotter " #: ../share/extensions/hpgl_output.inx.h:8 ../share/extensions/plotter.inx.h:36 -#, fuzzy msgid "Pen number:" -msgstr "Ângulo da caneta" +msgstr "Número da caneta:" #: ../share/extensions/hpgl_output.inx.h:9 ../share/extensions/plotter.inx.h:37 msgid "The number of the pen (tool) to use (Standard: '1')" -msgstr "" +msgstr "O número da caneta (ferramenta) a usar (padrão: '1')" #: ../share/extensions/hpgl_output.inx.h:10 #: ../share/extensions/plotter.inx.h:38 msgid "Pen force (g):" -msgstr "" +msgstr "Força da caneta (g):" #: ../share/extensions/hpgl_output.inx.h:11 #: ../share/extensions/plotter.inx.h:39 @@ -37504,11 +35591,13 @@ msgid "" "The amount of force pushing down the pen in grams, set to 0 to omit command; " "most plotters ignore this command (Default: 0)" msgstr "" +"A quantidade de força a puxar a caneta em gramas. Aplicar 0 para omitir o " +"comando. A maioria das plotters ignora este comando (padrão: 0)." #: ../share/extensions/hpgl_output.inx.h:12 #: ../share/extensions/plotter.inx.h:40 msgid "Pen speed (cm/s or mm/s):" -msgstr "" +msgstr "Velocidade da caneta (cm/s ou mm/s):" #: ../share/extensions/hpgl_output.inx.h:13 msgid "" @@ -37516,48 +35605,49 @@ msgid "" "(depending on your plotter model), set to 0 to omit command; most plotters " "ignore this command (Default: 0)" msgstr "" +"A velocidade que a caneta se move, em centímetros ou milímetros por segundo " +"(dependendo do modelo da plotter). Aplicar 0 para omitir o comando. A " +"maioria das plotters ignoram este comando (padrão: 0)." #: ../share/extensions/hpgl_output.inx.h:14 -#, fuzzy msgid "Rotation (°, Clockwise):" -msgstr "Girar no sentido horário" +msgstr "Rotação (°, sentido horário):" #: ../share/extensions/hpgl_output.inx.h:15 #: ../share/extensions/plotter.inx.h:43 msgid "Rotation of the drawing (Default: 0°)" -msgstr "" +msgstr "Rotação do desenho (padrão: 0°)" #: ../share/extensions/hpgl_output.inx.h:16 #: ../share/extensions/plotter.inx.h:44 msgid "Mirror X axis" -msgstr "" +msgstr "Espelhar eixo X" #: ../share/extensions/hpgl_output.inx.h:17 #: ../share/extensions/plotter.inx.h:45 msgid "Check this to mirror the X axis (Default: Unchecked)" -msgstr "" +msgstr "Ativar para espelhar o eixo X (padrão: não ativado)" #: ../share/extensions/hpgl_output.inx.h:18 #: ../share/extensions/plotter.inx.h:46 msgid "Mirror Y axis" -msgstr "" +msgstr "Espelhar eixo Y" #: ../share/extensions/hpgl_output.inx.h:19 #: ../share/extensions/plotter.inx.h:47 msgid "Check this to mirror the Y axis (Default: Unchecked)" -msgstr "" +msgstr "Ativar para espelhar o eixo Y (padrão: não ativado)" #: ../share/extensions/hpgl_output.inx.h:20 #: ../share/extensions/plotter.inx.h:48 -#, fuzzy msgid "Center zero point" -msgstr "Centralizar linhas" +msgstr "Ponto zero do centro" #: ../share/extensions/hpgl_output.inx.h:21 #: ../share/extensions/plotter.inx.h:49 msgid "" "Check this if your plotter uses a centered zero point (Default: Unchecked)" -msgstr "" +msgstr "Ativar caso a plotter use um ponto zero centrado (padrão: inativo)" #: ../share/extensions/hpgl_output.inx.h:22 #: ../share/extensions/plotter.inx.h:50 @@ -37566,17 +35656,20 @@ msgid "" "each pen, name the layers \"Pen 1\", \"Pen 2\", etc., and put your drawings " "in the corresponding layers. This overrules the pen number option above." msgstr "" +"Se pretender usar várias canetas ou a caneta da plotter cria uma camada para " +"cada caneta, atribuir o nome às camadas como \"Caneta 1\", \"Caneta 2\", " +"etc. e colocar os desenhos nas camadas correspondentes. Isto anula a opção " +"Número da Caneta acima." #: ../share/extensions/hpgl_output.inx.h:23 #: ../share/extensions/plotter.inx.h:51 -#, fuzzy msgid "Plot Features " -msgstr "Metro" +msgstr "Funcionalidades Plot " #: ../share/extensions/hpgl_output.inx.h:24 #: ../share/extensions/plotter.inx.h:52 msgid "Overcut (mm):" -msgstr "" +msgstr "Corte por fora (mm):" #: ../share/extensions/hpgl_output.inx.h:25 #: ../share/extensions/plotter.inx.h:53 @@ -37584,12 +35677,13 @@ msgid "" "The distance in mm that will be cut over the starting point of the path to " "prevent open paths, set to 0.0 to omit command (Default: 1.00)" msgstr "" +"A distância em mm que será cortada no ponto inicial do caminho para prevenir " +"caminhos abertos. Usar 0.0 para omitir este comando (padrão: 1.00)" #: ../share/extensions/hpgl_output.inx.h:26 #: ../share/extensions/plotter.inx.h:54 -#, fuzzy msgid "Tool (Knife) offset correction (mm):" -msgstr "Desvio Horizontal" +msgstr "Correção do deslocamento da ferramenta Faca (mm):" #: ../share/extensions/hpgl_output.inx.h:27 #: ../share/extensions/plotter.inx.h:55 @@ -37597,12 +35691,13 @@ msgid "" "The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " "command (Default: 0.25)" msgstr "" +"O deslocamento desde a ponta da ferramenta ao eixo da ferramenta em mm. Usar " +"0.0 para omitir este comando (padrão: 0.25)." #: ../share/extensions/hpgl_output.inx.h:28 #: ../share/extensions/plotter.inx.h:56 -#, fuzzy msgid "Precut" -msgstr "Ajustar como padrão" +msgstr "Pré-cortar" #: ../share/extensions/hpgl_output.inx.h:29 #: ../share/extensions/plotter.inx.h:57 @@ -37610,12 +35705,13 @@ msgid "" "Check this to cut a small line before the real drawing starts to correctly " "align the tool orientation. (Default: Checked)" msgstr "" +"Ativar para cortar uma pequena linha antes do desenho começar para alinhar a " +"orientação da ferramenta corretamente (padrão: ativado)." #: ../share/extensions/hpgl_output.inx.h:30 #: ../share/extensions/plotter.inx.h:58 -#, fuzzy msgid "Curve flatness:" -msgstr "Nivelar" +msgstr "Nivelação das curvas:" #: ../share/extensions/hpgl_output.inx.h:31 #: ../share/extensions/plotter.inx.h:59 @@ -37623,12 +35719,13 @@ msgid "" "Curves are divided into lines, this number controls how fine the curves will " "be reproduced, the smaller the finer (Default: '1.2')" msgstr "" +"As curvas são divididas em linhas. Este número controla quão finas as curvas " +"serão reproduzidas. Quanto mais pequeno mais fino (padrão: 1.2)" #: ../share/extensions/hpgl_output.inx.h:32 #: ../share/extensions/plotter.inx.h:60 -#, fuzzy msgid "Auto align" -msgstr "Alinhar" +msgstr "Alinhar automaticamente" #: ../share/extensions/hpgl_output.inx.h:33 #: ../share/extensions/plotter.inx.h:61 @@ -37637,6 +35734,10 @@ msgid "" "if used). If unchecked you have to make sure that all parts of your drawing " "are within the document border! (Default: Checked)" msgstr "" +"Ativar isto para alinhar automaticamente o desenho ao ponto zero (mais o " +"deslocamento da ferramenta, se usado). Se inativado, deve-se confirmar se " +"todas as partes do desenho se encontram dentro das bordas da página! " +"(Padrão: ativado)." #: ../share/extensions/hpgl_output.inx.h:34 #: ../share/extensions/plotter.inx.h:64 @@ -37644,147 +35745,136 @@ msgid "" "All these settings depend on the plotter you use, for more information " "please consult the manual or homepage for your plotter." msgstr "" +"Todas estas configurações dependem da plotter utilizada. Para mais " +"informações consultar o manual ou o sítio web do fabricante da plotter." #: ../share/extensions/hpgl_output.inx.h:36 -#, fuzzy msgid "Export an HP Graphics Language file" -msgstr "Ficheiro XFIG Graphics (*.fig)" +msgstr "Exportar um ficheiro HP Graphics Language" #: ../share/extensions/image_attributes.inx.h:1 -#, fuzzy msgid "Set Image Attributes" -msgstr "Ajustar atributo" +msgstr "Definir Atributos da Imagem" #. render images like in 0.48 #: ../share/extensions/image_attributes.inx.h:3 msgid "Basic" -msgstr "" +msgstr "Básico" #. render images like in 0.48 #: ../share/extensions/image_attributes.inx.h:5 msgid "Support non-uniform scaling" -msgstr "" +msgstr "Suportar escalonamento não uniforme" #. render images like in 0.48 #: ../share/extensions/image_attributes.inx.h:7 msgid "Render images blocky" -msgstr "" +msgstr "Renderizar as imagens em blocos" #. render images like in 0.48 #: ../share/extensions/image_attributes.inx.h:9 msgid "" "Render all bitmap images like in older Inskcape versions. Available options:" msgstr "" +"Renderiza as imagens conforme as versões anteriores do Inkscape. Opções " +"diponíveis:" #. image aspect ratio #: ../share/extensions/image_attributes.inx.h:11 -#, fuzzy msgid "Image Aspect Ratio" -msgstr "" -"%s não é uma pasta válida.\n" -"%s" +msgstr "Proporção da Imagem" #. image aspect ratio #: ../share/extensions/image_attributes.inx.h:13 msgid "preserveAspectRatio attribute:" -msgstr "" +msgstr "atributo de manter a proporção:" #. image aspect ratio #: ../share/extensions/image_attributes.inx.h:15 msgid "meetOrSlice:" -msgstr "" +msgstr "meetOrSlice:" #. image-rendering #: ../share/extensions/image_attributes.inx.h:17 msgid "Scope:" -msgstr "" +msgstr "Âmbito:" #. image-rendering #: ../share/extensions/image_attributes.inx.h:19 -#, fuzzy msgid "Unset" -msgstr "comprimir" +msgstr "Não definido" #: ../share/extensions/image_attributes.inx.h:20 -#, fuzzy msgid "Change only selected image(s)" -msgstr "Embutir somente a imagem selecionada" +msgstr "Alterar apenas as imagems selecionadas" #: ../share/extensions/image_attributes.inx.h:21 -#, fuzzy msgid "Change all images in selection" -msgstr "Modificar definição de cor" +msgstr "Alterar todas as imagens selecionadas" #: ../share/extensions/image_attributes.inx.h:22 -#, fuzzy msgid "Change all images in document" -msgstr "Abrir um desenho existente" +msgstr "Alterar todas as imagens no documento" #. image-rendering #: ../share/extensions/image_attributes.inx.h:24 -#, fuzzy msgid "Image Rendering Quality" -msgstr "Render" +msgstr "Qualidade de Renderização da Imagem" #. image-rendering #: ../share/extensions/image_attributes.inx.h:26 -#, fuzzy msgid "Image rendering attribute:" -msgstr "Render" +msgstr "Atributo da renderização da imagem:" #: ../share/extensions/image_attributes.inx.h:27 -#, fuzzy msgid "Apply attribute to parent group of selection" -msgstr "Aplicar transformação à selecção" +msgstr "Aplicar atributo ao grupo pai da seleção" #: ../share/extensions/image_attributes.inx.h:28 -#, fuzzy msgid "Apply attribute to SVG root" -msgstr "Nome do atributo" +msgstr "Aplicar atributo à raiz SVG" #: ../share/extensions/ink2canvas.inx.h:1 -#, fuzzy msgid "Convert to html5 canvas" -msgstr "Converter para Texto" +msgstr "Converter para canvas HTML5" #: ../share/extensions/ink2canvas.inx.h:2 msgid "HTML 5 canvas (*.html)" -msgstr "" +msgstr "HTML 5 canvas (*.html)" #: ../share/extensions/ink2canvas.inx.h:3 msgid "HTML 5 canvas code" -msgstr "" +msgstr "HTML 5 canvas code" #: ../share/extensions/inkscape_follow_link.inx.h:1 -#, fuzzy msgid "Follow Link" -msgstr "Se_guir Ligação" +msgstr "Seguir Ligação" #: ../share/extensions/inkscape_help_askaquestion.inx.h:1 msgid "Ask Us a Question" -msgstr "" +msgstr "Faça-nos Uma Pergunta" #: ../share/extensions/inkscape_help_commandline.inx.h:1 msgid "Command Line Options" -msgstr "Opções da Linha de Comando" +msgstr "Opções da Linha de Comandos" #. i18n. Please don't translate it unless a page exists in your language #: ../share/extensions/inkscape_help_commandline.inx.h:3 msgid "http://inkscape.org/doc/inkscape-man.html" -msgstr "" +msgstr "http://inkscape.org/pt/doc/inkscape-man.html" #: ../share/extensions/inkscape_help_faq.inx.h:1 msgid "FAQ" -msgstr "FAQ" +msgstr "Perguntas Frequentes" #: ../share/extensions/inkscape_help_keys.inx.h:1 msgid "Keys and Mouse Reference" -msgstr "RefeKeys and Mouse Reference" +msgstr "Guia de Referência de Teclado e Rato" #. i18n. Please don't translate it unless a page exists in your language #: ../share/extensions/inkscape_help_keys.inx.h:3 msgid "http://inkscape.org/doc/keys092.html" -msgstr "" +msgstr "http://inkscape.org/pt/doc/keys092.html" #: ../share/extensions/inkscape_help_manual.inx.h:1 msgid "Inkscape Manual" @@ -37793,7 +35883,7 @@ msgstr "Manual do Inkscape" #. i18n. Please don't translate it unless a page exists in your language #: ../share/extensions/inkscape_help_manual.inx.h:3 msgid "http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php" -msgstr "" +msgstr "http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php" #: ../share/extensions/inkscape_help_relnotes.inx.h:1 msgid "New in This Version" @@ -37802,11 +35892,11 @@ msgstr "Novo Nesta Versão" #. i18n. Please don't translate it unless a page exists in your language #: ../share/extensions/inkscape_help_relnotes.inx.h:3 msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.92" -msgstr "" +msgstr "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.92" #: ../share/extensions/inkscape_help_reportabug.inx.h:1 msgid "Report a Bug" -msgstr "Reportar Bug" +msgstr "Reportar Erro aos Programadores" #: ../share/extensions/inkscape_help_svgspec.inx.h:1 msgid "SVG 1.1 Specification" @@ -37817,76 +35907,66 @@ msgid "Interpolate" msgstr "Interpolar" #: ../share/extensions/interp.inx.h:3 -#, fuzzy msgid "Interpolation steps:" -msgstr "Passos da interpolação" +msgstr "Passos de interpolação:" #: ../share/extensions/interp.inx.h:4 -#, fuzzy msgid "Interpolation method:" -msgstr "Método de interpolação" +msgstr "Método de interpolação:" #: ../share/extensions/interp.inx.h:5 msgid "Duplicate endpaths" msgstr "Duplicar caminhos finais" #: ../share/extensions/interp.inx.h:6 -#, fuzzy msgid "Interpolate style" -msgstr "Interpolar" +msgstr "Estilo de interpolação" #: ../share/extensions/interp.inx.h:7 ../share/extensions/interp_att_g.inx.h:10 -#, fuzzy msgid "Use Z-order" -msgstr "Levantar nó" +msgstr "Usar ordem Z" #: ../share/extensions/interp.inx.h:8 ../share/extensions/interp_att_g.inx.h:11 msgid "Workaround for reversed selection order in Live Preview cycles" msgstr "" +"Alternativa para a ordem invertida da seleção em ciclos de Pré-visualização " +"em Tempo Real" #: ../share/extensions/interp_att_g.inx.h:1 msgid "Interpolate Attribute in a group" -msgstr "" +msgstr "Interpolar Atributo num grupo" #: ../share/extensions/interp_att_g.inx.h:3 -#, fuzzy msgid "Attribute to Interpolate:" -msgstr "Nome do atributo" +msgstr "Atributo a Interpolar:" #: ../share/extensions/interp_att_g.inx.h:4 -#, fuzzy msgid "Other Attribute:" -msgstr "Atributo" +msgstr "Outro Atributo:" #: ../share/extensions/interp_att_g.inx.h:5 -#, fuzzy msgid "Other Attribute type:" -msgstr "Nome do atributo" +msgstr "Outro tipo de Atributo:" #: ../share/extensions/interp_att_g.inx.h:6 -#, fuzzy msgid "Apply to:" -msgstr "Aplicar filtro" +msgstr "Aplicar a:" #: ../share/extensions/interp_att_g.inx.h:7 -#, fuzzy msgid "Start Value:" -msgstr "Valor de x inicial" +msgstr "Valor Inicial:" #: ../share/extensions/interp_att_g.inx.h:8 -#, fuzzy msgid "End Value:" -msgstr "Valor de x final" +msgstr "Valor Final:" #: ../share/extensions/interp_att_g.inx.h:15 -#, fuzzy msgid "Translate X" -msgstr "_Tradutores" +msgstr "Traduzir X" #: ../share/extensions/interp_att_g.inx.h:16 -#, fuzzy msgid "Translate Y" -msgstr "_Tradutores" +msgstr "Traduzir Y" #: ../share/extensions/interp_att_g.inx.h:17 #: ../share/extensions/markers_strokepaint.inx.h:9 @@ -37902,15 +35982,16 @@ msgid "" "If you select \"Other\", you must know the SVG attributes to identify here " "this \"other\"." msgstr "" +"Se escolher \"Outro\", tem de saber os atributos SVG para identificar onde " +"está o \"Outro\"." #: ../share/extensions/interp_att_g.inx.h:22 msgid "Integer Number" -msgstr "" +msgstr "Número Inteiro" #: ../share/extensions/interp_att_g.inx.h:23 -#, fuzzy msgid "Float Number" -msgstr "Parâmetros de efeitos" +msgstr "Número Flutuante" #: ../share/extensions/interp_att_g.inx.h:25 #: ../share/extensions/polyhedron_3d.inx.h:33 @@ -37918,18 +35999,16 @@ msgid "Style" msgstr "Estilo" #: ../share/extensions/interp_att_g.inx.h:26 -#, fuzzy msgid "Transformation" -msgstr "Informação" +msgstr "Transformação" #: ../share/extensions/interp_att_g.inx.h:27 msgid "••••••••••••••••••••••••••••••••••••••••••••••••" -msgstr "" +msgstr "••••••••••••••••••••••••••••••••••••••••••••••••" #: ../share/extensions/interp_att_g.inx.h:28 -#, fuzzy msgid "No Unit" -msgstr "Unidade" +msgstr "Sem Unidade" #: ../share/extensions/interp_att_g.inx.h:30 msgid "" @@ -37937,10 +36016,13 @@ msgid "" "elements inside the selected group or for all elements in a multiple " "selection." msgstr "" +"Este efeito aplica um valor para qualquer atributo interpolatável para todos " +"os elementos dentro de grupo selecionado ou para todos os elementos numa " +"seleção múltipla." #: ../share/extensions/jessyInk_autoTexts.inx.h:1 msgid "Auto-texts" -msgstr "" +msgstr "Textos automáticos" #: ../share/extensions/jessyInk_autoTexts.inx.h:2 #: ../share/extensions/jessyInk_effects.inx.h:2 @@ -37948,32 +36030,28 @@ msgstr "" #: ../share/extensions/jessyInk_masterSlide.inx.h:2 #: ../share/extensions/jessyInk_transitions.inx.h:2 #: ../share/extensions/jessyInk_view.inx.h:2 -#, fuzzy msgid "Settings" -msgstr "Início" +msgstr "Definições" #: ../share/extensions/jessyInk_autoTexts.inx.h:3 msgid "Auto-Text:" -msgstr "" +msgstr "Texto-Automático:" #: ../share/extensions/jessyInk_autoTexts.inx.h:4 -#, fuzzy msgid "None (remove)" -msgstr "Remover" +msgstr "Nenhum (remover)" #: ../share/extensions/jessyInk_autoTexts.inx.h:5 msgid "Slide title" -msgstr "" +msgstr "Título do slide" #: ../share/extensions/jessyInk_autoTexts.inx.h:6 -#, fuzzy msgid "Slide number" -msgstr "Ângulo da caneta" +msgstr "Número do slide" #: ../share/extensions/jessyInk_autoTexts.inx.h:7 -#, fuzzy msgid "Number of slides" -msgstr "Número de passos" +msgstr "Número de slides" #: ../share/extensions/jessyInk_autoTexts.inx.h:9 msgid "" @@ -37981,6 +36059,9 @@ msgid "" "JessyInk presentation. Please see code.google.com/p/jessyink for more " "details." msgstr "" +"Esta extensão permite instalar, atualizar e remover textos automáticos para " +"uma apresentação JessyInk. Para mais informações ver http://code.google.com/" +"p/jessyink" #: ../share/extensions/jessyInk_autoTexts.inx.h:10 #: ../share/extensions/jessyInk_effects.inx.h:15 @@ -37994,56 +36075,47 @@ msgstr "" #: ../share/extensions/jessyInk_video.inx.h:4 #: ../share/extensions/jessyInk_view.inx.h:9 msgid "JessyInk" -msgstr "" +msgstr "JessyInk" #: ../share/extensions/jessyInk_effects.inx.h:1 -#, fuzzy msgid "Effects" -msgstr "Efeito_s" +msgstr "Efeitos" #: ../share/extensions/jessyInk_effects.inx.h:4 #: ../share/extensions/jessyInk_transitions.inx.h:4 #: ../share/extensions/jessyInk_view.inx.h:4 -#, fuzzy msgid "Duration in seconds:" -msgstr "Desenho concluído" +msgstr "Duração em segundos:" #: ../share/extensions/jessyInk_effects.inx.h:6 -#, fuzzy msgid "Build-in effect" -msgstr "Efeito actual" +msgstr "Efeito para dentro" #: ../share/extensions/jessyInk_effects.inx.h:7 -#, fuzzy msgid "None (default)" -msgstr "(padrão)" +msgstr "Nenhum (padrão)" #: ../share/extensions/jessyInk_effects.inx.h:8 #: ../share/extensions/jessyInk_transitions.inx.h:8 -#, fuzzy msgid "Appear" -msgstr "Script" +msgstr "Aparecer" #: ../share/extensions/jessyInk_effects.inx.h:9 -#, fuzzy msgid "Fade in" -msgstr "Nivelar" +msgstr "Desvanecer para dentro" #: ../share/extensions/jessyInk_effects.inx.h:10 #: ../share/extensions/jessyInk_transitions.inx.h:10 -#, fuzzy msgid "Pop" -msgstr "Topo" +msgstr "Destacar" #: ../share/extensions/jessyInk_effects.inx.h:11 -#, fuzzy msgid "Build-out effect" -msgstr "Sem efeito" +msgstr "Efeito para fora" #: ../share/extensions/jessyInk_effects.inx.h:12 -#, fuzzy msgid "Fade out" -msgstr "Escurecer:" +msgstr "Desvanecer para fora" #: ../share/extensions/jessyInk_effects.inx.h:14 msgid "" @@ -38051,23 +36123,25 @@ msgid "" "JessyInk presentation. Please see code.google.com/p/jessyink for more " "details." msgstr "" +"Esta extensão permite instalar, atualizar e remover efeitos dos objetos para " +"uma apresentação JessyInk. Para mais informações ver http://code.google.com/" +"p/jessyink" #: ../share/extensions/jessyInk_export.inx.h:1 msgid "JessyInk zipped pdf or png output" -msgstr "" +msgstr "Exportar em JessyInk PDF ou PNG comprimido" #: ../share/extensions/jessyInk_export.inx.h:4 -#, fuzzy msgid "Resolution:" -msgstr "Relação:" +msgstr "Resolução:" #: ../share/extensions/jessyInk_export.inx.h:5 msgid "PDF" -msgstr "" +msgstr "PDF" #: ../share/extensions/jessyInk_export.inx.h:6 msgid "PNG" -msgstr "" +msgstr "PNG" #: ../share/extensions/jessyInk_export.inx.h:8 msgid "" @@ -38075,20 +36149,25 @@ msgid "" "an export layer in your browser. Please see code.google.com/p/jessyink for " "more details." msgstr "" +"Esta extensão permite exportar uma apresentação JessyInk após se ter criado " +"uma camada exportada no navegador de internet. Para mais informações ver " +"http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_export.inx.h:9 msgid "JessyInk zipped pdf or png output (*.zip)" -msgstr "" +msgstr "Apresentação JessyInk PDF ou PNG comprimido (*.zip)" #: ../share/extensions/jessyInk_export.inx.h:10 msgid "" "Creates a zip file containing pdfs or pngs of all slides of a JessyInk " "presentation." msgstr "" +"Cria um ficheiro ZIP que contém ficheiros PDF e PNG de todos os slides de " +"uma apresentação JessyInk." #: ../share/extensions/jessyInk_install.inx.h:1 msgid "Install/update" -msgstr "" +msgstr "Instalar/atualizar" #: ../share/extensions/jessyInk_install.inx.h:3 msgid "" @@ -38096,269 +36175,235 @@ msgid "" "to turn your SVG file into a presentation. Please see code.google.com/p/" "jessyink for more details." msgstr "" +"Esta extensão permite instalar ou atualizar o script JessyInk por forma a " +"tornar o ficheiro SVG numa apresentação. Para mais informações ver http://" +"code.google.com/p/jessyink" #: ../share/extensions/jessyInk_keyBindings.inx.h:1 -#, fuzzy msgid "Key bindings" -msgstr "_Desenho" +msgstr "Teclas associadas" #: ../share/extensions/jessyInk_keyBindings.inx.h:2 -#, fuzzy msgid "Slide mode" -msgstr "Escalar nós" +msgstr "Modo de slide" #: ../share/extensions/jessyInk_keyBindings.inx.h:3 -#, fuzzy msgid "Back (with effects):" -msgstr "Caminho de Efeitos..." +msgstr "Anterior (com efeitos):" #: ../share/extensions/jessyInk_keyBindings.inx.h:4 -#, fuzzy msgid "Next (with effects):" -msgstr "Efeito actual" +msgstr "Seguinte (com efeitos):" #: ../share/extensions/jessyInk_keyBindings.inx.h:5 msgid "Back (without effects):" -msgstr "" +msgstr "Anterior (sem efeitos):" #: ../share/extensions/jessyInk_keyBindings.inx.h:6 -#, fuzzy msgid "Next (without effects):" -msgstr "Efeito actual" +msgstr "Seguinte (sem efeitos):" #: ../share/extensions/jessyInk_keyBindings.inx.h:7 -#, fuzzy msgid "First slide:" -msgstr "Primeiro seleccionado" +msgstr "Primeiro slide:" #: ../share/extensions/jessyInk_keyBindings.inx.h:8 -#, fuzzy msgid "Last slide:" -msgstr "Colar tamanho" +msgstr "Último slide:" #: ../share/extensions/jessyInk_keyBindings.inx.h:9 -#, fuzzy msgid "Switch to index mode:" -msgstr "Trocar para a próxima camada" +msgstr "Mudar para modo índice:" #: ../share/extensions/jessyInk_keyBindings.inx.h:10 -#, fuzzy msgid "Switch to drawing mode:" -msgstr "Trocar para o modo de visualização normal" +msgstr "Mudar para modo de desenho:" #: ../share/extensions/jessyInk_keyBindings.inx.h:11 -#, fuzzy msgid "Set duration:" -msgstr "Saturação" +msgstr "Definir duração:" #: ../share/extensions/jessyInk_keyBindings.inx.h:12 -#, fuzzy msgid "Add slide:" -msgstr "nó final" +msgstr "Adicionar slide:" #: ../share/extensions/jessyInk_keyBindings.inx.h:13 msgid "Toggle progress bar:" -msgstr "" +msgstr "Alternar barra de progresso:" #: ../share/extensions/jessyInk_keyBindings.inx.h:14 -#, fuzzy msgid "Reset timer:" -msgstr "Redefinir centro" +msgstr "Repor o relógio a zero:" #: ../share/extensions/jessyInk_keyBindings.inx.h:15 -#, fuzzy msgid "Export presentation:" -msgstr "Orientação da página:" +msgstr "Exportar apresentação:" #: ../share/extensions/jessyInk_keyBindings.inx.h:17 -#, fuzzy msgid "Switch to slide mode:" -msgstr "Trocar para o modo de visualização normal" +msgstr "Mudar para o modo slide:" #: ../share/extensions/jessyInk_keyBindings.inx.h:18 -#, fuzzy msgid "Set path width to default:" -msgstr "Ajustar como padrão" +msgstr "Aplicar espessura do traço padrão:" #: ../share/extensions/jessyInk_keyBindings.inx.h:19 -#, fuzzy msgid "Set path width to 1:" -msgstr "Escala de largura" +msgstr "Aplicar espessura 1 ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:20 -#, fuzzy msgid "Set path width to 3:" -msgstr "Escala de largura" +msgstr "Aplicar espessura 3 ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:21 -#, fuzzy msgid "Set path width to 5:" -msgstr "Escala de largura" +msgstr "Aplicar espessura 5 ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:22 -#, fuzzy msgid "Set path width to 7:" -msgstr "Escala de largura" +msgstr "Aplicar espessura 7 ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:23 -#, fuzzy msgid "Set path width to 9:" -msgstr "Escala de largura" +msgstr "Aplicar espessura 9 ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:24 -#, fuzzy msgid "Set path color to blue:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor azul ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:25 -#, fuzzy msgid "Set path color to cyan:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor ciano ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:26 -#, fuzzy msgid "Set path color to green:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor verde ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:27 -#, fuzzy msgid "Set path color to black:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor preta ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:28 -#, fuzzy msgid "Set path color to magenta:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor magenta ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:29 -#, fuzzy msgid "Set path color to orange:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor laranja ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:30 -#, fuzzy msgid "Set path color to red:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor vermelha ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:31 -#, fuzzy msgid "Set path color to white:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor branca ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:32 -#, fuzzy msgid "Set path color to yellow:" -msgstr "Definir cor do traço" +msgstr "Aplicar cor amarela ao traço:" #: ../share/extensions/jessyInk_keyBindings.inx.h:33 -#, fuzzy msgid "Undo last path segment:" -msgstr "Desfazer a última ação" +msgstr "Desfazer o último segmento do caminho:" #: ../share/extensions/jessyInk_keyBindings.inx.h:34 -#, fuzzy msgid "Index mode" -msgstr "Indentar nó" +msgstr "Modo índice" #: ../share/extensions/jessyInk_keyBindings.inx.h:35 -#, fuzzy msgid "Select the slide to the left:" -msgstr "Selecionar um ficheiro para guardar" +msgstr "Selecionar o slide à esquerda:" #: ../share/extensions/jessyInk_keyBindings.inx.h:36 -#, fuzzy msgid "Select the slide to the right:" -msgstr "Ajusta a Ecrã ao desenho" +msgstr "Selecionar o slide à direita:" #: ../share/extensions/jessyInk_keyBindings.inx.h:37 msgid "Select the slide above:" -msgstr "" +msgstr "Selecionar o slide acima:" #: ../share/extensions/jessyInk_keyBindings.inx.h:38 msgid "Select the slide below:" -msgstr "" +msgstr "Selecionar o slide abaixo:" #: ../share/extensions/jessyInk_keyBindings.inx.h:39 -#, fuzzy msgid "Previous page:" -msgstr "Efeito Anterior" +msgstr "Página anterior:" #: ../share/extensions/jessyInk_keyBindings.inx.h:40 -#, fuzzy msgid "Next page:" -msgstr "Selecionar página:" +msgstr "Página seguinte:" #: ../share/extensions/jessyInk_keyBindings.inx.h:41 -#, fuzzy msgid "Decrease number of columns:" -msgstr "Número de colunas" +msgstr "Diminuir número de colunas:" #: ../share/extensions/jessyInk_keyBindings.inx.h:42 -#, fuzzy msgid "Increase number of columns:" -msgstr "Número de colunas" +msgstr "Aumentar número de colunas:" #: ../share/extensions/jessyInk_keyBindings.inx.h:43 -#, fuzzy msgid "Set number of columns to default:" -msgstr "Número de colunas" +msgstr "Aplicar o número de colunas padrão:" #: ../share/extensions/jessyInk_keyBindings.inx.h:45 msgid "" "This extension allows you customise the key bindings JessyInk uses. Please " "see code.google.com/p/jessyink for more details." msgstr "" +"Esta extensão permite configurar os atalhos de teclado que o JessyInk usa. " +"Para mais informações ver http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_masterSlide.inx.h:1 -#, fuzzy msgid "Master slide" -msgstr "Colar tamanho" +msgstr "Slide principal" #: ../share/extensions/jessyInk_masterSlide.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:3 -#, fuzzy msgid "Name of layer:" -msgstr "Renomear camada" +msgstr "Nome da camada:" #: ../share/extensions/jessyInk_masterSlide.inx.h:4 msgid "If no layer name is supplied, the master slide is unset." msgstr "" +"Se não for fornecido nenhum nome da camada, o slide principal não é definido." #: ../share/extensions/jessyInk_masterSlide.inx.h:6 msgid "" "This extension allows you to change the master slide JessyInk uses. Please " "see code.google.com/p/jessyink for more details." msgstr "" +"Esta extensão permite mudar o slide principal que o JessyInk usa. Para mais " +"informações ver http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_mouseHandler.inx.h:1 -#, fuzzy msgid "Mouse handler" -msgstr "Mover manualmente" +msgstr "Alça do rato" #: ../share/extensions/jessyInk_mouseHandler.inx.h:2 -#, fuzzy msgid "Mouse settings:" -msgstr "Configurações da página" +msgstr "Configurações do rato:" #: ../share/extensions/jessyInk_mouseHandler.inx.h:4 msgid "No-click" -msgstr "" +msgstr "Sem clique" #: ../share/extensions/jessyInk_mouseHandler.inx.h:5 -#, fuzzy msgid "Dragging/zoom" -msgstr "Desenho" +msgstr "Arrastar/aumentar-diminuir vista" #: ../share/extensions/jessyInk_mouseHandler.inx.h:7 msgid "" "This extension allows you customise the mouse handler JessyInk uses. Please " "see code.google.com/p/jessyink for more details." msgstr "" +"Esta extensão permite configurar a alça do rato que o JessyInk usa. Para " +"mais informações ver http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_summary.inx.h:1 -#, fuzzy msgid "Summary" -msgstr "_Simetria" +msgstr "Sumário" #: ../share/extensions/jessyInk_summary.inx.h:3 msgid "" @@ -38366,80 +36411,77 @@ msgid "" "effects and transitions contained in this SVG file. Please see code.google." "com/p/jessyink for more details." msgstr "" +"Esta extensão permite obter informações sobre o JessyInk, quanto ao script, " +"efeitos e transições presentes neste ficheiro SVG. Para mais informações ver " +"http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_transitions.inx.h:1 -#, fuzzy msgid "Transitions" -msgstr "Informação" +msgstr "Transições" #: ../share/extensions/jessyInk_transitions.inx.h:6 msgid "Transition in effect" -msgstr "" +msgstr "Efeito de transição para dentro" #: ../share/extensions/jessyInk_transitions.inx.h:9 -#, fuzzy msgid "Fade" -msgstr "Nivelar" +msgstr "Desvanecer" #: ../share/extensions/jessyInk_transitions.inx.h:11 -#, fuzzy msgid "Transition out effect" -msgstr "Colar efeito de caminho ao vivo" +msgstr "Efeito de transição para fora" #: ../share/extensions/jessyInk_transitions.inx.h:13 msgid "" "This extension allows you to change the transition JessyInk uses for the " "selected layer. Please see code.google.com/p/jessyink for more details." msgstr "" +"Esta extensão permite alterar a transição que o JessyInk usa para a camada " +"selecionada. Para mais informações ver http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_uninstall.inx.h:1 msgid "Uninstall/remove" -msgstr "" +msgstr "Desinstalar/remover" #: ../share/extensions/jessyInk_uninstall.inx.h:3 -#, fuzzy msgid "Remove script" -msgstr "Remover grelha" +msgstr "Remover script" #: ../share/extensions/jessyInk_uninstall.inx.h:4 -#, fuzzy msgid "Remove effects" -msgstr "Remover efeito de caminho" +msgstr "Remover efeitos" #: ../share/extensions/jessyInk_uninstall.inx.h:5 -#, fuzzy msgid "Remove master slide assignment" -msgstr "Remover máscara da selecção" +msgstr "Remover atribuição do slide principal" #: ../share/extensions/jessyInk_uninstall.inx.h:6 -#, fuzzy msgid "Remove transitions" -msgstr "Remover _Transformações" +msgstr "Remover transições" #: ../share/extensions/jessyInk_uninstall.inx.h:7 -#, fuzzy msgid "Remove auto-texts" -msgstr "Remover traço" +msgstr "Remover textos automáticos" #: ../share/extensions/jessyInk_uninstall.inx.h:8 -#, fuzzy msgid "Remove views" -msgstr "Remover filtro" +msgstr "Remover vistas" #: ../share/extensions/jessyInk_uninstall.inx.h:9 msgid "Please select the parts of JessyInk you want to uninstall/remove." -msgstr "" +msgstr "Selecionar as partes que quer instalar ou remover do JessyInk." #: ../share/extensions/jessyInk_uninstall.inx.h:11 msgid "" "This extension allows you to uninstall the JessyInk script. Please see code." "google.com/p/jessyink for more details." msgstr "" +"Esta extensão permite desinstalar o script JessyInk. Para mais informações " +"ver http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_video.inx.h:1 -#, fuzzy msgid "Video" -msgstr "_Ver" +msgstr "Video" #: ../share/extensions/jessyInk_video.inx.h:3 msgid "" @@ -38447,35 +36489,38 @@ msgid "" "This element allows you to integrate a video into your JessyInk " "presentation. Please see code.google.com/p/jessyink for more details." msgstr "" +"Esta extensão coloca um elemento de video JessyInk no slide atual (camada). " +"Este elemento permite integrar um video na apresentação JessyInk. Para mais " +"informações ver http://code.google.com/p/jessyink" #: ../share/extensions/jessyInk_view.inx.h:5 -#, fuzzy msgid "Remove view" -msgstr "Remover Vermelho" +msgstr "Remover vista" #: ../share/extensions/jessyInk_view.inx.h:6 msgid "Choose order number 0 to set the initial view of a slide." -msgstr "" +msgstr "Escolher o número da ordem 0 para definir a vista inicial de um slide." #: ../share/extensions/jessyInk_view.inx.h:8 msgid "" "This extension allows you to set, update and remove views for a JessyInk " "presentation. Please see code.google.com/p/jessyink for more details." msgstr "" +"Esta extensão permite configurar, atualizar e remover vistas de uma " +"apresentação JessyInk. Para mais informações ver http://code.google.com/p/" +"jessyink" #: ../share/extensions/jitternodes.inx.h:1 msgid "Jitter nodes" -msgstr "Aguçar nós" +msgstr "Nós aguçados" #: ../share/extensions/jitternodes.inx.h:3 -#, fuzzy msgid "Maximum displacement in X (px):" -msgstr "Deslocamento máximo, px" +msgstr "Deslocamento máximo no X (px):" #: ../share/extensions/jitternodes.inx.h:4 -#, fuzzy msgid "Maximum displacement in Y (px):" -msgstr "Deslocamento máximo, px" +msgstr "Deslocamento máximo no Y (px):" #: ../share/extensions/jitternodes.inx.h:6 msgid "Shift node handles" @@ -38483,38 +36528,35 @@ msgstr "Deslocar alças do nó" #: ../share/extensions/jitternodes.inx.h:7 msgid "Distribution of the displacements:" -msgstr "" +msgstr "Distribuição dos deslocamentos:" #: ../share/extensions/jitternodes.inx.h:8 -#, fuzzy msgid "Uniform" -msgstr "Ruído Uniforme" +msgstr "Uniforme" #: ../share/extensions/jitternodes.inx.h:9 msgid "Pareto" -msgstr "" +msgstr "Pareto" #: ../share/extensions/jitternodes.inx.h:10 -#, fuzzy msgid "Gaussian" -msgstr "Desfocagem gaussiana" +msgstr "Gaussiano" #: ../share/extensions/jitternodes.inx.h:11 -#, fuzzy msgid "Log-normal" -msgstr "Normal" +msgstr "Log-normal" #: ../share/extensions/jitternodes.inx.h:13 msgid "" "This effect randomly shifts the nodes (and optionally node handles) of the " "selected path." msgstr "" -"Este efeito aleatoriamente desloca os nós (e opcionalmente suas alças) do " -"caminho seleccionado." +"Este efeito desloca os nós aleatoriamente (e opcionalmente as alças) do " +"caminho selecionado." #: ../share/extensions/layers2svgfont.inx.h:1 msgid "3 - Convert Glyph Layers to SVG Font" -msgstr "" +msgstr "3 - Converter Camadas de Caracteres em Fontes SVG" #: ../share/extensions/layers2svgfont.inx.h:2 #: ../share/extensions/new_glyph_layer.inx.h:3 @@ -38522,116 +36564,97 @@ msgstr "" #: ../share/extensions/previous_glyph_layer.inx.h:2 #: ../share/extensions/setup_typography_canvas.inx.h:7 #: ../share/extensions/svgfont2layers.inx.h:3 -#, fuzzy msgid "Typography" -msgstr "Espiral" +msgstr "Tipografia" #: ../share/extensions/layout_nup.inx.h:1 msgid "N-up layout" -msgstr "" +msgstr "Disposição de N elementos" #: ../share/extensions/layout_nup.inx.h:2 -#, fuzzy msgid "Page dimensions" -msgstr "Divisão" +msgstr "Dimensões da página" #: ../share/extensions/layout_nup.inx.h:4 -#, fuzzy msgid "Size X:" -msgstr "Tamanho" +msgstr "Tamanho X:" #: ../share/extensions/layout_nup.inx.h:5 -#, fuzzy msgid "Size Y:" -msgstr "Tamanho" +msgstr "Tamanho Y:" #: ../share/extensions/layout_nup.inx.h:6 #: ../share/extensions/printing_marks.inx.h:13 -#, fuzzy msgid "Top:" -msgstr "Topo" +msgstr "Topo:" #: ../share/extensions/layout_nup.inx.h:7 #: ../share/extensions/printing_marks.inx.h:14 -#, fuzzy msgid "Bottom:" -msgstr "Fundo" +msgstr "Fundo:" #: ../share/extensions/layout_nup.inx.h:8 #: ../share/extensions/printing_marks.inx.h:15 -#, fuzzy msgid "Left:" -msgstr "Comprimento:" +msgstr "Esquerda:" #: ../share/extensions/layout_nup.inx.h:9 #: ../share/extensions/printing_marks.inx.h:16 -#, fuzzy msgid "Right:" -msgstr "Direitos:" +msgstr "Direita:" #: ../share/extensions/layout_nup.inx.h:10 -#, fuzzy msgid "Page margins" -msgstr "Ângulo esquerdo" +msgstr "Margens da página" #: ../share/extensions/layout_nup.inx.h:11 -#, fuzzy msgid "Layout dimensions" -msgstr "Posição Aleatória" +msgstr "Dimensões do laioute" #: ../share/extensions/layout_nup.inx.h:13 -#, fuzzy msgid "Cols:" -msgstr "Cores" +msgstr "Colunas:" #: ../share/extensions/layout_nup.inx.h:14 msgid "Auto calculate layout size" -msgstr "" +msgstr "Calcular automaticamente o tamanho do laioute" #: ../share/extensions/layout_nup.inx.h:15 -#, fuzzy msgid "Layout padding" -msgstr "Posição Aleatória" +msgstr "Acolchoamento do laioute" #: ../share/extensions/layout_nup.inx.h:16 -#, fuzzy msgid "Layout margins" -msgstr "Ângulo esquerdo" +msgstr "Margens do laioute" #: ../share/extensions/layout_nup.inx.h:17 #: ../share/extensions/printing_marks.inx.h:2 -#, fuzzy msgid "Marks" -msgstr "Marca" +msgstr "Marcas" #: ../share/extensions/layout_nup.inx.h:18 -#, fuzzy msgid "Place holder" -msgstr "Traço preto" +msgstr "Espaço reservado" #: ../share/extensions/layout_nup.inx.h:19 -#, fuzzy msgid "Cutting marks" -msgstr "Imprimir usando operadores PostScript" +msgstr "Marcas de corte" #: ../share/extensions/layout_nup.inx.h:20 msgid "Padding guide" -msgstr "" +msgstr "Guia de alcochoado" #: ../share/extensions/layout_nup.inx.h:21 -#, fuzzy msgid "Margin guide" -msgstr "Mover guia" +msgstr "Guia de margem" #: ../share/extensions/layout_nup.inx.h:22 -#, fuzzy msgid "Padding box" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Caixa de acolchoado" #: ../share/extensions/layout_nup.inx.h:23 -#, fuzzy msgid "Margin box" -msgstr "caixa de arte" +msgstr "Caixa de margem" #: ../share/extensions/layout_nup.inx.h:25 msgid "" @@ -38646,56 +36669,65 @@ msgid "" " * Layout padding: inner padding for each part of the layout.\n" " " msgstr "" +"\n" +"Parâmetros:\n" +" * Tamanho da página: largura e altura.\n" +" * Margens da página: espaço extra à volta de cada página.\n" +" * Linhas e colunas do laioute.\n" +" * Tamanho do laioute: largura e altura, calculado automaticamente se um " +"deles for 0.\n" +" * Calcular automaticamente o tamanho do laioute: não usar os valores de " +"tamanho do laioute.\n" +" * Margens do laioute: espaço em branco à volta de cada parte do " +"laioute.\n" +" * Acolchoados de laioute: acolchoados de dentro para cada parte do " +"laioute.\n" +" " #: ../share/extensions/layout_nup.inx.h:36 #: ../share/extensions/perfectboundcover.inx.h:20 #: ../share/extensions/printing_marks.inx.h:21 #: ../share/extensions/svgcalendar.inx.h:13 msgid "Layout" -msgstr "Arranjo" +msgstr "Laioute" #: ../share/extensions/lindenmayer.inx.h:1 msgid "L-system" -msgstr "L-Sistema" +msgstr "Sistema de Lindenmayer" #: ../share/extensions/lindenmayer.inx.h:2 msgid "Axiom and rules" -msgstr "" +msgstr "Axioma e regras" #: ../share/extensions/lindenmayer.inx.h:3 -#, fuzzy msgid "Axiom:" -msgstr "Axioma" +msgstr "Axioma:" #: ../share/extensions/lindenmayer.inx.h:4 -#, fuzzy msgid "Rules:" -msgstr "Regras" +msgstr "Regras:" #: ../share/extensions/lindenmayer.inx.h:6 -#, fuzzy msgid "Step length (px):" -msgstr "Tamanho do passo (px)" +msgstr "Comprimento do passo (px):" #: ../share/extensions/lindenmayer.inx.h:8 -#, fuzzy, no-c-format +#, no-c-format msgid "Randomize step (%):" -msgstr "Passos aleatórios (%)" +msgstr "Passo aleatório (%):" #: ../share/extensions/lindenmayer.inx.h:9 -#, fuzzy msgid "Left angle:" -msgstr "Ângulo esquerdo" +msgstr "Ângulo esquerdo:" #: ../share/extensions/lindenmayer.inx.h:10 -#, fuzzy msgid "Right angle:" -msgstr "Ângulo direito" +msgstr "Ângulo direito:" #: ../share/extensions/lindenmayer.inx.h:12 -#, fuzzy, no-c-format +#, no-c-format msgid "Randomize angle (%):" -msgstr "Ângulo aleatório (%)" +msgstr "Ângulo aleatório (%):" #: ../share/extensions/lindenmayer.inx.h:14 msgid "" @@ -38719,25 +36751,41 @@ msgid "" "\n" "]: return to remembered point\n" msgstr "" +"\n" +"O caminho é gerado aplicando as \n" +"substituições das Regras para o Axioma, \n" +"tempos de Ordem. Os seguintes comandos são \n" +"reconhecidos no Axioma e Regras:\n" +"\n" +"Qualquer um A,B,C,D,E,F: desenhar em frente \n" +"\n" +"Qualquer um G,H,I,J,K,L: mover em frente \n" +"\n" +"+: virar à esquerda\n" +"\n" +"-: virar à direita\n" +"\n" +"|: virar 180 graus\n" +"\n" +"[: lembrar ponto\n" +"\n" +"]: voltar ao ponto lembrado\n" #: ../share/extensions/lorem_ipsum.inx.h:1 msgid "Lorem ipsum" msgstr "Lorem ipsum" #: ../share/extensions/lorem_ipsum.inx.h:3 -#, fuzzy msgid "Number of paragraphs:" -msgstr "Número de parágrafos" +msgstr "Número de parágrafos:" #: ../share/extensions/lorem_ipsum.inx.h:4 -#, fuzzy msgid "Sentences per paragraph:" -msgstr "Frases por parágrafo" +msgstr "Frases por parágrafo:" #: ../share/extensions/lorem_ipsum.inx.h:5 -#, fuzzy msgid "Paragraph length fluctuation (sentences):" -msgstr "Flutuação do tamanho do parágrafo (frases)" +msgstr "Flutuação do tamanho do parágrafo (frases):" #: ../share/extensions/lorem_ipsum.inx.h:7 msgid "" @@ -38745,173 +36793,149 @@ msgid "" "text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a " "new flowed text object, the size of the page, is created in a new layer." msgstr "" +"Este efeito cria o texto de espaço reservado \"Lorem Ipsum\". Se for " +"selecionado um texto fluido, o \"Lorem Ipsum\" é adicionado a este, caso " +"contrário é criado um objeto novo de texto fluido, do tamanho da página, " +"numa nova camada." #: ../share/extensions/markers_strokepaint.inx.h:1 -#, fuzzy msgid "Color Markers" -msgstr "Cores" +msgstr "Marcadores Coloridos" #: ../share/extensions/markers_strokepaint.inx.h:2 -#, fuzzy msgid "From object" -msgstr "Nenhum objecto" +msgstr "Do objeto" #: ../share/extensions/markers_strokepaint.inx.h:3 -#, fuzzy msgid "Marker type:" -msgstr "Mais escuro" +msgstr "Tipo de marcador:" #: ../share/extensions/markers_strokepaint.inx.h:4 -#, fuzzy msgid "Invert fill and stroke colors" -msgstr "Definir cor do traço" +msgstr "Inverter preenchimento e cor do traço" #: ../share/extensions/markers_strokepaint.inx.h:5 -#, fuzzy msgid "Assign alpha" -msgstr "Alterar opacidade" +msgstr "Atribuir transparência" #: ../share/extensions/markers_strokepaint.inx.h:6 msgid "solid" -msgstr "" +msgstr "sólido" #: ../share/extensions/markers_strokepaint.inx.h:7 -#, fuzzy msgid "filled" -msgstr "Tipografia normal" +msgstr "preenchido" #: ../share/extensions/markers_strokepaint.inx.h:10 -#, fuzzy msgid "Assign fill color" -msgstr "Definir cor de preenchimento" +msgstr "Atribuir cor do preenchimento" #: ../share/extensions/markers_strokepaint.inx.h:11 -#, fuzzy msgid "Stroke" -msgstr "Traço:" +msgstr "Traço" #: ../share/extensions/markers_strokepaint.inx.h:12 -#, fuzzy msgid "Assign stroke color" -msgstr "Definir cor do traço" +msgstr "Atribuir cor do traço" #: ../share/extensions/measure.inx.h:1 msgid "Measure Path" -msgstr "Medir Caminho" +msgstr "Caminho de Medição" #: ../share/extensions/measure.inx.h:3 -#, fuzzy msgid "Measurement Type: " -msgstr "Unidade de medida:" +msgstr "Tipo de Medida: " #: ../share/extensions/measure.inx.h:4 -#, fuzzy msgid "Text Presets" -msgstr "Propriedades de Textos" +msgstr "Modelos de Texto" #: ../share/extensions/measure.inx.h:6 -#, fuzzy msgid "Text on Path" -msgstr "_Por no Caminho" +msgstr "Texto no Caminho" #: ../share/extensions/measure.inx.h:8 -#, fuzzy, no-c-format +#, no-c-format msgid "Offset (%)" -msgstr "Deslocamentos" +msgstr "Deslocamento (%)" #: ../share/extensions/measure.inx.h:9 -#, fuzzy msgid "Text anchor:" -msgstr "Entrada de Texto" +msgstr "Âncora de texto:" #: ../share/extensions/measure.inx.h:10 -#, fuzzy msgid "Fixed Text" -msgstr "Texto fluído" +msgstr "Texto Fixo" #: ../share/extensions/measure.inx.h:11 -#, fuzzy msgid "Angle (°):" -msgstr "Ângulo X:" +msgstr "Ângulo (°):" #: ../share/extensions/measure.inx.h:12 -#, fuzzy msgid "Font size (px):" -msgstr "Tamanho da fonte [px]" +msgstr "Tamanho da fonte (px):" #: ../share/extensions/measure.inx.h:13 -#, fuzzy msgid "Offset (px):" -msgstr "Deslocamentos" +msgstr "Deslocamento (px):" #: ../share/extensions/measure.inx.h:15 msgid "Scale Factor (Drawing:Real Length) = 1:" -msgstr "" +msgstr "Fator de Escala (Desenhando:Comprimento Real) = 1:" #: ../share/extensions/measure.inx.h:16 -#, fuzzy msgid "Length Unit:" msgstr "Unidade de Comprimento:" #: ../share/extensions/measure.inx.h:18 -#, fuzzy msgctxt "measure extension" msgid "Area" -msgstr "São desligados" +msgstr "Ãrea" #: ../share/extensions/measure.inx.h:19 -#, fuzzy msgctxt "measure extension" msgid "Center of Mass" -msgstr "Massa:" +msgstr "Centro da Massa" #: ../share/extensions/measure.inx.h:21 -#, fuzzy msgid "Text on Path, Start" -msgstr "_Por no Caminho" +msgstr "Texto no Caminho, Início" #: ../share/extensions/measure.inx.h:22 -#, fuzzy msgid "Text on Path, Middle" -msgstr "_Por no Caminho" +msgstr "Texto no Caminho, Meio" #: ../share/extensions/measure.inx.h:23 -#, fuzzy msgid "Text on Path, End" -msgstr "_Por no Caminho" +msgstr "Texto no Caminho, Fim" #: ../share/extensions/measure.inx.h:24 msgid "Fixed Text, Start of Path" -msgstr "" +msgstr "Texto Fixo, Início do Caminho" #: ../share/extensions/measure.inx.h:25 msgid "Fixed Text, Center of BBox" -msgstr "" +msgstr "Texto Fixo, Centro da Caixa Limitadora" #: ../share/extensions/measure.inx.h:26 -#, fuzzy msgid "Fixed Text, Center of Mass" -msgstr "Massa:" +msgstr "Texto Fixo, Centro de Massa" #: ../share/extensions/measure.inx.h:28 -#, fuzzy msgid "Center" -msgstr "Centralizar" +msgstr "Centro" #: ../share/extensions/measure.inx.h:30 -#, fuzzy msgid "Start of Path" -msgstr "Pontilhar peças" +msgstr "Início do Caminho" #: ../share/extensions/measure.inx.h:31 -#, fuzzy msgid "Center of BBox" -msgstr "Massa:" +msgstr "Centor da Caixa Limitadora" #: ../share/extensions/measure.inx.h:32 -#, fuzzy msgid "Center of Mass" -msgstr "Massa:" +msgstr "Centro de Massa" #: ../share/extensions/measure.inx.h:35 #, no-c-format @@ -38932,10 +36956,24 @@ msgid "" "Bezier curves. If a circle is used, the area may be too high by as much as " "0.03%." msgstr "" +"Este efeito mede o comprimento, a área ou o centro de massa dos caminhos " +"selecionados. O comprimento e a área são adicionados como objeto de texto " +"com as unidades selecionadas. O centro de massa é mostrado numa cruz.\n" +" * O formato de visualização do texto pode ser tanto Texto-no-Caminho como " +"texto isolado num ângulo especificado.\n" +" * O número de dígitos significantes pode ser controlado no campo " +"Precisão.\n" +" * O campo Deslocamento controla a distância entre o texto e o caminho.\n" +" * O fator de Escala pode ser usado para fazer medições em desenhos " +"redimensionados. Por exemplo, se 1cm no desenho equivale a 2,5m no mundo " +"real, deve-se introduzir no campo Escala o valor 250.\n" +" * Ao calcular a área, o resultado deve ter precisão para polígonos e " +"curvas Bézier. Se for usado um círculo, a área pode ser demasiado elevada, " +"tanto como 0.03%." #: ../share/extensions/merge_styles.inx.h:1 msgid "Merge Styles into CSS" -msgstr "" +msgstr "Fundir Estilos no CSS" #: ../share/extensions/merge_styles.inx.h:2 msgid "" @@ -38944,258 +36982,226 @@ msgid "" "inline style attributes. Please use a name which best describes the kinds of " "objects and their common context for best effect." msgstr "" +"Todos os nós selecionados serão agrupados juntos e os seus atributos de " +"estilo comum criarão uma nova classe. Esta classe substituirá os atributos " +"do estilo inline. Deve-se usar um nome que descreva da melhor forma o tipo " +"de objetos e o contexto para obter o melhor efeito." #: ../share/extensions/merge_styles.inx.h:3 msgid "New Class Name:" -msgstr "" +msgstr "Novo Nome da Classe:" #: ../share/extensions/merge_styles.inx.h:4 -#, fuzzy msgid "Stylesheet" -msgstr "Estilo" +msgstr "Folha de Estilo" #: ../share/extensions/motion.inx.h:1 -#, fuzzy msgid "Motion" -msgstr "Posição:" +msgstr "Movimento" #: ../share/extensions/motion.inx.h:2 -#, fuzzy msgid "Magnitude:" -msgstr "Magnitude" +msgstr "Magnitude:" #: ../share/extensions/new_glyph_layer.inx.h:1 -#, fuzzy msgid "2 - Add Glyph Layer" -msgstr "Adicionar camada" +msgstr "2 - Adicionar Camada de Caractere" #: ../share/extensions/new_glyph_layer.inx.h:2 -#, fuzzy msgid "Unicode character:" -msgstr "Inserir caractere Unicode" +msgstr "Caractere Unicode:" #: ../share/extensions/next_glyph_layer.inx.h:1 msgid "View Next Glyph" -msgstr "" +msgstr "Ver o Próximo Caractere" #: ../share/extensions/nicechart.inx.h:1 msgid "NiceCharts" -msgstr "" +msgstr "Gráficos Bons" #: ../share/extensions/nicechart.inx.h:2 msgid "Data" -msgstr "" +msgstr "Dados" #: ../share/extensions/nicechart.inx.h:3 -#, fuzzy msgid "Data from file" -msgstr "_Propriedades da Ligação" +msgstr "Dados de um ficheiro" #: ../share/extensions/nicechart.inx.h:5 -#, fuzzy msgid "Delimiter:" -msgstr "Limite de aguçamento:" +msgstr "Delimitador:" #: ../share/extensions/nicechart.inx.h:6 msgid "Column that contains the keys:" -msgstr "" +msgstr "Coluna que contém as chaves:" #: ../share/extensions/nicechart.inx.h:7 -#, fuzzy msgid "Column that contains the values:" -msgstr "Rotação (graus)" +msgstr "Coluna que contém os valores:" #: ../share/extensions/nicechart.inx.h:8 msgid "File encoding (e.g. utf-8):" -msgstr "" +msgstr "Codificação do ficheiro (por ex. utf-8):" #: ../share/extensions/nicechart.inx.h:9 msgid "First line contains headings" -msgstr "" +msgstr "A primeira linha contém os cabeçalhos" #: ../share/extensions/nicechart.inx.h:10 -#, fuzzy msgid "Direct input" -msgstr "Descrição" +msgstr "Entrada direta" #: ../share/extensions/nicechart.inx.h:11 msgid "Data:" -msgstr "" +msgstr "Dados:" #: ../share/extensions/nicechart.inx.h:12 -#, fuzzy msgid "Enter the full path to a CSV file:" -msgstr "Preenchimento em cor lisa" +msgstr "Introduzir caminho completo do ficheiro CSV:" #: ../share/extensions/nicechart.inx.h:13 msgid "Type in comma separated values:" -msgstr "" +msgstr "Escrever valores separados com vírgula:" #: ../share/extensions/nicechart.inx.h:14 msgid "(format like this: apples:3,bananas:5)" -msgstr "" +msgstr "(por exemplo: maçâs:3,bananas:5)" #: ../share/extensions/nicechart.inx.h:15 -#, fuzzy msgid "Labels" -msgstr "_Rótulo" +msgstr "Etiquetas" #: ../share/extensions/nicechart.inx.h:16 -#, fuzzy msgid "Font:" -msgstr "Fonte" +msgstr "Fonte:" #: ../share/extensions/nicechart.inx.h:18 -#, fuzzy msgid "Font color:" -msgstr "Soltar cor" +msgstr "Cor da fonte:" #: ../share/extensions/nicechart.inx.h:19 msgid "Charts" -msgstr "" +msgstr "Gráficos" #: ../share/extensions/nicechart.inx.h:20 -#, fuzzy msgid "Draw horizontally" -msgstr "Mover horizontalmente" +msgstr "Desenhar horizontalmente" #: ../share/extensions/nicechart.inx.h:21 -#, fuzzy msgid "Bar length:" -msgstr "Comprimento de onda" +msgstr "Comprimento da barra:" #: ../share/extensions/nicechart.inx.h:22 -#, fuzzy msgid "Bar width:" -msgstr "Largura igual" +msgstr "Largura da barra:" #: ../share/extensions/nicechart.inx.h:23 -#, fuzzy msgid "Pie radius:" -msgstr "Raio interno:" +msgstr "Raio do queijo:" #: ../share/extensions/nicechart.inx.h:24 -#, fuzzy msgid "Bar offset:" -msgstr "Ajustar a distância de compensação" +msgstr "Deslocamento da barra:" #: ../share/extensions/nicechart.inx.h:26 msgid "Offset between chart and labels:" -msgstr "" +msgstr "Deslocamento entre o gráfico e as etiquetas:" #: ../share/extensions/nicechart.inx.h:27 msgid "Offset between chart and chart title:" -msgstr "" +msgstr "Deslocamento entre o gráfico e o título do gráfico:" #: ../share/extensions/nicechart.inx.h:28 msgid "Work around aliasing effects (creates overlapping segments)" -msgstr "" +msgstr "Alternativa a efeitos serrilhados (cria segmentos sobrepostos)" #: ../share/extensions/nicechart.inx.h:29 -#, fuzzy msgid "Color scheme:" -msgstr "Cores:" +msgstr "Esquema de cores:" #: ../share/extensions/nicechart.inx.h:30 -#, fuzzy msgid "Custom colors:" -msgstr "Soltar cor" +msgstr "Cores personalizadas:" #: ../share/extensions/nicechart.inx.h:31 -#, fuzzy msgid "Reverse color scheme" -msgstr "Remover traço" +msgstr "Esquema invertido de cores" #: ../share/extensions/nicechart.inx.h:32 -#, fuzzy msgid "Drop shadow" -msgstr "Soltar SVG" +msgstr "Sombra caída" #: ../share/extensions/nicechart.inx.h:37 msgid "SAP" -msgstr "" +msgstr "SAP" #: ../share/extensions/nicechart.inx.h:38 -#, fuzzy msgid "Values" -msgstr "Valor" +msgstr "Valores" #: ../share/extensions/nicechart.inx.h:39 -#, fuzzy msgid "Show values" -msgstr "Desenhar Alças" +msgstr "Mostrar valores" #: ../share/extensions/nicechart.inx.h:40 -#, fuzzy msgid "Chart type:" -msgstr "Sombra" +msgstr "Tipo de gráfico:" #: ../share/extensions/nicechart.inx.h:41 -#, fuzzy msgid "Bar chart" -msgstr "Altura da Barra:" +msgstr "Gráfico de barras" #: ../share/extensions/nicechart.inx.h:42 msgid "Pie chart" -msgstr "" +msgstr "Gráfico de queijo" #: ../share/extensions/nicechart.inx.h:43 msgid "Pie chart (percentage)" -msgstr "" +msgstr "Gráfico de queijo (percentagem)" #: ../share/extensions/nicechart.inx.h:44 msgid "Stacked bar chart" -msgstr "" +msgstr "Gráfico de barras acumuladas" #: ../share/extensions/param_curves.inx.h:1 -#, fuzzy msgid "Parametric Curves" -msgstr "Parâmetros" +msgstr "Curvas Paramétricas" #: ../share/extensions/param_curves.inx.h:2 -#, fuzzy msgid "Range and Sampling" msgstr "Escala e Amostragem" #: ../share/extensions/param_curves.inx.h:3 -#, fuzzy msgid "Start t-value:" -msgstr "Valor de x inicial" +msgstr "Valor de T inicial:" #: ../share/extensions/param_curves.inx.h:4 -#, fuzzy msgid "End t-value:" -msgstr "Valor de x final" +msgstr "Valor de T final:" #: ../share/extensions/param_curves.inx.h:5 -#, fuzzy msgid "Multiply t-range by 2*pi" -msgstr "Multiplicar a escala x por 2*pi" +msgstr "Multiplicar a escala T por 2*pi" #: ../share/extensions/param_curves.inx.h:6 -#, fuzzy msgid "X-value of rectangle's left:" -msgstr "Valor de y do topo do retângulo" +msgstr "Valor X da esquerda do retângulo:" #: ../share/extensions/param_curves.inx.h:7 -#, fuzzy msgid "X-value of rectangle's right:" -msgstr "Valor de y do topo do retângulo" +msgstr "Valor X da direita do retângulo:" #: ../share/extensions/param_curves.inx.h:8 -#, fuzzy msgid "Y-value of rectangle's bottom:" -msgstr "Valor de y da base do retângulo" +msgstr "Valor Y da parte de baixo do retângulo:" #: ../share/extensions/param_curves.inx.h:9 -#, fuzzy msgid "Y-value of rectangle's top:" -msgstr "Valor de y do topo do retângulo" +msgstr "Valor Y da parte de cima do retângulo:" #: ../share/extensions/param_curves.inx.h:10 -#, fuzzy msgid "Samples:" -msgstr "Amostras" +msgstr "Amostras:" #: ../share/extensions/param_curves.inx.h:14 msgid "" @@ -39203,20 +37209,21 @@ msgid "" "scales.\n" "First derivatives are always determined numerically." msgstr "" +"Selecionar um retângulo antes de usar a extensão. Irá determinar as escalas " +"X e Y.\n" +"As primeiras derivadas são sempre determinadas numericamente." #: ../share/extensions/param_curves.inx.h:26 -#, fuzzy msgid "X-Function:" -msgstr "Função" +msgstr "Função X:" #: ../share/extensions/param_curves.inx.h:27 -#, fuzzy msgid "Y-Function:" -msgstr "Função" +msgstr "Função Y:" #: ../share/extensions/pathalongpath.inx.h:1 msgid "Pattern along Path" -msgstr "Padrão ao longo do caminho" +msgstr "Padrão ao longo do Caminho" #: ../share/extensions/pathalongpath.inx.h:3 msgid "Copies of the pattern:" @@ -39233,15 +37240,13 @@ msgstr "Espaço entre cópias:" #: ../share/extensions/pathalongpath.inx.h:6 #: ../share/extensions/pathscatter.inx.h:6 -#, fuzzy msgid "Normal offset:" -msgstr "Tipografia normal" +msgstr "Deslocamento normal:" #: ../share/extensions/pathalongpath.inx.h:7 #: ../share/extensions/pathscatter.inx.h:7 -#, fuzzy msgid "Tangential offset:" -msgstr "Tipografia tangencial" +msgstr "Deslocamento tangencial:" #: ../share/extensions/pathalongpath.inx.h:8 #: ../share/extensions/pathscatter.inx.h:8 @@ -39254,13 +37259,12 @@ msgid "Duplicate the pattern before deformation" msgstr "Duplicar o padrão antes da deformação" #: ../share/extensions/pathalongpath.inx.h:14 -#, fuzzy msgid "Snake" -msgstr "Enviesar" +msgstr "Cobra" #: ../share/extensions/pathalongpath.inx.h:15 msgid "Ribbon" -msgstr "" +msgstr "Fita" #: ../share/extensions/pathalongpath.inx.h:17 msgid "" @@ -39268,53 +37272,49 @@ msgid "" "The pattern is the topmost object in the selection. Groups of paths, shapes " "or clones are allowed." msgstr "" +"Este efeito espalha ou dobra um padrão ao longo de caminhos \"esqueletos\" " +"arbitrários. O padrão tem de ser o objeto mais acima na seleção. São " +"permitidos grupos de caminhos, formas geométricas e clones." #: ../share/extensions/pathscatter.inx.h:3 -#, fuzzy msgid "Follow path orientation" -msgstr "Orientação da página:" +msgstr "Seguir orientação do caminho" #: ../share/extensions/pathscatter.inx.h:4 msgid "Stretch spaces to fit skeleton length" -msgstr "" +msgstr "Esticar espaços para caber no comprimento do esqueleto" #: ../share/extensions/pathscatter.inx.h:9 -#, fuzzy msgid "Original pattern will be:" -msgstr "Padrão é vertical" +msgstr "O padrão original será:" #: ../share/extensions/pathscatter.inx.h:11 msgid "If pattern is a group, pick group members" -msgstr "" +msgstr "Se o padrão for um grupo, pegar nos membros do grupo" #: ../share/extensions/pathscatter.inx.h:12 msgid "Pick group members:" -msgstr "" +msgstr "Pegar em membros de grupos:" #: ../share/extensions/pathscatter.inx.h:13 -#, fuzzy msgid "Moved" -msgstr "Mover" +msgstr "Movido" #: ../share/extensions/pathscatter.inx.h:14 -#, fuzzy msgid "Copied" -msgstr "Combinado" +msgstr "Copiado" #: ../share/extensions/pathscatter.inx.h:15 -#, fuzzy msgid "Cloned" -msgstr "Clones" +msgstr "Clonado" #: ../share/extensions/pathscatter.inx.h:16 -#, fuzzy msgid "Randomly" -msgstr "Aleatório:" +msgstr "Aleatoriamente" #: ../share/extensions/pathscatter.inx.h:17 -#, fuzzy msgid "Sequentially" -msgstr "Desfazer preenchimento" +msgstr "Sequencialmente" #: ../share/extensions/pathscatter.inx.h:19 msgid "" @@ -39322,29 +37322,29 @@ msgid "" "pattern must be the topmost object in the selection. Groups of paths, " "shapes, clones are allowed." msgstr "" +"Este efeito espalha um padrão ao longo de caminhos \"esqueletos\" " +"arbitrários. O padrão tem de ser o objeto mais acima na seleção. São " +"permitidos grupos de caminhos, formas geométricas e clones." #: ../share/extensions/perfectboundcover.inx.h:1 msgid "Perfect-Bound Cover Template" -msgstr "" +msgstr "Modelo de Capa com Vinco Perfeito" #: ../share/extensions/perfectboundcover.inx.h:2 msgid "Book Properties" msgstr "Propriedades do Livro" #: ../share/extensions/perfectboundcover.inx.h:3 -#, fuzzy msgid "Book Width (inches):" -msgstr "Largura do Livro (polegadas)" +msgstr "Largura do Livro (polegadas):" #: ../share/extensions/perfectboundcover.inx.h:4 -#, fuzzy msgid "Book Height (inches):" -msgstr "Altura do Livro (polegadas)" +msgstr "Altura do Livro (polegadas):" #: ../share/extensions/perfectboundcover.inx.h:5 -#, fuzzy msgid "Number of Pages:" -msgstr "Número de páginas" +msgstr "Número de Páginas:" #: ../share/extensions/perfectboundcover.inx.h:6 msgid "Remove existing guides" @@ -39355,17 +37355,16 @@ msgid "Interior Pages" msgstr "Páginas Internas" #: ../share/extensions/perfectboundcover.inx.h:8 -#, fuzzy msgid "Paper Thickness Measurement:" -msgstr "Medida da Grossura do Papel" +msgstr "Medição da Grossura do Papel:" #: ../share/extensions/perfectboundcover.inx.h:9 msgid "Pages Per Inch (PPI)" -msgstr "" +msgstr "Páginas Por Polegada (PPP)" #: ../share/extensions/perfectboundcover.inx.h:10 msgid "Caliper (inches)" -msgstr "" +msgstr "Calibre (polegadas)" #: ../share/extensions/perfectboundcover.inx.h:11 msgid "Points" @@ -39373,85 +37372,82 @@ msgstr "Pontos" #: ../share/extensions/perfectboundcover.inx.h:12 msgid "Bond Weight #" -msgstr "" +msgstr "Tamanho do Vinco #" #: ../share/extensions/perfectboundcover.inx.h:13 -#, fuzzy msgid "Specify Width" -msgstr "Largura da caneta" +msgstr "Especificar Largura" #: ../share/extensions/perfectboundcover.inx.h:14 -#, fuzzy msgid "Value:" -msgstr "Valor" +msgstr "Valor:" #: ../share/extensions/perfectboundcover.inx.h:15 msgid "Cover" msgstr "Capa" #: ../share/extensions/perfectboundcover.inx.h:16 -#, fuzzy msgid "Cover Thickness Measurement:" -msgstr "Medida da Grossura da Capa" +msgstr "Medição da Grossura da Capa:" #: ../share/extensions/perfectboundcover.inx.h:17 -#, fuzzy msgid "Bleed (in):" -msgstr "Sangrar (in)" +msgstr "Sangrar (polegadas):" #: ../share/extensions/perfectboundcover.inx.h:18 msgid "Note: Bond Weight # calculations are a best-guess estimate." -msgstr "" +msgstr "Nota: os cálculos do Tamanho do Vinco # são uma estimativa." #: ../share/extensions/pixelsnap.inx.h:1 -#, fuzzy msgid "PixelSnap" -msgstr "Pixel" +msgstr "Atrair aos Píxeis" #: ../share/extensions/pixelsnap.inx.h:2 msgid "" "Snap all paths in selection to pixels. Snaps borders to half-points and " "fills to full points." msgstr "" +"Atrai todos os caminhos na seleção aos píxeis. Atrai bordas aos meios-pontos " +"e preenchimentos aos pontos totais." #: ../share/extensions/plotter.inx.h:1 msgid "Plot" -msgstr "" +msgstr "Enviar para a Plotter" #: ../share/extensions/plotter.inx.h:2 msgid "" "Please make sure that all objects you want to plot are converted to paths." msgstr "" +"Confirme que todos os objetos que pretende enviar para a plotter estão " +"convertidos em caminhos." #: ../share/extensions/plotter.inx.h:3 -#, fuzzy msgid "Connection Settings " -msgstr "Conexões" +msgstr "Configurações de Ligação " #: ../share/extensions/plotter.inx.h:4 -#, fuzzy msgid "Serial port:" -msgstr "Texto vertical" +msgstr "Porta série:" #: ../share/extensions/plotter.inx.h:5 msgid "" "The port of your serial connection, on Windows something like 'COM1', on " "Linux something like: '/dev/ttyUSB0' (Default: COM1)" msgstr "" +"A porta da ligação série. Em Windows é algo como 'COM1', em Linux algo como " +"'/dev/ttyUSB0' (Padrão: COM1)" #: ../share/extensions/plotter.inx.h:6 -#, fuzzy msgid "Serial baud rate:" -msgstr "_Vertical" +msgstr "Taxa de Baud em série:" #: ../share/extensions/plotter.inx.h:7 msgid "The Baud rate of your serial connection (Default: 9600)" -msgstr "" +msgstr "A taxa de Baud da ligação em série (padrão:9600)" #: ../share/extensions/plotter.inx.h:8 -#, fuzzy msgid "Serial byte size:" -msgstr "Colar tamanho" +msgstr "Tamanho do byte série:" #: ../share/extensions/plotter.inx.h:10 #, no-c-format @@ -39459,11 +37455,12 @@ msgid "" "The Byte size of your serial connection, 99% of all plotters use the default " "setting (Default: 8 Bits)" msgstr "" +"O tamanho do Byte da ligação série, 99% de todas as plotters usam a " +"definição padrão (8 Bits)" #: ../share/extensions/plotter.inx.h:11 -#, fuzzy msgid "Serial stop bits:" -msgstr "Texto vertical" +msgstr "Bits de paragem série:" #: ../share/extensions/plotter.inx.h:13 #, no-c-format @@ -39471,11 +37468,12 @@ msgid "" "The Stop bits of your serial connection, 99% of all plotters use the default " "setting (Default: 1 Bit)" msgstr "" +"Os bits de paragem da ligação série, 99% de todas as plotters usam a " +"definição padrão (1 Bit)" #: ../share/extensions/plotter.inx.h:14 -#, fuzzy msgid "Serial parity:" -msgstr "Texto vertical" +msgstr "Paridade série:" #: ../share/extensions/plotter.inx.h:16 #, no-c-format @@ -39483,66 +37481,74 @@ msgid "" "The Parity of your serial connection, 99% of all plotters use the default " "setting (Default: None)" msgstr "" +"A paridade da ligação série, 99% de todas as plotters usam a definição " +"padrão (nenhum)" #: ../share/extensions/plotter.inx.h:17 -#, fuzzy msgid "Serial flow control:" -msgstr "Texto vertical" +msgstr "Controle de fluxo série:" #: ../share/extensions/plotter.inx.h:18 msgid "" "The Software / Hardware flow control of your serial connection (Default: " "Software)" msgstr "" +"O controle de fluxo série por Software ou Hardware da ligação em série " +"(padrão: Software)" #: ../share/extensions/plotter.inx.h:19 -#, fuzzy msgid "Command language:" -msgstr "Linguagem:" +msgstr "Linguagem de comandos:" #: ../share/extensions/plotter.inx.h:20 msgid "The command language to use (Default: HPGL)" -msgstr "" +msgstr "A linguagem de comandos a usar (padrão: HPGL)" #: ../share/extensions/plotter.inx.h:21 msgid "Software (XON/XOFF)" -msgstr "" +msgstr "Software (XON/XOFF)" #: ../share/extensions/plotter.inx.h:22 msgid "Hardware (RTS/CTS)" -msgstr "" +msgstr "Hardware (RTS/CTS)" #: ../share/extensions/plotter.inx.h:23 msgid "Hardware (DSR/DTR + RTS/CTS)" -msgstr "" +msgstr "Hardware (DSR/DTR + RTS/CTS)" #: ../share/extensions/plotter.inx.h:25 msgid "HPGL" -msgstr "" +msgstr "HPGL" #: ../share/extensions/plotter.inx.h:26 msgid "DMPL" -msgstr "" +msgstr "DMPL" #: ../share/extensions/plotter.inx.h:27 msgid "KNK Plotter (HPGL variant)" -msgstr "" +msgstr "KNK Plotter (variante HPGL)" #: ../share/extensions/plotter.inx.h:28 msgid "" "Using wrong settings can under certain circumstances cause Inkscape to " "freeze. Always save your work before plotting!" msgstr "" +"Utilizar configurações erradas pode, em certas circunstâncias, causar o " +"bloqueio do Inkscape. Grave sempre os documentos antes de imprimir na " +"plotter!" #: ../share/extensions/plotter.inx.h:29 msgid "" "This can be a physical serial connection or a USB-to-Serial bridge. Ask your " "plotter manufacturer for drivers if needed." msgstr "" +"Isto pode ser uma ligação física em série ou uma ponte USB-para-Série. " +"Procure pelos drivers da plotter no sítio web do fabricante caso seja " +"necessário." #: ../share/extensions/plotter.inx.h:30 msgid "Parallel (LPT) connections are not supported." -msgstr "" +msgstr "Não são suportadas ligações paralelas (LPT)." #: ../share/extensions/plotter.inx.h:41 msgid "" @@ -39550,352 +37556,313 @@ msgid "" "(depending on your plotter model), set to 0 to omit command. Most plotters " "ignore this command. (Default: 0)" msgstr "" +"A velocidade que a caneta se movimenta em centímetros ou milímetros por " +"segundo (dependendo do modelo da plotter). Aplicar o valor 0 para omitir o " +"comando. A maioria das plotters ignoram este comando. (Padrão: 0)" #: ../share/extensions/plotter.inx.h:42 -#, fuzzy msgid "Rotation (°, clockwise):" -msgstr "Girar no sentido horário" +msgstr "Rotação (°, sentido horário):" #: ../share/extensions/plotter.inx.h:62 -#, fuzzy msgid "Show debug information" -msgstr "Informações sobre uso de memória" +msgstr "Mostrar informação de depuração" #: ../share/extensions/plotter.inx.h:63 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" msgstr "" +"Ativar isto para obter informações detalhadas sobre a plottagem sem enviar " +"nada para a plotter (isto é, dump de dados) (padrão: não ativado)" #: ../share/extensions/plt_input.inx.h:1 msgid "AutoCAD Plot Input" -msgstr "" +msgstr "Importar AutoCAD Plot" #: ../share/extensions/plt_input.inx.h:2 ../share/extensions/plt_output.inx.h:2 -#, fuzzy msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" -msgstr "Ficheiro XFIG Graphics (*.fig)" +msgstr "HP Graphics Language Plot [AutoCAD] (*.plt)" #: ../share/extensions/plt_input.inx.h:3 -#, fuzzy msgid "Open HPGL plotter files" -msgstr "Renomear filtro" +msgstr "Abrir ficheiros HPGL ploter" #: ../share/extensions/plt_output.inx.h:1 msgid "AutoCAD Plot Output" -msgstr "" +msgstr "Exportar em AutoCAD Plot" #: ../share/extensions/plt_output.inx.h:3 -#, fuzzy msgid "Save a file for plotters" -msgstr "Seleccione um nome de ficheiro para exportar" +msgstr "Gravar um ficheiro para plotters" #: ../share/extensions/polyhedron_3d.inx.h:1 -#, fuzzy msgid "3D Polyhedron" -msgstr "Polígono" +msgstr "Poliedro 3D" #: ../share/extensions/polyhedron_3d.inx.h:2 -#, fuzzy msgid "Model file" -msgstr "Todos os tipos" +msgstr "Ficheiro de modelo" #: ../share/extensions/polyhedron_3d.inx.h:3 -#, fuzzy msgid "Object:" -msgstr "Objecto" +msgstr "Objeto:" #: ../share/extensions/polyhedron_3d.inx.h:4 -#, fuzzy msgid "Filename:" -msgstr "Renomear ficheiro" +msgstr "Nome do ficheiro:" #: ../share/extensions/polyhedron_3d.inx.h:5 -#, fuzzy msgid "Object Type:" -msgstr "Objecto" +msgstr "Tipo de Objeto:" #: ../share/extensions/polyhedron_3d.inx.h:6 -#, fuzzy msgid "Clockwise wound object" -msgstr "DesBloquear objectos" +msgstr "Objeto lesado no sentido horário" #: ../share/extensions/polyhedron_3d.inx.h:7 msgid "Cube" -msgstr "" +msgstr "Cubo" #: ../share/extensions/polyhedron_3d.inx.h:8 msgid "Truncated Cube" -msgstr "" +msgstr "Cubo Truncado" #: ../share/extensions/polyhedron_3d.inx.h:9 msgid "Snub Cube" -msgstr "" +msgstr "Bubo Snub" #: ../share/extensions/polyhedron_3d.inx.h:10 -#, fuzzy msgid "Cuboctahedron" -msgstr "Outro" +msgstr "Cuboctaedro" #: ../share/extensions/polyhedron_3d.inx.h:11 msgid "Tetrahedron" -msgstr "" +msgstr "Tetraedro" #: ../share/extensions/polyhedron_3d.inx.h:12 msgid "Truncated Tetrahedron" -msgstr "" +msgstr "Tetraedro Truncado" #: ../share/extensions/polyhedron_3d.inx.h:13 -#, fuzzy msgid "Octahedron" -msgstr "Outro" +msgstr "Octaedro" #: ../share/extensions/polyhedron_3d.inx.h:14 msgid "Truncated Octahedron" -msgstr "" +msgstr "Octaedro Truncado" #: ../share/extensions/polyhedron_3d.inx.h:15 msgid "Icosahedron" -msgstr "" +msgstr "Isocaedro" #: ../share/extensions/polyhedron_3d.inx.h:16 msgid "Truncated Icosahedron" -msgstr "" +msgstr "Isocaedro Truncado" #: ../share/extensions/polyhedron_3d.inx.h:17 msgid "Small Triambic Icosahedron" -msgstr "" +msgstr "Pequeno Isocaedro Triâmbico" #: ../share/extensions/polyhedron_3d.inx.h:18 msgid "Dodecahedron" -msgstr "" +msgstr "Dodecaedro" #: ../share/extensions/polyhedron_3d.inx.h:19 msgid "Truncated Dodecahedron" -msgstr "" +msgstr "Dodecaedro Truncado" #: ../share/extensions/polyhedron_3d.inx.h:20 msgid "Snub Dodecahedron" -msgstr "" +msgstr "Dodecaedro Snub" #: ../share/extensions/polyhedron_3d.inx.h:21 msgid "Great Dodecahedron" -msgstr "" +msgstr "Grande Dodecaedro" #: ../share/extensions/polyhedron_3d.inx.h:22 msgid "Great Stellated Dodecahedron" -msgstr "" +msgstr "Grande Dodecaedro Estrelado" #: ../share/extensions/polyhedron_3d.inx.h:23 -#, fuzzy msgid "Load from file" -msgstr "_Propriedades da Ligação" +msgstr "Carregar do ficheiro" #: ../share/extensions/polyhedron_3d.inx.h:24 msgid "Face-Specified" -msgstr "" +msgstr "Especificado por Face" #: ../share/extensions/polyhedron_3d.inx.h:25 msgid "Edge-Specified" -msgstr "" +msgstr "Especificado por Borda" #: ../share/extensions/polyhedron_3d.inx.h:27 -#, fuzzy msgid "Rotate around:" -msgstr "Girar nós" +msgstr "Rodar à volta de:" #: ../share/extensions/polyhedron_3d.inx.h:28 #: ../share/extensions/spirograph.inx.h:8 #: ../share/extensions/wireframe_sphere.inx.h:5 -#, fuzzy msgid "Rotation (deg):" -msgstr "Rotação (graus)" +msgstr "Rotação (graus):" #: ../share/extensions/polyhedron_3d.inx.h:29 -#, fuzzy msgid "Then rotate around:" -msgstr "Não redondo" +msgstr "Depois rodar à volta de:" #: ../share/extensions/polyhedron_3d.inx.h:30 msgid "X-Axis" -msgstr "" +msgstr "Eixo X" #: ../share/extensions/polyhedron_3d.inx.h:31 msgid "Y-Axis" -msgstr "" +msgstr "Eixo Y" #: ../share/extensions/polyhedron_3d.inx.h:32 msgid "Z-Axis" -msgstr "" +msgstr "Eixo Z" #: ../share/extensions/polyhedron_3d.inx.h:34 -#, fuzzy msgid "Scaling factor:" -msgstr "Cor lisa" +msgstr "Fator de escala:" #: ../share/extensions/polyhedron_3d.inx.h:35 -#, fuzzy msgid "Fill color, Red:" -msgstr "Cor lisa" +msgstr "Cor do preenchimento, Vemelho:" #: ../share/extensions/polyhedron_3d.inx.h:36 -#, fuzzy msgid "Fill color, Green:" -msgstr "Traço em cor lisa" +msgstr "Cor do preenchimento, Verde:" #: ../share/extensions/polyhedron_3d.inx.h:37 -#, fuzzy msgid "Fill color, Blue:" -msgstr "Preenchimento em cor lisa" +msgstr "Cor do preenchimento, Azul:" #: ../share/extensions/polyhedron_3d.inx.h:39 -#, fuzzy, no-c-format +#, no-c-format msgid "Fill opacity (%):" -msgstr "Opacidade, %" +msgstr "Opacidade do preenchimento (%):" #: ../share/extensions/polyhedron_3d.inx.h:41 -#, fuzzy, no-c-format +#, no-c-format msgid "Stroke opacity (%):" -msgstr "_Pintura de traço" +msgstr "Opacidade do traço (%):" #: ../share/extensions/polyhedron_3d.inx.h:42 -#, fuzzy msgid "Stroke width (px):" -msgstr "Largura do traço" +msgstr "Espessura do traço (px):" #: ../share/extensions/polyhedron_3d.inx.h:43 -#, fuzzy msgid "Shading" -msgstr "Espaçamento" +msgstr "Sombreado" #: ../share/extensions/polyhedron_3d.inx.h:44 -#, fuzzy msgid "Light X:" -msgstr "Iluminar" +msgstr "Luz X:" #: ../share/extensions/polyhedron_3d.inx.h:45 -#, fuzzy msgid "Light Y:" -msgstr "Iluminar" +msgstr "Luz Y:" #: ../share/extensions/polyhedron_3d.inx.h:46 -#, fuzzy msgid "Light Z:" -msgstr "Iluminar" +msgstr "Luz Z:" #: ../share/extensions/polyhedron_3d.inx.h:48 -#, fuzzy msgid "Draw back-facing polygons" -msgstr "Criar estrelas e polígonos" +msgstr "Desenhar faces de trás dos polígonos" #: ../share/extensions/polyhedron_3d.inx.h:49 msgid "Z-sort faces by:" -msgstr "" +msgstr "Ordenação Z das faces por:" #: ../share/extensions/polyhedron_3d.inx.h:50 -#, fuzzy msgid "Faces" -msgstr "Nivelar" +msgstr "Faces" #: ../share/extensions/polyhedron_3d.inx.h:51 -#, fuzzy msgid "Edges" -msgstr "Limite" +msgstr "Bordas" #: ../share/extensions/polyhedron_3d.inx.h:52 -#, fuzzy msgid "Vertices" -msgstr "_Vertical" +msgstr "Vértices" #: ../share/extensions/polyhedron_3d.inx.h:53 -#, fuzzy msgid "Maximum" -msgstr "Médio" +msgstr "Máximo" #: ../share/extensions/polyhedron_3d.inx.h:54 -#, fuzzy msgid "Minimum" -msgstr "Tamanho mínimo" +msgstr "Mínimo" #: ../share/extensions/polyhedron_3d.inx.h:55 msgid "Mean" -msgstr "" +msgstr "Significado" #: ../share/extensions/previous_glyph_layer.inx.h:1 -#, fuzzy msgid "View Previous Glyph" -msgstr "Efeito Anterior" +msgstr "Ver Caractere Anterior" #: ../share/extensions/print_win32_vector.inx.h:1 -#, fuzzy msgid "Win32 Vector Print" msgstr "Impressão Windows 32-bit" #: ../share/extensions/printing_marks.inx.h:1 -#, fuzzy msgid "Printing Marks" -msgstr "Imprimir usando operadores PostScript" +msgstr "Marcas de Impressão" #: ../share/extensions/printing_marks.inx.h:3 msgid "Crop Marks" -msgstr "" +msgstr "Marcas de Corte" #: ../share/extensions/printing_marks.inx.h:4 -#, fuzzy msgid "Bleed Marks" -msgstr "Marcadores centrais:" +msgstr "Marcas de Sangria" #: ../share/extensions/printing_marks.inx.h:5 msgid "Registration Marks" -msgstr "" +msgstr "Marcas de Registo" #: ../share/extensions/printing_marks.inx.h:6 -#, fuzzy msgid "Star Target" -msgstr "Alvo" +msgstr "Estrela Alvo" #: ../share/extensions/printing_marks.inx.h:7 -#, fuzzy msgid "Color Bars" -msgstr "Cores" +msgstr "Barras de Cor" #: ../share/extensions/printing_marks.inx.h:8 -#, fuzzy msgid "Page Information" -msgstr "Informação" +msgstr "Informação da Página" #: ../share/extensions/printing_marks.inx.h:9 -#, fuzzy msgid "Positioning" -msgstr "Posição:" +msgstr "Posicionamento" #: ../share/extensions/printing_marks.inx.h:10 -#, fuzzy msgid "Set crop marks to:" -msgstr "Definir marcadores" +msgstr "Definir marcas de corte para:" #: ../share/extensions/printing_marks.inx.h:17 -#, fuzzy msgid "Canvas" -msgstr "Ciano" +msgstr "Ãrea de Desenho" #: ../share/extensions/printing_marks.inx.h:19 -#, fuzzy msgid "Bleed Margin" -msgstr "Sangrar (in)" +msgstr "Sangria da Margem" #: ../share/extensions/ps_input.inx.h:1 -#, fuzzy msgid "PostScript Input" -msgstr "Entrada Postscript" +msgstr "Importar PostScript" #: ../share/extensions/render_alphabetsoup.inx.h:1 msgid "Alphabet Soup" -msgstr "" +msgstr "Sopa do Alfabeto" #: ../share/extensions/render_barcode.inx.h:1 msgid "Classic" -msgstr "" +msgstr "Clássico" #: ../share/extensions/render_barcode.inx.h:2 msgid "Barcode Type:" @@ -39903,7 +37870,7 @@ msgstr "Tipo de Código de Barras:" #: ../share/extensions/render_barcode.inx.h:3 msgid "Barcode Data:" -msgstr "Dados de Código de barras:" +msgstr "Dados de Código de Barras:" #: ../share/extensions/render_barcode.inx.h:4 msgid "Bar Height:" @@ -39916,230 +37883,203 @@ msgid "Barcode" msgstr "Código de barras" #: ../share/extensions/render_barcode_datamatrix.inx.h:1 -#, fuzzy msgid "Datamatrix" -msgstr "Dados de Código de barras:" +msgstr "Matriz de dados" #: ../share/extensions/render_barcode_datamatrix.inx.h:3 #: ../share/extensions/render_barcode_qrcode.inx.h:4 msgid "Size, in unit squares:" -msgstr "" +msgstr "Tamanho em unidades quadradas:" #: ../share/extensions/render_barcode_datamatrix.inx.h:4 -#, fuzzy msgid "Square Size (px):" -msgstr "Ponta quadrada" +msgstr "Tamanho Quadrado (px):" #: ../share/extensions/render_barcode_qrcode.inx.h:1 msgid "QR Code" -msgstr "" +msgstr "Código QR" #: ../share/extensions/render_barcode_qrcode.inx.h:2 msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" -msgstr "" +msgstr "Para mais detalhes ver http://www.qrcode.com/en/" #: ../share/extensions/render_barcode_qrcode.inx.h:6 msgid "" "With \"Auto\", the size of the barcode depends on the length of the text and " "the error correction level" msgstr "" +"Com \"Auto\" o tamanho do código de barras depende do comprimento do texto e " +"o nível de correção de erros" #: ../share/extensions/render_barcode_qrcode.inx.h:7 -#, fuzzy msgid "Error correction level:" -msgstr "PM: reflexão" +msgstr "Nível de correção de erros:" #: ../share/extensions/render_barcode_qrcode.inx.h:9 #, no-c-format msgid "L (Approx. 7%)" -msgstr "" +msgstr "L (Aprox. 7%)" #: ../share/extensions/render_barcode_qrcode.inx.h:11 #, no-c-format msgid "M (Approx. 15%)" -msgstr "" +msgstr "M (Aprox. 15%)" #: ../share/extensions/render_barcode_qrcode.inx.h:13 #, no-c-format msgid "Q (Approx. 25%)" -msgstr "" +msgstr "Q (Aprox. 25%)" #: ../share/extensions/render_barcode_qrcode.inx.h:15 #, no-c-format msgid "H (Approx. 30%)" -msgstr "" +msgstr "H (Aprox. 30%)" #: ../share/extensions/render_barcode_qrcode.inx.h:17 -#, fuzzy msgid "Square size (px):" -msgstr "Ponta quadrada" +msgstr "Tamanho quadrado (px):" #: ../share/extensions/render_gear_rack.inx.h:1 -#, fuzzy msgid "Rack Gear" -msgstr "Li_mpar" +msgstr "Mecanismo da Prateleira" #: ../share/extensions/render_gear_rack.inx.h:2 -#, fuzzy msgid "Rack Length:" -msgstr "Comprimento:" +msgstr "Comprimento da Prateleira:" #: ../share/extensions/render_gear_rack.inx.h:3 -#, fuzzy msgid "Tooth Spacing:" -msgstr "Espaçamento Horizontal" +msgstr "Espaçamento dos Dentes:" #: ../share/extensions/render_gear_rack.inx.h:4 -#, fuzzy msgid "Contact Angle:" -msgstr "Único" +msgstr "Ângulo de Contacto:" #: ../share/extensions/render_gear_rack.inx.h:6 #: ../share/extensions/render_gears.inx.h:1 -#, fuzzy msgid "Gear" -msgstr "Li_mpar" +msgstr "Engrenagem" #: ../share/extensions/render_gears.inx.h:2 -#, fuzzy msgid "Number of teeth:" -msgstr "Número de dentes" +msgstr "Número de dentes:" #: ../share/extensions/render_gears.inx.h:3 -#, fuzzy msgid "Circular pitch (tooth size):" -msgstr "Barra de Controles de Ferramenta" +msgstr "Inclinação circular (tamanho do dente):" #: ../share/extensions/render_gears.inx.h:4 -#, fuzzy msgid "Pressure angle (degrees):" -msgstr "Ângulo de pressão" +msgstr "Ângulo de pressão (graus):" #: ../share/extensions/render_gears.inx.h:5 msgid "Diameter of center hole (0 for none):" -msgstr "" +msgstr "Diâmetro do buraco central (0 para nenhum):" #: ../share/extensions/render_gears.inx.h:10 msgid "Unit of measurement for both circular pitch and center diameter." msgstr "" +"Unidade de medida tanto para a inclinação circular como o diâmetro do centro." #: ../share/extensions/replace_font.inx.h:1 -#, fuzzy msgid "Replace font" -msgstr "Substituir texto..." +msgstr "Substituir fonte" #: ../share/extensions/replace_font.inx.h:2 -#, fuzzy msgid "Find and Replace font" -msgstr "Encontrar objectos no desenho" +msgstr "Procurar e Substituir fonte" #: ../share/extensions/replace_font.inx.h:3 -#, fuzzy msgid "Find font: " -msgstr "Adicionar filtro" +msgstr "Procurar fonte: " #: ../share/extensions/replace_font.inx.h:4 -#, fuzzy msgid "Replace with: " -msgstr "Substituir" +msgstr "Substituir com: " #: ../share/extensions/replace_font.inx.h:5 msgid "Replace all fonts with: " -msgstr "" +msgstr "Substituir todas as fontes com: " #: ../share/extensions/replace_font.inx.h:6 -#, fuzzy msgid "List all fonts" -msgstr "Administrar efeitos de filtro SVG" +msgstr "Listar todas as fontes" #: ../share/extensions/replace_font.inx.h:7 msgid "" "Choose this tab if you would like to see a list of the fonts used/found." msgstr "" +"Escolher esta opção para ver a lista de fontes utilizadas ou encontradas." #: ../share/extensions/replace_font.inx.h:8 -#, fuzzy msgid "Work on:" -msgstr "Modo:" +msgstr "Trabalhar em:" #: ../share/extensions/replace_font.inx.h:9 -#, fuzzy msgid "Entire drawing" -msgstr "A área exportada é toda a Ecrã de pintura" +msgstr "Todo o desenho" #: ../share/extensions/replace_font.inx.h:10 -#, fuzzy msgid "Selected objects only" -msgstr "Inverter objectos seleccionados horizontalmente" +msgstr "Apenas objetos selecionados" #: ../share/extensions/restack.inx.h:1 -#, fuzzy msgid "Restack" -msgstr " R_edefinir " +msgstr "Tornar a Empilhar" #: ../share/extensions/restack.inx.h:2 -#, fuzzy msgid "Based on Position" -msgstr "Posição:" +msgstr "Baseado na Posição" #: ../share/extensions/restack.inx.h:3 -#, fuzzy msgid "Presets" -msgstr " R_edefinir " +msgstr "Modelos" #: ../share/extensions/restack.inx.h:6 -#, fuzzy msgid "Horizontal:" -msgstr "_Horizontal" +msgstr "Horizontal:" #: ../share/extensions/restack.inx.h:7 -#, fuzzy msgid "Vertical:" -msgstr "_Vertical" +msgstr "Vertical:" #: ../share/extensions/restack.inx.h:8 -#, fuzzy msgid "Restack Direction" -msgstr "Descrição:" +msgstr "Direção de Tornar a Empilhar" #: ../share/extensions/restack.inx.h:9 msgid "Left to Right (0)" -msgstr "" +msgstr "Esquerda para a Direita (0)" #: ../share/extensions/restack.inx.h:10 msgid "Bottom to Top (90)" -msgstr "" +msgstr "Baixo para Cima (90)" #: ../share/extensions/restack.inx.h:11 msgid "Right to Left (180)" -msgstr "" +msgstr "Direita para a Esquerda (180)" #: ../share/extensions/restack.inx.h:12 -#, fuzzy msgid "Top to Bottom (270)" -msgstr "_Baixar para o Fundo" +msgstr "Cima para Baixo (270)" #: ../share/extensions/restack.inx.h:13 -#, fuzzy msgid "Radial Outward" -msgstr "Degradê radial" +msgstr "Radial para Fora" #: ../share/extensions/restack.inx.h:14 -#, fuzzy msgid "Radial Inward" -msgstr "Degradê radial" +msgstr "Radial para Dentro" #: ../share/extensions/restack.inx.h:15 -#, fuzzy msgid "Object Reference Point" -msgstr "Preferências do degradê" +msgstr "Ponto de Referência do Objeto" #: ../share/extensions/restack.inx.h:17 #: ../share/extensions/text_extract.inx.h:9 #: ../share/extensions/text_merge.inx.h:9 -#, fuzzy msgid "Middle" -msgstr "Ladrilhado" +msgstr "Meio" #: ../share/extensions/restack.inx.h:19 #: ../share/extensions/text_extract.inx.h:12 @@ -40150,28 +38090,24 @@ msgstr "Topo" #: ../share/extensions/restack.inx.h:20 #: ../share/extensions/text_extract.inx.h:13 #: ../share/extensions/text_merge.inx.h:13 -#, fuzzy msgid "Bottom" msgstr "Fundo" #: ../share/extensions/restack.inx.h:21 -#, fuzzy msgid "Based on Z-Order" -msgstr "Levantar nó" +msgstr "Baseado na Ordem Z" #: ../share/extensions/restack.inx.h:22 -#, fuzzy msgid "Restack Mode" -msgstr " R_edefinir " +msgstr "Modo de Tornar a Empilhar" #: ../share/extensions/restack.inx.h:23 -#, fuzzy msgid "Reverse Z-Order" -msgstr "Inverter degradê" +msgstr "Inverter Ordem Z" #: ../share/extensions/restack.inx.h:24 msgid "Shuffle Z-Order" -msgstr "" +msgstr "Baralhar Ordem Z" #: ../share/extensions/restack.inx.h:26 msgid "" @@ -40180,59 +38116,57 @@ msgid "" "objects inside a single selected group, or a selection of multiple objects " "on the current drawing level (layer or group)." msgstr "" +"Esta extensão altera a ordem Z dos objetos baseados na sua posição na área " +"de desenho ou na ordem Z atual. Seleção: a extensão torna a empilhar os " +"objetos dentro de um grupo único selecionado ou uma seleção de vários " +"objetos no nível de desenho atual (camada ou grupo)." #: ../share/extensions/restack.inx.h:27 #: ../share/extensions/ungroup_deep.inx.h:6 -#, fuzzy msgid "Arrange" -msgstr "Ângulo" +msgstr "Organizar" #: ../share/extensions/rtree.inx.h:1 msgid "Random Tree" msgstr "Ãrvore Aleatória" #: ../share/extensions/rtree.inx.h:2 -#, fuzzy msgid "Initial size:" -msgstr "Tamanho inicial" +msgstr "Tamanho inicial:" #: ../share/extensions/rtree.inx.h:3 -#, fuzzy msgid "Minimum size:" -msgstr "Tamanho mínimo" +msgstr "Tamanho mínimo:" #: ../share/extensions/rtree.inx.h:4 -#, fuzzy msgid "Omit redundant segments" -msgstr "Endireitar Segmentos" +msgstr "Omitir segmentos redundantes" #: ../share/extensions/rtree.inx.h:5 msgid "Lift pen for backward steps" -msgstr "" +msgstr "Levantar caneta para passos para trás" #: ../share/extensions/rubberstretch.inx.h:1 -#, fuzzy msgid "Rubber Stretch" -msgstr "Número de dentes" +msgstr "Esticar tipo Borracha" #: ../share/extensions/rubberstretch.inx.h:3 -#, fuzzy, no-c-format +#, no-c-format msgid "Strength (%):" -msgstr "Tamanho do passo (px)" +msgstr "Força (%):" #: ../share/extensions/rubberstretch.inx.h:5 #, no-c-format msgid "Curve (%):" -msgstr "" +msgstr "Curva (%):" #: ../share/extensions/scour.inx.h:1 -#, fuzzy msgid "Optimized SVG Output" -msgstr "Saída SVG" +msgstr "Exportar em SVG Otimizado" #: ../share/extensions/scour.inx.h:3 msgid "Number of significant digits for coordinates:" -msgstr "" +msgstr "Número de dígitos significantes para coordenadas:" #: ../share/extensions/scour.inx.h:4 msgid "" @@ -40242,82 +38176,97 @@ msgid "" "\"3\" is specified, the coordinate 3.14159 is output as 3.14 while the " "coordinate 123.675 is output as 124." msgstr "" +"Especifica o número de dígitos significantes que devem ser utilizados para " +"as coordenadas. Notar que os dígitos significantes *não* são o número de " +"casas decimais mas sim o número total de dígitos de saída. Por exemplo, se " +"for especificado um valor de \"3\", a coordenada 3.14159 é convertida para " +"3.14 assim como 123.675 é convertida para 124." #: ../share/extensions/scour.inx.h:5 -#, fuzzy msgid "Shorten color values" -msgstr "Soltar cor" +msgstr "Abreviar valores de cores" #: ../share/extensions/scour.inx.h:6 msgid "" "Convert all color specifications to #RRGGBB (or #RGB where applicable) " "format." msgstr "" +"Converter todas as especificações de cor para o formato #RRGGBB (ou #RGB " +"quando aplicável)." #: ../share/extensions/scour.inx.h:7 -#, fuzzy msgid "Convert CSS attributes to XML attributes" -msgstr "Eliminar atributo" +msgstr "Converter atributos CSS em atributos XML" #: ../share/extensions/scour.inx.h:8 msgid "" "Convert styles from style tags and inline style=\"\" declarations into XML " "attributes." msgstr "" +"Converter estilos das etiquetas de estilo e declarações inline style=\"\" em " +"atributos XML." #: ../share/extensions/scour.inx.h:9 -#, fuzzy msgid "Collapse groups" -msgstr "Limpa_r Todos" +msgstr "Contrair grupos" #: ../share/extensions/scour.inx.h:10 msgid "" "Remove useless groups, promoting their contents up one level. Requires " "\"Remove unused IDs\" to be set." msgstr "" +"Remover grupos inúteis, promovendo os seus conteúdos para um nível acima. " +"Necessita de ter configurado \"Remover IDs não utilizados\"." #: ../share/extensions/scour.inx.h:11 msgid "Create groups for similar attributes" -msgstr "" +msgstr "Criar grupos para atributos similares" #: ../share/extensions/scour.inx.h:12 msgid "" "Create groups for runs of elements having at least one attribute in common " "(e.g. fill-color, stroke-opacity, ...)." msgstr "" +"Criar grupos para processamento de elementos que tenham pelo menos 1 " +"atributo em comum (por exemplo cor do preenchimento, opacidade do traço, " +"etc.)." #: ../share/extensions/scour.inx.h:13 msgid "Keep editor data" -msgstr "" +msgstr "Manter dados do editor" #: ../share/extensions/scour.inx.h:14 msgid "" "Don't remove editor-specific elements and attributes. Currently supported: " "Inkscape, Sodipodi and Adobe Illustrator." msgstr "" +"Não remover elementos e atributos específicos dos editores. Suportados " +"atualmente: Inkscape, Sodipodi e Adobe Illustrator." #: ../share/extensions/scour.inx.h:15 msgid "Keep unreferenced definitions" -msgstr "" +msgstr "Manter definições não referenciadas" #: ../share/extensions/scour.inx.h:16 msgid "Keep element definitions that are not currently used in the SVG" -msgstr "" +msgstr "Manter definições de elementos que não estejam a ser utilizados no SVG" #: ../share/extensions/scour.inx.h:17 msgid "Work around renderer bugs" -msgstr "" +msgstr "Usar recurso alternativo para evitar erros" #: ../share/extensions/scour.inx.h:18 msgid "" "Works around some common renderer bugs (mainly libRSVG) at the cost of a " "slightly larger SVG file." msgstr "" +"Contorna alguns problemas comuns para processar e visualizar gráficos SVG " +"(principalmente o libRSVG) com a contrapartida de resultar num ficheiro que " +"ocupa ligeiramente mais espaço em disco." #: ../share/extensions/scour.inx.h:20 -#, fuzzy msgid "Remove the XML declaration" -msgstr "Remover _Transformações" +msgstr "Remover a declaração XML" #: ../share/extensions/scour.inx.h:21 msgid "" @@ -40325,11 +38274,13 @@ msgid "" "especially if special characters are used in the document) from the file " "header." msgstr "" +"Remove a declaração XML (que é opcional mas deve ser utilizada, " +"especialmente se forem usados caracteres especiais no documento) do " +"cabeçalho do documento." #: ../share/extensions/scour.inx.h:22 -#, fuzzy msgid "Remove metadata" -msgstr "Remover Vermelho" +msgstr "Remover metadados" #: ../share/extensions/scour.inx.h:23 msgid "" @@ -40337,31 +38288,33 @@ msgid "" "include license and author information, alternate versions for non-SVG-" "enabled browsers, etc." msgstr "" +"Remove as etiquetas de metadados e respetiva informação, que pode incluir a " +"informação sobre a licença, autor, etc. Os metadados podem ser visualizados " +"e editados no menu \"Ficheiro->Propriedades do Documento...->aba Metadados\"" #: ../share/extensions/scour.inx.h:24 -#, fuzzy msgid "Remove comments" -msgstr "Remover filtro" +msgstr "Remover comentários" #: ../share/extensions/scour.inx.h:25 msgid "Remove all XML comments from output." -msgstr "" +msgstr "Remover todos os comentários XML na saída." #: ../share/extensions/scour.inx.h:26 -#, fuzzy msgid "Embed raster images" -msgstr "Embutir imagens" +msgstr "Embutir imagens raster" #: ../share/extensions/scour.inx.h:27 msgid "" "Resolve external references to raster images and embed them as Base64-" "encoded data URLs." msgstr "" +"Resolver as referências externas para imagens raster e incluí-las no " +"ficheiro como URL de dados codificados em Base64." #: ../share/extensions/scour.inx.h:28 -#, fuzzy msgid "Enable viewboxing" -msgstr "Pré-Visualizar Ao Vivo" +msgstr "Ativar viewBox" #: ../share/extensions/scour.inx.h:30 #, no-c-format @@ -40369,10 +38322,13 @@ msgid "" "Set page size to 100%/100% (full width and height of the display area) and " "introduce a viewBox specifying the drawings dimensions." msgstr "" +"Definir o tamanho da página como 100%/100% (largura e altura total da área " +"de visualização) e introduzir uma viewBox especificando as dimensões do " +"desenho." #: ../share/extensions/scour.inx.h:31 msgid "Format output with line-breaks and indentation" -msgstr "" +msgstr "Formatar saída com quebras de linha e identação" #: ../share/extensions/scour.inx.h:32 msgid "" @@ -40380,11 +38336,13 @@ msgid "" "to hand-edit the SVG file you can disable this option to bring down the file " "size even more at the cost of clarity." msgstr "" +"Produz uma saída bem formatada incluindo quebras de linha. Se não pretender " +"editar manualmente o ficheiro SVG, pode desativar esta opção para que o " +"ficheiro ocupe menos espaço em disco." #: ../share/extensions/scour.inx.h:33 -#, fuzzy msgid "Indentation characters:" -msgstr "Inserir caractere Unicode" +msgstr "Caractere de identação:" #: ../share/extensions/scour.inx.h:34 msgid "" @@ -40392,21 +38350,27 @@ msgid "" "Specify \"None\" to disable indentation. This option has no effect if " "\"Format output with line-breaks and indentation\" is disabled." msgstr "" +"O tipo de identação utilizada para cada nível de arredores (nesting) na " +"saída. Especificar \"Nenhuma\" para desativar a identação. Esta opção não " +"tem efeito se a opção \"Formatar saída com quebras de linha e identação\" " +"estiver desativada." #: ../share/extensions/scour.inx.h:35 -#, fuzzy msgid "Depth of indentation:" -msgstr "Função Vermelho" +msgstr "Profundidade da identação:" #: ../share/extensions/scour.inx.h:36 msgid "" "The depth of the chosen type of indentation. E.g. if you choose \"2\" every " "nesting level in the output will be indented by two additional spaces/tabs." msgstr "" +"A profundidade do tipo de identação escolhida. Por exemplo, se escolher " +"\"2\", todo o nível envolvente na saída será identado por 2 espaços/" +"tabulações adicionais." #: ../share/extensions/scour.inx.h:37 msgid "Strip the \"xml:space\" attribute from the root SVG element" -msgstr "" +msgstr "Retirar o atributo \"xml:space\" do elemento SVG raiz" #: ../share/extensions/scour.inx.h:38 msgid "" @@ -40414,54 +38378,52 @@ msgid "" "root SVG element which instructs the SVG editor not to change whitespace in " "the document at all (and therefore overrides the options above)." msgstr "" +"Isto é útil se o ficheiro de entrada especifica \"xml:space='preserve'\" no " +"elemento SVG raiz que instrui o editor SVG para não alterar o espaço em " +"branco no documento (e por isso sobrepõe-se às opções acima)." #: ../share/extensions/scour.inx.h:39 -#, fuzzy msgid "Document options" -msgstr "Propriedades do _Desenho..." +msgstr "Opções do documento" #: ../share/extensions/scour.inx.h:40 -#, fuzzy msgid "Pretty-printing" -msgstr "Pintura a Óleo" +msgstr "Impressão Organizada" # Tradução forçada... ao pé da letra... # - samymn #: ../share/extensions/scour.inx.h:41 -#, fuzzy msgid "Space" -msgstr "Dessalpicar" +msgstr "Espaço" #: ../share/extensions/scour.inx.h:42 -#, fuzzy msgid "Tab" -msgstr "Tabela" +msgstr "Tabulação" #: ../share/extensions/scour.inx.h:43 -#, fuzzy msgctxt "Indent" msgid "None" msgstr "Nenhum" #: ../share/extensions/scour.inx.h:44 -#, fuzzy msgid "IDs" -msgstr "ID" +msgstr "IDs" #: ../share/extensions/scour.inx.h:45 -#, fuzzy msgid "Remove unused IDs" -msgstr "Remover Vermelho" +msgstr "Remover IDs por usar" #: ../share/extensions/scour.inx.h:46 msgid "" "Remove all unreferenced IDs from elements. Those are not needed for " "rendering." msgstr "" +"Remover todos os identificadores (IDs) não referenciados dos elementos. " +"Estes não são necessários para renderizar." #: ../share/extensions/scour.inx.h:47 msgid "Shorten IDs" -msgstr "" +msgstr "Abreviar IDs" #: ../share/extensions/scour.inx.h:48 msgid "" @@ -40469,18 +38431,22 @@ msgid "" "shortest values to the most-referenced elements. For instance, " "\"linearGradient5621\" will become \"a\" if it is the most used element." msgstr "" +"Minimizar o comprimento dos IDs utilizando apenas letras minúsculas, " +"atribuindo os valores mais curtos aos elementos mais referenciados. Por " +"exemplo, \"degradeLinear5621\" torna-se apenas \"a\" se for o elementos mais " +"usado." #: ../share/extensions/scour.inx.h:49 msgid "Prefix shortened IDs with:" -msgstr "" +msgstr "Adicionar prefixo nos IDs abreviados com:" #: ../share/extensions/scour.inx.h:50 msgid "Prepend shortened IDs with the specified prefix." -msgstr "" +msgstr "Adiciona o prefixo definido aos IDs abreviados." #: ../share/extensions/scour.inx.h:51 msgid "Preserve manually created IDs not ending with digits" -msgstr "" +msgstr "Preservar IDs criados manualmente que não terminem com dígitos" #: ../share/extensions/scour.inx.h:52 msgid "" @@ -40489,115 +38455,110 @@ msgid "" "preserved while numbered IDs (as they are generated by most SVG editors " "including Inkscape) will be removed/shortened." msgstr "" +"IDs descritivos que foram criados manualmente para referir ou etiquetar " +"elementos específicos ou grupos (por exemplo #setaInicio, #setaFim or " +"#textoNome) serão mantidos enquanto os IDs numerados (como estes são gerados " +"pela maioria dos editores SVG incluindo o Inkscape) serão removidos ou " +"abreviados." #: ../share/extensions/scour.inx.h:53 msgid "Preserve the following IDs:" -msgstr "" +msgstr "Preservar os seguintes IDs:" #: ../share/extensions/scour.inx.h:54 msgid "A comma-separated list of IDs that are to be preserved." -msgstr "" +msgstr "Lista separada por vírgulas dos IDs que não devem ser alterados." #: ../share/extensions/scour.inx.h:55 msgid "Preserve IDs starting with:" -msgstr "" +msgstr "Preservar IDs que começam com:" #: ../share/extensions/scour.inx.h:56 msgid "" "Preserve all IDs that start with the specified prefix (e.g. specify \"flag\" " "to preserve \"flag-mx\", \"flag-pt\", etc.)." msgstr "" +"Preservar todos os IDs que comecem com o prefixo especificado (por exemplo, " +"especificar \"bandeira\" para preservar \"bandeira-en\", \"bandeira-pt\", " +"etc.)" #: ../share/extensions/scour.inx.h:57 -#, fuzzy msgid "Optimized SVG (*.svg)" -msgstr "Inkscape SVG (*.svg)" +msgstr "SVG otimizado (*.svg)" #: ../share/extensions/scour.inx.h:58 -#, fuzzy msgid "Scalable Vector Graphics" -msgstr "Gráfico Vectorial Escalável (*.svg)" +msgstr "Scalable Vector Graphics" #: ../share/extensions/seamless_pattern.inx.h:1 -#, fuzzy msgid "Seamless Pattern" -msgstr "Padrões" +msgstr "Padrão Contínuo" #: ../share/extensions/seamless_pattern.inx.h:2 #: ../share/extensions/seamless_pattern_procedural.inx.h:2 -#, fuzzy msgid "Custom Width (px):" -msgstr "Largura do traço" +msgstr "Largura Personalizada (px):" #: ../share/extensions/seamless_pattern.inx.h:3 #: ../share/extensions/seamless_pattern_procedural.inx.h:3 -#, fuzzy msgid "Custom Height (px):" -msgstr "Direitos:" +msgstr "Altura Personalizada (px):" #: ../share/extensions/seamless_pattern.inx.h:4 -#, fuzzy msgid "This extension overwrites the current document" -msgstr "Editar as paradas do degradê" +msgstr "Esta extensão grava por cima do documento atual" #: ../share/extensions/seamless_pattern_procedural.inx.h:1 msgid "Seamless Pattern Procedural" -msgstr "" +msgstr "Procedural de Padrão Repetido Suave" #: ../share/extensions/setup_typography_canvas.inx.h:1 msgid "1 - Setup Typography Canvas" -msgstr "" +msgstr "1 - Configurar Ãrea de Desenho de Tipografia" #: ../share/extensions/setup_typography_canvas.inx.h:2 -#, fuzzy msgid "Em-size:" -msgstr "Tamanho:" +msgstr "Tamanho Eme:" #: ../share/extensions/setup_typography_canvas.inx.h:3 -#, fuzzy msgid "Ascender:" -msgstr "Render" +msgstr "Ascendente:" #: ../share/extensions/setup_typography_canvas.inx.h:4 -#, fuzzy msgid "Caps Height:" -msgstr "Altura da Barra:" +msgstr "Altura das Maiúsculas:" #: ../share/extensions/setup_typography_canvas.inx.h:5 -#, fuzzy msgid "X-Height:" -msgstr "Altura:" +msgstr "Altura do X:" #: ../share/extensions/setup_typography_canvas.inx.h:6 -#, fuzzy msgid "Descender:" -msgstr "Dependência:" +msgstr "Descendente:" #: ../share/extensions/sk1_input.inx.h:1 msgid "sK1 vector graphics files input" -msgstr "" +msgstr "Importar ficheiros de gráficos vetoriais sK1" #: ../share/extensions/sk1_input.inx.h:2 ../share/extensions/sk1_output.inx.h:2 msgid "sK1 vector graphics files (*.sk1)" -msgstr "" +msgstr "sK1 ficheiros vetoriais gráficos (*.sk1)" #: ../share/extensions/sk1_input.inx.h:3 -#, fuzzy msgid "Open files saved in sK1 vector graphics editor" -msgstr "Inkscape Editor de Imagem Vectorial" +msgstr "Abrir ficheiros gravados no editor de gráficos vetoriais sK1" #: ../share/extensions/sk1_output.inx.h:1 msgid "sK1 vector graphics files output" -msgstr "" +msgstr "Exportar em ficheiros de gráficos vetoriais sK1" #: ../share/extensions/sk1_output.inx.h:3 -#, fuzzy msgid "File format for use in sK1 vector graphics editor" -msgstr "Inkscape Editor de Imagem Vectorial" +msgstr "Formato de ficheiro para usar no editor de gráficos vetoriais sK1" #: ../share/extensions/sk_input.inx.h:1 msgid "Sketch Input" -msgstr "Entrada Sketch" +msgstr "Importar Sketch" #: ../share/extensions/sk_input.inx.h:2 msgid "Sketch Diagram (*.sk)" @@ -40608,115 +38569,103 @@ msgid "A diagram created with the program Sketch" msgstr "Um diagrama criado com o programa Sketch" #: ../share/extensions/spirograph.inx.h:1 -#, fuzzy msgid "Spirograph" -msgstr "Espiral" +msgstr "Espirógrafo" #: ../share/extensions/spirograph.inx.h:2 msgid "R - Ring Radius (px):" -msgstr "" +msgstr "R - Raio do Anel (px):" #: ../share/extensions/spirograph.inx.h:3 msgid "r - Gear Radius (px):" -msgstr "" +msgstr "r - Raio da Engrenagem (px):" #: ../share/extensions/spirograph.inx.h:4 msgid "d - Pen Radius (px):" -msgstr "" +msgstr "d - Raio da Caneta (px):" #: ../share/extensions/spirograph.inx.h:5 -#, fuzzy msgid "Gear Placement:" -msgstr "Novo nó elementar" +msgstr "Posicionamento da Engrenagem:" #: ../share/extensions/spirograph.inx.h:6 msgid "Inside (Hypotrochoid)" -msgstr "" +msgstr "Dentro (hipotrocoide)" #: ../share/extensions/spirograph.inx.h:7 msgid "Outside (Epitrochoid)" -msgstr "" +msgstr "Fora (Epitrocoide)" #: ../share/extensions/spirograph.inx.h:9 -#, fuzzy msgid "Quality (Default = 16):" -msgstr "Qualidade (Padrão = 16)" +msgstr "Qualidade (Padrão = 16):" #: ../share/extensions/split.inx.h:1 -#, fuzzy msgid "Split text" -msgstr "Eliminar texto" +msgstr "Separar texto" #: ../share/extensions/split.inx.h:3 msgid "Split:" -msgstr "" +msgstr "Separar:" #: ../share/extensions/split.inx.h:4 msgid "Preserve original text" -msgstr "" +msgstr "Preservar texto original" #: ../share/extensions/split.inx.h:5 -#, fuzzy msgctxt "split" msgid "Lines" -msgstr "Linha" +msgstr "Linhas" #: ../share/extensions/split.inx.h:6 -#, fuzzy msgctxt "split" msgid "Words" -msgstr "Modo:" +msgstr "Palavras" #: ../share/extensions/split.inx.h:7 -#, fuzzy msgctxt "split" msgid "Letters" -msgstr "Comprimento:" +msgstr "Letras" #: ../share/extensions/split.inx.h:9 msgid "This effect splits texts into different lines, words or letters." -msgstr "" +msgstr "Este efeito separa os textos em diferentes linhas, palavras ou letras." #: ../share/extensions/straightseg.inx.h:1 -#, fuzzy msgid "Straighten Segments" msgstr "Endireitar Segmentos" #: ../share/extensions/straightseg.inx.h:2 -#, fuzzy msgid "Percent:" -msgstr "Percentual" +msgstr "Percentagem:" #: ../share/extensions/straightseg.inx.h:3 -#, fuzzy msgid "Behavior:" -msgstr "Comportamento" +msgstr "Comportamento:" #: ../share/extensions/summersnight.inx.h:1 msgid "Envelope" msgstr "Envelope" #: ../share/extensions/svg2fxg.inx.h:1 -#, fuzzy msgid "FXG Output" -msgstr "Saída SVG" +msgstr "Exportar em FXG" #: ../share/extensions/svg2fxg.inx.h:2 -#, fuzzy msgid "Flash XML Graphics (*.fxg)" -msgstr "Ficheiro XFIG Graphics (*.fig)" +msgstr "Flash XML Graphics (*.fxg)" #: ../share/extensions/svg2fxg.inx.h:3 msgid "Adobe's XML Graphics file format" -msgstr "" +msgstr "Ficheiro no formato XML Graphics da Adobe" #: ../share/extensions/svg2xaml.inx.h:1 msgid "XAML Output" -msgstr "Saída XAML" +msgstr "Exportar em XAML" #: ../share/extensions/svg2xaml.inx.h:2 msgid "Silverlight compatible XAML" -msgstr "" +msgstr "XAML compatível com o Silverlight" #: ../share/extensions/svg2xaml.inx.h:3 ../share/extensions/xaml2svg.inx.h:2 msgid "Microsoft XAML (*.xaml)" @@ -40727,25 +38676,20 @@ msgid "Microsoft's GUI definition format" msgstr "Definição de formato GUI da Microsoft" #: ../share/extensions/svg_and_media_zip_output.inx.h:1 -#, fuzzy msgid "Compressed Inkscape SVG with media export" -msgstr "Inkscape SVG compactado com mídia (*.zip)" +msgstr "SVG Inkscape compactado com mídia" #: ../share/extensions/svg_and_media_zip_output.inx.h:2 -#, fuzzy msgid "Image zip directory:" -msgstr "" -"%s não é uma pasta válida.\n" -"%s" +msgstr "Pasta de imagens ZIP:" #: ../share/extensions/svg_and_media_zip_output.inx.h:3 -#, fuzzy msgid "Add font list" -msgstr "Adicionar filtro" +msgstr "Adicionar lista de fontes" #: ../share/extensions/svg_and_media_zip_output.inx.h:4 msgid "Compressed Inkscape SVG with media (*.zip)" -msgstr "Inkscape SVG compactado com mídia (*.zip)" +msgstr "SVG Inkscape compactado com mídia (*.zip)" #: ../share/extensions/svg_and_media_zip_output.inx.h:5 msgid "" @@ -40756,258 +38700,231 @@ msgstr "" "de mídia" #: ../share/extensions/svgcalendar.inx.h:1 -#, fuzzy msgid "Calendar" -msgstr "_Limpar" +msgstr "Calendário" #: ../share/extensions/svgcalendar.inx.h:3 msgid "Year (4 digits):" -msgstr "" +msgstr "Ano (4 dígitos):" #: ../share/extensions/svgcalendar.inx.h:4 msgid "Month (0 for all):" -msgstr "" +msgstr "Mês (0 para todos):" #: ../share/extensions/svgcalendar.inx.h:5 msgid "Fill empty day boxes with next month's days" -msgstr "" +msgstr "Preencher as caixas de dias em branco com os meses do mês seguinte" #: ../share/extensions/svgcalendar.inx.h:6 -#, fuzzy msgid "Show week number" -msgstr "Ângulo da caneta" +msgstr "Mostrar número da semana" #: ../share/extensions/svgcalendar.inx.h:7 -#, fuzzy msgid "Week start day:" -msgstr "começa no meio do caminho" +msgstr "Dia de início da semana:" #: ../share/extensions/svgcalendar.inx.h:8 -#, fuzzy msgid "Weekend:" -msgstr "Velocidade:" +msgstr "Fim de semana:" #: ../share/extensions/svgcalendar.inx.h:9 -#, fuzzy msgid "Sunday" -msgstr "Encaixe" +msgstr "Domingo" #: ../share/extensions/svgcalendar.inx.h:10 -#, fuzzy msgid "Monday" -msgstr "Modo" +msgstr "Segunda-feira" #: ../share/extensions/svgcalendar.inx.h:11 msgid "Saturday and Sunday" -msgstr "" +msgstr "Sábado e Domingo" #: ../share/extensions/svgcalendar.inx.h:12 -#, fuzzy msgid "Saturday" -msgstr "Saturar" +msgstr "Sábado" #: ../share/extensions/svgcalendar.inx.h:14 msgid "Automatically set size and position" -msgstr "" +msgstr "Definir tamanho e posição automaticamente" #: ../share/extensions/svgcalendar.inx.h:15 -#, fuzzy msgid "Months per line:" -msgstr "Centralizar linhas" +msgstr "Meses por linha:" #: ../share/extensions/svgcalendar.inx.h:16 -#, fuzzy msgid "Month Width:" -msgstr "Largura da caneta" +msgstr "Largura do Mês:" #: ../share/extensions/svgcalendar.inx.h:17 -#, fuzzy msgid "Month Margin:" -msgstr "Soltar cor" +msgstr "Margem do Mês:" #: ../share/extensions/svgcalendar.inx.h:18 msgid "The options below have no influence when the above is checked." -msgstr "" +msgstr "As opções abaixo não têm influência quando estiver ativado acima." #: ../share/extensions/svgcalendar.inx.h:20 -#, fuzzy msgid "Year color:" -msgstr "Soltar cor" +msgstr "Cor do ano:" #: ../share/extensions/svgcalendar.inx.h:21 -#, fuzzy msgid "Month color:" -msgstr "Soltar cor" +msgstr "Cor do mês:" #: ../share/extensions/svgcalendar.inx.h:22 -#, fuzzy msgid "Weekday name color:" -msgstr "Ajustar a cor escolhida" +msgstr "Cor do nome do dia da semana:" #: ../share/extensions/svgcalendar.inx.h:23 -#, fuzzy msgid "Day color:" -msgstr "Soltar cor" +msgstr "Cor do dia:" #: ../share/extensions/svgcalendar.inx.h:24 -#, fuzzy msgid "Weekend day color:" -msgstr "Ajustar a cor escolhida" +msgstr "Cor dos dias do fim de semana:" #: ../share/extensions/svgcalendar.inx.h:25 -#, fuzzy msgid "Next month day color:" -msgstr "Ajustar a cor escolhida" +msgstr "Cor do dia do mês seguinte:" #: ../share/extensions/svgcalendar.inx.h:26 -#, fuzzy msgid "Week number color:" -msgstr "Ajustar a cor escolhida" +msgstr "Cor do número da semana:" #: ../share/extensions/svgcalendar.inx.h:27 -#, fuzzy msgid "Localization" msgstr "Localização" #: ../share/extensions/svgcalendar.inx.h:28 -#, fuzzy msgid "Month names:" -msgstr "Não nomeado" +msgstr "Nomes dos meses:" #: ../share/extensions/svgcalendar.inx.h:29 -#, fuzzy msgid "Day names:" -msgstr "Nome da camada:" +msgstr "Nomes dos dias:" #: ../share/extensions/svgcalendar.inx.h:30 -#, fuzzy msgid "Week number column name:" -msgstr "Número de colunas" +msgstr "Nome da coluna do número da semana:" #: ../share/extensions/svgcalendar.inx.h:31 -#, fuzzy msgid "Char Encoding:" -msgstr "Alterar arredondamento" +msgstr "Codificação de Caracteres:" #: ../share/extensions/svgcalendar.inx.h:32 msgid "You may change the names for other languages:" -msgstr "" +msgstr "Pode alterar os nomes para outras línguas:" #: ../share/extensions/svgcalendar.inx.h:33 msgid "" "January February March April May June July August September October November " "December" msgstr "" +"Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro " +"Novembro Dezembro" #: ../share/extensions/svgcalendar.inx.h:34 msgid "Sun Mon Tue Wed Thu Fri Sat" -msgstr "" +msgstr "Seg Ter Qua Qui Sex Sáb Dom" #: ../share/extensions/svgcalendar.inx.h:35 msgid "The day names list must start from Sunday." -msgstr "" +msgstr "A lista de dias da semanda tem de começar no Domingo." #: ../share/extensions/svgcalendar.inx.h:36 msgid "Wk" -msgstr "" +msgstr "Sem" #: ../share/extensions/svgcalendar.inx.h:37 msgid "" "Select your system encoding. More information at http://docs.python.org/" "library/codecs.html#standard-encodings." msgstr "" +"Selecionar a codificação do seu sistema. Mais informações em http://docs." +"python.org/library/codecs.html#standard-encodings" #: ../share/extensions/svgfont2layers.inx.h:1 -#, fuzzy msgid "Convert SVG Font to Glyph Layers" -msgstr "Inverter em Todas Camadas" +msgstr "Converter Fonte SVG em Camadas de Caracteres" #: ../share/extensions/svgfont2layers.inx.h:2 msgid "Load only the first 30 glyphs (Recommended)" -msgstr "" +msgstr "Carregar apenas os primeiros 30 caracteres (recomendado)" #: ../share/extensions/synfig_output.inx.h:1 -#, fuzzy msgid "Synfig Output" -msgstr "Saída SVG" +msgstr "Exportar em Synfig" #: ../share/extensions/synfig_output.inx.h:2 msgid "Synfig Animation (*.sif)" -msgstr "" +msgstr "Synfig - Animação (*.sif)" #: ../share/extensions/synfig_output.inx.h:3 msgid "Synfig Animation written using the sif-file exporter extension" -msgstr "" +msgstr "Animação Synfig gravada com a extensão de exportar sif-file" #: ../share/extensions/tar_layers.inx.h:1 msgid "Collection of SVG files One per root layer" -msgstr "" +msgstr "Coleção de ficheiros SVG, um por cada camada raiz" #: ../share/extensions/tar_layers.inx.h:2 msgid "Layers as Separate SVG (*.tar)" -msgstr "" +msgstr "Camadas em SVG separados (*.tar)" #: ../share/extensions/tar_layers.inx.h:3 msgid "" "Each layer split into it's own svg file and collected as a tape archive (tar " "file)" msgstr "" +"Cada camada é separada num ficheiro SVG, sendo os ficheiros resultantes " +"gravados num só ficheiro TAR" #: ../share/extensions/text_braille.inx.h:1 -#, fuzzy msgid "Convert to Braille" -msgstr "Converter para Texto" +msgstr "Converter para Braile" #: ../share/extensions/text_extract.inx.h:1 -#, fuzzy msgid "Extract" -msgstr "Extrair Uma Imagem" +msgstr "Extrair" #: ../share/extensions/text_extract.inx.h:2 #: ../share/extensions/text_merge.inx.h:2 -#, fuzzy msgid "Text direction:" -msgstr "Aumentar espaçamento entre linhas" +msgstr "Direção do texto:" #: ../share/extensions/text_extract.inx.h:3 #: ../share/extensions/text_merge.inx.h:3 -#, fuzzy msgid "Left to right" -msgstr "Unidade de Comprimento:" +msgstr "Esquerda para a direita" #: ../share/extensions/text_extract.inx.h:4 #: ../share/extensions/text_merge.inx.h:4 -#, fuzzy msgid "Bottom to top" -msgstr "Quebrar caminho" +msgstr "Baixo para cima" #: ../share/extensions/text_extract.inx.h:5 #: ../share/extensions/text_merge.inx.h:5 -#, fuzzy msgid "Right to left" -msgstr "Ângulo direito" +msgstr "Direita para a esquerda" #: ../share/extensions/text_extract.inx.h:6 #: ../share/extensions/text_merge.inx.h:6 -#, fuzzy msgid "Top to bottom" -msgstr "A_baixar até o Fundo" +msgstr "Cima para baixo" #: ../share/extensions/text_extract.inx.h:7 #: ../share/extensions/text_merge.inx.h:7 -#, fuzzy msgid "Horizontal point:" -msgstr "Texto horizontal" +msgstr "Ponto horizontal:" #: ../share/extensions/text_extract.inx.h:11 #: ../share/extensions/text_merge.inx.h:11 -#, fuzzy msgid "Vertical point:" -msgstr "Texto vertical" +msgstr "Ponto vertical:" #: ../share/extensions/text_flipcase.inx.h:1 msgid "fLIP cASE" -msgstr "iNVERTER tAMANHO dE lETRA" +msgstr "iNVERTER cAIXAS" #: ../share/extensions/text_flipcase.inx.h:3 #: ../share/extensions/text_lowercase.inx.h:3 @@ -41015,9 +38932,8 @@ msgstr "iNVERTER tAMANHO dE lETRA" #: ../share/extensions/text_sentencecase.inx.h:3 #: ../share/extensions/text_titlecase.inx.h:3 #: ../share/extensions/text_uppercase.inx.h:3 -#, fuzzy msgid "Change Case" -msgstr "Mudar manualmente" +msgstr "Alterar Caixa" #: ../share/extensions/text_lowercase.inx.h:1 msgid "lowercase" @@ -41025,285 +38941,254 @@ msgstr "caixa baixa" #. false #: ../share/extensions/text_merge.inx.h:15 -#, fuzzy msgid "Keep style" -msgstr "Definir estilo do texto" +msgstr "Manter estilo" #: ../share/extensions/text_randomcase.inx.h:1 msgid "rANdOm CasE" -msgstr "tAMaNhO De LeTra aLeATÓrIO" +msgstr "cAIxa alEAtÓRiA" #: ../share/extensions/text_sentencecase.inx.h:1 msgid "Sentence case" -msgstr "Tamanho de Letra da Sentença" +msgstr "Caixa de frase" #: ../share/extensions/text_titlecase.inx.h:1 msgid "Title Case" -msgstr "Tamanho de Letra do Título" +msgstr "Caixa de Título" #: ../share/extensions/text_uppercase.inx.h:1 msgid "UPPERCASE" msgstr "CAIXA ALTA" #: ../share/extensions/triangle.inx.h:1 -#, fuzzy msgid "Triangle" -msgstr "Único" +msgstr "Triângulo" #: ../share/extensions/triangle.inx.h:2 -#, fuzzy msgid "Side Length a (px):" -msgstr "Tamanho do passo (px)" +msgstr "Comprimento do Lado a (px):" #: ../share/extensions/triangle.inx.h:3 -#, fuzzy msgid "Side Length b (px):" -msgstr "Tamanho do passo (px)" +msgstr "Comprimento do Lado b (px):" #: ../share/extensions/triangle.inx.h:4 -#, fuzzy msgid "Side Length c (px):" -msgstr "Tamanho do passo (px)" +msgstr "Comprimento do Lado c (px):" #: ../share/extensions/triangle.inx.h:5 -#, fuzzy msgid "Angle a (deg):" -msgstr "graus" +msgstr "Ângulo a (graus):" #: ../share/extensions/triangle.inx.h:6 -#, fuzzy msgid "Angle b (deg):" -msgstr "graus" +msgstr "Ângulo b (graus):" #: ../share/extensions/triangle.inx.h:7 -#, fuzzy msgid "Angle c (deg):" -msgstr "graus" +msgstr "Ângulo c (graus):" #: ../share/extensions/triangle.inx.h:9 msgid "From Three Sides" -msgstr "" +msgstr "Dos Três Lados" #: ../share/extensions/triangle.inx.h:10 msgid "From Sides a, b and Angle c" -msgstr "" +msgstr "Dos Lados a, b e Ângulo c" #: ../share/extensions/triangle.inx.h:11 msgid "From Sides a, b and Angle a" -msgstr "" +msgstr "Dos Lados a, b e Ângulo a" #: ../share/extensions/triangle.inx.h:12 msgid "From Side a and Angles a, b" -msgstr "" +msgstr "Do Lado a e Ângulos a, b" #: ../share/extensions/triangle.inx.h:13 msgid "From Side c and Angles a, b" -msgstr "" +msgstr "Do Lado c e Ângulos a, b" #: ../share/extensions/ungroup_deep.inx.h:1 -#, fuzzy msgid "Deep Ungroup" -msgstr "Desagrupar" +msgstr "Desagrupar em Profundidade" #: ../share/extensions/ungroup_deep.inx.h:2 -#, fuzzy msgid "Ungroup all groups in the selected object." -msgstr "" -"Criar um clone dos objectos seleccionados (uma cópia ligada ao original)" +msgstr "Desagrupar todos os grupos no objeto selecionado." #: ../share/extensions/ungroup_deep.inx.h:3 -#, fuzzy msgid "Starting Depth" -msgstr "Pontilhar peças" +msgstr "Profundidade Inicial" #: ../share/extensions/ungroup_deep.inx.h:4 -#, fuzzy msgid "Stopping Depth (from top)" -msgstr "Remover clip ao caminho da selecção" +msgstr "Profundidade Final (a partir do topo)" #: ../share/extensions/ungroup_deep.inx.h:5 msgid "Depth to Keep (from bottom)" -msgstr "" +msgstr "Profundidade a Manter (a partir do fundo)" #: ../share/extensions/voronoi2svg.inx.h:1 -#, fuzzy msgid "Voronoi Diagram" -msgstr "Padrões" +msgstr "Diagrama Voronoi" #: ../share/extensions/voronoi2svg.inx.h:3 msgid "Type of diagram:" -msgstr "" +msgstr "Tipo de diagrama:" #: ../share/extensions/voronoi2svg.inx.h:4 -#, fuzzy msgid "Bounding box of the diagram:" -msgstr "Ajustar caixas limitadoras às g_uias" +msgstr "Caixa limitadora do diagrama:" #: ../share/extensions/voronoi2svg.inx.h:5 -#, fuzzy msgid "Show the bounding box" -msgstr "Margem oposta da caixa de limites" +msgstr "Mostrar caixa limitadora" #: ../share/extensions/voronoi2svg.inx.h:6 -#, fuzzy msgid "Triangles color" -msgstr "Único" +msgstr "Cor dos triângulos" #: ../share/extensions/voronoi2svg.inx.h:7 -#, fuzzy msgid "Delaunay Triangulation" -msgstr "Negar convite" +msgstr "Triangulação de Delaunay" #: ../share/extensions/voronoi2svg.inx.h:8 -#, fuzzy msgid "Voronoi and Delaunay" -msgstr "Padrões" +msgstr "Voronoi e Delaunay" #: ../share/extensions/voronoi2svg.inx.h:9 msgid "Options for Voronoi diagram" -msgstr "" +msgstr "Opções para o diagrama Voronoi" #: ../share/extensions/voronoi2svg.inx.h:11 -#, fuzzy msgid "Automatic from selected objects" -msgstr "Agrupar os objectos seleccionados" +msgstr "Automático a partir dos objetos selecionados" #: ../share/extensions/voronoi2svg.inx.h:12 -#, fuzzy msgid "Options for Delaunay Triangulation" -msgstr "Negar convite" +msgstr "Opções para a Triangulação de Delaunay" #: ../share/extensions/voronoi2svg.inx.h:13 msgid "Default (Stroke black and no fill)" -msgstr "" +msgstr "Padrão (Traço a preto e sem preenchimento)" #: ../share/extensions/voronoi2svg.inx.h:14 -#, fuzzy msgid "Triangles with item color" -msgstr "Alterar cor da parada do degradê" +msgstr "Triângulos com cor do item" #: ../share/extensions/voronoi2svg.inx.h:15 msgid "Triangles with item color (random on apply)" -msgstr "" +msgstr "Triângulos com cor do item (aleatório ao aplicar)" #: ../share/extensions/voronoi2svg.inx.h:17 msgid "" "Select a set of objects. Their centroids will be used as the sites of the " "Voronoi diagram. Text objects are not handled." msgstr "" +"Selecionar um conjunto de objetos. Os seus centróides serão usados como " +"localizações do diagrama Voronoi. Os objetos de texto não são utilizados." #: ../share/extensions/web-set-att.inx.h:1 -#, fuzzy msgid "Set Attributes" -msgstr "Ajustar atributo" +msgstr "Aplicar Atributos" #: ../share/extensions/web-set-att.inx.h:3 -#, fuzzy msgid "Attribute to set:" -msgstr "Nome do atributo" +msgstr "Atributo a aplicar:" #: ../share/extensions/web-set-att.inx.h:4 msgid "When should the set be done:" -msgstr "" +msgstr "Quando a aplicação deve ser feita:" #: ../share/extensions/web-set-att.inx.h:5 -#, fuzzy msgid "Value to set:" -msgstr "Valore(s)" +msgstr "Valor a aplicar:" #: ../share/extensions/web-set-att.inx.h:6 #: ../share/extensions/web-transmit-att.inx.h:5 msgid "Compatibility with previews code to this event:" -msgstr "" +msgstr "Compatibilidade com código de prever com este evento:" #: ../share/extensions/web-set-att.inx.h:7 msgid "Source and destination of setting:" -msgstr "" +msgstr "Fonte e destino da aplicação:" #: ../share/extensions/web-set-att.inx.h:8 #: ../share/extensions/web-transmit-att.inx.h:7 msgid "on click" -msgstr "" +msgstr "ao clicar" #: ../share/extensions/web-set-att.inx.h:9 #: ../share/extensions/web-transmit-att.inx.h:8 msgid "on focus" -msgstr "" +msgstr "em foco" #: ../share/extensions/web-set-att.inx.h:10 #: ../share/extensions/web-transmit-att.inx.h:9 -#, fuzzy msgid "on blur" -msgstr "Alterar desfoque" +msgstr "ao desfocar" #: ../share/extensions/web-set-att.inx.h:11 #: ../share/extensions/web-transmit-att.inx.h:10 -#, fuzzy msgid "on activate" -msgstr "Desativado" +msgstr "ao ativar" #: ../share/extensions/web-set-att.inx.h:12 #: ../share/extensions/web-transmit-att.inx.h:11 msgid "on mouse down" -msgstr "" +msgstr "ao clicar para baixo" #: ../share/extensions/web-set-att.inx.h:13 #: ../share/extensions/web-transmit-att.inx.h:12 msgid "on mouse up" -msgstr "" +msgstr "ao soltar clique" #: ../share/extensions/web-set-att.inx.h:14 #: ../share/extensions/web-transmit-att.inx.h:13 msgid "on mouse over" -msgstr "" +msgstr "com cursor por cima" #: ../share/extensions/web-set-att.inx.h:15 #: ../share/extensions/web-transmit-att.inx.h:14 msgid "on mouse move" -msgstr "" +msgstr "com cursor a mover" #: ../share/extensions/web-set-att.inx.h:16 #: ../share/extensions/web-transmit-att.inx.h:15 -#, fuzzy msgid "on mouse out" -msgstr "Ampliar ou Reduzir nível de zoom" +msgstr "com cursor a sair" #: ../share/extensions/web-set-att.inx.h:17 #: ../share/extensions/web-transmit-att.inx.h:16 -#, fuzzy msgid "on element loaded" -msgstr "Novo nó elementar" +msgstr "ao carregar elemento" #: ../share/extensions/web-set-att.inx.h:18 msgid "The list of values must have the same size as the attributes list." -msgstr "" +msgstr "A lista de valores deve ter o mesmo tamanho da lista de atributos." #: ../share/extensions/web-set-att.inx.h:19 #: ../share/extensions/web-transmit-att.inx.h:17 msgid "Run it after" -msgstr "" +msgstr "Efetuá-lo depois" #: ../share/extensions/web-set-att.inx.h:20 #: ../share/extensions/web-transmit-att.inx.h:18 msgid "Run it before" -msgstr "" +msgstr "Efetuá-lo antes" #: ../share/extensions/web-set-att.inx.h:22 #: ../share/extensions/web-transmit-att.inx.h:20 msgid "The next parameter is useful when you select more than two elements" -msgstr "" +msgstr "O próximo parâmetro é útil quando seleciona mais do que 2 elementos" #: ../share/extensions/web-set-att.inx.h:23 -#, fuzzy msgid "All selected ones set an attribute in the last one" -msgstr "" -"Cada objecto seleccionado tem um marca de diamante no canto esquerdo superior" +msgstr "Todos os selecionados aplicam um atributo no último" #: ../share/extensions/web-set-att.inx.h:24 -#, fuzzy msgid "The first selected sets an attribute in all others" -msgstr "" -"Cada objecto seleccionado tem um marca de diamante no canto esquerdo superior" +msgstr "O primeiro selecionado aplica um atributo em todos os outros" #: ../share/extensions/web-set-att.inx.h:26 #: ../share/extensions/web-transmit-att.inx.h:24 @@ -41311,18 +39196,24 @@ msgid "" "This effect adds a feature visible (or usable) only on a SVG enabled web " "browser (like Firefox)." msgstr "" +"Este efeito adiciona uma funcionalidade visível (ou usável) apenas num " +"navegador de internet que suporte SVG (como o Firefox)" #: ../share/extensions/web-set-att.inx.h:27 msgid "" "This effect sets one or more attributes in the second selected element, when " "a defined event occurs on the first selected element." msgstr "" +"Este efeito aplica 1 ou mais atributos do segundo elemento selecionado " +"quando 1 evento definido ocorre no primeiro elemento selecionado." #: ../share/extensions/web-set-att.inx.h:28 msgid "" "If you want to set more than one attribute, you must separate this with a " "space, and only with a space." msgstr "" +"Quando quiser aplicar mais do que 1 atributo, deve separar isto num espaço e " +"apenas com um espaço." #: ../share/extensions/web-set-att.inx.h:29 #: ../share/extensions/web-transmit-att.inx.h:27 @@ -41330,315 +39221,291 @@ msgstr "" #: ../share/extensions/webslicer_create_rect.inx.h:41 #: ../share/extensions/webslicer_export.inx.h:8 msgid "Web" -msgstr "" +msgstr "Web" #: ../share/extensions/web-transmit-att.inx.h:1 -#, fuzzy msgid "Transmit Attributes" -msgstr "Ajustar atributo" +msgstr "Transmitir Atributos" #: ../share/extensions/web-transmit-att.inx.h:3 -#, fuzzy msgid "Attribute to transmit:" -msgstr "Nome do atributo" +msgstr "Atributo a transmitir:" #: ../share/extensions/web-transmit-att.inx.h:4 -#, fuzzy msgid "When to transmit:" -msgstr "Ajustar Kern para a direita" +msgstr "Quando transmitir:" #: ../share/extensions/web-transmit-att.inx.h:6 msgid "Source and destination of transmitting:" -msgstr "" +msgstr "Fonte e destino da transmissão:" #: ../share/extensions/web-transmit-att.inx.h:21 -#, fuzzy msgid "All selected ones transmit to the last one" -msgstr "Objectos seleccionados possuem o mesmo traço" +msgstr "Todos os selecionados trasmitem para o último" #: ../share/extensions/web-transmit-att.inx.h:22 msgid "The first selected transmits to all others" -msgstr "" +msgstr "O primeiro selecionado transmite para todos os outros" #: ../share/extensions/web-transmit-att.inx.h:25 msgid "" "This effect transmits one or more attributes from the first selected element " "to the second when an event occurs." msgstr "" +"Este efeito transmite 1 ou mais atributos do primeiro elemento selecionado " +"para o segundo quando ocorre um evento." #: ../share/extensions/web-transmit-att.inx.h:26 msgid "" "If you want to transmit more than one attribute, you should separate this " "with a space, and only with a space." msgstr "" +"Quando quiser transmitir mais do que 1 atributo, deve separar isto com um " +"espaço e apenas com um espaço." #: ../share/extensions/webslicer_create_group.inx.h:1 msgid "Set a layout group" -msgstr "" +msgstr "Definir um grupo de laioute" #: ../share/extensions/webslicer_create_group.inx.h:3 #: ../share/extensions/webslicer_create_rect.inx.h:18 -#, fuzzy msgid "HTML id attribute:" -msgstr "Ajustar atributo" +msgstr "Atributo id HTML:" #: ../share/extensions/webslicer_create_group.inx.h:4 #: ../share/extensions/webslicer_create_rect.inx.h:19 -#, fuzzy msgid "HTML class attribute:" -msgstr "Ajustar atributo" +msgstr "Atributo classe HTML:" #: ../share/extensions/webslicer_create_group.inx.h:5 -#, fuzzy msgid "Width unit:" -msgstr "Largura" +msgstr "Unidade de largura:" #: ../share/extensions/webslicer_create_group.inx.h:6 -#, fuzzy msgid "Height unit:" -msgstr "Altura:" +msgstr "Unidade de altura:" #: ../share/extensions/webslicer_create_group.inx.h:7 #: ../share/extensions/webslicer_create_rect.inx.h:9 -#, fuzzy msgid "Background color:" -msgstr "Cor de plano de fundo" +msgstr "Cor do fundo:" #: ../share/extensions/webslicer_create_group.inx.h:8 msgid "Pixel (fixed)" -msgstr "" +msgstr "Píxel (fixo)" #: ../share/extensions/webslicer_create_group.inx.h:9 -#, fuzzy msgid "Percent (relative to parent size)" -msgstr "Escala de largura relativa" +msgstr "Percentagem (relativo ao tamanho pai)" #: ../share/extensions/webslicer_create_group.inx.h:10 msgid "Undefined (relative to non-floating content size)" -msgstr "" +msgstr "Não definido (relativo ao tamanho do conteúdo não flutuante)" #: ../share/extensions/webslicer_create_group.inx.h:12 msgid "" "Layout Group is only about to help a better code generation (if you need " "it). To use this, you must to select some \"Slicer rectangles\" first." msgstr "" +"Grupo de Laioute ajuda a gerar um código melhor (se necessitar). Para usar " +"isto, é necessário selecionar alguns \"Retângulos de fatiar\" primeiro." #: ../share/extensions/webslicer_create_group.inx.h:14 -#, fuzzy msgid "Slicer" -msgstr "Padrão" +msgstr "Fatias" #: ../share/extensions/webslicer_create_rect.inx.h:1 -#, fuzzy msgid "Create a slicer rectangle" -msgstr "Criar retângulo" +msgstr "Criar retângulo de fatias" #: ../share/extensions/webslicer_create_rect.inx.h:4 -#, fuzzy msgid "DPI:" -msgstr "DPI" +msgstr "DPI:" #: ../share/extensions/webslicer_create_rect.inx.h:5 -#, fuzzy msgid "Force Dimension:" -msgstr "Divisão" +msgstr "Forçar Dimensão:" #. i18n. Description duplicated in a fake value attribute in order to make it translatable #: ../share/extensions/webslicer_create_rect.inx.h:7 msgid "Force Dimension must be set as x" -msgstr "" +msgstr "O Forçar Dimensão deve ser definido como x" #: ../share/extensions/webslicer_create_rect.inx.h:8 msgid "If set, this will replace DPI." -msgstr "" +msgstr "Se definido, isto irá substituir o DPI." #: ../share/extensions/webslicer_create_rect.inx.h:10 -#, fuzzy msgid "JPG specific options" -msgstr "Especificação do SVG 1.1" +msgstr "Opções específicas do JPG" #: ../share/extensions/webslicer_create_rect.inx.h:11 -#, fuzzy msgid "Quality:" -msgstr "_Sair" +msgstr "Qualidade:" #: ../share/extensions/webslicer_create_rect.inx.h:12 msgid "" "0 is the lowest image quality and highest compression, and 100 is the best " "quality but least effective compression" msgstr "" +"0 é a qualidade mínima com o máximo de compressão; 100 é a qualidade máxima " +"mas com menos compressão" #: ../share/extensions/webslicer_create_rect.inx.h:13 -#, fuzzy msgid "GIF specific options" -msgstr "Especificação do SVG 1.1" +msgstr "Opções específicas do GIF" #: ../share/extensions/webslicer_create_rect.inx.h:16 -#, fuzzy msgid "Palette" -msgstr "_Paleta" +msgstr "Paleta" #: ../share/extensions/webslicer_create_rect.inx.h:17 -#, fuzzy msgid "Palette size:" -msgstr "Colar tamanho" +msgstr "Tamanho da paleta:" #: ../share/extensions/webslicer_create_rect.inx.h:20 msgid "Options for HTML export" -msgstr "" +msgstr "Opções para exportação HTML" #: ../share/extensions/webslicer_create_rect.inx.h:21 -#, fuzzy msgid "Layout disposition:" -msgstr "Posição Aleatória" +msgstr "Disposição do laioute:" #: ../share/extensions/webslicer_create_rect.inx.h:22 msgid "Positioned html block element with the image as Background" -msgstr "" +msgstr "Elemento bloco HTML posicionado na imagem como Fundo" #: ../share/extensions/webslicer_create_rect.inx.h:23 msgid "Tiled Background (on parent group)" -msgstr "" +msgstr "Fundo Ladrilhado (no grupo pai)" #: ../share/extensions/webslicer_create_rect.inx.h:24 msgid "Background — repeat horizontally (on parent group)" -msgstr "" +msgstr "Fundo — repetir horizontalmente (no grupo pai)" #: ../share/extensions/webslicer_create_rect.inx.h:25 msgid "Background — repeat vertically (on parent group)" -msgstr "" +msgstr "Fundo — repetir verticalmente (no grupo pai)" #: ../share/extensions/webslicer_create_rect.inx.h:26 msgid "Background — no repeat (on parent group)" -msgstr "" +msgstr "Fundo — sem repetir (no grupo pai)" #: ../share/extensions/webslicer_create_rect.inx.h:27 -#, fuzzy msgid "Positioned Image" -msgstr "Posição:" +msgstr "Imagem Posicionada" #: ../share/extensions/webslicer_create_rect.inx.h:28 -#, fuzzy msgid "Non Positioned Image" -msgstr "Rotação (graus)" +msgstr "Imagem Não-Posicionada" #: ../share/extensions/webslicer_create_rect.inx.h:29 msgid "Left Floated Image" -msgstr "" +msgstr "Imagem Flutuante à Esquerda" #: ../share/extensions/webslicer_create_rect.inx.h:30 -#, fuzzy msgid "Right Floated Image" -msgstr "Ângulo direito" +msgstr "Imagem Flutuante à Direita" #: ../share/extensions/webslicer_create_rect.inx.h:31 -#, fuzzy msgid "Position anchor:" -msgstr "Posição:" +msgstr "Âncora de posicionamento:" #: ../share/extensions/webslicer_create_rect.inx.h:32 -#, fuzzy msgid "Top and Left" -msgstr "Quebrar caminho" +msgstr "Cima e Esquerda" #: ../share/extensions/webslicer_create_rect.inx.h:33 -#, fuzzy msgid "Top and Center" -msgstr "Quebrar caminho" +msgstr "Cima e Centro" #: ../share/extensions/webslicer_create_rect.inx.h:34 -#, fuzzy msgid "Top and right" -msgstr "Dicas e _Truques" +msgstr "Cima e Direita" #: ../share/extensions/webslicer_create_rect.inx.h:35 -#, fuzzy msgid "Middle and Left" -msgstr "Quebrar caminho" +msgstr "Meio e Esquerda" #: ../share/extensions/webslicer_create_rect.inx.h:36 msgid "Middle and Center" -msgstr "" +msgstr "Meio e Centro" #: ../share/extensions/webslicer_create_rect.inx.h:37 -#, fuzzy msgid "Middle and Right" -msgstr "Quebrar caminho" +msgstr "Meio e Direita" #: ../share/extensions/webslicer_create_rect.inx.h:38 -#, fuzzy msgid "Bottom and Left" -msgstr "Quebrar caminho" +msgstr "Abaixo e Esquerda" #: ../share/extensions/webslicer_create_rect.inx.h:39 -#, fuzzy msgid "Bottom and Center" -msgstr "Quebrar caminho" +msgstr "Abaixo e Centro" #: ../share/extensions/webslicer_create_rect.inx.h:40 -#, fuzzy msgid "Bottom and Right" -msgstr "Quebrar caminho" +msgstr "Abaixo e Direita" #: ../share/extensions/webslicer_export.inx.h:1 msgid "Export layout pieces and HTML+CSS code" -msgstr "" +msgstr "Exportar peças de laioute e código HTML+CSS" #: ../share/extensions/webslicer_export.inx.h:3 msgid "Directory path to export:" -msgstr "" +msgstr "Caminho da pasta a exportar:" #: ../share/extensions/webslicer_export.inx.h:4 msgid "Create directory, if it does not exists" -msgstr "" +msgstr "Criar pasta se esta não existir" #: ../share/extensions/webslicer_export.inx.h:5 msgid "With HTML and CSS" -msgstr "" +msgstr "Com HTML e CSS" #: ../share/extensions/webslicer_export.inx.h:7 msgid "" "All sliced images, and optionally - code, will be generated as you had " "configured and saved to one directory." msgstr "" +"Todas as imagens fatiadas, e opcionalmente - o código será gerado tal como " +"configurado e gravado para uma pasta." #: ../share/extensions/whirl.inx.h:1 msgid "Whirl" msgstr "Torção" #: ../share/extensions/whirl.inx.h:2 -#, fuzzy msgid "Amount of whirl:" -msgstr "Quantidade de rotação" +msgstr "Quantidade de torção:" #: ../share/extensions/whirl.inx.h:3 msgid "Rotation is clockwise" -msgstr "Girar no sentido horário" +msgstr "Rotação é no sentido horário" #: ../share/extensions/wireframe_sphere.inx.h:1 msgid "Wireframe Sphere" -msgstr "" +msgstr "Esfera de Arames" #: ../share/extensions/wireframe_sphere.inx.h:2 -#, fuzzy msgid "Lines of latitude:" -msgstr "Cópias do padrão:" +msgstr "Linhas de latitude:" #: ../share/extensions/wireframe_sphere.inx.h:3 msgid "Lines of longitude:" -msgstr "" +msgstr "Linhas de longitude:" #: ../share/extensions/wireframe_sphere.inx.h:4 msgid "Tilt (deg):" -msgstr "" +msgstr "Inclinação (graus):" #: ../share/extensions/wireframe_sphere.inx.h:7 msgid "Hide lines behind the sphere" -msgstr "" +msgstr "Esconder linhas por trás da esfera" #: ../share/extensions/wmf_input.inx.h:1 ../share/extensions/wmf_output.inx.h:1 msgid "Windows Metafile Input" -msgstr "Entrada de Metafile do Windows" +msgstr "Importar Windows Metafile" #: ../share/extensions/wmf_input.inx.h:3 ../share/extensions/wmf_output.inx.h:3 msgid "A popular graphics file format for clipart" @@ -41646,30 +39513,29 @@ msgstr "Um formato de ficheiro gráfico popular para clipart" #: ../share/extensions/xaml2svg.inx.h:1 msgid "XAML Input" -msgstr "Entrada XAML" +msgstr "Importar XAML" + +#~ msgid "Add Stored to measure tool" +#~ msgstr "Adicionar Armazenado à ferramenta de medição" #, fuzzy #~ msgid "" #~ "Select exactly 2 paths to perform difference, division, or path " #~ "cut." #~ msgstr "" -#~ "Seleccione exatamente dois caminhos para fazer diferença, ou-" +#~ "Seleccione exatamente 2 caminhos para fazer diferença, ou-" #~ "exclusivo, divisão ou corte de caminho." -#, fuzzy #~ msgid "Miter _limit:" -#~ msgstr "Limite de aguçamento:" +#~ msgstr "Limite da _esquina:" -#, fuzzy #~ msgid "Text Orientation: " -#~ msgstr "Orientação da página:" +#~ msgstr "Orientação do Texto:" -#, fuzzy #~ msgctxt "measure extension" #~ msgid "Fixed Angle" -#~ msgstr "Ângulo da caneta" +#~ msgstr "Ângulo Fixo" -#, fuzzy #~ msgctxt "Flow control" #~ msgid "None" #~ msgstr "Nenhum" @@ -41677,50 +39543,41 @@ msgstr "Entrada XAML" #~ msgid "Use normal distribution" #~ msgstr "Usar distribuição normal" -#, fuzzy #~ msgid "Arbitrary Angle" -#~ msgstr "Ângulo" +#~ msgstr "Ângulo Arbitrário" -#, fuzzy #~ msgid "Horizontal Point:" -#~ msgstr "Texto horizontal" +#~ msgstr "Ponto Horizontal:" -#, fuzzy #~ msgid "Vertical Point:" -#~ msgstr "Texto vertical" +#~ msgstr "Ponto Vertical:" -#, fuzzy #~ msgid "Ids" -#~ msgstr "_Id" +#~ msgstr "IDs" -#, fuzzy #~ msgid "Help (Options)" -#~ msgstr "Opções" +#~ msgstr "Ajuda (Opções)" -#, fuzzy #~ msgctxt "Symbol" #~ msgid "Map Symbols" -#~ msgstr "Miscelânio:" +#~ msgstr "Símbolos de Mapas" #, fuzzy #~ msgctxt "Symbol" #~ msgid "Bed and Breakfast" -#~ msgstr "Criar e editar degradês" +#~ msgstr "Bed and Breakfast" -#, fuzzy #~ msgctxt "Symbol" #~ msgid "Hostel" -#~ msgstr "recuar" +#~ msgstr "Hostel" -#, fuzzy #~ msgctxt "Symbol" #~ msgid "Chalet" -#~ msgstr "_Paleta" +#~ msgstr "Chalé" -#, fuzzy #~ msgctxt "Symbol" #~ msgid "Playground" -#~ msgstr "Plano de fundo:" +#~ msgstr "Parque Infantil" #, fuzzy #~ msgctxt "Symbol" @@ -41908,27 +39765,23 @@ msgstr "Entrada XAML" #~ msgid "Boolops" #~ msgstr "Ferramentas" -#, fuzzy #~ msgid "Select one path to clone." -#~ msgstr "Seleccione um objecto para clonar." +#~ msgstr "Selecione um caminho para clonar." -#, fuzzy #~ msgid "Select one path to clone." -#~ msgstr "Seleccione um objecto para clonar." +#~ msgstr "Selecione um caminho para clonar." #~ msgid "<no name found>" #~ msgstr "<nenhum nome encontrado>" #~ msgid "Default _units:" -#~ msgstr "Unidades padrão:" +#~ msgstr "_Unidades padrão:" -#, fuzzy #~ msgid "_Delay (in ms):" -#~ msgstr "Nome da camada:" +#~ msgstr "_Atraso (em ms):" -#, fuzzy #~ msgid "Set Resolution" -#~ msgstr "Relação:" +#~ msgstr "Definir Resolução:" #, fuzzy #~ msgid "Move a connection point" @@ -41979,9 +39832,8 @@ msgstr "Entrada XAML" #~ msgid "All shapes" #~ msgstr "Todas as formas" -#, fuzzy #~ msgid "_Text:" -#~ msgstr "_Texto: " +#~ msgstr "_Texto:" #~ msgid "Find objects by their text content (exact or partial match)" #~ msgstr "" @@ -41994,9 +39846,8 @@ msgstr "Entrada XAML" #~ "Encontrar objectos pelo valor de seu atributo id (casamento exato ou " #~ "parcial)" -#, fuzzy #~ msgid "_Style:" -#~ msgstr "E_stilo: " +#~ msgstr "E_stilo:" #~ msgid "" #~ "Find objects by the value of the style attribute (exact or partial match)" @@ -42004,9 +39855,8 @@ msgstr "Entrada XAML" #~ "Encontrar objectos pelo valor do atributo estilo (casamento exato ou " #~ "parcial)" -#, fuzzy #~ msgid "_Attribute:" -#~ msgstr "_Atributo: " +#~ msgstr "_Atributo:" #~ msgid "Find objects by the name of an attribute (exact or partial match)" #~ msgstr "" @@ -42024,33 +39874,26 @@ msgstr "Entrada XAML" #~ msgid "Select objects matching all of the fields you filled in" #~ msgstr "Busca por objectos casando com os valores que preencheu" -#, fuzzy #~ msgid "Green:" -#~ msgstr "Verde" +#~ msgstr "Verde:" -#, fuzzy #~ msgid "Blue:" -#~ msgstr "Azul" +#~ msgstr "Azul:" -#, fuzzy #~ msgid "Lightness:" -#~ msgstr "Brilho" +#~ msgstr "Luminosidade:" -#, fuzzy #~ msgid "Alpha:" -#~ msgstr "Alfa" +#~ msgstr "Alfa:" -#, fuzzy #~ msgid "Level:" -#~ msgstr "Nível" +#~ msgstr "Nível:" -#, fuzzy #~ msgid "Contrast:" -#~ msgstr "Contraste" +#~ msgstr "Contraste:" -#, fuzzy #~ msgid "Composite:" -#~ msgstr "Composição" +#~ msgstr "Composição:" #, fuzzy #~ msgid "Glow:" @@ -42071,19 +39914,18 @@ msgstr "Entrada XAML" #~ msgid "drawing-%d%s" #~ msgstr "desenho-%d%s" -#, fuzzy #~ msgid "%s" -#~ msgstr "%" +#~ msgstr "%s" #~ msgid "Pt" #~ msgstr "Pt" #, fuzzy #~ msgid "Picas" -#~ msgstr "Bias" +#~ msgstr "Picas" #~ msgid "Pixels" -#~ msgstr "Pixels" +#~ msgstr "Píxeis" #~ msgid "Px" #~ msgstr "Px" @@ -42109,6 +39951,9 @@ msgstr "Entrada XAML" #~ msgid "Inches" #~ msgstr "Polegadas" +#~ msgid "Only visible intersections" +#~ msgstr "Apenas interseções visíveis" + #, fuzzy #~ msgid "Foot" #~ msgstr "Fonte" @@ -42410,13 +40255,11 @@ msgstr "Entrada XAML" #~ msgid "_Start Markers:" #~ msgstr "Marcadores de Início:" -#, fuzzy #~ msgid "_Mid Markers:" -#~ msgstr "Marcadores centrais:" +#~ msgstr "Marcadores _Centrais:" -#, fuzzy #~ msgid "_End Markers:" -#~ msgstr "Marcadores de fim:" +#~ msgstr "Marcadores de _Fim:" #, fuzzy #~ msgid "Failed to find font matching: %s\n" @@ -42472,9 +40315,8 @@ msgstr "Entrada XAML" #~ msgid "[Unstable!] Clone original path" #~ msgstr "Substituir texto..." -#, fuzzy #~ msgid "_Description" -#~ msgstr "Descrição" +#~ msgstr "_Descrição" #~ msgid "Bitmap size" #~ msgstr "Tamanho do bitmap" @@ -42510,37 +40352,29 @@ msgstr "Entrada XAML" #~ msgid "Color Management" #~ msgstr "Gerenciamento de cor" -#, fuzzy #~ msgid "Add" -#~ msgstr "_Adicionar" +#~ msgstr "Adicionar" -#, fuzzy #~ msgid "Re_place:" -#~ msgstr "Substituir" +#~ msgstr "_Substituir:" -#, fuzzy #~ msgid "S_election" -#~ msgstr "Seleção" +#~ msgstr "S_eleção" -#, fuzzy #~ msgid "Attribute _Name" -#~ msgstr "Nome do atributo" +#~ msgstr "_Nome do Atributo" -#, fuzzy #~ msgid "Attribute _Value" -#~ msgstr "Valor do atributo" +#~ msgstr "_Valor do Atributo" -#, fuzzy #~ msgid "objects" -#~ msgstr "Objectos" +#~ msgstr "objetos" -#, fuzzy #~ msgid "found" -#~ msgstr "Arredondado" +#~ msgstr "encontrado" -#, fuzzy #~ msgid "Text Replace" -#~ msgstr "Substituir" +#~ msgstr "Substituir Texto" #, fuzzy #~ msgid "Major grid line emphasizing" @@ -42568,77 +40402,69 @@ msgstr "Entrada XAML" #~ msgid "Font size (px)" #~ msgstr "Tamanho da fonte [px]" -#, fuzzy #~ msgid "Angle 0" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 0" -#, fuzzy #~ msgid "Angle 120" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 120" -#, fuzzy #~ msgid "Angle 135" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 135" -#, fuzzy #~ msgid "Angle 150" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 150" -#, fuzzy #~ msgid "Angle 180" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 180" -#, fuzzy #~ msgid "Angle 210" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 210" -#, fuzzy #~ msgid "Angle 225" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 225" #, fuzzy #~ msgid "Angle 240" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 240" #, fuzzy #~ msgid "Angle 270" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 270" #, fuzzy #~ msgid "Angle 30" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 30" #, fuzzy #~ msgid "Angle 300" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 300" #, fuzzy #~ msgid "Angle 315" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 315" #, fuzzy #~ msgid "Angle 330" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 330" #, fuzzy #~ msgid "Angle 45" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 45" #, fuzzy #~ msgid "Angle 60" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 60" #, fuzzy #~ msgid "Angle 90" -#~ msgstr "Ângulo X" +#~ msgstr "Ângulo 90" #, fuzzy #~ msgid "Display Format: " #~ msgstr "_Modo de visão" -#, fuzzy #~ msgid "By:" -#~ msgstr "Ry:" +#~ msgstr "Por:" #, fuzzy #~ msgid "Replace text" @@ -44964,7 +42790,7 @@ msgstr "Entrada XAML" #~ "Imprimir diretamente para um ficheiro ou redirecionamento sem alertas." #~ msgid "Gradients" -#~ msgstr "Degradês" +#~ msgstr "Gradientes" #~ msgid "Vertical kerning" -#~ msgstr "Espaçamento Vertical" +#~ msgstr "Espaçamento vertical" -- cgit v1.2.3 From 3e3920f9ebb18e7e2dcdc5eaa52f9e30308198f7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sat, 30 Jul 2016 18:29:37 -0500 Subject: Grab the python2 interpreter for the extensions (bzr r14950.1.18) --- .snapcraft.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.snapcraft.yaml b/.snapcraft.yaml index 8ab13715f..18fe6ed3c 100644 --- a/.snapcraft.yaml +++ b/.snapcraft.yaml @@ -71,9 +71,20 @@ parts: - libvisio-0.1-1 - libwpg-0.3-3 - libglib2.0-bin + - aspell + - imagemagick + - libimage-magick-perl + - libwmf-bin + - python-lxml + - python-numpy + - transfig + - pstoedit + - libsvg-perl + - libxml-xql-perl + - python-uniconvertor + - ruby stage: - -usr/sbin/update-icon-caches - - -usr/share/pkgconfig snap: - -lib/inkscape/*.a after: [desktop/gtk2] -- cgit v1.2.3 From 58d2be6cdbecbce28a453f3f8f22a73d26be8ab1 Mon Sep 17 00:00:00 2001 From: firashanife Date: Tue, 2 Aug 2016 12:26:58 +0200 Subject: [Bug #1574561] Italian translation updates for 0.92.x. Fixed bugs: - https://launchpad.net/bugs/1574561 (bzr r15023.3.3) --- po/it.po | 68 ++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/po/it.po b/po/it.po index c069e24c4..4b0abbf46 100644 --- a/po/it.po +++ b/po/it.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Inkscape 0.92\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2016-06-17 15:11+0200\n" +"POT-Creation-Date: 2016-07-17 21:43+0200\n" "PO-Revision-Date: 2016-06-10 15:31+0100\n" "Last-Translator: Firas Hanife \n" "Language-Team: \n" @@ -959,7 +959,7 @@ msgstr "Rughe a bolle, opache" #: ../share/filters/filters.svg.h:352 msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" -msgstr "Come rughe a bolle ma con un'illuminazione diffusa anziché speculare" +msgstr "Come Rughe a bolle ma con un'illuminazione diffusa anziché speculare" #: ../share/filters/filters.svg.h:354 msgid "Blotting Paper" @@ -5683,7 +5683,7 @@ msgstr "Soglia" #: ../src/extension/internal/bitmap/threshold.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:46 -#: ../src/widgets/paintbucket-toolbar.cpp:147 +#: ../src/widgets/paintbucket-toolbar.cpp:148 msgid "Threshold:" msgstr "Soglia:" @@ -11730,7 +11730,7 @@ msgstr "Inverti" #: ../src/live_effects/parameter/originalpatharray.cpp:130 #: ../src/live_effects/parameter/originalpatharray.cpp:315 -#: ../src/live_effects/parameter/path.cpp:510 +#: ../src/live_effects/parameter/path.cpp:508 msgid "Link path parameter to path" msgstr "Lega il parametro del tracciato al parametro" @@ -11780,7 +11780,7 @@ msgstr "Incolla tracciato" msgid "Link to path on clipboard" msgstr "Collega a tracciato negli appunti" -#: ../src/live_effects/parameter/path.cpp:478 +#: ../src/live_effects/parameter/path.cpp:476 msgid "Paste path parameter" msgstr "Incolla parametri tracciato" @@ -12641,7 +12641,7 @@ msgstr "Seleziona un gruppo da dividere." msgid "No groups to ungroup in the selection." msgstr "Nessun gruppo nella selezione da dividere." -#: ../src/selection-chemistry.cpp:901 ../src/sp-item-group.cpp:550 +#: ../src/selection-chemistry.cpp:901 ../src/sp-item-group.cpp:652 #: ../src/ui/dialog/objects.cpp:1916 msgid "Ungroup" msgstr "Dividi" @@ -13333,16 +13333,16 @@ msgstr "[riferimento errato]: %s" msgid "%d × %d: %s" msgstr "%d × %d: %s" -#: ../src/sp-item-group.cpp:307 ../src/ui/dialog/objects.cpp:1915 +#: ../src/sp-item-group.cpp:311 ../src/ui/dialog/objects.cpp:1915 msgid "Group" msgstr "Gruppo" -#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 +#: ../src/sp-item-group.cpp:317 ../src/sp-switch.cpp:69 #, c-format msgid "of %d object" msgstr "di %d oggetto" -#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 +#: ../src/sp-item-group.cpp:317 ../src/sp-switch.cpp:69 #, c-format msgid "of %d objects" msgstr "di %d oggetti" @@ -14476,7 +14476,7 @@ msgstr "Accumula la rotazione per ogni colonna" #: ../src/ui/dialog/clonetiler.cpp:551 msgid "_Blur & opacity" -msgstr "Sfocatura & _opacità" +msgstr "Sfocatura & _Opacità" #: ../src/ui/dialog/clonetiler.cpp:560 msgid "Blur:" @@ -29735,7 +29735,7 @@ msgstr "Visualizza informazioni di misura per gli elementi selezionati" #. Add the units menu. #: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 -#: ../src/widgets/paintbucket-toolbar.cpp:167 +#: ../src/widgets/paintbucket-toolbar.cpp:168 #: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:530 #: ../src/widgets/text-toolbar.cpp:1876 msgid "Units" @@ -30296,19 +30296,19 @@ msgstr "Motivo" msgid "Swatch fill" msgstr "Campione" -#: ../src/widgets/paintbucket-toolbar.cpp:134 +#: ../src/widgets/paintbucket-toolbar.cpp:135 msgid "Fill by" msgstr "Riempi con" -#: ../src/widgets/paintbucket-toolbar.cpp:135 +#: ../src/widgets/paintbucket-toolbar.cpp:136 msgid "Fill by:" msgstr "Riempi con:" -#: ../src/widgets/paintbucket-toolbar.cpp:147 +#: ../src/widgets/paintbucket-toolbar.cpp:148 msgid "Fill Threshold" msgstr "Soglia riempimento" -#: ../src/widgets/paintbucket-toolbar.cpp:148 +#: ../src/widgets/paintbucket-toolbar.cpp:149 msgid "" "The maximum allowed difference between the clicked pixel and the neighboring " "pixels to be counted in the fill" @@ -30316,36 +30316,36 @@ msgstr "" "La differenza massima consentita tra il pixel cliccato e i pixel vicini da " "contare per il riempimento" -#: ../src/widgets/paintbucket-toolbar.cpp:175 +#: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "Grow/shrink by" msgstr "Intrudi/Estrudi di" -#: ../src/widgets/paintbucket-toolbar.cpp:175 +#: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "Grow/shrink by:" msgstr "Intrudi/Estrudi di:" -#: ../src/widgets/paintbucket-toolbar.cpp:176 +#: ../src/widgets/paintbucket-toolbar.cpp:177 msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" "Di quanto estrudere (valore positivo) o intrudere (valore negativo) il " "riempimento creato" -#: ../src/widgets/paintbucket-toolbar.cpp:199 +#: ../src/widgets/paintbucket-toolbar.cpp:200 msgid "Close gaps" msgstr "Area cuscinetto" -#: ../src/widgets/paintbucket-toolbar.cpp:200 +#: ../src/widgets/paintbucket-toolbar.cpp:201 msgid "Close gaps:" msgstr "Area cuscinetto:" -#: ../src/widgets/paintbucket-toolbar.cpp:211 +#: ../src/widgets/paintbucket-toolbar.cpp:212 #: ../src/widgets/pencil-toolbar.cpp:396 ../src/widgets/spiral-toolbar.cpp:285 #: ../src/widgets/star-toolbar.cpp:564 msgid "Defaults" msgstr "Predefiniti" -#: ../src/widgets/paintbucket-toolbar.cpp:212 +#: ../src/widgets/paintbucket-toolbar.cpp:213 msgid "" "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " "to change defaults)" @@ -31034,7 +31034,8 @@ msgstr "Scostamento %:" #: ../src/widgets/spray-toolbar.cpp:609 msgid "Increase to segregate objects more (value in percent)" -msgstr "Aumentare per separare maggiormente gli oggetti (valore in percentuale)" +msgstr "" +"Aumentare per separare maggiormente gli oggetti (valore in percentuale)" #: ../src/widgets/star-toolbar.cpp:103 msgid "Star: Change number of corners" @@ -32031,18 +32032,17 @@ msgstr "Seleziona un oggetto." msgid "Unable to process this object. Try changing it into a path first." msgstr "Impossibile elaborare questo oggetto. Convertirlo prima in tracciato." -#. report to the Inkscape console using errormsg #: ../share/extensions/draw_from_triangle.py:179 -msgid "Side Length 'a' (px): " -msgstr "Lunghezza lato 'a' (px): " +msgid "Side Length 'a' (" +msgstr "Lunghezza lato 'a' (" #: ../share/extensions/draw_from_triangle.py:180 -msgid "Side Length 'b' (px): " -msgstr "Lunghezza lato 'b' (px): " +msgid "Side Length 'b' (" +msgstr "Lunghezza lato 'b' (" #: ../share/extensions/draw_from_triangle.py:181 -msgid "Side Length 'c' (px): " -msgstr "Lunghezza lato 'c' (px): " +msgid "Side Length 'c' (" +msgstr "Lunghezza lato 'c' (" #: ../share/extensions/draw_from_triangle.py:182 msgid "Angle 'A' (radians): " @@ -32061,8 +32061,8 @@ msgid "Semiperimeter (px): " msgstr "Semiperimetro (px): " #: ../share/extensions/draw_from_triangle.py:186 -msgid "Area (px^2): " -msgstr "Area (px^2): " +msgid "Area (" +msgstr "Area (" #: ../share/extensions/dxf_input.py:530 #, python-format @@ -39554,6 +39554,9 @@ msgstr "Un formato grafico molto diffuso per clipart" msgid "XAML Input" msgstr "Input XAML" +#~ msgid "Area (px^2): " +#~ msgstr "Area (px^2): " + #~ msgid "" #~ "The selected object is not a path.\n" #~ "Try using the procedure Path->Object to Path." @@ -40482,6 +40485,7 @@ msgstr "Input XAML" #, fuzzy #~ msgid "keep only visible layers" #~ msgstr "Stampa livelli invisibili" + #, fuzzy #~ msgid "Horizontal guide each:" #~ msgstr "Guide orizzontali ogni" -- cgit v1.2.3 From d8266516e9200af97cd4108908e433eab4429db7 Mon Sep 17 00:00:00 2001 From: xande6ruz Date: Tue, 2 Aug 2016 12:44:00 +0200 Subject: [Bug #1604784] Portuguese translation - Windows installer. Fixed bugs: - https://launchpad.net/bugs/1604784 (bzr r15023.3.4) --- Makefile.am | 1 + packaging/win32/inkscape.nsi | 6 +- packaging/win32/languages/Portuguese.nsh | 117 +++++++++++++++++++++++++++++++ 3 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 packaging/win32/languages/Portuguese.nsh diff --git a/Makefile.am b/Makefile.am index d4e416d4e..8ab952a9a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -532,6 +532,7 @@ EXTRA_DIST = \ packaging/win32/languages/Italian.nsh \ packaging/win32/languages/Japanese.nsh \ packaging/win32/languages/Polish.nsh \ + packaging/win32/languages/Portuguese.nsh \ packaging/win32/languages/PortugueseBR.nsh \ packaging/win32/languages/Romanian.nsh \ packaging/win32/languages/Russian.nsh \ diff --git a/packaging/win32/inkscape.nsi b/packaging/win32/inkscape.nsi index d1bcb7216..7948e4b85 100755 --- a/packaging/win32/inkscape.nsi +++ b/packaging/win32/inkscape.nsi @@ -130,6 +130,7 @@ ShowUninstDetails hide !insertmacro INKLANGFILE Italian !insertmacro INKLANGFILE Japanese !insertmacro INKLANGFILE Polish +!insertmacro INKLANGFILE Portuguese !insertmacro INKLANGFILE PortugueseBR !insertmacro INKLANGFILE Romanian !insertmacro INKLANGFILE Russian @@ -238,7 +239,7 @@ VIProductVersion ${VERSION_X.X.X.X} VIAddVersionKey ProductName Inkscape VIAddVersionKey Comments "Licensed under the GNU GPL" VIAddVersionKey CompanyName inkscape.org -VIAddVersionKey LegalCopyright "© 2015 Inkscape" +VIAddVersionKey LegalCopyright "© 2016 Inkscape" VIAddVersionKey FileDescription Inkscape VIAddVersionKey FileVersion ${VERSION_X.X.X.X} VIAddVersionKey ProductVersion ${VERSION_X.X.X.X} @@ -664,7 +665,6 @@ Function .onInit ; initialise the installer {{{2 !macroend ; No need for English to be detected as it's the default - !insertmacro LanguageAutoSelect PortugueseBrazil 1046 !insertmacro LanguageAutoSelect Breton 1150 !insertmacro LanguageAutoSelect Catalan 1027 !insertmacro LanguageAutoSelect Czech 1029 @@ -680,6 +680,8 @@ Function .onInit ; initialise the installer {{{2 !insertmacro LanguageAutoSelect Italian 1040 !insertmacro LanguageAutoSelect Japanese 1041 !insertmacro LanguageAutoSelect Polish 1045 + !insertmacro LanguageAutoSelect Portuguese 2070 + !insertmacro LanguageAutoSelect PortugueseBrazil 1046 !insertmacro LanguageAutoSelect Romanian 1048 !insertmacro LanguageAutoSelect Russian 1049 !insertmacro LanguageAutoSelect Slovak 1051 diff --git a/packaging/win32/languages/Portuguese.nsh b/packaging/win32/languages/Portuguese.nsh new file mode 100644 index 000000000..c308f7e36 --- /dev/null +++ b/packaging/win32/languages/Portuguese.nsh @@ -0,0 +1,117 @@ +;Language: Portuguese (2070, CP1252) +;By Rui +${LangFileString} CaptionDescription "Editor de Gráficos Vetoriais Escaláveis de Código Aberto" +${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) é disponibilizado sob a GNU General Public License (GPL). A licença é disponibilizada aqui apenas para fins informativos. $_CLICK" +${LangFileString} DIFFERENT_USER "O Inkscape já foi instalado pelo utilizador $0.$\r$\nSe continuar, poderá não conseguir instalar por completo!$\r$\nPor favor entre na conta de $0 e tente de novo." +${LangFileString} WANT_UNINSTALL_BEFORE "$R1 já foi instalado. $\nPretende remover a versão anterior antes de instalar o $(^Name)?" +${LangFileString} OK_CANCEL_DESC "$\n$\nClique em OK para continuar ou clique em CANCELAR para abortar." +${LangFileString} NO_ADMIN "A sua conta não tem privilégios de administrador.$\r$\nPoderá não conseguir instalar o Inkscape em todas as contas.$\r$\nDesmarque a opção 'Instalar em todas as contas'." +${LangFileString} NOT_SUPPORTED "O Inkscape não corre nos sistemas operativos Windows 95/98/ME!$\r$\nPor favor consulte o site oficial para mais informações." +${LangFileString} Full "Completo" +${LangFileString} Optimal "Opcional" +${LangFileString} Minimal "Mínimo" +${LangFileString} Core "Inkscape - Editor SVG (necessário)" +${LangFileString} CoreDesc "Ficheiros do núcleo e dlls do Inkscape" +${LangFileString} GTKFiles "GTK+ Runtime Environment (necessário)" +${LangFileString} GTKFilesDesc "Uma biblioteca de GUI multi-plataforma, usada pelo Inkscape" +${LangFileString} Shortcuts "Atalhos" +${LangFileString} ShortcutsDesc "Atalhos para abrir o Inkscape" +${LangFileString} Alluser "Instalar em todas as contas" +${LangFileString} AlluserDesc "Instalar esta aplicação para todos os utilizadores que usem este computador (todas as contas)" +${LangFileString} Desktop "Ambiente de Trabalho" +${LangFileString} DesktopDesc "Criar um atalho do Inkscape no Ambiente de Trabalho" +${LangFileString} Startmenu "Menu de Início" +${LangFileString} StartmenuDesc "Criar um atalho do Inkscape no Menu de Início" +${LangFileString} Quicklaunch "Lançamento Rápido" +${LangFileString} QuicklaunchDesc "Criar um atalho do Inkscape na barra de Lançamento Rápido" +${LangFileString} SVGWriter "Abrir ficheiros SVG com o Inkscape" +${LangFileString} SVGWriterDesc "Selecionar o Inkscape como o editor padrão para ficheiros SVG" +${LangFileString} ContextMenu "Menu de Contexto" +${LangFileString} ContextMenuDesc "Adicionar o Inkscape no Menu de Contexto para ficheiros SVG" +${LangFileString} DeletePrefs "Eliminar preferências" +${LangFileString} DeletePrefsDesc "Eliminar preferências de versões anteriormente instaladas do Inkscape" +${LangFileString} Addfiles "Ficheiros Adicionais" +${LangFileString} AddfilesDesc "Ficheiros Adicionais" +${LangFileString} Examples "Exemplos" +${LangFileString} ExamplesDesc "Exemplos de utilização do Inkscape" +${LangFileString} Tutorials "Tutoriais" +${LangFileString} TutorialsDesc "Tutoriais para aprender a usar o Inkscape" +${LangFileString} Languages "Traduções" +${LangFileString} LanguagesDesc "Instalar várias traduções do Inkscape" +${LangFileString} lng_am "Amárico" +${LangFileString} lng_ar "Arábico" +${LangFileString} lng_az "Azerbaijano" +${LangFileString} lng_be "Bielorrusso" +${LangFileString} lng_bg "Búlgaro" +${LangFileString} lng_bn "Bengali" +${LangFileString} lng_bn_BD "Bengali do Bangladeche" +${LangFileString} lng_br "Bretão" +${LangFileString} lng_ca "Catalão" +${LangFileString} lng_ca@valencia "Catalão Valenciano" +${LangFileString} lng_cs "Checo" +${LangFileString} lng_da "Dinamarquês" +${LangFileString} lng_de "Alemão" +${LangFileString} lng_dz "Butanês" +${LangFileString} lng_el "Grego" +${LangFileString} lng_en "Inglês" +${LangFileString} lng_en_AU "Inglês Australiano" +${LangFileString} lng_en_CA "Inglês Canadiano" +${LangFileString} lng_en_GB "Inglês Britânico" +${LangFileString} lng_en_US@piglatin "Pig Latin" +${LangFileString} lng_eo "Esperanto" +${LangFileString} lng_es "Espanhol" +${LangFileString} lng_es_MX "Espanhol Mexicano" +${LangFileString} lng_et "Estónio" +${LangFileString} lng_eu "Basco" +${LangFileString} lng_fa "Persa" +${LangFileString} lng_fi "Finlandês" +${LangFileString} lng_fr "Francês" +${LangFileString} lng_ga "Irlandês" +${LangFileString} lng_gl "Galego" +${LangFileString} lng_he "Hebraico" +${LangFileString} lng_hr "Croata" +${LangFileString} lng_hu "Húngaro" +${LangFileString} lng_hy "Arménio" +${LangFileString} lng_id "Indonésio" +${LangFileString} lng_is "Islandês" +${LangFileString} lng_it "Italiano" +${LangFileString} lng_ja "Japonês" +${LangFileString} lng_km "Cambojano" +${LangFileString} lng_ko "Coreano" +${LangFileString} lng_lt "Lituano" +${LangFileString} lng_lv "Letão" +${LangFileString} lng_mk "Macedónio" +${LangFileString} lng_mn "Mongol" +${LangFileString} lng_ne "Nepalês" +${LangFileString} lng_nb "Bokmål Norueguês" +${LangFileString} lng_nl "Neerlandês" +${LangFileString} lng_nn "Novo Norueguês" +${LangFileString} lng_pa "Panjabi" +${LangFileString} lng_pl "Polaco" +${LangFileString} lng_pt "Português" +${LangFileString} lng_pt_BR "Português do Brasil" +${LangFileString} lng_ro "Romeno" +${LangFileString} lng_ru "Russo" +${LangFileString} lng_rw "Quiniaruanda" +${LangFileString} lng_sk "Eslovaco" +${LangFileString} lng_sl "Esloveno" +${LangFileString} lng_sq "Albanês" +${LangFileString} lng_sr "Sérvio" +${LangFileString} lng_sr@latin "Sérvio no alfabeto Latino" +${LangFileString} lng_sv "Sueco" +${LangFileString} lng_te "Telugo" +${LangFileString} lng_th "Tailandês" +${LangFileString} lng_tr "Turco" +${LangFileString} lng_uk "Ucraniano" +${LangFileString} lng_vi "Vietnamita" +${LangFileString} lng_zh_CN "Chinês Simplificado" +${LangFileString} lng_zh_TW "Chinês Traditional" +${LangFileString} UInstOpt "Opções de Desinstalação" +${LangFileString} UInstOpt1 "Por favor faça as suas escolhas para opções adicionais" +${LangFileString} PurgePrefs "Manter Preferências" +${LangFileString} UninstallLogNotFound "$INSTDIR\uninstall.log não foi encontrado!$\r$\nPor favor desinstale manualmente eliminado a pasta $INSTDIR!" +${LangFileString} FileChanged "O ficheiro $filename foi alterado depois de instalado.$\r$\nQuer mesmo eliminar o ficheiro?" +${LangFileString} Yes "Sim" +${LangFileString} AlwaysYes "responder sempre Sim" +${LangFileString} No "Não" +${LangFileString} AlwaysNo "responder sempre Não" -- cgit v1.2.3 From cc54d0bc9da8aafcb3d4a6529d829f76f218dc29 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 4 Aug 2016 10:22:20 +0100 Subject: Fix Win32 build Fixed bugs: - https://launchpad.net/bugs/1609572 (bzr r15037) --- src/ui/dialog/filedialog.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ui/dialog/filedialog.cpp b/src/ui/dialog/filedialog.cpp index ee673aecf..0d4fa5c84 100644 --- a/src/ui/dialog/filedialog.cpp +++ b/src/ui/dialog/filedialog.cpp @@ -15,7 +15,11 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include "filedialogimpl-win32.h" +#ifdef WIN32 +# include "filedialogimpl-win32.h" +# include "preferences.h" +#endif + #include "filedialogimpl-gtkmm.h" #include "ui/dialog-events.h" -- cgit v1.2.3 From adf43740cc2fb739be3b4fc10a11c47d99bb3c57 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 4 Aug 2016 18:17:28 +0100 Subject: Require C++11 (bzr r15039) --- CMakeScripts/DefineDependsandFlags.cmake | 6 + configure.ac | 30 +- m4/ax_cxx_compile_stdcxx.m4 | 562 +++++++++++++++++++++++++++++++ m4/ax_cxx_compile_stdcxx_11.m4 | 39 +++ 4 files changed, 609 insertions(+), 28 deletions(-) create mode 100644 m4/ax_cxx_compile_stdcxx.m4 create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4 diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index b56343eda..186daf33f 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -11,6 +11,12 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/include ) +# ---------------------------------------------------------------------------- +# Add C++11 standard compliance +# TODO: Add a proper check for compiler compliance here +# ---------------------------------------------------------------------------- +list(APPEND INKSCAPE_CXX_FLAGS "-std=c++11") + # ---------------------------------------------------------------------------- # Files we include # ---------------------------------------------------------------------------- diff --git a/configure.ac b/configure.ac index aea8b6474..603cd6ac1 100644 --- a/configure.ac +++ b/configure.ac @@ -38,6 +38,8 @@ AC_LANG(C++) AC_PROG_CXX AC_PROG_CC AM_PROG_AS +AX_CXX_COMPILE_STDCXX_11([], [mandatory]) + # Initialize libtool LT_PREREQ([2.2]) LT_INIT @@ -650,34 +652,6 @@ PKG_CHECK_MODULES(INKSCAPE, pangoft2 >= 1.24 ) -# test whether dependencies require C++11 -AC_MSG_CHECKING([whether C++11 mode is required]) -CXXFLAGS_SAVE="$CXXFLAGS" -CXXFLAGS="$INKSCAPE_CXX_DEPS_CFLAGS $CXXFLAGS" -cxx11_required=unknown -AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -#include -int main() {} -])], [cxx11_required=no], [cxx11_required=unknown]) -if test "x$cxx11_required" = "xunknown"; then - CXXFLAGS="-std=c++11 $CXXFLAGS" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - #include - int main() {} - ])], [cxx11_required=yes], [cxx11_required=unknown]) -fi -CXXFLAGS="$CXXFLAGS_SAVE" -if test "x$cxx11_required" = "xunknown"; then - AC_MSG_RESULT([unknown]) - AC_MSG_ERROR([cannot detect whether C++11 is required]) -fi -if test "x$cxx11_required" = "xyes"; then - AC_MSG_RESULT([yes]) - CXXFLAGS="-std=c++11 $CXXFLAGS" -else - AC_MSG_RESULT([no]) -fi - # Detect a working version of unordered containers. # First try looking for native support (C++11 feature) AC_MSG_CHECKING([native support for unordered_set]) diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 new file mode 100644 index 000000000..2c18e49c5 --- /dev/null +++ b/m4/ax_cxx_compile_stdcxx.m4 @@ -0,0 +1,562 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the specified +# version of the C++ standard. If necessary, add switches to CXX and +# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard) +# or '14' (for the C++14 standard). +# +# The second argument, if specified, indicates whether you insist on an +# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. +# -std=c++11). If neither is specified, you get whatever works, with +# preference for an extended mode. +# +# The third argument, if specified 'mandatory' or if left unspecified, +# indicates that baseline support for the specified C++ standard is +# required and that the macro should error out if no mode with that +# support is found. If specified 'optional', then configuration proceeds +# regardless, after defining HAVE_CXX${VERSION} if and only if a +# supporting mode is found. +# +# LICENSE +# +# Copyright (c) 2008 Benjamin Kosnik +# Copyright (c) 2012 Zack Weinberg +# Copyright (c) 2013 Roy Stogner +# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov +# Copyright (c) 2015 Paul Norman +# Copyright (c) 2015 Moritz Klammler +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 4 + +dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro +dnl (serial version number 13). + +AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl + m4_if([$1], [11], [], + [$1], [14], [], + [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])], + [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl + m4_if([$2], [], [], + [$2], [ext], [], + [$2], [noext], [], + [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl + m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], + [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], + [$3], [optional], [ax_cxx_compile_cxx$1_required=false], + [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) + AC_LANG_PUSH([C++])dnl + ac_success=no + AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, + ax_cv_cxx_compile_cxx$1, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [ax_cv_cxx_compile_cxx$1=yes], + [ax_cv_cxx_compile_cxx$1=no])]) + if test x$ax_cv_cxx_compile_cxx$1 = xyes; then + ac_success=yes + fi + + m4_if([$2], [noext], [], [dnl + if test x$ac_success = xno; then + for switch in -std=gnu++$1 -std=gnu++0x; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + fi]) + + m4_if([$2], [ext], [], [dnl + if test x$ac_success = xno; then + dnl HP's aCC needs +std=c++11 according to: + dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf + dnl Cray's crayCC needs "-h std=c++11" + for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + fi]) + AC_LANG_POP([C++]) + if test x$ax_cxx_compile_cxx$1_required = xtrue; then + if test x$ac_success = xno; then + AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) + fi + fi + if test x$ac_success = xno; then + HAVE_CXX$1=0 + AC_MSG_NOTICE([No compiler with C++$1 support was found]) + else + HAVE_CXX$1=1 + AC_DEFINE(HAVE_CXX$1,1, + [define if the compiler supports basic C++$1 syntax]) + fi + AC_SUBST(HAVE_CXX$1) +]) + + +dnl Test body for checking C++11 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 +) + + +dnl Test body for checking C++14 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 +) + + +dnl Tests for new features in C++11 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ + +// If the compiler admits that it is not ready for C++11, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201103L + +#error "This is not a C++11 compiler" + +#else + +namespace cxx11 +{ + + namespace test_static_assert + { + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + } + + namespace test_final_override + { + + struct Base + { + virtual void f() {} + }; + + struct Derived : public Base + { + virtual void f() override {} + }; + + } + + namespace test_double_right_angle_brackets + { + + template < typename T > + struct check {}; + + typedef check single_type; + typedef check> double_type; + typedef check>> triple_type; + typedef check>>> quadruple_type; + + } + + namespace test_decltype + { + + int + f() + { + int a = 1; + decltype(a) b = 2; + return a + b; + } + + } + + namespace test_type_deduction + { + + template < typename T1, typename T2 > + struct is_same + { + static const bool value = false; + }; + + template < typename T > + struct is_same + { + static const bool value = true; + }; + + template < typename T1, typename T2 > + auto + add(T1 a1, T2 a2) -> decltype(a1 + a2) + { + return a1 + a2; + } + + int + test(const int c, volatile int v) + { + static_assert(is_same::value == true, ""); + static_assert(is_same::value == false, ""); + static_assert(is_same::value == false, ""); + auto ac = c; + auto av = v; + auto sumi = ac + av + 'x'; + auto sumf = ac + av + 1.0; + static_assert(is_same::value == true, ""); + static_assert(is_same::value == true, ""); + static_assert(is_same::value == true, ""); + static_assert(is_same::value == false, ""); + static_assert(is_same::value == true, ""); + return (sumf > 0.0) ? sumi : add(c, v); + } + + } + + namespace test_noexcept + { + + int f() { return 0; } + int g() noexcept { return 0; } + + static_assert(noexcept(f()) == false, ""); + static_assert(noexcept(g()) == true, ""); + + } + + namespace test_constexpr + { + + template < typename CharT > + unsigned long constexpr + strlen_c_r(const CharT *const s, const unsigned long acc) noexcept + { + return *s ? strlen_c_r(s + 1, acc + 1) : acc; + } + + template < typename CharT > + unsigned long constexpr + strlen_c(const CharT *const s) noexcept + { + return strlen_c_r(s, 0UL); + } + + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("1") == 1UL, ""); + static_assert(strlen_c("example") == 7UL, ""); + static_assert(strlen_c("another\0example") == 7UL, ""); + + } + + namespace test_rvalue_references + { + + template < int N > + struct answer + { + static constexpr int value = N; + }; + + answer<1> f(int&) { return answer<1>(); } + answer<2> f(const int&) { return answer<2>(); } + answer<3> f(int&&) { return answer<3>(); } + + void + test() + { + int i = 0; + const int c = 0; + static_assert(decltype(f(i))::value == 1, ""); + static_assert(decltype(f(c))::value == 2, ""); + static_assert(decltype(f(0))::value == 3, ""); + } + + } + + namespace test_uniform_initialization + { + + struct test + { + static const int zero {}; + static const int one {1}; + }; + + static_assert(test::zero == 0, ""); + static_assert(test::one == 1, ""); + + } + + namespace test_lambdas + { + + void + test1() + { + auto lambda1 = [](){}; + auto lambda2 = lambda1; + lambda1(); + lambda2(); + } + + int + test2() + { + auto a = [](int i, int j){ return i + j; }(1, 2); + auto b = []() -> int { return '0'; }(); + auto c = [=](){ return a + b; }(); + auto d = [&](){ return c; }(); + auto e = [a, &b](int x) mutable { + const auto identity = [](int y){ return y; }; + for (auto i = 0; i < a; ++i) + a += b--; + return x + identity(a + b); + }(0); + return a + b + c + d + e; + } + + int + test3() + { + const auto nullary = [](){ return 0; }; + const auto unary = [](int x){ return x; }; + using nullary_t = decltype(nullary); + using unary_t = decltype(unary); + const auto higher1st = [](nullary_t f){ return f(); }; + const auto higher2nd = [unary](nullary_t f1){ + return [unary, f1](unary_t f2){ return f2(unary(f1())); }; + }; + return higher1st(nullary) + higher2nd(nullary)(unary); + } + + } + + namespace test_variadic_templates + { + + template + struct sum; + + template + struct sum + { + static constexpr auto value = N0 + sum::value; + }; + + template <> + struct sum<> + { + static constexpr auto value = 0; + }; + + static_assert(sum<>::value == 0, ""); + static_assert(sum<1>::value == 1, ""); + static_assert(sum<23>::value == 23, ""); + static_assert(sum<1, 2>::value == 3, ""); + static_assert(sum<5, 5, 11>::value == 21, ""); + static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); + + } + + // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae + // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function + // because of this. + namespace test_template_alias_sfinae + { + + struct foo {}; + + template + using member = typename T::member_type; + + template + void func(...) {} + + template + void func(member*) {} + + void test(); + + void test() { func(0); } + + } + +} // namespace cxx11 + +#endif // __cplusplus >= 201103L + +]]) + + +dnl Tests for new features in C++14 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ + +// If the compiler admits that it is not ready for C++14, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201402L + +#error "This is not a C++14 compiler" + +#else + +namespace cxx14 +{ + + namespace test_polymorphic_lambdas + { + + int + test() + { + const auto lambda = [](auto&&... args){ + const auto istiny = [](auto x){ + return (sizeof(x) == 1UL) ? 1 : 0; + }; + const int aretiny[] = { istiny(args)... }; + return aretiny[0]; + }; + return lambda(1, 1L, 1.0f, '1'); + } + + } + + namespace test_binary_literals + { + + constexpr auto ivii = 0b0000000000101010; + static_assert(ivii == 42, "wrong value"); + + } + + namespace test_generalized_constexpr + { + + template < typename CharT > + constexpr unsigned long + strlen_c(const CharT *const s) noexcept + { + auto length = 0UL; + for (auto p = s; *p; ++p) + ++length; + return length; + } + + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("x") == 1UL, ""); + static_assert(strlen_c("test") == 4UL, ""); + static_assert(strlen_c("another\0test") == 7UL, ""); + + } + + namespace test_lambda_init_capture + { + + int + test() + { + auto x = 0; + const auto lambda1 = [a = x](int b){ return a + b; }; + const auto lambda2 = [a = lambda1(x)](){ return a; }; + return lambda2(); + } + + } + + namespace test_digit_seperators + { + + constexpr auto ten_million = 100'000'000; + static_assert(ten_million == 100000000, ""); + + } + + namespace test_return_type_deduction + { + + auto f(int& x) { return x; } + decltype(auto) g(int& x) { return x; } + + template < typename T1, typename T2 > + struct is_same + { + static constexpr auto value = false; + }; + + template < typename T > + struct is_same + { + static constexpr auto value = true; + }; + + int + test() + { + auto x = 0; + static_assert(is_same::value, ""); + static_assert(is_same::value, ""); + return x; + } + + } + +} // namespace cxx14 + +#endif // __cplusplus >= 201402L + +]]) diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4 new file mode 100644 index 000000000..0aadeafe7 --- /dev/null +++ b/m4/ax_cxx_compile_stdcxx_11.m4 @@ -0,0 +1,39 @@ +# ============================================================================ +# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html +# ============================================================================ +# +# SYNOPSIS +# +# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the C++11 +# standard; if necessary, add switches to CXX and CXXCPP to enable +# support. +# +# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX +# macro with the version set to C++11. The two optional arguments are +# forwarded literally as the second and third argument respectively. +# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for +# more information. If you want to use this macro, you also need to +# download the ax_cxx_compile_stdcxx.m4 file. +# +# LICENSE +# +# Copyright (c) 2008 Benjamin Kosnik +# Copyright (c) 2012 Zack Weinberg +# Copyright (c) 2013 Roy Stogner +# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov +# Copyright (c) 2015 Paul Norman +# Copyright (c) 2015 Moritz Klammler +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 17 + +AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX]) +AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])]) -- cgit v1.2.3 From fa70c0e286d268ef3e35f2d08a0404dcbf02caa3 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 4 Aug 2016 20:01:10 +0100 Subject: Use C++11 unordered containers (bzr r15040) --- configure.ac | 34 ------------------------------ src/util/unordered-containers.h | 46 +++++------------------------------------ 2 files changed, 5 insertions(+), 75 deletions(-) diff --git a/configure.ac b/configure.ac index 603cd6ac1..e57f63885 100644 --- a/configure.ac +++ b/configure.ac @@ -652,40 +652,6 @@ PKG_CHECK_MODULES(INKSCAPE, pangoft2 >= 1.24 ) -# Detect a working version of unordered containers. -# First try looking for native support (C++11 feature) -AC_MSG_CHECKING([native support for unordered_set]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], -[[ - std::unordered_set i, j; - i = j; -]])], -[native_unordered_set_works=yes], [native_unordered_set_works=no]) - -if test "x$native_unordered_set_works" = "xyes"; then - AC_MSG_RESULT([ok]) - AC_DEFINE(HAVE_NATIVE_UNORDERED_SET, 1, [Has working native unordered_set]) -else - AC_MSG_RESULT([not working]) -fi - -AC_MSG_CHECKING([TR1 unordered_set usability]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], -[[ - std::tr1::unordered_set i, j; - i = j; -]])], -[tr1_unordered_set_works=yes], [tr1_unordered_set_works=no]) - -if test "x$tr1_unordered_set_works" = "xyes"; then - AC_MSG_RESULT([ok]) - AC_DEFINE(HAVE_TR1_UNORDERED_SET, 1, [Has working standard TR1 unordered_set]) -else - AC_MSG_RESULT([not working]) -fi - -AC_CHECK_HEADER([boost/unordered_set.hpp], [AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1, [Boost unordered_set (Boost >= 1.36)])], []) - ink_spell_pkg= if pkg-config --exists gtkspell-3.0; then ink_spell_pkg=gtkspell-3.0 diff --git a/src/util/unordered-containers.h b/src/util/unordered-containers.h index b92f2e7ea..0bda8191f 100644 --- a/src/util/unordered-containers.h +++ b/src/util/unordered-containers.h @@ -20,12 +20,11 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS -#if defined(HAVE_NATIVE_UNORDERED_SET) -# include -# include -# define INK_UNORDERED_SET std::unordered_set -# define INK_UNORDERED_MAP std::unordered_map -# define INK_HASH std::hash +#include +#include +#define INK_UNORDERED_SET std::unordered_set +#define INK_UNORDERED_MAP std::unordered_map +#define INK_HASH std::hash namespace std { template <> @@ -36,41 +35,6 @@ struct hash : public std::unary_function -# include -# define INK_UNORDERED_SET std::tr1::unordered_set -# define INK_UNORDERED_MAP std::tr1::unordered_map -# define INK_HASH std::tr1::hash - -namespace std { -namespace tr1 { -template <> -struct hash : public std::unary_function { - std::size_t operator()(Glib::ustring const &s) const { - return hash()(s.raw()); - } -}; -} // namespace tr1 -} // namespace std - -#elif defined(HAVE_BOOST_UNORDERED_SET) -# include -# include -# define INK_UNORDERED_SET boost::unordered_set -# define INK_UNORDERED_MAP boost::unordered_map -# define INK_HASH boost::hash - -namespace boost { -template <> -struct hash : public std::unary_function { - std::size_t operator()(Glib::ustring const &s) const { - return hash()(s.raw()); - } -}; -} // namespace boost -#endif - #else /// Name (with namespace) of the unordered set template. #define INK_UNORDERED_SET -- cgit v1.2.3 From f9464efc86f5a9f232d90963ea7c1ff5f982cb9c Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Fri, 5 Aug 2016 15:24:45 +0100 Subject: btool: Fix for C++11 (bzr r15041) --- buildtool.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildtool.cpp b/buildtool.cpp index cb70a25c2..a64340e24 100644 --- a/buildtool.cpp +++ b/buildtool.cpp @@ -9966,7 +9966,8 @@ bool Make::parseFile() return false; } //more work than targets[tname]=target, but avoids default allocator - targets.insert(std::make_pair(tname, target)); + auto pair = std::make_pair(tname, target); + targets.insert(pair); } //######### none of the above else -- cgit v1.2.3 From 437d745d0770d842bdf6908b324e99b9e1a6275d Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Fri, 5 Aug 2016 15:27:47 +0100 Subject: build-x64.xml now uses GTK+ 3 (bzr r15042) --- build-x64-gtk3.xml | 950 ----------------------------------------------------- build-x64.xml | 97 +++--- 2 files changed, 60 insertions(+), 987 deletions(-) delete mode 100644 build-x64-gtk3.xml diff --git a/build-x64-gtk3.xml b/build-x64-gtk3.xml deleted file mode 100644 index b4fa4f1e7..000000000 --- a/build-x64-gtk3.xml +++ /dev/null @@ -1,950 +0,0 @@ - - - - - - - - Build file for the Inkscape SVG editor. This file - was written for GTK-3 on Win64. - - Note that the default target is 'dist-all'. You can execute other - targets instead, by "btool {target}", like "btool compile", if - you want to save time, or "dist-inkscape" if you don't want inkview. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace Inkscape { - char const *version_string = "${version} ${bzr.revision}"; - } - - - #ifndef _CONFIG_H_ - #define _CONFIG_H_ - - #ifndef WIN32 - #define WIN32 - #endif - - /*###################################### - ## This is for require-config.h, whose - ## purpose I cannot fathom. - ######################################*/ - - #define PACKAGE_TARNAME - - /*###################################### - #### RESOURCE DIRECTORIES - ######################################*/ - - #define INKSCAPE_DATADIR "." - #define PACKAGE_LOCALE_DIR "locale" - - - /*###################################### - #### OTHER DEFINITIONS - ######################################*/ - - #define GETTEXT_PACKAGE "inkscape" - - #define PACKAGE_STRING VERSION - - #define HAVE_GETOPT_H 1 - #define HAVE_STRING_H 1 - #define HAVE_LIBINTL_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_OPENMP 1 - #define HAVE_TR1_UNORDERED_SET 1 - #define HAVE_STDINT_H 1 - - #define HAVE_LIBLCMS2 1 - - #define WITH_GTKMM_3_10 1 - //#define WITH_GLIBMM_2_32 1 - #define HAVE_GLIBMM_THREADS_H 1 - #define WITH_GDL_3_6 1 - - #define ENABLE_NLS 1 - #define HAVE_BIND_TEXTDOMAIN_CODESET 1 - - /* keep binreloc off */ - #define BR_PTHREADS 0 - #undef ENABLE_BINRELOC - - /* CairoPDF options */ - #define HAVE_CAIRO_PDF 1 - #define PANGO_ENABLE_ENGINE 1 - #define RENDER_WITH_PANGO_CAIRO 1 - - #define HAVE_GTK_WINDOW_FULLSCREEN 1 - - /* internal interpreter */ - #define WITH_PYTHON 1 - - /* use poppler for pdf import? */ - #define HAVE_POPPLER 1 - #define HAVE_POPPLER_GLIB 1 - #define HAVE_POPPLER_CAIRO 1 - - /* do we want bitmap manipulation? */ - #define WITH_IMAGE_MAGICK 1 - - /* Exif and JPEG support for image resolution import */ - #define HAVE_EXIF 1 - #define HAVE_JPEG 1 - - /* WordPerfect import filter */ - #define WITH_LIBWPG 1 - #define WITH_LIBWPG03 1 - - /* Visio import filter */ - #define WITH_LIBVISIO 1 - #define WITH_LIBVISIO01 1 - - /* Corel Draw import filter */ - #define WITH_LIBCDR 1 - #define WITH_LIBCDR01 1 - - /* Do we support SVG Fonts? */ - #define ENABLE_SVG_FONTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */ - //#define LPE_ENABLE_TEST_EFFECTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., SVG2 features enabled? */ - //#define WITH_SVG2 1 - //#define WITH_CSSCOMPOSITE 1 - //#define WITH_CSSBLEND 1 - //#define WITH_MESH 1 - - #define HAVE_ASPELL 1 - - #define HAVE_POTRACE 1 - - #endif /* _CONFIG_H_ */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wall -Wformat -Werror=format-security -Wextra -Wpointer-arith -Wcast-align -Wsign-compare -Wswitch - -Werror=return-type - - - -Wno-error=pointer-sign - -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -Wno-error=strict-overflow -Wno-error=write-strings - - -Wno-error=format -Wno-error=format-extra-args - -Wno-unused-local-typedefs - -O2 - -mms-bitfields - -fopenmp - - - -std=gnu++11 -DCPP11 - -Woverloaded-virtual - - -Wno-deprecated-declarations - - - -DVERSION=\"${version}\" - -DHAVE_CONFIG_H - -D_INTL_REDIRECT_INLINE - -DHAVE_SSL - -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" - -DPOPPLER_NEW_GFXFONT - -DPOPPLER_NEW_GFXPATCH - -DPOPPLER_NEW_ERRORAPI - -DPOPPLER_EVEN_NEWER_COLOR_SPACE_API - -DPOPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API - - -DGLIBMM_DISABLE_DEPRECATED - -DG_DISABLE_DEPRECATED - -DGTK_DISABLE_SINGLE_INCLUDES - - - -DGDKMM_DISABLE_DEPRECATED - -DGSEAL_ENABLE - - - -I${devlibs}/include - - ${pcc.gtkmm-3.0} - ${pcc.gdkmm-3.0} - ${pcc.gtk+-3.0} - ${pcc.gdk-3.0} - ${pcc.gdl-3.0} - ${pcc.glibmm-2.4} - - - ${pcc.pangomm-1.4} - ${pcc.cairomm-1.0} - - ${pcc.Magick++} - ${pcc.libxml-2.0} - ${pcc.freetype2} - ${pcc.cairo} - ${pcc.poppler} - -I${devlibs}/include/gc - -I${devlibs}/include/potracelib - ${pcc.libwpg-0.3} ${pcc.libvisio-0.1} ${pcc.libcdr-0.1} - -I${cxxtest} - - - - -I${devlibs}/python/include - - - - - - - - - - - - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows -m64 - -mthreads - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows -m64 - -mthreads - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Settings] -#gtk-font-name = Tahoma 8 -#gtk-theme-name = Adwaita -gtk-menu-images = true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build-x64.xml b/build-x64.xml index 682fd712e..e1134f841 100644 --- a/build-x64.xml +++ b/build-x64.xml @@ -34,15 +34,15 @@ Build file for the Inkscape SVG editor. This file - was written for GTK-2.10 on Win32, but it should work - well for other types of builds with only minor adjustments. + was written for GTK-3 on Win64. + Note that the default target is 'dist-all'. You can execute other targets instead, by "btool {target}", like "btool compile", if you want to save time, or "dist-inkscape" if you don't want inkview. - + @@ -159,6 +159,11 @@ #define HAVE_LIBLCMS2 1 + #define WITH_GTKMM_3_10 1 + //#define WITH_GLIBMM_2_32 1 + #define HAVE_GLIBMM_THREADS_H 1 + #define WITH_GDL_3_6 1 + #define ENABLE_NLS 1 #define HAVE_BIND_TEXTDOMAIN_CODESET 1 @@ -313,6 +318,7 @@ + @@ -323,7 +329,7 @@ - + @@ -338,7 +344,6 @@ - @@ -398,13 +403,16 @@ -I${devlibs}/include - ${pcc.gtkmm-2.4} + ${pcc.gtkmm-3.0} + ${pcc.gdkmm-3.0} + ${pcc.gtk+-3.0} + ${pcc.gdk-3.0} + ${pcc.gdl-3.0} ${pcc.glibmm-2.4} - ${pcc.gtk+-2.0} - ${pcc.gdkmm-2.4} + + ${pcc.pangomm-1.4} ${pcc.cairomm-1.0} - ${pcc.gmodule-2.0} ${pcc.Magick++} ${pcc.libxml-2.0} @@ -484,16 +492,18 @@ -L${devlibs}/lib ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} + ${pcl.gtk+-3.0} ${pcl.gdk-3.0} + ${pcl.gdl-3.0} ${devlibs}/bin/libxml2-2.dll ${devlibs}/bin/libxslt-1.dll ${devlibs}/bin/libexslt-0.dll ${pcl.cairo} ${pcl.cairomm-1.0} ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.gmodule-2.0} ${pcl.glibmm-2.4} - ${pcl.gtk+-2.0} - ${pcl.gdkmm-2.4} + + ${pcl.pangomm-1.4} ${pcl.cairomm-1.0} -liconv @@ -573,16 +583,18 @@ -L${devlibs}/lib ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} + ${pcl.gtk+-3.0} ${pcl.gdk-3.0} + ${pcl.gdl-3.0} ${devlibs}/bin/libxml2-2.dll ${devlibs}/bin/libxslt-1.dll ${devlibs}/bin/libexslt-0.dll ${pcl.cairo} ${pcl.cairomm-1.0} ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.gmodule-2.0} ${pcl.glibmm-2.4} - ${pcl.gtk+-2.0} - ${pcl.gdkmm-2.4} + + ${pcl.pangomm-1.4} ${pcl.cairomm-1.0} -liconv @@ -630,16 +642,18 @@ -L${devlibs}/lib ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gmodule-2.0} + ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} + ${pcl.gtk+-3.0} ${pcl.gdk-3.0} + ${pcl.gdl-3.0} ${devlibs}/bin/libxml2-2.dll ${devlibs}/bin/libxslt-1.dll ${devlibs}/bin/libexslt-0.dll ${pcl.cairo} ${pcl.cairomm-1.0} ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} ${pcl.glibmm-2.4} - ${pcl.gtk+-2.0} - ${pcl.gdkmm-2.4} + + ${pcl.pangomm-1.4} ${pcl.cairomm-1.0} -liconv @@ -678,10 +692,12 @@ - - + + + + @@ -694,12 +710,12 @@ - + - + @@ -715,6 +731,7 @@ + @@ -764,21 +781,16 @@ + - - - - - - - - + - + + @@ -786,10 +798,13 @@ + + + @@ -803,7 +818,7 @@ - + @@ -825,6 +840,14 @@ + + +[Settings] +#gtk-font-name = Tahoma 8 +#gtk-theme-name = Adwaita +gtk-menu-images = true + + @@ -864,8 +887,8 @@ --> - - + + - - - - - - - Build file for the Inkscape SVG editor. This version - is configured for Unix/Linux, but hopefully we can merge - in the future. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #define INKSCAPE_VERSION "${version}, revision ${svn.revision}" - - - #ifndef _CONFIG_H_ - #define _CONFIG_H_ - - /*###################################### - ## This is for require-config.h, whose - ## purpose I cannot fathom. - ######################################*/ - - #define PACKAGE_TARNAME - - /*###################################### - #### RESOURCE DIRECTORIES - ######################################*/ - - #define INKSCAPE_DATADIR "." - #define PACKAGE_LOCALE_DIR "locale" - - - /*###################################### - #### OTHER DEFINITIONS - ######################################*/ - - #define GETTEXT_PACKAGE "inkscape" - - #define PACKAGE_STRING VERSION - - #define HAVE_GETOPT_H 1 - #define HAVE_STRING_H 1 - #define HAVE_LIBINTL_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_ZLIB_H 1 - - #define ENABLE_LCMS 1 - - #define WITH_GTKMM_2_24 1 - - #define ENABLE_NLS 1 - #define HAVE_BIND_TEXTDOMAIN_CODESET 1 - - /* make us relocatable */ - #define BR_PTHREADS 1 - #define ENABLE_BINRELOC 1 - - /* CairoPDF options */ - #define HAVE_CAIRO_PDF 1 - #define PANGO_ENABLE_ENGINE 1 - #define RENDER_WITH_PANGO_CAIRO 1 - - #define HAVE_GTK_WINDOW_FULLSCREEN 1 - - /* internal interpreter */ - #define WITH_PYTHON 1 - - /* use poppler for pdf import? */ - #define HAVE_POPPLER 1 - #define HAVE_POPPLER_CAIRO 1 - - /* do we want bitmap manipulation? */ - #define WITH_IMAGE_MAGICK 1 - - /* Allow reading WordPerfect? */ - #define WITH_LIBWPG 1 - - /* Default to libwpg 0.1.x */ - #define WITH_LIBWPG01 1 - - #endif /* _CONFIG_H_ */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wall -Wformat -Werror=format-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch - -O2 - - - -DVERSION=\"${version}\" - -DHAVE_CONFIG_H - -D_INTL_REDIRECT_INLINE - -DHAVE_SSL - -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" - - - -I${devlibs}/include - - ${pcc.gtkmm-2.4} - - ${pcc.libxslt} - ${pcc.freetype2} - ${pcc.cairo} - ${pcc.poppler} - -I${devlibs}/include/gc - ${pcc.libwpg-0.1} ${pcc.libwpg-stream-0.1} - - -I${devlibs}/python/include - - -I${src}/bind/javainc -I${src}/bind/javainc/linux - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler} ${pcl.poppler-cairo} ${pcl.poppler-glib} - ${pcl.gtkmm-2.4} - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.gthread-2.0} - ${pcl.libxslt} - ${pcl.libwpg-0.1} ${pcl.libwpg-stream-0.1} - ${pcl.ImageMagick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms} - ${pcl.gsl} - -lssl -lcrypto - -lpng -ljpeg -ltiff -lpopt -lz - -lgc -lm - - - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler} - ${pcl.gtkmm-2.4} - ${pcl.cairo} ${pcl.cairomm-1.0} - - -L${devlibs}/perl/lib/CORE -lperl58 - - -L${devlibs}/python/libs -lpython25 - -lxml2 -lxslt - -lwpg-0.1 -lwpg-stream-0.1 - ${pcl.ImageMagick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms} - -lssl -lcrypto - -lpng -ljpeg -ltiff -lpopt -lz - -lgc - -lintl -liconv -lm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build-x64.xml b/build-x64.xml deleted file mode 100644 index e1134f841..000000000 --- a/build-x64.xml +++ /dev/null @@ -1,950 +0,0 @@ - - - - - - - - Build file for the Inkscape SVG editor. This file - was written for GTK-3 on Win64. - - Note that the default target is 'dist-all'. You can execute other - targets instead, by "btool {target}", like "btool compile", if - you want to save time, or "dist-inkscape" if you don't want inkview. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace Inkscape { - char const *version_string = "${version} ${bzr.revision}"; - } - - - #ifndef _CONFIG_H_ - #define _CONFIG_H_ - - #ifndef WIN32 - #define WIN32 - #endif - - /*###################################### - ## This is for require-config.h, whose - ## purpose I cannot fathom. - ######################################*/ - - #define PACKAGE_TARNAME - - /*###################################### - #### RESOURCE DIRECTORIES - ######################################*/ - - #define INKSCAPE_DATADIR "." - #define PACKAGE_LOCALE_DIR "locale" - - - /*###################################### - #### OTHER DEFINITIONS - ######################################*/ - - #define GETTEXT_PACKAGE "inkscape" - - #define PACKAGE_STRING VERSION - - #define HAVE_GETOPT_H 1 - #define HAVE_STRING_H 1 - #define HAVE_LIBINTL_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_OPENMP 1 - #define HAVE_TR1_UNORDERED_SET 1 - #define HAVE_STDINT_H 1 - - #define HAVE_LIBLCMS2 1 - - #define WITH_GTKMM_3_10 1 - //#define WITH_GLIBMM_2_32 1 - #define HAVE_GLIBMM_THREADS_H 1 - #define WITH_GDL_3_6 1 - - #define ENABLE_NLS 1 - #define HAVE_BIND_TEXTDOMAIN_CODESET 1 - - /* keep binreloc off */ - #define BR_PTHREADS 0 - #undef ENABLE_BINRELOC - - /* CairoPDF options */ - #define HAVE_CAIRO_PDF 1 - #define PANGO_ENABLE_ENGINE 1 - #define RENDER_WITH_PANGO_CAIRO 1 - - #define HAVE_GTK_WINDOW_FULLSCREEN 1 - - /* internal interpreter */ - #define WITH_PYTHON 1 - - /* use poppler for pdf import? */ - #define HAVE_POPPLER 1 - #define HAVE_POPPLER_GLIB 1 - #define HAVE_POPPLER_CAIRO 1 - - /* do we want bitmap manipulation? */ - #define WITH_IMAGE_MAGICK 1 - - /* Exif and JPEG support for image resolution import */ - #define HAVE_EXIF 1 - #define HAVE_JPEG 1 - - /* WordPerfect import filter */ - #define WITH_LIBWPG 1 - #define WITH_LIBWPG03 1 - - /* Visio import filter */ - #define WITH_LIBVISIO 1 - #define WITH_LIBVISIO01 1 - - /* Corel Draw import filter */ - #define WITH_LIBCDR 1 - #define WITH_LIBCDR01 1 - - /* Do we support SVG Fonts? */ - #define ENABLE_SVG_FONTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */ - //#define LPE_ENABLE_TEST_EFFECTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., SVG2 features enabled? */ - //#define WITH_SVG2 1 - //#define WITH_CSSCOMPOSITE 1 - //#define WITH_CSSBLEND 1 - //#define WITH_MESH 1 - - #define HAVE_ASPELL 1 - - #define HAVE_POTRACE 1 - - #endif /* _CONFIG_H_ */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wall -Wformat -Werror=format-security -Wextra -Wpointer-arith -Wcast-align -Wsign-compare -Wswitch - -Werror=return-type - - - -Wno-error=pointer-sign - -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -Wno-error=strict-overflow -Wno-error=write-strings - - -Wno-error=format -Wno-error=format-extra-args - -Wno-unused-local-typedefs - -O2 - -mms-bitfields - -fopenmp - - - -std=gnu++11 -DCPP11 - -Woverloaded-virtual - - -Wno-deprecated-declarations - - - -DVERSION=\"${version}\" - -DHAVE_CONFIG_H - -D_INTL_REDIRECT_INLINE - -DHAVE_SSL - -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" - -DPOPPLER_NEW_GFXFONT - -DPOPPLER_NEW_GFXPATCH - -DPOPPLER_NEW_ERRORAPI - -DPOPPLER_EVEN_NEWER_COLOR_SPACE_API - -DPOPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API - - -DGLIBMM_DISABLE_DEPRECATED - -DG_DISABLE_DEPRECATED - -DGTK_DISABLE_SINGLE_INCLUDES - - - -DGDKMM_DISABLE_DEPRECATED - -DGSEAL_ENABLE - - - -I${devlibs}/include - - ${pcc.gtkmm-3.0} - ${pcc.gdkmm-3.0} - ${pcc.gtk+-3.0} - ${pcc.gdk-3.0} - ${pcc.gdl-3.0} - ${pcc.glibmm-2.4} - - - ${pcc.pangomm-1.4} - ${pcc.cairomm-1.0} - - ${pcc.Magick++} - ${pcc.libxml-2.0} - ${pcc.freetype2} - ${pcc.cairo} - ${pcc.poppler} - -I${devlibs}/include/gc - -I${devlibs}/include/potracelib - ${pcc.libwpg-0.3} ${pcc.libvisio-0.1} ${pcc.libcdr-0.1} - -I${cxxtest} - - - - -I${devlibs}/python/include - - - - - - - - - - - - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows -m64 - -mthreads - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows -m64 - -mthreads - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Settings] -#gtk-font-name = Tahoma 8 -#gtk-theme-name = Adwaita -gtk-menu-images = true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build.xml b/build.xml deleted file mode 100644 index b782183ae..000000000 --- a/build.xml +++ /dev/null @@ -1,920 +0,0 @@ - - - - - - - - Build file for the Inkscape SVG editor. This file - was written for GTK-2.10 on Win32, but it should work - well for other types of builds with only minor adjustments. - Note that the default target is 'dist-all'. You can execute other - targets instead, by "btool {target}", like "btool compile", if - you want to save time, or "dist-inkscape" if you don't want inkview. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace Inkscape { - char const *version_string = "${version} ${bzr.revision}"; - } - - - #ifndef _CONFIG_H_ - #define _CONFIG_H_ - - #ifndef WIN32 - #define WIN32 - #endif - - /*###################################### - ## This is for require-config.h, whose - ## purpose I cannot fathom. - ######################################*/ - - #define PACKAGE_TARNAME - - /*###################################### - #### RESOURCE DIRECTORIES - ######################################*/ - - #define INKSCAPE_DATADIR "." - #define PACKAGE_LOCALE_DIR "locale" - - - /*###################################### - #### OTHER DEFINITIONS - ######################################*/ - - #define GETTEXT_PACKAGE "inkscape" - - #define PACKAGE_STRING VERSION - - #define HAVE_GETOPT_H 1 - #define HAVE_STRING_H 1 - #define HAVE_LIBINTL_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_OPENMP 1 - #define HAVE_TR1_UNORDERED_SET 1 - - #define HAVE_LIBLCMS2 1 - - #define ENABLE_NLS 1 - #define HAVE_BIND_TEXTDOMAIN_CODESET 1 - - /* keep binreloc off */ - #define BR_PTHREADS 0 - #undef ENABLE_BINRELOC - - /* CairoPDF options */ - #define HAVE_CAIRO_PDF 1 - #define PANGO_ENABLE_ENGINE 1 - #define RENDER_WITH_PANGO_CAIRO 1 - - #define HAVE_GTK_WINDOW_FULLSCREEN 1 - - /* internal interpreter */ - #define WITH_PYTHON 1 - - /* use poppler for pdf import? */ - #define HAVE_POPPLER 1 - #define HAVE_POPPLER_GLIB 1 - #define HAVE_POPPLER_CAIRO 1 - - /* do we want bitmap manipulation? */ - #define WITH_IMAGE_MAGICK 1 - - /* Exif and JPEG support for image resolution import */ - #define HAVE_EXIF 1 - #define HAVE_JPEG 1 - - /* Allow reading WordPerfect? */ - #define WITH_LIBWPG 1 - - /* Default to libwpg 0.2.x */ - #define WITH_LIBWPG02 1 - - /* Visio import filter */ - #define WITH_LIBVISIO 1 - /* Librevenge based filter */ - #define WITH_LIBVISIO01 1 - - /* Corel Draw import filter */ - #define WITH_LIBCDR 1 - /* Librevenge based filter */ - #define WITH_LIBCDR01 1 - - /* Do we support SVG Fonts? */ - #define ENABLE_SVG_FONTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */ - //#define LPE_ENABLE_TEST_EFFECTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., SVG2 features enabled? */ - //#define WITH_SVG2 1 - //#define WITH_CSSCOMPOSITE 1 - //#define WITH_CSSBLEND 1 - //#define WITH_MESH 1 - - #define HAVE_ASPELL 1 - - #define HAVE_POTRACE 1 - - #endif /* _CONFIG_H_ */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wall -Wformat -Werror=format-security -Wextra -Wpointer-arith -Wcast-align -Wsign-compare -Wswitch - -Werror=return-type - - - -Wno-error=pointer-sign - -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -Wno-error=strict-overflow -Wno-error=write-strings - - -Wno-error=format -Wno-error=format-extra-args - -O2 - -mms-bitfields - -fopenmp - - - - -Woverloaded-virtual - - - -DVERSION=\"${version}\" - -DHAVE_CONFIG_H - -D_INTL_REDIRECT_INLINE - -DHAVE_SSL - -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" - -DPOPPLER_NEW_GFXFONT - -DPOPPLER_NEW_GFXPATCH - -DPOPPLER_NEW_ERRORAPI - -DPOPPLER_EVEN_NEWER_COLOR_SPACE_API - -DPOPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API - - -DGLIBMM_DISABLE_DEPRECATED - -DG_DISABLE_DEPRECATED - -DGTK_DISABLE_SINGLE_INCLUDES - - - -DGDKMM_DISABLE_DEPRECATED - -DGSEAL_ENABLE - - - -I${devlibs}/include - - ${pcc.gtkmm-2.4} - ${pcc.gmodule-2.0} - - ${pcc.Magick++} - ${pcc.libxml-2.0} - ${pcc.freetype2} - ${pcc.cairo} - ${pcc.poppler} - -I${devlibs}/include/gc - -I${devlibs}/include/potracelib - ${pcc.librevenge-0.0} ${pcc.librevenge-stream-0.0} - ${pcc.libwpg-0.2} ${pcc.libvisio-0.1} ${pcc.libcdr-0.1} - -I${cxxtest} - - - - -I${devlibs}/python/include - - - - - - - - - - - - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows - -mthreads - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gmodule-2.0} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} - ${devlibs}/bin/libxml2.dll - ${devlibs}/bin/libxslt.dll - ${devlibs}/bin/libexslt.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-0.0} ${pcl.librevenge-stream-0.0} - ${pcl.libwpg-0.2} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lpthreadGC2 -laspell - -lmscms - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows - -mthreads - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gmodule-2.0} - ${devlibs}/bin/libxml2.dll - ${devlibs}/bin/libxslt.dll - ${devlibs}/bin/libexslt.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-0.0} ${pcl.librevenge-stream-0.0} - ${pcl.libwpg-0.2} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lpthreadGC2 -laspell - -lmscms - - - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gmodule-2.0} - ${devlibs}/bin/libxml2.dll - ${devlibs}/bin/libxslt.dll - ${devlibs}/bin/libexslt.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-0.0} ${pcl.librevenge-stream-0.0} - ${pcl.libwpg-0.2} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lpthreadGC2 -laspell - -lmscms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gtk-icon-sizes = "gtk-menu=16,16:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32:inkscape-decoration=16,16" - gtk-toolbar-icon-size = small-toolbar - - # disable images in buttons. i've only seen ugly delphi apps use this feature. - gtk-button-images = 0 - - # disable the annoying beep in editable controls - gtk-error-bell = 0 - - # enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly. - # the office apps use them heavily, though. - gtk-menu-images = 1 - - # use the win32 button ordering instead of the GNOME HIG one, where applicable - gtk-alternative-button-order = 1 - - style "msw-default" - { - GtkWidget::interior-focus = 1 - GtkOptionMenu::indicator-size = { 9, 5 } - GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 } - GtkSpinButton::shadow-type = in - - # Owen and I disagree that these should be themable - #GtkUIManager::add-tearoffs = 0 - #GtkComboBox::add-tearoffs = 0 - - GtkComboBox::appears-as-list = 1 - GtkComboBox::focus-on-click = 0 - - GOComboBox::add_tearoffs = 0 - - GtkTreeView::allow-rules = 0 - GtkTreeView::expander-size = 12 - - GtkExpander::expander-size = 12 - - GtkScrolledWindow::scrollbar_spacing = 1 - - GtkSeparatorMenuItem::horizontal-padding = 2 - - engine "wimp" - { - } - } - class "*" style "msw-default" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/buildtool.cpp b/buildtool.cpp deleted file mode 100644 index a64340e24..000000000 --- a/buildtool.cpp +++ /dev/null @@ -1,10334 +0,0 @@ -/** - * Simple build automation tool. - * - * Authors: - * Bob Jamison - * Jasper van de Gronde - * Johan Engelen - * - * Copyright (C) 2006-2008 Bob Jamison - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * To use this file, compile with: - *
- * g++ -O3 buildtool.cpp -o btool.exe -fopenmp
- * (or whatever your compiler might be)
- * Then
- * btool
- * or
- * btool {target}
- *
- * Note: if you are using MinGW, and a not very recent version of it,
- * gettimeofday() might be missing.  If so, just build this file with
- * this command:
- * g++ -O3 -DNEED_GETTIMEOFDAY buildtool.cpp -o btool.exe -fopenmp
- *
- */
-
-#define BUILDTOOL_VERSION  "BuildTool v0.9.9multi"
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-
-#ifdef __WIN32__
-#define WIN32_LEAN_AND_MEAN
-#define NOGDI
-#include 
-#endif
-
-#include 
-
-
-//########################################################################
-//# Definition of gettimeofday() for those who don't have it
-//########################################################################
-#ifdef NEED_GETTIMEOFDAY
-#include 
-
-struct timezone {
-      int tz_minuteswest; /* minutes west of Greenwich */
-      int tz_dsttime;     /* type of dst correction */
-    };
-
-static int gettimeofday (struct timeval *tv, struct timezone *tz)
-{
-   struct _timeb tb;
-
-   if (!tv)
-      return (-1);
-
-    _ftime (&tb);
-    tv->tv_sec  = tb.time;
-    tv->tv_usec = tb.millitm * 1000 + 500;
-    if (tz)
-        {
-        tz->tz_minuteswest = -60 * _timezone;
-        tz->tz_dsttime = _daylight;
-        }
-    return 0;
-}
-
-#endif
-
-
-
-
-
-
-
-namespace buildtool
-{
-
-
-
-
-//########################################################################
-//########################################################################
-//##  R E G E X P
-//########################################################################
-//########################################################################
-
-/**
- * This is the SLRE (Super Light Regular Expression library)
- * SLRE is an ISO C library that implements a subset of Perl
- * regular expression syntax.
- *
- * See https://github.com/cesanta/slre for details
- *
- * It's clean code and small size allow us to
- * embed it in BuildTool without adding a dependency
- *
- */    
-
-//begin slre.h
-
-/*
- * Copyright (c) 2004-2013 Sergey Lyubka 
- * Copyright (c) 2013 Cesanta Software Limited
- * All rights reserved
- *
- * This library is dual-licensed: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation. For the terms of this
- * license, see .
- *
- * You are free to use this library under the terms of the GNU General
- * Public License, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * Alternatively, you can license this library under a commercial
- * license, as set out in .
- */
-
-/*
- * This is a regular expression library that implements a subset of Perl RE.
- * Please refer to README.md for a detailed reference.
- */
-
-#ifndef SLRE_HEADER_DEFINED
-#define SLRE_HEADER_DEFINED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct slre_cap {
-  const char *ptr;
-  int len;
-};
-
-
-int slre_match(const char *regexp, const char *buf, int buf_len,
-               struct slre_cap *caps, int num_caps, int flags);
-
-/* Possible flags for slre_match() */
-enum { SLRE_IGNORE_CASE = 1 };
-
-
-/* slre_match() failure codes */
-#define SLRE_NO_MATCH               -1
-#define SLRE_UNEXPECTED_QUANTIFIER  -2
-#define SLRE_UNBALANCED_BRACKETS    -3
-#define SLRE_INTERNAL_ERROR         -4
-#define SLRE_INVALID_CHARACTER_SET  -5
-#define SLRE_INVALID_METACHARACTER  -6
-#define SLRE_CAPS_ARRAY_TOO_SMALL   -7
-#define SLRE_TOO_MANY_BRANCHES      -8
-#define SLRE_TOO_MANY_BRACKETS      -9
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* SLRE_HEADER_DEFINED */
-
-//end slre.h
-
-//start slre.c
-
-/*
- * Copyright (c) 2004-2013 Sergey Lyubka 
- * Copyright (c) 2013 Cesanta Software Limited
- * All rights reserved
- *
- * This library is dual-licensed: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation. For the terms of this
- * license, see .
- *
- * You are free to use this library under the terms of the GNU General
- * Public License, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * Alternatively, you can license this library under a commercial
- * license, as set out in .
- */
-
-#include 
-#include 
-#include 
-
-//#include "slre.h"
-
-#define MAX_BRANCHES 100
-#define MAX_BRACKETS 100
-#define FAIL_IF(condition, error_code) if (condition) return (error_code)
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(ar) (sizeof(ar) / sizeof((ar)[0]))
-#endif
-
-#ifdef SLRE_DEBUG
-#define DBG(x) printf x
-#else
-#define DBG(x)
-#endif
-
-struct bracket_pair {
-  const char *ptr;  /* Points to the first char after '(' in regex  */
-  int len;          /* Length of the text between '(' and ')'       */
-  int branches;     /* Index in the branches array for this pair    */
-  int num_branches; /* Number of '|' in this bracket pair           */
-};
-
-struct branch {
-  int bracket_index;    /* index for 'struct bracket_pair brackets' */
-                        /* array defined below                      */
-  const char *schlong;  /* points to the '|' character in the regex */
-};
-
-struct regex_info {
-  /*
-   * Describes all bracket pairs in the regular expression.
-   * First entry is always present, and grabs the whole regex.
-   */
-  struct bracket_pair brackets[MAX_BRACKETS];
-  int num_brackets;
-
-  /*
-   * Describes alternations ('|' operators) in the regular expression.
-   * Each branch falls into a specific branch pair.
-   */
-  struct branch branches[MAX_BRANCHES];
-  int num_branches;
-
-  /* Array of captures provided by the user */
-  struct slre_cap *caps;
-  int num_caps;
-
-  /* E.g. SLRE_IGNORE_CASE. See enum below */
-  int flags;
-};
-
-static int is_metacharacter(const unsigned char *s) {
-  static const char *metacharacters = "^$().[]*+?|\\Ssdbfnrtv";
-  return strchr(metacharacters, *s) != NULL;
-}
-
-static int op_len(const char *re) {
-  return re[0] == '\\' && re[1] == 'x' ? 4 : re[0] == '\\' ? 2 : 1;
-}
-
-static int set_len(const char *re, int re_len) {
-  int len = 0;
-
-  while (len < re_len && re[len] != ']') {
-    len += op_len(re + len);
-  }
-
-  return len <= re_len ? len + 1 : -1;
-}
-
-static int get_op_len(const char *re, int re_len) {
-  return re[0] == '[' ? set_len(re + 1, re_len - 1) + 1 : op_len(re);
-}
-
-static int is_quantifier(const char *re) {
-  return re[0] == '*' || re[0] == '+' || re[0] == '?';
-}
-
-static int toi(int x) {
-  return isdigit(x) ? x - '0' : x - 'W';
-}
-
-static int hextoi(const unsigned char *s) {
-  return (toi(tolower(s[0])) << 4) | toi(tolower(s[1]));
-}
-
-static int match_op(const unsigned char *re, const unsigned char *s,
-                    struct regex_info *info) {
-  int result = 0;
-  switch (*re) {
-    case '\\':
-      /* Metacharacters */
-      switch (re[1]) {
-        case 'S': FAIL_IF(isspace(*s), SLRE_NO_MATCH); result++; break;
-        case 's': FAIL_IF(!isspace(*s), SLRE_NO_MATCH); result++; break;
-        case 'd': FAIL_IF(!isdigit(*s), SLRE_NO_MATCH); result++; break;
-        case 'b': FAIL_IF(*s != '\b', SLRE_NO_MATCH); result++; break;
-        case 'f': FAIL_IF(*s != '\f', SLRE_NO_MATCH); result++; break;
-        case 'n': FAIL_IF(*s != '\n', SLRE_NO_MATCH); result++; break;
-        case 'r': FAIL_IF(*s != '\r', SLRE_NO_MATCH); result++; break;
-        case 't': FAIL_IF(*s != '\t', SLRE_NO_MATCH); result++; break;
-        case 'v': FAIL_IF(*s != '\v', SLRE_NO_MATCH); result++; break;
-
-        case 'x':
-          /* Match byte, \xHH where HH is hexadecimal byte representaion */
-          FAIL_IF(hextoi(re + 2) != *s, SLRE_NO_MATCH);
-          result++;
-          break;
-
-        default:
-          /* Valid metacharacter check is done in bar() */
-          FAIL_IF(re[1] != s[0], SLRE_NO_MATCH);
-          result++;
-          break;
-      }
-      break;
-
-    case '|': FAIL_IF(1, SLRE_INTERNAL_ERROR); break;
-    case '$': FAIL_IF(1, SLRE_NO_MATCH); break;
-    case '.': result++; break;
-
-    default:
-      if (info->flags & SLRE_IGNORE_CASE) {
-        FAIL_IF(tolower(*re) != tolower(*s), SLRE_NO_MATCH);
-      } else {
-        FAIL_IF(*re != *s, SLRE_NO_MATCH);
-      }
-      result++;
-      break;
-  }
-
-  return result;
-}
-
-static int match_set(const char *re, int re_len, const char *s,
-                     struct regex_info *info) {
-  int len = 0, result = -1, invert = re[0] == '^';
-
-  if (invert) re++, re_len--;
-
-  while (len <= re_len && re[len] != ']' && result <= 0) {
-    /* Support character range */
-    if (re[len] != '-' && re[len + 1] == '-' && re[len + 2] != ']' &&
-        re[len + 2] != '\0') {
-      result = info->flags &  SLRE_IGNORE_CASE ?
-        tolower(*s) >= tolower(re[len]) && tolower(*s) <= tolower(re[len + 2]) :
-        *s >= re[len] && *s <= re[len + 2];
-      len += 3;
-    } else {
-      result = match_op((unsigned char *) re + len, (unsigned char *) s, info);
-      len += op_len(re + len);
-    }
-  }
-  return (!invert && result > 0) || (invert && result <= 0) ? 1 : -1;
-}
-
-static int doh(const char *s, int s_len, struct regex_info *info, int bi);
-
-static int bar(const char *re, int re_len, const char *s, int s_len,
-               struct regex_info *info, int bi) {
-  /* i is offset in re, j is offset in s, bi is brackets index */
-  int i, j, n, step;
-
-  for (i = j = 0; i < re_len && j <= s_len; i += step) {
-
-    /* Handle quantifiers. Get the length of the chunk. */
-    step = re[i] == '(' ? info->brackets[bi + 1].len + 2 :
-      get_op_len(re + i, re_len - i);
-
-    DBG(("%s [%.*s] [%.*s] re_len=%d step=%d i=%d j=%d\n", __func__,
-         re_len - i, re + i, s_len - j, s + j, re_len, step, i, j));
-
-    FAIL_IF(is_quantifier(&re[i]), SLRE_UNEXPECTED_QUANTIFIER);
-    FAIL_IF(step <= 0, SLRE_INVALID_CHARACTER_SET);
-
-    if (i + step < re_len && is_quantifier(re + i + step)) {
-      DBG(("QUANTIFIER: [%.*s]%c [%.*s]\n", step, re + i,
-           re[i + step], s_len - j, s + j));
-      if (re[i + step] == '?') {
-        int result = bar(re + i, step, s + j, s_len - j, info, bi);
-        j += result > 0 ? result : 0;
-        i++;
-      } else if (re[i + step] == '+' || re[i + step] == '*') {
-        int j2 = j, nj = j, n1, n2 = -1, ni, non_greedy = 0;
-
-        /* Points to the regexp code after the quantifier */
-        ni = i + step + 1;
-        if (ni < re_len && re[ni] == '?') {
-          non_greedy = 1;
-          ni++;
-        }
-
-        do {
-          if ((n1 = bar(re + i, step, s + j2, s_len - j2, info, bi)) > 0) {
-            j2 += n1;
-          }
-          if (re[i + step] == '+' && n1 < 0) break;
-
-          if (ni >= re_len) {
-            /* After quantifier, there is nothing */
-            nj = j2;
-          } else if ((n2 = bar(re + ni, re_len - ni, s + j2,
-                               s_len - j2, info, bi)) >= 0) {
-            /* Regex after quantifier matched */
-            nj = j2 + n2;
-          }
-          if (nj > j && non_greedy) break;
-        } while (n1 > 0);
-
-        /*
-         * Even if we found one or more pattern, this branch will be executed,
-         * changing the next captures.
-         */
-        if (n1 < 0 && n2 < 0 && re[i + step] == '*' &&
-            (n2 = bar(re + ni, re_len - ni, s + j, s_len - j, info, bi)) > 0) {
-          nj = j + n2;
-        }
-
-        DBG(("STAR/PLUS END: %d %d %d %d %d\n", j, nj, re_len - ni, n1, n2));
-        FAIL_IF(re[i + step] == '+' && nj == j, SLRE_NO_MATCH);
-
-        /* If while loop body above was not executed for the * quantifier,  */
-        /* make sure the rest of the regex matches                          */
-        FAIL_IF(nj == j && ni < re_len && n2 < 0, SLRE_NO_MATCH);
-
-        /* Returning here cause we've matched the rest of RE already */
-        return nj;
-      }
-      continue;
-    }
-
-    if (re[i] == '[') {
-      n = match_set(re + i + 1, re_len - (i + 2), s + j, info);
-      DBG(("SET %.*s [%.*s] -> %d\n", step, re + i, s_len - j, s + j, n));
-      FAIL_IF(n <= 0, SLRE_NO_MATCH);
-      j += n;
-    } else if (re[i] == '(') {
-      n = SLRE_NO_MATCH;
-      bi++;
-      FAIL_IF(bi >= info->num_brackets, SLRE_INTERNAL_ERROR);
-      DBG(("CAPTURING [%.*s] [%.*s] [%s]\n",
-           step, re + i, s_len - j, s + j, re + i + step));
-
-      if (re_len - (i + step) <= 0) {
-        /* Nothing follows brackets */
-        n = doh(s + j, s_len - j, info, bi);
-      } else {
-        int j2;
-        for (j2 = 0; j2 <= s_len - j; j2++) {
-          if ((n = doh(s + j, s_len - (j + j2), info, bi)) >= 0 &&
-              bar(re + i + step, re_len - (i + step),
-                  s + j + n, s_len - (j + n), info, bi) >= 0) break;
-        }
-      }
-
-      DBG(("CAPTURED [%.*s] [%.*s]:%d\n", step, re + i, s_len - j, s + j, n));
-      FAIL_IF(n < 0, n);
-      if (info->caps != NULL && n > 0) {
-        info->caps[bi - 1].ptr = s + j;
-        info->caps[bi - 1].len = n;
-      }
-      j += n;
-    } else if (re[i] == '^') {
-      FAIL_IF(j != 0, SLRE_NO_MATCH);
-    } else if (re[i] == '$') {
-      FAIL_IF(j != s_len, SLRE_NO_MATCH);
-    } else {
-      FAIL_IF(j >= s_len, SLRE_NO_MATCH);
-      n = match_op((unsigned char *) (re + i), (unsigned char *) (s + j), info);
-      FAIL_IF(n <= 0, n);
-      j += n;
-    }
-  }
-
-  return j;
-}
-
-/* Process branch points */
-static int doh(const char *s, int s_len, struct regex_info *info, int bi) {
-  const struct bracket_pair *b = &info->brackets[bi];
-  int i = 0, len, result;
-  const char *p;
-
-  do {
-    p = i == 0 ? b->ptr : info->branches[b->branches + i - 1].schlong + 1;
-    len = b->num_branches == 0 ? b->len :
-      i == b->num_branches ? (int) (b->ptr + b->len - p) :
-      (int) (info->branches[b->branches + i].schlong - p);
-    DBG(("%s %d %d [%.*s] [%.*s]\n", __func__, bi, i, len, p, s_len, s));
-    result = bar(p, len, s, s_len, info, bi);
-    DBG(("%s <- %d\n", __func__, result));
-  } while (result <= 0 && i++ < b->num_branches);  /* At least 1 iteration */
-
-  return result;
-}
-
-static int baz(const char *s, int s_len, struct regex_info *info) {
-  int i, result = -1, is_anchored = info->brackets[0].ptr[0] == '^';
-
-  for (i = 0; i <= s_len; i++) {
-    result = doh(s + i, s_len - i, info, 0);
-    if (result >= 0) {
-      result += i;
-      break;
-    }
-    if (is_anchored) break;
-  }
-
-  return result;
-}
-
-static void setup_branch_points(struct regex_info *info) {
-  int i, j;
-  struct branch tmp;
-
-  /* First, sort branches. Must be stable, no qsort. Use bubble algo. */
-  for (i = 0; i < info->num_branches; i++) {
-    for (j = i + 1; j < info->num_branches; j++) {
-      if (info->branches[i].bracket_index > info->branches[j].bracket_index) {
-        tmp = info->branches[i];
-        info->branches[i] = info->branches[j];
-        info->branches[j] = tmp;
-      }
-    }
-  }
-
-  /*
-   * For each bracket, set their branch points. This way, for every bracket
-   * (i.e. every chunk of regex) we know all branch points before matching.
-   */
-  for (i = j = 0; i < info->num_brackets; i++) {
-    info->brackets[i].num_branches = 0;
-    info->brackets[i].branches = j;
-    while (j < info->num_branches && info->branches[j].bracket_index == i) {
-      info->brackets[i].num_branches++;
-      j++;
-    }
-  }
-}
-
-static int foo(const char *re, int re_len, const char *s, int s_len,
-               struct regex_info *info) {
-  int i, step, depth = 0;
-
-  /* First bracket captures everything */
-  info->brackets[0].ptr = re;
-  info->brackets[0].len = re_len;
-  info->num_brackets = 1;
-
-  /* Make a single pass over regex string, memorize brackets and branches */
-  for (i = 0; i < re_len; i += step) {
-    step = get_op_len(re + i, re_len - i);
-
-    if (re[i] == '|') {
-      FAIL_IF(info->num_branches >= (int) ARRAY_SIZE(info->branches),
-              SLRE_TOO_MANY_BRANCHES);
-      info->branches[info->num_branches].bracket_index =
-        info->brackets[info->num_brackets - 1].len == -1 ?
-        info->num_brackets - 1 : depth;
-      info->branches[info->num_branches].schlong = &re[i];
-      info->num_branches++;
-    } else if (re[i] == '\\') {
-      FAIL_IF(i >= re_len - 1, SLRE_INVALID_METACHARACTER);
-      if (re[i + 1] == 'x') {
-        /* Hex digit specification must follow */
-        FAIL_IF(re[i + 1] == 'x' && i >= re_len - 3,
-                SLRE_INVALID_METACHARACTER);
-        FAIL_IF(re[i + 1] ==  'x' && !(isxdigit(re[i + 2]) &&
-                isxdigit(re[i + 3])), SLRE_INVALID_METACHARACTER);
-      } else {
-        FAIL_IF(!is_metacharacter((unsigned char *) re + i + 1),
-                SLRE_INVALID_METACHARACTER);
-      }
-    } else if (re[i] == '(') {
-      FAIL_IF(info->num_brackets >= (int) ARRAY_SIZE(info->brackets),
-              SLRE_TOO_MANY_BRACKETS);
-      depth++;  /* Order is important here. Depth increments first. */
-      info->brackets[info->num_brackets].ptr = re + i + 1;
-      info->brackets[info->num_brackets].len = -1;
-      info->num_brackets++;
-      FAIL_IF(info->num_caps > 0 && info->num_brackets - 1 > info->num_caps,
-              SLRE_CAPS_ARRAY_TOO_SMALL);
-    } else if (re[i] == ')') {
-      int ind = info->brackets[info->num_brackets - 1].len == -1 ?
-        info->num_brackets - 1 : depth;
-      info->brackets[ind].len = (int) (&re[i] - info->brackets[ind].ptr);
-      DBG(("SETTING BRACKET %d [%.*s]\n",
-           ind, info->brackets[ind].len, info->brackets[ind].ptr));
-      depth--;
-      FAIL_IF(depth < 0, SLRE_UNBALANCED_BRACKETS);
-      FAIL_IF(i > 0 && re[i - 1] == '(', SLRE_NO_MATCH);
-    }
-  }
-
-  FAIL_IF(depth != 0, SLRE_UNBALANCED_BRACKETS);
-  setup_branch_points(info);
-
-  return baz(s, s_len, info);
-}
-
-int slre_match(const char *regexp, const char *s, int s_len,
-               struct slre_cap *caps, int num_caps, int flags) {
-  struct regex_info info;
-
-  /* Initialize info structure */
-  info.flags = flags;
-  info.num_brackets = info.num_branches = 0;
-  info.num_caps = num_caps;
-  info.caps = caps;
-
-  DBG(("========================> [%s] [%.*s]\n", regexp, s_len, s));
-  return foo(regexp, (int) strlen(regexp), s, s_len, &info);
-}
-
-//end slre.c
-
-//########################################################################
-//########################################################################
-//##  E N D    R E G E X P
-//########################################################################
-//########################################################################
-
-
-
-
-
-//########################################################################
-//########################################################################
-//##  X M L
-//########################################################################
-//########################################################################
-
-// Note:  This mini-dom library comes from Pedro, another little project
-// of mine.
-
-typedef std::string String;
-typedef unsigned int XMLCh;
-
-
-class Namespace
-{
-public:
-    Namespace()
-        {}
-
-    Namespace(const String &prefixArg, const String &namespaceURIArg)
-        {
-        prefix       = prefixArg;
-        namespaceURI = namespaceURIArg;
-        }
-
-    Namespace(const Namespace &other)
-        {
-        assign(other);
-        }
-
-    Namespace &operator=(const Namespace &other)
-        {
-        assign(other);
-        return *this;
-        }
-
-    virtual ~Namespace()
-        {}
-
-    virtual String getPrefix()
-        { return prefix; }
-
-    virtual String getNamespaceURI()
-        { return namespaceURI; }
-
-protected:
-
-    void assign(const Namespace &other)
-        {
-        prefix       = other.prefix;
-        namespaceURI = other.namespaceURI;
-        }
-
-    String prefix;
-    String namespaceURI;
-
-};
-
-class Attribute
-{
-public:
-    Attribute()
-        {}
-
-    Attribute(const String &nameArg, const String &valueArg)
-        {
-        name  = nameArg;
-        value = valueArg;
-        }
-
-    Attribute(const Attribute &other)
-        {
-        assign(other);
-        }
-
-    Attribute &operator=(const Attribute &other)
-        {
-        assign(other);
-        return *this;
-        }
-
-    virtual ~Attribute()
-        {}
-
-    virtual String getName()
-        { return name; }
-
-    virtual String getValue()
-        { return value; }
-
-protected:
-
-    void assign(const Attribute &other)
-        {
-        name  = other.name;
-        value = other.value;
-        }
-
-    String name;
-    String value;
-
-};
-
-
-class Element
-{
-friend class Parser;
-
-public:
-    Element()
-        {
-        init();
-        }
-
-    Element(const String &nameArg)
-        {
-        init();
-        name   = nameArg;
-        }
-
-    Element(const String &nameArg, const String &valueArg)
-        {
-        init();
-        name   = nameArg;
-        value  = valueArg;
-        }
-
-    Element(const Element &other)
-        {
-        assign(other);
-        }
-
-    Element &operator=(const Element &other)
-        {
-        assign(other);
-        return *this;
-        }
-
-    virtual Element *clone();
-
-    virtual ~Element()
-        {
-        for (std::size_t i=0 ; i getChildren()
-        { return children; }
-
-    std::vector findElements(const String &name);
-
-    String getAttribute(const String &name);
-
-    std::vector &getAttributes()
-        { return attributes; } 
-
-    String getTagAttribute(const String &tagName, const String &attrName);
-
-    String getTagValue(const String &tagName);
-
-    void addChild(Element *child);
-
-    void addAttribute(const String &name, const String &value);
-
-    void addNamespace(const String &prefix, const String &namespaceURI);
-
-
-    /**
-     * Prettyprint an XML tree to an output stream.  Elements are indented
-     * according to element hierarchy.
-     * @param f a stream to receive the output
-     * @param elem the element to output
-     */
-    void writeIndented(FILE *f);
-
-    /**
-     * Prettyprint an XML tree to standard output.  This is the equivalent of
-     * writeIndented(stdout).
-     * @param elem the element to output
-     */
-    void print();
-    
-    int getLine()
-        { return line; }
-
-protected:
-
-    void init()
-        {
-        parent = NULL;
-        line   = 0;
-        }
-
-    void assign(const Element &other)
-        {
-        parent     = other.parent;
-        children   = other.children;
-        attributes = other.attributes;
-        namespaces = other.namespaces;
-        name       = other.name;
-        value      = other.value;
-        line       = other.line;
-        }
-
-    void findElementsRecursive(std::vector&res, const String &name);
-
-    void writeIndentedRecursive(FILE *f, int indent);
-
-    Element *parent;
-
-    std::vectorchildren;
-
-    std::vector attributes;
-    std::vector namespaces;
-
-    String name;
-    String value;
-    
-    int line;
-};
-
-
-
-
-
-class Parser
-{
-public:
-    /**
-     * Constructor
-     */
-    Parser()
-        { init(); }
-
-    virtual ~Parser()
-        {}
-
-    /**
-     * Parse XML in a char buffer.
-     * @param buf a character buffer to parse
-     * @param pos position to start parsing
-     * @param len number of chars, from pos, to parse.
-     * @return a pointer to the root of the XML document;
-     */
-    Element *parse(const char *buf,int pos,int len);
-
-    /**
-     * Parse XML in a char buffer.
-     * @param buf a character buffer to parse
-     * @param pos position to start parsing
-     * @param len number of chars, from pos, to parse.
-     * @return a pointer to the root of the XML document;
-     */
-    Element *parse(const String &buf);
-
-    /**
-     * Parse a named XML file.  The file is loaded like a data file;
-     * the original format is not preserved.
-     * @param fileName the name of the file to read
-     * @return a pointer to the root of the XML document;
-     */
-    Element *parseFile(const String &fileName);
-
-    /**
-     * Utility method to preprocess a string for XML
-     * output, escaping its entities.
-     * @param str the string to encode
-     */
-    static String encode(const String &str);
-
-    /**
-     *  Removes whitespace from beginning and end of a string
-     */
-    String trim(const String &s);
-
-private:
-
-    void init()
-        {
-        keepGoing       = true;
-        currentNode     = NULL;
-        parselen        = 0;
-        parsebuf        = NULL;
-        currentPosition = 0;
-        }
-
-    int countLines(int begin, int end);
-
-    void getLineAndColumn(int pos, int *lineNr, int *colNr);
-
-    void error(const char *fmt, ...);
-
-    int peek(int pos);
-
-    int match(int pos, const char *text);
-
-    int skipwhite(int p);
-
-    int getWord(int p0, String &buf);
-
-    int getQuoted(int p0, String &buf, int do_i_parse);
-
-    int parseVersion(int p0);
-
-    int parseDoctype(int p0);
-
-    int parseElement(int p0, Element *par,int depth);
-
-    Element *parse(XMLCh *buf,int pos,int len);
-
-    bool       keepGoing;
-    Element    *currentNode;
-    int        parselen;
-    XMLCh      *parsebuf;
-    String     cdatabuf;
-    int        currentPosition;
-};
-
-
-
-
-//########################################################################
-//# E L E M E N T
-//########################################################################
-
-Element *Element::clone()
-{
-    Element *elem = new Element(name, value);
-    elem->parent     = parent;
-    elem->attributes = attributes;
-    elem->namespaces = namespaces;
-    elem->line       = line;
-
-    std::vector::iterator iter;
-    for (iter = children.begin(); iter != children.end() ; iter++)
-        {
-        elem->addChild((*iter)->clone());
-        }
-    return elem;
-}
-
-
-void Element::findElementsRecursive(std::vector&res, const String &name)
-{
-    if (getName() == name)
-        {
-        res.push_back(this);
-        }
-    for (std::size_t i=0; ifindElementsRecursive(res, name);
-}
-
-std::vector Element::findElements(const String &name)
-{
-    std::vector res;
-    findElementsRecursive(res, name);
-    return res;
-}
-
-String Element::getAttribute(const String &name)
-{
-    for (std::size_t i=0 ; ielems = findElements(tagName);
-    if (elems.size() <1)
-        return "";
-    String res = elems[0]->getAttribute(attrName);
-    return res;
-}
-
-String Element::getTagValue(const String &tagName)
-{
-    std::vectorelems = findElements(tagName);
-    if (elems.size() <1)
-        return "";
-    String res = elems[0]->getValue();
-    return res;
-}
-
-void Element::addChild(Element *child)
-{
-    if (!child)
-        return;
-    child->parent = this;
-    children.push_back(child);
-}
-
-
-void Element::addAttribute(const String &name, const String &value)
-{
-    Attribute attr(name, value);
-    attributes.push_back(attr);
-}
-
-void Element::addNamespace(const String &prefix, const String &namespaceURI)
-{
-    Namespace ns(prefix, namespaceURI);
-    namespaces.push_back(ns);
-}
-
-void Element::writeIndentedRecursive(FILE *f, int indent)
-{
-    int i;
-    if (!f)
-        return;
-    //Opening tag, and attributes
-    for (i=0;i\n");
-
-    //Between the tags
-    if (value.size() > 0)
-        {
-        for (int i=0;iwriteIndentedRecursive(f, indent+2);
-
-    //Closing tag
-    for (int i=0; i\n", name.c_str());
-}
-
-void Element::writeIndented(FILE *f)
-{
-    writeIndentedRecursive(f, 0);
-}
-
-void Element::print()
-{
-    writeIndented(stdout);
-}
-
-
-//########################################################################
-//# P A R S E R
-//########################################################################
-
-
-
-typedef struct
-    {
-    const char *escaped;
-    char value;
-    } EntityEntry;
-
-static EntityEntry entities[] =
-{
-    { "&" , '&'  },
-    { "<"  , '<'  },
-    { ">"  , '>'  },
-    { "'", '\'' },
-    { """, '"'  },
-    { NULL    , '\0' }
-};
-
-
-
-/**
- *  Removes whitespace from beginning and end of a string
- */
-String Parser::trim(const String &s)
-{
-    if (s.size() < 1)
-        return s;
-    
-    //Find first non-ws char
-    std::size_t begin = 0;
-    for ( ; begin < s.size() ; begin++)
-        {
-        if (!isspace(s[begin]))
-            break;
-        }
-
-    //Find first non-ws char, going in reverse
-    std::size_t end = s.size() - 1;
-    for ( ; end > begin ; end--)
-        {
-        if (!isspace(s[end]))
-            break;
-        }
-    //trace("begin:%d  end:%d", begin, end);
-
-    String res = s.substr(begin, end-begin+1);
-    return res;
-}
-
-
-int Parser::countLines(int begin, int end)
-{
-    int count = 0;
-    for (int i=begin ; i= parselen)
-        return -1;
-    currentPosition = pos;
-    int ch = parsebuf[pos];
-    //printf("ch:%c\n", ch);
-    return ch;
-}
-
-
-
-String Parser::encode(const String &str)
-{
-    String ret;
-    for (std::size_t i=0 ; i')
-            ret.append(">");
-        else if (ch == '\'')
-            ret.append("'");
-        else if (ch == '"')
-            ret.append(""");
-        else
-            ret.push_back(ch);
-
-        }
-    return ret;
-}
-
-
-int Parser::match(int p0, const char *text)
-{
-    int p = p0;
-    while (*text)
-        {
-        if (peek(p) != *text)
-            return p0;
-        p++; text++;
-        }
-    return p;
-}
-
-
-
-int Parser::skipwhite(int p)
-{
-
-    while (p p)
-            {
-            p = p2;
-            while (p");
-              if (p2 > p)
-                  {
-                  p = p2;
-                  break;
-                  }
-              p++;
-              }
-          }
-      XMLCh b = peek(p);
-      if (!isspace(b))
-          break;
-      p++;
-      }
-  return p;
-}
-
-/* modify this to allow all chars for an element or attribute name*/
-int Parser::getWord(int p0, String &buf)
-{
-    int p = p0;
-    while (p' || b=='=')
-            break;
-        buf.push_back(b);
-        p++;
-        }
-    return p;
-}
-
-int Parser::getQuoted(int p0, String &buf, int do_i_parse)
-{
-
-    int p = p0;
-    if (peek(p) != '"' && peek(p) != '\'')
-        return p0;
-    p++;
-
-    while ( pvalue ; ee++)
-                {
-                int p2 = match(p, ee->escaped);
-                if (p2>p)
-                    {
-                    buf.push_back(ee->value);
-                    p = p2;
-                    found = true;
-                    break;
-                    }
-                }
-            if (!found)
-                {
-                error("unterminated entity");
-                return false;
-                }
-            }
-        else
-            {
-            buf.push_back(b);
-            p++;
-            }
-        }
-    return p;
-}
-
-int Parser::parseVersion(int p0)
-{
-    //printf("### parseVersion: %d\n", p0);
-
-    int p = p0;
-
-    p = skipwhite(p0);
-
-    if (peek(p) != '<')
-        return p0;
-
-    p++;
-    if (p>=parselen || peek(p)!='?')
-        return p0;
-
-    p++;
-
-    String buf;
-
-    while (p=parselen || peek(p)!='<')
-        return p0;
-
-    p++;
-
-    if (peek(p)!='!' || peek(p+1)=='-')
-        return p0;
-    p++;
-
-    String buf;
-    while (p')
-            {
-            p++;
-            break;
-            }
-        buf.push_back(ch);
-        p++;
-        }
-
-    //printf("Got doctype:%s\n",buf.c_str());
-    return p;
-}
-
-
-
-int Parser::parseElement(int p0, Element *par,int lineNr)
-{
-
-    int p = p0;
-
-    int p2 = p;
-
-    p = skipwhite(p);
-
-    //## Get open tag
-    XMLCh ch = peek(p);
-    if (ch!='<')
-        return p0;
-
-    //int line, col;
-    //getLineAndColumn(p, &line, &col);
-
-    p++;
-
-    String openTagName;
-    p = skipwhite(p);
-    p = getWord(p, openTagName);
-    //printf("####tag :%s\n", openTagName.c_str());
-    p = skipwhite(p);
-
-    //Add element to tree
-    Element *n = new Element(openTagName);
-    n->line = lineNr + countLines(p0, p);
-    n->parent = par;
-    par->addChild(n);
-
-    // Get attributes
-    if (peek(p) != '>')
-        {
-        while (p')
-                break;
-            else if (ch=='/' && p')
-                    {
-                    p++;
-                    //printf("quick close\n");
-                    return p;
-                    }
-                }
-            String attrName;
-            p2 = getWord(p, attrName);
-            if (p2==p)
-                break;
-            //printf("name:%s",buf);
-            p=p2;
-            p = skipwhite(p);
-            ch = peek(p);
-            //printf("ch:%c\n",ch);
-            if (ch!='=')
-                break;
-            p++;
-            p = skipwhite(p);
-            // ch = parsebuf[p];
-            // printf("ch:%c\n",ch);
-            String attrVal;
-            p2 = getQuoted(p, attrVal, true);
-            p=p2+1;
-            //printf("name:'%s'   value:'%s'\n",attrName.c_str(),attrVal.c_str());
-            char *namestr = (char *)attrName.c_str();
-            if (strncmp(namestr, "xmlns:", 6)==0)
-                n->addNamespace(attrName, attrVal);
-            else
-                n->addAttribute(attrName, attrVal);
-            }
-        }
-
-    bool cdata = false;
-
-    p++;
-    // ### Get intervening data ### */
-    String data;
-    while (pp)
-            {
-            p = p2;
-            while (p");
-                if (p2 > p)
-                    {
-                    p = p2;
-                    break;
-                    }
-                p++;
-                }
-            }
-
-        ch = peek(p);
-        //# END TAG
-        if (ch=='<' && !cdata && peek(p+1)=='/')
-            {
-            break;
-            }
-        //# CDATA
-        p2 = match(p, " p)
-            {
-            cdata = true;
-            p = p2;
-            continue;
-            }
-
-        //# CHILD ELEMENT
-        if (ch == '<')
-            {
-            p2 = parseElement(p, n, lineNr + countLines(p0, p));
-            if (p2 == p)
-                {
-                /*
-                printf("problem on element:%s.  p2:%d p:%d\n",
-                      openTagName.c_str(), p2, p);
-                */
-                return p0;
-                }
-            p = p2;
-            continue;
-            }
-        //# ENTITY
-        if (ch=='&' && !cdata)
-            {
-            bool found = false;
-            for (EntityEntry *ee = entities ; ee->value ; ee++)
-                {
-                int p2 = match(p, ee->escaped);
-                if (p2>p)
-                    {
-                    data.push_back(ee->value);
-                    p = p2;
-                    found = true;
-                    break;
-                    }
-                }
-            if (!found)
-                {
-                error("unterminated entity");
-                return -1;
-                }
-            continue;
-            }
-
-        //# NONE OF THE ABOVE
-        data.push_back(ch);
-        p++;
-        }/*while*/
-
-
-    n->value = data;
-    //printf("%d : data:%s\n",p,data.c_str());
-
-    //## Get close tag
-    p = skipwhite(p);
-    ch = peek(p);
-    if (ch != '<')
-        {
-        error("no < for end tag\n");
-        return p0;
-        }
-    p++;
-    ch = peek(p);
-    if (ch != '/')
-        {
-        error("no / on end tag");
-        return p0;
-        }
-    p++;
-    ch = peek(p);
-    p = skipwhite(p);
-    String closeTagName;
-    p = getWord(p, closeTagName);
-    if (openTagName != closeTagName)
-        {
-        error("Mismatched closing tag.  Expected . Got '%S'.",
-                openTagName.c_str(), closeTagName.c_str());
-        return p0;
-        }
-    p = skipwhite(p);
-    if (peek(p) != '>')
-        {
-        error("no > on end tag for '%s'", closeTagName.c_str());
-        return p0;
-        }
-    p++;
-    // printf("close element:%s\n",closeTagName.c_str());
-    p = skipwhite(p);
-    return p;
-}
-
-
-
-
-Element *Parser::parse(XMLCh *buf,int pos,int len)
-{
-    parselen = len;
-    parsebuf = buf;
-    Element *rootNode = new Element("root");
-    pos = parseVersion(pos);
-    pos = parseDoctype(pos);
-    pos = parseElement(pos, rootNode, 1);
-    return rootNode;
-}
-
-
-Element *Parser::parse(const char *buf, int pos, int len)
-{
-    XMLCh *charbuf = new XMLCh[len + 1];
-    long i = 0;
-    for ( ; i < len ; i++)
-        charbuf[i] = (XMLCh)buf[i];
-    charbuf[i] = '\0';
-
-    Element *n = parse(charbuf, pos, len);
-    delete[] charbuf;
-    return n;
-}
-
-Element *Parser::parse(const String &buf)
-{
-    long len = (long)buf.size();
-    XMLCh *charbuf = new XMLCh[len + 1];
-    long i = 0;
-    for ( ; i < len ; i++)
-        charbuf[i] = (XMLCh)buf[i];
-    charbuf[i] = '\0';
-
-    Element *n = parse(charbuf, 0, len);
-    delete[] charbuf;
-    return n;
-}
-
-Element *Parser::parseFile(const String &fileName)
-{
-
-    //##### LOAD INTO A CHAR BUF, THEN CONVERT TO XMLCh
-    FILE *f = fopen(fileName.c_str(), "rb");
-    if (!f)
-        return NULL;
-
-    struct stat  statBuf;
-    if (fstat(fileno(f),&statBuf)<0)
-        {
-        fclose(f);
-        return NULL;
-        }
-    long filelen = statBuf.st_size;
-
-    //printf("length:%d\n",filelen);
-    XMLCh *charbuf = new XMLCh[filelen + 1];
-    for (XMLCh *p=charbuf ; !feof(f) ; p++)
-        {
-        *p = (XMLCh)fgetc(f);
-        }
-    fclose(f);
-    charbuf[filelen] = '\0';
-
-
-    /*
-    printf("nrbytes:%d\n",wc_count);
-    printf("buf:%ls\n======\n",charbuf);
-    */
-    Element *n = parse(charbuf, 0, filelen);
-    delete[] charbuf;
-    return n;
-}
-
-//########################################################################
-//########################################################################
-//##  E N D    X M L
-//########################################################################
-//########################################################################
-
-
-
-
-
-
-//########################################################################
-//########################################################################
-//##  U R I
-//########################################################################
-//########################################################################
-
-//This would normally be a call to a UNICODE function
-#define isLetter(x) isalpha(x)
-
-/**
- *  A class that implements the W3C URI resource reference.
- */
-class URI
-{
-public:
-
-    typedef enum
-        {
-        SCHEME_NONE =0,
-        SCHEME_DATA,
-        SCHEME_HTTP,
-        SCHEME_HTTPS,
-        SCHEME_FTP,
-        SCHEME_FILE,
-        SCHEME_LDAP,
-        SCHEME_MAILTO,
-        SCHEME_NEWS,
-        SCHEME_TELNET
-        } SchemeTypes;
-
-    /**
-     *
-     */
-    URI()
-        {
-        init();
-        }
-
-    /**
-     *
-     */
-    URI(const String &str)
-        {
-        init();
-        parse(str);
-        }
-
-
-    /**
-     *
-     */
-    URI(const char *str)
-        {
-        init();
-        String domStr = str;
-        parse(domStr);
-        }
-
-
-    /**
-     *
-     */
-    URI(const URI &other)
-        {
-        init();
-        assign(other);
-        }
-
-
-    /**
-     *
-     */
-    URI &operator=(const URI &other)
-        {
-        init();
-        assign(other);
-        return *this;
-        }
-
-
-    /**
-     *
-     */
-    virtual ~URI()
-        {}
-
-
-
-    /**
-     *
-     */
-    virtual bool parse(const String &str);
-
-    /**
-     *
-     */
-    virtual String toString() const;
-
-    /**
-     *
-     */
-    virtual int getScheme() const;
-
-    /**
-     *
-     */
-    virtual String getSchemeStr() const;
-
-    /**
-     *
-     */
-    virtual String getAuthority() const;
-
-    /**
-     *  Same as getAuthority, but if the port has been specified
-     *  as host:port , the port will not be included
-     */
-    virtual String getHost() const;
-
-    /**
-     *
-     */
-    virtual int getPort() const;
-
-    /**
-     *
-     */
-    virtual String getPath() const;
-
-    /**
-     *
-     */
-    virtual String getNativePath() const;
-
-    /**
-     *
-     */
-    virtual bool isAbsolute() const;
-
-    /**
-     *
-     */
-    virtual bool isOpaque() const;
-
-    /**
-     *
-     */
-    virtual String getQuery() const;
-
-    /**
-     *
-     */
-    virtual String getFragment() const;
-
-    /**
-     *
-     */
-    virtual URI resolve(const URI &other) const;
-
-    /**
-     *
-     */
-    virtual void normalize();
-
-private:
-
-    /**
-     *
-     */
-    void init()
-        {
-        parsebuf  = NULL;
-        parselen  = 0;
-        scheme    = SCHEME_NONE;
-        schemeStr = "";
-        port      = 0;
-        authority = "";
-        path      = "";
-        absolute  = false;
-        opaque    = false;
-        query     = "";
-        fragment  = "";
-        }
-
-
-    /**
-     *
-     */
-    void assign(const URI &other)
-        {
-        scheme    = other.scheme;
-        schemeStr = other.schemeStr;
-        authority = other.authority;
-        port      = other.port;
-        path      = other.path;
-        absolute  = other.absolute;
-        opaque    = other.opaque;
-        query     = other.query;
-        fragment  = other.fragment;
-        }
-
-    int scheme;
-
-    String schemeStr;
-
-    String authority;
-
-    bool portSpecified;
-
-    int port;
-
-    String path;
-
-    bool absolute;
-
-    bool opaque;
-
-    String query;
-
-    String fragment;
-
-    void error(const char *fmt, ...);
-
-    void trace(const char *fmt, ...);
-
-
-    int peek(int p);
-
-    int match(int p, const char *key);
-
-    int parseScheme(int p);
-
-    int parseHierarchicalPart(int p0);
-
-    int parseQuery(int p0);
-
-    int parseFragment(int p0);
-
-    int parse(int p);
-
-    char *parsebuf;
-
-    int parselen;
-
-};
-
-
-
-typedef struct
-{
-    int         ival;
-    const char *sval;
-    int         port;
-} LookupEntry;
-
-LookupEntry schemes[] =
-{
-    { URI::SCHEME_DATA,   "data:",    0 },
-    { URI::SCHEME_HTTP,   "http:",   80 },
-    { URI::SCHEME_HTTPS,  "https:", 443 },
-    { URI::SCHEME_FTP,    "ftp",     12 },
-    { URI::SCHEME_FILE,   "file:",    0 },
-    { URI::SCHEME_LDAP,   "ldap:",  123 },
-    { URI::SCHEME_MAILTO, "mailto:", 25 },
-    { URI::SCHEME_NEWS,   "news:",  117 },
-    { URI::SCHEME_TELNET, "telnet:", 23 },
-    { 0,                  NULL,       0 }
-};
-
-
-String URI::toString() const
-{
-    String str = schemeStr;
-    if (authority.size() > 0)
-        {
-        str.append("//");
-        str.append(authority);
-        }
-    str.append(path);
-    if (query.size() > 0)
-        {
-        str.append("?");
-        str.append(query);
-        }
-    if (fragment.size() > 0)
-        {
-        str.append("#");
-        str.append(fragment);
-        }
-    return str;
-}
-
-
-int URI::getScheme() const
-{
-    return scheme;
-}
-
-String URI::getSchemeStr() const
-{
-    return schemeStr;
-}
-
-
-String URI::getAuthority() const
-{
-    String ret = authority;
-    if (portSpecified && port>=0)
-        {
-        char buf[7];
-        snprintf(buf, 6, ":%6d", port);
-        ret.append(buf);
-        }
-    return ret;
-}
-
-String URI::getHost() const
-{
-    return authority;
-}
-
-int URI::getPort() const
-{
-    return port;
-}
-
-
-String URI::getPath() const
-{
-    return path;
-}
-
-String URI::getNativePath() const
-{
-    String npath;
-#ifdef __WIN32__
-    std::size_t firstChar = 0;
-    if (path.size() >= 3)
-        {
-        if (path[0] == '/' &&
-            isLetter(path[1]) &&
-            path[2] == ':')
-            firstChar++;
-         }
-    for (std::size_t i=firstChar ; i  0 &&
-        other.path.size()      == 0 &&
-        other.scheme           == SCHEME_NONE &&
-        other.authority.size() == 0 &&
-        other.query.size()     == 0 )
-        {
-        URI fragUri = *this;
-        fragUri.fragment = other.fragment;
-        return fragUri;
-        }
-
-    //## 3 http://www.ietf.org/rfc/rfc2396.txt, section 5.2
-    URI newUri;
-    //# 3.1
-    newUri.scheme    = scheme;
-    newUri.schemeStr = schemeStr;
-    newUri.query     = other.query;
-    newUri.fragment  = other.fragment;
-    if (other.authority.size() > 0)
-        {
-        //# 3.2
-        if (absolute || other.absolute)
-            newUri.absolute = true;
-        newUri.authority = other.authority;
-        newUri.port      = other.port;//part of authority
-        newUri.path      = other.path;
-        }
-    else
-        {
-        //# 3.3
-        if (other.absolute)
-            {
-            newUri.absolute = true;
-            newUri.path     = other.path;
-            }
-        else
-            {
-            std::size_t pos = path.find_last_of('/');
-            if (pos != path.npos)
-                {
-                String tpath = path.substr(0, pos+1);
-                tpath.append(other.path);
-                newUri.path = tpath;
-                }
-            else
-                newUri.path = other.path;
-            }
-        }
-
-    newUri.normalize();
-    return newUri;
-}
-
-
-
-/**
- *  This follows the Java URI algorithm:
- *   1. All "." segments are removed.
- *   2. If a ".." segment is preceded by a non-".." segment
- *          then both of these segments are removed. This step
- *          is repeated until it is no longer applicable.
- *   3. If the path is relative, and if its first segment
- *          contains a colon character (':'), then a "." segment
- *          is prepended. This prevents a relative URI with a path
- *          such as "a:b/c/d" from later being re-parsed as an
- *          opaque URI with a scheme of "a" and a scheme-specific
- *          part of "b/c/d". (Deviation from RFC 2396)
- */
-void URI::normalize()
-{
-    std::vector segments;
-
-    //## Collect segments
-    if (path.size()<2)
-        return;
-    bool abs = false;
-    std::size_t pos=0;
-    if (path[0]=='/')
-        {
-        abs = true;
-        pos++;
-        }
-    while (pos < path.size())
-        {
-        std::size_t pos2 = path.find('/', pos);
-        if (pos2==path.npos)
-            {
-            String seg = path.substr(pos);
-            //printf("last segment:%s\n", seg.c_str());
-            segments.push_back(seg);
-            break;
-            }
-        if (pos2>pos)
-            {
-            String seg = path.substr(pos, pos2-pos);
-            //printf("segment:%s\n", seg.c_str());
-            segments.push_back(seg);
-            }
-        pos = pos2;
-        pos++;
-        }
-
-    //## Clean up (normalize) segments
-    bool edited = false;
-    std::vector::iterator iter;
-    for (iter=segments.begin() ; iter!=segments.end() ; )
-        {
-        String s = *iter;
-        if (s == ".")
-            {
-            iter = segments.erase(iter);
-            edited = true;
-            }
-        else if (s == ".." &&
-                 iter != segments.begin() &&
-                 *(iter-1) != "..")
-            {
-            iter--; //back up, then erase two entries
-            iter = segments.erase(iter);
-            iter = segments.erase(iter);
-            edited = true;
-            }
-        else
-            iter++;
-        }
-
-    //## Rebuild path, if necessary
-    if (edited)
-        {
-        path.clear();
-        if (abs)
-            {
-            path.append("/");
-            }
-        std::vector::iterator iter;
-        for (iter=segments.begin() ; iter!=segments.end() ; iter++)
-            {
-            if (iter != segments.begin())
-                path.append("/");
-            path.append(*iter);
-            }
-        }
-
-}
-
-
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-void URI::error(const char *fmt, ...)
-{
-    va_list args;
-    fprintf(stderr, "URI error: ");
-    va_start(args, fmt);
-    vfprintf(stderr, fmt, args);
-    va_end(args);
-    fprintf(stderr, "\n");
-}
-
-void URI::trace(const char *fmt, ...)
-{
-    va_list args;
-    fprintf(stdout, "URI: ");
-    va_start(args, fmt);
-    vfprintf(stdout, fmt, args);
-    va_end(args);
-    fprintf(stdout, "\n");
-}
-
-
-
-
-//#########################################################################
-//# P A R S I N G
-//#########################################################################
-
-
-
-int URI::peek(int p)
-{
-    if (p<0 || p>=parselen)
-        return -1;
-    return parsebuf[p];
-}
-
-
-
-int URI::match(int p0, const char *key)
-{
-    int p = p0;
-    while (p < parselen)
-        {
-        if (*key == '\0')
-            return p;
-        else if (*key != parsebuf[p])
-            break;
-        p++; key++;
-        }
-    return p0;
-}
-
-//#########################################################################
-//#  Parsing is performed according to:
-//#  http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#components
-//#########################################################################
-
-int URI::parseScheme(int p0)
-{
-    int p = p0;
-    for (LookupEntry *entry = schemes; entry->sval ; entry++)
-        {
-        int p2 = match(p, entry->sval);
-        if (p2 > p)
-            {
-            schemeStr = entry->sval;
-            scheme    = entry->ival;
-            port      = entry->port;
-            p = p2;
-            return p;
-            }
-        }
-
-    return p;
-}
-
-
-int URI::parseHierarchicalPart(int p0)
-{
-    int p = p0;
-    int ch;
-
-    //# Authority field (host and port, for example)
-    int p2 = match(p, "//");
-    if (p2 > p)
-        {
-        p = p2;
-        portSpecified = false;
-        String portStr;
-        while (p < parselen)
-            {
-            ch = peek(p);
-            if (ch == '/')
-                break;
-            else if (ch == ':')
-                portSpecified = true;
-            else if (portSpecified)
-                portStr.push_back((XMLCh)ch);
-            else
-                authority.push_back((XMLCh)ch);
-            p++;
-            }
-        if (portStr.size() > 0)
-            {
-            char *pstr = (char *)portStr.c_str();
-            char *endStr;
-            long val = strtol(pstr, &endStr, 10);
-            if (endStr > pstr) //successful parse?
-                port = val;
-            }
-        }
-
-    //# Are we absolute?
-    ch = peek(p);
-    if (isLetter(ch) && peek(p+1)==':')
-        {
-        absolute = true;
-        path.push_back((XMLCh)'/');
-        }
-    else if (ch == '/')
-        {
-        absolute = true;
-        if (p>p0) //in other words, if '/' is not the first char
-            opaque = true;
-        path.push_back((XMLCh)ch);
-        p++;
-        }
-
-    while (p < parselen)
-        {
-        ch = peek(p);
-        if (ch == '?' || ch == '#')
-            break;
-        path.push_back((XMLCh)ch);
-        p++;
-        }
-
-    return p;
-}
-
-int URI::parseQuery(int p0)
-{
-    int p = p0;
-    int ch = peek(p);
-    if (ch != '?')
-        return p0;
-
-    p++;
-    while (p < parselen)
-        {
-        ch = peek(p);
-        if (ch == '#')
-            break;
-        query.push_back((XMLCh)ch);
-        p++;
-        }
-
-
-    return p;
-}
-
-int URI::parseFragment(int p0)
-{
-
-    int p = p0;
-    int ch = peek(p);
-    if (ch != '#')
-        return p0;
-
-    p++;
-    while (p < parselen)
-        {
-        ch = peek(p);
-        if (ch == '?')
-            break;
-        fragment.push_back((XMLCh)ch);
-        p++;
-        }
-
-
-    return p;
-}
-
-
-int URI::parse(int p0)
-{
-
-    int p = p0;
-
-    int p2 = parseScheme(p);
-    if (p2 < 0)
-        {
-        error("Scheme");
-        return -1;
-        }
-    p = p2;
-
-
-    p2 = parseHierarchicalPart(p);
-    if (p2 < 0)
-        {
-        error("Hierarchical part");
-        return -1;
-        }
-    p = p2;
-
-    p2 = parseQuery(p);
-    if (p2 < 0)
-        {
-        error("Query");
-        return -1;
-        }
-    p = p2;
-
-
-    p2 = parseFragment(p);
-    if (p2 < 0)
-        {
-        error("Fragment");
-        return -1;
-        }
-    p = p2;
-
-    return p;
-
-}
-
-
-
-bool URI::parse(const String &str)
-{
-    init();
-    
-    parselen = str.size();
-
-    String tmp;
-    for (std::size_t i=0 ; i statCacheType;
-static statCacheType statCache;
-static int cachedStat(const String &f, struct stat *s) {
-    //printf("Stat path: %s\n", f.c_str());
-    std::pair result = statCache.insert(statCacheType::value_type(f, StatResult()));
-    if (result.second) {
-        result.first->second.result = stat(f.c_str(), &(result.first->second.statInfo));
-    }
-    *s = result.first->second.statInfo;
-    return result.first->second.result;
-}
-static void removeFromStatCache(const String f) {
-    //printf("Removing from cache: %s\n", f.c_str());
-    statCache.erase(f);
-}
-
-//########################################################################
-//# Dir cache to speed up dir requests
-//########################################################################
-/*struct DirListing {
-    bool available;
-    std::vector files;
-    std::vector dirs;
-};
-typedef std::map dirCacheType;
-static dirCacheType dirCache;
-static const DirListing &cachedDir(String fullDir)
-{
-    String dirNative = getNativePath(fullDir);
-    std::pair result = dirCache.insert(dirCacheType::value_type(dirNative, DirListing()));
-    if (result.second) {
-        DIR *dir = opendir(dirNative.c_str());
-        if (!dir)
-            {
-            error("Could not open directory %s : %s",
-                dirNative.c_str(), strerror(errno));
-            result.first->second.available = false;
-            }
-        else
-            {
-            result.first->second.available = true;
-            while (true)
-                {
-                struct dirent *de = readdir(dir);
-                if (!de)
-                    break;
-
-                //Get the directory member name
-                String s = de->d_name;
-                if (s.size() == 0 || s[0] == '.')
-                    continue;
-                String childName;
-                if (dirName.size()>0)
-                    {
-                    childName.append(dirName);
-                    childName.append("/");
-                    }
-                childName.append(s);
-                String fullChild = baseDir;
-                fullChild.append("/");
-                fullChild.append(childName);
-                
-                if (isDirectory(fullChild))
-                    {
-                    //trace("directory: %s", childName.c_str());
-                    if (!listFiles(baseDir, childName, res))
-                        return false;
-                    continue;
-                    }
-                else if (!isRegularFile(fullChild))
-                    {
-                    error("unknown file:%s", childName.c_str());
-                    return false;
-                    }
-
-            //all done!
-                res.push_back(childName);
-
-                }
-            closedir(dir);
-            }
-    }
-    return result.first->second;
-}*/
-
-//########################################################################
-//# F I L E S E T
-//########################################################################
-/**
- * This is the descriptor for a  item
- */
-class FileSet
-{
-public:
-
-    /**
-     *
-     */
-    FileSet()
-        {}
-
-    /**
-     *
-     */
-    FileSet(const FileSet &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    FileSet &operator=(const FileSet &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~FileSet()
-        {}
-
-    /**
-     *
-     */
-    String getDirectory() const
-        { return directory; }
-        
-    /**
-     *
-     */
-    void setDirectory(const String &val)
-        { directory = val; }
-
-    /**
-     *
-     */
-    void setFiles(const std::vector &val)
-        { files = val; }
-
-    /**
-     *
-     */
-    std::vector getFiles() const
-        { return files; }
-        
-    /**
-     *
-     */
-    void setIncludes(const std::vector &val)
-        { includes = val; }
-
-    /**
-     *
-     */
-    std::vector getIncludes() const
-        { return includes; }
-        
-    /**
-     *
-     */
-    void setExcludes(const std::vector &val)
-        { excludes = val; }
-
-    /**
-     *
-     */
-    std::vector getExcludes() const
-        { return excludes; }
-        
-    /**
-     *
-     */
-    std::size_t size() const
-        { return files.size(); }
-        
-    /**
-     *
-     */
-    String operator[](int index) const
-        { return files[index]; }
-        
-    /**
-     *
-     */
-    void clear()
-        {
-        directory = "";
-        files.clear();
-        includes.clear();
-        excludes.clear();
-        }
-        
-
-private:
-
-    void assign(const FileSet &other)
-        {
-        directory = other.directory;
-        files     = other.files;
-        includes  = other.includes;
-        excludes  = other.excludes;
-        }
-
-    String directory;
-    std::vector files;
-    std::vector includes;
-    std::vector excludes;
-};
-
-
-//########################################################################
-//# F I L E L I S T
-//########################################################################
-/**
- * This is a simpler, explicitly-named list of files
- */
-class FileList
-{
-public:
-
-    /**
-     *
-     */
-    FileList()
-        {}
-
-    /**
-     *
-     */
-    FileList(const FileList &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    FileList &operator=(const FileList &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~FileList()
-        {}
-
-    /**
-     *
-     */
-    String getDirectory()
-        { return directory; }
-        
-    /**
-     *
-     */
-    void setDirectory(const String &val)
-        { directory = val; }
-
-    /**
-     *
-     */
-    void setFiles(const std::vector &val)
-        { files = val; }
-
-    /**
-     *
-     */
-    std::vector getFiles()
-        { return files; }
-        
-    /**
-     *
-     */
-    std::size_t size()
-        { return files.size(); }
-        
-    /**
-     *
-     */
-    String operator[](int index)
-        { return files[index]; }
-        
-    /**
-     *
-     */
-    void clear()
-        {
-        directory = "";
-        files.clear();
-        }
-        
-
-private:
-
-    void assign(const FileList &other)
-        {
-        directory = other.directory;
-        files     = other.files;
-        }
-
-    String directory;
-    std::vector files;
-};
-
-
-
-
-//########################################################################
-//# M A K E    B A S E
-//########################################################################
-/**
- * Base class for all classes in this file
- */
-class MakeBase
-{
-public:
-
-    MakeBase()
-        { line = 0; }
-    virtual ~MakeBase()
-        {}
-
-    /**
-     *     Return the URI of the file associated with this object 
-     */     
-    URI getURI()
-        { return uri; }
-
-    /**
-     * Set the uri to the given string
-     */
-    void setURI(const String &uristr)
-        { uri.parse(uristr); }
-
-    /**
-     * Set the number of threads that can be used
-     */
-    void setNumThreads(const int num)
-        { numThreads = num; }
-
-    /**
-     *  Resolve another path relative to this one
-     */
-    String resolve(const String &otherPath);
-
-    /**
-     * replace variable refs like ${a} with their values
-     * Assume that the string has already been syntax validated
-     */
-    String eval(const String &s, const String &defaultVal);
-
-    /**
-     * replace variable refs like ${a} with their values
-     * return true or false
-     * Assume that the string has already been syntax validated
-     */
-    bool evalBool(const String &s, bool defaultVal);
-
-    /**
-     * replace variable refs like ${a} with their values
-     * return the value parsed as an integer
-     * Assume that the string has already been syntax validated
-     */
-    int evalInt(const String &s, int defaultVal);
-
-    /**
-     *  Get an element attribute, performing substitutions if necessary
-     */
-    bool getAttribute(Element *elem, const String &name, String &result);
-
-    /**
-     * Get an element value, performing substitutions if necessary
-     */
-    bool getValue(Element *elem, String &result);
-    
-    /**
-     * Set the current line number in the file
-     */         
-    void setLine(int val)
-        { line = val; }
-        
-    /**
-     * Get the current line number in the file
-     */         
-    int getLine()
-        { return line; }
-
-
-    /**
-     * Set a property to a given value
-     */
-    virtual void setProperty(const String &name, const String &val)
-        {
-        properties[name] = val;
-        }
-
-    /**
-     * Return a named property is found, else a null string
-     */
-    virtual String getProperty(const String &name)
-        {
-        String val;
-        std::map::iterator iter = properties.find(name);
-        if (iter != properties.end())
-            val = iter->second;
-        String sval;
-        if (!getSubstitutions(val, sval))
-            return String();
-        return sval;
-        }
-
-    /**
-     * Return true if a named property is found, else false
-     */
-    virtual bool hasProperty(const String &name)
-        {
-        std::map::iterator iter = properties.find(name);
-        if (iter == properties.end())
-            return false;
-        return true;
-        }
-
-
-protected:
-
-    /**
-     *    The path to the file associated with this object
-     */     
-    URI uri;
-
-    /**
-     *    The number of threads that can be used
-     */     
-    static int numThreads;
-
-    /**
-     *    If this prefix is seen in a substitution, use an environment
-     *    variable.
-     *             example:  
-     *             ${env.JAVA_HOME}
-     */
-    String envPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    pkg-config 'all' query
-     *             example:  
-     *             ${pc.gtkmm}
-     */
-    String pcPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    pkg-config 'cflags' query
-     *             example:  
-     *             ${pcc.gtkmm}
-     */
-    String pccPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    pkg-config 'libs' query
-     *             example:  
-     *             ${pcl.gtkmm}
-     */
-    String pclPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    Bazaar "bzr revno" query
-     *             example:   ???
-     *             ${bzr.Revision}
-     */
-    String bzrPrefix;
-
-
-
-
-
-    /**
-     *  Print a printf()-like formatted error message
-     */
-    void error(const char *fmt, ...);
-
-    /**
-     *  Print a printf()-like formatted trace message
-     */
-    void status(const char *fmt, ...);
-
-    /**
-     *  Show target status
-     */
-    void targetstatus(const char *fmt, ...);
-
-    /**
-     *  Print a printf()-like formatted trace message
-     */
-    void trace(const char *fmt, ...);
-
-    /**
-     *  Check if a given string matches a given regex pattern
-     */
-    bool regexMatch(const String &str, const String &pattern);
-
-    /**
-     *
-     */
-    String getSuffix(const String &fname);
-
-    /**
-     * Break up a string into substrings delimited the characters
-     * in delimiters.  Null-length substrings are ignored
-     */  
-    std::vector tokenize(const String &val,
-                          const String &delimiters);
-
-    /**
-     *  replace runs of whitespace with a space
-     */
-    String strip(const String &s);
-
-    /**
-     *  remove leading whitespace from each line
-     */
-    String leftJustify(const String &s);
-
-    /**
-     *  remove leading and trailing whitespace from string
-     */
-    String trim(const String &s);
-
-    /**
-     *  Return a lower case version of the given string
-     */
-    String toLower(const String &s);
-
-    /**
-     * Return the native format of the canonical
-     * path which we store
-     */
-    String getNativePath(const String &path);
-
-    /**
-     * Execute a shell command.  Outbuf is a ref to a string
-     * to catch the result.     
-     */         
-    bool executeCommand(const String &call,
-                        const String &inbuf,
-                        String &outbuf,
-                        String &errbuf);
-    /**
-     * List all directories in a given base and starting directory
-     * It is usually called like:
-     *        bool ret = listDirectories("src", "", result);    
-     */         
-    bool listDirectories(const String &baseName,
-                         const String &dirname,
-                         std::vector &res);
-
-    /**
-     * Find all files in the named directory 
-     */         
-    bool listFiles(const String &baseName,
-                   const String &dirname,
-                   std::vector &result);
-
-    /**
-     * Perform a listing for a fileset 
-     */         
-    bool listFiles(MakeBase &propRef, FileSet &fileSet);
-
-    /**
-     * Parse a 
-     */  
-    bool parsePatternSet(Element *elem,
-                       MakeBase &propRef,
-                       std::vector &includes,
-                       std::vector &excludes);
-
-    /**
-     * Parse a  entry, and determine which files
-     * should be included
-     */  
-    bool parseFileSet(Element *elem,
-                    MakeBase &propRef,
-                    FileSet &fileSet);
-    /**
-     * Parse a  entry
-     */  
-    bool parseFileList(Element *elem,
-                    MakeBase &propRef,
-                    FileList &fileList);
-
-    /**
-     * Return this object's property list
-     */
-    virtual std::map &getProperties()
-        { return properties; }
-
-
-    std::map properties;
-
-    /**
-     * Create a directory, making intermediate dirs
-     * if necessary
-     */                  
-    bool createDirectory(const String &dirname);
-
-    /**
-     * Delete a directory and its children if desired
-     */
-    bool removeDirectory(const String &dirName);
-
-    /**
-     * Copy a file from one name to another. Perform only if needed
-     */ 
-    bool copyFile(const String &srcFile, const String &destFile);
-
-    /**
-     * Delete a file
-     */ 
-    bool removeFile(const String &file);
-
-    /**
-     * Tests if the file exists
-     */ 
-    bool fileExists(const String &fileName);
-
-    /**
-     * Tests if the file exists and is a regular file
-     */ 
-    bool isRegularFile(const String &fileName);
-
-    /**
-     * Tests if the file exists and is a directory
-     */ 
-    bool isDirectory(const String &fileName);
-
-    /**
-     * Tests is the modification date of fileA is newer than fileB
-     */ 
-    bool isNewerThan(const String &fileA, const String &fileB);
-
-private:
-
-    bool pkgConfigRecursive(const String packageName,
-                            const String &path, 
-                            const String &prefix, 
-                            int query,
-                            String &result,
-                            std::set &deplist);
-
-    /**
-     * utility method to query for "all", "cflags", or "libs" for this package and its
-     * dependencies.  0, 1, 2
-     */          
-    bool pkgConfigQuery(const String &packageName, int query, String &result);
-
-    /**
-     * replace a variable ref like ${a} with a value
-     */
-    bool lookupProperty(const String &s, String &result);
-    
-    /**
-     * called by getSubstitutions().  This is in case a looked-up string
-     * has substitutions also.     
-     */
-    bool getSubstitutionsRecursive(const String &s, String &result, int depth);
-
-    /**
-     * replace variable refs in a string like ${a} with their values
-     */
-    bool getSubstitutions(const String &s, String &result);
-
-    int line;
-
-
-};
-
-int MakeBase::numThreads = 1;
-
-/**
- * Define the pkg-config class here, since it will be used in MakeBase method
- * implementations. 
- */
-class PkgConfig : public MakeBase
-{
-
-public:
-
-    /**
-     *
-     */
-    PkgConfig()
-        {
-         path   = ".";
-         prefix = "/target";
-         init();
-         }
-
-    /**
-     *
-     */
-    PkgConfig(const PkgConfig &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    PkgConfig &operator=(const PkgConfig &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~PkgConfig()
-        { }
-
-    /**
-     *
-     */
-    virtual String getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual String getPath()
-        { return path; }
-
-    /**
-     *
-     */
-    virtual void setPath(const String &val)
-        { path = val; }
-
-    /**
-     *
-     */
-    virtual String getPrefix()
-        { return prefix; }
-
-    /**
-     *  Allow the user to override the prefix in the file
-     */
-    virtual void setPrefix(const String &val)
-        { prefix = val; }
-
-    /**
-     *
-     */
-    virtual String getDescription()
-        { return description; }
-
-    /**
-     *
-     */
-    virtual String getCflags()
-        { return cflags; }
-
-    /**
-     *
-     */
-    virtual String getLibs()
-        { return libs; }
-
-    /**
-     *
-     */
-    virtual String getAll()
-        {
-         String ret = cflags;
-         ret.append(" ");
-         ret.append(libs);
-         return ret;
-        }
-
-    /**
-     *
-     */
-    virtual String getVersion()
-        { return version; }
-
-    /**
-     *
-     */
-    virtual int getMajorVersion()
-        { return majorVersion; }
-
-    /**
-     *
-     */
-    virtual int getMinorVersion()
-        { return minorVersion; }
-
-    /**
-     *
-     */
-    virtual int getMicroVersion()
-        { return microVersion; }
-
-    /**
-     *
-     */
-    virtual std::map &getAttributes()
-        { return attrs; }
-
-    /**
-     *
-     */
-    virtual std::vector &getRequireList()
-        { return requireList; }
-
-    /**
-     *  Read a file for its details
-     */         
-    virtual bool readFile(const String &fileName);
-
-    /**
-     *  Read a file for its details
-     */         
-    virtual bool query(const String &name);
-
-private:
-
-    void init()
-        {
-        //do not set path and prefix here
-        name         = "";
-        description  = "";
-        cflags       = "";
-        libs         = "";
-        requires     = "";
-        version      = "";
-        majorVersion = 0;
-        minorVersion = 0;
-        microVersion = 0;
-        fileName     = "";
-        attrs.clear();
-        requireList.clear();
-        }
-
-    void assign(const PkgConfig &other)
-        {
-        name         = other.name;
-        path         = other.path;
-        prefix       = other.prefix;
-        description  = other.description;
-        cflags       = other.cflags;
-        libs         = other.libs;
-        requires     = other.requires;
-        version      = other.version;
-        majorVersion = other.majorVersion;
-        minorVersion = other.minorVersion;
-        microVersion = other.microVersion;
-        fileName     = other.fileName;
-        attrs        = other.attrs;
-        requireList  = other.requireList;
-        }
-
-
-
-    int get(int pos);
-
-    int skipwhite(int pos);
-
-    int getword(int pos, String &ret);
-
-    /**
-     * Very important
-     */         
-    bool parseRequires();
-
-    void parseVersion();
-
-    bool parseLine(const String &lineBuf);
-
-    bool parse(const String &buf);
-
-    void dumpAttrs();
-
-    String name;
-
-    String path;
-
-    String prefix;
-
-    String description;
-
-    String cflags;
-
-    String libs;
-
-    String requires;
-
-    String version;
-
-    int majorVersion;
-
-    int minorVersion;
-
-    int microVersion;
-
-    String fileName;
-
-    std::map attrs;
-
-    std::vector requireList;
-
-    char *parsebuf;
-    int parselen;
-};
-
-/**
- * Execute the "bzr revno" command and return the result.
- * This is a simple, small class.
- */
-class BzrRevno : public MakeBase
-{
-public:
-
-    /**
-     * Safe way. Execute "bzr revno" and return the result.
-     * Safe from changes in format.
-     */
-    bool query(String &res)
-    {
-        String cmd = "bzr revno";
-
-        String outString, errString;
-        bool ret = executeCommand(cmd.c_str(), "", outString, errString);
-        if (!ret)
-            {
-            error("error executing '%s': %s", cmd.c_str(), errString.c_str());
-            return false;
-            }
-        res = outString;
-        return true;
-    } 
-};
-
-/**
- * Execute the "svn info" command and parse the result.
- * This is a simple, small class. Define here, because it
- * is used by MakeBase implementation methods. 
- */
-class SvnInfo : public MakeBase
-{
-public:
-
-#if 0
-    /**
-     * Safe way. Execute "svn info --xml" and parse the result.  Search for
-     * elements/attributes.  Safe from changes in format.
-     */
-    bool query(const String &name, String &res)
-    {
-        String cmd = "svn info --xml";
-    
-        String outString, errString;
-        bool ret = executeCommand(cmd.c_str(), "", outString, errString);
-        if (!ret)
-            {
-            error("error executing '%s': %s", cmd.c_str(), errString.c_str());
-            return false;
-            }
-        Parser parser;
-        Element *elem = parser.parse(outString); 
-        if (!elem)
-            {
-            error("error parsing 'svn info' xml result: %s", outString.c_str());
-            return false;
-            }
-        
-        res = elem->getTagValue(name);
-        if (res.size()==0)
-            {
-            res = elem->getTagAttribute("entry", name);
-            }
-        return true;
-    } 
-#else
-
-
-    /**
-     * Universal way.  Parse the file directly.  Not so safe from
-     * changes in format.
-     */
-    bool query(const String &name, String &res)
-    {
-        String fileName = resolve(".svn/entries");
-        String nFileName = getNativePath(fileName);
-        
-        std::map properties;
-        
-        FILE *f = fopen(nFileName.c_str(), "r");
-        if (!f)
-            {
-            error("could not open SVN 'entries' file");
-            return false;
-            }
-
-        const char *fieldNames[] =
-            {
-            "format-nbr",
-            "name",
-            "kind",
-            "revision",
-            "url",
-            "repos",
-            "schedule",
-            "text-time",
-            "checksum",
-            "committed-date",
-            "committed-rev",
-            "last-author",
-            "has-props",
-            "has-prop-mods",
-            "cachable-props",
-            };
-
-        for (int i=0 ; i<15 ; i++)
-            {
-            inbuf[0] = '\0';
-            if (feof(f) || !fgets(inbuf, 255, f))
-                break;
-            properties[fieldNames[i]] = trim(inbuf);
-            }
-        fclose(f);
-        
-        res = properties[name];
-        
-        return true;
-    } 
-    
-private:
-
-    char inbuf[256];
-
-#endif
-
-};
-
-
-
-
-
-
-/**
- *  Print a printf()-like formatted error message
- */
-void MakeBase::error(const char *fmt, ...)
-{
-    va_list args;
-    va_start(args,fmt);
-    fprintf(stderr, "Make error line %d: ", line);
-    vfprintf(stderr, fmt, args);
-    fprintf(stderr, "\n");
-    va_end(args) ;
-}
-
-
-
-/**
- *  Print a printf()-like formatted trace message
- */
-void MakeBase::status(const char *fmt, ...)
-{
-    va_list args;
-    //fprintf(stdout, " ");
-    va_start(args,fmt);
-    vfprintf(stdout, fmt, args);
-    va_end(args);
-    fprintf(stdout, "\n");
-    fflush(stdout);
-}
-
-
-/**
- *  Print a printf()-like formatted trace message
- */
-void MakeBase::trace(const char *fmt, ...)
-{
-    va_list args;
-    fprintf(stdout, "Make: ");
-    va_start(args,fmt);
-    vfprintf(stdout, fmt, args);
-    va_end(args) ;
-    fprintf(stdout, "\n");
-    fflush(stdout);
-}
-
-
-
-/**
- *  Resolve another path relative to this one
- */
-String MakeBase::resolve(const String &otherPath)
-{
-    URI otherURI(otherPath);
-    URI fullURI = uri.resolve(otherURI);
-    String ret = fullURI.toString();
-    return ret;
-}
-
-
-
-/**
- *  Check if a given string matches a given regex pattern
- */
-bool MakeBase::regexMatch(const String &str, const String &pattern)
-{
-    int res = slre_match(pattern.c_str(), str.c_str(), str.length(), NULL, 0, SLRE_IGNORE_CASE);
-    
-    bool ret = true;
-    if (res < 0)
-        {
-        ret = false;
-        
-        // error cases
-        if (res < -1)
-            {
-            String err;
-            switch(res)
-                {
-                    case SLRE_UNEXPECTED_QUANTIFIER:
-                        err = "unexpected quantifier"; break;
-                    case SLRE_UNBALANCED_BRACKETS:
-                        err = "unbalanced brackets"; break;
-                    case SLRE_INTERNAL_ERROR:
-                        err = "internal error"; break;
-                    case SLRE_INVALID_CHARACTER_SET:
-                        err = "invald character set"; break;
-                    case SLRE_INVALID_METACHARACTER:
-                        err = "invalid meta character"; break;
-                    default:
-                        err = "unknown error"; break;
-                }
-            error("regex failure (%s) while parsing [%s]!\n", err.c_str(), pattern.c_str());
-            }
-        }
-
-    return ret;
-}
-
-/**
- *  Return the suffix, if any, of a file name
- */
-String MakeBase::getSuffix(const String &fname)
-{
-    if (fname.size() < 2)
-        return "";
-    std::size_t pos = fname.find_last_of('.');
-    if (pos == fname.npos)
-        return "";
-    pos++;
-    String res = fname.substr(pos, fname.size()-pos);
-    //trace("suffix:%s", res.c_str()); 
-    return res;
-}
-
-
-
-/**
- * Break up a string into substrings delimited the characters
- * in delimiters.  Null-length substrings are ignored
- */  
-std::vector MakeBase::tokenize(const String &str,
-                                const String &delimiters)
-{
-
-    std::vector res;
-    char *del = (char *)delimiters.c_str();
-    String dmp;
-    for (std::size_t i=0 ; i 0)
-                {
-                res.push_back(dmp);
-                dmp.clear();
-                }
-            }
-        else
-            {
-            dmp.push_back(ch);
-            }
-        }
-    //Add tail
-    if (dmp.size() > 0)
-        {
-        res.push_back(dmp);
-        dmp.clear();
-        }
-
-    return res;
-}
-
-
-
-/**
- *  replace runs of whitespace with a single space
- */
-String MakeBase::strip(const String &s)
-{
-    int len = s.size();
-    String stripped;
-    for (int i = 0 ; i begin ; end--)
-        {
-        if (!isspace(s[end]))
-            break;
-        }
-    //trace("begin:%d  end:%d", begin, end);
-
-    String res = s.substr(begin, end-begin+1);
-    return res;
-}
-
-
-/**
- *  Return a lower case version of the given string
- */
-String MakeBase::toLower(const String &s)
-{
-    if (s.size()==0)
-        return s;
-
-    String ret;
-    for(std::size_t i=0; i= 3)
-        {
-        if (path[0] == '/' &&
-            isalpha(path[1]) &&
-            path[2] == ':')
-            firstChar++;
-        }
-    for (std::size_t i=firstChar ; i
-
-static String win32LastError()
-{
-
-    DWORD dw = GetLastError(); 
-
-    LPVOID str;
-    FormatMessage(
-        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
-        FORMAT_MESSAGE_FROM_SYSTEM,
-        NULL,
-        dw,
-        0,
-        (LPTSTR) &str,
-        0, NULL );
-    LPTSTR p = _tcschr((const char *)str, _T('\r'));
-    if(p != NULL)
-        { // lose CRLF
-        *p = _T('\0');
-        }
-    String ret = (char *)str;
-    LocalFree(str);
-
-    return ret;
-}
-#endif
-
-
-
-
-#ifdef __WIN32__
-
-/**
- * Execute a system call, using pipes to send data to the
- * program's stdin,  and reading stdout and stderr.
- */
-bool MakeBase::executeCommand(const String &command,
-                              const String &inbuf,
-                              String &outbuf,
-                              String &errbuf)
-{
-
-//    status("============ cmd ============\n%s\n=============================",
-//                command.c_str());
-
-    outbuf.clear();
-    errbuf.clear();
-    
-
-    /*
-    I really hate having win32 code in this program, but the
-    read buffer in command.com and cmd.exe are just too small
-    for the large commands we need for compiling and linking.
-    */
-
-    bool ret = true;
-
-    //# Allocate a separate buffer for safety
-    char *paramBuf = new char[command.size() + 1];
-    if (!paramBuf)
-       {
-       error("executeCommand cannot allocate command buffer");
-       return false;
-       }
-    strcpy(paramBuf, (char *)command.c_str());
-   
-    //# Go to http://msdn2.microsoft.com/en-us/library/ms682499.aspx
-    //# to see how Win32 pipes work
-
-    //# Create pipes
-    SECURITY_ATTRIBUTES saAttr; 
-    saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); 
-    saAttr.bInheritHandle = TRUE; 
-    saAttr.lpSecurityDescriptor = NULL; 
-    HANDLE stdinRead,  stdinWrite;
-    HANDLE stdoutRead, stdoutWrite;
-    HANDLE stderrRead, stderrWrite;
-    if (!CreatePipe(&stdinRead, &stdinWrite, &saAttr, 0))
-        {
-        error("executeProgram: could not create pipe");
-        delete[] paramBuf;
-        return false;
-        } 
-    SetHandleInformation(stdinWrite, HANDLE_FLAG_INHERIT, 0);
-    if (!CreatePipe(&stdoutRead, &stdoutWrite, &saAttr, 0))
-        {
-        error("executeProgram: could not create pipe");
-        delete[] paramBuf;
-        return false;
-        } 
-    SetHandleInformation(stdoutRead, HANDLE_FLAG_INHERIT, 0);
-    if (&outbuf != &errbuf) {
-        if (!CreatePipe(&stderrRead, &stderrWrite, &saAttr, 0))
-            {
-            error("executeProgram: could not create pipe");
-            delete[] paramBuf;
-            return false;
-            } 
-        SetHandleInformation(stderrRead, HANDLE_FLAG_INHERIT, 0);
-    } else {
-        stderrRead = stdoutRead;
-        stderrWrite = stdoutWrite;
-    }
-
-    // Create the process
-    STARTUPINFO siStartupInfo;
-    PROCESS_INFORMATION piProcessInfo;
-    memset(&siStartupInfo, 0, sizeof(siStartupInfo));
-    memset(&piProcessInfo, 0, sizeof(piProcessInfo));
-    siStartupInfo.cb = sizeof(siStartupInfo);
-    siStartupInfo.hStdError   =  stderrWrite;
-    siStartupInfo.hStdOutput  =  stdoutWrite;
-    siStartupInfo.hStdInput   =  stdinRead;
-    siStartupInfo.dwFlags    |=  STARTF_USESTDHANDLES;
-   
-    if (!CreateProcess(NULL, paramBuf, NULL, NULL, true,
-                0, NULL, NULL, &siStartupInfo,
-                &piProcessInfo))
-        {
-        error("executeCommand : could not create process : %s",
-                    win32LastError().c_str());
-        ret = false;
-        }
-
-    delete[] paramBuf;
-
-    DWORD bytesWritten;
-    if (inbuf.size()>0 &&
-        !WriteFile(stdinWrite, inbuf.c_str(), inbuf.size(), 
-               &bytesWritten, NULL))
-        {
-        error("executeCommand: could not write to pipe");
-        return false;
-        }    
-    if (!CloseHandle(stdinWrite))
-        {          
-        error("executeCommand: could not close write pipe");
-        return false;
-        }
-    if (!CloseHandle(stdoutWrite))
-        {
-        error("executeCommand: could not close read pipe");
-        return false;
-        }
-    if (stdoutWrite != stderrWrite && !CloseHandle(stderrWrite))
-        {
-        error("executeCommand: could not close read pipe");
-        return false;
-        }
-
-    bool lastLoop = false;
-    while (true)
-        {
-        DWORD avail;
-        DWORD bytesRead;
-        char readBuf[4096];
-
-        //trace("## stderr");
-        PeekNamedPipe(stderrRead, NULL, 0, NULL, &avail, NULL);
-        if (avail > 0)
-            {
-            bytesRead = 0;
-            if (avail>4096) avail = 4096;
-            ReadFile(stderrRead, readBuf, avail, &bytesRead, NULL);
-            if (bytesRead > 0)
-                {
-                for (unsigned int i=0 ; i 0)
-            {
-            bytesRead = 0;
-            if (avail>4096) avail = 4096;
-            ReadFile(stdoutRead, readBuf, avail, &bytesRead, NULL);
-            if (bytesRead > 0)
-                {
-                for (unsigned int i=0 ; i
-
-
-
-/**
- * Execute a system call, using pipes to send data to the
- * program's stdin,  and reading stdout and stderr.
- */
-bool MakeBase::executeCommand(const String &command,
-                              const String &inbuf,
-                              String &outbuf,
-                              String &errbuf)
-{
-
-    status("============ cmd ============\n%s\n=============================",
-                command.c_str());
-
-    outbuf.clear();
-    errbuf.clear();
-    
-
-    int outfds[2];
-    if (pipe(outfds) < 0)
-        return false;
-    int errfds[2];
-    if (pipe(errfds) < 0)
-        return false;
-    int pid = fork();
-    if (pid < 0)
-        {
-        close(outfds[0]);
-        close(outfds[1]);
-        close(errfds[0]);
-        close(errfds[1]);
-        error("launch of command '%s' failed : %s",
-             command.c_str(), strerror(errno));
-        return false;
-        }
-    else if (pid > 0) // parent
-        {
-        close(outfds[1]);
-        close(errfds[1]);
-        }
-    else // == 0, child
-        {
-        close(outfds[0]);
-        dup2(outfds[1], STDOUT_FILENO);
-        close(outfds[1]);
-        close(errfds[0]);
-        dup2(errfds[1], STDERR_FILENO);
-        close(errfds[1]);
-
-        char *args[4];
-        args[0] = (char *)"sh";
-        args[1] = (char *)"-c";
-        args[2] = (char *)command.c_str();
-        args[3] = NULL;
-        execv("/bin/sh", args);
-        exit(EXIT_FAILURE);
-        }
-
-    String outb;
-    String errb;
-
-    int outRead = outfds[0];
-    int errRead = errfds[0];
-    int max = outRead;
-    if (errRead > max)
-        max = errRead;
-
-    bool outOpen = true;
-    bool errOpen = true;
-
-    while (outOpen || errOpen)
-        {
-        char ch;
-        fd_set fdset;
-        FD_ZERO(&fdset);
-        if (outOpen)
-            FD_SET(outRead, &fdset);
-        if (errOpen)
-            FD_SET(errRead, &fdset);
-        int ret = select(max+1, &fdset, NULL, NULL, NULL);
-        if (ret < 0)
-            break;
-        if (FD_ISSET(outRead, &fdset))
-            {
-            if (read(outRead, &ch, 1) <= 0)
-                { outOpen = false; }
-            else if (ch <= 0)
-                { /* outOpen = false; */ }
-            else
-                { outb.push_back(ch); }
-            }
-        if (FD_ISSET(errRead, &fdset))
-            {
-            if (read(errRead, &ch, 1) <= 0)
-                { errOpen = false; }
-            else if (ch <= 0)
-                { /* errOpen = false; */ }
-            else
-                { errb.push_back(ch); }
-            }
-        }
-
-    int childReturnValue;
-    wait(&childReturnValue);
-
-    close(outRead);
-    close(errRead);
-
-    outbuf = outb;
-    errbuf = errb;
-
-    if (childReturnValue != 0)
-        {
-        error("exec of command '%s' failed : %s",
-             command.c_str(), strerror(childReturnValue));
-        return false;
-        }
-
-    return true;
-} 
-
-#endif
-
-
-
-
-bool MakeBase::listDirectories(const String &baseName,
-                              const String &dirName,
-                              std::vector &res)
-{
-    res.push_back(dirName);
-    String fullPath = baseName;
-    if (dirName.size()>0)
-        {
-        if (dirName[0]!='/') fullPath.append("/");
-        fullPath.append(dirName);
-        }
-    DIR *dir = opendir(fullPath.c_str());
-    while (true)
-        {
-        struct dirent *de = readdir(dir);
-        if (!de)
-            break;
-
-        //Get the directory member name
-        String s = de->d_name;
-        if (s.size() == 0 || s[0] == '.')
-            continue;
-        String childName = dirName;
-        childName.append("/");
-        childName.append(s);
-
-        String fullChildPath = baseName;
-        fullChildPath.append("/");
-        fullChildPath.append(childName);
-        struct stat finfo;
-        String childNative = getNativePath(fullChildPath);
-        if (cachedStat(childNative, &finfo)<0)
-            {
-            error("cannot stat file:%s", childNative.c_str());
-            }
-        else if (S_ISDIR(finfo.st_mode))
-            {
-            //trace("directory: %s", childName.c_str());
-            if (!listDirectories(baseName, childName, res))
-                return false;
-            }
-        }
-    closedir(dir);
-
-    return true;
-}
-
-
-bool MakeBase::listFiles(const String &baseDir,
-                         const String &dirName,
-                         std::vector &res)
-{
-    String fullDir = baseDir;
-    if (dirName.size()>0)
-        {
-        fullDir.append("/");
-        fullDir.append(dirName);
-        }
-    String dirNative = getNativePath(fullDir);
-
-    std::vector subdirs;
-    DIR *dir = opendir(dirNative.c_str());
-    if (!dir)
-        {
-        error("Could not open directory %s : %s",
-              dirNative.c_str(), strerror(errno));
-        return false;
-        }
-    while (true)
-        {
-        struct dirent *de = readdir(dir);
-        if (!de)
-            break;
-
-        //Get the directory member name
-        String s = de->d_name;
-        if (s.size() == 0 || s[0] == '.')
-            continue;
-        String childName;
-        if (dirName.size()>0)
-            {
-            childName.append(dirName);
-            childName.append("/");
-            }
-        childName.append(s);
-        String fullChild = baseDir;
-        fullChild.append("/");
-        fullChild.append(childName);
-        
-        if (isDirectory(fullChild))
-            {
-            //trace("directory: %s", childName.c_str());
-            if (!listFiles(baseDir, childName, res))
-                return false;
-            continue;
-            }
-        else if (!isRegularFile(fullChild))
-            {
-            error("unknown file:%s", childName.c_str());
-            return false;
-            }
-
-       //all done!
-        res.push_back(childName);
-
-        }
-    closedir(dir);
-
-    return true;
-}
-
-
-/**
- * Several different classes extend MakeBase.  By "propRef", we mean
- * the one holding the properties.  Likely "Make" itself
- */
-bool MakeBase::listFiles(MakeBase &propRef, FileSet &fileSet)
-{
-    //before doing the list,  resolve any property references
-    //that might have been specified in the directory name, such as ${src}
-    String fsDir = fileSet.getDirectory();
-    String dir;
-    if (!propRef.getSubstitutions(fsDir, dir))
-        return false;
-    String baseDir = propRef.resolve(dir);
-    std::vector fileList;
-    if (!listFiles(baseDir, "", fileList))
-        return false;
-
-    std::vector includes = fileSet.getIncludes();
-    std::vector excludes = fileSet.getExcludes();
-
-    std::vector incs;
-    std::vector::iterator iter;
-
-    std::sort(fileList.begin(), fileList.end());
-
-    //If there are , then add files to the output
-    //in the order of the include list
-    if (includes.size()==0)
-        incs = fileList;
-    else
-        {
-        for (iter = includes.begin() ; iter != includes.end() ; iter++)
-            {
-            String &pattern = *iter;
-            std::vector::iterator siter;
-            for (siter = fileList.begin() ; siter != fileList.end() ; siter++)
-                {
-                String s = *siter;
-                if (regexMatch(s, pattern))
-                    {
-                    //trace("INCLUDED:%s", s.c_str());
-                    incs.push_back(s);
-                    }
-                }
-            }
-        }
-
-    //Now trim off the 
-    std::vector res;
-    for (iter = incs.begin() ; iter != incs.end() ; iter++)
-        {
-        String s = *iter;
-        bool skipme = false;
-        std::vector::iterator siter;
-        for (siter = excludes.begin() ; siter != excludes.end() ; siter++)
-            {
-            String &pattern = *siter;
-            if (regexMatch(s, pattern))
-                {
-                //trace("EXCLUDED:%s", s.c_str());
-                skipme = true;
-                break;
-                }
-            }
-        if (!skipme)
-            res.push_back(s);
-        }
-        
-    fileSet.setFiles(res);
-
-    return true;
-}
-
-
-/**
- * 0 == all, 1 = cflags, 2 = libs
- */ 
-bool MakeBase::pkgConfigRecursive(const String packageName,
-                                  const String &path, 
-                                  const String &prefix, 
-                                  int query,
-                                  String &result,
-                                  std::set &deplist) 
-{
-    PkgConfig pkgConfig;
-    if (path.size() > 0)
-        pkgConfig.setPath(path);
-    if (prefix.size() > 0)
-        pkgConfig.setPrefix(prefix);
-    if (!pkgConfig.query(packageName))
-        return false;
-    if (query == 0)
-        result = pkgConfig.getAll();
-    else if (query == 1)
-        result = pkgConfig.getCflags();
-    else
-        result = pkgConfig.getLibs();
-    deplist.insert(packageName);
-    std::vector list = pkgConfig.getRequireList();
-    for (std::size_t i = 0 ; i deplist;
-    String path = getProperty("pkg-config-path");
-    if (path.size()>0)
-        path = resolve(path);
-    String prefix = getProperty("pkg-config-prefix");
-    String val;
-    if (!pkgConfigRecursive(packageName, path, prefix, query, val, deplist))
-        return false;
-    result = val;
-    return true;
-}
-
-
-
-/**
- * replace a variable ref like ${a} with a value
- */
-bool MakeBase::lookupProperty(const String &propertyName, String &result)
-{
-    String varname = propertyName;
-    if (envPrefix.size() > 0 &&
-        varname.compare(0, envPrefix.size(), envPrefix) == 0)
-        {
-        varname = varname.substr(envPrefix.size());
-        char *envstr = getenv(varname.c_str());
-        if (!envstr)
-            {
-            error("environment variable '%s' not defined", varname.c_str());
-            return false;
-            }
-        result = envstr;
-        }
-    else if (pcPrefix.size() > 0 &&
-        varname.compare(0, pcPrefix.size(), pcPrefix) == 0)
-        {
-        varname = varname.substr(pcPrefix.size());
-        String val;
-        if (!pkgConfigQuery(varname, 0, val))
-            return false;
-        result = val;
-        }
-    else if (pccPrefix.size() > 0 &&
-        varname.compare(0, pccPrefix.size(), pccPrefix) == 0)
-        {
-        varname = varname.substr(pccPrefix.size());
-        String val;
-        if (!pkgConfigQuery(varname, 1, val))
-            return false;
-        result = val;
-        }
-    else if (pclPrefix.size() > 0 &&
-        varname.compare(0, pclPrefix.size(), pclPrefix) == 0)
-        {
-        varname = varname.substr(pclPrefix.size());
-        String val;
-        if (!pkgConfigQuery(varname, 2, val))
-            return false;
-        result = val;
-        }
-    else if (bzrPrefix.size() > 0 &&
-        varname.compare(0, bzrPrefix.size(), bzrPrefix) == 0)
-        {
-        varname = varname.substr(bzrPrefix.size());
-        String val;
-        //SvnInfo svnInfo;
-        BzrRevno bzrRevno;
-        if (varname == "revision")
-	    {
-            if (!bzrRevno.query(val))
-                return "";
-            result = "r"+val;
-        }
-        /*if (!svnInfo.query(varname, val))
-            return false;
-        result = val;*/
-        }
-    else
-        {
-        std::map::iterator iter;
-        iter = properties.find(varname);
-        if (iter != properties.end())
-            {
-            result = iter->second;
-            }
-        else
-            {
-            error("property '%s' not found", varname.c_str());
-            return false;
-            }
-        }
-    return true;
-}
-
-
-
-
-/**
- * Analyse a string, looking for any substitutions or other
- * things that need resolution 
- */
-bool MakeBase::getSubstitutionsRecursive(const String &str,
-                                         String &result, int depth)
-{
-    if (depth > 10)
-        {
-        error("nesting of substitutions too deep (>10) for '%s'",
-                        str.c_str());
-        return false;
-        }
-    String s = trim(str);
-    int len = (int)s.size();
-    String val;
-    for (int i=0 ; igetAttribute(name);
-    String tmp;
-    bool ret = getSubstitutions(s, tmp);
-    if (ret)
-        result = s;  //assign -if- ok
-    return ret;
-}
-
-
-/**
- * Get a string value, testing it for proper syntax and
- * property names.
- */
-bool MakeBase::getValue(Element *elem, String &result)
-{
-    String s = elem->getValue();
-    String tmp;
-    bool ret = getSubstitutions(s, tmp);
-    if (ret)
-        result = s;  //assign -if- ok
-    return ret;
-}
-
-
-
-
-/**
- * Parse a  entry
- */  
-bool MakeBase::parsePatternSet(Element *elem,
-                          MakeBase &propRef,
-                          std::vector &includes,
-                          std::vector &excludes
-                          )
-{
-    std::vector children  = elem->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName == "exclude")
-            {
-            String fname;
-            if (!propRef.getAttribute(child, "name", fname))
-                return false;
-            //trace("EXCLUDE: %s", fname.c_str());
-            excludes.push_back(fname);
-            }
-        else if (tagName == "include")
-            {
-            String fname;
-            if (!propRef.getAttribute(child, "name", fname))
-                return false;
-            //trace("INCLUDE: %s", fname.c_str());
-            includes.push_back(fname);
-            }
-        }
-
-    return true;
-}
-
-
-
-
-/**
- * Parse a  entry, and determine which files
- * should be included
- */  
-bool MakeBase::parseFileSet(Element *elem,
-                          MakeBase &propRef,
-                          FileSet &fileSet)
-{
-    String name = elem->getName();
-    if (name != "fileset")
-        {
-        error("expected ");
-        return false;
-        }
-
-
-    std::vector includes;
-    std::vector excludes;
-
-    //A fileset has one implied patternset
-    if (!parsePatternSet(elem, propRef, includes, excludes))
-        {
-        return false;
-        }
-    //Look for child tags, including more patternsets
-    std::vector children  = elem->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName == "patternset")
-            {
-            if (!parsePatternSet(child, propRef, includes, excludes))
-                {
-                return false;
-                }
-            }
-        }
-
-    String dir;
-    //Now do the stuff
-    //Get the base directory for reading file names
-    if (!propRef.getAttribute(elem, "dir", dir))
-        return false;
-
-    fileSet.setDirectory(dir);
-    fileSet.setIncludes(includes);
-    fileSet.setExcludes(excludes);
-    
-    /*
-    std::vector fileList;
-    if (dir.size() > 0)
-        {
-        String baseDir = propRef.resolve(dir);
-        if (!listFiles(baseDir, "", includes, excludes, fileList))
-            return false;
-        }
-    std::sort(fileList.begin(), fileList.end());
-    result = fileList;
-    */
-
-    
-    /*
-    for (std::size_t i=0 ; i entry.  This is far simpler than FileSet,
- * since no directory scanning is needed.  The file names are listed
- * explicitly.
- */  
-bool MakeBase::parseFileList(Element *elem,
-                          MakeBase &propRef,
-                          FileList &fileList)
-{
-    std::vector fnames;
-    //Look for child tags, namely "file"
-    std::vector children  = elem->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName == "file")
-            {
-            String fname = child->getAttribute("name");
-            if (fname.size()==0)
-                {
-                error(" element requires name="" attribute");
-                return false;
-                }
-            fnames.push_back(fname);
-            }
-        else
-            {
-            error("tag <%s> not allowed in ", tagName.c_str());
-            return false;
-            }
-        }
-
-    String dir;
-    //Get the base directory for reading file names
-    if (!propRef.getAttribute(elem, "dir", dir))
-        return false;
-    fileList.setDirectory(dir);
-    fileList.setFiles(fnames);
-
-    return true;
-}
-
-
-
-/**
- * Create a directory, making intermediate dirs
- * if necessary
- */                  
-bool MakeBase::createDirectory(const String &dirname)
-{
-    //trace("## createDirectory: %s", dirname.c_str());
-    //## first check if it exists
-    struct stat finfo;
-    String nativeDir = getNativePath(dirname);
-    char *cnative = (char *) nativeDir.c_str();
-#ifdef __WIN32__
-    if (strlen(cnative)==2 && cnative[1]==':')
-        return true;
-#endif
-    if (cachedStat(nativeDir, &finfo)==0)
-        {
-        if (!S_ISDIR(finfo.st_mode))
-            {
-            error("mkdir: file %s exists but is not a directory",
-                  cnative);
-            return false;
-            }
-        else //exists
-            {
-            return true;
-            }
-        }
-
-    //## 2: pull off the last path segment, if any,
-    //## to make the dir 'above' this one, if necessary
-    std::size_t pos = dirname.find_last_of('/');
-    if (pos>0 && pos != dirname.npos)
-        {
-        String subpath = dirname.substr(0, pos);
-        //A letter root (c:) ?
-        if (!createDirectory(subpath))
-            return false;
-        }
-        
-    //## 3: now make
-#ifdef __WIN32__
-    if (mkdir(cnative)<0)
-#else
-    if (mkdir(cnative, S_IRWXU | S_IRWXG | S_IRWXO)<0)
-#endif
-        {
-        error("cannot make directory '%s' : %s",
-                 cnative, strerror(errno));
-        return false;
-        }
-
-    removeFromStatCache(nativeDir);
-        
-    return true;
-}
-
-
-/**
- * Remove a directory recursively
- */ 
-bool MakeBase::removeDirectory(const String &dirName)
-{
-    char *dname = (char *)dirName.c_str();
-
-    DIR *dir = opendir(dname);
-    if (!dir)
-        {
-        //# Let this fail nicely.
-        return true;
-        //error("error opening directory %s : %s", dname, strerror(errno));
-        //return false;
-        }
-    
-    while (true)
-        {
-        struct dirent *de = readdir(dir);
-        if (!de)
-            break;
-
-        //Get the directory member name
-        String s = de->d_name;
-        if (s.size() == 0 || s[0] == '.')
-            continue;
-        String childName;
-        if (dirName.size() > 0)
-            {
-            childName.append(dirName);
-            childName.append("/");
-            }
-        childName.append(s);
-
-
-        struct stat finfo;
-        String childNative = getNativePath(childName);
-        char *cnative = (char *)childNative.c_str();
-        if (cachedStat(childNative, &finfo)<0)
-            {
-            error("cannot stat file:%s", cnative);
-            }
-        else if (S_ISDIR(finfo.st_mode))
-            {
-            //trace("DEL dir: %s", childName.c_str());
-            if (!removeDirectory(childName))
-                {
-                return false;
-                }
-            }
-        else if (!S_ISREG(finfo.st_mode))
-            {
-            //trace("not regular: %s", cnative);
-            }
-        else
-            {
-            //trace("DEL file: %s", childName.c_str());
-            if (!removeFile(childName))
-                {
-                return false;
-                }
-            }
-        }
-    closedir(dir);
-
-    //Now delete the directory
-    String native = getNativePath(dirName);
-    if (rmdir(native.c_str())<0)
-        {
-        error("could not delete directory %s : %s",
-            native.c_str() , strerror(errno));
-        return false;
-        }
-
-    removeFromStatCache(native);
-
-    return true;
-    
-}
-
-
-/**
- * Copy a file from one name to another. Perform only if needed
- */ 
-bool MakeBase::copyFile(const String &srcFile, const String &destFile)
-{
-    //# 1 Check up-to-date times
-    String srcNative = getNativePath(srcFile);
-    struct stat srcinfo;
-    if (cachedStat(srcNative, &srcinfo)<0)
-        {
-        error("source file %s for copy does not exist",
-                 srcNative.c_str());
-        return false;
-        }
-
-    String destNative = getNativePath(destFile);
-    struct stat destinfo;
-    if (cachedStat(destNative, &destinfo)==0)
-        {
-        if (destinfo.st_mtime >= srcinfo.st_mtime)
-            return true;
-        }
-        
-    //# 2 prepare a destination directory if necessary
-    std::size_t pos = destFile.find_last_of('/');
-    if (pos != destFile.npos)
-        {
-        String subpath = destFile.substr(0, pos);
-        if (!createDirectory(subpath))
-            return false;
-        }
-
-    //# 3 do the data copy
-#ifndef __WIN32__
-
-    FILE *srcf = fopen(srcNative.c_str(), "rb");
-    if (!srcf)
-        {
-        error("copyFile cannot open '%s' for reading", srcNative.c_str());
-        return false;
-        }
-    FILE *destf = fopen(destNative.c_str(), "wb");
-    if (!destf)
-        {
-        fclose(srcf);
-        error("copyFile cannot open %s for writing", srcNative.c_str());
-        return false;
-        }
-
-    while (!feof(srcf))
-        {
-        int ch = fgetc(srcf);
-        if (ch<0)
-            break;
-        fputc(ch, destf);
-        }
-
-    fclose(destf);
-    fclose(srcf);
-
-#else
-    
-    if (!CopyFile(srcNative.c_str(), destNative.c_str(), false))
-        {
-        error("copyFile from %s to %s failed",
-             srcNative.c_str(), destNative.c_str());
-        return false;
-        }
-        
-#endif /* __WIN32__ */
-
-    removeFromStatCache(destNative);
-
-    return true;
-}
-
-
-/**
- * Delete a file
- */ 
-bool MakeBase::removeFile(const String &file)
-{
-    String native = getNativePath(file);
-
-    if (!fileExists(native))
-        {
-        return true;
-        }
-
-#ifdef WIN32
-    // On Windows 'remove' will only delete files
-
-    if (remove(native.c_str())<0)
-        {
-        if (errno==EACCES)
-            {
-            error("File %s is read-only", native.c_str());
-            }
-        else if (errno==ENOENT)
-            {
-            error("File %s does not exist or is a directory", native.c_str());
-            }
-        else
-            {
-            error("Failed to delete file %s: %s", native.c_str(), strerror(errno));
-            }
-        return false;
-        }
-
-#else
-
-    if (!isRegularFile(native))
-        {
-        error("File %s does not exist or is not a regular file", native.c_str());
-        return false;
-        }
-
-    if (remove(native.c_str())<0)
-        {
-        if (errno==EACCES)
-            {
-            error("File %s is read-only", native.c_str());
-            }
-        else
-            {
-            error(
-                errno==EACCES ? "File %s is read-only" :
-                errno==ENOENT ? "File %s does not exist or is a directory" :
-                "Failed to delete file %s: %s", native.c_str());
-            }
-        return false;
-        }
-
-#endif
-
-    removeFromStatCache(native);
-
-    return true;
-}
-
-
-/**
- * Tests if the file exists
- */ 
-bool MakeBase::fileExists(const String &fileName)
-{
-    String native = getNativePath(fileName);
-    struct stat finfo;
-    
-    //Exists?
-    if (cachedStat(native, &finfo)<0)
-        return false;
-
-    return true;
-}
-
-
-/**
- * Tests if the file exists and is a regular file
- */ 
-bool MakeBase::isRegularFile(const String &fileName)
-{
-    String native = getNativePath(fileName);
-    struct stat finfo;
-    
-    //Exists?
-    if (cachedStat(native, &finfo)<0)
-        return false;
-
-
-    //check the file mode
-    if (!S_ISREG(finfo.st_mode))
-        return false;
-
-    return true;
-}
-
-/**
- * Tests if the file exists and is a directory
- */ 
-bool MakeBase::isDirectory(const String &fileName)
-{
-    String native = getNativePath(fileName);
-    struct stat finfo;
-    
-    //Exists?
-    if (cachedStat(native, &finfo)<0)
-        return false;
-
-
-    //check the file mode
-    if (!S_ISDIR(finfo.st_mode))
-        return false;
-
-    return true;
-}
-
-
-
-/**
- * Tests is the modification of fileA is newer than fileB
- */ 
-bool MakeBase::isNewerThan(const String &fileA, const String &fileB)
-{
-    //trace("isNewerThan:'%s' , '%s'", fileA.c_str(), fileB.c_str());
-    String nativeA = getNativePath(fileA);
-    struct stat infoA;
-    //IF source does not exist, NOT newer
-    if (cachedStat(nativeA, &infoA)<0)
-        {
-        return false;
-        }
-
-    String nativeB = getNativePath(fileB);
-    struct stat infoB;
-    //IF dest does not exist, YES, newer
-    if (cachedStat(nativeB, &infoB)<0)
-        {
-        return true;
-        }
-
-    //check the actual times
-    if (infoA.st_mtime > infoB.st_mtime)
-        {
-        return true;
-        }
-
-    return false;
-}
-
-
-//########################################################################
-//# P K G    C O N F I G
-//########################################################################
-
-
-/**
- * Get a character from the buffer at pos.  If out of range,
- * return -1 for safety
- */
-int PkgConfig::get(int pos)
-{
-    if (pos>parselen)
-        return -1;
-    return parsebuf[pos];
-}
-
-
-
-/**
- *  Skip over all whitespace characters beginning at pos.  Return
- *  the position of the first non-whitespace character.
- *  Pkg-config is line-oriented, so check for newline
- */
-int PkgConfig::skipwhite(int pos)
-{
-    while (pos < parselen)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (!isspace(ch))
-            break;
-        pos++;
-        }
-    return pos;
-}
-
-
-/**
- *  Parse the buffer beginning at pos, for a word.  Fill
- *  'ret' with the result.  Return the position after the
- *  word.
- */
-int PkgConfig::getword(int pos, String &ret)
-{
-    while (pos < parselen)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (!isalnum(ch) && ch != '_' && ch != '-' && ch != '+' && ch != '.')
-            break;
-        ret.push_back((char)ch);
-        pos++;
-        }
-    return pos;
-}
-
-bool PkgConfig::parseRequires()
-{
-    if (requires.size() == 0)
-        return true;
-    parsebuf = (char *)requires.c_str();
-    parselen = requires.size();
-    int pos = 0;
-    while (pos < parselen)
-        {
-        pos = skipwhite(pos);
-        String val;
-        int pos2 = getword(pos, val);
-        if (pos2 == pos)
-            break;
-        pos = pos2;
-        //trace("val %s", val.c_str());
-        requireList.push_back(val);
-        }
-    return true;
-}
-
-
-static int getint(const String str)
-{
-    char *s = (char *)str.c_str();
-    char *ends = NULL;
-    long val = strtol(s, &ends, 10);
-    if (ends == s)
-        return 0L;
-    else
-        return val;
-}
-
-void PkgConfig::parseVersion()
-{
-    if (version.size() == 0)
-        return;
-    String s1, s2, s3;
-    std::size_t pos = 0;
-    std::size_t pos2 = version.find('.', pos);
-    if (pos2 == version.npos)
-        {
-        s1 = version;
-        }
-    else
-        {
-        s1 = version.substr(pos, pos2-pos);
-        pos = pos2;
-        pos++;
-        if (pos < version.size())
-            {
-            pos2 = version.find('.', pos);
-            if (pos2 == version.npos)
-                {
-                s2 = version.substr(pos, version.size()-pos);
-                }
-            else
-                {
-                s2 = version.substr(pos, pos2-pos);
-                pos = pos2;
-                pos++;
-                if (pos < version.size())
-                    s3 = version.substr(pos, pos2-pos);
-                }
-            }
-        }
-
-    majorVersion = getint(s1);
-    minorVersion = getint(s2);
-    microVersion = getint(s3);
-    //trace("version:%d.%d.%d", majorVersion,
-    //          minorVersion, microVersion );
-}
-
-
-bool PkgConfig::parseLine(const String &lineBuf)
-{
-    parsebuf = (char *)lineBuf.c_str();
-    parselen = lineBuf.size();
-    int pos = 0;
-    
-    while (pos < parselen)
-        {
-        String attrName;
-        pos = skipwhite(pos);
-        int ch = get(pos);
-        if (ch == '#')
-            {
-            //comment.  eat the rest of the line
-            while (pos < parselen)
-                {
-                ch = get(pos);
-                if (ch == '\n' || ch < 0)
-                    break;
-                pos++;
-                }
-            continue;
-            }
-        pos = getword(pos, attrName);
-        if (attrName.size() == 0)
-            continue;
-        
-        pos = skipwhite(pos);
-        ch = get(pos);
-        if (ch != ':' && ch != '=')
-            {
-            error("expected ':' or '='");
-            return false;
-            }
-        pos++;
-        pos = skipwhite(pos);
-        String attrVal;
-        while (pos < parselen)
-            {
-            ch = get(pos);
-            if (ch == '\n' || ch < 0)
-                break;
-            else if (ch == '$' && get(pos+1) == '{')
-                {
-                //#  this is a ${substitution}
-                pos += 2;
-                String subName;
-                while (pos < parselen)
-                    {
-                    ch = get(pos);
-                    if (ch < 0)
-                        {
-                        error("unterminated substitution");
-                        return false;
-                        }
-                    else if (ch == '}')
-                        break;
-                    else
-                        subName.push_back((char)ch);
-                    pos++;
-                    }
-                //trace("subName:%s %s", subName.c_str(), prefix.c_str());
-                if (subName == "prefix" && prefix.size()>0)
-                    {
-                    attrVal.append(prefix);
-                    //trace("prefix override:%s", prefix.c_str());
-                    }
-                else
-                    {
-                    String subVal = attrs[subName];
-                    //trace("subVal:%s", subVal.c_str());
-                    attrVal.append(subVal);
-                    }
-                }
-            else
-                attrVal.push_back((char)ch);
-            pos++;
-            }
-
-        attrVal = trim(attrVal);
-        attrs[attrName] = attrVal;
-
-        String attrNameL = toLower(attrName);
-
-        if (attrNameL == "name")
-            name = attrVal;
-        else if (attrNameL == "description")
-            description = attrVal;
-        else if (attrNameL == "cflags")
-            cflags = attrVal;
-        else if (attrNameL == "libs")
-            libs = attrVal;
-        else if (attrNameL == "requires")
-            requires = attrVal;
-        else if (attrNameL == "version")
-            version = attrVal;
-
-        //trace("name:'%s'  value:'%s'",
-        //      attrName.c_str(), attrVal.c_str());
-        }
-
-    return true;
-}
-
-
-bool PkgConfig::parse(const String &buf)
-{
-    init();
-
-    String line;
-    int lineNr = 0;
-    for (std::size_t p=0 ; p0)
-        {
-        if (!parseLine(line))
-            return false;
-        }
-
-    parseRequires();
-    parseVersion();
-
-    return true;
-}
-
-
-
-
-void PkgConfig::dumpAttrs()
-{
-    //trace("### PkgConfig attributes for %s", fileName.c_str());
-    std::map::iterator iter;
-    for (iter=attrs.begin() ; iter!=attrs.end() ; iter++)
-        {
-        trace("   %s = %s", iter->first.c_str(), iter->second.c_str());
-        }
-}
-
-
-bool PkgConfig::readFile(const String &fname)
-{
-    fileName = getNativePath(fname);
-
-    FILE *f = fopen(fileName.c_str(), "r");
-    if (!f)
-        {
-        error("cannot open file '%s' for reading", fileName.c_str());
-        return false;
-        }
-    String buf;
-    while (true)
-        {
-        int ch = fgetc(f);
-        if (ch < 0)
-            break;
-        buf.push_back((char)ch);
-        }
-    fclose(f);
-
-    //trace("####### File:\n%s", buf.c_str());
-    if (!parse(buf))
-        {
-        return false;
-        }
-
-    //dumpAttrs();
-
-    return true;
-}
-
-
-
-bool PkgConfig::query(const String &pkgName)
-{
-    name = pkgName;
-
-    String fname = path;
-    fname.append("/");
-    fname.append(name);
-    fname.append(".pc");
-
-    if (!readFile(fname))
-        {
-        error("Cannot find package '%s'. Do you have it installed?",
-                       pkgName.c_str());
-        return false;
-        }
-    
-    return true;
-}
-
-
-//########################################################################
-//# D E P T O O L
-//########################################################################
-
-
-
-/**
- *  Class which holds information for each file.
- */
-class FileRec
-{
-public:
-
-    typedef enum
-        {
-        UNKNOWN,
-        CFILE,
-        HFILE,
-        OFILE
-        } FileType;
-
-    /**
-     *  Constructor
-     */
-    FileRec()
-        { init(); type = UNKNOWN; }
-
-    /**
-     *  Copy constructor
-     */
-    FileRec(const FileRec &other)
-        { init(); assign(other); }
-    /**
-     *  Constructor
-     */
-    FileRec(int typeVal)
-        { init(); type = typeVal; }
-    /**
-     *  Assignment operator
-     */
-    FileRec &operator=(const FileRec &other)
-        { init(); assign(other); return *this; }
-
-
-    /**
-     *  Destructor
-     */
-    ~FileRec()
-        {}
-
-    /**
-     *  Directory part of the file name
-     */
-    String path;
-
-    /**
-     *  Base name, sans directory and suffix
-     */
-    String baseName;
-
-    /**
-     *  File extension, such as cpp or h
-     */
-    String suffix;
-
-    /**
-     *  Type of file: CFILE, HFILE, OFILE
-     */
-    int type;
-
-    /**
-     * Used to list files ref'd by this one
-     */
-    std::map files;
-
-
-private:
-
-    void init()
-        {
-        }
-
-    void assign(const FileRec &other)
-        {
-        type     = other.type;
-        baseName = other.baseName;
-        suffix   = other.suffix;
-        files    = other.files;
-        }
-
-};
-
-
-
-/**
- *  Simpler dependency record
- */
-class DepRec
-{
-public:
-
-    /**
-     *  Constructor
-     */
-    DepRec()
-        {init();}
-
-    /**
-     *  Copy constructor
-     */
-    DepRec(const DepRec &other)
-        {init(); assign(other);}
-    /**
-     *  Constructor
-     */
-    DepRec(const String &fname)
-        {init(); name = fname; }
-    /**
-     *  Assignment operator
-     */
-    DepRec &operator=(const DepRec &other)
-        {init(); assign(other); return *this;}
-
-
-    /**
-     *  Destructor
-     */
-    ~DepRec()
-        {}
-
-    /**
-     *  Directory part of the file name
-     */
-    String path;
-
-    /**
-     *  Base name, without the path and suffix
-     */
-    String name;
-
-    /**
-     *  Suffix of the source
-     */
-    String suffix;
-
-
-    /**
-     * Used to list files ref'd by this one
-     */
-    std::vector files;
-
-
-private:
-
-    void init()
-        {
-        }
-
-    void assign(const DepRec &other)
-        {
-        path     = other.path;
-        name     = other.name;
-        suffix   = other.suffix;
-        files    = other.files; //avoid recursion
-        }
-
-};
-
-
-class DepTool : public MakeBase
-{
-public:
-
-    /**
-     *  Constructor
-     */
-    DepTool()
-        { init(); }
-
-    /**
-     *  Copy constructor
-     */
-    DepTool(const DepTool &other)
-        { init(); assign(other); }
-
-    /**
-     *  Assignment operator
-     */
-    DepTool &operator=(const DepTool &other)
-        { init(); assign(other); return *this; }
-
-
-    /**
-     *  Destructor
-     */
-    ~DepTool()
-        {}
-
-
-    /**
-     *  Reset this section of code
-     */
-    virtual void init();
-    
-    /**
-     *  Reset this section of code
-     */
-    virtual void assign(const DepTool &other)
-        {
-        }
-    
-    /**
-     *  Sets the source directory which will be scanned
-     */
-    virtual void setSourceDirectory(const String &val)
-        { sourceDir = val; }
-
-    /**
-     *  Returns the source directory which will be scanned
-     */
-    virtual String getSourceDirectory()
-        { return sourceDir; }
-
-    /**
-     *  Sets the list of files within the directory to analyze
-     */
-    virtual void setFileList(const std::vector &list)
-        { fileList = list; }
-
-    /**
-     * Creates the list of all file names which will be
-     * candidates for further processing.  Reads make.exclude
-     * to see which files for directories to leave out.
-     */
-    virtual bool createFileList();
-
-
-    /**
-     *  Generates the forward dependency list
-     */
-    virtual bool generateDependencies();
-
-
-    /**
-     *  Generates the forward dependency list, saving the file
-     */
-    virtual bool generateDependencies(const String &);
-
-
-    /**
-     *  Load a dependency file
-     */
-    std::vector loadDepFile(const String &fileName);
-
-    /**
-     *  Load a dependency file, generating one if necessary
-     */
-    std::vector getDepFile(const String &fileName,
-              bool forceRefresh);
-
-    /**
-     *  Save a dependency file
-     */
-    bool saveDepFile(const String &fileName);
-
-
-private:
-
-
-    /**
-     *
-     */
-    void parseName(const String &fullname,
-                   String &path,
-                   String &basename,
-                   String &suffix);
-
-    /**
-     *
-     */
-    int get(int pos);
-
-    /**
-     *
-     */
-    int skipwhite(int pos);
-
-    /**
-     *
-     */
-    int getword(int pos, String &ret);
-
-    /**
-     *
-     */
-    bool sequ(int pos, const char *key);
-
-    /**
-     *
-     */
-    bool addIncludeFile(FileRec *frec, const String &fname);
-
-    /**
-     *
-     */
-    bool scanFile(const String &fname, FileRec *frec);
-
-    /**
-     *
-     */
-    bool processDependency(FileRec *ofile, FileRec *include);
-
-    /**
-     *
-     */
-    String sourceDir;
-
-    /**
-     *
-     */
-    std::vector fileList;
-
-    /**
-     *
-     */
-    std::vector directories;
-
-    /**
-     * A list of all files which will be processed for
-     * dependencies.
-     */
-    std::map allFiles;
-
-    /**
-     * The list of .o files, and the
-     * dependencies upon them.
-     */
-    std::map oFiles;
-
-    int depFileSize;
-    char *depFileBuf;
-
-    static const int readBufSize = 8192;
-    char readBuf[8193];//byte larger
-
-};
-
-
-
-
-
-/**
- *  Clean up after processing.  Called by the destructor, but should
- *  also be called before the object is reused.
- */
-void DepTool::init()
-{
-    sourceDir = ".";
-
-    fileList.clear();
-    directories.clear();
-    
-    //clear output file list
-    std::map::iterator iter;
-    for (iter=oFiles.begin(); iter!=oFiles.end() ; iter++)
-        delete iter->second;
-    oFiles.clear();
-
-    //allFiles actually contains the master copies. delete them
-    for (iter= allFiles.begin(); iter!=allFiles.end() ; iter++)
-        delete iter->second;
-    allFiles.clear(); 
-
-}
-
-
-
-
-/**
- *  Parse a full path name into path, base name, and suffix
- */
-void DepTool::parseName(const String &fullname,
-                        String &path,
-                        String &basename,
-                        String &suffix)
-{
-    if (fullname.size() < 2)
-        return;
-
-    std::size_t pos = fullname.find_last_of('/');
-    if (pos != fullname.npos && pospath            = path;
-            fe->baseName        = basename;
-            fe->suffix          = sfx;
-            allFiles[fileName]  = fe;
-            }
-        else if (sfx == "h"   ||  sfx == "hh"  ||
-                 sfx == "hpp" ||  sfx == "hxx")
-            {
-            FileRec *fe         = new FileRec(FileRec::HFILE);
-            fe->path            = path;
-            fe->baseName        = basename;
-            fe->suffix          = sfx;
-            allFiles[fileName]  = fe;
-            }
-        }
-
-    if (!listDirectories(sourceDir, "", directories))
-        return false;
-        
-    return true;
-}
-
-
-
-
-
-/**
- * Get a character from the buffer at pos.  If out of range,
- * return -1 for safety
- */
-int DepTool::get(int pos)
-{
-    if (pos>depFileSize)
-        return -1;
-    return depFileBuf[pos];
-}
-
-
-
-/**
- *  Skip over all whitespace characters beginning at pos.  Return
- *  the position of the first non-whitespace character.
- */
-int DepTool::skipwhite(int pos)
-{
-    while (pos < depFileSize)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (!isspace(ch))
-            break;
-        pos++;
-        }
-    return pos;
-}
-
-
-/**
- *  Parse the buffer beginning at pos, for a word.  Fill
- *  'ret' with the result.  Return the position after the
- *  word.
- */
-int DepTool::getword(int pos, String &ret)
-{
-    while (pos < depFileSize)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (isspace(ch))
-            break;
-        ret.push_back((char)ch);
-        pos++;
-        }
-    return pos;
-}
-
-/**
- * Return whether the sequence of characters in the buffer
- * beginning at pos match the key,  for the length of the key
- */
-bool DepTool::sequ(int pos, const char *key)
-{
-    while (*key)
-        {
-        if (*key != get(pos))
-            return false;
-        key++; pos++;
-        }
-    return true;
-}
-
-
-
-/**
- *  Add an include file name to a file record.  If the name
- *  is not found in allFiles explicitly, try prepending include
- *  directory names to it and try again.
- */
-bool DepTool::addIncludeFile(FileRec *frec, const String &iname)
-{
-    //# if the name is an exact match to a path name
-    //# in allFiles, like "myinc.h"
-    std::map::iterator iter =
-           allFiles.find(iname);
-    if (iter != allFiles.end()) //already exists
-        {
-         //h file in same dir
-        FileRec *other = iter->second;
-        //trace("local: '%s'", iname.c_str());
-        frec->files[iname] = other;
-        return true;
-        }
-    else 
-        {
-        //## Ok, it was not found directly
-        //look in other dirs
-        std::vector::iterator diter;
-        for (diter=directories.begin() ;
-             diter!=directories.end() ; diter++)
-            {
-            String dfname = *diter;
-            dfname.append("/");
-            dfname.append(iname);
-            URI fullPathURI(dfname);  //normalize path name
-            String fullPath = fullPathURI.getPath();
-            if (fullPath[0] == '/')
-                fullPath = fullPath.substr(1);
-            //trace("Normalized %s to %s", dfname.c_str(), fullPath.c_str());
-            iter = allFiles.find(fullPath);
-            if (iter != allFiles.end())
-                {
-                FileRec *other = iter->second;
-                //trace("other: '%s'", iname.c_str());
-                frec->files[fullPath] = other;
-                return true;
-                }
-            }
-        }
-    return true;
-}
-
-
-
-/**
- *  Lightly parse a file to find the #include directives.  Do
- *  a bit of state machine stuff to make sure that the directive
- *  is valid.  (Like not in a comment).
- */
-bool DepTool::scanFile(const String &fname, FileRec *frec)
-{
-    String fileName;
-    if (sourceDir.size() > 0)
-        {
-        fileName.append(sourceDir);
-        fileName.append("/");
-        }
-    fileName.append(fname);
-    String nativeName = getNativePath(fileName);
-    FILE *f = fopen(nativeName.c_str(), "r");
-    if (!f)
-        {
-        error("Could not open '%s' for reading", fname.c_str());
-        return false;
-        }
-    String buf;
-    while (!feof(f))
-        {
-        int nrbytes = fread(readBuf, 1, readBufSize, f);
-        readBuf[nrbytes] = '\0';
-        buf.append(readBuf);
-        }
-    fclose(f);
-
-    depFileSize = buf.size();
-    depFileBuf  = (char *)buf.c_str();
-    int pos = 0;
-
-
-    while (pos < depFileSize)
-        {
-        //trace("p:%c", get(pos));
-
-        //# Block comment
-        if (get(pos) == '/' && get(pos+1) == '*')
-            {
-            pos += 2;
-            while (pos < depFileSize)
-                {
-                if (get(pos) == '*' && get(pos+1) == '/')
-                    {
-                    pos += 2;
-                    break;
-                    }
-                else
-                    pos++;
-                }
-            }
-        //# Line comment
-        else if (get(pos) == '/' && get(pos+1) == '/')
-            {
-            pos += 2;
-            while (pos < depFileSize)
-                {
-                if (get(pos) == '\n')
-                    {
-                    pos++;
-                    break;
-                    }
-                else
-                    pos++;
-                }
-            }
-        //# #include! yaay
-        else if (sequ(pos, "#include"))
-            {
-            pos += 8;
-            pos = skipwhite(pos);
-            String iname;
-            pos = getword(pos, iname);
-            if (iname.size()>2)
-                {
-                iname = iname.substr(1, iname.size()-2);
-                addIncludeFile(frec, iname);
-                }
-            }
-        else
-            {
-            pos++;
-            }
-        }
-
-    return true;
-}
-
-
-
-/**
- *  Recursively check include lists to find all files in allFiles to which
- *  a given file is dependent.
- */
-bool DepTool::processDependency(FileRec *ofile, FileRec *include)
-{
-    std::map::iterator iter;
-    for (iter=include->files.begin() ; iter!=include->files.end() ; iter++)
-        {
-        String fname  = iter->first;
-        if (ofile->files.find(fname) != ofile->files.end())
-            {
-            //trace("file '%s' already seen", fname.c_str());
-            continue;
-            }
-        FileRec *child  = iter->second;
-        ofile->files[fname] = child;
-      
-        processDependency(ofile, child);
-        }
-
-
-    return true;
-}
-
-
-
-
-
-/**
- *  Generate the file dependency list.
- */
-bool DepTool::generateDependencies()
-{
-    std::map::iterator iter;
-    //# First pass.  Scan for all includes
-    for (iter=allFiles.begin() ; iter!=allFiles.end() ; iter++)
-        {
-        FileRec *frec = iter->second;
-        if (!scanFile(iter->first, frec))
-            {
-            //quit?
-            }
-        }
-
-    //# Second pass.  Scan for all includes
-    for (iter=allFiles.begin() ; iter!=allFiles.end() ; iter++)
-        {
-        FileRec *include = iter->second;
-        if (include->type == FileRec::CFILE)
-            {
-            //String cFileName   = iter->first;
-            FileRec *ofile     = new FileRec(FileRec::OFILE);
-            ofile->path        = include->path;
-            ofile->baseName    = include->baseName;
-            ofile->suffix      = include->suffix;
-            String fname       = include->path;
-            if (fname.size()>0)
-                fname.append("/");
-            fname.append(include->baseName);
-            fname.append(".o");
-            oFiles[fname]    = ofile;
-            //add the .c file first?   no, don't
-            //ofile->files[cFileName] = include;
-            
-            //trace("ofile:%s", fname.c_str());
-
-            processDependency(ofile, include);
-            }
-        }
-
-      
-    return true;
-}
-
-
-
-/**
- *  High-level call to generate deps and optionally save them
- */
-bool DepTool::generateDependencies(const String &fileName)
-{
-    if (!createFileList())
-        return false;
-    if (!generateDependencies())
-        return false;
-    if (!saveDepFile(fileName))
-        return false;
-    return true;
-}
-
-
-/**
- *   This saves the dependency cache.
- */
-bool DepTool::saveDepFile(const String &fileName)
-{
-    time_t tim;
-    time(&tim);
-
-    FILE *f = fopen(fileName.c_str(), "w");
-    if (!f)
-        {
-        trace("cannot open '%s' for writing", fileName.c_str());
-        }
-    fprintf(f, "\n");
-    fprintf(f, "\n");
-
-    fprintf(f, "\n\n", sourceDir.c_str());
-    std::map::iterator iter;
-    for (iter=oFiles.begin() ; iter!=oFiles.end() ; iter++)
-        {
-        FileRec *frec = iter->second;
-        if (frec->type == FileRec::OFILE)
-            {
-            fprintf(f, "\n",
-                 frec->path.c_str(), frec->baseName.c_str(), frec->suffix.c_str());
-            std::map::iterator citer;
-            for (citer=frec->files.begin() ; citer!=frec->files.end() ; citer++)
-                {
-                String cfname = citer->first;
-                fprintf(f, "    \n", cfname.c_str());
-                }
-            fprintf(f, "\n\n");
-            }
-        }
-
-    fprintf(f, "\n");
-    fprintf(f, "\n");
-    fprintf(f, "\n");
-
-    fclose(f);
-
-    return true;
-}
-
-
-
-
-/**
- *   This loads the dependency cache.
- */
-std::vector DepTool::loadDepFile(const String &depFile)
-{
-    std::vector result;
-    
-    Parser parser;
-    Element *root = parser.parseFile(depFile.c_str());
-    if (!root)
-        {
-        //error("Could not open %s for reading", depFile.c_str());
-        return result;
-        }
-
-    if (root->getChildren().size()==0 ||
-        root->getChildren()[0]->getName()!="dependencies")
-        {
-        error("loadDepFile: main xml element should be ");
-        delete root;
-        return result;
-        }
-
-    //########## Start parsing
-    Element *depList = root->getChildren()[0];
-
-    std::vector objects = depList->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName != "object")
-            {
-            error("loadDepFile:  should have only  children");
-            return result;
-            }
-
-        String objName   = objectElem->getAttribute("name");
-         //trace("object:%s", objName.c_str());
-        DepRec depObject(objName);
-        depObject.path   = objectElem->getAttribute("path");
-        depObject.suffix = objectElem->getAttribute("suffix");
-        //########## DESCRIPTION
-        std::vector depElems = objectElem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName != "dep")
-                {
-                error("loadDepFile:  should have only  children");
-                return result;
-                }
-            String depName = depElem->getAttribute("name");
-            //trace("    dep:%s", depName.c_str());
-            depObject.files.push_back(depName);
-            }
-
-        //Insert into the result list, in a sorted manner
-        bool inserted = false;
-        std::vector::iterator iter;
-        for (iter = result.begin() ; iter != result.end() ; iter++)
-            {
-            String vpath = iter->path;
-            vpath.append("/");
-            vpath.append(iter->name);
-            String opath = depObject.path;
-            opath.append("/");
-            opath.append(depObject.name);
-            if (vpath > opath)
-                {
-                inserted = true;
-                iter = result.insert(iter, depObject);
-                break;
-                }
-            }
-        if (!inserted)
-            result.push_back(depObject);
-        }
-
-    delete root;
-
-    return result;
-}
-
-
-/**
- *   This loads the dependency cache.
- */
-std::vector DepTool::getDepFile(const String &depFile,
-                   bool forceRefresh)
-{
-    std::vector result;
-    if (forceRefresh)
-        {
-        generateDependencies(depFile);
-        result = loadDepFile(depFile);
-        }
-    else
-        {
-        //try once
-        result = loadDepFile(depFile);
-        if (result.size() == 0)
-            {
-            //fail? try again
-            generateDependencies(depFile);
-            result = loadDepFile(depFile);
-            }
-        }
-    return result;
-}
-
-
-
-
-//########################################################################
-//# T A S K
-//########################################################################
-//forward decl
-class Target;
-class Make;
-
-/**
- *
- */
-class Task : public MakeBase
-{
-
-public:
-
-    typedef enum
-        {
-        TASK_NONE,
-        TASK_CC,
-        TASK_COPY,
-        TASK_CXXTEST_PART,
-        TASK_CXXTEST_ROOT,
-        TASK_CXXTEST_RUN,
-        TASK_DELETE,
-        TASK_ECHO,
-        TASK_JAR,
-        TASK_JAVAC,
-        TASK_LINK,
-        TASK_MAKEFILE,
-        TASK_MKDIR,
-        TASK_MSGFMT,
-        TASK_PKG_CONFIG,
-        TASK_RANLIB,
-        TASK_RC,
-        TASK_SHAREDLIB,
-        TASK_STATICLIB,
-        TASK_STRIP,
-        TASK_TOUCH,
-        TASK_TSTAMP
-        } TaskType;
-        
-
-    /**
-     *
-     */
-    Task(MakeBase &par) : parent(par)
-        { init(); }
-
-    /**
-     *
-     */
-    Task(const Task &other) : parent(other.parent)
-        { init(); assign(other); }
-
-    /**
-     *
-     */
-    Task &operator=(const Task &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~Task()
-        { }
-
-
-    /**
-     *
-     */
-    virtual MakeBase &getParent()
-        { return parent; }
-
-     /**
-     *
-     */
-    virtual int  getType()
-        { return type; }
-
-    /**
-     *
-     */
-    virtual void setType(int val)
-        { type = val; }
-
-    /**
-     *
-     */
-    virtual String getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual bool execute()
-        { return true; }
-
-    /**
-     *
-     */
-    virtual bool parse(Element *elem)
-        { return true; }
-
-    /**
-     *
-     */
-    Task *createTask(Element *elem, int lineNr);
-
-
-protected:
-
-    void init()
-        {
-        type = TASK_NONE;
-        name = "none";
-        }
-
-    void assign(const Task &other)
-        {
-        type = other.type;
-        name = other.name;
-        }
-        
-    /**
-     *  Show task status
-     */
-    void taskstatus(const char *fmt, ...)
-        {
-        va_list args;
-        va_start(args,fmt);
-        fprintf(stdout, "    %s : ", name.c_str());
-        vfprintf(stdout, fmt, args);
-        fprintf(stdout, "\n");
-        va_end(args) ;
-        }
-
-    String getAttribute(Element *elem, const String &attrName)
-        {
-        String str;
-        return str;
-        }
-
-    MakeBase &parent;
-
-    int type;
-
-    String name;
-};
-
-
-
-/**
- * This task runs the C/C++ compiler.  The compiler is invoked
- * for all .c or .cpp files which are newer than their correcsponding
- * .o files.  
- */
-class TaskCC : public Task
-{
-public:
-
-    TaskCC(MakeBase &par) : Task(par)
-        {
-        type = TASK_CC;
-        name = "cc";
-        }
-
-    virtual ~TaskCC()
-        {}
-        
-    virtual bool isExcludedInc(const String &dirname)
-        {
-        for (std::size_t i=0 ; i deps =
-             depTool.getDepFile("build.dep", refreshCache);
-        
-        String incs;
-        incs.append("-I");
-        incs.append(parent.resolve("."));
-        incs.append(" ");
-        if (includes.size()>0)
-            {
-            incs.append(includes);
-            incs.append(" ");
-            }
-        std::set paths;
-        std::vector::iterator viter;
-        for (viter=deps.begin() ; viter!=deps.end() ; viter++)
-            {
-            DepRec dep = *viter;
-            if (dep.path.size()>0)
-                paths.insert(dep.path);
-            }
-        if (source.size()>0)
-            {
-            incs.append(" -I");
-            incs.append(parent.resolve(source));
-            incs.append(" ");
-            }
-        std::set::iterator setIter;
-        for (setIter=paths.begin() ; setIter!=paths.end() ; setIter++)
-            {
-            String dirName = *setIter;
-            //check excludeInc to see if we dont want to include this dir
-            if (isExcludedInc(dirName))
-                continue;
-            incs.append(" -I");
-            String dname;
-            if (source.size()>0)
-                {
-                dname.append(source);
-                dname.append("/");
-                }
-            dname.append(dirName);
-            incs.append(parent.resolve(dname));
-            }
-
-// First create all directories, fails if done in OpenMP parallel loop below... goes superfast anyway, so don't optimize
-        for (std::size_t fi = 0; fi < deps.size() ; ++fi)
-        {
-            DepRec dep = deps[fi];
- 
-            //## Make paths
-            String destPath = dest;
-            if (dep.path.size()>0)
-            {
-                destPath.append("/");
-                destPath.append(dep.path);
-            }
-            //## Make sure destination directory exists
-            if (!createDirectory(destPath))
-            {
-                taskstatus("problem creating folder: %s", destPath.c_str());
-                if (f) {
-                    fclose(f);
-                }
-                return false;
-            }
-        }
-
-        /**
-         * Compile each of the C files that need it
-         */
-        bool errorOccurred = false;
-
-#ifdef _OPENMP 
-        taskstatus("compile with %d threads in parallel", numThreads);
-#       pragma omp parallel for num_threads(numThreads)
-#endif
-
-        for (std::size_t fi = 0; fi < deps.size() ; ++fi)
-        {
-            DepRec dep = deps[fi];
-
-            //## Select command
-            String sfx = dep.suffix;
-            String command = ccCommand;
-            String flags = ccflags;
-            if (sfx == "cpp" || sfx == "cxx" || sfx == "c++" ||
-                 sfx == "cc" || sfx == "CC")
-            {
-                command = cxxCommand;
-                flags += " " + cxxflags;
-            }
- 
-            //## Make paths
-            String destPath = dest;
-            String srcPath  = source;
-            if (dep.path.size()>0)
-            {
-                destPath.append("/");
-                destPath.append(dep.path);
-                srcPath.append("/");
-                srcPath.append(dep.path);
-            }
-
-            //## Check whether it needs to be done
-            String destName;
-            if (destPath.size()>0)
-                {
-                destName.append(destPath);
-                destName.append("/");
-                }
-            destName.append(dep.name);
-            destName.append(".o");
-            String destFullName = parent.resolve(destName);
-            String srcName;
-            if (srcPath.size()>0)
-                {
-                srcName.append(srcPath);
-                srcName.append("/");
-                }
-            srcName.append(dep.name);
-            srcName.append(".");
-            srcName.append(dep.suffix);
-            String srcFullName = parent.resolve(srcName);
-            bool compileMe = false;
-            //# First we check if the source is newer than the .o
-            if (isNewerThan(srcFullName, destFullName))
-                {
-//                taskstatus("compile of %s (req. by: %s)",
-//                        destFullName.c_str(), srcFullName.c_str());
-                fprintf(stdout, "compile %s\n", srcFullName.c_str());
-                compileMe = true;
-                }
-            else
-                {
-                //# secondly, we check if any of the included dependencies
-                //# of the .c/.cpp is newer than the .o
-                for (std::size_t i=0 ; i0)
-                        {
-                        depName.append(source);
-                        depName.append("/");
-                        }
-                    depName.append(dep.files[i]);
-                    String depFullName = parent.resolve(depName);
-                    bool depRequires = isNewerThan(depFullName, destFullName);
-                    //trace("%d %s %s\n", depRequires,
-                    //        destFullName.c_str(), depFullName.c_str());
-                    if (depRequires)
-                        {
-                        taskstatus("compile %s (%s modified)",
-                                srcFullName.c_str(), depFullName.c_str());
-                        compileMe = true;
-                        break;
-                        }
-                    }
-                }
-            if (!compileMe)
-                {
-                continue;
-                }
-
-            //## Assemble the command
-            String cmd = command;
-            cmd.append(" -c ");
-            cmd.append(flags);
-            cmd.append(" ");
-            cmd.append(defines);
-            cmd.append(" ");
-            cmd.append(incs);
-            cmd.append(" ");
-            cmd.append(srcFullName);
-            cmd.append(" -o ");
-            cmd.append(destFullName);
-
-            //## Execute the command
-
-            String outString, errString;
-            bool ret = executeCommand(cmd.c_str(), "", outString, errString);
-
-            if (f)
-                {
-                fprintf(f, "########################### File : %s\n",
-                             srcFullName.c_str());
-                fprintf(f, "#### COMMAND ###\n");
-                int col = 0;
-                for (std::size_t i = 0 ; i < cmd.size() ; i++)
-                    {
-                    char ch = cmd[i];
-                    if (isspace(ch)  && col > 63)
-                        {
-                        fputc('\n', f);
-                        col = 0;
-                        }
-                    else
-                        {
-                        fputc(ch, f);
-                        col++;
-                        }
-                    if (col > 76)
-                        {
-                        fputc('\n', f);
-                        col = 0;
-                        }
-                    }
-                fprintf(f, "\n");
-                fprintf(f, "#### STDOUT ###\n%s\n", outString.c_str());
-                fprintf(f, "#### STDERR ###\n%s\n\n", errString.c_str());
-                fflush(f);
-                }
-            if (!ret) {
-                error("problem compiling: %s", errString.c_str());
-                errorOccurred = true;
-            } else if (!errString.empty()) {
-                fprintf(stdout, "STDERR: \n%s\n", errString.c_str());
-            }
-
-
-            if (errorOccurred && !continueOnError) {
-#ifndef _OPENMP // figure out a way to break the loop here with OpenMP
-                break;
-#endif
-            }
-
-            removeFromStatCache(getNativePath(destFullName));
-        }
-
-        if (f)
-            {
-            fclose(f);
-            }
-        
-        return !errorOccurred;
-        }
-
-
-    virtual bool parse(Element *elem)
-        {
-        String s;
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (commandOpt.size()>0)
-            { cxxCommandOpt = ccCommandOpt = commandOpt; }
-        if (!parent.getAttribute(elem, "cc", ccCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "cxx", cxxCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "destdir", destOpt))
-            return false;
-        if (!parent.getAttribute(elem, "continueOnError", continueOnErrorOpt))
-            return false;
-        if (!parent.getAttribute(elem, "refreshCache", refreshCacheOpt))
-            return false;
-
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "flags")
-                {
-                if (!parent.getValue(child, flagsOpt))
-                    return false;
-                flagsOpt = strip(flagsOpt);
-                }
-            else if (tagName == "cxxflags")
-                {
-                if (!parent.getValue(child, cxxflagsOpt))
-                    return false;
-                cxxflagsOpt = strip(cxxflagsOpt);
-                }
-            else if (tagName == "includes")
-                {
-                if (!parent.getValue(child, includesOpt))
-                    return false;
-                includesOpt = strip(includesOpt);
-                }
-            else if (tagName == "defines")
-                {
-                if (!parent.getValue(child, definesOpt))
-                    return false;
-                definesOpt = strip(definesOpt);
-                }
-            else if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                sourceOpt = fileSet.getDirectory();
-                }
-            else if (tagName == "excludeinc")
-                {
-                if (!parseFileList(child, parent, excludeInc))
-                    return false;
-                }
-            }
-
-        return true;
-        }
-        
-protected:
-
-    String   commandOpt;
-    String   ccCommandOpt;
-    String   cxxCommandOpt;
-    String   sourceOpt;
-    String   destOpt;
-    String   flagsOpt;
-    String   cxxflagsOpt;
-    String   definesOpt;
-    String   includesOpt;
-    String   continueOnErrorOpt;
-    String   refreshCacheOpt;
-    FileSet  fileSet;
-    FileList excludeInc;
-    
-};
-
-
-
-/**
- *
- */
-class TaskCopy : public Task
-{
-public:
-
-    typedef enum
-        {
-        CP_NONE,
-        CP_TOFILE,
-        CP_TODIR
-        } CopyType;
-
-    TaskCopy(MakeBase &par) : Task(par)
-        {
-        type        = TASK_COPY;
-        name        = "copy";
-        cptype      = CP_NONE;
-        haveFileSet = false;
-        }
-
-    virtual ~TaskCopy()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName   = parent.eval(fileNameOpt   , ".");
-        String toFileName = parent.eval(toFileNameOpt , ".");
-        String toDirName  = parent.eval(toDirNameOpt  , ".");
-        bool   verbose    = parent.evalBool(verboseOpt, false);
-        switch (cptype)
-           {
-           case CP_TOFILE:
-               {
-               if (fileName.size()>0)
-                   {
-                   taskstatus("%s to %s",
-                        fileName.c_str(), toFileName.c_str());
-                   String fullSource = parent.resolve(fileName);
-                   String fullDest = parent.resolve(toFileName);
-                   if (verbose)
-                       taskstatus("copy %s to file %s", fullSource.c_str(),
-                                          fullDest.c_str());
-                   if (!isRegularFile(fullSource))
-                       {
-                       error("copy : file %s does not exist", fullSource.c_str());
-                       return false;
-                       }
-                   if (!isNewerThan(fullSource, fullDest))
-                       {
-                       taskstatus("skipped");
-                       return true;
-                       }
-                   if (!copyFile(fullSource, fullDest))
-                       return false;
-                   taskstatus("1 file copied");
-                   }
-               return true;
-               }
-           case CP_TODIR:
-               {
-               if (haveFileSet)
-                   {
-                   if (!listFiles(parent, fileSet))
-                       return false;
-                   String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-
-                   taskstatus("%s to %s",
-                       fileSetDir.c_str(), toDirName.c_str());
-
-                   int nrFiles = 0;
-                   for (std::size_t i=0 ; i0)
-                           {
-                           sourcePath.append(fileSetDir);
-                           sourcePath.append("/");
-                           }
-                       sourcePath.append(fileName);
-                       String fullSource = parent.resolve(sourcePath);
-                       
-                       //Get the immediate parent directory's base name
-                       String baseFileSetDir = fileSetDir;
-                       std::size_t pos = baseFileSetDir.find_last_of('/');
-                       if (pos!=baseFileSetDir.npos &&
-                                  pos < baseFileSetDir.size()-1)
-                           baseFileSetDir =
-                              baseFileSetDir.substr(pos+1,
-                                   baseFileSetDir.size());
-                       //Now make the new path
-                       String destPath;
-                       if (toDirName.size()>0)
-                           {
-                           destPath.append(toDirName);
-                           destPath.append("/");
-                           }
-                       if (baseFileSetDir.size()>0)
-                           {
-                           destPath.append(baseFileSetDir);
-                           destPath.append("/");
-                           }
-                       destPath.append(fileName);
-                       String fullDest = parent.resolve(destPath);
-                       //trace("fileName:%s", fileName.c_str());
-                       if (verbose)
-                           taskstatus("copy %s to new dir : %s",
-                                 fullSource.c_str(), fullDest.c_str());
-                       if (!isNewerThan(fullSource, fullDest))
-                           {
-                           if (verbose)
-                               taskstatus("copy skipping %s", fullSource.c_str());
-                           continue;
-                           }
-                       if (!copyFile(fullSource, fullDest))
-                           return false;
-                       nrFiles++;
-                       }
-                   taskstatus("%d file(s) copied", nrFiles);
-                   }
-               else //file source
-                   {
-                   //For file->dir we want only the basename of
-                   //the source appended to the dest dir
-                   taskstatus("%s to %s", 
-                       fileName.c_str(), toDirName.c_str());
-                   String baseName = fileName;
-                   std::size_t pos = baseName.find_last_of('/');
-                   if (pos!=baseName.npos && pos0)
-                       {
-                       destPath.append(toDirName);
-                       destPath.append("/");
-                       }
-                   destPath.append(baseName);
-                   String fullDest = parent.resolve(destPath);
-                   if (verbose)
-                       taskstatus("file %s to new dir : %s", fullSource.c_str(),
-                                          fullDest.c_str());
-                   if (!isRegularFile(fullSource))
-                       {
-                       error("copy : file %s does not exist", fullSource.c_str());
-                       return false;
-                       }
-                   if (!isNewerThan(fullSource, fullDest))
-                       {
-                       taskstatus("skipped");
-                       return true;
-                       }
-                   if (!copyFile(fullSource, fullDest))
-                       return false;
-                   taskstatus("1 file copied");
-                   }
-               return true;
-               }
-           }
-        return true;
-        }
-
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "tofile", toFileNameOpt))
-            return false;
-        if (toFileNameOpt.size() > 0)
-            cptype = CP_TOFILE;
-        if (!parent.getAttribute(elem, "todir", toDirNameOpt))
-            return false;
-        if (toDirNameOpt.size() > 0)
-            cptype = CP_TODIR;
-        if (!parent.getAttribute(elem, "verbose", verboseOpt))
-            return false;
-            
-        haveFileSet = false;
-        
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    {
-                    error("problem getting fileset");
-                    return false;
-                    }
-                haveFileSet = true;
-                }
-            }
-
-        //Perform validity checks
-        if (fileNameOpt.size()>0 && fileSet.size()>0)
-            {
-            error(" can only have one of : file= and ");
-            return false;
-            }
-        if (toFileNameOpt.size()>0 && toDirNameOpt.size()>0)
-            {
-            error(" can only have one of : tofile= or todir=");
-            return false;
-            }
-        if (haveFileSet && toDirNameOpt.size()==0)
-            {
-            error("a  task with a  must have : todir=");
-            return false;
-            }
-        if (cptype == CP_TOFILE && fileNameOpt.size()==0)
-            {
-            error(" tofile= must be associated with : file=");
-            return false;
-            }
-        if (cptype == CP_TODIR && fileNameOpt.size()==0 && !haveFileSet)
-            {
-            error(" todir= must be associated with : file= or ");
-            return false;
-            }
-
-        return true;
-        }
-        
-private:
-
-    int cptype;
-    bool haveFileSet;
-
-    FileSet fileSet;
-    String  fileNameOpt;
-    String  toFileNameOpt;
-    String  toDirNameOpt;
-    String  verboseOpt;
-};
-
-
-/**
- * Generate CxxTest files
- */
-class TaskCxxTestPart: public Task
-{
-public:
-
-    TaskCxxTestPart(MakeBase &par) : Task(par)
-         {
-         type    = TASK_CXXTEST_PART;
-         name    = "cxxtestpart";
-         }
-
-    virtual ~TaskCxxTestPart()
-        {}
-
-    virtual bool execute()
-        {
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-                
-        String fullDest = parent.resolve(parent.eval(destPathOpt, "."));
-        String cmd = parent.eval(commandOpt, "cxxtestgen.py");
-        cmd.append(" --part -o ");
-        cmd.append(fullDest);
-
-        unsigned int newFiles = 0;
-        for (std::size_t i=0 ; i0)
-                {
-                sourcePath.append(fileSetDir);
-                sourcePath.append("/");
-                }
-            sourcePath.append(fileName);
-            String fullSource = parent.resolve(sourcePath);
-
-            cmd.append(" ");
-            cmd.append(fullSource);
-            if (isNewerThan(fullSource, fullDest)) newFiles++;
-            }
-        
-        if (newFiles>0) {
-            size_t const lastSlash = fullDest.find_last_of('/');
-            if (lastSlash != fullDest.npos) {
-                String directory(fullDest, 0, lastSlash);
-                if (!createDirectory(directory))
-                    return false;
-            }
-
-            String outString, errString;
-            if (!executeCommand(cmd.c_str(), "", outString, errString))
-                {
-                error(" problem: %s", errString.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(fullDest));
-        }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", destPathOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    String  commandOpt;
-    String  destPathOpt;
-    FileSet fileSet;
-
-};
-
-
-/**
- * Generate the CxxTest root file
- */
-class TaskCxxTestRoot: public Task
-{
-public:
-
-    TaskCxxTestRoot(MakeBase &par) : Task(par)
-         {
-         type    = TASK_CXXTEST_ROOT;
-         name    = "cxxtestroot";
-         }
-
-    virtual ~TaskCxxTestRoot()
-        {}
-
-    virtual bool execute()
-        {
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-        unsigned int newFiles = 0;
-                
-        String fullDest = parent.resolve(parent.eval(destPathOpt, "."));
-        String cmd = parent.eval(commandOpt, "cxxtestgen.py");
-        cmd.append(" --root -o ");
-        cmd.append(fullDest);
-        String templateFile = parent.eval(templateFileOpt, "");
-        if (templateFile.size()>0) {
-            String fullTemplate = parent.resolve(templateFile);
-            cmd.append(" --template=");
-            cmd.append(fullTemplate);
-            if (isNewerThan(fullTemplate, fullDest)) newFiles++;
-        }
-
-        for (std::size_t i=0 ; i0)
-                {
-                sourcePath.append(fileSetDir);
-                sourcePath.append("/");
-                }
-            sourcePath.append(fileName);
-            String fullSource = parent.resolve(sourcePath);
-
-            cmd.append(" ");
-            cmd.append(fullSource);
-            if (isNewerThan(fullSource, fullDest)) newFiles++;
-            }
-        
-        if (newFiles>0) {
-            size_t const lastSlash = fullDest.find_last_of('/');
-            if (lastSlash != fullDest.npos) {
-                String directory(fullDest, 0, lastSlash);
-                if (!createDirectory(directory))
-                    return false;
-            }
-
-            String outString, errString;
-            if (!executeCommand(cmd.c_str(), "", outString, errString))
-                {
-                error(" problem: %s", errString.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(fullDest));
-        }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "template", templateFileOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", destPathOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    String  commandOpt;
-    String  templateFileOpt;
-    String  destPathOpt;
-    FileSet fileSet;
-
-};
-
-
-/**
- * Execute the CxxTest test executable
- */
-class TaskCxxTestRun: public Task
-{
-public:
-
-    TaskCxxTestRun(MakeBase &par) : Task(par)
-         {
-         type    = TASK_CXXTEST_RUN;
-         name    = "cxxtestrun";
-         }
-
-    virtual ~TaskCxxTestRun()
-        {}
-
-    virtual bool execute()
-        {
-        unsigned int newFiles = 0;
-                
-        String workingDir = parent.resolve(parent.eval(workingDirOpt, "inkscape"));
-        String rawCmd = parent.eval(commandOpt, "build/cxxtests");
-
-        String cmdExe;
-        if (fileExists(rawCmd)) {
-            cmdExe = rawCmd;
-        } else if (fileExists(rawCmd + ".exe")) {
-            cmdExe = rawCmd + ".exe";
-        } else {
-            error(" problem: cxxtests executable not found! (command=\"%s\")", rawCmd.c_str());
-        }
-        // Note that the log file names are based on the exact name used to call cxxtests (it uses argv[0] + ".log"/".xml")
-        if (isNewerThan(cmdExe, rawCmd + ".log") || isNewerThan(cmdExe, rawCmd + ".xml")) newFiles++;
-
-        // Prepend the necessary ../'s
-        String cmd = rawCmd;
-        unsigned int workingDirDepth = 0;
-        bool wasSlash = true;
-        for(size_t i=0; i0) {
-            char olddir[1024];
-            if (workingDir.size()>0) {
-                // TODO: Double-check usage of getcwd and handle chdir errors
-                getcwd(olddir, 1024);
-                chdir(workingDir.c_str());
-            }
-
-            String outString;
-            if (!executeCommand(cmd.c_str(), "", outString, outString))
-                {
-                error(" problem: %s", outString.c_str());
-                return false;
-                }
-
-            if (workingDir.size()>0) {
-                // TODO: Handle errors?
-                chdir(olddir);
-            }
-
-            removeFromStatCache(getNativePath(cmd + ".log"));
-            removeFromStatCache(getNativePath(cmd + ".xml"));
-        }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "workingdir", workingDirOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    String  commandOpt;
-    String  workingDirOpt;
-
-};
-
-
-/**
- *
- */
-class TaskDelete : public Task
-{
-public:
-
-    typedef enum
-        {
-        DEL_FILE,
-        DEL_DIR,
-        DEL_FILESET
-        } DeleteType;
-
-    TaskDelete(MakeBase &par) : Task(par)
-        { 
-        type        = TASK_DELETE;
-        name        = "delete";
-        delType     = DEL_FILE;
-        }
-
-    virtual ~TaskDelete()
-        {}
-
-    virtual bool execute()
-        {
-        String dirName   = parent.eval(dirNameOpt, ".");
-        String fileName  = parent.eval(fileNameOpt, ".");
-        bool verbose     = parent.evalBool(verboseOpt, false);
-        bool quiet       = parent.evalBool(quietOpt, false);
-        bool failOnError = parent.evalBool(failOnErrorOpt, true);
-        switch (delType)
-            {
-            case DEL_FILE:
-                {
-                taskstatus("file: %s", fileName.c_str());
-                String fullName = parent.resolve(fileName);
-                char *fname = (char *)fullName.c_str();
-                if (!quiet && verbose)
-                    taskstatus("path: %s", fname);
-                if (failOnError && !removeFile(fullName))
-                    {
-                    //error("Could not delete file '%s'", fullName.c_str());
-                    return false;
-                    }
-                return true;
-                }
-            case DEL_DIR:
-                {
-                taskstatus("dir: %s", dirName.c_str());
-                String fullDir = parent.resolve(dirName);
-                if (!quiet && verbose)
-                    taskstatus("path: %s", fullDir.c_str());
-                if (failOnError && !removeDirectory(fullDir))
-                    {
-                    //error("Could not delete directory '%s'", fullDir.c_str());
-                    return false;
-                    }
-                return true;
-                }
-            }
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (fileNameOpt.size() > 0)
-            delType = DEL_FILE;
-        if (!parent.getAttribute(elem, "dir", dirNameOpt))
-            return false;
-        if (dirNameOpt.size() > 0)
-            delType = DEL_DIR;
-        if (fileNameOpt.size()>0 && dirNameOpt.size()>0)
-            {
-            error(" can have one attribute of file= or dir=");
-            return false;
-            }
-        if (fileNameOpt.size()==0 && dirNameOpt.size()==0)
-            {
-            error(" must have one attribute of file= or dir=");
-            return false;
-            }
-        if (!parent.getAttribute(elem, "verbose", verboseOpt))
-            return false;
-        if (!parent.getAttribute(elem, "quiet", quietOpt))
-            return false;
-        if (!parent.getAttribute(elem, "failonerror", failOnErrorOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    int delType;
-    String dirNameOpt;
-    String fileNameOpt;
-    String verboseOpt;
-    String quietOpt;
-    String failOnErrorOpt;
-};
-
-
-/**
- * Send a message to stdout
- */
-class TaskEcho : public Task
-{
-public:
-
-    TaskEcho(MakeBase &par) : Task(par)
-        { type = TASK_ECHO; name = "echo"; }
-
-    virtual ~TaskEcho()
-        {}
-
-    virtual bool execute()
-        {
-        //let message have priority over text
-        String message = parent.eval(messageOpt, "");
-        String text    = parent.eval(textOpt, "");
-        if (message.size() > 0)
-            {
-            fprintf(stdout, "%s\n", message.c_str());
-            }
-        else if (text.size() > 0)
-            {
-            fprintf(stdout, "%s\n", text.c_str());
-            }
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getValue(elem, textOpt))
-            return false;
-        textOpt    = leftJustify(textOpt);
-        if (!parent.getAttribute(elem, "message", messageOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    String messageOpt;
-    String textOpt;
-};
-
-
-
-/**
- *
- */
-class TaskJar : public Task
-{
-public:
-
-    TaskJar(MakeBase &par) : Task(par)
-        { type = TASK_JAR; name = "jar"; }
-
-    virtual ~TaskJar()
-        {}
-
-    virtual bool execute()
-        {
-        String command  = parent.eval(commandOpt, "jar");
-        String basedir  = parent.eval(basedirOpt, ".");
-        String destfile = parent.eval(destfileOpt, ".");
-
-        String cmd = command;
-        cmd.append(" -cf ");
-        cmd.append(destfile);
-        cmd.append(" -C ");
-        cmd.append(basedir);
-        cmd.append(" .");
-
-        String execCmd = cmd;
-
-        String outString, errString;
-        bool ret = executeCommand(execCmd.c_str(), "", outString, errString);
-        if (!ret)
-            {
-            error(" command '%s' failed :\n %s",
-                                      execCmd.c_str(), errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(destfile));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "basedir", basedirOpt))
-            return false;
-        if (!parent.getAttribute(elem, "destfile", destfileOpt))
-            return false;
-        if (basedirOpt.size() == 0 || destfileOpt.size() == 0)
-            {
-            error(" required both basedir and destfile attributes to be set");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String basedirOpt;
-    String destfileOpt;
-};
-
-
-/**
- *
- */
-class TaskJavac : public Task
-{
-public:
-
-    TaskJavac(MakeBase &par) : Task(par)
-        { 
-        type = TASK_JAVAC; name = "javac";
-        }
-
-    virtual ~TaskJavac()
-        {}
-
-    virtual bool execute()
-        {
-        String command  = parent.eval(commandOpt, "javac");
-        String srcdir   = parent.eval(srcdirOpt, ".");
-        String destdir  = parent.eval(destdirOpt, ".");
-        String target   = parent.eval(targetOpt, "");
-
-        std::vector fileList;
-        if (!listFiles(srcdir, "", fileList))
-            {
-            return false;
-            }
-        String cmd = command;
-        cmd.append(" -d ");
-        cmd.append(destdir);
-        cmd.append(" -classpath ");
-        cmd.append(destdir);
-        cmd.append(" -sourcepath ");
-        cmd.append(srcdir);
-        cmd.append(" ");
-        if (target.size()>0)
-            {
-            cmd.append(" -target ");
-            cmd.append(target);
-            cmd.append(" ");
-            }
-        String fname = "javalist.btool";
-        FILE *f = fopen(fname.c_str(), "w");
-        int count = 0;
-        for (std::size_t i=0 ; i command '%s' failed :\n %s",
-                                      execCmd.c_str(), errString.c_str());
-            return false;
-            }
-        // TODO: 
-        //removeFromStatCache(getNativePath(........));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "srcdir", srcdirOpt))
-            return false;
-        if (!parent.getAttribute(elem, "destdir", destdirOpt))
-            return false;
-        if (srcdirOpt.size() == 0 || destdirOpt.size() == 0)
-            {
-            error(" required both srcdir and destdir attributes to be set");
-            return false;
-            }
-        if (!parent.getAttribute(elem, "target", targetOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String srcdirOpt;
-    String destdirOpt;
-    String targetOpt;
-
-};
-
-
-/**
- *
- */
-class TaskLink : public Task
-{
-public:
-
-    TaskLink(MakeBase &par) : Task(par)
-        {
-        type = TASK_LINK; name = "link";
-        }
-
-    virtual ~TaskLink()
-        {}
-
-    virtual void UniqueParams(std::string& source) {
-        size_t prev = 0;
-        size_t next = 0;
-        std::list thelist;
-        std::list::iterator it;
-        std::string tstring=" ";
-        source +=std::string(" "); // else the last token may be lost
-	while ((next = source.find_first_of(" ", prev)) != std::string::npos){
-	   if (next - prev != 0){
-	      thelist.push_back(source.substr(prev, next - prev));
-	   }
-	   prev = next + 1;
-	}
-        thelist.sort();
-        source.clear();
-        source +=std::string(" ");
-        for(it=thelist.begin(); it!=thelist.end();it++){
-        	if(*it != tstring){
-        		tstring = *it;
-        		source +=tstring;
-        		source +=std::string(" ");
-        	}
-        }
-     }
-
-    virtual bool execute()
-        {
-        String  command        = parent.eval(commandOpt, "g++");
-        String  fileName       = parent.eval(fileNameOpt, "");
-        String  flags          = parent.eval(flagsOpt, "");
-        String  libs           = parent.eval(libsOpt, "");
-        bool    doStrip        = parent.evalBool(doStripOpt, false);
-        String  symFileName    = parent.eval(symFileNameOpt, "");
-        String  stripCommand   = parent.eval(stripCommandOpt, "strip");
-        String  objcopyCommand = parent.eval(objcopyCommandOpt, "objcopy");
-
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-        //trace("%d files in %s", fileSet.size(), fileSetDir.c_str());
-        bool doit = false;
-        String fullTarget = parent.resolve(fileName);
-        String cmd = command;
-        cmd.append(" -o ");
-        cmd.append(fullTarget);
-        cmd.append(" ");
-        cmd.append(flags);
-        for (std::size_t i=0 ; i0)
-                {
-                obj.append(fileSetDir);
-                obj.append("/");
-                }
-            obj.append(fileSet[i]);
-            String fullObj = parent.resolve(obj);
-            String nativeFullObj = getNativePath(fullObj);
-            cmd.append(nativeFullObj);
-            //trace("link: tgt:%s obj:%s", fullTarget.c_str(),
-            //          fullObj.c_str());
-            if (isNewerThan(fullObj, fullTarget))
-                doit = true;
-            }
-        cmd.append(" ");
-        // trim it down to unique elements, reduce command line size
-        UniqueParams(libs);
-        cmd.append(libs);
-        if (!doit)
-            {
-            //trace("link not needed");
-            return true;
-            }
-        //trace("LINK cmd:%s", cmd.c_str());
-
-
-        String outbuf, errbuf;
-        // std::cout << "DEBUG command = " << cmd << std::endl;
-        if (!executeCommand(cmd.c_str(), "", outbuf, errbuf))
-            {
-            error("LINK problem: %s", errbuf.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullTarget));
-
-        if (symFileName.size()>0)
-            {
-            String symFullName = parent.resolve(symFileName);
-            cmd = objcopyCommand;
-            cmd.append(" --only-keep-debug ");
-            cmd.append(getNativePath(fullTarget));
-            cmd.append(" ");
-            cmd.append(getNativePath(symFullName));
-            if (!executeCommand(cmd, "", outbuf, errbuf))
-                {
-                error(" symbol file failed : %s", errbuf.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(symFullName));
-            }
-            
-        if (doStrip)
-            {
-            cmd = stripCommand;
-            cmd.append(" ");
-            cmd.append(getNativePath(fullTarget));
-            if (!executeCommand(cmd, "", outbuf, errbuf))
-               {
-               error(" failed : %s", errbuf.c_str());
-               return false;
-               }
-            removeFromStatCache(getNativePath(fullTarget));
-            }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "objcopycommand", objcopyCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "stripcommand", stripCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "strip", doStripOpt))
-            return false;
-        if (!parent.getAttribute(elem, "symfile", symFileNameOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            else if (tagName == "flags")
-                {
-                if (!parent.getValue(child, flagsOpt))
-                    return false;
-                flagsOpt = strip(flagsOpt);
-                }
-            else if (tagName == "libs")
-                {
-                if (!parent.getValue(child, libsOpt))
-                    return false;
-                libsOpt = strip(libsOpt);
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String  commandOpt;
-    String  fileNameOpt;
-    String  flagsOpt;
-    String  libsOpt;
-    String  doStripOpt;
-    String  symFileNameOpt;
-    String  stripCommandOpt;
-    String  objcopyCommandOpt;
-
-};
-
-
-
-/**
- * Create a named file
- */
-class TaskMakeFile : public Task
-{
-public:
-
-    TaskMakeFile(MakeBase &par) : Task(par)
-        { type = TASK_MAKEFILE; name = "makefile"; }
-
-    virtual ~TaskMakeFile()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName = parent.eval(fileNameOpt, "");
-        bool force      = parent.evalBool(forceOpt, false);
-        String text     = parent.eval(textOpt, "");
-
-        taskstatus("%s", fileName.c_str());
-        String fullName = parent.resolve(fileName);
-        if (!force && !isNewerThan(parent.getURI().getPath(), fullName))
-            {
-            taskstatus("skipped");
-            return true;
-            }
-        String fullNative = getNativePath(fullName);
-        //trace("fullName:%s", fullName.c_str());
-        FILE *f = fopen(fullNative.c_str(), "w");
-        if (!f)
-            {
-            error(" could not open %s for writing : %s",
-                fullName.c_str(), strerror(errno));
-            return false;
-            }
-        for (std::size_t i=0 ; i requires 'file=\"filename\"' attribute");
-            return false;
-            }
-        if (!parent.getValue(elem, textOpt))
-            return false;
-        textOpt = leftJustify(textOpt);
-        //trace("dirname:%s", dirName.c_str());
-        return true;
-        }
-
-private:
-
-    String fileNameOpt;
-    String forceOpt;
-    String textOpt;
-};
-
-
-
-/**
- * Create a named directory
- */
-class TaskMkDir : public Task
-{
-public:
-
-    TaskMkDir(MakeBase &par) : Task(par)
-        { type = TASK_MKDIR; name = "mkdir"; }
-
-    virtual ~TaskMkDir()
-        {}
-
-    virtual bool execute()
-        {
-        String dirName = parent.eval(dirNameOpt, ".");
-        
-        taskstatus("%s", dirName.c_str());
-        String fullDir = parent.resolve(dirName);
-        //trace("fullDir:%s", fullDir.c_str());
-        if (!createDirectory(fullDir))
-            return false;
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "dir", dirNameOpt))
-            return false;
-        if (dirNameOpt.size() == 0)
-            {
-            error(" requires 'dir=\"dirname\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String dirNameOpt;
-};
-
-
-
-/**
- * Create a named directory
- */
-class TaskMsgFmt: public Task
-{
-public:
-
-    TaskMsgFmt(MakeBase &par) : Task(par)
-         { type = TASK_MSGFMT;  name = "msgfmt"; }
-
-    virtual ~TaskMsgFmt()
-        {}
-
-    virtual bool execute()
-        {
-        String  command   = parent.eval(commandOpt, "msgfmt");
-        String  toDirName = parent.eval(toDirNameOpt, ".");
-        String  outName   = parent.eval(outNameOpt, "");
-        bool    owndir    = parent.evalBool(owndirOpt, false);
-
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = fileSet.getDirectory();
-
-        //trace("msgfmt: %d", fileSet.size());
-        for (std::size_t i=0 ; i0)
-                {
-                sourcePath.append(fileSetDir);
-                sourcePath.append("/");
-                }
-            sourcePath.append(fileName);
-            String fullSource = parent.resolve(sourcePath);
-
-            String destPath;
-            if (toDirName.size()>0)
-                {
-                destPath.append(toDirName);
-                destPath.append("/");
-                }
-            if (owndir)
-                {
-                String subdir = fileName;
-                std::size_t pos = subdir.find_last_of('.');
-                if (pos != subdir.npos)
-                    subdir = subdir.substr(0, pos);
-                destPath.append(subdir);
-                destPath.append("/");
-                }
-            //Pick the output file name
-            if (outName.size() > 0)
-                {
-                destPath.append(outName);
-                }
-            else
-                {
-                destPath.append(fileName);
-                destPath[destPath.size()-2] = 'm';
-                }
-
-            String fullDest = parent.resolve(destPath);
-
-            if (!isNewerThan(fullSource, fullDest))
-                {
-                //trace("skip %s", fullSource.c_str());
-                continue;
-                }
-                
-            String cmd = command;
-            cmd.append(" ");
-            cmd.append(fullSource);
-            cmd.append(" -o ");
-            cmd.append(fullDest);
-            
-            int pos = fullDest.find_last_of('/');
-            if (pos>0)
-                {
-                String fullDestPath = fullDest.substr(0, pos);
-                if (!createDirectory(fullDestPath))
-                    return false;
-                }
-
-
-
-            String outString, errString;
-           if (!executeCommand(cmd.c_str(), "", outString, errString))
-                {
-                error(" problem: %s", errString.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(fullDest));
-            }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "todir", toDirNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", outNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "owndir", owndirOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String  commandOpt;
-    String  toDirNameOpt;
-    String  outNameOpt;
-    String  owndirOpt;
-
-};
-
-
-
-/**
- *  Perform a Package-Config query similar to pkg-config
- */
-class TaskPkgConfig : public Task
-{
-public:
-
-    typedef enum
-        {
-        PKG_CONFIG_QUERY_CFLAGS,
-        PKG_CONFIG_QUERY_LIBS,
-        PKG_CONFIG_QUERY_ALL
-        } QueryTypes;
-
-    TaskPkgConfig(MakeBase &par) : Task(par)
-        {
-        type = TASK_PKG_CONFIG;
-        name = "pkg-config";
-        }
-
-    virtual ~TaskPkgConfig()
-        {}
-
-    virtual bool execute()
-        {
-        String pkgName       = parent.eval(pkgNameOpt,      "");
-        String prefix        = parent.eval(prefixOpt,       "");
-        String propName      = parent.eval(propNameOpt,     "");
-        String pkgConfigPath = parent.eval(pkgConfigPathOpt,"");
-        String query         = parent.eval(queryOpt,        "all");
-
-        String path = parent.resolve(pkgConfigPath);
-        PkgConfig pkgconfig;
-        pkgconfig.setPath(path);
-        pkgconfig.setPrefix(prefix);
-        if (!pkgconfig.query(pkgName))
-            {
-            error(" query failed for '%s", name.c_str());
-            return false;
-            }
-            
-        String val = "";
-        if (query == "cflags")
-            val = pkgconfig.getCflags();
-        else if (query == "libs")
-            val =pkgconfig.getLibs();
-        else if (query == "all")
-            val = pkgconfig.getAll();
-        else
-            {
-            error(" unhandled query : %s", query.c_str());
-            return false;
-            }
-        taskstatus("property %s = '%s'", propName.c_str(), val.c_str());
-        parent.setProperty(propName, val);
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        //# NAME
-        if (!parent.getAttribute(elem, "name", pkgNameOpt))
-            return false;
-        if (pkgNameOpt.size()==0)
-            {
-            error(" requires 'name=\"package\"' attribute");
-            return false;
-            }
-
-        //# PROPERTY
-        if (!parent.getAttribute(elem, "property", propNameOpt))
-            return false;
-        if (propNameOpt.size()==0)
-            {
-            error(" requires 'property=\"name\"' attribute");
-            return false;
-            }
-        //# PATH
-        if (!parent.getAttribute(elem, "path", pkgConfigPathOpt))
-            return false;
-        //# PREFIX
-        if (!parent.getAttribute(elem, "prefix", prefixOpt))
-            return false;
-        //# QUERY
-        if (!parent.getAttribute(elem, "query", queryOpt))
-            return false;
-
-        return true;
-        }
-
-private:
-
-    String queryOpt;
-    String pkgNameOpt;
-    String prefixOpt;
-    String propNameOpt;
-    String pkgConfigPathOpt;
-
-};
-
-
-
-
-
-
-/**
- *  Process an archive to allow random access
- */
-class TaskRanlib : public Task
-{
-public:
-
-    TaskRanlib(MakeBase &par) : Task(par)
-        { type = TASK_RANLIB; name = "ranlib"; }
-
-    virtual ~TaskRanlib()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName = parent.eval(fileNameOpt, "");
-        String command  = parent.eval(commandOpt, "ranlib");
-
-        String fullName = parent.resolve(fileName);
-        //trace("fullDir:%s", fullDir.c_str());
-        String cmd = command;
-        cmd.append(" ");
-        cmd.append(fullName);
-        String outbuf, errbuf;
-        if (!executeCommand(cmd, "", outbuf, errbuf))
-            return false;
-        // TODO:
-        //removeFromStatCache(getNativePath(fullDest));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (fileNameOpt.size() == 0)
-            {
-            error(" requires 'file=\"fileNname\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String fileNameOpt;
-    String commandOpt;
-};
-
-
-
-/**
- * Compile a resource file into a binary object
- */
-class TaskRC : public Task
-{
-public:
-
-    TaskRC(MakeBase &par) : Task(par)
-        { type = TASK_RC; name = "rc"; }
-
-    virtual ~TaskRC()
-        {}
-
-    virtual bool execute()
-        {
-        String command  = parent.eval(commandOpt,  "windres");
-        String flags    = parent.eval(flagsOpt,    "");
-        String fileName = parent.eval(fileNameOpt, "");
-        String outName  = parent.eval(outNameOpt,  "");
-
-        String fullFile = parent.resolve(fileName);
-        String fullOut  = parent.resolve(outName);
-        if (!isNewerThan(fullFile, fullOut))
-            return true;
-        String cmd = command;
-        cmd.append(" -o ");
-        cmd.append(fullOut);
-        cmd.append(" ");
-        cmd.append(flags);
-        cmd.append(" ");
-        cmd.append(fullFile);
-
-        String outString, errString;
-        if (!executeCommand(cmd.c_str(), "", outString, errString))
-            {
-            error("RC problem: %s", errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullOut));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", outNameOpt))
-            return false;
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "flags")
-                {
-                if (!parent.getValue(child, flagsOpt))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String flagsOpt;
-    String fileNameOpt;
-    String outNameOpt;
-
-};
-
-
-
-/**
- *  Collect .o's into a .so or DLL
- */
-class TaskSharedLib : public Task
-{
-public:
-
-    TaskSharedLib(MakeBase &par) : Task(par)
-        { type = TASK_SHAREDLIB; name = "dll"; }
-
-    virtual ~TaskSharedLib()
-        {}
-
-    virtual bool execute()
-        {
-        String command     = parent.eval(commandOpt, "dllwrap");
-        String fileName    = parent.eval(fileNameOpt, "");
-        String defFileName = parent.eval(defFileNameOpt, "");
-        String impFileName = parent.eval(impFileNameOpt, "");
-        String libs        = parent.eval(libsOpt, "");
-
-        //trace("###########HERE %d", fileSet.size());
-        bool doit = false;
-        
-        String fullOut = parent.resolve(fileName);
-        //trace("ar fullout: %s", fullOut.c_str());
-        
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-            //trace("ar : %s/%s", fullOut.c_str(), fullName.c_str());
-            if (isNewerThan(fullName, fullOut))
-                doit = true;
-            }
-        //trace("Needs it:%d", doit);
-        if (!doit)
-            {
-            return true;
-            }
-
-        String cmd = "dllwrap";
-        cmd.append(" -o ");
-        cmd.append(fullOut);
-        if (defFileName.size()>0)
-            {
-            cmd.append(" --def ");
-            cmd.append(defFileName);
-            cmd.append(" ");
-            }
-        if (impFileName.size()>0)
-            {
-            cmd.append(" --implib ");
-            cmd.append(impFileName);
-            cmd.append(" ");
-            }
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-
-            cmd.append(" ");
-            cmd.append(fullName);
-            }
-        cmd.append(" ");
-        cmd.append(libs);
-
-        String outString, errString;
-        if (!executeCommand(cmd.c_str(), "", outString, errString))
-            {
-            error(" problem: %s", errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullOut));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "import", impFileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "def", defFileNameOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            else if (tagName == "libs")
-                {
-                if (!parent.getValue(child, libsOpt))
-                    return false;
-                libsOpt = strip(libsOpt);
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String commandOpt;
-    String fileNameOpt;
-    String defFileNameOpt;
-    String impFileNameOpt;
-    String libsOpt;
-
-};
-
-
-
-/**
- * Run the "ar" command to archive .o's into a .a
- */
-class TaskStaticLib : public Task
-{
-public:
-
-    TaskStaticLib(MakeBase &par) : Task(par)
-        { type = TASK_STATICLIB; name = "staticlib"; }
-
-    virtual ~TaskStaticLib()
-        {}
-
-    virtual bool execute()
-        {
-        String command = parent.eval(commandOpt, "ar crv");
-        String fileName = parent.eval(fileNameOpt, "");
-
-        bool doit = false;
-        
-        String fullOut = parent.resolve(fileName);
-        //trace("ar fullout: %s", fullOut.c_str());
-        
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-        //trace("###########HERE %s", fileSetDir.c_str());
-
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-            //trace("ar : %s/%s", fullOut.c_str(), fullName.c_str());
-            if (isNewerThan(fullName, fullOut))
-                doit = true;
-            }
-        //trace("Needs it:%d", doit);
-        if (!doit)
-            {
-            return true;
-            }
-
-        String cmd = command;
-        cmd.append(" ");
-        cmd.append(fullOut);
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-
-            cmd.append(" ");
-            cmd.append(fullName);
-            }
-
-        String outString, errString;
-        if (!executeCommand(cmd.c_str(), "", outString, errString))
-            {
-            error(" problem: %s", errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullOut));
-        return true;
-        }
-
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String commandOpt;
-    String fileNameOpt;
-
-};
-
-
-
-
-/**
- * Strip an executable
- */
-class TaskStrip : public Task
-{
-public:
-
-    TaskStrip(MakeBase &par) : Task(par)
-        { type = TASK_STRIP; name = "strip"; }
-
-    virtual ~TaskStrip()
-        {}
-
-    virtual bool execute()
-        {
-        String command     = parent.eval(commandOpt, "strip");
-        String fileName    = parent.eval(fileNameOpt, "");
-        String symFileName = parent.eval(symFileNameOpt, "");
-
-        String fullName = parent.resolve(fileName);
-        //trace("fullDir:%s", fullDir.c_str());
-        String cmd;
-        String outbuf, errbuf;
-
-        if (symFileName.size()>0)
-            {
-            String symFullName = parent.resolve(symFileName);
-            cmd = "objcopy --only-keep-debug ";
-            cmd.append(getNativePath(fullName));
-            cmd.append(" ");
-            cmd.append(getNativePath(symFullName));
-            if (!executeCommand(cmd, "", outbuf, errbuf))
-                {
-                error(" symbol file failed : %s", errbuf.c_str());
-                return false;
-                }
-            }
-            
-        cmd = command;
-        cmd.append(getNativePath(fullName));
-       if (!executeCommand(cmd, "", outbuf, errbuf))
-            {
-            error(" failed : %s", errbuf.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullName));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "symfile", symFileNameOpt))
-            return false;
-        if (fileNameOpt.size() == 0)
-            {
-            error(" requires 'file=\"fileName\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String fileNameOpt;
-    String symFileNameOpt;
-};
-
-
-/**
- *
- */
-class TaskTouch : public Task
-{
-public:
-
-    TaskTouch(MakeBase &par) : Task(par)
-        { type = TASK_TOUCH; name = "touch"; }
-
-    virtual ~TaskTouch()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName = parent.eval(fileNameOpt, "");
-
-        String fullName = parent.resolve(fileName);
-        String nativeFile = getNativePath(fullName);
-        if (!isRegularFile(fullName) && !isDirectory(fullName))
-            {            
-            // S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH
-            int ret = creat(nativeFile.c_str(), 0666);
-            if (ret != 0) 
-                {
-                error(" could not create '%s' : %s",
-                    nativeFile.c_str(), strerror(ret));
-                return false;
-                }
-            return true;
-            }
-        int ret = utime(nativeFile.c_str(), (struct utimbuf *)0);
-        if (ret != 0)
-            {
-            error(" could not update the modification time for '%s' : %s",
-                nativeFile.c_str(), strerror(ret));
-            return false;
-            }
-        removeFromStatCache(nativeFile);
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        //trace("touch parse");
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (fileNameOpt.size() == 0)
-            {
-            error(" requires 'file=\"fileName\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-    String fileNameOpt;
-};
-
-
-/**
- *
- */
-class TaskTstamp : public Task
-{
-public:
-
-    TaskTstamp(MakeBase &par) : Task(par)
-        { type = TASK_TSTAMP; name = "tstamp"; }
-
-    virtual ~TaskTstamp()
-        {}
-
-    virtual bool execute()
-        {
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        //trace("tstamp parse");
-        return true;
-        }
-};
-
-
-
-/**
- *
- */
-Task *Task::createTask(Element *elem, int lineNr)
-{
-    String tagName = elem->getName();
-    //trace("task:%s", tagName.c_str());
-    Task *task = NULL;
-    if (tagName == "cc")
-        task = new TaskCC(parent);
-    else if (tagName == "copy")
-        task = new TaskCopy(parent);
-    else if (tagName == "cxxtestpart")
-        task = new TaskCxxTestPart(parent);
-    else if (tagName == "cxxtestroot")
-        task = new TaskCxxTestRoot(parent);
-    else if (tagName == "cxxtestrun")
-        task = new TaskCxxTestRun(parent);
-    else if (tagName == "delete")
-        task = new TaskDelete(parent);
-    else if (tagName == "echo")
-        task = new TaskEcho(parent);
-    else if (tagName == "jar")
-        task = new TaskJar(parent);
-    else if (tagName == "javac")
-        task = new TaskJavac(parent);
-    else if (tagName == "link")
-        task = new TaskLink(parent);
-    else if (tagName == "makefile")
-        task = new TaskMakeFile(parent);
-    else if (tagName == "mkdir")
-        task = new TaskMkDir(parent);
-    else if (tagName == "msgfmt")
-        task = new TaskMsgFmt(parent);
-    else if (tagName == "pkg-config")
-        task = new TaskPkgConfig(parent);
-    else if (tagName == "ranlib")
-        task = new TaskRanlib(parent);
-    else if (tagName == "rc")
-        task = new TaskRC(parent);
-    else if (tagName == "sharedlib")
-        task = new TaskSharedLib(parent);
-    else if (tagName == "staticlib")
-        task = new TaskStaticLib(parent);
-    else if (tagName == "strip")
-        task = new TaskStrip(parent);
-    else if (tagName == "touch")
-        task = new TaskTouch(parent);
-    else if (tagName == "tstamp")
-        task = new TaskTstamp(parent);
-    else
-        {
-        error("Unknown task '%s'", tagName.c_str());
-        return NULL;
-        }
-
-    task->setLine(lineNr);
-
-    if (!task->parse(elem))
-        {
-        delete task;
-        return NULL;
-        }
-    return task;
-}
-
-
-
-//########################################################################
-//# T A R G E T
-//########################################################################
-
-/**
- *
- */
-class Target : public MakeBase
-{
-
-public:
-
-    /**
-     *
-     */
-    Target(Make &par) : parent(par)
-        { init(); }
-
-    /**
-     *
-     */
-    Target(const Target &other) : parent(other.parent)
-        { init(); assign(other); }
-
-    /**
-     *
-     */
-    Target &operator=(const Target &other)
-        { init(); assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~Target()
-        { cleanup() ; }
-
-
-    /**
-     *
-     */
-    virtual Make &getParent()
-        { return parent; }
-
-    /**
-     *
-     */
-    virtual String getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual void setName(const String &val)
-        { name = val; }
-
-    /**
-     *
-     */
-    virtual String getDescription()
-        { return description; }
-
-    /**
-     *
-     */
-    virtual void setDescription(const String &val)
-        { description = val; }
-
-    /**
-     *
-     */
-    virtual void addDependency(const String &val)
-        { deps.push_back(val); }
-
-    /**
-     *
-     */
-    virtual void parseDependencies(const String &val)
-        { deps = tokenize(val, ", "); }
-
-    /**
-     *
-     */
-    virtual std::vector &getDependencies()
-        { return deps; }
-
-    /**
-     *
-     */
-    virtual String getIf()
-        { return ifVar; }
-
-    /**
-     *
-     */
-    virtual void setIf(const String &val)
-        { ifVar = val; }
-
-    /**
-     *
-     */
-    virtual String getUnless()
-        { return unlessVar; }
-
-    /**
-     *
-     */
-    virtual void setUnless(const String &val)
-        { unlessVar = val; }
-
-    /**
-     *
-     */
-    virtual void addTask(Task *val)
-        { tasks.push_back(val); }
-
-    /**
-     *
-     */
-    virtual std::vector &getTasks()
-        { return tasks; }
-
-private:
-
-    void init()
-        {
-        }
-
-    void cleanup()
-        {
-        tasks.clear();
-        }
-
-    void assign(const Target &other)
-        {
-        //parent      = other.parent;
-        name        = other.name;
-        description = other.description;
-        ifVar       = other.ifVar;
-        unlessVar   = other.unlessVar;
-        deps        = other.deps;
-        tasks       = other.tasks;
-        }
-
-    Make &parent;
-
-    String name;
-
-    String description;
-
-    String ifVar;
-
-    String unlessVar;
-
-    std::vector deps;
-
-    std::vector tasks;
-
-};
-
-
-
-
-
-
-
-
-//########################################################################
-//# M A K E
-//########################################################################
-
-
-/**
- *
- */
-class Make : public MakeBase
-{
-
-public:
-
-    /**
-     *
-     */
-    Make()
-        { init(); }
-
-    /**
-     *
-     */
-    Make(const Make &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    Make &operator=(const Make &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~Make()
-        { cleanup(); }
-
-    /**
-     *
-     */
-    virtual std::map &getTargets()
-        { return targets; }
-
-
-    /**
-     *
-     */
-    virtual String version()
-        { return BUILDTOOL_VERSION; }
-
-    /**
-     * Overload a 
-     */
-    virtual bool specifyProperty(const String &name,
-                                 const String &value);
-
-    /**
-     *
-     */
-    virtual bool run();
-
-    /**
-     *
-     */
-    virtual bool run(const String &target);
-
-
-
-private:
-
-    /**
-     *
-     */
-    void init();
-
-    /**
-     *
-     */
-    void cleanup();
-
-    /**
-     *
-     */
-    void assign(const Make &other);
-
-    /**
-     *
-     */
-    bool executeTask(Task &task);
-
-
-    /**
-     *
-     */
-    bool executeTarget(Target &target,
-             std::set &targetsCompleted);
-
-
-    /**
-     *
-     */
-    bool execute();
-
-    /**
-     *
-     */
-    bool checkTargetDependencies(Target &prop,
-                    std::vector &depList);
-
-    /**
-     *
-     */
-    bool parsePropertyFile(const String &fileName,
-                           const String &prefix);
-
-    /**
-     *
-     */
-    bool parseProperty(Element *elem);
-
-    /**
-     *
-     */
-    bool parseFile();
-
-    /**
-     *
-     */
-    std::vector glob(const String &pattern);
-
-
-    //###############
-    //# Fields
-    //###############
-
-    String projectName;
-
-    String currentTarget;
-
-    String defaultTarget;
-
-    String specifiedTarget;
-
-    String baseDir;
-
-    String description;
-    
-    //std::vector properties;
-    
-    std::map targets;
-
-    std::vector allTasks;
-    
-    std::map specifiedProperties;
-
-};
-
-
-//########################################################################
-//# C L A S S  M A I N T E N A N C E
-//########################################################################
-
-/**
- *
- */
-void Make::init()
-{
-    uri             = "build.xml";
-    projectName     = "";
-    currentTarget   = "";
-    defaultTarget   = "";
-    specifiedTarget = "";
-    baseDir         = "";
-    description     = "";
-    envPrefix       = "env.";
-    pcPrefix        = "pc.";
-    pccPrefix       = "pcc.";
-    pclPrefix       = "pcl.";
-    bzrPrefix       = "bzr.";
-    properties.clear();
-    for (std::size_t i = 0 ; i < allTasks.size() ; i++)
-        delete allTasks[i];
-    allTasks.clear();
-}
-
-
-
-/**
- *
- */
-void Make::cleanup()
-{
-    for (std::size_t i = 0 ; i < allTasks.size() ; i++)
-        delete allTasks[i];
-    allTasks.clear();
-}
-
-
-
-/**
- *
- */
-void Make::assign(const Make &other)
-{
-    uri              = other.uri;
-    projectName      = other.projectName;
-    currentTarget    = other.currentTarget;
-    defaultTarget    = other.defaultTarget;
-    specifiedTarget  = other.specifiedTarget;
-    baseDir          = other.baseDir;
-    description      = other.description;
-    properties       = other.properties;
-}
-
-
-
-//########################################################################
-//# U T I L I T Y    T A S K S
-//########################################################################
-
-/**
- *  Perform a file globbing
- */
-std::vector Make::glob(const String &pattern)
-{
-    std::vector res;
-    return res;
-}
-
-
-//########################################################################
-//# P U B L I C    A P I
-//########################################################################
-
-
-
-/**
- *
- */
-bool Make::executeTarget(Target &target,
-             std::set &targetsCompleted)
-{
-
-    String name = target.getName();
-
-    //First get any dependencies for this target
-    std::vector deps = target.getDependencies();
-    for (std::size_t i=0 ; i &tgts =
-               target.getParent().getTargets();
-        std::map::iterator iter =
-               tgts.find(dep);
-        if (iter == tgts.end())
-            {
-            error("Target '%s' dependency '%s' not found",
-                      name.c_str(),  dep.c_str());
-            return false;
-            }
-        Target depTarget = iter->second;
-        if (!executeTarget(depTarget, targetsCompleted))
-            {
-            return false;
-            }
-        }
-
-    status("##### Target : %s\n##### %s", name.c_str(),
-            target.getDescription().c_str());
-
-    //Now let's do the tasks
-    std::vector &tasks = target.getTasks();
-    for (std::size_t i=0 ; igetName().c_str());
-        if (!task->execute())
-            {
-            return false;
-            }
-        }
-        
-    targetsCompleted.insert(name);
-    
-    return true;
-}
-
-
-
-/**
- *  Main execute() method.  Start here and work
- *  up the dependency tree 
- */
-bool Make::execute()
-{
-    status("######## EXECUTE");
-
-    //Determine initial target
-    if (specifiedTarget.size()>0)
-        {
-        currentTarget = specifiedTarget;
-        }
-    else if (defaultTarget.size()>0)
-        {
-        currentTarget = defaultTarget;
-        }
-    else
-        {
-        error("execute: no specified or default target requested");
-        return false;
-        }
-
-    std::map::iterator iter =
-               targets.find(currentTarget);
-    if (iter == targets.end())
-        {
-        error("Initial target '%s' not found",
-                 currentTarget.c_str());
-        return false;
-        }
-        
-    //Now run
-    Target target = iter->second;
-    std::set targetsCompleted;
-    if (!executeTarget(target, targetsCompleted))
-        {
-        return false;
-        }
-
-    status("######## EXECUTE COMPLETE");
-    return true;
-}
-
-
-
-
-/**
- *
- */
-bool Make::checkTargetDependencies(Target &target, 
-                            std::vector &depList)
-{
-    String tgtName = target.getName().c_str();
-    depList.push_back(tgtName);
-
-    std::vector deps = target.getDependencies();
-    for (std::size_t i=0 ; i::iterator diter;
-            for (diter=depList.begin() ; diter!=depList.end() ; diter++)
-                {
-                error("  %s", diter->c_str());
-                }
-            return false;
-            }
-
-        std::map &tgts =
-                  target.getParent().getTargets();
-        std::map::iterator titer = tgts.find(dep);
-        if (titer == tgts.end())
-            {
-            error("Target '%s' dependency '%s' not found",
-                      tgtName.c_str(), dep.c_str());
-            return false;
-            }
-        if (!checkTargetDependencies(titer->second, depList))
-            {
-            return false;
-            }
-        }
-    return true;
-}
-
-
-
-
-
-static int getword(int pos, const String &inbuf, String &result)
-{
-    int p = pos;
-    int len = (int)inbuf.size();
-    String val;
-    while (p < len)
-        {
-        char ch = inbuf[p];
-        if (!isalnum(ch) && ch!='.' && ch!='_')
-            break;
-        val.push_back(ch);
-        p++;
-        }
-    result = val;
-    return p;
-}
-
-
-
-
-/**
- *
- */
-bool Make::parsePropertyFile(const String &fileName,
-                             const String &prefix)
-{
-    FILE *f = fopen(fileName.c_str(), "r");
-    if (!f)
-        {
-        error("could not open property file %s", fileName.c_str());
-        return false;
-        }
-    int linenr = 0;
-    while (!feof(f))
-        {
-        char buf[256];
-        if (!fgets(buf, 255, f))
-            break;
-        linenr++;
-        String s = buf;
-        s = trim(s);
-        int len = s.size();
-        if (len == 0)
-            continue;
-        if (s[0] == '#')
-            continue;
-        String key;
-        String val;
-        int p = 0;
-        int p2 = getword(p, s, key);
-        if (p2 <= p)
-            {
-            error("property file %s, line %d: expected keyword",
-                    fileName.c_str(), linenr);
-            fclose(f);
-			return false;
-            }
-        if (prefix.size() > 0)
-            {
-            key.insert(0, prefix);
-            }
-
-        //skip whitespace
-        for (p=p2 ; p=len || s[p]!='=')
-            {
-            error("property file %s, line %d: expected '='",
-                    fileName.c_str(), linenr);
-            return false;
-            }
-        p++;
-
-        //skip whitespace
-        for ( ; p=len)
-            {
-            error("property file %s, line %d: expected value",
-                    fileName.c_str(), linenr);
-            return false;
-            }
-        val = s.substr(p);
-        if (key.size()==0)
-            continue;
-        //allow property to be set, even if val=""
-
-        //trace("key:'%s' val:'%s'", key.c_str(), val.c_str());
-        //See if we wanted to overload this property
-        std::map::iterator iter =
-            specifiedProperties.find(key);
-        if (iter!=specifiedProperties.end())
-            {
-            val = iter->second;
-            status("overloading property '%s' = '%s'",
-                   key.c_str(), val.c_str());
-            }
-        properties[key] = val;
-        }
-    fclose(f);
-    return true;
-}
-
-
-
-
-/**
- *
- */
-bool Make::parseProperty(Element *elem)
-{
-    std::vector &attrs = elem->getAttributes();
-    for (std::size_t i=0 ; i 0)
-                {
-                properties[attrVal] = val;
-                }
-            else
-                {
-                if (!getAttribute(elem, "location", val))
-                    return false;
-                //let the property exist, even if not defined
-                properties[attrVal] = val;
-                }
-            //See if we wanted to overload this property
-            std::map::iterator iter =
-                specifiedProperties.find(attrVal);
-            if (iter != specifiedProperties.end())
-                {
-                val = iter->second;
-                status("overloading property '%s' = '%s'",
-                    attrVal.c_str(), val.c_str());
-                properties[attrVal] = val;
-                }
-            }
-        else if (attrName == "file")
-            {
-            String prefix;
-            if (!getAttribute(elem, "prefix", prefix))
-                return false;
-            if (prefix.size() > 0)
-                {
-                if (prefix[prefix.size()-1] != '.')
-                    prefix.push_back('.');
-                }
-            if (!parsePropertyFile(attrName, prefix))
-                return false;
-            }
-        else if (attrName == "environment")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("environment prefix cannot have a '.' in it");
-                return false;
-                }
-            envPrefix = attrVal;
-            envPrefix.push_back('.');
-            }
-        else if (attrName == "pkg-config")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("pkg-config prefix cannot have a '.' in it");
-                return false;
-                }
-            pcPrefix = attrVal;
-            pcPrefix.push_back('.');
-            }
-        else if (attrName == "pkg-config-cflags")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("pkg-config-cflags prefix cannot have a '.' in it");
-                return false;
-                }
-            pccPrefix = attrVal;
-            pccPrefix.push_back('.');
-            }
-        else if (attrName == "pkg-config-libs")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("pkg-config-libs prefix cannot have a '.' in it");
-                return false;
-                }
-            pclPrefix = attrVal;
-            pclPrefix.push_back('.');
-            }
-        else if (attrName == "subversion")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("bzr prefix cannot have a '.' in it");
-                return false;
-                }
-            bzrPrefix = attrVal;
-            bzrPrefix.push_back('.');
-            }
-        }
-
-    return true;
-}
-
-
-
-
-/**
- *
- */
-bool Make::parseFile()
-{
-    status("######## PARSE : %s", uri.getPath().c_str());
-
-    setLine(0);
-
-    Parser parser;
-    Element *root = parser.parseFile(uri.getNativePath());
-    if (!root)
-        {
-        error("Could not open %s for reading",
-              uri.getNativePath().c_str());
-        return false;
-        }
-    
-    setLine(root->getLine());
-
-    if (root->getChildren().size()==0 ||
-        root->getChildren()[0]->getName()!="project")
-        {
-        error("Main xml element should be ");
-        delete root;
-        return false;
-        }
-
-    //########## Project attributes
-    Element *project = root->getChildren()[0];
-    String s = project->getAttribute("name");
-    if (s.size() > 0)
-        projectName = s;
-    s = project->getAttribute("default");
-    if (s.size() > 0)
-        defaultTarget = s;
-    s = project->getAttribute("basedir");
-    if (s.size() > 0)
-        baseDir = s;
-
-    //######### PARSE MEMBERS
-    std::vector children = project->getChildren();
-    for (std::size_t i=0 ; igetLine());
-        String tagName = elem->getName();
-
-        //########## DESCRIPTION
-        if (tagName == "description")
-            {
-            description = parser.trim(elem->getValue());
-            }
-
-        //######### PROPERTY
-        else if (tagName == "property")
-            {
-            if (!parseProperty(elem))
-                return false;
-            }
-
-        //######### TARGET
-        else if (tagName == "target")
-            {
-            String tname   = elem->getAttribute("name");
-            String tdesc   = elem->getAttribute("description");
-            String tdeps   = elem->getAttribute("depends");
-            String tif     = elem->getAttribute("if");
-            String tunless = elem->getAttribute("unless");
-            Target target(*this);
-            target.setName(tname);
-            target.setDescription(tdesc);
-            target.parseDependencies(tdeps);
-            target.setIf(tif);
-            target.setUnless(tunless);
-            std::vector telems = elem->getChildren();
-            for (std::size_t i=0 ; igetLine());
-                if (!task)
-                    return false;
-                allTasks.push_back(task);
-                target.addTask(task);
-                }
-
-            //Check name
-            if (tname.size() == 0)
-                {
-                error("no name for target");
-                return false;
-                }
-            //Check for duplicate name
-            if (targets.find(tname) != targets.end())
-                {
-                error("target '%s' already defined", tname.c_str());
-                return false;
-                }
-            //more work than targets[tname]=target, but avoids default allocator
-            auto pair = std::make_pair(tname, target); 
-            targets.insert(pair);
-            }
-        //######### none of the above
-        else
-            {
-            error("unknown toplevel tag: <%s>", tagName.c_str());
-            return false;
-            }
-
-        }
-
-    std::map::iterator iter;
-    for (iter = targets.begin() ; iter!= targets.end() ; iter++)
-        {
-        Target tgt = iter->second;
-        std::vector depList;
-        if (!checkTargetDependencies(tgt, depList))
-            {
-            return false;
-            }
-        }
-
-
-    delete root;
-    status("######## PARSE COMPLETE");
-    return true;
-}
-
-
-/**
- * Overload a 
- */
-bool Make::specifyProperty(const String &name, const String &value)
-{
-    if (specifiedProperties.find(name) != specifiedProperties.end())
-        {
-        error("Property %s already specified", name.c_str());
-        return false;
-        }
-    specifiedProperties[name] = value;
-    return true;
-}
-
-
-
-/**
- *
- */
-bool Make::run()
-{
-    if (!parseFile())
-        return false;
-        
-    if (!execute())
-        return false;
-
-    return true;
-}
-
-
-
-
-/**
- * Get a formatted MM:SS.sss time elapsed string
- */ 
-static String
-timeDiffString(struct timeval &x, struct timeval &y)
-{
-    long microsX  = x.tv_usec;
-    long secondsX = x.tv_sec;
-    long microsY  = y.tv_usec;
-    long secondsY = y.tv_sec;
-    if (microsX < microsY)
-        {
-        microsX += 1000000;
-        secondsX -= 1;
-        }
-
-    int seconds = (int)(secondsX - secondsY);
-    int millis  = (int)((microsX - microsY)/1000);
-
-    int minutes = seconds/60;
-    seconds -= minutes*60;
-    char buf[80];
-    snprintf(buf, 79, "%dm %d.%03ds", minutes, seconds, millis);
-    String ret = buf;
-    return ret;
-    
-}
-
-/**
- *
- */
-bool Make::run(const String &target)
-{
-    status("####################################################");
-    status("#   %s", version().c_str());
-    status("####################################################");
-    struct timeval timeStart, timeEnd;
-    ::gettimeofday(&timeStart, NULL);
-    specifiedTarget = target;
-    if (!run())
-        return false;
-    ::gettimeofday(&timeEnd, NULL);
-    String timeStr = timeDiffString(timeEnd, timeStart);
-    status("####################################################");
-    status("#   BuildTool Completed : %s", timeStr.c_str());
-    status("####################################################");
-    return true;
-}
-
-
-
-
-
-
-
-}// namespace buildtool
-//########################################################################
-//# M A I N
-//########################################################################
-
-typedef buildtool::String String;
-
-/**
- *  Format an error message in printf() style
- */
-static void error(const char *fmt, ...)
-{
-    va_list ap;
-    va_start(ap, fmt);
-    fprintf(stderr, "BuildTool error: ");
-    vfprintf(stderr, fmt, ap);
-    fprintf(stderr, "\n");
-    va_end(ap);
-}
-
-
-static bool parseProperty(const String &s, String &name, String &val)
-{
-    int len = s.size();
-    int i;
-    for (i=0 ; i           use given buildfile\n");
-    printf("  -f                  ''\n");
-    printf("  -D=   use value for given property\n");
-    printf("  -j [N]                 build using N threads or infinite number of threads if no argument\n");
-}
-
-
-
-
-/**
- * Parse the command-line args, get our options,
- * and run this thing
- */   
-static bool parseOptions(int argc, char **argv)
-{
-    if (argc < 1)
-        {
-        error("Cannot parse arguments");
-        return false;
-        }
-
-    buildtool::Make make;
-
-    String target;
-
-    //char *progName = argv[0];
-    for (int i=1 ; i1 && arg[0]=='-')
-            {
-            if (arg == "-h" || arg == "-help")
-                {
-                usage(argc,argv);
-                return true;
-                }
-            else if (arg == "-version")
-                {
-                printf("%s", make.version().c_str());
-                return true;
-                }
-            else if (arg == "-f" || arg == "-file")
-                {
-                if (i>=argc-1)
-                   {
-                   usage(argc, argv);
-                   return false;
-                   }
-                i++; //eat option
-                make.setURI(argv[i]);
-                }
-            else if (arg == "-j")
-            {
-                if (i>=argc-1) {  // if -j is given as last argument
-                    make.setNumThreads(20); // default to some high value
-                } else {
-                    i++; //eat option
-                    if (argv[i] && (*argv[i] == '-')) { // if -j is followed by another '-...' option
-                        make.setNumThreads(20); // default to some high value
-                    } else {
-                        make.setNumThreads(atoi(argv[i]));
-                    }
-                }
-            }
-            else if (arg.size()>2 && sequ(arg, "-D"))
-                {
-                String s = arg.substr(2, arg.size());
-                String name, value;
-                if (!parseProperty(s, name, value))
-                   {
-                   usage(argc, argv);
-                   return false;
-                   }
-                if (!make.specifyProperty(name, value))
-                    return false;
-                }
-            else
-                {
-                error("Unknown option:%s", arg.c_str());
-                return false;
-                }
-            }
-        else
-            {
-            if (target.size()>0)
-                {
-                error("only one initial target");
-                usage(argc, argv);
-                return false;
-                }
-            target = arg;
-            }
-        }
-
-    //We have the options.  Now execute them
-    if (!make.run(target))
-        return false;
-
-    return true;
-}
-
-
-
-
-/*
-static bool runMake()
-{
-    buildtool::Make make;
-    if (!make.run())
-        return false;
-    return true;
-}
-
-
-static bool pkgConfigTest()
-{
-    buildtool::PkgConfig pkgConfig;
-    if (!pkgConfig.readFile("gtk+-2.0.pc"))
-        return false;
-    return true;
-}
-
-
-
-static bool depTest()
-{
-    buildtool::DepTool deptool;
-    deptool.setSourceDirectory("/dev/ink/inkscape/src");
-    if (!deptool.generateDependencies("build.dep"))
-        return false;
-    std::vector res =
-           deptool.loadDepFile("build.dep");
-    if (res.size() == 0)
-        return false;
-    return true;
-}
-
-static bool popenTest()
-{
-    buildtool::Make make;
-    buildtool::String out, err;
-    bool ret = make.executeCommand("gcc xx.cpp", "", out, err);
-    printf("Popen test:%d '%s' '%s'\n", ret, out.c_str(), err.c_str());
-    return true;
-}
-
-
-static bool propFileTest()
-{
-    buildtool::Make make;
-    make.parsePropertyFile("test.prop", "test.");
-    return true;
-}
-*/
-
-int main(int argc, char **argv)
-{
-
-    if (!parseOptions(argc, argv))
-        return 1;
-    /*
-    if (!popenTest())
-        return 1;
-
-    if (!depTest())
-        return 1;
-    if (!propFileTest())
-        return 1;
-    if (runMake())
-        return 1;
-    */
-    return 0;
-}
-
-
-//########################################################################
-//# E N D 
-//########################################################################
-
-
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index e57f63885..000000000
--- a/configure.ac
+++ /dev/null
@@ -1,1057 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-AC_PREREQ([2.64])
-
-# Always use 0.xx+devel instead of 0.xxdevel for the version, e.g. 0.46+devel.
-# Rationale: (i) placate simple version comparison software such as
-# `dpkg --compare-versions'.  (ii) We don't always know what the next
-# version is going to be called until about the time we release it
-# (whereas we always know what the previous version was called).
-#
-# Pre-releases are named "M.NNpreX" where X starts at 0 for the first alpha.
-AC_INIT([inkscape], [0.92pre1],
-        [http://bugs.launchpad.net/inkscape/+filebug],
-        [inkscape],
-        [http://inkscape.org/])
-
-AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_SRCDIR([src/main.cpp])
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_AUX_DIR([build-aux])
-AC_CANONICAL_HOST
-
-# We need version 1.9 of Automake or higher since we no longer distribute the
-# obsolete mkinstalldirs script
-AM_INIT_AUTOMAKE([-Wall dist-zip dist-bzip2 tar-pax 1.9])
-
-m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) dnl Workaround for Automake 1.12
-
-AC_ARG_ENABLE([lsb], AS_HELP_STRING([--enable-lsb], [LSB-compatible build configuration]), [
-  prefix=/opt/inkscape
-  PATH="/opt/lsb/bin:$PATH"
-  CC=lsbcc
-  CXX=lsbc++
-  export CC CXX
-])
-
-AC_LANG(C++)
-AC_PROG_CXX
-AC_PROG_CC
-AM_PROG_AS
-AX_CXX_COMPILE_STDCXX_11([], [mandatory])
-
-# Initialize libtool
-LT_PREREQ([2.2])
-LT_INIT
-AC_HEADER_STDC
-INK_BZR_SNAPSHOT_BUILD
-
-dnl If automake 1.11 shave the output to look nice
-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
-
-dnl *********************************************************
-dnl Configure a strict set of build rules to prevent usage of 
-dnl deprecated features in external libraries and code that
-dnl triggers compiler warnings.
-dnl *********************************************************
-AC_ARG_ENABLE(strict-build,
-	      [AS_HELP_STRING([--enable-strict-build], [Enable strict build configuration [[default=yes]].  Usage of most deprecated symbols is forbidden by default.  Set the argument to "high" to introduce very strict checking that will cause the build to fail on many systems.])],
-	      [enable_strict_build=$enableval],
-	      [enable_strict_build=yes])
-
-if test "x$enable_strict_build" = "xno"; then
-	AC_MSG_WARN([Strict build options disabled])
-elif test "x$enable_strict_build" = "xhigh"; then
-	AC_MSG_WARN([Strictest build options enabled.  This will cause build failure on most systems])
-else
-	AC_MSG_RESULT([Strict build options enabled])
-fi
-
-dnl These next few lines are needed only while libcroco is in our source tree.
-AM_PROG_CC_C_O
-if test "$GCC" = "yes"; then
-  # Enable some warnings from gcc.
-  AC_LANG_PUSH(C)
-
-  ####
-  # Generic cpp flags...
-
-  # What is just plain "-W" ?
-  # Fortify source requires -O2 or higher, which is handled with newer autoconf
-  CPPFLAGS="-W -D_FORTIFY_SOURCE=2 $CPPFLAGS"
-  # Enable format and format security warnings
-  CPPFLAGS="-Wformat -Wformat-security $CPPFLAGS"
-  # Enable all default warnings
-  CPPFLAGS="-Wall $CPPFLAGS"
-
-  # Permit only top-level Glib headers to be used.
-  # 
-  # TODO: This is already used in Glib >= 2.32 so this flag can be 
-  #       dropped when all targeted distros use higher Glib versions.
-  CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
-
-  # Ensure that private GTK+ fields are not accessible. This strictly
-  # enforced in Gtk+ 3, so it is important to check this in Gtk+ 2 builds
-  CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
-
-  # Unfortunately, we cannot (yet) build with -Werror, so we have to manually
-  # change a ton of warnings into errors.
-  # After some more work on fixing warning-inducing code, we can change this set into
-  # it's complement and use -Wno-error=...
-  # Test for -Werror=... (introduced some time post-4.0)
-  AC_MSG_CHECKING([compiler support for -Werror=...])
-  ink_svd_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS="-Werror=format-security -Wswitch -Werror=return-type $CPPFLAGS"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  if test "x$ink_opt_ok" != "xyes"; then
-    CPPFLAGS="$ink_svd_CPPFLAGS"
-  fi
-
-  # Uncomment for SVG2 stuff
-  CPPFLAGS="-DWITH_MESH -DWITH_CSSBLEND -DWITH_CSSCOMPOSITE -DWITH_SVG2 $CPPFLAGS"
-
-  # Uncomment for LPE Tool and All LPEs
-  CPPFLAGS="-DWITH_LPETOOL -DLPE_ENABLE_TEST_EFFECTS $CPPFLAGS"
-
-  ####
-  # C-specific flags...
-
-  # -Wno-pointer-sign is probably new in gcc 4.0; certainly it isn't accepted
-  # by gcc 2.95.
-  AC_MSG_CHECKING([compiler support for -Wno-pointer-sign])
-  ink_svd_CFLAGS="$CFLAGS"
-  CFLAGS="-Wno-pointer-sign $CFLAGS"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  if test "x$ink_opt_ok" != "xyes"; then
-    CFLAGS="$ink_svd_CFLAGS"
-  fi
-
-  
-  # This Automake variable is only used to suppress warnings in our internal
-  # fork of GDL.  Once we get rid of our GDL fork, we can delete this test
-  AC_MSG_CHECKING([compiler support for -Wno-unused-but-set-variable])
-  ink_svd_CFLAGS="$CFLAGS"
-  CFLAGS="-Wno-unused-but-set-variable $CFLAGS"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  CFLAGS="$ink_svd_CFLAGS"
-  AM_CONDITIONAL(CC_WNO_UNUSED_BUT_SET_VARIABLE_SUPPORTED, test "$ink_opt_ok" = "yes")
-  
-
-  ####
-  # Linker flags...
-
-  # Have linker produce read-only relocations, if it knows how
-  AC_MSG_CHECKING([linker tolerates -z relro])
-  ink_svd_LDFLAGS="$LDFLAGS"
-  LDFLAGS="-Wl,-z,relro $LDFLAGS"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  if test "x$ink_opt_ok" != "xyes"; then
-    LDFLAGS="$ink_svd_LDFLAGS"
-  fi
-
-  AC_LANG_POP
-
-  # C++-specific flags are defined further below.  Look for CXXFLAGS...
-fi
-
-# Test whether GCC emits a spurious warning when using boost::optional
-# If yes, turn off strict aliasing warnings to reduce noise
-# and allow the legitimate warnings to stand out
-AC_MSG_CHECKING([for overzealous strict aliasing warnings])
-ignore_strict_aliasing=no
-CXXFLAGS_SAVE=$CXXFLAGS
-CXXFLAGS="$CXXFLAGS -Werror=strict-aliasing"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-#include 
-boost::optional x;
-int func() {
-  return *x;
-}
-])], [ignore_strict_aliasing=no], [ignore_strict_aliasing=yes])
-AC_MSG_RESULT($ignore_strict_aliasing)
-CXXFLAGS=$CXXFLAGS_SAVE
-if test "x$ignore_strict_aliasing" = "xyes"; then
-  CXXFLAGS="$CXXFLAGS -Wno-strict-aliasing"
-fi
-
-dnl ******************************
-dnl Gettext stuff
-dnl ******************************
-IT_PROG_INTLTOOL([0.40.0])
-
-AM_GNU_GETTEXT_VERSION([0.17])
-AM_GNU_GETTEXT([external])
-
-GETTEXT_PACKAGE="AC_PACKAGE_NAME"
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Translation domain used])
-
-AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-if test "x$PKG_CONFIG" = "xno"; then
-	AC_MSG_ERROR(You have to install pkg-config to compile inkscape.)
-fi
-
-dnl Find msgfmt.  Without this, po/Makefile fails to set MSGFMT on some platforms.
-AC_PATH_PROG(MSGFMT, msgfmt, msgfmt)
-AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-dnl ******************************
-dnl Check for OpenMP 
-dnl ******************************
-AC_OPENMP
-if test "x$ac_cv_prog_cxx_openmp" != "xunsupported"; then
-	openmp_ok=yes
-	dnl We have it, now set up the flags
-	CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
-	AC_DEFINE(HAVE_OPENMP, 1, [Use OpenMP])
-fi
-
-dnl ********************
-dnl Check for libpotrace
-dnl ********************
-AC_CHECK_LIB(potrace, potrace_trace, [AC_CHECK_HEADER(potracelib.h, potrace_ok=yes, potrace_ok=no)], potrace_ok=no)
-if test "x$potrace_ok" = "xyes"; then
-   LIBS="-lpotrace $LIBS"
-   AC_DEFINE(HAVE_POTRACE, 1, [Use Potrace])
-fi
-
-AM_CONDITIONAL(HAVE_POTRACE, test "x$potrace_ok" = "xyes")
-
-dnl ******************************
-dnl Check for libexif
-dnl ******************************
-PKG_CHECK_MODULES(EXIF, libexif, exif_ok=yes, exif_ok=no)
-if test "x$exif_ok" = "xyes"; then
-   AC_DEFINE(HAVE_EXIF, 1, [Use libexif])
-fi
-AC_SUBST(EXIF_LIBS)
-AC_SUBST(EXIF_CFLAGS)
-
-dnl ******************************
-dnl Check for libjpeg
-dnl ******************************
-AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)], jpeg_ok=no)
-if test "x$jpeg_ok" = "xyes"; then
-   LIBS="-ljpeg $LIBS"
-   AC_DEFINE(HAVE_JPEG, 1, [Use libjpeg])
-fi
-
-dnl This check is to get a FIONREAD definition on Solaris 8
-AC_CHECK_HEADERS([sys/filio.h])
-
-
-AC_CHECK_HEADERS([malloc.h])
-AC_CHECK_FUNCS([mallinfo], [
-	AC_CHECK_MEMBERS([struct mallinfo.usmblks,
-			  struct mallinfo.fsmblks,
-			  struct mallinfo.uordblks,
-			  struct mallinfo.fordblks,
-			  struct mallinfo.hblkhd],,,
-			 [#include ])
-])
-
-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
-if test "x$FREETYPE_CONFIG" = "xno"; then
-	AC_MSG_ERROR([Cannot find freetype-config])
-fi
-FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
-FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
-AC_SUBST(FREETYPE_CFLAGS)
-AC_SUBST(FREETYPE_LIBS)
-
-dnl ******************************
-dnl Win32
-dnl ******************************
-AC_MSG_CHECKING([for Win32 platform])
-case "$host" in
-  *-*-mingw*)
-    platform_win32=yes
-    WIN32_CFLAGS="-mms-bitfields -DLIBXML_STATIC"
-    ;;
-  *)
-    platform_win32=no
-    ;;
-esac
-AC_MSG_RESULT([$platform_win32])
-AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
-AC_SUBST(WIN32_CFLAGS)
-
-dnl TODO - switch to a linker/libtool/feature check, not OS check:
-dnl ******************************
-dnl MacOS X
-dnl ******************************
-AC_MSG_CHECKING([for OSX platform])
-if test "x$build_vendor" = "xapple" ; then
-  platform_osx=yes
-else
-  platform_osx=no
-fi
-AC_MSG_RESULT([$platform_osx])
-	
-AC_MSG_CHECKING([for Solaris platform])
-case "$host" in
-  *-solaris2.*)
-    platform_solaris=yes
-    solaris_version=`echo $host|sed -e 's/^.*-solaris2\.//' -e s'/\..*$//'`
-    CFLAGS="$CFLAGS -DSOLARIS=$solaris_version"
-    CXXFLAGS="$CXXFLAGS -DSOLARIS=$solaris_version"
-    ;;
-  *)
-    platform_solaris=no
-    ;;
-esac
-AC_MSG_RESULT([$platform_solaris])
-AM_CONDITIONAL(PLATFORM_SOLARIS, test "$platform_solaris" = "yes")
-
-dnl ******************************
-dnl gnome vfs checking
-dnl ******************************
-
-AC_ARG_WITH(gnome-vfs,
-	AS_HELP_STRING([--with-gnome-vfs],[use gnome vfs for loading files]),
-	[with_gnome_vfs=$withval], [with_gnome_vfs=auto])
-
-if test "x$with_gnome_vfs" = "xno"; then
-	dnl Asked to ignore gnome-vfs
-	gnome_vfs=no
-else
-        dnl Have to test gnome-vfs presence
-	PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0 >= 2.0, gnome_vfs=yes, gnome_vfs=no)
-	if test "x$gnome_vfs" != "xyes"; then
-	        dnl No gnome-vfs found
-		if test "x$with_gnome_vfs" = "xyes"; then
-		        dnl Gnome-VFS was explicitly asked for, so stop
-			AC_MSG_ERROR([--with-gnome-vfs was specified, but appropriate libgnomevfs development packages could not be found])
-		else
-			# gnome-vfs is no, tell us for the log file
-			AC_MSG_RESULT($gnome_vfs)
-		fi
-	fi
-fi
-
-AM_CONDITIONAL(USE_GNOME_VFS, test "x$gnome_vfs" = "xyes")
-if test "x$gnome_vfs" = "xyes"; then
-	AC_DEFINE(WITH_GNOME_VFS, 1, [Use gnome vfs file load functionality])
-fi
-
-AC_SUBST(GNOME_VFS_CFLAGS)
-AC_SUBST(GNOME_VFS_LIBS)
-
-dnl ******************************
-dnl libinkjar checking
-dnl ******************************
-
-AC_ARG_WITH(inkjar,
-	AS_HELP_STRING([--without-inkjar],[disable openoffice files (SVG jars)]),[with_ij=$withval], [with_ij=yes])
-
-if test "x$with_ij" = "xyes"; then
-	AC_DEFINE(WITH_INKJAR, 1, [enable openoffice files (SVG jars)])
-	AC_C_BIGENDIAN
-	AC_CHECK_HEADERS(zlib.h)
-	ij=yes
-else
-	ij=no
-fi
-AM_CONDITIONAL(INKJAR, test "$with_ij" = "yes")
-
-dnl ******************************
-dnl LittleCms checking
-dnl ******************************
-
-AC_ARG_ENABLE(lcms,
-	AS_HELP_STRING([--enable-lcms],[enable LittleCms for color management]),
-	[enable_lcms=$enableval], [enable_lcms=yes])
-
-if test "x$enable_lcms" = "xno"; then
-    # Asked to ignore LittleCms
-    lcms=no
-    have_lcms2=no
-else
-    # Have to test LittleCms presence
-    PKG_CHECK_MODULES(LCMS2, lcms2, have_lcms2="yes", have_lcms2="no")
-
-    if test "x${have_lcms2}" = "xyes"; then
-        LIBS="$LIBS $LCMS2_LIBS"
-        AC_DEFINE(HAVE_LIBLCMS2, 1, [define to 1 if you have lcms version 2.x])
-	AC_SUBST(LCMS2_CFLAGS)
-	AC_SUBST(LCMS2_LIBS)
-    else
-        PKG_CHECK_MODULES(LCMS, lcms >= 1.13, lcms=yes, lcms=no)
-        if test "x$lcms" = "xyes"; then
-            LIBS="$LIBS $LCMS_LIBS"
-            AC_DEFINE(HAVE_LIBLCMS1, 1, [define to 1 if you have lcms version 1.x])
-	    AC_SUBST(LCMS_CFLAGS)
-	    AC_SUBST(LCMS_LIBS)
-        else
-            # No lcms found. LittleCms was explicitly asked for, so stop
-            AC_MSG_ERROR([--enable-lcms was specified, but appropriate LittleCms development packages could not be found])
-        fi
-    fi
-fi
-
-dnl ******************************
-dnl Libpoppler checking
-dnl ******************************
-
-AC_ARG_ENABLE(poppler-cairo,
-	AS_HELP_STRING([--enable-poppler-cairo],[Enable libpoppler-cairo for rendering PDF preview]),
-	[enable_poppler_cairo=$enableval], [enable_poppler_cairo=yes])
-
-POPPLER_CFLAGS=""
-PKG_CHECK_MODULES(POPPLER, poppler >= 0.20.0, poppler=yes, poppler=no)
-
-if test "x$poppler" = "xyes"; then
-	dnl Working libpoppler
-	dnl Have to test libpoppler-glib presence
-	PKG_CHECK_MODULES(POPPLER_GLIB, poppler-glib >= 0.20.0, poppler_glib=yes, poppler_glib=no)
-	if test "x$poppler_glib" = "xyes"; then
-		dnl Working libpoppler-glib found
-		dnl Check whether the Cairo SVG backend is available
-		PKG_CHECK_MODULES(CAIRO_SVG, cairo-svg, cairo_svg=yes, cairo_svg=no)
-		if test "x$cairo_svg" = "xyes"; then
-			POPPLER_LIBS="$POPPLER_LIBS $POPPLER_GLIB_LIBS "
-		fi
-	fi
-	if test "x$enable_poppler_cairo" = "xyes"; then
-		dnl Have to test libpoppler-cairo presence for PDF preview
-		dnl AC_CHECK_HEADER(Magick++.h, magick_ok=yes, magick_ok=no)
-		PKG_CHECK_MODULES(POPPLER_CAIRO, poppler-cairo >= 0.20.0, poppler_cairo=yes, poppler_cairo=no)
-		if test "x$poppler_glib" = "xyes" -a "x$poppler_cairo" = "xyes" -a \
-			"x$cairo_svg" = "xno"
-		then
-			POPPLER_LIBS="$POPPLER_LIBS $POPPLER_CAIRO_LIBS "
-		fi
-	fi
-fi
-
-if test "x$poppler" = "xyes"; then
-	LIBS="$LIBS $POPPLER_LIBS"
-	AC_DEFINE(HAVE_POPPLER, 1, [Use libpoppler for direct PDF import])
-fi
-if test "x$poppler_cairo" = "xyes" -a "x$poppler_glib" = "xyes"; then
-	AC_DEFINE(HAVE_POPPLER_CAIRO, 1, [Use libpoppler-cairo for rendering PDF preview])
-fi
-if test "x$poppler_glib" = "xyes" -a "x$cairo_svg" = "xyes"; then
-	AC_DEFINE(HAVE_POPPLER_GLIB, 1, [Use libpoppler-glib and Cairo-SVG for PDF import])
-fi
-AC_SUBST(POPPLER_CFLAGS)
-AC_SUBST(POPPLER_LIBS)
-
-ink_svd_CPPFLAGS=$CPPFLAGS
-ink_svd_LIBS=$LIBS
-CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS"
-LIBS="$LIBS $POPPLER_LIBS"
-
-PKG_CHECK_MODULES(POPPLER_EVEN_NEWER_COLOR_SPACE_API, poppler >= 0.26.0, popplernewercolorspaceapi=yes, popplernewercolorspaceapi=no)
-if test "x$popplernewercolorspaceapi" = "xyes"; then
-	AC_DEFINE(POPPLER_EVEN_NEWER_COLOR_SPACE_API, 1, [Use even newer color space API from Poppler >= 0.26.0])
-fi
-
-PKG_CHECK_MODULES(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API, poppler >= 0.29.0, popplernewernewcolorspaceapi=yes, popplernewernewcolorspaceapi=no)
-if test "x$popplernewernewcolorspaceapi" = "xyes"; then
-	AC_DEFINE(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API, 1, [Use even newer new color space API from Poppler >= 0.29.0])
-fi
-
-CPPFLAGS=$ink_svd_CPPFLAGS
-LIBS=$ink_svd_LIBS
-
-dnl ******************************
-dnl Check for libwpg for extension
-dnl ******************************
-
-AC_ARG_ENABLE(wpg,
-       AS_HELP_STRING([--disable-wpg], [compile without support for WordPerfect Graphics]),
-       enable_wpg=$enableval,enable_wpg=yes)
-
-with_libwpg=no
-
-if test "x$enable_wpg" = "xyes"; then
-        dnl **************************************************************
-        dnl Try using librevenge framework first. Fall back to old libs
-        dnl if unavailable.
-        dnl TODO: Drop subsequent tests once this is widespread in distros
-        dnl **************************************************************
-	PKG_CHECK_MODULES(LIBWPG03, libwpg-0.3 librevenge-0.0 librevenge-stream-0.0, with_libwpg03=yes, with_libwpg03=no)
-	if test "x$with_libwpg03" = "xyes"; then
-		AC_DEFINE(WITH_LIBWPG03,1,[Build using libwpg 0.3.x])
-		with_libwpg=yes
-		AC_SUBST(LIBWPG_LIBS, $LIBWPG03_LIBS)
-		AC_SUBST(LIBWPG_CFLAGS, $LIBWPG03_CFLAGS)
-	else
-		PKG_CHECK_MODULES(LIBWPG02, libwpg-0.2 libwpd-0.9 libwpd-stream-0.9, with_libwpg02=yes, with_libwpg02=no)
-		if test "x$with_libwpg02" = "xyes"; then
-			AC_DEFINE(WITH_LIBWPG02,1,[Build using libwpg 0.2.x])
-			with_libwpg=yes
-			AC_SUBST(LIBWPG_LIBS, $LIBWPG02_LIBS)
-			AC_SUBST(LIBWPG_CFLAGS, $LIBWPG02_CFLAGS)
-		fi
-	fi
-
-	if test "x$with_libwpg" = "xyes"; then
-		AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg])
-	fi
-fi
-AM_CONDITIONAL(WITH_LIBWPG03, test "x$with_libwpg03" = "xyes")
-AM_CONDITIONAL(WITH_LIBWPG02, test "x$with_libwpg02" = "xyes")
-AM_CONDITIONAL(WITH_LIBWPG, test "x$with_libwpg" = "xyes")
-
-dnl ********************************
-dnl Check for libvisio for extension
-dnl ********************************
-
-AC_ARG_ENABLE(visio,
-       AS_HELP_STRING([--disable-visio], [compile without support for Microsoft Visio Diagrams]),
-       enable_visio=$enableval,enable_visio=yes)
-
-with_libvisio=no
-
-if test "x$enable_visio" = "xyes"; then
-        dnl **************************************************************
-        dnl Try using librevenge framework first. Fall back to old libs
-        dnl if unavailable.
-        dnl TODO: Drop subsequent tests once this is widespread in distros
-        dnl **************************************************************
-	PKG_CHECK_MODULES(LIBVISIO01, libvisio-0.1 librevenge-0.0 librevenge-stream-0.0, with_libvisio01=yes, with_libvisio01=no)
-	if test "x$with_libvisio01" = "xyes"; then
-		AC_DEFINE(WITH_LIBVISIO01,1,[Build using libvisio 0.1.x])
-		with_libvisio=yes
-		AC_SUBST(LIBVISIO_LIBS, $LIBVISIO01_LIBS)
-		AC_SUBST(LIBVISIO_CFLAGS, $LIBVISIO01_CFLAGS)
-	else
-		PKG_CHECK_MODULES(LIBVISIO00, libvisio-0.0 >= 0.0.20 libwpd-0.9 libwpd-stream-0.9 libwpg-0.2, with_libvisio00=yes, with_libvisio00=no)
-		if test "x$with_libvisio00" = "xyes"; then
-			AC_DEFINE(WITH_LIBVISIO00,1,[Build using libvisio 0.0.x])
-			with_libvisio=yes
-			AC_SUBST(LIBVISIO_LIBS, $LIBVISIO00_LIBS)
-			AC_SUBST(LIBVISIO_CFLAGS, $LIBVISIO00_CFLAGS)
-		fi
-	fi
-
-	if test "x$with_libvisio" = "xyes"; then
-		AC_DEFINE(WITH_LIBVISIO,1,[Build in libvisio])
-	fi
-fi
-AM_CONDITIONAL(WITH_LIBVISIO01, test "x$with_libvisio01" = "xyes")
-AM_CONDITIONAL(WITH_LIBVISIO00, test "x$with_libvisio00" = "xyes")
-AM_CONDITIONAL(WITH_LIBVISIO, test "x$with_libvisio" = "xyes")
-
-dnl ********************************
-dnl Check for libcdr for extension
-dnl ********************************
-
-AC_ARG_ENABLE(cdr,
-       AS_HELP_STRING([--disable-cdr], [compile without support for CorelDRAW Diagrams]),
-       enable_cdr=$enableval,enable_cdr=yes)
-
-with_libcdr=no
-
-if test "x$enable_cdr" = "xyes"; then
-        dnl **************************************************************
-        dnl Try using librevenge framework first. Fall back to old libs
-        dnl if unavailable.
-        dnl TODO: Drop subsequent tests once this is widespread in distros
-        dnl **************************************************************
-	PKG_CHECK_MODULES(LIBCDR01, libcdr-0.1 librevenge-0.0 librevenge-stream-0.0, with_libcdr01=yes, with_libcdr01=no)
-	if test "x$with_libcdr01" = "xyes"; then
-		AC_DEFINE(WITH_LIBCDR01,1,[Build using libcdr 0.1.x])
-		with_libcdr=yes
-		AC_SUBST(LIBCDR_LIBS, $LIBCDR01_LIBS)
-		AC_SUBST(LIBCDR_CFLAGS, $LIBCDR01_CFLAGS)
-	else
-		PKG_CHECK_MODULES(LIBCDR00, libcdr-0.0 >= 0.0.3 libwpd-0.9 libwpd-stream-0.9 libwpg-0.2, with_libcdr00=yes, with_libcdr00=no)
-		if test "x$with_libcdr00" = "xyes"; then
-			AC_DEFINE(WITH_LIBCDR00,1,[Build using libcdr 0.0.x])
-			with_libcdr=yes
-			AC_SUBST(LIBCDR_LIBS, $LIBCDR00_LIBS)
-			AC_SUBST(LIBCDR_CFLAGS, $LIBCDR00_CFLAGS)
-		fi
-	fi
-
-	if test "x$with_libcdr" = "xyes"; then
-		AC_DEFINE(WITH_LIBCDR,1,[Build in libcdr])
-	fi
-fi
-AM_CONDITIONAL(WITH_LIBCDR01, test "x$with_libcdr01" = "xyes")
-AM_CONDITIONAL(WITH_LIBCDR00, test "x$with_libcdr00" = "xyes")
-AM_CONDITIONAL(WITH_LIBCDR, test "x$with_libcdr" = "xyes")
-
-dnl ******************************
-dnl Support doing a local install
-dnl   (mostly for distcheck)
-dnl ******************************
-
-with_localinstall="no"
-AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install system files in the local path (for distcheck)]), with_localinstall=$enableval, with_localinstall=no)
-
-dnl ******************************
-dnl Check for dbus functionality
-dnl ******************************
-
-AC_ARG_ENABLE(dbusapi,
-       AS_HELP_STRING([--enable-dbusapi], [compile with support for DBus interface]),
-       enable_dbusapi=$enableval,enable_dbusapi=no)
-
-with_dbus="no"
-if test "x$enable_dbusapi" = "xyes"; then
-	PKG_CHECK_MODULES(DBUS, dbus-glib-1, with_dbus=yes, with_dbus=no)
-	if test "x$with_dbus" = "xyes"; then
-		if test "x$with_localinstall" = "xyes"; then
-			DBUSSERVICEDIR="${datadir}/dbus-1/services/"
-		else
-			DBUSSERVICEDIR=`$PKG_CONFIG --variable=session_bus_services_dir dbus-1`
-		fi
-		AC_SUBST(DBUSSERVICEDIR)
-		AC_DEFINE(WITH_DBUS,1,[Build in dbus])
-	fi
-fi
-AC_SUBST(DBUS_LIBS)
-AC_SUBST(DBUS_CFLAGS)
-AM_CONDITIONAL(WITH_DBUS, test "x$with_dbus" = "xyes")
-
-dnl ******************************
-dnl Check for ImageMagick Magick++ 
-dnl ******************************
-
-PKG_CHECK_MODULES(IMAGEMAGICK, ImageMagick++, magick_ok=yes, magick_ok=no)
-if test "x$magick_ok" = "xyes"; then
-      AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
-fi
-AM_CONDITIONAL(USE_IMAGE_MAGICK, test "x$magick_ok" = "xyes")
-
-AC_SUBST(IMAGEMAGICK_LIBS)
-AC_SUBST(IMAGEMAGICK_CFLAGS)
-
-dnl ******************************
-dnl   Unconditional dependencies
-dnl ******************************
-
-dnl Separate out dependencies that are known to introduce
-dnl C++-specific compiler flags
-PKG_CHECK_MODULES(INKSCAPE_CXX_DEPS,
-		  cairomm-1.0 >= 1.9.8
-		  glibmm-2.4  >= 2.28
-		  giomm-2.4
-		  sigc++-2.0  >= 2.0.12
-		  )
-
-PKG_CHECK_MODULES(INKSCAPE,
-		  bdw-gc      >= 7.2
-		  cairo       >= 1.10
-		  glib-2.0    >= 2.28
-		  gmodule-2.0
-		  gsl
-		  gthread-2.0 >= 2.0
-		  libpng      >= 1.2
-		  libxml-2.0  >= 2.6.11
-		  libxslt     >= 1.0.15
-		  pango       >= 1.24
-		  pangoft2    >= 1.24
-		  )
-
-ink_spell_pkg=
-if pkg-config --exists gtkspell-3.0; then
-	ink_spell_pkg=gtkspell-3.0
-	AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
-fi
-
-PKG_CHECK_MODULES(GTK,
-                  gtk+-3.0  >= 3.8
-		  gdk-3.0   >= 3.8
-		  gdl-3.0   > 3.4
-		  $ink_spell_pkg)
-
-dnl Separate out dependencies that are known to introduce
-dnl C++-specific compiler flags
-PKG_CHECK_MODULES(GTKMM,
-		  gtkmm-3.0 >= 3.8
-		  gdkmm-3.0 >= 3.8)
-
-# Check whether we can use new features in Gtkmm 3.10
-# TODO: Drop this test and bump the version number in the GTK test above
-#       as soon as all supported distributions provide Gtkmm >= 3.10
-PKG_CHECK_MODULES(GTKMM_3_10,
-		  gtkmm-3.0 >= 3.10,
-		  with_gtkmm_3_10=yes,
-		  with_gtkmm_3_10=no)
-
-if test "x$with_gtkmm_3_10" = "xyes"; then
-	AC_MSG_RESULT([Using Gtkmm 3.10 build])
-	AC_DEFINE(WITH_GTKMM_3_10,1,[Build with Gtkmm 3.10.x or higher])
-fi
-
-# Check whether we are using Gdl >= 3.6.  This version introduced an API/ABI change.
-# TODO: We should drop support for older versions of Gdl once all supported distros
-#       provide Gdl 3.6 or higher
-PKG_CHECK_MODULES(GDL_3_6, gdl-3.0 >= 3.6, with_gdl_3_6=yes, with_gdl_3_6=no)
-
-if test "x$with_gdl_3_6" = "xyes"; then
-	AC_MSG_RESULT([Using Gdl 3.6 or higher])
-	AC_DEFINE(WITH_GDL_3_6,1,[Build with Gdl 3.6 or higher])
-fi
-
-# Check whether we are using the X11 backend target for Gtk+ 3.
-GTK_CHECK_BACKEND([x11], , [have_x11=yes], [have_x11=no])
-
-# Enable strict build options that should work on most systems unless
-# the build has been configured not to do so
-if test "x$enable_strict_build" != "xno"; then
-	# Add build flags here as soon as Inkscape trunk can build
-	# against Gtk+ 3 with the option enabled
-	echo ""
-fi
-
-# Enable strict build options that are known to cause failure in
-# Gtk+ 3 builds
-if test "x$enable_strict_build" = "xhigh"; then
-	# Disable deprecated Gtk+ symbols that have been removed since
-	# Gtk+ 3.
-	CPPFLAGS="-DGTKMM_DISABLE_DEPRECATED $CPPFLAGS"
-	CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
-	CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
-fi
-
-INKSCAPE_CFLAGS="$GTK_CFLAGS $INKSCAPE_CFLAGS"
-INKSCAPE_CXX_DEPS_CFLAGS="$GTKMM_CFLAGS $INKSCAPE_CXX_DEPS_CFLAGS"
-INKSCAPE_LIBS="$GTK_LIBS $INKSCAPE_LIBS"
-INKSCAPE_CXX_DEPS_LIBS="$GTKMM_LIBS $INKSCAPE_CXX_DEPS_LIBS"
-
-dnl Configure x11 library if Gtk+ uses it as a backend.
-dnl Note that this is only here because we directly use X11 functionality.  We
-dnl wouldn't need this check if we were only using X as the Gtk+ backend.
-if test "x$have_x11" = "xyes"; then
-	PKG_CHECK_MODULES(X11, x11)
-fi
-AC_SUBST(X11_CFLAGS)
-AC_SUBST(X11_LIBS)
-
-# Prevent usage of deprecated library symbols unless strict build
-# checking has been disabled
-if test "x$enable_strict_build" != "xno"; then
-	CPPFLAGS="-DGDKMM_DISABLE_DEPRECATED $CPPFLAGS"
-	
-	# Ensure that no deprecated glibmm symbols are introduced.
-	# lp:inkscape builds cleanly with this option at r10957
-	CPPFLAGS="-DGLIBMM_DISABLE_DEPRECATED $CPPFLAGS"
-	
-	dnl Pango 1.32.4 uses a deprecated Glib symbol:
-	dnl   https://bugzilla.gnome.org/show_bug.cgi?id=689843
-	dnl 
-	dnl TODO: Get rid of this check once we are sure that all targeted
-	dnl       platforms have got rid of this Pango version.  Apply the
-	dnl       G_DISABLE_DEPRECATED flag to all builds.
-	pango_uses_deprecated_glib_symbols=no
-
-	PKG_CHECK_MODULES(PANGO_USES_DEPRECATED_GLIB_SYMBOLS,
-			  pango = 1.32.4,
-			  pango_uses_deprecated_glib_symbols=yes,
-			  pango_uses_deprecated_glib_symbols=no)
-
-	# Don't disable deprecated Glib symbols if it will break stuff in an
-	# external library header that we use
-	if test "x$pango_uses_deprecated_glib_symbols" = "xyes"; then
-		AC_MSG_WARN([The available version of Pango uses deprecated Glib symbols.  Deprecated Glib symbol usage will be allowed])
-	else
-		CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
-	fi
-fi
-
-# Disable all deprecated symbols if very strict build is requested.
-# TODO: Make this a default option for Gtk+ 2 or 3 builds as soon as
-#       possible.
-if test "x$enable_strict_build" = "xhigh"; then
-        CPPFLAGS="-Werror=deprecated-declarations $CPPFLAGS"
-fi
-
-# Check for some boost header files
-AC_CHECK_HEADERS([boost/concept_check.hpp], [], AC_MSG_ERROR([You need the boost package (e.g. libboost-dev)]))
-
-PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, cairo_pdf=yes, cairo_pdf=no)
-if test "x$cairo_pdf" = "xyes"; then
-  AC_DEFINE(HAVE_CAIRO_PDF, 1, [Whether the Cairo PDF backend is available])
-fi
-
-dnl Shouldn't we test for libz?
-INKSCAPE_LIBS="$INKSCAPE_LIBS -lz"
-if test "x$openmp_ok" = "xyes"; then
-	INKSCAPE_LIBS="$INKSCAPE_LIBS -lgomp"
-fi
-
-AC_CHECK_HEADER(popt.h,
-		[INKSCAPE_LIBS="$INKSCAPE_LIBS -lpopt"],
-		AC_MSG_ERROR([libpopt is required]))
-
-dnl **************************
-dnl Check for aspell 
-dnl ******************************
-AC_CHECK_LIB(aspell, new_aspell_config, [AC_CHECK_HEADER(aspell.h, aspell_ok=yes, aspell_ok=no)], aspell_ok=no, -lz -lm)
-if test "x$aspell_ok" = "xyes"; then
-	AC_DEFINE(HAVE_ASPELL, 1, [Use aspell for built-in spellchecker])
-  INKSCAPE_LIBS="$INKSCAPE_LIBS -laspell"
-else
-	AC_MSG_CHECKING([Aspell not found, spell checker will be disabled])
-fi
-
-dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
-sp_save_LIBS=$LIBS
-LIBS="$LIBS $INKSCAPE_LIBS"
-AC_CHECK_FUNCS(bind_textdomain_codeset)
-LIBS=$sp_save_LIBS
-
-
-dnl Check for binary relocation support
-dnl Hongli Lai 
-
-AC_ARG_ENABLE(binreloc,
-       AS_HELP_STRING([--enable-binreloc], [compile with binary relocation support]),
-       enable_binreloc=$enableval,enable_binreloc=no)
-
-AC_MSG_CHECKING(whether binary relocation support should be enabled)
-if test "$enable_binreloc" = "yes"; then
-       AC_MSG_RESULT(yes)
-       AC_MSG_CHECKING(for linker mappings at /proc/self/maps)
-       if test -e /proc/self/maps; then
-               AC_MSG_RESULT(yes)
-       else
-               AC_MSG_RESULT(no)
-               AC_MSG_ERROR(/proc/self/maps is not available. Binary relocation cannot be enabled.)
-               enable_binreloc="no"
-       fi
-
-elif test "$enable_binreloc" = "auto"; then
-       AC_MSG_RESULT(yes when available)
-       AC_MSG_CHECKING(for linker mappings at /proc/self/maps)
-       if test -e /proc/self/maps; then
-               AC_MSG_RESULT(yes)
-               enable_binreloc=yes
-
-               AC_MSG_CHECKING(whether everything is installed to the same prefix)
-               if test "$bindir" = '${exec_prefix}/bin' -a "$sbindir" = '${exec_prefix}/sbin' -a \
-                       "$datadir" = '${prefix}/share' -a "$libdir" = '${exec_prefix}/lib' -a \
-                       "$libexecdir" = '${exec_prefix}/libexec' -a "$sysconfdir" = '${prefix}/etc'
-               then
-                       AC_MSG_RESULT(yes)
-               else
-                       AC_MSG_RESULT(no)
-                       AC_MSG_NOTICE(Binary relocation support will be disabled.)
-                       enable_binreloc=no
-               fi
-
-       else
-               AC_MSG_RESULT(no)
-               enable_binreloc=no
-       fi
-
-elif test "$enable_binreloc" = "no"; then
-       AC_MSG_RESULT(no)
-else
-       AC_MSG_RESULT([no (unknown value "$enable_binreloc")])
-       enable_binreloc=no
-fi
-AC_DEFINE(BR_PTHREADS,[0],[Use binreloc thread support?])
-if test "$enable_binreloc" = "yes"; then
-   AC_DEFINE(ENABLE_BINRELOC,,[Use AutoPackage?])
-fi
-
-AC_ARG_ENABLE(osxapp,
-       AS_HELP_STRING([--enable-osxapp], [compile with OSX .app data dir paths]),
-       enable_osxapp=$enableval,enable_osxapp=no)
-if test "$enable_osxapp" = "yes"; then
-   AC_DEFINE(ENABLE_OSX_APP_LOCATIONS,,[Build with OSX .app data dir paths?])
-   LDFLAGS="$LDFLAGS -headerpad_max_install_names"
-fi
-
-dnl ******************************
-dnl   Reported by autoscan
-dnl ******************************
-AC_CHECK_FUNCS(pow)
-# if we did not find pow(), see if it's in libm.
-if test x"$ac_cv_func_pow" = x"no" ; then
-	AC_CHECK_LIB(m,pow)
-fi
-AC_CHECK_FUNCS(sqrt)
-AC_CHECK_FUNCS(floor)
-AC_CHECK_FUNCS(gettimeofday)
-AC_CHECK_FUNCS(memmove)
-AC_CHECK_FUNCS(memset)
-AC_CHECK_FUNCS(mkdir)
-AC_CHECK_FUNCS(strncasecmp)
-AC_CHECK_FUNCS(strpbrk)
-AC_CHECK_FUNCS(strrchr)
-AC_CHECK_FUNCS(strspn)
-AC_CHECK_FUNCS(strstr)
-AC_CHECK_FUNCS(strtoul)
-AC_CHECK_FUNCS(fpsetmask)
-AC_CHECK_FUNCS(ecvt)
-AC_CHECK_HEADERS(ieeefp.h)
-AC_CHECK_HEADERS(fcntl.h)
-AC_CHECK_HEADERS(libintl.h)
-AC_CHECK_HEADERS(stddef.h)
-AC_CHECK_HEADERS(sys/time.h)
-AC_FUNC_STAT
-AC_FUNC_STRFTIME
-AC_FUNC_STRTOD
-AC_HEADER_STAT
-AC_HEADER_TIME
-AC_STRUCT_TM
-AC_TYPE_MODE_T
-
-dnl Work around broken gcc 3.3 (seen on OSX) where "ENABLE_NLS" isn't
-dnl set correctly because the gettext function isn't noticed.
-if test "$ac_cv_header_libintl_h" = "yes" &&
-   test "$ac_cv_func_bind_textdomain_codeset" = "yes"  &&
-   test "$gt_cv_func_have_gettext" != "yes"; then
-    AC_DEFINE([ENABLE_NLS], [], [Description])
-fi
-
-dnl ******************************
-dnl   Compilation warnings
-dnl ******************************
-if test "$GXX" = "yes"; then
-  # Enable some warnings from g++.
-
-  # Rationale: a number of bugs in inkscape have been fixed by enabling g++
-  # warnings and addressing the produced warnings.  Usually the committing
-  # developer is the best person to address the warnings.
-
-  ink_svd_CXXFLAGS="$CXXFLAGS"
-  CXXFLAGS="-Wno-unused-parameter $CXXFLAGS"
-  # -Wno-unused-parameter isn't accepted by gcc 2.95.
-  AC_COMPILE_IFELSE([AC_LANG_SOURCE([int dummy;])
-], , CXXFLAGS="-Wno-unused $ink_svd_CXXFLAGS",)
-  # Note: At least one bug has been caught from unused parameter warnings,
-  # so it might be worth trying not to disable it.
-  # One way of selectively disabling the warnings (i.e. only where the
-  # programmer deliberately isn't using the parameter, e.g. for a callback)
-  # is to remove the parameter name (leaving just its type), as is done
-  # in src/seltrans.cpp:sp_seltrans_handle_event; this indicates that the
-  # programmer deliberately has an unused parameter (e.g. because it's used
-  # as a callback or similar function pointer use).
-
-  # Add even more stuff
-  CXXFLAGS="-Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch $CXXFLAGS"
-
-fi
-
-dnl ******************************
-dnl   libinkscape
-dnl ******************************
-dnl
-dnl AC_ARG_ENABLE(libinkscape, AS_HELP_STRING([--enable-libinkscape],[Compile dynamic library (experimental)]), [splib=$enableval], [splib=no])
-dnl
-dnl AM_CONDITIONAL(ENABLE_LIBINKSCAPE, test "x$splib" != "xno")
-dnl
-
-AC_SUBST(INKSCAPE_CFLAGS)
-AC_SUBST(INKSCAPE_LIBS)
-AC_SUBST(INKSCAPE_CXX_DEPS_CFLAGS)
-AC_SUBST(INKSCAPE_CXX_DEPS_LIBS)
-
-dnl Define our data paths for config.h
-AC_DEFINE_DIR([INKSCAPE_DATADIR], [datadir], [Base data directory])
-AC_DEFINE_DIR([PACKAGE_LOCALE_DIR], [localedir], [Locatization directory])
-
-AC_CONFIG_FILES([
-Makefile
-src/Makefile
-src/check-header-compile
-src/debug/makefile
-src/display/makefile
-src/extension/implementation/makefile
-src/extension/internal/makefile
-src/extension/makefile
-src/extension/dbus/wrapper/inkdbus.pc
-src/filters/makefile
-src/helper/makefile
-src/io/makefile
-src/libcroco/makefile
-src/libnrtype/makefile
-src/libavoid/makefile
-src/libuemf/makefile
-src/livarot/makefile
-src/live_effects/makefile
-src/live_effects/parameter/makefile
-src/svg/makefile
-src/trace/makefile
-src/ui/cache/makefile
-src/ui/dialog/makefile
-src/ui/makefile
-src/ui/view/makefile
-src/ui/widget/makefile
-src/util/makefile
-src/widgets/makefile
-src/xml/makefile
-src/2geom/makefile
-doc/Makefile
-po/Makefile.in
-share/Makefile
-share/attributes/Makefile
-share/branding/Makefile
-share/examples/Makefile
-share/extensions/Makefile
-share/extensions/alphabet_soup/Makefile
-share/extensions/Barcode/Makefile
-share/extensions/Poly3DObjects/Makefile
-share/extensions/test/Makefile
-share/extensions/xaml2svg/Makefile
-share/extensions/ink2canvas/Makefile
-share/filters/Makefile
-share/fonts/Makefile
-share/gradients/Makefile
-share/icons/Makefile
-share/icons/application/Makefile
-share/icons/application/16x16/Makefile
-share/icons/application/22x22/Makefile
-share/icons/application/24x24/Makefile
-share/icons/application/32x32/Makefile
-share/icons/application/48x48/Makefile
-share/icons/application/256x256/Makefile
-share/keys/Makefile
-share/markers/Makefile
-share/palettes/Makefile
-share/patterns/Makefile
-share/screens/Makefile
-share/symbols/Makefile
-share/templates/Makefile
-share/tutorials/Makefile
-share/ui/Makefile
-packaging/autopackage/default.apspec
-inkscape.spec
-Info.plist
-inkview.1
-])
-
-AH_BOTTOM([
-
-
-])
-
-AC_OUTPUT
-
-echo "
-Configuration:
-
-        Source code location:     ${srcdir}
-        Destination path prefix:  ${prefix}
-        Compiler:                 ${CXX}
-        CPPFLAGS:                 ${CPPFLAGS}
-        CXXFLAGS:                 ${CXXFLAGS}
-        CFLAGS:                   ${CFLAGS}
-        LDFLAGS:                  ${LDFLAGS}
-
-        Use gnome-vfs:            ${gnome_vfs}
-        Use openoffice files:     ${ij}
-        Use relocation support:   ${enable_binreloc}
-        Enable LittleCms:         ${enable_lcms}
-        Enable DBUS:              ${with_dbus} 
-        Enable Poppler-Cairo:     ${enable_poppler_cairo}
-	Enable Potrace:           ${potrace_ok}
-        ImageMagick Magick++:     ${magick_ok}
-        Libwpg:                   ${with_libwpg}
-        Libvisio:                 ${with_libvisio}
-        Libcdr:                   ${with_libcdr}
-        Doing Local Install:      ${with_localinstall}
-"
diff --git a/delautogen.sh b/delautogen.sh
deleted file mode 100755
index bc955a913..000000000
--- a/delautogen.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#! /bin/sh
-# delautogen.sh: Remove files created by autogen.sh, and files created by make
-# if compiling in the source directory.
-#
-# Requires gnu find, gnu xargs.
-
-set -e
-mydir=`dirname "$0"`
-cd "$mydir"
-rm -rf autom4te.cache
-rm -rf src/.libs
-for d in `find -name .cvsignore -printf '%h '`; do
-	(cd "$d" && rm -f *~ && rm -rf .deps && rm -f $(grep '^[][a-zA-Z0-9_.*?-]*$' .cvsignore) )
-done
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100644
index dd22e7710..000000000
--- a/doc/Makefile.am
+++ /dev/null
@@ -1,20 +0,0 @@
-EXTRA_DIST = README.document \
-	architecture.svg \
-	architecture.txt \
-	class-hierarchy.dia \
-	coordinates.txt \
-	HACKING.de.txt \
-	HACKING.fr.txt \
-	HACKING.it.txt \
-	HACKING.pt_BR.txt \
-	HACKING.txt \
-	keys.css \
-	keys.README \
-	keys.be.html\
-	keys.de.html \
-	keys.el.html \
-	keys.en.html \
-	keys.fr.html \
-	keys.ja.html \
-	keys.zh_TW.html \
-	refcounting.txt
diff --git a/m4/Makefile.am b/m4/Makefile.am
deleted file mode 100644
index e1b0207fe..000000000
--- a/m4/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-EXTRA_DIST = \
-	ac_define_dir.m4 \
-	codeset.m4 \
-	gettext.m4 \
-	glibc21.m4 \
-	iconv.m4 \
-	isc-posix.m4 \
-	lcmessage.m4 \
-	progtest.m4 \
-	relaytool.m4
-
diff --git a/m4/ac_define_dir.m4 b/m4/ac_define_dir.m4
deleted file mode 100644
index db42d3eb0..000000000
--- a/m4/ac_define_dir.m4
+++ /dev/null
@@ -1,49 +0,0 @@
-# ===========================================================================
-#             http://autoconf-archive.cryp.to/ac_define_dir.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AC_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION])
-#
-# DESCRIPTION
-#
-#   This macro sets VARNAME to the expansion of the DIR variable, taking
-#   care of fixing up ${prefix} and such.
-#
-#   VARNAME is then offered as both an output variable and a C preprocessor
-#   symbol.
-#
-#   Example:
-#
-#      AC_DEFINE_DIR([DATADIR], [datadir], [Where data are placed to.])
-#
-# LAST MODIFICATION
-#
-#   2008-04-12
-#
-# COPYLEFT
-#
-#   Copyright (c) 2008 Stepan Kasal 
-#   Copyright (c) 2008 Andreas Schwab 
-#   Copyright (c) 2008 Guido U. Draheim 
-#   Copyright (c) 2008 Alexandre Oliva
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.
-
-AC_DEFUN([AC_DEFINE_DIR], [
-  prefix_NONE=
-  exec_prefix_NONE=
-  test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
-  test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
-dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn
-dnl refers to ${prefix}.  Thus we have to use `eval' twice.
-  eval ac_define_dir="\"[$]$2\""
-  eval ac_define_dir="\"$ac_define_dir\""
-  AC_SUBST($1, "$ac_define_dir")
-  AC_DEFINE_UNQUOTED($1, "$ac_define_dir", [$3])
-  test "$prefix_NONE" && prefix=NONE
-  test "$exec_prefix_NONE" && exec_prefix=NONE
-])
diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
deleted file mode 100644
index 2c18e49c5..000000000
--- a/m4/ax_cxx_compile_stdcxx.m4
+++ /dev/null
@@ -1,562 +0,0 @@
-# ===========================================================================
-#   http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
-#
-# DESCRIPTION
-#
-#   Check for baseline language coverage in the compiler for the specified
-#   version of the C++ standard.  If necessary, add switches to CXX and
-#   CXXCPP to enable support.  VERSION may be '11' (for the C++11 standard)
-#   or '14' (for the C++14 standard).
-#
-#   The second argument, if specified, indicates whether you insist on an
-#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
-#   -std=c++11).  If neither is specified, you get whatever works, with
-#   preference for an extended mode.
-#
-#   The third argument, if specified 'mandatory' or if left unspecified,
-#   indicates that baseline support for the specified C++ standard is
-#   required and that the macro should error out if no mode with that
-#   support is found.  If specified 'optional', then configuration proceeds
-#   regardless, after defining HAVE_CXX${VERSION} if and only if a
-#   supporting mode is found.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Benjamin Kosnik 
-#   Copyright (c) 2012 Zack Weinberg 
-#   Copyright (c) 2013 Roy Stogner 
-#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov 
-#   Copyright (c) 2015 Paul Norman 
-#   Copyright (c) 2015 Moritz Klammler 
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.  This file is offered as-is, without any
-#   warranty.
-
-#serial 4
-
-dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
-dnl  (serial version number 13).
-
-AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
-  m4_if([$1], [11], [],
-        [$1], [14], [],
-        [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
-        [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
-  m4_if([$2], [], [],
-        [$2], [ext], [],
-        [$2], [noext], [],
-        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
-  m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
-        [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
-        [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
-        [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
-  AC_LANG_PUSH([C++])dnl
-  ac_success=no
-  AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
-  ax_cv_cxx_compile_cxx$1,
-  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-    [ax_cv_cxx_compile_cxx$1=yes],
-    [ax_cv_cxx_compile_cxx$1=no])])
-  if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
-    ac_success=yes
-  fi
-
-  m4_if([$2], [noext], [], [dnl
-  if test x$ac_success = xno; then
-    for switch in -std=gnu++$1 -std=gnu++0x; do
-      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-                     $cachevar,
-        [ac_save_CXX="$CXX"
-         CXX="$CXX $switch"
-         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-          [eval $cachevar=yes],
-          [eval $cachevar=no])
-         CXX="$ac_save_CXX"])
-      if eval test x\$$cachevar = xyes; then
-        CXX="$CXX $switch"
-        if test -n "$CXXCPP" ; then
-          CXXCPP="$CXXCPP $switch"
-        fi
-        ac_success=yes
-        break
-      fi
-    done
-  fi])
-
-  m4_if([$2], [ext], [], [dnl
-  if test x$ac_success = xno; then
-    dnl HP's aCC needs +std=c++11 according to:
-    dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
-    dnl Cray's crayCC needs "-h std=c++11"
-    for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
-      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-                     $cachevar,
-        [ac_save_CXX="$CXX"
-         CXX="$CXX $switch"
-         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-          [eval $cachevar=yes],
-          [eval $cachevar=no])
-         CXX="$ac_save_CXX"])
-      if eval test x\$$cachevar = xyes; then
-        CXX="$CXX $switch"
-        if test -n "$CXXCPP" ; then
-          CXXCPP="$CXXCPP $switch"
-        fi
-        ac_success=yes
-        break
-      fi
-    done
-  fi])
-  AC_LANG_POP([C++])
-  if test x$ax_cxx_compile_cxx$1_required = xtrue; then
-    if test x$ac_success = xno; then
-      AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
-    fi
-  fi
-  if test x$ac_success = xno; then
-    HAVE_CXX$1=0
-    AC_MSG_NOTICE([No compiler with C++$1 support was found])
-  else
-    HAVE_CXX$1=1
-    AC_DEFINE(HAVE_CXX$1,1,
-              [define if the compiler supports basic C++$1 syntax])
-  fi
-  AC_SUBST(HAVE_CXX$1)
-])
-
-
-dnl  Test body for checking C++11 support
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-)
-
-
-dnl  Test body for checking C++14 support
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
-)
-
-
-dnl  Tests for new features in C++11
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
-
-// If the compiler admits that it is not ready for C++11, why torture it?
-// Hopefully, this will speed up the test.
-
-#ifndef __cplusplus
-
-#error "This is not a C++ compiler"
-
-#elif __cplusplus < 201103L
-
-#error "This is not a C++11 compiler"
-
-#else
-
-namespace cxx11
-{
-
-  namespace test_static_assert
-  {
-
-    template 
-    struct check
-    {
-      static_assert(sizeof(int) <= sizeof(T), "not big enough");
-    };
-
-  }
-
-  namespace test_final_override
-  {
-
-    struct Base
-    {
-      virtual void f() {}
-    };
-
-    struct Derived : public Base
-    {
-      virtual void f() override {}
-    };
-
-  }
-
-  namespace test_double_right_angle_brackets
-  {
-
-    template < typename T >
-    struct check {};
-
-    typedef check single_type;
-    typedef check> double_type;
-    typedef check>> triple_type;
-    typedef check>>> quadruple_type;
-
-  }
-
-  namespace test_decltype
-  {
-
-    int
-    f()
-    {
-      int a = 1;
-      decltype(a) b = 2;
-      return a + b;
-    }
-
-  }
-
-  namespace test_type_deduction
-  {
-
-    template < typename T1, typename T2 >
-    struct is_same
-    {
-      static const bool value = false;
-    };
-
-    template < typename T >
-    struct is_same
-    {
-      static const bool value = true;
-    };
-
-    template < typename T1, typename T2 >
-    auto
-    add(T1 a1, T2 a2) -> decltype(a1 + a2)
-    {
-      return a1 + a2;
-    }
-
-    int
-    test(const int c, volatile int v)
-    {
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == false, "");
-      static_assert(is_same::value == false, "");
-      auto ac = c;
-      auto av = v;
-      auto sumi = ac + av + 'x';
-      auto sumf = ac + av + 1.0;
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == false, "");
-      static_assert(is_same::value == true, "");
-      return (sumf > 0.0) ? sumi : add(c, v);
-    }
-
-  }
-
-  namespace test_noexcept
-  {
-
-    int f() { return 0; }
-    int g() noexcept { return 0; }
-
-    static_assert(noexcept(f()) == false, "");
-    static_assert(noexcept(g()) == true, "");
-
-  }
-
-  namespace test_constexpr
-  {
-
-    template < typename CharT >
-    unsigned long constexpr
-    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
-    {
-      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
-    }
-
-    template < typename CharT >
-    unsigned long constexpr
-    strlen_c(const CharT *const s) noexcept
-    {
-      return strlen_c_r(s, 0UL);
-    }
-
-    static_assert(strlen_c("") == 0UL, "");
-    static_assert(strlen_c("1") == 1UL, "");
-    static_assert(strlen_c("example") == 7UL, "");
-    static_assert(strlen_c("another\0example") == 7UL, "");
-
-  }
-
-  namespace test_rvalue_references
-  {
-
-    template < int N >
-    struct answer
-    {
-      static constexpr int value = N;
-    };
-
-    answer<1> f(int&)       { return answer<1>(); }
-    answer<2> f(const int&) { return answer<2>(); }
-    answer<3> f(int&&)      { return answer<3>(); }
-
-    void
-    test()
-    {
-      int i = 0;
-      const int c = 0;
-      static_assert(decltype(f(i))::value == 1, "");
-      static_assert(decltype(f(c))::value == 2, "");
-      static_assert(decltype(f(0))::value == 3, "");
-    }
-
-  }
-
-  namespace test_uniform_initialization
-  {
-
-    struct test
-    {
-      static const int zero {};
-      static const int one {1};
-    };
-
-    static_assert(test::zero == 0, "");
-    static_assert(test::one == 1, "");
-
-  }
-
-  namespace test_lambdas
-  {
-
-    void
-    test1()
-    {
-      auto lambda1 = [](){};
-      auto lambda2 = lambda1;
-      lambda1();
-      lambda2();
-    }
-
-    int
-    test2()
-    {
-      auto a = [](int i, int j){ return i + j; }(1, 2);
-      auto b = []() -> int { return '0'; }();
-      auto c = [=](){ return a + b; }();
-      auto d = [&](){ return c; }();
-      auto e = [a, &b](int x) mutable {
-        const auto identity = [](int y){ return y; };
-        for (auto i = 0; i < a; ++i)
-          a += b--;
-        return x + identity(a + b);
-      }(0);
-      return a + b + c + d + e;
-    }
-
-    int
-    test3()
-    {
-      const auto nullary = [](){ return 0; };
-      const auto unary = [](int x){ return x; };
-      using nullary_t = decltype(nullary);
-      using unary_t = decltype(unary);
-      const auto higher1st = [](nullary_t f){ return f(); };
-      const auto higher2nd = [unary](nullary_t f1){
-        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
-      };
-      return higher1st(nullary) + higher2nd(nullary)(unary);
-    }
-
-  }
-
-  namespace test_variadic_templates
-  {
-
-    template 
-    struct sum;
-
-    template 
-    struct sum
-    {
-      static constexpr auto value = N0 + sum::value;
-    };
-
-    template <>
-    struct sum<>
-    {
-      static constexpr auto value = 0;
-    };
-
-    static_assert(sum<>::value == 0, "");
-    static_assert(sum<1>::value == 1, "");
-    static_assert(sum<23>::value == 23, "");
-    static_assert(sum<1, 2>::value == 3, "");
-    static_assert(sum<5, 5, 11>::value == 21, "");
-    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-
-  }
-
-  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
-  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
-  // because of this.
-  namespace test_template_alias_sfinae
-  {
-
-    struct foo {};
-
-    template
-    using member = typename T::member_type;
-
-    template
-    void func(...) {}
-
-    template
-    void func(member*) {}
-
-    void test();
-
-    void test() { func(0); }
-
-  }
-
-}  // namespace cxx11
-
-#endif  // __cplusplus >= 201103L
-
-]])
-
-
-dnl  Tests for new features in C++14
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
-
-// If the compiler admits that it is not ready for C++14, why torture it?
-// Hopefully, this will speed up the test.
-
-#ifndef __cplusplus
-
-#error "This is not a C++ compiler"
-
-#elif __cplusplus < 201402L
-
-#error "This is not a C++14 compiler"
-
-#else
-
-namespace cxx14
-{
-
-  namespace test_polymorphic_lambdas
-  {
-
-    int
-    test()
-    {
-      const auto lambda = [](auto&&... args){
-        const auto istiny = [](auto x){
-          return (sizeof(x) == 1UL) ? 1 : 0;
-        };
-        const int aretiny[] = { istiny(args)... };
-        return aretiny[0];
-      };
-      return lambda(1, 1L, 1.0f, '1');
-    }
-
-  }
-
-  namespace test_binary_literals
-  {
-
-    constexpr auto ivii = 0b0000000000101010;
-    static_assert(ivii == 42, "wrong value");
-
-  }
-
-  namespace test_generalized_constexpr
-  {
-
-    template < typename CharT >
-    constexpr unsigned long
-    strlen_c(const CharT *const s) noexcept
-    {
-      auto length = 0UL;
-      for (auto p = s; *p; ++p)
-        ++length;
-      return length;
-    }
-
-    static_assert(strlen_c("") == 0UL, "");
-    static_assert(strlen_c("x") == 1UL, "");
-    static_assert(strlen_c("test") == 4UL, "");
-    static_assert(strlen_c("another\0test") == 7UL, "");
-
-  }
-
-  namespace test_lambda_init_capture
-  {
-
-    int
-    test()
-    {
-      auto x = 0;
-      const auto lambda1 = [a = x](int b){ return a + b; };
-      const auto lambda2 = [a = lambda1(x)](){ return a; };
-      return lambda2();
-    }
-
-  }
-
-  namespace test_digit_seperators
-  {
-
-    constexpr auto ten_million = 100'000'000;
-    static_assert(ten_million == 100000000, "");
-
-  }
-
-  namespace test_return_type_deduction
-  {
-
-    auto f(int& x) { return x; }
-    decltype(auto) g(int& x) { return x; }
-
-    template < typename T1, typename T2 >
-    struct is_same
-    {
-      static constexpr auto value = false;
-    };
-
-    template < typename T >
-    struct is_same
-    {
-      static constexpr auto value = true;
-    };
-
-    int
-    test()
-    {
-      auto x = 0;
-      static_assert(is_same::value, "");
-      static_assert(is_same::value, "");
-      return x;
-    }
-
-  }
-
-}  // namespace cxx14
-
-#endif  // __cplusplus >= 201402L
-
-]])
diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4
deleted file mode 100644
index 0aadeafe7..000000000
--- a/m4/ax_cxx_compile_stdcxx_11.m4
+++ /dev/null
@@ -1,39 +0,0 @@
-# ============================================================================
-#  http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
-# ============================================================================
-#
-# SYNOPSIS
-#
-#   AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional])
-#
-# DESCRIPTION
-#
-#   Check for baseline language coverage in the compiler for the C++11
-#   standard; if necessary, add switches to CXX and CXXCPP to enable
-#   support.
-#
-#   This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX
-#   macro with the version set to C++11.  The two optional arguments are
-#   forwarded literally as the second and third argument respectively.
-#   Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for
-#   more information.  If you want to use this macro, you also need to
-#   download the ax_cxx_compile_stdcxx.m4 file.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Benjamin Kosnik 
-#   Copyright (c) 2012 Zack Weinberg 
-#   Copyright (c) 2013 Roy Stogner 
-#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov 
-#   Copyright (c) 2015 Paul Norman 
-#   Copyright (c) 2015 Moritz Klammler 
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 17
-
-AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX])
-AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])])
diff --git a/m4/ink_bzr_snapshot_build.m4 b/m4/ink_bzr_snapshot_build.m4
deleted file mode 100644
index 4dc2df54f..000000000
--- a/m4/ink_bzr_snapshot_build.m4
+++ /dev/null
@@ -1,14 +0,0 @@
-# Check for BZR snapshot build
-# (c) 2009 Krzysztof Kosiński
-# Released under GNU GPL; see the file COPYING for more information
-
-AC_DEFUN([INK_BZR_SNAPSHOT_BUILD],
-[
-  AC_CACHE_CHECK([for BZR snapshot build], ink_cv_bzr_snapshot_build,
-                 [ink_cv_bzr_snapshot_build=no
-                  if which bzr > /dev/null && test -e $srcdir/.bzr/branch/last-revision; then
-                    ink_cv_bzr_snapshot_build=yes
-                  fi
-  ])
-  AM_CONDITIONAL([USE_BZR_VERSION], [test "x$ink_cv_bzr_snapshot_build" = "xyes"])
-])
diff --git a/m4/relaytool.m4 b/m4/relaytool.m4
deleted file mode 100644
index 5cd65aea0..000000000
--- a/m4/relaytool.m4
+++ /dev/null
@@ -1,30 +0,0 @@
-dnl  Usage: RELAYTOOL(LIBRARY_NAME, LIBS, CFLAGS, ACTION-IF-WEAK-LINK-IS-POSSIBLE)
-
-dnl  Example:
-dnl  RELAYTOOL("gtkspell", GTKSPELL_LIBS, GTKSPELL_CFLAGS, gtkspell_weak=yes)
-dnl  Will modify GTKSPELL_LIBS to include a call to relaytool if available
-dnl  or if not, will modify GTKSPELL_CFLAGS to include -D switches to define
-dnl  libgtkspell_is_present=1 and libgtkspell_symbol_is_present=1
-
-AC_DEFUN([RELAYTOOL], [
-    if test -z "$RELAYTOOL_PROG"; then
-        AC_PATH_PROG(RELAYTOOL_PROG, relaytool, no)
-    fi
-
-    AC_MSG_CHECKING(whether we can weak link $1)
-
-    _RELAYTOOL_PROCESSED_NAME=`echo "$1" | sed 's/-/_/g;s/\./_/g;'`
-    _RELAYTOOL_UPPER_NAME=`echo $_RELAYTOOL_PROCESSED_NAME | tr '[[:lower:]]' '[[:upper:]]'`
-
-    if test "$RELAYTOOL_PROG" = "no"; then
-        AC_MSG_RESULT(no)
-        $3="-DRELAYTOOL_${_RELAYTOOL_UPPER_NAME}='static const int lib${_RELAYTOOL_PROCESSED_NAME}_is_present = 1; static int __attribute__((unused)) lib${_RELAYTOOL_PROCESSED_NAME}_symbol_is_present(char *m) { return 1; }' $$3"
-    else
-        AC_MSG_RESULT(yes)
-        $2=`echo $$2|sed 's/\`/\\\\\`/g;'`
-        $2="-Wl,--gc-sections \`relaytool --relay $1 $$2\`"
-	$3="-DRELAYTOOL_${_RELAYTOOL_UPPER_NAME}='extern int lib${_RELAYTOOL_PROCESSED_NAME}_is_present; extern int lib${_RELAYTOOL_PROCESSED_NAME}_symbol_is_present(char *s);' $$3"
-        $4
-    fi
-])
-
diff --git a/share/Makefile.am b/share/Makefile.am
deleted file mode 100644
index fa778b031..000000000
--- a/share/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-SUBDIRS = attributes \
-          branding \
-          examples \
-          extensions \
-          filters \
-          fonts \
-          gradients \
-          icons \
-          keys \
-          markers \
-          palettes \
-          patterns \
-          screens \
-          symbols \
-          templates \
-          tutorials \
-          ui
-
-## COPY THE REST OF THE FOLDERS TO THE PROPER LOCATION
-
-## dist-hook:
-##	mkdir $(distdir)/samples
-##	cp $(datadir)/samples/*svg $(distdir)/samples
-##	cp $(datadir)/samples/*png $(distdir)/samples
-
diff --git a/share/attributes/Makefile.am b/share/attributes/Makefile.am
deleted file mode 100644
index 9834c5b14..000000000
--- a/share/attributes/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-
-attributesdir = $(datadir)/inkscape/attributes
-
-attributes_DATA = \
-	svgprops \
-	cssprops \
-	css_defaults \
-	README
-
-EXTRA_DIST = $(attributes_DATA)
diff --git a/share/branding/Makefile.am b/share/branding/Makefile.am
deleted file mode 100644
index 1561dbf2c..000000000
--- a/share/branding/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-
-brandingdir = $(datadir)/inkscape/branding
-iconsdir = $(datadir)/inkscape/icons
-
-branding_DATA =  \
-	README \
-	inkscape.svg \
-	inkscape-flat.svg \
-	inkscape-text.svg \
-	sodipodi.svg \
-	LinLibertine_DR.otf \
-	EuphoriaScript-Regular.otf \
-	tux.svg 
-
-icons_DATA = \
-	inkscape.svg
-
-EXTRA_DIST = $(branding_DATA) $(icons_DATA)
diff --git a/share/examples/Makefile.am b/share/examples/Makefile.am
deleted file mode 100644
index a89246048..000000000
--- a/share/examples/Makefile.am
+++ /dev/null
@@ -1,37 +0,0 @@
-
-exampledir = $(datadir)/inkscape/examples
-
-example_DATA = \
-	README \
-	istest.pov \
-	gradient.svg \
-	tiger.svgz \
-	markers.svg \
-	i18n.svg \
-	stars.svgz \
-	text-on-path.svg \
-	flowsample.svg \
-	data_uri.svg \
-	tesselation-P3.svg \
-	art-nouveau-P3.svg \
-	eastern-motive-P4G.svg \
-	l-systems.svgz \
-	glass.svg \
-	car.svgz \
-	gallardo.svgz \
-	gradient-mesh-experimental.svgz \
-	rope-3D.svg \
-	animated-clock.svg \
-	blend_modes.svg \
-	flow-go.svg \
-	lighting_filters.svg \
-	turbulence_filters.svg \
-	live-path-effects-curvestitch.svg \
-	live-path-effects-gears.svg \
-	live-path-effects-pathalongpath.svg \
-	filters.svg \
-	svgfont.svg \
-	tref.svg \
-	replace-hue.svg
-
-EXTRA_DIST = $(example_DATA)
diff --git a/share/extensions/Barcode/Makefile.am b/share/extensions/Barcode/Makefile.am
deleted file mode 100644
index 08e2f58b4..000000000
--- a/share/extensions/Barcode/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-
-barcodedir = $(datadir)/inkscape/extensions/Barcode
-
-barcode_DATA = \
-	Base.py \
-    BaseEan.py \
-	Code128.py \
-	Code39Ext.py \
-	Code39.py \
-    Code25i.py \
-	Code93.py \
-	Ean13.py \
-	Ean8.py \
-	Ean5.py \
-	Ean2.py \
-	__init__.py \
-	Rm4scc.py \
-	Upca.py \
-	Upce.py
-
-EXTRA_DIST = \
-	$(barcode_DATA)
-
diff --git a/share/extensions/Makefile.am b/share/extensions/Makefile.am
deleted file mode 100644
index f247cd8bb..000000000
--- a/share/extensions/Makefile.am
+++ /dev/null
@@ -1,42 +0,0 @@
-
-SUBDIRS = \
-	alphabet_soup \
-	Barcode \
-	ink2canvas \
-	Poly3DObjects \
-	test \
-	xaml2svg
-
-extensiondir = $(datadir)/inkscape/extensions
-
-otherstuffdir = $(datadir)/inkscape/extensions
-
-moduledir = $(datadir)/inkscape/extensions
-
-extension_SCRIPTS = \
-	$(wildcard $(srcdir)/*.py) \
-	$(wildcard $(srcdir)/*.pl) \
-	$(wildcard $(srcdir)/*.sh) \
-	$(wildcard $(srcdir)/*.rb)
-
-otherstuff_DATA = \
-	fontfix.conf \
-	inkweb.js \
-	jessyInk.js \
-	jessyInk_core_mouseHandler_noclick.js \
-	jessyInk_core_mouseHandler_zoomControl.js \
-	aisvg.xslt \
-	colors.xml \
-	jessyInk_video.svg \
-	seamless_pattern.svg \
-	svg2fxg.xsl \
-	svg2xaml.xsl \
-	xaml2svg.xsl \
-	inkscape.extension.rng
-
-module_DATA = $(wildcard $(srcdir)/*.inx)
-
-EXTRA_DIST = \
-	$(extension_SCRIPTS) $(otherstuff_DATA) $(module_DATA)
-
-
diff --git a/share/extensions/Poly3DObjects/Makefile.am b/share/extensions/Poly3DObjects/Makefile.am
deleted file mode 100644
index 82a81af42..000000000
--- a/share/extensions/Poly3DObjects/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-
-Poly3DObjectsdir = $(datadir)/inkscape/extensions/Poly3DObjects
-
-Poly3DObjects_DATA = \
-	cube.obj \
-	cuboct.obj \
-	dodec.obj \
-	great_dodec.obj \
-	great_rhombicosidodec.obj \
-	great_rhombicuboct.obj \
-	great_stel_dodec.obj \
-	icos.obj \
-	icosidodec.obj \
-	jessens_orthog_icos.obj \
-	methane.obj \
-	oct.obj \
-	rhomb_dodec.obj \
-	rhomb_triacont.obj \
-	rh_axes.obj \
-	small_rhombicosidodec.obj \
-	small_rhombicuboct.obj \
-	small_triam_icos.obj \
-	snub_cube.obj \
-	snub_dodec.obj \
-	szilassi.obj \
-	tet.obj \
-	trunc_cube.obj \
-	trunc_dodec.obj \
-	trunc_icos.obj \
-	trunc_oct.obj \
-	trunc_tet.obj
-
-EXTRA_DIST = $(Poly3DObjects_DATA)
diff --git a/share/extensions/alphabet_soup/Makefile.am b/share/extensions/alphabet_soup/Makefile.am
deleted file mode 100644
index 004da4e8c..000000000
--- a/share/extensions/alphabet_soup/Makefile.am
+++ /dev/null
@@ -1,78 +0,0 @@
-
-alphabet_soupdir = $(datadir)/inkscape/extensions/alphabet_soup
-
-alphabet_soup_DATA = \
-	2.svg \
-	3.svg \
-	6.svg \
-	7.svg \
-	abase.svg \
-	a.svg \
-	acap.svg \
-	bar2.svg \
-	barcap.svg \
-	bar.svg \
-	b.svg \
-	Cblob.svg \
-	Chook.svg \
-	cross.svg \
-	cserif.svg \
-	c.svg \
-	Ctail.svg \
-	Delta.svg \
-	Eb.svg \
-	epsilon.svg \
-	Eserif.svg \
-	e.svg \
-	Et.svg \
-	f.svg \
-	gamma.svg \
-	G.svg \
-	h2.svg \
-	hcap.svg \
-	h.svg \
-	IBSerif.svg \
-	idot.svg \
-	ITSerif.svg \
-	j.svg \
-	k.svg \
-	Lb.svg \
-	lserif.svg \
-	l.svg \
-	Lt.svg \
-	mcap.svg \
-	m.svg \
-	n.svg \
-	ocap.svg \
-	Ocross.svg \
-	o.svg \
-	Oterm.svg \
-	P.svg \
-	Q.svg \
-	question.svg \
-	Rblock.svg \
-	rcap.svg \
-	r.svg \
-	serif.svg \
-	s.svg \
-	Tb.svg \
-	tserif.svg \
-	t.svg \
-	Tt.svg \
-	U.svg \
-	vcap.svg \
-	vserl.svg \
-	vserr.svg \
-	Vser.svg \
-	v.svg \
-	Xh.svg \
-	Xne.svg \
-	Xnw.svg \
-	x.svg \
-	Xvb.svg \
-	Xvt.svg \
-	yogh.svg \
-	y.svg \
-	z.svg
-
-EXTRA_DIST = $(alphabet_soup_DATA)	
diff --git a/share/extensions/ink2canvas/Makefile.am b/share/extensions/ink2canvas/Makefile.am
deleted file mode 100644
index ab6e7661d..000000000
--- a/share/extensions/ink2canvas/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-
-ink2canvasdir = $(datadir)/inkscape/extensions/ink2canvas
-
-ink2canvas_DATA = \
-  __init__.py \
-	canvas.py \
-  svg.py
-
-EXTRA_DIST = $(ink2canvas_DATA)
diff --git a/share/extensions/test/Makefile.am b/share/extensions/test/Makefile.am
deleted file mode 100644
index cd1929a7f..000000000
--- a/share/extensions/test/Makefile.am
+++ /dev/null
@@ -1,60 +0,0 @@
-
-# List of all tests to be run.
-#TESTS = svgcalendar.test.py
-# that is not working :-/
-
-EXTRA_DIST = \
-		addnodes.test.py \
-		chardataeffect.test.py \
-		color_randomize_test.py \
-		coloreffect.test.py \
-		create_test_from_template.sh \
-		dots.test.py \
-		draw_from_triangle.test.py \
-		dxf_outlines.test.py \
-		edge3d.test.py \
-		embedimage.test.py \
-		eqtexsvg.test.py \
-		extractimage.test.py \
-		extrude.test.py \
-		flatten.test.py \
-		foldablebox.test.py \
-		fractalize.test.py \
-		funcplot.test.py \
-		gimp_xcf.test.py \
-		grid_cartesian.test.py \
-		grid_polar.test.py \
-		guides_creator.test.py \
-		handles.test.py \
-		hpgl_output.test.py \
-		inkweb-debug.js \
-		inkwebeffect.test.py \
-		inkwebjs-move.test.svg \
-		interp_att_g.test.py \
-		interp.test.py \
-		lindenmayer.test.py \
-		lorem_ipsum.test.py \
-		markers_strokepaint.test.py \
-		measure.test.py \
-		minimal-blank.svg \
-		motion.test.py \
-		pathmodifier.test.py \
-		perfectboundcover.test.py \
-		perspective.test.py \
-		polyhedron_3d.test.py \
-		radiusrand.test.py \
-		render_alphabetsoup.test.py \
-		render_barcode.test.py \
-		render_barcode.data \
-		render_gears.test.py \
-		restack.test.py \
-		rtree.test.py \
-		run-all-extension-tests \
-		spirograph.test.py \
-		straightseg.test.py \
-		summersnight.test.py \
-		svg_and_media_zip_output.test.py \
-		svgcalendar.test.py \
-		test_template.py.txt \
-		triangle.test.py \
-		whirl.test.py
diff --git a/share/extensions/xaml2svg/Makefile.am b/share/extensions/xaml2svg/Makefile.am
deleted file mode 100644
index 89a901fde..000000000
--- a/share/extensions/xaml2svg/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-
-xaml2svg_otherstuffdir = $(datadir)/inkscape/extensions/xaml2svg
-
-xaml2svg_otherstuff = \
-	animation.xsl \
-	brushes.xsl \
-	canvas.xsl \
-	geometry.xsl \
-	Makefile.am \
-	properties.xsl \
-	shapes.xsl \
-	transform.xsl
-
-xaml2svg_otherstuff_DATA = \
-	$(xaml2svg_otherstuff)
-
-EXTRA_DIST = \
-	$(xaml2svg_otherstuff_DATA)
-
diff --git a/share/filters/Makefile.am b/share/filters/Makefile.am
deleted file mode 100644
index 1a871a992..000000000
--- a/share/filters/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-
-filtersdir = $(datadir)/inkscape/filters
-
-filters_DATA =  \
-	README \
-	filters.svg \
-	filters.svg.h
-
-filters.svg.h: filters.svg i18n.py
-	$(srcdir)/i18n.py $(srcdir)/filters.svg > $(srcdir)/filters.svg.h
-
-EXTRA_DIST = $(filters_DATA) \
-             i18n.py
diff --git a/share/fonts/Makefile.am b/share/fonts/Makefile.am
deleted file mode 100644
index 30a2f6997..000000000
--- a/share/fonts/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-
-fontsdir = $(datadir)/inkscape/fonts
-
-fonts_DATA = \
-	README
-
-EXTRA_DIST = $(fonts_DATA)
diff --git a/share/gradients/Makefile.am b/share/gradients/Makefile.am
deleted file mode 100644
index 9eadc5e57..000000000
--- a/share/gradients/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-
-gradientsdir = $(datadir)/inkscape/gradients
-
-gradients_DATA = \
-	README
-
-EXTRA_DIST = $(gradients_DATA)
diff --git a/share/icons/Makefile.am b/share/icons/Makefile.am
deleted file mode 100644
index 5830f1254..000000000
--- a/share/icons/Makefile.am
+++ /dev/null
@@ -1,58 +0,0 @@
-SUBDIRS = application
-
-iconsdir = $(datadir)/inkscape/icons
-
-pixmaps = \
-	too-much-ink-icon.png \
-	too-much-ink-icon.svg \
-	out-of-gamut-icon.png \
-	out-of-gamut-icon.svg \
-	color-management-icon.png \
-	remove-color.png \
-	remove-color.svg \
-    ticotico.jpg \
-	feBlend-icon.png \
-    feBlend-icon.svg \
-	feColorMatrix-icon.png \
-    feColorMatrix-icon.svg \
-	feComposite-icon.png \
-    feComposite-icon.svg \
-	feConvolveMatrix-icon.png \
-    feConvolveMatrix-icon.svg \
-	feDiffuseLighting-icon.png \
-    feDiffuseLighting-icon.svg \
-	feDisplacementMap-icon.png \
-    feDisplacementMap-icon.svg \
-	feFlood-icon.png \
-    feFlood-icon.svg \
-	feGaussianBlur-icon.png \
-    feGaussianBlur-icon.svg \
-    feImage-icon.png \
-    feImage-icon.svg \
-	feMerge-icon.png \
-    feMerge-icon.svg \
-	feMorphology-icon.png \
-    feMorphology-icon.svg \
-	feOffset-icon.png \
-    feOffset-icon.svg \
-	feSpecularLighting-icon.png \
-    feSpecularLighting-icon.svg \
-	feTurbulence-icon.png \
-    feTurbulence-icon.svg \
-	OCAL.png
-
-icons_DATA = \
-	$(pixmaps) \
-	\
-	icons.svg \
-	tango_icons.svg \
-	symbolic_icons.svg \
-	\
-	inkscape.file.svg \
-	inkscape.file.png \
-	README
-
-EXTRA_DIST = \
-	$(icons_DATA) \
-	hicolor/index.theme
-
diff --git a/share/icons/application/16x16/Makefile.am b/share/icons/application/16x16/Makefile.am
deleted file mode 100644
index a87c2cbfa..000000000
--- a/share/icons/application/16x16/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/16x16/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/22x22/Makefile.am b/share/icons/application/22x22/Makefile.am
deleted file mode 100644
index 8beeed331..000000000
--- a/share/icons/application/22x22/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/22x22/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/24x24/Makefile.am b/share/icons/application/24x24/Makefile.am
deleted file mode 100644
index 8fc9b59aa..000000000
--- a/share/icons/application/24x24/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/24x24/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/256x256/Makefile.am b/share/icons/application/256x256/Makefile.am
deleted file mode 100644
index 34969a4a9..000000000
--- a/share/icons/application/256x256/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/256x256/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/32x32/Makefile.am b/share/icons/application/32x32/Makefile.am
deleted file mode 100644
index cdccebd02..000000000
--- a/share/icons/application/32x32/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/32x32/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/48x48/Makefile.am b/share/icons/application/48x48/Makefile.am
deleted file mode 100644
index ffa5c1a55..000000000
--- a/share/icons/application/48x48/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/48x48/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/Makefile.am b/share/icons/application/Makefile.am
deleted file mode 100644
index 0e9bb7d7d..000000000
--- a/share/icons/application/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256
-
-gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
-
-install-data-hook: update-icon-cache
-uninstall-hook: update-icon-cache
-
-update-icon-cache:
-	@-if test -z "$(DESTDIR)"; then \
-	echo "Updating Gtk icon cache."; \
-	$(gtk_update_icon_cache); \
-	else \
-	echo "*** Icon cache not updated. After (un)install, run this:"; \
-	echo "*** $(gtk_update_icon_cache)"; \
-	fi 
diff --git a/share/keys/Makefile.am b/share/keys/Makefile.am
deleted file mode 100644
index 98b720c2b..000000000
--- a/share/keys/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-
-keysdir = $(datadir)/inkscape/keys
-
-keys_DATA = \
-	default.xml \
-	inkscape.xml \
-	xara.xml \
-	macromedia-freehand-mx.xml \
-	adobe-illustrator-cs2.xml \
-	right-handed-illustration.xml \
-	corel-draw-x4.xml \
-	corel-draw-x8.xml \
-	zoner-draw.xml \
-	acd-canvas.xml
-
-EXTRA_DIST = $(keys_DATA)
-
diff --git a/share/markers/Makefile.am b/share/markers/Makefile.am
deleted file mode 100644
index 5db048146..000000000
--- a/share/markers/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-
-markersdir = $(datadir)/inkscape/markers
-
-markers_DATA = \
-	markers.svg
-
-
-EXTRA_DIST = $(markers_DATA)
-
diff --git a/share/palettes/Makefile.am b/share/palettes/Makefile.am
deleted file mode 100644
index b25b35a06..000000000
--- a/share/palettes/Makefile.am
+++ /dev/null
@@ -1,38 +0,0 @@
-
-palettesdir = $(datadir)/inkscape/palettes
-
-palettes_DATA = \
-    README \
-    Android-icon-palette.gpl \
-    Blues.gpl \
-    echo-palette.gpl \
-    Gold.gpl \
-    Greens.gpl \
-    Gray.gpl \
-    Hilite.gpl \
-    inkscape.gpl \
-    LaTeX-Beamer.gpl \
-    Khaki.gpl \
-    MATLAB-Jet-72.gpl \
-    Reds.gpl \
-    Royal.gpl \
-    svg.gpl \
-    Tango-Palette.gpl \
-    Topographic.gpl \
-    Ubuntu.gpl \
-    webhex.gpl \
-    websafe22.gpl \
-    windowsXP.gpl \
-    palettes.h
-
-palettes_i18n = \
-    inkscape.gpl \
-    svg.gpl \
-    Tango-Palette.gpl
-
-palettes.h: i18n.py $(palettes_i18n)
-	$(srcdir)/i18n.py $(foreach i,$(palettes_i18n),$(srcdir)/$(i)) > $(srcdir)/palettes.h
-
-EXTRA_DIST = $(palettes_DATA) \
-             i18n.py
-             
diff --git a/share/patterns/Makefile.am b/share/patterns/Makefile.am
deleted file mode 100644
index 8a0f02ba8..000000000
--- a/share/patterns/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-
-patternsdir = $(datadir)/inkscape/patterns
-
-patterns_DATA = \
-	README \
-	patterns.svg \
-	patterns.svg.h
-
-patterns.svg.h: patterns.svg i18n.py
-	$(srcdir)/i18n.py $(srcdir)/patterns.svg > $(srcdir)/patterns.svg.h
-
-EXTRA_DIST = $(patterns_DATA) i18n.py
diff --git a/share/screens/Makefile.am b/share/screens/Makefile.am
deleted file mode 100644
index f18982221..000000000
--- a/share/screens/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-
-screensdir = $(datadir)/inkscape/screens
-
-screens_DATA = \
-	about.svg
-
-EXTRA_DIST = $(screens_DATA)
-
diff --git a/share/symbols/Makefile.am b/share/symbols/Makefile.am
deleted file mode 100644
index a7d21d2a8..000000000
--- a/share/symbols/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-
-symbolsdir = $(datadir)/inkscape/symbols
-
-# Adding srcdir allows out-of-src builds to work
-symbols_DATA = \
-    README \
-    $(wildcard $(srcdir)/*.svg) \
-    symbols.h
-
-symbols_i18n = $(wildcard $(srcdir)/*.svg)
-
-symbols.h: i18n.py $(symbols_i18n)
-	$(srcdir)/i18n.py $(symbols_i18n) > $(srcdir)/symbols.h
-
-EXTRA_DIST = $(symbols_DATA) \
-             i18n.py
-
diff --git a/share/templates/Makefile.am b/share/templates/Makefile.am
deleted file mode 100644
index 9bd6a0ddc..000000000
--- a/share/templates/Makefile.am
+++ /dev/null
@@ -1,67 +0,0 @@
-
-templatesdir = $(datadir)/inkscape/templates
-
-templates_DATA = \
-	README \
-	CD_label_120x120.svg \
-	default.svg \
-	default.be.svg \
-	default.ca.svg \
-	default.cs.svg \
-	default.de.svg \
-	default.en_US.svg \
-	default.eo.svg \
-	default.eu.svg \
-	default.es.svg \
-	default.fi.svg \
-	default.fr.svg \
-	default.hu.svg \
-	default.is.svg \
-	default.it.svg \
-	default.ja.svg \
-	default.lt.svg \
-	default.nl.svg \
-	default.pl.svg \
-	default.pt_BR.svg \
-	default.sk.svg \
-	default_pt.svg \
-	default_px.svg \
-	no_layers.svg \
-	LaTeX_Beamer.svg \
-	Typography_Canvas.svg \
-	templates.h
-
-templates_i18n = \
-	CD_label_120x120.svg \
-	default.svg \
-	default.be.svg \
-	default.ca.svg \
-	default.cs.svg \
-	default.de.svg \
-	default.en_US.svg \
-	default.eo.svg \
-	default.eu.svg \
-	default.es.svg \
-	default.fi.svg \
-	default.fr.svg \
-	default.hu.svg \
-	default.is.svg \
-	default.it.svg \
-	default.ja.svg \
-	default.lt.svg \
-	default.nl.svg \
-	default.pl.svg \
-	default.pt_BR.svg \
-	default.sk.svg \
-	default_pt.svg \
-	default_px.svg \
-	no_layers.svg \
-	LaTeX_Beamer.svg \
-	Typography_Canvas.svg
-
-templates.h: i18n.py $(templates_i18n)
-	$(srcdir)/i18n.py $(foreach i,$(templates_i18n),$(srcdir)/$(i)) > $(srcdir)/templates.h
-
-EXTRA_DIST = $(templates_DATA) \
-			 i18n.py
-			 
diff --git a/share/tutorials/Makefile.am b/share/tutorials/Makefile.am
deleted file mode 100644
index d625826cb..000000000
--- a/share/tutorials/Makefile.am
+++ /dev/null
@@ -1,214 +0,0 @@
-
-tutorialdir = $(datadir)/inkscape/tutorials
-
-tutorial_DATA = \
-    README \
-    edge3d.svg \
-    gpl-2.svg \
-    making_markers.svg \
-    oldguitar.jpg \
-    potrace-be.png \
-    potrace-ca.png \
-    potrace-de.png \
-    potrace-el.png \
-    potrace-en.png \
-    potrace-es.png \
-    potrace-eu.png \
-    potrace-fr.png \
-    potrace-gl.png \
-    potrace-hu.png \
-    potrace-id.png \
-    potrace-ja.png \
-    potrace-nl.png \
-    potrace.png \
-    potrace-pl.png \
-    potrace-pt_BR.png \
-    potrace-ru.png \
-    potrace-sk.png \
-    potrace-sl.png \
-    potrace-vi.png \
-    potrace-zh_CN.png \
-    potrace-zh_TW.png \
-    tutorial-advanced.svg \
-    tutorial-advanced.be.svg \
-    tutorial-advanced.ca.svg \
-    tutorial-advanced.cs.svg \
-    tutorial-advanced.de.svg \
-    tutorial-advanced.el.svg \
-    tutorial-advanced.es.svg \
-    tutorial-advanced.eu.svg \
-    tutorial-advanced.fa.svg \
-    tutorial-advanced.fr.svg \
-    tutorial-advanced.hu.svg \
-    tutorial-advanced.id.svg \
-    tutorial-advanced.it.svg \
-    tutorial-advanced.ja.svg \
-    tutorial-advanced.nl.svg \
-    tutorial-advanced.pl.svg \
-    tutorial-advanced.pt_BR.svg \
-    tutorial-advanced.ru.svg \
-    tutorial-advanced.sk.svg \
-    tutorial-advanced.sl.svg \
-    tutorial-advanced.vi.svg \
-    tutorial-advanced.zh_CN.svg \
-    tutorial-advanced.zh_TW.svg \
-    tutorial-basic.svg \
-    tutorial-basic.be.svg \
-    tutorial-basic.bg.svg \
-    tutorial-basic.ca.svg \
-    tutorial-basic.cs.svg \
-    tutorial-basic.da.svg \
-    tutorial-basic.de.svg \
-    tutorial-basic.el.svg \
-    tutorial-basic.eo.svg \
-    tutorial-basic.es.svg \
-    tutorial-basic.eu.svg \
-    tutorial-basic.fa.svg \
-    tutorial-basic.fr.svg \
-    tutorial-basic.gl.svg \
-    tutorial-basic.hu.svg \
-    tutorial-basic.id.svg \
-    tutorial-basic.it.svg \
-    tutorial-basic.ja.svg \
-    tutorial-basic.nl.svg \
-    tutorial-basic.nn.svg \
-    tutorial-basic.pl.svg \
-    tutorial-basic.pt_BR.svg \
-    tutorial-basic.ru.svg \
-    tutorial-basic.sk.svg \
-    tutorial-basic.sl.svg \
-    tutorial-basic.tr.svg \
-    tutorial-basic.vi.svg \
-    tutorial-basic.zh_CN.svg \
-    tutorial-basic.zh_TW.svg \
-    tutorial-calligraphy.svg \
-    tutorial-calligraphy.be.svg \
-    tutorial-calligraphy.ca.svg \
-    tutorial-calligraphy.cs.svg \
-    tutorial-calligraphy.de.svg \
-    tutorial-calligraphy.el.svg \
-    tutorial-calligraphy.es.svg \
-    tutorial-calligraphy.eu.svg \
-    tutorial-calligraphy.fa.svg \
-    tutorial-calligraphy.fr.svg \
-    tutorial-calligraphy.hu.svg \
-    tutorial-calligraphy.id.svg \
-    tutorial-calligraphy.ja.svg \
-    tutorial-calligraphy.nl.svg \
-    tutorial-calligraphy.pl.svg \
-    tutorial-calligraphy.pt_BR.svg \
-    tutorial-calligraphy.ru.svg \
-    tutorial-calligraphy.sk.svg \
-    tutorial-calligraphy.sl.svg \
-    tutorial-calligraphy.vi.svg \
-    tutorial-calligraphy.zh_TW.svg \
-    tutorial-elements.svg \
-    tutorial-elements.be.svg \
-    tutorial-elements.ca.svg \
-    tutorial-elements.de.svg \
-    tutorial-elements.el.svg \
-    tutorial-elements.es.svg \
-    tutorial-elements.eu.svg \
-    tutorial-elements.fa.svg \
-    tutorial-elements.fr.svg \
-    tutorial-elements.hu.svg \
-    tutorial-elements.id.svg \
-    tutorial-elements.ja.svg \
-    tutorial-elements.nl.svg \
-    tutorial-elements.pl.svg \
-    tutorial-elements.pt_BR.svg \
-    tutorial-elements.ru.svg \
-    tutorial-elements.sk.svg \
-    tutorial-elements.sl.svg \
-    tutorial-elements.zh_TW.svg \
-    tutorial-interpolate.svg \
-    tutorial-interpolate.be.svg \
-    tutorial-interpolate.de.svg \
-    tutorial-interpolate.el.svg \
-    tutorial-interpolate.fr.svg \
-    tutorial-interpolate.hu.svg \
-    tutorial-interpolate.ja.svg \
-    tutorial-interpolate.nl.svg \
-    tutorial-interpolate.pl.svg \
-    tutorial-interpolate.pt_BR.svg \
-    tutorial-interpolate.ru.svg \
-    tutorial-interpolate.sk.svg \
-    tutorial-interpolate.sl.svg \
-    tutorial-interpolate.vi.svg \
-    tutorial-interpolate.zh_TW.svg \
-    tutorial-shapes.svg \
-    tutorial-shapes.be.svg \
-    tutorial-shapes.ca.svg \
-    tutorial-shapes.cs.svg \
-    tutorial-shapes.de.svg \
-    tutorial-shapes.el.svg \
-    tutorial-shapes.es.svg \
-    tutorial-shapes.eu.svg \
-    tutorial-shapes.fa.svg \
-    tutorial-shapes.fr.svg \
-    tutorial-shapes.hu.svg \
-    tutorial-shapes.id.svg \
-    tutorial-shapes.it.svg \
-    tutorial-shapes.ja.svg \
-    tutorial-shapes.nl.svg \
-    tutorial-shapes.pl.svg \
-    tutorial-shapes.pt_BR.svg \
-    tutorial-shapes.ru.svg \
-    tutorial-shapes.sk.svg \
-    tutorial-shapes.sl.svg \
-    tutorial-shapes.vi.svg \
-    tutorial-shapes.zh_CN.svg \
-    tutorial-shapes.zh_TW.svg \
-    tutorial-tips.svg \
-    tutorial-tips.be.svg \
-    tutorial-tips.ca.svg \
-    tutorial-tips.de.svg \
-    tutorial-tips.el.svg \
-    tutorial-tips.es.svg \
-    tutorial-tips.eu.svg \
-    tutorial-tips.fa.svg \
-    tutorial-tips.fr.svg \
-    tutorial-shapes.gl.svg \
-    tutorial-tips.hu.svg \
-    tutorial-tips.ja.svg \
-    tutorial-tips.id.svg \
-    tutorial-tips.it.svg \
-    tutorial-tips.nl.svg \
-    tutorial-tips.pl.svg \
-    tutorial-tips.pt_BR.svg \
-    tutorial-tips.ru.svg \
-    tutorial-tips.sk.svg \
-    tutorial-tips.sl.svg \
-    tutorial-tips.vi.svg \
-    tutorial-tips.zh_TW.svg \
-    tutorial-tracing.svg \
-    tutorial-tracing.be.svg \
-    tutorial-tracing.ca.svg \
-    tutorial-tracing.de.svg \
-    tutorial-tracing.el.svg \
-    tutorial-tracing.es.svg \
-    tutorial-tracing.eu.svg \
-    tutorial-tracing.fa.svg \
-    tutorial-tracing.fr.svg \
-    tutorial-tracing.gl.svg \
-    tutorial-tracing.hu.svg \
-    tutorial-tracing.id.svg \
-    tutorial-tracing.ja.svg \
-    tutorial-tracing.nl.svg \
-    tutorial-tracing.pl.svg \
-    tutorial-tracing.pt_BR.svg \
-    tutorial-tracing.ru.svg \
-    tutorial-tracing.sk.svg \
-    tutorial-tracing.sl.svg \
-    tutorial-tracing.vi.svg \
-    tutorial-tracing.zh_TW.svg \
-    tutorial-tracing-pixelart.svg \
-    tutorial-tracing-pixelart.el.svg \
-    tutorial-tracing-pixelart.fr.svg \
-    tutorial-tracing-pixelart.nl.svg \
-    tutorial-tracing-pixelart.zh_TW.svg \
-    tux.png
-
-
-EXTRA_DIST = $(tutorial_DATA)
-
diff --git a/share/ui/Makefile.am b/share/ui/Makefile.am
deleted file mode 100644
index 1e55ea58f..000000000
--- a/share/ui/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-
-uidir = $(datadir)/inkscape/ui
-
-ui_DATA =  \
-    keybindings.rc \
-    menus-bars.xml \
-    style.css \
-    toolbox.xml \
-    units.xml
-
-EXTRA_DIST = $(ui_DATA)
diff --git a/src/2geom/Makefile_insert b/src/2geom/Makefile_insert
deleted file mode 100644
index 4d41de297..000000000
--- a/src/2geom/Makefile_insert
+++ /dev/null
@@ -1,131 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-2geom/all: 2geom/lib2geom.a
-
-2geom/clean:
-	rm -f 2geom/lib2geom.a $(2geom_lib2geom_a_OBJECTS)
-
-2geom_lib2geom_a_SOURCES = \
-	2geom/2geom.h \
-	2geom/affine.cpp \
-	2geom/affine.h \
-	2geom/angle.h \
-	2geom/basic-intersection.cpp \
-	2geom/basic-intersection.h \
-	2geom/bezier-clipping.cpp \
-	2geom/bezier-curve.cpp \
-	2geom/bezier-curve.h \
-	2geom/bezier.cpp \
-	2geom/bezier.h \
-	2geom/bezier-to-sbasis.h \
-	2geom/bezier-utils.cpp \
-	2geom/bezier-utils.h \
-	2geom/cairo-path-sink.cpp \
-	2geom/cairo-path-sink.h \
-	2geom/choose.h \
-	2geom/circle.cpp \
-	2geom/circle.h \
-	2geom/circulator.h \
-	2geom/CMakeLists.txt \
-	2geom/concepts.h \
-	2geom/conicsec.cpp \
-	2geom/conicsec.h \
-	2geom/conic_section_clipper_cr.h \
-	2geom/conic_section_clipper.h \
-	2geom/conic_section_clipper_impl.cpp \
-	2geom/conic_section_clipper_impl.h \
-	2geom/convex-hull.cpp \
-	2geom/convex-hull.h \
-	2geom/coord.cpp \
-	2geom/coord.h \
-	2geom/crossing.cpp \
-	2geom/crossing.h \
-	2geom/curve.cpp \
-	2geom/curve.h \
-	2geom/curves.h \
-	2geom/d2.h \
-	2geom/d2-sbasis.cpp \
-	2geom/ellipse.cpp \
-	2geom/ellipse.h \
-	2geom/elliptical-arc.cpp \
-	2geom/elliptical-arc.h \
-	2geom/elliptical-arc-from-sbasis.cpp \
-	2geom/exception.h \
-	2geom/forward.h \
-	2geom/generic-interval.h \
-	2geom/generic-rect.h \
-	2geom/geom.cpp \
-	2geom/geom.h \
-	2geom/intersection.h \
-	2geom/intersection-graph.cpp \
-	2geom/intersection-graph.h \
-	2geom/interval.h \
-	2geom/int-interval.h \
-	2geom/int-point.h \
-	2geom/int-rect.h \
-	2geom/linear.h \
-	2geom/line.cpp \
-	2geom/line.h \
-	2geom/math-utils.h \
-	2geom/nearest-time.cpp \
-	2geom/nearest-time.h \
-	2geom/ord.h \
-	2geom/path.cpp \
-	2geom/path.h \
-	2geom/path-intersection.cpp \
-	2geom/path-intersection.h \
-	2geom/path-sink.cpp \
-	2geom/path-sink.h \
-	2geom/pathvector.cpp \
-	2geom/pathvector.h \
-	2geom/piecewise.cpp \
-	2geom/piecewise.h \
-	2geom/point.cpp \
-	2geom/point.h \
-	2geom/polynomial.cpp \
-	2geom/polynomial.h \
-	2geom/ray.h \
-	2geom/rect.cpp \
-	2geom/rect.h \
-	2geom/recursive-bezier-intersection.cpp \
-	2geom/sbasis-2d.cpp \
-	2geom/sbasis-2d.h \
-	2geom/sbasis.cpp \
-	2geom/sbasis-curve.h \
-	2geom/sbasis-geometric.cpp \
-	2geom/sbasis-geometric.h \
-	2geom/sbasis.h \
-	2geom/sbasis-math.cpp \
-	2geom/sbasis-math.h \
-	2geom/sbasis-poly.cpp \
-	2geom/sbasis-poly.h \
-	2geom/sbasis-roots.cpp \
-	2geom/sbasis-to-bezier.cpp \
-	2geom/sbasis-to-bezier.h \
-	2geom/solve-bezier.cpp \
-	2geom/solve-bezier-one-d.cpp \
-	2geom/solve-bezier-parametric.cpp \
-	2geom/solver.h \
-	2geom/svg-path-parser.cpp \
-	2geom/svg-path-parser.h \
-	2geom/svg-path-writer.cpp \
-	2geom/svg-path-writer.h \
-	2geom/sweep-bounds.cpp \
-	2geom/sweep-bounds.h \
-	2geom/sweeper.h \
-	2geom/toposweep.cpp \
-	2geom/toposweep.h \
-	2geom/transforms.cpp \
-	2geom/transforms.h \
-	2geom/utils.cpp \
-	2geom/utils.h \
-	2geom/numeric/fitting-model.h \
-	2geom/numeric/fitting-tool.h \
-	2geom/numeric/linear_system.h \
-	2geom/numeric/matrix.cpp \
-	2geom/numeric/matrix.h \
-	2geom/numeric/symmetric-matrix-fs.h \
-	2geom/numeric/symmetric-matrix-fs-operation.h \
-	2geom/numeric/symmetric-matrix-fs-trace.h \
-	2geom/numeric/vector.h
-
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 9076aaac3..000000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,278 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-# ################################################
-#  G L O B A L
-# ################################################
-
-# Should work in either automake1.7 or 1.8, but 1.6 doesn't
-# handle foo/libfoo_a_CPPFLAGS properly (if at all).
-# Update: We now avoid setting foo/libfoo_a_CPPFLAGS,
-# so perhaps 1.6 will work.
-AUTOMAKE_OPTIONS = 1.7 subdir-objects
-
-# Executables compiled by "make" and installed by "make install"
-bin_PROGRAMS = inkscape inkview
-
-# Libraries which should be compiled by "make" but not installed.
-# Use this only for libraries that are really standalone, rather than for
-# source tree subdirectories.
-noinst_LIBRARIES =	\
-	libcroco/libcroco.a		\
-	libavoid/libavoid.a		\
-	libuemf/libuemf.a   		\
-	libcola/libcola.a		\
-        inkgc/libinkgc.a		\
-	libvpsc/libvpsc.a		\
-	livarot/libvarot.a		\
-	2geom/lib2geom.a		\
-	libdepixelize/libdepixelize.a	\
-	util/libutil.a			\
-	libinkversion.a
-#       libinkscape.a
-
-all_libs =			\
-	$(noinst_LIBRARIES)	\
-	$(INKSCAPE_LIBS)	\
-	$(INKSCAPE_CXX_DEPS_LIBS) \
-	$(EXIF_LIBS)            \
-	$(GNOME_VFS_LIBS)	\
-	$(XFT_LIBS)		\
-	$(FREETYPE_LIBS)	\
-	$(kdeldadd)		\
-	$(win32ldflags)		\
-	$(LIBWPG_LIBS)		\
-	$(LIBVISIO_LIBS)	\
-	$(LIBCDR_LIBS)		\
-	$(DBUS_LIBS)		\
-	$(IMAGEMAGICK_LIBS)     \
-	$(X11_LIBS)
-
-# Add sources common for Inkscape and Inkview to this variable.
-ink_common_sources =
-# Add Inkscape-only sources here.
-inkscape_SOURCES =
-# Add Inkview-only sources here.
-inkview_SOURCES =
-# Add sources that are built from meta files
-BUILT_SOURCES =
-# Extra files to distribute
-EXTRA_DIST =
-
-# C++-specific flags defined here
-AM_CXXFLAGS = \
-	$(INKSCAPE_CXX_DEPS_CFLAGS)
-
-AM_CPPFLAGS =	\
-	-I$(top_srcdir)/cxxtest \
-	-I$(builddir)/extension/dbus   \
-	$(EXIF_CFLAGS) \
-	$(FREETYPE_CFLAGS)	\
-	$(GNOME_PRINT_CFLAGS)	\
-	$(GNOME_VFS_CFLAGS)	\
-	$(IMAGEMAGICK_CFLAGS) \
-	$(LIBWPG_CFLAGS) \
-	$(LIBVISIO_CFLAGS) \
-	$(LIBCDR_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	$(XFT_CFLAGS)	\
-	$(LCMS_CFLAGS)	\
-	$(POPPLER_CFLAGS)	\
-	$(POPPLER_GLIB_CFLAGS)	\
-	-DPOTRACE=\"potrace\"	\
-	$(INKSCAPE_CFLAGS) \
-	$(WIN32_CFLAGS) \
-	$(X11_CFLAGS)
-
-CXXTEST_TEMPLATE = $(srcdir)/cxxtest-template.tpl
-CXXTESTGENFLAGS = --root --have-eh --template=$(CXXTEST_TEMPLATE)
-CXXTESTGEN = $(top_srcdir)/cxxtest/cxxtestgen.pl $(CXXTESTGENFLAGS)
-# Add test cases to this variable
-CXXTEST_TESTSUITES =
-
-# ################################################
-#
-#  E X T R A 
-#
-# ################################################
-
-if PLATFORM_WIN32
-win32_sources = winmain.cpp registrytool.cpp registrytool.h
-win32ldflags = -lcomdlg32 -lmscms
-mwindows = -mwindows
-endif 
-
-# Include all partial makefiles from subdirectories
-include Makefile_insert
-include display/Makefile_insert
-include extension/Makefile_insert
-include extension/dbus/Makefile_insert
-include extension/implementation/Makefile_insert
-include extension/internal/Makefile_insert
-include filters/Makefile_insert
-include helper/Makefile_insert
-include io/Makefile_insert
-include libcroco/Makefile_insert
-include inkgc/Makefile_insert
-include libnrtype/Makefile_insert
-include libavoid/Makefile_insert
-include livarot/Makefile_insert
-include live_effects/Makefile_insert
-include live_effects/parameter/Makefile_insert
-include libvpsc/Makefile_insert
-include libcola/Makefile_insert
-include libuemf/Makefile_insert
-include svg/Makefile_insert
-include widgets/Makefile_insert
-include debug/Makefile_insert
-include xml/Makefile_insert
-include ui/Makefile_insert
-include ui/cache/Makefile_insert
-include ui/dialog/Makefile_insert
-include ui/tool/Makefile_insert
-include ui/tools/Makefile_insert
-include ui/view/Makefile_insert
-include ui/widget/Makefile_insert
-include util/Makefile_insert
-include trace/Makefile_insert
-include 2geom/Makefile_insert
-include libdepixelize/Makefile_insert
-
-# Extra files not mentioned as sources to include in the source tarball
-EXTRA_DIST +=	\
-	2geom/makefile.in	\
-	debug/makefile.in	\
-	display/makefile.in	\
-	extension/implementation/makefile.in	\
-	extension/internal/makefile.in	\
-	extension/makefile.in	\
-	filters/makefile.in \
-	helper/makefile.in	\
-	io/makefile.in	\
-	libavoid/makefile.in	\
-	libcroco/makefile.in	\
-	libnrtype/makefile.in	\
-	libuemf/makefile.in \
-	livarot/makefile.in	\
-	live_effects/makefile.in	\
-	live_effects/parameter/makefile.in	\
-	svg/makefile.in		\
-	trace/makefile.in	\
-	ui/cache/makefile.in	\
-	ui/dialog/makefile.in	\
-	ui/makefile.in		\
-	ui/view/makefile.in	\
-	ui/widget/makefile.in	\
-	util/makefile.in	\
-	util/makefile.in	\
-	widgets/makefile.in	\
-	xml/makefile.in		\
-	\
-	$(top_srcdir)/Doxyfile \
-	extension/internal/emf-inout.cpp  \
-	extension/internal/emf-inout.h    \
-	extension/internal/emf-print.cpp  \
-	extension/internal/emf-print.h    \
-	helper/sp-marshal.list	\
-	io/crystalegg.xml	\
-	io/doc2html.xsl 	\
-	show-preview.bmp \
-	winconsole.cpp \
-	libdepixelize/makefile.in	\
-	$(CXXTEST_TEMPLATE)
-
-# Extra files to remove when doing "make distclean"
-DISTCLEANFILES =	\
-	helper/sp-marshal.cpp	\
-	helper/sp-marshal.h	\
-	inkscape-version.cpp
-
-# ################################################
-#  B I N A R I E S
-# ################################################
-
-# this should speed up the build
-#libinkscape_a_SOURCES = $(ink_common_sources)
-
-inkscape_SOURCES += main.cpp $(ink_common_sources) $(win32_sources)
-inkscape_LDADD = $(all_libs)
-inkscape_LDFLAGS = $(kdeldflags) $(mwindows)
-
-inkview_SOURCES += inkview.cpp $(ink_common_sources) $(win32_sources)
-inkview_LDADD = $(all_libs)
-inkview_LDFLAGS = $(mwindows)
-
-# ################################################
-#  VERSION REPORTING
-# ################################################
-
-libinkversion_a_SOURCES = inkscape-version.cpp inkscape-version.h
-
-if USE_BZR_VERSION
-inkscape_version_deps = $(top_srcdir)/.bzr/branch/last-revision
-endif
-
-# If this is an BZR snapshot build, regenerate this file every time
-# someone updates the BZR working directory.
-inkscape-version.cpp: $(inkscape_version_deps)
-	VER_PREFIX="$(VERSION)";\
-	VER_BZRREV=" r`bzr revno --tree $(top_srcdir)`"; \
-	if test ! -z "`bzr status -S -V $(srcdir)`"; then \
-	    VER_CUSTOM=" custom"; \
-	fi; \
-	VERSION="$$VER_PREFIX$$VER_BZRREV$$VER_CUSTOM"; \
-	echo "namespace Inkscape { " \
-	     "char const *version_string = \"$$VERSION\"; " \
-	     "}" > inkscape-version.new.cpp; \
-	if cmp -s inkscape-version.new.cpp inkscape-version.cpp; then \
-	     rm inkscape-version.new.cpp; \
-	else \
-	     mv inkscape-version.new.cpp inkscape-version.cpp; \
-	fi; \
-	echo $$VERSION
-
-# #################################
-# ## TESTING STUFF (make check) ###
-# #################################
-
-# List of all programs that should be built before testing. Note that this is
-# different from TESTS, because some tests can be scripts that don't
-# need to be built. There should be one test program per directory.
-# automake adds $(EXEEXT) to check_PROGRAMS items but not to TESTS items:
-# TESTS items can be scripts etc.
-check_PROGRAMS = cxxtests
-
-# streamtest is unfinished and can't handle the relocations done during
-# "make distcheck".
-
-# List of all tests to be run.
-TESTS = $(check_PROGRAMS)
-check-local:
-	$(top_srcdir)/share/extensions/test/run-all-extension-tests
-
-# FIXME: Currently, a number of cxxtest tests fail.  These should be fixed and
-#        the XFAIL_TESTS build target should be removed.
-#        See the following Launchpad bugs:
-#
-#          LP #1208013 
-#          LP #1208005 
-#          LP #1207502 
-
-XFAIL_TESTS = $(check_PROGRAMS)
-
-# including the testsuites here ensures that they get distributed
-cxxtests_SOURCES = cxxtests.cpp $(CXXTEST_TESTSUITES) $(ink_common_sources) $(win32_sources)
-cxxtests_LDADD = $(all_libs)
-
-cxxtests.cpp: $(CXXTEST_TESTSUITES) $(CXXTEST_TEMPLATE)
-	$(CXXTESTGEN) -o cxxtests.cpp $(CXXTEST_TESTSUITES)
-
-# ################################################
-#  D I S T
-# ################################################
-
-dist-hook:
-	mkdir $(distdir)/pixmaps
-	cp $(srcdir)/pixmaps/*xpm $(distdir)/pixmaps
-
-distclean-local:
-	rm -f cxxtests.xml cxxtests.log
diff --git a/src/Makefile_insert b/src/Makefile_insert
deleted file mode 100644
index 55fde4dd2..000000000
--- a/src/Makefile_insert
+++ /dev/null
@@ -1,251 +0,0 @@
-## Makefile.am fragment, included by src/Makefile.am.
-
-ink_common_sources +=	\
-	util/find-last-if.h					\
-	util/longest-common-suffix.h				\
-	remove-last.h					\
-	attributes.cpp attributes.h					\
-	attribute-rel-svg.cpp attribute-rel-svg.h			\
-	attribute-rel-css.cpp attribute-rel-css.h			\
-	attribute-rel-util.cpp attribute-rel-util.h			\
-	attribute-sort-util.cpp attribute-sort-util.h			\
-	axis-manip.cpp axis-manip.h					\
-	bad-uri-exception.h						\
-	box3d.cpp box3d.h						\
-	box3d-side.cpp box3d-side.h					\
-	brokenimage.xpm							\
-	cms-color-types.h						\
-	cms-system.h							\
-	color.cpp color.h						\
-	color-profile.cpp color-profile.h				\
-	color-profile-cms-fns.h						\
-	color-rgba.h							\
-	colorspace.h							\
-	composite-undo-stack-observer.cpp				\
-	composite-undo-stack-observer.h					\
-	conditions.cpp conditions.h					\
-	conn-avoid-ref.cpp conn-avoid-ref.h				\
-	console-output-undo-observer.h console-output-undo-observer.cpp \
-	context-fns.cpp context-fns.h					\
-	decimal-round.h							\
-	desktop.cpp desktop.h						\
-	desktop-events.cpp desktop-events.h				\
-	desktop-style.cpp desktop-style.h				\
-	device-manager.cpp device-manager.h				\
-	dir-util.cpp dir-util.h						\
-	document.cpp document.h document-private.h			\
-	document-subset.cpp document-subset.h				\
-	document-undo.cpp document-undo.h \
-	ege-color-prof-tracker.cpp ege-color-prof-tracker.h		\
-	enums.h								\
-	event-log.cpp event-log.h event.h				\
-	extract-uri.cpp extract-uri.h					\
-	file.cpp file.h							\
-	fill-or-stroke.h						\
-	filter-chemistry.cpp filter-chemistry.h				\
-	filter-enums.cpp filter-enums.h					\
-	gc-anchored.cpp	gc-anchored.h                                   \
-	gc-finalized.cpp gc-finalized.h                                 \
-	gradient-chemistry.cpp gradient-chemistry.h			\
-	gradient-drag.cpp gradient-drag.h				\
-	graphlayout.cpp graphlayout.h					\
-	guide-snapper.cpp guide-snapper.h				\
-	help.cpp help.h							\
-	helper-fns.h							\
-	helper/pixbuf-ops.cpp						\
-	helper/pixbuf-ops.h						\
-	icon-size.h							\
-	id-clash.cpp id-clash.h						\
-	inkscape.cpp inkscape.h						\
-	isinf.h								\
-	knot.cpp knot.h							\
-	knot-enums.h							\
-	knotholder.cpp knotholder.h					\
-	knot-holder-entity.h knot-holder-entity.cpp			\
-	knot-ptr.h knot-ptr.cpp						\
-	layer-fns.cpp layer-fns.h					\
-	layer-manager.cpp layer-manager.h				\
-  layer-model.cpp layer-model.h         \
-	line-geometry.cpp line-geometry.h				\
-	line-snapper.cpp line-snapper.h					\
-	macros.h							\
-	main-cmdlineact.cpp main-cmdlineact.h				\
-	media.cpp media.h						\
-	menus-skeleton.h						\
-	message-context.cpp message-context.h				\
-	message.h							\
-	message-stack.cpp message-stack.h				\
-	mod360.cpp mod360.h						\
-	object-hierarchy.cpp object-hierarchy.h				\
-	object-snapper.cpp object-snapper.h				\
-	path-chemistry.cpp path-chemistry.h				\
-	path-prefix.h							\
-	persp3d.cpp persp3d.h						\
-	persp3d-reference.cpp persp3d-reference.h			\
-	perspective-line.cpp perspective-line.h				\
-	preferences.cpp preferences.h					\
-	preferences-skeleton.h						\
-	prefix.cpp prefix.h						\
-	print.cpp print.h						\
-	profile-manager.cpp profile-manager.h				\
-	proj_pt.cpp proj_pt.h						\
-	pure-transform.cpp pure-transform.h				\
-	removeoverlap.cpp removeoverlap.h				\
-	rdf.cpp rdf.h							\
-	resource-manager.cpp resource-manager.h				\
-	require-config.h						\
-	round.h								\
-	rubberband.cpp rubberband.h					\
-	satisfied-guide-cns.cpp satisfied-guide-cns.h			\
-	selcue.cpp selcue.h						\
-	selection-chemistry.cpp selection-chemistry.h			\
-	selection.cpp selection.h					\
-	selection-describer.cpp selection-describer.h			\
-	seltrans.cpp seltrans.h						\
-	seltrans-handles.cpp seltrans-handles.h				\
-	shortcuts.cpp shortcuts.h					\
-	snap.cpp snap.h							\
-	snap-enums.h snap-candidate.h					\
-	snapped-curve.cpp snapped-curve.h				\
-	snapped-line.cpp snapped-line.h					\
-	snapped-point.cpp snapped-point.h				\
-	snapper.cpp snapper.h						\
-	snap-preferences.cpp snap-preferences.h				\
-	sp-anchor.cpp sp-anchor.h					\
-	sp-clippath.cpp sp-clippath.h					\
-	sp-conn-end.cpp sp-conn-end.h					\
-	sp-conn-end-pair.cpp sp-conn-end-pair.h				\
-	sp-cursor.cpp sp-cursor.h					\
-	sp-defs.cpp sp-defs.h						\
-	sp-desc.cpp sp-desc.h						\
-	sp-ellipse.cpp sp-ellipse.h					\
-	sp-factory.h sp-factory.cpp					\
-	sp-filter.cpp sp-filter.h number-opt-number.h			\
-	sp-filter-primitive.cpp	sp-filter-primitive.h			\
-	sp-filter-reference.cpp	sp-filter-reference.h			\
-	sp-filter-units.h						\
-	sp-flowdiv.h sp-flowdiv.cpp					\
-	sp-flowregion.h sp-flowregion.cpp				\
-	sp-flowtext.h sp-flowtext.cpp					\
-        sp-font.cpp sp-font.h						\
-        sp-font-face.cpp sp-font-face.h					\
-        sp-glyph.cpp sp-glyph.h						\
-        sp-glyph-kerning.cpp sp-glyph-kerning.h				\
-	sp-gradient.cpp sp-gradient.h					\
-	sp-gradient-reference.cpp sp-gradient-reference.h		\
-	sp-gradient-spread.h						\
-	sp-gradient-units.h						\
-	sp-gradient-vector.h						\
-	sp-guide-attachment.h						\
-	sp-guide-constraint.h						\
-	sp-guide.cpp sp-guide.h						\
-	sp-hatch.cpp sp-hatch.h                     \
-	sp-hatch-path.cpp sp-hatch-path.h           \
-	sp-image.cpp sp-image.h						\
-	sp-item.cpp sp-item.h						\
-	sp-item-group.cpp sp-item-group.h				\
-	sp-item-notify-moveto.cpp sp-item-notify-moveto.h		\
-	sp-item-rm-unsatisfied-cns.cpp sp-item-rm-unsatisfied-cns.h	\
-	sp-item-transform.cpp sp-item-transform.h			\
-	sp-item-update-cns.cpp sp-item-update-cns.h			\
-	sp-linear-gradient.cpp sp-linear-gradient.h			\
-	sp-line.cpp sp-line.h						\
-	splivarot.cpp splivarot.h					\
-	sp-lpe-item.cpp sp-lpe-item.h					\
-	sp-marker.cpp sp-marker.h					\
-	sp-marker-loc.h							\
-	sp-mask.cpp sp-mask.h						\
-	sp-metadata.cpp sp-metadata.h					\
-	sp-mesh.cpp sp-mesh.h						\
-	sp-mesh-array.cpp sp-mesh-array.h				\
-	sp-mesh-patch.cpp sp-mesh-patch.h				\
-	sp-mesh-row.cpp sp-mesh-row.h					\
-        sp-missing-glyph.cpp sp-missing-glyph.h \
-	sp-namedview.cpp sp-namedview.h		\
-	sp-object.cpp sp-object.h		\
-	sp-object-group.cpp sp-object-group.h	\
-	sp-offset.cpp sp-offset.h		\
-	sp-paint-server.cpp sp-paint-server.h	\
-	sp-paint-server-reference.h		\
-	sp-path.cpp sp-path.h			\
-	sp-pattern.cpp sp-pattern.h		\
-	sp-polygon.cpp sp-polygon.h		\
-	sp-polyline.cpp sp-polyline.h		\
-	sp-radial-gradient.cpp sp-radial-gradient.h			\
-	sp-rect.cpp sp-rect.h			\
-	sp-root.cpp sp-root.h			\
-	sp-script.cpp sp-script.h		\
-	sp-shape.cpp sp-shape.h			\
-	sp-solid-color.cpp sp-solid-color.h	\
-	sp-spiral.cpp sp-spiral.h		\
-	sp-star.cpp sp-star.h			\
-	sp-stop.cpp sp-stop.h			\
-	sp-string.cpp sp-string.h		\
-	sp-style-elem.cpp sp-style-elem.h	\
-	sp-switch.cpp sp-switch.h		\
-	sp-symbol.cpp sp-symbol.h		\
-	sp-tag.cpp sp-tag.h			\
-	sp-tag-use.cpp sp-tag-use.h		\
-	sp-tag-use-reference.cpp sp-tag-use-reference.h			\
-	sp-text.cpp sp-text.h			\
-	sp-textpath.h				\
-	sp-title.cpp sp-title.h			\
-	sp-tref.cpp sp-tref.h			\
-	sp-tref-reference.cpp sp-tref-reference.h			\
-	sp-tspan.cpp sp-tspan.h			\
-	sp-use.cpp sp-use.h			\
-	sp-use-reference.cpp sp-use-reference.h	\
-	streq.h					\
-	strneq.h				\
-	style.cpp style.h			\
-	style-enums.h				\
-	style-internal.cpp style-internal.h	\
-	svg-profile.h				\
-	svg-view.cpp svg-view.h			\
-	svg-view-widget.cpp svg-view-widget.h	\
-	syseq.h					\
-	text-chemistry.cpp text-chemistry.h	\
-	text-editing.cpp text-editing.h		\
-	text-tag-attributes.h			\
-	transf_mat_3x4.cpp transf_mat_3x4.h	\
-	unclump.cpp unclump.h			\
-	undo-stack-observer.h			\
-	unicoderange.cpp unicoderange.h		\
-	uri.cpp uri.h				\
-	uri-references.cpp uri-references.h	\
-	vanishing-point.cpp vanishing-point.h	\
-	verbs.cpp verbs.h			\
-	version.cpp version.h			\
-	viewbox.cpp viewbox.h
-
-# Additional dependencies
-
-desktop.$(OBJEXT): helper/sp-marshal.h
-document.$(OBJEXT): helper/sp-marshal.h
-inkscape.$(OBJEXT): helper/sp-marshal.h
-knot.$(OBJEXT): helper/sp-marshal.h
-selection.$(OBJEXT): helper/sp-marshal.h
-sp-object.$(OBJEXT): helper/sp-marshal.h
-view.$(OBJEXT): helper/sp-marshal.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES +=			\
-	$(srcdir)/MultiPrinter.h	\
-	$(srcdir)/TRPIFormatter.h	\
-	$(srcdir)/PylogFormatter.h	\
-	$(srcdir)/attributes-test.h	\
-	$(srcdir)/color-profile-test.h	\
-	$(srcdir)/dir-util-test.h	\
-	$(srcdir)/extract-uri-test.h	\
-	$(srcdir)/marker-test.h		\
-	$(srcdir)/mod360-test.h		\
-	$(srcdir)/object-test.h         \
-	$(srcdir)/preferences-test.h    \
-	$(srcdir)/round-test.h		\
-	$(srcdir)/sp-gradient-test.h	\
-	$(srcdir)/sp-style-elem-test.h	\
-	$(srcdir)/style-test.h		\
-	$(srcdir)/test-helpers.h	\
-	$(srcdir)/verbs-test.h
diff --git a/src/debug/Makefile_insert b/src/debug/Makefile_insert
deleted file mode 100644
index 47cc2b704..000000000
--- a/src/debug/Makefile_insert
+++ /dev/null
@@ -1,15 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	debug/demangle.cpp debug/demangle.h \
-	debug/event.h \
-	debug/event-tracker.h \
-	debug/heap.cpp debug/heap.h \
-	debug/gc-heap.h \
-	debug/logger.cpp debug/logger.h \
-	debug/log-display-config.cpp debug/log-display-config.h \
-	debug/simple-event.h \
-	debug/sysv-heap.cpp debug/sysv-heap.h \
-	debug/gdk-event-latency-tracker.cpp debug/gdk-event-latency-tracker.h \
-        debug/timestamp.cpp debug/timestamp.h
-
diff --git a/src/display/Makefile_insert b/src/display/Makefile_insert
deleted file mode 100644
index 419852f7d..000000000
--- a/src/display/Makefile_insert
+++ /dev/null
@@ -1,125 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-display/canvas-arena.$(OBJEXT): helper/sp-marshal.h
-display/sp-canvas.$(OBJEXT): helper/sp-marshal.h
-
-ink_common_sources += \
-	display/cairo-templates.h	\
-	display/cairo-utils.cpp	\
-	display/cairo-utils.h	\
-	display/canvas-arena.cpp	\
-	display/canvas-arena.h	\
-	display/canvas-axonomgrid.cpp	\
-	display/canvas-axonomgrid.h	\
-	display/canvas-bpath.cpp	\
-	display/canvas-bpath.h	\
-	display/canvas-grid.cpp	\
-	display/canvas-grid.h	\
-	display/canvas-temporary-item.cpp	\
-	display/canvas-temporary-item.h	\
-	display/canvas-temporary-item-list.cpp	\
-	display/canvas-temporary-item-list.h	\
-	display/canvas-text.cpp	\
-	display/canvas-text.h	\
-	display/curve.cpp	\
-	display/curve.h	\
-	display/drawing.cpp \
-	display/drawing.h \
-	display/drawing-context.cpp \
-	display/drawing-context.h \
-	display/drawing-group.cpp \
-	display/drawing-group.h \
-	display/drawing-image.cpp \
-	display/drawing-image.h \
-	display/drawing-item.cpp \
-	display/drawing-item.h \
-	display/drawing-pattern.cpp \
-	display/drawing-pattern.h \
-	display/drawing-shape.cpp \
-	display/drawing-shape.h \
-	display/drawing-surface.cpp \
-	display/drawing-surface.h \
-	display/drawing-text.cpp \
-	display/drawing-text.h \
-	display/gnome-canvas-acetate.cpp	\
-	display/gnome-canvas-acetate.h	\
-	display/grayscale.cpp	\
-	display/grayscale.h	\
-	display/guideline.cpp	\
-	display/guideline.h	\
-	display/nr-3dutils.cpp \
-	display/nr-3dutils.h \
-	display/nr-filter-blend.cpp     \
-	display/nr-filter-blend.h       \
-	display/nr-filter-colormatrix.cpp	\
-	display/nr-filter-colormatrix.h	\
-	display/nr-filter-component-transfer.cpp	\
-	display/nr-filter-component-transfer.h	\
-	display/nr-filter-composite.cpp	\
-	display/nr-filter-composite.h	\
-	display/nr-filter-convolve-matrix.cpp	\
-	display/nr-filter-convolve-matrix.h	\
-	display/nr-filter.cpp           \
-	display/nr-filter-diffuselighting.cpp     \
-	display/nr-filter-diffuselighting.h       \
-	display/nr-filter-displacement-map.cpp      \
-	display/nr-filter-displacement-map.h        \
-	display/nr-filter-flood.cpp  \
-	display/nr-filter-flood.h    \
-	display/nr-filter-gaussian.cpp  \
-	display/nr-filter-gaussian.h    \
-	display/nr-filter.h             \
-	display/nr-filter-image.cpp	\
-	display/nr-filter-image.h	\
-	display/nr-filter-merge.cpp	\
-	display/nr-filter-merge.h	\
-	display/nr-filter-morphology.cpp	\
-	display/nr-filter-morphology.h	\
-	display/nr-filter-offset.cpp	\
-	display/nr-filter-offset.h	\
-	display/nr-filter-primitive.cpp \
-	display/nr-filter-primitive.h   \
-	display/nr-filter-slot.cpp      \
-	display/nr-filter-slot.h        \
-	display/nr-filter-specularlighting.cpp     \
-	display/nr-filter-specularlighting.h       \
-	display/nr-filter-tile.cpp	\
-	display/nr-filter-tile.h	\
-	display/nr-filter-turbulence.cpp      \
-	display/nr-filter-turbulence.h        \
-	display/nr-filter-types.h       \
-	display/nr-filter-units.cpp	\
-	display/nr-filter-units.h	\
-	display/nr-filter-utils.h       \
-	display/nr-light.cpp			\
-	display/nr-light.h				\
-	display/nr-light-types.h	\
-	display/nr-style.cpp	\
-	display/nr-style.h	\
-	display/nr-svgfonts.cpp		\
-	display/nr-svgfonts.h		\
-	display/rendermode.h		\
-	display/snap-indicator.cpp	\
-	display/snap-indicator.h	\
-	display/sodipodi-ctrl.cpp	\
-	display/sodipodi-ctrl.h	\
-	display/sodipodi-ctrlrect.cpp	\
-	display/sodipodi-ctrlrect.h	\
-	display/sp-canvas.cpp	\
-	display/sp-canvas.h	\
-	display/sp-canvas-item.h \
-	display/sp-canvas-group.h \
-	display/sp-canvas-util.cpp	\
-	display/sp-canvas-util.h	\
-	display/sp-ctrlcurve.cpp	\
-	display/sp-ctrlcurve.h \
-	display/sp-ctrlline.cpp	\
-	display/sp-ctrlline.h \
-	display/sp-ctrlquadr.cpp \
-	display/sp-ctrlquadr.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
-	$(srcdir)/display/curve-test.h
diff --git a/src/extension/Makefile_insert b/src/extension/Makefile_insert
deleted file mode 100644
index fb9713904..000000000
--- a/src/extension/Makefile_insert
+++ /dev/null
@@ -1,54 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-    extension/extension.cpp	\
-    extension/extension.h	\
-    extension/db.cpp	\
-    extension/db.h	\
-    extension/dependency.cpp \
-    extension/dependency.h \
-    extension/error-file.cpp \
-    extension/error-file.h \
-    extension/execution-env.cpp \
-    extension/execution-env.h \
-    extension/init.cpp	\
-    extension/init.h	\
-	extension/loader.h \
-	extension/loader.cpp \
-    extension/param/parameter.h \
-    extension/param/parameter.cpp \
-    extension/param/notebook.h \
-    extension/param/notebook.cpp \
-    extension/param/bool.h \
-    extension/param/bool.cpp \
-    extension/param/color.h \
-    extension/param/color.cpp \
-    extension/param/description.h \
-    extension/param/description.cpp \
-    extension/param/enum.h \
-    extension/param/enum.cpp \
-    extension/param/float.h \
-    extension/param/float.cpp \
-    extension/param/int.h \
-    extension/param/int.cpp \
-    extension/param/radiobutton.h \
-    extension/param/radiobutton.cpp \
-    extension/param/string.h \
-    extension/param/string.cpp \
-    extension/prefdialog.cpp \
-    extension/prefdialog.h \
-    extension/system.cpp	\
-    extension/system.h \
-    extension/timer.cpp \
-    extension/timer.h \
-    extension/input.h \
-    extension/input.cpp \
-    extension/output.h \
-    extension/output.cpp \
-    extension/effect.h \
-    extension/effect.cpp \
-    extension/patheffect.h \
-    extension/patheffect.cpp \
-    extension/print.h \
-    extension/print.cpp
-
diff --git a/src/extension/dbus/Makefile_insert b/src/extension/dbus/Makefile_insert
deleted file mode 100644
index 192651d87..000000000
--- a/src/extension/dbus/Makefile_insert
+++ /dev/null
@@ -1,111 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_DBUS
-
-#############################
-# Sources for DBus interface
-#############################
-
-ink_common_sources +=	\
-	extension/dbus/dbus-init.cpp  \
-	extension/dbus/dbus-init.h  \
-	extension/dbus/application-interface.cpp  \
-	extension/dbus/application-interface.h  \
-	extension/dbus/document-interface.cpp  \
-	extension/dbus/document-interface.h  \
-	extension/dbus/org.inkscape.service.in
-
-###########################
-# Build DBus wrapper files
-###########################
-
-extension/dbus/application-server-glue.h: extension/dbus/application-interface.xml
-	dbus-binding-tool --mode=glib-server --output=$@ --prefix=application_interface $^
-
-extension/dbus/document-server-glue.h: extension/dbus/document-interface.xml
-	dbus-binding-tool --mode=glib-server --output=$@ --prefix=document_interface $^
-
-extension/dbus/document-client-glue.h: extension/dbus/document-interface.xml
-	dbus-binding-tool --mode=glib-client --output=$@ --prefix=document_interface $^
-
-BUILT_SOURCES += \
-	extension/dbus/application-server-glue.h   \
-	extension/dbus/document-server-glue.h   \
-	extension/dbus/document-client-glue.h
-
-###########################
-# Distribut DBus interface
-###########################
-
-EXTRA_DIST += \
-	extension/dbus/application-interface.xml \
-	extension/dbus/document-interface.xml
-
-###########################
-# DBus Activation Service
-###########################
-
-# Dbus service file
-servicedir = $(DBUSSERVICEDIR)
-service_in_files = extension/dbus/org.inkscape.service.in
-service_DATA = $(service_in_files:.service.in=.service)
-
-# Rule to make the service file with bindir expanded
-$(service_DATA): $(service_in_files) Makefile
-	@sed -e "s|bindir|$(prefix)|" $<> $@
-
-############################
-# DBus Interface Helper Lib
-############################
-
-lib_LTLIBRARIES = \
-	libinkdbus.la
-
-libinkdbusincludedir = $(includedir)/libinkdbus-0.48/libinkdbus
-libinkdbusinclude_HEADERS = \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.h
-
-libinkdbus_la_SOURCES = \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.h \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.c
-
-libinkdbus_la_LDFLAGS = \
-	-version-info 0:0:0 \
-	-no-undefined \
-	-export-symbols-regex "^[^_d].*"
-
-libinkdbus_la_CFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(INKSCAPE_CFLAGS) \
-	-I$(builddir)/extension/dbus \
-	-Wall
-
-libinkdbus_la_LIBADD = \
-	$(DBUS_LIBS) \
-	$(INKSCAPE_LIBS)
-
-############################
-# DBus Pkgconfig file
-############################
-
-pkgconfig_DATA = extension/dbus/wrapper/inkdbus.pc
-pkgconfigdir = $(libdir)/pkgconfig
-
-else # WITH_DBUS
-
-EXTRA_DIST += \
-	extension/dbus/dbus-init.cpp  \
-	extension/dbus/dbus-init.h  \
-	extension/dbus/application-interface.cpp  \
-	extension/dbus/application-interface.h  \
-	extension/dbus/document-interface.cpp  \
-	extension/dbus/document-interface.h \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.h \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.c \
-	extension/dbus/wrapper/inkdbus.pc \
-	extension/dbus/org.inkscape.service.in \
-	extension/dbus/application-interface.xml \
-	extension/dbus/document-interface.xml
-
-endif
-
diff --git a/src/extension/implementation/Makefile_insert b/src/extension/implementation/Makefile_insert
deleted file mode 100644
index 1b9080f1a..000000000
--- a/src/extension/implementation/Makefile_insert
+++ /dev/null
@@ -1,9 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	extension/implementation/implementation.cpp	\
-	extension/implementation/implementation.h \
-	extension/implementation/script.cpp	\
-	extension/implementation/script.h \
-	extension/implementation/xslt.cpp \
-	extension/implementation/xslt.h
diff --git a/src/extension/internal/Makefile_insert b/src/extension/internal/Makefile_insert
deleted file mode 100644
index 125776d41..000000000
--- a/src/extension/internal/Makefile_insert
+++ /dev/null
@@ -1,173 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_LIBWPG
-ink_common_sources += \
-	extension/internal/wpg-input.cpp	\
-	extension/internal/wpg-input.h
-endif
-
-if WITH_LIBVISIO
-ink_common_sources += \
-	extension/internal/vsd-input.cpp	\
-	extension/internal/vsd-input.h
-endif
-
-if WITH_LIBCDR
-ink_common_sources += \
-	extension/internal/cdr-input.cpp	\
-	extension/internal/cdr-input.h
-endif
-
-if USE_IMAGE_MAGICK
-ink_common_sources +=			\
-	extension/internal/bitmap/imagemagick.cpp		\
-	extension/internal/bitmap/imagemagick.h			\
-	extension/internal/bitmap/adaptiveThreshold.cpp		\
-	extension/internal/bitmap/adaptiveThreshold.h		\
-	extension/internal/bitmap/addNoise.cpp			\
-	extension/internal/bitmap/addNoise.h			\
-	extension/internal/bitmap/blur.cpp			\
-	extension/internal/bitmap/blur.h			\
-	extension/internal/bitmap/channel.cpp			\
-	extension/internal/bitmap/channel.h			\
-	extension/internal/bitmap/charcoal.cpp			\
-	extension/internal/bitmap/charcoal.h			\
-	extension/internal/bitmap/colorize.cpp			\
-	extension/internal/bitmap/colorize.h			\
-	extension/internal/bitmap/contrast.cpp			\
-	extension/internal/bitmap/contrast.h			\
-	extension/internal/bitmap/crop.cpp			\
-	extension/internal/bitmap/crop.h			\
-	extension/internal/bitmap/cycleColormap.cpp		\
-	extension/internal/bitmap/cycleColormap.h		\
-	extension/internal/bitmap/despeckle.cpp			\
-	extension/internal/bitmap/despeckle.h			\
-	extension/internal/bitmap/edge.cpp			\
-	extension/internal/bitmap/edge.h			\
-	extension/internal/bitmap/emboss.cpp			\
-	extension/internal/bitmap/emboss.h			\
-	extension/internal/bitmap/enhance.cpp			\
-	extension/internal/bitmap/enhance.h			\
-	extension/internal/bitmap/equalize.cpp			\
-	extension/internal/bitmap/equalize.h			\
-	extension/internal/bitmap/gaussianBlur.cpp		\
-	extension/internal/bitmap/gaussianBlur.h		\
-	extension/internal/bitmap/implode.cpp			\
-	extension/internal/bitmap/implode.h			\
-	extension/internal/bitmap/level.cpp			\
-	extension/internal/bitmap/level.h			\
-	extension/internal/bitmap/levelChannel.cpp		\
-	extension/internal/bitmap/levelChannel.h		\
-	extension/internal/bitmap/medianFilter.cpp		\
-	extension/internal/bitmap/medianFilter.h		\
-	extension/internal/bitmap/modulate.cpp			\
-	extension/internal/bitmap/modulate.h			\
-	extension/internal/bitmap/negate.cpp			\
-	extension/internal/bitmap/negate.h			\
-	extension/internal/bitmap/normalize.cpp			\
-	extension/internal/bitmap/normalize.h			\
-	extension/internal/bitmap/oilPaint.cpp			\
-	extension/internal/bitmap/oilPaint.h			\
-	extension/internal/bitmap/opacity.cpp			\
-	extension/internal/bitmap/opacity.h			\
-	extension/internal/bitmap/raise.cpp			\
-	extension/internal/bitmap/raise.h			\
-	extension/internal/bitmap/reduceNoise.cpp		\
-	extension/internal/bitmap/reduceNoise.h			\
-	extension/internal/bitmap/sample.cpp			\
-	extension/internal/bitmap/sample.h			\
-	extension/internal/bitmap/shade.cpp			\
-	extension/internal/bitmap/shade.h			\
-	extension/internal/bitmap/sharpen.cpp			\
-	extension/internal/bitmap/sharpen.h			\
-	extension/internal/bitmap/solarize.cpp			\
-	extension/internal/bitmap/solarize.h			\
-	extension/internal/bitmap/spread.cpp			\
-	extension/internal/bitmap/spread.h			\
-	extension/internal/bitmap/swirl.cpp			\
-	extension/internal/bitmap/swirl.h			\
-	extension/internal/bitmap/threshold.cpp			\
-	extension/internal/bitmap/threshold.h			\
-	extension/internal/bitmap/unsharpmask.cpp		\
-	extension/internal/bitmap/unsharpmask.h			\
-	extension/internal/bitmap/wave.cpp			\
-	extension/internal/bitmap/wave.h
-endif
-
-ink_common_sources +=	\
-	extension/internal/bluredge.h	\
-	extension/internal/bluredge.cpp	\
-	extension/internal/clear-n_.h   \
-	extension/internal/grid.h	\
-	extension/internal/grid.cpp	\
-	extension/internal/gimpgrad.h	\
-	extension/internal/gimpgrad.cpp	\
-	extension/internal/svg.h	\
-	extension/internal/svg.cpp	\
-	extension/internal/svgz.h	\
-	extension/internal/svgz.cpp	\
-	extension/internal/cairo-ps-out.h	\
-	extension/internal/cairo-ps-out.cpp	\
-	extension/internal/cairo-render-context.h	\
-	extension/internal/cairo-render-context.cpp	\
-	extension/internal/cairo-renderer.h \
-	extension/internal/cairo-renderer.cpp \
-	extension/internal/cairo-renderer-pdf-out.h	\
-	extension/internal/cairo-renderer-pdf-out.cpp	\
-	extension/internal/cairo-png-out.h \
-	extension/internal/cairo-png-out.cpp \
-	extension/internal/javafx-out.cpp	\
-	extension/internal/javafx-out.h	\
-	extension/internal/gdkpixbuf-input.h	\
-	extension/internal/gdkpixbuf-input.cpp	\
-	extension/internal/latex-text-renderer.h \
-	extension/internal/latex-text-renderer.cpp \
-	extension/internal/pdfinput/svg-builder.h \
-	extension/internal/pdfinput/svg-builder.cpp \
-	extension/internal/pdfinput/pdf-parser.h \
-	extension/internal/pdfinput/pdf-parser.cpp \
-	extension/internal/pdfinput/pdf-input.h	\
-	extension/internal/pdfinput/pdf-input.cpp	\
-	extension/internal/pov-out.cpp	\
-	extension/internal/pov-out.h	\
-	extension/internal/odf.cpp	\
-	extension/internal/odf.h	\
-	extension/internal/latex-pstricks.cpp	\
-	extension/internal/latex-pstricks.h	\
-	extension/internal/latex-pstricks-out.cpp	\
-	extension/internal/latex-pstricks-out.h	\
-	extension/internal/filter/bevels.h	\
-	extension/internal/filter/blurs.h \
-	extension/internal/filter/bumps.h \
-	extension/internal/filter/color.h \
-	extension/internal/filter/distort.h \
-	extension/internal/filter/filter.h \
-	extension/internal/filter/image.h \
-	extension/internal/filter/morphology.h \
-	extension/internal/filter/overlays.h \
-	extension/internal/filter/paint.h \
-	extension/internal/filter/protrusions.h \
-	extension/internal/filter/shadows.h \
-	extension/internal/filter/textures.h \
-	extension/internal/filter/transparency.h \
-	extension/internal/filter/filter-all.cpp \
-	extension/internal/filter/filter-file.cpp \
-	extension/internal/filter/filter.cpp \
-	extension/internal/filter/filter.h \
-	extension/internal/text_reassemble.c \
-	extension/internal/text_reassemble.h \
-	extension/internal/emf-print.h \
-	extension/internal/emf-print.cpp \
-	extension/internal/emf-inout.h \
-	extension/internal/emf-inout.cpp \
-	extension/internal/metafile-inout.h \
-	extension/internal/metafile-inout.cpp \
-	extension/internal/metafile-print.h \
-	extension/internal/metafile-print.cpp \
-	extension/internal/wmf-print.h \
-	extension/internal/wmf-print.cpp \
-	extension/internal/wmf-inout.h \
-	extension/internal/wmf-inout.cpp \
-	extension/internal/image-resolution.h \
-	extension/internal/image-resolution.cpp
-	
diff --git a/src/filters/Makefile_insert b/src/filters/Makefile_insert
deleted file mode 100644
index ea9ff4b56..000000000
--- a/src/filters/Makefile_insert
+++ /dev/null
@@ -1,46 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	filters/blend.cpp				\
-	filters/blend.h					\
-	filters/colormatrix.cpp				\
-	filters/colormatrix.h				\
-	filters/componenttransfer.cpp			\
-	filters/componenttransfer-funcnode.cpp		\
-	filters/componenttransfer-funcnode.h		\
-	filters/componenttransfer.h			\
-	filters/composite.cpp				\
-	filters/composite.h				\
-	filters/convolvematrix.cpp			\
-	filters/convolvematrix.h			\
-	filters/diffuselighting.cpp			\
-	filters/diffuselighting.h			\
-	filters/displacementmap.cpp			\
-	filters/displacementmap.h			\
-	filters/distantlight.cpp			\
-	filters/distantlight.h				\
-	filters/flood.cpp				\
-	filters/flood.h					\
-	filters/gaussian-blur.cpp			\
-	filters/gaussian-blur.h				\
-	filters/image.cpp				\
-	filters/image.h					\
-	filters/merge.cpp				\
-	filters/merge.h					\
-	filters/mergenode.cpp				\
-	filters/mergenode.h				\
-	filters/morphology.cpp				\
-	filters/morphology.h				\
-	filters/offset.cpp				\
-	filters/offset.h				\
-	filters/pointlight.cpp				\
-	filters/pointlight.h				\
-	filters/specularlighting.cpp			\
-	filters/specularlighting.h			\
-	filters/spotlight.cpp				\
-	filters/spotlight.h				\
-	filters/tile.cpp				\
-	filters/tile.h					\
-	filters/turbulence.cpp				\
-	filters/turbulence.h
-
diff --git a/src/helper/Makefile_insert b/src/helper/Makefile_insert
deleted file mode 100644
index e59fcfb70..000000000
--- a/src/helper/Makefile_insert
+++ /dev/null
@@ -1,45 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-helper/unit-menu.$(OBJEXT): helper/sp-marshal.h
-
-ink_common_sources +=	\
-	helper/action.cpp	\
-	helper/action.h	\
-	helper/action-context.cpp	\
-	helper/action-context.h	\
-	helper/geom.cpp	\
-	helper/geom.h	\
-	helper/geom-curves.h	\
-	helper/geom-nodetype.cpp	\
-	helper/geom-nodetype.h	\
-	helper/geom-pathstroke.cpp      \
-	helper/geom-pathstroke.h        \
-	helper/gnome-utils.cpp	\
-	helper/gnome-utils.h	\
-	helper/mathfns.h \
-	helper/png-write.cpp	\
-	helper/png-write.h	\
-	helper/sp-marshal.cpp	\
-	helper/sp-marshal.h	\
-	helper/window.cpp	\
-	helper/window.h		\
-	helper/stock-items.cpp	\
-	helper/stock-items.h	
-
-# cmp exits with status 0 when there are no differences. "if" executes the commands
-# after "then" when the exit status of the if command is 0 (this is crazy).
-helper/sp-marshal.h: helper/sp-marshal.list
-	glib-genmarshal --prefix=sp_marshal --header $(srcdir)/helper/sp-marshal.list > helper/tmp.sp-marshal.h
-	if cmp -s helper/sp-marshal.h helper/tmp.sp-marshal.h; \
-	then rm helper/tmp.sp-marshal.h; \
-	else mv helper/tmp.sp-marshal.h helper/sp-marshal.h; fi
-
-helper/sp-marshal.cpp: helper/sp-marshal.list helper/sp-marshal.h
-	( echo '#include "helper/sp-marshal.h"' &&	\
-	  glib-genmarshal --prefix=sp_marshal --body $(srcdir)/helper/sp-marshal.list )	\
-	 > helper/tmp.sp-marshal.cpp; \
-	if cmp -s helper/sp-marshal.cpp helper/tmp.sp-marshal.cpp; \
-	then rm helper/tmp.sp-marshal.cpp; \
-	else mv helper/tmp.sp-marshal.cpp helper/sp-marshal.cpp; fi
-
-helper/sp-marshal.cpp helper/sp-marshal.h: helper/sp-marshal.list
diff --git a/src/inkgc/Makefile_insert b/src/inkgc/Makefile_insert
deleted file mode 100644
index 58aa39bb9..000000000
--- a/src/inkgc/Makefile_insert
+++ /dev/null
@@ -1,13 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-inkgc/all: inkgc/libinkgc.a
-
-inkgc/clean:
-	rm -f inkgc/libinkgc.a $(inkgc_libinkgc_a_OBJECTS)
-
-inkgc_libinkgc_a_SOURCES =         \
-	inkgc/gc.cpp		\
-	inkgc/gc-alloc.h	\
-	inkgc/gc-core.h		\
-	inkgc/gc-managed.h	\
-	inkgc/gc-soft-ptr.h
diff --git a/src/io/Makefile_insert b/src/io/Makefile_insert
deleted file mode 100644
index 35119ec7b..000000000
--- a/src/io/Makefile_insert
+++ /dev/null
@@ -1,26 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	io/base64stream.h \
-	io/base64stream.cpp \
-	io/bufferstream.cpp  \
-	io/bufferstream.h    \
-	io/gzipstream.cpp \
-	io/gzipstream.h \
-	io/inkjar.cpp \
-	io/inkjar.h \
-	io/inkscapestream.cpp \
-	io/inkscapestream.h \
-	io/resource.cpp \
-	io/resource.h \
-	io/stringstream.cpp \
-	io/stringstream.h \
-	io/sys.h \
-	io/sys.cpp \
-	io/uristream.cpp \
-	io/uristream.h \
-	io/xsltstream.cpp \
-	io/xsltstream.h
-
-#io_streamtest_SOURCES = io/streamtest.cpp
-#io_streamtest_LDADD =   $(all_libs)
diff --git a/src/libavoid/Makefile_insert b/src/libavoid/Makefile_insert
deleted file mode 100644
index 3a9b97cef..000000000
--- a/src/libavoid/Makefile_insert
+++ /dev/null
@@ -1,37 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libavoid/all: libavoid/libavoid.a
-
-libavoid/clean:
-	rm -f libavoid/libavoid.a $(libavoid_libavoid_a_OBJECTS)
-
-libavoid_libavoid_a_SOURCES =	\
-	libavoid/assertions.h	\
-	libavoid/connector.cpp	\
-	libavoid/connector.h	\
-	libavoid/debug.h	\
-	libavoid/geometry.cpp	\
-	libavoid/geometry.h	\
-	libavoid/geomtypes.cpp	\
-	libavoid/geomtypes.h	\
-	libavoid/graph.cpp	\
-	libavoid/graph.h	\
-	libavoid/makepath.cpp	\
-	libavoid/makepath.h	\
-	libavoid/orthogonal.cpp	\
-	libavoid/orthogonal.h	\
-	libavoid/vpsc.cpp	\
-	libavoid/vpsc.h		\
-	libavoid/router.cpp	\
-	libavoid/router.h	\
-	libavoid/shape.cpp	\
-	libavoid/shape.h	\
-	libavoid/timer.cpp	\
-	libavoid/timer.h	\
-	libavoid/vertices.cpp	\
-	libavoid/vertices.h	\
-	libavoid/visibility.cpp	\
-	libavoid/visibility.h	\
-	libavoid/viscluster.cpp \
-	libavoid/viscluster.h   \
-	libavoid/libavoid.h
diff --git a/src/libcola/Makefile_insert b/src/libcola/Makefile_insert
deleted file mode 100644
index dc032a289..000000000
--- a/src/libcola/Makefile_insert
+++ /dev/null
@@ -1,18 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libcola/all: libcola.a
-
-libcola/clean:
-	rm -f libcola/libcola.a $(libcola_libcola_a_OBJECTS)
-
-libcola_libcola_a_SOURCES = libcola/cola.h\
-	libcola/cola.cpp\
-	libcola/conjugate_gradient.cpp\
-	libcola/conjugate_gradient.h\
-	libcola/gradient_projection.cpp\
-	libcola/gradient_projection.h\
-	libcola/shortest_paths.cpp\
-	libcola/shortest_paths.h\
-	libcola/straightener.h\
-	libcola/straightener.cpp\
-	libcola/connected_components.cpp
diff --git a/src/libcroco/Makefile_insert b/src/libcroco/Makefile_insert
deleted file mode 100644
index 97ed49ee8..000000000
--- a/src/libcroco/Makefile_insert
+++ /dev/null
@@ -1,64 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libcroco/all: libcroco/libcroco.a
-
-libcroco/clean:
-	rm -f libcroco/libcroco.a $(libcroco_libcroco_a_OBJECTS)
-
-libcroco_libcroco_a_SOURCES =	\
-	libcroco/cr-utils.c	\
-	libcroco/cr-utils.h	\
-	libcroco/cr-input.c	\
-	libcroco/cr-input.h	\
-	libcroco/cr-enc-handler.c	\
-	libcroco/cr-enc-handler.h	\
-	libcroco/cr-num.c	\
-	libcroco/cr-num.h	\
-	libcroco/cr-rgb.c	\
-	libcroco/cr-rgb.h	\
-	libcroco/cr-token.c	\
-	libcroco/cr-token.h	\
-	libcroco/cr-tknzr.c	\
-	libcroco/cr-tknzr.h	\
-	libcroco/cr-term.c	\
-	libcroco/cr-term.h	\
-	libcroco/cr-attr-sel.c	\
-	libcroco/cr-attr-sel.h	\
-	libcroco/cr-pseudo.c	\
-	libcroco/cr-pseudo.h	\
-	libcroco/cr-additional-sel.c	\
-	libcroco/cr-additional-sel.h	\
-	libcroco/cr-simple-sel.c	\
-	libcroco/cr-simple-sel.h	\
-	libcroco/cr-selector.c	\
-	libcroco/cr-selector.h	\
-	libcroco/cr-doc-handler.c	\
-	libcroco/cr-doc-handler.h	\
-	libcroco/cr-parser.c	\
-	libcroco/cr-parser.h	\
-	libcroco/cr-declaration.c	\
-	libcroco/cr-declaration.h	\
-	libcroco/cr-statement.c	\
-	libcroco/cr-statement.h	\
-	libcroco/cr-stylesheet.c	\
-	libcroco/cr-stylesheet.h	\
-	libcroco/cr-cascade.c	\
-	libcroco/cr-cascade.h	\
-	libcroco/cr-om-parser.c	\
-	libcroco/cr-om-parser.h	\
-	libcroco/cr-style.c	\
-	libcroco/cr-style.h	\
-	libcroco/cr-libxml-node-iface.c	\
-	libcroco/cr-libxml-node-iface.h	\
-	libcroco/cr-node-iface.h	\
-	libcroco/cr-sel-eng.c	\
-	libcroco/cr-sel-eng.h	\
-	libcroco/cr-fonts.c	\
-	libcroco/cr-fonts.h	\
-	libcroco/cr-prop-list.c	\
-	libcroco/cr-prop-list.h	\
-	libcroco/cr-parsing-location.c	\
-	libcroco/cr-parsing-location.h	\
-	libcroco/cr-string.c	\
-	libcroco/cr-string.h	\
-	libcroco/libcroco.h
diff --git a/src/libdepixelize/Makefile_insert b/src/libdepixelize/Makefile_insert
deleted file mode 100644
index 8aed7244f..000000000
--- a/src/libdepixelize/Makefile_insert
+++ /dev/null
@@ -1,22 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libdepixelize/all: libdepixelize/libdepixelize.a
-
-libdepixelize/clean:
-	rm -f libdepixelize/libdepixelize.a $(libdepixelize_libdepixelize_a_OBJECTS)
-
-libdepixelize_libdepixelize_a_SOURCES =            \
-	libdepixelize/kopftracer2011.cpp           \
-	libdepixelize/kopftracer2011.h             \
-	libdepixelize/splines.h                    \
-	libdepixelize/priv/branchless.h            \
-	libdepixelize/priv/colorspace.h            \
-	libdepixelize/priv/curvature.h             \
-	libdepixelize/priv/homogeneoussplines.h    \
-	libdepixelize/priv/integral.h              \
-	libdepixelize/priv/iterator.h              \
-	libdepixelize/priv/optimization-kopf2011.h \
-	libdepixelize/priv/pixelgraph.h            \
-	libdepixelize/priv/point.h                 \
-	libdepixelize/priv/simplifiedvoronoi.h     \
-	libdepixelize/priv/splines-kopf2011.h
diff --git a/src/libnrtype/Makefile_insert b/src/libnrtype/Makefile_insert
deleted file mode 100644
index ab9465daa..000000000
--- a/src/libnrtype/Makefile_insert
+++ /dev/null
@@ -1,28 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	libnrtype/boundary-type.h	\
-	libnrtype/font-glyph.h	\
-	libnrtype/font-instance.h	\
-	libnrtype/font-style.h	\
-	libnrtype/nr-type-primitives.cpp	\
-	libnrtype/nr-type-primitives.h	\
-	libnrtype/FontFactory.cpp \
-	libnrtype/FontFactory.h \
-	libnrtype/FontInstance.cpp \
-	libnrtype/font-lister.h \
-	libnrtype/font-lister.cpp \
-	libnrtype/one-box.h	\
-	libnrtype/one-glyph.h	\
-	libnrtype/one-para.h	\
-	libnrtype/text-boundary.h	\
-	libnrtype/TextWrapper.cpp \
-	libnrtype/TextWrapper.h \
-	libnrtype/Layout-TNG-Compute.cpp \
-	libnrtype/Layout-TNG-Input.cpp \
-	libnrtype/Layout-TNG-OutIter.cpp \
-	libnrtype/Layout-TNG-Output.cpp \
-	libnrtype/Layout-TNG-Scanline-Maker.h \
-	libnrtype/Layout-TNG-Scanline-Makers.cpp \
-	libnrtype/Layout-TNG.cpp \
-	libnrtype/Layout-TNG.h
diff --git a/src/libuemf/Makefile_insert b/src/libuemf/Makefile_insert
deleted file mode 100644
index 427a0e80e..000000000
--- a/src/libuemf/Makefile_insert
+++ /dev/null
@@ -1,30 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libuemf/all: libuemf.a
-
-libuemf/clean:
-	rm -f libuemf/libuemf.a $(libuemf_libuemf_a_OBJECTS)
-
-libuemf_libuemf_a_SOURCES = \
-	libuemf/uemf.c \
-	libuemf/uemf.h \
-	libuemf/uemf_endian.c \
-	libuemf/uemf_endian.h \
-	libuemf/uemf_print.c \
-	libuemf/uemf_print.h \
-	libuemf/uemf_safe.c \
-	libuemf/uemf_safe.h \
-	libuemf/uemf_utf.c \
-	libuemf/uemf_utf.h \
-	libuemf/uwmf.c \
-	libuemf/uwmf.h \
-	libuemf/uwmf_endian.c \
-	libuemf/uwmf_endian.h \
-	libuemf/uwmf_print.c \
-	libuemf/uwmf_print.h \
-	libuemf/upmf.c \
-	libuemf/upmf.h \
-	libuemf/upmf_print.c \
-	libuemf/upmf_print.h \
-	libuemf/symbol_convert.c \
-	libuemf/symbol_convert.h
diff --git a/src/libvpsc/Makefile_insert b/src/libvpsc/Makefile_insert
deleted file mode 100644
index cb05be6c0..000000000
--- a/src/libvpsc/Makefile_insert
+++ /dev/null
@@ -1,23 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-libvpsc/all: libvpsc/libvpsc.a
-
-libvpsc/clean:
-	rm -f libvpsc/libvpsc.a $(libvpsc_libvpsc_a_OBJECTS)
-
-libvpsc_libvpsc_a_SOURCES = libvpsc/block.cpp\
-	libvpsc/blocks.cpp\
-	libvpsc/constraint.cpp\
-	libvpsc/generate-constraints.cpp\
-	libvpsc/pairingheap/PairingHeap.cpp\
-	libvpsc/remove_rectangle_overlap.cpp\
-	libvpsc/solve_VPSC.cpp\
-	libvpsc/variable.cpp\
-	libvpsc/block.h\
-	libvpsc/blocks.h\
-	libvpsc/constraint.h\
-	libvpsc/generate-constraints.h\
-	libvpsc/pairingheap/PairingHeap.h\
-	libvpsc/pairingheap/dsexceptions.h\
-	libvpsc/remove_rectangle_overlap.h\
-	libvpsc/solve_VPSC.h\
-	libvpsc/variable.h
diff --git a/src/livarot/Makefile_insert b/src/livarot/Makefile_insert
deleted file mode 100644
index 69078d073..000000000
--- a/src/livarot/Makefile_insert
+++ /dev/null
@@ -1,41 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-livarot/all: livarot/libvarot.a
-
-livarot/clean:
-	rm -f livarot/libvarot.a $(livarot_libvarot_a_OBJECTS)
-
-livarot_libvarot_a_SOURCES =	\
-	livarot/AVL.cpp	\
-	livarot/AVL.h	\
-	livarot/AlphaLigne.cpp	\
-	livarot/AlphaLigne.h	\
-	livarot/BitLigne.cpp	\
-	livarot/BitLigne.h	\
-	livarot/float-line.cpp	\
-	livarot/float-line.h	\
-	livarot/int-line.cpp	\
-	livarot/int-line.h	\
-	livarot/LivarotDefs.h	\
-	livarot/Path.cpp	\
-	livarot/Path.h	\
-	livarot/PathConversion.cpp	\
-	livarot/PathCutting.cpp	\
-	livarot/PathOutline.cpp	\
-	livarot/PathSimplify.cpp	\
-	livarot/PathStroke.cpp	\
-	livarot/Shape.cpp	\
-	livarot/Shape.h	\
-	livarot/ShapeDraw.cpp	\
-	livarot/ShapeMisc.cpp	\
-	livarot/ShapeRaster.cpp	\
-	livarot/ShapeSweep.cpp	\
-	livarot/sweep-tree-list.cpp	\
-	livarot/sweep-tree-list.h	\
-	livarot/sweep-tree.cpp \
-	livarot/sweep-tree.h \
-	livarot/sweep-event.cpp \
-	livarot/sweep-event.h	\
-	livarot/sweep-event-queue.h	\
-	livarot/path-description.h \
-	livarot/path-description.cpp
diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert
deleted file mode 100644
index b5bee55c8..000000000
--- a/src/live_effects/Makefile_insert
+++ /dev/null
@@ -1,115 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	live_effects/effect.cpp	\
-	live_effects/effect.h	\
-	live_effects/effect-enum.h	\
-	live_effects/lpeobject.cpp	\
-	live_effects/lpeobject.h	\
-	live_effects/lpegroupbbox.cpp	\
-	live_effects/lpegroupbbox.h	\
-	live_effects/lpeobject-reference.cpp	\
-	live_effects/lpeobject-reference.h	\
-	live_effects/lpe-patternalongpath.cpp	\
-	live_effects/lpe-patternalongpath.h	\
-	live_effects/lpe-bendpath.cpp	\
-	live_effects/lpe-bendpath.h	\
-	live_effects/lpe-dynastroke.cpp	\
-	live_effects/lpe-dynastroke.h	\
-	live_effects/lpe-extrude.cpp	\
-	live_effects/lpe-extrude.h	\
-	live_effects/lpe-sketch.cpp	\
-	live_effects/lpe-sketch.h	\
-	live_effects/lpe-knot.cpp	\
-	live_effects/lpe-knot.h	\
-	live_effects/lpe-vonkoch.cpp	\
-	live_effects/lpe-vonkoch.h	\
-	live_effects/lpe-rough-hatches.cpp	\
-	live_effects/lpe-rough-hatches.h	\
-	live_effects/lpe-curvestitch.cpp	\
-	live_effects/lpe-curvestitch.h	\
-	live_effects/lpe-constructgrid.cpp	\
-	live_effects/lpe-constructgrid.h	\
-	live_effects/lpe-fillet-chamfer.cpp	\
-	live_effects/lpe-fillet-chamfer.h	\
-	live_effects/lpe-gears.cpp	\
-	live_effects/lpe-gears.h	\
-	live_effects/lpe-interpolate.cpp	\
-	live_effects/lpe-interpolate.h	\
-	live_effects/lpe-interpolate_points.cpp	\
-	live_effects/lpe-interpolate_points.h	\
-	live_effects/lpe-test-doEffect-stack.cpp	\
-	live_effects/lpe-test-doEffect-stack.h	\
-	live_effects/lpe-bspline.cpp	\
-	live_effects/lpe-bspline.h	\
-	live_effects/lpe-lattice.cpp	\
-	live_effects/lpe-lattice.h	\
-	live_effects/lpe-lattice2.cpp	\
-	live_effects/lpe-lattice2.h	\
-	live_effects/lpe-roughen.cpp	\
-	live_effects/lpe-roughen.h	\
-	live_effects/lpe-show_handles.cpp	\
-	live_effects/lpe-show_handles.h	\
-	live_effects/lpe-simplify.cpp	\
-	live_effects/lpe-simplify.h	\
-	live_effects/lpe-envelope.cpp	\
-	live_effects/lpe-envelope.h	\
-	live_effects/lpe-spiro.cpp	\
-	live_effects/lpe-spiro.h	\
-	live_effects/lpe-tangent_to_curve.cpp	\
-	live_effects/lpe-tangent_to_curve.h	\
-	live_effects/lpe-perp_bisector.cpp	\
-	live_effects/lpe-perp_bisector.h	\
-	live_effects/spiro.h	\
-	live_effects/spiro.cpp	\
-	live_effects/spiro-converters.h	\
-	live_effects/spiro-converters.cpp	\
-	live_effects/lpe-circle_with_radius.cpp	\
-	live_effects/lpe-circle_with_radius.h	\
-	live_effects/lpe-perspective_path.cpp	\
-	live_effects/lpe-perspective_path.h		\
-	live_effects/lpe-perspective-envelope.cpp	\
-	live_effects/lpe-perspective-envelope.h		\
-	live_effects/lpe-mirror_symmetry.cpp	\
-	live_effects/lpe-mirror_symmetry.h	\
-	live_effects/lpe-circle_3pts.cpp	\
-	live_effects/lpe-circle_3pts.h	\
-	live_effects/lpe-transform_2pts.cpp	\
-	live_effects/lpe-transform_2pts.h	\
-	live_effects/lpe-angle_bisector.cpp	\
-	live_effects/lpe-angle_bisector.h	\
-	live_effects/lpe-parallel.cpp	\
-	live_effects/lpe-parallel.h	\
-	live_effects/lpe-copy_rotate.cpp	\
-	live_effects/lpe-copy_rotate.h	\
-	live_effects/lpe-powerstroke.cpp	\
-	live_effects/lpe-powerstroke.h	\
-	live_effects/lpe-powerstroke-interpolators.h	\
-	live_effects/lpe-offset.cpp	\
-	live_effects/lpe-offset.h	\
-	live_effects/lpe-clone-original.cpp	\
-	live_effects/lpe-clone-original.h	\
-	live_effects/lpe-ruler.cpp	\
-	live_effects/lpe-ruler.h	\
-	live_effects/lpe-recursiveskeleton.cpp	\
-	live_effects/lpe-recursiveskeleton.h	\
-	live_effects/lpe-text_label.cpp	\
-	live_effects/lpe-text_label.h	\
-	live_effects/lpe-path_length.cpp	\
-	live_effects/lpe-path_length.h	\
-	live_effects/lpe-line_segment.cpp	\
-	live_effects/lpe-line_segment.h	\
-	live_effects/lpe-bounding-box.cpp	\
-	live_effects/lpe-bounding-box.h	\
-	live_effects/lpe-attach-path.cpp	\
-	live_effects/lpe-attach-path.h	\
-	live_effects/lpe-fill-between-strokes.cpp	\
-	live_effects/lpe-fill-between-strokes.h	\
-	live_effects/lpe-fill-between-many.cpp	\
-	live_effects/lpe-fill-between-many.h	\
-	live_effects/lpe-ellipse_5pts.cpp	\
-	live_effects/lpe-ellipse_5pts.h	\
-	live_effects/lpe-jointype.cpp	\
-	live_effects/lpe-jointype.h	\
-	live_effects/lpe-taperstroke.cpp	\
-	live_effects/lpe-taperstroke.h 	
diff --git a/src/live_effects/parameter/Makefile_insert b/src/live_effects/parameter/Makefile_insert
deleted file mode 100644
index bd1c5b600..000000000
--- a/src/live_effects/parameter/Makefile_insert
+++ /dev/null
@@ -1,36 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	live_effects/parameter/parameter.cpp	\
-	live_effects/parameter/parameter.h	\
-	live_effects/parameter/array.cpp	\
-	live_effects/parameter/array.h	\
-	live_effects/parameter/bool.cpp	\
-	live_effects/parameter/bool.h	\
-	live_effects/parameter/random.cpp	\
-	live_effects/parameter/random.h	\
-	live_effects/parameter/point.cpp	\
-	live_effects/parameter/point.h	\
-	live_effects/parameter/enum.h	\
-	live_effects/parameter/path-reference.cpp	\
-	live_effects/parameter/path-reference.h	\
-	live_effects/parameter/path.cpp	\
-	live_effects/parameter/path.h	\
-	live_effects/parameter/originalpath.cpp	\
-	live_effects/parameter/originalpath.h	\
-	live_effects/parameter/originalpatharray.cpp	\
-	live_effects/parameter/originalpatharray.h	\
-	live_effects/parameter/powerstrokepointarray.cpp	\
-	live_effects/parameter/powerstrokepointarray.h	\
-	live_effects/parameter/filletchamferpointarray.cpp	\
-	live_effects/parameter/filletchamferpointarray.h	\
-	live_effects/parameter/text.cpp	\
-	live_effects/parameter/text.h	\
-	live_effects/parameter/transformedpoint.cpp	\
-	live_effects/parameter/transformedpoint.h	\
-	live_effects/parameter/togglebutton.cpp	\
-	live_effects/parameter/togglebutton.h	\
-	live_effects/parameter/unit.cpp	\
-	live_effects/parameter/unit.h	\
-	live_effects/parameter/vector.cpp	\
-	live_effects/parameter/vector.h
diff --git a/src/svg/Makefile_insert b/src/svg/Makefile_insert
deleted file mode 100644
index 4f82bdd76..000000000
--- a/src/svg/Makefile_insert
+++ /dev/null
@@ -1,32 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	svg/css-ostringstream.h	\
-	svg/css-ostringstream.cpp	\
-	svg/path-string.h	\
-	svg/path-string.cpp \
-	svg/stringstream.h	\
-	svg/stringstream.cpp	\
-	svg/strip-trailing-zeros.h	\
-	svg/strip-trailing-zeros.cpp	\
-	svg/svg-affine.cpp	\
-	svg/svg-color.cpp	\
-	svg/svg-color.h 	\
-	svg/svg-icc-color.h \
-	svg/svg-angle.cpp   \
-	svg/svg-angle.h     \
-	svg/svg-length.cpp	\
-	svg/svg-length.h	\
-	svg/svg-path.cpp	\
-	svg/svg.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
-	$(srcdir)/svg/css-ostringstream-test.h	\
-	$(srcdir)/svg/stringstream-test.h	\
-	$(srcdir)/svg/svg-affine-test.h		\
-	$(srcdir)/svg/svg-color-test.h		\
-	$(srcdir)/svg/svg-length-test.h		\
-	$(srcdir)/svg/svg-path-geom-test.h
diff --git a/src/trace/Makefile_insert b/src/trace/Makefile_insert
deleted file mode 100644
index 27353df15..000000000
--- a/src/trace/Makefile_insert
+++ /dev/null
@@ -1,23 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if HAVE_POTRACE
-
-ink_common_sources +=	            \
-	trace/pool.h                        \
-	trace/trace.h                       \
-	trace/trace.cpp                     \
-	trace/imagemap-gdk.cpp	            \
-	trace/imagemap-gdk.h	            \
-	trace/imagemap.cpp	            \
-	trace/imagemap.h	            \
-	trace/quantize.h	            \
-	trace/quantize.cpp	            \
-	trace/filterset.h	            \
-	trace/filterset.cpp	            \
-	trace/siox.h			    \
-	trace/siox.cpp			    \
-	trace/potrace/bitmap.h              \
-	trace/potrace/inkscape-potrace.cpp  \
-	trace/potrace/inkscape-potrace.h
-
-endif
diff --git a/src/ui/Makefile_insert b/src/ui/Makefile_insert
deleted file mode 100644
index bbfdb532c..000000000
--- a/src/ui/Makefile_insert
+++ /dev/null
@@ -1,31 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=		\
-	ui/clipboard.cpp	\
-	ui/clipboard.h		\
-	ui/control-manager.cpp	\
-	ui/control-manager.h	\
-	ui/control-types.h	\
-	ui/dialog-events.cpp    \
-	ui/dialog-events.h      \
-	ui/draw-anchor.cpp	\
-	ui/draw-anchor.h	\
-	ui/icon-names.h		\
-	ui/interface.cpp	\
-	ui/interface.h		\
-	ui/object-edit.cpp	\
-	ui/object-edit.h	\
-	ui/previewable.h	\
-	ui/previewfillable.h	\
-	ui/previewholder.cpp	\
-	ui/previewholder.h	\
-	ui/selected-color.h     \
-	ui/selected-color.cpp   \
-	ui/shape-editor.cpp	\
-	ui/shape-editor.h	\
-	ui/tool-factory.cpp	\
-	ui/tool-factory.h	\
-	ui/tools-switch.cpp	\
-	ui/tools-switch.h	\
-	ui/uxmanager.cpp	\
-	ui/uxmanager.h
diff --git a/src/ui/cache/Makefile_insert b/src/ui/cache/Makefile_insert
deleted file mode 100644
index c648777f8..000000000
--- a/src/ui/cache/Makefile_insert
+++ /dev/null
@@ -1,6 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	ui/cache/svg_preview_cache.h	\
-	ui/cache/svg_preview_cache.cpp
-
diff --git a/src/ui/dialog/Makefile_insert b/src/ui/dialog/Makefile_insert
deleted file mode 100644
index 71628973e..000000000
--- a/src/ui/dialog/Makefile_insert
+++ /dev/null
@@ -1,133 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=		\
-	ui/dialog/aboutbox.cpp			\
-	ui/dialog/aboutbox.h			\
-	ui/dialog/align-and-distribute.cpp	\
-	ui/dialog/align-and-distribute.h	\
-	ui/dialog/arrange-tab.h			\
-	ui/dialog/behavior.h			\
-	ui/dialog/calligraphic-profile-rename.h	\
-	ui/dialog/calligraphic-profile-rename.cpp	\
-	ui/dialog/clonetiler.cpp		\
-	ui/dialog/clonetiler.h		\
-	ui/dialog/color-item.cpp		\
-	ui/dialog/color-item.h			\
-	ui/dialog/debug.cpp			\
-	ui/dialog/debug.h			\
-	ui/dialog/desktop-tracker.cpp		\
-	ui/dialog/desktop-tracker.h		\
-	ui/dialog/dialog.cpp			\
-	ui/dialog/dialog.h			\
-	ui/dialog/dialog-manager.cpp		\
-	ui/dialog/dialog-manager.h		\
-	ui/dialog/dock-behavior.cpp		\
-	ui/dialog/dock-behavior.h		\
-	ui/dialog/document-metadata.cpp  	\
-	ui/dialog/document-metadata.h    	\
-	ui/dialog/document-properties.cpp	\
-	ui/dialog/document-properties.h		\
-	ui/dialog/export.cpp		\
-	ui/dialog/export.h		\
-	ui/dialog/extension-editor.cpp		\
-	ui/dialog/extension-editor.h		\
-	ui/dialog/extensions.cpp		\
-	ui/dialog/extensions.h			\
-	ui/dialog/filedialog.cpp		\
-	ui/dialog/filedialog.h			\
-	ui/dialog/filedialogimpl-gtkmm.cpp      \
-	ui/dialog/filedialogimpl-gtkmm.h        \
-	ui/dialog/filedialogimpl-win32.cpp	\
-	ui/dialog/filedialogimpl-win32.h	\
-	ui/dialog/fill-and-stroke.cpp		\
-	ui/dialog/fill-and-stroke.h		\
-	ui/dialog/filter-effects-dialog.cpp	\
-	ui/dialog/filter-effects-dialog.h	\
-	ui/dialog/find.cpp			\
-	ui/dialog/find.h			\
-	ui/dialog/font-substitution.cpp			\
-	ui/dialog/font-substitution.h			\
-	ui/dialog/floating-behavior.cpp		\
-	ui/dialog/floating-behavior.h		\
-	ui/dialog/glyphs.cpp			\
-	ui/dialog/glyphs.h			\
-	ui/dialog/grid-arrange-tab.h		\
-	ui/dialog/grid-arrange-tab.cpp		\
-	ui/dialog/guides.cpp			\
-	ui/dialog/guides.h			\
-	ui/dialog/icon-preview.cpp		\
-	ui/dialog/icon-preview.h		\
-	ui/dialog/inkscape-preferences.cpp	\
-	ui/dialog/inkscape-preferences.h	\
-	ui/dialog/input.cpp			\
-	ui/dialog/input.h			\
-	ui/dialog/knot-properties.cpp		\
-	ui/dialog/knot-properties.h		\
-	ui/dialog/layer-properties.cpp		\
-	ui/dialog/layer-properties.h		\
-	ui/dialog/layers.cpp			\
-	ui/dialog/layers.h			\
-	ui/dialog/livepatheffect-add.cpp	\
-	ui/dialog/livepatheffect-add.h	\
-	ui/dialog/livepatheffect-editor.cpp	\
-	ui/dialog/livepatheffect-editor.h	\
-	ui/dialog/memory.cpp			\
-	ui/dialog/memory.h			\
-	ui/dialog/messages.cpp			\
-	ui/dialog/messages.h			\
-	ui/dialog/new-from-template.cpp		\
-	ui/dialog/new-from-template.h		\
-	ui/dialog/ocaldialogs.cpp		\
-	ui/dialog/ocaldialogs.h			\
-	ui/dialog/object-attributes.cpp \
-	ui/dialog/object-attributes.h	\
-	ui/dialog/object-properties.cpp \
-	ui/dialog/object-properties.h	\
-	ui/dialog/panel-dialog.h		\
-	ui/dialog/polar-arrange-tab.cpp		\
-	ui/dialog/polar-arrange-tab.h		\
-	ui/dialog/print.cpp			\
-	ui/dialog/print.h			\
-	ui/dialog/print-colors-preview-dialog.cpp		\
-	ui/dialog/print-colors-preview-dialog.h		\
-	ui/dialog/spellcheck.cpp		\
-	ui/dialog/spellcheck.h		\
-	ui/dialog/svg-fonts-dialog.cpp		\
-	ui/dialog/svg-fonts-dialog.h		\
-	ui/dialog/swatches.cpp			\
-	ui/dialog/swatches.h			\
-	ui/dialog/symbols.cpp			\
-	ui/dialog/symbols.h			\
-	ui/dialog/template-load-tab.cpp		\
-	ui/dialog/template-load-tab.h		\
-	ui/dialog/template-widget.cpp		\
-	ui/dialog/template-widget.h		\
-	ui/dialog/tags.cpp			\
-	ui/dialog/tags.h			\
-	ui/dialog/text-edit.cpp			\
-	ui/dialog/text-edit.h			\
-	ui/dialog/tile.cpp			\
-	ui/dialog/tile.h			\
-	ui/dialog/pixelartdialog.cpp		\
-	ui/dialog/pixelartdialog.h		\
-	ui/dialog/transformation.cpp		\
-	ui/dialog/transformation.h		\
-	ui/dialog/undo-history.cpp		\
-	ui/dialog/undo-history.h		\
-	ui/dialog/xml-tree.cpp		\
-	ui/dialog/xml-tree.h		\
-	ui/dialog/lpe-powerstroke-properties.cpp	\
-	ui/dialog/lpe-powerstroke-properties.h	\
-	ui/dialog/objects.cpp	\
-	ui/dialog/objects.h	\
-	ui/dialog/lpe-fillet-chamfer-properties.cpp		\
-	ui/dialog/lpe-fillet-chamfer-properties.h		\
-	$(inkboard_dialogs)
-
-if HAVE_POTRACE
-
-ink_common_sources +=		\
-	ui/dialog/tracedialog.cpp		\
-	ui/dialog/tracedialog.h
-
-endif
diff --git a/src/ui/tool/Makefile_insert b/src/ui/tool/Makefile_insert
deleted file mode 100644
index f46f48b72..000000000
--- a/src/ui/tool/Makefile_insert
+++ /dev/null
@@ -1,30 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	ui/tool/control-point.cpp		\
-	ui/tool/control-point.h			\
-	ui/tool/control-point-selection.cpp	\
-	ui/tool/control-point-selection.h	\
-	ui/tool/commit-events.h			\
-	ui/tool/curve-drag-point.cpp		\
-	ui/tool/curve-drag-point.h		\
-	ui/tool/event-utils.cpp			\
-	ui/tool/event-utils.h			\
-	ui/tool/manipulator.cpp			\
-	ui/tool/manipulator.h			\
-	ui/tool/modifier-tracker.cpp			\
-	ui/tool/modifier-tracker.h			\
-	ui/tool/multi-path-manipulator.cpp	\
-	ui/tool/multi-path-manipulator.h	\
-	ui/tool/node.cpp			\
-	ui/tool/node.h				\
-	ui/tool/node-types.h			\
-	ui/tool/path-manipulator.cpp		\
-	ui/tool/path-manipulator.h		\
-	ui/tool/selectable-control-point.cpp	\
-	ui/tool/selectable-control-point.h	\
-	ui/tool/selector.cpp			\
-	ui/tool/selector.h			\
-	ui/tool/shape-record.h			\
-	ui/tool/transform-handle-set.cpp	\
-	ui/tool/transform-handle-set.h
diff --git a/src/ui/tools/Makefile_insert b/src/ui/tools/Makefile_insert
deleted file mode 100644
index 686dfedd8..000000000
--- a/src/ui/tools/Makefile_insert
+++ /dev/null
@@ -1,34 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	ui/tools/arc-tool.cpp ui/tools/arc-tool.h						\
-	ui/tools/box3d-tool.cpp ui/tools/box3d-tool.h					\
-	ui/tools/calligraphic-tool.cpp ui/tools/calligraphic-tool.h		\
-	ui/tools/connector-tool.cpp ui/tools/connector-tool.h			\
-	ui/tools/dropper-tool.cpp ui/tools/dropper-tool.h				\
-	ui/tools/dynamic-base.cpp ui/tools/dynamic-base.h				\
-	ui/tools/eraser-tool.cpp ui/tools/eraser-tool.h					\
-	ui/tools/freehand-base.cpp ui/tools/freehand-base.h				\
-	ui/tools/gradient-tool.cpp ui/tools/gradient-tool.h				\
-	ui/tools/lpe-tool.cpp ui/tools/lpe-tool.h						\
-	ui/tools/measure-tool.cpp ui/tools/measure-tool.h				\
-	ui/tools/mesh-tool.cpp ui/tools/mesh-tool.h						\
-	ui/tools/node-tool.cpp ui/tools/node-tool.h						\
-	ui/tools/pen-tool.cpp	ui/tools/pen-tool.h						\
-	ui/tools/pencil-tool.cpp ui/tools/pencil-tool.h					\
-	ui/tools/rect-tool.cpp ui/tools/rect-tool.h						\
-	ui/tools/select-tool.cpp ui/tools/select-tool.h					\
-	ui/tools/spiral-tool.cpp ui/tools/spiral-tool.h					\
-	ui/tools/spray-tool.cpp ui/tools/spray-tool.h					\
-	ui/tools/star-tool.cpp ui/tools/star-tool.h						\
-	ui/tools/text-tool.cpp ui/tools/text-tool.h						\
-	ui/tools/tool-base.cpp ui/tools/tool-base.h						\
-	ui/tools/tweak-tool.cpp ui/tools/tweak-tool.h					\
-	ui/tools/zoom-tool.cpp ui/tools/zoom-tool.h
-
-if HAVE_POTRACE
-
-ink_common_sources += \
-	ui/tools/flood-tool.cpp ui/tools/flood-tool.h
-
-endif
diff --git a/src/ui/view/Makefile_insert b/src/ui/view/Makefile_insert
deleted file mode 100644
index b3ab598d4..000000000
--- a/src/ui/view/Makefile_insert
+++ /dev/null
@@ -1,9 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=		\
-	ui/view/edit-widget-interface.h \
-	ui/view/view.h			\
-	ui/view/view.cpp		\
-	ui/view/view-widget.cpp \
-	ui/view/view-widget.h
-
diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert
deleted file mode 100644
index b22e4bd74..000000000
--- a/src/ui/widget/Makefile_insert
+++ /dev/null
@@ -1,106 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	ui/widget/anchor-selector.h	\
-	ui/widget/anchor-selector.cpp	\
-	ui/widget/attr-widget.h	\
-	ui/widget/button.h	\
-	ui/widget/button.cpp	\
-	ui/widget/color-entry.cpp    \
-	ui/widget/color-entry.h     \
-	ui/widget/color-icc-selector.cpp	\
-	ui/widget/color-icc-selector.h	\
-	ui/widget/color-notebook.cpp   \
-	ui/widget/color-notebook.h  \
-	ui/widget/color-wheel-selector.cpp    \
-	ui/widget/color-wheel-selector.h    \
-	ui/widget/color-picker.cpp     \
-	ui/widget/color-picker.h        \
-	ui/widget/color-preview.cpp     \
-	ui/widget/color-preview.h       \
-	ui/widget/color-slider.cpp      \
-	ui/widget/color-slider.h       \
-	ui/widget/color-scales.cpp   \
-	ui/widget/color-scales.h    \
-	ui/widget/combo-enums.h \
-	ui/widget/dock.h		\
-	ui/widget/dock.cpp		\
-	ui/widget/dock-item.h		\
-	ui/widget/dock-item.cpp		\
-	ui/widget/entity-entry.cpp      \
-	ui/widget/entity-entry.h        \
-	ui/widget/entry.cpp      \
-	ui/widget/entry.h        \
-	ui/widget/filter-effect-chooser.h \
-	ui/widget/filter-effect-chooser.cpp \
-	ui/widget/font-variants.h      	\
-	ui/widget/font-variants.cpp     \
-	ui/widget/frame.cpp      \
-	ui/widget/frame.h        \
-	ui/widget/imageicon.cpp		\
-	ui/widget/imageicon.h		\
-	ui/widget/imagetoggler.cpp		\
-	ui/widget/imagetoggler.h		\
-	ui/widget/labelled.cpp		\
-	ui/widget/labelled.h		\
-	ui/widget/layer-selector.cpp	\
-	ui/widget/layer-selector.h	\
-	ui/widget/licensor.cpp          \
-	ui/widget/licensor.h		\
-	ui/widget/notebook-page.cpp	\
-	ui/widget/notebook-page.h	\
-	ui/widget/object-composite-settings.cpp	\
-	ui/widget/object-composite-settings.h	\
-	ui/widget/page-sizer.cpp        \
-	ui/widget/page-sizer.h          \
-	ui/widget/panel.cpp		\
-	ui/widget/panel.h		\
-	ui/widget/point.cpp		\
-	ui/widget/point.h		\
-	ui/widget/preferences-widget.cpp \
-	ui/widget/preferences-widget.h   \
-	ui/widget/random.cpp \
-	ui/widget/random.h   \
-	ui/widget/registered-widget.cpp \
-	ui/widget/registered-widget.h   \
-	ui/widget/registered-enums.h   \
-	ui/widget/registry.cpp          \
-	ui/widget/registry.h            \
-	ui/widget/rendering-options.cpp          \
-	ui/widget/rendering-options.h            \
-	ui/widget/rotateable.h            \
-	ui/widget/rotateable.cpp            \
-	ui/widget/scalar-unit.cpp	\
-	ui/widget/scalar-unit.h		\
-	ui/widget/scalar.cpp		\
-	ui/widget/scalar.h		\
-	ui/widget/selected-style.h	\
-	ui/widget/selected-style.cpp	\
-	ui/widget/spinbutton.h	\
-	ui/widget/spinbutton.cpp	\
-	ui/widget/spin-scale.h		\
-	ui/widget/spin-scale.cpp	\
-	ui/widget/spin-slider.h		\
-	ui/widget/spin-slider.cpp	\
-	ui/widget/style-subject.h	\
-	ui/widget/style-subject.cpp	\
-	ui/widget/style-swatch.h        \
-	ui/widget/style-swatch.cpp      \
-	ui/widget/text.cpp		\
-	ui/widget/text.h		\
-	ui/widget/tolerance-slider.cpp  \
-	ui/widget/tolerance-slider.h    \
-	ui/widget/unit-menu.cpp		\
-	ui/widget/unit-menu.h \
-	ui/widget/unit-tracker.h \
-	ui/widget/unit-tracker.cpp	\
-	ui/widget/clipmaskicon.cpp	\
-	ui/widget/clipmaskicon.h	\
-	ui/widget/highlight-picker.cpp	\
-	ui/widget/highlight-picker.h	\
-	ui/widget/layertypeicon.cpp	\
-	ui/widget/layertypeicon.h	\
-	ui/widget/insertordericon.cpp	\
-	ui/widget/insertordericon.h	\
-	ui/widget/addtoicon.cpp	\
-	ui/widget/addtoicon.h
diff --git a/src/util/Makefile_insert b/src/util/Makefile_insert
deleted file mode 100644
index 2a778e660..000000000
--- a/src/util/Makefile_insert
+++ /dev/null
@@ -1,49 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-util/all: util/libutil.a
-
-util/clean:
-	rm -f util/libutil.a $(util_libutil_a_OBJECTS)
-
-util_libutil_a_SOURCES = \
-	util/ziptool.h \
-	util/ziptool.cpp	\
-	util/accumulators.h	\
-	util/compose.hpp	\
-	util/copy.h \
-	util/enums.h \
-	util/ege-appear-time-tracker.cpp	\
-	util/ege-appear-time-tracker.h	\
-	util/ege-tags.h \
-	util/ege-tags.cpp \
-	util/expression-evaluator.h \
-	util/expression-evaluator.cpp \
-	util/filter-list.h \
-	util/find-if-before.h \
-	util/find-last-if.h \
-	util/fixed_point.h \
-	util/format.h	\
-	util/forward-pointer-iterator.h \
-	util/function.h \
-	util/list.h \
-	util/list-container.h \
-	util/list-copy.h \
-	util/longest-common-suffix.h \
-	util/map-list.h \
-	util/reference.h \
-	util/reverse-list.h \
-	util/share.h \
-	util/share.cpp \
-	util/signal-blocker.h \
-	util/tuple.h \
-	util/ucompose.hpp \
-	util/units.cpp \
-	util/units.h \
-	util/unordered-containers.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-
-CXXTEST_TESTSUITES += \
-	$(srcdir)/util/list-container-test.h
diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert
deleted file mode 100644
index 99a85c5b6..000000000
--- a/src/widgets/Makefile_insert
+++ /dev/null
@@ -1,129 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	widgets/arc-toolbar.cpp		\
-	widgets/arc-toolbar.h		\
-	widgets/box3d-toolbar.cpp		\
-	widgets/box3d-toolbar.h		\
-	widgets/button.cpp		\
-	widgets/button.h		\
-	widgets/calligraphy-toolbar.cpp		\
-	widgets/calligraphy-toolbar.h		\
-	widgets/connector-toolbar.cpp		\
-	widgets/connector-toolbar.h		\
-	widgets/dash-selector.cpp	\
-	widgets/dash-selector.h		\
-	widgets/desktop-widget.cpp	\
-	widgets/desktop-widget.h	\
-	widgets/dropper-toolbar.cpp		\
-	widgets/dropper-toolbar.h		\
-	widgets/eek-preview.cpp		\
-	widgets/eek-preview.h		\
-	widgets/ege-adjustment-action.cpp	\
-	widgets/ege-adjustment-action.h		\
-	widgets/ege-paint-def.cpp	\
-	widgets/ege-paint-def.h		\
-	widgets/ege-output-action.cpp	\
-	widgets/ege-output-action.h	\
-	widgets/ege-select-one-action.cpp	\
-	widgets/ege-select-one-action.h		\
-	widgets/eraser-toolbar.cpp		\
-	widgets/eraser-toolbar.h		\
-	widgets/fill-style.cpp		\
-	widgets/fill-style.h		\
-	widgets/fill-n-stroke-factory.h	\
-	widgets/font-selector.cpp	\
-	widgets/font-selector.h		\
-	widgets/gradient-image.cpp	\
-	widgets/gradient-image.h	\
-	widgets/gradient-selector.cpp	\
-	widgets/gradient-selector.h	\
-	widgets/gradient-toolbar.cpp	\
-	widgets/gradient-toolbar.h	\
-	widgets/gradient-vector.cpp	\
-	widgets/gradient-vector.h	\
-	widgets/icon.cpp		\
-	widgets/icon.h			\
-        widgets/image-menu-item.c       \
-        widgets/image-menu-item.h       \
-	widgets/ink-action.cpp		\
-	widgets/ink-action.h		\
-	widgets/ink-comboboxentry-action.cpp	\
-	widgets/ink-comboboxentry-action.h	\
-	widgets/ink-radio-action.cpp       \
-	widgets/ink-radio-action.h         \
-	widgets/ink-toggle-action.cpp      \
-	widgets/ink-toggle-action.h        \
-	widgets/ink-tool-menu-action.cpp   \
-	widgets/ink-tool-menu-action.h     \
-	widgets/lpe-toolbar.cpp	\
-	widgets/lpe-toolbar.h	   \
-	widgets/measure-toolbar.cpp	\
-	widgets/measure-toolbar.h	\
-	widgets/mesh-toolbar.cpp	\
-	widgets/mesh-toolbar.h		\
-	widgets/node-toolbar.cpp	\
-	widgets/node-toolbar.h	\
-	widgets/paint-selector.cpp	\
-	widgets/paint-selector.h	\
-	widgets/pencil-toolbar.cpp	\
-	widgets/pencil-toolbar.h	   \
-	widgets/rect-toolbar.cpp	\
-	widgets/rect-toolbar.h	   \
-	widgets/gimp/gimpspinscale.c	\
-	widgets/gimp/gimpspinscale.h       \
-	widgets/gimp/gimpcolorwheel.c \
-	widgets/gimp/gimpcolorwheel.h \
-	widgets/gimp/ruler.cpp		\
-	widgets/gimp/ruler.h			\
-	widgets/select-toolbar.cpp	\
-	widgets/select-toolbar.h	\
-	widgets/spray-toolbar.cpp		\
-	widgets/spray-toolbar.h		\
-	widgets/spiral-toolbar.cpp		\
-	widgets/spiral-toolbar.h		\
-	widgets/sp-attribute-widget.cpp	\
-	widgets/sp-attribute-widget.h	\
-	widgets/sp-color-selector.cpp	\
-	widgets/sp-color-selector.h	\
-	widgets/spinbutton-events.cpp	\
-	widgets/spinbutton-events.h	\
-	widgets/sp-widget.cpp		\
-	widgets/sp-widget.h		\
-	widgets/spw-utilities.cpp	\
-	widgets/spw-utilities.h		\
-	widgets/sp-xmlview-attr-list.cpp	\
-	widgets/sp-xmlview-attr-list.h	\
-	widgets/sp-xmlview-content.cpp	\
-	widgets/sp-xmlview-content.h	\
-	widgets/sp-xmlview-tree.cpp	\
-	widgets/sp-xmlview-tree.h	\
-	widgets/star-toolbar.cpp		\
-	widgets/star-toolbar.h		\
-	widgets/stroke-marker-selector.cpp	\
-	widgets/stroke-marker-selector.h		\
-	widgets/stroke-style.cpp	\
-	widgets/stroke-style.h		\
-	widgets/swatch-selector.cpp	\
-	widgets/swatch-selector.h	\
-	widgets/text-toolbar.cpp		\
-	widgets/text-toolbar.h		\
-	widgets/toolbox.cpp		\
-	widgets/toolbox.h		\
-	widgets/tweak-toolbar.cpp		\
-	widgets/tweak-toolbar.h		\
-	widgets/widget-sizes.h		\
-	widgets/zoom-toolbar.cpp		\
-	widgets/zoom-toolbar.h \
-	widgets/widget-sizes.h
-
-if HAVE_POTRACE
-
-ink_common_sources +=	\
-	widgets/paintbucket-toolbar.cpp	\
-	widgets/paintbucket-toolbar.h
-
-endif
-
-widgets/button.$(OBJEXT): helper/sp-marshal.h
-widgets/menu.$(OBJEXT): helper/sp-marshal.h
diff --git a/src/xml/Makefile_insert b/src/xml/Makefile_insert
deleted file mode 100644
index da55d7f7e..000000000
--- a/src/xml/Makefile_insert
+++ /dev/null
@@ -1,51 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	xml/comment-node.h \
-	xml/composite-node-observer.cpp xml/composite-node-observer.h \
-	xml/element-node.h \
-	xml/helper-observer.cpp	\
-	xml/helper-observer.h	\
-	xml/node-observer.h \
-	xml/quote.cpp	\
-	xml/quote.h	\
-	xml/repr-css.cpp	\
-	xml/log-builder.cpp	\
-	xml/log-builder.h	\
-	xml/node-fns.cpp	\
-	xml/node-fns.h	\
-	xml/pi-node.h	\
-	xml/rebase-hrefs.cpp	\
-	xml/rebase-hrefs.h	\
-	xml/repr-io.cpp	\
-	xml/repr-sorting.cpp    \
-	xml/repr-sorting.h      \
-	xml/repr-util.cpp	\
-	xml/repr.cpp	\
-	xml/repr.h	\
-	xml/simple-document.h \
-	xml/simple-document.cpp \
-	xml/simple-node.h \
-	xml/simple-node.cpp \
-	xml/node.h \
-	xml/croco-node-iface.cpp	\
-	xml/croco-node-iface.h	\
-	xml/attribute-record.h \
-	xml/sp-css-attr.h \
-	xml/event.cpp xml/event.h xml/event-fns.h	\
-	xml/document.h \
-	xml/node-event-vector.h \
-	xml/node-iterators.h	\
-	xml/sp-css-attr.h \
-	xml/subtree.cpp	\
-	xml/subtree.h	\
-	xml/text-node.h \
-	xml/invalid-operation-exception.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
-	$(srcdir)/xml/rebase-hrefs-test.h	\
-	$(srcdir)/xml/repr-action-test.h	\
-	$(srcdir)/xml/quote-test.h
-- 
cgit v1.2.3


From d975ffe7b06db18ba418207270f58ec79eb07ae1 Mon Sep 17 00:00:00 2001
From: Alex Henrie 
Date: Mon, 8 Aug 2016 17:57:01 -0600
Subject: Use Gdk::Seat instead of Gdk::DeviceManager

(bzr r15046.1.1)
---
 src/desktop-events.cpp                  | 12 +++++++++++-
 src/device-manager.cpp                  | 20 +++++++++++++++++---
 src/ui/dialog/filter-effects-dialog.cpp | 12 +++++++++++-
 3 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp
index 1932a9864..5fef8cbfc 100644
--- a/src/desktop-events.cpp
+++ b/src/desktop-events.cpp
@@ -21,7 +21,12 @@
 #include "ui/dialog/guides.h"
 #include "desktop-events.h"
 
-#include 
+#include 
+#if GTK_CHECK_VERSION(3, 20, 0)
+# include 
+#else
+# include 
+#endif
 
 #include <2geom/line.h>
 #include <2geom/angle.h>
@@ -596,8 +601,13 @@ static void init_extended()
     Glib::ustring avoidName("pad");
     auto display = Gdk::Display::get_default();
 
+#if GTK_CHECK_VERSION(3, 20, 0)
+    auto seat = display->get_default_seat();
+    auto const devices = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
+#else
     auto dm = display->get_device_manager();
     auto const devices = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);	
+#endif
     
     if ( !devices.empty() ) {
         for (auto const dev : devices) {
diff --git a/src/device-manager.cpp b/src/device-manager.cpp
index 68444fe66..6c8d4514c 100644
--- a/src/device-manager.cpp
+++ b/src/device-manager.cpp
@@ -15,13 +15,17 @@
 
 #include 
 
-#include 
+#include 
+
 #include 
+#if GTK_CHECK_VERSION(3, 20, 0)
+# include 
+#else
+# include 
+#endif
 
 #include 
 
-#include 
-
 #define noDEBUG_VERBOSE 1
 
 
@@ -317,8 +321,13 @@ DeviceManagerImpl::DeviceManagerImpl() :
 {
     Glib::RefPtr display = Gdk::Display::get_default();
 
+#if GTK_CHECK_VERSION(3, 20, 0)
+    auto seat = display->get_default_seat();
+    auto devList = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
+#else
     auto dm = display->get_device_manager();
     auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);	
+#endif
 
     if (fakeList.empty()) {
         createFakeList();
@@ -649,8 +658,13 @@ static void createFakeList() {
 
         // try to find the first *real* core pointer
         Glib::RefPtr display = Gdk::Display::get_default();
+#if GTK_CHECK_VERSION(3, 20, 0)
+        auto seat = display->get_default_seat();
+        auto devList = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
+#else
         auto dm = display->get_device_manager();
         auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);	
+#endif
 
         // Set iterator to point at beginning of device list
         std::vector< Glib::RefPtr >::iterator dev = devList.begin();
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index 97fa47f2f..676dcf31f 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -22,7 +22,12 @@
 #include "dialog-manager.h"
 #include 
 
-#include 
+#include 
+#if GTK_CHECK_VERSION(3, 20, 0)
+# include 
+#else
+# include 
+#endif
 
 #include "ui/widget/spinbutton.h"
 
@@ -1970,8 +1975,13 @@ bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtrget_display();
+#if GTK_CHECK_VERSION(3, 20, 0)
+        auto seat = display->get_default_seat();
+        auto device = seat->get_pointer();
+#else
         auto dm = display->get_device_manager();
         auto device = dm->get_client_pointer();
+#endif
         get_bin_window()->get_device_position(device, mx, my, mask);
 
         // Outline the bottom of the connection area
-- 
cgit v1.2.3


From 5198e76ee434bd68985181d26900d71c1675cc63 Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Tue, 9 Aug 2016 12:32:55 +0100
Subject: Move some main functions to Application class

(bzr r15048)
---
 src/inkscape.cpp | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/inkscape.h   |   3 ++
 src/main.cpp     | 104 +++++-------------------------------------------------
 3 files changed, 116 insertions(+), 96 deletions(-)

diff --git a/src/inkscape.cpp b/src/inkscape.cpp
index a88ef5947..48b921752 100644
--- a/src/inkscape.cpp
+++ b/src/inkscape.cpp
@@ -22,6 +22,10 @@
 
 #include 
 
+#include 
+
+#include 
+#include 
 #include 
 #include "debug/simple-event.h"
 #include "debug/event-tracker.h"
@@ -57,6 +61,7 @@
 #include "inkscape.h"
 #include "io/sys.h"
 #include "message-stack.h"
+#include "path-prefix.h"
 #include "resource-manager.h"
 #include "ui/tools/tool-base.h"
 #include "ui/dialog/debug.h"
@@ -379,6 +384,103 @@ void Application::argv0(char const* argv)
     _argv0 = g_strdup(argv);
 }
 
+/**
+ * \brief Add our icon theme to the search path
+ */
+void
+Application::add_icon_theme()
+{
+    // Get list of the possible folders containing the theme
+    auto dataDirs = Glib::get_system_data_dirs();
+    dataDirs.insert(dataDirs.begin(), Glib::get_user_data_dir());
+
+    auto icon_theme = Gtk::IconTheme::get_default();
+
+    for (auto it : dataDirs)
+    {
+        std::vector listing;
+        listing.push_back(it);
+        listing.push_back("inkscape");
+        listing.push_back("icons");
+        auto dir = Glib::build_filename(listing);
+        icon_theme->append_search_path(dir);
+    }
+
+    // Add our icon directory to the search path for icon theme lookups.
+    auto const usericondir = Inkscape::Application::profile_path("icons");
+    icon_theme->append_search_path(usericondir);
+    icon_theme->append_search_path(INKSCAPE_PIXMAPDIR);
+#ifdef INKSCAPE_THEMEDIR
+    icon_theme->append_search_path(INKSCAPE_THEMEDIR);
+    icon_theme->rescan_if_needed();
+#endif
+    g_free(usericondir);
+}
+
+/**
+ * \brief Add our CSS style sheets
+ */
+void
+Application::add_style_sheet()
+{
+    // Add style sheet (GTK3)
+    auto const screen = Gdk::Screen::get_default();
+
+    Glib::ustring inkscape_style = INKSCAPE_UIDIR;
+    inkscape_style += "/style.css";
+    // std::cout << "CSS Stylesheet Inkscape: " << inkscape_style << std::endl;
+
+    if (Glib::file_test(inkscape_style, Glib::FILE_TEST_EXISTS)) {
+      auto provider = Gtk::CssProvider::create();
+
+      // From 3.16, throws an error which we must catch.
+      try {
+          provider->load_from_path (inkscape_style);
+      }
+#if GTK_CHECK_VERSION(3,16,0)
+      // Gtk::CssProviderError not defined until 3.16.
+      catch (const Gtk::CssProviderError& ex)
+      {
+          std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style
+                    << "\n  (" << ex.what() << ")" << std::endl;
+      }
+#else
+      catch (...)
+      {}
+#endif
+
+      Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    } else {
+        std::cerr << "sp_main_gui: Cannot find default style file:\n  (" << inkscape_style
+                  << ")" << std::endl;
+    }
+
+    Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css");
+    // std::cout << "CSS Stylesheet User: " << user_style << std::endl;
+
+    if (Glib::file_test(user_style, Glib::FILE_TEST_EXISTS)) {
+      auto provider2 = Gtk::CssProvider::create();
+
+      // From 3.16, throws an error which we must catch.
+      try {
+          provider2->load_from_path (user_style);
+      }
+#if GTK_CHECK_VERSION(3,16,0)
+      // Gtk::CssProviderError not defined until 3.16.
+      catch (const Gtk::CssProviderError& ex)
+      {
+        std::cerr << "CSSProviderError::load_from_path(): failed to load: " << user_style
+                  << "\n  (" << ex.what() << ")" << std::endl;
+      }
+#else
+      catch (...)
+      {}
+#endif
+
+      Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    }
+
+}
 /* \brief Constructor for the application.
  *  Creates a new Inkscape::Application.
  *
@@ -423,9 +525,12 @@ Application::Application(const char* argv, bool use_gui) :
     }
 
     if (use_gui) {
+        add_icon_theme();
+        add_style_sheet();
         load_menus();
         Inkscape::DeviceManager::getManager().loadConfig();
     }
+
     Inkscape::ResourceManager::getManager();
 
     /* set language for user interface according setting in preferences */
diff --git a/src/inkscape.h b/src/inkscape.h
index fe424377c..3f4416f2f 100644
--- a/src/inkscape.h
+++ b/src/inkscape.h
@@ -205,6 +205,9 @@ private:
     Application& operator=(Application const&); // no assign
     Application* operator&() const; // no pointer access
 
+    void add_icon_theme();
+    void add_style_sheet();
+
     Inkscape::XML::Document * _menus;
     std::map _document_set;
     std::map _selection_models;
diff --git a/src/main.cpp b/src/main.cpp
index 28bdf8359..28ae6992f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -46,7 +46,6 @@
 
 #include 
 
-#include 
 #include 
 
 #include "inkgc/gc-core.h"
@@ -101,9 +100,12 @@
 #endif // WITH_DBUS
 
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 
+#include 
 
 #ifndef HAVE_BIND_TEXTDOMAIN_CODESET
 #define bind_textdomain_codeset(p,c)
@@ -851,8 +853,8 @@ static int sp_common_main( int argc, char const **argv, GSList **flDest )
 
 
     // temporarily switch gettext encoding to locale, so that help messages can be output properly
-    gchar const *charset;
-    g_get_charset(&charset);
+    std::string charset;
+    Glib::get_charset(charset);
 
     bind_textdomain_codeset(GETTEXT_PACKAGE, charset);
 
@@ -998,16 +1000,6 @@ snooper(GdkEvent *event, gpointer /*data*/) {
     gtk_main_do_event (event);
 }
 
-static std::vector getDirectorySet(const gchar* userDir, const gchar* const * systemDirs) {
-    std::vector listing;
-    listing.push_back(userDir);
-    for ( const char* const* cur = systemDirs; *cur; cur++ )
-    {
-        listing.push_back(*cur);
-    }
-    return listing;
-}
-
 int
 sp_main_gui(int argc, char const **argv)
 {
@@ -1017,103 +1009,23 @@ sp_main_gui(int argc, char const **argv)
     int retVal = sp_common_main( argc, argv, &fl );
     g_return_val_if_fail(retVal == 0, 1);
 
-    // Add possible icon entry directories
-    std::vector dataDirs = getDirectorySet( g_get_user_data_dir(),
-                                                           g_get_system_data_dirs() );
-    for (std::vector::iterator it = dataDirs.begin(); it != dataDirs.end(); ++it)
-    {
-        std::vector listing;
-        listing.push_back(*it);
-        listing.push_back("inkscape");
-        listing.push_back("icons");
-        Glib::ustring dir = Glib::build_filename(listing);
-        gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), dir.c_str());
-    }
-
-    // Add our icon directory to the search path for icon theme lookups.
-    gchar *usericondir = Inkscape::Application::profile_path("icons");
-    gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), usericondir);
-    gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), INKSCAPE_PIXMAPDIR);
-#ifdef INKSCAPE_THEMEDIR
-    gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), INKSCAPE_THEMEDIR);
-    gtk_icon_theme_rescan_if_needed (gtk_icon_theme_get_default());
-#endif
-    g_free(usericondir);
-
-    // Add style sheet (GTK3)
-    Glib::RefPtr screen = Gdk::Screen::get_default();
-
-    Glib::ustring inkscape_style = INKSCAPE_UIDIR;
-    inkscape_style += "/style.css";
-    // std::cout << "CSS Stylesheet Inkscape: " << inkscape_style << std::endl;
-
-    if (g_file_test (inkscape_style.c_str(), G_FILE_TEST_EXISTS)) {
-      Glib::RefPtr provider = Gtk::CssProvider::create();
-
-      // From 3.16, throws an error which we must catch.
-      try {
-          provider->load_from_path (inkscape_style);
-      }
-#if GTK_CHECK_VERSION(3,16,0)
-      // Gtk::CssProviderError not defined until 3.16.
-      catch (const Gtk::CssProviderError& ex)
-      {
-          std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style
-                    << "\n  (" << ex.what() << ")" << std::endl;
-      }
-#else
-      catch (...)
-      {}
-#endif
-
-      Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-    } else {
-        std::cerr << "sp_main_gui: Cannot find default style file:\n  (" << inkscape_style
-                  << ")" << std::endl;
-    }
-
-    Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css");
-    // std::cout << "CSS Stylesheet User: " << user_style << std::endl;
-
-    if (g_file_test (user_style.c_str(), G_FILE_TEST_EXISTS)) {
-      Glib::RefPtr provider2 = Gtk::CssProvider::create();
-
-      // From 3.16, throws an error which we must catch.
-      try {
-          provider2->load_from_path (user_style);
-      }
-#if GTK_CHECK_VERSION(3,16,0)
-      // Gtk::CssProviderError not defined until 3.16.
-      catch (const Gtk::CssProviderError& ex)
-      {
-        std::cerr << "CSSProviderError::load_from_path(): failed to load: " << user_style
-                  << "\n  (" << ex.what() << ")" << std::endl;
-      }
-#else
-      catch (...)
-      {}
-#endif
-
-      Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-    }
-
     gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL);
     Inkscape::Debug::log_display_config();
 
     // Set default window icon. Obeys the theme.
-    gtk_window_set_default_icon_name("inkscape");
+    Gtk::Window::set_default_icon_name("inkscape");
     // Do things that were previously in inkscape_gtk_stock_init().
     sp_icon_get_phys_size(GTK_ICON_SIZE_MENU);
     Inkscape::UI::Widget::Panel::prep();
 
-    gboolean create_new = TRUE;
+    bool create_new = true;
 
     /// \todo FIXME BROKEN - non-UTF-8 sneaks in here.
     Inkscape::Application::create(argv[0], true);
 
     while (fl) {
         if (sp_file_open((gchar *)fl->data,NULL)) {
-            create_new=FALSE;
+            create_new=false;
         }
         fl = g_slist_remove(fl, fl->data);
     }
-- 
cgit v1.2.3


From 860883afa75a3a2f60ed5ffc299447409138736f Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Wed, 10 Aug 2016 11:39:55 +0100
Subject: CloneTiler: C++ify

(bzr r15050)
---
 src/ui/dialog/clonetiler.cpp | 116 ++++++++++++++++---------------------------
 src/ui/dialog/clonetiler.h   |  18 ++++---
 2 files changed, 56 insertions(+), 78 deletions(-)

diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index 1fa7a6c71..eb55e06c6 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -66,7 +66,6 @@ static SPDocument *trace_doc = NULL;
 
 CloneTiler::CloneTiler () :
     UI::Widget::Panel ("", "/dialogs/clonetiler/", SP_VERB_DIALOG_CLONETILER),
-    dlg(NULL),
     desktop(NULL),
     deskTrack(),
     table_row_labels(NULL)
@@ -75,9 +74,7 @@ CloneTiler::CloneTiler () :
     contents->set_spacing(0);
     
     {
-        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-
-        dlg = GTK_WIDGET(gobj());
+        auto prefs = Inkscape::Preferences::get();
 
         auto mainbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
         gtk_box_set_homogeneous(GTK_BOX(mainbox), FALSE);
@@ -769,15 +766,14 @@ CloneTiler::CloneTiler () :
             gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
 
             g_signal_connect(G_OBJECT(b), "toggled",
-                               G_CALLBACK(clonetiler_do_pick_toggled), (gpointer)dlg);
+                               G_CALLBACK(clonetiler_do_pick_toggled), (gpointer)this);
         }
 
         {
             auto vvb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
             gtk_box_set_homogeneous(GTK_BOX(vvb), FALSE);
             gtk_box_pack_start (GTK_BOX (vb), vvb, FALSE, FALSE, 0);
-            g_object_set_data (G_OBJECT(dlg), "dotrace", (gpointer) vvb);
-
+            _dotrace = vvb;
 
             {
                 GtkWidget *frame = gtk_frame_new (_("1. Pick from the drawing:"));
@@ -973,7 +969,7 @@ CloneTiler::CloneTiler () :
             {
                 auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
                 gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-                g_object_set_data (G_OBJECT(dlg), "rowscols", (gpointer) hb);
+                _rowscols = hb;
 
                 {
                     auto a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0);
@@ -1018,7 +1014,7 @@ CloneTiler::CloneTiler () :
             {
                 auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
                 gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-                g_object_set_data (G_OBJECT(dlg), "widthheight", (gpointer) hb);
+                _widthheight = hb;
 
                 // unitmenu
                 unit_menu = new Inkscape::UI::Widget::UnitMenu();
@@ -1081,7 +1077,7 @@ CloneTiler::CloneTiler () :
                 radio = gtk_radio_button_new_with_label (NULL, _("Rows, columns: "));
                 gtk_widget_set_tooltip_text (radio, _("Create the specified number of rows and columns"));
                 clonetiler_table_attach (table, radio, 0.0, 1, 1);
-                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (clonetiler_switch_to_create), (gpointer) dlg);
+                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (clonetiler_switch_to_create), (gpointer) this);
             }
             if (!prefs->getBool(prefs_path + "fillrect")) {
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
@@ -1091,7 +1087,7 @@ CloneTiler::CloneTiler () :
                 radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Width, height: "));
                 gtk_widget_set_tooltip_text (radio, _("Fill the specified width and height with the tiling"));
                 clonetiler_table_attach (table, radio, 0.0, 2, 1);
-                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (clonetiler_switch_to_fill), (gpointer) dlg);
+                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (clonetiler_switch_to_fill), (gpointer) this);
             }
             if (prefs->getBool(prefs_path + "fillrect")) {
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
@@ -1122,7 +1118,7 @@ CloneTiler::CloneTiler () :
             gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
             gtk_box_pack_end (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
             GtkWidget *l = gtk_label_new("");
-            g_object_set_data (G_OBJECT(dlg), "status", (gpointer) l);
+            _status = l;
             gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0);
         }
 
@@ -1133,20 +1129,20 @@ CloneTiler::CloneTiler () :
             gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
 
             {
-                GtkWidget *b = gtk_button_new ();
-                GtkWidget *l = gtk_label_new ("");
-                gtk_label_set_markup_with_mnemonic (GTK_LABEL(l), _(" _Create "));
-                gtk_container_add (GTK_CONTAINER(b), l);
-                gtk_widget_set_tooltip_text (b, _("Create and tile the clones of the selection"));
-                g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (clonetiler_apply), dlg);
-                gtk_box_pack_end (GTK_BOX (hb), b, FALSE, FALSE, 0);
+                auto b = Gtk::manage(new Gtk::Button());
+                auto l = Gtk::manage(new Gtk::Label(""));
+                l->set_markup_with_mnemonic(_(" _Create "));
+                b->add(*l);
+                b->set_tooltip_text(_("Create and tile the clones of the selection"));
+                b->signal_clicked().connect(sigc::mem_fun(*this, &CloneTiler::apply));
+                gtk_box_pack_end (GTK_BOX (hb), GTK_WIDGET(b->gobj()), FALSE, FALSE, 0);
             }
 
             { // buttons which are enabled only when there are tiled clones
                 auto sb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
                 gtk_box_set_homogeneous(GTK_BOX(sb), FALSE);
                 gtk_box_pack_end (GTK_BOX (hb), sb, FALSE, FALSE, 0);
-                g_object_set_data (G_OBJECT(dlg), "buttons_on_tiles", (gpointer) sb);
+                _buttons_on_tiles = sb;
                 {
                     // TRANSLATORS: if a group of objects are "clumped" together, then they
                     //  are unevenly spread in the given amount of space - as shown in the
@@ -1160,28 +1156,26 @@ CloneTiler::CloneTiler () :
                 }
 
                 {
-                    GtkWidget *b = gtk_button_new_with_mnemonic (_(" Re_move "));
-                    gtk_widget_set_tooltip_text (b, _("Remove existing tiled clones of the selected object (siblings only)"));
-                    g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (clonetiler_remove), gpointer(dlg));
-                    gtk_box_pack_end (GTK_BOX (sb), b, FALSE, FALSE, 0);
+                    auto b = Gtk::manage(new Gtk::Button(_(" Re_move "), true));
+                    b->set_tooltip_text(_("Remove existing tiled clones of the selected object (siblings only)"));
+                    b->signal_clicked().connect(sigc::mem_fun(*this, &CloneTiler::on_remove_button_clicked));
+                    gtk_box_pack_end (GTK_BOX (sb), GTK_WIDGET(b->gobj()), FALSE, FALSE, 0);
                 }
 
                 // connect to global selection changed signal (so we can change desktops) and
                 // external_change (so we're not fooled by undo)
-                selectChangedConn = INKSCAPE.signal_selection_changed.connect(sigc::bind(sigc::ptr_fun(&CloneTiler::clonetiler_change_selection), dlg));
-                externChangedConn = INKSCAPE.signal_external_change.connect   (sigc::bind(sigc::ptr_fun(&CloneTiler::clonetiler_external_change), dlg));
-
-                g_signal_connect(G_OBJECT(dlg), "destroy", G_CALLBACK(clonetiler_disconnect_gsignal), this);
+                selectChangedConn = INKSCAPE.signal_selection_changed.connect(sigc::mem_fun(*this, &CloneTiler::change_selection));
+                externChangedConn = INKSCAPE.signal_external_change.connect(sigc::mem_fun(*this, &CloneTiler::external_change));
 
                 // update now
-                clonetiler_change_selection (SP_ACTIVE_DESKTOP->getSelection(), dlg);
+                change_selection(SP_ACTIVE_DESKTOP->getSelection());
             }
 
             {
                 GtkWidget *b = gtk_button_new_with_mnemonic (_(" R_eset "));
                 // TRANSLATORS: "change" is a noun here
                 gtk_widget_set_tooltip_text (b, _("Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"));
-                g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (clonetiler_reset), dlg);
+                g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (clonetiler_reset), this);
                 gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
             }
         }
@@ -1199,8 +1193,9 @@ CloneTiler::CloneTiler () :
 CloneTiler::~CloneTiler (void)
 {
     //subselChangedConn.disconnect();
-    //selectChangedConn.disconnect();
     //selectModifiedConn.disconnect();
+    selectChangedConn.disconnect();
+    externChangedConn.disconnect();
     desktopChangeConn.disconnect();
     deskTrack.disconnect();
     color_changed_connection.disconnect();
@@ -1215,17 +1210,7 @@ void CloneTiler::setDesktop(SPDesktop *desktop)
 void CloneTiler::setTargetDesktop(SPDesktop *desktop)
 {
     if (this->desktop != desktop) {
-        if (this->desktop) {
-            //selectModifiedConn.disconnect();
-            //subselChangedConn.disconnect();
-            //selectChangedConn.disconnect();
-        }
         this->desktop = desktop;
-        if (desktop && desktop->selection) {
-            //selectChangedConn = desktop->selection->connectChanged(sigc::hide(sigc::mem_fun(*this, &CloneTiler::clonetiler_change_selection)));
-            //subselChangedConn = desktop->connectToolSubselectionChanged(sigc::hide(sigc::mem_fun(*this, &CloneTiler::clonetiler_change_selection)));
-            //selectModifiedConn = desktop->selection->connectModified(sigc::hide<0>(sigc::mem_fun(*this, &CloneTiler::clonetiler_change_selection)));
-        }
     }
 }
 
@@ -1245,47 +1230,35 @@ void CloneTiler::on_picker_color_changed(guint rgba)
     is_updating = false;
 }
 
-void CloneTiler::clonetiler_change_selection(Inkscape::Selection *selection, GtkWidget *dlg)
+void CloneTiler::change_selection(Inkscape::Selection *selection)
 {
-    GtkWidget *buttons = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "buttons_on_tiles"));
-    GtkWidget *status = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "status"));
-
     if (selection->isEmpty()) {
-        gtk_widget_set_sensitive (buttons, FALSE);
-        gtk_label_set_markup (GTK_LABEL(status), _("Nothing selected."));
+        gtk_widget_set_sensitive (_buttons_on_tiles, FALSE);
+        gtk_label_set_markup (GTK_LABEL(_status), _("Nothing selected."));
         return;
     }
 
     if (boost::distance(selection->items()) > 1) {
-        gtk_widget_set_sensitive (buttons, FALSE);
-        gtk_label_set_markup (GTK_LABEL(status), _("More than one object selected."));
+        gtk_widget_set_sensitive (_buttons_on_tiles, FALSE);
+        gtk_label_set_markup (GTK_LABEL(_status), _("More than one object selected."));
         return;
     }
 
     guint n = clonetiler_number_of_clones(selection->singleItem());
     if (n > 0) {
-        gtk_widget_set_sensitive (buttons, TRUE);
+        gtk_widget_set_sensitive (_buttons_on_tiles, TRUE);
         gchar *sta = g_strdup_printf (_("Object has %d tiled clones."), n);
-        gtk_label_set_markup (GTK_LABEL(status), sta);
+        gtk_label_set_markup (GTK_LABEL(_status), sta);
         g_free (sta);
     } else {
-        gtk_widget_set_sensitive (buttons, FALSE);
-        gtk_label_set_markup (GTK_LABEL(status), _("Object has no tiled clones."));
+        gtk_widget_set_sensitive (_buttons_on_tiles, FALSE);
+        gtk_label_set_markup (GTK_LABEL(_status), _("Object has no tiled clones."));
     }
 }
 
-void CloneTiler::clonetiler_external_change(GtkWidget *dlg)
-{
-    clonetiler_change_selection (SP_ACTIVE_DESKTOP->getSelection(), dlg);
-}
-
-void CloneTiler::clonetiler_disconnect_gsignal(GObject *, gpointer source)
+void CloneTiler::external_change()
 {
-    g_return_if_fail(source != NULL);
-
-    CloneTiler* dlg = reinterpret_cast(source);
-    dlg->selectChangedConn.disconnect();
-    dlg->externChangedConn.disconnect();
+    change_selection(SP_ACTIVE_DESKTOP->getSelection());
 }
 
 Geom::Affine CloneTiler::clonetiler_get_transform(
@@ -2032,7 +2005,7 @@ guint CloneTiler::clonetiler_number_of_clones(SPObject *obj)
     return n;
 }
 
-void CloneTiler::clonetiler_remove(GtkWidget */*widget*/, GtkWidget *dlg, bool do_undo/* = true*/)
+void CloneTiler::remove(bool do_undo/* = true*/)
 {
     SPDesktop *desktop = SP_ACTIVE_DESKTOP;
     if (desktop == NULL) {
@@ -2064,7 +2037,7 @@ void CloneTiler::clonetiler_remove(GtkWidget */*widget*/, GtkWidget *dlg, bool d
     }
     g_slist_free (to_delete);
 
-    clonetiler_change_selection (selection, dlg);
+    change_selection (selection);
 
     if (do_undo) {
         DocumentUndo::done(desktop->getDocument(), SP_VERB_DIALOG_CLONETILER,
@@ -2104,7 +2077,7 @@ double CloneTiler::randomize01(double val, double rand)
 }
 
 
-void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg)
+void CloneTiler::apply()
 {
     SPDesktop *desktop = SP_ACTIVE_DESKTOP;
     if (desktop == NULL) {
@@ -2129,9 +2102,8 @@ void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg)
     desktop->setWaitingCursor();
 
     // set statusbar text
-    GtkWidget *status = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "status"));
-    gtk_label_set_markup (GTK_LABEL(status), _("Creating tiled clones..."));
-    gtk_widget_queue_draw(GTK_WIDGET(status));
+    gtk_label_set_markup (GTK_LABEL(_status), _("Creating tiled clones..."));
+    gtk_widget_queue_draw(GTK_WIDGET(_status));
     gdk_window_process_all_updates();
 
     SPObject *obj = selection->singleItem();
@@ -2144,7 +2116,7 @@ void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg)
     const char *id_href = g_strdup_printf("#%s", obj_repr->attribute("id"));
     SPObject *parent = obj->parent;
 
-    clonetiler_remove (NULL, dlg, false);
+    remove(false);
 
     Geom::Scale scale = desktop->getDocument()->getDocumentScale().inverse();
     double scale_units = scale[Geom::X]; // Use just x direction....
@@ -2542,7 +2514,7 @@ void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg)
         clonetiler_trace_finish ();
     }
 
-    clonetiler_change_selection (selection, dlg);
+    change_selection(selection);
 
     desktop->clearWaitingCursor();
 
diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h
index e76ad028e..9ad3fa878 100644
--- a/src/ui/dialog/clonetiler.h
+++ b/src/ui/dialog/clonetiler.h
@@ -41,7 +41,6 @@ protected:
     void clonetiler_table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col);
 
     static void clonetiler_symgroup_changed(GtkComboBox *cb, gpointer /*data*/);
-    static void clonetiler_remove(GtkWidget */*widget*/, GtkWidget *dlg, bool do_undo = true);
     static void on_picker_color_changed(guint rgba);
     static void clonetiler_trace_hide_tiled_clones_recursively(SPObject *from);
     static void clonetiler_checkbox_toggled(GtkToggleButton *tb, gpointer *data);
@@ -55,11 +54,7 @@ protected:
     static void clonetiler_switch_to_create(GtkToggleButton */*tb*/, GtkWidget *dlg);
     static void clonetiler_switch_to_fill(GtkToggleButton */*tb*/, GtkWidget *dlg);
     static void clonetiler_keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/);
-    static void clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg);
     static void clonetiler_unclump(GtkWidget */*widget*/, void *);
-    static void clonetiler_change_selection(Inkscape::Selection *selection, GtkWidget *dlg);
-    static void clonetiler_external_change(GtkWidget *dlg);
-    static void clonetiler_disconnect_gsignal(GObject *widget, gpointer source);
     static void clonetiler_reset(GtkWidget */*widget*/, GtkWidget *dlg);
     static guint clonetiler_number_of_clones(SPObject *obj);
     static void clonetiler_trace_setup(SPDocument *doc, gdouble zoom, SPItem *original);
@@ -71,6 +66,12 @@ protected:
     static void clonetiler_value_changed(GtkAdjustment *adj, gpointer data);
     static void clonetiler_reset_recursive(GtkWidget *w);
 
+    void apply();
+    void change_selection(Inkscape::Selection *selection);
+    void external_change();
+    void remove(bool do_undo = true);
+    void on_remove_button_clicked() {remove();}
+
     static Geom::Affine clonetiler_get_transform(    // symmetry group
             int type,
 
@@ -112,7 +113,6 @@ private:
     CloneTiler(CloneTiler const &d);
     CloneTiler& operator=(CloneTiler const &d);
 
-    GtkWidget *dlg;
     GtkWidget *nb;
     GtkWidget *b;
     SPDesktop *desktop;
@@ -142,6 +142,12 @@ private:
      */
     void setTargetDesktop(SPDesktop *desktop);
 
+    // Variables that used to be set using GObject
+    GtkWidget *_buttons_on_tiles;
+    GtkWidget *_dotrace;
+    GtkWidget *_status;
+    GtkWidget *_rowscols;
+    GtkWidget *_widthheight;
 };
 
 
-- 
cgit v1.2.3


From 349e2e3bc0b11c89a0a791e7feedfc9e0c457e5d Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Wed, 10 Aug 2016 12:39:30 +0100
Subject: CloneTiler: Further C++ification

(bzr r15051)
---
 src/ui/dialog/clonetiler.cpp | 511 ++++++++++++++++++++++---------------------
 src/ui/dialog/clonetiler.h   |  65 +++---
 2 files changed, 292 insertions(+), 284 deletions(-)

diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index eb55e06c6..8bd5cd5f6 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -22,7 +22,9 @@
 
 #include 
 #include <2geom/transforms.h>
+
 #include 
+#include 
 
 #include "desktop.h"
 
@@ -88,7 +90,7 @@ CloneTiler::CloneTiler () :
 
         // Symmetry
         {
-            GtkWidget *vb = clonetiler_new_tab (nb, _("_Symmetry"));
+            GtkWidget *vb = new_tab (nb, _("_Symmetry"));
 
         /* TRANSLATORS: For the following 17 symmetry groups, see
              * http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples);
@@ -149,16 +151,16 @@ CloneTiler::CloneTiler () :
         gtk_combo_box_set_active (GTK_COMBO_BOX (combo), current);
 
         g_signal_connect(G_OBJECT(combo), "changed",
-                    G_CALLBACK(clonetiler_symgroup_changed), NULL);
+                    G_CALLBACK(symgroup_changed), NULL);
         }
 
         table_row_labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
         // Shift
         {
-            GtkWidget *vb = clonetiler_new_tab (nb, _("S_hift"));
+            GtkWidget *vb = new_tab (nb, _("S_hift"));
 
-            GtkWidget *table = clonetiler_table_x_y_rand (3);
+            GtkWidget *table = table_x_y_rand (3);
             gtk_box_pack_start (GTK_BOX (vb), table, FALSE, FALSE, 0);
 
             // X
@@ -168,29 +170,29 @@ CloneTiler::CloneTiler () :
                     // xgettext:no-c-format
                 gtk_label_set_markup (GTK_LABEL(l), _("Shift X:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 2, 1);
+                table_attach (table, l, 1, 2, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                    _("Horizontal shift per row (in % of tile width)"), "shiftx_per_j",
                    -10000, 10000, "%");
-                clonetiler_table_attach (table, l, 0, 2, 2);
+                table_attach (table, l, 0, 2, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                    _("Horizontal shift per column (in % of tile width)"), "shiftx_per_i",
                    -10000, 10000, "%");
-                clonetiler_table_attach (table, l, 0, 2, 3);
+                table_attach (table, l, 0, 2, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the horizontal shift by this percentage"), "shiftx_rand",
+                GtkWidget *l = spinbox (_("Randomize the horizontal shift by this percentage"), "shiftx_rand",
                                                    0, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 2, 4);
+                table_attach (table, l, 0, 2, 4);
             }
 
             // Y
@@ -200,30 +202,30 @@ CloneTiler::CloneTiler () :
                     // xgettext:no-c-format
                 gtk_label_set_markup (GTK_LABEL(l), _("Shift Y:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 3, 1);
+                table_attach (table, l, 1, 3, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical shift per row (in % of tile height)"), "shifty_per_j",
                                                    -10000, 10000, "%");
-                clonetiler_table_attach (table, l, 0, 3, 2);
+                table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical shift per column (in % of tile height)"), "shifty_per_i",
                                                    -10000, 10000, "%");
-                clonetiler_table_attach (table, l, 0, 3, 3);
+                table_attach (table, l, 0, 3, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                                                    _("Randomize the vertical shift by this percentage"), "shifty_rand",
                                                    0, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 3, 4);
+                table_attach (table, l, 0, 3, 4);
             }
 
             // Exponent
@@ -231,21 +233,21 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Exponent:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 4, 1);
+                table_attach (table, l, 1, 4, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                                                    _("Whether rows are spaced evenly (1), converge (<1) or diverge (>1)"), "shifty_exp",
                                                    0, 10, "", true);
-                clonetiler_table_attach (table, l, 0, 4, 2);
+                table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                                                    _("Whether columns are spaced evenly (1), converge (<1) or diverge (>1)"), "shiftx_exp",
                                                    0, 10, "", true);
-                clonetiler_table_attach (table, l, 0, 4, 3);
+                table_attach (table, l, 0, 4, 3);
             }
 
             { // alternates
@@ -253,17 +255,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Alternate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Alternate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 5, 1);
+                table_attach (table, l, 1, 5, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of shifts for each row"), "shifty_alternate");
-                clonetiler_table_attach (table, l, 0, 5, 2);
+                GtkWidget *l = checkbox (_("Alternate the sign of shifts for each row"), "shifty_alternate");
+                table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of shifts for each column"), "shiftx_alternate");
-                clonetiler_table_attach (table, l, 0, 5, 3);
+                GtkWidget *l = checkbox (_("Alternate the sign of shifts for each column"), "shiftx_alternate");
+                table_attach (table, l, 0, 5, 3);
             }
 
             { // Cumulate
@@ -271,17 +273,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Cumulate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Cumulate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 6, 1);
+                table_attach (table, l, 1, 6, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Cumulate the shifts for each row"), "shifty_cumulate");
-                clonetiler_table_attach (table, l, 0, 6, 2);
+                GtkWidget *l = checkbox (_("Cumulate the shifts for each row"), "shifty_cumulate");
+                table_attach (table, l, 0, 6, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Cumulate the shifts for each column"), "shiftx_cumulate");
-                clonetiler_table_attach (table, l, 0, 6, 3);
+                GtkWidget *l = checkbox (_("Cumulate the shifts for each column"), "shiftx_cumulate");
+                table_attach (table, l, 0, 6, 3);
             }
 
             { // Exclude tile width and height in shift
@@ -289,17 +291,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Cumulate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Exclude tile:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 7, 1);
+                table_attach (table, l, 1, 7, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Exclude tile height in shift"), "shifty_excludeh");
-                clonetiler_table_attach (table, l, 0, 7, 2);
+                GtkWidget *l = checkbox (_("Exclude tile height in shift"), "shifty_excludeh");
+                table_attach (table, l, 0, 7, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Exclude tile width in shift"), "shiftx_excludew");
-                clonetiler_table_attach (table, l, 0, 7, 3);
+                GtkWidget *l = checkbox (_("Exclude tile width in shift"), "shiftx_excludew");
+                table_attach (table, l, 0, 7, 3);
             }
 
         }
@@ -307,9 +309,9 @@ CloneTiler::CloneTiler () :
 
         // Scale
         {
-            GtkWidget *vb = clonetiler_new_tab (nb, _("Sc_ale"));
+            GtkWidget *vb = new_tab (nb, _("Sc_ale"));
 
-            GtkWidget *table = clonetiler_table_x_y_rand (2);
+            GtkWidget *table = table_x_y_rand (2);
             gtk_box_pack_start (GTK_BOX (vb), table, FALSE, FALSE, 0);
 
             // X
@@ -317,29 +319,29 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Scale X:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 2, 1);
+                table_attach (table, l, 1, 2, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Horizontal scale per row (in % of tile width)"), "scalex_per_j",
                                                    -100, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 2, 2);
+                table_attach (table, l, 0, 2, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Horizontal scale per column (in % of tile width)"), "scalex_per_i",
                                                    -100, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 2, 3);
+                table_attach (table, l, 0, 2, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the horizontal scale by this percentage"), "scalex_rand",
+                GtkWidget *l = spinbox (_("Randomize the horizontal scale by this percentage"), "scalex_rand",
                                                    0, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 2, 4);
+                table_attach (table, l, 0, 2, 4);
             }
 
             // Y
@@ -347,29 +349,29 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Scale Y:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 3, 1);
+                table_attach (table, l, 1, 3, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical scale per row (in % of tile height)"), "scaley_per_j",
                                                    -100, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 3, 2);
+                table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical scale per column (in % of tile height)"), "scaley_per_i",
                                                    -100, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 3, 3);
+                table_attach (table, l, 0, 3, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the vertical scale by this percentage"), "scaley_rand",
+                GtkWidget *l = spinbox (_("Randomize the vertical scale by this percentage"), "scaley_rand",
                                                    0, 1000, "%");
-                clonetiler_table_attach (table, l, 0, 3, 4);
+                table_attach (table, l, 0, 3, 4);
             }
 
             // Exponent
@@ -377,19 +379,19 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Exponent:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 4, 1);
+                table_attach (table, l, 1, 4, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Whether row scaling is uniform (1), converge (<1) or diverge (>1)"), "scaley_exp",
+                GtkWidget *l = spinbox (_("Whether row scaling is uniform (1), converge (<1) or diverge (>1)"), "scaley_exp",
                                                    0, 10, "", true);
-                clonetiler_table_attach (table, l, 0, 4, 2);
+                table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Whether column scaling is uniform (1), converge (<1) or diverge (>1)"), "scalex_exp",
+                GtkWidget *l = spinbox (_("Whether column scaling is uniform (1), converge (<1) or diverge (>1)"), "scalex_exp",
                                                    0, 10, "", true);
-                clonetiler_table_attach (table, l, 0, 4, 3);
+                table_attach (table, l, 0, 4, 3);
             }
 
             // Logarithmic (as in logarithmic spiral)
@@ -397,19 +399,19 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Base:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 5, 1);
+                table_attach (table, l, 1, 5, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scaley_log",
+                GtkWidget *l = spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scaley_log",
                                                    0, 10, "", false);
-                clonetiler_table_attach (table, l, 0, 5, 2);
+                table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scalex_log",
+                GtkWidget *l = spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scalex_log",
                                                    0, 10, "", false);
-                clonetiler_table_attach (table, l, 0, 5, 3);
+                table_attach (table, l, 0, 5, 3);
             }
 
             { // alternates
@@ -417,17 +419,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Alternate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Alternate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 6, 1);
+                table_attach (table, l, 1, 6, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of scales for each row"), "scaley_alternate");
-                clonetiler_table_attach (table, l, 0, 6, 2);
+                GtkWidget *l = checkbox (_("Alternate the sign of scales for each row"), "scaley_alternate");
+                table_attach (table, l, 0, 6, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of scales for each column"), "scalex_alternate");
-                clonetiler_table_attach (table, l, 0, 6, 3);
+                GtkWidget *l = checkbox (_("Alternate the sign of scales for each column"), "scalex_alternate");
+                table_attach (table, l, 0, 6, 3);
             }
 
             { // Cumulate
@@ -435,17 +437,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Cumulate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Cumulate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 7, 1);
+                table_attach (table, l, 1, 7, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Cumulate the scales for each row"), "scaley_cumulate");
-                clonetiler_table_attach (table, l, 0, 7, 2);
+                GtkWidget *l = checkbox (_("Cumulate the scales for each row"), "scaley_cumulate");
+                table_attach (table, l, 0, 7, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Cumulate the scales for each column"), "scalex_cumulate");
-                clonetiler_table_attach (table, l, 0, 7, 3);
+                GtkWidget *l = checkbox (_("Cumulate the scales for each column"), "scalex_cumulate");
+                table_attach (table, l, 0, 7, 3);
             }
 
         }
@@ -453,9 +455,9 @@ CloneTiler::CloneTiler () :
 
         // Rotation
         {
-            GtkWidget *vb = clonetiler_new_tab (nb, _("_Rotation"));
+            GtkWidget *vb = new_tab (nb, _("_Rotation"));
 
-            GtkWidget *table = clonetiler_table_x_y_rand (1);
+            GtkWidget *table = table_x_y_rand (1);
             gtk_box_pack_start (GTK_BOX (vb), table, FALSE, FALSE, 0);
 
             // Angle
@@ -463,29 +465,29 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Angle:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 2, 1);
+                table_attach (table, l, 1, 2, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Rotate tiles by this angle for each row"), "rotate_per_j",
                                                    -180, 180, "°");
-                clonetiler_table_attach (table, l, 0, 2, 2);
+                table_attach (table, l, 0, 2, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (
+                GtkWidget *l = spinbox (
                     // xgettext:no-c-format
                                                    _("Rotate tiles by this angle for each column"), "rotate_per_i",
                                                    -180, 180, "°");
-                clonetiler_table_attach (table, l, 0, 2, 3);
+                table_attach (table, l, 0, 2, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the rotation angle by this percentage"), "rotate_rand",
+                GtkWidget *l = spinbox (_("Randomize the rotation angle by this percentage"), "rotate_rand",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 2, 4);
+                table_attach (table, l, 0, 2, 4);
             }
 
             { // alternates
@@ -493,17 +495,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Alternate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Alternate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 3, 1);
+                table_attach (table, l, 1, 3, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the rotation direction for each row"), "rotate_alternatej");
-                clonetiler_table_attach (table, l, 0, 3, 2);
+                GtkWidget *l = checkbox (_("Alternate the rotation direction for each row"), "rotate_alternatej");
+                table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the rotation direction for each column"), "rotate_alternatei");
-                clonetiler_table_attach (table, l, 0, 3, 3);
+                GtkWidget *l = checkbox (_("Alternate the rotation direction for each column"), "rotate_alternatei");
+                table_attach (table, l, 0, 3, 3);
             }
 
             { // Cumulate
@@ -511,17 +513,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Cumulate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Cumulate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 4, 1);
+                table_attach (table, l, 1, 4, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Cumulate the rotation for each row"), "rotate_cumulatej");
-                clonetiler_table_attach (table, l, 0, 4, 2);
+                GtkWidget *l = checkbox (_("Cumulate the rotation for each row"), "rotate_cumulatej");
+                table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Cumulate the rotation for each column"), "rotate_cumulatei");
-                clonetiler_table_attach (table, l, 0, 4, 3);
+                GtkWidget *l = checkbox (_("Cumulate the rotation for each column"), "rotate_cumulatei");
+                table_attach (table, l, 0, 4, 3);
             }
 
         }
@@ -529,9 +531,9 @@ CloneTiler::CloneTiler () :
 
         // Blur and opacity
         {
-            GtkWidget *vb = clonetiler_new_tab (nb, _("_Blur & opacity"));
+            GtkWidget *vb = new_tab (nb, _("_Blur & opacity"));
 
-            GtkWidget *table = clonetiler_table_x_y_rand (1);
+            GtkWidget *table = table_x_y_rand (1);
             gtk_box_pack_start (GTK_BOX (vb), table, FALSE, FALSE, 0);
 
 
@@ -540,25 +542,25 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Blur:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 2, 1);
+                table_attach (table, l, 1, 2, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Blur tiles by this percentage for each row"), "blur_per_j",
+                GtkWidget *l = spinbox (_("Blur tiles by this percentage for each row"), "blur_per_j",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 2, 2);
+                table_attach (table, l, 0, 2, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Blur tiles by this percentage for each column"), "blur_per_i",
+                GtkWidget *l = spinbox (_("Blur tiles by this percentage for each column"), "blur_per_i",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 2, 3);
+                table_attach (table, l, 0, 2, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the tile blur by this percentage"), "blur_rand",
+                GtkWidget *l = spinbox (_("Randomize the tile blur by this percentage"), "blur_rand",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 2, 4);
+                table_attach (table, l, 0, 2, 4);
             }
 
             { // alternates
@@ -566,17 +568,17 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Alternate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Alternate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 3, 1);
+                table_attach (table, l, 1, 3, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of blur change for each row"), "blur_alternatej");
-                clonetiler_table_attach (table, l, 0, 3, 2);
+                GtkWidget *l = checkbox (_("Alternate the sign of blur change for each row"), "blur_alternatej");
+                table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of blur change for each column"), "blur_alternatei");
-                clonetiler_table_attach (table, l, 0, 3, 3);
+                GtkWidget *l = checkbox (_("Alternate the sign of blur change for each column"), "blur_alternatei");
+                table_attach (table, l, 0, 3, 3);
             }
 
 
@@ -586,25 +588,25 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Opacity:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 4, 1);
+                table_attach (table, l, 1, 4, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Decrease tile opacity by this percentage for each row"), "opacity_per_j",
+                GtkWidget *l = spinbox (_("Decrease tile opacity by this percentage for each row"), "opacity_per_j",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 4, 2);
+                table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Decrease tile opacity by this percentage for each column"), "opacity_per_i",
+                GtkWidget *l = spinbox (_("Decrease tile opacity by this percentage for each column"), "opacity_per_i",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 4, 3);
+                table_attach (table, l, 0, 4, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the tile opacity by this percentage"), "opacity_rand",
+                GtkWidget *l = spinbox (_("Randomize the tile opacity by this percentage"), "opacity_rand",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 4, 4);
+                table_attach (table, l, 0, 4, 4);
             }
 
             { // alternates
@@ -612,24 +614,24 @@ CloneTiler::CloneTiler () :
                 // TRANSLATORS: "Alternate" is a verb here
                 gtk_label_set_markup (GTK_LABEL(l), _("Alternate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 5, 1);
+                table_attach (table, l, 1, 5, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of opacity change for each row"), "opacity_alternatej");
-                clonetiler_table_attach (table, l, 0, 5, 2);
+                GtkWidget *l = checkbox (_("Alternate the sign of opacity change for each row"), "opacity_alternatej");
+                table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of opacity change for each column"), "opacity_alternatei");
-                clonetiler_table_attach (table, l, 0, 5, 3);
+                GtkWidget *l = checkbox (_("Alternate the sign of opacity change for each column"), "opacity_alternatei");
+                table_attach (table, l, 0, 5, 3);
             }
         }
 
 
         // Color
         {
-            GtkWidget *vb = clonetiler_new_tab (nb, _("Co_lor"));
+            GtkWidget *vb = new_tab (nb, _("Co_lor"));
 
             {
             auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
@@ -648,7 +650,7 @@ CloneTiler::CloneTiler () :
             }
 
 
-            GtkWidget *table = clonetiler_table_x_y_rand (3);
+            GtkWidget *table = table_x_y_rand (3);
             gtk_box_pack_start (GTK_BOX (vb), table, FALSE, FALSE, 0);
 
             // Hue
@@ -656,25 +658,25 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("H:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 2, 1);
+                table_attach (table, l, 1, 2, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Change the tile hue by this percentage for each row"), "hue_per_j",
+                GtkWidget *l = spinbox (_("Change the tile hue by this percentage for each row"), "hue_per_j",
                                                    -100, 100, "%");
-                clonetiler_table_attach (table, l, 0, 2, 2);
+                table_attach (table, l, 0, 2, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Change the tile hue by this percentage for each column"), "hue_per_i",
+                GtkWidget *l = spinbox (_("Change the tile hue by this percentage for each column"), "hue_per_i",
                                                    -100, 100, "%");
-                clonetiler_table_attach (table, l, 0, 2, 3);
+                table_attach (table, l, 0, 2, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the tile hue by this percentage"), "hue_rand",
+                GtkWidget *l = spinbox (_("Randomize the tile hue by this percentage"), "hue_rand",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 2, 4);
+                table_attach (table, l, 0, 2, 4);
             }
 
 
@@ -683,25 +685,25 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("S:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 3, 1);
+                table_attach (table, l, 1, 3, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Change the color saturation by this percentage for each row"), "saturation_per_j",
+                GtkWidget *l = spinbox (_("Change the color saturation by this percentage for each row"), "saturation_per_j",
                                                    -100, 100, "%");
-                clonetiler_table_attach (table, l, 0, 3, 2);
+                table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Change the color saturation by this percentage for each column"), "saturation_per_i",
+                GtkWidget *l = spinbox (_("Change the color saturation by this percentage for each column"), "saturation_per_i",
                                                    -100, 100, "%");
-                clonetiler_table_attach (table, l, 0, 3, 3);
+                table_attach (table, l, 0, 3, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the color saturation by this percentage"), "saturation_rand",
+                GtkWidget *l = spinbox (_("Randomize the color saturation by this percentage"), "saturation_rand",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 3, 4);
+                table_attach (table, l, 0, 3, 4);
             }
 
             // Lightness
@@ -709,25 +711,25 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("L:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 4, 1);
+                table_attach (table, l, 1, 4, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Change the color lightness by this percentage for each row"), "lightness_per_j",
+                GtkWidget *l = spinbox (_("Change the color lightness by this percentage for each row"), "lightness_per_j",
                                                    -100, 100, "%");
-                clonetiler_table_attach (table, l, 0, 4, 2);
+                table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Change the color lightness by this percentage for each column"), "lightness_per_i",
+                GtkWidget *l = spinbox (_("Change the color lightness by this percentage for each column"), "lightness_per_i",
                                                    -100, 100, "%");
-                clonetiler_table_attach (table, l, 0, 4, 3);
+                table_attach (table, l, 0, 4, 3);
             }
 
             {
-                GtkWidget *l = clonetiler_spinbox (_("Randomize the color lightness by this percentage"), "lightness_rand",
+                GtkWidget *l = spinbox (_("Randomize the color lightness by this percentage"), "lightness_rand",
                                                    0, 100, "%");
-                clonetiler_table_attach (table, l, 0, 4, 4);
+                table_attach (table, l, 0, 4, 4);
             }
 
 
@@ -735,38 +737,36 @@ CloneTiler::CloneTiler () :
                 GtkWidget *l = gtk_label_new ("");
                 gtk_label_set_markup (GTK_LABEL(l), _("Alternate:"));
                 gtk_size_group_add_widget(table_row_labels, l);
-                clonetiler_table_attach (table, l, 1, 5, 1);
+                table_attach (table, l, 1, 5, 1);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of color changes for each row"), "color_alternatej");
-                clonetiler_table_attach (table, l, 0, 5, 2);
+                GtkWidget *l = checkbox (_("Alternate the sign of color changes for each row"), "color_alternatej");
+                table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = clonetiler_checkbox (_("Alternate the sign of color changes for each column"), "color_alternatei");
-                clonetiler_table_attach (table, l, 0, 5, 3);
+                GtkWidget *l = checkbox (_("Alternate the sign of color changes for each column"), "color_alternatei");
+                table_attach (table, l, 0, 5, 3);
             }
 
         }
 
         // Trace
         {
-            GtkWidget *vb = clonetiler_new_tab (nb, _("_Trace"));
+            GtkWidget *vb = new_tab (nb, _("_Trace"));
         {
             auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
             gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
             gtk_box_pack_start (GTK_BOX (vb), hb, FALSE, FALSE, 0);
 
-            b  = gtk_check_button_new_with_label (_("Trace the drawing under the clones/sprayed items"));
-            g_object_set_data (G_OBJECT(b), "uncheckable", GINT_TO_POINTER(TRUE));
+            _b = Gtk::manage(new Gtk::CheckButton(_("Trace the drawing under the clones/sprayed items")));
+            _b->set_data("uncheckable", GINT_TO_POINTER(TRUE));
             bool old = prefs->getBool(prefs_path + "dotrace");
-            gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
-            gtk_widget_set_tooltip_text (b, _("For each clone/sprayed item, pick a value from the drawing in its location and apply it"));
-            gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
-
-            g_signal_connect(G_OBJECT(b), "toggled",
-                               G_CALLBACK(clonetiler_do_pick_toggled), (gpointer)this);
+            _b->set_active(old);
+            _b->set_tooltip_text(_("For each clone/sprayed item, pick a value from the drawing in its location and apply it"));
+            gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(_b->gobj()), FALSE, FALSE, 0);
+            _b->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::do_pick_toggled),_b));
         }
 
         {
@@ -789,65 +789,65 @@ CloneTiler::CloneTiler () :
                 {
                     radio = gtk_radio_button_new_with_label (NULL, _("Color"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the visible color and opacity"));
-                    clonetiler_table_attach (table, radio, 0.0, 1, 1);
+                    table_attach (table, radio, 0.0, 1, 1);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_COLOR));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_COLOR));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_COLOR);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Opacity"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the total accumulated opacity"));
-                    clonetiler_table_attach (table, radio, 0.0, 2, 1);
+                    table_attach (table, radio, 0.0, 2, 1);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_OPACITY));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_OPACITY));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_OPACITY);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("R"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the Red component of the color"));
-                    clonetiler_table_attach (table, radio, 0.0, 1, 2);
+                    table_attach (table, radio, 0.0, 1, 2);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_R));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_R));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_R);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("G"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the Green component of the color"));
-                    clonetiler_table_attach (table, radio, 0.0, 2, 2);
+                    table_attach (table, radio, 0.0, 2, 2);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_G));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_G));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_G);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("B"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the Blue component of the color"));
-                    clonetiler_table_attach (table, radio, 0.0, 3, 2);
+                    table_attach (table, radio, 0.0, 3, 2);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_B));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_B));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_B);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color hue", "H"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the hue of the color"));
-                    clonetiler_table_attach (table, radio, 0.0, 1, 3);
+                    table_attach (table, radio, 0.0, 1, 3);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_H));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_H));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_H);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color saturation", "S"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the saturation of the color"));
-                    clonetiler_table_attach (table, radio, 0.0, 2, 3);
+                    table_attach (table, radio, 0.0, 2, 3);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_S));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_S));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_S);
                 }
                 {
                     radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color lightness", "L"));
                     gtk_widget_set_tooltip_text (radio, _("Pick the lightness of the color"));
-                    clonetiler_table_attach (table, radio, 0.0, 3, 3);
+                    table_attach (table, radio, 0.0, 3, 3);
                     g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (clonetiler_pick_switched), GINT_TO_POINTER(PICK_L));
+                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_L));
                     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_L);
                 }
 
@@ -866,33 +866,33 @@ CloneTiler::CloneTiler () :
                 {
                     GtkWidget *l = gtk_label_new ("");
                     gtk_label_set_markup (GTK_LABEL(l), _("Gamma-correct:"));
-                    clonetiler_table_attach (table, l, 1.0, 1, 1);
+                    table_attach (table, l, 1.0, 1, 1);
                 }
                 {
-                    GtkWidget *l = clonetiler_spinbox (_("Shift the mid-range of the picked value upwards (>0) or downwards (<0)"), "gamma_picked",
+                    GtkWidget *l = spinbox (_("Shift the mid-range of the picked value upwards (>0) or downwards (<0)"), "gamma_picked",
                                                        -10, 10, "");
-                    clonetiler_table_attach (table, l, 0.0, 1, 2);
+                    table_attach (table, l, 0.0, 1, 2);
                 }
 
                 {
                     GtkWidget *l = gtk_label_new ("");
                     gtk_label_set_markup (GTK_LABEL(l), _("Randomize:"));
-                    clonetiler_table_attach (table, l, 1.0, 1, 3);
+                    table_attach (table, l, 1.0, 1, 3);
                 }
                 {
-                    GtkWidget *l = clonetiler_spinbox (_("Randomize the picked value by this percentage"), "rand_picked",
+                    GtkWidget *l = spinbox (_("Randomize the picked value by this percentage"), "rand_picked",
                                                        0, 100, "%");
-                    clonetiler_table_attach (table, l, 0.0, 1, 4);
+                    table_attach (table, l, 0.0, 1, 4);
                 }
 
                 {
                     GtkWidget *l = gtk_label_new ("");
                     gtk_label_set_markup (GTK_LABEL(l), _("Invert:"));
-                    clonetiler_table_attach (table, l, 1.0, 2, 1);
+                    table_attach (table, l, 1.0, 2, 1);
                 }
                 {
-                    GtkWidget *l = clonetiler_checkbox (_("Invert the picked value"), "invert_picked");
-                    clonetiler_table_attach (table, l, 0.0, 2, 2);
+                    GtkWidget *l = checkbox (_("Invert the picked value"), "invert_picked");
+                    table_attach (table, l, 0.0, 2, 2);
                 }
             }
 
@@ -910,9 +910,9 @@ CloneTiler::CloneTiler () :
                     bool old = prefs->getBool(prefs_path + "pick_to_presence", true);
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_widget_set_tooltip_text (b, _("Each clone is created with the probability determined by the picked value in that point"));
-                    clonetiler_table_attach (table, b, 0.0, 1, 1);
+                    table_attach (table, b, 0.0, 1, 1);
                     g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(clonetiler_pick_to), (gpointer) "pick_to_presence");
+                                       G_CALLBACK(pick_to), (gpointer) "pick_to_presence");
                 }
 
                 {
@@ -920,9 +920,9 @@ CloneTiler::CloneTiler () :
                     bool old = prefs->getBool(prefs_path + "pick_to_size");
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_widget_set_tooltip_text (b, _("Each clone's size is determined by the picked value in that point"));
-                    clonetiler_table_attach (table, b, 0.0, 2, 1);
+                    table_attach (table, b, 0.0, 2, 1);
                     g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(clonetiler_pick_to), (gpointer) "pick_to_size");
+                                       G_CALLBACK(pick_to), (gpointer) "pick_to_size");
                 }
 
                 {
@@ -930,9 +930,9 @@ CloneTiler::CloneTiler () :
                     bool old = prefs->getBool(prefs_path + "pick_to_color", 0);
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_widget_set_tooltip_text (b, _("Each clone is painted by the picked color (the original must have unset fill or stroke)"));
-                    clonetiler_table_attach (table, b, 0.0, 1, 2);
+                    table_attach (table, b, 0.0, 1, 2);
                     g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(clonetiler_pick_to), (gpointer) "pick_to_color");
+                                       G_CALLBACK(pick_to), (gpointer) "pick_to_color");
                 }
 
                 {
@@ -940,9 +940,9 @@ CloneTiler::CloneTiler () :
                     bool old = prefs->getBool(prefs_path + "pick_to_opacity", 0);
                     gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
                     gtk_widget_set_tooltip_text (b, _("Each clone's opacity is determined by the picked value in that point"));
-                    clonetiler_table_attach (table, b, 0.0, 2, 2);
+                    table_attach (table, b, 0.0, 2, 2);
                     g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(clonetiler_pick_to), (gpointer) "pick_to_opacity");
+                                       G_CALLBACK(pick_to), (gpointer) "pick_to_opacity");
                 }
             }
            gtk_widget_set_sensitive (vvb, prefs->getBool(prefs_path + "dotrace"));
@@ -983,7 +983,7 @@ CloneTiler::CloneTiler () :
 
                     // TODO: C++ification
                     g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
-                                       G_CALLBACK(clonetiler_xy_changed), (gpointer) "jmax");
+                                       G_CALLBACK(xy_changed), (gpointer) "jmax");
                 }
 
                 {
@@ -1005,10 +1005,10 @@ CloneTiler::CloneTiler () :
 
                     // TODO: C++ification
                     g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
-                                       G_CALLBACK(clonetiler_xy_changed), (gpointer) "imax");
+                                       G_CALLBACK(xy_changed), (gpointer) "imax");
                 }
 
-                clonetiler_table_attach (table, hb, 0.0, 1, 2);
+                table_attach (table, hb, 0.0, 1, 2);
             }
 
             {
@@ -1020,7 +1020,7 @@ CloneTiler::CloneTiler () :
                 unit_menu = new Inkscape::UI::Widget::UnitMenu();
                 unit_menu->setUnitType(Inkscape::Util::UNIT_TYPE_LINEAR);
                 unit_menu->setUnit(SP_ACTIVE_DESKTOP->getNamedView()->display_units->abbr);
-                unitChangedConn = unit_menu->signal_changed().connect(sigc::mem_fun(*this, &CloneTiler::clonetiler_unit_changed));
+                unitChangedConn = unit_menu->signal_changed().connect(sigc::mem_fun(*this, &CloneTiler::unit_changed));
 
                 {
                     // Width spinbutton
@@ -1038,7 +1038,7 @@ CloneTiler::CloneTiler () :
                     gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(e->gobj()), TRUE, TRUE, 0);
                     // TODO: C++ification
 		    g_signal_connect(G_OBJECT(fill_width->gobj()), "value_changed",
-                                       G_CALLBACK(clonetiler_fill_width_changed), unit_menu);
+                                       G_CALLBACK(fill_width_changed), unit_menu);
                 }
                 {
                     GtkWidget *l = gtk_label_new ("");
@@ -1063,11 +1063,11 @@ CloneTiler::CloneTiler () :
                     gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(e->gobj()), TRUE, TRUE, 0);
                     // TODO: C++ification
             g_signal_connect(G_OBJECT(fill_height->gobj()), "value_changed",
-                                       G_CALLBACK(clonetiler_fill_height_changed), unit_menu);
+                                       G_CALLBACK(fill_height_changed), unit_menu);
                 }
 
                 gtk_box_pack_start (GTK_BOX (hb), (GtkWidget*) unit_menu->gobj(), TRUE, TRUE, 0);
-                clonetiler_table_attach (table, hb, 0.0, 2, 2);
+                table_attach (table, hb, 0.0, 2, 2);
 
             }
 
@@ -1076,8 +1076,8 @@ CloneTiler::CloneTiler () :
             {
                 radio = gtk_radio_button_new_with_label (NULL, _("Rows, columns: "));
                 gtk_widget_set_tooltip_text (radio, _("Create the specified number of rows and columns"));
-                clonetiler_table_attach (table, radio, 0.0, 1, 1);
-                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (clonetiler_switch_to_create), (gpointer) this);
+                table_attach (table, radio, 0.0, 1, 1);
+                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (switch_to_create), (gpointer) this);
             }
             if (!prefs->getBool(prefs_path + "fillrect")) {
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
@@ -1086,8 +1086,8 @@ CloneTiler::CloneTiler () :
             {
                 radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Width, height: "));
                 gtk_widget_set_tooltip_text (radio, _("Fill the specified width and height with the tiling"));
-                clonetiler_table_attach (table, radio, 0.0, 2, 1);
-                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (clonetiler_switch_to_fill), (gpointer) this);
+                table_attach (table, radio, 0.0, 2, 1);
+                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (switch_to_fill), (gpointer) this);
             }
             if (prefs->getBool(prefs_path + "fillrect")) {
                 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
@@ -1109,7 +1109,7 @@ CloneTiler::CloneTiler () :
             gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
 
             g_signal_connect(G_OBJECT(b), "toggled",
-                               G_CALLBACK(clonetiler_keep_bbox_toggled), NULL);
+                               G_CALLBACK(keep_bbox_toggled), NULL);
         }
 
         // Statusbar
@@ -1151,7 +1151,7 @@ CloneTiler::CloneTiler () :
                     //  So unclumping is the process of spreading a number of objects out more evenly.
                     GtkWidget *b = gtk_button_new_with_mnemonic (_(" _Unclump "));
                     gtk_widget_set_tooltip_text (b, _("Spread out clones to reduce clumping; can be applied repeatedly"));
-                    g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (clonetiler_unclump), NULL);
+                    g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (unclump), NULL);
                     gtk_box_pack_end (GTK_BOX (sb), b, FALSE, FALSE, 0);
                 }
 
@@ -1175,7 +1175,7 @@ CloneTiler::CloneTiler () :
                 GtkWidget *b = gtk_button_new_with_mnemonic (_(" R_eset "));
                 // TRANSLATORS: "change" is a noun here
                 gtk_widget_set_tooltip_text (b, _("Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"));
-                g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (clonetiler_reset), this);
+                g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (reset), this);
                 gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
             }
         }
@@ -1244,7 +1244,7 @@ void CloneTiler::change_selection(Inkscape::Selection *selection)
         return;
     }
 
-    guint n = clonetiler_number_of_clones(selection->singleItem());
+    guint n = number_of_clones(selection->singleItem());
     if (n > 0) {
         gtk_widget_set_sensitive (_buttons_on_tiles, TRUE);
         gchar *sta = g_strdup_printf (_("Object has %d tiled clones."), n);
@@ -1261,7 +1261,7 @@ void CloneTiler::external_change()
     change_selection(SP_ACTIVE_DESKTOP->getSelection());
 }
 
-Geom::Affine CloneTiler::clonetiler_get_transform(
+Geom::Affine CloneTiler::get_transform(
     // symmetry group
     int type,
 
@@ -1863,7 +1863,7 @@ Geom::Affine CloneTiler::clonetiler_get_transform(
     return Geom::identity();
 }
 
-bool CloneTiler::clonetiler_is_a_clone_of(SPObject *tile, SPObject *obj)
+bool CloneTiler::is_a_clone_of(SPObject *tile, SPObject *obj)
 {
     bool result = false;
     char *id_href = NULL;
@@ -1890,21 +1890,21 @@ bool CloneTiler::clonetiler_is_a_clone_of(SPObject *tile, SPObject *obj)
     return result;
 }
 
-void CloneTiler::clonetiler_trace_hide_tiled_clones_recursively(SPObject *from)
+void CloneTiler::trace_hide_tiled_clones_recursively(SPObject *from)
 {
     if (!trace_drawing)
         return;
 
     for (auto& o: from->children) {
         SPItem *item = dynamic_cast(&o);
-        if (item && clonetiler_is_a_clone_of(&o, NULL)) {
+        if (item && is_a_clone_of(&o, NULL)) {
             item->invoke_hide(trace_visionkey); // FIXME: hide each tiled clone's original too!
         }
-        clonetiler_trace_hide_tiled_clones_recursively (&o);
+        trace_hide_tiled_clones_recursively (&o);
     }
 }
 
-void CloneTiler::clonetiler_trace_setup(SPDocument *doc, gdouble zoom, SPItem *original)
+void CloneTiler::trace_setup(SPDocument *doc, gdouble zoom, SPItem *original)
 {
     trace_drawing = new Inkscape::Drawing();
     /* Create ArenaItem and set transform */
@@ -1914,7 +1914,7 @@ void CloneTiler::clonetiler_trace_setup(SPDocument *doc, gdouble zoom, SPItem *o
 
     // hide the (current) original and any tiled clones, we only want to pick the background
     original->invoke_hide(trace_visionkey);
-    clonetiler_trace_hide_tiled_clones_recursively(trace_doc->getRoot());
+    trace_hide_tiled_clones_recursively(trace_doc->getRoot());
 
     trace_doc->getRoot()->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
     trace_doc->ensureUpToDate();
@@ -1922,7 +1922,7 @@ void CloneTiler::clonetiler_trace_setup(SPDocument *doc, gdouble zoom, SPItem *o
     trace_zoom = zoom;
 }
 
-guint32 CloneTiler::clonetiler_trace_pick(Geom::Rect box)
+guint32 CloneTiler::trace_pick(Geom::Rect box)
 {
     if (!trace_drawing) {
         return 0;
@@ -1946,7 +1946,7 @@ guint32 CloneTiler::clonetiler_trace_pick(Geom::Rect box)
     return SP_RGBA32_F_COMPOSE (R, G, B, A);
 }
 
-void CloneTiler::clonetiler_trace_finish()
+void CloneTiler::trace_finish()
 {
     if (trace_doc) {
         trace_doc->getRoot()->invoke_hide(trace_visionkey);
@@ -1956,7 +1956,7 @@ void CloneTiler::clonetiler_trace_finish()
     }
 }
 
-void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *)
+void CloneTiler::unclump(GtkWidget */*widget*/, void *)
 {
     SPDesktop *desktop = SP_ACTIVE_DESKTOP;
     if (desktop == NULL) {
@@ -1977,27 +1977,27 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *)
     std::vector to_unclump; // not including the original
 
     for (auto& child: parent->children) {
-        if (clonetiler_is_a_clone_of (&child, obj)) {
+        if (is_a_clone_of (&child, obj)) {
             to_unclump.push_back((SPItem*)&child);
         }
     }
 
     desktop->getDocument()->ensureUpToDate();
     reverse(to_unclump.begin(),to_unclump.end());
-    unclump (to_unclump);
+    ::unclump (to_unclump);
 
     DocumentUndo::done(desktop->getDocument(), SP_VERB_DIALOG_CLONETILER,
                        _("Unclump tiled clones"));
 }
 
-guint CloneTiler::clonetiler_number_of_clones(SPObject *obj)
+guint CloneTiler::number_of_clones(SPObject *obj)
 {
     SPObject *parent = obj->parent;
 
     guint n = 0;
 
     for (auto& child: parent->children) {
-        if (clonetiler_is_a_clone_of (&child, obj)) {
+        if (is_a_clone_of (&child, obj)) {
             n ++;
         }
     }
@@ -2026,7 +2026,7 @@ void CloneTiler::remove(bool do_undo/* = true*/)
 // remove old tiling
     GSList *to_delete = NULL;
     for (auto& child: parent->children) {
-        if (clonetiler_is_a_clone_of (&child, obj)) {
+        if (is_a_clone_of (&child, obj)) {
             to_delete = g_slist_prepend (to_delete, &child);
         }
     }
@@ -2205,7 +2205,7 @@ void CloneTiler::apply()
 
     SPItem *item = dynamic_cast(obj);
     if (dotrace) {
-        clonetiler_trace_setup (desktop->getDocument(), 1.0, item);
+        trace_setup (desktop->getDocument(), 1.0, item);
     }
 
     Geom::Point center;
@@ -2277,7 +2277,7 @@ void CloneTiler::apply()
             // Note: We create a clone at 0,0 too, right over the original, in case our clones are colored
 
             // Get transform from symmetry, shift, scale, rotation
-            Geom::Affine orig_t = clonetiler_get_transform (type, i, j, center[Geom::X], center[Geom::Y], w, h,
+            Geom::Affine orig_t = get_transform (type, i, j, center[Geom::X], center[Geom::Y], w, h,
                                                        shiftx_per_i,     shifty_per_i,
                                                        shiftx_per_j,     shifty_per_j,
                                                        shiftx_rand,      shifty_rand,
@@ -2351,7 +2351,7 @@ void CloneTiler::apply()
             if (dotrace) {
                 Geom::Rect bbox_t = transform_rect (bbox_original, t*Geom::Scale(1.0/scale_units));
 
-                guint32 rgba = clonetiler_trace_pick (bbox_t);
+                guint32 rgba = trace_pick (bbox_t);
                 float r = SP_RGBA32_R_F(rgba);
                 float g = SP_RGBA32_G_F(rgba);
                 float b = SP_RGBA32_B_F(rgba);
@@ -2511,7 +2511,7 @@ void CloneTiler::apply()
     }
 
     if (dotrace) {
-        clonetiler_trace_finish ();
+        trace_finish ();
     }
 
     change_selection(selection);
@@ -2522,7 +2522,7 @@ void CloneTiler::apply()
                        _("Create tiled clones"));
 }
 
-GtkWidget * CloneTiler::clonetiler_new_tab(GtkWidget *nb, const gchar *label)
+GtkWidget * CloneTiler::new_tab(GtkWidget *nb, const gchar *label)
 {
     GtkWidget *l = gtk_label_new_with_mnemonic (label);
     auto vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, VB_MARGIN);
@@ -2532,14 +2532,14 @@ GtkWidget * CloneTiler::clonetiler_new_tab(GtkWidget *nb, const gchar *label)
     return vb;
 }
 
-void CloneTiler::clonetiler_checkbox_toggled(GtkToggleButton *tb, gpointer *data)
+void CloneTiler::checkbox_toggled(GtkToggleButton *tb, gpointer *data)
 {
     const gchar *attr = (const gchar *) data;
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     prefs->setBool(prefs_path + attr, gtk_toggle_button_get_active(tb));
 }
 
-GtkWidget * CloneTiler::clonetiler_checkbox(const char *tip, const char *attr)
+GtkWidget * CloneTiler::checkbox(const char *tip, const char *attr)
 {
     auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
     gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
@@ -2553,21 +2553,21 @@ GtkWidget * CloneTiler::clonetiler_checkbox(const char *tip, const char *attr)
 
     gtk_box_pack_end (GTK_BOX (hb), b, FALSE, TRUE, 0);
     g_signal_connect ( G_OBJECT (b), "clicked",
-                         G_CALLBACK (clonetiler_checkbox_toggled), (gpointer) attr);
+                         G_CALLBACK (checkbox_toggled), (gpointer) attr);
 
     g_object_set_data (G_OBJECT(b), "uncheckable", GINT_TO_POINTER(TRUE));
 
     return hb;
 }
 
-void CloneTiler::clonetiler_value_changed(GtkAdjustment *adj, gpointer data)
+void CloneTiler::value_changed(GtkAdjustment *adj, gpointer data)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     const gchar *pref = (const gchar *) data;
     prefs->setDouble(prefs_path + pref, gtk_adjustment_get_value (adj));
 }
 
-GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent/* = false*/)
+GtkWidget * CloneTiler::spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent/* = false*/)
 {
     auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
     gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
@@ -2597,7 +2597,7 @@ GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, do
         a->set_value (value);
         // TODO: C++ification
         g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
-                           G_CALLBACK(clonetiler_value_changed), (gpointer) attr);
+                           G_CALLBACK(value_changed), (gpointer) attr);
 
         if (exponent) {
             sb->set_data ("oneable", GINT_TO_POINTER(TRUE));
@@ -2617,27 +2617,27 @@ GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, do
     return hb;
 }
 
-void CloneTiler::clonetiler_symgroup_changed(GtkComboBox *cb, gpointer /*data*/)
+void CloneTiler::symgroup_changed(GtkComboBox *cb, gpointer /*data*/)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gint group_new = gtk_combo_box_get_active (cb);
     prefs->setInt(prefs_path + "symmetrygroup", group_new);
 }
 
-void CloneTiler::clonetiler_xy_changed(GtkAdjustment *adj, gpointer data)
+void CloneTiler::xy_changed(GtkAdjustment *adj, gpointer data)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     const gchar *pref = (const gchar *) data;
     prefs->setInt(prefs_path + pref, (int) floor(gtk_adjustment_get_value (adj) + 0.5));
 }
 
-void CloneTiler::clonetiler_keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/)
+void CloneTiler::keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     prefs->setBool(prefs_path + "keepbbox", gtk_toggle_button_get_active(tb));
 }
 
-void CloneTiler::clonetiler_pick_to(GtkToggleButton *tb, gpointer data)
+void CloneTiler::pick_to(GtkToggleButton *tb, gpointer data)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     const gchar *pref = (const gchar *) data;
@@ -2645,7 +2645,7 @@ void CloneTiler::clonetiler_pick_to(GtkToggleButton *tb, gpointer data)
 }
 
 
-void CloneTiler::clonetiler_reset_recursive(GtkWidget *w)
+void CloneTiler::reset_recursive(GtkWidget *w)
 {
     if (w && G_IS_OBJECT(w)) {
         {
@@ -2673,25 +2673,25 @@ void CloneTiler::clonetiler_reset_recursive(GtkWidget *w)
     if (GTK_IS_CONTAINER(w)) {
         GList *ch = gtk_container_get_children (GTK_CONTAINER(w));
         for (GList *i = ch; i != NULL; i = i->next) {
-            clonetiler_reset_recursive (GTK_WIDGET(i->data));
+            reset_recursive (GTK_WIDGET(i->data));
         }
         g_list_free (ch);
     }
 }
 
-void CloneTiler::clonetiler_reset(GtkWidget */*widget*/, GtkWidget *dlg)
+void CloneTiler::reset(GtkWidget */*widget*/, GtkWidget *dlg)
 {
-    clonetiler_reset_recursive (dlg);
+    reset_recursive (dlg);
 }
 
-void CloneTiler::clonetiler_table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col)
+void CloneTiler::table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col)
 {
     gtk_widget_set_halign(widget, GTK_ALIGN_FILL);
     gtk_widget_set_valign(widget, GTK_ALIGN_START);
     gtk_grid_attach(GTK_GRID(table), widget, col, row, 1, 1);
 }
 
-GtkWidget * CloneTiler::clonetiler_table_x_y_rand(int values)
+GtkWidget * CloneTiler::table_x_y_rand(int values)
 {
     auto table = gtk_grid_new();
     gtk_grid_set_row_spacing(GTK_GRID(table), 6);
@@ -2710,7 +2710,7 @@ GtkWidget * CloneTiler::clonetiler_table_x_y_rand(int values)
         gtk_label_set_markup (GTK_LABEL(l), _("Per row:"));
         gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 2);
 
-        clonetiler_table_attach (table, hb, 0, 1, 2);
+        table_attach (table, hb, 0, 1, 2);
     }
 
     {
@@ -2724,19 +2724,19 @@ GtkWidget * CloneTiler::clonetiler_table_x_y_rand(int values)
         gtk_label_set_markup (GTK_LABEL(l), _("Per column:"));
         gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 2);
 
-        clonetiler_table_attach (table, hb, 0, 1, 3);
+        table_attach (table, hb, 0, 1, 3);
     }
 
     {
         GtkWidget *l = gtk_label_new ("");
         gtk_label_set_markup (GTK_LABEL(l), _("Randomize:"));
-        clonetiler_table_attach (table, l, 0, 1, 4);
+        table_attach (table, l, 0, 1, 4);
     }
 
     return table;
 }
 
-void CloneTiler::clonetiler_pick_switched(GtkToggleButton */*tb*/, gpointer data)
+void CloneTiler::pick_switched(GtkToggleButton */*tb*/, gpointer data)
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     guint v = GPOINTER_TO_INT (data);
@@ -2744,7 +2744,7 @@ void CloneTiler::clonetiler_pick_switched(GtkToggleButton */*tb*/, gpointer data
 }
 
 
-void CloneTiler::clonetiler_switch_to_create(GtkToggleButton * /*tb*/, GtkWidget *dlg)
+void CloneTiler::switch_to_create(GtkToggleButton * /*tb*/, GtkWidget *dlg)
 {
     GtkWidget *rowscols = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "rowscols"));
     GtkWidget *widthheight = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "widthheight"));
@@ -2761,7 +2761,7 @@ void CloneTiler::clonetiler_switch_to_create(GtkToggleButton * /*tb*/, GtkWidget
 }
 
 
-void CloneTiler::clonetiler_switch_to_fill(GtkToggleButton * /*tb*/, GtkWidget *dlg)
+void CloneTiler::switch_to_fill(GtkToggleButton * /*tb*/, GtkWidget *dlg)
 {
     GtkWidget *rowscols = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "rowscols"));
     GtkWidget *widthheight = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "widthheight"));
@@ -2780,7 +2780,7 @@ void CloneTiler::clonetiler_switch_to_fill(GtkToggleButton * /*tb*/, GtkWidget *
 
 
 
-void CloneTiler::clonetiler_fill_width_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u)
+void CloneTiler::fill_width_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u)
 {
     gdouble const raw_dist = gtk_adjustment_get_value (adj);
     Inkscape::Util::Unit const *unit = u->getUnit();
@@ -2790,7 +2790,7 @@ void CloneTiler::clonetiler_fill_width_changed(GtkAdjustment *adj, Inkscape::UI:
     prefs->setDouble(prefs_path + "fillwidth", pixels);
 }
 
-void CloneTiler::clonetiler_fill_height_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u)
+void CloneTiler::fill_height_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u)
 {
     gdouble const raw_dist = gtk_adjustment_get_value (adj);
     Inkscape::Util::Unit const *unit = u->getUnit();
@@ -2800,7 +2800,7 @@ void CloneTiler::clonetiler_fill_height_changed(GtkAdjustment *adj, Inkscape::UI
     prefs->setDouble(prefs_path + "fillheight", pixels);
 }
 
-void CloneTiler::clonetiler_unit_changed()
+void CloneTiler::unit_changed()
 {
     Inkscape::Preferences *prefs = Inkscape::Preferences::get();
     gdouble width_pixels = prefs->getDouble(prefs_path + "fillwidth");
@@ -2814,22 +2814,23 @@ void CloneTiler::clonetiler_unit_changed()
     gtk_adjustment_set_value(fill_height->gobj(), height_value);
 }
 
-void CloneTiler::clonetiler_do_pick_toggled(GtkToggleButton *tb, GtkWidget *dlg)
+void CloneTiler::do_pick_toggled(Gtk::ToggleButton *tb)
 {
-    GtkWidget *vvb = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "dotrace"));
+    GtkWidget *vvb = GTK_WIDGET(_dotrace);
 
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path + "dotrace", gtk_toggle_button_get_active (tb));
+    auto prefs = Inkscape::Preferences::get();
+    auto active = tb->get_active();
+    prefs->setBool(prefs_path + "dotrace", active);
 
     if (vvb) {
-        gtk_widget_set_sensitive (vvb, gtk_toggle_button_get_active (tb));
+        gtk_widget_set_sensitive (vvb, active);
     }
 }
 
 void CloneTiler::show_page_trace()
 {
     gtk_notebook_set_current_page(GTK_NOTEBOOK(nb),6);
-    gtk_toggle_button_set_active ((GtkToggleButton *) b, false);
+    _b->set_active(false);
 }
 
 
diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h
index 9ad3fa878..e1c8bab35 100644
--- a/src/ui/dialog/clonetiler.h
+++ b/src/ui/dialog/clonetiler.h
@@ -16,6 +16,11 @@
 #include "ui/widget/color-picker.h"
 #include "sp-root.h"
 
+namespace Gtk {
+    class CheckButton;
+    class ToggleButton;
+}
+
 namespace Inkscape {
 namespace UI {
 
@@ -34,45 +39,47 @@ public:
     void show_page_trace();
 protected:
 
-    GtkWidget * clonetiler_new_tab(GtkWidget *nb, const gchar *label);
-    GtkWidget * clonetiler_table_x_y_rand(int values);
-    GtkWidget * clonetiler_spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent = false);
-    GtkWidget * clonetiler_checkbox(const char *tip, const char *attr);
-    void clonetiler_table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col);
+    GtkWidget * new_tab(GtkWidget *nb, const gchar *label);
+    GtkWidget * table_x_y_rand(int values);
+    GtkWidget * spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent = false);
+    GtkWidget * checkbox(const char *tip, const char *attr);
+    void table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col);
 
-    static void clonetiler_symgroup_changed(GtkComboBox *cb, gpointer /*data*/);
+    // TODO: Improve encapsulation by using SigC++ signal handling, and convert all of these into
+    // non-static member functions
+    static void symgroup_changed(GtkComboBox *cb, gpointer /*data*/);
     static void on_picker_color_changed(guint rgba);
-    static void clonetiler_trace_hide_tiled_clones_recursively(SPObject *from);
-    static void clonetiler_checkbox_toggled(GtkToggleButton *tb, gpointer *data);
-    static void clonetiler_pick_switched(GtkToggleButton */*tb*/, gpointer data);
-    static void clonetiler_do_pick_toggled(GtkToggleButton *tb, GtkWidget *dlg);
-    static void clonetiler_pick_to(GtkToggleButton *tb, gpointer data);
-    static void clonetiler_xy_changed(GtkAdjustment *adj, gpointer data);
-    static void clonetiler_fill_width_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u);
-    static void clonetiler_fill_height_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u);
-    void clonetiler_unit_changed();
-    static void clonetiler_switch_to_create(GtkToggleButton */*tb*/, GtkWidget *dlg);
-    static void clonetiler_switch_to_fill(GtkToggleButton */*tb*/, GtkWidget *dlg);
-    static void clonetiler_keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/);
-    static void clonetiler_unclump(GtkWidget */*widget*/, void *);
-    static void clonetiler_reset(GtkWidget */*widget*/, GtkWidget *dlg);
-    static guint clonetiler_number_of_clones(SPObject *obj);
-    static void clonetiler_trace_setup(SPDocument *doc, gdouble zoom, SPItem *original);
-    static guint32 clonetiler_trace_pick(Geom::Rect box);
-    static void clonetiler_trace_finish();
-    static bool clonetiler_is_a_clone_of(SPObject *tile, SPObject *obj);
+    static void trace_hide_tiled_clones_recursively(SPObject *from);
+    static void checkbox_toggled(GtkToggleButton *tb, gpointer *data);
+    static void pick_switched(GtkToggleButton */*tb*/, gpointer data);
+    static void pick_to(GtkToggleButton *tb, gpointer data);
+    static void xy_changed(GtkAdjustment *adj, gpointer data);
+    static void fill_width_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u);
+    static void fill_height_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u);
+    static void switch_to_create(GtkToggleButton */*tb*/, GtkWidget *dlg);
+    static void switch_to_fill(GtkToggleButton */*tb*/, GtkWidget *dlg);
+    static void keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/);
+    static void unclump(GtkWidget */*widget*/, void *);
+    static void reset(GtkWidget */*widget*/, GtkWidget *dlg);
+    static guint number_of_clones(SPObject *obj);
+    static void trace_setup(SPDocument *doc, gdouble zoom, SPItem *original);
+    static guint32 trace_pick(Geom::Rect box);
+    static void trace_finish();
+    static bool is_a_clone_of(SPObject *tile, SPObject *obj);
     static Geom::Rect transform_rect(Geom::Rect const &r, Geom::Affine const &m);
     static double randomize01(double val, double rand);
-    static void clonetiler_value_changed(GtkAdjustment *adj, gpointer data);
-    static void clonetiler_reset_recursive(GtkWidget *w);
+    static void value_changed(GtkAdjustment *adj, gpointer data);
+    static void reset_recursive(GtkWidget *w);
 
     void apply();
     void change_selection(Inkscape::Selection *selection);
+    void do_pick_toggled(Gtk::ToggleButton *tb);
     void external_change();
     void remove(bool do_undo = true);
     void on_remove_button_clicked() {remove();}
+    void unit_changed();
 
-    static Geom::Affine clonetiler_get_transform(    // symmetry group
+    static Geom::Affine get_transform(    // symmetry group
             int type,
 
             // row, column
@@ -113,8 +120,8 @@ private:
     CloneTiler(CloneTiler const &d);
     CloneTiler& operator=(CloneTiler const &d);
 
+    Gtk::CheckButton *_b;
     GtkWidget *nb;
-    GtkWidget *b;
     SPDesktop *desktop;
     DesktopTracker deskTrack;
     Inkscape::UI::Widget::ColorPicker *color_picker;
-- 
cgit v1.2.3


From 93a6d057d8b8dac9e4d81d84511dbae60a958788 Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Fri, 12 Aug 2016 00:31:53 +0100
Subject: CloneTiler: Further C++ification

(bzr r15052)
---
 src/ui/dialog/clonetiler.cpp | 177 +++++++++++++++++++------------------------
 src/ui/dialog/clonetiler.h   |  17 +++--
 2 files changed, 88 insertions(+), 106 deletions(-)

diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index 8bd5cd5f6..a9bec8227 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -25,6 +25,7 @@
 
 #include 
 #include 
+#include 
 
 #include "desktop.h"
 
@@ -766,7 +767,7 @@ CloneTiler::CloneTiler () :
             _b->set_active(old);
             _b->set_tooltip_text(_("For each clone/sprayed item, pick a value from the drawing in its location and apply it"));
             gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(_b->gobj()), FALSE, FALSE, 0);
-            _b->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::do_pick_toggled),_b));
+            _b->signal_toggled().connect(sigc::mem_fun(*this, &CloneTiler::do_pick_toggled));
         }
 
         {
@@ -967,9 +968,7 @@ CloneTiler::CloneTiler () :
             gtk_box_pack_start (GTK_BOX (mainbox), table, FALSE, FALSE, 0);
 
             {
-                auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
-                gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-                _rowscols = hb;
+                _rowscols = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, VB_MARGIN));
 
                 {
                     auto a = Gtk::Adjustment::create(0.0, 1, 500, 1, 10, 0);
@@ -979,7 +978,7 @@ CloneTiler::CloneTiler () :
                     auto sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0);
                     sb->set_tooltip_text (_("How many rows in the tiling"));
                     sb->set_width_chars (7);
-                    gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(sb->gobj()), TRUE, TRUE, 0);
+                    _rowscols->pack_start(*sb, true, true, 0);
 
                     // TODO: C++ification
                     g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
@@ -987,10 +986,10 @@ CloneTiler::CloneTiler () :
                 }
 
                 {
-                    GtkWidget *l = gtk_label_new ("");
-                    gtk_label_set_markup (GTK_LABEL(l), "×");
-                    gtk_widget_set_halign(l, GTK_ALIGN_END);
-                    gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0);
+                    auto l = Gtk::manage(new Gtk::Label(""));
+                    l->set_markup("×");
+                    l->set_halign(Gtk::ALIGN_END);
+                    _rowscols->pack_start(*l, true, true, 0);
                 }
 
                 {
@@ -1001,20 +1000,18 @@ CloneTiler::CloneTiler () :
                     auto sb = new Inkscape::UI::Widget::SpinButton(a, 1.0, 0);
                     sb->set_tooltip_text (_("How many columns in the tiling"));
                     sb->set_width_chars (7);
-                    gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(sb->gobj()), TRUE, TRUE, 0);
+                    _rowscols->pack_start(*sb, true, true, 0);
 
                     // TODO: C++ification
                     g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
                                        G_CALLBACK(xy_changed), (gpointer) "imax");
                 }
 
-                table_attach (table, hb, 0.0, 1, 2);
+                table_attach (table, GTK_WIDGET(_rowscols->gobj()), 0.0, 1, 2);
             }
 
             {
-                auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
-                gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-                _widthheight = hb;
+                _widthheight = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, VB_MARGIN));
 
                 // unitmenu
                 unit_menu = new Inkscape::UI::Widget::UnitMenu();
@@ -1035,16 +1032,14 @@ CloneTiler::CloneTiler () :
                     e->set_tooltip_text (_("Width of the rectangle to be filled"));
                     e->set_width_chars (7);
                     e->set_digits (4);
-                    gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(e->gobj()), TRUE, TRUE, 0);
-                    // TODO: C++ification
-		    g_signal_connect(G_OBJECT(fill_width->gobj()), "value_changed",
-                                       G_CALLBACK(fill_width_changed), unit_menu);
+                    _widthheight->pack_start(*e, true, true, 0);
+                    fill_width->signal_value_changed().connect(sigc::mem_fun(*this, &CloneTiler::fill_width_changed));
                 }
                 {
-                    GtkWidget *l = gtk_label_new ("");
-                    gtk_label_set_markup (GTK_LABEL(l), "×");
-                    gtk_widget_set_halign(l, GTK_ALIGN_END);
-                    gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0);
+                    auto l = Gtk::manage(new Gtk::Label(""));
+                    l->set_markup("×");
+                    l->set_halign(Gtk::ALIGN_END);
+                    _widthheight->pack_start(*l, true, true, 0);
                 }
 
                 {
@@ -1060,56 +1055,53 @@ CloneTiler::CloneTiler () :
                     e->set_tooltip_text (_("Height of the rectangle to be filled"));
                     e->set_width_chars (7);
                     e->set_digits (4);
-                    gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(e->gobj()), TRUE, TRUE, 0);
-                    // TODO: C++ification
-            g_signal_connect(G_OBJECT(fill_height->gobj()), "value_changed",
-                                       G_CALLBACK(fill_height_changed), unit_menu);
+                    _widthheight->pack_start(*e, true, true, 0);
+                    fill_height->signal_value_changed().connect(sigc::mem_fun(*this, &CloneTiler::fill_height_changed));
                 }
 
-                gtk_box_pack_start (GTK_BOX (hb), (GtkWidget*) unit_menu->gobj(), TRUE, TRUE, 0);
-                table_attach (table, hb, 0.0, 2, 2);
+                _widthheight->pack_start(*unit_menu, true, true, 0);
+                table_attach (table, GTK_WIDGET(_widthheight->gobj()), 0.0, 2, 2);
 
             }
 
             // Switch
-            GtkWidget* radio;
+            Gtk::RadioButtonGroup rb_group;
             {
-                radio = gtk_radio_button_new_with_label (NULL, _("Rows, columns: "));
-                gtk_widget_set_tooltip_text (radio, _("Create the specified number of rows and columns"));
-                table_attach (table, radio, 0.0, 1, 1);
-                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (switch_to_create), (gpointer) this);
-            }
-            if (!prefs->getBool(prefs_path + "fillrect")) {
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
-                gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (radio));
+                auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, _("Rows, columns: ")));
+                radio->set_tooltip_text(_("Create the specified number of rows and columns"));
+                table_attach (table, GTK_WIDGET(radio->gobj()), 0.0, 1, 1);
+                radio->signal_toggled().connect(sigc::mem_fun(*this, &CloneTiler::switch_to_create));
+
+                if (!prefs->getBool(prefs_path + "fillrect")) {
+                    radio->set_active(true);
+                }
             }
             {
-                radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Width, height: "));
-                gtk_widget_set_tooltip_text (radio, _("Fill the specified width and height with the tiling"));
-                table_attach (table, radio, 0.0, 2, 1);
-                g_signal_connect (G_OBJECT (radio), "toggled", G_CALLBACK (switch_to_fill), (gpointer) this);
-            }
-            if (prefs->getBool(prefs_path + "fillrect")) {
-                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
-                gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (radio));
+                auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, _("Width, height: ")));
+                radio->set_tooltip_text(_("Fill the specified width and height with the tiling"));
+                table_attach (table, GTK_WIDGET(radio->gobj()), 0.0, 2, 1);
+                radio->signal_toggled().connect(sigc::mem_fun(*this, &CloneTiler::switch_to_fill));
+            
+                if (prefs->getBool(prefs_path + "fillrect")) {
+                    radio->set_active(true);
+                }
             }
         }
 
 
         // Use saved pos
         {
-            auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
-            gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-            gtk_box_pack_start (GTK_BOX (mainbox), hb, FALSE, FALSE, 0);
-
-            GtkWidget *b  = gtk_check_button_new_with_label (_("Use saved size and position of the tile"));
-            bool keepbbox = prefs->getBool(prefs_path + "keepbbox", true);
-            gtk_toggle_button_set_active ((GtkToggleButton *) b, keepbbox);
-            gtk_widget_set_tooltip_text (b, _("Pretend that the size and position of the tile are the same as the last time you tiled it (if any), instead of using the current size"));
-            gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
-
-            g_signal_connect(G_OBJECT(b), "toggled",
-                               G_CALLBACK(keep_bbox_toggled), NULL);
+            auto hb = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, VB_MARGIN));
+            gtk_box_pack_start (GTK_BOX (mainbox), GTK_WIDGET(hb->gobj()), FALSE, FALSE, 0);
+
+            _cb_keep_bbox = Gtk::manage(new Gtk::CheckButton(_("Use saved size and position of the tile")));
+            auto keepbbox = prefs->getBool(prefs_path + "keepbbox", true);
+            _cb_keep_bbox->set_active(keepbbox);
+            _cb_keep_bbox->set_tooltip_text(_("Pretend that the size and position of the tile are the same "
+                                              "as the last time you tiled it (if any), instead of using the "
+                                              "current size"));
+            hb->pack_start(*_cb_keep_bbox, false, false, 0);
+            _cb_keep_bbox->signal_toggled().connect(sigc::mem_fun(*this, &CloneTiler::keep_bbox_toggled));
         }
 
         // Statusbar
@@ -2631,10 +2623,10 @@ void CloneTiler::xy_changed(GtkAdjustment *adj, gpointer data)
     prefs->setInt(prefs_path + pref, (int) floor(gtk_adjustment_get_value (adj) + 0.5));
 }
 
-void CloneTiler::keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/)
+void CloneTiler::keep_bbox_toggled()
 {
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path + "keepbbox", gtk_toggle_button_get_active(tb));
+    auto prefs = Inkscape::Preferences::get();
+    prefs->setBool(prefs_path + "keepbbox", _cb_keep_bbox->get_active());
 }
 
 void CloneTiler::pick_to(GtkToggleButton *tb, gpointer data)
@@ -2744,59 +2736,50 @@ void CloneTiler::pick_switched(GtkToggleButton */*tb*/, gpointer data)
 }
 
 
-void CloneTiler::switch_to_create(GtkToggleButton * /*tb*/, GtkWidget *dlg)
+void CloneTiler::switch_to_create()
 {
-    GtkWidget *rowscols = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "rowscols"));
-    GtkWidget *widthheight = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "widthheight"));
-
-    if (rowscols) {
-        gtk_widget_set_sensitive (rowscols, TRUE);
+    if (_rowscols) {
+        _rowscols->set_sensitive(true);
     }
-    if (widthheight) {
-        gtk_widget_set_sensitive (widthheight, FALSE);
+    if (_widthheight) {
+        _widthheight->set_sensitive(false);
     }
 
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    auto prefs = Inkscape::Preferences::get();
     prefs->setBool(prefs_path + "fillrect", false);
 }
 
 
-void CloneTiler::switch_to_fill(GtkToggleButton * /*tb*/, GtkWidget *dlg)
+void CloneTiler::switch_to_fill()
 {
-    GtkWidget *rowscols = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "rowscols"));
-    GtkWidget *widthheight = GTK_WIDGET(g_object_get_data (G_OBJECT(dlg), "widthheight"));
-
-    if (rowscols) {
-        gtk_widget_set_sensitive (rowscols, FALSE);
+    if (_rowscols) {
+        _rowscols->set_sensitive(false);
     }
-    if (widthheight) {
-        gtk_widget_set_sensitive (widthheight, TRUE);
+    if (_widthheight) {
+        _widthheight->set_sensitive(true);
     }
 
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    auto prefs = Inkscape::Preferences::get();
     prefs->setBool(prefs_path + "fillrect", true);
 }
 
-
-
-
-void CloneTiler::fill_width_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u)
+void CloneTiler::fill_width_changed()
 {
-    gdouble const raw_dist = gtk_adjustment_get_value (adj);
-    Inkscape::Util::Unit const *unit = u->getUnit();
-    gdouble const pixels = Inkscape::Util::Quantity::convert(raw_dist, unit, "px");
+    auto const raw_dist = fill_width->get_value();
+    auto const unit     = unit_menu->getUnit();
+    auto const pixels   = Inkscape::Util::Quantity::convert(raw_dist, unit, "px");
 
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    auto prefs = Inkscape::Preferences::get();
     prefs->setDouble(prefs_path + "fillwidth", pixels);
 }
 
-void CloneTiler::fill_height_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u)
+void CloneTiler::fill_height_changed()
 {
-    gdouble const raw_dist = gtk_adjustment_get_value (adj);
-    Inkscape::Util::Unit const *unit = u->getUnit();
-    gdouble const pixels = Inkscape::Util::Quantity::convert(raw_dist, unit, "px");
+    auto const raw_dist = fill_height->get_value();
+    auto const unit     = unit_menu->getUnit();
+    auto const pixels   = Inkscape::Util::Quantity::convert(raw_dist, unit, "px");
 
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+    auto prefs = Inkscape::Preferences::get();
     prefs->setDouble(prefs_path + "fillheight", pixels);
 }
 
@@ -2814,16 +2797,14 @@ void CloneTiler::unit_changed()
     gtk_adjustment_set_value(fill_height->gobj(), height_value);
 }
 
-void CloneTiler::do_pick_toggled(Gtk::ToggleButton *tb)
+void CloneTiler::do_pick_toggled()
 {
-    GtkWidget *vvb = GTK_WIDGET(_dotrace);
-
-    auto prefs = Inkscape::Preferences::get();
-    auto active = tb->get_active();
+    auto prefs  = Inkscape::Preferences::get();
+    auto active = _b->get_active();
     prefs->setBool(prefs_path + "dotrace", active);
 
-    if (vvb) {
-        gtk_widget_set_sensitive (vvb, active);
+    if (_dotrace) {
+        gtk_widget_set_sensitive (_dotrace, active);
     }
 }
 
diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h
index e1c8bab35..70a22d3d0 100644
--- a/src/ui/dialog/clonetiler.h
+++ b/src/ui/dialog/clonetiler.h
@@ -54,11 +54,9 @@ protected:
     static void pick_switched(GtkToggleButton */*tb*/, gpointer data);
     static void pick_to(GtkToggleButton *tb, gpointer data);
     static void xy_changed(GtkAdjustment *adj, gpointer data);
-    static void fill_width_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u);
-    static void fill_height_changed(GtkAdjustment *adj, Inkscape::UI::Widget::UnitMenu *u);
-    static void switch_to_create(GtkToggleButton */*tb*/, GtkWidget *dlg);
-    static void switch_to_fill(GtkToggleButton */*tb*/, GtkWidget *dlg);
-    static void keep_bbox_toggled(GtkToggleButton *tb, gpointer /*data*/);
+    void switch_to_create();
+    void switch_to_fill();
+    void keep_bbox_toggled();
     static void unclump(GtkWidget */*widget*/, void *);
     static void reset(GtkWidget */*widget*/, GtkWidget *dlg);
     static guint number_of_clones(SPObject *obj);
@@ -73,8 +71,10 @@ protected:
 
     void apply();
     void change_selection(Inkscape::Selection *selection);
-    void do_pick_toggled(Gtk::ToggleButton *tb);
+    void do_pick_toggled();
     void external_change();
+    void fill_width_changed();
+    void fill_height_changed();
     void remove(bool do_undo = true);
     void on_remove_button_clicked() {remove();}
     void unit_changed();
@@ -121,6 +121,7 @@ private:
     CloneTiler& operator=(CloneTiler const &d);
 
     Gtk::CheckButton *_b;
+    Gtk::CheckButton *_cb_keep_bbox;
     GtkWidget *nb;
     SPDesktop *desktop;
     DesktopTracker deskTrack;
@@ -153,8 +154,8 @@ private:
     GtkWidget *_buttons_on_tiles;
     GtkWidget *_dotrace;
     GtkWidget *_status;
-    GtkWidget *_rowscols;
-    GtkWidget *_widthheight;
+    Gtk::Box *_rowscols;
+    Gtk::Box *_widthheight;
 };
 
 
-- 
cgit v1.2.3


From ded71e7f2330ae5abbb0b09e12f89a8fefc2820a Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Fri, 12 Aug 2016 00:45:47 +0100
Subject: CloneTiler: Further C++ification

(bzr r15053)
---
 src/ui/dialog/clonetiler.cpp | 18 +++++++++---------
 src/ui/dialog/clonetiler.h   |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index a9bec8227..c27d5d35a 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -1141,10 +1141,10 @@ CloneTiler::CloneTiler () :
                     //  diagrams on the left in the following screenshot:
                     //  http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png
                     //  So unclumping is the process of spreading a number of objects out more evenly.
-                    GtkWidget *b = gtk_button_new_with_mnemonic (_(" _Unclump "));
-                    gtk_widget_set_tooltip_text (b, _("Spread out clones to reduce clumping; can be applied repeatedly"));
-                    g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (unclump), NULL);
-                    gtk_box_pack_end (GTK_BOX (sb), b, FALSE, FALSE, 0);
+                    auto b = Gtk::manage(new Gtk::Button(_(" _Unclump "), true));
+                    b->set_tooltip_text(_("Spread out clones to reduce clumping; can be applied repeatedly"));
+                    b->signal_clicked().connect(sigc::mem_fun(*this, &CloneTiler::unclump));
+                    gtk_box_pack_end (GTK_BOX (sb), GTK_WIDGET(b->gobj()), FALSE, FALSE, 0);
                 }
 
                 {
@@ -1948,14 +1948,14 @@ void CloneTiler::trace_finish()
     }
 }
 
-void CloneTiler::unclump(GtkWidget */*widget*/, void *)
+void CloneTiler::unclump()
 {
-    SPDesktop *desktop = SP_ACTIVE_DESKTOP;
+    auto desktop = SP_ACTIVE_DESKTOP;
     if (desktop == NULL) {
         return;
     }
 
-    Inkscape::Selection *selection = desktop->getSelection();
+    auto selection = desktop->getSelection();
 
     // check if something is selected
     if (selection->isEmpty() || boost::distance(selection->items()) > 1) {
@@ -1963,8 +1963,8 @@ void CloneTiler::unclump(GtkWidget */*widget*/, void *)
         return;
     }
 
-    SPObject *obj = selection->singleItem();
-    SPObject *parent = obj->parent;
+    auto obj = selection->singleItem();
+    auto parent = obj->parent;
 
     std::vector to_unclump; // not including the original
 
diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h
index 70a22d3d0..04f676800 100644
--- a/src/ui/dialog/clonetiler.h
+++ b/src/ui/dialog/clonetiler.h
@@ -57,7 +57,7 @@ protected:
     void switch_to_create();
     void switch_to_fill();
     void keep_bbox_toggled();
-    static void unclump(GtkWidget */*widget*/, void *);
+    void unclump();
     static void reset(GtkWidget */*widget*/, GtkWidget *dlg);
     static guint number_of_clones(SPObject *obj);
     static void trace_setup(SPDocument *doc, gdouble zoom, SPItem *original);
-- 
cgit v1.2.3


From 547e60aa793646e7fa7af194427186dcaceb5c4c Mon Sep 17 00:00:00 2001
From: Ted Gould 
Date: Fri, 12 Aug 2016 00:19:50 -0500
Subject: Switch over to GTK3

(bzr r14950.1.21)
---
 .snapcraft.yaml | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/.snapcraft.yaml b/.snapcraft.yaml
index 18fe6ed3c..16cac0c31 100644
--- a/.snapcraft.yaml
+++ b/.snapcraft.yaml
@@ -1,5 +1,5 @@
 name: inkscape
-version: 0.91+devel
+version: 0.92+devel
 summary: Vector Graphics Editor
 description: |
  An Open Source vector graphics editor, with capabilities similar to
@@ -13,7 +13,7 @@ description: |
  
  We also aim to maintain a thriving user and developer community by using
  open, community-oriented development.
-confinement: devmode # use "strict" to enforce system access only via declared interfaces
+confinement: strict
 
 parts:
   inkscape:
@@ -28,11 +28,12 @@ parts:
       - libboost-dev
       - libcdr-dev
       - libgc-dev
+      - libgdl-3-dev
       - libglib2.0-dev
       - libgnomevfs2-dev
       - libgsl-dev
-      - libgtk2.0-dev
-      - libgtkmm-2.4-dev
+      - libgtk-3-dev
+      - libgtkmm-3.0-dev
       - libgtkspell-dev
       - liblcms2-dev
       - libmagick++-dev
@@ -41,6 +42,7 @@ parts:
       - libpoppler-glib-dev
       - libpoppler-private-dev
       - libpopt-dev
+      - libpotrace-dev
       - librevenge-dev
       - libsigc++-2.0-dev
       - libtool
@@ -83,11 +85,9 @@ parts:
       - libxml-xql-perl
       - python-uniconvertor
       - ruby
-    stage:
-      - -usr/sbin/update-icon-caches
     snap:
       - -lib/inkscape/*.a
-    after: [desktop/gtk2]
+    after: [desktop/gtk3]
   snapcraft-wrapper:
     plugin: copy
     files:
-- 
cgit v1.2.3


From dffaf2ab2ab1cd1ca21c0ff9e9cc9f077faf17f1 Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Fri, 12 Aug 2016 21:10:12 +0100
Subject: CloneTiler: Replace all remaining g_signal usage

(bzr r15055)
---
 src/ui/dialog/clonetiler.cpp | 425 +++++++++++++++++++++----------------------
 src/ui/dialog/clonetiler.h   |  87 +++++----
 2 files changed, 251 insertions(+), 261 deletions(-)

diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp
index c27d5d35a..8e9d3dbbf 100644
--- a/src/ui/dialog/clonetiler.cpp
+++ b/src/ui/dialog/clonetiler.cpp
@@ -25,6 +25,8 @@
 
 #include 
 #include 
+#include 
+#include 
 #include 
 
 #include "desktop.h"
@@ -66,7 +68,6 @@ static unsigned trace_visionkey;
 static gdouble trace_zoom;
 static SPDocument *trace_doc = NULL;
 
-
 CloneTiler::CloneTiler () :
     UI::Widget::Panel ("", "/dialogs/clonetiler/", SP_VERB_DIALOG_CLONETILER),
     desktop(NULL),
@@ -100,7 +101,7 @@ CloneTiler::CloneTiler () :
              */
             struct SymGroups {
                 gint group;
-                gchar const *label;
+                Glib::ustring label;
             } const sym_groups[] = {
                 // TRANSLATORS: "translation" means "shift" / "displacement" here.
                 {TILE_P1, _("P1: simple translation")},
@@ -126,33 +127,27 @@ CloneTiler::CloneTiler () :
 
             gint current = prefs->getInt(prefs_path + "symmetrygroup", 0);
 
-        // Create a list structure containing all the data to be displayed in
-        // the symmetry group combo box.
-        GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING);
-        GtkTreeIter iter;
-
-        for (unsigned j = 0; j < G_N_ELEMENTS(sym_groups); ++j) {
-            SymGroups const &sg = sym_groups[j];
+            // Add a new combo box widget with the list of symmetry groups to the vbox
+            auto combo = Gtk::manage(new Gtk::ComboBoxText());
+            combo->set_tooltip_text(_("Select one of the 17 symmetry groups for the tiling"));
 
-            // Add the description of the symgroup to a new row
-            gtk_list_store_append(store, &iter);
-            gtk_list_store_set(store, &iter, 0, sg.label, -1);
-        }
+            // Hack to add markup support
+            auto cell_list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(combo->gobj()));
+            gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo->gobj()),
+                                           GTK_CELL_RENDERER(cell_list->data),
+                                           "markup", 0, NULL);
 
-        // Add a new combo box widget with the list of symmetry groups to the vbox
-        GtkWidget *combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
-        gtk_widget_set_tooltip_text (combo, _("Select one of the 17 symmetry groups for the tiling"));
-        gtk_box_pack_start (GTK_BOX (vb), combo, FALSE, FALSE, SB_MARGIN);
+            for (unsigned j = 0; j < G_N_ELEMENTS(sym_groups); ++j) {
+                SymGroups const &sg = sym_groups[j];
 
-        // Specify the rendering of data from the list in a combo box cell
-        GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
-        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
-        gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "markup", 0, NULL);
+                // Add the description of the symgroup to a new row
+                combo->append(sg.label);
+            }
 
-        gtk_combo_box_set_active (GTK_COMBO_BOX (combo), current);
+            gtk_box_pack_start (GTK_BOX (vb), GTK_WIDGET(combo->gobj()), FALSE, FALSE, SB_MARGIN);
 
-        g_signal_connect(G_OBJECT(combo), "changed",
-                    G_CALLBACK(symgroup_changed), NULL);
+            combo->set_active(current);
+            combo->signal_changed().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::symgroup_changed), combo));
         }
 
         table_row_labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
@@ -175,7 +170,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                    _("Horizontal shift per row (in % of tile width)"), "shiftx_per_j",
                    -10000, 10000, "%");
@@ -183,7 +178,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                    _("Horizontal shift per column (in % of tile width)"), "shiftx_per_i",
                    -10000, 10000, "%");
@@ -191,7 +186,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the horizontal shift by this percentage"), "shiftx_rand",
+                auto l = spinbox (_("Randomize the horizontal shift by this percentage"), "shiftx_rand",
                                                    0, 1000, "%");
                 table_attach (table, l, 0, 2, 4);
             }
@@ -207,7 +202,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical shift per row (in % of tile height)"), "shifty_per_j",
                                                    -10000, 10000, "%");
@@ -215,7 +210,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical shift per column (in % of tile height)"), "shifty_per_i",
                                                    -10000, 10000, "%");
@@ -223,7 +218,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                                                    _("Randomize the vertical shift by this percentage"), "shifty_rand",
                                                    0, 1000, "%");
                 table_attach (table, l, 0, 3, 4);
@@ -238,14 +233,14 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                                                    _("Whether rows are spaced evenly (1), converge (<1) or diverge (>1)"), "shifty_exp",
                                                    0, 10, "", true);
                 table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                                                    _("Whether columns are spaced evenly (1), converge (<1) or diverge (>1)"), "shiftx_exp",
                                                    0, 10, "", true);
                 table_attach (table, l, 0, 4, 3);
@@ -260,12 +255,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of shifts for each row"), "shifty_alternate");
+                auto l = checkbox (_("Alternate the sign of shifts for each row"), "shifty_alternate");
                 table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of shifts for each column"), "shiftx_alternate");
+                auto l = checkbox (_("Alternate the sign of shifts for each column"), "shiftx_alternate");
                 table_attach (table, l, 0, 5, 3);
             }
 
@@ -278,12 +273,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Cumulate the shifts for each row"), "shifty_cumulate");
+                auto l = checkbox (_("Cumulate the shifts for each row"), "shifty_cumulate");
                 table_attach (table, l, 0, 6, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Cumulate the shifts for each column"), "shiftx_cumulate");
+                auto l = checkbox (_("Cumulate the shifts for each column"), "shiftx_cumulate");
                 table_attach (table, l, 0, 6, 3);
             }
 
@@ -296,12 +291,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Exclude tile height in shift"), "shifty_excludeh");
+                auto l = checkbox (_("Exclude tile height in shift"), "shifty_excludeh");
                 table_attach (table, l, 0, 7, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Exclude tile width in shift"), "shiftx_excludew");
+                auto l = checkbox (_("Exclude tile width in shift"), "shiftx_excludew");
                 table_attach (table, l, 0, 7, 3);
             }
 
@@ -324,7 +319,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Horizontal scale per row (in % of tile width)"), "scalex_per_j",
                                                    -100, 1000, "%");
@@ -332,7 +327,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Horizontal scale per column (in % of tile width)"), "scalex_per_i",
                                                    -100, 1000, "%");
@@ -340,7 +335,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the horizontal scale by this percentage"), "scalex_rand",
+                auto l = spinbox (_("Randomize the horizontal scale by this percentage"), "scalex_rand",
                                                    0, 1000, "%");
                 table_attach (table, l, 0, 2, 4);
             }
@@ -354,7 +349,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical scale per row (in % of tile height)"), "scaley_per_j",
                                                    -100, 1000, "%");
@@ -362,7 +357,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Vertical scale per column (in % of tile height)"), "scaley_per_i",
                                                    -100, 1000, "%");
@@ -370,7 +365,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the vertical scale by this percentage"), "scaley_rand",
+                auto l = spinbox (_("Randomize the vertical scale by this percentage"), "scaley_rand",
                                                    0, 1000, "%");
                 table_attach (table, l, 0, 3, 4);
             }
@@ -384,13 +379,13 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Whether row scaling is uniform (1), converge (<1) or diverge (>1)"), "scaley_exp",
+                auto l = spinbox (_("Whether row scaling is uniform (1), converge (<1) or diverge (>1)"), "scaley_exp",
                                                    0, 10, "", true);
                 table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = spinbox (_("Whether column scaling is uniform (1), converge (<1) or diverge (>1)"), "scalex_exp",
+                auto l = spinbox (_("Whether column scaling is uniform (1), converge (<1) or diverge (>1)"), "scalex_exp",
                                                    0, 10, "", true);
                 table_attach (table, l, 0, 4, 3);
             }
@@ -404,13 +399,13 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scaley_log",
+                auto l = spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scaley_log",
                                                    0, 10, "", false);
                 table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scalex_log",
+                auto l = spinbox (_("Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"), "scalex_log",
                                                    0, 10, "", false);
                 table_attach (table, l, 0, 5, 3);
             }
@@ -424,12 +419,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of scales for each row"), "scaley_alternate");
+                auto l = checkbox (_("Alternate the sign of scales for each row"), "scaley_alternate");
                 table_attach (table, l, 0, 6, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of scales for each column"), "scalex_alternate");
+                auto l = checkbox (_("Alternate the sign of scales for each column"), "scalex_alternate");
                 table_attach (table, l, 0, 6, 3);
             }
 
@@ -442,12 +437,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Cumulate the scales for each row"), "scaley_cumulate");
+                auto l = checkbox (_("Cumulate the scales for each row"), "scaley_cumulate");
                 table_attach (table, l, 0, 7, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Cumulate the scales for each column"), "scalex_cumulate");
+                auto l = checkbox (_("Cumulate the scales for each column"), "scalex_cumulate");
                 table_attach (table, l, 0, 7, 3);
             }
 
@@ -470,7 +465,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Rotate tiles by this angle for each row"), "rotate_per_j",
                                                    -180, 180, "°");
@@ -478,7 +473,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (
+                auto l = spinbox (
                     // xgettext:no-c-format
                                                    _("Rotate tiles by this angle for each column"), "rotate_per_i",
                                                    -180, 180, "°");
@@ -486,7 +481,7 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the rotation angle by this percentage"), "rotate_rand",
+                auto l = spinbox (_("Randomize the rotation angle by this percentage"), "rotate_rand",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 2, 4);
             }
@@ -500,12 +495,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the rotation direction for each row"), "rotate_alternatej");
+                auto l = checkbox (_("Alternate the rotation direction for each row"), "rotate_alternatej");
                 table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the rotation direction for each column"), "rotate_alternatei");
+                auto l = checkbox (_("Alternate the rotation direction for each column"), "rotate_alternatei");
                 table_attach (table, l, 0, 3, 3);
             }
 
@@ -518,12 +513,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Cumulate the rotation for each row"), "rotate_cumulatej");
+                auto l = checkbox (_("Cumulate the rotation for each row"), "rotate_cumulatej");
                 table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Cumulate the rotation for each column"), "rotate_cumulatei");
+                auto l = checkbox (_("Cumulate the rotation for each column"), "rotate_cumulatei");
                 table_attach (table, l, 0, 4, 3);
             }
 
@@ -547,19 +542,19 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Blur tiles by this percentage for each row"), "blur_per_j",
+                auto l = spinbox (_("Blur tiles by this percentage for each row"), "blur_per_j",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 2, 2);
             }
 
             {
-                GtkWidget *l = spinbox (_("Blur tiles by this percentage for each column"), "blur_per_i",
+                auto l = spinbox (_("Blur tiles by this percentage for each column"), "blur_per_i",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 2, 3);
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the tile blur by this percentage"), "blur_rand",
+                auto l = spinbox (_("Randomize the tile blur by this percentage"), "blur_rand",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 2, 4);
             }
@@ -573,12 +568,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of blur change for each row"), "blur_alternatej");
+                auto l = checkbox (_("Alternate the sign of blur change for each row"), "blur_alternatej");
                 table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of blur change for each column"), "blur_alternatei");
+                auto l = checkbox (_("Alternate the sign of blur change for each column"), "blur_alternatei");
                 table_attach (table, l, 0, 3, 3);
             }
 
@@ -593,19 +588,19 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Decrease tile opacity by this percentage for each row"), "opacity_per_j",
+                auto l = spinbox (_("Decrease tile opacity by this percentage for each row"), "opacity_per_j",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = spinbox (_("Decrease tile opacity by this percentage for each column"), "opacity_per_i",
+                auto l = spinbox (_("Decrease tile opacity by this percentage for each column"), "opacity_per_i",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 4, 3);
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the tile opacity by this percentage"), "opacity_rand",
+                auto l = spinbox (_("Randomize the tile opacity by this percentage"), "opacity_rand",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 4, 4);
             }
@@ -619,12 +614,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of opacity change for each row"), "opacity_alternatej");
+                auto l = checkbox (_("Alternate the sign of opacity change for each row"), "opacity_alternatej");
                 table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of opacity change for each column"), "opacity_alternatei");
+                auto l = checkbox (_("Alternate the sign of opacity change for each column"), "opacity_alternatei");
                 table_attach (table, l, 0, 5, 3);
             }
         }
@@ -643,7 +638,7 @@ CloneTiler::CloneTiler () :
 
             guint32 rgba = 0x000000ff | sp_svg_read_color (prefs->getString(prefs_path + "initial_color").data(), 0x000000ff);
             color_picker = new Inkscape::UI::Widget::ColorPicker (*new Glib::ustring(_("Initial color of tiled clones")), *new Glib::ustring(_("Initial color for clones (works only if the original has unset fill or stroke or on spray tool in copy mode)")), rgba, false);
-            color_changed_connection = color_picker->connectChanged (sigc::ptr_fun(on_picker_color_changed));
+            color_changed_connection = color_picker->connectChanged(sigc::mem_fun(*this, &CloneTiler::on_picker_color_changed));
 
             gtk_box_pack_start (GTK_BOX (hb), reinterpret_cast(color_picker->gobj()), FALSE, FALSE, 0);
 
@@ -663,19 +658,19 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Change the tile hue by this percentage for each row"), "hue_per_j",
+                auto l = spinbox (_("Change the tile hue by this percentage for each row"), "hue_per_j",
                                                    -100, 100, "%");
                 table_attach (table, l, 0, 2, 2);
             }
 
             {
-                GtkWidget *l = spinbox (_("Change the tile hue by this percentage for each column"), "hue_per_i",
+                auto l = spinbox (_("Change the tile hue by this percentage for each column"), "hue_per_i",
                                                    -100, 100, "%");
                 table_attach (table, l, 0, 2, 3);
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the tile hue by this percentage"), "hue_rand",
+                auto l = spinbox (_("Randomize the tile hue by this percentage"), "hue_rand",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 2, 4);
             }
@@ -690,19 +685,19 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Change the color saturation by this percentage for each row"), "saturation_per_j",
+                auto l = spinbox (_("Change the color saturation by this percentage for each row"), "saturation_per_j",
                                                    -100, 100, "%");
                 table_attach (table, l, 0, 3, 2);
             }
 
             {
-                GtkWidget *l = spinbox (_("Change the color saturation by this percentage for each column"), "saturation_per_i",
+                auto l = spinbox (_("Change the color saturation by this percentage for each column"), "saturation_per_i",
                                                    -100, 100, "%");
                 table_attach (table, l, 0, 3, 3);
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the color saturation by this percentage"), "saturation_rand",
+                auto l = spinbox (_("Randomize the color saturation by this percentage"), "saturation_rand",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 3, 4);
             }
@@ -716,19 +711,19 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = spinbox (_("Change the color lightness by this percentage for each row"), "lightness_per_j",
+                auto l = spinbox (_("Change the color lightness by this percentage for each row"), "lightness_per_j",
                                                    -100, 100, "%");
                 table_attach (table, l, 0, 4, 2);
             }
 
             {
-                GtkWidget *l = spinbox (_("Change the color lightness by this percentage for each column"), "lightness_per_i",
+                auto l = spinbox (_("Change the color lightness by this percentage for each column"), "lightness_per_i",
                                                    -100, 100, "%");
                 table_attach (table, l, 0, 4, 3);
             }
 
             {
-                GtkWidget *l = spinbox (_("Randomize the color lightness by this percentage"), "lightness_rand",
+                auto l = spinbox (_("Randomize the color lightness by this percentage"), "lightness_rand",
                                                    0, 100, "%");
                 table_attach (table, l, 0, 4, 4);
             }
@@ -742,12 +737,12 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of color changes for each row"), "color_alternatej");
+                auto l = checkbox (_("Alternate the sign of color changes for each row"), "color_alternatej");
                 table_attach (table, l, 0, 5, 2);
             }
 
             {
-                GtkWidget *l = checkbox (_("Alternate the sign of color changes for each column"), "color_alternatei");
+                auto l = checkbox (_("Alternate the sign of color changes for each column"), "color_alternatei");
                 table_attach (table, l, 0, 5, 3);
             }
 
@@ -785,71 +780,62 @@ CloneTiler::CloneTiler () :
                 gtk_grid_set_column_spacing(GTK_GRID(table), 6);
                 gtk_container_add(GTK_CONTAINER(frame), table);
 
-
-                GtkWidget* radio;
+                Gtk::RadioButtonGroup rb_group;
                 {
-                    radio = gtk_radio_button_new_with_label (NULL, _("Color"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the visible color and opacity"));
-                    table_attach (table, radio, 0.0, 1, 1);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_COLOR));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_COLOR);
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, _("Color")));
+                    radio->set_tooltip_text(_("Pick the visible color and opacity"));
+                    table_attach(table, radio, 0.0, 1, 1);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_COLOR));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_COLOR);
                 }
                 {
-                    radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Opacity"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the total accumulated opacity"));
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, _("Opacity")));
+                    radio->set_tooltip_text(_("Pick the total accumulated opacity"));
                     table_attach (table, radio, 0.0, 2, 1);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_OPACITY));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_OPACITY);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_OPACITY));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_OPACITY);
                 }
                 {
-                    radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("R"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the Red component of the color"));
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, _("R")));
+                    radio->set_tooltip_text(_("Pick the Red component of the color"));
                     table_attach (table, radio, 0.0, 1, 2);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_R));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_R);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_R));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_R);
                 }
                 {
-                    radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("G"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the Green component of the color"));
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, _("G")));
+                    radio->set_tooltip_text(_("Pick the Green component of the color"));
                     table_attach (table, radio, 0.0, 2, 2);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_G));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_G);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_G));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_G);
                 }
                 {
-                    radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("B"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the Blue component of the color"));
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, _("B")));
+                    radio->set_tooltip_text(_("Pick the Blue component of the color"));
                     table_attach (table, radio, 0.0, 3, 2);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_B));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_B);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_B));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_B);
                 }
                 {
-                    radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color hue", "H"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the hue of the color"));
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, C_("Clonetiler color hue", "H")));
+                    radio->set_tooltip_text(_("Pick the hue of the color"));
                     table_attach (table, radio, 0.0, 1, 3);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_H));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_H);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_H));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_H);
                 }
                 {
-                    radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color saturation", "S"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the saturation of the color"));
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, C_("Clonetiler color saturation", "S")));
+                    radio->set_tooltip_text(_("Pick the saturation of the color"));
                     table_attach (table, radio, 0.0, 2, 3);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_S));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_S);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_S));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_S);
                 }
                 {
-                    radio = gtk_radio_button_new_with_label (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), C_("Clonetiler color lightness", "L"));
-                    gtk_widget_set_tooltip_text (radio, _("Pick the lightness of the color"));
+                    auto radio = Gtk::manage(new Gtk::RadioButton(rb_group, C_("Clonetiler color lightness", "L")));
+                    radio->set_tooltip_text(_("Pick the lightness of the color"));
                     table_attach (table, radio, 0.0, 3, 3);
-                    g_signal_connect (G_OBJECT (radio), "toggled",
-                                        G_CALLBACK (pick_switched), GINT_TO_POINTER(PICK_L));
-                    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), prefs->getInt(prefs_path + "pick", 0) == PICK_L);
+                    radio->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_switched), PICK_L));
+                    radio->set_active(prefs->getInt(prefs_path + "pick", 0) == PICK_L);
                 }
 
             }
@@ -870,7 +856,7 @@ CloneTiler::CloneTiler () :
                     table_attach (table, l, 1.0, 1, 1);
                 }
                 {
-                    GtkWidget *l = spinbox (_("Shift the mid-range of the picked value upwards (>0) or downwards (<0)"), "gamma_picked",
+                    auto l = spinbox (_("Shift the mid-range of the picked value upwards (>0) or downwards (<0)"), "gamma_picked",
                                                        -10, 10, "");
                     table_attach (table, l, 0.0, 1, 2);
                 }
@@ -881,7 +867,7 @@ CloneTiler::CloneTiler () :
                     table_attach (table, l, 1.0, 1, 3);
                 }
                 {
-                    GtkWidget *l = spinbox (_("Randomize the picked value by this percentage"), "rand_picked",
+                    auto l = spinbox (_("Randomize the picked value by this percentage"), "rand_picked",
                                                        0, 100, "%");
                     table_attach (table, l, 0.0, 1, 4);
                 }
@@ -892,7 +878,7 @@ CloneTiler::CloneTiler () :
                     table_attach (table, l, 1.0, 2, 1);
                 }
                 {
-                    GtkWidget *l = checkbox (_("Invert the picked value"), "invert_picked");
+                    auto l = checkbox (_("Invert the picked value"), "invert_picked");
                     table_attach (table, l, 0.0, 2, 2);
                 }
             }
@@ -907,43 +893,39 @@ CloneTiler::CloneTiler () :
                 gtk_container_add(GTK_CONTAINER(frame), table);
 
                 {
-                    GtkWidget *b  = gtk_check_button_new_with_label (_("Presence"));
+                    auto b = Gtk::manage(new Gtk::CheckButton(_("Presence")));
                     bool old = prefs->getBool(prefs_path + "pick_to_presence", true);
-                    gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
-                    gtk_widget_set_tooltip_text (b, _("Each clone is created with the probability determined by the picked value in that point"));
+                    b->set_active(old);
+                    b->set_tooltip_text(_("Each clone is created with the probability determined by the picked value in that point"));
                     table_attach (table, b, 0.0, 1, 1);
-                    g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(pick_to), (gpointer) "pick_to_presence");
+                    b->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_to), b, "pick_to_presence"));
                 }
 
                 {
-                    GtkWidget *b  = gtk_check_button_new_with_label (_("Size"));
+                    auto b = Gtk::manage(new Gtk::CheckButton(_("Size")));
                     bool old = prefs->getBool(prefs_path + "pick_to_size");
-                    gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
-                    gtk_widget_set_tooltip_text (b, _("Each clone's size is determined by the picked value in that point"));
+                    b->set_active(old);
+                    b->set_tooltip_text(_("Each clone's size is determined by the picked value in that point"));
                     table_attach (table, b, 0.0, 2, 1);
-                    g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(pick_to), (gpointer) "pick_to_size");
+                    b->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_to), b, "pick_to_size"));
                 }
 
                 {
-                    GtkWidget *b  = gtk_check_button_new_with_label (_("Color"));
+                    auto b = Gtk::manage(new Gtk::CheckButton(_("Color")));
                     bool old = prefs->getBool(prefs_path + "pick_to_color", 0);
-                    gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
-                    gtk_widget_set_tooltip_text (b, _("Each clone is painted by the picked color (the original must have unset fill or stroke)"));
+                    b->set_active(old);
+                    b->set_tooltip_text(_("Each clone is painted by the picked color (the original must have unset fill or stroke)"));
                     table_attach (table, b, 0.0, 1, 2);
-                    g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(pick_to), (gpointer) "pick_to_color");
+                    b->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_to), b, "pick_to_color"));
                 }
 
                 {
-                    GtkWidget *b  = gtk_check_button_new_with_label (_("Opacity"));
+                    auto b = Gtk::manage(new Gtk::CheckButton(_("Opacity")));
                     bool old = prefs->getBool(prefs_path + "pick_to_opacity", 0);
-                    gtk_toggle_button_set_active ((GtkToggleButton *) b, old);
-                    gtk_widget_set_tooltip_text (b, _("Each clone's opacity is determined by the picked value in that point"));
+                    b->set_active(old);
+                    b->set_tooltip_text(_("Each clone's opacity is determined by the picked value in that point"));
                     table_attach (table, b, 0.0, 2, 2);
-                    g_signal_connect(G_OBJECT(b), "toggled",
-                                       G_CALLBACK(pick_to), (gpointer) "pick_to_opacity");
+                    b->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::pick_to), b, "pick_to_opacity"));
                 }
             }
            gtk_widget_set_sensitive (vvb, prefs->getBool(prefs_path + "dotrace"));
@@ -980,9 +962,7 @@ CloneTiler::CloneTiler () :
                     sb->set_width_chars (7);
                     _rowscols->pack_start(*sb, true, true, 0);
 
-                    // TODO: C++ification
-                    g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
-                                       G_CALLBACK(xy_changed), (gpointer) "jmax");
+                    a->signal_value_changed().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::xy_changed), a, "jmax"));
                 }
 
                 {
@@ -1002,9 +982,7 @@ CloneTiler::CloneTiler () :
                     sb->set_width_chars (7);
                     _rowscols->pack_start(*sb, true, true, 0);
 
-                    // TODO: C++ification
-                    g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
-                                       G_CALLBACK(xy_changed), (gpointer) "imax");
+                    a->signal_value_changed().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::xy_changed), a, "imax"));
                 }
 
                 table_attach (table, GTK_WIDGET(_rowscols->gobj()), 0.0, 1, 2);
@@ -1164,11 +1142,11 @@ CloneTiler::CloneTiler () :
             }
 
             {
-                GtkWidget *b = gtk_button_new_with_mnemonic (_(" R_eset "));
+                auto b = Gtk::manage(new Gtk::Button(_(" R_eset "), true));
                 // TRANSLATORS: "change" is a noun here
-                gtk_widget_set_tooltip_text (b, _("Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"));
-                g_signal_connect (G_OBJECT (b), "clicked", G_CALLBACK (reset), this);
-                gtk_box_pack_start (GTK_BOX (hb), b, FALSE, FALSE, 0);
+                b->set_tooltip_text(_("Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"));
+                b->signal_clicked().connect(sigc::mem_fun(*this, &CloneTiler::reset));
+                gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(b->gobj()), FALSE, FALSE, 0);
             }
         }
 
@@ -2197,7 +2175,7 @@ void CloneTiler::apply()
 
     SPItem *item = dynamic_cast(obj);
     if (dotrace) {
-        trace_setup (desktop->getDocument(), 1.0, item);
+        trace_setup(desktop->getDocument(), 1.0, item);
     }
 
     Geom::Point center;
@@ -2524,72 +2502,74 @@ GtkWidget * CloneTiler::new_tab(GtkWidget *nb, const gchar *label)
     return vb;
 }
 
-void CloneTiler::checkbox_toggled(GtkToggleButton *tb, gpointer *data)
+void CloneTiler::checkbox_toggled(Gtk::ToggleButton   *tb,
+                                  const Glib::ustring &attr)
 {
-    const gchar *attr = (const gchar *) data;
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    prefs->setBool(prefs_path + attr, gtk_toggle_button_get_active(tb));
+    auto prefs = Inkscape::Preferences::get();
+    prefs->setBool(prefs_path + attr, tb->get_active());
 }
 
-GtkWidget * CloneTiler::checkbox(const char *tip, const char *attr)
+Gtk::Widget * CloneTiler::checkbox(const char          *tip,
+                                   const Glib::ustring &attr)
 {
-    auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, VB_MARGIN);
-    gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
-
-    GtkWidget *b = gtk_check_button_new ();
-    gtk_widget_set_tooltip_text (b, tip);
+    auto hb = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, VB_MARGIN));
+    auto b  = Gtk::manage(new Gtk::CheckButton());
+    b->set_tooltip_text(tip);
 
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    bool value = prefs->getBool(prefs_path + attr);
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(b), value);
+    auto const prefs = Inkscape::Preferences::get();
+    auto const value = prefs->getBool(prefs_path + attr);
+    b->set_active(value);
 
-    gtk_box_pack_end (GTK_BOX (hb), b, FALSE, TRUE, 0);
-    g_signal_connect ( G_OBJECT (b), "clicked",
-                         G_CALLBACK (checkbox_toggled), (gpointer) attr);
+    hb->pack_end(*b, false, true);
+    b->signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::checkbox_toggled), b, attr));
 
-    g_object_set_data (G_OBJECT(b), "uncheckable", GINT_TO_POINTER(TRUE));
+    b->set_data("uncheckable", GINT_TO_POINTER(true));
 
     return hb;
 }
 
-void CloneTiler::value_changed(GtkAdjustment *adj, gpointer data)
+void CloneTiler::value_changed(Glib::RefPtr &adj,
+                               Glib::ustring const           &pref)
 {
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    const gchar *pref = (const gchar *) data;
-    prefs->setDouble(prefs_path + pref, gtk_adjustment_get_value (adj));
+    auto prefs = Inkscape::Preferences::get();
+    prefs->setDouble(prefs_path + pref, adj->get_value());
 }
 
-GtkWidget * CloneTiler::spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent/* = false*/)
+Gtk::Widget * CloneTiler::spinbox(const char          *tip,
+                                  const Glib::ustring &attr,
+                                  double               lower,
+                                  double               upper,
+                                  const gchar         *suffix,
+                                  bool                 exponent/* = false*/)
 {
-    auto hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
-    gtk_box_set_homogeneous(GTK_BOX(hb), FALSE);
+    auto hb = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 0));
 
     {
-        Glib::RefPtr a;
-        if (exponent) {
-            a = Gtk::Adjustment::create(1.0, lower, upper, 0.01, 0.05, 0);
-        } else {
-            a = Gtk::Adjustment::create(0.0, lower, upper, 0.1, 0.5, 0);
-        }
+        // Parameters for adjustment
+        auto const initial_value  = (exponent ? 1.0 : 0.0);
+        auto const step_increment = (exponent ? 0.01 : 0.1);
+        auto const page_increment = (exponent ? 0.05 : 0.4);
 
-        Inkscape::UI::Widget::SpinButton *sb;
-        if (exponent) {
-            sb = new Inkscape::UI::Widget::SpinButton(a, 0.01, 2);
-        } else {
-            sb = new Inkscape::UI::Widget::SpinButton(a, 0.1, 1);
-	}
+        auto a = Gtk::Adjustment::create(initial_value,
+                                         lower,
+                                         upper,
+                                         step_increment,
+                                         page_increment);
+
+        auto const climb_rate = (exponent ? 0.01 : 0.1);
+        auto const digits = (exponent ? 2 : 1);
+
+        auto sb = new Inkscape::UI::Widget::SpinButton(a, climb_rate, digits);
 
         sb->set_tooltip_text (tip);
         sb->set_width_chars (5);
         sb->set_digits(3);
-        gtk_box_pack_start (GTK_BOX (hb), GTK_WIDGET(sb->gobj()), FALSE, FALSE, SB_MARGIN);
+        hb->pack_start(*sb, false, false, SB_MARGIN);
 
-        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-        double value = prefs->getDoubleLimited(prefs_path + attr, exponent? 1.0 : 0.0, lower, upper);
+        auto prefs = Inkscape::Preferences::get();
+        auto value = prefs->getDoubleLimited(prefs_path + attr, exponent? 1.0 : 0.0, lower, upper);
         a->set_value (value);
-        // TODO: C++ification
-        g_signal_connect(G_OBJECT(a->gobj()), "value_changed",
-                           G_CALLBACK(value_changed), (gpointer) attr);
+        a->signal_value_changed().connect(sigc::bind(sigc::mem_fun(*this, &CloneTiler::value_changed), a, attr));
 
         if (exponent) {
             sb->set_data ("oneable", GINT_TO_POINTER(TRUE));
@@ -2599,28 +2579,27 @@ GtkWidget * CloneTiler::spinbox(const char *tip, const char *attr, double lower,
     }
 
     {
-        GtkWidget *l = gtk_label_new ("");
-        gtk_label_set_markup (GTK_LABEL(l), suffix);
-        gtk_widget_set_halign(l, GTK_ALIGN_END);
-        gtk_widget_set_valign(l, GTK_ALIGN_START);
-        gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0);
+        auto l = Gtk::manage(new Gtk::Label(""));
+        l->set_markup(suffix);
+        l->set_halign(Gtk::ALIGN_END);
+        l->set_valign(Gtk::ALIGN_START);
+        hb->pack_start(*l);
     }
 
     return hb;
 }
 
-void CloneTiler::symgroup_changed(GtkComboBox *cb, gpointer /*data*/)
+void CloneTiler::symgroup_changed(Gtk::ComboBox *cb)
 {
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    gint group_new = gtk_combo_box_get_active (cb);
+    auto prefs = Inkscape::Preferences::get();
+    auto group_new = cb->get_active_row_number();
     prefs->setInt(prefs_path + "symmetrygroup", group_new);
 }
 
-void CloneTiler::xy_changed(GtkAdjustment *adj, gpointer data)
+void CloneTiler::xy_changed(Glib::RefPtr &adj, Glib::ustring const &pref)
 {
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    const gchar *pref = (const gchar *) data;
-    prefs->setInt(prefs_path + pref, (int) floor(gtk_adjustment_get_value (adj) + 0.5));
+    auto prefs = Inkscape::Preferences::get();
+    prefs->setInt(prefs_path + pref, (int) floor(adj->get_value() + 0.5));
 }
 
 void CloneTiler::keep_bbox_toggled()
@@ -2629,11 +2608,10 @@ void CloneTiler::keep_bbox_toggled()
     prefs->setBool(prefs_path + "keepbbox", _cb_keep_bbox->get_active());
 }
 
-void CloneTiler::pick_to(GtkToggleButton *tb, gpointer data)
+void CloneTiler::pick_to(Gtk::ToggleButton *tb, Glib::ustring const &pref)
 {
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    const gchar *pref = (const gchar *) data;
-    prefs->setBool(prefs_path + pref, gtk_toggle_button_get_active(tb));
+    auto prefs = Inkscape::Preferences::get();
+    prefs->setBool(prefs_path + pref, tb->get_active());
 }
 
 
@@ -2671,9 +2649,14 @@ void CloneTiler::reset_recursive(GtkWidget *w)
     }
 }
 
-void CloneTiler::reset(GtkWidget */*widget*/, GtkWidget *dlg)
+void CloneTiler::reset()
+{
+    reset_recursive(GTK_WIDGET(this->gobj()));
+}
+
+void CloneTiler::table_attach(GtkWidget *table, Gtk::Widget *widget, float align, int row, int col)
 {
-    reset_recursive (dlg);
+    table_attach(table, GTK_WIDGET(widget->gobj()), align, row, col);
 }
 
 void CloneTiler::table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col)
@@ -2728,14 +2711,12 @@ GtkWidget * CloneTiler::table_x_y_rand(int values)
     return table;
 }
 
-void CloneTiler::pick_switched(GtkToggleButton */*tb*/, gpointer data)
+void CloneTiler::pick_switched(PickType v)
 {
-    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
-    guint v = GPOINTER_TO_INT (data);
+    auto prefs = Inkscape::Preferences::get();
     prefs->setInt(prefs_path + "pick", v);
 }
 
-
 void CloneTiler::switch_to_create()
 {
     if (_rowscols) {
diff --git a/src/ui/dialog/clonetiler.h b/src/ui/dialog/clonetiler.h
index 04f676800..db3049ef1 100644
--- a/src/ui/dialog/clonetiler.h
+++ b/src/ui/dialog/clonetiler.h
@@ -18,6 +18,7 @@
 
 namespace Gtk {
     class CheckButton;
+    class ComboBox;
     class ToggleButton;
 }
 
@@ -38,48 +39,66 @@ public:
     static CloneTiler &getInstance() { return *new CloneTiler(); }
     void show_page_trace();
 protected:
+    enum PickType {
+        PICK_COLOR,
+        PICK_OPACITY,
+        PICK_R,
+        PICK_G,
+        PICK_B,
+        PICK_H,
+        PICK_S,
+        PICK_L
+    };
 
     GtkWidget * new_tab(GtkWidget *nb, const gchar *label);
     GtkWidget * table_x_y_rand(int values);
-    GtkWidget * spinbox(const char *tip, const char *attr, double lower, double upper, const gchar *suffix, bool exponent = false);
-    GtkWidget * checkbox(const char *tip, const char *attr);
+    Gtk::Widget * spinbox(const char          *tip,
+                          const Glib::ustring &attr,
+                          double               lower,
+                          double               upper,
+                          const gchar         *suffix,
+                          bool                 exponent = false);
+    Gtk::Widget * checkbox(const char          *tip,
+                           const Glib::ustring &attr);
     void table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col);
-
-    // TODO: Improve encapsulation by using SigC++ signal handling, and convert all of these into
-    // non-static member functions
-    static void symgroup_changed(GtkComboBox *cb, gpointer /*data*/);
-    static void on_picker_color_changed(guint rgba);
-    static void trace_hide_tiled_clones_recursively(SPObject *from);
-    static void checkbox_toggled(GtkToggleButton *tb, gpointer *data);
-    static void pick_switched(GtkToggleButton */*tb*/, gpointer data);
-    static void pick_to(GtkToggleButton *tb, gpointer data);
-    static void xy_changed(GtkAdjustment *adj, gpointer data);
-    void switch_to_create();
-    void switch_to_fill();
-    void keep_bbox_toggled();
-    void unclump();
-    static void reset(GtkWidget */*widget*/, GtkWidget *dlg);
-    static guint number_of_clones(SPObject *obj);
-    static void trace_setup(SPDocument *doc, gdouble zoom, SPItem *original);
-    static guint32 trace_pick(Geom::Rect box);
-    static void trace_finish();
-    static bool is_a_clone_of(SPObject *tile, SPObject *obj);
-    static Geom::Rect transform_rect(Geom::Rect const &r, Geom::Affine const &m);
-    static double randomize01(double val, double rand);
-    static void value_changed(GtkAdjustment *adj, gpointer data);
-    static void reset_recursive(GtkWidget *w);
+    void table_attach(GtkWidget *table, Gtk::Widget *widget, float align, int row, int col);
+
+    void       symgroup_changed(Gtk::ComboBox *cb);
+    void       on_picker_color_changed(guint rgba);
+    void       trace_hide_tiled_clones_recursively(SPObject *from);
+    guint      number_of_clones(SPObject *obj);
+    void       trace_setup(SPDocument *doc, gdouble zoom, SPItem *original);
+    guint32    trace_pick(Geom::Rect box);
+    void       trace_finish();
+    bool       is_a_clone_of(SPObject *tile, SPObject *obj);
+    Geom::Rect transform_rect(Geom::Rect const &r, Geom::Affine const &m);
+    double     randomize01(double val, double rand);
 
     void apply();
     void change_selection(Inkscape::Selection *selection);
+    void checkbox_toggled(Gtk::ToggleButton   *tb,
+                          Glib::ustring const &attr);
     void do_pick_toggled();
     void external_change();
     void fill_width_changed();
     void fill_height_changed();
-    void remove(bool do_undo = true);
+    void keep_bbox_toggled();
     void on_remove_button_clicked() {remove();}
+    void pick_switched(PickType);
+    void pick_to(Gtk::ToggleButton   *tb,
+                 Glib::ustring const &pref);
+    void remove(bool do_undo = true);
+    void reset();
+    void reset_recursive(GtkWidget *w);
+    void switch_to_create();
+    void switch_to_fill();
+    void unclump();
     void unit_changed();
+    void value_changed(Glib::RefPtr &adj, Glib::ustring const &pref);
+    void xy_changed(Glib::RefPtr &adj, Glib::ustring const &pref);
 
-    static Geom::Affine get_transform(    // symmetry group
+    Geom::Affine get_transform(
+            // symmetry group
             int type,
 
             // row, column
@@ -156,20 +175,10 @@ private:
     GtkWidget *_status;
     Gtk::Box *_rowscols;
     Gtk::Box *_widthheight;
+    
 };
 
 
-enum {
-    PICK_COLOR,
-    PICK_OPACITY,
-    PICK_R,
-    PICK_G,
-    PICK_B,
-    PICK_H,
-    PICK_S,
-    PICK_L
-};
-
 enum {
     TILE_P1,
     TILE_P2,
-- 
cgit v1.2.3


From 79114d4f5ed18fc7bc79fff42bbc02d24042b484 Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Sat, 13 Aug 2016 16:59:04 +0100
Subject: inkview: C++ify

(bzr r15056)
---
 src/inkview.cpp | 273 ++++++++++++++++++++++++--------------------------------
 1 file changed, 115 insertions(+), 158 deletions(-)

diff --git a/src/inkview.cpp b/src/inkview.cpp
index c90d0b85e..fe656ca5b 100644
--- a/src/inkview.cpp
+++ b/src/inkview.cpp
@@ -34,6 +34,8 @@
 #include 
 #include 
 
+#include 
+#include 
 #include 
 
 // #include 
@@ -66,28 +68,38 @@
 extern char *optarg;
 extern int  optind, opterr;
 
-struct SPSlideShow {
-    char **slides;
-    int size;
-    int length;
+class SPSlideShow {
+public:
+    std::vector slides;
     int current;
     SPDocument *doc;
     GtkWidget *view;
     GtkWidget *window;
     bool fullscreen;
     int timer;
-};
 
-static GtkWidget *sp_svgview_control_show (struct SPSlideShow *ss);
-static void sp_svgview_show_next (struct SPSlideShow *ss);
-static void sp_svgview_show_prev (struct SPSlideShow *ss);
-static void sp_svgview_goto_first (struct SPSlideShow *ss);
-static void sp_svgview_goto_last (struct SPSlideShow *ss);
+    SPSlideShow()
+        :
+            slides(),
+            current(0),
+            doc(NULL),
+            view(NULL),
+            fullscreen(false)
+    {}
+
+    GtkWidget *control_show();
+    void       show_next();
+    void       show_prev();
+    void       goto_first();
+    void       goto_last();
+
+protected:
+    void       waiting_cursor();
+    void       normal_cursor();
+    void       set_document(SPDocument *doc,
+                            int         current);
+};
 
-static int sp_svgview_show_next_cb (GtkWidget *widget, void *data);
-static int sp_svgview_show_prev_cb (GtkWidget *widget, void *data);
-static int sp_svgview_goto_first_cb (GtkWidget *widget, void *data);
-static int sp_svgview_goto_last_cb (GtkWidget *widget, void *data);
 #ifdef WITH_INKJAR
 static bool is_jar(char const *filename);
 #endif
@@ -114,11 +126,11 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/,
     switch (event->keyval) {
         case GDK_KEY_Up:
         case GDK_KEY_Home:
-            sp_svgview_goto_first(ss);
+            ss->goto_first();
             break;
         case GDK_KEY_Down:
         case GDK_KEY_End:
-            sp_svgview_goto_last(ss);
+            ss->goto_last();
             break;
         case GDK_KEY_F11:
             if (ss->fullscreen) {
@@ -130,19 +142,19 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/,
             }
             break;
         case GDK_KEY_Return:
-            sp_svgview_control_show (ss);
+            ss->control_show();
         break;
         case GDK_KEY_KP_Page_Down:
         case GDK_KEY_Page_Down:
         case GDK_KEY_Right:
         case GDK_KEY_space:
-            sp_svgview_show_next (ss);
+            ss->show_next();
         break;
         case GDK_KEY_KP_Page_Up:
         case GDK_KEY_Page_Up:
         case GDK_KEY_Left:
         case GDK_KEY_BackSpace:
-            sp_svgview_show_prev (ss);
+            ss->show_prev();
             break;
         case GDK_KEY_Escape:
         case GDK_KEY_q:
@@ -167,9 +179,8 @@ int main (int argc, const char **argv)
 
     Gtk::Main main_instance (&argc, const_cast(&argv));
 
-    struct SPSlideShow ss;
-
     int num_parsed_options = 0;
+    SPSlideShow ss;
 
     // the list of arguments is in the net line
     for (int i = 1; i < argc; i++) {
@@ -215,15 +226,6 @@ int main (int argc, const char **argv)
 
     setlocale (LC_NUMERIC, "C");
 
-    ss.size = 32;
-    ss.length = 0;
-    ss.current = 0;
-    ss.slides = g_new (char *, ss.size);
-    ss.current = 0;
-    ss.doc = NULL;
-    ss.view = NULL;
-    ss.fullscreen = false;
-
     Inkscape::Application::create(argv[0], true);
     //Inkscape::Application &inkscape = Inkscape::Application::instance();
 
@@ -254,21 +256,13 @@ int main (int argc, const char **argv)
                             }
                         }
                     } else if (gba->len > 0) {
-                        //::write(1, gba->data, gba->len);
-                        /* Append to list */
-                        if (ss.length >= ss.size) {
-                            /* Expand */
-                            ss.size <<= 1;
-                            ss.slides = g_renew (char *, ss.slides, ss.size);
-                        }
-
                         ss.doc = SPDocument::createNewDocFromMem ((const gchar *)gba->data,
                                            gba->len,
                                            TRUE);
                         gchar *last_filename = jar_file_reader.get_last_filename();
                         if (ss.doc) {
-                            ss.slides[ss.length++] = strdup (last_filename);
-                            (ss.doc)->setUri (last_filename);
+                            ss.slides.push_back(strdup(last_filename));
+                            (ss.doc)->setUri(last_filename);
                         }
                         g_byte_array_free(gba, TRUE);
                         g_free(last_filename);
@@ -279,16 +273,10 @@ int main (int argc, const char **argv)
             } else {
     #endif /* WITH_INKJAR */
             /* Append to list */
-            if (ss.length >= ss.size) {
-                /* Expand */
-                ss.size <<= 1;
-                ss.slides = g_renew (char *, ss.slides, ss.size);
-            }
-
-            ss.slides[ss.length++] = strdup (argv[i]);
+            ss.slides.push_back(strdup (argv[i]));
 
             if (!ss.doc) {
-                ss.doc = SPDocument::createNewDoc (ss.slides[ss.current], TRUE, false);
+                ss.doc = SPDocument::createNewDoc((ss.slides[ss.current]).c_str(), TRUE, false);
                 if (!ss.doc) {
                     ++ss.current;
                 }
@@ -335,56 +323,48 @@ static int sp_svgview_ctrlwin_delete (GtkWidget */*widget*/,
     return FALSE;
 }
 
-static GtkWidget* sp_svgview_control_show(struct SPSlideShow *ss)
+/**
+ * @brief Show the control buttons (next, previous etc) for the application
+ */
+GtkWidget* SPSlideShow::control_show()
 {
     if (!ctrlwin) {
         ctrlwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
         gtk_window_set_resizable(GTK_WINDOW(ctrlwin), FALSE);
-        gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(ss->window));
-        g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, ss);
+        gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(window));
+        g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, this);
         g_signal_connect(G_OBJECT (ctrlwin), "delete_event", (GCallback) sp_svgview_ctrlwin_delete, NULL);
         auto t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
         gtk_container_add(GTK_CONTAINER(ctrlwin), t);
 
-#if GTK_CHECK_VERSION(3,10,0)
-        GtkWidget *b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-first"), GTK_ICON_SIZE_BUTTON);
-#else
-        GtkWidget *b   = gtk_button_new();
-        GtkWidget *img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-first"), GTK_ICON_SIZE_BUTTON);
-        gtk_button_set_image(GTK_BUTTON(b), img);
-#endif
-        gtk_container_add(GTK_CONTAINER(t), b);
-
-        g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_goto_first_cb, ss);
-#if GTK_CHECK_VERSION(3,10,0)
-        b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-previous"), GTK_ICON_SIZE_BUTTON);
-#else
-        b = gtk_button_new();
-        img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-previous"), GTK_ICON_SIZE_BUTTON);
-        gtk_button_set_image(GTK_BUTTON(b), img);
-#endif
-        gtk_container_add(GTK_CONTAINER(t), b);
-
-        g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_show_prev_cb, ss);
-#if GTK_CHECK_VERSION(3,10,0)
-        b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-next"), GTK_ICON_SIZE_BUTTON);
-#else
-        b = gtk_button_new();
-        img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-next"), GTK_ICON_SIZE_BUTTON);
-        gtk_button_set_image(GTK_BUTTON(b), img);
-#endif
-        gtk_container_add(GTK_CONTAINER(t), b);
-
-        g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_show_next_cb, ss);
-#if GTK_CHECK_VERSION(3,10,0)
-        b = gtk_button_new_from_icon_name(INKSCAPE_ICON("go-last"), GTK_ICON_SIZE_BUTTON);
-#else
-        b = gtk_button_new();
-        img = gtk_image_new_from_icon_name(INKSCAPE_ICON("go-last"), GTK_ICON_SIZE_BUTTON);
-        gtk_button_set_image(GTK_BUTTON(b), img);
-#endif
-        gtk_container_add(GTK_CONTAINER(t), b);
-        g_signal_connect(G_OBJECT(b), "clicked", (GCallback) sp_svgview_goto_last_cb, ss);
+        auto btn_go_first = Gtk::manage(new Gtk::Button());
+        auto img_go_first = Gtk::manage(new Gtk::Image());
+        img_go_first->set_from_icon_name(INKSCAPE_ICON("go-first"), Gtk::ICON_SIZE_BUTTON);
+        btn_go_first->set_image(*img_go_first);
+        gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_first->gobj()));
+        btn_go_first->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::goto_first));
+        
+        auto btn_go_prev = Gtk::manage(new Gtk::Button());
+        auto img_go_prev = Gtk::manage(new Gtk::Image());
+        img_go_prev->set_from_icon_name(INKSCAPE_ICON("go-previous"), Gtk::ICON_SIZE_BUTTON);
+        btn_go_prev->set_image(*img_go_prev);
+        gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_prev->gobj()));
+        btn_go_prev->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::show_prev));
+        
+        auto btn_go_next = Gtk::manage(new Gtk::Button());
+        auto img_go_next = Gtk::manage(new Gtk::Image());
+        img_go_next->set_from_icon_name(INKSCAPE_ICON("go-next"), Gtk::ICON_SIZE_BUTTON);
+        btn_go_next->set_image(*img_go_next);
+        gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_next->gobj()));
+        btn_go_next->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::show_next));
+        
+        auto btn_go_last = Gtk::manage(new Gtk::Button());
+        auto img_go_last = Gtk::manage(new Gtk::Image());
+        img_go_last->set_from_icon_name(INKSCAPE_ICON("go-last"), Gtk::ICON_SIZE_BUTTON);
+        btn_go_last->set_image(*img_go_last);
+        gtk_container_add(GTK_CONTAINER(t), GTK_WIDGET(btn_go_last->gobj()));
+        btn_go_last->signal_clicked().connect(sigc::mem_fun(*this, &SPSlideShow::goto_last));
+
         gtk_widget_show_all(ctrlwin);
     } else {
         gtk_window_present(GTK_WINDOW(ctrlwin));
@@ -393,35 +373,11 @@ static GtkWidget* sp_svgview_control_show(struct SPSlideShow *ss)
     return NULL;
 }
 
-static int sp_svgview_show_next_cb (GtkWidget */*widget*/, void *data)
-{
-    sp_svgview_show_next(static_cast(data));
-    return FALSE;
-}
-
-static int sp_svgview_show_prev_cb (GtkWidget */*widget*/, void *data)
-{
-    sp_svgview_show_prev(static_cast(data));
-    return FALSE;
-}
-
-static int sp_svgview_goto_first_cb (GtkWidget */*widget*/, void *data)
-{
-    sp_svgview_goto_first(static_cast(data));
-    return FALSE;
-}
-
-static int sp_svgview_goto_last_cb (GtkWidget */*widget*/, void *data)
-{
-    sp_svgview_goto_last(static_cast(data));
-    return FALSE;
-}
-
-static void sp_svgview_waiting_cursor(struct SPSlideShow *ss)
+void SPSlideShow::waiting_cursor()
 {
     GdkDisplay *display = gdk_display_get_default();
     GdkCursor  *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
-    gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), waiting);
+    gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), waiting);
     g_object_unref(waiting);
     if (ctrlwin) {
         GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
@@ -433,90 +389,91 @@ static void sp_svgview_waiting_cursor(struct SPSlideShow *ss)
     }
 }
 
-static void sp_svgview_normal_cursor(struct SPSlideShow *ss)
+void SPSlideShow::normal_cursor()
 {
-   gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), NULL);
+    gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), NULL);
     if (ctrlwin) {
         gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), NULL);
     }
 }
 
-static void sp_svgview_set_document(struct SPSlideShow *ss,
-                                    SPDocument *doc,
-                                    int current)
+void SPSlideShow::set_document(SPDocument *doc,
+                               int         current)
 {
-    if (doc && doc != ss->doc) {
+    if (doc && doc != this->doc) {
         doc->ensureUpToDate();
-        reinterpret_cast(SP_VIEW_WIDGET_VIEW (ss->view))->setDocument (doc);
-        ss->doc = doc;
-        ss->current = current;
+        reinterpret_cast(SP_VIEW_WIDGET_VIEW (view))->setDocument (doc);
+        this->doc = doc;
+        this->current = current;
     }
 }
 
-static void sp_svgview_show_next (struct SPSlideShow *ss)
+/**
+ * @brief Show the next file in the slideshow
+ */
+void SPSlideShow::show_next()
 {
-    sp_svgview_waiting_cursor(ss);
+    waiting_cursor();
 
     SPDocument *doc = NULL;
-    int current = ss->current;
-    while (!doc && (current < ss->length - 1)) {
-        doc = SPDocument::createNewDoc (ss->slides[++current], TRUE, false);
+    while (!doc && (current < slides.size() - 1)) {
+        doc = SPDocument::createNewDoc ((slides[++current]).c_str(), TRUE, false);
     }
 
-    sp_svgview_set_document(ss, doc, current);
-
-    sp_svgview_normal_cursor(ss);
+    set_document(doc, current);
+    normal_cursor();
 }
 
-static void sp_svgview_show_prev (struct SPSlideShow *ss)
+/**
+ * @brief Show the previous file in the slideshow
+ */
+void SPSlideShow::show_prev()
 {
-    sp_svgview_waiting_cursor(ss);
+    waiting_cursor();
 
     SPDocument *doc = NULL;
-    int current = ss->current;
     while (!doc && (current > 0)) {
-        doc = SPDocument::createNewDoc (ss->slides[--current], TRUE, false);
+        doc = SPDocument::createNewDoc ((slides[--current]).c_str(), TRUE, false);
     }
 
-    sp_svgview_set_document(ss, doc, current);
-
-    sp_svgview_normal_cursor(ss);
+    set_document(doc, current);
+    normal_cursor();
 }
 
-static void sp_svgview_goto_first (struct SPSlideShow *ss)
+/**
+ * @brief Switch to first slide in slideshow
+ */
+void SPSlideShow::goto_first()
 {
-    sp_svgview_waiting_cursor(ss);
+    waiting_cursor();
 
     SPDocument *doc = NULL;
     int current = 0;
-    while ( !doc && (current < ss->length - 1)) {
-        if (current == ss->current) {
-            break;
-        }
-        doc = SPDocument::createNewDoc (ss->slides[current++], TRUE, false);
+    while ( !doc && (current < slides.size() - 1)) {
+        doc = SPDocument::createNewDoc((slides[current++]).c_str(), TRUE, false);
     }
 
-    sp_svgview_set_document(ss, doc, current - 1);
+    set_document(doc, current - 1);
 
-    sp_svgview_normal_cursor(ss);
+    normal_cursor();
 }
 
-static void sp_svgview_goto_last (struct SPSlideShow *ss)
+/**
+ * @brief Switch to last slide in slideshow
+ */
+void SPSlideShow::goto_last()
 {
-    sp_svgview_waiting_cursor(ss);
+    waiting_cursor();
 
     SPDocument *doc = NULL;
-    int current = ss->length - 1;
+    int current = slides.size() - 1;
     while (!doc && (current >= 0)) {
-        if (current == ss->current) {
-            break;
-        }
-        doc = SPDocument::createNewDoc (ss->slides[current--], TRUE, false);
+        doc = SPDocument::createNewDoc((slides[current--]).c_str(), TRUE, false);
     }
 
-    sp_svgview_set_document(ss, doc, current + 1);
+    set_document(doc, current + 1);
 
-    sp_svgview_normal_cursor(ss);
+    normal_cursor();
 }
 
 #ifdef WITH_INKJAR
-- 
cgit v1.2.3


From 75c4b2b43058668f2c94b27db858763d0b1f308c Mon Sep 17 00:00:00 2001
From: Alex Valavanis 
Date: Sun, 14 Aug 2016 13:16:27 +0100
Subject: inkview: Convert to ApplicationWindow

(bzr r15057)
---
 src/inkview.cpp | 94 +++++++++++++++++++++++++++------------------------------
 1 file changed, 45 insertions(+), 49 deletions(-)

diff --git a/src/inkview.cpp b/src/inkview.cpp
index fe656ca5b..b9447a94f 100644
--- a/src/inkview.cpp
+++ b/src/inkview.cpp
@@ -34,6 +34,7 @@
 #include 
 #include 
 
+#include 
 #include 
 #include 
 #include 
@@ -68,15 +69,19 @@
 extern char *optarg;
 extern int  optind, opterr;
 
-class SPSlideShow {
+/**
+ * The main application window for the slideshow
+ */
+class SPSlideShow : public Gtk::ApplicationWindow {
 public:
-    std::vector slides;
-    int current;
-    SPDocument *doc;
-    GtkWidget *view;
-    GtkWidget *window;
-    bool fullscreen;
-    int timer;
+    std::vector  slides;  ///< List of filenames for each slide
+    int                       current; ///< Index of the currently displayed slide
+    SPDocument               *doc;     ///< The currently displayed slide
+    GtkWidget                *view;
+    int                       timer;
+    
+    /// Current state of application (full-screen or windowed)
+    bool is_fullscreen;
 
     SPSlideShow()
         :
@@ -84,20 +89,20 @@ public:
             current(0),
             doc(NULL),
             view(NULL),
-            fullscreen(false)
+            is_fullscreen(false)
     {}
 
-    GtkWidget *control_show();
-    void       show_next();
-    void       show_prev();
-    void       goto_first();
-    void       goto_last();
+    void control_show();
+    void show_next();
+    void show_prev();
+    void goto_first();
+    void goto_last();
 
 protected:
-    void       waiting_cursor();
-    void       normal_cursor();
-    void       set_document(SPDocument *doc,
-                            int         current);
+    void waiting_cursor();
+    void normal_cursor();
+    void set_document(SPDocument *doc,
+                      int         current);
 };
 
 #ifdef WITH_INKJAR
@@ -133,12 +138,12 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/,
             ss->goto_last();
             break;
         case GDK_KEY_F11:
-            if (ss->fullscreen) {
-                gtk_window_unfullscreen (GTK_WINDOW(ss->window));
-                ss->fullscreen = false;
+            if (ss->is_fullscreen) {
+                ss->unfullscreen();
+                ss->is_fullscreen = false;
             } else {
-                gtk_window_fullscreen (GTK_WINDOW(ss->window));
-                ss->fullscreen = true;
+                ss->fullscreen();
+                ss->is_fullscreen = true;
             }
             break;
         case GDK_KEY_Return:
@@ -164,7 +169,8 @@ static int sp_svgview_main_key_press (GtkWidget */*widget*/,
         default:
             break;
     }
-    gtk_window_set_title(GTK_WINDOW(ss->window), ss->doc->getName());
+
+    ss->set_title(ss->doc->getName());
     return TRUE;
 }
 
@@ -202,7 +208,6 @@ int main (int argc, const char **argv)
         }
     }
 
-    GtkWidget *w;
     int i;
 
     bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
@@ -214,8 +219,6 @@ int main (int argc, const char **argv)
     Inkscape::GC::init();
     Inkscape::Preferences::get(); // ensure preferences are initialized
 
-    gtk_init (&argc, (char ***) &argv);
-
 #ifdef lalaWITH_MODULES
     g_warning ("Have to autoinit modules (lauris)");
     sp_modulesys_init();
@@ -291,24 +294,21 @@ int main (int argc, const char **argv)
        return 1; /* none of the slides loadable */
     }
     
-    w = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-    gtk_window_set_title( GTK_WINDOW(w), ss.doc->getName() );
-    gtk_window_set_default_size (GTK_WINDOW (w),
-                MIN ((int)(ss.doc)->getWidth().value("px"), (int)gdk_screen_width() - 64),
-                MIN ((int)(ss.doc)->getHeight().value("px"), (int)gdk_screen_height() - 64));
-    ss.window = w;
+    ss.set_title(ss.doc->getName() );
+    ss.set_default_size(MIN ((int)(ss.doc)->getWidth().value("px"), (int)gdk_screen_width() - 64),
+                        MIN ((int)(ss.doc)->getHeight().value("px"), (int)gdk_screen_height() - 64));
 
-    g_signal_connect (G_OBJECT (w), "delete_event", (GCallback) sp_svgview_main_delete, &ss);
-    g_signal_connect (G_OBJECT (w), "key_press_event", (GCallback) sp_svgview_main_key_press, &ss);
+    g_signal_connect (G_OBJECT (ss.gobj()), "delete_event", (GCallback) sp_svgview_main_delete, &ss);
+    g_signal_connect (G_OBJECT (ss.gobj()), "key_press_event", (GCallback) sp_svgview_main_key_press, &ss);
 
     (ss.doc)->ensureUpToDate();
     ss.view = sp_svg_view_widget_new (ss.doc);
     (ss.doc)->doUnref ();
     SP_SVG_VIEW_WIDGET(ss.view)->setResize( false, ss.doc->getWidth().value("px"), ss.doc->getHeight().value("px") );
     gtk_widget_show (ss.view);
-    gtk_container_add (GTK_CONTAINER (w), ss.view);
+    ss.add(*Glib::wrap(ss.view));
 
-    gtk_widget_show (w);
+    ss.show();
 
     gtk_main ();
 
@@ -326,12 +326,12 @@ static int sp_svgview_ctrlwin_delete (GtkWidget */*widget*/,
 /**
  * @brief Show the control buttons (next, previous etc) for the application
  */
-GtkWidget* SPSlideShow::control_show()
+void SPSlideShow::control_show()
 {
     if (!ctrlwin) {
         ctrlwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
         gtk_window_set_resizable(GTK_WINDOW(ctrlwin), FALSE);
-        gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(window));
+        gtk_window_set_transient_for(GTK_WINDOW(ctrlwin), GTK_WINDOW(this->gobj()));
         g_signal_connect(G_OBJECT (ctrlwin), "key_press_event", (GCallback) sp_svgview_main_key_press, this);
         g_signal_connect(G_OBJECT (ctrlwin), "delete_event", (GCallback) sp_svgview_ctrlwin_delete, NULL);
         auto t = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
@@ -369,20 +369,16 @@ GtkWidget* SPSlideShow::control_show()
     } else {
         gtk_window_present(GTK_WINDOW(ctrlwin));
     }
-
-    return NULL;
 }
 
 void SPSlideShow::waiting_cursor()
 {
-    GdkDisplay *display = gdk_display_get_default();
-    GdkCursor  *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
-    gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), waiting);
-    g_object_unref(waiting);
+    auto display = Gdk::Display::get_default();
+    auto waiting = Gdk::Cursor::create(display, Gdk::WATCH);
+    get_window()->set_cursor(waiting);
+    
     if (ctrlwin) {
-        GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH);
-        gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting);
-        g_object_unref(waiting);
+        gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting->gobj());
     }
     while(gtk_events_pending()) {
        gtk_main_iteration();
@@ -391,7 +387,7 @@ void SPSlideShow::waiting_cursor()
 
 void SPSlideShow::normal_cursor()
 {
-    gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window)), NULL);
+    get_window()->set_cursor();
     if (ctrlwin) {
         gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), NULL);
     }
-- 
cgit v1.2.3