Double Commander

Файловый менеджер

Модератор: Модераторы

Сообщение ViTality » 05.02.2008 12:58:33

Может свой компонентик накатать? На основе листа. Меньше багов будет. Гислер в свое время так и сделал. До сих пор работает, пятнадцатый год уже пошел.

ради справедливости замечу что описаный тобою баг
5. Колонки. Ужос (С). Дата файлов мне неинтересна, а вот аттрибуты нужны. Попытка уменишить ширину колонки "дата", привела к наложению текста полей "дата" на "тип" и "аттрибуты".
до сих пор присутствует в тотале. Как решение предлагаеться увеличение размеров колонки "тип"
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Сообщение B4rr4cuda » 05.02.2008 15:04:35

Alex2000 писал(а):Хотел сделать, однако оказывается у TSpeedButton нет событий OnDragOver, OnDragDrop. Ну и дела

Я имел ввиду перенос проги\папки\файла с панели на тулбар, но это тоже нужно.
А в чем проблема собсно? Ведь у тулбара-то эти события есть. И у DrawGrida есть. А от кнопки-то собственно только индекс нужен, который по OnMouseDown отловить можно. Вот, для примера, передающаяся в клипборд кнопка, в формате понятном Тоталу (из баредитора выдрал):
Код: Выделить всё
s:='TOTALCMD#BAR#DATA'+#13+#10+
  bar.GetButton(id_btn_bar.ItemIndex,cmdX)    +#13+#10+
  bar.GetButton(id_btn_bar.ItemIndex,paramX)  +#13+#10+
  bar.GetButton(id_btn_bar.ItemIndex,ButtonX) +#13+#10+
  bar.GetButton(id_btn_bar.ItemIndex,menuX)   +#13+#10+
  bar.GetButton(id_btn_bar.ItemIndex,pathX)   +#13+#10+
  bar.GetButton(id_btn_bar.ItemIndex,iconicX)+#13+#10+
  '-1'+#13+#10
  ;
SetClipboardTextz(Application.Handle,s);

Или я недопонял чего-то?

ViTality писал(а): до сих пор присутствует в тотале. Как решение предлагаеться увеличение размеров колонки "тип"

Там можно свои колонки создать. Что я собственно и делал. Но не в этом суть, этот баг не единственный. DrawGrid себя паршиво проявил. Зазоры и прокрутка в основном мешают. С наложением, опять таки созданием своих колонок, можно решить вопрос.
ЗЫ
2Alex2000 Может в процедуре отрисовки поля проверять ширину доступного места?
Что-то типа:
Код: Выделить всё
ks:=sModeStr;
while Canvas.TextWidth(ks)-(Rect.Right-Rect.Left)-4>0 do
delete(ks,length(ks),1);
Canvas.TextOut(Rect.Left + 2,iTextTop,{sModeStr} ks);
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Сообщение Alexx2000 » 05.02.2008 16:44:54

B4rr4cuda писал(а):Я имел ввиду перенос проги\папки\файла с панели на тулбар, но это тоже нужно.

C панели на тулбар без проблем можно сделать. Я имею ввиду когда к примеру хтмл'ку перетаскиваешь на кнопку firefox на панели, и он в нем открывается.
А в чем проблема собсно? Ведь у тулбара-то эти события есть. И у DrawGrida есть. А от кнопки-то собственно только индекс нужен, который по OnMouseDown отловить можно.

Похоже так и придется делать.
Там можно свои колонки создать. Что я собственно и делал. Но не в этом суть, этот баг не единственный. DrawGrid себя паршиво проявил. Зазоры и прокрутка в основном мешают. С наложением, опять таки созданием своих колонок, можно решить вопрос.

Если делать на ЛистБоксе свой компонент, нужно как-то еще сделать заголовки колонок. Компонент HeaderControl (или как его там), мало функциональный (я не нашел возможности изменять размер колонок)
ЗЫ
2Alex2000 Может в процедуре отрисовки поля проверять ширину доступного места?
Что-то типа:
Код: Выделить всё
ks:=sModeStr;
while Canvas.TextWidth(ks)-(Rect.Right-Rect.Left)-4>0 do
delete(ks,length(ks),1);
Canvas.TextOut(Rect.Left + 2,iTextTop,{sModeStr} ks);

