Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: Пантер от Апрель 10, 2009, 17:55



Название: Файловый менеджер
Отправлено: Пантер от Апрель 10, 2009, 17:55
Всем доброго.
Вот задумал я написать свой ФМ. Как сказал Max Diesel (создатель Unreal Commander), у каждого программиста есть период, когда он начинает писать ФМ.  :) Брался несколько раз (на делфи, билдере), но забрасывал. Сейчас вроде дело пошло. Уже вторую неделю красноглазю и уже есть эффект.
Зачем оно нужно? Под виндой единственный ФМ, в котором можно работать - платный Тотал Коммандер. Есть еще Анреал коммандер, благодаря которому я и решил взяться за это дело. Пользовался им больше полугода, красиво, удобно, но:
1. Задолбал подход автора к регистрации.
2. Глюкавит.
3. Один разработчик, так что работа продвигается медленно.
Вот и решил...  ::)
На данный момент реализованно:
1. Табы каталогов.
2. Основной функционал:
  • Переименование
  • Копирование
  • Перемещение
  • Удаление
  • Запуск программ
  • Коммандная строка
3. Несколько панелей инструментов.
4. Просмотр (пока глючный), только на посмотреть. :)
5. Очереди для файловых операций. Т.е создаешь новую очередь или добавляешь в существующую.

Не реализованно:
1. Нормальное выделение. Т.е. как в нормальном ФМ выделять правой кнопкой мыши. Скорее всего придется наследоваться от QTreeVew и самому все рисовать.
2. Ворнинги при файловых операциях (файл существует, ошибка записи, и т.д.)
3. Драг и дроп.
4. Нормальная строка адреса с автодополнением и прочими фишками(пока используется QLineEdit только для показа текущего пути).
5. Показ прав доступа (легко, но пока руки не дошли).
6. Раскраска по расширениям.

Несколько оговорок:
1. Пока не сделаю то, что не реализованно, выкладывать не буду.
2. Код грязный, так как пишу на скорость. Сделаю основной функционал и можно зачищать.
3. Если решу забросить, обязательно выложу то, что будет на тот момент.
4. Конечно GPL.

Кому интересно, присоединяйтесь. Буду в этой теме задавать насущные вопросы и ждать ответов. Пока вот такие проблемы:
1. Для файловых операций создается диалог, в котором запускается поток, в котором и происходят все операции.  В потоке нельзя использовать QMessageBox, поэтому столкнулся с проблемой, как спросить у пользователя что делать (перезаписывать, повторить, прервать). Решение пока видется так:
а. В функции копирования проблема, файл уже существует.
б. Вызывается функция error, которая заполняет определенные поля (код ошибки, имена файлов), ставит пазу, выкидывает сигнал, ждет снятия паузы
в. Диалог ловит сигнал, задает вопрос, в зависимости от ответа заполняет поля в потоке, снимает паузу.
г. Возвращается управление в функцию копирования и, в зависимости от полей, оно продолжается или нет.
Правильно мыслю или можно проще(правильнее)?
2. Чтобы нормально работать с выделением придется наследоваться от QTreeView? Что не нравится в стандартном поведении:
а. Селект при установки курента.
б. Нет возможности через эвент фильтр перехватить мышиные комманды (чтобы по правому клику делать селект).

Пока все. Жду ваших отзывов. Может у кого есть свои наработки?
Текущая версия в аттаче.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 10, 2009, 18:00
Совсем забыл. Вот скриншот под Линухом.


Название: Re: Файловый менеджер
Отправлено: pastor от Апрель 10, 2009, 19:05
Классно!

Как выложишь код, можно тоже будет что-то доработать! Были тоже некоторые идеи, надо будет вспомнить


Название: Re: Файловый менеджер
Отправлено: IMPOMEZIA от Апрель 10, 2009, 19:21
у каждого программиста есть период, когда он начинает писать ФМ.  :)
Всегда мечтал сделать кроссплатформенный файловый менеджер, ещё с тех пор, когда к программированию никакого отношения не имел. :)

Цитировать
1. Для файловых операций создается диалог, в котором запускается поток, в котором и происходят все операции.  В потоке нельзя использовать QMessageBox,

ИМХО об использовании QMessageBox вообще нужно забыть, пусть диалог сам реагирует на проблемы в операциях. Total Commander например сильно грешит избыточным использованием MessageBox.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 13, 2009, 17:16
ИМХО об использовании QMessageBox вообще нужно забыть, пусть диалог сам реагирует на проблемы в операциях. Total Commander например сильно грешит избыточным использованием MessageBox.

И перезаписывать файлы без ведома пользователя? :) А в ТС с диалогами все нормально, ненужные в настройках отключаются на вкладке Misс.

Сегодня сделал нормальное выделение правой кнопкой мыши. :) Все оказалось не так сложно. Приступил к драгу/дропу, но пока что-то не получается, первый раз таким делом занимаюсь. Придется книжку проштудировать. ;D


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 13, 2009, 17:42
Кстати, нашел одну интересную вещь. Если в QTreeView сделать:
setAllColumnsShowFocus(true);
setSelectionMode(QAbstractItemView::NoSelection);
То в стиле Оксиген не видно курсора. Что делать и кто виноват?

Кстати, как задать цвет курсора? Что-то в palette не нашел. :(


Название: Re: Файловый менеджер
Отправлено: Admin от Апрель 13, 2009, 21:20
А смотрели ли krusader  - аналог WinCommader под KDE? может лучше им помочь? ))


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 13, 2009, 21:35
Отстой. По уши завязан на кедах. Пользовался им, потом на МС ушел. :)


Название: Re: Файловый менеджер
Отправлено: Admin от Апрель 14, 2009, 10:19
У mc текстовый гуй!
А вы тут графический собрались писать. Или щас стало модно Qt-only вещи писать  :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 14, 2009, 11:25
Вот будет прикол вантузятникам качать инсталягу кед для запуска ФМ. :\ По мне, должно быть именно Qt-only.


Название: Re: Файловый менеджер
Отправлено: Admin от Апрель 15, 2009, 11:01
Во общем если человеку нужен велосипед - то пусть себе его сделает. Для меня к сожалению, есть всего 2 нормальных редактора. Это FAR и MC (миднайт коммандер).  Гуевые поделки меня бесят тем, что нельзя быстро ввести консольную комманду - типа ipconfig. Так что, я считаю что командер должен быть текстовый.   ;D


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 15, 2009, 11:33
Как это нельзя быстро ввести?


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 15, 2009, 12:36
я считаю, что у нормального (удобного) ФМ, должна быть кнопочка для вываливания с низу полноценной консоли, в которую не только писать можно, но и читать результат работы.

А еще в ФМ не хватет настройки наборов окружения. Я сечас пускаю Тотал с помощью bat-файла. А хотелось бы забить несколько комплектов окружения. И оперативно их переключать в ФМе


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 15, 2009, 19:02
1. Пока рано такое делать, есть вещи поважнее. Можешь свою консоль написать, присобачу с удовольствием.
2. Тут немного поподробнее зачем это нужно.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 15, 2009, 19:29
зачем? Хм, я думал это довольно очевидная вещь, поэтому уменя даже нет готового объяснения. Также как и на вопрос "зачем мы живём?" ;)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 15, 2009, 19:31
lit-uriy: а у меня ни разу не вставала проблема окружения у ФМ, поэтому и не могу понять о чем ты.
Кстати, с локализацией сможешь помочь?


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 15, 2009, 20:06
>>Кстати, с локализацией сможешь помочь?
Перевести на русский (с русского)? Да легко :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 15, 2009, 20:12
>>Кстати, с локализацией сможешь помочь?
Перевести на русский (с русского)? Да легко :)
Не. С псевдо-английского на английский. :)


Название: Re: Файловый менеджер
Отправлено: spirit от Апрель 15, 2009, 20:22
когда уже релиз будет? интересно глянуть  :)


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 15, 2009, 21:26
Пантер, я с русского на наглийский именно так и перевожу (на почти английский) :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 15, 2009, 21:51
А я думал ты переводчик. :) Ты же все ссылки на перевод документации тут постил.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 15, 2009, 21:52
когда уже релиз будет? интересно глянуть  :)
Когда доделаю то, что в первом посте написано. То, что перечеркнуто, уже сделал. 2 дня потерял на прорисовку курсора. :) Надеюсь, дальше полегче будет.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 16, 2009, 16:44
Фух, сегодня приделал драг с дропом. Работаит... :)
Вот только вопрос один. Если при драге нажать правую кнопку мыши и отпустить левую, драг все равно продолжится, а нужно, чтобы прервался. Как это сделать? Пока приделал костыль вида:
Код
C++ (Qt)
void MainWindowImpl::dragMoveEvent ( QDragMoveEvent * event )
{
if (!(event->mouseButtons() & Qt::LeftButton))
{
this->dropEvent(event);
event->ignore();
return;
}
.......................
}
 
Работает не совсем корректно. Дроп срабатывает(по нему у меня показывается диалог), но курсор остается как при драге до закрытия диалога. Как правильно реализовать программный обрыв драга?


Название: Re: Файловый менеджер
Отправлено: crackedmind от Апрель 16, 2009, 17:32
В ассистенте есть, такой кусок кода.
Код:
 void DragWidget::mouseMoveEvent(QMouseEvent *event)
 {
     if (!(event->buttons() & Qt::LeftButton))
         return;
     if ((event->pos() - dragStartPosition).manhattanLength()
          < QApplication::startDragDistance())
         return;

     QDrag *drag = new QDrag(this);
     QMimeData *mimeData = new QMimeData;

     mimeData->setData(mimeType, data);
     drag->setMimeData(mimeData);

     Qt::DropAction dropAction = drag->exec(Qt::CopyAction | Qt::MoveAction);
     ...
 }
Или может я не допонял проблему?


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 16, 2009, 18:51
Разобрался. Пока не выйдешь из функции dropEvent, значек драга продолжает висеть. Так что походу все нормально.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 21, 2009, 11:30
Вчера с похмелюги пытался прикрутить запросы на перезапись/удаление, чуть голову не сломал. :) Сегодня почти доделал, вроде работает.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 22, 2009, 06:22
Пиплы, помогайте:
1. Как под Линем узнать находятся ли файлы в одной фаловой системе(т.е. на одном диске)?
2. Как такое же узнать под масдаем (пока проверяю начало пути, но это не прокатит, если диск примонтирован в каталог)?


Название: Re: Файловый менеджер
Отправлено: Racheengel от Апрель 22, 2009, 15:37
по поводу 1 самое простое, что приходит в голову - вычитать точки монтирования из fstab и затем проверять абсолютные пути к файлам.

а что имеется в виду в 2 под "диск примонтирован в каталог", сетевые диски что ли?


Название: Re: Файловый менеджер
Отправлено: pastor от Апрель 22, 2009, 15:58
У меня вопрос... зачем это нужно узнавать?


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 22, 2009, 16:37
по поводу 1 самое простое, что приходит в голову - вычитать точки монтирования из fstab и затем проверять абсолютные пути к файлам.

а что имеется в виду в 2 под "диск примонтирован в каталог", сетевые диски что ли?
1. fstab использовать не получится, так как много чего монтируется не через него.
2. Нет, в NT как и в Линуксе можно диск подмонтировать в каталог.
У меня вопрос... зачем это нужно узнавать?
Элементарно. При перемещении файла, когда исходная и конечная точки находятся на одном диске,  намного быстрее и правильнее сделать простое переименование.

Должна же быть стандартная функция...


Название: Re: Файловый менеджер
Отправлено: Racheengel от Апрель 22, 2009, 16:57
А для перемещения, разве нельзя использовать системные функции? Думаю, так бы было еще правильнее.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 22, 2009, 17:05
Ну да, а как прогресс выводить? :)
На ЛОРе подсказали, что нужно смотреть statvfs.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 27, 2009, 11:33
Ну что, пиплы. Вот и выкладываю свои наработки. Еще рано, конечно, но боюсь до сессии не успеть.
Предупреждение:
Проект еще довольно сырой, поэтому тестировать только на ненужных файлах.


Компилировать можно двумя способами, но лучше первым, т.к. с CMake только начал разбираться:
1. qmake && make
2. cmake -G "MinGW Makefiles" . && make (это для MinGW, для других читать cmake --help)

Так как основная разработка ведется под Windows, под Linux'ом некоторые вещи пока не доступны(показ прав доступа, свободного и общего размера диска, и пр.).

Все предложения присылать на panter.dsd@gmail.com

Буду очень рад любой критике и помощи.


Название: Re: Файловый менеджер
Отправлено: crackedmind от Апрель 27, 2009, 12:58
Значит так. Не компилится на mingw/gcc 4.3.3
Ругался на строчку
Код:
struct tm* time=localtime(&(st.st_mtime));
в файле qfilelistmodel.cpp, необходимо подключить time.h


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 27, 2009, 13:09
Странно, у меня под мингвом все компилится. Исправил, после работы выложу. 
---------------------------------
У меня версия gcc 3.2.5, может поэтому и нормально все. Вот новая версия с пофикшенным багом, плюс еще немного, подробности в history.txt.


Название: Re: Файловый менеджер
Отправлено: shadone от Апрель 27, 2009, 16:55
Фух, сегодня приделал драг с дропом. Работаит... :)
Вот только вопрос один. Если при драге нажать правую кнопку мыши и отпустить левую, драг все равно продолжится, а нужно, чтобы прервался. Как это сделать? Пока приделал костыль вида:
Код
C++ (Qt)
void MainWindowImpl::dragMoveEvent ( QDragMoveEvent * event )
{
if (!(event->mouseButtons() & Qt::LeftButton))
{
this->dropEvent(event);
event->ignore();
return;
}
.......................
}
 
Работает не совсем корректно. Дроп срабатывает(по нему у меня показывается диалог), но курсор остается как при драге до закрытия диалога. Как правильно реализовать программный обрыв драга?

это должно быть исправлено в Qt 4.5

А репозиторий где-то есть чтобы периодически поглядывать на проект?


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 27, 2009, 17:03
1. Пишу под 4.5, так что не исправлено.
2.Сейчас стоит вопрос стоит продолжать или нет. Если продолжать, то буду изучать всякие гиты и искать где бы расположить проект. А пока буду тут выкладывать новые версии.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 27, 2009, 19:06
Крашится при попытке перетаскивании файла на рабочий стол.
Есть какой-то косяк с просмотром файла main.cpp (исходник PC) через встроенный вьювер. Показывает только это:

Цитировать
/********************************************************************

Подозреваю, что дело в символе перевода строки.

На папках с большим количеством файлов здорово подвисает при прокручивании ползунка. Но это скорее всего проблема самой Qt.

При изменении размера колонки у левой панели почему-то у правой меняется синхронно (во всех остальных табах тоже меняется) :)
Файлы не выделяются с зажатым шифтом и перемещением курсора клавиатурой.
При выделении файла пробелом - сам пробел не перемещается на следующую строчку. А хотелось бы.
Как-нибудь надо уменьшить высоту хедеров у таблицы до высоты шрифта.
При выборе опции "50/50" сплиттер не принимает серединное значение, видимо есть какая-то зависимость от ширины колонок в таблице. Да и само меню должно вызываться по клику на QSplitter, а не по правому щелчку на главной форме.
Поля, где отображаются полные пути не доступны для редактирования. Я уже привык в TC по полному путю пару раз кликнуть и скопировать куда-нибудь или просто поменять текущую папку на новый путь.
При копировании одного файла - нет возможности задать новое имя для файла.

Из небольших неудобств:
долгая компиляция
долгая загрузка программы
программа в памяти весит 33Мб против 12Мб TotalCommander'a

Хотелось бы меню настроек для программы, возможность переключить действие по правому щелчку на вывод меню (пусть даже не системного, но которое можно было бы настроить на запуск спец.утилит, которым передать в качестве параметра имена выделенных файлов). Было бы совсем замечательно - интеграцию с QtScript, с целью автоматизации файловых операций - типа массового переименование в зависимости от содержимого файла. Да и вообще поддержку плагинов.
Поиск файлов. Стрелочки Back/Forward. Переменные окружения.

В целом мне нравится больше, чем навороченный и непонятный KDE'шный Dolphin, основной функционал сделан.


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 27, 2009, 19:59
Пантер высоко замахнулся :)
проект, безусловно, нужен. если под вендой есть хотя бы тц, под кде уже очень давно не хватает ФМ для ежедневной работы, а не для красивостей (тут я частино согласен с помощью крузадеру, но у крузадера плохо продуманная архитектура, а качественный qt-only ФМ нужен всё-равно).
также необходимо сделать проекту домик и регулярно коммитить в транк. надеюсь, хотя бы с репой не заставишь долго ждать...

SABROG, не думаю, что на данной стадии уместны вопросы производительно и времени сборки - Пантер ведь предупредил, что код сырой и пишется на скорость, а не на качество.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 27, 2009, 20:33
>>также необходимо сделать проекту домик
Вот есть полупустая Вики. Пусть там домик сделает, может народ хоть из-за него в Вики ходить начнёт.
Ну а хранилище неважно где делать, лишбы ссылка на него в домике была.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 27, 2009, 21:19
SABROG, не думаю, что на данной стадии уместны вопросы производительно и времени сборки - Пантер ведь предупредил, что код сырой и пишется на скорость, а не на качество.
Я просто сложил всё в кучу, наметил так сказать фронт работ. Если проект будет существовать в качестве кросс-платформенного файлового менеджера, то это будет ему только в плюс, т.к. альтернативный кроссовый ФМ написан на Java - http://www.mucommander.com/screenshots.php Можно что-то почерпнуть и из него.

Кстати еще один ФМ написанный на Qt: http://www.qevel.org/contribute.html (tarrball - http://qevel.svn.sourceforge.net/viewvc/qevel.tar.gz?view=tar )


Название: Re: Файловый менеджер
Отправлено: crackedmind от Апрель 27, 2009, 22:20
Опять буду ругаться :) Т.к. не компилится на VC++
1. Зачем используется dirent.h? Неужели через Qt нельзя было сделать? через QDirIterator например.
Т.к. в VC++ этого нет.
2. Все таки не sys/time.h, а просто time.h (Опять же нету sys/time.h)
3. И если так необходима директива #warning (ее тоже нет), то экранировать ее:
Код:
#ifndef _MSC_VER
#warning "..."
#endif


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 27, 2009, 23:18
Уже не знаю как извратиться, таким макаром можно уменьшить высоту заголовка у таблицы:

Код
C++ (Qt)
   QHeaderView *h = tb->horizontalHeader();
   QStyleOptionHeader opt;
   opt.initFrom(h);
   int margin = style()->pixelMetric(QStyle::PM_HeaderMargin, &opt, h);
   h->setMaximumHeight(opt.fontMetrics.height()+(margin/2));
 


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 28, 2009, 02:03
посмотрел я на Qevel - его нету!
проект начат в 2007, последняя активность в 2007, ни одного файла (http://qevel.svn.sourceforge.net/viewvc/qevel/)


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 28, 2009, 03:05
Пантер, не понял одного важного момента: почему отказался от QFileSystemModel в пользу самописной фсмодели? а как же кеширование посещённых путей, фильтрация по маске и признаку, поддержка вфс? - будешь всё с нуля писать?
дополнил ПантерКоммандер ещё одной панелью на базе QFileSystemModel - работает шустрее...не понимаю...

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


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 06:31
Цитировать
Крашится при попытке перетаскивании файла на рабочий стол.
Под виндой или под Линухой? У меня под виндой все нормально было.
Цитировать
Есть какой-то косяк с просмотром файла main.cpp (исходник PC) через встроенный вьювер. Показывает только это:

Подозреваю, что дело в символе перевода строки.
Правильно подозреваешь. В просмотре сейчас реализована толька идея, а как ее правильно реализовать, я пока не знаю. Может кто вьювером займется? С меня идея. :)
Цитировать
На папках с большим количеством файлов здорово подвисает при прокручивании ползунка. Но это скорее всего проблема самой Qt.
При первом прокручивании, потом должно все нормально быть. Это связано с тем, что получение иконок пока еще не выкинул в поток и при прокручивании они начинают извлекаться и кешироваться.

Цитировать
При изменении размера колонки у левой панели почему-то у правой меняется синхронно (во всех остальных табах тоже меняется) Улыбающийся
Так и задумано.
Цитировать
Файлы не выделяются с зажатым шифтом и перемещением курсора клавиатурой.
При выделении файла пробелом - сам пробел не перемещается на следующую строчку. А хотелось бы
Делал пока под свои вкусы, потом все будет.
Цитировать
Как-нибудь надо уменьшить высоту хедеров у таблицы до высоты шрифта.
Зачем?
Цитировать
При выборе опции "50/50" сплиттер не принимает серединное значение, видимо есть какая-то зависимость от ширины колонок в таблице. Да и само меню должно вызываться по клику на QSplitter, а не по правому щелчку на главной форме.
Странно, у меня 50/50 занимает... А на счет выскакивания меню, если у сына нет меню, то ставится родительское. Нужно было выставить Prevent, забыл. :)
Цитировать
Поля, где отображаются полные пути не доступны для редактирования. Я уже привык в TC по полному путю пару раз кликнуть и скопировать куда-нибудь или просто поменять текущую папку на новый путь.
Будет.
Цитировать
При копировании одного файла - нет возможности задать новое имя для файла.
С этим пока проблемы, нужно парсер писать.

Цитировать
долгая загрузка программы
Есть такой косяк... :(
Цитировать
программа в памяти весит 33Мб против 12Мб TotalCommander'a
Не забывай, что ТС написан на чистом ВинАпи, а тут кутя хорошо жрет, да еще код пока кривой.

Цитировать
Хотелось бы меню настроек для программы, возможность переключить действие по правому щелчку на вывод меню (пусть даже не системного, но которое можно было бы настроить на запуск спец.утилит, которым передать в качестве параметра имена выделенных файлов). Было бы совсем замечательно - интеграцию с QtScript, с целью автоматизации файловых операций - типа массового переименование в зависимости от содержимого файла. Да и вообще поддержку плагинов.
Поиск файлов. Стрелочки Back/Forward. Переменные окружения.
Все это появится в будущем, если проект будет жить.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 06:35
Опять буду ругаться :) Т.к. не компилится на VC++
1. Зачем используется dirent.h? Неужели через Qt нельзя было сделать? через QDirIterator например.
Т.к. в VC++ этого нет.
2. Все таки не sys/time.h, а просто time.h (Опять же нету sys/time.h)
3. И если так необходима директива #warning (ее тоже нет), то экранировать ее:
Код:
#ifndef _MSC_VER
#warning "..."
#endif
У меня просто студии нет, поэтому даже не подозревал. Сегодня посмотрю, что можно сделать.
Пантер, не понял одного важного момента: почему отказался от QFileSystemModel в пользу самописной фсмодели? а как же кеширование посещённых путей, фильтрация по маске и признаку, поддержка вфс? - будешь всё с нуля писать?
дополнил ПантерКоммандер ещё одной панелью на базе QFileSystemModel - работает шустрее...не понимаю...

зы. тянибросай не отменяется по искейпу. а должен бы.
А pagefile.sys показывается в QFileSystemModel? ;)
Кеширование и все остальное собираюсь сам реализовывать.
А на счет драга и дропа вообще косяки, может ты поможешь. Мне нужно, чтобы оно отменялось при отпускании левой кнопки, но если зажата вторая, оно не отменяется. Просто с драгом/дропом столкнулся впервые, еще не все понимаю. Можешь глянуть на реализацию и направить на путь истинный?


Название: Re: Файловый менеджер
Отправлено: Barmaglodd от Апрель 28, 2009, 07:20
Уже не знаю как извратиться, таким макаром можно уменьшить высоту заголовка у таблицы:

Код
C++ (Qt)
   QHeaderView *h = tb->horizontalHeader();
   QStyleOptionHeader opt;
   opt.initFrom(h);
   int margin = style()->pixelMetric(QStyle::PM_HeaderMargin, &opt, h);
   h->setMaximumHeight(opt.fontMetrics.height()+(margin/2));
 
headerData с SizeHintRole не пробовали?

@panter_dsd А зачем вьювер вообще? Не проще ли назначать внешние программы по типу файла?


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 28, 2009, 08:29
Уже не знаю как извратиться, таким макаром можно уменьшить высоту заголовка у таблицы:

Код
C++ (Qt)
   QHeaderView *h = tb->horizontalHeader();
   QStyleOptionHeader opt;
   opt.initFrom(h);
   int margin = style()->pixelMetric(QStyle::PM_HeaderMargin, &opt, h);
   h->setMaximumHeight(opt.fontMetrics.height()+(margin/2));
 
headerData с SizeHintRole не пробовали?

@panter_dsd А зачем вьювер вообще? Не проще ли назначать внешние программы по типу файла?

Пробовал такие варианты, не работает:

Код
C++ (Qt)
tb->model()->setHeaderData(0, Qt::Vertical, QSize(10,20), Qt::SizeHintRole);
tb->model()->setHeaderData(0, Qt::Vertical, 5, Qt::SizeHintRole);
...
   for(int i=0; i<tb->columnCount();i++)
   {
       tb->model()->setHeaderData(i, Qt::Vertical, QSize(58, 5), Qt::SizeHintRole);
   }
 

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


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 28, 2009, 09:14
А pagefile.sys показывается в QFileSystemModel? ;)
Кеширование и все остальное собираюсь сам реализовывать.
А на счет драга и дропа вообще косяки, может ты поможешь. Мне нужно, чтобы оно отменялось при отпускании левой кнопки, но если зажата вторая, оно не отменяется. Просто с драгом/дропом столкнулся впервые, еще не все понимаю. Можешь глянуть на реализацию и направить на путь истинный?

да, на счёт стата скрытых системных файлов - это известная бага. но багу ведь можно и пофиксить )
есть ли ещё какие претензии к QFileSystemModel?

дд посмотрю чуть попозжа. как-то тоже давно не приходилось с дд возиться - нужно бы память освежить...


Название: Re: Файловый менеджер
Отправлено: pastor от Апрель 28, 2009, 09:43
А pagefile.sys показывается в QFileSystemModel? ;)

Это проблема QFSFileEngine, и можно было попытаться написать его аналог на базе QAbstractFileEngine. Проблкма описана на Task Tracker. имхо легче пофиксить её, чем выдумывать заново кеширование и прочее


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 28, 2009, 10:04
ну, я, собственно, о том же - QFileSystemModel работает целиком на QFSFileEngine (в отличие от QDirModel), что даёт множество преимуществ (многопоточность, кэширование, поддержка вфс уже реализованы). для *nix-бэкенда я находил одну древнюю багу, но её сразу же и пофиксили...баги windows-бэкенда до сих пор открыты.
в худшем случае можно было бы озадачиться переписыванием windows-бэкенда, но и то, получится ли лучше, чем у троллей? а даже если где-то и получилось бы лучше, было бы проще протолкнуть эти улучшения в мэйн после смены системы контрибуций...
поэтому я и не понимаю почему QFileSystemModel была отброшена в пользу написания всей фсэнджины и модели с нуля!

надеюсь, пантер объяснит...доходчиво )


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 28, 2009, 14:15
что-то пантер не хочет доходчиво объяснять :)

немного уточнил на счёт вышеописанной баги - бага минорная, на исправление, видимо, просто не хватило времени. проще всего было бы пофиксить локально, протестить и отправить патч троллям.


на счёт вьювера: по-моему, на ранних этапах вьювер не нужен вообще. для тестов сгодится и диалог запуска или первый попавшийся вьювер с кутэ-аппзов. к тому же, и под вендой, и под иксами имеются готовые сносные вьюверы; а под кде полноценный вьювер/редактор вообще элементарно пишется на kparts'ах. долой велосипеды, даёшь удобный файломанагер! :)

зы. и чтобы аккуратненький, как tc :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 16:49
На работе нет выхода в интернет, поэтому во время не отвечал.
Это проблема QFSFileEngine, и можно было попытаться написать его аналог на базе QAbstractFileEngine. Проблкма описана на Task Tracker. имхо легче пофиксить её, чем выдумывать заново кеширование и прочее
Она давно уже там висит и никак ее не пофиксят. На сколько я помню, еще с 4.3.
ну, я, собственно, о том же - QFileSystemModel работает целиком на QFSFileEngine (в отличие от QDirModel), что даёт множество преимуществ (многопоточность, кэширование, поддержка вфс уже реализованы). для *nix-бэкенда я находил одну древнюю багу, но её сразу же и пофиксили...баги windows-бэкенда до сих пор открыты.
в худшем случае можно было бы озадачиться переписыванием windows-бэкенда, но и то, получится ли лучше, чем у троллей? а даже если где-то и получилось бы лучше, было бы проще протолкнуть эти улучшения в мэйн после смены системы контрибуций...
поэтому я и не понимаю почему QFileSystemModel была отброшена в пользу написания всей фсэнджины и модели с нуля!

надеюсь, пантер объяснит...доходчиво )
Когда начинал писать, QFileSystemModel еще не было, потом как-то пропустил мимо. Сегодня посмотрел и решил, что пусть будет как сейчас. Что-то не очень впечатлило. Тем более у кути еще проблема с аттрибутами файлов под виндой. Да и собираюсь впоследствии прикрутить плагины на содержимое (допустим, чтобы тэги mp3 показывать), пока не знаю как это будет выглядеть, но мне кажется, что со своей моделью это сделать будет полегче. А разве кеширование так сложно реализовать? Тем более кешировать посещенные каталоги у меня будет не модель.
На счет вьювера. Назовите мне программу, которая сравнится с вьюверами фара и тотала? Ее нет. Редакторы вызывать не катит, так как это просмотр, а не редактирование. А просмотрщик неотъемлемая часть ФМ. Пусть пока даже в такой стадии как сейчас.
Выкладываю новую версию. Вот список изменений:
Код:
Добавлено: При копировании выделяется не полное место, а на 10 байт меньше, чтобы можно было потом перезаписать как меньший.
Добавлено: Выдача ошибки при невозможном изменении размера файла.
Добавлено: Выделение при Shift+(Up/Down).
Исправлено: Подправлена логика при зажатии Enter'а на каталоге.
Исправлено: Меню сплиттера тепеь появляется только при клике на сплиттер.
Исправлено: Ускорена загрузка за счет отложения создания панели дисков.
Исправлено: Происходило зависание при удалении нескольких файлов в одном каталоге.
Исправлено: Нормальные иконки в панели инструментов!!!
Изменено: Загрузка иконок файлов по таймеру. Ускорило работу.
Исправлено: Переход на QDirIterator для получения списка файлов.
Исправлено: При создании на пустом диске файла/каталога курсор не появлялся.


Название: Re: Файловый менеджер
Отправлено: spirit от Апрель 28, 2009, 16:58
вот что студия пишет (VS 2008, Qt 4.5.1)
Цитировать
1>.\src\qfileoperationsthread.cpp(28) : fatal error C1083: Cannot open include file: 'dirent.h': No such file or directory
1>.\src\qfileoperationsdialog.cpp(388) : fatal error C1021: invalid preprocessor command 'warning'
1>.\src\qfilelistview.cpp(305) : fatal error C1021: invalid preprocessor command 'warning'
1>.\src\PantherViewer\plainview.cpp(57) : fatal error C1021: invalid preprocessor command 'warning'
1>.\src\mainwindowimpl.cpp(130) : fatal error C1021: invalid preprocessor command 'warning'


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 17:01
Млин, забыл это разрулить. Пока только под мингву, завтра исправлю.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 28, 2009, 17:04
Такую штуку выдает в консоль:

Код:
QFileSystemWatcher: failed to add paths: C:\SABROG\PantherCommander\bin\
QFileSystemWatcher: failed to add paths: C:\SABROG\PantherCommander\bin\
516

Это старые пути, которых уже не существует, видимо где-то сохранились.

Цитировать
Исправлено: Нормальные иконки в панели инструментов!!!

Как небыло так и нет :)



Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 17:08
Старые пути берутся из ini файла, пока еще не сделал обработку ситуации при несуществующем пути, завтра постараюсь.
Дык ты задропай на панель какой-нибудь экзех.
Вопрос: как в cmake отключить консоль? Т.е. чтобы при запуске проги она не выскакивала.


Название: Re: Файловый менеджер
Отправлено: Racheengel от Апрель 28, 2009, 17:33
хорошо бы еще иконки кэшировать по типам файлов (кроме длл и исполняемых), а то медленно.
а вообще симпатично, а то меня фрикоммандер немного подзадолбал...


Название: Re: Файловый менеджер
Отправлено: Racheengel от Апрель 28, 2009, 17:36
еще глючок - после копирования файла, показывает его размер 0.


Название: Re: Файловый менеджер
Отправлено: Racheengel от Апрель 28, 2009, 17:37
Вопрос: как в cmake отключить консоль? Т.е. чтобы при запуске проги она не выскакивала.

По крайней мере, в .pro убрать CONFIG += console


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 28, 2009, 17:39
Вопрос: как в cmake отключить консоль? Т.е. чтобы при запуске проги она не выскакивала.

По крайней мере, в .pro убрать CONFIG += console

Насколько я понял, то в CMake можно лишь повлиять на ключи компилятора. Даже дядька wasyota ничего путного не предложил https://www.blogger.com/comment.g?blogID=34057157&postID=4018467633224152052


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 17:53
хорошо бы еще иконки кэшировать по типам файлов (кроме длл и исполняемых), а то медленно.
а вообще симпатично, а то меня фрикоммандер немного подзадолбал...
Так они кешируются, использую QFileIconProvider, который все сам кеширует.
еще глючок - после копирования файла, показывает его размер 0.
В смысле не обновляется панель или файл не правильно копируется?


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 17:58
Вопрос: как в cmake отключить консоль? Т.е. чтобы при запуске проги она не выскакивала.

По крайней мере, в .pro убрать CONFIG += console
.pro можно вообще удалить, cmake на него не обращает внимания.
Вопрос: как в cmake отключить консоль? Т.е. чтобы при запуске проги она не выскакивала.

По крайней мере, в .pro убрать CONFIG += console

Насколько я понял, то в CMake можно лишь повлиять на ключи компилятора. Даже дядька wasyota ничего путного не предложил https://www.blogger.com/comment.g?blogID=34057157&postID=4018467633224152052
Как я понял, нужно qmake.conf редактировать. Но что тогда делать с распространением исходников под винду?
Кто писал в вики про CMake? Может он пояснит этот момент?


Название: Re: Файловый менеджер
Отправлено: crackedmind от Апрель 28, 2009, 18:23
Вообщем так, надо еще перевести с dirent.h функций на QDirIterator следующие функции
Код:
QFileOperationsThread::moveDir
QFileOperationsThread::removeDir
QFileOperationsThread::copyDir
QFileOperationsThread::calculateDirSize

И вот маленький патч, теперь не ругается на #warning


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 18:26
А что в студии вместо #warning используется? И есть ли общий инструмент?
А на QDirIterator завтра все переведу, сегодня не успел.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 28, 2009, 18:31
А что в студии вместо #warning используется? И есть ли общий инструмент?
А на QDirIterator завтра все переведу, сегодня не успел.

Это, наверное.

Код:
#pragma message( "Compiling " __FILE__ )


Название: Re: Файловый менеджер
Отправлено: crackedmind от Апрель 28, 2009, 18:32
Вопрос теперь в том, не будет ли на прагму ругаться gcc :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 18:34
Млин, придется забить на ворнинги.
Хотя, где-то видел qWarning, оно для этого?


Название: Re: Файловый менеджер
Отправлено: crackedmind от Апрель 28, 2009, 18:41
Ну, смотря что ты хочешь сделать.
#warning на этапе компиляции пишет предупреждение
qWarning во время выполнения программы...


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 18:45
Мне как раз на этапе компиляции нужно, чтобы не забывать. :)


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 28, 2009, 18:53
Такое нормально кушается mingw'ой:

Код:
#ifdef Q_CC_MSVC
    #pragma message("Maby have property, which return QStringList???")
#elif defined(Q_CC_GNU)
    #warning "Maby have property, which return QStringList???"
#endif

Хотел сделать так, но ума не приложу как это заставить работать:
Код:
#define warn "Maby have property, which return QStringList???"
#ifdef Q_CC_MSVC
    #pragma message(warn)
#elif defined(Q_CC_GNU)
    #warning warn
#endif


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 28, 2009, 18:54
>>Как я понял, нужно qmake.conf редактировать.
Не его точно ненужно редактировать.
надо по форуму поискать где-то было относительно студии, только задача наоборот.
В CMakе тоже можно ключи компиляторные подсосвывать.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 18:58
А какой ключик?


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 18:59
Такое нормально кушается mingw'ой:

Код:
#ifdef Q_CC_MSVC
    #pragma message("Maby have property, which return QStringList???")
#elif defined(Q_CC_GNU)
    #warning "Maby have property, which return QStringList???"
#endif

Хотел сделать так, но ума не приложу как это заставить работать:
Код:
#define warn "Maby have property, which return QStringList???"
#ifdef Q_CC_MSVC
    #pragma message(warn)
#elif defined(Q_CC_GNU)
    #warning warn
#endif
Придется так и делать.


Название: Re: Файловый менеджер
Отправлено: Rcus от Апрель 28, 2009, 19:06
А не проще ли использовать doxygen для генерации TODO листа вместо компилятора? :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 19:29
Ху из TODO лист?
И что у меня компилятор такого делает?
Просто это первый мой публичный проект, так что некоторых вещей не знаю.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 28, 2009, 19:42
>>А какой ключик?
Тебеж SABROG ссылку давал, там как раз пример:
set(LINK_FLAGS "${LINK_FLAGS} -mwindows -mconsole")


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 19:56
Я так понял, что это не помогает... С английским туговато. Завтра проверим. :)


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 28, 2009, 20:23
Ху из TODO лист?
И что у меня компилятор такого делает?
Просто это первый мой публичный проект, так что некоторых вещей не знаю.
Я, когда еще с eclipse возился писал в комментах программы "//TODO: сделать красиво!" и они в отдельном окошке все эти TODO вылазили и я знал какой фронт работ предстоит сделать и где этот фронт находится.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 20:24
Фу ты, теперь врубился. Что-то этот способ мне не очень нравится. Лучше, когда в коде расположено. ИМХО.


Название: Re: Файловый менеджер
Отправлено: IMPOMEZIA от Апрель 28, 2009, 22:11
Фу ты, теперь врубился. Что-то этот способ мне не очень нравится. Лучше, когда в коде расположено. ИМХО.
Так оно и будет в коде, в комментариях.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 28, 2009, 22:31
И ищи потом. А так каждый раз при компиляции выскакивает и глаза мозолит, что подгоняет к нахождению решения. :)
Кстати, никто не реализовывал вставку точек в имя файла, если он не помещается?


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 29, 2009, 04:17
>>Кстати, никто не реализовывал вставку точек в имя файла, если он не помещается?
дак представления сами это умеют (тык (http://doc.crossplatform.ru/qt/4.5.0/qt.html#TextElideMode-enum)).


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 06:14
Мне это нужно для QLabel.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 29, 2009, 08:28
Мне это нужно для QLabel.

С помощью этого, наверное.

QString QFontMetrics::elidedText ( const QString & text, Qt::TextElideMode mode, int width, int flags = 0 ) const


Название: Re: Файловый менеджер
Отправлено: Racheengel от Апрель 29, 2009, 09:58
Цитировать
Так они кешируются, использую QFileIconProvider, который все сам кеширует.

Неа... у меня не работает - при заходе в другой каталог, все иконки перечитываются заново (XP SP3)

Цитировать
В смысле не обновляется панель или файл не правильно копируется?

Панель не обновляется.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 11:30
С помощью этого, наверное.

QString QFontMetrics::elidedText ( const QString & text, Qt::TextElideMode mode, int width, int flags = 0 ) const
Спасибо!!!
Неа... у меня не работает - при заходе в другой каталог, все иконки перечитываются заново (XP SP3)
Панель не обновляется.
Посмотри исходники QFileIconProvider, там после добычи иконки она помещается в кэш, и потом из него извлекается. То, что кэш работает, можно отследить потреблением памяти при хождении по файловой системе.
Обновление панели на днях сделаю. Она сейчас обновляется только по указу QFileSystemWacher, а нужно, чтобы еще и при завершении файловых операций.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 17:00
Ну, допустим, нет атрибута сжатого файла.  Вообще Permisions заточены под Линь.
Новая версия.
Добавлено: Кнопки вверх/в корень/домой теперь плоские.
Исправлено: Переход на QDirIterator в файловых операциях.
Исправлено: Ошибка компилирования в Visual Studia из-за использования #warning.
Исправлено: Не работал переход через панель дисков под Линуксом.
Добавлено: Показ размера диска свободно/всего на Линуксе.
Временно поломан вьювер.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 17:04
>>А какой ключик?
Тебеж SABROG ссылку давал, там как раз пример:
set(LINK_FLAGS "${LINK_FLAGS} -mwindows -mconsole")

Не работает. Может это для студии, а для мингва нужно что-то другое?


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 29, 2009, 17:45
а зачем нужен атрибут сжатого файла? и кому он вообще нужен?
в целом я не против кастомной модели (если тебе кажется, что так будет проще, что ж? хотя, я не вижу разницы в сложности реализации атрибутов по контенту на базе стандартной модели). но я категорически против ухода от QFSFileEngine - ещё одна вфс не нужна!
к тому же, я ещё не похоронил идею QIO (аналог KIO на базе QFSFileEngine) - кое-какие наработки там уже есть, но пока времени нет заниматься...
мб всё-таки вынесешь работу с фс в бэкенд QFSFileEngine?

сегодня появилась мыслишка - если логику фм изначально не привызявать к гую, позже можно будет разделить фм на ядро и гуй и нарисовать морду на ncurses...mc всё-равно останется пожизненно корявым, а альтернатив нет...

и снова напоминаю про домик с централизованным доступом к сорцам.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 29, 2009, 17:46
Небольшой эксперимент со стилем skulpture. Кстати, чего это оно так долго директорию обрабатывает? :)

(http://img.pixs.ru/images/pcgif_3166702_209550.gif)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 18:01
Константин: QFSFileEngine завтра посмотрю. А домик... Может кто-нибудь у себя на фтп каталог выделить? Я тут гит изучаю, попробую репу заделать. А так все сорцы периодически тут выкладываю.
SABROG: Что-то не совсем понял. Ты заснял удаление каталога или он так долго прокручивает список?


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 29, 2009, 18:07
SABROG: Что-то не совсем понял. Ты заснял удаление каталога или он так долго прокручивает список?
Это он так любую папку открывает. Проблема в сортировке у колонки, он каким-то макаром наверх прокручивает все папки по кругу в итоге они встают как надо через несколько секунд.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 29, 2009, 18:16
>>Не работает. Может это для студии, а для мингва нужно что-то другое?
Я с CMake не сталкивался, могу только идеи генерить :)
Вот, например, у меня в  %QTDIR%\mkspecs\win32-g++\qmake.conf есть параметры (для MinGW разумеется)
QMAKE_LFLAGS_CONSOLE   = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS   = -Wl,-subsystem,windows
можно попробовать эти ключи прописать в файл проекта CMake
т.е. типа такого:
set(LINK_FLAGS "${LINK_FLAGS} -Wl,-subsystem,console"), чтобы консоль добавить.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 18:18
А-а-а. Это я динамическую сортировку у QSortFilterProxyModel врубил. На таком количестве вложений не проверял, максимальное что есть - system32, но он нормально открывается. Затвтра посмотрю.
А можешь закомментить в qfilelistview.cpp строку qflsfpmProxyModel->setDynamicSortFilter(true); и сказать об эффекте?


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 18:19
>>Не работает. Может это для студии, а для мингва нужно что-то другое?
Я с CMake не сталкивался, могу только идеи генерить :)
Вот, например, у меня в  %QTDIR%\mkspecs\win32-g++\qmake.conf есть параметры (для MinGW разумеется)
QMAKE_LFLAGS_CONSOLE   = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS   = -Wl,-subsystem,windows
можно попробовать эти ключи прописать в файл проекта CMake
т.е. типа такого:
set(LINK_FLAGS "${LINK_FLAGS} -Wl,-subsystem,console"), чтобы консоль добавить.
Завтра еще помудрю, дома только Линуха.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 29, 2009, 18:20
>>Может кто-нибудь у себя на фтп каталог выделить?
а зачем тебе на FTP? Заливай в местную вику (архив-то небольшой). Да и страничку там сделай. Вика хранит историю, кому приспичит может предыдущую версию взять.



Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 29, 2009, 18:24
фтп могу выделить, но может, лучше сразу svn?
а ещё лучше сразу на http://www.assembla.com/ (для открытых проектов там бесплатно) или на гуглокод?

зы. баги в 0.0.4:
* папки со множеством файлов открываются слишком долго (мб использовать fetchMore модели?)
* при попытке перейти в недоступный каталог кидает мессэйджбоксом, а затем снова перечитывает текущий(!) диалог
* иконки подгружаются слишком долго (при файлах одного типа иконки загружаются для каждого файла отдельно?)
* при попытке скопировать/перенести файл в недоступный каталог выпрыгивает уведомление о невозможности прочитать(!) файл.
* наборные кнопки на панели не работают (перетащил каталог на панель и кликаю на получившейся кнопке)

зыы. Юрий, свн и версии хранит, и много чего ещё умеет. нах вику :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 18:25
Да как-то в вики размещать что-то не очень правильно. В принципе, я и тут каждый день все сорцы выкладываю.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 29, 2009, 18:25
А можешь закомментить в qfilelistview.cpp строку qflsfpmProxyModel->setDynamicSortFilter(true); и сказать об эффекте?
Ага, в ней косяк.

Еще вот чего заметил. Если пользовать ctrl-a - выделить все, то с первой строки, там где 2 точки (..) невозможно снять выделение (пардон, пробелом снимается). А эти точки вообще имеет смысл выделять? Ну и не пашут ctr-home (выделить все от текущего курсора до первой строки), ctrl-end (выделить все от текущего курсора до последней строки). Соответственно еще не пашет ctr+pgup/pgdown - выделение всех файлов, которые попадают под размер текущей высоты вьюпорта с текущего выбора наверх и вниз (как в тотале короче), штука бесполезная по своей сути, конечно.

Ну и переход на следующий файл после выделения пробелом.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 18:34
Цитировать
фтп могу выделить, но может, лучше сразу svn?
а ещё лучше сразу на http://www.assembla.com/ (для открытых проектов там бесплатно) или на гуглокод?
Да что-то у меня с svn не сложилось, так и не врубился, а с гитом за пол дня практически разобрался.
Цитировать
* папки со множеством файлов открываются слишком долго (мб использовать fetchMore модели?)
Какой в ФМ может быть fetchMore? Нужно просто алгоритм дорабатывать.

Цитировать
* при попытке перейти в недоступный каталог кидает мессэйджбоксом, а затем снова перечитывает текущий(!) диалог
Есть такой косяк, пока еще не подправил, но увеличу приоритет. :)

Цитировать
* иконки подгружаются слишком долго (при файлах одного типа иконки загружаются для каждого файла отдельно?)
Иконки как раз оставил на попечение QFileIconProvider. Придется свое что-то делать.

Цитировать
* при попытке скопировать/перенести файл в недоступный каталог выпрыгивает уведомление о невозможности прочитать(!) файл.
Не прочитать, а открыть. В этом плане еще все сыро, буду дорабатывать.

Цитировать
* наборные кнопки на панели не работают (перетащил каталог на панель и кликаю на получившейся кнопке)
Работает пока только с исполняемыми файлами.
А можешь закомментить в qfilelistview.cpp строку qflsfpmProxyModel->setDynamicSortFilter(true); и сказать об эффекте?
Ага, в ней косяк.

Еще вот чего заметил. Если пользовать ctrl-a - выделить все, то с первой строки, там где 2 точки (..) невозможно снять выделение. А эти точки вообще имеет смысл выделять? Ну и не пашут ctr-home (выделить все от текущего курсора до первой строки), ctrl-end (выделить все от текущего курсора до последней строки). Соответственно еще не пашет ctr+pgup/pgdown - выделение всех файлов, которые попадают под размер текущей высоты вьюпорта с текущего выбора наверх и вниз (как в тотале короче), штука бесполезная по своей сути, конечно.

Ну и переход на следующий файл после выделения пробелом.
На счет выделения пока не все переопределил, реально работает только shift+up/down,insert,*.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 29, 2009, 18:45
Такой вопрос, а чем руководствуется PC при помечании папки или файла синим цветом, я закономерности понять не могу?

Кстати интересно чем этому setDynamicSortFilter приглянулись именно папки, файлы он не трогает.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 18:50
Это изменившиеся в последние 3 дня, так для наглядности приделал.
А с сортировкой скорее косяк моей реализации онной, пересмотрю.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 29, 2009, 19:08
Заметил, что ты не используешь .ui файлы. Вера не позволяет? А как редизайн делать ежели что?

Пробежался профайлером, результаты в аттаче.


Название: Re: Файловый менеджер
Отправлено: shadone от Апрель 29, 2009, 19:21
Цитировать
фтп могу выделить, но может, лучше сразу svn?
а ещё лучше сразу на http://www.assembla.com/ (для открытых проектов там бесплатно) или на гуглокод?
Да что-то у меня с svn не сложилось, так и не врубился, а с гитом за пол дня практически разобрался.

я бы посоветовал gitorious.org (бесплатный git-хостинг, плюс wiki), либо github.com.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 29, 2009, 19:32
Заметил, что ты не используешь .ui файлы. Вера не позволяет? А как редизайн делать ежели что?
Не нравится мне через дизайнер, нагляднее и удобнее когда все в коде.


Название: Re: Файловый менеджер
Отправлено: crackedmind от Апрель 29, 2009, 20:57
Почему бы в качестве домика не выбрать github.com (git) или launchpad.net (Bazaar), который мне кажется удобнее в некоторых моментах гита?


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 29, 2009, 23:10
голосую за гитхаб :)

упд. беру назад последнюю фразу. любопытство взяло верх над разумом :)
голосую за gitorious.org !)


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 30, 2009, 06:17
Зарегился на gitorious.org, теперь оталось разобраться как он работает. Что-то пока не получается. :)


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 30, 2009, 08:35
Заметил, что ты не используешь .ui файлы. Вера не позволяет? А как редизайн делать ежели что?
Не нравится мне через дизайнер, нагляднее и удобнее когда все в коде.

А прикинь каково будет другим разработчикам лезть в код, который знаешь только ты? :) Захочет он кнопочку добавить и полезет в исходники искать между какими строками ему создавать кнопочку и в какой компановщик его запихнуть. И со слотами таже беда. Я уже привык к автоконнекту (on_myButton_clicked()), а так надо прописывать connect... каждый раз. При работе с дизайнером я обнаружил пока 2 затыка: тормоза при большом количестве компановщиков и некий геморой с promote to, когда нужно переопределить класс дабы увеличить функционалу.


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 30, 2009, 11:02
а нечего другим разработчикам добавлять кнопочки в чужой код :)
автоконнект не нужен. а со слотами действительно беда ))

для плагинов уи-шки ещё сгодятся, а в основной программе им делать нечего. и вообще... )


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 30, 2009, 11:23
Не думаю, что будет тяжело добавить в код что-нибудь свое. Все раскидано по функциям:
createControls()
setLayouts()
setConnects()
Разве сложно?


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 30, 2009, 12:36
а нечего другим разработчикам добавлять кнопочки в чужой код :)
автоконнект не нужен. а со слотами действительно беда ))

для плагинов уи-шки ещё сгодятся, а в основной программе им делать нечего. и вообще... )

Ну а доводы весомые будут? Перекомпилировать 100 раз программу, прежде чем добьешься того, чтобы она выглядела нормально это извращение имхо. И почему это не нужны автоконнекты, если они позволяют сэкономить время на прописывании connect...?

Цитировать
Не думаю, что будет тяжело добавить в код что-нибудь свое. Все раскидано по функциям:
createControls()
setLayouts()
setConnects()
Разве сложно?

Ага, лазить по методам, вместо того, чтобы мышкой перетащить кнопочку на форму и сразу увидеть как это будет смотреться :)

Я понимаю, когда интерфейс динамический, там без кода не обойтись, одно окошко удалить, второе поставить и т.д. Но даже в этом случае можно сделать некий каркас. В общем хозяин барин.


Название: Re: Файловый менеджер
Отправлено: spirit от Апрель 30, 2009, 12:50
И почему это не нужны автоконнекты, если они позволяют сэкономить время на прописывании connect...?
потому, что лучше самому контролировать этот процесс, а то потом появляются люди на форму и спрашивают:
"А почему у меня слот два раза срабатывае", а оказывается, что помимо того, что чел добавил коннект вручную,
так еще и автоконнект срабатывает.
имхо, автоконнект это зло.


Название: Re: Файловый менеджер
Отправлено: Nemo Niakris от Апрель 30, 2009, 13:13
panter_dsd, а "красивости" будут?


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 30, 2009, 13:19
будут. когда "страшности" исчезнут :)


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 30, 2009, 13:25
имхо, автоконнект это зло.

Ну в "неправильных" руках много чего во зло превращается. Файлы ресурсов .qrc наверно тоже все вручную составляют и xml файл локализации для программы тоже пишут в блокноте...


Название: Re: Файловый менеджер
Отправлено: spirit от Апрель 30, 2009, 13:27
имхо, автоконнект это зло.

Ну в "неправильных" руках много чего во зло превращается. Файлы ресурсов .qrc наверно тоже все вручную составляют и xml файл локализации для программы тоже пишут в блокноте...
причем тут? вообще левый пример.


Название: Re: Файловый менеджер
Отправлено: pastor от Апрель 30, 2009, 14:05
А я неиспытываю никаких комплексов по поводу дизайнера. То что можно сделать в дизайнере, делаю в нем. Удобная тулза особенно для больших и сложных виджетов


Название: Re: Файловый менеджер
Отправлено: spirit от Апрель 30, 2009, 14:06
А я неиспытываю никаких комплексов по поводу дизайнера. То что можно сделать в дизайнере, делаю в нем. Удобная тулза особенно для больших и сложных виджетов
+1


Название: Re: Файловый менеджер
Отправлено: Racheengel от Апрель 30, 2009, 15:34
Ну какая разница, дизайнер или не дизайнер, "главное шоб работало" :)

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


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Апрель 30, 2009, 16:48
Я тоже Дизайнер не чествую, использую только для мелких и простеньких окошек, которые требуют несколько кликов.


Название: Re: Файловый менеджер
Отправлено: Пантер от Апрель 30, 2009, 19:11
Ну в "неправильных" руках много чего во зло превращается. Файлы ресурсов .qrc наверно тоже все вручную составляют и xml файл локализации для программы тоже пишут в блокноте...
Почему вручную? Креатор вполне нормально с этим справляется.
Почему я не люблю дизайнер:
1. Поначалу его используя написал проектик, потом забрали мой комп(дело было на работе) и поставили такие дрова, на которых дизайнер не запускался. Пришлось нафиг сначала все делать.
2. Начинал с делфи и билдера. Любил кнопочки таскать, а что в реальности происходит не знал. Вот так вот. Т.е. использование дизайнера как бы отупляет в начале изучения.
3. Мне вломы каждый раз открывать форму в дизайнере, если я забыл как именуется нужный виджет.
Дизайнер использую только если в коде проблемы, чтобы поэкспериментировать вживую, не компилируя каждый раз.


Название: Re: Файловый менеджер
Отправлено: SABROG от Апрель 30, 2009, 21:33
Ни одного весомого довода так и не услышал, не убедили. У меня тоже QtCreator не запускался из-за того, что:
а) был собран под XP троллями, а я запускал на win2k
б) касперский его не взлюбил

Это меня не остановило и у меня на работе сейчас стоит 3 ОС - XP, Ubuntu и VirtualBox с другой XP, которую я юзаю и под XP и под Ubuntu одновременно. Поэтому тут даже если где-то дрова скосячат или ОС, я всегда могу выполнить задуманное в другой ОС.

Про нубиков оно понятно, но портянки кода, где создаются одни кнопочки и окошечки имхо отпугивают как ассемблер. Когда я начинал Qt изучать переходя с Builder'a, то мне в глаза именно ручное создание кнопок не понравилось, потом я узнал о дизайнере и решил углубится. Потом задумался об оверхеде и проштудировал ui_*.h файл поняв, что всю ручную простановку компилятор генерит сам. Т.е. разницы никакой.

Мне например не лень открывать дизайнер, чтобы посмотреть имена окон, но я иногда открывают сразу ui_.h файл или .ui файл, благо текстовые.

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

В общем программировать серьезный интерфейс вслепую не для меня. Как правило, только с академической целью в качестве ответа на форуме. Не приаттачивать же каждый .ui файл или не создавать же каждый раз QMainWindow.


Название: Re: Файловый менеджер
Отправлено: ритт от Апрель 30, 2009, 22:57
о чём флэймим? создавайте отдельный тред в "общих" - и там на здоровье.
кому-то нравится дизайнер, кому-то - нет.
мне, например, дизайнер нравится - красивый такой, цветной...но использую его довольно редко, т.к. не вижу особой необходимости. и если на код мне придётся потратить на пять минут больше, чем на форму, что ж? - куда торопиться?
и .qrc-шки до креатора писал в гсноте (в чём сложность примитивный хмл набить?)


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 01, 2009, 09:01
Пантер я тут собрал версию 0.0.0.4
заметил такой неприятный момент:
Автоматическое обновление списка файлов в каталоге.
Уменя Qt собиралась в этот момент и в каталоге %TEMP% постоянно список файлов скачет (компиллер  с линкером там времянки создают). Лучше сделать как Тотале, обновлять только в тот момент, когда фокус на панель переходит или по специальной кнопке.


Название: Re: Файловый менеджер
Отправлено: SABROG от Май 01, 2009, 09:06
В тотале кстати опция есть, которая обновляет список файлов сразу же как что-то меняется в директории. Раньше мне частенько приходилось нажимать ctr+r, чтобы увидеть новые добавленные файлы, даже если фокус в тотале есть.

Я вот чего думаю. Нельзя ли добавить обертку table->viewport()->setUpdatesEnabled(false/true), может это благоприятнее скажется на скорости.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 01, 2009, 10:48
>>даже если фокус в тотале есть.
там дело даже не в самом фокусе, а в его изменении.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 01, 2009, 11:18
там вотчер за текущей папкой следит. пусть следит, он хороший )
или с этим какие-то проблемы связаны?

в принципе, можно при потере фокуса вотчер отключать. ??


Название: Re: Файловый менеджер
Отправлено: SABROG от Май 01, 2009, 11:40
По идее такое должно отключать:

void QFileSystemWatcher::removePath ( const QString & path )

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


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 01, 2009, 12:57
При неактивности окна можно будет просто вблокировать сигналы у вочера. Сейчас все так работает для наглядности, потом уже будет в зависимости от настроек.
Кстати, было в начале решение при приходе запроса на обновление сравнивать текущее время со временем прошлого обновления и если оно меньше определенного числа, не обновляться. Не помню, почему я отключил эту вещь.. Вернуть?
SABROG: еще  на счет дизайнера. Использую много нестандартных виджетов, допустим тот же TreeView я переопределил. И мне западло все эти виджеты подгружать в дизайнер.


Название: Re: Файловый менеджер
Отправлено: SABROG от Май 01, 2009, 13:20
При неактивности окна можно будет просто вблокировать сигналы у вочера. Сейчас все так работает для наглядности, потом уже будет в зависимости от настроек.
Кстати, было в начале решение при приходе запроса на обновление сравнивать текущее время со временем прошлого обновления и если оно меньше определенного числа, не обновляться. Не помню, почему я отключил эту вещь.. Вернуть?
SABROG: еще  на счет дизайнера. Использую много нестандартных виджетов, допустим тот же TreeView я переопределил. И мне западло все эти виджеты подгружать в дизайнер.

Это тогда получится что-то типа обновлять раз, скажем, в секунду? Включи, а то обновлять 100 раз в секунду наверно не надо, если идет запись в файл, который находится в обновляемой папке :) Надо понаблюдать как это делается в тотале.

В дизайнере для переопределенных виджетов есть "promote to",  просто будет висеть пустой каркас, который хотябы даст представление о том где находится виджет, какие у него размеры и как он взаимодействует с другими виджетами. Это, конечно, если виджет стандартной формы. А то, что западло это понятно. Мне сегодня тоже работать западло, когда вся страна празднует 1 мая.


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 01, 2009, 13:27
Хорошо, верну. Только когда не знаю, праздники. :)
Пока использование дизайнера не планируется. Впоследствии если будет много людей, желающих ui'шек, сделаю ui'шки. Думаю, особых проблем с этим не будет.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 01, 2009, 14:35
пантер, выложи сорцы уже? тут на праздниках как раз дурью маяться.
кстати, тягибросай поковырял...


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 01, 2009, 14:51
Уменя Qt собиралась в этот момент и в каталоге %TEMP% постоянно список файлов скачет (компиллер  с линкером там времянки создают).
ну вот в фокус на панельке, захочется мне файл выделить и что-то с ним делать, а попробуй попади в него. В тотале определенно лучше.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 03, 2009, 05:52
несколько вопросиков возникло:
* при сортировке по имени должен ли учитываться регистр символов? если да, то должно ли это быть настраиваемым или достаточно учитывать регистро(не)зависимость файловой системы?
* так же при сортировке по имени должны ли сортироваться папки или всех устраивает поведение тотала (папки всегда сортируются по возрастанию)?
* нужна ли "быстрая" фильтрация файлов по маске, типу и т.п.? как выделение файлов по маске, но с другим эффектом - неудовлетворяющие условию файлы, скрываются из списка.
* нужна ли возможность настраивать кнопки навигации/действий на панели, как у дольфина или достаточно закрепить необходимые кнопки как история, вверх, домой, в корень - как у тотала?

и напоследок вопрос, несколько предательский по отношению к пантеру :)
* нужна ли визуализация вендо-специфичных атрибутов файлов в общем списке? т.к. в других системах у файлов нет атрибутов, имеет ли смысл вообще этим заморачиваться (визуализацией)?


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 03, 2009, 07:56
>>при сортировке по имени должен ли учитываться регистр символов?
лично я не навижу такое поведение.

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


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 03, 2009, 11:10
Цитировать
* при сортировке по имени должен ли учитываться регистр символов? если да, то должно ли это быть настраиваемым или достаточно учитывать регистро(не)зависимость файловой системы?
Должен, но опционально.
Цитировать
* так же при сортировке по имени должны ли сортироваться папки или всех устраивает поведение тотала (папки всегда сортируются по возрастанию)?
Мое желание, чтобы каталоги всегда были сверху от файлов. Но если будут возражения, придется изменить.
Цитировать
* нужна ли "быстрая" фильтрация файлов по маске, типу и т.п.? как выделение файлов по маске, но с другим эффектом - неудовлетворяющие условию файлы, скрываются из списка.
Нужна.
Цитировать
* нужна ли возможность настраивать кнопки навигации/действий на панели, как у дольфина или достаточно закрепить необходимые кнопки как история, вверх, домой, в корень - как у тотала?
Как у тотала.

Цитировать
и напоследок вопрос, несколько предательский по отношению к пантеру :)
* нужна ли визуализация вендо-специфичных атрибутов файлов в общем списке? т.к. в других системах у файлов нет атрибутов, имеет ли смысл вообще этим заморачиваться (визуализацией)?
Имеет, иначе ФМ не нужен.


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 03, 2009, 13:41
Появился домик http://gitorious.org/projects/panthercommander.


Название: Re: Файловый менеджер
Отправлено: Racheengel от Май 03, 2009, 18:30
скачал с гита.
заметил глюк - при входе в каталог, файлы первые полсекунды "прыгают" в произвольном порядке (замечено в 9-й кубунте, винду не смотрел).
А так симпатично, ну еще правда вьювер глючит, но это так... Полноценная замена тоталу не помешала бы :)


Название: Re: Файловый менеджер
Отправлено: Pretorean от Май 03, 2009, 18:38
ubuntu 8.04, qt 4.4 из репозитария
Цитировать
In file included from src/qfilepanel.h:40,
                 from src/mainwindowimpl.h:39,
                 from src/mainwindowimpl.cpp:25:
src/qfilelistview.h: In member function ‘int QFileListView::sortColumn()’:
src/qfilelistview.h:67: ошибка: ‘class QFileListSortFilterProxyModel’ has no member named ‘sortColumn’
src/qfilelistview.h: In member function ‘Qt::SortOrder QFileListView::sortOrder()’:
src/qfilelistview.h:68: ошибка: ‘class QFileListSortFilterProxyModel’ has no member named ‘sortOrder’
make: *** [build/mainwindowimpl.o] Ошибка 1


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 03, 2009, 18:42
Qt должна быть не ниже 4.5.


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 03, 2009, 18:44
скачал с гита.
заметил глюк - при входе в каталог, файлы первые полсекунды "прыгают" в произвольном порядке (замечено в 9-й кубунте, винду не смотрел).
А так симпатично, ну еще правда вьювер глючит, но это так... Полноценная замена тоталу не помешала бы :)
Прыгают из-за динамической сортировки. Сейчас Константин подключился к разработке, переделывает по полной модель. В ближайшие несколько дней скорее всего коммитов не будет. :)


Название: Re: Файловый менеджер
Отправлено: Pretorean от Май 03, 2009, 18:56
Qt должна быть не ниже 4.5.
а чем связанно ограничение ?


Название: Re: Файловый менеджер
Отправлено: Pretorean от Май 03, 2009, 19:01
Qt должна быть не ниже 4.5.
а чем связанно ограничение ?
вопрос снят, сам понял


Название: Re: Файловый менеджер
Отправлено: crackedmind от Май 04, 2009, 16:33
panter_dsd
Ты бы добавил такое в файл проекта. В Qt Creator'e вот так вот проверяют версию при компиляции :)
Код:
#version check qt
TOO_OLD_LIST=$$find(QT_VERSION, ^4\.[0-4])
count(TOO_OLD_LIST, 1) {
    message("Cannot build the program with a Qt version that old:" $$QT_VERSION)
    error("Use at least Qt 4.5.")
}

Еще можно добавить в main() макрос
Код:
QT_REQUIRE_VERSION(argc, argv, "4.5.0");
Будет выполняться проверка в рантайме.


Название: Re: Файловый менеджер
Отправлено: Dimich от Май 06, 2009, 09:37
Собрал с Qt 4.5.1 под Windows. Почти сразу обнаружил интересный глюк:
У меня есть каталог содержащий файл с датой изменения 25 октября 2048 г., 12:58:40.
При просмотре данного каталога PantherCommander вылетает по ошибке


Название: Re: Файловый менеджер
Отправлено: ритт от Май 06, 2009, 10:07
Собрал с Qt 4.5.1 под Windows. Почти сразу обнаружил интересный глюк:
У меня есть каталог содержащий файл с датой изменения 25 октября 2048 г., 12:58:40.
При просмотре данного каталога PantherCommander вылетает по ошибке
а если открыть эту папку через QFileDialog?
Код:
QFileDialog* dialog = new QFileDialog;
dialog->open();


Название: Re: Файловый менеджер
Отправлено: Dimich от Май 06, 2009, 10:21
QFileDialog проходит без проблем. Как родной диалог, так и нативный


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 06, 2009, 11:36
Тут проблема в том, что для получения даты использовал не кутевые способы. Скорее всего где-то переполнение, но это уже не важно, т.к. механизм полностью переделан. Вполне возможно, что в течении недели или двух недель будет версия 0.0.0.5.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 06, 2009, 13:08
я думаю, до конца недели :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 06, 2009, 17:31
Разговор врача и мальчика:
(В)Мальчик, сколько тебе лет?
(М)Четыре будет.
(В)Оптимист...
:)


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 07, 2009, 09:26
Пантер, я тут одну доработку сделал:
Код
Diff
@@ -84,6 +84,7 @@ void MainWindowImpl::setLayouts()
layout->addWidget(qsplitSplitter);
layout->addLayout(qhblConsoleCommandLayout);
layout->addWidget(qfCommandButtons);
+ layout->setContentsMargins(-1, -1, -1, 0);
qwCentralWidget->setLayout(layout);
}
чтобы у командных кнопок убрать отступ с низу, а то некрасиво было.
Может примешь изменения (это к версии 0.0.0.4)


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 07, 2009, 11:43
Сегодня посмотрю.
-----------------------------------------------------------
Посмотрел. Понравилось. Принял. :)


Название: Re: Файловый менеджер
Отправлено: kirill от Май 15, 2009, 07:29
Чо то попробовал собрать проект - не может найти dirent.h
Как его подключать?


Название: Re: Файловый менеджер
Отправлено: Q2W от Май 17, 2009, 13:06
Вопрос разработчикам:
А вот многие ФМ умеют присоединяться к ftp, smb, etc. Но что-то мне подсказывает, что это как минимум не юникс-вэй. Ибо остальные программы не могут получить доступ туда же без собственной реализации этих протоколов.
В связи с этим, считаю правильным, когда ftp, самба, nfs, монтируется по запросу юзера прямо в ФС (под виндой как новый диск).

Так вот, разработчики разделяют это мнение или будут делать свою реализацию подключения к этим типам файлохранилищ?

Сым было начал свой ФМ на qt jambi, однако, смотрю, у вас лучше спорится дело. Так что буду участвовать фичреквестами и багрепортами +)


Название: Re: Файловый менеджер
Отправлено: SABROG от Май 17, 2009, 16:15
Для Active Directory (SAMBA) можно попробовать OpenLDAP. Сам не пробовал.


Название: Re: Файловый менеджер
Отправлено: Q2W от Май 17, 2009, 18:30
Для Active Directory (SAMBA) можно попробовать OpenLDAP. Сам не пробовал.

Т.е. Ваше мнение, что подключаться к сетевым файлохранилищам юзер должен в каждом отдельном приложении? (В т.ч. в файловом менеджере).

Ну и мне по прежнему интересно мнение разработчиков.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 17, 2009, 18:35
>>юзер должен в каждом отдельном приложении?
Я смысла не понимаю этого вопроса в данной теме. Ну положим все согласятся, что должно монитироваться в конкретную точку ФС, а не быть допфункцией файлового менеджера.

И что дальше? Пантер должен будет реализовать это кроссплатформенно в рамках проекта "Файловый менджер"?


Название: Re: Файловый менеджер
Отправлено: Q2W от Май 17, 2009, 19:00
>>юзер должен в каждом отдельном приложении?
Я смысла не понимаю этого вопроса в данной теме. Ну положим все согласятся, что должно монитироваться в конкретную точку ФС, а не быть допфункцией файлового менеджера.

И что дальше? Пантер должен будет реализовать это кроссплатформенно в рамках проекта "Файловый менджер"?

Как раз я думаю, что этот функционал должен реализовываться в другом приложении.
Тогда:
1. Все приложения смогут пользоваться сетевыми файлохранилищами.
2. Не надо будет использовать разные реализации использования сетевых хранилищ в разных прогах, с разными багами и т.п.
3. Приложения, не реализовавшие этот функционал, получат его.

Так вот, в списке приложений, удобной реализации которых под линукс я не нашёл, это - второе (после ФМ, о чём я писал выше). =)


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 17, 2009, 19:58
Все, что не касается локальной ФС, будет решаться через плагины и ВФС. Под виндой сеть придется через винапи делать, уже немного начато движение в эту сторону. Вообще стандартные методы позволяют лазить под виндой по сетевым шарам типа QDir dir("//192.168.0.1/c/"). Но показ компьютеров придется делать самим. ФТП реализуем. На счет сети под Линуксом еще не решили как, Константин предложил использовать кедовые возможности, но мне завязка на кеды не нравится. Если у кого есть мысли, давайте.
Вообще плагинная система значительно расширит функционал, но работа в этом направлении будет начата лишь тогда, когда будет основной функционал. К сожалению я завтра на сессию уезжаю, так что все ляжет на Константина, ну и немного на меня, если сессия позволит. :)


Название: Re: Файловый менеджер
Отправлено: Q2W от Май 17, 2009, 20:02
Т.е. Вы собрались делать комбайн и очередную реализацию ftp-, smb-, nfs-, ssh-,.. клиентов. Печально.


Название: Re: Файловый менеджер
Отправлено: kuzulis от Май 17, 2009, 20:11
Цитировать
Т.е. Вы собрались делать комбайн и очередную реализацию ftp-, smb-, nfs-, ssh-,.. клиентов. Печально.
а как иначе? (ИМХО)  ведь эти клиенты тоже должны быть кроссплатформенными!
хотя, если для Linux  - то можно не придумывать что-то новое, а взять куски из готовых клиентов (например ssh, nfs)... а вот для Windows - уже на API писать! :)

Насчет кед.. а нельзя ли как нить не использовать их библиотеки? А то получается очередной krusader



Название: Re: Файловый менеджер
Отправлено: Q2W от Май 17, 2009, 20:20
а как иначе?
Как-как. Нужна отдельная прога, сидящая резидентно + в трею где-нибудь.
В ней юзер может примонтировать в систему удалённое файлохранилище как ФС. В линуксе более-менее понятно, как это сделать, а в винде это либо подключение этих ФС как новый дисков (или NTFS-папок), либо как сетевой протокол (виртуалбокс так делает с подключением общих с хост-машиной папок).

P.S.: Что-то у меня такое чувство, что здесь мало кто допёр, чем же всё-таки для пользователя лучше реализация этой штуки как отдельного приложения.


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 17, 2009, 20:25
Q2W: обьясни в чем комбаин? Еще раз повторю, все ВФС будут плагинными. Не нравится, не подключай плагин и пользуйся стандартными средствами. Мне кажется, что при этом подходе и волки будут сыты, и овцы целы.
А на счет крузадера это да, он мне как раз не нравится чрезмерной завязкой на кеды.


Название: Re: Файловый менеджер
Отправлено: Q2W от Май 17, 2009, 20:27
Прошу прощения, про плагины как-то проглядел.
Тогда в принципе это лучше, хотя мне всё равно не понятно, почему не реализовать этот функционал отдельной прогой.


Название: Re: Файловый менеджер
Отправлено: Q2W от Май 17, 2009, 20:29
Хотя, с точки зрения ФМ это всё-таки другой функционал (браузинг против монтирования). Так что вопрос снимается.

Ещё вопрос, а есть какие-нибудь хоть совсем примерные сроки релиза?


Название: Re: Файловый менеджер
Отправлено: kuzulis от Май 17, 2009, 20:41
А кстати, насчет монтирования.. Винда ж тоже его поддерживает.. Можно сразу убить 2-х зайцев ! :) (теоретически)


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 17, 2009, 20:58
На счет даты релиза не знаю, скорее всего уже после сессии, то есть в середине июня. Пока можете на http://gitorious.org/panthercommander/ посматривать.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 17, 2009, 23:49
2 Q2W, вот ты больше всего не допёр, читай мой предыдущий пост. И ответь на вопрос:
Ты хочешь чтобы Пантер всё это добро реализовал?


Название: Re: Файловый менеджер
Отправлено: ритт от Май 18, 2009, 00:27
целую страницу уже накатали втихаря...
Пантер привирает - я не предлагал завязывать на кеды. /* но сделаю кедовые морду и жопки, как будет на что их клеить */
на счёт удалённых фс - есть две разновидности: монтирование фс через ядро с последующим прозрачным доступом; использование сторонних библиотек/приложений, предоставляющих, так сказать, полупрозрачный доступ.
ядром, конечно, удобнее - за все обращения к (удалённой|виртуальной|физической) фс отвечает ядро, а мы лишь обращаемся к ядру "дай мне то, сделай это"...но, если под лялихами есть cifs/samba, nfs, fuse (с целой кучей вфсок - в т.ч. ftpfs, isofs и пр.популярными), то под вендами ёпнуться можно всё это повторять...а юзверю всё-равно будет мало.
сейчас сошлись на том, что из (в|)фс в первую очередь реализовываем доступ к сетевым ресурсам венды, т.к. он сравнительно прост, и делаю болванку для последующей интеграции cifs, nfs - тут уж нативные юзертулзы помогут. затем ftpfs - в кутэ уже реализован QFtp - колёс изобретать не нужно, а просто будет вфс для доступа по фтп.

почему вопрос отдельной программы для монтирование каких-то там фс под вендой и линухом не рассматривается? - потому что, пишется ФМ, а не супер-маунтер. а я не встречал ни одного файлового менеджера, который таскал бы с собой какой-то кусок, который ещё нужно отдельно запускать, а то сети/фтп и прочего не будет. а под линухой autofs - настрой однажды - и не нужно никаких программок в трее.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 18, 2009, 01:03
ну, и немного добрых вестей.../* похвалюсь, а то даже рассказать некому :( */

на прошедшей неделе я провёл работу на тему "где и кто тормозит при работе с фс" (чему толчком косвенно послужило заявление Пантера о невозможности достучаться до залоченных файлов под вендами /* pagefile.sys & co */): исправлены #167099 и #189202, несколько проблем QFileInfo (игнор кеша при некоторых действиях, сброс кеша при копировании QFileInfo, лишние перезапросы), в QDir entry(|Info)List переведены на работу с QList<QFileInfo> (вместо QStringList c последующим созданием QList<QFileInfo>), исправлена сортировка (неправильно сортировались спецпапки . и .. /* номера таски ещё нет*/) и на закуску - хак абстрактитератора под вендами, экономящий минимум 3-4 стата для каждого элемента.

на словах это всё - фигня, на деле - сейчас QFileSystemModel с чтением папки в отдельном потоке и пр.  работает примерно в полторы сотни раз медленней простенькой модели Пантера на диритераторах :)
/* под вендами производительность диритератора сейчас немногим меньше производительности адекватного кода на винапи  */
к сожалению, я сомневаюсь, что удастся значительно повысить производительность фс под никсами - приходится довольствоваться одним сэкономленным статом на файл и оптимизациями QFileInfo/QDir...

