А я чё-то не понял, в чём проблема... Что за частые смены рабочего каталога?
Я просто предлагаю ввести поддержку папок (точнее ссылок на папки) вида "." и ".." во всех полях ввода. То есть перед непосредственным использованием путей из полей ввода нужно будет просто их обработать ещё одной функцией, которая возвращает уже абсолютные пути. А вот со сложностью смены рабочего каталога у меня (при написании своих программ) никогда не возникало проблем. Всегда можно сделать ЧИСТО переносную версию программы. А я даже за то, чтобы вообще всегда делать такие программы, которые не зависят от абсолютных путей, реестра (если это возможно) и подобных вещей. Буду ОЧЕНЬ рад увидеть это в IDE - уж очень удобная утилитка вышла!
По поводу держать всё в одной папке - конечно так можно, но хотелось бы всё таки порядок в папке.
А конфиги - получается, что надо будет их править для каждой новой локации. Опять не очень...
З.Ы. Если не секрет, будь добр, расскажи, при помощи чего ты разработал IDE? Если не тяжело, приведи список ВСЕХ используемых программ (компиляторы, редакторы и т.п.) и свои комментарии по причине их выбора. Если что, можно в личку.
Заранее БЛАГОДАРЕН за ответы!
Добавлено (18.01.2010, 12:38)
---------------------------------------------
Причём ещё нужно добавить возможность ручной правки путей во всех полях ввода, чтобы не приходилось дополнительно лазить в ini-шку.
А по поводу смены раб. каталога - алгоритм прост:
1) сразу после запуска приложения можно даже не раб. каталог брать (потому как может отличаться от того, в котором лежит exe-шник), а путь к Ide.exe и из него уже извлечь папку. Пример: "D:\Game Files\Skulltag\ide_ru\Ide.exe" -> "D:\Game Files\Skulltag\ide_ru\".
2) сохранить этот корневой путь в переменную: "D:\Game Files\Skulltag\ide_ru\" -> rootdir.
3) затем использовать эту переменную, если в поле ввода был введён относительный путь: "..\pwads\" -> "D:\Game Files\Skulltag\ide_ru\..\pwads\" -> "D:\Game Files\Skulltag\pwads\".
Относительность пути можно определить по:
1 - наличию ".", "..",
2 - отсутствию буквы диска в начале.
Может ещё как то. А может второго варианта хватит в любом случае.
В общем всё сводится к простой работе со строками.
А ещё можно сделать так, чтобы при указании пути через диалог выбора папки, если начало выбранного пути совпадало с rootdir (или частично), то IDE сам бы вписывал относительный каталог (просто отрезал из полученного пути начало):
"D:\Game Files\Skulltag\pwads\" -> (одна папка не совпала, значит один раз добавить "..") -> "..\pwads\".
"D:\Game Files\Skulltag\ide_ru\"
"D:\Game Files\Skulltag\SomeDir1\pwads\" -> (две, значит добавить "..\..") -> "..\..\pwads\".
"D:\Game Files\Skulltag\SomeDir2\ide_ru\"
"D:\Game Files\Doom WADs\" -> (папка уже совсем в другом месте) -> значит надо ещё выдавать запрос, сохранить ли относительный путь или нет (по-умолчанию как и было "нет").
"D:\Game Files\Skulltag\ide_ru\"
И всё! И это будет уже совсем шоколадно!