Очень нужна система управления проектами.
Из требований:
а) Одновременная работа нескольких пользователей (т.е. либо web-based application либо с серверной частью);
б) Построение диаграммы Ганта;
в) Разграничение прав доступа;
г) Freeware.
Из пожеланий:
а) баг-треккер, который можно выставить «наружу»;
б) привязка к Mercurial.
Redmine просьба не предлагать, так как именно ему ищется замена.
Понравился FengOffice (в плане интерфейса), но там трудности с диаграммой Ганта. Пробуем Trac, но он не сильно понравился.
Задача: ограничить для сокета максимальный размер входящего сообщения.
Если я правильно понимаю, для этого можно использовать bufferevent_setwatermark. Только я не совсем понимаю, зачем тут нужен минимальный размер сообщения?
Правильно ли я понимаю, что syslog и syslog-ng полностью взаимозаменяемы?
То есть если я буду использовать в своей программе на C++ API от syslog, то для перехода к syslog-ng нужно будет лишь поставить его в систему и запустить вместо syslog?
Проблема следующая: если сначала зайти в консоль, залогиниться и выполнить стартикс, то звук прекрасно работает, но если логиниться через KDM, то при загрузке KDE выводится сообщение, что-то вроде «Звуковой адаптер Intel не поддерживается».
Посмотрел логи KDM - не может найти модуль FBdev, но, я так понимаю, он здесь не при делах.
1) Как определить домашнюю директорию пользователя? В линуксе всё просто - '~', но как определить домашнюю директорию в винде? (ещё лучше - как определить домашнюю директорию в зависимости от ОС? М.б. есть стандартная фи-я?)
2) Куда лучше в винде сохранить базу данных? В all users (или что-то такое там есть)? Опять-таки как определить путь по умолчанию?
Поясню в чём суть: есть XML'ный тег, который говорит, мол, нарисуй такой-то элемент, информацию возьми из параметра «get». Далее проходим ифами и, если название совпало, получаем информацию из соответствующего метода класса Statement.
Собственно вопрос: можно ли как-то уйти от if else и написать что-то более изящное?
Уже несколько часов сижу и не понимаю, как сделать фильтр в QSqlQueryModel? Понятно, что можно юзать проксимодель, но тогда в QSqlQueryModel будет содержаться вся выборка из базы данных, а это ИМХО может плохо сказаться на производительности. С другой стороны я не нашёл как связать сортировку в QTreeView и в модели.
В общем вопрос такой: за фильтрацию и сортировку отвечает модель или представление?
P.S. Сколько примеров смотрел - там везде написано, мол, в source-модели содержаться все данные, а в proxy-модели только те, что относятся к конкретному представлению.
Кросскомпилирую свою программу под винду на Линуксе (с помощью mingw32).
Если запускаю под вайном на линуксе, то QSqlDatabase::drivers() выдаёт следующие драйвера:
QSQLITE QODBC3 QODBC
Если запускаю под виндой, то не выдаёт никаких драйверов. QtSql4.dll скопировал в директорию с прогграммой. Пробовал копировать ~/.wine/drive_c/Qt/2010.04/qt/plugins в директорию с программой, но результата не дало.
Пробовал Process Explorer'ом посмотреть подгружаемые dll'ки - под виндой грузит все те же самые (в т.ч. и QtSql4.dll) дллки, что и под вайном (кроме вайндрайверс).
#ifndef QT_NO_PRINTER
QTextEdit *editor = new QTextEdit(QString(«dfdfdf»));
QPrinter printer;
QPrintDialog *dialog = new QPrintDialog(&printer);
dialog->setWindowTitle(tr(«Print Document»));
dialog->exec();
editor->print(&printer);
#endif
На виртуальном PDF-принтере нормально печатает, но как только нажмёшь «печать» или «отмена», приложение вылетает. Такая хрень наблюдается и под Linux Slackware 13.1 (KDE) и под Windows XP sp3 (тоже печатал на виртуальном принтере).
Скомпилил пример (Order Form) - всё нормально, без вылетов.
В своей программе использую стандартное диалоговое окно QMessageBox::critical. Собираю на одной машине (Slackware 13.0, GNOME 2.26.3) - всё прекрасно работает. Собираю на другой (Slackware 13.1. GNOME 2.30.2) - выдаёт ошибку в консоль:
(<unknown>:19618): Gtk-WARNING **: Error loading theme icon 'gtk-dialog-error' for stock: Произошла фатальная ошибка при чтении файла изображения формата PNG: Incompatible libpng version in application and library
Описание ошибки понятно - не сходятся libpng библиотеки, но вот как пофиксить это - не понимаю.
Необходимо написать функцию, которая бы выдавала ИД записи, если такова существует или бы создавала новую запись и опять же возвращала бы ИД.
Попробовал такой вариант:
CREATE OR REPLACE FUNCTION getMarkId(character varying)
RETURNS integer AS
$BODY$
DECLARE
BEGIN
IF(SELECT id FROM «Marks» WHERE «name» = $1) THEN
RETURN id FROM «Marks» WHERE «name» = $1;
ELSE
INSERT INTO «Marks» («name») VALUES ($1) RETURNING id;
RETURN getMarkId($1);
END IF;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
Проблема №1:
Тут селект используется два раза + рекурсия, что, наверно, повлияет на производительность, да и выглядит довольно криво.
Проблема №2:
Если запись существует, то всё ок, а если нужно создать новую, то выдаёт такую ошибку:
ERROR: duplicate key value violates unique constraint «Marks_pkey»
CONTEXT: SQL statement «INSERT INTO „Marks“ („name“) VALUES ( $1 )»
PL/pgSQL function «getmarkid» line 6 at SQL statement
Поскольку сам с функциями в постгресе ещё не до конца разобрался, прошу коллективной помощи :)
g++ -c -pipe -O2 -march=i486 -mtune=i686 -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -Wall -W -fPIC -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt/mkspecs/linux-g++ -I. -I/usr/lib/qt/include/QtCore -I/usr/lib/qt/include/QtSql -I/usr/lib/qt/include -I/opt/PostgreSQL/8.4/include -I. -I. -o qsql_psql.o ../../../sql/drivers/psql/qsql_psql.cpp
../../../sql/drivers/psql/qsql_psql.cpp: In member function ‘virtual QVariant QPSQLResult::data(int)’:
../../../sql/drivers/psql/qsql_psql.cpp:344: ошибка: нет декларации ‘numericalPrecisionPolicy’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp: In member function ‘virtual QSqlIndex QPSQLDriver::primaryIndex(const QString&) const’:
../../../sql/drivers/psql/qsql_psql.cpp:929: ошибка: нет декларации ‘isIdentifierEscaped’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp:930: ошибка: нет декларации ‘stripDelimiters’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp:934: ошибка: нет декларации ‘isIdentifierEscaped’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp:935: ошибка: нет декларации ‘stripDelimiters’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp: In member function ‘virtual QSqlRecord QPSQLDriver::record(const QString&) const’:
../../../sql/drivers/psql/qsql_psql.cpp:1002: ошибка: нет декларации ‘isIdentifierEscaped’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp:1003: ошибка: нет декларации ‘stripDelimiters’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp:1007: ошибка: нет декларации ‘isIdentifierEscaped’ в этой области видимости
../../../sql/drivers/psql/qsql_psql.cpp:1008: ошибка: нет декларации ‘stripDelimiters’ в этой области видимости
make: *** [qsql_psql.o] Ошибка 1