Можно конечно, но тогда наверно перерисовка еще замедлится?
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение B4rr4cuda » 05.02.2008 17:03:01

Можно конечно, но тогда наверно перерисовка еще замедлится?

Может быть. Тогда может опционально? Очень уж оно некрасиво...

C панели на тулбар без проблем можно сделать. Я имею ввиду когда к примеру хтмл'ку перетаскиваешь на кнопку firefox на панели, и он в нем открывается.

О... Не знаю, насколько это нужно.
По моему, меню со списком, ассоциированных с файлом под курсором, программ будет вполне достаточно. Да и функциональнее, т.к. можно пользовать и мышью и клавой.

Кстати, еще багу обнаружил. Она к DC слабо относится, это скорее Ion3-а замутка, но может еще у кого-то где-то встретится. У иона по хоткею появляется комстрока. Особенность этой комстроки в том, что у нее собственный буфер вывода, те вывод программ не отправляется на главный буфер. И некоторые программы (я натолкнулся на это с безгуевым mplayer-ом ) при запуске с нее зависают. Дополнительная особенность в том, что форки выводят инфу туда же, и, при ступоре, тормозят родительский процесс. Т.е. при запуске клипа из DC, вис и mplayer и DC. Причем, вис намертво. Снятие только сигкилом. SIGTERM ключ -не помогал.

Workaround решение:
1) в /bin/mplayerstart
Код: Выделить всё
#!/bin/sh
mplayer "$1" 1>>/dev/null 2>>/dev/null &

2)в doublecmd.ext
Код: Выделить всё
[mpg|mpeg|avi|asf|mov]
Open=mplayerstart '%p'
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Сообщение Attid » 05.02.2008 17:25:24

О... Не знаю, насколько это нужно.
По моему, меню со списком, ассоциированных с файлом под курсором, программ будет вполне достаточно. Да и функциональнее, т.к. можно пользовать и мышью и клавой.

нужно, я в ТС пользуюсь, например появляется файл Read.me =) не асоциировать же его с блокнотом, а просто перетаскиваешь его на иконку нотепад++ и вуаля.

Alexx2000
изначально имелось ввуиду что нашел я в панели myprogra.exe перенес на тулбар, а там кнопка появилась в ТС я таким образом создаю 90% кнопок.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение B4rr4cuda » 05.02.2008 17:50:43

Можно конечно, но тогда наверно перерисовка еще замедлится?

Не удержался - проверил. Все нормально, замедления если и есть, то их не заметно. :) И красиво, не мешает "дата". :)

нужно, я в ТС пользуюсь, например появляется файл Read.me =) не асоциировать же его с блокнотом, а просто перетаскиваешь его на иконку нотепад++ и вуаля.

Ладно, кашу каждый по своему варит :). Мне проще F4 нажать и просмотреть в дефолтном редакторе (в том же Notepad++ например).
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Сообщение Alexx2000 » 05.02.2008 17:57:37

Может быть. Тогда может опционально? Очень уж оно некрасиво...

Хорошо будет опционально. Сделать для всех полей?

нужно, я в ТС пользуюсь, например появляется файл Read.me =) не асоциировать же его с блокнотом, а просто перетаскиваешь его на иконку нотепад++ и вуаля.

Ага, я тоже привык к такому способу :)
изначально имелось ввуиду что нашел я в панели myprogra.exe перенес на тулбар, а там кнопка появилась в ТС я таким образом создаю 90% кнопок.

Такое за вечер можно сделать
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение B4rr4cuda » 05.02.2008 18:36:27

Хорошо будет опционально. Сделать для всех полей?

Желательно для всех.
Ага, я тоже привык к такому способу

