сигнал о создании нового/открытии проекта

Идеи и запросы на отсутствующую или изменение существующей функциональности QGIS, патчи.
Ответить
stopa85

сигнал о создании нового/открытии проекта

Сообщение stopa85 » 18 окт 2010, 10:27

Преамбула
Настройки многих плагинов зависят от настроек проекта. Часто требуется, когда пользователь qgis открывает проект, прочитать настройки плагина. Когда пользователь создал новый, сбросить эти настройки на "по умолчанию" и привести в порядок GUI введенный плагином.

Многие разработчики решают эту проблему так:

Код: Выделить всё

void QgsCopyrightLabelPlugin::initGui()
{
  ...
  //this resets this plugin up if a project is loaded
  connect( qGisInterface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( projectRead() ) );
  ...
  //initialise default values in the gui
  projectRead();
}
см https://svn.osgeo.org/qgis/trunk/qgis/s ... plugin.cpp

Я решил проблему точно так же:

Код: Выделить всё

/*
 * Initialize the GUI interface for the plugin - this is only called once when the plugin is
 * added to the plugin registry in the QGIS application.
 */
void RoadGraphPlugin::initGui()
{
  ...
  connect( mQGisIface->mainWindow(), SIGNAL( projectRead() ), this, SLOT( projectRead() ) );
  connect( mQGisIface->mainWindow() , SIGNAL( newProject() ), this, SLOT( newProject() ) );
  ...
} // RoadGraphPlugin::initGui()
http://svn.gis-lab.info/road-graph/src/ ... plugin.cpp

Проблема: замечательные сигналы projeсtRead() и newProject() недокументированы. А метод mQGisIface->mainWindow() возвращает загадочный QWidget* .
У разработчиков qgis есть причины прятать QGisApp* за QWidget*, я уверен. А хоть какое-то описание этих сигналов можно найти только в исходном коде: https://svn.osgeo.org/qgis/trunk/qgis/src/app/qgisapp.h

Предлагаю: ввести в QGisInterface соответствующие сигналы, дабы они были доступны и документированы.

Прошу: одобрить и довести до разработчиков qgis.
Последний раз редактировалось stopa85 30 окт 2010, 21:56, всего редактировалось 1 раз.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: сигнал о создании нового/открытии проекта

Сообщение Voltron » 26 окт 2010, 09:10

Написал разработчикам. Сегодня получил ответ: улучшение нужное, если есть патч - предлагают запостить в Trac и включить его в 1.6

stopa85

Re: сигнал о создании нового/открытии проекта

Сообщение stopa85 » 27 окт 2010, 15:47

инициатива наказуема :D

Как вам newProjectCreated()? Имя "newProject()" конфликтует с слотом virtual void QgisInterface::newProject (bool thePromptToSaveFlag = false)
см. тут

Если имя приемлемо, то можно добавлять.

Меня только имя смущает.... стесняюсь своего английского:(
Вложения
add_new_open_project_signal.path.zip
(900 байт) 451 скачивание

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: сигнал о создании нового/открытии проекта

Сообщение Voltron » 27 окт 2010, 16:14


Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: сигнал о создании нового/открытии проекта

Сообщение Максим Дубинин » 28 окт 2010, 03:18

stopa85, ради такого дела с английским мы всегда поможем.

Voltron, хорошо бы автора патча в трекере указать для истории.
пристегивайтесь, турбулентность прямо по курсу

stopa85

Re: сигнал о создании нового/открытии проекта

Сообщение stopa85 » 28 окт 2010, 06:32

Да фиг с ним, с автором. А вот к выбору имен нужно подходить основательно...


Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: сигнал о создании нового/открытии проекта

Сообщение Максим Дубинин » 31 окт 2010, 02:47

отлично!

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

Ответить

Вернуться в «Предложения по QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей