Russian Qt Forum
Ноябрь 13, 2024, 09:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3] 4 5 ... 20   Вниз
  Печать  
Автор Тема: Файловый менеджер  (Прочитано 222527 раз)
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #30 : Апрель 22, 2009, 16:57 »

А для перемещения, разве нельзя использовать системные функции? Думаю, так бы было еще правильнее.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #31 : Апрель 22, 2009, 17:05 »

Ну да, а как прогресс выводить? Улыбающийся
На ЛОРе подсказали, что нужно смотреть statvfs.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #32 : Апрель 27, 2009, 11:33 »

Ну что, пиплы. Вот и выкладываю свои наработки. Еще рано, конечно, но боюсь до сессии не успеть.
Предупреждение:
Проект еще довольно сырой, поэтому тестировать только на ненужных файлах.


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

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

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

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

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
crackedmind
Гость
« Ответ #33 : Апрель 27, 2009, 12:58 »

Значит так. Не компилится на mingw/gcc 4.3.3
Ругался на строчку
Код:
struct tm* time=localtime(&(st.st_mtime));
в файле qfilelistmodel.cpp, необходимо подключить time.h
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #34 : Апрель 27, 2009, 13:09 »

Странно, у меня под мингвом все компилится. Исправил, после работы выложу. 
---------------------------------
У меня версия gcc 3.2.5, может поэтому и нормально все. Вот новая версия с пофикшенным багом, плюс еще немного, подробности в history.txt.
« Последнее редактирование: Апрель 27, 2009, 16:40 от panter_dsd » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
shadone
Гость
« Ответ #35 : Апрель 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

А репозиторий где-то есть чтобы периодически поглядывать на проект?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #36 : Апрель 27, 2009, 17:03 »

1. Пишу под 4.5, так что не исправлено.
2.Сейчас стоит вопрос стоит продолжать или нет. Если продолжать, то буду изучать всякие гиты и искать где бы расположить проект. А пока буду тут выкладывать новые версии.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
SABROG
Гость
« Ответ #37 : Апрель 27, 2009, 19:06 »

Крашится при попытке перетаскивании файла на рабочий стол.
Есть какой-то косяк с просмотром файла main.cpp (исходник PC) через встроенный вьювер. Показывает только это:

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

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

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

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

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

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

В целом мне нравится больше, чем навороченный и непонятный KDE'шный Dolphin, основной функционал сделан.
Записан
ритт
Гость
« Ответ #38 : Апрель 27, 2009, 19:59 »

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

SABROG, не думаю, что на данной стадии уместны вопросы производительно и времени сборки - Пантер ведь предупредил, что код сырой и пишется на скорость, а не на качество.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #39 : Апрель 27, 2009, 20:33 »

>>также необходимо сделать проекту домик
Вот есть полупустая Вики. Пусть там домик сделает, может народ хоть из-за него в Вики ходить начнёт.
Ну а хранилище неважно где делать, лишбы ссылка на него в домике была.
Записан

Юра.
SABROG
Гость
« Ответ #40 : Апрель 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 )
« Последнее редактирование: Апрель 27, 2009, 21:25 от SABROG » Записан
crackedmind
Гость
« Ответ #41 : Апрель 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
« Последнее редактирование: Апрель 27, 2009, 22:36 от crackedmind » Записан
SABROG
Гость
« Ответ #42 : Апрель 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));
 
« Последнее редактирование: Апрель 27, 2009, 23:24 от SABROG » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #43 : Апрель 28, 2009, 02:03 »

посмотрел я на Qevel - его нету!
проект начат в 2007, последняя активность в 2007, ни одного файла (http://qevel.svn.sourceforge.net/viewvc/qevel/)
Записан

Юра.
ритт
Гость
« Ответ #44 : Апрель 28, 2009, 03:05 »

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

зы. тянибросай не отменяется по искейпу. а должен бы.
Записан
Страниц: 1 2 [3] 4 5 ... 20   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.257 секунд. Запросов: 22.