(*Ехидно хихикая) Мышатники. :D
А серьёзно - у каждого своя метода. Юзер будет грустить и плеваться, когда по привычке перетащив файл на кнопку в тулбаре, будет пару минут висеть в ступоре, ожидая запуска программы и думая об апгрейде своего старого железа. А возможности-то нетути... :)
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Сообщение Attid » 05.02.2008 20:06:41

Ладно, кашу каждый по своему варит Smile. Мне проще F4 нажать и просмотреть в дефолтном редакторе (в том же Notepad++ например).

ну я же к примеру =) ладно просмотреть видеофайл непонятного расширения в mplayer =)

будет пару минут висеть в ступоре, ожидая запуска программы и думая об апгрейде своего старого железа.

а какая хрен разница что он запустит прогу из друго места и будет о том же думать ? это уже проблемы местных индейцев.

Alexx2000
Такое за вечер можно сделать

только там еще кнопка шифт имеет значение и альт вроде тоже.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение B4rr4cuda » 05.02.2008 20:24:32

ну я же к примеру =) ладно просмотреть видеофайл непонятного расширения в mplayer =)

Нажимаю Esc+F4 и выбираю из меню mplayer :p.
Я в тотале F4Menu использовал - очень удобно.
Привыкаешь навсегда. Вот и хочу такую мульку в DC. DC сейчас как ребенок - куда толкнешь, туда и пойдет. А я крайне заинтересован в его будущей функциональности и удобстве для себя, т.к. нормального фм в лине не нашел. Поэтому, чем смогу - помогу. Здоровый эгоизм. :)

а какая хрен разница что он запустит прогу из друго места и будет о том же думать ? это уже проблемы местных индейцев.

:) Я имел ввиду, кинет на кнопку в тулбаре, привыкнув, что в тотале запускается приложение, а тут запуск не реализован. И он томится, не понимая, почему прога еще не запустилась. =)

2Alex2000 Кстати, а зачем в модуле framepanel.pas строка 564 вызывается проца DefaultDrawCell(ACol, ARow, Rect, State); ???
Отрисовка все равно полностью ручная. Работает одинаково, что с ней что без нее. Может убрать в целях оптимизации?
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Сообщение Attid » 05.02.2008 22:08:41

Я имел ввиду, кинет на кнопку в тулбаре, привыкнув, что в тотале запускается приложение, а тут запуск не реализован. И он томится, не понимая, почему прога еще не запустилась. =)

:?: :?: :?:

у меня в линуксе все работает =) и запуск приложений был реализован раньше чем мы к акшенам пришли.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Alexx2000 » 06.02.2008 02:26:34

только там еще кнопка шифт имеет значение и альт вроде тоже.

Значит за два :)

B4rr4cuda писал(а):2Alex2000 Кстати, а зачем в модуле framepanel.pas строка 564 вызывается проца DefaultDrawCell(ACol, ARow, Rect, State); ???
Отрисовка все равно полностью ручная. Работает одинаково, что с ней что без нее. Может убрать в целях оптимизации?

Вообще должна производить дефолтную отрисовку заголовка колонок.
Если работает без нее, значит уберем
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Сообщение B4rr4cuda » 06.02.2008 07:22:02

Attid писал(а):у меня в линуксе все работает =) и запуск приложений был реализован раньше чем мы к акшенам пришли.

У тебя в линуксе работает Drag-and-Drop файлов между панелью и тулбаром :?: :?: :?:
Ух, ты, а я думал Alex2000 только собирается это реализовать... :D Ты могуч, юный падаван. :) :P
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Сообщение Attid » 06.02.2008 11:35:51

бррр
ты меня запутал, я дамал ты про тыки на кнопки.
пора в отпуск =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Alexx2000 » 08.02.2008 01:25:53

Добавил в процедуру отрисовки проверку ширины колонки, для активации этого режима необходимо в ini-файле, в секции [Configuration] установить ключ CutTextToColWidth=1
Позже вынесу эту опцию в диалог настроек.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Пред.След.

Вернуться в Double Commander

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru