Russian Qt Forum
Мая 14, 2025, 00:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: QtDockTile - кроссплатформенный док  (Прочитано 21347 раз)
Gorthauer
Гость
« : Января 08, 2012, 01:34 »

Ссылка на статью на Хабре

Либой вполне можно уже пользоваться. Но хотелось бы от местного сообщества некоторой помощи: во первых просто хочу, чтобы народ её протестировал, во вторых нужна помощь с доками и их переводом на инглишь. В третьих есть ещё dockmanager. Есть желающие запилить?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Января 08, 2012, 01:44 »

Не собирается нихрена
Записан
Gorthauer
Гость
« Ответ #2 : Января 08, 2012, 02:48 »

install читали? Субмодуль инитили? И это, лог где? Я не телепат!
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Января 08, 2012, 10:07 »

Gorthauer
Конечно не читал. Конечно не инитил. Я вообще зипник качал.

А вам советую не блистать знаниями симейка и гита, а сделать нормальный прошник, благо на кутях пишите.
Представляю пос-ть действий для левого юзера - поставьте цмейк, поставьте гит, выполните 200 консольных команд и получите собранную либу из 300 строк кода. Бугагашенька.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #4 : Января 08, 2012, 10:11 »

Кстатати поправьте меня, но в проекте нет файла инстолл, а ридми пустой.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Января 08, 2012, 10:14 »

В докменеджере утекает плагинлоадер
Записан
Gorthauer
Гость
« Ответ #6 : Января 08, 2012, 18:32 »

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

В докменеджере утекает плагинлоадер
Это с чего это вдруг? Он удаляется вместе с менеджером ибо заключен вовнутрь QScopedPointer'а.
Записан
Gorthauer
Гость
« Ответ #7 : Января 08, 2012, 18:33 »

Кстатати поправьте меня, но в проекте нет файла инстолл, а ридми пустой.
Там вики есть на гитхабе. Там есть ридми, правда русское и инсталл, который сейчас сдублировал в корне проекта. Вот с переводом хорошим ридмишки и хотелось бы помощи или совета хотя бы.
Записан
BRE
Гость
« Ответ #8 : Января 08, 2012, 19:06 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.
Записан
andrew.k
Гость
« Ответ #9 : Января 08, 2012, 20:22 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.

Почему нельзя то?

The pointer remains valid as long as the byte array isn't reallocated or destroyed.
Записан
Gorthauer
Гость
« Ответ #10 : Января 08, 2012, 20:26 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.


Взято из сырцов Креатора и самое главное, что после посылки сообщения доку, все эти строки по выходу из области видимости очищаются. А если строчку из контекста вырывать, то конечно. В реализации для винды так вообще можно дохрена таких "утечек" найти.

ЗЫ
на досуге попробуйте подумать, что делает эта строчка
Код:
[cocoaString release];
« Последнее редактирование: Января 08, 2012, 20:28 от Gorthauer » Записан
andrew.k
Гость
« Ответ #11 : Января 08, 2012, 20:32 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.


Взято из сырцов Креатора и самое главное, что после посылки сообщения доку, все эти строки по выходу из области видимости очищаются. А если строчку из контекста вырывать, то конечно. В реализации для винды так вообще можно дохрена таких "утечек" найти.

ЗЫ
на досуге попробуйте подумать, что делает эта строчка
Код:
[cocoaString release];

Видимо поэтому он время от времени падает)

Дошло в чем дело. toUtf8() возвращает временный объект QByteArray ссылка на который никуда не сохраняется, а используется лишь вызов constData. Сразу после вызова объект будет разрушен. И указатель станет не валидным.

Значит и правда нельзя.
Записан
Gorthauer
Гость
« Ответ #12 : Января 08, 2012, 20:39 »

Хех, а про QByteArray я уже проглядел, невнимательным был... Интересно, почему оно тогда в креаторе ни разу не падало?
Записан
BRE
Гость
« Ответ #13 : Января 08, 2012, 20:42 »

Интересно, почему оно тогда в креаторе ни разу не падало?
Везло.
Освобожденный участок памяти никому в этот момент не отдавался, поэтому данные никто не затирал.
Записан
Gorthauer
Гость
« Ответ #14 : Января 08, 2012, 20:50 »

Fixed.
Отправить что ли троллям патч. А то и там и там банальная невнимательность и везение %) Нда... иногда таки бывают грабли даже если берёшь код казалось бы из хорошего и проверенного источника и априори ему доверяешь не вчитываясь)
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


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