на этой неделе планирую начать выкладывать результаты в виде merge-request'ов в недавно открывшуюся репу.

зы. не спешите радоваться - в лучшем случае меньшая часть изменений попадёт в 4.5.х...а если хак абстрактитератора отвергнут и для 4.6, существенного прироста производительности ещё долго не будет...


Название: Re: Файловый менеджер
Отправлено: ритт от Май 18, 2009, 01:20
На счет даты релиза не знаю, скорее всего уже после сессии, то есть в середине июня. Пока можете на http://gitorious.org/panthercommander/ посматривать.
под "релизом" Пантер понимает пре-альфу 0.0.0.6 :)
до релиза ещё ох как далеко...

так что, желающие, присоединяйтесь :)


Название: Re: Файловый менеджер
Отправлено: kirill от Май 18, 2009, 12:39
На счет даты релиза не знаю, скорее всего уже после сессии, то есть в середине июня. Пока можете на http://gitorious.org/panthercommander/ посматривать.
под "релизом" Пантер понимает пре-альфу 0.0.0.6 :)
до релиза ещё ох как далеко...

так что, желающие, присоединяйтесь :)

у мну не собирается проект


Название: Re: Файловый менеджер
Отправлено: pastor от Май 18, 2009, 12:50
у мну не собирается проект

