| 978 | } |
| 979 | |
| 980 | ILaunchConfiguration* RunController::createLaunchConfiguration ( LaunchConfigurationType* type, |
| 981 | const QPair<QString,QString>& launcher, |
| 982 | IProject* project, const QString& name ) |
| 983 | { |
| 984 | KConfigGroup launchGroup; |
| 985 | if( project ) |
| 986 | { |
| 987 | launchGroup = project->projectConfiguration()->group( Strings::LaunchConfigurationsGroup() ); |
| 988 | |
| 989 | } else |
| 990 | { |
| 991 | launchGroup = Core::self()->activeSession()->config()->group( Strings::LaunchConfigurationsGroup() ); |
| 992 | |
| 993 | } |
| 994 | QStringList configs = launchGroup.readEntry( Strings::LaunchConfigurationsListEntry(), QStringList() ); |
| 995 | uint num = 0; |
| 996 | QString baseName = QStringLiteral("Launch Configuration"); |
| 997 | while( configs.contains( QStringLiteral( "%1 %2" ).arg( baseName ).arg( num ) ) ) |
| 998 | { |
| 999 | num++; |
| 1000 | } |
| 1001 | QString groupName = QStringLiteral( "%1 %2" ).arg( baseName ).arg( num ); |
| 1002 | KConfigGroup launchConfigGroup = launchGroup.group( groupName ); |
| 1003 | QString cfgName = name; |
| 1004 | if( name.isEmpty() ) |
| 1005 | { |
| 1006 | cfgName = i18n("New %1 Launcher", type->name() ); |
| 1007 | cfgName = makeUnique(cfgName); |
| 1008 | } |
| 1009 | |
| 1010 | launchConfigGroup.writeEntry(LaunchConfiguration::LaunchConfigurationNameEntry(), cfgName ); |
| 1011 | launchConfigGroup.writeEntry(LaunchConfiguration::LaunchConfigurationTypeEntry(), type->id() ); |
| 1012 | launchConfigGroup.sync(); |
| 1013 | configs << groupName; |
| 1014 | launchGroup.writeEntry( Strings::LaunchConfigurationsListEntry(), configs ); |
| 1015 | launchGroup.sync(); |
| 1016 | auto* l = new LaunchConfiguration( launchConfigGroup, project ); |
| 1017 | l->setLauncherForMode( launcher.first, launcher.second ); |
| 1018 | Core::self()->runControllerInternal()->addLaunchConfiguration( l ); |
| 1019 | return l; |
| 1020 | } |
| 1021 | |
| 1022 | QItemDelegate * KDevelop::RunController::delegate() const |
| 1023 | { |