void attemptMigrate( KDevelop::IProject* project ) { if ( !baseGroup(project).hasKey( Config::Old::projectBuildDirs ) ) { qCDebug(CMAKE) << "CMake settings migration: already done, exiting"; return; } KConfigGroup baseGrp = baseGroup(project); KDevelop::Path buildDir( baseGrp.readEntry( Config::Old::currentBuildDirKey, QString() ) ); int buildDirIndex = -1; const QStringList existingBuildDirs = baseGrp.readEntry( Config::Old::projectBuildDirs, QStringList() ); { // also, find current build directory in this list (we need an index, not path) QString currentBuildDirCanonicalPath = QDir( buildDir.toLocalFile() ).canonicalPath(); for( int i = 0; i < existingBuildDirs.count(); ++i ) { const QString& nextBuildDir = existingBuildDirs.at(i); if( QDir(nextBuildDir).canonicalPath() == currentBuildDirCanonicalPath ) { buildDirIndex = i; } } } int buildDirsCount = existingBuildDirs.count(); qCDebug(CMAKE) << "CMake settings migration: existing build directories" << existingBuildDirs; qCDebug(CMAKE) << "CMake settings migration: build directory count" << buildDirsCount; qCDebug(CMAKE) << "CMake settings migration: current build directory" << buildDir << "(index" << buildDirIndex << ")"; baseGrp.writeEntry( Config::buildDirCountKey, buildDirsCount ); baseGrp.writeEntry( Config::buildDirIndexKey, buildDirIndex ); for (int i = 0; i < buildDirsCount; ++i) { qCDebug(CMAKE) << "CMake settings migration: writing group" << i << ": path" << existingBuildDirs.at(i); KConfigGroup buildDirGrp = buildDirGroup( project, i ); buildDirGrp.writeEntry( Config::Specific::buildDirPathKey, existingBuildDirs.at(i) ); } baseGrp.deleteEntry( Config::Old::currentBuildDirKey ); baseGrp.deleteEntry( Config::Old::currentCMakeBinaryKey ); baseGrp.deleteEntry( Config::Old::currentBuildTypeKey ); baseGrp.deleteEntry( Config::Old::currentInstallDirKey ); baseGrp.deleteEntry( Config::Old::currentEnvironmentKey ); baseGrp.deleteEntry( Config::Old::currentExtraArgumentsKey ); baseGrp.deleteEntry( Config::Old::projectBuildDirs ); }
void FavoriteAppsModel::addFavorite(const QString &favoriteId) { QString serviceId = serviceIdFromFavoriteId(favoriteId); if (serviceId.isEmpty()) { return; } KService::Ptr service = KService::serviceByStorageId(serviceId); if (service.isNull()) { kWarning() << "Could not find a service for" << serviceId; return; } int rank; if (!m_favoriteList.isEmpty()) { rank = m_favoriteList.last().rank + 1; } else { rank = 0; } FavoriteInfo info = { rank, service }; int row = m_favoriteList.count(); beginInsertRows(QModelIndex(), row, row); m_favoriteList << info; endInsertRows(); countChanged(); KConfigGroup baseGroup(m_config, "favorites"); KConfigGroup group(&baseGroup, QString("favorite-%1").arg(rank)); group.writeEntry("serviceId", serviceId); baseGroup.sync(); }
void FavoriteAppsModel::setConfig(const KSharedConfig::Ptr &ptr) { m_config = ptr; KConfigGroup baseGroup(m_config, "favorites"); // get all the favorites QMap<int, KService::Ptr> favoriteMap; foreach (const QString &favoriteGroup, baseGroup.groupList()) { if (favoriteGroup.startsWith("favorite-")) { KConfigGroup favoriteConfig(&baseGroup, favoriteGroup); int rank = favoriteGroup.split("-").last().toInt(); QString id = favoriteConfig.readEntry("serviceId"); KService::Ptr service = KService::serviceByStorageId(id); if (!service.isNull()) { favoriteMap.insert(rank, service); } } } beginResetModel(); m_favoriteList.clear(); auto it = favoriteMap.constBegin(), end = favoriteMap.constEnd(); for (; it != end; ++it) { FavoriteInfo info = { it.key(), it.value() }; m_favoriteList << info; } endResetModel(); countChanged(); }
int currentBuildDirIndex( KDevelop::IProject* project ) { KConfigGroup baseGrp = baseGroup(project); if ( baseGrp.hasKey( Config::buildDirOverrideIndexKey ) ) return baseGrp.readEntry<int>( Config::buildDirOverrideIndexKey, 0 ); else return baseGrp.readEntry<int>( Config::buildDirIndexKey, 0 ); // default is 0 because QString::number(0) apparently returns an empty string }
void removeOverrideBuildDirIndex( KDevelop::IProject* project, bool writeToMainIndex ) { KConfigGroup baseGrp = baseGroup(project); if( !baseGrp.hasKey(Config::buildDirOverrideIndexKey) ) return; if( writeToMainIndex ) baseGrp.writeEntry( Config::buildDirIndexKey, baseGrp.readEntry(Config::buildDirOverrideIndexKey) ); baseGrp.deleteEntry(Config::buildDirOverrideIndexKey); }
void FavoriteAppsModel::removeFavorite(const QString &favoriteId) { int row = rowForFavoriteId(favoriteId); if (row == -1) { kWarning() << "Could not find favorite" << favoriteId; return; } beginRemoveRows(QModelIndex(), row, row); FavoriteInfo info = m_favoriteList.takeAt(row); endRemoveRows(); countChanged(); KConfigGroup baseGroup(m_config, "favorites"); KConfigGroup group(&baseGroup, QString("favorite-%1").arg(info.rank)); group.deleteGroup(); baseGroup.sync(); }
int buildDirCount( KDevelop::IProject* project ) { return baseGroup(project).readEntry<int>( Config::buildDirCountKey, 0 ); }
bool hasProjectRootRelative(KDevelop::IProject* project) { return baseGroup(project).hasKey( Config::Old::projectRootRelativeKey ); }
QString projectRootRelative( KDevelop::IProject* project ) { return baseGroup(project).readEntry( Config::Old::projectRootRelativeKey, "." ); }