diff --git a/qbs/pluginspec/pluginspec.qbs b/qbs/pluginspec/pluginspec.qbs index d9e10be634b3cc90cefc650d7ea630331df53bcf..c8c0908485251b64784615a6f10fdc16c961dc72 100644 --- a/qbs/pluginspec/pluginspec.qbs +++ b/qbs/pluginspec/pluginspec.qbs @@ -18,11 +18,6 @@ Module { var cmd = new JavaScriptCommand(); cmd.description = "prepare " + FileInfo.fileName(output.fileName); cmd.highlight = "codegen"; - cmd.ide_version_major = project.ide_version_major; - cmd.ide_version_minor = project.ide_version_minor; - cmd.ide_version_release = project.ide_version_release; - cmd.qtcreator_version = cmd.ide_version_major + '.' + cmd.ide_version_minor + '.' + cmd.ide_version_release; - cmd.pluginspecreplacements = product.pluginspecreplacements; cmd.plugin_depends = []; var deps = product.dependencies; @@ -45,16 +40,16 @@ Module { // replace quoted quotes all = all.replace(/\\\"/g, '"'); // replace config vars - vars['QTCREATOR_VERSION'] = qtcreator_version; - vars['IDE_VERSION_MAJOR'] = ide_version_major; - vars['IDE_VERSION_MINOR'] = ide_version_minor; - vars['IDE_VERSION_RELEASE'] = ide_version_release; + vars['QTCREATOR_VERSION'] = project.qtcreator_version; + vars['IDE_VERSION_MAJOR'] = project.ide_version_major; + vars['IDE_VERSION_MINOR'] = project.ide_version_minor; + vars['IDE_VERSION_RELEASE'] = project.ide_version_release; var deplist = ["<dependencyList>"]; for (i in plugin_depends) { - deplist.push(" <dependency name=\"" + plugin_depends[i] + "\" version=\"" + qtcreator_version + "\"/>"); + deplist.push(" <dependency name=\"" + plugin_depends[i] + "\" version=\"" + project.qtcreator_version + "\"/>"); } for (i in plugin_recommends) { - deplist.push(" <dependency name=\"" + plugin_recommends[i] + "\" version=\"" + qtcreator_version + "\" type=\"optional\"/>"); + deplist.push(" <dependency name=\"" + plugin_recommends[i] + "\" version=\"" + project.qtcreator_version + "\" type=\"optional\"/>"); } deplist.push(" </dependencyList>"); vars['dependencyList'] = deplist.join("\n"); diff --git a/share/qtcreator/dumper/gbridge.py b/share/qtcreator/dumper/gbridge.py index 1754af35ef3b3e430477f807af4ae7052c1b24ee..3995453ec9cec33bfe37075aa2f32e5d4bc712eb 100644 --- a/share/qtcreator/dumper/gbridge.py +++ b/share/qtcreator/dumper/gbridge.py @@ -1777,6 +1777,12 @@ class Dumper: self.put('",') return True + def isReferenceType(self, typeobj): + return typeobj.code == gdb.TYPE_CODE_REF + + def isStructType(self, typeobj): + return typeobj.code == gdb.TYPE_CODE_STRUCT + def putPlotData(self, type, base, n, plotFormat): if self.isExpanded(): self.putArrayData(type, base, n) diff --git a/share/qtcreator/dumper/lbridge.py b/share/qtcreator/dumper/lbridge.py index f1d49e8e0d868038a45feacfc1eb764e002e263a..1dcb490fde141e9a3ee5d397e557bd38050403fe 100644 --- a/share/qtcreator/dumper/lbridge.py +++ b/share/qtcreator/dumper/lbridge.py @@ -73,9 +73,6 @@ DisplayLatin1String, \ DisplayUtf8String \ = range(7) -def lookupType(name): - return None - def isSimpleType(typeobj): typeClass = typeobj.GetTypeClass() #warn("TYPECLASS: %s" % typeClass) @@ -179,36 +176,7 @@ def fileName(file): return str(file) if file.IsValid() else '' -PointerCode = None -ArrayCode = None -StructCode = None -UnionCode = None -EnumCode = None -FlagsCode = None -FunctionCode = None -IntCode = None -FloatCode = None -VoidCode = None -SetCode = None -RangeCode = None -StringCode = None -BitStringCode = None -ErrorTypeCode = None -MethodCode = None -MethodPointerCode = None -MemberPointerCode = None -ReferenceCode = None -CharCode = None -BoolCode = None -ComplexCode = None -TypedefCode = None -NamespaceCode = None -SimpleValueCode = None # LLDB only - - # Data members -SimpleValueCode = 100 -StructCode = 101 PointerCode = 102 # Breakpoints. Keep synchronized with BreakpointType in breakpoint.h @@ -245,7 +213,7 @@ def checkPointer(p, align = 1): p.Dereference() def isNull(p): - return long(p) == 0 + return p.GetValueAsUnsigned() == 0 Value = lldb.SBValue @@ -290,7 +258,16 @@ def impl_SBValue__le__(self, other): def impl_SBValue__int__(self): return self.GetValueAsSigned() - #return int(self.GetValue(), 0) + +def impl_SBValue__float__(self): + error = lldb.SBError() + if self.GetType().GetByteSize() == 4: + result = self.GetData().GetFloat(error, 0) + else: + result = self.GetData().GetDouble(error, 0) + if error.Success(): + return result + return NotImplemented def impl_SBValue__long__(self): return int(self.GetValue(), 0) @@ -318,6 +295,7 @@ lldb.SBValue.__le__ = impl_SBValue__le__ lldb.SBValue.__getitem__ = impl_SBValue__getitem__ lldb.SBValue.__int__ = impl_SBValue__int__ +lldb.SBValue.__float__ = impl_SBValue__float__ lldb.SBValue.__long__ = lambda self: long(self.GetValue(), 0) lldb.SBValue.code = lambda self: self.GetTypeClass() @@ -325,12 +303,13 @@ lldb.SBValue.cast = lambda self, typeObj: self.Cast(typeObj) lldb.SBValue.dereference = lambda self: self.Dereference() lldb.SBValue.address = property(lambda self: self.GetAddress()) -lldb.SBType.unqualified = lambda self: self.GetUnqualifiedType() lldb.SBType.pointer = lambda self: self.GetPointerType() lldb.SBType.code = lambda self: self.GetTypeClass() lldb.SBType.sizeof = property(lambda self: self.GetByteSize()) +lldb.SBType.unqualified = \ + lambda self: self.GetUnqualifiedType() if hasattr(self, 'GetUnqualifiedType') else self lldb.SBType.strip_typedefs = \ lambda self: self.GetCanonicalType() if hasattr(self, 'GetCanonicalType') else self @@ -340,9 +319,6 @@ lldb.SBType.__str__ = lldb.SBType.GetName def simpleEncoding(typeobj): code = typeobj.GetTypeClass() size = typeobj.sizeof - #if code == BoolCode or code == CharCode: - # return Hex2EncodedInt1 - #if code == IntCode: if code == lldb.eTypeClassBuiltin: name = str(typeobj) if name == "float": @@ -390,7 +366,7 @@ class Children: #if isSimpleType(childType): # self.d.put('childnumchild="0",') # self.childNumChild = 0 - #elif childType.code == PointerCode: + #elif childType.code == lldb.eTypeClassPointer: # self.d.put('childnumchild="1",') # self.childNumChild = 1 else: @@ -469,6 +445,8 @@ class SubItem: self.d.put('{') #if not self.name is None: if isinstance(self.name, str): + if self.name == '**&': + self.name = '*' self.d.put('name="%s",' % self.name) self.savedIName = self.d.currentIName self.savedCurrentAddress = self.d.currentAddress @@ -597,7 +575,7 @@ class Dumper: def templateArgument(self, typeobj, index): type = typeobj.GetTemplateArgumentType(index) - if len(type.GetName()): + if type.IsValid(): return type inner = self.extractTemplateArgument(typeobj.GetName(), index) return self.lookupType(inner) @@ -606,6 +584,12 @@ class Dumper: inner = self.extractTemplateArgument(typeobj.GetName(), index) return int(inner) + def isReferenceType(self, typeobj): + return typeobj.IsReferenceType() + + def isStructType(self, typeobj): + return typeobj.GetTypeClass() in (lldb.eTypeClassStruct, lldb.eTypeClassClass) + def qtVersion(self): return 0x050000 @@ -678,9 +662,8 @@ class Dumper: return format def isMovableType(self, type): - if type.code == PointerCode: - return True - if isSimpleType(type): + if type.GetTypeClass() in (lldb.eTypeClassBuiltin, + lldb.eTypeClassPointer): return True return self.stripNamespaceFromType(type.GetName()) in movableTypes @@ -745,7 +728,7 @@ class Dumper: return True def putPlotData(self, type, base, n, plotFormat): - warn("PLOTDATA: %s %s" % (type, n)) + #warn("PLOTDATA: %s %s" % (type, n)) if self.isExpanded(): self.putArrayData(type, base, n) self.putValue(self.currentValue) @@ -754,7 +737,7 @@ class Dumper: def putArrayData(self, type, base, n, childNumChild = None, maxNumChild = 10000): if not self.tryPutArrayContents(type, base, n): - base = base.cast(type.pointer()) + base = self.createPointerValue(base, type) with Children(self, n, type, childNumChild, maxNumChild, base, type.GetByteSize()): for i in self.childRange(): @@ -789,9 +772,14 @@ class Dumper: self.putFields(value) def lookupType(self, name): + if name.endswith('*'): + type = self.lookupType(name[:-1].strip()) + return type.GetPointerType() if type.IsValid() else None #warn("LOOKUP TYPE NAME: %s" % name) #warn("LOOKUP RESULT: %s" % self.target.FindFirstType(name)) - return self.target.FindFirstType(name) + #warn("LOOKUP RESULT: %s" % self.target.FindFirstType(name)) + type = self.target.FindFirstType(name) + return type if type.IsValid() else None def setupInferior(self, args): executable = args['executable'] @@ -942,6 +930,17 @@ class Dumper: contents = self.process.ReadMemory(base, size, error) return binascii.hexlify(contents) + def isQObject(self, value): + try: + vtable = value.Cast(self.voidPtrType().GetPointerType()) + metaObjectEntry = vtable.Dereference() + addr = lldb.SBAddress(long(metaObjectEntry), self.target) + symbol = addr.GetSymbol() + name = symbol.GetMangledName() + return name.find("10metaObjectEv") > 0 + except: + return False + def computeLimit(self, size, limit): if limit is None: return size @@ -967,6 +966,10 @@ class Dumper: pos1 = type.rfind(">", pos) type = type[0:pos] + type[pos1+1:] pos = type.find("<") + if type.startswith("const "): + type = type[6:] + if type.startswith("volatile "): + type = type[9:] return type def putSubItem(self, component, value, tryDynamic=True): @@ -987,6 +990,7 @@ class Dumper: #value = value.GetDynamicValue(lldb.eDynamicCanRunTarget) typeName = value.GetTypeName() value.SetPreferDynamicValue(tryDynamic) + typeClass = value.GetType().GetTypeClass() if tryDynamic: self.putAddress(value.address) @@ -1016,42 +1020,72 @@ class Dumper: self.putItem(child) return + # Typedefs + if typeClass == lldb.eTypeClassTypedef: + if typeName in qqDumpers: + self.putType(typeName) + self.context = value + qqDumpers[typeName](self, value) + return + realType = value.GetType() + if hasattr(realType, 'GetCanonicalType'): + realType = realType.GetCanonicalType() + value = value.Cast(realType.unqualified()) + self.putItem(value) + self.putBetterType(typeName) + return + # Our turf now. value.SetPreferSyntheticValue(False) # Arrays - if value.GetType().GetTypeClass() == lldb.eTypeClassArray: + if typeClass == lldb.eTypeClassArray: qdump____c_style_array__(self, value) return # References if value.GetType().IsReferenceType(): origType = value.GetTypeName(); - type = value.GetType().GetDereferencedType() - addr = int(value.GetAddress()) & 0xFFFFFFFFFFFFFFFF + type = value.GetType().GetDereferencedType().unqualified() + addr = int(value) & 0xFFFFFFFFFFFFFFFF self.putItem(value.CreateValueFromAddress(None, addr, type)) + #self.putItem(value.CreateValueFromData(None, value.GetData(), type)) self.putBetterType(origType) return # Pointers - if value.GetType().IsPointerType() and self.autoDerefPointers: - + if value.GetType().IsPointerType(): if isNull(value): self.putType(typeName) self.putValue("0x0") self.putNumChild(0) return - innerType = value.GetType().GetPointeeType() - self.putType(innerType) - savedCurrentChildType = self.currentChildType - self.currentChildType = str(innerType) - inner = value.Dereference() - if inner.IsValid(): - self.putItem(inner) - self.currentChildType = savedCurrentChildType - self.put('origaddr="%s",' % value.address) - return + if self.autoDerefPointers: + innerType = value.GetType().GetPointeeType().unqualified() + self.putType(innerType) + savedCurrentChildType = self.currentChildType + self.currentChildType = str(innerType) + inner = value.Dereference() + if inner.IsValid(): + self.putItem(inner) + self.currentChildType = savedCurrentChildType + self.put('origaddr="%s",' % value.address) + return + + else: + numchild = value.GetNumChildren() + self.put('iname="%s",' % self.currentIName) + self.putType(typeName) + self.putValue('0x%x' % value.GetValueAsUnsigned()) + self.put('numchild="1",') + self.put('addr="0x%x",' % value.GetLoadAddress()) + if self.currentIName in self.expandedINames: + with Children(self): + child = value.Dereference() + with SubItem(self, child): + self.putItem(child) + #warn("VALUE: %s" % value) #warn("FANCY: %s" % self.useFancy) @@ -1066,12 +1100,24 @@ class Dumper: return # Normal value - v = value.GetValue() #numchild = 1 if value.MightHaveChildren() else 0 numchild = value.GetNumChildren() self.put('iname="%s",' % self.currentIName) self.putType(typeName) - self.putValue('' if v is None else v) + if typeClass == lldb.eTypeClassStruct or typeClass == lldb.eTypeClassClass: + if self.isQObject(value): + self.context = value + if not self.putQObjectNameValue(value): # Is this too expensive? + self.putEmptyValue() + else: + self.putEmptyValue() + else: + v = value.GetValue() + if v: + self.putValue(v) + else: + self.putEmptyValue() + self.put('numchild="%s",' % numchild) self.put('addr="0x%x",' % value.GetLoadAddress()) if self.currentIName in self.expandedINames: @@ -1079,6 +1125,14 @@ class Dumper: self.putFields(value) def putFields(self, value): + # Suppress printing of 'name' field for arrays. + if value.GetType().GetTypeClass() == lldb.eTypeClassArray: + for i in xrange(value.GetNumChildren()): + child = value.GetChildAtIndex(i) + with UnnamedSubItem(self, "%d" % (i + 1)): + self.putItem(child) + return + n = value.GetNumChildren() m = value.GetType().GetNumberOfDirectBaseClasses() if n > 10000: @@ -1094,8 +1148,9 @@ class Dumper: self.putItem(child) for i in xrange(m, n): child = value.GetChildAtIndex(i) - with SubItem(self, child): - self.putItem(child) + if child.IsValid(): # FIXME: Anon members? + with SubItem(self, child): + self.putItem(child) def reportVariables(self, _ = None): frame = self.currentThread().GetSelectedFrame() diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py index 0b101ead969ac7afad9cc04538d33f9ebf59830e..5e04e4f727de2523175334b0d12b5fa3996d8520 100644 --- a/share/qtcreator/dumper/qttypes.py +++ b/share/qtcreator/dumper/qttypes.py @@ -161,7 +161,7 @@ def qPutQObjectNameValue(d, value): # - QDynamicMetaObjectData *metaObject; extra = d.dereference(dd + 5 * ptrSize + 2 * intSize) if extra == 0: - return + return False # Offset of objectName in ExtraData: 6 pointer # - QVector<QObjectUserData *> userData; only #ifndef QT_NO_USERDATA @@ -174,9 +174,12 @@ def qPutQObjectNameValue(d, value): data, size, alloc = qByteArrayData(d, objectName) - if size > 0: - str = d.readRawMemory(data, 2 * size) - d.putValue(str, Hex4EncodedLittleEndian, 1) + if size == 0: + return False + + str = d.readRawMemory(data, 2 * size) + d.putValue(str, Hex4EncodedLittleEndian, 1) + return True except: pass @@ -187,24 +190,24 @@ Dumper.putQObjectNameValue = qPutQObjectNameValue def qdump__QAtomicInt(d, value): - d.putValue(value["_q_value"]) + d.putValue(int(value["_q_value"])) d.putNumChild(0) def qdump__QBasicAtomicInt(d, value): - d.putValue(value["_q_value"]) + d.putValue(int(value["_q_value"])) d.putNumChild(0) -def qdump__QBasicAtomicPointer(d, value): +def qdump__QAtomicPointer(d, value): d.putType(value.type) - p = cleanAddress(value["_q_value"]) - d.putValue(p) - d.putPointerValue(value.address) - d.putNumChild(p) + q = value["_q_value"] + p = int(q) + d.putValue("@0x%x" % p) + d.putNumChild(1 if p else 0) if d.isExpanded(): with Children(d): - d.putItem(value["_q_value"]) + d.putSubItem("_q_value", q.dereference()) def qform__QByteArray(): return "Inline,As Latin1 in Separate Window,As UTF-8 in Separate Window" @@ -370,16 +373,15 @@ def qdump__QDate(d, value): def qdump__QTime(d, value): - mds = value["mds"] - if int(mds) >= 0: - d.putValue(value["mds"], MillisecondsSinceMidnight) + mds = int(value["mds"]) + if mds >= 0: + d.putValue(mds, MillisecondsSinceMidnight) d.putNumChild(1) if d.isExpanded(): qtdate = d.ns + "Qt::" qttime = d.ns + "Qt::" if lldbLoaded: qtdate += "DateFormat::" # FIXME: Bug?... - qttime += "TimeSpec::" # FIXME: This improperly uses complex return values. with Children(d): d.putCallItem("toString", value, "toString", qtdate + "TextDate") @@ -387,7 +389,6 @@ def qdump__QTime(d, value): d.putCallItem("(SystemLocale)", value, "toString", qtdate + "SystemLocaleDate") d.putCallItem("(Locale)", value, "toString", qtdate + "LocaleDate") - d.putCallItem("toUTC", value, "toTimeSpec", qttime + "UTC") else: d.putValue("(invalid)") d.putNumChild(0) @@ -621,42 +622,41 @@ def qform__QHash(): def qdump__QHash(d, value): - def hashDataFirstNode(value): - val = value.cast(hashDataType) - bucket = val["buckets"] - e = val.cast(hashNodeType) - for n in xrange(int(val["numBuckets"]) - 1, -1, -1): + def hashDataFirstNode(dPtr, numBuckets): + ePtr = dPtr.cast(nodeTypePtr) + bucket = dPtr.dereference()["buckets"] + for n in xrange(numBuckets - 1, -1, -1): n = n - 1 if n < 0: break - if bucket.dereference() != e: + if pointerValue(bucket.dereference()) != pointerValue(ePtr): return bucket.dereference() bucket = bucket + 1 - return e; - - def hashDataNextNode(node): - next = node["next"] - if next["next"]: - return next - d = node.cast(hashDataType.pointer()).dereference() - numBuckets = int(d["numBuckets"]) - start = (int(node["h"]) % numBuckets) + 1 - bucket = d["buckets"] + start + return ePtr; + + def hashDataNextNode(nodePtr, numBuckets): + nextPtr = nodePtr.dereference()["next"] + if pointerValue(nextPtr.dereference()["next"]): + return nextPtr + start = (int(nodePtr.dereference()["h"]) % numBuckets) + 1 + dPtr = nextPtr.cast(dataTypePtr) + bucket = dPtr.dereference()["buckets"] + start for n in xrange(numBuckets - start): - if bucket.dereference() != next: + if pointerValue(bucket.dereference()) != pointerValue(nextPtr): return bucket.dereference() bucket += 1 - return node + return nextPtr keyType = d.templateArgument(value.type, 0) valueType = d.templateArgument(value.type, 1) - d_ptr = value["d"] - e_ptr = value["e"] + anon = childAt(value, 0) + d_ptr = anon["d"] + e_ptr = anon["e"] size = int(d_ptr["size"]) - hashDataType = d_ptr.type - hashNodeType = e_ptr.type + dataTypePtr = d_ptr.type # QHashData * = { Node *fakeNext, Node *buckets } + nodeTypePtr = d_ptr.dereference()["fakeNext"].type # QHashData::Node check(0 <= size and size <= 100 * 1000 * 1000) checkRef(d_ptr["ref"]) @@ -664,15 +664,14 @@ def qdump__QHash(d, value): d.putItemCount(size) d.putNumChild(size) if d.isExpanded(): - isCompact = d.isMapCompact(keyType, valueType) - node = hashDataFirstNode(value) + numBuckets = int(d_ptr.dereference()["numBuckets"]) + nodePtr = hashDataFirstNode(d_ptr, numBuckets) innerType = e_ptr.dereference().type - childType = innerType - if isCompact: - childType = valueType + isCompact = d.isMapCompact(keyType, valueType) + childType = valueType if isCompact else innerType with Children(d, size, maxNumChild=1000, childType=childType): for i in d.childRange(): - it = node.dereference().cast(innerType) + it = nodePtr.dereference().cast(innerType) with SubItem(d, i): if isCompact: d.putMapName(it["key"]) @@ -680,7 +679,7 @@ def qdump__QHash(d, value): d.putType(valueType) else: d.putItem(it) - node = hashDataNextNode(node) + nodePtr = hashDataNextNode(nodePtr, numBuckets) def qdump__QHashNode(d, value): @@ -844,20 +843,21 @@ def qdump__QImage(d, value): def qdump__QLinkedList(d, value): - d_ptr = value["d"] - e_ptr = value["e"] - n = int(d_ptr["size"]) + dd = d.dereferenceValue(value) + ptrSize = d.ptrSize() + n = d.extractInt(dd + 4 + 2 * ptrSize); + ref = d.extractInt(dd + 2 * ptrSize); check(0 <= n and n <= 100*1000*1000) - checkRef(d_ptr["ref"]) + check(-1 <= ref and ref <= 1000) d.putItemCount(n) d.putNumChild(n) if d.isExpanded(): innerType = d.templateArgument(value.type, 0) with Children(d, n, maxNumChild=1000, childType=innerType): - p = e_ptr["n"] + pp = d.dereference(dd) for i in d.childRange(): - d.putSubItem(i, p["t"]) - p = p["n"] + d.putSubItem(i, d.createValue(pp + 2 * ptrSize, innerType)) + pp = d.dereference(pp) qqLocalesCount = None @@ -934,7 +934,7 @@ def qdumpHelper__Qt4_QMap(d, value, forceLong): # QMapPayloadNode is QMapNode except for the 'forward' member, so # its size is most likely the offset of the 'forward' member therein. # Or possibly 2 * sizeof(void *) - nodeType = d.lookupType(d.ns + "QMapNode<%s, %s>" % (keyType, valueType)) + nodeType = d.lookupType(d.ns + "QMapNode<%s,%s>" % (keyType, valueType)) nodePointerType = nodeType.pointer() payloadSize = nodeType.sizeof - 2 * nodePointerType.sizeof @@ -976,6 +976,8 @@ def qdumpHelper__Qt5_QMap(d, value, forceLong): keyType = d.templateArgument(value.type, 0) valueType = d.templateArgument(value.type, 1) isCompact = d.isMapCompact(keyType, valueType) + # Note: The space in the QMapNode lookup below is + # important for LLDB. nodeType = d.lookupType(d.ns + "QMapNode<%s, %s>" % (keyType, valueType)) if isCompact: innerType = valueType @@ -1479,8 +1481,8 @@ def qdump__QObject(d, value): def qdump__QPixmap(d, value): offset = (3 if d.qtVersion() >= 0x050000 else 2) * d.ptrSize() base = d.dereference(d.addressOf(value) + offset) - width = d.extractInt(base + 4) - height = d.extractInt(base + 8) + width = d.extractInt(base + d.ptrSize()) + height = d.extractInt(base + d.ptrSize() + 4) d.putValue("(%dx%d)" % (width, height)) d.putNumChild(0) @@ -1509,10 +1511,10 @@ def qdump__QRect(d, value): def pp(l): if l >= 0: return "+%s" % l return l - x1 = value["x1"] - y1 = value["y1"] - x2 = value["x2"] - y2 = value["y2"] + x1 = int(value["x1"]) + y1 = int(value["y1"]) + x2 = int(value["x2"]) + y2 = int(value["y2"]) w = x2 - x1 + 1 h = y2 - y1 + 1 d.putValue("%sx%s%s%s" % (w, h, pp(x1), pp(y1))) @@ -1526,15 +1528,10 @@ def qdump__QRectF(d, value): def pp(l): if l >= 0: return "+%s" % l return l - x = value["xp"] - y = value["yp"] - w = value["w"] - h = value["h"] - # FIXME: workaround, see QPoint - x = x.cast(x.type.strip_typedefs()) - y = y.cast(y.type.strip_typedefs()) - w = w.cast(w.type.strip_typedefs()) - h = h.cast(h.type.strip_typedefs()) + x = float(value["xp"]) + y = float(value["yp"]) + w = float(value["w"]) + h = float(value["h"]) d.putValue("%sx%s%s%s" % (w, h, pp(x), pp(y))) d.putNumChild(4) if d.isExpanded(): @@ -1603,41 +1600,37 @@ def qdump__QScopedPointer(d, value): def qdump__QSet(d, value): - def hashDataFirstNode(value): - val = value.cast(hashDataType) - bucket = val["buckets"] - e = value.cast(hashNodeType) - for n in xrange(val["numBuckets"] - 1, -1, -1): + def hashDataFirstNode(dPtr, numBuckets): + ePtr = dPtr.cast(nodeTypePtr) + bucket = dPtr["buckets"] + for n in xrange(numBuckets - 1, -1, -1): n = n - 1 if n < 0: break - if bucket.dereference() != e: + if pointerValue(bucket.dereference()) != pointerValue(ePtr): return bucket.dereference() bucket = bucket + 1 - return e - - def hashDataNextNode(node): - next = node["next"] - if next["next"]: - return next - d = node.cast(hashDataType.pointer()).dereference() - numBuckets = d["numBuckets"] - start = (node["h"] % numBuckets) + 1 - bucket = d["buckets"] + start + return ePtr + + def hashDataNextNode(nodePtr, numBuckets): + nextPtr = nodePtr.dereference()["next"] + if pointerValue(nextPtr.dereference()["next"]): + return nextPtr + dPtr = nodePtr.cast(hashDataType.pointer()).dereference() + start = (int(nodePtr.dereference()["h"]) % numBuckets) + 1 + bucket = dPtr.dereference()["buckets"] + start for n in xrange(numBuckets - start): - if bucket.dereference() != next: + if pointerValue(bucket.dereference()) != pointerValue(nextPtr): return bucket.dereference() bucket += 1 - return node - - keyType = d.templateArgument(value.type, 0) - - d_ptr = value["q_hash"]["d"] - e_ptr = value["q_hash"]["e"] - size = int(d_ptr["size"]) + return nodePtr - hashDataType = d_ptr.type - hashNodeType = e_ptr.type + anon = childAt(value, 0) + if lldbLoaded: # Skip the inheritance level. + anon = childAt(anon, 0) + d_ptr = anon["d"] + e_ptr = anon["e"] + size = int(d_ptr.dereference()["size"]) check(0 <= size and size <= 100 * 1000 * 1000) checkRef(d_ptr["ref"]) @@ -1645,21 +1638,17 @@ def qdump__QSet(d, value): d.putItemCount(size) d.putNumChild(size) if d.isExpanded(): - isSimpleKey = isSimpleType(keyType) - node = hashDataFirstNode(value) + hashDataType = d_ptr.type + nodeTypePtr = d_ptr.dereference()["fakeNext"].type + numBuckets = int(d_ptr.dereference()["numBuckets"]) + node = hashDataFirstNode(d_ptr, numBuckets) innerType = e_ptr.dereference().type with Children(d, size, maxNumChild=1000, childType=innerType): - for i in xrange(size): + for i in d.childRange(): it = node.dereference().cast(innerType) with SubItem(d, i): - key = it["key"] - if isSimpleKey: - d.putType(keyType) - d.putItem(key) - d.putName(key) - else: - d.putItem(key) - node = hashDataNextNode(node) + d.putItem(it["key"]) + node = hashDataNextNode(node, numBuckets) def qdump__QSharedData(d, value): @@ -1691,8 +1680,8 @@ def qdump__QSharedPointer(d, value): def qdump__QSize(d, value): - w = value["wd"] - h = value["ht"] + w = int(value["wd"]) + h = int(value["ht"]) d.putValue("(%s, %s)" % (w, h)) d.putNumChild(2) if d.isExpanded(): @@ -1701,7 +1690,13 @@ def qdump__QSize(d, value): def qdump__QSizeF(d, value): - qdump__QSize(d, value) + w = float(value["wd"]) + h = float(value["ht"]) + d.putValue("(%s, %s)" % (w, h)) + d.putNumChild(2) + if d.isExpanded(): + with Children(d): + d.putFields(value) def qdump__QStack(d, value): @@ -1852,27 +1847,27 @@ def qdumpHelper_QVariant_1(d, data): def qdumpHelper_QVariant_2(d, data): # QVariant::Int d.putBetterType("%sQVariant (int)" % d.ns) - d.putValue(data["i"]) + d.putValue(int(data["i"])) def qdumpHelper_QVariant_3(d, data): # uint d.putBetterType("%sQVariant (uint)" % d.ns) - d.putValue(data["u"]) + d.putValue(int(data["u"])) def qdumpHelper_QVariant_4(d, data): # qlonglong d.putBetterType("%sQVariant (qlonglong)" % d.ns) - d.putValue(data["ll"]) + d.putValue(int(data["ll"])) def qdumpHelper_QVariant_5(d, data): # qulonglong d.putBetterType("%sQVariant (qulonglong)" % d.ns) - d.putValue(data["ull"]) + d.putValue(int(data["ull"])) def qdumpHelper_QVariant_6(d, data): # QVariant::Double d.putBetterType("%sQVariant (double)" % d.ns) - d.putValue(data["d"]) + d.putValue(float(data["d"])) qdumpHelper_QVariants_A = [ qdumpHelper_QVariant_0, @@ -1955,13 +1950,13 @@ def qdumpHelper__QVariant(d, value): if not inner is None: innert = inner elif variantType == 8: # QVariant::VariantMap - inner = d.ns + "QMap<" + d.ns + "QString, " + d.ns + "QVariant>" + inner = d.ns + "QMap<" + d.ns + "QString," + d.ns + "QVariant>" innert = d.ns + "QVariantMap" elif variantType == 9: # QVariant::VariantList inner = d.ns + "QList<" + d.ns + "QVariant>" innert = d.ns + "QVariantList" elif variantType == 28: # QVariant::VariantHash - inner = d.ns + "QHash<" + d.ns + "QString, " + d.ns + "QVariant>" + inner = d.ns + "QHash<" + d.ns + "QString," + d.ns + "QVariant>" innert = d.ns + "QVariantHash" elif variantType <= 86: @@ -1970,10 +1965,10 @@ def qdumpHelper__QVariant(d, value): if len(inner): innerType = d.lookupType(inner) - sizePD = d.lookupType(d.ns + 'QVariant::Private::Data').sizeof + sizePD = 8 # sizeof(QVariant::Private::Data) if innerType.sizeof > sizePD: - sizePS = d.lookupType(d.ns + 'QVariant::PrivateShared').sizeof - val = (sizePS + data.cast(d.charPtrType())) \ + sizePS = 2 * d.ptrSize() # sizeof(QVariant::PrivateShared) + val = (data.cast(d.charPtrType()) + sizePS) \ .cast(innerType.pointer()).dereference() else: val = data.cast(innerType) @@ -1992,9 +1987,14 @@ def qdump__QVariant(d, value): if len(inner): innerType = d.lookupType(inner) - # FIXME: Why "shared"? if innerType.sizeof > d_data.type.sizeof: - v = d_data["shared"]["ptr"].cast(innerType.pointer()).dereference() + # FIXME: + #if int(d_ptr["is_shared"]): + # v = d_data["ptr"].cast(innerType.pointer().pointer().pointer()) \ + # .dereference().dereference().dereference() + #else: + v = d_data["ptr"].cast(innerType.pointer().pointer()) \ + .dereference().dereference() else: v = d_data.cast(innerType) d.putEmptyValue(-99) @@ -2003,12 +2003,13 @@ def qdump__QVariant(d, value): return innert # User types. + typeCode = int(d_ptr["type"]) if gdbLoaded: type = str(call(value, "typeToName", - "('%sQVariant::Type')%d" % (d.ns, d_ptr["type"]))) + "('%sQVariant::Type')%d" % (d.ns, typeCode))) if lldbLoaded: type = str(call(value, "typeToName", - "(%sQVariant::Type)%d" % (d.ns, d_ptr["type"]))) + "(%sQVariant::Type)%d" % (d.ns, typeCode))) type = type[type.find('"') + 1 : type.rfind('"')] type = type.replace("Q", d.ns + "Q") # HACK! type = type.replace("uint", "unsigned int") # HACK! @@ -2147,7 +2148,11 @@ def qdump__std__array(d, value): d.putNumChild(size) if d.isExpanded(): innerType = d.templateArgument(value.type, 0) - d.putArrayData(innerType, value.address, size) + d.putArrayData(innerType, d.addressOf(value), size) + + +def qdump__std____1__array(d, value): + qdump__std__array(d, value) def qdump__std__complex(d, value): @@ -2201,14 +2206,14 @@ def qdump__std____debug__deque(d, value): def qdump__std__list(d, value): + head = d.dereferenceValue(value) impl = value["_M_impl"] node = impl["_M_node"] - head = node.address size = 0 - p = node["_M_next"] - while p != head and size <= 1001: + pp = d.dereference(head) + while head != pp and size <= 1001: size += 1 - p = p["_M_next"] + pp = d.dereference(pp) d.putItemCount(size, 1000) d.putNumChild(size) @@ -2381,9 +2386,11 @@ def qdump__std__string(d, value): refcount = int(sizePtr[-1]) check(refcount >= -1) # Can be -1 accoring to docs. check(0 <= size and size <= alloc and alloc <= 100*1000*1000) + qdump_stringHelper(d, sizePtr, size * charSize, charSize) - n = min(size, qqStringCutOff) - mem = d.readRawMemory(data, n * charSize) +def qdump_stringHelper(d, data, size, charSize): + cutoff = min(size, qqStringCutOff) + mem = d.readRawMemory(data, cutoff) if charSize == 1: encodingType = Hex2EncodedLatin1 displayType = DisplayLatin1String @@ -2403,15 +2410,26 @@ def qdump__std__string(d, value): elif format == 2: d.putField("editformat", displayType) if n != size: - mem = d.readRawMemory(p, size * charType.sizeof) + mem = d.readRawMemory(p, size) d.putField("editvalue", mem) -#def qdump__std__string(d, value): -# data = value["__r_"] -# d.putValue("SSSS") -# d.putType("std::string") -# d.putNumChild(1) -# d.putPlainChildren(value) + +def qdump__std____1__string(d, value): + inner = childAt(childAt(value["__r_"]["__first_"], 0), 0) + size = int(inner["__size_"]) + alloc = int(inner["__cap_"]) + data = pointerValue(inner["__data_"]) + qdump_stringHelper(d, data, size, 1) + d.putType("std::string") + + +def qdump__std____1__wstring(d, value): + inner = childAt(childAt(value["__r_"]["__first_"], 0), 0) + size = int(inner["__size_"]) * 4 + alloc = int(inner["__cap_"]) + data = pointerValue(inner["__data_"]) + qdump_stringHelper(d, data, size, 4) + d.putType("std::wstring") def qdump__std__shared_ptr(d, value): @@ -2501,6 +2519,24 @@ def qdump__std__vector(d, value): else: d.putArrayData(type, start, size) +def qdump__std____1__vector(d, value): + innerType = d.templateArgument(value.type, 0) + if lldbLoaded and childAt(value, 0).type == innerType: + # That's old lldb automatically formatting + begin = d.dereferenceValue(value) + size = value.GetNumChildren() + else: + # Normal case + begin = pointerValue(value['__begin_']) + end = pointerValue(value['__end_']) + size = (end - begin) / innerType.sizeof + + d.putItemCount(size) + d.putNumChild(size) + if d.isExpanded(): + d.putArrayData(innerType, begin, size) + + def qdump__std____debug__vector(d, value): qdump__std__vector(d, value) @@ -2557,13 +2593,13 @@ def qdump____gnu_cxx__hash_set(d, value): ####################################################################### def qdump__boost__bimaps__bimap(d, value): - leftType = d.templateArgument(value.type, 0) - rightType = d.templateArgument(value.type, 1) - size = value["core"]["node_count"] + #leftType = d.templateArgument(value.type, 0) + #rightType = d.templateArgument(value.type, 1) + size = int(value["core"]["node_count"]) d.putItemCount(size) d.putNumChild(size) - #if d.isExpanded(): - d.putPlainChildren(value) + if d.isExpanded(): + d.putPlainChildren(value) def qdump__boost__optional(d, value): @@ -2573,7 +2609,7 @@ def qdump__boost__optional(d, value): else: type = d.templateArgument(value.type, 0) storage = value["m_storage"] - if type.code == ReferenceCode: + if d.isReferenceType(type): d.putItem(storage.cast(type.target().pointer()).dereference()) else: d.putItem(storage.cast(type)) @@ -2925,7 +2961,7 @@ def qdump__Eigen__Matrix(d, value): nrows = value["m_storage"]["m_rows"] if argRow == -1 else int(argRow) ncols = value["m_storage"]["m_cols"] if argCol == -1 else int(argCol) p = storage["m_data"] - if p.type.code == StructCode: # Static + if d.isStructType(p.type): # Static p = p["array"].cast(innerType.pointer()) d.putValue("(%s x %s), %s" % (nrows, ncols, ["ColumnMajor", "RowMajor"][rowMajor])) d.putField("keeporder", "1") diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp index 5d2886a161eccba388e1bf58b67c6b0fbdf040ad..e772ac32269f83555254e4f262090b71ee4fdd4a 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/qml2puppetmain.cpp @@ -50,6 +50,9 @@ int main(int argc, char *argv[]) // Since we always render text into an FBO, we need to globally disable // subpixel antialiasing and instead use gray. qputenv("QSG_DISTANCEFIELD_ANTIALIASING", "gray"); +#ifdef Q_OS_MAC //This keeps qml2puppet from stealing focus + qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true"); +#endif QApplication application(argc, argv); diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp index fef87177b7d4db681b24130b881a24a193dda22c..4f712d0f862fe5580e1506bafe4a43c7b332812d 100644 --- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp +++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/qmlpuppetmain.cpp @@ -51,6 +51,10 @@ int main(int argc, char *argv[]) QtSimulatorPrivate::SimulatorConnection::createStubInstance(); #endif +#ifdef Q_OS_MAC //This keeps qml2puppet from stealing focus + qputenv("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM", "true"); +#endif + QApplication application(argc, argv); QCoreApplication::setOrganizationName("QtProject"); diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts index e7fbb1e8de9773e0ec8e7d492074bfceab3058d1..df5348e7bbea4383018b349a9b7cd27d667ed542 100644 --- a/share/qtcreator/translations/qtcreator_ru.ts +++ b/share/qtcreator/translations/qtcreator_ru.ts @@ -139,10 +139,6 @@ </context> <context> <name>Analyzer::Internal::AnalyzerRunControlFactory</name> - <message> - <source>Analyzer</source> - <translation>Ðнализатор</translation> - </message> <message> <source>No analyzer tool selected</source> <translation>ИнÑтрумент анализа не выбран</translation> @@ -220,6 +216,24 @@ <translation>Android</translation> </message> </context> +<context> + <name>Android::AndroidPlugin</name> + <message> + <source>Android Manifest file</source> + <translation>Файл Android Manifest</translation> + </message> + <message> + <source>Could not add mime-type for AndroidManifest.xml editor.</source> + <translation>Ðе удалоÑÑŒ добавить MIME-тип Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð° AndroidManifest.xml.</translation> + </message> +</context> +<context> + <name>Android::Internal::AndroidAnalyzeSupport</name> + <message> + <source>No analyzer tool selected.</source> + <translation>ИнÑтрумент анализа не выбран.</translation> + </message> +</context> <context> <name>Android::Internal::AndroidConfigurations</name> <message> @@ -333,10 +347,6 @@ Please install an SDK of at least API version %1.</source> <source>Pulling files necessary for debugging.</source> <translation>Загрузка файлов, необходимых Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸.</translation> </message> - <message> - <source>Qt Android smart installer installation failed</source> - <translation>Ðе удалоÑÑŒ уÑтановить Qt Android smart installer</translation> - </message> <message> <source>No Android toolchain selected.</source> <translation>Ðе выбран инÑтрументарий Ð´Ð»Ñ Android.</translation> @@ -457,6 +467,127 @@ Please install at least one SDK.</source> <translation>Ðе удалоÑÑŒ открыть «%1»</translation> </message> </context> +<context> + <name>Android::Internal::AndroidManifestEditor</name> + <message> + <source>General</source> + <translation>ОÑновное</translation> + </message> + <message> + <source>XML Source</source> + <translation>ИÑходник XML</translation> + </message> +</context> +<context> + <name>Android::Internal::AndroidManifestEditorFactory</name> + <message> + <source>Android Manifest editor</source> + <translation>Редактор Android Manifest</translation> + </message> +</context> +<context> + <name>Android::Internal::AndroidManifestEditorWidget</name> + <message> + <source>Package</source> + <translation>Пакет</translation> + </message> + <message> + <source><p align="justify">Please choose a valid package name for your application (e.g. "org.example.myapplication").</p><p align="justify">Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced "dot").</p><p align="justify">In general, a package name begins with the top level domain name of the organization and then the organization's domain and then any subdomains listedin reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.</p><p align="justify">Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.</p></source> + <translation><p align="justify">Выберите корректное Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (например: «org.example.myapplication»).</p><p align="justify">Имена пакетам принÑто давать в виде иерархии, уровни которой разделÑÑŽÑ‚ÑÑ Ñ‚Ð¾Ñ‡ÐºÐ°Ð¼Ð¸.</p><p align="justify">Обычно название пакета начинаетÑÑ Ñ Ð´Ð¾Ð¼ÐµÐ½Ð½Ð¾Ð³Ð¾ имени выше ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ð¸, затем доменного имени организации и её поддоменов в обратном порÑдке. Ð’ Ñамом конце может идти уникальное название пакета. ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð² по возможноÑти должны Ñодержать только Ñимволы нижнего региÑтра.</p><p align="justify">ПолноÑтью Ñоглашение о разрешении конфликтов имён пакетов и правила Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð² в Ñлучае невозможноÑти иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½Ð½Ñ‹Ñ… имён Internet опиÑаны в разделе 7.7 Ñпецификации Ñзыка Java.</p></translation> + </message> + <message> + <source>Package name:</source> + <translation>Ð˜Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð°:</translation> + </message> + <message> + <source>The package name is not valid.</source> + <translation>Ð˜Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð° недопуÑтимо.</translation> + </message> + <message> + <source>Version code:</source> + <translation>Код верÑии:</translation> + </message> + <message> + <source>Version name:</source> + <translation>Ðазвание верÑии:</translation> + </message> + <message> + <source>Application</source> + <translation>Приложение</translation> + </message> + <message> + <source>Application name:</source> + <translation>Ð˜Ð¼Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ:</translation> + </message> + <message> + <source>Run:</source> + <translation>ЗапуÑк:</translation> + </message> + <message> + <source>Select low dpi icon</source> + <translation>Выбрать значок низкого разрешениÑ</translation> + </message> + <message> + <source>Select medium dpi icon</source> + <translation>Выбрать значок Ñреднего разрешениÑ</translation> + </message> + <message> + <source>Select high dpi icon</source> + <translation>Выбрать значок выÑокого разрешениÑ</translation> + </message> + <message> + <source>Application icon:</source> + <translation>Значок приложениÑ:</translation> + </message> + <message> + <source>Permissions</source> + <translation>РазрешениÑ</translation> + </message> + <message> + <source>Remove</source> + <translation>Удалить</translation> + </message> + <message> + <source>Add</source> + <translation>Добавить</translation> + </message> + <message> + <source>The structure of the android manifest file is corrupt. Expected a top level 'manifest' node.</source> + <translation>Повреждена Ñтруктура файла Android Manifest. ТребуетÑÑ Ñлемент верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ Â«manifest».</translation> + </message> + <message> + <source>The structure of the android manifest file is corrupt. Expected a 'application' and 'activity' sub node.</source> + <translation>Повреждена Ñтруктура файла Android Manifest. ТребуютÑÑ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ðµ Ñлементы «application» и «activity».</translation> + </message> + <message> + <source>Could not parse file: '%1'</source> + <translation>Ðе удалоÑÑŒ разобрать файл: «%1»</translation> + </message> + <message> + <source>%2: Could not parse file: '%1'</source> + <translation>%2: Ðе удалоÑÑŒ разобрать файл: «%1»</translation> + </message> + <message> + <source>Goto error</source> + <translation>Перейти к ошибке</translation> + </message> + <message> + <source>Choose Low DPI Icon</source> + <translation>Выбор значка низкого разрешениÑ</translation> + </message> + <message> + <source>PNG images (*.png)</source> + <translation>Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ PNG (*.png)</translation> + </message> + <message> + <source>Choose Medium DPI Icon</source> + <translation>Выбор значка Ñреднего разрешениÑ</translation> + </message> + <message> + <source>Choose High DPI Icon</source> + <translation>Выбор значка выÑокого разрешениÑ</translation> + </message> +</context> <context> <name>Android::Internal::AndroidPackageCreationFactory</name> <message> @@ -571,36 +702,6 @@ Please make sure your application is built successfully and is selected in Appli </context> <context> <name>Android::Internal::AndroidPackageCreationWidget</name> - <message> - <source>Invalid Package Name</source> - <translation>Ðеверное Ð¸Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð°</translation> - </message> - <message> - <source>The package name '%1' is not valid. -Please choose a valid package name for your application (e.g. "org.example.myapplication").</source> - <translation>Ð˜Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð° «%1» недопуÑтимо. -Выберите корректное Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (например: «org.example.myapplication»).</translation> - </message> - <message> - <source>Choose High DPI Icon</source> - <translation>Выбор значка выÑокого разрешениÑ</translation> - </message> - <message> - <source>PNG images (*.png)</source> - <translation>Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ PNG (*.png)</translation> - </message> - <message> - <source>< Type or choose a permission ></source> - <translation>< Введите или выберите Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ></translation> - </message> - <message> - <source>Choose Medium DPI Icon</source> - <translation>Выбор значка Ñреднего разрешениÑ</translation> - </message> - <message> - <source>Choose Low DPI Icon</source> - <translation>Выбор значка низкого разрешениÑ</translation> - </message> <message> <source><b>Package configurations</b></source> <translation><b>Конфигурации ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð²</b></translation> @@ -655,14 +756,11 @@ Please choose a valid package name for your application (e.g. "org.example. </message> </context> <context> - <name>Android::Internal::AndroidRunControlFactory</name> + <name>Android::Internal::AndroidRunner</name> <message> - <source>Run on Android device or emulator.</source> - <translation>ЗапуÑтить на уÑтройÑтве/ÑмулÑторе Android.</translation> + <source>No free ports available on host for QML debugging.</source> + <translation>Ðет Ñвободных портов на компьютере Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ QML.</translation> </message> -</context> -<context> - <name>Android::Internal::AndroidRunner</name> <message> <source> @@ -878,100 +976,54 @@ Please choose a valid package name for your application (e.g. "org.example. <translation>Форма</translation> </message> <message> - <source>Use Qt libraries from device</source> - <translation>ИÑпользовать библиотеки Qt уÑтройÑтва</translation> + <source>Qt Deployment</source> + <translation>УÑтановка Qt</translation> </message> <message> - <source>Push local Qt libraries to device. -You must have Qt libraries compiled for that platform</source> - <translation>УÑтанавливать локальные библиотеки Qt на уÑтройÑтво. -Ðеобходимы библиотеки Qt, Ñобранные под Ñту платформу</translation> + <source>Use the external Ministro application to download and maintain Qt libraries.</source> + <translation>ИÑпользовать внешнее приложение Ministro Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ и обÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐº Qt.</translation> </message> <message> - <source>Deploy local Qt libraries</source> - <translation>УÑтанавливать локальные -библиотеки Qt</translation> + <source>Use Ministro service to install Qt</source> + <translation>ИÑпользовать Ministro Ð´Ð»Ñ ÑƒÑтановки Qt</translation> </message> <message> - <source>Check this option to force the application to use local Qt libraries instead of system libraries.</source> - <translation>Принудительное иÑпользование приложением локальных библиотек Qt вмеÑто ÑиÑтемных.</translation> + <source>Push local Qt libraries to device. You must have Qt libraries compiled for that platform. +The APK will not be usable on any other device.</source> + <translation>ОтправлÑÑ‚ÑŒ локальные библиотеки Qt на уÑтройÑтво. Ðеобходимо иметь библиотеки, +Ñобранные под Ñту платформу. Файл APK не будет работать на других уÑтройÑтвах.</translation> </message> <message> - <source>Use local Qt libraries</source> - <translation>ИÑпользовать локальные -библиотеки Qt</translation> + <source>Deploy local Qt libraries to temporary directory</source> + <translation>УÑтанавливать Qt во временный каталог</translation> </message> <message> - <source>Choose and install Ministro system wide Qt shared libraries. -This option is useful when you want to try your application on devices which don't have Android Market (e.g. Android Emulator).</source> - <translation>Выбор и уÑтановка Ministro - общеÑиÑтемных динамичеÑких библиотек Qt. -Может потребоватьÑÑ Ð¿Ñ€Ð¸ уÑтановке приложений на уÑтройÑтва, которые -не имеют доÑтупа к Android Market (например, ÑмулÑтор Android).</translation> + <source>Creates a standalone APK.</source> + <translation>Создавать автономный APK.</translation> </message> <message> - <source>Install Ministro, system-wide Qt shared libraries installer</source> - <translation>Развёртывать Ministro - уÑтановщик общеÑиÑтемных библиотек Qt</translation> + <source>Bundle Qt libraries in APK</source> + <translation>ВнедрÑÑ‚ÑŒ библиотеки Qt в APK</translation> </message> <message> - <source>Choose APK</source> - <translation>Выбрать APK</translation> + <source>Advanced Actions</source> + <translation>Дополнительно</translation> </message> <message> - <source>Clean Libs on Device</source> - <translation>Удалить библиотеки -Ñ ÑƒÑтройÑтва</translation> + <source>Clean Temporary Libraries Directory on Device</source> + <translation>Создать временный каталог на уÑтройÑтве</translation> + </message> + <message> + <source>Install Ministro from APK</source> + <translation>УÑтановить Ministro из APK</translation> </message> </context> <context> <name>AndroidPackageCreationWidget</name> - <message> - <source>Manifest</source> - <translation>МанифеÑÑ‚</translation> - </message> - <message> - <source>1.0.0</source> - <translation>1.0.0</translation> - </message> <message> <source>Application</source> <translation>Приложение</translation> </message> - <message> - <source>Select low dpi icon</source> - <translation>Выбрать значок низкого разрешениÑ</translation> - </message> - <message> - <source>Select medium dpi icon</source> - <translation>Выбрать значок Ñреднего разрешениÑ</translation> - </message> - <message> - <source>Select high dpi icon</source> - <translation>Выбрать значок выÑокого разрешениÑ</translation> - </message> - <message> - <source>Permissions</source> - <translation>РазрешениÑ</translation> - </message> - <message> - <source>Add</source> - <translation>Добавить</translation> - </message> - <message> - <source>Remove</source> - <translation>Удалить</translation> - </message> - <message> - <source>Save</source> - <translation>Сохранить</translation> - </message> - <message> - <source>Discard</source> - <translation>Отмена</translation> - </message> - <message> - <source>Name:</source> - <translation>Ðазвание:</translation> - </message> <message> <source>Libraries</source> <translation>Библиотеки</translation> @@ -1024,40 +1076,6 @@ This option is useful when you want to try your application on devices which don <source><b>Android target SDK:</b></source> <translation><b>SDK Ð´Ð»Ñ Android:</b></translation> </message> - <message> - <source><b>Package name:</b></source> - <translation><b>Ð˜Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð°:</b></translation> - </message> - <message> - <source><p align="justify">Please choose a valid package name for your application (e.g. "org.example.myapplication").</p> -<p align="justify">Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced "dot").</p> -<p align="justify">In general, a package name begins with the top level domain name of the organization and then the organization's domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.</p> -<p align="justify">Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.</p></source> - <translation><p align="justify">Выберите корректное Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (например: «org.example.myapplication»). </p> -<p align="justify">Имена пакетам принÑто давать в виде иерархии, уровни которой разделÑÑŽÑ‚ÑÑ Ñ‚Ð¾Ñ‡ÐºÐ°Ð¼Ð¸.</p> -<p align="justify">Обычно название пакета начинаетÑÑ Ñ Ð´Ð¾Ð¼ÐµÐ½Ð½Ð¾Ð³Ð¾ имени выше ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¾Ñ€Ð³Ð°Ð½Ð¸Ð·Ð°Ñ†Ð¸Ð¸, затем доменного имени организации и её поддоменов в обратном порÑдке. Ð’ Ñамом конце может идти уникальное название пакета. ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð² по возможноÑти должны Ñодержать только Ñимволы нижнего региÑтра.</p> -<p align="justify">ПолноÑтью Ñоглашение о разрешении конфликтов имён пакетов и правила Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð² в Ñлучае невозможноÑти иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½Ð½Ñ‹Ñ… имён Internet опиÑаны в разделе 7.7 Ñпецификации Ñзыка Java.</p></translation> - </message> - <message> - <source><b>Version code:</b></source> - <translation><b>Код верÑии:</b></translation> - </message> - <message> - <source><b>Version name:</b></source> - <translation><b>Ð˜Ð¼Ñ Ð²ÐµÑ€Ñии:</b></translation> - </message> - <message> - <source><b>Application name:</b></source> - <translation><b>Ð˜Ð¼Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ:</b></translation> - </message> - <message> - <source><b>Run:</b></source> - <translation><b>ЗапуÑк:</b></translation> - </message> - <message> - <source><b>Application icon:</b></source> - <translation><b>Значок приложениÑ:</b></translation> - </message> <message> <source><center>Prebundled libraries</center> <p align="justify">Please be aware that the order is very important: If library <i>A</i> depends on library <i>B</i>, <i>B</i> <b>must</b> go before <i>A</i>.</p></source> @@ -1087,10 +1105,6 @@ This option is useful when you want to try your application on devices which don <source>Ant location:</source> <translation>Размещение Ant:</translation> </message> - <message> - <source>OpenJDK location:</source> - <translation>Размещение OpenJDK:</translation> - </message> <message> <source>Start</source> <translation>ЗапуÑтить</translation> @@ -1123,6 +1137,10 @@ This option is useful when you want to try your application on devices which don <source>Automatically create kits for Android tool chains</source> <translation>ÐвтоматичеÑки Ñоздавать комплекты Ð´Ð»Ñ Ð¸Ð½Ñтрументариев Android</translation> </message> + <message> + <source>JDK location:</source> + <translation>Размещение JDK:</translation> + </message> </context> <context> <name>Application</name> @@ -1234,12 +1252,8 @@ This option is useful when you want to try your application on devices which don <context> <name>AutotoolsProjectManager::Internal::AutotoolsManager</name> <message> - <source>Failed opening project '%1': Project file does not exist</source> - <translation>Ðе удалоÑÑŒ открыть проект «%1»: файл проекта отÑутÑтвует</translation> - </message> - <message> - <source>Failed opening project '%1': Project already open</source> - <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект уже открыт</translation> + <source>Failed opening project '%1': Project is not a file</source> + <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼</translation> </message> </context> <context> @@ -1342,7 +1356,7 @@ This option is useful when you want to try your application on devices which don </message> </context> <context> - <name>BINEditor::BinEditor</name> + <name>BINEditor::BinEditorWidget</name> <message> <source>Memory at 0x%1</source> <translation>ПамÑÑ‚ÑŒ Ñ 0x%1</translation> @@ -1369,11 +1383,11 @@ This option is useful when you want to try your application on devices which don </message> <message> <source>Little Endian</source> - <translation></translation> + <translation>Little Endian</translation> </message> <message> <source>Big Endian</source> - <translation></translation> + <translation>Big Endian</translation> </message> <message> <source>Binary&nbsp;value:</source> @@ -1504,6 +1518,26 @@ This option is useful when you want to try your application on devices which don <source>Version:</source> <translation>ВерÑиÑ:</translation> </message> + <message> + <source>No Qt version.</source> + <translation>Профиль Qt не задан.</translation> + </message> + <message> + <source>Invalid Qt version.</source> + <translation>Ðекорректный профиль Qt.</translation> + </message> + <message> + <source>Requires Qt 4.7.1 or newer.</source> + <translation>ТребуетÑÑ Qt верÑии не ниже 4.7.1.</translation> + </message> + <message> + <source>Library not available. <a href='compile'>Compile...</a></source> + <translation>Библиотека отÑутÑтвует. <a href='compile'>Собрать...</a></translation> + </message> + <message> + <source>Building helpers</source> + <translation>Сборка помощников</translation> + </message> </context> <context> <name>Bazaar::Internal::BazaarCommitPanel</name> @@ -2208,6 +2242,18 @@ Local pulls are not applied to the master branch.</source> <source>Remove All</source> <translation>Удалить вÑÑ‘</translation> </message> + <message> + <source>Remove All Bookmarks</source> + <translation>Удаление вÑех закладок</translation> + </message> + <message> + <source>Are you sure you want to remove all bookmarks from all files in the current session?</source> + <translation>Желаете удалить вÑе закладки из вÑех файлов текущей ÑеÑÑии?</translation> + </message> + <message> + <source>Do not &ask again.</source> + <translation>&Больше не Ñпрашивать.</translation> + </message> <message> <source>Edit Note</source> <translation>Изменить заметку</translation> @@ -2350,6 +2396,14 @@ Local pulls are not applied to the master branch.</source> <source>Determines whether the button is checkable or not.</source> <translation>ОпределÑет, ÑвлÑетÑÑ Ð»Ð¸ кнопка включаемой или нет.</translation> </message> + <message> + <source>Enabled</source> + <translation>Включена</translation> + </message> + <message> + <source>Determines whether the button is enabled or not.</source> + <translation>ОпределÑет, включена ли кнопка или нет.</translation> + </message> <message> <source>Default button</source> <translation>Кнопка по умолчанию</translation> @@ -2366,10 +2420,6 @@ Local pulls are not applied to the master branch.</source> <source>The tool tip shown for the button.</source> <translation>ПодÑказка, Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶Ð°ÐµÐ¼Ð°Ñ Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸.</translation> </message> - <message> - <source>Text color</source> - <translation>Цвет текÑта</translation> - </message> <message> <source>Focus on press</source> <translation>Ð¤Ð¾ÐºÑƒÑ Ð¿Ñ€Ð¸ нажатии</translation> @@ -2445,6 +2495,10 @@ Local pulls are not applied to the master branch.</source> <source>Run CMake</source> <translation>ЗапуÑтить CMake</translation> </message> + <message> + <source>Failed opening project '%1': Project is not a file</source> + <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼</translation> + </message> </context> <context> <name>CMakeProjectManager::Internal::CMakeOpenProjectWizard</name> @@ -2459,18 +2513,6 @@ Local pulls are not applied to the master branch.</source> <source>Run CMake kit</source> <translation>ЗапуÑк комплекта CMake</translation> </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> - <message> - <source>Build Environment</source> - <translation>Среда Ñборки</translation> - </message> <message> <source>The executable is not built by the current build configuration</source> <translation>Приложение Ñобрано не текущей конфигурацией Ñборки</translation> @@ -2502,26 +2544,6 @@ Local pulls are not applied to the master branch.</source> <source>Run in Terminal</source> <translation>ЗапуÑкать в терминале</translation> </message> - <message> - <source>Run Environment</source> - <translation>Среда выполнениÑ</translation> - </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> - <message> - <source>Build Environment</source> - <translation>Среда Ñборки</translation> - </message> - <message> - <source>Base environment for this runconfiguration:</source> - <translation>Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñреда данной конфигурации выполнениÑ:</translation> - </message> </context> <context> <name>CMakeProjectManager::Internal::CMakeRunPage</name> @@ -2860,7 +2882,7 @@ Local pulls are not applied to the master branch.</source> <context> <name>ClearCase::Internal::ClearCaseControl</name> <message> - <source>&Check Out</source> + <source>Check &Out</source> <translation>&Извлечь</translation> </message> <message> @@ -3517,6 +3539,14 @@ Local pulls are not applied to the master branch.</source> <source>Default protocol:</source> <translation>Протокол по умолчанию:</translation> </message> + <message> + <source>&Expires after:</source> + <translation>&ИÑтекает через:</translation> + </message> + <message> + <source>Days</source> + <translation> дней</translation> + </message> </context> <context> <name>CodePaster::Internal::ViewDialog</name> @@ -3566,6 +3596,14 @@ p, li { white-space: pre-wrap; } <source>Patch 2</source> <translation></translation> </message> + <message> + <source>Days</source> + <translation> дней</translation> + </message> + <message> + <source>&Expires after:</source> + <translation>&ИÑтекает через:</translation> + </message> </context> <context> <name>CodePaster::NetworkProtocol</name> @@ -3895,6 +3933,11 @@ p, li { white-space: pre-wrap; } </context> <context> <name>Core::DocumentManager</name> + <message> + <source>Could not save the files.</source> + <comment>error message</comment> + <translation>Ðе удалоÑÑŒ Ñохранить файлы.</translation> + </message> <message> <source>File Error</source> <translation>Ошибка файла</translation> @@ -3919,22 +3962,6 @@ p, li { white-space: pre-wrap; } <source>Open File</source> <translation>Открытие файла</translation> </message> - <message> - <source>File Is Read Only</source> - <translation>Файл только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ</translation> - </message> - <message> - <source>The file <i>%1</i> is read only.</source> - <translation>Файл <i>%1</i> только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ.</translation> - </message> - <message> - <source>Make &Writable</source> - <translation>Сделать &запиÑываемым</translation> - </message> - <message> - <source>&Save As...</source> - <translation>Сохранить &как...</translation> - </message> <message> <source>Cannot reload %1</source> <translation>Ðе удалоÑÑŒ перезагрузить %1</translation> @@ -4050,6 +4077,18 @@ p, li { white-space: pre-wrap; } <source>Ctrl+E,3</source> <translation>Ctrl+E,3</translation> </message> + <message> + <source>Open in New Window</source> + <translation>Открыть в новом окне</translation> + </message> + <message> + <source>Meta+E,4</source> + <translation>Meta+E,4</translation> + </message> + <message> + <source>Ctrl+E,4</source> + <translation>Ctrl+E,4</translation> + </message> <message> <source>Remove Current Split</source> <translation>Удалить текущее разделение</translation> @@ -4074,6 +4113,10 @@ p, li { white-space: pre-wrap; } <source>Ctrl+E,1</source> <translation>Ctrl+E,1</translation> </message> + <message> + <source>Go to Next Split or Window</source> + <translation>Перейти к Ñледующему разделению или окну</translation> + </message> <message> <source>Meta+E,o</source> <translation>Meta+E,o</translation> @@ -4086,14 +4129,6 @@ p, li { white-space: pre-wrap; } <source>Ad&vanced</source> <translation>&Дополнительно</translation> </message> - <message> - <source>Full path of the current document including file name.</source> - <translation>Полный путь Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ файла к текущему документу.</translation> - </message> - <message> - <source>Full path of the current document excluding file name.</source> - <translation>Полный путь без имени файла к текущему документу.</translation> - </message> <message> <source>X-coordinate of the current editor's upper left corner, relative to screen.</source> <translation>Координата X левого верхнего угла окна редактора отноÑительно Ñкрана.</translation> @@ -4126,18 +4161,6 @@ p, li { white-space: pre-wrap; } <source>Cannot Open File</source> <translation>Ðе удалоÑÑŒ открыть файл</translation> </message> - <message> - <source>Cannot open the file for editing with SCC.</source> - <translation>Ðе удалоÑÑŒ открыть файл Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ SCC.</translation> - </message> - <message> - <source>Cannot Set Permissions</source> - <translation>Ðе удалоÑÑŒ задать права доÑтупа</translation> - </message> - <message> - <source>Cannot set permissions to writable.</source> - <translation>Ðе удалоÑÑŒ задать права доÑтупа на запиÑÑŒ.</translation> - </message> <message> <source>Cannot open the file for editing with VCS.</source> <translation>Ðе удалоÑÑŒ открыть файл Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ VCS.</translation> @@ -4163,8 +4186,8 @@ p, li { white-space: pre-wrap; } <translation></translation> </message> <message> - <source>Go to Next Split</source> - <translation>Перейти к Ñледующему разделению</translation> + <source>Current document</source> + <translation>Текущий документ</translation> </message> <message> <source>Opening File</source> @@ -4256,6 +4279,21 @@ p, li { white-space: pre-wrap; } <translation>Ð’ÑÑ</translation> </message> </context> +<context> + <name>Core::ICore</name> + <message> + <source> (%1)</source> + <translation> (%1)</translation> + </message> + <message> + <source>Qt Creator %1%2</source> + <translation>Qt Creator %1%2</translation> + </message> + <message> + <source>Based on Qt %1 (%2, %3 bit)</source> + <translation>ОÑнован на Qt %1 (%2, %3 бита)</translation> + </message> +</context> <context> <name>Core::IDocument</name> <message> @@ -4910,6 +4948,10 @@ p, li { white-space: pre-wrap; } <source>Alt+0</source> <translation>Alt+0</translation> </message> + <message> + <source>Show Mode Selector</source> + <translation>Показать выбор режимов</translation> + </message> <message> <source>Full Screen</source> <translation>Полный Ñкран</translation> @@ -5102,6 +5144,10 @@ p, li { white-space: pre-wrap; } <source>Remove</source> <translation>Удалить</translation> </message> + <message> + <source>Filter</source> + <translation>Фильтр</translation> + </message> </context> <context> <name>Core::Internal::MimeTypeSettingsPrivate</name> @@ -5295,6 +5341,21 @@ p, li { white-space: pre-wrap; } <translation>Ошибки Ð¼Ð¾Ð´ÑƒÐ»Ñ %1</translation> </message> </context> +<context> + <name>Core::Internal::ProgressManagerPrivate</name> + <message> + <source>Toggle Progress Details</source> + <translation>Переключить подробноÑти выполнениÑ</translation> + </message> + <message> + <source>Ctrl+Shift+0</source> + <translation>Ctrl+Shift+0</translation> + </message> + <message> + <source>Alt+Shift+0</source> + <translation>Alt+Shift+0</translation> + </message> +</context> <context> <name>Core::Internal::ProgressView</name> <message> @@ -5317,6 +5378,103 @@ Would you like to overwrite them?</source> Желаете перезапиÑать их?</translation> </message> </context> +<context> + <name>Core::Internal::ReadOnlyFilesDialog</name> + <message> + <source>Files Without Write Permissions</source> + <translation>Файлы без права запиÑи</translation> + </message> + <message> + <source>The following files have no write permissions. Do you want to change the permissions?</source> + <translation>Ð”Ð»Ñ Ñледующих файлов отÑутÑтвует право запиÑи. Сменить права?</translation> + </message> + <message> + <source>Make Writable</source> + <translation>Сделать запиÑываемым</translation> + </message> + <message> + <source>Open with VCS</source> + <translation>Открыть в VCS</translation> + </message> + <message> + <source>Save As</source> + <translation>Сохранить как</translation> + </message> + <message> + <source>Path</source> + <translation>Путь</translation> + </message> + <message> + <source>Select all, if possible: </source> + <translation>Выбрать вÑе, еÑли возможно:</translation> + </message> + <message> + <source>Mixed</source> + <translation>Смешанно</translation> + </message> + <message> + <source>Failed to %1 File</source> + <translation>Ðе удалоÑÑŒ %1 файл</translation> + </message> + <message> + <source>%1 file %2 from version control system %3 failed. +</source> + <translation>Ðе удалоÑÑŒ %1 файл %2 из ÑиÑтемы ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий %3.</translation> + </message> + <message> + <source>No Version Control System Found</source> + <translation>Ðе обнаружена ÑиÑтема ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий</translation> + </message> + <message> + <source>Cannot open file %1 from version control system. +No version control system found. +</source> + <translation>Ðе удалоÑÑŒ открыть файл %1 из ÑиÑтемы ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий. +Она не обнаружена.</translation> + </message> + <message> + <source>Cannot Set Permissions</source> + <translation>Ðе удалоÑÑŒ задать права доÑтупа</translation> + </message> + <message> + <source>Cannot set permissions for %1 to writable. +</source> + <translation>Ðе удалоÑÑŒ задать %1 права доÑтупа на запиÑÑŒ.</translation> + </message> + <message> + <source>Cannot Save File</source> + <translation>Ðе удалоÑÑŒ Ñохранить файл</translation> + </message> + <message> + <source>Cannot save file %1 +</source> + <translation>Ðе удалоÑÑŒ Ñохранить файл %1</translation> + </message> + <message> + <source>Canceled Changing Permissions</source> + <translation>Смена прав доÑтупа отменена</translation> + </message> + <message> + <source>Could Not Change Permissions on Some Files</source> + <translation>Ðе удалоÑÑŒ Ñменить некоторым файлам права доÑтупа</translation> + </message> + <message> + <source> +See details for a complete list of files.</source> + <translation> +Полный ÑпиÑок файлов приведён в подробноÑÑ‚ÑÑ….</translation> + </message> + <message> + <source>&Change Permission</source> + <translation>&Сменить права</translation> + </message> + <message> + <source>The following files are not checked out yet. +Do you want to check them out now?</source> + <translation>Следующие файлы ещё не были получены. +Получить их ÑейчаÑ?</translation> + </message> +</context> <context> <name>Core::Internal::SaveItemsDialog</name> <message> @@ -5377,6 +5535,10 @@ Would you like to overwrite them?</source> <source>Shortcut</source> <translation>Сочетание клавиш</translation> </message> + <message> + <source>Type to set shortcut</source> + <translation>Задайте Ñочетание</translation> + </message> <message> <source>Import Keyboard Mapping Scheme</source> <translation>Импорт Ñхемы разметки клавиатуры</translation> @@ -5433,18 +5595,14 @@ Would you like to overwrite them?</source> <translation>О Qt Creator</translation> </message> <message> - <source>(%1)</source> - <translation></translation> + <source><h3>%1</h3>%2<br/><br/>Built on %3 at %4<br /><br/>%5<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/></source> + <translation><h3>%1</h3>%2<br/><br/>Собран %4 на %3<br/><br/>%5<br/>© 2008-%6 %7. Ð’Ñе права защищены.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/></translation> </message> <message> <source>From revision %1<br/></source> <extracomment>This gets conditionally inserted as argument %8 into the description string.</extracomment> <translation>Ð ÐµÐ²Ð¸Ð·Ð¸Ñ %1<br/></translation> </message> - <message> - <source><h3>Qt Creator %1 %8</h3>Based on Qt %2 (%3 bit)<br/><br/>Built on %4 at %5<br /><br/>%9<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/></source> - <translation><h3>Qt Creator %1 %8</h3>ОÑнован на Qt %2 (%3-Ñ… битной)<br/><br/>Собран %4 в %5<br /><br/>%9<br/>© 2008-%6 %7. Ð’Ñе права защищены.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/></translation> - </message> </context> <context> <name>Core::ModeManager</name> @@ -5523,8 +5681,35 @@ Would you like to overwrite them?</source> <translation>Ð’Ñтавить переменную</translation> </message> </context> +<context> + <name>Core::VariableManager</name> + <message> + <source>%1: Full path including file name.</source> + <translation>%1: полный путь Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ файла.</translation> + </message> + <message> + <source>%1: Full path excluding file name.</source> + <translation>%1: полный путь без имени файла.</translation> + </message> + <message> + <source>%1: File name without path.</source> + <translation>%1: Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° без пути.</translation> + </message> + <message> + <source>%1: File base name without path and suffix.</source> + <translation>%1: Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° без пути и раÑширениÑ.</translation> + </message> +</context> <context> <name>Core::VcsManager</name> + <message> + <source>%1 repository was detected but %1 is not configured.</source> + <translation>Обнаружено хранилище %1, но %1 не наÑтроен.</translation> + </message> + <message> + <source>Configure</source> + <translation>ÐаÑтроить</translation> + </message> <message> <source>Version Control</source> <translation>Контроль верÑий</translation> @@ -5602,6 +5787,18 @@ to version control (%2) <source>Add Definition in %1</source> <translation>Добавить реализацию в %1</translation> </message> + <message> + <source>Add Definition Here</source> + <translation>Добавить Ñюда реализацию</translation> + </message> + <message> + <source>Add Definition Inside Class</source> + <translation>Добавить реализацию внутрь клаÑÑа</translation> + </message> + <message> + <source>Add Definition Outside Class</source> + <translation>Добавить реализацию вне клаÑÑа</translation> + </message> </context> <context> <name>CppEditor::Internal::CPPEditorWidget</name> @@ -5648,18 +5845,11 @@ to version control (%2) </message> </context> <context> - <name>CppEditor::Internal::CppOutlineTreeView</name> - <message> - <source>Expand All</source> - <translation>Развернуть вÑÑ‘</translation> - </message> + <name>CppEditor::Internal::CppEditorPlugin</name> <message> - <source>Collapse All</source> - <translation>Свернуть вÑÑ‘</translation> + <source>C++ Class</source> + <translation>КлаÑÑ C++</translation> </message> -</context> -<context> - <name>CppEditor::Internal::CppPlugin</name> <message> <source>Creates a C++ header and a source file for a new class that you can add to a C++ project.</source> <translation>Создание заголовочного и иÑходного файлов C++ под новый клаÑÑ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² проект C++.</translation> @@ -5668,6 +5858,10 @@ to version control (%2) <source>Creates a C++ source file that you can add to a C++ project.</source> <translation>Создание иÑходного файла C++ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² проект C++.</translation> </message> + <message> + <source>C++ Source File</source> + <translation>Файл иÑходных текÑтов C++</translation> + </message> <message> <source>Creates a C++ header file that you can add to a C++ project.</source> <translation>Создание заголовочного файл C++ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² проект C++.</translation> @@ -5688,25 +5882,37 @@ to version control (%2) <source>Open Method Declaration/Definition in Next Split</source> <translation>Открыть объÑвлениÑ/Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð² Ñледующей панели</translation> </message> + <message> + <source>Meta+E, Shift+F2</source> + <translation>Meta+E, Shift+F2</translation> + </message> <message> <source>Ctrl+E, Shift+F2</source> <translation>Ctrl+E, Shift+F2</translation> </message> <message> - <source>Rename Symbol Under Cursor</source> - <translation>Переименовать Ñимвол под курÑором</translation> + <source>Find Usages</source> + <translation>Ðайти иÑпользование</translation> + </message> + <message> + <source>Ctrl+Shift+U</source> + <translation>Ctrl+Shift+U</translation> </message> <message> <source>Open Type Hierarchy</source> <translation>Открыть иерархию типов</translation> </message> + <message> + <source>Meta+Shift+T</source> + <translation>Meta+Shift+T</translation> + </message> <message> <source>Ctrl+Shift+T</source> - <translation></translation> + <translation>Ctrl+Shift+T</translation> </message> <message> - <source>Meta+Shift+T</source> - <translation>Meta+Shift+T</translation> + <source>Rename Symbol Under Cursor</source> + <translation>Переименовать Ñимвол под курÑором</translation> </message> <message> <source>CTRL+SHIFT+R</source> @@ -5716,21 +5922,16 @@ to version control (%2) <source>Update Code Model</source> <translation>Обновить модель кода</translation> </message> +</context> +<context> + <name>CppEditor::Internal::CppOutlineTreeView</name> <message> - <source>C++ Source File</source> - <translation>Файл иÑходных текÑтов C++</translation> - </message> - <message> - <source>C++ Class</source> - <translation>КлаÑÑ C++</translation> - </message> - <message> - <source>Find Usages</source> - <translation>Ðайти иÑпользование</translation> + <source>Expand All</source> + <translation>Развернуть вÑÑ‘</translation> </message> <message> - <source>Ctrl+Shift+U</source> - <translation>Ctrl+Shift+U</translation> + <source>Collapse All</source> + <translation>Свернуть вÑÑ‘</translation> </message> </context> <context> @@ -5782,10 +5983,61 @@ to version control (%2) </message> </context> <context> - <name>CppEditor::Internal::InsertQtPropertyMembers</name> + <name>CppEditor::Internal::InsertVirtualMethodsDialog</name> <message> - <source>Generate Missing Q_PROPERTY Members...</source> - <translation>Создание отÑутÑтвующих членов Q_PROPERTY...</translation> + <source>Insert Virtual Functions</source> + <translation>Ð’Ñтавка виртуальных методов</translation> + </message> + <message> + <source>&Functions to insert:</source> + <translation>&Ð’ÑтавлÑемые методы:</translation> + </message> + <message> + <source>&Hide already implemented functions of current class</source> + <translation>&Скрывать уже реализованные методы текущего клаÑÑа</translation> + </message> + <message> + <source>&Insertion options:</source> + <translation>&Параметры вÑтавки:</translation> + </message> + <message> + <source>Insert only declarations</source> + <translation>Ð’Ñтавить только объÑвлениÑ</translation> + </message> + <message> + <source>Insert definitions inside class</source> + <translation>Ð’Ñтавить реализацию внутри клаÑÑа</translation> + </message> + <message> + <source>Insert definitions outside class</source> + <translation>Ð’Ñтавить реализацию вне клаÑÑа</translation> + </message> + <message> + <source>Insert definitions in implementation file</source> + <translation>Ð’Ñтавить реализацию в файл реализации</translation> + </message> + <message> + <source>&Add keyword 'virtual' to function declaration</source> + <translation>&ДобавлÑÑ‚ÑŒ «virtual» к объÑвлениÑм методов</translation> + </message> +</context> +<context> + <name>CppEditor::QuickFix</name> + <message> + <source>Move Definition Outside Class</source> + <translation>ВынеÑти реализацию из клаÑÑа</translation> + </message> + <message> + <source>Move Definition to %1</source> + <translation>ПеремеÑтить реализацию в %1</translation> + </message> + <message> + <source>Move Definition to Class</source> + <translation>ПеренеÑти реализацию в клаÑÑ</translation> + </message> + <message> + <source>Insert Virtual Functions of Base Classes</source> + <translation>Ð’Ñтавить виртуальные методы базовых клаÑÑов</translation> </message> </context> <context> @@ -5795,6 +6047,13 @@ to version control (%2) <translation>%1: Ðет такого файла или каталога</translation> </message> </context> +<context> + <name>CppQmlTypesLoader</name> + <message> + <source>%1 seems not to be encoded in UTF8 or has a BOM.</source> + <translation>Похоже, %1 не в кодировке UTF8 или Ñодержит BOM.</translation> + </message> +</context> <context> <name>CppTools</name> <message> @@ -6270,6 +6529,14 @@ if (a && <source>Open Corresponding Header/Source in Next Split</source> <translation>Открыть заголовочный/иÑходный файл в Ñледующей панели</translation> </message> + <message> + <source>Meta+E, F4</source> + <translation>Meta+E, F4</translation> + </message> + <message> + <source>Ctrl+E, F4</source> + <translation>Ctrl+E, F4</translation> + </message> </context> <context> <name>CppTools::Internal::SymbolsFindFilter</name> @@ -6431,6 +6698,10 @@ Flags: %3</source> <source>Reformat Pointers or References</source> <translation>Переформатировать указатели или ÑÑылки</translation> </message> + <message> + <source>Assign to Local Variable</source> + <translation>Ðазначить локальной переменной</translation> + </message> <message> <source>Convert to Objective-C String Literal</source> <translation>Преобразовать в Ñтроковый литерал Objective-C</translation> @@ -6493,6 +6764,13 @@ Flags: %3</source> <translation>Хранилище:</translation> </message> </context> +<context> + <name>Cvs::Internal::CvsControl</name> + <message> + <source>&Edit</source> + <translation>&Изменить</translation> + </message> +</context> <context> <name>Cvs::Internal::CvsDiffParameterWidget</name> <message> @@ -6964,6 +7242,31 @@ Flags: %3</source> <source>Stopped at internal breakpoint %1 in thread %2.</source> <translation>ОÑтановлено на внутренней точке оÑтанова %1, поток %2.</translation> </message> + <message> + <source>Found.</source> + <translation>Ðайдена.</translation> + </message> + <message> + <source>Not found.</source> + <translation>Ðе найдена.</translation> + </message> + <message> + <source> +Section %1: %2</source> + <translation> +Ð¡ÐµÐºÑ†Ð¸Ñ %1: %2</translation> + </message> + <message> + <source>Warning</source> + <translation>Предупреждение</translation> + </message> + <message> + <source>This does not seem to be a "Debug" build. +Setting breakpoints by file name and line number may fail. +</source> + <translation>Ðто не похоже на Ñборку Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸. +УÑтановка точек оÑтанова по имени файла и Ñтроке может не работать.</translation> + </message> <message> <source>Stopped.</source> <translation>ОÑтановлено.</translation> @@ -7123,6 +7426,10 @@ Flags: %3</source> <source>Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored.</source> <translation>Будут пропущены точки оÑтанова, не поддерживаемые доÑтупными отладчику Ñзыками.</translation> </message> + <message> + <source>Not enough free ports for QML debugging. </source> + <translation>ÐедоÑтаточно Ñвободных портов Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ QML.</translation> + </message> <message> <source>Install &Debug Information</source> <translation>УÑтановить &отладочную информацию</translation> @@ -7132,6 +7439,13 @@ Flags: %3</source> <translation>Попытка уÑтановить отÑутÑтвующую информацию Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸.</translation> </message> </context> +<context> + <name>Debugger::DebuggerRunConfigurationAspect</name> + <message> + <source>Debugger settings</source> + <translation>ÐаÑтройки отладчика</translation> + </message> +</context> <context> <name>Debugger::DebuggerRunControl</name> <message> @@ -7542,6 +7856,14 @@ Flags: %3</source> <source>Add Breakpoint...</source> <translation>УÑтановить точку оÑтанова...</translation> </message> + <message> + <source>Remove All Breakpoints</source> + <translation>Удаление вÑех точек оÑтанова</translation> + </message> + <message> + <source>Are you sure you want to remove all breakpoints from all files in the current session?</source> + <translation>Желаете удалить вÑе точки оÑтанова из вÑех файлов текущей ÑеÑÑии?</translation> + </message> <message> <source>Add Breakpoint</source> <translation>УÑтановить точку оÑтанова</translation> @@ -7879,10 +8201,6 @@ This feature is only available for GDB.</source> <source>Use CDB &console</source> <translation>ИÑпользовать &конÑоль CDB</translation> </message> - <message> - <source>Breakpoints</source> - <translation>Точки оÑтанова</translation> - </message> <message> <source><html><head/><body><p>Attempt to correct the location of a breakpoint based on file and line number should it be in a comment or in a line for which no code is generated. The correction is based on the code model.</p></body></html></source> <translation><html><head/><body><p>ПытатьÑÑ Ð¸Ñправить положение точки оÑтанова, еÑли она уÑтановлена на Ñтроке файла, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ код не ÑоздаётÑÑ (комментарий, например). ÐšÐ¾Ñ€Ñ€ÐµÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑÑ ÑоглаÑно модели кода.</p></body></html></translation> @@ -7891,34 +8209,10 @@ This feature is only available for GDB.</source> <source>Correct breakpoint location</source> <translation>ИÑправлÑÑ‚ÑŒ положение точек оÑтанова</translation> </message> - <message> - <source>Break on functions:</source> - <translation>ОÑтанавливатьÑÑ Ð½Ð° функциÑÑ…:</translation> - </message> <message> <source>This is useful to catch runtime error messages, for example caused by assert().</source> <translation>Полезно Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð¾Ð²Ð° Ñообщений об ошибках Ñоздаваемых, например, assert().</translation> </message> - <message> - <source>Symbol paths: %1</source> - <translation>Пути к Ñимволам: %1</translation> - </message> - <message> - <source><none></source> - <translation><нет></translation> - </message> - <message> - <source>Source paths: %1</source> - <translation>Пути к иÑходникам: %1</translation> - </message> - <message> - <source>Paths</source> - <translation>Пути</translation> - </message> - <message> - <source>Edit...</source> - <translation>Изменить...</translation> - </message> <message> <source>Various</source> <translation>Разное</translation> @@ -7929,14 +8223,21 @@ This feature is only available for GDB.</source> </message> </context> <context> - <name>Debugger::Internal::CdbPathDialog</name> + <name>Debugger::Internal::CdbPathsPage</name> <message> - <source>CDB Symbol Paths</source> - <translation>Пути к Ñимволам Ð´Ð»Ñ CDB</translation> + <source>CDB Paths</source> + <translation>Пути CDB</translation> + </message> +</context> +<context> + <name>Debugger::Internal::CdbPathsPageWidget</name> + <message> + <source>Symbol Paths</source> + <translation>Пути к Ñимволам</translation> </message> <message> - <source>CDB Source Paths</source> - <translation>Пути к иÑходникам Ð´Ð»Ñ CDB</translation> + <source>Source Paths</source> + <translation>Пути к иÑходникам</translation> </message> </context> <context> @@ -7950,16 +8251,12 @@ This feature is only available for GDB.</source> <translation>ДобавлÑет Ñервер Ñимволов Microsoft, который предоÑтавлÑет Ñимволы Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² операционной ÑиÑтемы. Требует ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° локального кÑша.</translation> </message> <message> - <source><html><head/><body><p>The debugger is not configured to use the public <a href="%1">Microsoft Symbol Server</a>. This is recommended for retrieval of the symbols of the operating system libraries.</p><p><i>Note:</i> A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.</p><p>Would you like to set it up?</p></body></html></source> - <translation><html><head/><body><p>Отладчик не наÑтроен на иÑпользование публичного <a href="%1">Ñервера Ñимволов Microsoft</a>. РекомендуетÑÑ Ð½Ð°Ñтроить Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñимволов ÑиÑтемных библиотек.</p><p>Ð”Ð»Ñ ÐºÐ¾Ð¼Ñ„Ð¾Ñ€Ñ‚Ð½Ð¾Ð¹ работы необходимо быÑтрое Ñоединение Ñ Internet. Также возможна задержка при первом подключении.</p><p>Желаете наÑтроить?</p></body></html></translation> - </message> - <message> - <source>Symbol Server</source> - <translation>Сервер Ñимволов</translation> + <source>Symbol Cache...</source> + <translation>КÑш Ñимволов...</translation> </message> <message> - <source>Do not ask again</source> - <translation>Больше не Ñпрашивать</translation> + <source>Uses a directory to cache symbols used by the debugger.</source> + <translation>ИÑпользует каталог Ð´Ð»Ñ ÐºÑÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñимволов иÑпользуемых отладчиком.</translation> </message> </context> <context> @@ -8004,8 +8301,12 @@ This feature is only available for GDB.</source> <translation>ÐвтоматичеÑки заполнÑÑ‚ÑŒ предÑтавление иÑходных текÑтов</translation> </message> <message> - <source>Close temporary buffers on debugger exit</source> - <translation>Закрывать временные буфера при завершении отладчика</translation> + <source>Close temporary views on debugger exit</source> + <translation>Закрывать временные обзоры при завершении отладчика</translation> + </message> + <message> + <source>Stopping and stepping in the debugger will automatically open source or disassembler views associated with the current location. Select this option to automatically close them when the debugger exits.</source> + <translation>ОÑтановка и Ð¿Ð¾ÑˆÐ°Ð³Ð¾Ð²Ð°Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ° автоматичеÑки открывают обзор иÑходников или дизаÑÑемблера ÑоответÑтвующий текущему положению. Включение Ñтого параметра приведёт к их автоматичеÑкому закрытию при завершении отладки.</translation> </message> <message> <source>Switch to previous mode on debugger exit</source> @@ -8039,6 +8340,14 @@ This feature is only available for GDB.</source> <source>Use Qt Creator for post-mortem debugging</source> <translation>Ðазначить Qt Creator ÑиÑтемным отладчиком</translation> </message> + <message> + <source>Warn when debugging "Release" builds</source> + <translation>Предупреждать при отладке «выпуÑкаемых» Ñборок</translation> + </message> + <message> + <source>Show a warning when starting the debugger on a binary with insufficient debug information.</source> + <translation>Показывать предупреждение при запуÑке отладчика на программе без отладочной информации.</translation> + </message> <message> <source>Maximum stack depth:</source> <translation>МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð³Ð»ÑƒÐ±Ð¸Ð½Ð° Ñтека:</translation> @@ -8765,7 +9074,7 @@ Qt Creator не может подключитьÑÑ Ðº нему.</translation> <name>Debugger::Internal::DebuggerSourcePathMappingWidget</name> <message> <source><new source></source> - <translation><иÑходный путь></translation> + <translation><новый путь к иÑходникам></translation> </message> <message> <source><new target></source> @@ -8773,7 +9082,7 @@ Qt Creator не может подключитьÑÑ Ðº нему.</translation> </message> <message> <source>Source path</source> - <translation>ИÑходный путь</translation> + <translation>Путь к иÑходникам</translation> </message> <message> <source>Target path</source> @@ -8809,7 +9118,7 @@ Qt Creator не может подключитьÑÑ Ðº нему.</translation> </message> <message> <source>&Source path:</source> - <translation>&ИÑходный путь:</translation> + <translation>Путь к &иÑходникам:</translation> </message> <message> <source>The actual location of the source tree on the local machine</source> @@ -8817,7 +9126,7 @@ Qt Creator не может подключитьÑÑ Ðº нему.</translation> </message> <message> <source>&Target path:</source> - <translation>Путь &назначениÑ:</translation> + <translation>Путь к &программе:</translation> </message> <message> <source>Qt Sources</source> @@ -8962,15 +9271,15 @@ Qt Creator не может подключитьÑÑ Ðº нему.</translation> </message> <message> <source>An error occurred when attempting to write to the gdb process. For example, the process may not be running, or it may have closed its input channel.</source> - <translation>Ошибка при отправке данных процеÑÑу gdb. Ðапример, процеÑÑ Ð¼Ð¾Ð¶ÐµÑ‚ уже не работать или он мог закрыть Ñвой входной канал.</translation> + <translation>Ошибка при отправке данных процеÑÑу gdb. Ðапример, процеÑÑ ÑƒÐ¶Ðµ переÑтал работать или закрыл Ñвой входной канал.</translation> </message> <message> <source>An error occurred when attempting to read from the gdb process. For example, the process may not be running.</source> - <translation>Ошибка при получении данных от процеÑÑа gdb. Ðапример, процеÑÑ Ð¼Ð¾Ð¶ÐµÑ‚ уже не работать.</translation> + <translation>Ошибка при получении данных от процеÑÑа gdb. Ðапример, процеÑÑ ÑƒÐ¶Ðµ переÑтал работать.</translation> </message> <message> <source>An unknown error in the gdb process occurred. </source> - <translation>У процеÑÑа gdb возникла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. </translation> + <translation>У процеÑÑа gdb возникла Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. </translation> </message> <message> <source>Library %1 unloaded</source> @@ -9038,31 +9347,6 @@ Try: %2</source> <source>Application exited normally</source> <translation>Приложение завершилоÑÑŒ уÑпешно</translation> </message> - <message> - <source>This does not seem to be a "Debug" build. -Setting breakpoints by file name and line number may fail. -</source> - <translation>Ðто не выглÑдит, как Ð¾Ñ‚Ð»Ð°Ð´Ð¾Ñ‡Ð½Ð°Ñ Ñборка. -УÑтановка точек оÑтанова по имени файла и Ñтроке может не работать.</translation> - </message> - <message> - <source>Found.</source> - <translation>Ðайдена.</translation> - </message> - <message> - <source>Not Found.</source> - <translation>Ðе найдена.</translation> - </message> - <message> - <source> -Section %1: %2</source> - <translation> -Ð¡ÐµÐºÑ†Ð¸Ñ %1: %2</translation> - </message> - <message> - <source>Warning</source> - <translation>Предупреждение</translation> - </message> <message> <source>The gdb process could not be stopped: %1</source> @@ -9457,12 +9741,20 @@ markers in the source code editor.</source> <translation>Загружать файл .gdbinit при запуÑке</translation> </message> <message> - <source>Warn when debugging "Release" builds</source> - <translation>Предупреждать при отладке «выпуÑкаемых» Ñборок</translation> + <source><html><head/><body><p>Attempts to identify missing debug info packages and lists them in the Issues output pane.</p><p><b>Note:</b> This feature needs special support from the Linux distribution and GDB build and is not available everywhere.</p></body></html></source> + <translation><html><head/><body><p>Qt Creator пытаетÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸Ñ‚ÑŒ пакеты Ñ Ð¾Ñ‚ÑутÑтвующей отладочной информацией и отобразить в окне проблем.</p><p><b>Внимание:</b>Ðта оÑобенноÑÑ‚ÑŒ требует Ñпециальной поддержки Ñо Ñтороны диÑтрибутива Linux и Ñборки GDB, поÑтому она не везде доÑтупна.</p></body></html></translation> </message> <message> - <source>Show a warning when starting the debugger on a binary with insufficient debug information.</source> - <translation>Показывать предупреждение при запуÑке отладчика на программе без отладочной информации.</translation> + <source><p>To execute simple Python commands, prefix them with "python".</p><p>To execute sequences of Python commands spanning multiple lines prepend the block with "python" on a separate line, and append "end" on a separate line.</p><p>To execute arbitrary Python scripts, use <i>python execfile('/path/to/script.py')</i>.</p></source> + <translation><p>Ð”Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñтой команды Python доÑтаточно указать перед ней Ñлово «python».</p><p>Ð”Ð»Ñ Ð±Ð»Ð¾ÐºÐ°, размещённого на неÑкольких Ñтроках, необходимо поÑтавить Ñлова «python» и «end» на отдельных Ñтроках, ÑоответÑтвенно, в начале и конце.</p><p>Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ Python Ñледует напиÑать: <i>python execfile('/path/to/script.py')</i>.</p></translation> + </message> + <message> + <source>Debugging Helper Customization</source> + <translation>ÐаÑтройка помощников отладчика</translation> + </message> + <message> + <source><html><head/><body><p>GDB commands entered here will be executed after Qt Creator's debugging helpers have been loaded and fully initialized. You can load additional debugging helpers or modify existing ones here.</p>%1</body></html></source> + <translation><html><head/><body><p>Введённые здеÑÑŒ команды будут выполнÑÑ‚ÑŒÑÑ Ð¿Ñ€Ð¸ запуÑке GDB поÑле загрузки и полной инициализации помощников отладчика. ЗдеÑÑŒ вы можете указать загрузку дополнительных помощников или изменить ÑущеÑтвующие.</p>%1</body></html></translation> </message> <message> <source>The options below should be used with care.</source> @@ -9480,10 +9772,6 @@ markers in the source code editor.</source> <source><html><head/><body><p>Enable stepping backwards.</p><p><b>Note:</b> This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.</p></body></html></source> <translation><html><head/><body><p>Включение обратной отладки.</p><p><b>Внимание!</b> Ðта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¾Ñ‡ÐµÐ½ÑŒ медлительна и неÑтабильна Ñо Ñтороны GDB. Она может привеÑти к непредÑказуемому поведению при обратном проходе через ÑиÑтемный вызов и краху отладочной ÑеÑÑии.</p><body></html></translation> </message> - <message> - <source><html><head/><body><p>GDB commands entered here will be executed after GDB has been started and the debugging helpers have been initialized.</p><p>You can add commands to load further debugging helpers here, or modify existing ones.</p><p>To execute simple Python commands, prefix them with "python".</p><p>To execute sequences of Python commands spanning multiple lines prepend the block with "python" on a separate line, and append "end" on a separate line.</p><p>To execute arbitrary Python scripts, use <i>python execfile('/path/to/script.py')</i>.</p></body></html></source> - <translation><html><head/><body><p>Введённые здеÑÑŒ команды будут выполнÑÑ‚ÑŒÑÑ Ð¿Ñ€Ð¸ запуÑке GDB Ñразу поÑле инициализации помощников отладчика.</p><p>Можно добавить команды Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ дополнительных помощников или изменить ÑущеÑтвующие.</p><p>Ð”Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÑÑ‚Ñ‹Ñ… команд Python, доÑтаточно добавить перед ними Ñлово «python».</p><p>Ð”Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледовательноÑти команд Python, необходимо разделить их по разным Ñтрокам, при Ñтом Ð¿ÐµÑ€Ð²Ð°Ñ Ñтрока должна Ñодержать только «python», а поÑледнÑÑ â€• «end».</p><p>Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñценариев Python иÑпользуйте <i>python execfile('/путь/к/script.py')</i>.</p></body></html></translation> - </message> <message> <source>Additional Attach Commands</source> <translation>Команды при подключении</translation> @@ -9517,6 +9805,27 @@ receives a signal like SIGSEGV during debugging.</source> <translation>ПозволÑет или запрещает загрузку файла «.gdbinit» при Ñтарте отладчика.</translation> </message> + <message> + <source>Load system GDB pretty printers</source> + <translation>Загружать ÑиÑтемные фильтры GDB</translation> + </message> + <message> + <source>Uses the default GDB pretty printers installed in your system or linked to the libraries your application uses. +</source> + <translation>ИÑпользовать фильтры GDB, уÑтановленные в ÑиÑтеме или вÑтроенные в библиотеки, иÑпользуемые приложением.</translation> + </message> + <message> + <source>Create tasks from missing packages</source> + <translation>Создавать задачи из отÑутÑтвующих пакетов</translation> + </message> + <message> + <source><html><head/><body><p>GDB commands entered here will be executed after GDB has been started, but before the debugged program is started or attached, and before the debugging helpers are initialized.</p>%1</body></html></source> + <translation><html><head/><body><p>Введённые здеÑÑŒ команды будут выполнÑÑ‚ÑŒÑÑ Ð¿Ñ€Ð¸ запуÑке GDB, но до Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ запуÑка отлаживаемой программы и инициализации помощников отладчика.</p>%1</body></html></translation> + </message> + <message> + <source>Extended</source> + <translation>РаÑширенные</translation> + </message> <message> <source><html><head/><body>The options below give access to advanced or experimental functions of GDB. Enabling them may negatively impact your debugging experience.</body></html></source> <translation><html><head/><body>ÐаÑтройки ниже позволÑÑŽÑ‚ получить доÑтуп к продвинутым и ÑкÑпериментальными функциÑм GDB. Их включение может негативно ÑказатьÑÑ Ð½Ð° качеÑтве отладки.</body></html></translation> @@ -9562,6 +9871,13 @@ receives a signal like SIGSEGV during debugging.</source> <translation></translation> </message> </context> +<context> + <name>Debugger::Internal::GdbOptionsPage2</name> + <message> + <source>GDB Extended</source> + <translation type="unfinished">GDB, раÑширенные</translation> + </message> +</context> <context> <name>Debugger::Internal::GdbRemoteServerEngine</name> <message> @@ -9683,6 +9999,65 @@ receives a signal like SIGSEGV during debugging.</source> <translation>Ðажмите Ctrl-<Ввод> Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñтроки.</translation> </message> </context> +<context> + <name>Debugger::Internal::LldbEngine</name> + <message> + <source>Unable to start lldb '%1': %2</source> + <translation>Ðе удалоÑÑŒ запуÑтить lldb «%1»: %2</translation> + </message> + <message> + <source>Adapter start failed.</source> + <translation>Ðе удалоÑÑŒ запуÑтить адаптер.</translation> + </message> + <message> + <source>Running requested...</source> + <translation>Потребован запуÑк...</translation> + </message> + <message> + <source>Interrupt requested...</source> + <translation>Потребовано прерывание...</translation> + </message> + <message> + <source>'%1' contains no identifier.</source> + <translation>«%1» не Ñодержит идентификатора.</translation> + </message> + <message> + <source>String literal %1</source> + <translation>Строковый литерал %1</translation> + </message> + <message> + <source>Cowardly refusing to evaluate expression '%1' with potential side effects.</source> + <translation>Робкий отказ вычиÑлить выражение «%1» Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼Ð¸ побочными Ñффектами.</translation> + </message> + <message> + <source>Lldb I/O Error</source> + <translation>Ошибка ввода/вывода Lldb</translation> + </message> + <message> + <source>The Lldb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program.</source> + <translation>Ðе удалоÑÑŒ запуÑтить процеÑÑ Lldb. Либо программа «%1» отÑутÑтвует, либо недоÑтаточно прав Ð´Ð»Ñ ÐµÑ‘ запуÑка.</translation> + </message> + <message> + <source>The Lldb process crashed some time after starting successfully.</source> + <translation>ПроцеÑÑ Lldb завершилÑÑ ÐºÑ€Ð°Ñ…Ð¾Ð¼ через некоторое Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ñле уÑпешного Ñтарта.</translation> + </message> + <message> + <source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source> + <translation>У поÑледней функции waitFor...() иÑтекло Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ. СоÑтоÑние QProcess не изменилоÑÑŒ, и вы можете попробовать вызвать waitFor...() Ñнова.</translation> + </message> + <message> + <source>An error occurred when attempting to write to the Lldb process. For example, the process may not be running, or it may have closed its input channel.</source> + <translation>Ошибка при отправке данных процеÑÑу Lldb. Ðапример, процеÑÑ ÑƒÐ¶Ðµ переÑтал работать или закрыл Ñвой входной канал.</translation> + </message> + <message> + <source>An error occurred when attempting to read from the Lldb process. For example, the process may not be running.</source> + <translation>Ошибка при получении данных от процеÑÑа Lldb. Ðапример, процеÑÑ ÑƒÐ¶Ðµ переÑтал работать.</translation> + </message> + <message> + <source>An unknown error in the Lldb process occurred. </source> + <translation>У процеÑÑа Lldb возникла Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. </translation> + </message> +</context> <context> <name>Debugger::Internal::LldbEngineHost</name> <message> @@ -9982,15 +10357,15 @@ Stepping into the module or setting breakpoints by file and is expected to work. </message> <message> <source>An error occurred when attempting to write to the Pdb process. For example, the process may not be running, or it may have closed its input channel.</source> - <translation>Ошибка при отправке данных процеÑÑу Pdb. Ðапример, процеÑÑ Ð¼Ð¾Ð¶ÐµÑ‚ уже не работать или он мог закрыть Ñвой входной канал.</translation> + <translation>Ошибка при отправке данных процеÑÑу Pdb. Ðапример, процеÑÑ ÑƒÐ¶Ðµ переÑтал работать или закрыл Ñвой входной канал.</translation> </message> <message> <source>An error occurred when attempting to read from the Pdb process. For example, the process may not be running.</source> - <translation>Ошибка при получении данных от процеÑÑа Pdb. Ðапример, процеÑÑ Ð¼Ð¾Ð¶ÐµÑ‚ уже не работать.</translation> + <translation>Ошибка при получении данных от процеÑÑа Pdb. Ðапример, процеÑÑ ÑƒÐ¶Ðµ переÑтал работать.</translation> </message> <message> <source>An unknown error in the Pdb process occurred. </source> - <translation>У процеÑÑа Pdb возникла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. </translation> + <translation>У процеÑÑа Pdb возникла Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. </translation> </message> </context> <context> @@ -10111,6 +10486,10 @@ Do you want to retry?</source> <source>Application startup failed: %1</source> <translation>ЗапуÑк Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ удалÑÑ: %1</translation> </message> + <message> + <source>QML debugging port not set: Unable to convert %1 to unsigned int.</source> + <translation>Порт отладки QML не задан: невозможно преобразовать %1 к unsigned int.</translation> + </message> <message> <source>Run to line %1 (%2) requested...</source> <translation>Потребовано выполнение до Ñтроки %1 (%2)...</translation> @@ -10626,6 +11005,29 @@ Do you want to retry?</source> <translation>Путь к п&рограмме:</translation> </message> </context> +<context> + <name>Debugger::Internal::SymbolPathsDialog</name> + <message> + <source>Dialog</source> + <translation>Диалог</translation> + </message> + <message> + <source>Use Local Symbol Cache</source> + <translation>ИÑпользовать локальный кÑш Ñимволов</translation> + </message> + <message> + <source>Use Microsoft Symbol Server</source> + <translation>ИÑпользовать Ñервер Ñимволов Microsoft</translation> + </message> + <message> + <source>Do not ask again</source> + <translation>Больше не Ñпрашивать</translation> + </message> + <message> + <source><html><head/><body><p>The debugger is not configured to use the public Microsoft Symbol Server.<br/>This is recommended for retrieval of the symbols of the operating system libraries.</p><p><span style=" font-style:italic;">Note:</span> It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.<br/>A fast internet connection is required for this to work smoothly,<br/>and a delay might occur when connecting for the first time and caching the symbols.</p><p>What would you like to set up?</p></body></html></source> + <translation><html><head/><body><p>Отладчик не наÑтроен на иÑпользование публичного Ñервера Ñимволов Microsoft.<br>РекомендуетÑÑ ÐµÐ³Ð¾ наÑтроить Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñимволов ÑиÑтемных библиотек.</p><p><span style=" font-style:italic;">Внимание:</span> РекомендуетÑÑ Ñервер Ñимволов Microsoft иÑпользовать ÑовмеÑтно Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ кÑшем.<br>Также Ð´Ð»Ñ ÐºÐ¾Ð¼Ñ„Ð¾Ñ€Ñ‚Ð½Ð¾Ð¹ работы необходимо быÑтрое Ñоединение Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚, при Ñтом возможна задержка при первом подключении Ð´Ð»Ñ ÐºÑÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñимволов.</p><p>Желаете наÑтроить?</p></body></html></translation> + </message> +</context> <context> <name>Debugger::Internal::ThreadsHandler</name> <message> @@ -10767,8 +11169,8 @@ Do you want to retry?</source> <translation>ÐÐ´Ñ€ÐµÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°</translation> </message> <message> - <source>Referencing Address</source> - <translation>СоответÑтвующий адреÑ</translation> + <source>Pointer Address</source> + <translation>ÐÐ´Ñ€ÐµÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ</translation> </message> <message> <source>Static Object Size</source> @@ -10909,6 +11311,14 @@ Do you want to retry?</source> <source>UCS4 string</source> <translation>Строка в кодировке UCS4</translation> </message> + <message> + <source>Array of 10 items</source> + <translation>МаÑÑив из 10 Ñлементов</translation> + </message> + <message> + <source>Array of 1000 items</source> + <translation>МаÑÑив из 1000 Ñлементов</translation> + </message> <message> <source>Decimal</source> <translation>ДеÑÑтичный</translation> @@ -10943,12 +11353,12 @@ Do you want to retry?</source> <translation>РегиÑÑ‚Ñ€ <i>%1</i></translation> </message> <message> - <source>Memory Referenced by Pointer "%1" (0x%2)</source> - <translation>ПамÑÑ‚ÑŒ ÑоответÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÑŽ «%1» (0x%2)</translation> + <source>Memory at Pointer's Address "%1" (0x%2)</source> + <translation>ПамÑÑ‚ÑŒ по адреÑу ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Â«%1» (0x%2)</translation> </message> <message> - <source>Memory at Variable "%1" (0x%2)</source> - <translation>ПамÑÑ‚ÑŒ переменной «%1» (0x%2)</translation> + <source>Memory at Object's Address "%1" (0x%2)</source> + <translation>ПамÑÑ‚ÑŒ на Ð°Ð´Ñ€ÐµÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° «%1» (0x%2)</translation> </message> <message> <source>Cannot Display Stack Layout</source> @@ -11035,8 +11445,24 @@ Do you want to retry?</source> <translation>Добавить контрольную точку на Ð°Ð´Ñ€ÐµÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° (0x%1)</translation> </message> <message> - <source>Add Data Breakpoint at Referenced Address (0x%1)</source> - <translation>Добавить контрольную точку по коÑвенному адреÑу (0x%1)</translation> + <source>Add Data Breakpoint at Pointer's Address (0x%1)</source> + <translation>Добавить контрольную точку по адреÑу ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ (0x%1)</translation> + </message> + <message> + <source>Open Memory Editor at Pointer's Address (0x%1)</source> + <translation>Открыть редактор памÑти по адреÑу ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ (0x%1)</translation> + </message> + <message> + <source>Open Memory View at Pointer's Address (0x%1)</source> + <translation>Открыть обозреватель памÑти по адреÑу ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ (0x%1)</translation> + </message> + <message> + <source>Open Memory Editor at Pointer's Address</source> + <translation>Открыть редактор памÑти по адреÑу указателÑ</translation> + </message> + <message> + <source>Open Memory View at Pointer's Address</source> + <translation>Открыть обозреватель памÑти по адреÑу указателÑ</translation> </message> <message> <source>Add Data Breakpoint</source> @@ -11076,35 +11502,19 @@ Do you want to retry?</source> </message> <message> <source>Open Memory Editor at Object's Address (0x%1)</source> - <translation>Открыть редактор памÑти по адреÑу объекта (0x%1)</translation> + <translation>Открыть редактор памÑти на Ð°Ð´Ñ€ÐµÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° (0x%1)</translation> </message> <message> <source>Open Memory View at Object's Address (0x%1)</source> - <translation>Открыть обозреватель памÑти по адреÑу объекта (0x%1)</translation> + <translation>Открыть обозреватель памÑти на Ð°Ð´Ñ€ÐµÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° (0x%1)</translation> </message> <message> <source>Open Memory Editor at Object's Address</source> - <translation>Открыть редактор памÑти по адреÑу объекта</translation> + <translation>Открыть редактор памÑти на Ð°Ð´Ñ€ÐµÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°</translation> </message> <message> <source>Open Memory View at Object's Address</source> - <translation>Открыть обозреватель памÑти по адреÑу объекта</translation> - </message> - <message> - <source>Open Memory Editor at Referenced Address (0x%1)</source> - <translation>Открыть редактор памÑти по коÑвенному адреÑу (0x%1)</translation> - </message> - <message> - <source>Open Memory View at Referenced Address (0x%1)</source> - <translation>Открыть обозреватель памÑти по ÑоответÑтвующему адреÑу (0x%1)</translation> - </message> - <message> - <source>Open Memory Editor at Referenced Address</source> - <translation>Открыть редактор памÑти по ÑоответÑтвующему адреÑу</translation> - </message> - <message> - <source>Open Memory View at Referenced Address</source> - <translation>Открыть обозреватель памÑти по ÑоответÑтвующему адреÑу</translation> + <translation>Открыть обозреватель памÑти на Ð°Ð´Ñ€ÐµÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°</translation> </message> <message> <source>Open Memory Editor Showing Stack Layout</source> @@ -11155,10 +11565,6 @@ Do you want to retry?</source> </context> <context> <name>DebuggerPlugin</name> - <message> - <source>Debug</source> - <translation>Отладка</translation> - </message> <message> <source>Unable to create a debugger engine of the type '%1'</source> <translation>Ðе удалоÑÑŒ Ñоздать отладчик типа «%1»</translation> @@ -11399,10 +11805,6 @@ Rebuilding the project might help.</source> <source>Alt+Shift+R</source> <translation></translation> </message> - <message> - <source>About Qt Designer plugins...</source> - <translation>О модулÑÑ… Qt Designer...</translation> - </message> <message> <source>Signals && Slots Editor</source> <translation>Редактор Ñигналов и Ñлотов</translation> @@ -11439,6 +11841,10 @@ Rebuilding the project might help.</source> <source>Shift+F4</source> <translation></translation> </message> + <message> + <source>About Qt Designer Plugins...</source> + <translation>О модулÑÑ… Qt Designer...</translation> + </message> <message> <source>Preview in</source> <translation>ПредпроÑмотр в</translation> @@ -11509,10 +11915,18 @@ Rebuilding the project might help.</source> </message> </context> <context> - <name>DeviceProcessesDialog</name> + <name>Diff</name> <message> - <source>&Attach to Process</source> - <translation>&ПодключитьÑÑ Ðº процеÑÑу</translation> + <source>Delete</source> + <translation>Удалено</translation> + </message> + <message> + <source>Insert</source> + <translation>Ð’Ñтавлено</translation> + </message> + <message> + <source>Equal</source> + <translation>Равно</translation> </message> </context> <context> @@ -11522,8 +11936,50 @@ Rebuilding the project might help.</source> <translation>Редактор изменений</translation> </message> </context> +<context> + <name>DiffEditor::DiffEditor</name> + <message> + <source>Ignore Whitespace</source> + <translation>ПропуÑкать пробелы</translation> + </message> + <message> + <source>Context Lines:</source> + <translation>КонтекÑтные Ñтроки:</translation> + </message> + <message> + <source>Synchronize Horizontal Scroll Bars</source> + <translation>СоглаÑовать горизонтальные полоÑÑ‹ прокрутки</translation> + </message> + <message> + <source>[%1] vs. [%2] %3</source> + <translation type="unfinished">[%1] против [%2] %3</translation> + </message> + <message> + <source>%1 vs. %2</source> + <translation type="unfinished">%1 против %2</translation> + </message> + <message> + <source>[%1] %2 vs. [%3] %4</source> + <translation type="unfinished">[%1] %2 против [%3] %4</translation> + </message> +</context> +<context> + <name>DiffEditor::DiffShowEditor</name> + <message> + <source>Hide Change Description</source> + <translation>Скрыть опиÑание изменениÑ</translation> + </message> + <message> + <source>Show Change Description</source> + <translation>Показать опиÑание изменениÑ</translation> + </message> +</context> <context> <name>DiffEditor::DiffViewEditorWidget</name> + <message> + <source>No difference</source> + <translation>Различий нет</translation> + </message> <message numerus="yes"> <source>Skipped %n lines...</source> <translation> @@ -11532,16 +11988,9 @@ Rebuilding the project might help.</source> <numerusform>Пропущено %n Ñтрок...</numerusform> </translation> </message> -</context> -<context> - <name>DiffEditor::Internal::DiffEditorEditable</name> - <message> - <source>Ignore Whitespaces</source> - <translation>ПропуÑкать пробелы</translation> - </message> <message> - <source>Context Lines:</source> - <translation>КонтекÑтные Ñтроки:</translation> + <source>[%1] %2</source> + <translation>[%1] %2</translation> </message> </context> <context> @@ -11657,6 +12106,10 @@ Rebuilding the project might help.</source> <source>Split Side by Side</source> <translation>Разделить вертикально</translation> </message> + <message> + <source>Open in New Window</source> + <translation>Открыть в новом окне</translation> + </message> <message> <source>Close Document</source> <translation>Закрыть документ</translation> @@ -11948,6 +12401,10 @@ Reason: %3</source> <source>Read .vimrc</source> <translation>Загрузить .vimrc</translation> </message> + <message> + <source>Path to .vimrc</source> + <translation>Путь к .vimrc</translation> + </message> </context> <context> <name>FakeVim::Internal::FakeVimExCommandsPage</name> @@ -12137,12 +12594,12 @@ Reason: %3</source> <translation>FakeVim</translation> </message> <message> - <source>Use FakeVim</source> - <translation>ИÑпользовать FakeVim</translation> + <source>Default: %1</source> + <translation>По умолчанию: %1</translation> </message> <message> - <source>Read .vimrc</source> - <translation>Загрузить .vimrc</translation> + <source>Use FakeVim</source> + <translation>ИÑпользовать FakeVim</translation> </message> <message> <source>Vim Behavior</source> @@ -12194,7 +12651,7 @@ Reason: %3</source> </message> <message> <source>Shift width:</source> - <translation>Ширина ÑмещениÑ:</translation> + <translation>Ширина Ñдвига:</translation> </message> <message> <source>Vim tabstop option</source> @@ -12236,6 +12693,34 @@ Reason: %3</source> <source>Show partial command</source> <translation>Показывать неполные команды</translation> </message> + <message> + <source>Use ignorecase</source> + <translation>ИÑпользовать региÑтронезавиÑимый поиÑк (ic)</translation> + </message> + <message> + <source>Let Qt Creator handle some key presses in insert mode so that code can be properly completed and expanded.</source> + <translation>ПозволÑет Qt Creator обрабатывать некоторые Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ в режиме вÑтавки, что позволÑет корректно завершать и дополнÑÑ‚ÑŒ код.</translation> + </message> + <message> + <source>Pass keys in insert mode</source> + <translation>ПропуÑкать клавиши при вÑтавке</translation> + </message> + <message> + <source>Scroll offset:</source> + <translation>ОтÑтуп прокрутки:</translation> + </message> + <message> + <source>Keep empty to use the default path, i.e. %USERPROFILE%\_vimrc on Windows, ~/.vimrc otherwise.</source> + <translation>ОÑтавьте пуÑтым, чтобы иÑпользовать путь по умолчанию (%USERPROFILE%\_vimrc в Windows или ~/.vimrc в оÑтальных ОС).</translation> + </message> + <message> + <source>Browse...</source> + <translation>Обзор...</translation> + </message> + <message> + <source>Read .vimrc from location:</source> + <translation>Размещение .vimrc:</translation> + </message> </context> <context> <name>FakeVim::Internal::FakeVimPluginPrivate</name> @@ -12758,6 +13243,10 @@ Reason: %3</source> <source>Hide files matching:</source> <translation>Скрыть файлы ÑоответÑтвующие:</translation> </message> + <message> + <source>Show files matching:</source> + <translation>Показывать ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²:</translation> + </message> <message> <source>Apply Filter</source> <translation>Применить фильтр</translation> @@ -12888,8 +13377,8 @@ Reason: %3</source> <context> <name>GenericProjectManager::Internal::Manager</name> <message> - <source>Failed opening project '%1': Project already open</source> - <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект уже открыт</translation> + <source>Failed opening project '%1': Project is not a file</source> + <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼</translation> </message> </context> <context> @@ -12902,6 +13391,10 @@ Reason: %3</source> <source>Hide files matching:</source> <translation>Скрыть файлы ÑоответÑтвующие:</translation> </message> + <message> + <source>Show files matching:</source> + <translation>Показывать ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²:</translation> + </message> <message> <source>Apply Filter</source> <translation>Применить фильтр</translation> @@ -12972,18 +13465,6 @@ These files are preserved.</source> <source>Error running %1: %2</source> <translation>Ошибка Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ %1: %2</translation> </message> - <message> - <source>Error writing to temporary file.</source> - <translation>Ошибка запиÑи во временный файл.</translation> - </message> - <message> - <source>Writing %1...</source> - <translation>ЗапиÑÑŒ %1...</translation> - </message> - <message> - <source>Cherry-picking %1...</source> - <translation>Избирательное внеÑение изменений %1...</translation> - </message> </context> <context> <name>Gerrit::Internal::GerritDialog</name> @@ -13008,20 +13489,36 @@ These files are preserved.</source> <translation>Подробнее</translation> </message> <message> - <source>Diff...</source> - <translation>Сравнить...</translation> + <source>&Refresh</source> + <translation>&Обновить</translation> </message> <message> - <source>Apply...</source> - <translation>Применить...</translation> + <source>&Show...</source> + <translation>&Показать...</translation> </message> <message> - <source>Checkout...</source> - <translation>Сменить ветку...</translation> + <source>Cherry &Pick...</source> + <translation>ПеренеÑти &изменениÑ...</translation> </message> <message> - <source>Refresh</source> - <translation>Обновить</translation> + <source>&Checkout...</source> + <translation>&Перейти...</translation> + </message> + <message> + <source>&Show</source> + <translation>&Показать</translation> + </message> + <message> + <source>Cherry &Pick</source> + <translation>ПеренеÑти &изменениÑ</translation> + </message> + <message> + <source>&Checkout</source> + <translation>&Перейти</translation> + </message> + <message> + <source>Apply in: </source> + <translation>Применить в: </translation> </message> <message> <source>Fetching "%1"...</source> @@ -13084,6 +13581,10 @@ These files are preserved.</source> <source>HTTPS</source> <translation>HTTPS</translation> </message> + <message> + <source>Always prompt for repository folder</source> + <translation>Ð’Ñегда Ñпрашивать каталог хранилища</translation> + </message> <message> <source>&Host:</source> <translation>&Сервер:</translation> @@ -13096,6 +13597,24 @@ These files are preserved.</source> <source>&ssh:</source> <translation>&ssh: </translation> </message> + <message> + <source>&Repository:</source> + <translation>&Хранилище:</translation> + </message> + <message> + <source>Default repository where patches will be applied.</source> + <translation>По умолчанию заплатки будут применÑÑ‚ÑŒÑÑ Ðº Ñтому хранилищу.</translation> + </message> + <message> + <source>Pr&ompt:</source> + <translation>С&прашивать путь:</translation> + </message> + <message> + <source>If checked, user will always be +asked to confirm the repository path.</source> + <translation>ЕÑли включено, то пользователь должен будет +вÑегда подтверждать каталог хранилища.</translation> + </message> <message> <source>&Port:</source> <translation>&Порт:</translation> @@ -13119,15 +13638,104 @@ These files are preserved.</source> <source>Gerrit...</source> <translation>Gerrit...</translation> </message> + <message> + <source>Push to Gerrit...</source> + <translation>Отправить в Gerrit...</translation> + </message> + <message> + <source>Initialization Failed</source> + <translation>Ðе удалоÑÑŒ инициализировать</translation> + </message> + <message> + <source>Failed to initialize dialog. Aborting.</source> + <translation>Ðе удалоÑÑŒ инициализировать диалог. Прервано.</translation> + </message> <message> <source>Git is not available.</source> <translation>Git не доÑтупен.</translation> </message> + <message> + <source>Remote Not Verified</source> + <translation>Внешнее хранилище не проверено</translation> + </message> + <message> + <source>Change host %1 +and project %2 + +were not verified among remotes in %3. Select different folder?</source> + <translation>Сервер изменений %1 +и проект %2 + +не прошли проверку подлинноÑти Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ в %3. Выбрать другой каталог?</translation> + </message> <message> <source>Enter Local Repository for '%1' (%2)</source> <translation>Ввод локального хранилища Ð´Ð»Ñ Â«%1» (%2)</translation> </message> </context> +<context> + <name>Gerrit::Internal::GerritPushDialog</name> + <message> + <source>Push to Gerrit</source> + <translation>Отправка в Gerrit</translation> + </message> + <message> + <source><b>Local repository:</b></source> + <translation><b>Локальное хранилище:</b></translation> + </message> + <message> + <source>Destination:</source> + <translation>Ðазначение:</translation> + </message> + <message> + <source>R&emote:</source> + <translation>С&ервер:</translation> + </message> + <message> + <source>&Branch:</source> + <translation>&Ветка:</translation> + </message> + <message> + <source>&Topic:</source> + <translation>&Тема:</translation> + </message> + <message> + <source>&Draft</source> + <translation>&Черновик</translation> + </message> + <message> + <source>Number of commits</source> + <translation>ЧиÑло фикÑаций</translation> + </message> + <message> + <source>&Push up to commit:</source> + <translation>От&править до фикÑации:</translation> + </message> + <message> + <source>Pushes the selected commit and all dependent commits.</source> + <translation>Будут отправлены Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ñ„Ð¸ÐºÑÐ°Ñ†Ð¸Ñ Ð¸ вÑе её завиÑимоÑти.</translation> + </message> + <message> + <source>&Reviewers:</source> + <translation>&Рецензенты:</translation> + </message> + <message> + <source>Comma-separated list of reviewers. + +Partial names can be used if they are unambiguous.</source> + <translation>СпиÑок рецензентов, разделённый запÑтыми. + +Можно иÑпользовать неполные имена, еÑли они однозначны.</translation> + </message> + <message> + <source><b>Local repository:</b> %1</source> + <translation><b>Локальное хранилище:</b> %1</translation> + </message> + <message> + <source>Number of commits between HEAD and %1: %2</source> + <translation>ЧиÑло фикÑаций между HEAD и %1: %2</translation> + </message> +</context> <context> <name>Gerrit::Internal::QueryContext</name> <message> @@ -13203,10 +13811,6 @@ Would you like to terminate it?</source> </context> <context> <name>Git::Internal::BranchAddDialog</name> - <message> - <source>Dialog</source> - <translation></translation> - </message> <message> <source>Branch Name:</source> <translation>Ðазвание ветки:</translation> @@ -13215,6 +13819,14 @@ Would you like to terminate it?</source> <source>CheckBox</source> <translation></translation> </message> + <message> + <source>Add Branch</source> + <translation>Добавить ветку</translation> + </message> + <message> + <source>Rename Branch</source> + <translation>Переименовать ветку</translation> + </message> <message> <source>Track remote branch '%1'</source> <translation>Следить за внешней веткой «%1»</translation> @@ -13226,10 +13838,6 @@ Would you like to terminate it?</source> </context> <context> <name>Git::Internal::BranchCheckoutDialog</name> - <message> - <source>Dialog</source> - <translation></translation> - </message> <message> <source>Local Changes Found. Choose Action:</source> <translation>ИмеютÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ðµ изменениÑ. Следует:</translation> @@ -13285,6 +13893,14 @@ Would you like to terminate it?</source> <source>Delete Branch</source> <translation>Удалить ветку</translation> </message> + <message> + <source>Branch Exists</source> + <translation>Ветка уже ÑущеÑтвует</translation> + </message> + <message> + <source>Local branch '%1' already exists.</source> + <translation>Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ‚ÐºÐ° «%1» уже ÑущеÑтвует.</translation> + </message> <message> <source>Would you like to delete the branch '%1'?</source> <translation>Удалить ветку «%1»?</translation> @@ -13325,6 +13941,10 @@ Would you like to terminate it?</source> <source>Re&base</source> <translation>Переба&зировать</translation> </message> + <message> + <source>Re&name</source> + <translation>Пере&именовать</translation> + </message> </context> <context> <name>Git::Internal::BranchModel</name> @@ -13340,21 +13960,49 @@ Would you like to terminate it?</source> <translation>Выбор фикÑации Git</translation> </message> <message> - <source>Select Working Directory</source> - <translation>Выбор рабочего каталога</translation> + <source>Browse &Directory...</source> + <translation>Открыть &каталог...</translation> </message> <message> - <source>Error</source> - <translation>Ошибка</translation> + <source>Browse &History...</source> + <translation>Открыть &иÑторию...</translation> </message> <message> - <source>Selected directory is not a Git repository.</source> - <translation>Выбранный каталог не ÑвлÑетÑÑ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ¼ Git.</translation> + <source>&Show</source> + <translation>&Показать</translation> + </message> + <message> + <source>Cherry &Pick</source> + <translation>ПеренеÑти &изменениÑ</translation> + </message> + <message> + <source>&Revert</source> + <translation>&Откатить</translation> + </message> + <message> + <source>Check&out</source> + <translation>С&менить ветку</translation> + </message> + <message> + <source>&Close</source> + <translation>&Закрыть</translation> + </message> + <message> + <source>Select Commit</source> + <translation>Выбрать фикÑацию</translation> + </message> + <message> + <source>Select Git Directory</source> + <translation>Выбрать каталог Git</translation> </message> <message> <source>Error: Unknown reference</source> <translation>Ошибка: ÐеизвеÑÑ‚Ð½Ð°Ñ ÑÑылка</translation> </message> + <message> + <source>Error: Bad working directory.</source> + <translation>Ошибка: неверный рабочий каталог.</translation> + </message> <message> <source>Error: Could not start Git.</source> <translation>Ошибка: Ðе удалоÑÑŒ запуÑтить Git.</translation> @@ -13363,10 +14011,6 @@ Would you like to terminate it?</source> <source>Fetching commit data...</source> <translation>Загрузка данных фикÑации...</translation> </message> - <message> - <source>Select</source> - <translation>Выбрать</translation> - </message> <message> <source>Change:</source> <translation>ФикÑациÑ:</translation> @@ -13459,10 +14103,6 @@ Would you like to terminate it?</source> <source>Git Diff</source> <translation>Git - Сравнение</translation> </message> - <message> - <source>Git Log</source> - <translation>Git - иÑториÑ</translation> - </message> <message> <source>Invalid revision</source> <translation>ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ€ÐµÐ²Ð¸Ð·Ð¸Ñ</translation> @@ -13475,6 +14115,18 @@ Would you like to terminate it?</source> <source>Stash Description</source> <translation>ОпиÑание ÑпрÑтанного</translation> </message> + <message> + <source>Submodules Found</source> + <translation>Ðайдены подмодули</translation> + </message> + <message> + <source>Would you like to update submodules?</source> + <translation>Желаете обновить подмодули?</translation> + </message> + <message> + <source>Rebase is in progress. What do you want to do?</source> + <translation>ВыполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ±Ð°Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ. Что Ñделать?</translation> + </message> <message> <source>Conflicts detected</source> <translation>Обнаружены конфликты</translation> @@ -13483,10 +14135,6 @@ Would you like to terminate it?</source> <source>Git SVN Log</source> <translation>Git - иÑÑ‚Ð¾Ñ€Ð¸Ñ SVN</translation> </message> - <message> - <source>Changes</source> - <translation>ИзменениÑ</translation> - </message> <message numerus="yes"> <source>Committed %n file(s). </source> @@ -13582,10 +14230,34 @@ Would you like to terminate it?</source> <extracomment>Failed to find parent revisions of a SHA1 for "annotate previous"</extracomment> <translation>Ðе удалоÑÑŒ найти родительÑкие ревизии Ð´Ð»Ñ Â«%1» в «%2»: %3</translation> </message> + <message> + <source>Cannot execute "git %1" in "%2": %3</source> + <translation>Ðе удалоÑÑŒ выполнить «git %1» в «%2»: %3</translation> + </message> <message> <source>Cannot retrieve branch of "%1": %2</source> <translation>Ðе удалоÑÑŒ получить ветку Ð´Ð»Ñ Â«%1»: %2</translation> </message> + <message> + <source>Cannot run "%1" in "%2": %3</source> + <translation>Ðе удалоÑÑŒ выполнить «%1» в «%2»: %3</translation> + </message> + <message> + <source>REBASING</source> + <translation>ПЕРЕБÐЗИРОВÐÐИЕ</translation> + </message> + <message> + <source>REVERTING</source> + <translation>ОТКÐТ</translation> + </message> + <message> + <source>CHERRY-PICKING</source> + <translation>Ð’ÐЕСЕÐИЕ ИЗМЕÐЕÐИЙ</translation> + </message> + <message> + <source>MERGING</source> + <translation>ОБЪЕДИÐЕÐИЕ</translation> + </message> <message> <source>Detached HEAD</source> <translation>ÐžÑ‚Ñ†ÐµÐ¿Ð»Ñ‘Ð½Ð½Ð°Ñ HEAD</translation> @@ -13608,20 +14280,8 @@ Would you like to terminate it?</source> <translation>Ðе удалоÑÑŒ найти ÑпрÑтанное по Ñообщению «%1» в «%2».</translation> </message> <message> - <source>Cannot run "git branch" in "%1": %2</source> - <translation>Ðе удалоÑÑŒ выполнить «git branch» в «%1»: %2</translation> - </message> - <message> - <source>Cannot run "git remote" in "%1": %2</source> - <translation>Ðе удалоÑÑŒ выполнить «git remote» в «%1»: %2</translation> - </message> - <message> - <source>Cannot run "git show" in "%1": %2</source> - <translation>Ðе удалоÑÑŒ выполнить «git show» в «%1»: %2</translation> - </message> - <message> - <source>Cannot run "git clean" in "%1": %2</source> - <translation>Ðе удалоÑÑŒ выполнить «git clean» в «%1»: %2</translation> + <source>Cannot retrieve submodule status of "%1": %2</source> + <translation>Ðе удалоÑÑŒ получить ÑоÑтоÑние Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð² «%1»: %2</translation> </message> <message> <source>There were warnings while applying "%1" to "%2": @@ -13633,14 +14293,50 @@ Would you like to terminate it?</source> <source>Cannot apply patch "%1" to "%2": %3</source> <translation>Ðе удалоÑÑŒ наложить патч «%1» на «%2»: %3</translation> </message> - <message> - <source>Would you like to stash your changes?</source> - <translation>Желаете ÑпрÑтать Ñвои изменениÑ?</translation> - </message> <message> <source>Cannot obtain status: %1</source> <translation>Ðе удалоÑÑŒ получить ÑоÑтоÑние: %1</translation> </message> + <message> + <source>Continue Rebase</source> + <translation>Продолжение перебазированиÑ</translation> + </message> + <message> + <source>Continue</source> + <translation>Продолжить</translation> + </message> + <message> + <source>Continue Revert</source> + <translation>Продолжить откат</translation> + </message> + <message> + <source>You need to commit changes to finish revert. +Commit now?</source> + <translation>Ðеобходимо зафикÑировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÐ°Ñ‚Ð°. +ЗафикÑировать?</translation> + </message> + <message> + <source>Commit</source> + <translation>ФикÑировать</translation> + </message> + <message> + <source>Continue Cherry-Picking</source> + <translation>Продолжение внеÑÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹</translation> + </message> + <message> + <source>You need to commit changes to finish cherry-picking. +Commit now?</source> + <translation>Ðеобходимо зафикÑировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñа изменений. +ФикÑировать?</translation> + </message> + <message> + <source>No changes found. </source> + <translation>Изменений не найдено.</translation> + </message> + <message> + <source>Skip</source> + <translation>ПропуÑтить</translation> + </message> <message> <source><Detached HEAD></source> <translation><ÐžÑ‚Ñ†ÐµÐ¿Ð»Ñ‘Ð½Ð½Ð°Ñ HEAD></translation> @@ -13713,10 +14409,22 @@ Would you like to terminate it?</source> <source>&Skip</source> <translation>&ПропуÑтить</translation> </message> + <message> + <source>Rebase, merge or am is in progress. Finish or abort it and then try again.</source> + <translation>Уже выполнÑетÑÑ Ð¿ÐµÑ€ÐµÐ±Ð°Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ или объединение. Завершите или отмените Ñту операцию и попробуйте Ñнова.</translation> + </message> <message> <source>There are no modified files.</source> <translation>Ðет изменённых файлов.</translation> </message> + <message> + <source>No commits were found</source> + <translation>ФикÑации не обнаружены</translation> + </message> + <message> + <source>No local commits were found</source> + <translation>Локальные фикÑации не обнаружены</translation> + </message> <message> <source>Cannot restore stash "%1": %2</source> <translation>Ðе удалоÑÑŒ воÑÑтановить ÑпрÑтанное в «%1»: %2</translation> @@ -13741,6 +14449,53 @@ Would you like to terminate it?</source> <source>Cannot determine git version: %1</source> <translation>Ðе удалоÑÑŒ определить верÑию git: %1</translation> </message> + <message> + <source>Uncommitted Changes Found</source> + <translation>Обнаружены незафикÑированные изменениÑ</translation> + </message> + <message> + <source>What would you like to do with local changes in:</source> + <translation>Что необходимо Ñделать Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ изменениÑми в:</translation> + </message> + <message> + <source>Stash</source> + <translation>СпрÑтать</translation> + </message> + <message> + <source>Stash local changes and continue.</source> + <translation>СпрÑтать локальные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ продолжить.</translation> + </message> + <message> + <source>Discard</source> + <translation>Отменить</translation> + </message> + <message> + <source>Discard (reset) local changes and continue.</source> + <translation>Отменить (ÑброÑить) локальные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸ продолжить.</translation> + </message> + <message> + <source>Continue with local changes in working directory.</source> + <translation>Продолжить Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ изменениÑми в рабочем каталоге.</translation> + </message> + <message> + <source>Cancel current command.</source> + <translation>Отменить текущую команду.</translation> + </message> +</context> +<context> + <name>Git::Internal::GitDiffHandler</name> + <message> + <source>Waiting for data...</source> + <translation>Ожидание данных...</translation> + </message> + <message> + <source>Index</source> + <translation>Готовое к фикÑации</translation> + </message> + <message> + <source>Working tree</source> + <translation>Ð Ð°Ð±Ð¾Ñ‡Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ</translation> + </message> </context> <context> <name>Git::Internal::GitEditor</name> @@ -13771,6 +14526,14 @@ Would you like to terminate it?</source> <source>Show difference.</source> <translation>Показать изменениÑ.</translation> </message> + <message> + <source>Graph</source> + <translation>Граф</translation> + </message> + <message> + <source>Show textual graph log.</source> + <translation>Показать граф журнала в ASCII графике.</translation> + </message> </context> <context> <name>Git::Internal::GitPlugin</name> @@ -13891,12 +14654,12 @@ Would you like to terminate it?</source> <translation>&Локальное хранилище</translation> </message> <message> - <source>Reset...</source> - <translation>Откатить (reset)...</translation> + <source>Fixup Previous Commit...</source> + <translation>ИÑправить предыдущую фикÑацию...</translation> </message> <message> - <source>Show...</source> - <translation>Показать...</translation> + <source>Reset...</source> + <translation>Откатить (reset)...</translation> </message> <message> <source>Stashes...</source> @@ -13978,6 +14741,42 @@ Would you like to terminate it?</source> <source>Clean Project "%1"...</source> <translation>ОчиÑтить проект «%1»...</translation> </message> + <message> + <source>Interactive Rebase...</source> + <translation>Перебазировать интерактивно...</translation> + </message> + <message> + <source>Update Submodules</source> + <translation>Обновить подмодули</translation> + </message> + <message> + <source>Abort Merge</source> + <translation>Прервать объединение</translation> + </message> + <message> + <source>Abort Rebase</source> + <translation>Прервать перебазирование</translation> + </message> + <message> + <source>Abort Cherry Pick</source> + <translation>Прервать Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹</translation> + </message> + <message> + <source>Abort Revert</source> + <translation>Прервать откат</translation> + </message> + <message> + <source>Continue Rebase</source> + <translation>Продолжение перебазированиÑ</translation> + </message> + <message> + <source>Continue Cherry Pick</source> + <translation>Продолжение Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹</translation> + </message> + <message> + <source>Continue Revert</source> + <translation>Продолжить откат</translation> + </message> <message> <source>Apply "%1"</source> <translation>Ðаложить «%1»</translation> @@ -14046,14 +14845,6 @@ Would you like to terminate it?</source> <source>Fetch</source> <translation>Загрузить (fetch)</translation> </message> - <message> - <source>Revert Single Commit...</source> - <translation>Откатить одну фикÑацию...</translation> - </message> - <message> - <source>Cherry-Pick Commit...</source> - <translation>Избирательно применить фикÑацию...</translation> - </message> <message> <source>&Patch</source> <translation>&Изменение</translation> @@ -14074,6 +14865,30 @@ Would you like to terminate it?</source> <source>Manage Remotes...</source> <translation>Управление хранилищами...</translation> </message> + <message> + <source>Show...</source> + <translation>Показать...</translation> + </message> + <message> + <source>Revert...</source> + <translation>Откатить...</translation> + </message> + <message> + <source>Cherry Pick...</source> + <translation>ПеренеÑти изменениÑ...</translation> + </message> + <message> + <source>Checkout...</source> + <translation>Перейти...</translation> + </message> + <message> + <source>Rebase...</source> + <translation>Перебазировать...</translation> + </message> + <message> + <source>Merge...</source> + <translation>Объединить...</translation> + </message> <message> <source>Git &Tools</source> <translation>Сре&дÑтва Git</translation> @@ -14106,6 +14921,10 @@ Would you like to terminate it?</source> <source>Merge Tool</source> <translation>Программа объединениÑ</translation> </message> + <message> + <source>Actions on Commits...</source> + <translation>ДейÑÑ‚Ð²Ð¸Ñ Ð¿Ñ€Ð¸ фикÑации...</translation> + </message> <message> <source>Commit</source> <translation>ФикÑировать</translation> @@ -14118,6 +14937,14 @@ Would you like to terminate it?</source> <source>&Redo</source> <translation>&Повторить</translation> </message> + <message> + <source>Undo Changes to %1</source> + <translation>Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾ %1</translation> + </message> + <message> + <source>Interactive Rebase</source> + <translation>Интерактивное перебазирование</translation> + </message> <message> <source>Another submit is currently being executed.</source> <translation>Ð’ данный момент уже идёт Ð´Ñ€ÑƒÐ³Ð°Ñ Ñ„Ð¸ÐºÑациÑ.</translation> @@ -14130,6 +14957,10 @@ Would you like to terminate it?</source> <source>Amend %1</source> <translation>ИÑправить %1</translation> </message> + <message> + <source>Git Fixup Commit</source> + <translation>ФикÑÐ°Ñ†Ð¸Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Git</translation> + </message> <message> <source>Git Commit</source> <translation>ФикÑÐ°Ñ†Ð¸Ñ Git</translation> @@ -14199,6 +15030,10 @@ Would you like to terminate it?</source> <source>Detached HEAD</source> <translation>ÐžÑ‚Ñ†ÐµÐ¿Ð»ÐµÐ½Ð½Ð°Ñ HEAD</translation> </message> + <message> + <source>Select Change</source> + <translation>Выбор изменениÑ</translation> + </message> </context> <context> <name>Git::Internal::GitSubmitPanel</name> @@ -14239,6 +15074,44 @@ Would you like to terminate it?</source> <translation>&ПропуÑтить хуки</translation> </message> </context> +<context> + <name>Git::Internal::LogChangeDialog</name> + <message> + <source>Reset to:</source> + <translation>СброÑить до:</translation> + </message> + <message> + <source>Select change:</source> + <translation>Выбор изменениÑ:</translation> + </message> + <message> + <source>Reset type:</source> + <translation>Тип ÑброÑа:</translation> + </message> + <message> + <source>Mixed</source> + <translation>Смешанный</translation> + </message> + <message> + <source>Hard</source> + <translation>ЖёÑткий (--hard)</translation> + </message> + <message> + <source>Soft</source> + <translation>ÐœÑгкий (--soft)</translation> + </message> +</context> +<context> + <name>Git::Internal::LogChangeWidget</name> + <message> + <source>Sha1</source> + <translation>Sha1</translation> + </message> + <message> + <source>Subject</source> + <translation>ОпиÑание</translation> + </message> +</context> <context> <name>Git::Internal::MergeTool</name> <message> @@ -14321,54 +15194,10 @@ Remote: %4</source> <source>Continue merging other unresolved paths?</source> <translation>Продолжить объединение при неразрешённых путÑÑ…?</translation> </message> - <message> - <source>No changes found. </source> - <translation>Изменений не найдено.</translation> - </message> - <message> - <source>Skip</source> - <translation>ПропуÑтить</translation> - </message> <message> <source>Merge tool process finished successully.</source> <translation>Программа Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑƒÑпешно завершилаÑÑŒ.</translation> </message> - <message> - <source>Continue Cherry-Picking</source> - <translation>Продолжение внеÑÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹</translation> - </message> - <message> - <source>You need to commit changes to finish cherry-picking. -Commit now?</source> - <translation>Ðеобходимо зафикÑировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ ÑлиÑниÑ. -ФикÑировать?</translation> - </message> - <message> - <source>Continue Rebase</source> - <translation>Продолжение перебазированиÑ</translation> - </message> - <message> - <source>Continue rebase?</source> - <translation>Продолжить перебазирование?</translation> - </message> - <message> - <source>Continue</source> - <translation>Продолжить</translation> - </message> - <message> - <source>Continue Revert</source> - <translation>Продолжить откат</translation> - </message> - <message> - <source>You need to commit changes to finish revert. -Commit now?</source> - <translation>Ðеобходимо зафикÑировать Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÐ°Ñ‚Ð°. -ЗафикÑировать?</translation> - </message> - <message> - <source>Commit</source> - <translation>ЗафикÑировать</translation> - </message> <message> <source>Merge tool process terminated with exit code %1</source> <translation>ПроцеÑÑ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»ÑÑ Ñ ÐºÐ¾Ð´Ð¾Ð¼ %1</translation> @@ -14424,37 +15253,6 @@ Commit now?</source> <translation>О&тправить</translation> </message> </context> -<context> - <name>Git::Internal::ResetDialog</name> - <message> - <source>Sha1</source> - <translation>Sha1</translation> - </message> - <message> - <source>Subject</source> - <translation>ОпиÑание</translation> - </message> - <message> - <source>Reset to:</source> - <translation>СброÑить до:</translation> - </message> - <message> - <source>Reset type:</source> - <translation>Тип ÑброÑа:</translation> - </message> - <message> - <source>Hard Reset</source> - <translation>ЖёÑткий</translation> - </message> - <message> - <source>Soft Reset</source> - <translation>ÐœÑгкий</translation> - </message> - <message> - <source>Undo Changes to %1</source> - <translation>Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾ %1</translation> - </message> -</context> <context> <name>Git::Internal::SettingsPage</name> <message> @@ -14523,12 +15321,20 @@ Perl через переменные Ñреды окружениÑ.</translation <translation>Добавить в начало PATH:</translation> </message> <message> - <source>Repository browser</source> + <source>Command:</source> + <translation>Команда:</translation> + </message> + <message> + <source>Show tags in Branches dialog</source> + <translation>Показывать теги в диалоге веток</translation> + </message> + <message> + <source>Repository Browser</source> <translation>Обозреватель хранилища</translation> </message> <message> - <source>Command:</source> - <translation>Команда:</translation> + <source>Show diff side-by-side</source> + <translation>ДвуÑтороннее Ñравнение</translation> </message> </context> <context> @@ -14574,22 +15380,6 @@ instead of its installation directory when run outside git bash.</source> <source>Message</source> <translation>Сообщение</translation> </message> - <message> - <source>Delete...</source> - <translation>Удалить...</translation> - </message> - <message> - <source>Show</source> - <translation>Показать</translation> - </message> - <message> - <source>Restore...</source> - <translation>ВоÑÑтановить...</translation> - </message> - <message> - <source>Refresh</source> - <translation>Обновить</translation> - </message> <message> <source><No repository></source> <translation><Ðет хранилища></translation> @@ -14611,13 +15401,29 @@ instead of its installation directory when run outside git bash.</source> </translation> </message> <message> - <source>Delete All...</source> - <translation>Удалить вÑÑ‘...</translation> + <source>Delete &All...</source> + <translation>Удалить &вÑÑ‘...</translation> + </message> + <message> + <source>&Delete...</source> + <translation>&Удалить...</translation> </message> <message> - <source>Restore to Branch...</source> + <source>&Show</source> + <translation>&Показать</translation> + </message> + <message> + <source>R&estore...</source> + <translation>&ВоÑÑтановить...</translation> + </message> + <message> + <source>Restore to &Branch...</source> <extracomment>Restore a git stash to new branch to be created</extracomment> - <translation>ВоÑÑтановить в ветке...</translation> + <translation>ВоÑÑтановить в в&етку...</translation> + </message> + <message> + <source>Re&fresh</source> + <translation>&Обновить</translation> </message> <message> <source>Delete Stashes</source> @@ -16396,14 +17202,6 @@ Do you want to kill it?</source> </context> <context> <name>Madde::Internal::MaddeDevice</name> - <message> - <source>Test</source> - <translation>ТеÑÑ‚</translation> - </message> - <message> - <source>Deploy Public Key...</source> - <translation>УÑтановить ключ...</translation> - </message> <message> <source>Maemo5/Fremantle</source> <translation>Maemo5/Fremantle</translation> @@ -17198,7 +17996,7 @@ We will try to work around that, but you may experience problems.</source> <translation>ÐаÑтройки отправки</translation> </message> <message> - <source>Choose a private key file</source> + <source>Choose a Private Key File</source> <translation>Выберите Ñекретный ключ</translation> </message> <message> @@ -17502,8 +18300,12 @@ stderr was: %1</source> <context> <name>Madde::Internal::MaemoRunControlFactory</name> <message> - <source>Run on device</source> - <translation>ЗапуÑтить на уÑтройÑтве</translation> + <source>Cannot debug: Kit has no device.</source> + <translation>Отладка невозможна: у комплекта нет уÑтройÑтва.</translation> + </message> + <message> + <source>Cannot debug: Not enough free ports available.</source> + <translation>Отладка невозможна: недоÑтаточно Ñвободных портов.</translation> </message> </context> <context> @@ -17570,6 +18372,21 @@ Do you want to add them to the project?</html></source> <translation>Обработка Ñигнала</translation> </message> </context> +<context> + <name>Mercurial::Internal::AuthenticationDialog</name> + <message> + <source>Dialog</source> + <translation></translation> + </message> + <message> + <source>User name:</source> + <translation>Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:</translation> + </message> + <message> + <source>Password:</source> + <translation>Пароль:</translation> + </message> +</context> <context> <name>Mercurial::Internal::CloneWizard</name> <message> @@ -17689,8 +18506,8 @@ Do you want to add them to the project?</html></source> <context> <name>Mercurial::Internal::MercurialPlugin</name> <message> - <source>Mercurial</source> - <translation>Mercurial</translation> + <source>Me&rcurial</source> + <translation>Me&rcurial</translation> </message> <message> <source>Annotate Current File</source> @@ -17993,6 +18810,10 @@ Do you want to add them to the project?</html></source> <source>Specify URL:</source> <translation>ОÑобый URL:</translation> </message> + <message> + <source>Prompt for credentials</source> + <translation>Спрашивать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль</translation> + </message> </context> <context> <name>MimeType</name> @@ -18036,6 +18857,10 @@ Do you want to add them to the project?</html></source> <source>Qt Designer file</source> <translation>Файл Qt Designer</translation> </message> + <message> + <source>Git Commit File</source> + <translation>Файл фикÑации Git</translation> + </message> <message> <source>GLSL Shader file</source> <translation>Файл шейдера GLSL</translation> @@ -18060,6 +18885,10 @@ Do you want to add them to the project?</html></source> <source>GLSL/ES Geometry Shader file</source> <translation>Файл геометричеÑкого шейдера GLSL/ES</translation> </message> + <message> + <source>Python Source File</source> + <translation>Файл иÑходных текÑтов Python</translation> + </message> <message> <source>QML file</source> <translation>Файл QML</translation> @@ -18213,21 +19042,6 @@ Do you want to add them to the project?</html></source> <translation>Разница между файлами</translation> </message> </context> -<context> - <name>MobileAppWizard</name> - <message> - <source>Mobile Qt Application</source> - <translation>Мобильное приложение Qt</translation> - </message> - <message> - <source>Creates a Qt application optimized for mobile devices with a Qt Designer-based main window. - -Preselects Qt for Simulator and mobile targets if available.</source> - <translation>Создание Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Qt Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв. Включает оÑновное окно в виде формы дизайнера Qt. - -ВыбираетÑÑ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»ÑŒ Qt Ð´Ð»Ñ ÑмулÑтора и мобильных целей, еÑли он доÑтупен.</translation> - </message> -</context> <context> <name>Modifiers</name> <message> @@ -18319,6 +19133,10 @@ Preselects Qt for Simulator and mobile targets if available.</source> <source>GLSL Editor</source> <translation>Редактор GLSL</translation> </message> + <message> + <source>Python Editor</source> + <translation>Редактор Python</translation> + </message> </context> <context> <name>PathViewSpecifics</name> @@ -18826,8 +19644,8 @@ Preselects Qt for Simulator and mobile targets if available.</source> <context> <name>Perforce::Internal::PerforceVersionControl</name> <message> - <source>&Edit (%1)</source> - <translation>И&зменить «%1»</translation> + <source>&Edit</source> + <translation>&Изменить</translation> </message> <message> <source>&Hijack</source> @@ -18963,6 +19781,10 @@ Preselects Qt for Simulator and mobile targets if available.</source> </context> <context> <name>PluginManager</name> + <message> + <source>The plugin '%1' is specified twice for testing.</source> + <translation>Модуль «%1» указан Ð´Ð»Ñ Ñ‚ÐµÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð²Ð°Ð¶Ð´Ñ‹.</translation> + </message> <message> <source>The plugin '%1' does not exist.</source> <translation>Модуль «%1» не ÑущеÑтвует.</translation> @@ -19287,12 +20109,12 @@ Preselects Qt for Simulator and mobile targets if available.</source> <translation>Создание проÑтого проекта под управлением qmake на Ñзыке C++, но без иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ Qt.</translation> </message> <message> - <source>Custom QML Extension Plugin Parameters</source> - <translation>Параметры оÑобого Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ€Ð°ÑширÑющего QML</translation> + <source>Creates a C++ plugin to load extensions dynamically into applications using the QDeclarativeEngine class. Requires Qt 4.7.0 or newer.</source> + <translation>Создание C++ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкой загрузки раÑширений в приложение, иÑпользующее клаÑÑ QDeclarativeEngine. ТребуетÑÑ Qt верÑии 4.7.0 или выше.</translation> </message> <message> - <source>Object Class-name:</source> - <translation>Ð˜Ð¼Ñ ÐºÐ»Ð°ÑÑа объекта:</translation> + <source>Custom QML Extension Plugin Parameters</source> + <translation>Параметры оÑобого Ð¼Ð¾Ð´ÑƒÐ»Ñ Ñ€Ð°ÑширÑющего QML</translation> </message> <message> <source>URI:</source> @@ -19374,6 +20196,10 @@ Preselects Qt for Simulator and mobile targets if available.</source> <source>Qt Quick 1 Extension Plugin</source> <translation>Модуль, раÑширÑющий Qt Quick 1</translation> </message> + <message> + <source>Object class-name:</source> + <translation>Ð˜Ð¼Ñ ÐºÐ»Ð°ÑÑа объекта:</translation> + </message> <message> <source>Qt Quick 2 Extension Plugin</source> <translation>Модуль, раÑширÑющий Qt Quick 2</translation> @@ -19482,12 +20308,9 @@ Preselects Qt for Simulator and mobile targets if available.</source> <source>Local user settings</source> <translation>Локальные наÑтройки пользователÑ</translation> </message> -</context> -<context> - <name>ProjectExplorer::DebuggerRunConfigurationAspect</name> <message> - <source>Debugger settings</source> - <translation>ÐаÑтройки отладчика</translation> + <source>Creates a C++ plugin to load extensions dynamically into applications using the QQmlEngine class. Requires Qt 5.0 or newer.</source> + <translation>Создание C++ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑкой загрузки раÑширений в приложение, иÑпользующее клаÑÑ QQmlEngine. ТребуетÑÑ Qt верÑии 5.0 или выше.</translation> </message> </context> <context> @@ -19548,13 +20371,40 @@ Reason: %2</source> </context> <context> <name>ProjectExplorer::DesktopDevice</name> + <message> + <source>Local PC</source> + <translation>Локальный ПК</translation> + </message> <message> <source>Desktop</source> <translation>Desktop</translation> </message> +</context> +<context> + <name>ProjectExplorer::DesktopDeviceConfigurationWidget</name> + <message> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <source>Machine type:</source> + <translation>Тип машины:</translation> + </message> + <message> + <source>TextLabel</source> + <translation></translation> + </message> + <message> + <source>Free ports:</source> + <translation>Свободные порты:</translation> + </message> <message> - <source>Run locally</source> - <translation>Локальный запуÑк</translation> + <source>Physical Device</source> + <translation>ФизичеÑкое уÑтройÑтво</translation> + </message> + <message> + <source>You will need at least one port for QML debugging.</source> + <translation>Ðеобходим как минимум один порт Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ QML.</translation> </message> </context> <context> @@ -19592,6 +20442,25 @@ Reason: %2</source> <translation>Внешнее приложение завершилоÑÑŒ Ñ ÐºÐ¾Ð´Ð¾Ð¼ 0.</translation> </message> </context> +<context> + <name>ProjectExplorer::DeviceCheckBuildStep</name> + <message> + <source>No device configured.</source> + <translation>УÑтройÑтво не наÑтроено.</translation> + </message> + <message> + <source>Set Up Device</source> + <translation>ÐаÑтройка уÑтройÑтва</translation> + </message> + <message> + <source>There is no device set up for this kit. Do you want to add a device?</source> + <translation>У комплекта не задано уÑтройÑтво. Желаете его добавить?</translation> + </message> + <message> + <source>Check for a configured device</source> + <translation>Проверка наÑтроек уÑтройÑтва</translation> + </message> +</context> <context> <name>ProjectExplorer::DeviceKitInformation</name> <message> @@ -19655,6 +20524,10 @@ Reason: %2</source> <source>List of Processes</source> <translation>СпиÑок процеÑÑов</translation> </message> + <message> + <source>&Attach to Process</source> + <translation>&ПодключитьÑÑ Ðº процеÑÑу</translation> + </message> </context> <context> <name>ProjectExplorer::DeviceTypeKitInformation</name> @@ -19705,6 +20578,20 @@ Remote error output was: %1</source> <translation>Проект %1</translation> </message> </context> +<context> + <name>ProjectExplorer::EnvironmentAspect</name> + <message> + <source>Run Environment</source> + <translation>Среда выполнениÑ</translation> + </message> +</context> +<context> + <name>ProjectExplorer::EnvironmentAspectWidget</name> + <message> + <source>Base environment for this run configuration:</source> + <translation>Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñреда данной конфигурации выполнениÑ:</translation> + </message> +</context> <context> <name>ProjectExplorer::EnvironmentItemsDialog</name> <message> @@ -20187,8 +21074,8 @@ Remote error output was: %1</source> <translation>Ðет</translation> </message> <message> - <source>Remote Processes</source> - <translation>Внешние процеÑÑÑ‹</translation> + <source>Show Running Processes</source> + <translation>Запущенные процеÑÑÑ‹</translation> </message> </context> <context> @@ -20292,6 +21179,14 @@ Remote error output was: %1</source> <source>&Compiler path:</source> <translation>Путь к &компилÑтору:</translation> </message> + <message> + <source>Platform codegen flags:</source> + <translation>Флаги генерации кода Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹:</translation> + </message> + <message> + <source>Platform linker flags:</source> + <translation>Флаги компоновки Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹:</translation> + </message> <message> <source>&ABI:</source> <translation></translation> @@ -20362,6 +21257,11 @@ Remote error output was: %1</source> <translation>Программа не указана. </translation> </message> + <message> + <source>Executable %1 does not exist. +</source> + <translation>Программа %1 отÑутÑтвует.</translation> + </message> <message> <source>Starting %1... </source> @@ -20375,13 +21275,6 @@ Remote error output was: %1</source> </translation> </message> </context> -<context> - <name>ProjectExplorer::Internal::LocalApplicationRunControlFactory</name> - <message> - <source>Run</source> - <translation>ЗапуÑтить</translation> - </message> -</context> <context> <name>ProjectExplorer::Internal::LocalProcessList</name> <message> @@ -20589,14 +21482,6 @@ Remote error output was: %1</source> <source>Always ask before stopping applications</source> <translation>Ð’Ñегда Ñпрашивать перед оÑтановкой приложений</translation> </message> - <message> - <source>Open compiler output pane when building</source> - <translation>Показывать вывод компилÑтора при Ñборке</translation> - </message> - <message> - <source>Open application output pane when running</source> - <translation>Показывать вывод Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ запуÑке</translation> - </message> <message> <source>Limit application output to </source> <translation>Ограничить вывод приложениÑ</translation> @@ -20613,10 +21498,6 @@ Remote error output was: %1</source> <source>Merge stderr and stdout</source> <translation>Объединить stderr и stdout</translation> </message> - <message> - <source>Open application output pane when debugging</source> - <translation>Показывать вывод Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отладке</translation> - </message> <message> <source><i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Disable it if you experience problems with your builds.</source> <translation><i>jom</i> - Ñто замена <i>nmake</i>, раÑпределÑÑŽÑ‰Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñции на неÑколько Ñдер процеÑÑора. Ð¡Ð²ÐµÐ¶Ð°Ð¹ÑˆÐ°Ñ Ñборка доÑтупна на <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Отключите иÑпользование jom вмеÑто nmake в Ñлучае проблем Ñо Ñборкой.</translation> @@ -20629,6 +21510,18 @@ Remote error output was: %1</source> <source>Default build directory:</source> <translation>Каталог Ñборки по умолчанию:</translation> </message> + <message> + <source>Open Compile Output pane when building</source> + <translation>Открывать конÑоль Ñборки при Ñборке</translation> + </message> + <message> + <source>Open Application Output pane on output when running</source> + <translation>Открывать вывод Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ выполнении</translation> + </message> + <message> + <source>Open Application Output pane on output when debugging</source> + <translation>Открывать вывод Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отладке</translation> + </message> </context> <context> <name>ProjectExplorer::Internal::ProjectFileFactory</name> @@ -20663,6 +21556,14 @@ Remote error output was: %1</source> <extracomment>No project selected</extracomment> <translation><Ðет></translation> </message> + <message> + <source>Open project anyway?</source> + <translation>Открыть проект?</translation> + </message> + <message> + <source>Version Control Failure</source> + <translation>Ошибка ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð²ÐµÑ€Ñий</translation> + </message> <message> <source>Failed to add subproject '%1' to project '%2'.</source> @@ -20731,6 +21632,10 @@ to project '%2'.</source> <source>Develop</source> <translation>Разработка</translation> </message> + <message> + <source>New Project</source> + <translation>Ðовый проект</translation> + </message> </context> <context> <name>ProjectExplorer::Internal::ProjectWizardPage</name> @@ -21298,6 +22203,21 @@ to project '%2'.</source> <translation>Сделать по умолчанию</translation> </message> </context> +<context> + <name>ProjectExplorer::LocalEnvironmentAspect</name> + <message> + <source>Build Environment</source> + <translation>Среда Ñборки</translation> + </message> + <message> + <source>System Environment</source> + <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> + </message> + <message> + <source>Clean Environment</source> + <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> + </message> +</context> <context> <name>ProjectExplorer::ProjectConfiguration</name> <message> @@ -21484,14 +22404,6 @@ to project '%2'.</source> <source>Collapse All</source> <translation>Свернуть вÑÑ‘</translation> </message> - <message> - <source>Full path of the current project's main file, including file name.</source> - <translation>Полный путь Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ файла к оÑновному файлу проекта.</translation> - </message> - <message> - <source>Full path of the current project's main file, excluding file name.</source> - <translation>Полный путь без имени файла к оÑновному файлу проекта.</translation> - </message> <message> <source>Failed to open project</source> <translation>Ðе удалоÑÑŒ открыть проект</translation> @@ -21642,6 +22554,10 @@ Do you want to ignore them?</source> <source>Quick Switch Kit Selector</source> <translation>Выбор быÑтрого Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ‚Ð¾Ð²</translation> </message> + <message> + <source>Current project's main file</source> + <translation>Главный файл текущего проекта</translation> + </message> <message> <source>Full build path of the current project's active build configuration.</source> <translation>Полный путь к каталогу Ñборки активной конфигурации текущего проекта.</translation> @@ -21686,6 +22602,10 @@ Do you want to ignore them?</source> <source>Failed to Open Project</source> <translation>Ðе удалоÑÑŒ открыть проект</translation> </message> + <message> + <source>Failed opening project '%1': Project already open</source> + <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект уже открыт</translation> + </message> <message> <source>Unknown error</source> <translation>ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°</translation> @@ -21882,6 +22802,14 @@ Reason: %2</source> <source>Failed to restore project files</source> <translation>Ðе удалоÑÑŒ воÑÑтановить файлы проекта</translation> </message> + <message> + <source>Delete Session</source> + <translation>Удаление ÑеÑÑии</translation> + </message> + <message> + <source>Delete session %1?</source> + <translation>Удалить ÑеÑÑию %1?</translation> + </message> <message> <source>Could not restore the following project files:<br><b>%1</b></source> <translation>Ðевозможно воÑÑтановить Ñледующие файлы проекта:<br><b>%1</b></translation> @@ -21918,40 +22846,36 @@ Reason: %2</source> <context> <name>ProjectExplorer::SettingsAccessor</name> <message> - <source><html><head/><body><p>A versioned backup of the .user settings file will be used, because the non-versioned file was created by an incompatible newer version of Qt Creator.</p><p>Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p></body></html></source> - <translation><html><head/><body><p>Будет иÑпользоватьÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° наÑтроек .user более Ñтарой верÑии, так как текущий файл Ñоздан неÑовмеÑтимой верÑией Qt Creator.</p><p>Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек проекта Ñделанные Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ð° поÑледнего запуÑка Ñтой верÑии Qt Creator не учитываютÑÑ, а Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð½Ð¾Ñимые ÑÐµÐ¹Ñ‡Ð°Ñ <b>не будут</b> Ñохранены в новую верÑию файла проекта.</p></body></html></translation> + <source>No valid .user file found for '%1'</source> + <translation>Ðе найден корректный файл .user Ð´Ð»Ñ Â«%1»</translation> + </message> + <message> + <source><p>No valid settings file could be found for this installation of Qt Creator.</p><p>All settings files were either too new or too old to be read.</p></source> + <translation><p>Ðе удалоÑÑŒ найти подходÑщий Ð´Ð»Ñ Ñтой верÑии Qt Creator файл наÑтроек.</p><p>Ð’Ñе файлы наÑтроек или Ñлишком Ñтарые, или Ñлишком новые.</p></translation> + </message> + <message> + <source><p>No .user settings file created by this instance of Qt Creator was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file '%1'?</p></source> + <translation><p>Ðе удалоÑÑŒ найти файл наÑтроек от Ñтого Qt Creator.</p><p>Ðе работали ли вы ранее Ñ Ñтим проектом на другой машине или не иÑпользовали ли вы другой путь к наÑтройкам?</p><p>Продолжить загрузку файла наÑтроек «%1»?</p></translation> </message> <message> <source>Using Old Settings File for '%1'</source> <translation>ИÑпользуетÑÑ Ñтарый файл наÑтроек Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð° «%1»</translation> </message> <message> - <source>Settings File for '%1' from a different Environment?</source> - <translation>ÐаÑтройки проекта «%1» Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ компьютера?</translation> + <source><p>The versioned backup '%1' of the .user settings file is used, because the non-versioned file was created by an incompatible version of Qt Creator.</p><p>Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p></source> + <translation><p>Будет иÑпользоватьÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° наÑтроек .user более Ñтарой верÑии («%1»), так как текущий файл Ñоздан неÑовмеÑтимой верÑией Qt Creator.</p><p>Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек проекта, Ñделанные Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ð° поÑледнего запуÑка Ñтой верÑии Qt Creator, не будут учтены, а изменениÑ, вноÑимые ÑейчаÑ, <b>не будут</b> Ñохранены в новую верÑию файла проекта.</p></translation> </message> <message> - <source>Qt Creator has found a .user settings file which was created for another development setup, maybe originating from another machine. - -The .user settings files contain environment specific settings. They should not be copied to a different environment. - -Do you still want to load the settings file?</source> - <translation>Qt Creator обнаружил, что файл наÑтроек (*.user), Ñозданный под другую Ñреду, возможно, перенеÑён Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ компьютера. - -Файлы наÑтроек *.user Ñодержат уникальные Ð´Ð»Ñ Ñреды параметры. Они не должны копироватьÑÑ Ð½Ð° другие машины. - -Продолжить загрузку файла наÑтроек?</translation> + <source>The version of your .shared file is not supported by Qt Creator. Do you want to try loading it anyway?</source> + <translation>ВерÑÐ¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ файла .shared не поддерживаетÑÑ Ñтой верÑией Qt Creator. Попробовать загрузить файл?</translation> </message> <message> - <source>Unsupported Shared Settings File</source> - <translation>Ðеподдерживаемый файл общих наÑтроек</translation> + <source>Settings File for '%1' from a different Environment?</source> + <translation>ÐаÑтройки проекта «%1» Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ компьютера?</translation> </message> <message> - <source>The version of your .shared file is not supported by this Qt Creator version. Only settings that are still compatible will be taken into account. - -Do you want to try loading it?</source> - <translation>ВерÑÐ¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ файла .shared не поддерживаетÑÑ Ñтой верÑией Qt Creator. Будут загружены только ÑовмеÑтимые наÑтройки. - -Попробовать загрузить файл?</translation> + <source>Unsupported Shared Settings File</source> + <translation>Ðеподдерживаемый файл общих наÑтроек</translation> </message> </context> <context> @@ -22049,6 +22973,62 @@ Remote stderr was: %1</source> <translation>УÑтановить на уÑтройÑтво Maemo</translation> </message> </context> +<context> + <name>PythonEditor::ClassNamePage</name> + <message> + <source>Enter Class Name</source> + <translation>Введите Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа</translation> + </message> + <message> + <source>The source file name will be derived from the class name</source> + <translation>Ð˜Ð¼Ñ Ð¸Ñходного файла будет получено из имени клаÑÑа</translation> + </message> +</context> +<context> + <name>PythonEditor::ClassWizard</name> + <message> + <source>Python class</source> + <translation>КлаÑÑ Python</translation> + </message> + <message> + <source>Creates new Python class</source> + <translation>Создание нового клаÑÑа Python</translation> + </message> + <message> + <source>C++ module for Python</source> + <translation>Модуль C++ Ð´Ð»Ñ Python</translation> + </message> + <message> + <source>Creates C++/Boost file with bindings for Python</source> + <translation>Создание файла C++/Boost Ñ Ð¿Ñ€Ð¸Ð²Ñзками Ð´Ð»Ñ Python</translation> + </message> +</context> +<context> + <name>PythonEditor::ClassWizardDialog</name> + <message> + <source>Python Class Wizard</source> + <translation>Создание клаÑÑа Python</translation> + </message> + <message> + <source>Details</source> + <translation>Подробнее</translation> + </message> +</context> +<context> + <name>PythonEditor::FileWizard</name> + <message> + <source>New %1</source> + <translation>Ðовый %1</translation> + </message> + <message> + <source>Python source file</source> + <translation>Файл иÑходных текÑтов Python</translation> + </message> + <message> + <source>Creates an empty Python script with UTF-8 charset</source> + <translation>Создание пуÑтого ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ Python в кодировке UTF-8</translation> + </message> +</context> <context> <name>QSsh::Internal::SftpChannelPrivate</name> <message> @@ -22329,6 +23309,14 @@ Remote stderr was: %1</source> <source>Cannot Save Public Key File</source> <translation>Ðе удалоÑÑŒ Ñохранить открытый ключ</translation> </message> + <message> + <source>File Exists</source> + <translation>Файл уже ÑущеÑтвует</translation> + </message> + <message> + <source>There already is a file of that name. Do you want to overwrite it?</source> + <translation>Уже ÑущеÑтвует файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем. ПерезапиÑать его?</translation> + </message> <message> <source>Failed to create directory: '%1'.</source> <translation>Ðе удалоÑÑŒ Ñоздать каталог: «%1».</translation> @@ -22342,6 +23330,20 @@ Remote stderr was: %1</source> <translation>Ðе удалоÑÑŒ Ñохранить открытый ключ: %1</translation> </message> </context> +<context> + <name>Qbs</name> + <message> + <source>Qbs Install</source> + <translation>УÑтановка Ñ Qbs</translation> + </message> +</context> +<context> + <name>Qbs::QbsProjectNode</name> + <message> + <source>%1 in %2</source> + <translation>%1 в %2</translation> + </message> +</context> <context> <name>QbsProjectManager::Internal::QbsBuildConfiguration</name> <message> @@ -22388,7 +23390,7 @@ Remote stderr was: %1</source> <context> <name>QbsProjectManager::Internal::QbsBuildStep</name> <message> - <source>Qbs build</source> + <source>Qbs Build</source> <translation>Qbs (Ñборка)</translation> </message> </context> @@ -22398,10 +23400,6 @@ Remote stderr was: %1</source> <source>Dry run</source> <translation>ТеÑтовое выполнение</translation> </message> - <message> - <source>Keep Going</source> - <translation>ВыполнÑÑ‚ÑŒ в</translation> - </message> <message> <source>jobs</source> <translation>потоках</translation> @@ -22422,18 +23420,34 @@ Remote stderr was: %1</source> <source><b>Qbs:</b> %1</source> <translation><b>Qbs:</b> %1</translation> </message> + <message> + <source>Might make your application vulnerable. Only use in a safe environment.</source> + <translation>Может Ñделать приложение уÑзвимым. ИÑпользуйте только в безопаÑном окружении.</translation> + </message> + <message> + <source>Keep going</source> + <translation>ВыполнÑÑ‚ÑŒ в</translation> + </message> + <message> + <source>Properties:</source> + <translation>СвойÑтва:</translation> + </message> + <message> + <source>Enable QML debugging:</source> + <translation>Включить отладку QML:</translation> + </message> </context> <context> <name>QbsProjectManager::Internal::QbsBuildStepFactory</name> <message> - <source>Qbs</source> - <translation>Qbs</translation> + <source>Qbs Build</source> + <translation>Сборка Qbs</translation> </message> </context> <context> <name>QbsProjectManager::Internal::QbsCleanStep</name> <message> - <source>Qbs clean</source> + <source>Qbs Clean</source> <translation>Qbs (очиÑтка)</translation> </message> </context> @@ -22448,12 +23462,49 @@ Remote stderr was: %1</source> <translation>ТеÑтовое выполнение</translation> </message> <message> - <source>Keep Going</source> + <source><b>Qbs:</b> %1</source> + <translation><b>Qbs:</b> %1</translation> + </message> + <message> + <source>Keep going</source> <translation>ВыполнÑÑ‚ÑŒ в</translation> </message> +</context> +<context> + <name>QbsProjectManager::Internal::QbsCleanStepFactory</name> + <message> + <source>Qbs Clean</source> + <translation>ОчиÑтка Qbs</translation> + </message> +</context> +<context> + <name>QbsProjectManager::Internal::QbsInstallStep</name> <message> - <source>jobs</source> - <translation>потоках</translation> + <source>Qbs Install</source> + <translation>Qbs (уÑтановка)</translation> + </message> +</context> +<context> + <name>QbsProjectManager::Internal::QbsInstallStepConfigWidget</name> + <message> + <source>Install root:</source> + <translation>Корень уÑтановки:</translation> + </message> + <message> + <source>Remove first</source> + <translation>Сначала удалить</translation> + </message> + <message> + <source>Dry run</source> + <translation>ТеÑтовое выполнение</translation> + </message> + <message> + <source>Keep going</source> + <translation>ВыполнÑÑ‚ÑŒ в</translation> + </message> + <message> + <source>Qbs Install Prefix</source> + <translation>ÐŸÑ€ÐµÑ„Ð¸ÐºÑ ÑƒÑтановки Ñ Qbs</translation> </message> <message> <source><b>Qbs:</b> %1</source> @@ -22461,10 +23512,10 @@ Remote stderr was: %1</source> </message> </context> <context> - <name>QbsProjectManager::Internal::QbsCleanStepFactory</name> + <name>QbsProjectManager::Internal::QbsInstallStepFactory</name> <message> - <source>Qbs</source> - <translation>Qbs</translation> + <source>Qbs Install</source> + <translation>УÑтановка Ñ Qbs</translation> </message> </context> <context> @@ -22484,24 +23535,89 @@ Remote stderr was: %1</source> <source>Build</source> <translation>Собрать</translation> </message> + <message> + <source>Build File</source> + <translation>Собрать файл</translation> + </message> + <message> + <source>Build File "%1"</source> + <translation>Собрать файл «%1»</translation> + </message> + <message> + <source>Ctrl+Alt+B</source> + <translation>Ctrl+Alt+B</translation> + </message> + <message> + <source>Build Product</source> + <translation>Собрать продукт</translation> + </message> + <message> + <source>Build Product "%1"</source> + <translation>Собрать продукт «%1»</translation> + </message> + <message> + <source>Ctrl+Alt+Shift+B</source> + <translation>Ctrl+Alt+Shift+B</translation> + </message> </context> <context> - <name>QbsProjectManager::Internal::QbsStepConfigWidget</name> + <name>QbsProjectManager::Internal::QbsPropertyLineEdit</name> <message> - <source>Dry run</source> - <translation>ТеÑтовое выполнение</translation> + <source>Could not split properties.</source> + <translation>Ðевозможно разделить ÑвойÑтва.</translation> </message> <message> - <source>Keep Going</source> - <translation>ВыполнÑÑ‚ÑŒ в</translation> + <source>No ':' found in property definition.</source> + <translation>Ðе найдено двоеточие в определении ÑвойÑтва.</translation> </message> +</context> +<context> + <name>QbsProjectManager::Internal::QbsRunConfiguration</name> <message> - <source>jobs</source> - <translation>потоках</translation> + <source>The .qbs files are currently being parsed.</source> + <translation>ОбрабатываютÑÑ Ñ„Ð°Ð¹Ð»Ñ‹ .qbs.</translation> </message> <message> - <source><b>Qbs:</b> %1</source> - <translation><b>Qbs:</b> %1</translation> + <source>Parsing of .qbs files has failed.</source> + <translation>Ðе удалоÑÑŒ обработать файлы .qbs.</translation> + </message> + <message> + <source>Qbs Run Configuration</source> + <translation>ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Qbs</translation> + </message> +</context> +<context> + <name>QbsProjectManager::Internal::QbsRunConfigurationWidget</name> + <message> + <source>Executable:</source> + <translation>Программа:</translation> + </message> + <message> + <source>Arguments:</source> + <translation>Параметры:</translation> + </message> + <message> + <source>Select Working Directory</source> + <translation>Выбор рабочего каталога</translation> + </message> + <message> + <source>Reset to default</source> + <translation>По умолчанию</translation> + </message> + <message> + <source>Working directory:</source> + <translation>Рабочий каталог:</translation> + </message> + <message> + <source>Run in terminal</source> + <translation>ЗапуÑкать в терминале</translation> + </message> +</context> +<context> + <name>QbsProjectManager::QbsManager</name> + <message> + <source>Failed opening project '%1': Project is not a file</source> + <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼</translation> </message> </context> <context> @@ -22552,16 +23668,16 @@ Remote stderr was: %1</source> <context> <name>QmlDesigner::FormEditorWidget</name> <message> - <source>Transform Tool (Q).</source> - <translation>ИнÑтрумент Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ (Q).</translation> + <source>No snapping (T).</source> + <translation>Ðе выравнивать (T).</translation> </message> <message> - <source>Snap to guides (E).</source> - <translation>Прилипать к направлÑющим (E).</translation> + <source>Snap to parent or sibling items and generate anchors (W).</source> + <translation>ПритÑгиватьÑÑ Ðº родительÑким или ÑоÑедним Ñлементам и Ñоздавать привÑзки (W).</translation> </message> <message> - <source>Toggle snapping and anchoring (R).</source> - <translation>Переключение Ð²Ñ‹Ñ€Ð°Ð²Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¿Ñ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð¸Ñ (R).</translation> + <source>Snap to parent or sibling items but do not generate anchors (E).</source> + <translation>ПритÑгиватьÑÑ Ðº родительÑким или ÑоÑедним Ñлементам, но не Ñоздавать привÑзки (E).</translation> </message> <message> <source>Show bounding rectangles and stripes for empty items (A).</source> @@ -22855,14 +23971,6 @@ Remote stderr was: %1</source> <source>Qt Quick Designer</source> <translation>Дизайнер Qt Quick</translation> </message> - <message> - <source>Snap margin:</source> - <translation>ОтÑтуп от краÑ:</translation> - </message> - <message> - <source>Item spacing:</source> - <translation>МежÑлементное раÑÑтоÑние:</translation> - </message> <message> <source>Canvas</source> <translation>ХолÑÑ‚</translation> @@ -22907,6 +24015,14 @@ Remote stderr was: %1</source> <source>Enable the debugging view</source> <translation>Включить Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸</translation> </message> + <message> + <source>Parent item padding:</source> + <translation>ОтÑтуп родительÑкого Ñлемента:</translation> + </message> + <message> + <source>Sibling item spacing:</source> + <translation>ОтÑтуп между ÑоÑедними Ñлементами:</translation> + </message> </context> <context> <name>QmlDesigner::InvalidArgumentException</name> @@ -22923,9 +24039,9 @@ Remote stderr was: %1</source> <translation>Библиотека</translation> </message> <message> - <source>Items</source> - <comment>Title of library items view</comment> - <translation>Ðлементы</translation> + <source>QML Types</source> + <comment>Title of library QML types view</comment> + <translation>Типы QML</translation> </message> <message> <source>Resources</source> @@ -23487,6 +24603,17 @@ For qmlproject projects, use the importPaths property to add import paths.</sour <translation>Модуль QML Ñодержит раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð½Ð° C++, идёт чтение информации о типах...</translation> </message> </context> +<context> + <name>QmlJS::QrcParser</name> + <message> + <source>XML error on line %1, col %2: %3</source> + <translation>Ошибка XML в Ñтроке %1, поз. %2: %3</translation> + </message> + <message> + <source>The <RCC> root element is missing.</source> + <translation>ОтÑутÑтвует корневой Ñлемент <RCC>.</translation> + </message> +</context> <context> <name>QmlJS::SimpleAbstractStreamReader</name> <message> @@ -24301,6 +25428,30 @@ Check 'General Messages' output pane for details.</source> <translation>Возникли Ñледующие Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ разборе информации о типах QML библиотеки %1: %2</translation> </message> + <message> + <source>"%1" failed to start: %2</source> + <translation>Ðе удалоÑÑŒ запуÑтить «%1»: %2</translation> + </message> + <message> + <source>"%1" crashed.</source> + <translation>«%1» завершилаÑÑŒ аварийно.</translation> + </message> + <message> + <source>"%1" timed out.</source> + <translation>У «%1» вышло времÑ.</translation> + </message> + <message> + <source>I/O error running "%1".</source> + <translation>При работе «%1» возникла ошибка ввода/вывода.</translation> + </message> + <message> + <source>"%1" returned exit code %2.</source> + <translation>«%1» возвратила код завершениÑ: %2.</translation> + </message> + <message> + <source>Arguments: %1</source> + <translation>Ðргументы: %1</translation> + </message> <message> <source>Errors while reading typeinfo files:</source> <translation>Ошибки при чтении файлов typeinfo:</translation> @@ -24473,6 +25624,14 @@ Error: %2</source> <source>Sys&root:</source> <translation>Sys&root:</translation> </message> + <message> + <source>Start QML Profiler</source> + <translation>ЗапуÑк профайлера QML</translation> + </message> + <message> + <source>Kit:</source> + <translation>Комплект:</translation> + </message> </context> <context> <name>QmlProfiler::Internal::QmlProfilerClientManager</name> @@ -24861,37 +26020,11 @@ Please use the stop button instead.</source> <translation>JavaScript</translation> </message> </context> -<context> - <name>QmlProfiler::Internal::RemoteLinuxQmlProfilerRunner</name> - <message> - <source>Gathering ports failed: %1</source> - <translation>Ðе удалоÑÑŒ зарезервировать порты: %1</translation> - </message> - <message> - <source>Not enough free ports on device for analyzing. -</source> - <translation>ÐедоÑтаточно Ñвободных портов на уÑтройÑтве Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°. -</translation> - </message> - <message> - <source>Starting remote process... -</source> - <translation>ЗапуÑк внешнего процеÑÑа...</translation> - </message> - <message> - <source>Failure running remote process.</source> - <translation>Ошибка работы внешнего процеÑÑа.</translation> - </message> -</context> <context> <name>QmlProjectManager::Internal::Manager</name> <message> - <source>Failed opening project '%1': Project already open</source> - <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект уже открыт</translation> - </message> - <message> - <source>Failed opening project '%1': Project file is not a file</source> - <translation>Ðе удалоÑÑŒ открыть проект «%1»: файл проекта не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼</translation> + <source>Failed opening project '%1': Project is not a file</source> + <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼</translation> </message> </context> <context> @@ -24937,14 +26070,6 @@ Please use the stop button instead.</source> <source>Main QML file:</source> <translation>ОÑновной файл QML:</translation> </message> - <message> - <source>Run Environment</source> - <translation>Среда выполнениÑ</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> </context> <context> <name>QmlProjectManager::Internal::QmlProjectRunControl</name> @@ -24964,23 +26089,35 @@ Please use the stop button instead.</source> <context> <name>QmlProjectManager::Internal::QmlProjectRunControlFactory</name> <message> - <source>Run</source> - <translation>ЗапуÑтить</translation> + <source>Not enough free ports for QML debugging. </source> + <translation>ÐедоÑтаточно Ñвободных портов Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ QML. </translation> </message> </context> <context> - <name>QmlProjectManager::QmlApplicationWizardDialog</name> + <name>QmlProjectManager::QmlApplicationWizard</name> + <message> + <source>Creates a Qt Quick 1 UI project with a single QML file that contains the main view. You can review Qt Quick 1 UI projects in the QML Viewer and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects. Requires Qt 4.8 or newer.</source> + <translation>Создание проекта Qt Quick 1 Ñ Ð¾Ð´Ð½Ð¸Ð¼ файлом QML, Ñодержащим главный интерфейÑ. ПроверÑÑ‚ÑŒ проекты Qt Quick 1 можно без переÑборки в QML Viewer. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ запуÑка Ñтого типа проектов не требуетÑÑ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñреда разработки. ТребуетÑÑ Qt верÑии 4.8 или выше.</translation> + </message> + <message> + <source>Qt Quick 1 UI</source> + <translation>Проект Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñом Qt Quick 1</translation> + </message> + <message> + <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects. Requires Qt 5.0 or newer.</source> + <translation>Создание проекта Qt Quick 2 Ñ Ð¾Ð´Ð½Ð¸Ð¼ файлом QML, Ñодержащим главный интерфейÑ. ПроверÑÑ‚ÑŒ проекты Qt Quick 2 можно без переÑборки в QML Scene. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ запуÑка Ñтого типа проектов не требуетÑÑ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñреда разработки. ТребуетÑÑ Qt верÑии 5.0 или выше.</translation> + </message> <message> - <source>Creates a Qt Quick 1 UI project with a single QML file that contains the main view.&lt;br/&gt;You can review Qt Quick 1 UI projects in the QML Viewer and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects.&lt;br/&gt;&lt;br/&gt;Requires &lt;b&gt;Qt 4.8&lt;/b&gt; or newer.</source> - <translation>Создание проекта Qt Quick 1 Ñ Ð¾Ð´Ð½Ð¸Ð¼ файлом QML, Ñодержащим главный интерфейÑ.&lt;br/&gt; ПроверÑÑ‚ÑŒ проекты Qt Quick 1 можно без переÑборки в QML Viewer. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ запуÑка Ñтого типа проектов не требуетÑÑ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñреда разработки. &lt;b/r&gt;&lt;br/&gt;ТребуетÑÑ &lt;b&gt;Qt 4.8&lt;/b&gt; или выше.</translation> + <source>Qt Quick 2 UI</source> + <translation>Проект Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñом Qt Quick 2</translation> </message> <message> - <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view.&lt;br/&gt;You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects.&lt;br/&gt;&lt;br/&gt;Requires &lt;b&gt;Qt 5.0&lt;/b&gt; or newer.</source> - <translation>Создание проекта Qt Quick 2 Ñ Ð¾Ð´Ð½Ð¸Ð¼ файлом QML, Ñодержащим главный интерфейÑ.&lt;br/&gt; ПроверÑÑ‚ÑŒ проекты Qt Quick 2 можно без переÑборки в QML Scene. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ запуÑка Ñтого типа проектов не требуетÑÑ Ð¸Ð½Ñ‚ÐµÐ³Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñреда разработки. &lt;br/&gt;&lt;br/&gt;ТребуетÑÑ &lt;b&gt;Qt 5.0&lt;/b&gt; или выше.</translation> + <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.1 or newer.</source> + <translation>Создание проекта Qt Quick 2 Ñ Ð¾Ð´Ð½Ð¸Ð¼ файлом QML, Ñодержащим главный Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¸ иÑпользующим Qt Quick Controls. ПроверÑÑ‚ÑŒ проекты Qt Quick 2 можно без переÑборки в QML Scene. Проекту необходимо, чтобы Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Qt были уÑтановлены Qt Quick Controls. ТребуетÑÑ Qt верÑии 5.1 или выше.</translation> </message> <message> - <source>Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls.&lt;br/&gt;You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version.&lt;br/&gt;&lt;br/&gt;Requires &lt;b&gt;Qt 5.1&lt;/b&gt; or newer.</source> - <translation>Создание проекта Qt Quick 2 Ñ Ð¾Ð´Ð½Ð¸Ð¼ файлом QML, Ñодержащим главный Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¸ иÑпользующим Qt Quick Controls.&lt;br/&gt; ПроверÑÑ‚ÑŒ проекты Qt Quick 2 можно без переÑборки в QML Scene. Проекту необходимо, чтобы Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Qt были уÑтановлены Qt Quick Controls. &lt;br/&gt;&lt;br/&gt;ТребуетÑÑ &lt;b&gt;Qt 5.1&lt;/b&gt; или выше.</translation> + <source>Qt Quick 2 UI with Controls</source> + <translation>Проект Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñом Qt Quick 2 Ñ Ñлементами управлениÑ</translation> </message> </context> <context> @@ -25010,6 +26147,13 @@ Please use the stop button instead.</source> <translation>Ð”Ð»Ñ ÐºÐ¾Ð¼Ð¿Ð»ÐµÐºÑ‚Ð° не задан профиль Qt.</translation> </message> </context> +<context> + <name>QmlProjectManager::QmlProjectEnvironmentAspect</name> + <message> + <source>System Environment</source> + <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> + </message> +</context> <context> <name>QmlProjectManager::QmlProjectPlugin</name> <message> @@ -25098,35 +26242,43 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <source>XML Source</source> <translation>ИÑходник XML</translation> </message> - <message> - <source>Bar Descriptor</source> - <translation>ОпиÑание панели</translation> - </message> </context> <context> - <name>Qnx::Internal::BarDescriptorEditorFactory</name> + <name>Qnx::Internal::BarDescriptorEditorAssetsWidget</name> <message> - <source>Bar descriptor editor</source> - <translation>Редактор опиÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸</translation> + <source>Form</source> + <translation></translation> </message> -</context> -<context> - <name>Qnx::Internal::BarDescriptorEditorWidget</name> <message> - <source>StackedWidget</source> - <translation></translation> + <source>Add...</source> + <translation>Добавить...</translation> </message> <message> - <source>Package Information</source> - <translation>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ пакете</translation> + <source>Remove</source> + <translation>Удалить</translation> </message> <message> - <source>Package ID:</source> - <translation>ID пакета:</translation> + <source>Path</source> + <translation>Путь</translation> </message> <message> - <source>Author Information</source> - <translation>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± авторе</translation> + <source>Destination</source> + <translation>Ðазначение</translation> + </message> + <message> + <source>Entry-Point</source> + <translation>Точка входа</translation> + </message> + <message> + <source>Select File to Add</source> + <translation>Выберите файл Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorAuthorInformationWidget</name> + <message> + <source>Form</source> + <translation></translation> </message> <message> <source>Author:</source> @@ -25137,8 +26289,43 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <translation>ID автора:</translation> </message> <message> - <source>Entry-Point Text and Images</source> - <translation>ТекÑÑ‚ и Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ запуÑке</translation> + <source>Set from debug token...</source> + <translation>Извлечь из токена отладки...</translation> + </message> + <message> + <source>Select Debug Token</source> + <translation>Выбор токена отладки</translation> + </message> + <message> + <source>Debug token:</source> + <translation>Токен отладки:</translation> + </message> + <message> + <source>Error Reading Debug Token</source> + <translation>Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° отладки</translation> + </message> + <message> + <source>There was a problem reading debug token.</source> + <translation>Возникла ошибка при чтении токена отладки.</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorEntryPointWidget</name> + <message> + <source>Form</source> + <translation></translation> + </message> + <message> + <source>Name:</source> + <translation>ИмÑ:</translation> + </message> + <message> + <source>Description:</source> + <translation>ОпиÑание:</translation> + </message> + <message> + <source>Icon:</source> + <translation>Значок:</translation> </message> <message> <source>Clear</source> @@ -25157,52 +26344,61 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <translation>Удалить</translation> </message> <message> - <source>Icon:</source> - <translation>Значок:</translation> + <source>Images (*.jpg *.png)</source> + <translation>Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (*.jpg *.png)</translation> </message> <message> - <source>Description:</source> - <translation>ОпиÑание:</translation> + <source>Select Splash Screen</source> + <translation>Выберите заÑтавку</translation> </message> <message> - <source>Name:</source> - <translation>Ðазвание:</translation> + <source><font color="red">Could not open '%1' for reading.</font></source> + <translation><font color="red">Ðе удалоÑÑŒ открыть «%1» Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ.</font></translation> </message> <message> - <source>General</source> - <translation>ОÑновное</translation> + <source><font color="red">The selected image is too big (%1x%2). The maximum size is %3x%4 pixels.</font></source> + <translation><font color="red">Выбранное изображение Ñлишком велико (%1x%2). МакÑимальный размер %3x%4 точек.</font></translation> </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorEnvironmentWidget</name> <message> - <source>Orientation:</source> - <translation>ОриентациÑ:</translation> + <source>Form</source> + <translation></translation> </message> <message> - <source>Chrome:</source> - <translation>Декорации окна:</translation> + <source>Device Environment</source> + <translation>Среда уÑтройÑтва</translation> </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorFactory</name> <message> - <source>Transparent main window</source> - <translation>Прозрачное главное окно</translation> + <source>Bar descriptor editor</source> + <translation>Редактор опиÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸</translation> </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorGeneralWidget</name> <message> - <source>Application Arguments:</source> - <translation>Параметры приложениÑ:</translation> + <source>Form</source> + <translation></translation> </message> <message> - <source>Permissions</source> - <translation>РазрешениÑ</translation> + <source>Orientation:</source> + <translation>ОриентациÑ:</translation> </message> <message> - <source>Select All</source> - <translation>Выбрать вÑе</translation> + <source>Chrome:</source> + <translation>Декорации окна:</translation> </message> <message> - <source>Deselect All</source> - <translation>СнÑÑ‚ÑŒ выделение</translation> + <source>Transparent main window</source> + <translation>Прозрачное главное окно</translation> </message> <message> - <source>Environment</source> - <translation>Среда</translation> + <source>Application Arguments:</source> + <translation>Параметры приложениÑ:</translation> </message> <message> <source>Default</source> @@ -25226,63 +26422,72 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi </message> <message> <source>None</source> - <translation>Ðет</translation> + <translation>ОтÑутÑтвует</translation> </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorPackageInformationWidget</name> <message> - <source>Device Environment</source> - <translation>Среда уÑтройÑтва</translation> + <source>Form</source> + <translation></translation> </message> <message> - <source>Images (*.jpg *.png)</source> - <translation>Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (*.jpg *.png)</translation> + <source>Package ID:</source> + <translation>ID пакета:</translation> </message> <message> - <source>Path</source> - <translation>Путь</translation> + <source>Package version:</source> + <translation>ВерÑÐ¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð°:</translation> </message> <message> - <source>Destination</source> - <translation>Ðазначение</translation> + <source>Package build ID:</source> + <translation>ID Ñборки пакета:</translation> </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorPermissionsWidget</name> <message> - <source>Entry-Point</source> - <translation>Точка входа</translation> + <source>Form</source> + <translation></translation> </message> <message> - <source>Select Splash Screen</source> - <translation>Выберите заÑтавку</translation> + <source>Select All</source> + <translation>Выделить вÑÑ‘</translation> </message> <message> - <source>Select File to Add</source> - <translation>Выберите файл Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ</translation> + <source>Deselect All</source> + <translation>СнÑÑ‚ÑŒ выделение</translation> </message> +</context> +<context> + <name>Qnx::Internal::BarDescriptorEditorWidget</name> <message> - <source>Select Debug Token</source> - <translation>Выбор токена отладки</translation> + <source>Package Information</source> + <translation>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ пакете</translation> </message> <message> - <source>Debug token:</source> - <translation>Токен отладки:</translation> + <source>Assets</source> + <translation>РеÑурÑÑ‹</translation> </message> <message> - <source>Error Reading Debug Token</source> - <translation>Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° отладки</translation> + <source>Author Information</source> + <translation>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± авторе</translation> </message> <message> - <source>There was a problem reading debug token</source> - <translation>Возникла ошибка при чтении токена отладки</translation> + <source>Entry-Point Text and Images</source> + <translation>ТекÑÑ‚ и Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ запуÑке</translation> </message> <message> - <source>Package version:</source> - <translation>ВерÑÐ¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð°:</translation> + <source>General</source> + <translation>ОÑновное</translation> </message> <message> - <source>Package build ID:</source> - <translation>ID Ñборки пакета:</translation> + <source>Permissions</source> + <translation>РазрешениÑ</translation> </message> <message> - <source>Set from debug token...</source> - <translation>Извлечь из токена отладки...</translation> + <source>Environment</source> + <translation>Среда</translation> </message> </context> <context> @@ -25292,77 +26497,133 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <translation>Разрешение</translation> </message> <message> - <source>Files</source> - <translation>Файлы</translation> + <source><html><head/><body><p>Allows this app to connect to the BBM Social Platform to access BBM contact lists and user profiles, invite BBM contacts to download your app, initiate BBM chats and share content from within your app, or stream data between apps in real time.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению подключатьÑÑ Ðº Ñоциальной платформе BBM Ð´Ð»Ñ Ð´Ð¾Ñтупа к ÑпиÑку контактов и профилей пользователей, приглашать контакты загружать ваше приложение, начинать обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¸ делитьÑÑ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ из вашего Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ потоковыми данными между приложениÑми в реальном времени.</p></body></html></translation> </message> <message> - <source>Read and write files that are shared between all applications run by the current user.</source> - <translation>Читать и запиÑывать файлы, общие Ð´Ð»Ñ Ð²Ñех приложений текущего пользователÑ.</translation> + <source><html><head/><body><p>Allows this app to access the calendar on the device. This access includes viewing, adding, and deleting calendar appointments.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению доÑтуп к календарю уÑтройÑтва, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ðµ, добавление и удаление Ñобытий.</p></body></html></translation> </message> <message> - <source>Microphone</source> - <translation>Микрофон</translation> + <source><html><head/><body><p>Allows this app to take pictures, record video, and use the flash.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению захват изображений, запиÑÑŒ видео и иÑпользование flash.</p></body></html></translation> </message> <message> - <source>Access the audio stream from the microphone.</source> - <translation>Иметь доÑтуп к аудио-потоку Ñ Ð¼Ð¸ÐºÑ€Ð¾Ñ„Ð¾Ð½Ð°.</translation> + <source><html><head/><body><p>Allows this app to access the contacts stored on the device. This access includes viewing, creating, and deleting the contacts.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению доÑтуп к ÑпиÑку контактов, Ñохранённому на уÑтройÑтве, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ðµ, добавление и удаление контактов.</p></body></html></translation> </message> <message> - <source>GPS Location</source> - <translation>Позиционирование GPS</translation> + <source><html><head/><body><p>Allows this app to access device identifiers such as serial number and PIN.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению получать идентификаторы уÑтройÑтва (такие как Ñерийный номер и PIN).</p></body></html></translation> </message> <message> - <source>Read the current location of the device.</source> - <translation>Читать текущее положение уÑтройÑва.</translation> + <source><html><head/><body><p>Allows this app to access the email and PIN messages stored on the device. This access includes viewing, creating, sending, and deleting the messages.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению доÑтуп к ÑообщениÑм Ñлектронной почты и PIN, Ñохранённым на уÑтройÑтве, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ðµ, Ñоздание, отправку и удаление Ñообщений.</p></body></html></translation> </message> <message> - <source>Camera</source> - <translation>Камера</translation> + <source><html><head/><body><p>Allows this app to access the current GPS location of the device.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет приложению доÑтуп к координатам GPS уÑтройÑтва.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Allows this app to use Wi-fi, wired, or other connections to a destination that is not local on the user's device.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет приложению иÑпользовать Wi-Fi, проводное и прочие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº реÑурÑам, находÑщимÑÑ Ð²Ð½Ðµ уÑтройÑтва.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Allows this app to access the device's current or saved locations.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет приложению доÑтуп к текущим или Ñохранённым координатам уÑтройÑтва.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Allows this app to record sound using the microphone.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению запиÑÑŒ звука через микрофон.</p></body></html></translation> </message> <message> - <source>Capture images and video using the cameras.</source> - <translation>Захватывать Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸ видео иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÐºÐ°Ð¼ÐµÑ€Ñ‹.</translation> + <source><html><head/><body><p>Allows this app to access the content stored in the notebooks on the device. This access includes adding and deleting entries and content.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению доÑтуп к Ñодержимому заметок, хранимых на уÑтройÑтве, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ и удаление запиÑей и Ñодержимого.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Post a notification to the notifications area of the screen.</p></body></html></source> + <translation><html><head/><body><p>ОтправлÑÑ‚ÑŒ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð² ÑоответÑтвующую облаÑÑ‚ÑŒ Ñкрана.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Allows this app to use the Push Service with the BlackBerry Internet Service. This access allows the app to receive and request push messages. To use the Push Service with the BlackBerry Internet Service, you must register with BlackBerry. When you register, you receive a confirmation email message that contains information that your application needs to receive and request push messages. For more information about registering, visit https://developer.blackberry.com/services/push/. If you're using the Push Service with the BlackBerry Enterprise Server or the BlackBerry Device Service, you don't need to register with BlackBerry.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому уÑтройÑтву иÑпользовать ÑÐµÑ€Ð²Ð¸Ñ Push ÑовмеÑтно Ñ BlackBerry Internet Service. Он позволÑет отправлÑÑ‚ÑŒ и получать Push-уведомлениÑ. Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑервиÑа необходимо зарегиÑтрироватьÑÑ Ð² BlackBerry. При региÑтрации будет отправлено пиÑьмо подтверждениÑ, которое Ñодержит информацию, что ваше приложение требует приёма и отправки push Ñообщений. Подробнее о региÑтрации можно прочитать на Ñайте https://developer.blackberry.com/services/push/. ЕÑли вы иÑпользуете ÑÐµÑ€Ð²Ð¸Ñ Push ÑовмеÑтно Ñ BlackBerry Enterprise Server или BlackBerry Device Service, то региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² BlackBerry не требуетÑÑ.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Allows background processing. Without this permission, the app is stopped when the user switches focus to another app. Apps that use this permission are rigorously reviewed for acceptance to BlackBerry App World storefront for their use of power.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет работать в фоновом режиме. Без Ñтого Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ будет оÑтанавливатьÑÑ Ð¿Ñ€Ð¸ Ñмене фокуÑа. ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ Ñтим разрешением очень тщательно проверÑÑŽÑ‚ÑÑ Ð½Ð° предмет ÑÐ½ÐµÑ€Ð³Ð¾Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ñ‘Ð¼Ð° в BlackBerry App World.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Allows this app to access pictures, music, documents, and other files stored on the user's device, at a remote storage provider, on a media card, or in the cloud.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению доÑтуп к изображениÑм, музыке, документам и другим файлам, Ñохранённым на уÑтройÑтве, во внешнем хранилище, на карточке и в облаке.</p></body></html></translation> + </message> + <message> + <source><html><head/><body><p>Allows this app to access the text messages stored on the device. The access includes viewing, creating, sending, and deleting text messages.</p></body></html></source> + <translation><html><head/><body><p>ПозволÑет Ñтому приложению доÑтуп к текÑтовым ÑообщениÑм, Ñохранённым на уÑтройÑтве. Что даÑÑ‚ ему право проÑматривать, Ñоздавать, отправлÑÑ‚ÑŒ и удалÑÑ‚ÑŒ их.</p></body></html></translation> + </message> + <message> + <source>Microphone</source> + <translation>Микрофон</translation> + </message> + <message> + <source>GPS Location</source> + <translation>Позиционирование GPS</translation> + </message> + <message> + <source>Camera</source> + <translation>Камера</translation> </message> <message> <source>Internet</source> <translation>Интернет</translation> </message> <message> - <source>Use a Wi-Fi, wired, or other connection to a destination that is not local.</source> - <translation>ИÑпользовать Wi-Fi, проводное или другие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº нелокальным реÑурÑам.</translation> + <source>BlackBerry Messenger</source> + <translation type="unfinished">BlackBerry Messenger</translation> </message> <message> - <source>Play Sounds</source> - <translation>ВоÑпроизведение звуков</translation> + <source>Calendar</source> + <translation>Календарь</translation> </message> <message> - <source>Play an audio stream.</source> - <translation>ВоÑпроизведение аудио-потоков.</translation> + <source>Contacts</source> + <translation>Контакты</translation> + </message> + <message> + <source>Email and PIN Messages</source> + <translation>Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‡Ñ‚Ñ‹ и PIN</translation> + </message> + <message> + <source>Location</source> + <translation>Координаты</translation> + </message> + <message> + <source>Notebooks</source> + <translation>Заметки</translation> </message> <message> <source>Post Notifications</source> <translation>Создание уведомлений</translation> </message> <message> - <source>Post a notification to the notifications area of the screen.</source> - <translation>Создавать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð² облаÑти уведомлений Ñкрана.</translation> + <source>Push</source> + <translation>Push</translation> + </message> + <message> + <source>Run When Backgrounded</source> + <translation>Работать в фоне</translation> </message> <message> - <source>Set Audio Volume</source> - <translation>УÑтановка громкоÑти</translation> + <source>Shared Files</source> + <translation>Общие файлы</translation> </message> <message> - <source>Change the volume of an audio stream being played.</source> - <translation>Изменение громкоÑти проигрываемого аудио-потока.</translation> + <source>Text Messages</source> + <translation>ТекÑтовые ÑообщениÑ</translation> </message> <message> <source>Device Identifying Information</source> <translation>Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑƒÑтройÑтва</translation> </message> - <message> - <source>Access unique device identifying information (e.g. PIN).</source> - <translation>Получать доÑтуп к уникальной идентификационной информации уÑтройÑтва (например, PIN).</translation> - </message> </context> <context> <name>Qnx::Internal::BlackBerryAbstractDeployStep</name> @@ -25397,6 +26658,35 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <translation>Ðктивный</translation> </message> </context> +<context> + <name>Qnx::Internal::BlackBerryCheckDevModeStep</name> + <message> + <source>Check Development Mode</source> + <translation>Проверить режим разработки</translation> + </message> + <message> + <source>Could not find command '%1' in the build environment</source> + <translation>Ðе удалоÑÑŒ найти в Ñреде Ñборки команду «%1»</translation> + </message> + <message> + <source>No hostname specified for device</source> + <translation>Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° не задано Ð´Ð»Ñ ÑƒÑтройÑтва</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerryCheckDevModeStepConfigWidget</name> + <message> + <source><b>Check development mode</b></source> + <translation><b>Проверка режима разработки</b></translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerryCheckDevModeStepFactory</name> + <message> + <source>Check Development Mode</source> + <translation>Проверка режима разработки</translation> + </message> +</context> <context> <name>Qnx::Internal::BlackBerryConfiguration</name> <message> @@ -25420,40 +26710,40 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <translation>- Ðе найден отладчик GDB Ð´Ð»Ñ ÑмулÑтора BB10.</translation> </message> <message> - <source>Cannot Setup BB10 Configuration</source> + <source>Cannot Set up BB10 Configuration</source> <translation>Ðе удалоÑÑŒ наÑтроить конфигурацию BB10</translation> </message> <message> - <source>Qt Version Already Known</source> - <translation>Профиль Qt уже извеÑтен</translation> + <source>This Qt version was already registered.</source> + <translation>Ðтот профиль Qt уже зарегиÑтрирован.</translation> </message> <message> - <source>This Qt version was already registered</source> - <translation>Ðтот профиль Qt уже зарегиÑтрирован</translation> + <source>Invalid Qt Version</source> + <translation>Ðеверный профиль Qt</translation> </message> <message> - <source>Invalid Qt version</source> - <translation>Ðеверный профиль Qt</translation> + <source>Unable to add BlackBerry Qt version.</source> + <translation>Ðевозможно добавить профиль Qt Ð´Ð»Ñ BlackBerry.</translation> </message> <message> - <source>Unable to add BlackBerry Qt version</source> - <translation>Ðевозможно добавить профиль Qt Ð´Ð»Ñ BlackBerry</translation> + <source>This compiler was already registered.</source> + <translation>Ðтот компилÑтор уже зарегиÑтрирован.</translation> </message> <message> - <source>Compiler Already Known</source> - <translation>КомпилÑтор уже извеÑтен</translation> + <source>This kit was already registered.</source> + <translation>Ðтот комплект уже зарегиÑтрирован.</translation> </message> <message> - <source>This Compiler was already registered</source> - <translation>Ðтот компилÑтор уже зарегиÑтрирован</translation> + <source>Qt Version Already Known</source> + <translation>Профиль Qt уже извеÑтен</translation> </message> <message> - <source>Kit Already Known</source> - <translation>Комплект уже извеÑтен</translation> + <source>Compiler Already Known</source> + <translation>КомпилÑтор уже извеÑтен</translation> </message> <message> - <source>This Kit was already registered</source> - <translation>Ðтот комплект уже зарегиÑтрирован</translation> + <source>Kit Already Known</source> + <translation>Комплект уже извеÑтен</translation> </message> <message> <source>BlackBerry 10 (%1) - Simulator</source> @@ -25530,8 +26820,8 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <context> <name>Qnx::Internal::BlackBerryCreatePackageStep</name> <message> - <source>Create BAR packages</source> - <translation>Создание пакетов BAR</translation> + <source>Create packages</source> + <translation>Создание пакетов</translation> </message> <message> <source>Could not find packager command '%1' in the build environment</source> @@ -25553,6 +26843,10 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <source>Could not create build directory '%1'</source> <translation>Ðевозможно Ñоздать каталог Ñборки «%1»</translation> </message> + <message> + <source>Missing passwords for signing packages</source> + <translation>ОтÑутÑтвуют пароли Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑ‹Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð¾Ð²</translation> + </message> <message> <source>Error preparing application descriptor file</source> <translation>Ошибка подготовки файла опиÑÐ°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ</translation> @@ -25572,6 +26866,38 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <source><b>Create packages</b></source> <translation><b>Создание пакетов:</b> </translation> </message> + <message> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <source>Sign packages</source> + <translation>ПодпиÑывать пакеты</translation> + </message> + <message> + <source>CSK password:</source> + <translation>Пароль CSK:</translation> + </message> + <message> + <source>Keystore password:</source> + <translation>Пароль хранилища:</translation> + </message> + <message> + <source>Note: This will store the passwords in a world-readable file.</source> + <translation>Внимание: пароли будут хранитьÑÑ Ð² Ñвободно читаемом файле.</translation> + </message> + <message> + <source>Save passwords</source> + <translation>Сохранить пароли</translation> + </message> + <message> + <source>Show passwords</source> + <translation>Показывать пароли</translation> + </message> + <message> + <source>Package in development mode</source> + <translation>Пакет в режиме разработчика</translation> + </message> </context> <context> <name>Qnx::Internal::BlackBerryCreatePackageStepFactory</name> @@ -25641,6 +26967,10 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <source>BAR Files (*.bar)</source> <translation>Файлы BAR (*.bar)</translation> </message> + <message> + <source>Requesting Device PIN...</source> + <translation>Ð—Ð°Ð¿Ñ€Ð¾Ñ PIN уÑтройÑтва...</translation> + </message> <message> <source>Base directory does not exist.</source> <translation>РодительÑкий каталог не ÑущеÑтвует.</translation> @@ -25689,6 +27019,10 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <source>Failed to communicate with the inferior process.</source> <translation>Ðе удалоÑÑŒ ÑвÑзатьÑÑ Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ð¼ процеÑÑом.</translation> </message> + <message> + <source>Not yet registered to request debug tokens.</source> + <translation>Ещё не зарегиÑтрирован Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚Ð¾ÐºÐµÐ½Ð¾Ð² отладки.</translation> + </message> <message> <source>An unknwon error has occurred.</source> <translation>Возникла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°.</translation> @@ -25708,6 +27042,20 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <source>Deploy to BlackBerry Device</source> <translation>УÑтановка на уÑтройÑтво BlackBerry</translation> </message> + <message> + <source>Setup Application Descriptor File</source> + <translation>Задать файл опиÑÐ°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ</translation> + </message> + <message> + <source>You need to set up a bar descriptor file to enable packaging. +Do you want Qt Creator to generate it for your project?</source> + <translation>Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð° необходимо наÑтроить файл опиÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸. +Желаете, чтобы Qt Creator Ñоздал его?</translation> + </message> + <message> + <source>Don't ask again for this project</source> + <translation>Больше не Ñпрашивать Ð´Ð»Ñ Ñтого проекта</translation> + </message> <message> <source>Cannot Set up Application Descriptor File</source> <translation>Ðе удалоÑÑŒ наÑтроить файл опиÑÐ°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ</translation> @@ -25720,16 +27068,6 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi <source>Writing the bar descriptor file failed.</source> <translation>Ðе удалоÑÑŒ запиÑать файл опиÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸.</translation> </message> - <message> - <source>Add bar-descriptor.xml File to Project</source> - <translation>Добавление файла bar-descriptor.xml в проект</translation> - </message> - <message> - <source>Qt Creator has set up a bar descriptor file to enable packaging. -Do you want to add it to the project?</source> - <translation>Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð° Qt Creator наÑтроил файл опиÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸. -Включить его в проект?</translation> - </message> </context> <context> <name>Qnx::Internal::BlackBerryDeployConfigurationFactory</name> @@ -25803,6 +27141,14 @@ Do you want to add it to the project?</source> <source>BlackBerry</source> <translation>BlackBerry</translation> </message> + <message> + <source>Connect to device</source> + <translation>Подключение к уÑтройÑтву</translation> + </message> + <message> + <source>Disconnect from device</source> + <translation>Отключение от уÑтройÑтва</translation> + </message> </context> <context> <name>Qnx::Internal::BlackBerryDeviceConfigurationFactory</name> @@ -25901,6 +27247,10 @@ Do you want to add it to the project?</source> <source>Uploading debug token</source> <translation>Отправка токена отладки</translation> </message> + <message> + <source>Connection log:</source> + <translation>Журнал подключениÑ:</translation> + </message> </context> <context> <name>Qnx::Internal::BlackBerryDeviceConfigurationWizard</name> @@ -25908,22 +27258,6 @@ Do you want to add it to the project?</source> <source>New BlackBerry Device Configuration Setup</source> <translation>ÐаÑтройка новой конфигурации уÑтройÑтва BlackBerry</translation> </message> - <message> - <source>Failure to Save Key File</source> - <translation>Ошибка ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ключа</translation> - </message> - <message> - <source>Failed to create directory: '%1'.</source> - <translation>Ðе удалоÑÑŒ Ñоздать каталог: «%1».</translation> - </message> - <message> - <source>Private key file already exists: '%1'</source> - <translation>Файл закрытого ключа уже ÑущеÑтвует: «%1»</translation> - </message> - <message> - <source>Public key file already exists: '%1'</source> - <translation>Файл открытого ключа уже ÑущеÑтвует: «%1»</translation> - </message> </context> <context> <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardFinalPage</name> @@ -25997,10 +27331,6 @@ Do you want to add it to the project?</source> <source>Public key file:</source> <translation>Файл открытого ключа:</translation> </message> - <message> - <source>Generate</source> - <translation>Создать</translation> - </message> <message> <source>SSH Key Setup</source> <translation>ÐаÑтройка ключа SSH</translation> @@ -26013,6 +27343,21 @@ Do you want to add it to the project?</source> <source>Key Generation Failed</source> <translation>Ðе удалоÑÑŒ Ñоздать ключ</translation> </message> + <message> + <source>Choose Private Key File Name</source> + <translation>Выберите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñекретного ключа</translation> + </message> + <message> + <source>Generate...</source> + <translation>Создать...</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerryDeviceConnection</name> + <message> + <source>Error connecting to device: java could not be found in the environment.</source> + <translation>Ошибка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº уÑтройÑтву: не удалоÑÑŒ найти java.</translation> + </message> </context> <context> <name>Qnx::Internal::BlackBerryImportCertificateDialog</name> @@ -26032,6 +27377,10 @@ Do you want to add it to the project?</source> <source>PKCS 12 Archives (*.p12)</source> <translation>Ðрхивы PKCS 12 (*.p12)</translation> </message> + <message> + <source>Error parsing inferior process output.</source> + <translation>Ошибка разбора вывода дочернего процеÑÑа.</translation> + </message> <message> <source>Error</source> <translation>Ошибка</translation> @@ -26148,6 +27497,14 @@ Do you want to add it to the project?</source> <source>Remove</source> <translation>Удалить</translation> </message> + <message> + <source>Qt Creator</source> + <translation>Qt Creator</translation> + </message> + <message> + <source>It appears that your BlackBerry environment has already been configured.</source> + <translation>Похоже, что Ñреда BlackBerry уже наÑтроена.</translation> + </message> <message> <source>Clean BlackBerry 10 Configuration</source> <translation>ОчиÑтка конфигурации BlackBerry 10</translation> @@ -26156,6 +27513,21 @@ Do you want to add it to the project?</source> <source>Are you sure you want to remove the current BlackBerry configuration?</source> <translation>Желаете удалить текущую конфигурацию BlackBerry?</translation> </message> + <message> + <source>Get started and configure your environment:</source> + <translation>Ðачните Ñ Ð½Ð°Ñтройки Ñреды:</translation> + </message> + <message> + <source>environment setup wizard</source> + <translation>маÑтер наÑтройки Ñреды</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerryProcessParser</name> + <message> + <source>Authentication failed. Please make sure the password for the device is correct.</source> + <translation>ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ðµ прошла. Проверьте корректноÑÑ‚ÑŒ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ðº уÑтройÑтву.</translation> + </message> </context> <context> <name>Qnx::Internal::BlackBerryQtVersion</name> @@ -26191,14 +27563,6 @@ Do you want to add it to the project?</source> <source>CSJ PIN:</source> <translation>CSJ PIN:</translation> </message> - <message> - <source>CSK PIN:</source> - <translation>CSK PIN:</translation> - </message> - <message> - <source>Confirm CSK PIN:</source> - <translation>Повтор CSK PIN:</translation> - </message> <message> <source>Keystore password:</source> <translation>Пароль хранилища:</translation> @@ -26224,8 +27588,8 @@ Do you want to add it to the project?</source> <translation>СоÑтоÑние</translation> </message> <message> - <source>CSK PINs do not match.</source> - <translation>PIN'Ñ‹ CSK не Ñовпадают.</translation> + <source>CSK passwords do not match.</source> + <translation>Пароли CSK не Ñовпадают.</translation> </message> <message> <source>Keystore password does not match.</source> @@ -26248,26 +27612,23 @@ Do you want to add it to the project?</source> <translation>Файлы CSJ (*.csj)</translation> </message> <message> - <source>Create Key</source> - <translation>Создание ключа</translation> + <source>Register Key</source> + <translation>РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°</translation> </message> -</context> -<context> - <name>Qnx::Internal::BlackBerryRunConfiguration</name> <message> - <source>%1 on BlackBerry device</source> - <translation>%1 на уÑтройÑтве BlackBerry</translation> + <source>CSK password:</source> + <translation>Пароль CSK:</translation> </message> <message> - <source>Run on BlackBerry device</source> - <translation>ЗапуÑк на уÑтройÑтве BlackBerry</translation> + <source>Confirm CSK password:</source> + <translation>Повтор Ð¿Ð°Ñ€Ð¾Ð»Ñ CSK:</translation> </message> </context> <context> - <name>Qnx::Internal::BlackBerryRunConfigurationFactory</name> + <name>Qnx::Internal::BlackBerryRunConfiguration</name> <message> - <source>%1 on BlackBerry Device</source> - <translation>%1 на уÑтройÑтве BlackBerry</translation> + <source>Run on BlackBerry device</source> + <translation>ЗапуÑк на уÑтройÑтве BlackBerry</translation> </message> </context> <context> @@ -26288,8 +27649,295 @@ Do you want to add it to the project?</source> <translation>Ðе выбрана Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ ÑƒÑтановки</translation> </message> <message> - <source>Run on BlackBerry Device</source> - <translation>ЗапуÑк на уÑтройÑтве BlackBerry</translation> + <source>Device not connected</source> + <translation>УÑтройÑтво не подключено</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerrySetupWizard</name> + <message> + <source>BlackBerry Development Environment Setup Wizard</source> + <translation>МаÑтер наÑтройки Ñреды разработки BlackBerry</translation> + </message> + <message> + <source>Reading device PIN...</source> + <translation>Чтение PIN уÑтройÑтва...</translation> + </message> + <message> + <source>Registering CSJ keys...</source> + <translation>РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ ÐºÐ»ÑŽÑ‡ÐµÐ¹ CSJ...</translation> + </message> + <message> + <source>Generating developer certificate...</source> + <translation>Создание Ñертификата разработчика...</translation> + </message> + <message> + <source>Generating SSH keys...</source> + <translation>Создание ключей SSH...</translation> + </message> + <message> + <source>Requesting a debug token for the device...</source> + <translation>Ð—Ð°Ð¿Ñ€Ð¾Ñ Ñ‚Ð¾ÐºÐµÐ½Ð° отладки Ð´Ð»Ñ ÑƒÑтройÑтва...</translation> + </message> + <message> + <source>Now uploading the debug token...</source> + <translation>Отправка токена отладки...</translation> + </message> + <message> + <source>Writing device information...</source> + <translation>ЗапиÑÑŒ информации об уÑтройÑтве...</translation> + </message> + <message> + <source>Error reading device PIN. Please make sure that the specified device IP address is correct.</source> + <translation>Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ PIN уÑтройÑтва. УбедитеÑÑŒ, что указанный IP Ð°Ð´Ñ€ÐµÑ ÑƒÑтройÑтва верен.</translation> + </message> + <message> + <source>Error</source> + <translation>Ошибка</translation> + </message> + <message> + <source>Error creating developer certificate.</source> + <translation>Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñертификата разработчика.</translation> + </message> + <message> + <source>Failed to request debug token: </source> + <translation>Ðе удалоÑÑŒ получить токен отладки: </translation> + </message> + <message> + <source>Wrong CSK password.</source> + <translation>Ðеверный пароль CSK.</translation> + </message> + <message> + <source>Wrong keystore password.</source> + <translation>Ðеверный пароль хранилища ключей.</translation> + </message> + <message> + <source>Network unreachable.</source> + <translation>Сеть недоÑтупна.</translation> + </message> + <message> + <source>Illegal device PIN.</source> + <translation>Ðеверный PIN уÑтройÑтва.</translation> + </message> + <message> + <source>Failed to start inferior process.</source> + <translation>Ðе удалоÑÑŒ запуÑтить дочерний процеÑÑ.</translation> + </message> + <message> + <source>Inferior processes timed out.</source> + <translation>Ð’Ñ€ÐµÐ¼Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½ÐµÐ³Ð¾ процеÑÑа иÑтекло.</translation> + </message> + <message> + <source>Inferior process has crashed.</source> + <translation>Дочерний процеÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»ÑÑ ÐºÑ€Ð°Ñ…Ð¾Ð¼.</translation> + </message> + <message> + <source>Failed to communicate with the inferior process.</source> + <translation>Ðе удалоÑÑŒ ÑвÑзатьÑÑ Ñ Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ð¼ процеÑÑом.</translation> + </message> + <message> + <source>An unknwon error has occurred.</source> + <translation>Возникла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°.</translation> + </message> + <message> + <source>Failed to upload debug token: </source> + <translation>Ðе удалоÑÑŒ отправить токен отладки: </translation> + </message> + <message> + <source>No route to host.</source> + <translation>ОтÑутÑтвует маршрут к узлу.</translation> + </message> + <message> + <source>Authentication failed.</source> + <translation>Ðе удалоÑÑŒ авторизоватьÑÑ.</translation> + </message> + <message> + <source>Development mode is disabled on the device.</source> + <translation>Ðа уÑтройÑтве выключен режим разработки.</translation> + </message> + <message> + <source>An unknwon error has happened.</source> + <translation>Возникла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°.</translation> + </message> + <message> + <source>Key Generation Failed</source> + <translation>Ðе удалоÑÑŒ Ñоздать ключ</translation> + </message> + <message> + <source>Failure to Save Key File</source> + <translation>Ошибка ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° ключа</translation> + </message> + <message> + <source>Failed to create directory: '%1'.</source> + <translation>Ðе удалоÑÑŒ Ñоздать каталог: «%1».</translation> + </message> + <message> + <source>Private key file already exists: '%1'</source> + <translation>Файл закрытого ключа уже ÑущеÑтвует: «%1»</translation> + </message> + <message> + <source>Public key file already exists: '%1'</source> + <translation>Файл открытого ключа уже ÑущеÑтвует: «%1»</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerrySetupWizardDevicePage</name> + <message> + <source>WizardPage</source> + <translation></translation> + </message> + <message> + <source>Device name:</source> + <translation>Ðазвание уÑтройÑтва:</translation> + </message> + <message> + <source>IP or host name of the device</source> + <translation>IP или Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð° уÑтройÑтва</translation> + </message> + <message> + <source>Device IP address:</source> + <translation>IP Ð°Ð´Ñ€ÐµÑ ÑƒÑтройÑтва:</translation> + </message> + <message> + <source>Device password:</source> + <translation>Пароль уÑтройÑтва:</translation> + </message> + <message> + <source>The password you use to unlock your device</source> + <translation>Пароль, иÑпользуемый Ð´Ð»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ уÑтройÑтва</translation> + </message> + <message> + <source>Physical device</source> + <translation>ФизичеÑкое уÑтройÑтво</translation> + </message> + <message> + <source>Simulator</source> + <translation>ÐмулÑтор</translation> + </message> + <message> + <source>Configure BlackBerry Device Connection</source> + <translation>ÐаÑтроить подключение уÑтройÑтва BlackBerry</translation> + </message> + <message> + <source>BlackBerry Device</source> + <translation>УÑтройÑтво BlackBerry</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerrySetupWizardFinishPage</name> + <message> + <source>WizardPage</source> + <translation></translation> + </message> + <message> + <source>Status</source> + <translation>СоÑтоÑние</translation> + </message> + <message> + <source>Your environment is ready to be configured.</source> + <translation>Ваша Ñреда готова Ð´Ð»Ñ Ð½Ð°Ñтройки.</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerrySetupWizardKeysPage</name> + <message> + <source>WizardPage</source> + <translation></translation> + </message> + <message> + <source><html><head/><body><p><span style=" font-weight:600;">Obtaining keys</span></p><p>You will need to order a pair of CSJ files from BlackBerry, by <a href="https://www.blackberry.com/SignedKeys/codesigning.html"><span style=" text-decoration: underline; color:#004f69;">visiting this page.</span></a></p></body></html></source> + <translation><html><head/><body><p><span style=" font-weight:600;">Получение ключей</span></p><p>Вам необходимо заказать пару файлов CSJ у BlackBerry путём <a href="https://www.blackberry.com/SignedKeys/codesigning.html"><span style=" text-decoration: underline; color:#004f69;">поÑÐµÑ‰ÐµÐ½Ð¸Ñ Ñтой Ñтраницы.</span></a></p></body></html></translation> + </message> + <message> + <source>PBDT CSJ file:</source> + <translation>Файл PBDT CSJ:</translation> + </message> + <message> + <source>RDK CSJ file:</source> + <translation>Файл RDK CSJ:</translation> + </message> + <message> + <source>CSJ PIN:</source> + <translation>CSJ PIN:</translation> + </message> + <message> + <source>The PIN you provided on the key request website</source> + <translation>PIN, указанный на Ñайте запроÑа ключа</translation> + </message> + <message> + <source>Password:</source> + <translation>Пароль:</translation> + </message> + <message> + <source>The password that will be used to access your keys and CSK files</source> + <translation>Пароль Ð´Ð»Ñ Ð´Ð¾Ñтупа к ключам и файлам CSK</translation> + </message> + <message> + <source>Confirm password:</source> + <translation>Повтор паролÑ:</translation> + </message> + <message> + <source>Status</source> + <translation>СоÑтоÑние</translation> + </message> + <message> + <source>Register Signing Keys</source> + <translation>РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ†Ð¸Ñ„Ñ€Ð¾Ð²Ð¾Ð¹ подпиÑи</translation> + </message> + <message> + <source>Passwords do not match.</source> + <translation>Пароли не Ñовпадают.</translation> + </message> + <message> + <source>Qt Creator</source> + <translation>Qt Creator</translation> + </message> + <message> + <source>This wizard will be closed and you will be taken to the BlackBerry key request web page. Do you want to continue?</source> + <translation>ПоÑле Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð¼Ð°Ñтера, вы будете перенаправлены на Ñайт запроÑа ключей BlackBerry. Продолжить?</translation> + </message> + <message> + <source>Browse CSJ File</source> + <translation>Выбор файла CSJ</translation> + </message> + <message> + <source>CSJ files (*.csj)</source> + <translation>Файлы CSJ (*.csj)</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerrySetupWizardNdkPage</name> + <message> + <source>Configure the NDK Path</source> + <translation>ÐаÑтройка пути к NDK</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerrySetupWizardWelcomePage</name> + <message> + <source>Welcome to the BlackBerry Development Environment Setup Wizard. +This wizard will guide you through the essential steps to deploy a ready-to-go development environment for BlackBerry 10 devices.</source> + <translation>Добро пожаловать в маÑтер наÑтройки Ñреды разработки BlackBerry. +Ðтот маÑтер проведёт через вÑе Ñтапы наÑтройки полноÑтью готовой Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñреды разработки Ð´Ð»Ñ ÑƒÑтройÑтв на BlackBerry 10.</translation> + </message> + <message> + <source>BlackBerry Development Environment Setup</source> + <translation>ÐаÑтройка Ñреды разработки BlackBerry</translation> + </message> +</context> +<context> + <name>Qnx::Internal::BlackBerrySigningPasswordsDialog</name> + <message> + <source>Package signing passwords</source> + <translation>Пароли подпиÑÑ‹Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð°</translation> + </message> + <message> + <source>CSK password:</source> + <translation>Пароль CSK:</translation> + </message> + <message> + <source>Keystore password:</source> + <translation>Пароль хранилища:</translation> </message> </context> <context> @@ -26299,8 +27947,12 @@ Do you want to add it to the project?</source> <translation>Файл опиÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ (BlackBerry)</translation> </message> <message> - <source>Could not add mime-type for bar-descriptor.xml editor</source> - <translation>Ðе удалоÑÑŒ добавить MIME-тип Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð° bar-descriptor.xml</translation> + <source>Could not add mime-type for bar-descriptor.xml editor.</source> + <translation>Ðе удалоÑÑŒ добавить MIME-тип Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð° bar-descriptor.xml.</translation> + </message> + <message> + <source>Bar Descriptor</source> + <translation>ОпиÑание панели</translation> </message> </context> <context> @@ -26310,6 +27962,30 @@ Do you want to add it to the project?</source> <translation>Путь к SDK не указан</translation> </message> </context> +<context> + <name>Qnx::Internal::QnxAbstractRunSupport</name> + <message> + <source>Not enough free ports on device for debugging.</source> + <translation>ÐедоÑтаточно Ñвободных портов на уÑтройÑтве Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸.</translation> + </message> +</context> +<context> + <name>Qnx::Internal::QnxAnalyzeSupport</name> + <message> + <source>Preparing remote side... +</source> + <translation>Подготовка удалённой Ñтороны... +</translation> + </message> + <message> + <source>The %1 process closed unexpectedly.</source> + <translation>ПроцеÑÑ %1 неожиданно завершилÑÑ.</translation> + </message> + <message> + <source>Initial setup failed: %1</source> + <translation>Ðе удалоÑÑŒ выполнить начальную наÑтройку: %1</translation> + </message> +</context> <context> <name>Qnx::Internal::QnxBaseQtConfigWidget</name> <message> @@ -26369,6 +28045,34 @@ Do you want to add it to the project?</source> <translation>УÑтройÑтво QNX</translation> </message> </context> +<context> + <name>Qnx::Internal::QnxDeviceTester</name> + <message> + <source>%1 found. +</source> + <translation>Ðайдено: %1.</translation> + </message> + <message> + <source>%1 not found. +</source> + <translation>Ðе найдено: %1.</translation> + </message> + <message> + <source>An error occurred checking for %1. +</source> + <translation>Возникла ошибка при проверке %1.</translation> + </message> + <message> + <source>SSH connection error: %1 +</source> + <translation>Ошибка SSH подключениÑ: %1 +</translation> + </message> + <message> + <source>Checking for %1...</source> + <translation>ПроверÑетÑÑ %1...</translation> + </message> +</context> <context> <name>Qnx::Internal::QnxQtVersion</name> <message> @@ -26402,8 +28106,8 @@ Do you want to add it to the project?</source> <context> <name>Qnx::Internal::QnxRunControlFactory</name> <message> - <source>Run on remote QNX device</source> - <translation>ЗапуÑк на удалённом QNX-уÑтройÑтве</translation> + <source>No analyzer tool selected.</source> + <translation>ИнÑтрумент анализа не выбран.</translation> </message> </context> <context> @@ -27406,18 +29110,6 @@ Adds the library and include paths to the .pro file.</source> <source>The .pro file '%1' is currently being parsed.</source> <translation>Идёт обработка файла .pro: «%1».</translation> </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> - <message> - <source>Build Environment</source> - <translation>Среда Ñборки</translation> - </message> <message> <source>Qt Run Configuration</source> <translation>ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Qt</translation> @@ -27445,26 +29137,6 @@ Adds the library and include paths to the .pro file.</source> <source>Check this option to run the application on a Qt Virtual Framebuffer.</source> <translation>Включите, Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Qt Virtual Framebuffer.</translation> </message> - <message> - <source>Run Environment</source> - <translation>Среда выполнениÑ</translation> - </message> - <message> - <source>Base environment for this run configuration:</source> - <translation>Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñреда данной конфигурации выполнениÑ:</translation> - </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> - <message> - <source>Build Environment</source> - <translation>Среда Ñборки</translation> - </message> <message> <source>Arguments:</source> <translation>Параметры:</translation> @@ -27510,34 +29182,6 @@ Adds the library and include paths to the .pro file.</source> <translation>Создание проекта Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Qt Quick 1, который может Ñодержать код как QML, так и на С++, а так же включает QDeclarativeView. </translation> - </message> - <message> - <source>Qt Quick 1 Application (Built-in Elements)</source> - <translation>Приложение Qt Quick 1 (вÑтроенные Ñлементы)</translation> - </message> - <message> - <source>The built-in elements in the QtQuick 1 namespace allow you to write cross-platform applications with a custom look and feel. - -Requires <b>Qt 4.7.0</b> or newer.</source> - <translation>Ð’Ñтроенные Ñлементы проÑтранÑтва имён QtQuick 1 позволÑÑŽÑ‚ Ñоздавать кроÑÑ-платформенные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¾Ñобым внешним видом и Ñргономикой. -<br/> -ТребуетÑÑ <b>Qt</b> верÑии <b>4.7.0</b> и выше.</translation> - </message> - <message> - <source>Qt Quick 2 Application (Built-in Elements)</source> - <translation>Приложение Qt Quick 2 (вÑтроенные Ñлементы)</translation> - </message> - <message> - <source>Creates a Qt Quick 2 application project that can contain both QML and C++ code and includes a QQuickView. - -The built-in elements in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel. - -Requires <b>Qt 5.0</b> or newer.</source> - <translation>Создание проекта Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Qt Quick 2, который может одновременно Ñодержать код С++ и QML, а также включать QQuickView. - -Ð’Ñтроенные Ñлементы проÑтранÑтва имён QtQuick 2 позволÑÑŽÑ‚ Ñоздавать кроÑÑ-платформенные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¾Ñобым внешним видом и Ñргономикой. - -ТребуетÑÑ <b>Qt</b> верÑии <b>5.0</b> и выше.</translation> </message> <message> <source>Qt Quick 1 Application for MeeGo Harmattan</source> @@ -27566,6 +29210,38 @@ Requires <b>Qt 4.7.4</b> or newer, and the component set installed f <translation>Ðлементы Qt Quick Ð´Ð»Ñ MeeGo Harmattan - Ñто набор готовых Ñлементов разработанных Ñ ÑƒÑ‡Ñ‘Ñ‚Ð¾Ð¼ оÑобенноÑтей внешнего вида приложений Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹ MeeGo/Harmattan. <br/> ТребуетÑÑ <b>Qt</b> верÑии не ниже <b>4.7.4</b> и уÑтановленный набор Ñлементов Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Qt.</translation> + </message> + <message> + <source>Creates a Qt Quick 2 application project that can contain both QML and C++ code and includes a QQuickView. + +</source> + <translation>Создание проекта Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Qt Quick 2, который может Ñодержать код как QML, так и на С++, а так же включает QQuickView. + +</translation> + </message> + <message> + <source>Qt Quick 1 Application (Built-in Types)</source> + <translation>Приложение Qt Quick 1 (вÑтроенные типы)</translation> + </message> + <message> + <source>The built-in QML types in the QtQuick 1 namespace allow you to write cross-platform applications with a custom look and feel. + +Requires <b>Qt 4.7.0</b> or newer.</source> + <translation>Ð’Ñтроенные типы QML из проÑтранÑтва имён QtQuick 1 позволÑÑŽÑ‚ Ñоздавать кроÑÑ-платформенные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¾Ñобым внешним видом и Ñргономикой. +<br/> +ТребуетÑÑ <b>Qt</b> верÑии <b>4.7.0</b> и выше.</translation> + </message> + <message> + <source>Qt Quick 2 Application (Built-in Types)</source> + <translation>Приложение Qt Quick 2 (вÑтроенные типы)</translation> + </message> + <message> + <source>The built-in QML types in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel. + +Requires <b>Qt 5.0</b> or newer.</source> + <translation>Ð’Ñтроенные типы QML из проÑтранÑтва имён QtQuick 2 позволÑÑŽÑ‚ Ñоздавать кроÑÑ-платформенные Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¾Ñобым внешним видом и Ñргономикой. +<br/> +ТребуетÑÑ <b>Qt</b> верÑии <b>5.0</b> и выше.</translation> </message> <message> <source>Creates a deployable Qt Quick application from existing QML files. All files and directories that reside in the same directory as the main .qml file are deployed. You can modify the contents of the directory any time before deploying. @@ -27809,22 +29485,6 @@ Requires <b>Qt 4.7.0</b> or newer.</source> <source>Configuration unchanged, skipping qmake step.</source> <translation>ÐаÑтройки не изменилиÑÑŒ, Ñтап qmake пропуÑкаетÑÑ.</translation> </message> - <message> - <source>No Qt version.</source> - <translation>Профиль Qt не задан.</translation> - </message> - <message> - <source>Invalid Qt version.</source> - <translation>Ðекорректный профиль Qt.</translation> - </message> - <message> - <source>Requires Qt 4.7.1 or newer.</source> - <translation>ТребуетÑÑ Qt верÑии не ниже 4.7.1.</translation> - </message> - <message> - <source>Library not available. <a href='compile'>Compile...</a></source> - <translation>Библиотека отÑутÑтвует. <a href='compile'>Собрать...</a></translation> - </message> </context> <context> <name>Qt4ProjectManager::QMakeStepConfigWidget</name> @@ -27836,10 +29496,6 @@ Requires <b>Qt 4.7.0</b> or newer.</source> <source>The option will only take effect if the project is recompiled. Do you want to recompile now?</source> <translation>Ðтот параметр вÑтупит в Ñилу только поÑле перекомпилÑции проекта. Перекомпилировать его?</translation> </message> - <message> - <source>Building helpers</source> - <translation>Сборка помощников</translation> - </message> <message> <source><b>qmake:</b> No Qt version set. Cannot run qmake.</source> <translation><b>qmake:</b> Профиль Qt не выбран. Ðевозможно запуÑтить qmake.</translation> @@ -27996,16 +29652,12 @@ Reason: %2</source> <translation>Обновление Ñозданных файлов</translation> </message> <message> - <source>The following files are either outdated or have been modified:<br><br>%1<br><br>Do you want Qt Creator to update the files? Any changes will be lost.</source> - <translation>Следующие файлы уÑтарели или были изменены:<br><br>%1<br><br>Желаете, чтобы Qt Creator обновил их? При Ñтом вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ потерÑны.</translation> - </message> - <message> - <source>Failed opening project '%1': Project file does not exist</source> - <translation>Ðе удалоÑÑŒ открыть проект «%1»: файл проекта отÑутÑтвует</translation> + <source>In project<br><br>%1<br><br>The following files are either outdated or have been modified:<br><br>%2<br><br>Do you want Qt Creator to update the files? Any changes will be lost.</source> + <translation>Ð’ проекте<br><br>%1<br><br>Следующие файлы или уÑтарели, или были изменены:<br><br>%2<br><br>Желаете, чтобы Qt Creator обновил их? Ð’Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ утерÑны.</translation> </message> <message> - <source>Failed opening project '%1': Project already open</source> - <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект уже открыт</translation> + <source>Failed opening project '%1': Project is not a file</source> + <translation>Ðе удалоÑÑŒ открыть проект «%1»: проект не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼</translation> </message> <message> <source>QMake</source> @@ -28038,22 +29690,6 @@ Reason: %2</source> <source>Other files</source> <translation>Другие файлы</translation> </message> - <message> - <source>Cannot Open File</source> - <translation>Ðе удалоÑÑŒ открыть файл</translation> - </message> - <message> - <source>Cannot open the file for editing with VCS.</source> - <translation>Ðе удалоÑÑŒ открыть файл Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ VCS.</translation> - </message> - <message> - <source>Cannot Set Permissions</source> - <translation>Ðе удалоÑÑŒ задать права доÑтупа</translation> - </message> - <message> - <source>Cannot set permissions to writable.</source> - <translation>Ðе удалоÑÑŒ задать права доÑтупа на запиÑÑŒ.</translation> - </message> <message> <source>There are unsaved changes for project file %1.</source> <translation>ИмеютÑÑ Ð½ÐµÑохранённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файле проекта %1.</translation> @@ -28370,18 +30006,6 @@ cannot be found in the path.</source> %1 в Ñтандартных путÑÑ….</translation> </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> - <message> - <source>Build Environment</source> - <translation>Среда Ñборки</translation> - </message> <message> <source>Custom Executable</source> <translation>ОÑÐ¾Ð±Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°</translation> @@ -28401,8 +30025,8 @@ cannot be found in the path.</source> <context> <name>QtSupport::Internal::CustomExecutableConfigurationWidget</name> <message> - <source>Command:</source> - <translation>Команда:</translation> + <source>Executable:</source> + <translation>Программа:</translation> </message> <message> <source>Arguments:</source> @@ -28416,26 +30040,6 @@ cannot be found in the path.</source> <source>Run in &terminal</source> <translation>ЗапуÑкать в &терминале</translation> </message> - <message> - <source>Run Environment</source> - <translation>Среда выполнениÑ</translation> - </message> - <message> - <source>Base environment for this run configuration:</source> - <translation>Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñреда данной конфигурации выполнениÑ:</translation> - </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> - <message> - <source>Build Environment</source> - <translation>Среда Ñборки</translation> - </message> </context> <context> <name>QtSupport::Internal::DebuggingHelper</name> @@ -28710,13 +30314,6 @@ cannot be found in the path.</source> <translation>Добавить...</translation> </message> </context> -<context> - <name>QtSupport::Internal::QtVersionsModel</name> - <message> - <source>All Versions</source> - <translation>Ð’Ñе верÑии</translation> - </message> -</context> <context> <name>QtSupport::Internal::ShowBuildLog</name> <message> @@ -28972,6 +30569,13 @@ cannot be found in the path.</source> <translation>Рамка</translation> </message> </context> +<context> + <name>RefactoringFile::apply</name> + <message> + <source>Refactoring cannot be applied.</source> + <translation>Ðевозможно применить рефакторинг.</translation> + </message> +</context> <context> <name>RemoteLinux</name> <message> @@ -29044,6 +30648,13 @@ Is the device connected and set up for network access?</source> <translation>Ðе удалоÑÑŒ уÑтановить пакет.</translation> </message> </context> +<context> + <name>RemoteLinux::AbstractRemoteLinuxRunSupport</name> + <message> + <source>Not enough free ports on device for debugging.</source> + <translation>ÐедоÑтаточно Ñвободных портов на уÑтройÑтве Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸.</translation> + </message> +</context> <context> <name>RemoteLinux::AbstractUploadAndInstallPackageService</name> <message> @@ -29232,6 +30843,10 @@ In addition, device connectivity will be tested.</source> <source>Connection Data</source> <translation>Данные ÑоединениÑ</translation> </message> + <message> + <source>Choose a Private Key File</source> + <translation>Выберите Ñекретный ключ</translation> + </message> <message> <source>Generic Linux Device</source> <translation>Обычное Linux-уÑтройÑтво</translation> @@ -29451,8 +31066,16 @@ Remote stderr was: '%1'</source> <context> <name>RemoteLinux::Internal::RemoteLinuxRunControlFactory</name> <message> - <source>Run on remote Linux device</source> - <translation>ЗапуÑк на удалённом Linux-уÑтройÑтве</translation> + <source>Cannot debug: Kit has no device.</source> + <translation>Отладка невозможна: у комплекта нет уÑтройÑтва.</translation> + </message> + <message> + <source>Cannot debug: Not enough free ports available.</source> + <translation>Отладка невозможна: недоÑтаточно Ñвободных портов.</translation> + </message> + <message> + <source>No analyzer tool selected.</source> + <translation>ИнÑтрумент анализа не выбран.</translation> </message> </context> <context> @@ -29477,10 +31100,6 @@ Remote stderr was: '%1'</source> <source>Initial setup failed: %1</source> <translation>Ðе удалоÑÑŒ выполнить начальную наÑтройку: %1</translation> </message> - <message> - <source>Not enough free ports on device for debugging.</source> - <translation>ÐедоÑтаточно Ñвободных портов на уÑтройÑтве Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸.</translation> - </message> </context> <context> <name>RemoteLinux::LinuxDeviceTestDialog</name> @@ -29520,6 +31139,22 @@ Remote stderr was: '%1'</source> <translation>Закрыть</translation> </message> </context> +<context> + <name>RemoteLinux::RemoteLinuxAnalyzeSupport</name> + <message> + <source>Checking available ports... +</source> + <translation>Проверка доÑтупных портов...</translation> + </message> + <message> + <source>Failure running remote process.</source> + <translation>Ошибка работы внешнего процеÑÑа.</translation> + </message> + <message> + <source>Initial setup failed: %1</source> + <translation>Ðе удалоÑÑŒ выполнить начальную наÑтройку: %1</translation> + </message> +</context> <context> <name>RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceService</name> <message> @@ -29600,6 +31235,36 @@ Remote stderr was: '%1'</source> <translation>Внешний каталог</translation> </message> </context> +<context> + <name>RemoteLinux::RemoteLinuxEnvironmentAspect</name> + <message> + <source>Clean Environment</source> + <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> + </message> + <message> + <source>System Environment</source> + <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> + </message> +</context> +<context> + <name>RemoteLinux::RemoteLinuxEnvironmentAspectWidget</name> + <message> + <source>Fetch Device Environment</source> + <translation>Загрузить Ñреду уÑтройÑтва</translation> + </message> + <message> + <source>Cancel Fetch Operation</source> + <translation>Прервать операцию загрузки</translation> + </message> + <message> + <source>Device Error</source> + <translation>Ошибка уÑтройÑтва</translation> + </message> + <message> + <source>Fetching environment failed: %1</source> + <translation>Ðе удалоÑÑŒ загрузить окружение: %1</translation> + </message> +</context> <context> <name>RemoteLinux::RemoteLinuxRunConfiguration</name> <message> @@ -29616,21 +31281,9 @@ Remote stderr was: '%1'</source> <extracomment>Remote Linux run configuration default display name</extracomment> <translation>ЗапуÑк на внешнем уÑтройÑтве</translation> </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> </context> <context> <name>RemoteLinux::RemoteLinuxRunConfigurationWidget</name> - <message> - <source>Fetch Device Environment</source> - <translation>Загрузить Ñреду уÑтройÑтва</translation> - </message> <message> <source>Executable on host:</source> <translation>Программа на машине:</translation> @@ -29659,18 +31312,6 @@ Remote stderr was: '%1'</source> <source>Working directory:</source> <translation>Рабочий каталог:</translation> </message> - <message> - <source>Base environment for this run configuration:</source> - <translation>Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñреда данной конфигурации выполнениÑ:</translation> - </message> - <message> - <source>Clean Environment</source> - <translation>ЧиÑÑ‚Ð°Ñ Ñреда</translation> - </message> - <message> - <source>System Environment</source> - <translation>СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ñреда</translation> - </message> <message> <source>Unknown</source> <translation>ÐеизвеÑтнаÑ</translation> @@ -29679,18 +31320,6 @@ Remote stderr was: '%1'</source> <source>Remote path not set</source> <translation>Ðе задан внешний путь</translation> </message> - <message> - <source>Cancel Fetch Operation</source> - <translation>Прервать операцию загрузки</translation> - </message> - <message> - <source>Device Error</source> - <translation>Ошибка уÑтройÑтва</translation> - </message> - <message> - <source>Fetching environment failed: %1</source> - <translation>Ðе удалоÑÑŒ загрузить окружение: %1</translation> - </message> </context> <context> <name>RemoteLinux::SshKeyDeployer</name> @@ -29974,6 +31603,13 @@ Remote stderr was: '%1'</source> <translation>%1 (Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÑеÑÑиÑ)</translation> </message> </context> +<context> + <name>ShowEditor</name> + <message> + <source>Show Editor</source> + <translation>Открыть редактор</translation> + </message> +</context> <context> <name>SshConnection</name> <message> @@ -30560,6 +32196,10 @@ with a password, which you can enter below.</source> <source>List of comma separated wildcard filters</source> <translation>СпиÑок маÑок, разделённых запÑтой</translation> </message> + <message> + <source>Aborting replace.</source> + <translation>Прерывание замены.</translation> + </message> </context> <context> <name>TextEditor::BaseTextDocument</name> @@ -31201,6 +32841,10 @@ The following encodings are likely to fit:</source> <source>Always open links in another split</source> <translation>Ð’Ñегда открывать ÑÑылки в отдельной панели</translation> </message> + <message> + <source>Display file encoding</source> + <translation>Показывать кодировку файла</translation> + </message> </context> <context> <name>TextEditor::Internal::FindInCurrentFile</name> @@ -31317,10 +32961,18 @@ The following encodings are likely to fit:</source> </context> <context> <name>TextEditor::Internal::LineNumberFilter</name> + <message> + <source>Line %1, Column %2</source> + <translation>Строка %1, Ñтолбец %2</translation> + </message> <message> <source>Line %1</source> <translation>Строка %1</translation> </message> + <message> + <source>Column %1</source> + <translation>Столбец %1</translation> + </message> <message> <source>Line in Current Document</source> <translation>Строка в текущем документе</translation> @@ -31628,6 +33280,14 @@ Influences the indentation of continuation lines. <source>With Regular Indent</source> <translation>ОтÑтупами</translation> </message> + <message> + <source>The text editor indentation setting is used for non-code files only. See the C++ and Qt Quick coding style settings to configure indentation for code files.</source> + <translation>ÐаÑтройки отÑтупов текÑтового редактора не иÑпользуютÑÑ Ð´Ð»Ñ ÐºÐ¾Ð´Ð° программ. Откройте наÑтройки Ñтилей C++ и Qt Quick Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ñтупов в иÑходных текÑтах.</translation> + </message> + <message> + <source><i>Code indentation is configured in <a href="C++">C++</a> and <a href="QtQuick">Qt Quick</a> settings.</i></source> + <translation><i>ОтÑтупы в коде задаютÑÑ Ð² наÑтройках <a href="C++">C++</a> и <a href="QtQuick">Qt Quick</a>.</i></translation> + </message> </context> <context> <name>TextEditor::Internal::TextEditorPlugin</name> @@ -31702,6 +33362,10 @@ Influences the indentation of continuation lines. <source>Create Getter and Setter Member Functions</source> <translation>Создать методы Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸ уÑтановки значениÑ</translation> </message> + <message> + <source>Generate Missing Q_PROPERTY Members...</source> + <translation>Создание отÑутÑтвующих членов Q_PROPERTY...</translation> + </message> </context> <context> <name>TextEditor::TextEditorActionHandler</name> @@ -32006,6 +33670,14 @@ Influences the indentation of continuation lines. <source>Follow Symbol Under Cursor in Next Split</source> <translation>Перейти к Ñимволу под курÑором в Ñледующей панели</translation> </message> + <message> + <source>Meta+E, F2</source> + <translation>Meta+E, F2</translation> + </message> + <message> + <source>Ctrl+E, F2</source> + <translation>Ctrl+E, F2</translation> + </message> <message> <source>Jump To File Under Cursor</source> <translation>Перейти к файлу под курÑором</translation> @@ -32095,8 +33767,8 @@ Influences the indentation of continuation lines. <translation>Перейти к Ñледующему Ñлову Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸ÐµÐ¼ Ñ ÑƒÑ‡Ñ‘Ñ‚Ð¾Ð¼ Верблюжего РегиÑтра</translation> </message> <message> - <source><line number></source> - <translation><номер Ñтроки></translation> + <source><line>:<column></source> + <translation><Ñтрока>:<Ñтолбец></translation> </message> </context> <context> @@ -32459,6 +34131,54 @@ Will not be applied to whitespace in comments and strings.</source> <source>Location in the files where the difference is (in diff editor).</source> <translation>РаÑположение в файлах, где еÑÑ‚ÑŒ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (в редакторе изменений).</translation> </message> + <message> + <source>Diff File Line</source> + <translation>Сравнение: Ñтрока файла</translation> + </message> + <message> + <source>Applied to lines with file information in differences (in side-by-side diff editor).</source> + <translation>ПрименÑетÑÑ Ðº Ñтрокам Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ о Ñравниваемых файлах (при двуÑтороннем Ñравнении).</translation> + </message> + <message> + <source>Diff Context Line</source> + <translation>Сравнение: контекÑÑ‚Ð½Ð°Ñ Ñтрока</translation> + </message> + <message> + <source>Applied to lines describing hidden context in differences (in side-by-side diff editor).</source> + <translation>ПрименÑетÑÑ Ðº Ñтрокам Ñ Ð¾Ð¿Ð¸Ñанием контекÑта отличий (при двуÑтороннем Ñравнении).</translation> + </message> + <message> + <source>Diff Source Line</source> + <translation>Сравнение: иÑÑ…Ð¾Ð´Ð½Ð°Ñ Ñтрока</translation> + </message> + <message> + <source>Applied to source lines with changes in differences (in side-by-side diff editor).</source> + <translation>ПрименÑетÑÑ Ðº изменённым Ñтрокам иÑходного файла (при двуÑтороннем Ñравнении).</translation> + </message> + <message> + <source>Diff Source Character</source> + <translation>Сравнение: иÑходный Ñимвол</translation> + </message> + <message> + <source>Applied to removed characters in differences (in side-by-side diff editor).</source> + <translation>ПрименÑетÑÑ Ðº удалённым Ñимволам (при двуÑтороннем Ñравнении).</translation> + </message> + <message> + <source>Diff Destination Line</source> + <translation>Сравнение: Ð¸Ñ‚Ð¾Ð³Ð¾Ð²Ð°Ñ Ñтрока</translation> + </message> + <message> + <source>Applied to destination lines with changes in differences (in side-by-side diff editor).</source> + <translation>ПрименÑетÑÑ Ðº изменённым Ñтрокам итогового файла (при двуÑтороннем Ñравнении).</translation> + </message> + <message> + <source>Diff Destination Character</source> + <translation>Сравнение: итоговый Ñимвол</translation> + </message> + <message> + <source>Applied to added characters in differences (in side-by-side diff editor).</source> + <translation>ПрименÑетÑÑ Ðº добавленным Ñимволам (при двуÑтороннем Ñравнении).</translation> + </message> <message> <source>Behavior</source> <translation>Поведение</translation> @@ -32660,10 +34380,18 @@ Will not be applied to whitespace in comments and strings.</source> <source>To-Do Entries</source> <translation>ЗапиÑи To-Do</translation> </message> + <message> + <source>Current File</source> + <translation>Текущий файл</translation> + </message> <message> <source>Scan in the current opened file</source> <translation>ПоиÑк по текущему открытому файлу</translation> </message> + <message> + <source>Whole Project</source> + <translation>ВеÑÑŒ проект</translation> + </message> <message> <source>Scan in the whole project</source> <translation>ПоиÑк по вÑему проекту</translation> @@ -32861,8 +34589,8 @@ Will not be applied to whitespace in comments and strings.</source> <translation>Ð¢ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, возможно, не ÑвлÑетÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ оболочки.</translation> </message> <message> - <source>Cannot start the terminal emulator '%1'.</source> - <translation>Ðе удалоÑÑŒ запуÑтить ÑмулÑтор терминала «%1».</translation> + <source>Cannot start the terminal emulator '%1', change the setting in the Environment options.</source> + <translation>Ðе удалоÑÑŒ запуÑтить ÑмулÑтор терминала «%1», Ñмените наÑтройки в параметрах Ñреды.</translation> </message> <message> <source>Cannot create socket '%1': %2</source> @@ -33510,12 +35238,16 @@ Will not be applied to whitespace in comments and strings.</source> <translation>Редактор изменений Git</translation> </message> <message> - <source>Git Submit Editor</source> + <source>Git Commit Editor</source> <translation>Редактор фикÑаций Git</translation> </message> <message> - <source>Mercurial Command Log Editor</source> - <translation>Редактор журнала команд Mercurial</translation> + <source>Git Rebase Editor</source> + <translation>Редактор перебазирований Git</translation> + </message> + <message> + <source>Git Submit Editor</source> + <translation>Редактор фикÑаций Git</translation> </message> <message> <source>Mercurial File Log Editor</source> @@ -33537,10 +35269,6 @@ Will not be applied to whitespace in comments and strings.</source> <source>Perforce.SubmitEditor</source> <translation>Редактор фикÑаций Perforce</translation> </message> - <message> - <source>Perforce CommandLog Editor</source> - <translation>Редактор журнала команд Perforce</translation> - </message> <message> <source>Perforce Log Editor</source> <translation>Редактор журнала Perforce</translation> @@ -33557,10 +35285,6 @@ Will not be applied to whitespace in comments and strings.</source> <source>Subversion Commit Editor</source> <translation>Редактор фикÑаций Subversion</translation> </message> - <message> - <source>Subversion Command Log Editor</source> - <translation>Редактор журнала команд Subversion</translation> - </message> <message> <source>Subversion File Log Editor</source> <translation>Редактор журнала файлов Subversion</translation> @@ -33573,10 +35297,6 @@ Will not be applied to whitespace in comments and strings.</source> <source>Subversion Diff Editor</source> <translation>Редактор изменений Subversion</translation> </message> - <message> - <source>Bazaar Command Log Editor</source> - <translation>Редактор журнала команд Bazaar</translation> - </message> <message> <source>Bazaar File Log Editor</source> <translation>Редактор журнала файлов Bazaar</translation> @@ -33597,10 +35317,6 @@ Will not be applied to whitespace in comments and strings.</source> <source>ClearCase Check In Editor</source> <translation>Редактор региÑтраций ClearCase</translation> </message> - <message> - <source>ClearCase Command Log Editor</source> - <translation>Редактор журнала команд ClearCase</translation> - </message> <message> <source>ClearCase File Log Editor</source> <translation>Редактор журнала файлов ClearCase</translation> @@ -34610,6 +36326,10 @@ With cache simulation, further event counters are enabled: <source>Clean Repository</source> <translation>ОчиÑтить хранилище</translation> </message> + <message> + <source>Select All</source> + <translation>Выбрать вÑе</translation> + </message> </context> <context> <name>VcsBase::Internal::CommonSettingsPage</name> @@ -35101,10 +36821,6 @@ should a repository require SSH-authentication (see documentation on SSH and the <source>Welcome</source> <translation>Ðачало</translation> </message> - <message> - <source>New Project</source> - <translation>Ðовый проект</translation> - </message> </context> <context> <name>WidgetPluginManager</name> @@ -35129,6 +36845,17 @@ should a repository require SSH-authentication (see documentation on SSH and the <translation>Файл «%1» не ÑвлÑетÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¼ QmlDesigner.</translation> </message> </context> +<context> + <name>WindowPane</name> + <message> + <source>Window</source> + <translation>Окно</translation> + </message> + <message> + <source>Title</source> + <translation>Заголовок</translation> + </message> +</context> <context> <name>ZeroConf</name> <message> diff --git a/src/libs/cplusplus/CppRewriter.cpp b/src/libs/cplusplus/CppRewriter.cpp index 008249344c2c65be573b04a7eb53280556f5b50b..65191194e2636bb03e72c2e7259ae817e4b88f4c 100644 --- a/src/libs/cplusplus/CppRewriter.cpp +++ b/src/libs/cplusplus/CppRewriter.cpp @@ -527,6 +527,7 @@ CPLUSPLUS_EXPORT QString simplifySTLType(const QString &typeIn) if (type.startsWith(QLatin1String("struct "))) type.remove(0, 7); + type.replace(QLatin1String("std::__1::"), QLatin1String("std::")); type.replace(QLatin1Char('*'), QLatin1Char('@')); for (int i = 0; i < 10; ++i) { diff --git a/src/libs/ssh/sshkeygenerator.cpp b/src/libs/ssh/sshkeygenerator.cpp index 736cc04ff7d81689b6ae7b8cb813078d6fec181a..992cef16071745bdb2387b0971ccd45ba50ac209 100644 --- a/src/libs/ssh/sshkeygenerator.cpp +++ b/src/libs/ssh/sshkeygenerator.cpp @@ -151,6 +151,10 @@ void SshKeyGenerator::generateOpenSslPrivateKeyString(const KeyPtr &key) = key.dynamicCast<RSA_PrivateKey>(); params << rsaKey->get_n() << rsaKey->get_e() << rsaKey->get_d() << rsaKey->get_p() << rsaKey->get_q(); + const BigInt dmp1 = rsaKey->get_d() % (rsaKey->get_p() - 1); + const BigInt dmq1 = rsaKey->get_d() % (rsaKey->get_q() - 1); + const BigInt iqmp = inverse_mod(rsaKey->get_q(), rsaKey->get_p()); + params << dmp1 << dmq1 << iqmp; keyId = SshCapabilities::PubKeyRsa; label = "RSA PRIVATE KEY"; } else { diff --git a/src/libs/utils/persistentsettings.cpp b/src/libs/utils/persistentsettings.cpp index 406088032483b04bcf98e167eb43200adb5e3e1d..42b04169d76cb4aacbc649d0b397e875f86a4556 100644 --- a/src/libs/utils/persistentsettings.cpp +++ b/src/libs/utils/persistentsettings.cpp @@ -36,9 +36,29 @@ #include <QXmlStreamReader> #include <QXmlStreamWriter> #include <QDateTime> +#include <QTextStream> +#include <QRegExp> +#include <QRect> #include <utils/qtcassert.h> +// Read and write rectangle in X11 resource syntax "12x12+4+3" +static QString rectangleToString(const QRect &r) +{ + QString result; + QTextStream(&result) << r.width() << 'x' << r.height() << forcesign << r.x() << r.y(); + return result; +} + +static QRect stringToRectangle(const QString &v) +{ + static QRegExp pattern(QLatin1String("(\\d+)x(\\d+)([-+]\\d+)([-+]\\d+)")); + Q_ASSERT(pattern.isValid()); + return pattern.exactMatch(v) ? + QRect(QPoint(pattern.cap(3).toInt(), pattern.cap(4).toInt()), + QSize(pattern.cap(1).toInt(), pattern.cap(2).toInt())) : + QRect(); +} /*! \class Utils::PersistentSettingsReader @@ -174,6 +194,8 @@ private: bool handleStartElement(QXmlStreamReader &r); bool handleEndElement(const QStringRef &name); + static QString formatWarning(const QXmlStreamReader &r, const QString &message); + QStack<ParseValueStackEntry> m_valueStack; QVariantMap m_result; QString m_currentVariableName; @@ -223,10 +245,16 @@ bool ParseContext::handleStartElement(QXmlStreamReader &r) const QString key = attributes.hasAttribute(keyAttribute) ? attributes.value(keyAttribute).toString() : QString(); switch (e) { - case SimpleValueElement: + case SimpleValueElement: { // This reads away the end element, so, handle end element right here. - m_valueStack.push_back(ParseValueStackEntry(readSimpleValue(r, attributes), key)); + const QVariant v = readSimpleValue(r, attributes); + if (!v.isValid()) { + qWarning() << ParseContext::formatWarning(r, QString::fromLatin1("Failed to read element \"%1\".").arg(name.toString())); + return false; + } + m_valueStack.push_back(ParseValueStackEntry(v, key)); return handleEndElement(name); + } case ListValueElement: m_valueStack.push_back(ParseValueStackEntry(QVariant::List, key)); break; @@ -256,6 +284,18 @@ bool ParseContext::handleEndElement(const QStringRef &name) return e == QtCreatorElement; } +QString ParseContext::formatWarning(const QXmlStreamReader &r, const QString &message) +{ + QString result = QLatin1String("Warning reading "); + if (const QIODevice *device = r.device()) + if (const QFile *file = qobject_cast<const QFile *>(device)) + result += QDir::toNativeSeparators(file->fileName()) + QLatin1Char(':'); + result += QString::number(r.lineNumber()); + result += QLatin1String(": "); + result += message; + return result; +} + ParseContext::Element ParseContext::element(const QStringRef &r) const { if (r == valueElement) @@ -282,6 +322,10 @@ QVariant ParseContext::readSimpleValue(QXmlStreamReader &r, const QXmlStreamAttr QTC_ASSERT(text.size() == 1, return QVariant()); return QVariant(QChar(text.at(0))); } + if (type == QLatin1String("QRect")) { + const QRect rectangle = stringToRectangle(text); + return rectangle.isValid() ? QVariant(rectangle) : QVariant(); + } QVariant value; value.setValue(text); value.convert(QVariant::nameToType(type.toLatin1().data())); @@ -361,7 +405,14 @@ static void writeVariantValue(QXmlStreamWriter &w, const Context &ctx, w.writeAttribute(ctx.typeAttribute, QLatin1String(variant.typeName())); if (!key.isEmpty()) w.writeAttribute(ctx.keyAttribute, key); - w.writeCharacters(variant.toString()); + switch (variant.type()) { + case QVariant::Rect: + w.writeCharacters(rectangleToString(variant.toRect())); + break; + default: + w.writeCharacters(variant.toString()); + break; + } w.writeEndElement(); break; } diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp index 513001de0a7b897be737df1aec1ebcc47ad4fe89..d62aa1bbb79f0e52563fdfc5abfd3b892430819a 100644 --- a/src/plugins/android/androidsettingswidget.cpp +++ b/src/plugins/android/androidsettingswidget.cpp @@ -186,8 +186,13 @@ bool AndroidSettingsWidget::checkSDK(const Utils::FileName &location) || (!androidExe.appendPath(QLatin1String("/tools/android" QTC_HOST_EXE_SUFFIX)).toFileInfo().exists() && !androidBat.appendPath(QLatin1String("/tools/android" ANDROID_BAT_SUFFIX)).toFileInfo().exists()) || !emulator.appendPath(QLatin1String("/tools/emulator" QTC_HOST_EXE_SUFFIX)).toFileInfo().exists()) { - QMessageBox::critical(this, tr("Android SDK Folder"), tr("\"%1\" does not seem to be an Android SDK top folder.").arg(location.toUserOutput())); + m_ui->sdkWarningIconLabel->setVisible(true); + m_ui->sdkWarningLabel->setVisible(true); + m_ui->sdkWarningLabel->setText(tr("\"%1\" does not seem to be an Android SDK top folder.").arg(location.toUserOutput())); return false; + } else { + m_ui->sdkWarningIconLabel->setVisible(false); + m_ui->sdkWarningLabel->setVisible(false); } return true; } diff --git a/src/plugins/android/androidsettingswidget.ui b/src/plugins/android/androidsettingswidget.ui index d1fb9f07273be639990e7ce0eabd94fd3a06d31b..4c4c1d8bd0747988d80bfc97a1a9207bf8aa78a5 100644 --- a/src/plugins/android/androidsettingswidget.ui +++ b/src/plugins/android/androidsettingswidget.ui @@ -33,7 +33,11 @@ </widget> </item> <item row="0" column="1"> - <widget class="QLineEdit" name="SDKLocationLineEdit"/> + <widget class="QLineEdit" name="SDKLocationLineEdit"> + <property name="text"> + <string/> + </property> + </widget> </item> <item row="0" column="2"> <widget class="QPushButton" name="SDKLocationPushButton"> @@ -48,7 +52,43 @@ </property> </widget> </item> - <item row="1" column="0"> + <item row="1" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_4"> + <item> + <widget class="QLabel" name="sdkWarningIconLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_warning.png</pixmap> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="sdkWarningLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string/> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="0"> <widget class="QLabel" name="NDKLocationLabel"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> @@ -64,17 +104,17 @@ </property> </widget> </item> - <item row="1" column="1"> + <item row="2" column="1"> <widget class="QLineEdit" name="NDKLocationLineEdit"/> </item> - <item row="1" column="2"> + <item row="2" column="2"> <widget class="QPushButton" name="NDKLocationPushButton"> <property name="text"> <string>Browse</string> </property> </widget> </item> - <item row="2" column="1"> + <item row="3" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_3"> <property name="spacing"> <number>2</number> @@ -110,7 +150,7 @@ </item> </layout> </item> - <item row="3" column="1"> + <item row="4" column="1"> <widget class="QCheckBox" name="CreateKitCheckBox"> <property name="sizePolicy"> <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> @@ -126,7 +166,46 @@ </property> </widget> </item> - <item row="5" column="0"> + <item row="5" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>2</number> + </property> + <item> + <widget class="QLabel" name="kitWarningIconLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string/> + </property> + <property name="pixmap"> + <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_warning.png</pixmap> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="kitWarningLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string/> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="6" column="0"> <widget class="QLabel" name="AntLocationLabel"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> @@ -142,17 +221,17 @@ </property> </widget> </item> - <item row="5" column="1"> + <item row="6" column="1"> <widget class="QLineEdit" name="AntLocationLineEdit"/> </item> - <item row="5" column="2"> + <item row="6" column="2"> <widget class="QPushButton" name="AntLocationPushButton"> <property name="text"> <string>Browse</string> </property> </widget> </item> - <item row="6" column="0"> + <item row="7" column="0"> <widget class="QLabel" name="OpenJDKLocationLabel"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> @@ -168,55 +247,16 @@ </property> </widget> </item> - <item row="6" column="1"> + <item row="7" column="1"> <widget class="QLineEdit" name="OpenJDKLocationLineEdit"/> </item> - <item row="6" column="2"> + <item row="7" column="2"> <widget class="QPushButton" name="OpenJDKLocationPushButton"> <property name="text"> <string>Browse</string> </property> </widget> </item> - <item row="4" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <property name="spacing"> - <number>2</number> - </property> - <item> - <widget class="QLabel" name="kitWarningIconLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string/> - </property> - <property name="pixmap"> - <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_warning.png</pixmap> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="kitWarningLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string/> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - </layout> - </item> </layout> </item> <item> diff --git a/src/plugins/coreplugin/progressmanager/progressbar.cpp b/src/plugins/coreplugin/progressmanager/progressbar.cpp index 6a2c72be471dc798743f645fc684c545f0c0c484..114224190cb59648020a13dbcfd45a0175cda467 100644 --- a/src/plugins/coreplugin/progressmanager/progressbar.cpp +++ b/src/plugins/coreplugin/progressmanager/progressbar.cpp @@ -44,7 +44,8 @@ using namespace Core::Internal; #define CANCELBUTTON_SIZE 15 ProgressBar::ProgressBar(QWidget *parent) - : QWidget(parent), m_titleVisible(true), m_separatorVisible(true), m_progressHeight(0), + : QWidget(parent), m_titleVisible(true), m_separatorVisible(true), m_cancelEnabled(true), + m_progressHeight(0), m_minimum(1), m_maximum(100), m_value(1), m_cancelButtonFader(0), m_finished(false), m_error(false) { diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp index b155834317bebb89fe198937c713483bf13c35a0..fc15be7944f2e4ccb95b48603b770486268d2ede 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp +++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp @@ -46,6 +46,7 @@ #include <QAction> #include <QEvent> #include <QHBoxLayout> +#include <QMouseEvent> #include <QPainter> #include <QPropertyAnimation> #include <QStyle> @@ -379,6 +380,19 @@ bool ProgressManagerPrivate::eventFilter(QObject *obj, QEvent *event) m_hovered = false; // give the progress view the chance to get the mouse enter event updateVisibilityWithDelay(); + } else if (obj == m_statusBarWidget && event->type() == QEvent::MouseButtonPress + && !m_taskList.isEmpty()) { + QMouseEvent *me = static_cast<QMouseEvent *>(event); + if (me->button() == Qt::LeftButton && !me->modifiers()) { + FutureProgress *progress = m_currentStatusDetailsProgress; + if (!progress) + progress = m_taskList.last(); + // don't send signal directly from an event filter, event filters should + // do as little a possible + QTimer::singleShot(0, progress, SIGNAL(clicked())); + event->accept(); + return true; + } } return false; } @@ -643,8 +657,10 @@ void ProgressManagerPrivate::updateStatusDetailsWidget() while (i != m_taskList.begin()) { --i; candidateWidget = (*i)->statusBarWidget(); - if (candidateWidget) + if (candidateWidget) { + m_currentStatusDetailsProgress = *i; break; + } } if (candidateWidget == m_currentStatusDetailsWidget) diff --git a/src/plugins/coreplugin/progressmanager/progressmanager_p.h b/src/plugins/coreplugin/progressmanager/progressmanager_p.h index dabd525a792d3e988d17aef1878288d7a465b3c6..ac99df10332ee47f8046c5c9214dce4a04f8bf12 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager_p.h +++ b/src/plugins/coreplugin/progressmanager/progressmanager_p.h @@ -108,6 +108,7 @@ private: QWidget *m_summaryProgressWidget; QHBoxLayout *m_summaryProgressLayout; QWidget *m_currentStatusDetailsWidget; + QPointer<FutureProgress> m_currentStatusDetailsProgress; ProgressBar *m_summaryProgressBar; QGraphicsOpacityEffect *m_opacityEffect; QPointer<QPropertyAnimation> m_opacityAnimation; diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp index 5c86b865d0cea211a26aeb4b7b8b9c0524d125ca..5478e735c7fe9f11cdbb895ea5e0932c7ea9ef27 100644 --- a/src/plugins/debugger/watchdata.cpp +++ b/src/plugins/debugger/watchdata.cpp @@ -355,8 +355,16 @@ QString WatchData::toToolTip() const formatToolTipRow(str, tr("Name"), name); formatToolTipRow(str, tr("Expression"), QLatin1String(exp)); formatToolTipRow(str, tr("Internal Type"), QLatin1String(type)); - formatToolTipRow(str, tr("Displayed Type"), displayedType); - QString val = valuetooltip.isEmpty() ? valuetooltip : value; + if (!displayedType.isEmpty()) + formatToolTipRow(str, tr("Displayed Type"), displayedType); + QString val = valuetooltip.isEmpty() ? value : valuetooltip; + // Automatically display hex value for unsigned integers. + if (!val.isEmpty() && val.at(0).isDigit() && isIntType(type)) { + bool ok; + const quint64 intValue = val.toULongLong(&ok); + if (ok && intValue) + val += QLatin1String(" (hex) ") + QString::number(intValue, 16); + } if (val.size() > 1000) { val.truncate(1000); val += tr(" ... <cut off>"); diff --git a/src/plugins/diffeditor/diffeditorwidget.cpp b/src/plugins/diffeditor/diffeditorwidget.cpp index 48c30433fbad721ddb5e4aaa1cc06a555cf8fe0f..1c80c97881623824e35e182d2844564e8a4c298d 100644 --- a/src/plugins/diffeditor/diffeditorwidget.cpp +++ b/src/plugins/diffeditor/diffeditorwidget.cpp @@ -139,7 +139,6 @@ public: QMap<int, int> skippedLines() const { return m_skippedLines; } QMap<int, DiffEditorWidget::DiffFileInfo> fileInfo() const { return m_fileInfo; } - void setWorkingDirectory(const QString &workingDirectory) { m_workingDirectory = workingDirectory; } void setLineNumber(int blockNumber, int lineNumber); void setFileInfo(int blockNumber, const DiffEditorWidget::DiffFileInfo &fileInfo) { m_fileInfo[blockNumber] = fileInfo; setSeparator(blockNumber, true); } void setSkippedLines(int blockNumber, int skippedLines) { m_skippedLines[blockNumber] = skippedLines; setSeparator(blockNumber, true); } @@ -157,6 +156,11 @@ public slots: void setDisplaySettings(const DisplaySettings &ds); void setFontSettings(const TextEditor::FontSettings &fs); +signals: + void jumpToOriginalFileRequested(int diffFileIndex, + int lineNumber, + int columnNumber); + protected: virtual int extraAreaWidth(int *markWidthPtr = 0) const { return BaseTextEditorWidget::extraAreaWidth(markWidthPtr); } BaseTextEditor *createEditor() { return new DiffViewEditorEditable(this); } @@ -180,7 +184,6 @@ private: const QTextBlock &block, int top); void jumpToOriginalFile(const QTextCursor &cursor); - QString m_workingDirectory; QMap<int, int> m_lineNumbers; int m_lineNumberDigits; // block number, fileInfo @@ -430,20 +433,13 @@ void DiffViewEditorWidget::jumpToOriginalFile(const QTextCursor &cursor) return; const int blockNumber = cursor.blockNumber(); - const int position = cursor.positionInBlock(); + const int columnNumber = cursor.positionInBlock(); if (!m_lineNumbers.contains(blockNumber)) return; - const int lineNr = m_lineNumbers.value(blockNumber); - QMap<int, DiffEditorWidget::DiffFileInfo>::const_iterator it = m_fileInfo.upperBound(blockNumber); - if (it != m_fileInfo.constBegin()) - --it; - const QDir dir(m_workingDirectory); - const QString fileName = dir.absoluteFilePath(it.value().fileName); + const int lineNumber = m_lineNumbers.value(blockNumber); - Core::IEditor *ed = Core::EditorManager::openEditor(fileName); - if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed)) - editor->gotoLine(lineNr, position); + emit jumpToOriginalFileRequested(fileIndexForBlockNumber(blockNumber), lineNumber, columnNumber); } void DiffViewEditorWidget::paintEvent(QPaintEvent *e) @@ -609,6 +605,8 @@ DiffEditorWidget::DiffEditorWidget(QWidget *parent) m_leftEditor, SLOT(setDisplaySettings(TextEditor::DisplaySettings))); m_leftEditor->setDisplaySettings(settings->displaySettings()); m_leftEditor->setCodeStyle(settings->codeStyle()); + connect(m_leftEditor, SIGNAL(jumpToOriginalFileRequested(int,int,int)), + this, SLOT(slotLeftJumpToOriginalFileRequested(int,int,int))); m_rightEditor = new DiffViewEditorWidget(this); m_rightEditor->setReadOnly(true); @@ -616,6 +614,8 @@ DiffEditorWidget::DiffEditorWidget(QWidget *parent) m_rightEditor, SLOT(setDisplaySettings(TextEditor::DisplaySettings))); m_rightEditor->setDisplaySettings(settings->displaySettings()); m_rightEditor->setCodeStyle(settings->codeStyle()); + connect(m_rightEditor, SIGNAL(jumpToOriginalFileRequested(int,int,int)), + this, SLOT(slotRightJumpToOriginalFileRequested(int,int,int))); connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)), this, SLOT(setFontSettings(TextEditor::FontSettings))); @@ -680,8 +680,7 @@ void DiffEditorWidget::clear(const QString &message) void DiffEditorWidget::setDiff(const QList<DiffFilesContents> &diffFileList, const QString &workingDirectory) { - m_leftEditor->setWorkingDirectory(workingDirectory); - m_rightEditor->setWorkingDirectory(workingDirectory); + m_workingDirectory = workingDirectory; Differ differ; QList<DiffList> diffList; for (int i = 0; i < diffFileList.count(); i++) { @@ -1440,6 +1439,63 @@ void DiffEditorWidget::setFontSettings(const TextEditor::FontSettings &fontSetti colorDiff(m_contextFileData); } +void DiffEditorWidget::slotLeftJumpToOriginalFileRequested(int diffFileIndex, + int lineNumber, + int columnNumber) +{ + if (diffFileIndex < 0 || diffFileIndex >= m_contextFileData.count()) + return; + + const FileData fileData = m_contextFileData.at(diffFileIndex); + const QString leftFileName = fileData.leftFileInfo.fileName; + const QString rightFileName = fileData.rightFileInfo.fileName; + if (leftFileName == rightFileName) { + // The same file (e.g. in git diff), jump to the line number taken from the right editor. + // Warning: git show SHA^ vs SHA or git diff HEAD vs Index + // (when Working tree has changed in meantime) will not work properly. + int leftLineNumber = 0; + int rightLineNumber = 0; + + for (int i = 0; i < fileData.chunks.count(); i++) { + const ChunkData chunkData = fileData.chunks.at(i); + for (int j = 0; j < chunkData.rows.count(); j++) { + const RowData rowData = chunkData.rows.at(j); + if (rowData.leftLine.textLineType == TextLineData::TextLine) + leftLineNumber++; + if (rowData.rightLine.textLineType == TextLineData::TextLine) + rightLineNumber++; + if (leftLineNumber == lineNumber) { + int colNr = rowData.equal ? columnNumber : 0; + jumpToOriginalFile(leftFileName, rightLineNumber, colNr); + return; + } + } + } + } else { + // different file (e.g. in Tools | Diff...) + jumpToOriginalFile(leftFileName, lineNumber, columnNumber); + } +} + +void DiffEditorWidget::slotRightJumpToOriginalFileRequested(int diffFileIndex, + int lineNumber, int columnNumber) +{ + if (diffFileIndex < 0 || diffFileIndex >= m_contextFileData.count()) + return; + + const FileData fileData = m_contextFileData.at(diffFileIndex); + const QString fileName = fileData.rightFileInfo.fileName; + jumpToOriginalFile(fileName, lineNumber, columnNumber); +} + +void DiffEditorWidget::jumpToOriginalFile(const QString &fileName, + int lineNumber, int columnNumber) +{ + const QDir dir(m_workingDirectory); + const QString absoluteFileName = dir.absoluteFilePath(fileName); + Core::EditorManager::openEditorAt(absoluteFileName, lineNumber, columnNumber); +} + void DiffEditorWidget::leftVSliderChanged() { m_rightEditor->verticalScrollBar()->setValue(m_leftEditor->verticalScrollBar()->value()); diff --git a/src/plugins/diffeditor/diffeditorwidget.h b/src/plugins/diffeditor/diffeditorwidget.h index 5bb4e1cb7f3880d1d2a75d72bffa6809e3897ef2..3b82a4ccba5d2fc8cf758fe04c4612f68a14dd20 100644 --- a/src/plugins/diffeditor/diffeditorwidget.h +++ b/src/plugins/diffeditor/diffeditorwidget.h @@ -103,6 +103,8 @@ protected: private slots: void setFontSettings(const TextEditor::FontSettings &fontSettings); + void slotLeftJumpToOriginalFileRequested(int diffFileIndex, int lineNumber, int columnNumber); + void slotRightJumpToOriginalFileRequested(int diffFileIndex, int lineNumber, int columnNumber); void leftVSliderChanged(); void rightVSliderChanged(); void leftHSliderChanged(); @@ -135,6 +137,7 @@ private: FileData calculateContextData(const ChunkData &originalData) const; void showDiff(); void synchronizeFoldings(DiffViewEditorWidget *source, DiffViewEditorWidget *destination); + void jumpToOriginalFile(const QString &fileName, int lineNumber, int columnNumber); DiffViewEditorWidget *m_leftEditor; DiffViewEditorWidget *m_rightEditor; @@ -143,6 +146,7 @@ private: QList<DiffList> m_diffList; // list of original outputs from differ QList<ChunkData> m_originalChunkData; // one big chunk for every file, ignoreWhitespaces taken into account QList<FileData> m_contextFileData; // ultimate data to be shown, contextLinesNumber taken into account + QString m_workingDirectory; int m_contextLinesNumber; bool m_ignoreWhitespaces; bool m_syncScrollBars; diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp index 1f9ce03bdb183c00c989cdff50d00c3a9f54d704..9b97eae4fbdd93030bb501b2cef0b5bbbf412d18 100644 --- a/src/plugins/git/branchdialog.cpp +++ b/src/plugins/git/branchdialog.cpp @@ -97,6 +97,12 @@ void BranchDialog::refresh(const QString &repository, bool force) m_ui->branchView->expandAll(); } +void BranchDialog::refreshIfSame(const QString &repository) +{ + if (m_repository == repository) + refresh(); +} + void BranchDialog::enableButtons() { QModelIndex idx = selectedIndex(); @@ -306,8 +312,7 @@ void BranchDialog::log() void BranchDialog::merge() { QModelIndex idx = selectedIndex(); - QTC_CHECK(m_model->isLocal(m_model->currentBranch())); // otherwise the button would not be enabled! - QTC_CHECK(idx != m_model->currentBranch()); // otherwise the button would not be enabled! + QTC_CHECK(idx != m_model->currentBranch()); // otherwise the button would not be enabled! const QString branch = m_model->fullName(idx, true); GitClient *client = GitPlugin::instance()->gitClient(); @@ -318,8 +323,7 @@ void BranchDialog::merge() void BranchDialog::rebase() { QModelIndex idx = selectedIndex(); - QTC_CHECK(m_model->isLocal(m_model->currentBranch())); // otherwise the button would not be enabled! - QTC_CHECK(idx != m_model->currentBranch()); // otherwise the button would not be enabled! + QTC_CHECK(idx != m_model->currentBranch()); // otherwise the button would not be enabled! const QString baseBranch = m_model->fullName(idx, true); GitClient *client = GitPlugin::instance()->gitClient(); diff --git a/src/plugins/git/branchdialog.h b/src/plugins/git/branchdialog.h index c1b38ac6195ac1ce49b672b0fd69946b8c12dd99..aac316d1c8dfa1b76d0c5ebab334f5d2e226bbd1 100644 --- a/src/plugins/git/branchdialog.h +++ b/src/plugins/git/branchdialog.h @@ -61,6 +61,7 @@ public: public slots: void refresh(const QString &repository, bool force); + void refreshIfSame(const QString &repository); private slots: void enableButtons(); diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp index feee651ed8ae43d139ff7b7215eb623656e5cbc7..1a07e15692d3967ff470f804c97d564667735ec9 100644 --- a/src/plugins/git/branchmodel.cpp +++ b/src/plugins/git/branchmodel.cpp @@ -80,7 +80,7 @@ public: bool isLeaf() const { - return children.isEmpty(); + return children.isEmpty() && parent && parent->parent; } bool childOf(BranchNode *node) const @@ -339,8 +339,12 @@ void BranchModel::clear() bool BranchModel::refresh(const QString &workingDirectory, QString *errorMessage) { - if (workingDirectory.isEmpty()) + beginResetModel(); + clear(); + if (workingDirectory.isEmpty()) { + endResetModel(); return false; + } m_currentSha = m_client->synchronousTopRevision(workingDirectory); QStringList args; @@ -349,9 +353,6 @@ bool BranchModel::refresh(const QString &workingDirectory, QString *errorMessage if (!m_client->synchronousForEachRefCmd(workingDirectory, args, &output, errorMessage)) VcsBase::VcsBaseOutputWindow::instance()->appendError(*errorMessage); - beginResetModel(); - clear(); - m_workingDirectory = workingDirectory; const QStringList lines = output.split(QLatin1Char('\n')); foreach (const QString &l, lines) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 2d7672bb6149223d6d1f55f7abd88db2ca017f81..6c2afdc6c5802408f6ed000d8c4305f1c229d547 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2362,6 +2362,11 @@ void GitClient::finishSubmoduleUpdate() m_updatedSubmodules.clear(); } +void GitClient::fetchFinished(const QVariant &cookie) +{ + GitPlugin::instance()->updateBranches(cookie.toString()); +} + // Trim a git status file spec: "modified: foo .cpp" -> "modified: foo .cpp" static inline QString trimFileSpecification(QString fileSpec) { @@ -2974,7 +2979,9 @@ void GitClient::fetch(const QString &workingDirectory, const QString &remote) { QStringList arguments(QLatin1String("fetch")); arguments << (remote.isEmpty() ? QLatin1String("--all") : remote); - executeGit(workingDirectory, arguments, 0, true); + VcsBase::Command *command = executeGit(workingDirectory, arguments, 0, true); + command->setCookie(workingDirectory); + connect(command, SIGNAL(success(QVariant)), this, SLOT(fetchFinished(QVariant))); } bool GitClient::executeAndHandleConflicts(const QString &workingDirectory, diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 749b2ac038b8e21768112edba0603f5b399bb52b..a51735eca66af17afeafe748e81f11aef8fa871c 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -327,6 +327,7 @@ private slots: void appendOutputData(const QByteArray &data) const; void appendOutputDataSilently(const QByteArray &data) const; void finishSubmoduleUpdate(); + void fetchFinished(const QVariant &cookie); private: QTextCodec *getSourceCodec(const QString &file) const; diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 450a0ddf94cd60170e9f8989a1d8887d2f9fa257..ff7ccd8ed2ceb23717d4edcb481d4ef439b0f2eb 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -695,6 +695,8 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage) connect(Core::ICore::vcsManager(), SIGNAL(repositoryChanged(QString)), this, SLOT(updateContinueAndAbortCommands())); + connect(Core::ICore::vcsManager(), SIGNAL(repositoryChanged(QString)), + this, SLOT(updateBranches(QString)), Qt::QueuedConnection); if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(RC_GIT_MIME_XML), errorMessage)) return false; @@ -1435,6 +1437,12 @@ void GitPlugin::updateContinueAndAbortCommands() } } +void GitPlugin::updateBranches(const QString &repository) +{ + if (m_branchDialog && m_branchDialog->isVisible()) + m_branchDialog->refreshIfSame(repository); +} + void GitPlugin::updateRepositoryBrowserAction() { const bool repositoryEnabled = currentState().hasTopLevel(); diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h index 5a4663dfdcf92788665a29c36b3381feaf0b22f0..6d795fb57341a4e77c0469d06688ffd97e483c3c 100644 --- a/src/plugins/git/gitplugin.h +++ b/src/plugins/git/gitplugin.h @@ -102,6 +102,7 @@ public: public slots: void startCommit(); + void updateBranches(const QString &repository); private slots: void diffCurrentFile(); diff --git a/src/plugins/git/logchangedialog.cpp b/src/plugins/git/logchangedialog.cpp index bb8f444c9e1fa1442b574fac26f2ff116d618115..3dba3eb3a73df17465f5e1fca80f750bd8ae3057 100644 --- a/src/plugins/git/logchangedialog.cpp +++ b/src/plugins/git/logchangedialog.cpp @@ -76,8 +76,6 @@ bool LogChangeWidget::init(const QString &repository, const QString &commit, boo GitPlugin::instance()->gitClient()->msgNoCommits(includeRemote)); return false; } - selectionModel()->select(m_model->index(0, 0), - QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); return true; } @@ -117,6 +115,8 @@ void LogChangeWidget::emitDoubleClicked(const QModelIndex &index) bool LogChangeWidget::populateLog(const QString &repository, const QString &commit, bool includeRemote) { + const QString currentCommit = this->commit(); + int selected = currentCommit.isEmpty() ? 0 : -1; if (const int rowCount = m_model->rowCount()) m_model->removeRows(0, rowCount); @@ -144,12 +144,15 @@ bool LogChangeWidget::populateLog(const QString &repository, const QString &comm } row.push_back(item); } - row[Sha1Column]->setText(line.left(colonPos)); + const QString sha1 = line.left(colonPos); + row[Sha1Column]->setText(sha1); row[SubjectColumn]->setText(line.right(line.size() - colonPos - 1)); m_model->appendRow(row); + if (selected == -1 && currentCommit == sha1) + selected = m_model->rowCount() - 1; } } - setCurrentIndex(m_model->index(0, 0)); + setCurrentIndex(m_model->index(selected, 0)); return true; } @@ -174,8 +177,8 @@ LogChangeDialog::LogChangeDialog(bool isReset, QWidget *parent) : if (isReset) { popUpLayout->addWidget(new QLabel(tr("Reset type:"), this)); m_resetTypeComboBox = new QComboBox(this); - m_resetTypeComboBox->addItem(tr("Mixed"), QLatin1String("--mixed")); m_resetTypeComboBox->addItem(tr("Hard"), QLatin1String("--hard")); + m_resetTypeComboBox->addItem(tr("Mixed"), QLatin1String("--mixed")); m_resetTypeComboBox->addItem(tr("Soft"), QLatin1String("--soft")); popUpLayout->addWidget(m_resetTypeComboBox); popUpLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); diff --git a/src/plugins/projectexplorer/environmentaspectwidget.cpp b/src/plugins/projectexplorer/environmentaspectwidget.cpp index 4836af785123c9c38878a6cd9eda7428eda4bf40..79ff5d61273709c5e7f065f55899b93deca941b4 100644 --- a/src/plugins/projectexplorer/environmentaspectwidget.cpp +++ b/src/plugins/projectexplorer/environmentaspectwidget.cpp @@ -97,6 +97,8 @@ EnvironmentAspectWidget::EnvironmentAspectWidget(EnvironmentAspect *aspect, QWid connect(m_aspect, SIGNAL(baseEnvironmentChanged()), this, SLOT(changeBaseEnvironment())); connect(m_aspect, SIGNAL(userEnvironmentChangesChanged(QList<Utils::EnvironmentItem>)), this, SLOT(changeUserChanges(QList<Utils::EnvironmentItem>))); + connect(m_aspect, SIGNAL(environmentChanged()), + this, SLOT(environmentChanged())); } QString EnvironmentAspectWidget::displayName() const @@ -118,6 +120,7 @@ void EnvironmentAspectWidget::baseEnvironmentSelected(int idx) { m_ignoreChange = true; m_aspect->setBaseEnvironmentBase(m_baseEnvironmentComboBox->itemData(idx).toInt()); + m_environmentWidget->setBaseEnvironment(m_aspect->baseEnvironment()); m_ignoreChange = false; } @@ -132,6 +135,7 @@ void EnvironmentAspectWidget::changeBaseEnvironment() m_baseEnvironmentComboBox->setCurrentIndex(i); } m_environmentWidget->setBaseEnvironmentText(m_aspect->baseEnvironmentDisplayName(base)); + m_environmentWidget->setBaseEnvironment(m_aspect->baseEnvironment()); } void EnvironmentAspectWidget::userChangesEdited() @@ -148,4 +152,11 @@ void EnvironmentAspectWidget::changeUserChanges(QList<Utils::EnvironmentItem> ch m_environmentWidget->setUserChanges(changes); } +void EnvironmentAspectWidget::environmentChanged() +{ + if (m_ignoreChange) + return; + m_environmentWidget->setBaseEnvironment(m_aspect->baseEnvironment()); +} + } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/environmentaspectwidget.h b/src/plugins/projectexplorer/environmentaspectwidget.h index 2093eac8a78a0aad2072c4688fba819e43de2232..465b802640a06997bf0d9e11034a355ec32dc10d 100644 --- a/src/plugins/projectexplorer/environmentaspectwidget.h +++ b/src/plugins/projectexplorer/environmentaspectwidget.h @@ -67,6 +67,7 @@ private slots: void changeBaseEnvironment(); void userChangesEdited(); void changeUserChanges(QList<Utils::EnvironmentItem> changes); + void environmentChanged(); private: EnvironmentAspect *m_aspect; diff --git a/src/plugins/projectexplorer/localenvironmentaspect.cpp b/src/plugins/projectexplorer/localenvironmentaspect.cpp index 8e84bc3b4704ec01c4f27f41f097ca3b91f64f5e..1ec0d7f48952dd6e1ada0e42b6b95406cb540e4e 100644 --- a/src/plugins/projectexplorer/localenvironmentaspect.cpp +++ b/src/plugins/projectexplorer/localenvironmentaspect.cpp @@ -84,10 +84,8 @@ Utils::Environment LocalEnvironmentAspect::baseEnvironment() const void LocalEnvironmentAspect::buildEnvironmentHasChanged() { - if (baseEnvironmentBase() == static_cast<int>(BuildEnvironmentBase)) { - emit baseEnvironmentChanged(); + if (baseEnvironmentBase() == static_cast<int>(BuildEnvironmentBase)) emit environmentChanged(); - } } LocalEnvironmentAspect::LocalEnvironmentAspect(RunConfiguration *rc) : diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp index 22b9ca979108ee997035731edf730e386b54e4ca..70b3da4884506ecf9b87f30ef294c04ea0e400eb 100644 --- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp +++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp @@ -87,11 +87,8 @@ void RemoteLinuxEnvironmentAspect::setRemoteEnvironment(const Utils::Environment { if (env != m_remoteEnvironment) { m_remoteEnvironment = env; - emit remoteEnvironmentChanged(); - if (baseEnvironmentBase() == static_cast<int>(RemoteBaseEnvironment)) { - emit baseEnvironmentChanged(); + if (baseEnvironmentBase() == static_cast<int>(RemoteBaseEnvironment)) emit environmentChanged(); - } } } diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h index 44313727314af955bd2be28bc3f650d40dad76b4..c17703436005ad32c11a3fc9d8d15c9245b05f24 100644 --- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h +++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h @@ -60,9 +60,6 @@ public: QString userEnvironmentChangesAsString() const; -signals: - void remoteEnvironmentChanged(); - private: enum BaseEnvironmentBase { CleanBaseEnvironment = 0, diff --git a/src/plugins/texteditor/linenumberfilter.cpp b/src/plugins/texteditor/linenumberfilter.cpp index a199ea1741a942eae587e660a484db0f16a476c4..d5f44e7cd76d89f54150d673074a4b2e508fa2ef 100644 --- a/src/plugins/texteditor/linenumberfilter.cpp +++ b/src/plugins/texteditor/linenumberfilter.cpp @@ -64,7 +64,7 @@ QList<FilterEntry> LineNumberFilter::matchesFor(QFutureInterface<Locator::Filter int sectionCount = lineAndColumn.size(); int line = 0; int column = 0; - bool ok; + bool ok = false; if (sectionCount > 0) line = lineAndColumn.at(0).toInt(&ok); if (ok && sectionCount > 1) diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp index 5e34dd285deaa064e0787669cbbaed8a83690821..2fdb6ae6b0ab0f97433cae2d5ae27bad9c75c658 100644 --- a/src/plugins/vcsbase/vcsbaseplugin.cpp +++ b/src/plugins/vcsbase/vcsbaseplugin.cpp @@ -1037,7 +1037,12 @@ bool VcsBasePlugin::runFullySynchronous(const QString &workingDirectory, // if (flags & ExpectRepoChanges) // Core::DocumentManager::unexpectDirectoryChange(workingDirectory); - return process.exitStatus() == QProcess::NormalExit && process.exitCode() == 0; + if (process.exitStatus() == QProcess::NormalExit && process.exitCode() == 0) { + if (flags & ExpectRepoChanges) + Core::ICore::vcsManager()->emitRepositoryChanged(workingDirectory); + return true; + } + return false; } bool VcsBasePlugin::runPatch(const QByteArray &input, const QString &workingDirectory, diff --git a/src/tools/sdktool/addkeysoperation.cpp b/src/tools/sdktool/addkeysoperation.cpp index 41fc91ba69323102b6fb2d29cdb9089dd7a93381..c10b53870b003d2a0afe846c44e708c1c0670c8f 100644 --- a/src/tools/sdktool/addkeysoperation.cpp +++ b/src/tools/sdktool/addkeysoperation.cpp @@ -83,10 +83,10 @@ int AddKeysOperation::execute() const QVariantMap result = addKeys(map, m_data); if (result.isEmpty() || map == result) - return -4; + return 4; // Write data again: - return save(result, m_file) ? 0 : -5; + return save(result, m_file) ? 0 : 5; } #ifdef WITH_TESTS diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp index 93ea8b6fcb641a4aa872c2539ad40e2c9102a695..05b68cb12436a065f5cb517752c77524f3f49339 100644 --- a/src/tools/sdktool/addkitoperation.cpp +++ b/src/tools/sdktool/addkitoperation.cpp @@ -219,9 +219,9 @@ int AddKitOperation::execute() const m_deviceType.toUtf8(), m_sysRoot, m_tc, m_qt, m_mkspec, m_extra); if (result.isEmpty() || map == result) - return -2; + return 2; - return save(result, QLatin1String("profiles")) ? 0 : -3; + return save(result, QLatin1String("profiles")) ? 0 : 3; } #ifdef WITH_TESTS diff --git a/src/tools/sdktool/addqtoperation.cpp b/src/tools/sdktool/addqtoperation.cpp index d86291ee855672341170224a7cb6b3264ca2347f..43dfd534f02616caa1fab25e9e1be117baa874f1 100644 --- a/src/tools/sdktool/addqtoperation.cpp +++ b/src/tools/sdktool/addqtoperation.cpp @@ -155,9 +155,9 @@ int AddQtOperation::execute() const QVariantMap result = addQt(map, m_id, m_displayName, m_type, m_qmake, m_extra); if (result.isEmpty() || result == map) - return -2; + return 2; - return save(result, QLatin1String("qtversions")) ? 0 : -3; + return save(result, QLatin1String("qtversions")) ? 0 : 3; } #ifdef WITH_TESTS diff --git a/src/tools/sdktool/addtoolchainoperation.cpp b/src/tools/sdktool/addtoolchainoperation.cpp index 3506b1ae69693814c4a6bbbee74db90a8f03f184..7279169660cfd1969120a0c0fb19593421973d70 100644 --- a/src/tools/sdktool/addtoolchainoperation.cpp +++ b/src/tools/sdktool/addtoolchainoperation.cpp @@ -151,9 +151,9 @@ int AddToolChainOperation::execute() const QVariantMap result = addToolChain(map, m_id, m_displayName, m_path, m_targetAbi, m_supportedAbis, m_extra); if (result.isEmpty() || map == result) - return -2; + return 2; - return save(result, QLatin1String("toolchains")) ? 0 : -3; + return save(result, QLatin1String("toolchains")) ? 0 : 3; } #ifdef WITH_TESTS diff --git a/src/tools/sdktool/getoperation.cpp b/src/tools/sdktool/getoperation.cpp index ea8f995bdf7f2dcc715cf5f1b06efcee80e58a27..e4ffd8c777d92825482247bef413cb8d0d7e2832 100644 --- a/src/tools/sdktool/getoperation.cpp +++ b/src/tools/sdktool/getoperation.cpp @@ -70,7 +70,7 @@ int GetOperation::execute() const foreach (const QString &key, m_keys) { const QVariant result = get(map, key); if (result.isValid()) - return -2; + return 2; std::cout << qPrintable(result.toString()) << std::endl; } diff --git a/src/tools/sdktool/main.cpp b/src/tools/sdktool/main.cpp index d94ca984b90ec2c6db82f9bfa601d7fd0e24cf0c..18d1e12fbef1d37dbad8218e8adeb149ac084d69 100644 --- a/src/tools/sdktool/main.cpp +++ b/src/tools/sdktool/main.cpp @@ -111,7 +111,7 @@ int parseArguments(const QStringList &args, Settings *s, const QList<Operation * if (next.isNull()) { std::cerr << "Missing argument to '-s'." << std::endl << std::endl; printHelp(operations); - return -1; + return 1; } s->sdkPath = Utils::FileName::fromString(next); ++i; // skip next; @@ -135,19 +135,19 @@ int parseArguments(const QStringList &args, Settings *s, const QList<Operation * std::cerr << "Unknown parameter given." << std::endl << std::endl; printHelp(operations); - return -1; + return 1; } if (!s->operation) { std::cerr << "No operation requested." << std::endl << std::endl; printHelp(operations); - return -1; + return 1; } if (!s->operation->setArguments(opArgs)) { std::cerr << "Argument parsing failed." << std::endl << std::endl; printHelp(s->operation); s->operation = 0; - return -1; + return 1; } return 0; diff --git a/src/tools/sdktool/rmkitoperation.cpp b/src/tools/sdktool/rmkitoperation.cpp index fe677ea4330d63e2bc33e4331c844760bc935208..c5e6c793343818e107ba1edf95279eb6c85eddfd 100644 --- a/src/tools/sdktool/rmkitoperation.cpp +++ b/src/tools/sdktool/rmkitoperation.cpp @@ -90,9 +90,9 @@ int RmKitOperation::execute() const QVariantMap result = rmKit(map, m_id); if (result == map) - return -2; + return 2; - return save(result, QLatin1String("profiles")) ? 0 : -3; + return save(result, QLatin1String("profiles")) ? 0 : 3; } #ifdef WITH_TESTS diff --git a/src/tools/sdktool/rmqtoperation.cpp b/src/tools/sdktool/rmqtoperation.cpp index b1fae23cbb0c0a2b31fca08d94afc24f7caf7a97..d1293003412128cbf621547e4b69ad95c851edc7 100644 --- a/src/tools/sdktool/rmqtoperation.cpp +++ b/src/tools/sdktool/rmqtoperation.cpp @@ -90,9 +90,9 @@ int RmQtOperation::execute() const QVariantMap result = rmQt(map, m_id); if (result == map) - return -2; + return 2; - return save(result, QLatin1String("qtversion")) ? 0 : -3; + return save(result, QLatin1String("qtversion")) ? 0 : 3; } #ifdef WITH_TESTS diff --git a/src/tools/sdktool/rmtoolchainoperation.cpp b/src/tools/sdktool/rmtoolchainoperation.cpp index 0224e94f550699f1b50861d1129639d5087bbb6a..72481990ca08874eede3cc00230bf094c1637062 100644 --- a/src/tools/sdktool/rmtoolchainoperation.cpp +++ b/src/tools/sdktool/rmtoolchainoperation.cpp @@ -91,9 +91,9 @@ int RmToolChainOperation::execute() const QVariantMap result = rmToolChain(map, m_id); if (result == map) - return -2; + return 2; - return save(result, QLatin1String("toolchains")) ? 0 : -3; + return save(result, QLatin1String("toolchains")) ? 0 : 3; } #ifdef WITH_TESTS diff --git a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp index e13a1ba8410599053fbc1d63bc00ba95e3ab8ed0..5f8349b54fb4a44472eb9e81ce248b5924f5c090 100644 --- a/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp +++ b/tests/auto/cplusplus/simplifytypes/tst_simplifytypestest.cpp @@ -42,6 +42,7 @@ const char *description[] = "g++_stringset", "g++_stringvector", "g++_wstringvector", + "libc++_stringvector", "msvc_stdstring", "msvc_stdwstring", "msvc_stringmap", @@ -63,6 +64,8 @@ const char *input[] = "std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >", "std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >", "std::vector<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, std::allocator<std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >", +// libc++ +"std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >", // MSVC "class std::basic_string<char,std::char_traits<char>,std::allocator<char> >", "class std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >", @@ -76,6 +79,7 @@ const char *input[] = const char *output[] = { + // Gcc "std::string", "std::wstring", "std::map<std::string, std::string>", @@ -84,6 +88,9 @@ const char *output[] = "std::set<std::string>", "std::vector<std::string>", "std::vector<std::wstring>", + // libc++ + "std::vector<std::string>", + // MSVC "std::string", "std::wstring", "std::map<std::string, std::string>", diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 3a02c6d3065eb63b658fb374d3f924757a300941..46f73b5d8da2492b62e410c857943e9a6ad50f0e 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -268,8 +268,10 @@ struct Type QByteArray actualType = CPlusPlus::simplifySTLType(QString::fromLatin1(actualType0)).toLatin1(); actualType.replace(' ', ""); + actualType.replace("const", ""); QByteArray expectedType = type; expectedType.replace(' ', ""); + expectedType.replace("const", ""); expectedType.replace('@', context.nameSpace); return actualType == expectedType; } @@ -328,8 +330,30 @@ struct Profile struct Cxx11Profile : public Profile { - //Cxx11Profile() : Profile("CONFIG += c++11") {} - Cxx11Profile() : Profile("QMAKE_CXXFLAGS += -std=c++0x") {} + Cxx11Profile() + : Profile("greaterThan(QT_MAJOR_VERSION,4): CONFIG += c++11\n" + "else: QMAKE_CXXFLAGS += -std=c++0x\n") + {} +}; + +struct MacLibStdCppProfile : public Profile +{ + MacLibStdCppProfile() + : Profile("macx {\n" + "QMAKE_CXXFLAGS += -stdlib=libc++\n" + "LIBS += -stdlib=libc++\n" + "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7\n" + "QMAKE_IOS_DEPLOYMENT_TARGET = 10.7\n" + "QMAKE_CFLAGS -= -mmacosx-version-min=10.6\n" + "QMAKE_CFLAGS += -mmacosx-version-min=10.7\n" + "QMAKE_CXXFLAGS -= -mmacosx-version-min=10.6\n" + "QMAKE_CXXFLAGS += -mmacosx-version-min=10.7\n" + "QMAKE_OBJECTIVE_CFLAGS -= -mmacosx-version-min=10.6\n" + "QMAKE_OBJECTIVE_CFLAGS += -mmacosx-version-min=10.7\n" + "QMAKE_LFLAGS -= -mmacosx-version-min=10.6\n" + "QMAKE_LFLAGS += -mmacosx-version-min=10.7\n" + "}") + {} }; struct GdbOnly {}; @@ -957,6 +981,7 @@ void tst_Dumpers::dumper() qDebug() << "CONTENTS : " << contents; qDebug() << "Qt VERSION : " << qPrintable(QString::number(context.qtVersion, 16)); + qDebug() << "BUILD DIR : " << qPrintable(t->buildPath); } QVERIFY(ok); t->buildTemp.setAutoRemove(m_keepTemp); @@ -2058,10 +2083,10 @@ void tst_Dumpers::dumper_data() "#include <QString> // Dummy for namespace\n", "QString dummy;\n" "QPointF s0, s;\n" - "s = QPointF(100, 200);\n") + "s = QPointF(100.5, 200.5);\n") % CoreProfile() % Check("s0", "(0.0, 0.0)", "@QPointF") - % Check("s", "(100.0, 200.0)", "@QPointF"); + % Check("s", "(100.5, 200.5)", "@QPointF"); QTest::newRow("QRect") << Data("#include <QRect>\n" @@ -2077,9 +2102,9 @@ void tst_Dumpers::dumper_data() "#include <QString> // Dummy for namespace\n", "QString dummy;\n" "QRectF rect0, rect;\n" - "rect = QRectF(100, 100, 200, 200);\n") + "rect = QRectF(100.25, 100.25, 200.5, 200.5);\n") % Check("rect", "0x0+0+0", "@QRectF") - % Check("rect", "200x200+100+100", "@QRectF"); + % Check("rect", "200.5x200.5+100.25+100.25", "@QRectF"); QTest::newRow("QSize") << Data("#include <QSize>\n" @@ -2096,10 +2121,10 @@ void tst_Dumpers::dumper_data() "#include <QString> // Dummy for namespace\n", "QString dummy;\n" "QSizeF s0, s;\n" - "s = QSizeF(100, 200);\n") + "s = QSizeF(100.5, 200.5);\n") % CoreProfile() - % Check("s0", "(-1, -1)", "@QSizeF") - % Check("s", "(100, 200)", "@QSizeF"); + % Check("s0", "(-1.0, -1.0)", "@QSizeF") + % Check("s", "(100.5, 200.5)", "@QSizeF"); QTest::newRow("QRegion") << Data("#include <QRegion>\n" @@ -2149,8 +2174,8 @@ void tst_Dumpers::dumper_data() "s.insert(22);\n") % CoreProfile() % Check("s", "<2 items>", "@QSet<int>") - % Check("s.22", "[22]", "22", "int") - % Check("s.11", "[11]", "11", "int"); + % Check("s.0", "[0]", "22", "int") + % Check("s.1", "[1]", "11", "int"); QTest::newRow("QSet2") << Data("#include <QSet>\n" @@ -2322,6 +2347,7 @@ void tst_Dumpers::dumper_data() "unused(&a, &b);\n") % CoreProfile() % Cxx11Profile() + % MacLibStdCppProfile() % Check("a", "<4 items>", "std::array<int, 4u>") % Check("b", "<4 items>", "std::array<@QString, 4u>"); @@ -3145,36 +3171,52 @@ void tst_Dumpers::dumper_data() % Check("this.@1", "[@QThread]", "\"This is thread #3\"", "@QThread") % Check("this.@1.@1", "[@QObject]", "\"This is thread #3\"", "@QObject"); - QTest::newRow("QVariant1") + QTest::newRow("QVariant0") << Data("#include <QVariant>\n", "QVariant value;\n" "QVariant::Type t = QVariant::String;\n" "value = QVariant(t, (void*)0);\n" "*(QString*)value.data() = QString(\"Some string\");\n") % CoreProfile() + % GdbOnly() % Check("t", "@QVariant::String (10)", "@QVariant::Type") % Check("value", "\"Some string\"", "@QVariant (QString)"); + QTest::newRow("QVariant1") + << Data("#include <QVariant>\n", + "QVariant value;\n" + "QVariant::Type t = QVariant::String;\n" + "value = QVariant(t, (void*)0);\n" + "*(QString*)value.data() = QString(\"Some string\");\n") + % CoreProfile() + % LldbOnly() + % Check("t", "String", "@QVariant::Type") + % Check("value", "\"Some string\"", "@QVariant (QString)"); + QTest::newRow("QVariant2") << Data("#include <QVariant>\n" "#include <QRect>\n" "#include <QRectF>\n" "#include <QStringList>\n" "#include <QString>\n", + "QRect r(100, 200, 300, 400);\n" + "QRectF rf(100.5, 200.5, 300.5, 400.5);\n" "QVariant var; // Type 0, invalid\n" "QVariant var1(true); // 1, bool\n" "QVariant var2(2); // 2, int\n" "QVariant var3(3u); // 3, uint\n" "QVariant var4(qlonglong(4)); // 4, qlonglong\n" "QVariant var5(qulonglong(5)); // 5, qulonglong\n" - "QVariant var6(double(6)); // 6, double\n" + "QVariant var6(double(6.0)); // 6, double\n" "QVariant var7(QChar(7)); // 7, QChar\n" //None, # 8, QVariantMap // None, # 9, QVariantList "QVariant var10(QString(\"Hello 10\")); // 10, QString\n" "QVariant var11(QStringList() << \"Hello\" << \"World\"); // 11, QStringList\n" - "QVariant var19(QRect(100, 200, 300, 400)); // 19 QRect\n" - "QVariant var20(QRectF(100, 200, 300, 400)); // 20 QRectF\n" + "QVariant var19(r); // 19 QRect\n" + "QVariant var20(rf); // 20 QRectF\n" + "unused(&var, &var1, &var2, &var3, &var4, &var5, &var6);\n" + "unused(&var, &var7, &var10, &var11, &var19, &var20);\n" ) % CoreProfile() % Check("var", "(invalid)", "@QVariant (invalid)") @@ -3183,13 +3225,13 @@ void tst_Dumpers::dumper_data() % Check("var3", "3", "@QVariant (uint)") % Check("var4", "4", "@QVariant (qlonglong)") % Check("var5", "5", "@QVariant (qulonglong)") - % Check("var6", "6", "@QVariant (double)") + % Check("var6", "6.0", "@QVariant (double)") % Check("var7", "'?' (7)", "@QVariant (QChar)") % Check("var10", "\"Hello 10\"", "@QVariant (QString)") % Check("var11", "<2 items>", "@QVariant (QStringList)") % Check("var11.1", "[1]", "\"World\"", "@QString") % Check("var19", "300x400+100+200", "@QVariant (QRect)") - % Check("var20", "300x400+100+200", "@QVariant (QRectF)"); + % Check("var20", "300.5x400.5+100.5+200.5", "@QVariant (QRectF)"); /* "QByteArray", # 12 diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp index 10f89ace888101ef8b63e4715f7d14083943ed52..b0d52e833d866a1c68ec95863584bc1995af0e39 100644 --- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp @@ -2772,7 +2772,7 @@ void tst_TestCore::testRewriterTransactionRewriter() void tst_TestCore::testRewriterPropertyDeclarations() { - // Work in progress. See task https://qtrequirements.europe.nokia.com/browse/BAUHAUS-170" + // Work in progress. // // test properties defined in qml diff --git a/tests/system/shared/hook_utils.py b/tests/system/shared/hook_utils.py index ba8b31df298e43b6a8e0f3b07ef04b95e33cac88..27e92a14e1e3df77f5d998e65271f5da0993c464 100644 --- a/tests/system/shared/hook_utils.py +++ b/tests/system/shared/hook_utils.py @@ -369,6 +369,11 @@ def __isWinFirewallRunning__(): return __isWinFirewallRunning__.fireWallState return None +def __fixQuotes__(string): + if platform.system() in ('Windows', 'Microsoft'): + string = '"' + string + '"' + return string + # this function adds the given executable as an attachable AUT # Bad: executable/port could be empty strings - you should be aware of this def addExecutableAsAttachableAUT(executable, port, host=None): @@ -379,7 +384,8 @@ def addExecutableAsAttachableAUT(executable, port, host=None): squishSrv = __getSquishServer__() if (squishSrv == None): return False - result = subprocess.call('%s --config addAttachableAUT "%s" %s:%s' % (squishSrv, executable, host, port), shell=True) + result = subprocess.call(__fixQuotes__('"%s" --config addAttachableAUT "%s" %s:%s') + % (squishSrv, executable, host, port), shell=True) if result == 0: test.passes("Added %s as attachable AUT" % executable) else: @@ -396,7 +402,8 @@ def removeExecutableAsAttachableAUT(executable, port, host=None): squishSrv = __getSquishServer__() if (squishSrv == None): return False - result = subprocess.call('%s --config removeAttachableAUT "%s" %s:%s' % (squishSrv, executable, host, port), shell=True) + result = subprocess.call(__fixQuotes__('"%s" --config removeAttachableAUT "%s" %s:%s') + % (squishSrv, executable, host, port), shell=True) if result == 0: test.passes("Removed %s as attachable AUT" % executable) else: diff --git a/tests/system/suite_WELP/tst_WELP02/test.py b/tests/system/suite_WELP/tst_WELP02/test.py index 88fc48832549cec0b96cac4ea3af9a04f440c068..c63f2864dbd367f29bac933338aa66d26eb87ea1 100644 --- a/tests/system/suite_WELP/tst_WELP02/test.py +++ b/tests/system/suite_WELP/tst_WELP02/test.py @@ -57,7 +57,6 @@ def main(): # select "Create Project" and try to create a new project. # create Qt Quick application from "Welcome" page -> "Develop" tab createNewQtQuickApplication(tempDir(), "SampleApp", fromWelcome = True) - progressBarWait(30000) test.verify(checkIfObjectExists("{column='0' container=':Qt Creator_Utils::NavigationTreeView'" " text~='SampleApp( \(.*\))?' type='QModelIndex'}"), "Verifying: The project is opened in 'Edit' mode after configuring.") diff --git a/tests/system/suite_debugger/tst_simple_analyze/test.py b/tests/system/suite_debugger/tst_simple_analyze/test.py index 27ad61f7d63e97e89b970bfe8ca4bd3e955809ec..58fdb3c7319571abd857723479a2477b18abfacb 100644 --- a/tests/system/suite_debugger/tst_simple_analyze/test.py +++ b/tests/system/suite_debugger/tst_simple_analyze/test.py @@ -91,7 +91,10 @@ def main(): if qtVersion.startswith("5."): compareEventsTab(model, "events_qt50.tsv") else: - compareEventsTab(model, "events_qt47.tsv") + if qtVersion.startswith("4.8"): + compareEventsTab(model, "events_qt48.tsv") + else: + compareEventsTab(model, "events_qt47.tsv") test.verify(str(model.index(0, 8).data()).endswith(' ms')) test.xverify(str(model.index(1, 8).data()).endswith(' ms')) # QTCREATORBUG-8996 test.compare(dumpItems(model, column=2)[0], '100.00 %') diff --git a/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt48.tsv b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt48.tsv new file mode 100644 index 0000000000000000000000000000000000000000..94615d85d07428f80e781d34f518445f20a0f467 --- /dev/null +++ b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt48.tsv @@ -0,0 +1,7 @@ +"0" "1" "4" "9" +"<program>" "Binding" "1" "Main Program" +"main.qml:14" "Signal" "2" "triggered(): { var i; for (i = 1; i < 2500; ++i) { var j = i * i; console.log(j); } }" +"main.qml:1" "Create" "1" "main.qml" +"main.qml:1" "Compile" "1" "main.qml" +"main.qml:7" "Binding" "1" "text: qsTr(""Hello World"")" +"<bytecode>" "Binding" "2" "Source code not available."