Добавлено: Пт мар 30, 2007 18:40
Переделаем ТК в Миранду

Форум поддержки пользователей Total Commander
https://forum.wincmd.ru/
То есть, ты предлагаешь пользователю играть в загадки-отгадки: а что же сейчас выкинет этот конкретный плагин при попытке переименовать ссылку на файл - переименует ссылку или, никого не спрося, сразу полезет в файловую систему, грохать имена оригинальных файлов, так что ли? Извини, но это идёт вразрез со всеми моими привычками и ожиданиями. Я в самую первую очередь ожидаю, что переименуется то, что я вижу на экране. И уж только потом, возможно, выполнятся дополнительные действия, вытекающие из специфики плагина. Просмотр и редактирование, на которые ты так упирал чуть ранее, этому совершенно не противоречат, т.к. ссылки на файлы при этих операциях идентичны самим файлам. С переименованием (и копированием) всё совсем не так. Грубо говоря: ты пытаешься в винде переименовать ярлык (LNK-файл), а вместо этого винда тебе берёт и переименовывает файл, на который этот ярлык ссылается. Причём не предупредив.VadiMGP писал(а):А если без шуток, то такая проблема может возникнуть (по крайней мере, при сегодняшнем API), только если плагин явно сообщит ТС, что он (плагин) поддерживает переименование своих собственных элементов.
Речь совершенно не об этом. Пользователь переименовывает только что найденный файл, буквально тем же самым инструментом, которым этот файл нашёл - и всё, файл более для него невидим. Представь, что ты в обычном режиме в Тотале переименовал файл, а панель не обновляется, причём для её обновления надо запустить мега-переиндексацию часика на полтора. Долго бы ты оставался на таком файл-менеджере? Я к тому, что раз уж пользователь явно вызывает переименование, и плагин знает, что пользователь его вызывает, пусть плагин это дело корректно отработает, всё учтёт и пересчитает. А для этого необходимо, чтобы соответствующая функция плагина была вызвана Тоталом. А именно это сейчас и происходит, и именно это ты хочешь убрать. Как-то нелогично...VadiMGP писал(а):Да, господи, у самого ТС те же проблемы например на ФТП панели. Файл, вроде бы, тут в панели есть, а на самом деле этого суслика уже может и не быть.
Именно это я говорил с самого начала.VadiMGP писал(а):А вообще-то, все равно, я считаю, что самый нормальный путь - это создание поисковых (и других видов) плагинов. Тогда не надо будет впихивать нужную функциональность в чуждые рамки.
При чём тут копирование из панели результатов поиска? Не все плагины типа "временная панель" поисковые. То есть я вообще просто пример привёл, какие трудности МОГУТ поджидать.VadiMGP писал(а):Почему? Я не понял.
А сегодня, при копировании из панели результатов поиска сохраняется структура? тогда в чем разница? Панель поиска - тоже в определенном смысле виртуальная панель.
Разница в том, что в панели с результатом поиска файлы отображаются с полным путём в подробном режиме, и в том, что панель с результатами поиска не обновляется так, как обычная, а панели с wfx плагинами обычно обновляются (ну плюс ещё копировать пути плохо выходит в одном случае). Т.е. выхода два: либо Гислер дорабатывает до приемлемого состояния панель поиска результатов и делает так, чтобы панель плагинов типа "временная панель" отличалась отпанели поиска результатов только именами файлов (в одном случае их генерирует плагин, в другом - тотал), либо панель для обоих типов wfx-плагинов остаётся общей, но Гислер изменяет API так, чтобы плагины могли делать только часть действий, оставляя остальное на тотал.VadiMGP писал(а):А вот тут совсем не понял. Объясни, пожалуйста. И опять-таки в чем принципиальная разница работы с виртуальной панелью и с сегодняшней панелью результатов поиска? Я и без плагина сегодня могу сделать такой поиск, чтобы нашлись и файлы и папки.
Слушай, ну неужели я так невнятно выражаюсь, что меня можно понять с точностью до наоборот? Еще раз:То есть, ты предлагаешь пользователю играть в загадки-отгадки:
По второму кругу... Не идентичны - я показывал в чем именно. Могу снова привести эти строки, можем побайтно сравнить. А насчет "не противоречат" я не понял, что ты имеешь в виду. Что чему не противоречит?Просмотр и редактирование, на которые ты так упирал чуть ранее, этому совершенно не противоречат, т.к. ссылки на файлы при этих операциях идентичны самим файлам.
Я так и знал, что возникнет такая аналогия. На мой взгляд, она неприменима в данном случае. Дело в том, что .LNK файл в винде явно декларирован как объект отличный от файла. Он живет своей жизнью. В случае же виртуальных панелей юзер ни сном ни духом не знает о существовании каких-то там ссылок. Эти ссылки являются лишь техническим приемом, внутренним соглашением между ТС и плагином, для показа юзеру настоящих файлов. Разумеется, ты можешь написать, например, плагин-менеджер шорткатов на файлы (хотя мне кажется что при существующем API такой полноценный плагин невозможен, но допустим). Юзер будет их создавать, удалять, редактировать, просматривать. Но тогда это уже будет твоя забота, какие средства дать юзеру, чтобы он смог недвусмысленно указать над каким объектом он хочет выполнить операцию. А за что всем остальным отдуваться?Грубо говоря: ты пытаешься в винде переименовать ярлык (LNK-файл), а вместо этого...
Ты изящно пропустил один этап - юзер вызывает ТС, а уже ТС вызывает для переименования плагин. Мне страшно интересно, почему это плагин должен выполнять работу ТС? Можно получить простое объяснение? А сейчас юзер просит ТС переименовать файл, а ТС перепихивает файловую работу на плагин.Я к тому, что раз уж пользователь явно вызывает переименование, и плагин знает, что пользователь его вызывает, пусть плагин это дело корректно отработает, всё учтёт и пересчитает. А для этого необходимо, чтобы соответствующая функция плагина была вызвана Тоталом. А именно это сейчас и происходит, и именно это ты хочешь убрать. Как-то нелогично...
Ну так и я говорил, пока язык не отсох. А что толку? Это был так, глас вопиющего...Именно это я говорил с самого начала.
Да я про панель поиска спросил не потому что она от "поиска" а именно потому что на режим Ctrl+B похожа. Вот ты и ответил. Спасибо.Да и копируются сейчас файлы как при режиме Ctrl+B,
Ты ошибаешься, никакой свободы нету. Все что касается структуры решает единолично ТС. Он только вызывает плагин для копирования одиночного файла.оставляя реализацию функции копирования на вас, Гислер даёт вам больше свободы - сейчас ведь нет возможности копировать со структурой)
Почему обязательно ошибка? Я же написал - ситуация совершенно штатная, прекрасно обрабатывается уже сегодня. ТС в такой ситуации не дает никакой ошибки. Не вижу в чем проблема.если ты сначала удалишь Folder из панели результатов поиска, а потом попытаешься удалить File, вылезет ошибка.
Проще-то некуда. Осталось всего лишь отличить две ситуации: когда юзер выразил желание переименовать файл и когда он выразил желание переименовать ссылку на него.VadiMGP писал(а):Я хочу, чтобы в ситуации, когда юзер выразил желание переименовать файл, ТС переименовал его. Чего проще-то?
Не противоречат моим словам. Иначе говоря, просмотр - это неудачный пример. Если я на файле-ссылке жму F3, то вряд ли это означает, что я хочу просмотреть какие-то внутренние структуры плагина, обеспечивающие привязку ссылки к файлу. Просмотр всегда должен выполняться только с оригинальным файлом. Но если я жму Shift+F6, то тут ещё бабка надвое сказала, чего мне хочется - переименовать ссылку или оригинальный файл.VadiMGP писал(а):Что чему не противоречит?
Здрасьте! Как же тогда юзер может, скажем, удалять файлы-ссылки, если они у него на 100% отождествлены с оригинальными файлами? В том-то и дело, что полного отождествления нет и быть не может!VadiMGP писал(а):В случае же виртуальных панелей юзер ни сном ни духом не знает о существовании каких-то там ссылок.
Понимаешь, в том варианте, который ты предлагаешь, у меня попросту не будет возможности такую заботу проявить! Вот в чём дело-то. Если Тотал сам будет просматривать, редактировать, переименовывать, удалять файлы, то плагин тут уже и не нужен.VadiMGP писал(а):Но тогда это уже будет твоя забота, какие средства дать юзеру, чтобы он смог недвусмысленно указать над каким объектом он хочет выполнить операцию.
Я этого не говорил. Мои слова означали, что один такой недостаток, который я привёл в качестве примера, был бы настолько громадным, что даже при отсутствии всех остальных недостатков таким файл-менеджером никто бы не пользовался.VadiMGP писал(а):А что, ты в ТС не видишь недостатков? Он идеален?
Временная панель - это не отождествление с реальным диском, иначе и плагин-то был бы не нужен. Интерфейс временной панели лишь облегчает некоторые задачи FS-плагину по сравнению со стандартным API, не больше и не меньше. В эти "некоторые задачи" переименование не входит и входить не может по вышеописанным причинам. Опять же, напомню, я говорю о существующем API, а не о гипотетическом, который хорошо было бы создать - об этом гипотетическом я не спорю и спорить не буду. Существующий интерфейс временной панели обязан предоставлять пользователю возможность переименования файлов-ссылок.VadiMGP писал(а):Мне страшно интересно, почему это плагин должен выполнять работу ТС? Можно получить простое объяснение? А сейчас юзер просит ТС переименовать файл, а ТС перепихивает файловую работу на плагин.
Ни малейших возражений не имею, но только в случае расширения существующего API и добавлении новых классов плагинов.VadiMGP писал(а):Не, ну правда, без подковырок, я хочу понять - зачем каждому плагинописателю надо сидеть и писать заново все те функции, которые в ТС уже готовы.
На 100% поддерживаю: это и есть по сути расширение API.VadiMGP писал(а):В конце концов, почему бы не дать тем же плагинам интерфейс для вызова файловых функций ТС?
Видимо, да, это частично был спор о разных вещах.Такое впечатление, что мы говорим о разных вещах...
Мамочки мои, держите меня семеро! ТАК ВЕДЬ И Я ЗА ТО ЖЕ! Я тоже за расширение API и тоже не требую изменеия существующего. Где я предлагал поменять API? Существующего API вполне достаточно, чтобы каждый занимался своим делом, плагин - хранит ссылки, ТС - выполняет файловые операции.На всякий случай ещё раз уточню: я не против внесения дополнений в существующий API, позволяющего добавить новые классы FS-плагинов. Я против лишь изменения существующего API временных панелей, из-за которого бы произошло полное отождествление файлов со ссылками на эти файлы.
Alt+Enter - наиболее разумный для этого путь.VadiMGP писал(а):Тогда почему ты не возражаеншь против того что на F4 ТС запускает редактор файла а не ссылки. А может я хочу ссылку отредактировать?
LinkInfo служит для реальных LNK-файлов, формат которых задан системой, и которые спокойно могут существовать и без Тотала. В плагине же, который отображает какие-то свои личные, сугубо плагиновские псевдо-файлы, просмотр и редактирование самой ссылки не имеет большого смысла. Если нужно - как указано выше, Alt+Enter, потому как это не есть типичная операция. Если же неимоверно хочется, чтобы F3 и F4 работали именно со ссылкой (например, логика плагина этого требует), то тогда попросту нет смысла реализовывать интерфейс временной панели.VadiMGP писал(а):И утверждение, что "вряд ли я хочу по F3 посмотреть ссылку" тоже сомнительно - плагин LinkInfo тому яркий пример.
Хм... Именно для того, чтобы избежать подобных ситуаций, и был создан интерфейс временной панели... Ты уверен, что всё реализовано именно так, как требуется по API?VadiMGP писал(а):когда я увидел, что ТС потребовал от FSE скопировать в о временную директорию полтора гига. Вместо того, чтобы запихнуть в бурнер ссылку на существующий файл.
Вообще-то, по Alt+Enter обычно вызывется диалог свойств файла (и в FSE, кстати, тоже). Но ты не понял, мой вопрос был не о том на какой хоткей это дело повесить. Вопрос был о распределении функций между плагином и Тоталом. Сегодня нет выбора и переименование обязан выполнять плагин. Вопрос был - почему ты возражаешь, чтобы ТС переименовал файл?Alt+Enter - наиболее разумный для этого путь.
Так и я на это же рассчитывал!Хм... Именно для того, чтобы избежать подобных ситуаций, и был создан интерфейс временной панели...
Конечно уверен. Сто раз все перепроверил, перед тем как к Гислеру обратился.Ты уверен, что всё реализовано именно так, как требуется по API?
Так я ж на него уже отвечал: потому что а) у пользователя нет возможности сказать, что именно он хочет переименовать - ссылку или файл, б) при переименовании файла нарушится работоспособность ссылки.VadiMGP писал(а):Вопрос был - почему ты возражаешь, чтобы ТС переименовал файл?
Ты всё время преподносишь эти улучшения как некую замену существующему интерфейсу. Это вызвало непонимание с самого начала, это начнёт вызывать непонимание и теперь. Это не замена, это расширение! Иначе говоря, плагин сам, осознанно, в здравом уме и твёрдой памяти говорит Тоталу: да, я такой-сякой, хочу поиметь возможные проблемы с битыми ссылками и не давать пользователю возможности ссылки переименовывать, а ты, Тотал, давай-ка мне взамен все супер-фичи от а) до г). И Тотал даёт ему эти супер-фичи. А другой плагин, например, какой-нибудь TempPanel, который разработан вот прямо сейчас и о каких-то будущих интерфейсах, реализованных в TC версии 12.0, знать не знает, ничего такого Тоталу сказать не сможет (потому как не в курсе, что надо говорить), и будет работать в точности так же, как работает сейчас.VadiMGP писал(а):И, напоследок, хочу спросить - не для спора, просто интереса ради. Ты действительно считаешь, что при таком раскладе минусы перевешивают плюсы?
С этим я не спорю. Но зачем ухудшать ситуацию, когда этого можно не делать? Одно дело - когда кто-то в совершенно левой программе, совершенно левыми операциями втихомолку переименовал файл, и теперь ссылка на него битая. Что ж, обидно, досадно, но ничего сделать здесь невозможно в принципе. И совершенно другая ситуация, когда ты сам, своими собственными руками, в своём собственном плагине вызываешь функцию переименования, и после этого ссылка перестаёт работать, хотя плагин мог бы запросто обработать это переименование и исправить ссылку на лету. Видишь разницу? В первом случае - неизбежное зло (сделать ничего нельзя), во втором - элементарное разгильдяйство (мог сделать, но не захотел).VadiMGP писал(а):(Хочу напомнить - я считаю, что проблема б) при переименовании это частный случай более общей проблемы неработоспособных ссылок и плагину все равно надо ее решать.)
Чокнуться можно! Ведь я говорил (как я думал - явно и недвусмысленно), что я не предлагаю никакой замены API. Все эти улучшения доступны без всяких изменеий/расширений нынешнего API. Так почему же ты упорно возвращаешься к "замене" API? Что именно так снова и снова наводит тебя на эту мысль? Ну покажи мне, пожалуйста, какой(ие) конкретно элемент(ы) API изменяются? И как именно?Ты всё время преподносишь эти улучшения как некую замену существующему интерфейсу.
Никакого. Я честно сказал - этот вопрос я задал не для спора, а из любопытства, из желания понять каковы твои предпочтения в ситуации с тем API, который мы имеем сегодня. Вот, есть API - такой, какой есть. Так какой из этих двух вариантов является более привлекательным до тех пор пока API не расширится?какой смысл спорить, какие плюсы какими минусами перевешиваются (
Эк ты сразу все под одну гребенку...во втором - элементарное разгильдяйство (мог сделать, но не захотел).
Как что? Да элементарные соображения совместимости! Если Гислер сейчас возьмёт и поменяет поведение Тотала при некоторых операциях с плагинами, не меняя API этих плагинов, то существующие плагины попросту перестанут корректно работать. Поэтому о таком изменении даже вопрос не ставится. Не будет такого изменения, и быть не может! Единственные возможные варианты:VadiMGP писал(а):Все эти улучшения доступны без всяких изменеий/расширений нынешнего API. Так почему же ты упорно возвращаешься к "замене" API? Что именно так снова и снова наводит тебя на эту мысль?
Вот API, такой какой он есть, менять категорически недопустимо. И неважно, что мне кажется лучше, а что хуже. И неважно, что тебе или даже Гислеру кажется лучше, а что хуже. Существующее поведение в принципе нельзя менять без расширения API. Просто по определению.VadiMGP писал(а):Вот, есть API - такой, какой есть. Так какой из этих двух вариантов является более привлекательным до тех пор пока API не расширится?
Точно так же, как и предлагаемое тобой изменение. А раз и то, и другое требует расширения API, то почему бы его не расширить сразу так, как удобнее?VadiMGP писал(а):то это возможно только после расширения API.
Я смайлик не просто так ведь поставил.VadiMGP писал(а):Эк ты сразу все под одну гребенку...
Интересно. Я в упор не вижу ни единой проблемы совместимости. И мне кажется, что ты невнимательно прочитал мое предложение. Оно касалось исключительно плагинов виртуальных панелей. На все остальные плагины это в принципе не может оказать никакого влияния. А теперь проиллюстрируй свою мысль на конкретном примере, пожалуйста. Какой именно плагин виртуальной панели написанный в соответствии с нынешним API станет работать некорректно? И в чем именно эта некорректность будет заключаться?Как что? Да элементарные соображения совместимости! Если Гислер сейчас возьмёт и поменяет поведение Тотала при некоторых операциях с плагинами, не меняя API этих плагинов, то существующие плагины попросту перестанут корректно работать.
Ну что ж, я не буду в третий раз настаивать на удовлетворении моего праздного любопытства. Неважно, так неважно.И неважно, что мне кажется лучше, а что хуже.
Тебя не сильно удивит, что я не знаком с таким определением? Более того, беру на себя смелость утверждать, что такого определения не существует.Существующее поведение в принципе нельзя менять без расширения API. Просто по определению.
Извини, я не понял какой смысл ты вкладывал в это предложение. Выражение "такой, какой есть" синоним слова "неизмененный". То есть, я вижу фразу "Неизмененный API менять категорически недопустимо."Вот API, такой какой он есть, менять категорически недопустимо.
Высшие силы vs. человеческая натура?(как противопоставление ситуации, когда сделать это самое что-либо даже возможности ни малейшей не существует).