Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Готовый SettingsDialog 
V
    Опции темы
_GRIN_
Дата 14.3.2012, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



поправил, что бы под дебианом компилилось, и gcc 4.4.5-8 (без поддержки C++-11) собиралось.

вот diff изменений (у меня локально в git-е сохранил):
Код

diff --git a/config.cpp b/config.cpp
index 074a491..07e9f58 100644
--- a/config.cpp
+++ b/config.cpp
@@ -30,11 +30,16 @@ const char * const CHECKABLE_ARRTIB_STRING = "checkable";
 const char * const CHECKED_ARRTIB_STRING = "checked";
 
 
-QVector< QString > knownAttributes = { TYPE_ATTRIB_STRING
-                                     , NAME_ATTRIB_STRING
-                                     , VALUE_ATTRIB_STRING
-                                     , VISIBLE_ARRTIB_STRING
-                                     };
+//QVector< QString > knownAttributes = { TYPE_ATTRIB_STRING
+//                                     , NAME_ATTRIB_STRING
+//                                     , VALUE_ATTRIB_STRING
+//                                     , VISIBLE_ARRTIB_STRING
+//                                     };
+
+QVector< QString > knownAttributes = QVector<QString>() << TYPE_ATTRIB_STRING
+                                                        << NAME_ATTRIB_STRING
+                                                        << VALUE_ATTRIB_STRING
+                                                        << VISIBLE_ARRTIB_STRING;
 
 typedef std::map< ConfigNS::Type, QString > Std_Type_2_String;
 typedef std::map< QString, ConfigNS::Type > Std_String_2_Type;