Весьма информативно


Название: Re: Файловый менеджер
Отправлено: Q2W от Май 18, 2009, 13:13
2 Q2W, вот ты больше всего не допёр, читай мой предыдущий пост. И ответь на вопрос:
Ты хочешь чтобы Пантер всё это добро реализовал?

По-моему, очевидно, что нет.

Цитата: Константин
почему вопрос отдельной программы для монтирование каких-то там фс под вендой и линухом не рассматривается? - потому что, пишется ФМ, а не супер-маунтер.
Вот поэтому супер-маунтер и должен быть вообще отдельной прогой, а ФМ должен быть ФМом.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 18, 2009, 13:28
но под линухом уже есть автофс - чем не супер-маунтер, :)


Название: Re: Файловый менеджер
Отправлено: kirill от Май 18, 2009, 14:31
у мну не собирается проект

Весьма информативно

MSVC 2005, Qt 4.5.1.
Не найден dirent.h


Название: Re: Файловый менеджер
Отправлено: ритт от Май 18, 2009, 16:19
в PM dirent.h давно уже заменён на QDirIterator (примерно в 0.0.0.4)
"Не найден dirent.h" - ненамного информативнее предыдущего поста. прикрепи лог сборки с ошибкой...


Название: Re: Файловый менеджер
Отправлено: kirill от Май 18, 2009, 16:34
скачал 0.0.0.6 - все собралось и завелось без проблем.
Зрелище тяжкое конечно оставляет, но посмотреть интересно было.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 18, 2009, 17:07
оставляет зрелище?)

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


