Думаю, это хорошая идея.
На самом деле, когда это начиналось, была мысль использовать AJAX API, но я уже, честно, не помню почему, она отпала. По-моему из-за ограничений… Но это надо копать глубже и дальше…
Но всеравно спасибо за подсказку, а то я уже совсем забыл про это.
Вообще говоря конечно не критично, но как же пользователь приложения узнает по какой причине Ваша программа не хочет работать если, например, нет связи с сервером? И, кстати, Вы забыли почистить память за version.
Парсинг построенный на replace — не самая лучшая идея.
А самое прикольное, раз уж Вы пишете на Qt, это то, что весь textTranslated() можно уместить в несколько строк. Посмотрите, что вернет QscriptEngine engine;
QscriptValue value = engine.evaluate(text);
Ну, по-моему, немного неуместный вопрос для программы, которая отжирает 18 метров (под виндой) ничего при этом не делая :)
Использование Qtscript в данном случае не сильно повлияет, к тому же QscriptEngine будет создаваться только на время парсинга.
Посмотрел поближе.
При повторном запуске стала отжирать 11 :) Что изменилось — не знаю.
Но в любом случае, накушивает там много чего.
Сами библиотеки Qt съедают метров 5.
А дальше вы создаете всё, что только можно, даже если это может никогда не понадобиться, либо необходимо на короткий срок.
1. Создаете все окна, вместо того что бы создавать их непосредственно при нажатии пункта меню. Я, например, ни разу так и не открыл настройки или «О программе».
2. Сразу создаете свой класс GoogleProto, вместо того, что бы создавать его во время перевода.
3. При закрытии главного окна его можно не просто прятать, а удалять. И создавать его заново при вызове из трея. Тогда, в приницпе, пункт 2 можно оставить без изменений. Естественно, код создания трей-иконки надо будет вынести.
Класс по работе с Google Translate (Qt, C++)