-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature: 5. Margin: Alignment: Custom #20
Comments
Могу только поддержать морально. Гоп! Гоп! У меня в планах зависнуть в отладчике, чтобы наконец понять, как там эта многопоточная лапша вообще работает. Ранее попытки понять это вычитыванием кода полностью провалились; веселые факты типа "знаете ли вы, что вызов updateSortOptions приводит к обновлению кеша картинок" просто выносят мозг. Без понимания я не встрою никакой новый функционал, потому что он всю программу цепляет. Если разберусь - смогу и в STEX чем-то помочь. А то, что я для STEX делал - это мелочи, на которые случайно натолкнулся в процессе поисков в STU. |
Hi @plzombie , @noobie-iv . Ещё раз обращаюсь к вам. Я опять в ступоре. Для расчётов полей используется следующий базовый размер: scantailor-experimental/src/stages/page_layout/PageLayout.cpp Lines 53 to 55 in 249d4e7
scantailor-experimental/src/stages/page_layout/ImageView.cpp Lines 699 to 701 in 249d4e7
scantailor-experimental/src/foundation/RelativeMargins.h Lines 42 to 44 in 249d4e7
scantailor-experimental/src/foundation/RelativeMargins.h Lines 50 to 52 in 249d4e7
Как мне "вывести на табло" и иметь возможность поменять ручками этот базовый размер? Мои попытки приводят к дичи: либо всё ломается, либо нишиша не работает. PS: Сейчас сканирую книгу, на которой просто необходим постоянный базовый размер для полей независимо от размеров контента. То бишь нужны одинаковые поля при сильно различающемся контенте. |
Я пока даже свою пародию до ума не довел, не говоря про вмешательство в полноценный СТ. Кеш превьюшек оказался сам многопоточным, внутре многопоточного тейлора. И они таки друг другу сигналят. Чтобы добавлять что-то в интерфейс, надо наизусть знать, в каких местах добавлять эти сигналы, и в каких местах ловить. Иначе что-то обязательно не законтачит. В больших программах, типа автокада, на такие темы здоровенные разделы справки с примерами приводят. А тут надо все такие места выискивать. На такие вопросы я смогу отвечать только после доделки своего микро-ст до минимально рабочего состояния. |
Hi @plzombie , @noobie-iv , @trufanov-nok . Кажется я "нащупал", почему так неудобно работать с полями в STEX. Гораздо менее плохое управление полями можно получить разделив их на внешние (единные для всех страниц, строго положительные) и индивидуальные (для каждой страницы свои, служат только для выравнивания, могут быть отрицательными, по ним и будет всё выравниваться, по умолчанию равны 0). То есть, равность полей будет основана на том, что внешние аоля будут базироваться на:
В то время как индивидуальные поля - это то, что реализовано сейчас, только дефолтное значение поменяется на 0. У обложек же индивидуальные поля будут равны внешним со знаком минус. То есть всё практически остаётся таким же, как сейчас, только добавлается полоска внеших одинаковых полей, а нидивидуальные поля обеспечат выравнивание. Это гораздо удобнее и результат при этом хорош. PS: Сейчас мне для получения одинаковых полей приходится каждый раз патчить текущую версию STEX и прописывать какое то (обычно 3000) значение в качестве базового размера для полей в местах из предыдущего моего поста. |
Модифицировал RelativeMargins под базовый размер: cb736af Дальше модифицировать GUI: CheckBox+QDoubleSpinBox. При выключенном CheckBox базовый обнуляется и QDoubleSpinBox выключается, при включенном CheckBox QDoubleSpinBox включается и базовый приравнивается к getBaseRect. Но! Как всё это сконектить, чтобы всё логично работало? Вот совсем не хочется колхоза. |
Могу разве что скинуть своего недоделыша. В нем базовую логику легче увидеть, чем в трех мегабайтах stex. Сейчас там единственный работающий фильтр - поворот, но две кнопки право/лево честно работают. А там уж по образцу все эти коннекты подключить можно будет. Не работают превьюшки (коплю силы на борьбу с многопоточным кешем). Но, надеюсь, в кеш не надо логику от UI добавлять, и этого огрызка хватит. И под линухом оно не собирается, что-то в подключениях не находит, что-то в проекте cmake подкрутить надо. Но код и так можно посмотреть. |
Спасибо @noobie-iv . Сделай репу
Отсюда этапы должны стать менее напряжными, но их дожно быть больше:
Может быть что-то ещё (так что предусмотреть встраивание этапов). Такие вот дела. |
На репу оно не тянет, это обрезок с целью понять как основной код устроен. А уж персортировка фильтров и макеты требуют сразу начать другую программу писать, это, по-моему, проще будет, чем вшивать это в готовый код. Но это ж на десять лет работы. Так что я просто тут архив прикреплю, вдруг поможет: |
@noobie-iv say:
Чего то не попёрло: src/IntrusivePtr.h:51:43: error: invalid use of incomplete type ‘class Orientation::Settings’
51 | inline void intrusive_unref(T &obj) { obj.unref(); }
| ~~~~^~~~~ |
Я интересу ради пробовал собирать под линуксом, но у меня даже компиляция не прошла. Что-то надо в cmake править - Qt не находит автосгенерированные заголовки, и прекомпилированные заголовки тоже глючат. Если надо просто посмотреть вживую, что там есть - вот скомпилированный под винду, может, в эмуляторе заработает: Если не заработает - придется время терять на разборки с cmake в линухах, прежде чем смогу что-то починить. |
Вот поправленная версия, собирается под Debian12, если вдруг в отладчике захочется погонять: |
Спсб, @noobie-iv . На этот раз скомпилилось. Будем посмотреть. |
Разделить поля на внешнии и внутренние оказалось просто: текущии поля полностью стали внутренними + к ним присобачились внешние.: c270e0f ❓ Как присобачить к этому хозяйству GUI? Чтобы внешние поля были не константой (0.08), а регулировались? PS: Мне бы помочь намутить |
"С горем пополам" разрулил ситуёвину: скопипастил с Теперь выравнивание стало ну очень удобно и страницы не обязаны иметь один размер. Такие вот дела. 👍 |
Hi @plzombie , @noobie-iv .
Не получается добавить выравнивание "Custom" (на базе "Scaling", но ручное задание масштабного коэффициента через дополнительный, отключаемый в других выравниваниях
QDoubleSpinBox
). То тут, то там запарываюсь наглухо. Ежели сможете подсобить, то буду очень рад. С этим выравниванием система масштабирования STEX станет завершённой. Такие вот дела.The text was updated successfully, but these errors were encountered: