Здравствуйте! Как я избавился от переполнения стека: Код | ushort usTable[50][50];//Массив сетки кроссворда |
Если делал больше 50-ти, то отваливался импорт файла и запуск руководства пользователя  Изменил на: Код | ushort **usTable;//Массив сетки кроссворда ... //Создание двумерного динамического массива usTable = new ushort*[TableKlestCrossword->rowCount()];
for(int i = 0; i < TableKlestCrossword->rowCount(); i++) usTable[i] = new ushort[TableKlestCrossword->columnCount()];
|
Далее введены константы: Код | //Определение путей констант, в соответствии с системой #if defined(Q_WS_WIN)
#define PATH_TMP_SET QApplication::applicationDirPath() + "/settings.xwsc" #define PATH_SHARE_DOC QApplication::applicationDirPath() #define PATH_SHARE_APP QApplication::applicationDirPath() #define PATH_TMP_STAT QApplication::applicationDirPath() + "/cstat.html"
#elif defined(Q_WS_X11)
#define PATH_TMP_SET "/tmp/klest-crossword-0.3.7/settings.xwsc" #define PATH_SHARE_DOC "/usr/share/doc/klest-crossword-0.3.7" #define PATH_SHARE_APP "/usr/share/klest-crossword-0.3.7" #define PATH_TMP_STAT "/tmp/klest-crossword-0.3.7/cstat.html"
#elif defined(Q_WS_MAC)
#define PATH_TMP_SET QApplication::applicationDirPath() + "/settings.xwsc" #define PATH_SHARE_DOC QApplication::applicationDirPath() #define PATH_SHARE_APP QApplication::applicationDirPath() #define PATH_TMP_STAT QApplication::applicationDirPath() + "/cstat.html"
#endif
//Пути для разработки и отладки программы /*#define PATH_TMP_SET QApplication::applicationDirPath() + "/settings.xwsc" #define PATH_SHARE_DOC QApplication::applicationDirPath() #define PATH_SHARE_APP QApplication::applicationDirPath() #define PATH_TMP_STAT QApplication::applicationDirPath() + "/cstat.html"*/
#define MODE_VIEW true #define MODE_EDIT false
#define ACROSS_ENABLE true #define ACROSS_DISABLE false
#define LANGUAGE_RUSSIAN true #define LANGUAGE_ENGLISH false
#define TOOLBAR_SHOW true #define TOOLBAR_HIDE false
#define EXPORT_YES true #define EXPORT_NO false
#define TYPE_PDF 0 #define TYPE_POST_SCRIPT 1 |
Что позволило пути в программе менять всего один раз  Так же появилась возможность убрать лишние условия и оформить в switch: Код | switch(iTypeExport) { case TYPE_PDF: sFilter = ".pdf"; break;
case TYPE_POST_SCRIPT: sFilter = ".ps"; break;
case TYPE_HTML: sFilter = ".html"; break;
case TYPE_TXT: sFilter = ".txt"; break;
case TYPE_JPG: sFilter = ".jpg"; break;
case TYPE_JPEG: sFilter = ".jpeg"; break;
case TYPE_BMP: sFilter = ".bmp"; break;
case TYPE_TIFF: sFilter = ".tiff"; break;
case TYPE_PNG: sFilter = ".png"; break;
case TYPE_XPM: sFilter = ".xpm"; break;
case TYPE_XBM: sFilter = ".xbm"; break;
case TYPE_PPM: sFilter = ".ppm"; break;
case TYPE_OPEN_KLEST: sFilter = ".ok"; break; } |
Введение структуры файла свойств: Код | //Структура файла свойств программы struct TFileOptions { bool bModeWork,//Режим работы программы bLanguageProgram,//Язык программы bStateStandardToolbar,//Состояние показа стандартной панели bStateExport,//Состояние экспортирования bCurrentDictionary;//Текущий словарь QString sModePassword,//Пароль режима sPathCrossword,//Путь для кроссвордов sPathExport,//Путь для экспорта sPathTemplate;//Путь для шаблонов int iNumberTimes,//Количество раз iTypeExport;//Тип экспорта }; |
Скачать 0.3.7. На данный момент это последняя версия, прошу...
|