Olek1, АртемЪ,
Современные процессоры работают по микрокомандному принципу. Один из блоков переводит команды машинного кода в команды для всех остальных блоков по определённым правилам. Вот эти правила, которые хранятся в особо быстродействующем ППЗУ — это и есть микрокод.
Микрокод позволяет ускорить работу процессора ценой удлинения конвейера, и позволяет программно запатчивать ошибки в процессорах. Почему Meltdown не запатчили? Потому что это подслушивание по сторонним каналам (никакой ошибки в логике нет), проблема во внеочередном исполнении команд (а вот не в курсе, контролируется ли это микрокодом), и в некоторых процессорах Meltdown если не закрыли, то облегчили.
Oleg Seledets, Это обычное дело — оттаскивать функциональность подальше от интерфейса. Впрочем, полностью это сделать невозможно: функциональность и интерфейс всегда переплетены. Хотя бы на уровне того, что каждому полю в функциональности надо сделать соответствующее поле в формочке.
Не так давно я решал такую штуку: есть несколько разных событий, изменяющих ключ сортировки. Некоторые вызываются парами, некоторые вызываются, когда ключ по факту и не изменялся — так что нужно запомнить имеющийся ключ и пересортировать, когда реально сменился. По-моему, это интерфейс и в базовую функциональность его не надо.
Oleg Seledets,
С QScopedPointer — да, но с привкусом Си++03. Рекомендую всё же std::unique_ptr.
Лучше в отдельном модуле: соединением будет пользоваться и главная форма, и форма авторизации.
Роман, Если ошибка в считывании настроек — то мой вариант с настройками вполне встраивается и в вашу систему. Например, я сделал настройки глобальным объектом, потому что крайне мала вероятность, что потребуются два объекта настроек.
Роман, Если тут дело ещё и в настройках — что мешает сделать объект ProgSettings и прочитать его до создания формы?
ProgSettings progSets; // глобальный объект в каком-нибудь модуле
QApplication a(argc, argv);
progSets.read(settingsFileName);
FmAutoriz au;
// что дальше — уж сами придумайте.
Пока не вижу явной ошибки, укажите точно, где вылет. Тем не менее, код страшен, как чёрт.
1. Возьмите за правило: если кто-то в коде ссылается на компонент — дайте ему говорящее название!
2. Научитесь уже пользоваться параметрами SQL!
Если только в технических и отладочных режимах. В нормальной работе нельзя.