Russian Qt Forum
Ноябрь 01, 2024, 08:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
QtDockTile - кроссплатформенный док
Страниц: [
1
]
2
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QtDockTile - кроссплатформенный док (Прочитано 20521 раз)
Gorthauer
Гость
QtDockTile - кроссплатформенный док
«
:
Январь 08, 2012, 01:34 »
Ссылка на статью на Хабре
Либой вполне можно уже пользоваться. Но хотелось бы от местного сообщества некоторой помощи: во первых просто хочу, чтобы народ её протестировал, во вторых нужна помощь с доками и их переводом на инглишь. В третьих есть ещё dockmanager. Есть желающие запилить?
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QtDockTile - кроссплатформенный док
«
Ответ #1 :
Январь 08, 2012, 01:44 »
Не собирается нихрена
Записан
Gorthauer
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #2 :
Январь 08, 2012, 02:48 »
install читали? Субмодуль инитили? И это, лог где? Я не телепат!
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QtDockTile - кроссплатформенный док
«
Ответ #3 :
Январь 08, 2012, 10:07 »
Gorthauer
Конечно не читал. Конечно не инитил. Я вообще зипник качал.
А вам советую не блистать знаниями симейка и гита, а сделать нормальный прошник, благо на кутях пишите.
Представляю пос-ть действий для левого юзера - поставьте цмейк, поставьте гит, выполните 200 консольных команд и получите собранную либу из 300 строк кода. Бугагашенька.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QtDockTile - кроссплатформенный док
«
Ответ #4 :
Январь 08, 2012, 10:11 »
Кстатати поправьте меня, но в проекте нет файла инстолл, а ридми пустой.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QtDockTile - кроссплатформенный док
«
Ответ #5 :
Январь 08, 2012, 10:14 »
В докменеджере утекает плагинлоадер
Записан
Gorthauer
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #6 :
Январь 08, 2012, 18:32 »
zip текущей ревизии вообще бесполезно качать, ибо гит не умеет субмодули в зипы добавлять, как релиз будет, так сделаю нормальный тарбол, а пока мне нужны как раз те ребята, которые ни гита ни цмака не боятся. Прошник делать пока не буду ибо цмак банально удобнее.
Цитата: Авварон от Январь 08, 2012, 10:14
В докменеджере утекает плагинлоадер
Это с чего это вдруг? Он удаляется вместе с менеджером ибо заключен вовнутрь QScopedPointer'а.
Записан
Gorthauer
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #7 :
Январь 08, 2012, 18:33 »
Цитата: Авварон от Январь 08, 2012, 10:11
Кстатати поправьте меня, но в проекте нет файла инстолл, а ридми пустой.
Там вики есть на гитхабе. Там есть ридми, правда русское и инсталл, который сейчас сдублировал в корне проекта. Вот с переводом хорошим ридмишки и хотелось бы помощи или совета хотя бы.
Записан
BRE
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #8 :
Январь 08, 2012, 19:06 »
Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const
char
*
utf8String
=
badge.
toUtf8
(
)
.
constData
(
)
;
Думаю этот же код и в библиотеке.
Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.
Записан
andrew.k
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #9 :
Январь 08, 2012, 20:22 »
Цитата: BRE от Январь 08, 2012, 19:06
Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const
char
*
utf8String
=
badge.
toUtf8
(
)
.
constData
(
)
;
Думаю этот же код и в библиотеке.
Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.
Почему нельзя то?
The pointer remains valid as long as the byte array isn't reallocated or destroyed.
Записан
Gorthauer
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #10 :
Январь 08, 2012, 20:26 »
Цитата: BRE от Январь 08, 2012, 19:06
Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const
char
*
utf8String
=
badge.
toUtf8
(
)
.
constData
(
)
;
Думаю этот же код и в библиотеке.
Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.
Взято из сырцов Креатора и самое главное, что после посылки сообщения доку, все эти строки по выходу из области видимости очищаются. А если строчку из контекста вырывать, то конечно. В реализации для винды так вообще можно дохрена таких "утечек" найти.
ЗЫ
на досуге попробуйте подумать, что делает эта строчка
Код:
[cocoaString release];
«
Последнее редактирование: Январь 08, 2012, 20:28 от Gorthauer
»
Записан
andrew.k
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #11 :
Январь 08, 2012, 20:32 »
Цитата: Gorthauer от Январь 08, 2012, 20:26
Цитата: BRE от Январь 08, 2012, 19:06
Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const
char
*
utf8String
=
badge.
toUtf8
(
)
.
constData
(
)
;
Думаю этот же код и в библиотеке.
Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.
Взято из сырцов Креатора и самое главное, что после посылки сообщения доку, все эти строки по выходу из области видимости очищаются. А если строчку из контекста вырывать, то конечно. В реализации для винды так вообще можно дохрена таких "утечек" найти.
ЗЫ
на досуге попробуйте подумать, что делает эта строчка
Код:
[cocoaString release];
Видимо поэтому он время от времени падает)
Дошло в чем дело. toUtf8() возвращает временный объект QByteArray ссылка на который никуда не сохраняется, а используется лишь вызов constData. Сразу после вызова объект будет разрушен. И указатель станет не валидным.
Значит и правда нельзя.
Записан
Gorthauer
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #12 :
Январь 08, 2012, 20:39 »
Хех, а про QByteArray я уже проглядел, невнимательным был... Интересно, почему оно тогда в креаторе ни разу не падало?
Записан
BRE
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #13 :
Январь 08, 2012, 20:42 »
Цитата: Gorthauer от Январь 08, 2012, 20:39
Интересно, почему оно тогда в креаторе ни разу не падало?
Везло.
Освобожденный участок памяти никому в этот момент не отдавался, поэтому данные никто не затирал.
Записан
Gorthauer
Гость
Re: QtDockTile - кроссплатформенный док
«
Ответ #14 :
Январь 08, 2012, 20:50 »
Fixed.
Отправить что ли троллям патч. А то и там и там банальная невнимательность и везение %) Нда... иногда таки бывают грабли даже если берёшь код казалось бы из хорошего и проверенного источника и априори ему доверяешь не вчитываясь)
Записан
Страниц: [
1
]
2
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...