Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как я подправлял исходники SMplayer. Уменьшаем плэйлист. Есть вопросы.  (Прочитано 850 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн fill.sa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Вообщем дело такое, нравится мне smplayer, но вот беда, у него слишком большие иконки. И даже недело не в иконках, а в том, что из-за размера иконак на плэйлисте ,он занимает большую площадь. И если на персональнике еще можно ка-то помучаться, то на моем 10" нетбуке плэйлист занимает почти пол экрана. Да и при просмотрел видео малого размера на компе плэйлист размером с видео получается.

Нехорошо это все, и вот когда я увидел smplayer2 я  был безгранично рад, ведь там разработчики пользуются нормальным размером иконак. Но радость была недолгой, smplayer2 видимо начинает помирать, а smplayer успешно продолжает жить.
Как же быть? Ну что ж выходит править самому исходники. Скачал я последние сорцы и начал изучать. Разработчик с меня плохо, потому дело шло туго, но в итоге я нашел в файле images.h такие строки
    static QPixmap icon(QString name, int size=-1);
    static QPixmap flippedIcon(QString name, int size=-1);


К сожалению правка чисел меняла только размер иконак, но размер панелей и кнопак оставлася прежним. Нашел исходники smplayer2 http://bazaar.launchpad.net/~smplayer2/smplayer2/trunk/files , и там теже значенияЮ значит все править нужно в другом месте. На этом мои познания иссякли и я решил пойти другим путям. Решил убить двух зайцев - сделать кнопки на плейлисе в два ряда. Так и размер плэйлиста уменьшится и можно своих кнопак добавить. Сидел я искал, но у итоге нашел playlist.cpp
Тут функция void Playlist::createToolbar() { добавляет кнопки. Затер я значиться дальше лишние для меня кнопки и создал еще одну функцию void Playlist::createToolbar2() { уже со своими кнопками.

И вуаля - результат достигнут. Можно наконец нормально пользоваться.



Хотя в  идеале я бы хотел один ряд кнопок, но что бы при изменении поля плейлиста , кнопки которые не влазят сами переходили во второй ряд.

Быть может кто более грамотный подскажет как это реализовать. Заодно как все таки уменьшить размер иконак.



Пользователь добавил сообщение 10 Мая 2016, 22:40:39:
Быть может кого еще заинтересует.

Вот правленые файлы и собранный бинарник программы.


Но есть еще одна беда, нету в плеере других языков почему то. В исходниках все есть.
Может там какая то особая команда для сборки с языками? Кто подскажет.

Оказалось в новой версии сменился путь к языкам. Зачем только неясно.
« Последнее редактирование: 21 Мая 2016, 17:36:01 от fill.sa »

Оффлайн fill.sa

  • Автор темы
  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Появилась еще идея сделать в плейлисте вкладку избранное. Аля хранить любимое видео для постоянного просмотра.

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

Нашел вот такой кусок
void Playlist::createTable() {
listView = new MyTableWidget( 0, COL_TIME + 1, this);
listView->setObjectName("playlist_table");
listView->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
listView->setSelectionBehavior(QAbstractItemView::SelectRows);
listView->setSelectionMode(QAbstractItemView::ExtendedSelection);
listView->setContextMenuPolicy( Qt::CustomContextMenu );
listView->setShowGrid(false);
listView->setSortingEnabled(false);
//listView->setAlternatingRowColors(true);

#if QT_VERSION >= 0x050000
listView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
listView->horizontalHeader()->setSectionResizeMode(COL_NAME, QHeaderView::Stretch);
#else
listView->horizontalHeader()->setResizeMode(QHeaderView::Interactive);
listView->horizontalHeader()->setResizeMode(COL_NAME, QHeaderView::Stretch);
#endif
/*
listView->horizontalHeader()->setResizeMode(COL_TIME, QHeaderView::ResizeToContents);
listView->horizontalHeader()->setResizeMode(COL_PLAY, QHeaderView::ResizeToContents);
*/
    listView->setIconSize( Images::icon("ok", 15).size() );

#if DRAG_ITEMS
listView->setSelectionMode(QAbstractItemView::SingleSelection);
listView->setDragEnabled(true);
listView->setAcceptDrops(true);
listView->setDropIndicatorShown(true);
listView->setDragDropMode(QAbstractItemView::InternalMove);
#endif

connect( listView, SIGNAL(cellActivated(int,int)),
             this, SLOT(itemDoubleClicked(int)) );

// EDIT BY NEO -->
connect( listView->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(sortBy(int)));
// <--
}

Я так думаю тут нужно править

или вообще еще раньше, где listView добавляется

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget( listView );
        layout->addWidget( toolbar2 );
layout->addWidget( toolbar );
setLayout(layout);

 

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