diff options
-rw-r--r-- | src/corelib/kernel/qsystemsemaphore_unix.cpp | 2 | ||||
-rw-r--r-- | src/corelib/kernel/qsystemsemaphore_win.cpp | 8 | ||||
-rw-r--r-- | src/plugins/bearer/corewlan/qcorewlanengine.h | 41 | ||||
-rw-r--r-- | src/plugins/bearer/corewlan/qcorewlanengine.mm | 667 | ||||
-rw-r--r-- | tests/auto/qtipc/qsystemsemaphore/tst_qsystemsemaphore.cpp | 25 | ||||
-rw-r--r-- | tools/designer/src/components/propertyeditor/propertyeditor.cpp | 2 | ||||
-rw-r--r-- | tools/qdoc3/config.h | 1 | ||||
-rw-r--r-- | tools/qdoc3/htmlgenerator.cpp | 295 | ||||
-rw-r--r-- | tools/qdoc3/htmlgenerator.h | 1 | ||||
-rw-r--r-- | tools/qdoc3/test/qt.qdocconf | 1 | ||||
-rw-r--r-- | translations/assistant_de.ts | 40 | ||||
-rw-r--r-- | translations/designer_de.ts | 95 | ||||
-rw-r--r-- | translations/linguist_de.ts | 27 | ||||
-rw-r--r-- | translations/qt_de.ts | 744 | ||||
-rw-r--r-- | translations/qt_help_de.ts | 26 |
15 files changed, 1226 insertions, 749 deletions
diff --git a/src/corelib/kernel/qsystemsemaphore_unix.cpp b/src/corelib/kernel/qsystemsemaphore_unix.cpp index 07e3618..d6c6c37 100644 --- a/src/corelib/kernel/qsystemsemaphore_unix.cpp +++ b/src/corelib/kernel/qsystemsemaphore_unix.cpp @@ -145,10 +145,10 @@ key_t QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode mode) // Get semaphore semaphore = semget(unix_key, 1, 0666 | IPC_CREAT | IPC_EXCL); if (-1 == semaphore) { + setErrorString(QLatin1String("QSystemSemaphore::handle")); if (errno == EEXIST) semaphore = semget(unix_key, 1, 0666 | IPC_CREAT); if (-1 == semaphore) { - setErrorString(QLatin1String("QSystemSemaphore::handle")); cleanHandle(); return -1; } diff --git a/src/corelib/kernel/qsystemsemaphore_win.cpp b/src/corelib/kernel/qsystemsemaphore_win.cpp index 96a47f5..74f253a 100644 --- a/src/corelib/kernel/qsystemsemaphore_win.cpp +++ b/src/corelib/kernel/qsystemsemaphore_win.cpp @@ -69,6 +69,10 @@ void QSystemSemaphorePrivate::setErrorString(const QString &function) error = QSystemSemaphore::PermissionDenied; errorString = QCoreApplication::translate("QSystemSemaphore", "%1: permission denied").arg(function); break; + case ERROR_ALREADY_EXISTS: + error = QSystemSemaphore::AlreadyExists; + errorString = QCoreApplication::translate("QSystemSemaphore", "%1: already exists").arg(function); + break; default: errorString = QCoreApplication::translate("QSystemSemaphore", "%1: unknown error %2").arg(function).arg(windowsError); error = QSystemSemaphore::UnknownError; @@ -88,8 +92,8 @@ HANDLE QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode) if (semaphore == 0) { QString safeName = makeKeyFileName(); semaphore = CreateSemaphore(0, initialValue, MAXLONG, (wchar_t*)safeName.utf16()); - if (semaphore == NULL) - setErrorString(QLatin1String("QSystemSemaphore::handle")); + // If the semaphore exists then the handle is still valid but there is still an error + setErrorString(QLatin1String("QSystemSemaphore::handle")); } return semaphore; diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.h b/src/plugins/bearer/corewlan/qcorewlanengine.h index 5c69299..854dcea 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.h +++ b/src/plugins/bearer/corewlan/qcorewlanengine.h @@ -47,15 +47,18 @@ #include <QMap> #include <QTimer> #include <SystemConfiguration/SystemConfiguration.h> +#include <QThread> #ifndef QT_NO_BEARERMANAGEMENT QT_BEGIN_NAMESPACE class QNetworkConfigurationPrivate; +class QScanThread; class QCoreWlanEngine : public QBearerEngineImpl { + friend class QScanThread; Q_OBJECT public: @@ -83,28 +86,54 @@ public: bool requiresPolling() const; private Q_SLOTS: + void init(); void doRequestUpdate(); + void networksChanged(); private: bool isWifiReady(const QString &dev); - QMap<QString, QString> configurationInterface; - QStringList scanForSsids(const QString &interfaceName); - - bool isKnownSsid(const QString &ssid); QList<QNetworkConfigurationPrivate *> foundConfigurations; SCDynamicStoreRef storeSession; CFRunLoopSourceRef runloopSource; bool hasWifi; + bool scanning; + QScanThread *scanThread; protected: - QMap<QString, QMap<QString,QString> > userProfiles; - void startNetworkChangeLoop(); + +}; + +class QScanThread : public QThread +{ + Q_OBJECT + +public: + QScanThread(QObject *parent = 0); + ~QScanThread(); + + void quit(); + QList<QNetworkConfigurationPrivate *> getConfigurations(); + QString interfaceName; + QMap<QString, QString> configurationInterface; void getUserConfigurations(); QString getNetworkNameFromSsid(const QString &ssid); QString getSsidFromNetworkName(const QString &name); + bool isKnownSsid(const QString &ssid); + QMap<QString, QMap<QString,QString> > userProfiles; + +signals: + void networksChanged(); + +protected: + void run(); + +private: + QList<QNetworkConfigurationPrivate *> fetchedConfigurations; + QMutex mutex; QStringList foundNetwork(const QString &id, const QString &ssid, const QNetworkConfiguration::StateFlags state, const QString &interfaceName, const QNetworkConfiguration::Purpose purpose); + }; QT_END_NAMESPACE diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm index 268126a..f54bd4d 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.mm +++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm @@ -67,10 +67,6 @@ #include <private/qt_cocoa_helpers_mac_p.h> #include "private/qcore_mac_p.h" -#ifndef QT_NO_BEARERMANAGEMENT - -QT_BEGIN_NAMESPACE - @interface QNSListener : NSObject { NSNotificationCenter *center; @@ -96,7 +92,6 @@ QT_BEGIN_NAMESPACE QMacCocoaAutoReleasePool pool; center = [NSNotificationCenter defaultCenter]; currentInterface = [CWInterface interfaceWithName:nil]; -// [center addObserver:self selector:@selector(notificationHandler:) name:kCWLinkDidChangeNotification object:nil]; [center addObserver:self selector:@selector(notificationHandler:) name:kCWPowerDidChangeNotification object:nil]; [locker unlock]; return self; @@ -130,6 +125,8 @@ QT_BEGIN_NAMESPACE QNSListener *listener = 0; +QT_BEGIN_NAMESPACE + void networkChangeCallback(SCDynamicStoreRef/* store*/, CFArrayRef changedKeys, void *info) { for ( long i = 0; i < CFArrayGetCount(changedKeys); i++) { @@ -143,20 +140,277 @@ void networkChangeCallback(SCDynamicStoreRef/* store*/, CFArrayRef changedKeys, return; } -QCoreWlanEngine::QCoreWlanEngine(QObject *parent) -: QBearerEngineImpl(parent) + +QScanThread::QScanThread(QObject *parent) + :QThread(parent) { - startNetworkChangeLoop(); +} + +QScanThread::~QScanThread() +{ +} + +void QScanThread::quit() +{ + wait(); +} + +void QScanThread::run() +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + QStringList found; + mutex.lock(); + CWInterface *currentInterface = [CWInterface interfaceWithName:qt_mac_QStringToNSString(interfaceName)]; + mutex.unlock(); + + if([currentInterface power]) { + NSError *err = nil; + NSDictionary *parametersDict = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithBool:YES], kCWScanKeyMerge, + [NSNumber numberWithInteger:100], kCWScanKeyRestTime, nil]; + + NSArray* apArray = [currentInterface scanForNetworksWithParameters:parametersDict error:&err]; + CWNetwork *apNetwork; + + if (!err) { + + for(uint row=0; row < [apArray count]; row++ ) { + apNetwork = [apArray objectAtIndex:row]; + + const QString networkSsid = qt_mac_NSStringToQString([apNetwork ssid]); + const QString id = QString::number(qHash(QLatin1String("corewlan:") + networkSsid)); + found.append(id); + + QNetworkConfiguration::StateFlags state = QNetworkConfiguration::Undefined; + bool known = isKnownSsid(networkSsid); + if( [currentInterface.interfaceState intValue] == kCWInterfaceStateRunning) { + if( networkSsid == qt_mac_NSStringToQString( [currentInterface ssid])) { + state = QNetworkConfiguration::Active; + } + } + if(state == QNetworkConfiguration::Undefined) { + if(known) { + state = QNetworkConfiguration::Discovered; + } else { + state = QNetworkConfiguration::Undefined; + } + } + QNetworkConfiguration::Purpose purpose = QNetworkConfiguration::UnknownPurpose; + if([[apNetwork securityMode] intValue] == kCWSecurityModeOpen) { + purpose = QNetworkConfiguration::PublicPurpose; + } else { + purpose = QNetworkConfiguration::PrivatePurpose; + } + + found.append(foundNetwork(id, networkSsid, state, interfaceName, purpose)); + + } //end row +// [parametersDict release]; + + } //end error + } // endwifi power + // add known configurations that are not around. + QMapIterator<QString, QMap<QString,QString> > i(userProfiles); + while (i.hasNext()) { + i.next(); + + QString networkName = i.key(); + const QString id = QString::number(qHash(QLatin1String("corewlan:") + networkName)); + + if(!found.contains(id)) { + QString networkSsid = getSsidFromNetworkName(networkName); + const QString ssidId = QString::number(qHash(QLatin1String("corewlan:") + networkSsid)); + QNetworkConfiguration::StateFlags state = QNetworkConfiguration::Undefined; + QString interfaceName; + QMapIterator<QString, QString> ij(i.value()); + while (ij.hasNext()) { + ij.next(); + interfaceName = ij.value(); + } + + if( [currentInterface.interfaceState intValue] == kCWInterfaceStateRunning) { + if( networkSsid == qt_mac_NSStringToQString([currentInterface ssid])) { + state = QNetworkConfiguration::Active; + } + } + if(state == QNetworkConfiguration::Undefined) { + if( userProfiles.contains(networkName) + && found.contains(ssidId)) { + state = QNetworkConfiguration::Discovered; + } + } + + if(state == QNetworkConfiguration::Undefined) { + state = QNetworkConfiguration::Defined; + } + found.append(foundNetwork(id, networkName, state, interfaceName, QNetworkConfiguration::UnknownPurpose)); + } + } + emit networksChanged(); + [pool release]; +} + +QStringList QScanThread::foundNetwork(const QString &id, const QString &name, const QNetworkConfiguration::StateFlags state, const QString &interfaceName, const QNetworkConfiguration::Purpose purpose) +{ + QStringList found; + QMutexLocker locker(&mutex); + QNetworkConfigurationPrivate *ptr = new QNetworkConfigurationPrivate; + + ptr->name = name; + ptr->isValid = true; + ptr->id = id; + ptr->state = state; + ptr->type = QNetworkConfiguration::InternetAccessPoint; + ptr->bearer = QLatin1String("WLAN"); + ptr->purpose = purpose; + + fetchedConfigurations.append( ptr); + configurationInterface.insert(ptr->id, interfaceName); + + locker.unlock(); + locker.relock(); + found.append(id); + return found; +} + +QList<QNetworkConfigurationPrivate *> QScanThread::getConfigurations() +{ + QMutexLocker locker(&mutex); + + QList<QNetworkConfigurationPrivate *> foundConfigurations = fetchedConfigurations; + fetchedConfigurations.clear(); + + return foundConfigurations; +} + +void QScanThread::getUserConfigurations() +{ QMacCocoaAutoReleasePool pool; - if([[CWInterface supportedInterfaces] count] > 0 && !listener) { - listener = [[QNSListener alloc] init]; - listener.engine = this; - hasWifi = true; - } else { - hasWifi = false; + userProfiles.clear(); + + NSArray *wifiInterfaces = [CWInterface supportedInterfaces]; + for(uint row=0; row < [wifiInterfaces count]; row++ ) { + + CWInterface *wifiInterface = [CWInterface interfaceWithName: [wifiInterfaces objectAtIndex:row]]; + NSString *nsInterfaceName = [wifiInterface name]; +// add user configured system networks + SCDynamicStoreRef dynRef = SCDynamicStoreCreate(kCFAllocatorSystemDefault, (CFStringRef)@"Qt corewlan", nil, nil); + NSDictionary * airportPlist = (NSDictionary *)SCDynamicStoreCopyValue(dynRef, (CFStringRef)[NSString stringWithFormat:@"Setup:/Network/Interface/%@/AirPort", nsInterfaceName]); + CFRelease(dynRef); + + NSDictionary *prefNetDict = [airportPlist objectForKey:@"PreferredNetworks"]; + + NSArray *thisSsidarray = [prefNetDict valueForKey:@"SSID_STR"]; + for(NSString *ssidkey in thisSsidarray) { + QString thisSsid = qt_mac_NSStringToQString(ssidkey); + if(!userProfiles.contains(thisSsid)) { + QMap <QString,QString> map; + map.insert(thisSsid, qt_mac_NSStringToQString(nsInterfaceName)); + userProfiles.insert(thisSsid, map); + } + } + CFRelease(airportPlist); + + // 802.1X user profiles + QString userProfilePath = QDir::homePath() + "/Library/Preferences/com.apple.eap.profiles.plist"; + NSDictionary* eapDict = [[NSMutableDictionary alloc] initWithContentsOfFile:qt_mac_QStringToNSString(userProfilePath)]; + NSString *profileStr= @"Profiles"; + NSString *nameStr = @"UserDefinedName"; + NSString *networkSsidStr = @"Wireless Network"; + for (id profileKey in eapDict) { + if ([profileStr isEqualToString:profileKey]) { + NSDictionary *itemDict = [eapDict objectForKey:profileKey]; + for (id itemKey in itemDict) { + + NSInteger dictSize = [itemKey count]; + id objects[dictSize]; + id keys[dictSize]; + + [itemKey getObjects:objects andKeys:keys]; + QString networkName; + QString ssid; + for(int i = 0; i < dictSize; i++) { + if([nameStr isEqualToString:keys[i]]) { + networkName = qt_mac_NSStringToQString(objects[i]); + } + if([networkSsidStr isEqualToString:keys[i]]) { + ssid = qt_mac_NSStringToQString(objects[i]); + } + if(!userProfiles.contains(networkName) + && !ssid.isEmpty()) { + QMap<QString,QString> map; + map.insert(ssid, qt_mac_NSStringToQString(nsInterfaceName)); + userProfiles.insert(networkName, map); + } + } + } + [itemDict release]; + } + } + [eapDict release]; } - QMetaObject::invokeMethod(this, "requestUpdate", Qt::QueuedConnection); +} + +QString QScanThread::getSsidFromNetworkName(const QString &name) +{ + QMapIterator<QString, QMap<QString,QString> > i(userProfiles); + while (i.hasNext()) { + i.next(); + QMap<QString,QString> map = i.value(); + QMapIterator<QString, QString> ij(i.value()); + while (ij.hasNext()) { + ij.next(); + const QString networkNameHash = QString::number(qHash(QLatin1String("corewlan:") +i.key())); + if(name == i.key() || name == networkNameHash) { + return ij.key(); + } + } + } + return QString(); +} + +QString QScanThread::getNetworkNameFromSsid(const QString &ssid) +{ + QMapIterator<QString, QMap<QString,QString> > i(userProfiles); + while (i.hasNext()) { + i.next(); + QMap<QString,QString> map = i.value(); + QMapIterator<QString, QString> ij(i.value()); + while (ij.hasNext()) { + ij.next(); + if(ij.key() == ssid) { + return i.key(); + } + } + } + return QString(); +} + +bool QScanThread::isKnownSsid(const QString &ssid) +{ + QMutexLocker locker(&mutex); + + QMapIterator<QString, QMap<QString,QString> > i(userProfiles); + while (i.hasNext()) { + i.next(); + QMap<QString,QString> map = i.value(); + if(map.keys().contains(ssid)) { + return true; + } + } + return false; +} + + +QCoreWlanEngine::QCoreWlanEngine(QObject *parent) +: QBearerEngineImpl(parent), scanThread(0) +{ + scanThread = new QScanThread(this); + connect(scanThread, SIGNAL(networksChanged()), + this, SLOT(networksChanged())); + + QTimer::singleShot(0,this,SLOT(init())); } QCoreWlanEngine::~QCoreWlanEngine() @@ -167,18 +421,33 @@ QCoreWlanEngine::~QCoreWlanEngine() [listener release]; } +void QCoreWlanEngine::init() +{ + if([[CWInterface supportedInterfaces] count] > 0 && !listener) { + listener = [[QNSListener alloc] init]; + listener.engine = this; + hasWifi = true; + } else { + hasWifi = false; + } + storeSession = NULL; + + startNetworkChangeLoop(); +} + + QString QCoreWlanEngine::getInterfaceFromId(const QString &id) { QMutexLocker locker(&mutex); - return configurationInterface.value(id); + return scanThread->configurationInterface.value(id); } bool QCoreWlanEngine::hasIdentifier(const QString &id) { QMutexLocker locker(&mutex); - return configurationInterface.contains(id); + return scanThread->configurationInterface.contains(id); } void QCoreWlanEngine::connectToId(const QString &id) @@ -195,13 +464,14 @@ void QCoreWlanEngine::connectToId(const QString &id) NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:0]; QString wantedSsid; - bool using8021X = false; QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); - const QString idHash = QString::number(qHash(QLatin1String("corewlan:") + getNetworkNameFromSsid(ptr->name))); + const QString idHash = QString::number(qHash(QLatin1String("corewlan:") + ptr->name)); + const QString idHash2 = QString::number(qHash(QLatin1String("corewlan:") + scanThread->getNetworkNameFromSsid(ptr->name))); - if (idHash != id) { + bool using8021X = false; + if (idHash2 != id) { NSArray *array = [CW8021XProfile allUser8021XProfiles]; for (NSUInteger i = 0; i < [array count]; ++i) { @@ -210,7 +480,7 @@ void QCoreWlanEngine::connectToId(const QString &id) const QString ssidHash = QString::number(qHash(QLatin1String("corewlan:") + qt_mac_NSStringToQString([[array objectAtIndex:i] ssid]))); if (id == networkNameHashCheck || id == ssidHash) { - const QString thisName = getSsidFromNetworkName(id); + const QString thisName = scanThread->getSsidFromNetworkName(id); if (thisName.isEmpty()) wantedSsid = id; else @@ -225,24 +495,25 @@ void QCoreWlanEngine::connectToId(const QString &id) if (!using8021X) { QString wantedNetwork; - QMapIterator<QString, QMap<QString,QString> > i(userProfiles); + QMapIterator<QString, QMap<QString,QString> > i(scanThread->userProfiles); while (i.hasNext()) { i.next(); wantedNetwork = i.key(); const QString networkNameHash = QString::number(qHash(QLatin1String("corewlan:") + wantedNetwork)); if (id == networkNameHash) { - wantedSsid = getSsidFromNetworkName(wantedNetwork); + wantedSsid = scanThread->getSsidFromNetworkName(wantedNetwork); break; } } } NSDictionary *scanParameters = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES], kCWScanKeyMerge, + [NSNumber numberWithInt:kCWScanTypeFast], kCWScanKeyScanType, [NSNumber numberWithInteger:100], kCWScanKeyRestTime, qt_mac_QStringToNSString(wantedSsid), kCWScanKeySSID, nil]; - NSArray *scanArray = [NSArray arrayWithArray:[wifiInterface scanForNetworksWithParameters:scanParameters error:&err]]; + NSArray *scanArray = [wifiInterface scanForNetworksWithParameters:scanParameters error:&err]; if(!err) { for(uint row=0; row < [scanArray count]; row++ ) { @@ -349,7 +620,7 @@ void QCoreWlanEngine::disconnectFromId(const QString &id) void QCoreWlanEngine::requestUpdate() { - getUserConfigurations(); + scanThread->getUserConfigurations(); doRequestUpdate(); } @@ -359,228 +630,12 @@ void QCoreWlanEngine::doRequestUpdate() QMacCocoaAutoReleasePool pool; - QStringList previous = accessPointConfigurations.keys(); - NSArray *wifiInterfaces = [CWInterface supportedInterfaces]; for (uint row = 0; row < [wifiInterfaces count]; ++row) { - foreach (const QString &interface, - scanForSsids(qt_mac_NSStringToQString([wifiInterfaces objectAtIndex:row]))) { - previous.removeAll(interface); - } + scanThread->interfaceName = qt_mac_NSStringToQString([wifiInterfaces objectAtIndex:row]); + scanThread->start(); } - - while (!previous.isEmpty()) { - QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(previous.takeFirst()); - - configurationInterface.remove(ptr->id); - - locker.unlock(); - emit configurationRemoved(ptr); - locker.relock(); - } - locker.unlock(); - emit updateCompleted(); -} - -QString QCoreWlanEngine::getSsidFromNetworkName(const QString &name) -{ - QMapIterator<QString, QMap<QString,QString> > i(userProfiles); - while (i.hasNext()) { - i.next(); - QMap<QString,QString> map = i.value(); - QMapIterator<QString, QString> ij(i.value()); - while (ij.hasNext()) { - ij.next(); - const QString networkNameHash = QString::number(qHash(QLatin1String("corewlan:") + i.key())); - if (name == i.key() || name == networkNameHash) { - return ij.key(); - } - } - } - return QString(); -} - -QString QCoreWlanEngine::getNetworkNameFromSsid(const QString &ssid) -{ - QMapIterator<QString, QMap<QString,QString> > i(userProfiles); - while (i.hasNext()) { - i.next(); - QMap<QString,QString> map = i.value(); - QMapIterator<QString, QString> ij(i.value()); - while (ij.hasNext()) { - ij.next(); - if(ij.key() == ssid) { - return i.key(); - } - } - } - return QString(); -} - -QStringList QCoreWlanEngine::scanForSsids(const QString &interfaceName) -{ - QMutexLocker locker(&mutex); - - QStringList found; - - if(!hasWifi) { - return found; - } - QMacCocoaAutoReleasePool pool; - - CWInterface *currentInterface = [CWInterface interfaceWithName:qt_mac_QStringToNSString(interfaceName)]; - QStringList addedConfigs; - - if([currentInterface power]) { - NSError *err = nil; - NSDictionary *parametersDict = [NSDictionary dictionaryWithObjectsAndKeys: - [NSNumber numberWithBool:YES], kCWScanKeyMerge, - [NSNumber numberWithInt:kCWScanTypeFast], kCWScanKeyScanType, // get the networks in the scan cache - [NSNumber numberWithInteger:100], kCWScanKeyRestTime, nil]; - NSArray* apArray = [currentInterface scanForNetworksWithParameters:parametersDict error:&err]; - CWNetwork *apNetwork; - if (!err) { - - for(uint row=0; row < [apArray count]; row++ ) { - apNetwork = [apArray objectAtIndex:row]; - - const QString networkSsid = qt_mac_NSStringToQString([apNetwork ssid]); - - const QString id = QString::number(qHash(QLatin1String("corewlan:") + networkSsid)); - found.append(id); - - QNetworkConfiguration::StateFlags state = QNetworkConfiguration::Undefined; - bool known = isKnownSsid(networkSsid); - if( [currentInterface.interfaceState intValue] == kCWInterfaceStateRunning) { - if( networkSsid == qt_mac_NSStringToQString( [currentInterface ssid])) { - state = QNetworkConfiguration::Active; - } - } - if(state == QNetworkConfiguration::Undefined) { - if(known) { - state = QNetworkConfiguration::Discovered; - } else { - state = QNetworkConfiguration::Undefined; - } - } - QNetworkConfiguration::Purpose purpose = QNetworkConfiguration::UnknownPurpose; - if([[apNetwork securityMode] intValue] == kCWSecurityModeOpen) { - purpose = QNetworkConfiguration::PublicPurpose; - } else { - purpose = QNetworkConfiguration::PrivatePurpose; - } - - found.append(foundNetwork(id, networkSsid, state, interfaceName, purpose)); - - } //end row - } //end error - } // endwifi power - - // add known configurations that are not around. - QMapIterator<QString, QMap<QString,QString> > i(userProfiles); - while (i.hasNext()) { - i.next(); - - QString networkName = i.key(); - const QString id = QString::number(qHash(QLatin1String("corewlan:") + networkName)); - - if(!found.contains(id)) { - QString networkSsid = getSsidFromNetworkName(networkName); - const QString ssidId = QString::number(qHash(QLatin1String("corewlan:") + networkSsid)); - QNetworkConfiguration::StateFlags state = QNetworkConfiguration::Undefined; - QString interfaceName; - QMapIterator<QString, QString> ij(i.value()); - while (ij.hasNext()) { - ij.next(); - interfaceName = ij.value(); - } - - if( [currentInterface.interfaceState intValue] == kCWInterfaceStateRunning) { - if( networkSsid == qt_mac_NSStringToQString([currentInterface ssid])) { - state = QNetworkConfiguration::Active; - } - } - if(state == QNetworkConfiguration::Undefined) { - if( userProfiles.contains(networkName) - && found.contains(ssidId)) { - state = QNetworkConfiguration::Discovered; - } - } - - if(state == QNetworkConfiguration::Undefined) { - state = QNetworkConfiguration::Defined; - } - - found.append(foundNetwork(id, networkName, state, interfaceName, QNetworkConfiguration::UnknownPurpose)); - } - } - return found; -} - -QStringList QCoreWlanEngine::foundNetwork(const QString &id, const QString &name, const QNetworkConfiguration::StateFlags state, const QString &interfaceName, const QNetworkConfiguration::Purpose purpose) -{ - QStringList found; - QMutexLocker locker(&mutex); - if (accessPointConfigurations.contains(id)) { - QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); - - bool changed = false; - - ptr->mutex.lock(); - - if (!ptr->isValid) { - ptr->isValid = true; - changed = true; - } - - if (ptr->name != name) { - ptr->name = name; - changed = true; - } - - if (ptr->id != id) { - ptr->id = id; - changed = true; - } - - if (ptr->state != state) { - ptr->state = state; - changed = true; - } - - if (ptr->purpose != purpose) { - ptr->purpose = purpose; - changed = true; - } - ptr->mutex.unlock(); - - if (changed) { - locker.unlock(); - emit configurationChanged(ptr); - locker.relock(); - } - found.append(id); - } else { - QNetworkConfigurationPrivatePointer ptr(new QNetworkConfigurationPrivate); - - ptr->name = name; - ptr->isValid = true; - ptr->id = id; - ptr->state = state; - ptr->type = QNetworkConfiguration::InternetAccessPoint; - ptr->bearer = QLatin1String("WLAN"); - ptr->purpose = purpose; - - accessPointConfigurations.insert(ptr->id, ptr); - configurationInterface.insert(ptr->id, interfaceName); - - locker.unlock(); - emit configurationAdded(ptr); - locker.relock(); - found.append(id); - } - return found; } bool QCoreWlanEngine::isWifiReady(const QString &wifiDeviceName) @@ -596,20 +651,6 @@ bool QCoreWlanEngine::isWifiReady(const QString &wifiDeviceName) return false; } -bool QCoreWlanEngine::isKnownSsid(const QString &ssid) -{ - QMutexLocker locker(&mutex); - - QMapIterator<QString, QMap<QString,QString> > i(userProfiles); - while (i.hasNext()) { - i.next(); - QMap<QString,QString> map = i.value(); - if(map.keys().contains(ssid)) { - return true; - } - } - return false; -} QNetworkSession::State QCoreWlanEngine::sessionStateForId(const QString &id) { @@ -644,7 +685,6 @@ QNetworkConfigurationManager::Capabilities QCoreWlanEngine::capabilities() const void QCoreWlanEngine::startNetworkChangeLoop() { - storeSession = NULL; SCDynamicStoreContext dynStoreContext = { 0, this/*(void *)storeSession*/, NULL, NULL, NULL }; storeSession = SCDynamicStoreCreate(NULL, @@ -711,74 +751,73 @@ bool QCoreWlanEngine::requiresPolling() const return true; } -void QCoreWlanEngine::getUserConfigurations() +void QCoreWlanEngine::networksChanged() { - QMacCocoaAutoReleasePool pool; - userProfiles.clear(); + QMutexLocker locker(&mutex); - NSArray *wifiInterfaces = [CWInterface supportedInterfaces]; - for(uint row=0; row < [wifiInterfaces count]; row++ ) { + QStringList previous = accessPointConfigurations.keys(); - CWInterface *wifiInterface = [CWInterface interfaceWithName: [wifiInterfaces objectAtIndex:row]]; - NSString *nsInterfaceName = [wifiInterface name]; -// add user configured system networks - SCDynamicStoreRef dynRef = SCDynamicStoreCreate(kCFAllocatorSystemDefault, (CFStringRef)@"Qt corewlan", nil, nil); - NSDictionary *airportPlist = (NSDictionary *)SCDynamicStoreCopyValue(dynRef, (CFStringRef)[[NSString stringWithFormat:@"Setup:/Network/Interface/%@/AirPort", nsInterfaceName] autorelease]); - CFRelease(dynRef); + QList<QNetworkConfigurationPrivate *> foundConfigurations = scanThread->getConfigurations(); + while (!foundConfigurations.isEmpty()) { + QNetworkConfigurationPrivate *cpPriv = foundConfigurations.takeFirst(); - NSDictionary *prefNetDict = [airportPlist objectForKey:@"PreferredNetworks"]; + previous.removeAll(cpPriv->id); - NSArray *thisSsidarray = [prefNetDict valueForKey:@"SSID_STR"]; - for(NSString *ssidkey in thisSsidarray) { - QString thisSsid = qt_mac_NSStringToQString(ssidkey); - if(!userProfiles.contains(thisSsid)) { - QMap <QString,QString> map; - map.insert(thisSsid, qt_mac_NSStringToQString(nsInterfaceName)); - userProfiles.insert(thisSsid, map); + if (accessPointConfigurations.contains(cpPriv->id)) { + QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(cpPriv->id); + + bool changed = false; + + ptr->mutex.lock(); + + if (ptr->isValid != cpPriv->isValid) { + ptr->isValid = cpPriv->isValid; + changed = true; } - } - CFRelease(airportPlist); - // 802.1X user profiles - QString userProfilePath = QDir::homePath() + "/Library/Preferences/com.apple.eap.profiles.plist"; - NSDictionary* eapDict = [[NSDictionary alloc] initWithContentsOfFile:qt_mac_QStringToNSString(userProfilePath)]; - NSString *profileStr= @"Profiles"; - NSString *nameStr = @"UserDefinedName"; - NSString *networkSsidStr = @"Wireless Network"; - for (id profileKey in eapDict) { - if ([profileStr isEqualToString:profileKey]) { - NSDictionary *itemDict = [eapDict objectForKey:profileKey]; - for (id itemKey in itemDict) { + if (ptr->name != cpPriv->name) { + ptr->name = cpPriv->name; + changed = true; + } - NSInteger dictSize = [itemKey count]; - id objects[dictSize]; - id keys[dictSize]; + if (ptr->state != cpPriv->state) { + ptr->state = cpPriv->state; + changed = true; + } - [itemKey getObjects:objects andKeys:keys]; - QString networkName; - QString ssid; - for(int i = 0; i < dictSize; i++) { - if([nameStr isEqualToString:keys[i]]) { - networkName = qt_mac_NSStringToQString(objects[i]); - } - if([networkSsidStr isEqualToString:keys[i]]) { - ssid = qt_mac_NSStringToQString(objects[i]); - } - if(!userProfiles.contains(networkName) - && !ssid.isEmpty()) { - QMap<QString,QString> map; - map.insert(ssid, qt_mac_NSStringToQString(nsInterfaceName)); - userProfiles.insert(networkName, map); - } - } - } - [itemDict release]; + ptr->mutex.unlock(); + + if (changed) { + locker.unlock(); + emit configurationChanged(ptr); + locker.relock(); } + + delete cpPriv; + } else { + QNetworkConfigurationPrivatePointer ptr(cpPriv); + + accessPointConfigurations.insert(ptr->id, ptr); + + locker.unlock(); + emit configurationAdded(ptr); + locker.relock(); } - [eapDict release]; } + + while (!previous.isEmpty()) { + QNetworkConfigurationPrivatePointer ptr = + accessPointConfigurations.take(previous.takeFirst()); + + locker.unlock(); + emit configurationRemoved(ptr); + locker.relock(); + } + + locker.unlock(); + emit updateCompleted(); + } -QT_END_NAMESPACE -#endif // QT_NO_BEARERMANAGEMENT +QT_END_NAMESPACE diff --git a/tests/auto/qtipc/qsystemsemaphore/tst_qsystemsemaphore.cpp b/tests/auto/qtipc/qsystemsemaphore/tst_qsystemsemaphore.cpp index eb82fd4..0dc9c99 100644 --- a/tests/auto/qtipc/qsystemsemaphore/tst_qsystemsemaphore.cpp +++ b/tests/auto/qtipc/qsystemsemaphore/tst_qsystemsemaphore.cpp @@ -76,6 +76,8 @@ private slots: void undo(); void initialValue(); + void exists(); + private: QSystemSemaphore *existingLock; @@ -297,6 +299,29 @@ void tst_QSystemSemaphore::initialValue() release.waitForFinished(LACKYWAITTIME); QVERIFY(acquire.state()== QProcess::NotRunning); } + +void tst_QSystemSemaphore::exists() +{ + QSystemSemaphore sem("store", 1, QSystemSemaphore::Create); + QVERIFY(sem.error() == QSystemSemaphore::NoError); + QVERIFY(sem.acquire()); + QVERIFY(sem.error() == QSystemSemaphore::NoError); + + { + QSystemSemaphore dupSem("store", 1, QSystemSemaphore::Create); + QVERIFY(dupSem.error() == QSystemSemaphore::AlreadyExists); + } +#ifndef Q_OS_UNIX + // The rest of the test does not make sense on Unix because open will + // actually succeed anyway (see QSystemSemaphore docs) + QSystemSemaphore anotherSem("store", 1, QSystemSemaphore::Open); + QVERIFY(anotherSem.error() == QSystemSemaphore::AlreadyExists); + QVERIFY(sem.release()); + QVERIFY(anotherSem.acquire()); + QVERIFY(anotherSem.release()); +#endif +} + QTEST_MAIN(tst_QSystemSemaphore) #include "tst_qsystemsemaphore.moc" diff --git a/tools/designer/src/components/propertyeditor/propertyeditor.cpp b/tools/designer/src/components/propertyeditor/propertyeditor.cpp index 86d7bdf..a8ca8ad 100644 --- a/tools/designer/src/components/propertyeditor/propertyeditor.cpp +++ b/tools/designer/src/components/propertyeditor/propertyeditor.cpp @@ -135,7 +135,7 @@ QSize ElidingLabel::sizeHint() const return size; } -void ElidingLabel::paintEvent(QPaintEvent *e) { +void ElidingLabel::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(QColor(0, 0, 0, 60)); painter.setBrush(QColor(255, 255, 255, 40)); diff --git a/tools/qdoc3/config.h b/tools/qdoc3/config.h index 980d1fb..c29becc 100644 --- a/tools/qdoc3/config.h +++ b/tools/qdoc3/config.h @@ -142,6 +142,7 @@ class Config #define CONFIG_MACRO "macro" #define CONFIG_NATURALLANGUAGE "naturallanguage" #define CONFIG_OBSOLETELINKS "obsoletelinks" +#define CONFIG_ONLINE "online" #define CONFIG_OUTPUTDIR "outputdir" #define CONFIG_OUTPUTENCODING "outputencoding" #define CONFIG_OUTPUTLANGUAGE "outputlanguage" diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index a5dc7b7..e074bb2 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -204,10 +204,18 @@ static void addLink(const QString &linkTarget, HtmlGenerator::HtmlGenerator() - : helpProjectWriter(0), inLink(false), inContents(false), - inSectionHeading(false), inTableHeader(false), numTableRows(0), - threeColumnEnumValueTable(true), funcLeftParen("\\S(\\()"), - myTree(0), slow(false), obsoleteLinks(false) + : helpProjectWriter(0), + inLink(false), + inContents(false), + inSectionHeading(false), + inTableHeader(false), + numTableRows(0), + threeColumnEnumValueTable(true), + offlineDocs(true), + funcLeftParen("\\S(\\()"), + myTree(0), + slow(false), + obsoleteLinks(false) { } @@ -262,7 +270,7 @@ void HtmlGenerator::initializeGenerator(const Config &config) HTMLGENERATOR_GENERATEMACREFS); project = config.getString(CONFIG_PROJECT); - + offlineDocs = !config.getBool(CONFIG_ONLINE); projectDescription = config.getString(CONFIG_DESCRIPTION); if (projectDescription.isEmpty() && !project.isEmpty()) projectDescription = project + " Reference Documentation"; @@ -1737,146 +1745,17 @@ void HtmlGenerator::generateHeader(const QString& title, out() << " <script src=\"scripts/jquery.js\" type=\"text/javascript\"></script>\n"; out() << " <script src=\"scripts/functions.js\" type=\"text/javascript\"></script>\n"; out() << "</head>\n"; - -#if 0 - out() << "<!DOCTYPE html\n" - " PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"DTD/xhtml1-strict.dtd\">\n"; - out() << QString("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"%1\" lang=\"%1\">\n").arg(naturalLanguage); - - QString shortVersion; - if ((project != "Qtopia") && (project != "Qt Extended")) { - shortVersion = project + " " + shortVersion + ": "; - if (node && !node->doc().location().isEmpty()) - out() << "<!-- " << node->doc().location().fileName() << " -->\n"; - - shortVersion = myTree->version(); - if (shortVersion.count(QChar('.')) == 2) - shortVersion.truncate(shortVersion.lastIndexOf(QChar('.'))); - if (!shortVersion.isEmpty()) { - if (project == "QSA") - shortVersion = "QSA " + shortVersion + ": "; - else - shortVersion = "Qt " + shortVersion + ": "; - } - } - - out() << "<head>\n" - " <title>" << shortVersion << protectEnc(title) << "</title>\n"; - out() << QString("<meta http-equiv=\"Content-type\" content=\"text/html; charset=%1\" />").arg(outputEncoding); - - if (!style.isEmpty()) - out() << " <style type=\"text/css\">" << style << "</style>\n"; - - const QMap<QString, QString> &metaMap = node->doc().metaTagMap(); - if (!metaMap.isEmpty()) { - QMapIterator<QString, QString> i(metaMap); - while (i.hasNext()) { - i.next(); - out() << " <meta name=\"" << protectEnc(i.key()) << "\" contents=\"" - << protectEnc(i.value()) << "\" />\n"; - } - } - - navigationLinks.clear(); - - if (node && !node->links().empty()) { - QPair<QString,QString> linkPair; - QPair<QString,QString> anchorPair; - const Node *linkNode; - - if (node->links().contains(Node::PreviousLink)) { - linkPair = node->links()[Node::PreviousLink]; - linkNode = findNodeForTarget(linkPair.first, node, marker); - if (!linkNode || linkNode == node) - anchorPair = linkPair; - else - anchorPair = anchorForNode(linkNode); - - out() << " <link rel=\"prev\" href=\"" - << anchorPair.first << "\" />\n"; - - navigationLinks += "[Previous: <a href=\"" + anchorPair.first + "\">"; - if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) - navigationLinks += protectEnc(anchorPair.second); - else - navigationLinks += protectEnc(linkPair.second); - navigationLinks += "</a>]\n"; - } - if (node->links().contains(Node::ContentsLink)) { - linkPair = node->links()[Node::ContentsLink]; - linkNode = findNodeForTarget(linkPair.first, node, marker); - if (!linkNode || linkNode == node) - anchorPair = linkPair; - else - anchorPair = anchorForNode(linkNode); - - out() << " <link rel=\"contents\" href=\"" - << anchorPair.first << "\" />\n"; - - navigationLinks += "[<a href=\"" + anchorPair.first + "\">"; - if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) - navigationLinks += protectEnc(anchorPair.second); - else - navigationLinks += protectEnc(linkPair.second); - navigationLinks += "</a>]\n"; - } - if (node->links().contains(Node::NextLink)) { - linkPair = node->links()[Node::NextLink]; - linkNode = findNodeForTarget(linkPair.first, node, marker); - if (!linkNode || linkNode == node) - anchorPair = linkPair; - else - anchorPair = anchorForNode(linkNode); - - out() << " <link rel=\"next\" href=\"" - << anchorPair.first << "\" />\n"; - - navigationLinks += "[Next: <a href=\"" + anchorPair.first + "\">"; - if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) - navigationLinks += protectEnc(anchorPair.second); - else - navigationLinks += protectEnc(linkPair.second); - navigationLinks += "</a>]\n"; - } - if (node->links().contains(Node::IndexLink)) { - linkPair = node->links()[Node::IndexLink]; - linkNode = findNodeForTarget(linkPair.first, node, marker); - if (!linkNode || linkNode == node) - anchorPair = linkPair; - else - anchorPair = anchorForNode(linkNode); - out() << " <link rel=\"index\" href=\"" - << anchorPair.first << "\" />\n"; - } - if (node->links().contains(Node::StartLink)) { - linkPair = node->links()[Node::StartLink]; - linkNode = findNodeForTarget(linkPair.first, node, marker); - if (!linkNode || linkNode == node) - anchorPair = linkPair; - else - anchorPair = anchorForNode(linkNode); - out() << " <link rel=\"start\" href=\"" - << anchorPair.first << "\" />\n"; - } - } - - foreach (const QString &stylesheet, stylesheets) { - out() << " <link href=\"" << stylesheet << "\" rel=\"stylesheet\" " - << "type=\"text/css\" />\n"; - } - foreach (const QString &customHeadElement, customHeadElements) { - out() << " " << customHeadElement << "\n"; - } - - out() << "</head>\n" - #endif + if (offlineDocs) + out() << "<body class=\"offline\">\n"; + else out() << "<body class=\"\">\n"; + if (mainPage) generateMacRef(node, marker); out() << QString(postHeader).replace("\\" + COMMAND_VERSION, myTree->version()); -#if 0 +#if 0 // Removed for new docf format. MWS if (node && !node->links().empty()) out() << "<p>\n" << navigationLinks << "</p>\n"; #endif @@ -4371,8 +4250,6 @@ void HtmlGenerator::endLink() inObsoleteLink = false; } -QT_END_NAMESPACE - #ifdef QDOC_QML /*! @@ -4724,3 +4601,139 @@ void HtmlGenerator::generatePageIndex(const QString& fileName, CodeMarker* marke } #endif + +#if 0 // fossil removed for new doc format MWS 19/04/2010 + out() << "<!DOCTYPE html\n" + " PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"DTD/xhtml1-strict.dtd\">\n"; + out() << QString("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"%1\" lang=\"%1\">\n").arg(naturalLanguage); + + QString shortVersion; + if ((project != "Qtopia") && (project != "Qt Extended")) { + shortVersion = project + " " + shortVersion + ": "; + if (node && !node->doc().location().isEmpty()) + out() << "<!-- " << node->doc().location().fileName() << " -->\n"; + + shortVersion = myTree->version(); + if (shortVersion.count(QChar('.')) == 2) + shortVersion.truncate(shortVersion.lastIndexOf(QChar('.'))); + if (!shortVersion.isEmpty()) { + if (project == "QSA") + shortVersion = "QSA " + shortVersion + ": "; + else + shortVersion = "Qt " + shortVersion + ": "; + } + } + + out() << "<head>\n" + " <title>" << shortVersion << protectEnc(title) << "</title>\n"; + out() << QString("<meta http-equiv=\"Content-type\" content=\"text/html; charset=%1\" />").arg(outputEncoding); + + if (!style.isEmpty()) + out() << " <style type=\"text/css\">" << style << "</style>\n"; + + const QMap<QString, QString> &metaMap = node->doc().metaTagMap(); + if (!metaMap.isEmpty()) { + QMapIterator<QString, QString> i(metaMap); + while (i.hasNext()) { + i.next(); + out() << " <meta name=\"" << protectEnc(i.key()) << "\" contents=\"" + << protectEnc(i.value()) << "\" />\n"; + } + } + + navigationLinks.clear(); + + if (node && !node->links().empty()) { + QPair<QString,QString> linkPair; + QPair<QString,QString> anchorPair; + const Node *linkNode; + + if (node->links().contains(Node::PreviousLink)) { + linkPair = node->links()[Node::PreviousLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << " <link rel=\"prev\" href=\"" + << anchorPair.first << "\" />\n"; + + navigationLinks += "[Previous: <a href=\"" + anchorPair.first + "\">"; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protectEnc(anchorPair.second); + else + navigationLinks += protectEnc(linkPair.second); + navigationLinks += "</a>]\n"; + } + if (node->links().contains(Node::ContentsLink)) { + linkPair = node->links()[Node::ContentsLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << " <link rel=\"contents\" href=\"" + << anchorPair.first << "\" />\n"; + + navigationLinks += "[<a href=\"" + anchorPair.first + "\">"; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protectEnc(anchorPair.second); + else + navigationLinks += protectEnc(linkPair.second); + navigationLinks += "</a>]\n"; + } + if (node->links().contains(Node::NextLink)) { + linkPair = node->links()[Node::NextLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + + out() << " <link rel=\"next\" href=\"" + << anchorPair.first << "\" />\n"; + + navigationLinks += "[Next: <a href=\"" + anchorPair.first + "\">"; + if (linkPair.first == linkPair.second && !anchorPair.second.isEmpty()) + navigationLinks += protectEnc(anchorPair.second); + else + navigationLinks += protectEnc(linkPair.second); + navigationLinks += "</a>]\n"; + } + if (node->links().contains(Node::IndexLink)) { + linkPair = node->links()[Node::IndexLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + out() << " <link rel=\"index\" href=\"" + << anchorPair.first << "\" />\n"; + } + if (node->links().contains(Node::StartLink)) { + linkPair = node->links()[Node::StartLink]; + linkNode = findNodeForTarget(linkPair.first, node, marker); + if (!linkNode || linkNode == node) + anchorPair = linkPair; + else + anchorPair = anchorForNode(linkNode); + out() << " <link rel=\"start\" href=\"" + << anchorPair.first << "\" />\n"; + } + } + + foreach (const QString &stylesheet, stylesheets) { + out() << " <link href=\"" << stylesheet << "\" rel=\"stylesheet\" " + << "type=\"text/css\" />\n"; + } + + foreach (const QString &customHeadElement, customHeadElements) { + out() << " " << customHeadElement << "\n"; + } + + out() << "</head>\n" + #endif + + QT_END_NAMESPACE diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h index 559c968..2a365e9 100644 --- a/tools/qdoc3/htmlgenerator.h +++ b/tools/qdoc3/htmlgenerator.h @@ -297,6 +297,7 @@ class HtmlGenerator : public PageGenerator bool inTableHeader; int numTableRows; bool threeColumnEnumValueTable; + bool offlineDocs; QString link; QStringList sectionNumber; QRegExp funcLeftParen; diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf index cc3e436..ef6fe97 100644 --- a/tools/qdoc3/test/qt.qdocconf +++ b/tools/qdoc3/test/qt.qdocconf @@ -9,6 +9,7 @@ versionsym = version = %VERSION% description = Qt Reference Documentation url = http://qt.nokia.com/doc/4.7 +online = true sourceencoding = UTF-8 outputencoding = UTF-8 diff --git a/translations/assistant_de.ts b/translations/assistant_de.ts index 0a0d37f..bfafc71 100644 --- a/translations/assistant_de.ts +++ b/translations/assistant_de.ts @@ -147,7 +147,7 @@ Grund: <translation>Lesezeichen verwalten...</translation> </message> <message> - <location line="+2"/> + <location line="+3"/> <source>Add Bookmark...</source> <translation>Lesezeichen hinzufügen ...</translation> </message> @@ -190,7 +190,7 @@ Grund: <context> <name>CentralWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+117"/> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+121"/> <source>Add new page</source> <translation>Neue Seite hinzufügen</translation> </message> @@ -488,19 +488,19 @@ Grund: <name>MainWindow</name> <message> <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+123"/> - <location line="+366"/> + <location line="+369"/> <source>Index</source> <translation>Index</translation> </message> <message> - <location line="-360"/> - <location line="+358"/> + <location line="-363"/> + <location line="+361"/> <source>Contents</source> <translation>Inhalt</translation> </message> <message> - <location line="-351"/> - <location line="+355"/> + <location line="-354"/> + <location line="+358"/> <source>Bookmarks</source> <translation>Lesezeichen</translation> </message> @@ -510,14 +510,14 @@ Grund: <translation>Suchen</translation> </message> <message> - <location line="-335"/> - <location line="+672"/> + <location line="-338"/> + <location line="+680"/> <location line="+284"/> <source>Qt Assistant</source> <translation>Qt Assistant</translation> </message> <message> - <location line="-702"/> + <location line="-705"/> <source>Page Set&up...</source> <translation>S&eite einrichten ...</translation> </message> @@ -532,17 +532,17 @@ Grund: <translation>&Drucken ...</translation> </message> <message> - <location line="+7"/> + <location line="-10"/> <source>New &Tab</source> <translation>Neuer &Reiter</translation> </message> <message> - <location line="+3"/> + <location line="+17"/> <source>&Close Tab</source> <translation>Reiter &schließen</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>&Quit</source> <translation>&Beenden</translation> </message> @@ -662,17 +662,17 @@ Grund: <translation>Ctrl+Alt+Left</translation> </message> <message> - <location line="+591"/> + <location line="+596"/> <source>Could not register file '%1': %2</source> <translation>Die Datei '%1' konnte nicht registriert werden: %2</translation> </message> <message> - <location line="-584"/> + <location line="-589"/> <source>About...</source> <translation>Über ...</translation> </message> <message> - <location line="+16"/> + <location line="+21"/> <source>Navigation Toolbar</source> <translation>Navigationsleiste</translation> </message> @@ -717,12 +717,12 @@ Grund: <translation>Suchindex wird aufgebaut</translation> </message> <message> - <location line="-661"/> + <location line="-669"/> <source>Looking for Qt Documentation...</source> <translation>Suche nach Qt-Dokumentation ...</translation> </message> <message> - <location line="+219"/> + <location line="+227"/> <source>&Window</source> <translation>&Fenster</translation> </message> @@ -742,12 +742,12 @@ Grund: <translation>Zoom</translation> </message> <message> - <location line="-161"/> + <location line="-169"/> <source>&File</source> <translation>&Datei</translation> </message> <message> - <location line="+29"/> + <location line="+32"/> <source>&Edit</source> <translation>&Bearbeiten</translation> </message> diff --git a/translations/designer_de.ts b/translations/designer_de.ts index 475a5d5..b508b7f 100644 --- a/translations/designer_de.ts +++ b/translations/designer_de.ts @@ -180,12 +180,12 @@ <context> <name>BrushPropertyManager</name> <message> - <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+149"/> + <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+159"/> <source>Style</source> <translation>Stil</translation> </message> <message> - <location line="-97"/> + <location line="-107"/> <source>No brush</source> <translation>Kein Muster</translation> </message> @@ -260,7 +260,7 @@ <translation>Kreuzende Diagonalen</translation> </message> <message> - <location line="+94"/> + <location line="+104"/> <source>Color</source> <translation>Farbe</translation> </message> @@ -741,7 +741,7 @@ <context> <name>Designer</name> <message> - <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+449"/> + <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+446"/> <source>Qt Designer</source> <translation>Qt Designer</translation> </message> @@ -1202,7 +1202,7 @@ <context> <name>MainWindowBase</name> <message> - <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/> + <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+121"/> <source>Main</source> <extracomment>Not currently used (main tool bar)</extracomment> <translation>Haupt-Werkzeugleiste</translation> @@ -1579,7 +1579,7 @@ Script: %3</source> <context> <name>QDesignerActions</name> <message> - <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+178"/> + <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+180"/> <source>Edit Widgets</source> <translation>Widgets bearbeiten</translation> </message> @@ -1604,17 +1604,17 @@ Script: %3</source> <translation>Einstellungen...</translation> </message> <message> - <location line="+298"/> + <location line="+321"/> <source>Clear &Menu</source> <translation>Menü &löschen</translation> </message> <message> - <location line="-233"/> + <location line="-246"/> <source>CTRL+SHIFT+S</source> <translation>CTRL+SHIFT+S</translation> </message> <message> - <location line="+113"/> + <location line="+126"/> <source>CTRL+R</source> <translation>CTRL+R</translation> </message> @@ -1668,7 +1668,7 @@ Script: %3</source> <translation>Designer-UI-Dateien (*.%1);;Alle Dateien (*)</translation> </message> <message> - <location line="-620"/> + <location line="-643"/> <source>%1 already exists. Do you want to replace it?</source> <translation>Die Datei %1 existiert bereits. @@ -1680,7 +1680,7 @@ Möchten Sie sie überschreiben?</translation> <translation>Das Formular %1 wurde gespeichert...</translation> </message> <message> - <location line="+371"/> + <location line="+394"/> <source>&Recent Forms</source> <translation>&Zuletzt bearbeitete Formulare</translation> </message> @@ -1764,7 +1764,7 @@ Möchten Sie einen anderen Namen eingeben oder ein neues Formular erzeugen?</tra <translation>Vorschau &schließen</translation> </message> <message> - <location line="-898"/> + <location line="-921"/> <source>Save &Image...</source> <translation>&Vorschaubild speichern...</translation> </message> @@ -1779,7 +1779,7 @@ Möchten Sie einen anderen Namen eingeben oder ein neues Formular erzeugen?</tra <translation>&Zusätzliche Schriftarten...</translation> </message> <message> - <location line="+651"/> + <location line="+674"/> <source>The file %1 could not be opened. Reason: %2 Would you like to retry or select a different file?</source> @@ -1813,7 +1813,7 @@ Möchten Sie es noch einmal versuchen?</translation> <translation>Die Datei %1 konnte nicht geschrieben werden.</translation> </message> <message> - <location line="-1163"/> + <location line="-1186"/> <source>&New...</source> <translation>&Neu...</translation> </message> @@ -1844,17 +1844,17 @@ Möchten Sie es noch einmal versuchen?</translation> </message> <message> <location line="+1"/> - <location line="+901"/> + <location line="+924"/> <source>&Close</source> <translation>&Schließen</translation> </message> <message> - <location line="-896"/> + <location line="-919"/> <source>View &Code...</source> <translation>&Code anzeigen...</translation> </message> <message> - <location line="+424"/> + <location line="+447"/> <location line="+248"/> <source>Save Form As</source> <translation>Formular unter einem anderen Namen speichern</translation> @@ -1886,7 +1886,7 @@ Möchten Sie es noch einmal versuchen?</translation> <translation>%1 wurde gedruckt.</translation> </message> <message> - <location line="-1149"/> + <location line="-1162"/> <source>ALT+CTRL+S</source> <translation>ALT+CTRL+S</translation> </message> @@ -2085,7 +2085,7 @@ Möchten Sie es noch einmal versuchen?</translation> <context> <name>QDesignerPropertySheet</name> <message> - <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+755"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+758"/> <source>Dynamic Properties</source> <translation>Dynamische Eigenschaften</translation> </message> @@ -2098,14 +2098,14 @@ Möchten Sie es noch einmal versuchen?</translation> <translation>Der Layout-Typ '%1' wird nicht unterstützt; es wurde ein Grid-Layout erzeugt.</translation> </message> <message> - <location line="+243"/> + <location line="+239"/> <source>The container extension of the widget '%1' (%2) returned a widget not managed by Designer '%3' (%4) when queried for page #%5. Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.</source> <translation>Die Container-Extension des Widgets '%1' (%2) gab für Seite %5 ein Widget '%3' (%4) zurück, was nicht von Designer verwaltet wird. Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifiziert werden.</translation> </message> <message> - <location line="+599"/> + <location line="+545"/> <source>Unexpected element <%1></source> <extracomment>Parsing clipboard contents</extracomment> <translation>Ungültiges Element <%1></translation> @@ -2207,12 +2207,12 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier <translation>Werkzeugleisten</translation> </message> <message> - <location line="+465"/> + <location line="+466"/> <source>Save Forms?</source> <translation>Formulare speichern?</translation> </message> <message> - <location line="-494"/> + <location line="-495"/> <source>&View</source> <translation>&Ansicht</translation> </message> @@ -2227,7 +2227,7 @@ Container-Seiten sollten ausschließlich im XML der domXML()-Methode spezifizier <translation>Widgetbox</translation> </message> <message> - <location line="+292"/> + <location line="+293"/> <source>If you do not review your documents, all your changes will be lost.</source> <translation>Die Änderungen gehen verloren, wenn Sie sich die Formulare nicht noch einmal ansehen.</translation> </message> @@ -3497,7 +3497,7 @@ Dies kann zum Beispiel eine Sprachkennung wie "_de" sein.</translation <context> <name>QtResourceView</name> <message> - <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+566"/> + <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+567"/> <source>Size: %1 x %2 %3</source> <translation>Größe: %1 x %2 @@ -3908,6 +3908,26 @@ Möchten Sie sie überschreiben?</translation> </message> <message> <location line="+6"/> + <source>File</source> + <translation>Datei</translation> + </message> + <message> + <location line="+4"/> + <source>Edit</source> + <translation>Bearbeiten</translation> + </message> + <message> + <location line="+4"/> + <source>Tools</source> + <translation>Werkzeuge</translation> + </message> + <message> + <location line="+4"/> + <source>Form</source> + <translation>Formular</translation> + </message> + <message> + <location line="+4"/> <source>Toolbars</source> <translation>Werkzeugleisten</translation> </message> @@ -4698,9 +4718,14 @@ Möchten Sie sie überschreiben?</translation> <context> <name>qdesigner_internal::FilterWidget</name> <message> - <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/> - <source><Filter></source> - <translation><Filter></translation> + <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+160"/> + <source>Filter</source> + <translation>Filter</translation> + </message> + <message> + <location line="+36"/> + <source>Clear text</source> + <translation>Text löschen</translation> </message> </context> <context> @@ -4827,7 +4852,7 @@ Möchten Sie sie überschreiben?</translation> <context> <name>qdesigner_internal::FormWindowBase</name> <message> - <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+393"/> + <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+404"/> <source>Delete</source> <translation>Löschen</translation> </message> @@ -4997,7 +5022,7 @@ Möchten Sie sie überschreiben?</translation> <translation>Formular&einstellungen...</translation> </message> <message> - <location line="+92"/> + <location line="+94"/> <source>Break Layout</source> <translation>Layout auflösen</translation> </message> @@ -5018,7 +5043,7 @@ Möchten Sie sie überschreiben?</translation> <translation>Formulareinstellungen - %1</translation> </message> <message> - <location line="-525"/> + <location line="-527"/> <source>Removes empty columns and rows</source> <translation>Entfernt unbesetzte Zeilen und Spalten</translation> </message> @@ -5975,7 +6000,7 @@ ate the goose who was loose.</source> <context> <name>qdesigner_internal::PropertyEditor</name> <message> - <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+183"/> + <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+231"/> <source>Add Dynamic Property...</source> <translation>Dynamische Eigenschaft hinzufügen...</translation> </message> @@ -5995,14 +6020,14 @@ ate the goose who was loose.</source> <translation>Detailansicht</translation> </message> <message> - <location line="+597"/> + <location line="+598"/> <source>Object: %1 Class: %2</source> <translation>Objekt: %1 Klasse: %2</translation> </message> <message> - <location line="-600"/> + <location line="-601"/> <source>Sorting</source> <translation>Sortiert</translation> </message> @@ -6012,7 +6037,7 @@ Klasse: %2</translation> <translation>Farbige Hervorhebung</translation> </message> <message> - <location line="+66"/> + <location line="+61"/> <source>Configure Property Editor</source> <translation>Anzeige der Eigenschaften konfigurieren</translation> </message> diff --git a/translations/linguist_de.ts b/translations/linguist_de.ts index 14095ba..5597458 100644 --- a/translations/linguist_de.ts +++ b/translations/linguist_de.ts @@ -453,7 +453,7 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation> <translation>Ctrl+Q</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+646"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+668"/> <location line="+15"/> <source>&Save</source> <translation>&Speichern</translation> @@ -909,7 +909,7 @@ Es wird mit einer einfachen Universalform gearbeitet.</translation> <translation>Freigeben unter ...</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2013"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-2035"/> <source></source> <comment>This is the application's main window.</comment> <translation></translation> @@ -1023,12 +1023,12 @@ Soll die erstgenannte Datei übersprungen werden?</translation> <message> <location filename="../tools/linguist/linguist/mainwindow.ui"/> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/> - <location line="+1165"/> + <location line="+1187"/> <source>Release</source> <translation>Freigeben</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1164"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1186"/> <source>Qt message files for released applications (*.qm) All files (*)</source> <translation>Qt-Nachrichtendateien (*.qm) @@ -1095,7 +1095,7 @@ Alle Dateien (*)</translation> <location line="+34"/> <location line="+24"/> <location line="+22"/> - <location line="+516"/> + <location line="+538"/> <location line="+1"/> <location line="+274"/> <location line="+40"/> @@ -1104,7 +1104,7 @@ Alle Dateien (*)</translation> <translation>Qt Linguist</translation> </message> <message> - <location line="-1198"/> + <location line="-1220"/> <location line="+102"/> <source>Cannot find the string '%1'.</source> <translation>Kann Zeichenkette '%1' nicht finden.</translation> @@ -1233,7 +1233,7 @@ Alle Dateien (*)</translation> <translation>Es wurden alle Übersetzungseinheiten abgearbeitet.</translation> </message> <message> - <location line="+176"/> + <location line="+198"/> <source>&Window</source> <translation>&Fenster</translation> </message> @@ -1493,7 +1493,7 @@ Alle Dateien (*)</translation> <message> <location/> <source>Display information about the Qt toolkit by Nokia.</source> - <translation type="unfinished"></translation> + <translation>Zeigt Informationen über das Qt-Toolkit von Nokia an.</translation> </message> </context> <context> @@ -1797,7 +1797,7 @@ Zeile: %2</translation> <translation>Kompilierte Qt-Übersetzungen</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1280"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1302"/> <source>Translation files (%1);;</source> <translation>Übersetzungsdateien (%1);;</translation> </message> @@ -1818,11 +1818,16 @@ Zeile: %2</translation> <translation>Qt Linguist</translation> </message> <message> - <location filename="../tools/linguist/shared/po.cpp" line="+658"/> + <location filename="../tools/linguist/shared/po.cpp" line="+817"/> <source>GNU Gettext localization files</source> <translation>GNU-Gettext-Übersetzungsdateien</translation> </message> <message> + <location line="+7"/> + <source>GNU Gettext localization template files</source> + <translation>Vorlagen für GNU-Gettext-Übersetzungsdateien</translation> + </message> + <message> <location filename="../tools/linguist/shared/ts.cpp" line="+752"/> <source>Qt translation sources (format 1.1)</source> <translation>Qt-Übersetzungsdateien (Formatversion 1.1)</translation> @@ -1838,7 +1843,7 @@ Zeile: %2</translation> <translation>Qt-Übersetzungsdateien (aktuelles Format)</translation> </message> <message> - <location filename="../tools/linguist/shared/xliff.cpp" line="+827"/> + <location filename="../tools/linguist/shared/xliff.cpp" line="+829"/> <source>XLIFF localization files</source> <translation>XLIFF-Übersetzungsdateien</translation> </message> diff --git a/translations/qt_de.ts b/translations/qt_de.ts index ec7e786..86d5edb 100644 --- a/translations/qt_de.ts +++ b/translations/qt_de.ts @@ -12,7 +12,7 @@ <context> <name>FakeReply</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2200"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2217"/> <source>Fake error !</source> <translation>Fake error !</translation> </message> @@ -25,7 +25,7 @@ <context> <name>MAC_APPLICATION_MENU</name> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2314"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2316"/> <source>Services</source> <translation>Dienste</translation> </message> @@ -44,6 +44,21 @@ <source>Show All</source> <translation>Alle anzeigen</translation> </message> + <message> + <location line="+1"/> + <source>Preferences...</source> + <translation>Einstellungen...</translation> + </message> + <message> + <location line="+1"/> + <source>Quit %1</source> + <translation>%1 beenden</translation> + </message> + <message> + <location line="+1"/> + <source>About %1</source> + <translation>Über %1</translation> + </message> </context> <context> <name>Phonon::</name> @@ -81,25 +96,32 @@ <context> <name>Phonon::AudioOutput</name> <message> - <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+385"/> + <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+444"/> + <location line="+34"/> <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> <translation><html>Das Audiogerät <b>%1</b> funktioniert nicht.<br/>Es wird stattdessen <b>%2</b> verwendet.</html></translation> </message> <message> - <location line="+13"/> + <location line="-21"/> <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> <translation><html>Das Audiogerät <b>%1</b> wurde aktiviert,<br/>da es gerade verfügbar und höher priorisiert ist.</html></translation> </message> <message> <location line="+3"/> + <location line="+14"/> <source>Revert back to device '%1'</source> <translation>Zurückschalten zum Gerät '%1'</translation> </message> + <message> + <location line="-3"/> + <source><html>Switching to the audio playback device <b>%1</b><br/>which has higher preference or is specifically configured for this stream.</html></source> + <translation><html>Es wird zum Audiogerät <b>%1</b> geschaltet, <br/>da es höher priorisiert ist oder spezifisch für diesen Stream konfiguriert wurde.</html></translation> + </message> </context> <context> <name>Phonon::Gstreamer::Backend</name> <message> - <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+182"/> + <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+188"/> <source>Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. Some video features have been disabled.</source> <translation>Achtung: Das Paket gstreamer0.10-plugins-good ist nicht installiert. @@ -116,7 +138,7 @@ Die Audio- und Video-Unterstützung steht nicht zur Verfügung.</translation> <context> <name>Phonon::Gstreamer::MediaObject</name> <message> - <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+90"/> + <location filename="../src/3rdparty/phonon/gstreamer/mediaobject.cpp" line="+93"/> <source>Cannot start playback. Check your GStreamer installation and make sure you @@ -126,29 +148,39 @@ have libgstreamer-plugins-base installed.</source> Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass das Paket libgstreamer-plugins-base installiert ist.</translation> </message> <message> - <location line="+113"/> + <location line="+129"/> + <source>Missing codec helper script assistant.</source> + <translation>Der Skript-Hilfsassistent des Codecs fehlt.</translation> + </message> + <message> + <location line="+2"/> + <source>Plugin codec installation failed for codec: %0</source> + <translation>Die Installation des Codec-Plugins schlug fehl für: %0</translation> + </message> + <message> + <location line="+11"/> <source>A required codec is missing. You need to install the following codec(s) to play this content: %0</source> <translation>Es sind nicht alle erforderlichen Codecs installiert. Um diesen Inhalt abzuspielen, muss der folgende Codec installiert werden: %0</translation> </message> <message> - <location line="+702"/> - <location line="+8"/> - <location line="+15"/> - <location line="+26"/> + <location line="+730"/> <location line="+6"/> - <location line="+19"/> - <location line="+339"/> + <location line="+13"/> + <location line="+24"/> + <location line="+6"/> + <location line="+18"/> + <location line="+434"/> <location line="+24"/> <source>Could not open media source.</source> <translation>Die Medienquelle konnte nicht geöffnet werden.</translation> </message> <message> - <location line="-424"/> + <location line="-514"/> <source>Invalid source type.</source> <translation>Ungültiger Typ der Medienquelle.</translation> </message> <message> - <location line="+398"/> + <location line="+488"/> <source>Could not locate media source.</source> <translation>Die Medienquelle konnte nicht gefunden werden.</translation> </message> @@ -350,12 +382,40 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass <translation>Die Lautstärke konnte nicht eingestellt werden</translation> </message> <message> - <location line="+50"/> + <location line="+45"/> + <source>Loading clip failed</source> + <translation>Das Laden des Clips schlug fehl</translation> + </message> + <message> + <location line="+24"/> <source>Playback complete</source> <translation>Abspielen beendet</translation> </message> </context> <context> + <name>Phonon::MMF::AbstractVideoPlayer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/abstractvideoplayer.cpp" line="+108"/> + <source>Pause failed</source> + <translation>Fehler bei Pause-Funktion</translation> + </message> + <message> + <location line="+16"/> + <source>Seek failed</source> + <translation>Suchoperation fehlgeschlagen</translation> + </message> + <message> + <location line="+54"/> + <source>Getting position failed</source> + <translation>Die Position konnte nicht bestimmt werden</translation> + </message> + <message> + <location line="+66"/> + <source>Opening clip failed</source> + <translation>Der Clip konnte nicht geöffnet werden</translation> + </message> +</context> +<context> <name>Phonon::MMF::AudioEqualizer</name> <message> <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+92"/> @@ -370,10 +430,17 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass <source>Getting position failed</source> <translation>Die Position konnte nicht bestimmt werden</translation> </message> +</context> +<context> + <name>Phonon::MMF::DsaVideoPlayer</name> <message> - <location line="+36"/> - <source>Opening clip failed</source> - <translation>Der Clip konnte nicht geöffnet werden</translation> + <location filename="../src/3rdparty/phonon/mmf/videoplayer_dsa.cpp" line="+238"/> + <location line="+15"/> + <location line="+8"/> + <location line="+22"/> + <location line="+22"/> + <source>Video display error</source> + <translation>Fehler bei der Video-Anzeige</translation> </message> </context> <context> @@ -450,7 +517,7 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass <context> <name>Phonon::MMF::MediaObject</name> <message> - <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+270"/> + <location filename="../src/3rdparty/phonon/mmf/mediaobject.cpp" line="+276"/> <source>Error opening source: type not supported</source> <translation>Die Quelle konnte nicht geöffnet werden: Dieser Typ wird nicht unterstützt</translation> </message> @@ -469,38 +536,10 @@ Bitte überprüfen Sie Ihre GStreamer-Installation und stellen Sie sicher, dass </message> </context> <context> - <name>Phonon::MMF::VideoPlayer</name> - <message> - <location filename="../src/3rdparty/phonon/mmf/mmf_videoplayer.cpp" line="+125"/> - <source>Pause failed</source> - <translation>Fehler bei Pause-Funktion</translation> - </message> + <name>Phonon::MMF::SurfaceVideoPlayer</name> <message> + <location filename="../src/3rdparty/phonon/mmf/videoplayer_surface.cpp" line="+126"/> <location line="+16"/> - <source>Seek failed</source> - <translation>Suchoperation fehlgeschlagen</translation> - </message> - <message> - <location line="+54"/> - <source>Getting position failed</source> - <translation>Die Position konnte nicht bestimmt werden</translation> - </message> - <message> - <location line="+26"/> - <source>Opening clip failed</source> - <translation>Der Clip konnte nicht geöffnet werden</translation> - </message> - <message> - <location line="+26"/> - <source>Buffering clip failed</source> - <translation>Fehler beim Puffern des Clips</translation> - </message> - <message> - <location line="+174"/> - <location line="+12"/> - <location line="+176"/> - <location line="+15"/> - <location line="+6"/> <source>Video display error</source> <translation>Fehler bei der Video-Anzeige</translation> </message> @@ -1236,7 +1275,7 @@ nach <translation>Diese Socket-Operation wird nicht unterstützt</translation> </message> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+598"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+614"/> <location filename="../src/network/socket/qabstractsocket.cpp" line="+203"/> <source>Socket operation timed out</source> <translation>Das Zeitlimit für die Operation wurde überschritten</translation> @@ -1281,7 +1320,7 @@ nach <context> <name>QApplication</name> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="-10"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="-13"/> <source>QT_LAYOUT_DIRECTION</source> <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> <translation>LTR</translation> @@ -1409,7 +1448,7 @@ nach <context> <name>QComboBox</name> <message> - <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1771"/> + <location filename="../src/plugins/accessible/widgets/complexwidgets.cpp" line="+1772"/> <location line="+65"/> <source>Open</source> <translation>Öffnen</translation> @@ -1558,7 +1597,7 @@ nach <context> <name>QDeclarativeAbstractAnimation</name> <message> - <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+164"/> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+165"/> <source>Cannot animate non-existent property "%1"</source> <translation>Die Eigenschaft '%1" existiert nicht und kann daher nicht animiert werden</translation> </message> @@ -1571,19 +1610,19 @@ nach <context> <name>QDeclarativeAnchors</name> <message> - <location filename="../src/declarative/graphicsitems/qdeclarativeanchors.cpp" line="+176"/> + <location filename="../src/declarative/graphicsitems/qdeclarativeanchors.cpp" line="+181"/> <source>Possible anchor loop detected on fill.</source> <translation>Bei der Fülloperation wurde eine potentielle Endlosschleife der Anker festgestellt.</translation> </message> <message> - <location line="+28"/> + <location line="+29"/> <source>Possible anchor loop detected on centerIn.</source> <translation>Bei der Operation 'centerIn' wurde eine potentielle Endlosschleife der Anker festgestellt.</translation> </message> <message> - <location line="+170"/> + <location line="+201"/> <location line="+34"/> - <location line="+607"/> + <location line="+610"/> <location line="+37"/> <source>Cannot anchor to an item that isn't a parent or sibling.</source> <translation>Das Ziel eines Anker muss ein Elternelement oder Element der gleichen Ebene sein.</translation> @@ -1639,7 +1678,7 @@ nach <context> <name>QDeclarativeBehavior</name> <message> - <location filename="../src/declarative/util/qdeclarativebehavior.cpp" line="+124"/> + <location filename="../src/declarative/util/qdeclarativebehavior.cpp" line="+122"/> <source>Cannot change the animation assigned to a Behavior.</source> <translation>Die zu einem Behavior-Element gehörende Animation kann nicht geändert werden.</translation> </message> @@ -1647,7 +1686,15 @@ nach <context> <name>QDeclarativeBinding</name> <message> - <location filename="../src/declarative/qml/qdeclarativebinding.cpp" line="+195"/> + <location filename="../src/declarative/qml/qdeclarativebinding.cpp" line="+222"/> + <source>Binding loop detected for property "%1"</source> + <translation>Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt</translation> + </message> +</context> +<context> + <name>QDeclarativeCompiledBindings</name> + <message> + <location filename="../src/declarative/qml/qdeclarativecompiledbindings.cpp" line="+305"/> <source>Binding loop detected for property "%1"</source> <translation>Bei der für die Eigenschaft "%1" angegebenen Bindung wurde eine Endlosschleife festgestellt</translation> </message> @@ -1655,16 +1702,17 @@ nach <context> <name>QDeclarativeCompiler</name> <message> - <location filename="../src/declarative/qml/qdeclarativecompiler.cpp" line="+188"/> - <location line="+1807"/> + <location filename="../src/declarative/qml/qdeclarativecompiler.cpp" line="+186"/> + <location line="+1654"/> + <location line="+187"/> <location line="+82"/> <location line="+75"/> - <location line="+459"/> + <location line="+488"/> <source>Invalid property assignment: "%1" is a read-only property</source> <translation>Ungültige Zuweisung bei Eigenschaft: "%1" ist schreibgeschützt</translation> </message> <message> - <location line="-2414"/> + <location line="-2477"/> <source>Invalid property assignment: unknown enumeration</source> <translation>Ungültige Zuweisung bei Eigenschaft: Ungültiger Aufzählungswert</translation> </message> @@ -1749,12 +1797,12 @@ nach <translation>Ungültige Zuweisung bei Eigenschaft: Der Typ "%1" ist nicht unterstützt</translation> </message> <message> - <location line="+259"/> + <location line="+269"/> <source>Element is not creatable.</source> <translation>Das Element kann nicht erzeugt werden.</translation> </message> <message> - <location line="+548"/> + <location line="+603"/> <source>Component elements may not contain properties other than id</source> <translation>Komponenten dürfen außer id keine weiteren Eigenschaften enthalten.</translation> </message> @@ -1770,12 +1818,12 @@ nach </message> <message> <location line="+6"/> - <location line="+594"/> + <location line="+558"/> <source>id is not unique</source> <translation>ID-Wert nicht eindeutig</translation> </message> <message> - <location line="-584"/> + <location line="-548"/> <source>Invalid component body specification</source> <translation>Inhalt der Komponente ungültig</translation> </message> @@ -1785,7 +1833,7 @@ nach <translation>Es kann keine leere Komponentenangabe erzeugt werden</translation> </message> <message> - <location line="+17"/> + <location line="+19"/> <source>Invalid Script block. Specify either the source property or inline script</source> <translation>Ungültiges Skript. Es muss die Eigenschaft oder ein eingebettetes Skript angegeben werden</translation> </message> @@ -1795,7 +1843,7 @@ nach <translation>Ungültige Angabe für Skript</translation> </message> <message> - <location line="+24"/> + <location line="+25"/> <source>Properties cannot be set on Script block</source> <translation>Für ein Skript können keine Eigenschaften angegeben werden</translation> </message> @@ -1805,12 +1853,7 @@ nach <translation>Ungültiges Skript</translation> </message> <message> - <location line="+144"/> - <source>Incorrectly specified signal</source> - <translation>Ungültige Signalspezifikation</translation> - </message> - <message> - <location line="+13"/> + <location line="+128"/> <source>Empty signal assignment</source> <translation>Leere Signalzuweisung</translation> </message> @@ -1843,12 +1886,12 @@ nach </message> <message> <location line="+2"/> - <location line="+361"/> + <location line="+355"/> <source>Cannot assign to non-existent property "%1"</source> <translation>Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert</translation> </message> <message> - <location line="-330"/> + <location line="-324"/> <source>Invalid use of namespace</source> <translation>Ungültige Verwendung eines Namensraums</translation> </message> @@ -1863,23 +1906,18 @@ nach <translation>Ungültige Verwendung einer Eigenschaft des Typs 'Id'</translation> </message> <message> - <location line="+13"/> - <source>id conflicts with type name</source> - <translation>Der Wert der Id ist ungültig, da er bereits als Typnamen vergeben ist</translation> - </message> - <message> - <location line="+2"/> - <source>id conflicts with namespace prefix</source> - <translation>Der Wert der Id ist ungültig, da er bereits als Namensraum vergeben ist</translation> + <location line="-356"/> + <source>Incorrectly specified signal assignment</source> + <translation></translation> </message> <message> - <location line="+84"/> + <location line="+445"/> <location line="+2"/> <source>Property has already been assigned a value</source> <translation>Der Eigenschaft wurde bereits ein Wert zugewiesen</translation> </message> <message> - <location line="+8"/> + <location line="+12"/> <location line="+8"/> <source>Invalid grouped property access</source> <translation>Falsche Gruppierung bei Zugriff auf Eigenschaft</translation> @@ -1895,7 +1933,7 @@ nach <translation>Ungültige Verwendung von Eigenschaften</translation> </message> <message> - <location line="+12"/> + <location line="+13"/> <source>Property assignment expected</source> <translation>Zuweisung an Eigenschaft erwartet</translation> </message> @@ -1945,7 +1983,7 @@ nach <translation>"%1" kann nicht auf "%2" angewandt werden</translation> </message> <message> - <location line="+96"/> + <location line="+117"/> <source>Duplicate default property</source> <translation>Mehrfaches Auftreten der Vorgabe-Eigenschaft</translation> </message> @@ -2000,7 +2038,7 @@ nach <translation>Ungültiger Typ der Eigenschaft</translation> </message> <message> - <location line="+151"/> + <location line="+159"/> <source>Invalid empty ID</source> <translation>Ungültiger (leerer) Id-Wert</translation> </message> @@ -2050,7 +2088,7 @@ nach <context> <name>QDeclarativeComponent</name> <message> - <location filename="../src/declarative/qml/qdeclarativecomponent.cpp" line="+442"/> + <location filename="../src/declarative/qml/qdeclarativecomponent.cpp" line="+452"/> <source>Invalid empty URL</source> <translation>Ungültige (leere) URL</translation> </message> @@ -2058,18 +2096,13 @@ nach <context> <name>QDeclarativeCompositeTypeManager</name> <message> - <location filename="../src/declarative/qml/qdeclarativecompositetypemanager.cpp" line="+415"/> - <location line="+220"/> + <location filename="../src/declarative/qml/qdeclarativecompositetypemanager.cpp" line="+483"/> + <location line="+268"/> <source>Resource %1 unavailable</source> <translation>Auf die Ressource %1 konnte nicht zugegriffen werden</translation> </message> <message> - <location line="-141"/> - <source>Import %1 unavailable</source> - <translation>Import %1 nicht verfügbar</translation> - </message> - <message> - <location line="+30"/> + <location line="-119"/> <source>Namespace %1 cannot be used as a type</source> <translation>Der Namensraum %1 kann nicht als Typangabe verwendet werden</translation> </message> @@ -2079,7 +2112,7 @@ nach <translation>%1 ist keine Typangabe</translation> </message> <message> - <location line="+42"/> + <location line="+46"/> <source>Type %1 unavailable</source> <translation>Der Typ %1 ist nicht verfügbar</translation> </message> @@ -2142,11 +2175,48 @@ nach <source>SQL: database version mismatch</source> <translation>SQL: Die Version der Datenbank entspricht nicht der erwarteten Version</translation> </message> + <message> + <location filename="../src/declarative/qml/qdeclarativeengine.cpp" line="+1515"/> + <source>module "%1" definition "%2" not readable</source> + <translation>Modul "%1" Definition "%2" kann nicht gelesen werden</translation> + </message> + <message> + <location line="+23"/> + <source>plugin cannot be loaded for module "%1": %2</source> + <translation>Das Plugin des Moduls "%1" konnte nicht geladen werden: %2</translation> + </message> + <message> + <location line="+5"/> + <source>module "%1" plugin "%2" not found</source> + <translation>Modul "%1" Plugin "%2" konnte nicht gefunden werden</translation> + </message> + <message> + <location line="+82"/> + <location line="+55"/> + <source>module "%1" version %2.%3 is not installed</source> + <translation>Modul "%1" Version %2.%3 ist nicht installiert</translation> + </message> + <message> + <location line="-53"/> + <source>module "%1" is not installed</source> + <translation>Modul "%1" ist nicht installiert</translation> + </message> + <message> + <location line="+14"/> + <location line="+19"/> + <source>"%1": no such directory</source> + <translation>Das Verzeichnis "%1" existiert nicht</translation> + </message> + <message> + <location line="-2"/> + <source>import "%1" has no qmldir and no namespace</source> + <translation>"qmldir" und Namensraum fehlt bei Import "%1"</translation> + </message> </context> <context> <name>QDeclarativeFlipable</name> <message> - <location filename="../src/declarative/graphicsitems/qdeclarativeflipable.cpp" line="+124"/> + <location filename="../src/declarative/graphicsitems/qdeclarativeflipable.cpp" line="+125"/> <source>front is a write-once property</source> <translation>'front' kann nur einmal zugewiesen werden</translation> </message> @@ -2159,7 +2229,7 @@ nach <context> <name>QDeclarativeInfo</name> <message> - <location filename="../src/declarative/qml/qdeclarativeinfo.cpp" line="+112"/> + <location filename="../src/declarative/qml/qdeclarativeinfo.cpp" line="+113"/> <location line="+3"/> <source>unknown location</source> <translation>Unbekannter Ort</translation> @@ -2168,50 +2238,51 @@ nach <context> <name>QDeclarativeListModel</name> <message> - <location filename="../src/declarative/util/qdeclarativelistmodel.cpp" line="+483"/> + <location filename="../src/declarative/util/qdeclarativelistmodel.cpp" line="+399"/> <source>remove: index %1 out of range</source> <translation>remove: Der Index %1 ist außerhalb des gültigen Bereichs</translation> </message> <message> - <location line="+30"/> + <location line="+33"/> <source>insert: value is not an object</source> <translation>insert: Der Wert ist kein Objekt</translation> </message> <message> - <location line="+9"/> + <location line="+5"/> <source>insert: index %1 out of range</source> <translation>insert: Der Index %1 ist außerhalb des gültigen Bereichs</translation> </message> <message> - <location line="+29"/> + <location line="+30"/> <source>move: out of range</source> <translation>move: Außerhalb des gültigen Bereichs</translation> </message> <message> - <location line="+49"/> + <location line="+40"/> <source>append: value is not an object</source> <translation>append: Der Wert ist kein Objekt</translation> </message> <message> - <location line="+39"/> + <location line="+34"/> <source>get: index %1 out of range</source> <translation>get: Der Index %1 ist außerhalb des gültigen Bereichs</translation> </message> <message> - <location line="+33"/> + <location line="+25"/> <source>set: value is not an object</source> <translation>set: Der Wert ist kein Objekt</translation> </message> <message> <location line="+4"/> - <location line="+39"/> + <location line="+34"/> <source>set: index %1 out of range</source> <translation>set: Der Index %1 ist außerhalb des gültigen Bereichs</translation> </message> <message> - <location line="+38"/> - <source>ListElement: cannot use default property</source> - <translation>ListElement: Die Vorgabe-Eigenschaft kann nicht verwendet werden</translation> + <location line="+39"/> + <location line="+15"/> + <source>ListElement: cannot contain nested elements</source> + <translation>ListElement kann keine geschachtelten Elemente enthalten</translation> </message> <message> <location line="+4"/> @@ -2219,20 +2290,28 @@ nach <translation>ListElement: Die "id"-Eigenschaft kann nicht verwendet werden</translation> </message> <message> - <location line="+46"/> + <location line="+49"/> <source>ListElement: cannot use script for property value</source> <translation>ListElement: Es kann kein Skript für den Wert der Eigenschaft verwendet werden</translation> </message> <message> - <location line="+25"/> + <location line="+29"/> <source>ListModel: undefined property '%1'</source> <translation>ListModel: Die Eigenschaft '%1' ist nicht definiert</translation> </message> </context> <context> + <name>QDeclarativeLoader</name> + <message> + <location filename="../src/declarative/graphicsitems/qdeclarativeloader.cpp" line="+309"/> + <source>Loader does not support loading non-visual elements.</source> + <translation>Das Laden nicht-visueller Elemente ist nicht unterstützt.</translation> + </message> +</context> +<context> <name>QDeclarativeParentAnimation</name> <message> - <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+2486"/> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+2370"/> <source>Unable to preserve appearance under complex transform</source> <translation>Das Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden</translation> </message> @@ -2251,7 +2330,7 @@ nach <context> <name>QDeclarativeParentChange</name> <message> - <location filename="../src/declarative/util/qdeclarativestateoperations.cpp" line="+93"/> + <location filename="../src/declarative/util/qdeclarativestateoperations.cpp" line="+94"/> <source>Unable to preserve appearance under complex transform</source> <translation>Das Erscheinungsbild kann bei einer komplexen Transformation nicht beibehalten werden</translation> </message> @@ -2270,7 +2349,7 @@ nach <context> <name>QDeclarativeParser</name> <message> - <location filename="../src/declarative/qml/parser/qdeclarativejslexer.cpp" line="+556"/> + <location filename="../src/declarative/qml/parser/qdeclarativejslexer.cpp" line="+558"/> <source>Illegal character</source> <translation>Ungültiges Zeichen</translation> </message> @@ -2315,7 +2394,7 @@ nach <translation>Ungültiger Modifikator '%0' bei regulärem Ausdruck</translation> </message> <message> - <location filename="../src/declarative/qml/parser/qdeclarativejsparser.cpp" line="+1781"/> + <location filename="../src/declarative/qml/parser/qdeclarativejsparser.cpp" line="+1828"/> <location line="+67"/> <source>Syntax error</source> <translation>Syntaxfehler</translation> @@ -2332,14 +2411,14 @@ nach <translation>Es wird das Element '%1' erwartet</translation> </message> <message> - <location filename="../src/declarative/qml/qdeclarativescriptparser.cpp" line="+266"/> - <location line="+434"/> + <location filename="../src/declarative/qml/qdeclarativescriptparser.cpp" line="+264"/> + <location line="+481"/> <location line="+59"/> <source>Property value set multiple times</source> <translation>Mehrfache Zuweisung eines Wertes an eine Eigenschaft</translation> </message> <message> - <location line="-482"/> + <location line="-529"/> <source>Expected type name</source> <translation>Es wird ein Typname erwartet</translation> </message> @@ -2349,17 +2428,27 @@ nach <translation>Ungültige Verwendung von Skript-Blöcken</translation> </message> <message> - <location line="+154"/> + <location line="+161"/> <source>Invalid import qualifier ID</source> <translation>Ungültige Id-Angabe bei Import</translation> </message> <message> + <location line="+15"/> + <source>Script import qualifiers must be unique.</source> + <translation>Der für den Skript-Import angegebene Qualifizierer muss eindeutig sein.</translation> + </message> + <message> + <location line="+10"/> + <source>Script import requires a qualifier</source> + <translation>Der Skript-Import erfordert die Angabe eines Qualifizierers.</translation> + </message> + <message> <location line="+11"/> <source>Library import requires a version</source> <translation>Der Import einer Bibliothek erfordert eine Versionsangabe</translation> </message> <message> - <location line="+53"/> + <location line="+60"/> <source>Expected parameter type</source> <translation>Es wird eine Typangabe für den Parameter erwartet</translation> </message> @@ -2384,7 +2473,7 @@ nach <translation>'read-only' wird an dieser Stelle noch nicht unterstützt</translation> </message> <message> - <location line="+213"/> + <location line="+222"/> <source>JavaScript declaration outside Script element</source> <translation>Eine JavaScript-Deklaration ist außerhalb eines Skriptelementes nicht zulässig</translation> </message> @@ -2397,15 +2486,39 @@ nach <context> <name>QDeclarativePauseAnimation</name> <message> - <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-2103"/> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="-1972"/> <source>Cannot set a duration of < 0</source> <translation>Es kann keine Zeitdauer <0 gesetzt werden</translation> </message> </context> <context> + <name>QDeclarativePixmapCache</name> + <message> + <location filename="../src/declarative/util/qdeclarativepixmapcache.cpp" line="+197"/> + <source>Error decoding: %1: %2</source> + <translation>Fehler beim Decodieren: %1: %2</translation> + </message> + <message> + <location line="+70"/> + <source>Failed to get image from provider: %1</source> + <translation>Bilddaten konnten nicht erhalten werden: %1</translation> + </message> + <message> + <location line="+19"/> + <location line="+342"/> + <source>Cannot open: %1</source> + <translation>Fehlschlag beim Öffnen: %1</translation> + </message> + <message> + <location line="+37"/> + <source>Unknown Error loading %1</source> + <translation>Unbekannter Fehler beim Laden von %1</translation> + </message> +</context> +<context> <name>QDeclarativePropertyAnimation</name> <message> - <location line="+1252"/> + <location filename="../src/declarative/util/qdeclarativeanimation.cpp" line="+1100"/> <source>Cannot set a duration of < 0</source> <translation>Es kann keine Zeitdauer <0 gesetzt werden</translation> </message> @@ -2413,7 +2526,12 @@ nach <context> <name>QDeclarativePropertyChanges</name> <message> - <location filename="../src/declarative/util/qdeclarativepropertychanges.cpp" line="+380"/> + <location filename="../src/declarative/util/qdeclarativepropertychanges.cpp" line="+231"/> + <source>PropertyChanges does not support creating state-specific objects.</source> + <translation>Die Erzeugung von Objekten, die einem Zustand zugeordnet sind, wird von PropertyChanges nicht unterstützt.</translation> + </message> + <message> + <location line="+151"/> <source>Cannot assign to non-existent property "%1"</source> <translation>Es kann keine Zuweisung erfolgen, da keine Eigenschaft des Namens '%1" existiert</translation> </message> @@ -2426,7 +2544,7 @@ nach <context> <name>QDeclarativeTextInput</name> <message> - <location filename="../src/declarative/graphicsitems/qdeclarativetextinput.cpp" line="+594"/> + <location filename="../src/declarative/graphicsitems/qdeclarativetextinput.cpp" line="+783"/> <location line="+9"/> <source>Could not load cursor delegate</source> <translation>Cursor-Delegate konnte nicht geladen werden</translation> @@ -2440,12 +2558,12 @@ nach <context> <name>QDeclarativeVME</name> <message> - <location filename="../src/declarative/qml/qdeclarativevme.cpp" line="+195"/> + <location filename="../src/declarative/qml/qdeclarativevme.cpp" line="+194"/> <source>Unable to create object of type %1</source> <translation>Es konnte kein Objekt des Typs %1 erzeugt werden</translation> </message> <message> - <location line="+306"/> + <location line="+380"/> <source>Cannot assign value %1 to property %2</source> <translation>Der Wert '%1' kann nicht der Eigenschaft %2 zugewiesen werden</translation> </message> @@ -2465,7 +2583,7 @@ nach <translation>Der Signal-Eigenschaft %1 kann kein Objekt zugewiesen werden</translation> </message> <message> - <location line="+147"/> + <location line="+153"/> <source>Cannot assign object to list</source> <translation>Zuweisung eines Objekts an eine Liste nicht zulässig</translation> </message> @@ -2488,7 +2606,7 @@ nach <context> <name>QDeclarativeVisualDataModel</name> <message> - <location filename="../src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp" line="+1022"/> + <location filename="../src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp" line="+1032"/> <source>Delegate component must be Item type.</source> <translation>Delegate-Komponente muss vom Typ 'Item' sein</translation> </message> @@ -2496,7 +2614,7 @@ nach <context> <name>QDeclarativeXmlListModelRole</name> <message> - <location filename="../src/declarative/util/qdeclarativexmllistmodel_p.h" line="+158"/> + <location filename="../src/declarative/util/qdeclarativexmllistmodel_p.h" line="+168"/> <source>An XmlRole query must not start with '/'</source> <translation>Eine XmlRole-Abfrage darf nicht mit '/' beginnen</translation> </message> @@ -2504,7 +2622,7 @@ nach <context> <name>QDeclarativeXmlRoleList</name> <message> - <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="+623"/> + <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="+638"/> <source>An XmlListModel query must start with '/' or "//"</source> <translation>Eine XmlListModel-Abfrage muss mit '/' oder "//" beginnen</translation> </message> @@ -2530,12 +2648,12 @@ nach <context> <name>QDialog</name> <message> - <location filename="../src/gui/dialogs/qdialog.cpp" line="+659"/> + <location filename="../src/gui/dialogs/qdialog.cpp" line="+645"/> <source>What's This?</source> <translation>Direkthilfe</translation> </message> <message> - <location line="-135"/> + <location line="-122"/> <source>Done</source> <translation>Fertig</translation> </message> @@ -2543,9 +2661,9 @@ nach <context> <name>QDialogButtonBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1906"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1920"/> <location line="+464"/> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+648"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+649"/> <source>OK</source> <translation>OK</translation> </message> @@ -2757,7 +2875,7 @@ nach <context> <name>QFile</name> <message> - <location filename="../src/corelib/io/qfile.cpp" line="+698"/> + <location filename="../src/corelib/io/qfile.cpp" line="+703"/> <location line="+155"/> <source>Destination file exists</source> <translation>Die Zieldatei existiert bereits</translation> @@ -2797,7 +2915,7 @@ nach <name>QFileDialog</name> <message> <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/> - <location line="+471"/> + <location line="+481"/> <source>All Files (*)</source> <translation>Alle Dateien (*)</translation> </message> @@ -2820,13 +2938,13 @@ nach <translation>Details</translation> </message> <message> - <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+465"/> + <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+467"/> <location line="+1"/> <source>File</source> <translation>Datei</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-488"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-498"/> <source>Open</source> <translation>Öffnen</translation> </message> @@ -2836,7 +2954,7 @@ nach <translation>Speichern unter</translation> </message> <message> - <location line="+699"/> + <location line="+709"/> <location line="+55"/> <location line="+1532"/> <source>&Open</source> @@ -2854,7 +2972,7 @@ nach <translation>Zuletzt besucht</translation> </message> <message> - <location line="-2530"/> + <location line="-2540"/> <source>&Rename</source> <translation>&Umbenennen</translation> </message> @@ -2869,17 +2987,17 @@ nach <translation>&Versteckte Dateien anzeigen</translation> </message> <message> - <location line="+1976"/> + <location line="+1986"/> <source>New Folder</source> <translation>Neues Verzeichnis</translation> </message> <message> - <location line="-2011"/> + <location line="-2021"/> <source>Find Directory</source> <translation>Verzeichnis suchen</translation> </message> <message> - <location line="+706"/> + <location line="+716"/> <source>Directories</source> <translation>Verzeichnisse</translation> </message> @@ -2889,8 +3007,8 @@ nach <translation>Alle Dateien (*.*)</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-665"/> - <location line="+669"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-675"/> + <location line="+679"/> <source>Directory:</source> <translation>Verzeichnis:</translation> </message> @@ -2989,7 +3107,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Unbekannt</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2130"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2140"/> <source>Show </source> <translation>Anzeigen </translation> </message> @@ -3005,7 +3123,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>&Neues Verzeichnis</translation> </message> <message> - <location line="+677"/> + <location line="+687"/> <location line="+43"/> <source>&Choose</source> <translation>&Auswählen</translation> @@ -3016,8 +3134,8 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Löschen</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-713"/> - <location line="+673"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-723"/> + <location line="+683"/> <source>File &name:</source> <translation>Datei&name:</translation> </message> @@ -3033,12 +3151,42 @@ Möchten Sie die Datei trotzdem löschen?</translation> <source>Create New Folder</source> <translation>Neuen Ordner erstellen</translation> </message> + <message> + <location/> + <source>Go back</source> + <translation>Zurück</translation> + </message> + <message> + <location/> + <source>Go forward</source> + <translation>Vor</translation> + </message> + <message> + <location/> + <source>Go to the parent directory</source> + <translation>Gehe zum übergeordneten Verzeichnis</translation> + </message> + <message> + <location/> + <source>Create a New Folder</source> + <translation>Neuen Ordner erstellen</translation> + </message> + <message> + <location/> + <source>Change to list view mode</source> + <translation>Wechsle zu Listenansicht</translation> + </message> + <message> + <location/> + <source>Change to detail view mode</source> + <translation>Wechsle zu Detailansicht</translation> + </message> </context> <context> <name>QFileSystemModel</name> <message> <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="+740"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+476"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+482"/> <source>%1 TB</source> <translation>%1 TB</translation> </message> @@ -3418,14 +3566,14 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Verbindung mit %1 beendet</translation> </message> <message> - <location filename="../src/network/access/qftp.cpp" line="+1377"/> + <location filename="../src/network/access/qftp.cpp" line="+1383"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="-243"/> <location line="+250"/> <source>Connection closed</source> <translation>Verbindung beendet</translation> </message> <message> - <location line="-1489"/> + <location line="-1495"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="-1566"/> <source>Host %1 not found</source> <translation>Rechner %1 konnte nicht gefunden werden</translation> @@ -3450,7 +3598,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Unbekannter Fehler</translation> </message> <message> - <location line="+891"/> + <location line="+897"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/> <source>Connecting to host failed: %1</source> @@ -3522,7 +3670,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> %1</translation> </message> <message> - <location line="-1529"/> + <location line="-1535"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="-1356"/> <source>Not connected</source> <translation>Keine Verbindung</translation> @@ -3912,7 +4060,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QIODevice</name> <message> - <location filename="../src/corelib/global/qglobal.cpp" line="+2094"/> + <location filename="../src/corelib/global/qglobal.cpp" line="+2099"/> <source>Permission denied</source> <translation>Zugriff verweigert</translation> </message> @@ -3932,7 +4080,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Kein freier Speicherplatz auf dem Gerät vorhanden</translation> </message> <message> - <location filename="../src/corelib/io/qiodevice.cpp" line="+1564"/> + <location filename="../src/corelib/io/qiodevice.cpp" line="+1596"/> <source>Unknown error</source> <translation>Unbekannter Fehler</translation> </message> @@ -3940,7 +4088,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QInputContext</name> <message> - <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+256"/> + <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+301"/> <source>XIM</source> <translation>XIM</translation> </message> @@ -3996,7 +4144,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Operation unmap fehlgeschlagen für '%1': %2</translation> </message> <message> - <location line="+361"/> + <location line="+375"/> <source>The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]</source> <translation>Das Plugin '%1' verwendet eine inkompatible Qt-Bibliothek. (%2.%3.%4) [%5]</translation> </message> @@ -4011,7 +4159,8 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Unbekannter Fehler</translation> </message> <message> - <location line="-402"/> + <location line="-540"/> + <location line="+138"/> <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/> <source>The shared library was not found.</source> <translation>Die dynamische Bibliothek konnte nicht gefunden werden.</translation> @@ -4048,7 +4197,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QLineEdit</name> <message> - <location filename="../src/gui/widgets/qlineedit.cpp" line="+2107"/> + <location filename="../src/gui/widgets/qlineedit.cpp" line="+2110"/> <source>Select All</source> <translation>Alles auswählen</translation> </message> @@ -4124,7 +4273,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> - <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/> + <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+79"/> <location line="+59"/> <source>%1: Invalid name</source> <translation>%1: Ungültiger Name</translation> @@ -4371,7 +4520,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QMediaPlayer</name> <message> - <location filename="../src/multimedia/playback/qmediaplayer.cpp" line="+494"/> + <location filename="../src/multimedia/playback/qmediaplayer.cpp" line="+496"/> <source>The QMediaPlayer object does not have a valid service</source> <translation>Das QMediaPlayer-Objekt verfügt über keinen gültigen Dienst</translation> </message> @@ -4462,7 +4611,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Hilfe</translation> </message> <message> - <location line="-1119"/> + <location line="-1129"/> <source>Show Details...</source> <translation>Details einblenden...</translation> </message> @@ -4735,7 +4884,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QNetworkAccessManager</name> <message> - <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+885"/> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+910"/> <source>Network access is disabled.</source> <translation>Der Zugriff auf das Netzwerk ist nicht gestattet.</translation> </message> @@ -4748,17 +4897,17 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Beim Herunterladen von %1 trat ein Fehler auf - Die Antwort des Servers ist: %2</translation> </message> <message> - <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="-801"/> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="-828"/> <source>Protocol "%1" is unknown</source> <translation>Das Protokoll "%1" ist unbekannt</translation> </message> <message> - <location line="+177"/> + <location line="+192"/> <source>Network session error.</source> <translation>Fehler bei Netzwerkverbindung.</translation> </message> <message> - <location line="+323"/> + <location line="+329"/> <source>Temporary network failure.</source> <translation>Das Netzwerk ist zur Zeit ausgefallen.</translation> </message> @@ -4766,7 +4915,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QNetworkReplyImpl</name> <message> - <location line="+110"/> + <location line="+111"/> <location line="+28"/> <source>Operation canceled</source> <translation>Operation abgebrochen</translation> @@ -4775,7 +4924,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QNetworkSession</name> <message> - <location filename="../src/network/bearer/qnetworksession.cpp" line="+441"/> + <location filename="../src/network/bearer/qnetworksession.cpp" line="+449"/> <source>Invalid configuration.</source> <translation>Ungültige Konfiguration.</translation> </message> @@ -4783,8 +4932,8 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QNetworkSessionPrivateImpl</name> <message> - <location filename="../src/plugins/bearer/qnetworksession_impl.cpp" line="+270"/> - <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+215"/> + <location filename="../src/plugins/bearer/qnetworksession_impl.cpp" line="+272"/> + <location filename="../src/plugins/bearer/symbian/qnetworksession_impl.cpp" line="+227"/> <source>Unknown session error.</source> <translation>Unbekannter Fehler bei Netzwerkverbindung.</translation> </message> @@ -4813,7 +4962,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>Das Roaming wurde abgebrochen oder ist hier nicht möglich.</translation> </message> <message> - <location filename="../src/plugins/bearer/icd/qnetworksession_impl.cpp" line="+1159"/> + <location filename="../src/plugins/bearer/icd/qnetworksession_impl.cpp" line="+1005"/> <source>Roaming error</source> <translation>Fehler beim Roaming</translation> </message> @@ -4905,12 +5054,12 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QODBCDriver</name> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1842"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1888"/> <source>Unable to connect</source> <translation>Es kann keine Verbindung aufgebaut werden</translation> </message> <message> - <location line="+234"/> + <location line="+269"/> <source>Unable to disable autocommit</source> <translation>'autocommit' konnte nicht deaktiviert werden</translation> </message> @@ -4930,7 +5079,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <translation>'autocommit' konnte nicht aktiviert werden</translation> </message> <message> - <location line="-277"/> + <location line="-312"/> <source>Unable to connect - Driver doesn't support all functionality required</source> <translation>Es kann keine Verbindung aufgebaut werden weil der Treiber die benötigte Funktionalität nicht vollständig unterstützt</translation> </message> @@ -4938,7 +5087,7 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QODBCResult</name> <message> - <location line="-940"/> + <location line="-941"/> <location line="+351"/> <source>QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> <translation>QODBCResult::reset: 'SQL_CURSOR_STATIC' konnte nicht als Attribut des Befehls gesetzt werden. Bitte prüfen Sie die Konfiguration Ihres ODBC-Treibers</translation> @@ -4990,10 +5139,16 @@ Möchten Sie die Datei trotzdem löschen?</translation> <context> <name>QObject</name> <message> - <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="-193"/> + <location filename="../src/declarative/util/qdeclarativexmllistmodel.cpp" line="-194"/> <source>"%1" duplicates a previous role name and will be disabled.</source> <translation>"%1" ist bereits als Name einer Rolle vergeben und wird daher deaktiviert.</translation> </message> + <message> + <location filename="../src/3rdparty/phonon/phonon/pulsesupport.cpp" line="+162"/> + <location line="+11"/> + <source>PulseAudio Sound Server</source> + <translation>PulseAudio Sound Server</translation> + </message> </context> <context> <name>QPPDOptionsModel</name> @@ -5915,7 +6070,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>Zeitüberschreitung</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+856"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+866"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> @@ -7535,7 +7690,157 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>Umdrehen</translation> </message> <message> - <location line="+603"/> + <location line="+4"/> + <source>Kanji</source> + <translation>Kanji</translation> + </message> + <message> + <location line="+1"/> + <source>Muhenkan</source> + <translation>Muhenkan</translation> + </message> + <message> + <location line="+1"/> + <source>Henkan</source> + <translation>Henkan</translation> + </message> + <message> + <location line="+1"/> + <source>Romaji</source> + <translation>Romaji</translation> + </message> + <message> + <location line="+1"/> + <source>Hiragana</source> + <translation>Hiragana</translation> + </message> + <message> + <location line="+1"/> + <source>Katakana</source> + <translation>Katakana</translation> + </message> + <message> + <location line="+1"/> + <source>Hiragana Katakana</source> + <translation>Hiragana Katakana</translation> + </message> + <message> + <location line="+1"/> + <source>Zenkaku</source> + <translation>Zenkaku</translation> + </message> + <message> + <location line="+1"/> + <source>Hankaku</source> + <translation>Hankaku</translation> + </message> + <message> + <location line="+1"/> + <source>Zenkaku Hankaku</source> + <translation>Zenkaku Hankaku</translation> + </message> + <message> + <location line="+1"/> + <source>Touroku</source> + <translation>Touroku</translation> + </message> + <message> + <location line="+1"/> + <source>Massyo</source> + <translation>Massyo</translation> + </message> + <message> + <location line="+1"/> + <source>Kana Lock</source> + <translation>Kana Lock</translation> + </message> + <message> + <location line="+1"/> + <source>Kana Shift</source> + <translation>Kana Shift</translation> + </message> + <message> + <location line="+1"/> + <source>Eisu Shift</source> + <translation>Eisu Shift</translation> + </message> + <message> + <location line="+1"/> + <source>Eisu toggle</source> + <translation>Eisu toggle</translation> + </message> + <message> + <location line="+1"/> + <source>Code input</source> + <translation>Code-Eingabe</translation> + </message> + <message> + <location line="+1"/> + <source>Multiple Candidate</source> + <translation>Mehrere Vorschläge</translation> + </message> + <message> + <location line="+1"/> + <source>Previous Candidate</source> + <translation>Vorangegangener Vorschlag</translation> + </message> + <message> + <location line="+4"/> + <source>Hangul</source> + <translation>Hangul</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Start</source> + <translation>Hangul Anfang</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul End</source> + <translation>Hangul Ende</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Hanja</source> + <translation>Hangul Hanja</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Jamo</source> + <translation>Hangul Jamo</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Romaja</source> + <translation>Hangul Romaja</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Jeonja</source> + <translation>Hangul Jeonja</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Banja</source> + <translation>Hangul Banja</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul PreHanja</source> + <translation>Hangul PreHanja</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul PostHanja</source> + <translation>Hangul PostHanja</translation> + </message> + <message> + <location line="+1"/> + <source>Hangul Special</source> + <translation>Hangul Special</translation> + </message> + <message> + <location line="+602"/> <location line="+135"/> <source>Ctrl</source> <translation>Strg</translation> @@ -7569,7 +7874,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>F%1</translation> </message> <message> - <location line="-899"/> + <location line="-934"/> <source>Home Page</source> <translation>Startseite</translation> </message> @@ -7703,7 +8008,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>Abbrechen</translation> </message> <message> - <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+331"/> + <location filename="../src/gui/kernel/qsoftkeymanager_s60.cpp" line="+319"/> <source>Exit</source> <translation>Beenden</translation> </message> @@ -8039,7 +8344,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <context> <name>QTcpServer</name> <message> - <location filename="../src/network/socket/qtcpserver.cpp" line="+282"/> + <location filename="../src/network/socket/qtcpserver.cpp" line="+292"/> <source>Operation on socket is not supported</source> <translation>Diese Socket-Operation wird nicht unterstützt</translation> </message> @@ -8047,7 +8352,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+2034"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2036"/> <source>&Undo</source> <translation>&Rückgängig</translation> </message> @@ -8105,7 +8410,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <context> <name>QUdpSocket</name> <message> - <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/> + <location filename="../src/network/socket/qudpsocket.cpp" line="+189"/> <source>This platform does not support IPv6</source> <translation>Diese Plattform unterstützt kein IPv6</translation> </message> @@ -8205,7 +8510,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+712"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+753"/> <source>Request cancelled</source> <translation>Anfrage wurde abgebrochen</translation> </message> @@ -8238,7 +8543,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+44"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> <translation>Senden</translation> @@ -8490,7 +8795,13 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>Von rechts nach links</translation> </message> <message> - <location line="+105"/> + <location line="+100"/> + <source>Missing Plug-in</source> + <comment>Label text to be used when a plug-in is missing</comment> + <translation>Fehlendes Plugin</translation> + </message> + <message> + <location line="+20"/> <source>Loading...</source> <comment>Media controller status message when the media is loading</comment> <translation>Lädt...</translation> @@ -8724,7 +9035,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>%1 Sekunden</translation> </message> <message> - <location line="-210"/> + <location line="-225"/> <source>Inspect</source> <comment>Inspect Element context menu item</comment> <translation>Prüfen</translation> @@ -8748,13 +9059,13 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>Gespeicherte Suchanfragen löschen</translation> </message> <message> - <location line="+75"/> + <location line="+90"/> <source>Unknown</source> <comment>Unknown filesize FTP directory listing item</comment> <translation>Unbekannt</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+167"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+236"/> <source>Web Inspector - %2</source> <translation>Web Inspector - %2</translation> </message> @@ -8765,12 +9076,12 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>%1 (%2x%3 Pixel)</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+416"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+456"/> <source>Bad HTTP request</source> <translation>Ungültige HTTP-Anforderung</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="-291"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="-306"/> <source>This is a searchable index. Enter search keywords: </source> <comment>text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index'</comment> <translation>Dieser Index verfügt über eine Suchfunktion. Geben Sie einen Suchbegriff ein:</translation> @@ -8850,22 +9161,22 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> </translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1833"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1959"/> <source>JavaScript Alert - %1</source> <translation>JavaScript-Hinweis - %1</translation> </message> <message> - <location line="+16"/> + <location line="+17"/> <source>JavaScript Confirm - %1</source> <translation>JavaScript-Bestätigung - %1</translation> </message> <message> - <location line="+19"/> + <location line="+20"/> <source>JavaScript Prompt - %1</source> <translation>JavaScript-Eingabeaufforderung - %1</translation> </message> <message> - <location line="+25"/> + <location line="+26"/> <source>JavaScript Problem - %1</source> <translation>JavaScript-Problem - %1</translation> </message> @@ -8875,7 +9186,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>Das Skript dieser Webseite ist fehlerhaft. Möchten Sie es anhalten?</translation> </message> <message> - <location line="+381"/> + <location line="+374"/> <source>Move the cursor to the next character</source> <translation>Positionsmarke auf folgendes Zeichen setzen</translation> </message> @@ -9096,7 +9407,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5805"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5809"/> <source>*</source> <translation>*</translation> </message> @@ -9104,7 +9415,7 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <context> <name>QWizard</name> <message> - <location filename="../src/gui/dialogs/qwizard.cpp" line="+661"/> + <location filename="../src/gui/dialogs/qwizard.cpp" line="+701"/> <source>Cancel</source> <translation>Abbrechen</translation> </message> @@ -11927,4 +12238,27 @@ Bitte wählen Sie einen anderen Dateinamen.</translation> <translation>Das Attribut '%1' enthält einen ungültigen qualifizierten Namen: %2.</translation> </message> </context> +<context> + <name>Widget</name> + <message> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/hybridPixmap/widget.ui"/> + <source>Widget</source> + <translation>Widget</translation> + </message> + <message> + <location/> + <source>about:blank</source> + <translation>about:blank</translation> + </message> + <message> + <location/> + <source>Image from Qt to HTML</source> + <translation>Bild von Qt zu HTML</translation> + </message> + <message> + <location/> + <source>Pixmap from Qt to HTML</source> + <translation>Pixmap von Qt zu HTML</translation> + </message> +</context> </TS> diff --git a/translations/qt_help_de.ts b/translations/qt_help_de.ts index 40d1158..c7a8103 100644 --- a/translations/qt_help_de.ts +++ b/translations/qt_help_de.ts @@ -43,7 +43,7 @@ </message> <message> <location line="+11"/> - <location line="+49"/> + <location line="+52"/> <source>Cannot open collection file: %1</source> <translation>Katalogdatei kann nicht geöffnet werden: %1</translation> </message> @@ -58,7 +58,7 @@ <translation>Die Katalogdatei '%1' existiert bereits.</translation> </message> <message> - <location line="+148"/> + <location line="+151"/> <source>Unknown filter '%1'!</source> <translation>Unbekannter Filter '%1'.</translation> </message> @@ -78,12 +78,12 @@ <translation>Die Datenbank '%1' kann nicht zur Optimierung geöffnet werden.</translation> </message> <message> - <location line="-436"/> + <location line="-439"/> <source>Cannot create directory: %1</source> <translation>Das Verzeichnis kann nicht angelegt werden: %1</translation> </message> <message> - <location line="+23"/> + <location line="+26"/> <source>Cannot copy collection file: %1</source> <translation>Die Katalogdatei kann nicht kopiert werden: %1</translation> </message> @@ -158,7 +158,7 @@ <translation>Die Datenbank-Datei %1 kann nicht geöffnet werden.</translation> </message> <message> - <location line="+11"/> + <location line="+14"/> <source>Cannot register namespace %1!</source> <translation>Der Namensraum %1 kann nicht registriert werden.</translation> </message> @@ -266,7 +266,7 @@ <context> <name>QHelpProject</name> <message> - <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+86"/> + <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+88"/> <source>Unknown token.</source> <translation>Unbekanntes Token.</translation> </message> @@ -282,16 +282,16 @@ </message> <message> <location line="+14"/> - <source>A virtual folder must not contain a '/' character!</source> - <translation>Ein virtuelles Verzeichnis darf kein '/'-Zeichen enthalten.</translation> + <source>Virtual folder has invalid syntax.</source> + <translation>Ungültige Syntax bei Angabe des virtuellen Verzeichnisses.</translation> </message> <message> - <location line="+6"/> - <source>A namespace must not contain a '/' character!</source> - <translation>Ein Namensraum darf kein '/'-Zeichen enthalten.</translation> + <location line="+5"/> + <source>Namespace has invalid syntax.</source> + <translation>Ungültige Syntax der Namensraum-Angabe.</translation> </message> <message> - <location line="+20"/> + <location line="+19"/> <source>Missing namespace in QtHelpProject.</source> <translation>Fehlender Namensraum in QtHelpProject.</translation> </message> @@ -306,7 +306,7 @@ <translation>Fehlendes Attribut in Schlagwort in Zeile %1.</translation> </message> <message> - <location line="+125"/> + <location line="+141"/> <source>The input file %1 could not be opened!</source> <translation>Die Eingabe-Datei %1 kann nicht geöffnet werden.</translation> </message> |