diff --git a/config_ns.h b/config_ns.h
index f53b69d..cceccf2 100644
--- a/config_ns.h
+++ b/config_ns.h
@@ -10,7 +10,8 @@ class QGroupBox;
 
 namespace ConfigNS {
 
-enum class Type {
+//enum class Type {
+enum Type {
     Text,
     Bool,
     Int,
diff --git a/main.cpp b/main.cpp
index 4167401..13af0fe 100644
--- a/main.cpp
+++ b/main.cpp
@@ -3,7 +3,7 @@
 #include "settings_widget.h"
 #include "config.h"
 #include <QPushButton>
-#include <windows.h>
+//#include <windows.h>
 #include <locale.h>
 
 #include <iostream>
diff --git a/settings_widget.cpp b/settings_widget.cpp
index 3f2c781..c3ce155 100644
--- a/settings_widget.cpp
+++ b/settings_widget.cpp
@@ -60,7 +60,9 @@ void SettingsWidget::create( ConfigNS::Sections & sections )
     while ( ui->stackedWidget->count() != 0 ) {
         ui->stackedWidget->removeWidget( ui->stackedWidget->widget( 0 ) );
     }
-    for ( auto & section : sections ) {
+//    for ( auto & section : sections ) {
+    for(int section_id = 0; section_id < sections.count(); section_id++) {
+        ConfigNS::Section& section = sections[section_id];
         if ( section.visible == false ) {
             continue;
         }
@@ -68,8 +70,9 @@ void SettingsWidget::create( ConfigNS::Sections & sections )
 
         QWidget * page = new QWidget();
         QGridLayout * sectionLayout = new QGridLayout( page );
-        for ( auto & group : section.groups )
-        {
+//        for ( auto & group : section.groups ) {
+        for(int group_id = 0; group_id < section.groups.count(); group_id++) {
+            ConfigNS::Group& group = section.groups[group_id];
             if ( group.visible == false ) {
                 continue;
             }
@@ -80,8 +83,9 @@ void SettingsWidget::create( ConfigNS::Sections & sections )
             groupBox->setChecked( group.checked );
 
             QGridLayout * groupLayout = new QGridLayout( groupBox );
-            for ( auto & value : group.values )
-            {
+//            for ( auto & value : group.values ) {
+            for(int value_id = 0; value_id < group.values.count(); value_id++) {
+                ConfigNS::Value& value = group.values[value_id];
                 if ( value.visible == false ) {
                     continue;
                 }
@@ -89,8 +93,9 @@ void SettingsWidget::create( ConfigNS::Sections & sections )
             }
             sectionLayout->addWidget( groupBox, sectionLayout->rowCount(), 0, 1, 3 );
         }
-        for ( auto & value : section.ungrouped.values )
-        {
+//        for ( auto & value : section.ungrouped.values )
+        for(int value_id = 0; value_id < section.ungrouped.values.count(); value_id++) {
+            ConfigNS::Value& value = section.ungrouped.values[value_id];
             if ( value.visible == false ) {
                 continue;
             }




--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
borisbn
Дата 14.3.2012, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(_GRIN_ @  14.3.2012,  09:29 Найти цитируемый пост)
 и gcc 4.4.5-8 (без поддержки C++-11) собиралось.

а что, это (из config.cpp)
Код

Std_Type_2_String std_type_2_string =
    { { ConfigNS::Type::Text, TEXT_TYPE_STRING }
    , { ConfigNS::Type::Bool, BOOL_TYPE_STRING }
    , { ConfigNS::Type::Int, INT_TYPE_STRING }
    , { ConfigNS::Type::Combo, COMBO_TYPE_STRING }
    , { ConfigNS::Type::File, FILE_TYPE_STRING }
    , { ConfigNS::Type::Dir, DIR_TYPE_STRING }
    , { ConfigNS::Type::Radio, RADIO_TYPE_STRING }
};

собирается без 11-го ? Это ж, вроде, initialize_list...
а windows.h в main.cpp - это для Sleep, без которого у меня отладчик не работает (я уже писал про это в отдельной теме)

А вообще, спасибо за работу. А какая цель в избавлении от 11-го ? Я наоборот туда пихал его чтобы отрезать пути к отступлению))


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
_GRIN_
Дата 14.3.2012, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(borisbn @  14.3.2012,  07:39 Найти цитируемый пост)
А какая цель в избавлении от 11-го ? 


Ну у меня на работе стоит то что я указал debian, gcc 4.4.5-8 - (по внутренним корпоративным причинам пока менять не могу) - просто сделал, что бы у меня собиралось =)


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
borisbn
Дата 14.3.2012, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(borisbn @  14.3.2012,  09:39 Найти цитируемый пост)
собирается без 11-го ? Это ж, вроде, initialize_list...

а... да. твой компилер их уже поддерживает
http://gcc.gnu.org/gcc-4.4/cxx0x_status.html
а почему тогда QVector так нельзя инициализировать ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
_GRIN_
Дата 14.3.2012, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(borisbn @  14.3.2012,  07:59 Найти цитируемый пост)
а почему тогда QVector так нельзя инициализировать ? 

Х.з. - просто я поправил, то что мешало компилироваться и выложил diff - я не менее ленивый чем ты ;)


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
borisbn
Дата 16.3.2012, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Доработал чуток. Обновил на SF.
1. Теперь есть 2 имени: 'display_name' для отображения на виджете и для поиска и 'name' для работы из программы
2. Запрос параметра из программы стал проще: можно начать работать с секцией beginSection( <имя секции> ) а затем просто обращаться к параметрам get( <имя параметра> );
3. У полей ввода типа File и Dir можно задавать будут ли они преобразовывать указанный файл или каталог к относительному пути


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 17.3.2012, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



borisbn, beginSection/endSection не соответствуют RAII. В итоге, если между ними воткнуть вызов функции, которая работает со своей секцией, то будет ошибка (логики). Имхо, не стоит специально расставлять грабли... И так, случайных будет достаточно.
PM   Вверх
borisbn
Дата 20.12.2012, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



UPD - https://sourceforge.net/projects/guisettings/
Добавил тип Color


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.