Название: Re: Файловый менеджер
Отправлено: Пантер от Май 18, 2009, 17:14
Критика должна быть информативной и обоснованной. В 0.0.0.6 очень много чего поломали, поэтому не все работает как надо. Ждите, все будет. :)


Название: Re: Файловый менеджер
Отправлено: kirill от Май 19, 2009, 07:21
Извиняюсь за критику, по существу скажу. 1) При первом запуске была одна панелька с дисками - слева. Справа не было. При следующих запусках все панельки на месте.
А почему каталоги участвуют в сортировке?
Глюк с вкладками. Открываем ПК. Добавляем новую вкладку командой Add copy of this tab. Несмотря на то что у меня открыт был корень С мне открыли зачем то корень Е.
Дальше вообще чехарда. В первой вкладке - которая была корень С переключаюсь на Д. Переключаюсь на вторую вкладку (которая была Е). Вторая вкладка тут же переходит на С. Опомнилась видать.
Это то что я увидел за 5 минут. Может дальше чо узрею отпишусь.


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 05:43
Есть предложение.
Можно сделать работу с командной строкой как в Фаре. То есть сдвигаем кусок панелей вверх и у нас есть консольное пространство.
Технически реализовать по моему несложно, нужен редактор, а все команды отправлять cmd и вставлять то что он возвращает.
Многим например не нравится тотал коммандер из-за невозможности работать как в Фаре. А сделав это убъешь сразу 2х зайцев.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 05:55
что-то не понял - а как в фаре? кажись, такая же командная строка, как и в мц, и т.п.
или имеется в виду, что при выполнении команды фар сворачивает панели и показывает вывод?


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 06:33
Половина окна - панели, а вторая половина - вывод из консоли.
Естественно размеры регулируются.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 07:01
мдя, нетривиальная задача...
т.е. требуется подобие встроенной консоли второго крузадера, правильно понимаю?

на мой взгляд реквист полезный - обсудим. вот только Пантер сейчас на сессии, а я уезжаю на неделю. так что, ответ будет не раньше, чем через пару недель :)


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 07:08
т.е. требуется подобие встроенной консоли второго крузадера, правильно понимаю?
Да, встроенная консоль. Что такое крузадер я не знаю :(
На мой взгляд ничо сложного то быть не должно. Ставь сплиттер, в нижнюю часть редактор кода, все команды отправляй интерпретатору, ответ интерпретатора вставляй в редактор через QProcess::setReadChannel.
Правда это может мне кажется что просто...


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 22, 2009, 07:11
поддерживаю предложение kirill'а.
В Тоталовском однострочном и однонаправленном редакторе (в котором можно только в водить команды) работать неудобно.


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 22, 2009, 07:12
>>Что такое крузадер я не знаю
http://www.krusader.org/ - KDE'шный "тотал"


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 07:39
т.е. требуется подобие встроенной консоли второго крузадера, правильно понимаю?
Да, встроенная консоль. Что такое крузадер я не знаю :(
На мой взгляд ничо сложного то быть не должно. Ставь сплиттер, в нижнюю часть редактор кода, все команды отправляй интерпретатору, ответ интерпретатора вставляй в редактор через QProcess::setReadChannel.
Правда это может мне кажется что просто...
так и есть - это только кажется :)
во-первых, мне ещё не приходилось программно возиться с cmd - не знаю какие подводные камни там могут прятаться;
во-вторых, для линухи Пантер пока вообще не определился с консолью (код закомментирован) /* что-то пробегало на кутэ-аппзах - посмотрю сегодня, если не забуду */;
в-третьих, пока в консоли не выполнена команда, предполагающая вывод, нет смысла держать консоль развернутой, так? а когда вывод уже не нужен, тягать сплиттер снова в минимум? да и сплиттер не умеет менять размер шагами (кому нужен вывод в 10.3 строк в консоли? :) ). т.е. потребуется автоскрытие или хотя бы кнопочка для скрытия вывода...
так что, с этим придётся повозиться...но позже )


Название: Re: Файловый менеджер
Отправлено: kuzulis от Май 22, 2009, 07:50

1. И это, насчет консоли...
Желательно б сделать еще кнопочку "открыть консоль" и при клике на нее открывался бы терминал с PWD той директории на которой находится курсор (на той вкладке)... А то неудобно лезть в другое место чтобы открыть консоль. Для компиленья чего - нибудь :)
2. Работу с архиваторами сделать так, чтобы не глючили как в krusader, а то невозможно иногда залезть внутрь *.iso-шника, т.к. показывает кучу директорий в разными jolit и т.п. вместо того чтобы показать сразу содержимое и еще если в krusader я лезу в архив и выбираю там какой-то файл, который мне нужно извлеч (скопировать в другое место )- то krusader ругается на то что не могу мол сделать.. и приходится целиком архив распаковыватьчтобы достать этот файл.
3. При навигации во вкладке по директориям или файлам сделать бы поведение курсора (или настройки) аналогично как в TC, а то в krusader напрягает это уж очень..
заключается в том, что если я воставляю курсор на каком нибудь файле, то именно ЭТОТ файл необходимо удалить/редактировать/ и т.п. , а то в Krusader приходится сначала убрать выделение, переместить курсор.. опять выделить.. т.е неудобно.. (или я просто не смог настроить :) )
ЗЫ:
 ФМ не собирал, не смотрел как там что.. т.к нету QT4.5 , поэтому все пожелания чисто субъективные и


Название: Re: Файловый менеджер
Отправлено: kuzulis от Май 22, 2009, 07:54
Цитировать
так и есть - это только кажется Улыбающийся
во-первых, мне ещё не приходилось программно возиться с cmd - не знаю какие подводные камни там могут прятаться;
во-вторых, для линухи Пантер пока вообще не определился с консолью (код закомментирован) /* что-то пробегало на кутэ-аппзах - посмотрю сегодня, если не забуду */;
в-третьих, пока в консоли не выполнена команда, предполагающая вывод, нет смысла держать консоль развернутой, так? а когда вывод уже не нужен, тягать сплиттер снова в минимум? да и сплиттер не умеет менять размер шагами (кому нужен вывод в 10.3 строк в консоли? Улыбающийся ). т.е. потребуется автоскрытие или хотя бы кнопочка для скрытия вывода...
так что, с этим придётся повозиться...но позже )

а я считаю, если правильно я понял - то не нужна встроенная консоль... Просто можно сделать кнопочку для запуска нативной консоли , которая по умолчанию настроена в системе.. в виндах это будет cmd.., a в Linux - уже в зависимомти от DE
т.е в настройках ФМ просто или указать бинарик приложения , которое нужно запустить или сам ФМ каким - то образом будет считывать настройки из DE... Но главное - чтобы консоль открывалать с активной PWD! :)


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 08:05
Цитировать
так и есть - это только кажется Улыбающийся
во-первых, мне ещё не приходилось программно возиться с cmd - не знаю какие подводные камни там могут прятаться;
во-вторых, для линухи Пантер пока вообще не определился с консолью (код закомментирован) /* что-то пробегало на кутэ-аппзах - посмотрю сегодня, если не забуду */;
в-третьих, пока в консоли не выполнена команда, предполагающая вывод, нет смысла держать консоль развернутой, так? а когда вывод уже не нужен, тягать сплиттер снова в минимум? да и сплиттер не умеет менять размер шагами (кому нужен вывод в 10.3 строк в консоли? Улыбающийся ). т.е. потребуется автоскрытие или хотя бы кнопочка для скрытия вывода...
так что, с этим придётся повозиться...но позже )

а я считаю, если правильно я понял - то не нужна встроенная консоль... Просто можно сделать кнопочку для запуска нативной консоли , которая по умолчанию настроена в системе.. в виндах это будет cmd.., a в Linux - уже в зависимомти от DE
т.е в настройках ФМ просто или указать бинарик приложения , которое нужно запустить или сам ФМ каким - то образом будет считывать настройки из DE... Но главное - чтобы консоль открывалать с активной PWD! :)

Это у ПК и так есть. по F2 открывает cmd с текущей дирой.
Но это все не то блин.


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 08:08
в-третьих, пока в консоли не выполнена команда, предполагающая вывод, нет смысла держать консоль развернутой, так? а когда вывод уже не нужен, тягать сплиттер снова в минимум? да и сплиттер не умеет менять размер шагами (кому нужен вывод в 10.3 строк в консоли? :) ). т.е. потребуется автоскрытие или хотя бы кнопочка для скрытия вывода...
так что, с этим придётся повозиться...но позже )
Юзер захотел раздвинул - панель консоли. Надоела - убрал. Ничего за него догадываться не надо. И автоскрытия не надо. В общем пересказывать функционал фара долго - проще посмотреть.
Размер сплиттера вообще монопенисуален - в сплиттере будет скролл и в нем вся история.


Название: Re: Файловый менеджер
Отправлено: kuzulis от Май 22, 2009, 08:15
2 kirill,

а зачем то огород городтить? какая польза от этой встроенной консоли? я например сколько не работал с ФМ - никогда не использовал.. т.к. нет никакой выгоды и вообще.. лишнее...


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 08:20
2 kirill,

а зачем то огород городтить? какая польза от этой встроенной консоли? я например сколько не работал с ФМ - никогда не использовал.. т.к. нет никакой выгоды и вообще.. лишнее...

Как это никакой.
Вот я работаю в тотале.
Поправил файл проекта. Пишу qmake -tp vc - мелькает черное окошко и исчезает. Я матерюсь (про себя) набираю cmd, в cmd набираю qmake -tp vc, чтобы увидеть вывод, что все нормально. Так вот это конкретно подзаубывает.
А тут - набрал команду - глянул на вывод и дальше работай. Никаких лишних действий.
Так что надо однозначно.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 08:29
1. И это, насчет консоли...
Желательно б сделать еще кнопочку "открыть консоль" и при клике на нее открывался бы терминал с PWD той директории на которой находится курсор (на той вкладке)... А то неудобно лезть в другое место чтобы открыть консоль. Для компиленья чего - нибудь :)
по ф2 сейчас так и должно быть (если не путаю)

2. Работу с архиваторами сделать так, чтобы не глючили как в krusader, а то невозможно иногда залезть внутрь *.iso-шника, т.к. показывает кучу директорий в разными jolit и т.п. вместо того чтобы показать сразу содержимое и еще если в krusader я лезу в архив и выбираю там какой-то файл, который мне нужно извлеч (скопировать в другое место )- то krusader ругается на то что не могу мол сделать.. и приходится целиком архив распаковыватьчтобы достать этот файл.
до архиваторов (вфс) ещё далеко. пока что реализовал zipfs с возможностью "только чтения" - в тестах уже бегает, но прикрутить к "живому" приложению не судьба, т.к. QDir + QDirIterator довольно глупо себя ведут с путями вида "/path/to/zipfile.zip/", что необходимо для перечисления содержимого логического корня архива. сегодня написал кучку патчей для исправления ситуации - буду проталкивать их в мэйн.

3. При навигации во вкладке по директориям или файлам сделать бы поведение курсора (или настройки) аналогично как в TC, а то в krusader напрягает это уж очень..
заключается в том, что если я воставляю курсор на каком нибудь файле, то именно ЭТОТ файл необходимо удалить/редактировать/ и т.п. , а то в Krusader приходится сначала убрать выделение, переместить курсор.. опять выделить.. т.е неудобно.. (или я просто не смог настроить :) )
да-да-да :) тоже напрягает это дико. сам сколько раз уже копировал/переносил/удалял не те файлы/папки...только это не навигация, а выделение.
а к крузадеровской навигации курсорными клавишами (влево/вправо), я надеюсь, претензий нет? а то уж очень приглянулась мне эта фича...


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 08:43
я тоже считаю, что встроенная консоль нужна. когда поработаешь с мц или фаром, потом на автомате в тотале ctrl+o жмёшь :)
но сделаем её опциональной, раз не все в ней нуждаются.
а к консоли потом ещё можно кучу всего интересного придумать :)

kirill, фар у меня имеется, спасибо :р
приведу пример: пошёл я в папку с кутэшными экзамплами и что-то там скомпилил через встроенную консоль - консоль показала вывод мэйка - всё гут. надо ело мне компилить это экзампл, я сделал "cd /". вопрос: на кой ляд мне всё ещё видеть вывод мэйка, если я уже в другой папке (а то и в другой файловой системе)?
конечно, автохайд тоже можно сделать опциональным. но я пока не представляю даже как сделать многострочный эдит, в свёрнутом виде похожий на комбу, а в развёрнутом...нет, не на текстэдит, т.к. требуется история команд...

упд. глянул сейчас кутэ-аппз, пока помню - пот такого зверя нашёл: http://www.qt-apps.org/content/show.php/QTermWidget?content=82832. вечером попробую...


Название: Re: Файловый менеджер
Отправлено: kuzulis от Май 22, 2009, 08:54
Кстати, а если как пример - посмотреть как сделана консоль в qdevelop ?  Не?


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 09:15
честно говоря, когда поставил креатор, кудэвелоп забыл, как дурной сон. там разве есть консоль?) буду иметь в виду.

[не в тему]
даже с запатченными QDir(|Iterator) QFileSystemModel жестоко тупит при входе в архив! оно вешает вотчер (который на натив апи и к вфс никакого отношения не имеет), а вотчер с дуру зацикливает обновление папки (т.к. такой папки на диске на самом деле нет).
я догадывался, что так будет, но всё-равно разочарован :(
[/не в тему]


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 09:17
приведу пример: пошёл я в папку с кутэшными экзамплами и что-то там скомпилил через встроенную консоль - консоль показала вывод мэйка - всё гут. надо ело мне компилить это экзампл, я сделал "cd /". вопрос: на кой ляд


Ты не сможешь сделать cd / пока мейк не отработает.
а история пусть остается.


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 09:45
приведу пример: пошёл я в папку с кутэшными экзамплами и что-то там скомпилил через встроенную консоль - консоль показала вывод мэйка - всё гут. надо ело мне компилить это экзампл, я сделал "cd /". вопрос: на кой ляд

Ты не сможешь сделать cd / пока мейк не отработает.
а история пусть остается.
а я и не говорил, что мэйк всё ещё работает. экзамплы довольно шустро собираются :)
а история пусть остаётся где?


Название: Re: Файловый менеджер
Отправлено: kuzulis от Май 22, 2009, 10:48
Цитировать
честно говоря, когда поставил креатор, кудэвелоп забыл, как дурной сон. там разве есть консоль?) буду иметь в виду.

Ну я имел ввиду окошко куда выводятся сообщения от компилятора :)



Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 11:00
ах, нет - это же просто текстэдит с хайлатером...
основное отличие консольки от текстэдита - командная строка с историей ввода - тут как минимум навигацию курсорными клавишами придётся переопределять, что само по себе уже не гут; а интеграцию с командной оболочкой ещё делать - вообще ой...


Название: Re: Файловый менеджер
Отправлено: kirill от Май 22, 2009, 18:59
а история пусть остаётся где?

История в сколле


Название: Re: Файловый менеджер
Отправлено: ритт от Май 22, 2009, 19:36
так не бывает. в скролле вывод - он статичен и обновляется только при выполнении введённых команд. история же ввода хранится где-то "внутри", а сами команды из истории выуживаются кнопочками вниз/вверх...


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Май 22, 2009, 20:42
ну вы просто про разную историю, я сначала тоже подумал про историю Вывода.
На первых порах меня бы и отсутствие истории ввода устроило. Лишь бы это действительно консоль была, как например в Notepad++ (правда там и история ввода есть)


Название: Re: Файловый менеджер
Отправлено: crackedmind от Июль 09, 2009, 23:38
Попытался скомпилить текущую версию из git. Ну знаете это какая та мистика :)
Валится на стадии линковки.

Цитировать
qfileoperationsthread.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__ShellExecuteW@24 в функции "public: static bool __cdecl QFileOperationsThread::execute(class QString const &,cl
ass QStringList const &,class QString const &)" (?execute@QFileOperationsThread@@SA_NABVQString@@ABVQStringList@@0@Z)
Че самое интересное в makefile даже нужные либы даже не подключаются ???


Название: Re: Файловый менеджер
Отправлено: ритт от Июль 10, 2009, 00:51
а нам пох - у нас мингв :D

если серьёзно, завтра исправлю :)


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Июль 10, 2009, 01:03
Коль тему реанимировали, тоже скажу:
давненько не проверял, но пару недель назад прога валилсь при попытке скопировать файл.


Название: Re: Файловый менеджер
Отправлено: ритт от Июль 10, 2009, 17:37
Попытался скомпилить текущую версию из git. Ну знаете это какая та мистика :)
Валится на стадии линковки.

Цитировать
qfileoperationsthread.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__ShellExecuteW@24 в функции "public: static bool __cdecl QFileOperationsThread::execute(class QString const &,cl
ass QStringList const &,class QString const &)" (?execute@QFileOperationsThread@@SA_NABVQString@@ABVQStringList@@0@Z)
Че самое интересное в makefile даже нужные либы даже не подключаются ???
попробуй теперь


Название: Re: Файловый менеджер
Отправлено: sLiva от Июль 10, 2009, 20:02
попробуй теперь

Прилепите git ссылку в более видное место, например в профиль или еще куданить, а то пока нашел пипец, аж на 10-й странице :)


Название: Re: Файловый менеджер
Отправлено: lit-uriy от Июль 10, 2009, 20:43
Ссылку на до в первом сообщении.
Вот мои замечания, по вчерашнему срезу:
Код:
Срез: dcacce10be543341b9e4df3f169c6326df6ee3fe
 - Копирование файла
Можно задать только путь, нельзя указать имя целевога файла, как это сделано в Тотале

 - Контекстное меню каталога
Нет контекстного меню проводника ОС, а нужно! (там куча всяких операций)

 - F4 (Edit)
Не работает (т.е. вообще ничего не происходит); При этом F3 работает.


Название: Re: Файловый менеджер
Отправлено: ритт от Июль 10, 2009, 23:54
Ссылку на до в первом сообщении.
попозжа

Вот мои замечания, по вчерашнему срезу:
Код:
<snip>
 - Контекстное меню каталога
Нет контекстного меню проводника ОС, а нужно! (там куча всяких операций)
<snip>
а кто-нть подскажет где искать пример для использования системного контекстного меню? а то я пока не встречал такого...


Название: Re: Файловый менеджер
Отправлено: crackedmind от Июль 11, 2009, 02:57
Ну компилируется нынче замечательно. Только вот стартует долго, а потом вообще ни на что не реагирует. Загрузка процессора 0%, но приложение выглядит подвисшым.  ???

Windows Vista, MS VC++ 2008 SP1 Express Edition

По поводу системного контекстного меню. Нашел неплохой пример правда только под винду.
http://www.codeproject.com/KB/shell/shellcontextmenu.aspx


Название: Re: Файловый менеджер
Отправлено: panAlexey от Июль 27, 2009, 17:57
а кто-нть подскажет где искать пример для использования системного контекстного меню? а то я пока не встречал такого...
Код:
	LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
USES_CONVERSION;

//bHandled = FALSE;
HWND hwnd = (HWND) wParam;
int xPos = LOWORD(lParam);
int yPos = HIWORD(lParam);
if (hwnd == m_Tree.m_hWnd){
POINT pt;
RECT rect;
HTREEITEM hItem = m_Tree.GetSelectedItem();
if ((xPos == yPos) && (yPos == 65535)){ // (((( ну вот приходится так делать...
if (hItem != NULL){
if (m_Tree.GetItemRect(hItem, &rect, true)){
xPos = 0;
yPos = rect.bottom;
pt.x = xPos; pt.y = yPos;
::ClientToScreen(hwnd, &pt);
xPos = pt.x; yPos =  pt.y;
//int iii = 0;

}

} else {
return 0;

}
//rect =
} else {
pt.x = xPos; pt.y = yPos;
::ScreenToClient(hwnd, &pt);
UINT uFlag = 0;
hItem = m_Tree.HitTest(pt,&uFlag);
}
if (hItem != NULL){
//m_Tree.Select(hItem,TVGN_CARET);
m_Tree.SelectItem(hItem);
} else {
hItem = m_Tree.GetSelectedItem();
}
bHandled = true;
HRESULT hr;

CString pszPath = m_Tree.GetFullPath(hItem);
   // Строим полное имя файла/каталога
   TCHAR tchFullPath[MAX_PATH];
   hr = GetFullPathName(pszPath, sizeof(tchFullPath)/sizeof(TCHAR), tchFullPath, NULL);

   // Получаем интерфейс IShellFolder рабочего стола
   IShellFolder *pDesktopFolder;
   hr = SHGetDesktopFolder(&pDesktopFolder);
   if (NOERROR == hr  ){
   
   // Преобразуем заданный путь в LPITEMIDLIST
   LPITEMIDLIST pidl;
   hr = pDesktopFolder->ParseDisplayName(hwnd, NULL, T2OLE(tchFullPath), NULL, &pidl, NULL);
   if (S_OK == hr){
   
   // Ищем последний идентификатор в полученном списке pidl
   LPITEMIDLIST pLastId = pidl;
   USHORT temp;
   while(1)
   {
   int offset = pLastId->mkid.cb;
   temp = *(USHORT*)((BYTE*)pLastId + offset);

   if(temp == 0)
   break;

   pLastId = (LPITEMIDLIST)((BYTE*)pLastId + offset);
   }
   
   // Получаем интерфейс IShellFolder родительского объекта для заданного файла/каталога
   // Примечание: родительский каталог идентифицируется списком pidl за вычетом последнего
   //             элемента, поэтому мы временно зануляем pLastId->mkid.cb, отрезая его от списка
   temp = pLastId->mkid.cb;
   pLastId->mkid.cb = 0;
   IShellFolder *pFolder;
   hr = pDesktopFolder->BindToObject(pidl, NULL, IID_IShellFolder, (void**)&pFolder);
   if (S_OK == hr){

   // Получаем интерфейс IContextMenu для заданного файла/каталога
   // Примечание: относительно родительского объекта заданный файл/каталог идентифицируется
   //             единственным элементом pLastId
   pLastId->mkid.cb = temp;
   IContextMenu *pContextMenu;
   hr = pFolder->GetUIObjectOf(
  hwnd, 1, (LPCITEMIDLIST *)&pLastId, IID_IContextMenu, NULL, (void**)&pContextMenu);
   if (S_OK == hr){

   // Создаём меню
   HMENU hPopupMenu = CreatePopupMenu();

   // Заполняем меню
   pContextMenu->QueryContextMenu(hPopupMenu, 0, 1, 0x7FFF, 0);

   // Отображаем меню
   UINT nCmd = TrackPopupMenu(hPopupMenu,
  TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON|TPM_RETURNCMD, xPos, yPos, 0, hwnd, 0);

   // Выполняем команду (если она была выбрана)
   if(nCmd)
   {
  CMINVOKECOMMANDINFO ici;
  ZeroMemory(&ici, sizeof(CMINVOKECOMMANDINFO));
  ici.cbSize = sizeof(CMINVOKECOMMANDINFO);

  ici.hwnd = hwnd;
  ici.lpVerb = MAKEINTRESOURCE(nCmd-1);
  ici.nShow = SW_SHOWNORMAL;

  pContextMenu->InvokeCommand(&ici);
   }    
   }
   pContextMenu->Release();
   }

   // Освобождаем все полученные интерфейсы
   pFolder->Release();
   }
   // Получаем интерфейс IMalloc
       IMalloc *pMalloc;
   SHGetMalloc(&pMalloc);

   // Освобождаем память, выделенную для pidl
   pMalloc->Free(pidl);
   pMalloc->Release();
   }
       pDesktopFolder->Release();

}
return 0;
}
};

полностью тут: http://www.1cpp.ru/forumfiles/Attachments/OCP_ExtFiles_2006_06_27-11_30.rar
что-бы было понятно, что это за бодяга в сорцах, ссылки на историю:
http://www.1cpp.ru/forum/YaBB.pl?num=1150990860
http://www.1cpp.ru/forum/YaBB.pl?num=1161862716/10#10


Название: Re: Файловый менеджер
Отправлено: Пантер от Июль 27, 2009, 18:32
Уже сделано, спасибо огромное Константину.


Название: Re: Файловый менеджер
Отправлено: ритт от Июль 27, 2009, 19:57
по поводу нативного меню меня сейчас интересует лишь пара вопросов:
1. по какому принципу TrackPopupMenu рассчитывает геометрию айтемов?
я делаю в обход TrackPopupMenu и нормальная геометрия возвращается только для крошечных элементов (например, 4х12). для остальных случаев корректна только высота, а ширина возвращается в 1.5-4х раз меньше требуемой
2. каким макаром программы вроде PicaView отрисовывают содержимое?
пробовал даже отправлять порченные структуры (без хэндла меню, без dc) - всё-равно рисует
/* странно, что мысля пришла только сейчас - возможно, оно наследует окно при инициализации и рисует "через голову"...надо будет проверить */

победить эти две заморочки - и можно будет отказаться от убогого нативного меню в пользу кутэшного.

panAlexey, но всё-равно спсибо за ссылку - на досуге поковыряю. а то я после многочасовой сортировки дерьма на кодпрожекте решил больше не искать по этой теме...


Название: Re: Файловый менеджер
Отправлено: Пантер от Июль 29, 2009, 06:42
Помогите написать CMakeLists.txt. Вчера 6 часов убил, но так и не получилось. Косяки с инклудами в cpp типа #include "moc_что-то.cpp", так как cmake  делает moc_что-то.cxx. :( Гугл почему-то вообще не дает ответов.


Название: Re: Файловый менеджер
Отправлено: crackedmind от Июль 29, 2009, 08:03
А это читал? http://qtnode.net/wiki/Qt_with_cmake

В частности про QT4_WRAP_CPP.


Название: Re: Файловый менеджер
Отправлено: Пантер от Июль 29, 2009, 08:13
Читал, конечно. Я же сказал, что проблема именно при инклюде мока.


Название: Re: Файловый менеджер
Отправлено: crackedmind от Июль 29, 2009, 08:37
Не понял, зачем их инклудить? Как я понял в проекте вроде все на cpp/h разбито, так зачем напрямую инклудить moc?


Название: Re: Файловый менеджер
Отправлено: pastor от Июль 29, 2009, 09:04
Помогите написать CMakeLists.txt.


CMake как система сборки для Qt приложений (http://prog.org.ru/wiki/index.php?title=CMake_%D0%BA%D0%B0%D0%BA_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Qt_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9)


Название: Re: Файловый менеджер
Отправлено: Пантер от Июль 29, 2009, 09:19
В этой статье нет решения данной проблемы, можешь сам проверить.


Название: Re: Файловый менеджер
Отправлено: crackedmind от Июль 29, 2009, 09:26
Убрать #include "moc_..." Из кода, и
Код:
qt4_wrap_cpp( MOC_SOURCES 
${exp_SOURCE}
${src_SOURCE}
${models_SOURCE}
${dialogs_SOURCE} 
${io_SOURCE}
${PantherViewer_SOURCE}
${Preferences_SOURCE}
${tools_SOURCE}
${widgets_SOURCE}
)
и это безобразие поменять :/ по хедерам же генерируются moc файлы...


Название: Re: Файловый менеджер
Отправлено: Пантер от Июль 29, 2009, 11:28
#include "moc_..." убрать из кода не получится, так как тогда не будет собираться через qmake. :(


Название: Re: Файловый менеджер
Отправлено: denka от Июль 29, 2009, 11:48
Это почему же? Все должно собираться и без этого include


Название: Re: Файловый менеджер
Отправлено: Пантер от Июль 29, 2009, 11:50
Попробуй. ;) Оно бы там за просто так не стояло.


Название: Re: Файловый менеджер
Отправлено: denka от Июль 29, 2009, 11:54
Да вот пытаюсь только видать код давно не проверяли для версии < 4.5 приходиться щас кое где исправлять

Мда не заметил приват классов в реализации. Так что мос действительно надо включать


Название: Re: Файловый менеджер
Отправлено: Rcus от Июль 29, 2009, 15:40
а чем qt4_automoc не нравится?


Название: Re: Файловый менеджер
Отправлено: Пантер от Июль 29, 2009, 16:34
Rcus: делал, но без эффекта.


Название: Re: Файловый менеджер
Отправлено: niXman от Октябрь 02, 2009, 15:29
А где SVN?


Название: Re: Файловый менеджер
Отправлено: SABROG от Октябрь 02, 2009, 15:42
А где SVN?

У них GIT

http://gitorious.org/projects/panthercommander


Название: Re: Файловый менеджер
Отправлено: Rustem от Октябрь 10, 2009, 10:03
Да, затихла тема.
Ребята, предлагаю познакомится с файловым менеджером Double Сommander (http://doublecmd.sourceforge.net/). Он идет для Windows и для Linux (QT и GTK).
Ваша бы помощь очень пригодилась правда написан он на ФриПаскаль+Лазарус.
Идет как опенсорс замена тотал коммандеру с поддержкой его плагинов.
Очень не хватает людей, как всегда впрочем


Название: Re: Файловый менеджер
Отправлено: panAlexey от Октябрь 12, 2009, 23:11
Да, затихла тема.
Ребята, предлагаю познакомится с файловым менеджером Double Сommander (http://doublecmd.sourceforge.net/). Он идет для Windows и для Linux (QT и GTK).
Ваша бы помощь очень пригодилась правда написан он на ФриПаскаль+Лазарус.
Идет как опенсорс замена тотал коммандеру с поддержкой его плагинов.
Очень не хватает людей, как всегда впрочем
нехватает для того, чтобы выиграть конкурс: http://linuxformat.ru/foss-contest/
ы?


Название: Re: Файловый менеджер
Отправлено: kuzulis от Октябрь 13, 2009, 14:02
Требую больше ФМ, хороших и разных (с) ! :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Октябрь 13, 2009, 18:24
Double Сommander - УГ. Плюс к этому паскаль. Если бы в нем было что-то стоящее, я бы не начал разработку ПК.
Кстати, после 2-х месячного перерыва работа восстановлена. Надеюсь, она больше не будет так замирать.


Название: Re: Файловый менеджер
Отправлено: Пантер от Ноябрь 16, 2009, 18:02
Нужна помощь.
1. Что-то у меня слабовато с потоками, а точнее запутался я с мютексами. Мог бы кто-нибудь проверить верность построения потока в файлах fileoperationthreadpool.h и fileoperationthread.h.
2. Нужно потестировать операции копирования и удаления. Ни в коем случае не тестировать на нужных данных!!! (Я уже 2 каталога потерял :) )

Все находится на http://gitorious.org/panthercommander в бранче PanteR.

Заранее благодарю откликнувшихся.


Название: Re: Файловый менеджер
Отправлено: crackedmind от Январь 08, 2010, 13:51
Расшевелю темку :)

Как я вижу в ноябре все затихло?


p.s.
http://qtcmd.nes.pl/index.php
Наткнулся на такую штуку.


Название: Re: Файловый менеджер
Отправлено: kuzulis от Январь 08, 2010, 14:04
Так автор/топикстартер допилил ФМ? Стоит переползать на него с Krusader-а ?


Название: Re: Файловый менеджер
Отправлено: Авварон от Январь 08, 2010, 14:04
це линуксовая штука... есть ли там терминал встроенный? умеет ли работать с архивами? ща попробую на мак собрать
added: она с qt3 портирована и не хочет собираться:(


Название: Re: Файловый менеджер
Отправлено: Dendy от Январь 08, 2010, 14:19
Выбор файловых менеджеров под Линукс всё так же небогат - Krusader 1.90 на Qt3.


Название: Re: Файловый менеджер
Отправлено: kuzulis от Январь 08, 2010, 14:34
Цитировать
Выбор файловых менеджеров под Линукс всё так же небогат - Krusader 1.90 на Qt3.
как? дык на дворе уже Krusader v2.хх для Qt4 !


Название: Re: Файловый менеджер
Отправлено: Dendy от Январь 08, 2010, 14:52
как? дык на дворе уже Krusader v2.хх для Qt4 !

Qt4 - не самоцель, о чём похоже разработчики Krusader'а забыли. Толку что портировали, если работать на нём в итоге нереально.


Название: Re: Файловый менеджер
Отправлено: crackedmind от Январь 08, 2010, 14:54
Цитировать
как? дык на дворе уже Krusader v2.хх для Qt4 !

ага, только помимо Qt4, тянет kde'шный рантайм) Мне под опенбоксом он нафиг не сдался.

Чисто кутэшный был бы лучше :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Январь 08, 2010, 15:47
К сожалению, пока разработка затихла за неимением времени. Надеюсь, после сессии вернуться.


Название: Re: Файловый менеджер
Отправлено: niXman от Январь 08, 2010, 18:14
за 10 лет работы на линукс, не нашел ничего лучше mc.


Название: Re: Файловый менеджер
Отправлено: Пантер от Январь 08, 2010, 18:33
В Линуксе тоже на МС сижу, но все таки окошечный ФМ хочется.


Название: Re: Файловый менеджер
Отправлено: niXman от Январь 08, 2010, 20:52
Цитировать
о все таки окошечный ФМ хочется.
и мне хочется. но просто нет ничего подходящего :(

для венды есть Диско Командир. от него я просто в восторге.


Название: Re: Файловый менеджер
Отправлено: Пантер от Январь 08, 2010, 21:31
Цитировать
для венды есть Диско Командир. от него я просто в восторге.
Хм. License: Shareware $29.95

Пробовал я его когда-то, не понравился.


Название: Re: Файловый менеджер
Отправлено: niXman от Январь 08, 2010, 21:39
Цитировать
License: Shareware $29.95
;D а ты не считал сколько денег ты на пиво тратишь? 30 баксов, это разок, по скромному, пивка попить.


Название: Re: Файловый менеджер
Отправлено: Пантер от Январь 08, 2010, 23:54
:) На сколько я помню Диско Командир, то лучше я пивка попью.


Название: Re: Файловый менеджер
Отправлено: panAlexey от Январь 09, 2010, 10:48
:) На сколько я помню Диско Командир, то лучше я пивка попью.
На скока я знаю что такое пиво, посоветовал бы вернуться к ДС с  повинной (:


Название: Re: Файловый менеджер
Отправлено: kuzulis от Январь 09, 2010, 11:01
Цитировать
за 10 лет работы на линукс, не нашел ничего лучше mc.
да, вещь хорошая, но только что-то у меня по умолчанию в нем бледно-голубой фон и светлые цвета шрифтов.. оч плохо различать директории и т.п. сливаются с фоном :) . Приходится с ключем -b вызывать


Название: Re: Файловый менеджер
Отправлено: BRE от Январь 09, 2010, 11:09
Цитировать
за 10 лет работы на линукс, не нашел ничего лучше mc.
да, вещь хорошая, но только что-то у меня по умолчанию в нем бледно-голубой фон и светлые цвета шрифтов.. оч плохо различать директории и т.п. сливаются с фоном :) . Приходится с ключем -b вызывать
Попробуй цветовые схемы консоли поменять (думаю получиться подобрать симпатичную).


Название: Re: Файловый менеджер
Отправлено: niXman от Январь 09, 2010, 12:48
установи версию 4.7 из сорцов. в ней наконец-то нормальные цвета, типа far.


Название: Re: Файловый менеджер
Отправлено: panAlexey от Октябрь 03, 2010, 16:51
Как дела с менеджером?
Есть подвижки?


Название: Re: Файловый менеджер
Отправлено: altai от Октябрь 03, 2010, 17:40
Цитировать
за 10 лет работы на линукс, не нашел ничего лучше mc.
да, вещь хорошая, но только что-то у меня по умолчанию в нем бледно-голубой фон и светлые цвета шрифтов.. оч плохо различать директории и т.п. сливаются с фоном :) . Приходится с ключем -b вызывать
статья по настройке цветов в mc http://habrahabr.ru/blogs/linux/28128/ (http://habrahabr.ru/blogs/linux/28128/)


Название: Re: Файловый менеджер
Отправлено: alex-v от Октябрь 08, 2010, 13:56
всю тему не читал.
А как вам muCommander?  (кроссплатформенный на Java)


Название: Re: Файловый менеджер
Отправлено: xokc от Октябрь 10, 2010, 10:58
Что-то нет у меня доверия к файловым менеджерам на яве


Название: Re: Файловый менеджер
Отправлено: SABROG от Октябрь 10, 2010, 11:18
Думаю PantherCommander надо забросить и написать новый файловый менеджер на Qt Quick, чтобы был файловый менеджер не только под десктопы, но и под мобилки.


Название: Re: Файловый менеджер
Отправлено: Sancho_s_rancho от Октябрь 10, 2010, 11:32
Думаю PantherCommander надо забросить и написать новый файловый менеджер на Qt Quick, чтобы был файловый менеджер не только под десктопы, но и под мобилки.
Как бы гуй для маленьких тачскринов и большого экрана на десктопе должен быть разный. Иначе будет убого либо там, либо сям.


Название: Re: Файловый менеджер
Отправлено: Авварон от Октябрь 10, 2010, 12:19
SABROG
Ну я хочу именно так и сделать, но гуй действительно надо разный... А на qml для десктопа бесполезно - будет выглядеть ненативно (а личнл для меня это основное требование)


Название: Re: Файловый менеджер
Отправлено: panAlexey от Ноябрь 30, 2010, 11:49
Пока все. Жду ваших отзывов. Может у кого есть свои наработки?
Кайфово конечно, но проект на каком нибудб хостинге проектов был бы желателен.
Можно было бы хоть присоединиться и доработать...
За идею +500
Могу взять на себя труд захостить на гуглекоде.
Надо?


Название: Re: Файловый менеджер
Отправлено: Авварон от Ноябрь 30, 2010, 12:16
Проект сдох давно:)
Есть желание присоединится - давайте ко мне:) Пантеровские идеи он мне передал, тк у него времени нет сейчас.


Название: Re: Файловый менеджер
Отправлено: Пантер от Ноябрь 30, 2010, 13:00
Чем тебе не хостинг http://gitorious.org/panthercommander?
Там не нужно дорабатывать, там нужно заново все сделать. Я учился на этом проекте, поэтому ядро ни к черту. Да и все остальное. Можно только куски определенные повыдирать.


Название: Re: Файловый менеджер
Отправлено: panAlexey от Декабрь 01, 2010, 01:03
Проект сдох давно:)
Есть желание присоединится - давайте ко мне:) Пантеровские идеи он мне передал, тк у него времени нет сейчас.
куда к тебе и зачем?


Название: Re: Файловый менеджер
Отправлено: Авварон от Декабрь 01, 2010, 01:33
panAlexey
Как ни странно, тоже файловый менеджер, но не 2х панельный, а предоставляющий возможность юзеру выбирать нужный вид. Упор на кол-во разных представлений (два:)) и их удобство (вот я не видел ни 1го менеджера где есть одновременно дефолт вид эксплорера/долфина/файндера и нормальный dual pane с норм хоткеями (обычно он так, для галочки присутствует)).
Подробности желательно при личном общении расскажу:)
Зачем - вам решать:) Я себе пишу и пишу по чуть-чуть, когда не лениво.

Кстати идей у пантера таки много интересных (очереди копирования, волюмы, файлэнжины)


Название: Re: Файловый менеджер
Отправлено: panAlexey от Декабрь 01, 2010, 13:07
panAlexey
Как ни странно, тоже файловый менеджер, но не 2х панельный, а предоставляющий возможность юзеру выбирать нужный вид.
Прикольно. А на каком хостинге разработка идет?


Название: Re: Файловый менеджер
Отправлено: kuzulis от Декабрь 01, 2010, 13:25
panAlexey
Как ни странно, тоже файловый менеджер, но не 2х панельный, а предоставляющий возможность юзеру выбирать нужный вид.
Прикольно. А на каком хостинге разработка идет?

Да, и мне это интересно.
А также интересуют вопросы
1 А какая модель/представление используется для отображения директорий/файлов в ФМ: Стандартная QDirModel или что-то свое?
2. Каким образом происходит уведомление модели при изменениях в файловой системе (т.е. при создании/удалении/переименовании и т.п. файлов и директорий) ?


Название: Re: Файловый менеджер
Отправлено: kuzulis от Декабрь 01, 2010, 13:39
Цитировать
2. Каким образом происходит уведомление модели при изменениях в файловой системе (т.е. при создании/удалении/переименовании и т.п. файлов и директорий) ?
Сейчас бегло просмотрел исходники PantherCommander и по ходу обновление происходит по таймеру. :(

Цитировать
1 А какая модель/представление используется для отображения директорий/файлов в ФМ: Стандартная QDirModel или что-то свое?
И модель как понял не Tree-типа, а List-типа :(

Цитировать
Кстати идей у пантера таки много интересных (очереди копирования, волюмы, файлэнжины)
И тут тоже, судя по исходникам, Watcher-ы реализованы по таимеру. Вот если бы для уменьшения ресурсов реализовать их на событиях (например на inotify в Linux, на других фичах в винде и т.п.), то было б лучше, ИМХО.  :)



Название: Re: Файловый менеджер
Отправлено: Авварон от Декабрь 01, 2010, 14:26
panAlexey
kuzulis
http://gitorious.org/andromeda/andromeda/trees/master
Пока на обычной QFileSystemModel, тк разработка идет лениво - учеба мешается:(
Да, я знаю о косяках файлсистем модель, но пока ее функционала хватит.
Ее минусы - хавает флешки на вин (хз, поправили или нет, это поправимо и я знаю как).
Не работает с виртуал ФС (есть такой чудо класс как QAbstractFileEngine и я успешно его использовал в другом проекте (расширял QDirModel для того, чтобы можно было отображать архивы)). Как это выглядело тогда: http://mtgs.clan.su/qmpq/2010-07-05_2.png
Разрабатываю на гиториусе, но пока есть только кривая система плагинов /*идеи брал из креатора*/ (ищу баг почему оно падает - после выгрузки плагина приходит таймер эвент удаленному объекту - весьма странно, если учесть, что своих таймеров нет). Основная фича - подгрузка/выгрузка плагинов "на лету".
Ну еще есть очереди копирования и наследник от файлсистем модели, к-ый копирует в потоке - но это мелочь.


Название: Re: Файловый менеджер
Отправлено: panAlexey от Декабрь 01, 2010, 14:47
Прикольно.
Но пока не могу приступить.
Есть свой интерес - интерактивная обучалка английскому - накрылся диск, пытаюсь воссоздать программу реинженирингом и добавить туда побольше обучающих материалов.
Пока с этим не закончу - результат мне реально нужен для продолжения обучения, ни в какие проекты соваться не буду.


Название: Re: Файловый менеджер
Отправлено: Авварон от Декабрь 01, 2010, 14:50
panAlexey
Могу подсказать с восстановлением дисков:) У самого 2 штуки за 2 дня накрылось на той неделе.


Название: Re: Файловый менеджер
Отправлено: panAlexey от Декабрь 08, 2010, 13:08
Очень не хватает поиска с в файлах с выводом найденного в формате:
[где-полный путь к файлу] [строка с найденным].
Собствено что я и заинтересован в этих темах..


Название: Re: Файловый менеджер
Отправлено: Авварон от Декабрь 08, 2010, 16:12
Ну это как бы просто уишка, нет?


Название: Re: Файловый менеджер
Отправлено: Racheengel от Сентябрь 01, 2015, 16:43
Ну и как там проект через 5 лет поживает? :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Сентябрь 02, 2015, 08:04
Ну и как там проект через 5 лет поживает? :)
Давным-давно заброшен. Можешь форкнуть, но там все перерабатывать нужно, я учился на нем.


Название: Re: Файловый менеджер
Отправлено: Racheengel от Сентябрь 02, 2015, 09:21
Дык, почти каждый кутишник когда то писал свой файл менеджер ;)


Название: Re: Файловый менеджер
Отправлено: __Heaven__ от Сентябрь 02, 2015, 09:41
Дык, почти каждый кутишник когда то писал свой файл менеджер ;)
Чёрт! Чувствую себя недокутишником. Срочно форкаю  ;D


Название: Re: Файловый менеджер
Отправлено: Пантер от Сентябрь 02, 2015, 10:47
Дык, почти каждый кутишник когда то писал свой файл менеджер ;)
Скорее, почти у каждого программиста наступает момент, когда он начинает пилить свой ФМ (или ИМ, или вьювер).


Название: Re: Файловый менеджер
Отправлено: Авварон от Сентябрь 02, 2015, 17:37
Скорее, почти у каждого программиста наступает момент, когда он начинает пилить свой ФМ (или ИМ, или вьювер).

И при этом, ни одной нормальной vfs на плюсах до сих пор не написано:(


Название: Re: Файловый менеджер
Отправлено: Racheengel от Сентябрь 02, 2015, 17:49
Ну, дык программист обычно быстро вырастает из своего ФМ и летит к следующим высотам :) А ФМ остается на грешной земле как назидание того, как НЕ НАДО писать софт :)


Название: Re: Файловый менеджер
Отправлено: Пантер от Сентябрь 02, 2015, 22:43
К сожалению, программисту за ФМ не платят, а платят за совершенно другое.


Название: Re: Файловый менеджер
Отправлено: Пантер от Сентябрь 03, 2015, 08:43
Ну, дык программист обычно быстро вырастает из своего ФМ и летит к следующим высотам :) А ФМ остается на грешной земле как назидание того, как НЕ НАДО писать софт :)

Блин, чувак, ну, нафига ты напомнил о проекте. Сразу заностальгировал, захотелось его продолжить. Только, блин, в сутках лишь 24 часа. :(


Название: Re: Файловый менеджер
Отправлено: Racheengel от Сентябрь 03, 2015, 14:38
Цитировать
Блин, чувак, ну, нафига ты напомнил о проекте.

Дык, мой ФМ тоже где-то лежит) Иногда запускаю, смотрю, и стереть руки не доходят)


Название: Re: Файловый менеджер
Отправлено: Авварон от Сентябрь 04, 2015, 10:41
Блин, чувак, ну, нафига ты напомнил о проекте. Сразу заностальгировал, захотелось его продолжить. Только, блин, в сутках лишь 24 часа. :(

вфску напиши!


Название: Re: Файловый менеджер
Отправлено: once_again_abc от Октябрь 03, 2016, 13:59
все эти ФМ зря потерянное время)


Название: Re: Файловый менеджер
Отправлено: __Heaven__ от Октябрь 03, 2016, 14:48
Да и вообще, писать программы - зря потерянное время :)
А как же самообразование?


Название: Re: Файловый менеджер
Отправлено: Igors от Октябрь 03, 2016, 15:32
все эти ФМ зря потерянное время)
Когда-то давно спросил у мамы типа
Цитировать
Ну вот зачем я заканчивал институт? Ничему хорошему там меня не научили, зря потерянное время!
Она ответила
Цитировать
Понимаешь, студенческие годы у человека должны быть, иначе все равно проболтается без толку
:)


Название: Re: Файловый менеджер
Отправлено: Racheengel от Октябрь 03, 2016, 22:08
Ну, как правило, институт дает 2 вещи: диплом и потенциальные связи.
Второе обычно важнее :)