All streams
Search
Write a publication
Pull to refresh
50
0

Погромист

Send message
В плохие времена, когда Qt была dual licensed (и по этому поводу ей устраивали бойкот), KDE тянула SuSE емнип практически в одиночку. А новель купил их и продолжил финансирование. Причем у новелей было в свое время несколько движений по закрытию KDE — но так и не решились.

Новель вообще странная контора в этом плане — они накупили горы конкурентов и тянут их одновременно. Очень редкое сочетание, обычно покупают чтобы закрыть. А тут и договор о ненападении с микрософт, и моно, и «кеды» с гномом — и все в одном дистрибутиве. И Krita vs GIMP и даже Novell OpenOffice vs KOffice и все сразу и на их же деньги.

Такое ощущение, что в 90х проигранная война офисов их напугала до потери сознания, и они с тех пор принципиально не готовы выбрать что-то одно ;-)
А ты ему скажи file chromium, тут и узнаем ;-)
А проблемы где? Так, рабочий момент.

А вот альтернатива — переделка гор графиков и отчетов, писанных разными поставщиками в разное время — это было бы весело, да. Тут не отделаешься парой патчей.
Если буквоедствовать — то Novell забыли упомянуть. kHTML — ее детище, ныне известное как WebCore.
Хорошо вам — мне уже давно не. Я на 3.6 дожил до 7й версии, потом пришлось срочно переезжать. Но у меня сложный случай — там всякое странное массово печатать, когда пробовали вебкит — патчей навскидку потребовалось еще больше.

Странное — это когда в основном окне текст, в разных iframe разные графики, причем оно еще повернуто и трансформировано. И самая песня когда часть графиков на флэше, а часть новомодно рисует себя скриптом на канвасе.

А теперь осталось дождаться пока этот коктейль отдаст веб сервер (отдельный квест!), потом заменить флэш на отрендеренные флэшом картинки на канвасе, потом когда все это отрисуется (здравствуй MozAfterPaint event) — можно печатать.
Допилят новое кроссплатформенное апи по встраиванию в инкубаторе — будет. Обождите мол — не видите мы свою ось в браузере пишем. Но по ходу еще долго будет висеть концептом.
Это кому совет, мне или мозилла-тим? 8-)

У меня-то Linux 64 бита. У мозиллы — винда и 32, но вот ее проблемы (и решения) аукаются уже у меня В виде дурной работы по сборке своей личной копии.
У вас таки тоже есть свой add-gtkmozembed-oldstyle.patch? ;-)
Вебкит хорош в составе Qt и где есть такая возможность — так и делаю. Например на соседнем проекте вполне себе встроенный WebKit в Qt 4.8 в полный рост.

Однако ж в свете околонокиевых событий я бы не рискнул закладываться на регулярные апдейты ;-)

И кстати мне нужен не отладчик, а работа молча, я не зря упомянул prompt service.
Пока было можно — использовали 3.6. Но уже давно не — требуется пачка новейших features. Причем в самых безумных сочетаниях. Например — flash вместе с scale / rotate transform.

Хабраюзер strizh также обратил мое внимание на mac-only FileUtils::FileURLToPosixPath, так что код превращается в

    IDFile outputFile;
    InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA);
    outputFile = fileData->GetSysFile();

#ifdef WINDOWS
    SDKFileHelper fh(outputFile);
    PMString pathID = fh.GetPath();
    WideString pathWID(pathID);
    std::string xfinal;
    StringUtils::ConvertWideStringToUTF8 (pathWID, xfinal);
#endif
#ifdef MACINTOSH			
    PMString pathJ = FileUtils::SysFileToFileURL(outputFile);
    WideString pathWJ(pathJ);
    std::string xj;
    StringUtils::ConvertWideStringToUTF8 (pathWJ, xj);
    std::string xfinal = FileUtils::FileURLToPosixPath(xj);
#endif

что несколько короче.
Как выяснилось — можно и без, спасибо коллективному разуму и хабраюзеру notorca за наводку.
Мертвенькое и синенькое уже, куда там развивают. Чую — будет мне новый побочный проект скоро ;-)
Я был в полушаге. Логично — если у меня уже есть URL… ;-) Подвела косность мышления — я пытался путь в путь преобразовать, а получив URL — решил что и так сойдет, URL то везде conform.

Так что в итоге вот что должно было получиться:

void FooExpFilter::ExportToStream(
	IPMStream* stream, IDocument* doc, IPMUnknown* targetboss, 
	const PMString& formatName, UIFlags uiFlags)
{
	IDFile outputFile;
	InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA);
	outputFile = fileData->GetSysFile();

#ifdef WINDOWS
	SDKFileHelper fh(outputFile);
	PMString pathID = fh.GetPath();
#endif
#ifdef MACINTOSH			
	FSSpec fsSpec;
	PMString pathID;
	OSErr err = FileUtils::IDFileToFSSpec(outputFile, fsSpec);
	if (err == noErr) {
		FSRef fsRef;
		err = MacFileUtils::FSSpecToFSRef(fsSpec, fsRef);
		if (err == noErr) {
			CFURLRef appURL = ::CFURLCreateFromFSRef(NULL, &fsRef);
			CFStringRef app_str = ::CFURLCopyFileSystemPath(appURL, kCFURLPOSIXPathStyle);
			if (app_str) {
				pathID.SetCFString(app_str);
				::CFRelease(app_str);
			}
			if (appURL) ::CFRelease(appURL);
		}
	}
#endif
	WideString pathWID(pathID);
	std::string xID;
	StringUtils::ConvertWideStringToUTF8 (pathWID, xID);

Клиент прислал лог чтобы не соврать — со Snow Leopard.

А вообще насчет «выпилен» это сильно — эвон photoshop SDK откроешь — чего только в примерах не увидишь, и это все еще и компилируется под 32 бита (под 64 — уже нет, хотя FSIO к примеру — в полный рост есть и тут).

Так что — еще встречается.
О да, я еще помню парад апдейтов, когда в libz вдруг vulnerability нашли. Лучше б экономили память ;-)
Так это замена не goto, и не замена пачке if.

Я ж специально более понятный пример привел — это имитация try/catch в том случае, когда не допускается использование родного.

Например — когда собирается проект с флажками -fno-exceptions -fno-rtti. Или у микрософта — без флажка -EHsc. Или нижележащий фреймворк принципиально не знает про throw.

Поймите правильно — я совершенно не в восторге от такого трюкачества. Но — приходится.
SVG диаграммы в документы вставлять в одном автоматизированном решении. Это было проще, чем конвертировать в растр и потом сражаться с непопаданием в pantones. «А у вас наш шестикомпонентный цвет на печати выглядит как россыпь точек — вы не попали в заданный CMYK color set!»

Поэтому взяли Apache Batik и дали ему нарисовать картинку на IGraphicsPort.

[irony]Так что уменьшили энтропию, сотня бангалорских индусов больше не выравнивает тысячи диаграмм в фотошопе каждый квартал.[/irony]

К слову, когда решали обратную задачу (нарезали InDesign документы в стопку одностраничных SVG) — использовали тот же подход в виде Apache PDFBox ;-)

Information

Rating
Does not participate
Location
München, Bayern, Германия
Date of birth
Registered
Activity