Files
clients/DataAnalyzer/widget.cpp

692 lines
24 KiB
C++

#include "widget.h"
#include <QGroupBox>
#include <QButtonGroup>
#include <QLabel>
#include <QSqlQuery>
#include <QDebug>
#include <QFile>
#include <QFileDialog>
#include <QTextCodec>
#include <QMessageBox>
#include <QSqlError>
/*
QSqlDatabase dbWeb = QSqlDatabase::addDatabase("QMYSQL");
dbWeb.setHostName("db.big-bird.co.kr");
dbWeb.setUserName("concepters");
dbWeb.setPassword("con97996655");
dbWeb.setDatabaseName("dbconcepters");
*/
#define D_NOT_SELECT -1
#define SAFE_DELETE(x) if(x != NULL) { delete x; x = NULL; }
#define SAFE_DELETEARRAY(x) if(x != NULL) { delete [] x; x = NULL; }
#define SAFE_RELEASE(x) if(x != NULL) { x->Release(); x = NULL; }
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *vMainLayout = new QVBoxLayout;
vMainLayout->setAlignment(Qt::AlignVCenter);
{
QVBoxLayout *vlayout = new QVBoxLayout;
vlayout->addWidget(setDateWidgets());
vlayout->addWidget(setSearchWidgets());
vlayout->addWidget(setDelLengWidgets());
vlayout->setAlignment(Qt::AlignTop);
QHBoxLayout *hlayout = new QHBoxLayout;
hlayout->addWidget(setDataWidgets());
hlayout->addLayout(vlayout);
hlayout->addWidget(setFilterWidgets());
vMainLayout->addLayout(hlayout,1);
m_ptwData = new QTabWidget;
vMainLayout->addWidget(m_ptwData,8);
m_ptwData->setTabsClosable(true);
connect(m_ptwData,SIGNAL(tabCloseRequested(int)),this,SLOT(CloseTab(int)));
m_pProgress = new QProgressBar;
vMainLayout->addWidget(m_pProgress,1);
}
setLayout(vMainLayout);
DataGroupRefresh();
FilterGroupRefresh();
AddTable("1");
}
Widget::~Widget()
{
}
QTableWidget *Widget::AddTable(QString _str)
{
STable *pTable = new STable;
m_ptwData->addTab(pTable,_str);
return (QTableWidget *)pTable;
}
void Widget::CloseTab(int index)
{
m_ptwData->removeTab(index);
}
QGroupBox *Widget::setDataWidgets()
{
QVBoxLayout *vlayout = new QVBoxLayout;
QGroupBox *groupBox = new QGroupBox(tr("Data Group"));
m_plwData = new QListWidget;
vlayout->addWidget(m_plwData);
m_plwData->setSelectionMode(QAbstractItemView::SingleSelection);
QPushButton *ppbRefresh = new QPushButton("Refresh");
vlayout->addWidget(ppbRefresh);
connect(ppbRefresh, SIGNAL(released()),this, SLOT(DataGroupRefresh()));
groupBox->setLayout(vlayout);
connect(m_plwData,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(DataGroupItemChanged(QListWidgetItem*)));
return groupBox;
}
QGroupBox *Widget::setDateWidgets()
{
m_pcbDateCatalog = new QComboBox;
m_pdeStart = new QDateEdit(QDate::currentDate());
m_pdeEnd = new QDateEdit(QDate::currentDate());
m_pdeStart->setDateRange(QDate(2003, 5, 20),QDate::currentDate());
m_pdeEnd->setDateRange(QDate(2003, 5, 20),QDate::currentDate());
m_pcw = new QCalendarWidget();
m_pdeStart->setCalendarWidget(m_pcw);
m_pdeStart->setCalendarPopup(true);
m_pdeEnd->setCalendarWidget(m_pcw);
m_pdeEnd->setCalendarPopup(true);
m_ppbInsertCalc = new QPushButton("Insert");
QHBoxLayout *hlayout = new QHBoxLayout();
hlayout->addWidget(new QLabel("Catalog:"));
hlayout->addWidget(m_pcbDateCatalog);
hlayout->addWidget(new QLabel("Start:"));
hlayout->addWidget(m_pdeStart);
hlayout->addWidget(new QLabel("End:"));
hlayout->addWidget(m_pdeEnd);
hlayout->addWidget(m_ppbInsertCalc);
hlayout->setAlignment(Qt::AlignLeft|Qt::AlignTop);
QGroupBox *groupBox = new QGroupBox(tr("Term"));
groupBox->setAlignment(Qt::AlignLeft|Qt::AlignTop);
groupBox->setLayout(hlayout);
m_pcbDateCatalog->addItems(QStringList() << "body date" << "reply date");
connect(m_ppbInsertCalc, SIGNAL(released()),this, SLOT(SearchDate()));
return groupBox;
}
QGroupBox *Widget::setSearchWidgets()
{
m_pcbCatalog = new QComboBox;
m_pcbKeyword = new QComboBox;
m_pcbKeyword->addItem(QString("Or"));// or
m_pcbKeyword->addItem(QString("And"));// and
m_pcbKeyword->addItem(QString("Cell Delete"));
m_pcbKeyword->addItem(QString("Word Delete"));
m_pcbMethod = new QComboBox;
m_pcbMethod->addItem(QString("Sentence"));
m_pcbMethod->addItem(QString("Space"));
m_pleString = new QLineEdit;
m_ppbInsertSearch = new QPushButton("Insert");
m_pcbCatalog->addItems(QStringList() << "id " << "nickname" << "date" << "title" << "data" << "platform id" << "platform title" << "url"
<< "reply nickname" << "reply parent" << "reply date" << "reply data" << "reply urlreply"
<< "keyword id " << " platfor mname " << " platform form " << " article form " << " reply rownum ");
QVBoxLayout *vlayout = new QVBoxLayout();
{
QHBoxLayout *hlayout = new QHBoxLayout();
hlayout->addWidget(new QLabel("Item:"));
hlayout->addWidget(m_pcbCatalog);
hlayout->addWidget(new QLabel("Method:"));
hlayout->addWidget(m_pcbMethod);
hlayout->addWidget(new QLabel("keyword:"));
hlayout->addWidget(m_pcbKeyword);
vlayout->addLayout(hlayout);
}
{
QHBoxLayout *hlayout = new QHBoxLayout();
hlayout->addWidget(new QLabel("Search:"));
hlayout->addWidget(m_pleString);
vlayout->addLayout(hlayout);
}
QHBoxLayout *hlayout = new QHBoxLayout();
hlayout->addLayout(vlayout);
hlayout->addWidget(m_ppbInsertSearch);
QGroupBox *groupBox = new QGroupBox(tr("Search"));
groupBox->setLayout(hlayout);
connect(m_ppbInsertSearch, SIGNAL(released()),this, SLOT(SearchKeyword()));
return groupBox;
}
QGroupBox *Widget::setDelLengWidgets()
{
QHBoxLayout *hlayout = new QHBoxLayout();
m_pcbDelLeng = new QComboBox;
m_pleDelLeng = new QLineEdit;
m_pcbDelLeng->addItems(QStringList() << "id " << "nickname" << "date" << "title" << "data" << "platform id" << "platform title" << "url"
<< "reply nickname" << "reply parent" << "reply date" << "reply data" << "reply urlreply"
<< "keyword id " << " platfor mname " << " platform form " << " article form " << " reply rownum ");
hlayout->addWidget(new QLabel("Item:"));
hlayout->addWidget(m_pcbDelLeng);
hlayout->addWidget(new QLabel("Length:"));
hlayout->addWidget(m_pleDelLeng);
QPushButton *pbDelete = new QPushButton("insert");
connect(pbDelete , SIGNAL(released()),this, SLOT(SearchLength()));
hlayout->addWidget(pbDelete);
QGroupBox *groupBox = new QGroupBox(tr("Delete Length"));
groupBox->setLayout(hlayout);
return groupBox;
}
QGroupBox *Widget::setFilterWidgets()
{
QHBoxLayout *hMainlayout = new QHBoxLayout();
{
QVBoxLayout *vlayout = new QVBoxLayout();
m_plwFilterGroup = new QListWidget;
m_pleFilterGroup = new QLineEdit;
vlayout->addWidget(m_plwFilterGroup);
vlayout->addWidget(m_pleFilterGroup);
{
QHBoxLayout *hlayout = new QHBoxLayout();
QPushButton *pbInsert = new QPushButton("Insert");
connect(pbInsert, SIGNAL(released()),this, SLOT(FilterGroupInsert()));
QPushButton *pbDelete = new QPushButton("Delete");
connect(pbDelete, SIGNAL(released()),this, SLOT(FilterGroupDelete()));
QPushButton *pbModify = new QPushButton("Modfiy");
connect(pbModify, SIGNAL(released()),this, SLOT(FilterGroupModify()));
QPushButton *pbRefresh = new QPushButton("Refresh");
connect(pbRefresh, SIGNAL(released()),this, SLOT(FilterGroupRefresh()));
hlayout->addWidget(pbInsert);
hlayout->addWidget(pbDelete);
hlayout->addWidget(pbRefresh);
vlayout->addLayout(hlayout);
}
hMainlayout->addLayout(vlayout);
}
{
QVBoxLayout *vlayout = new QVBoxLayout();
m_plwFilter = new QListWidget;
vlayout->addWidget(m_plwFilter);
connect(m_plwFilter,SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),this,SLOT(currentFilterItemChanged(QListWidgetItem*,QListWidgetItem*)));
QPushButton *pbDelete = new QPushButton("Delete");
vlayout->addWidget(pbDelete);
connect(pbDelete, SIGNAL(released()),this, SLOT(FilterDelete()));
hMainlayout->addLayout(vlayout);
}
QGroupBox *groupBox = new QGroupBox(tr("Filter"));
groupBox->setLayout(hMainlayout);
connect(m_plwFilterGroup,SIGNAL(currentItemChanged(QListWidgetItem *,QListWidgetItem *)),this,SLOT(currentGroupItemChanged(QListWidgetItem *, QListWidgetItem *)));
return groupBox;
}
void Widget::DataGroupRefresh()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
m_plwData->clear();
QSqlQuery query("select id,name from datagroup");
while (query.next())
{
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),m_plwData);
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
}
db.close();
}
void Widget::InsertCopyRow(int _nRow,QTableWidget *_pCurrent,QTableWidget *_pNew)
{
_pNew->setRowCount(_pNew->rowCount()+1);
for (int nCount = 0;nCount < _pCurrent->columnCount() ;nCount++ )
{
_pNew->setItem(_pNew->rowCount()-1,nCount,new QTableWidgetItem(*_pCurrent->item(_nRow,nCount)));
}
}
void Widget::SearchDate()
{
STable *pNew = new STable;
QTableWidget *pCurrent = (QTableWidget *)m_ptwData->currentWidget();
pNew->setColumnCount(pCurrent->columnCount());
//SetColumHeader(pNew);
m_pProgress->setRange(0,pCurrent->rowCount()-1);
int nCurrentFilterGroupID = D_NOT_SELECT;
foreach (QListWidgetItem *item,m_plwFilterGroup->selectedItems())
{
nCurrentFilterGroupID = item->data(Qt::UserRole).toInt();
InsertTimeFilter(m_pcbDateCatalog->currentIndex(),m_pdeStart->date(),m_pdeEnd->date(),nCurrentFilterGroupID);
}
int nColumn;
switch(m_pcbDateCatalog->currentIndex())
{
case 0:nColumn = 2;break; // main
case 1:nColumn = 10;break; // comment
default : return;
}
for (int nCount = 0 ; nCount < pCurrent->rowCount(); nCount++ )
{
bool bFlag = false;
QString strTime = pCurrent->item(nCount,nColumn)->text().trimmed();
if (strTime.size() >= 10)
{
QChar ch = strTime.at(4);
QString strFormat = QString("yyyy")+ch+QString("MM")+ch+QString("dd");
QDate date = QDate::fromString(strTime.left(10),strFormat);
if (m_pdeStart->date() <= date && m_pdeEnd->date() >= date)
bFlag = true;
}
if (bFlag)
InsertCopyRow(nCount,pCurrent,pNew);
m_pProgress->setValue(nCount);
m_pProgress->repaint();
}
m_ptwData->addTab(pNew,m_ptwData->tabText(m_ptwData->currentIndex())+" d");
m_ptwData->setCurrentIndex(m_ptwData->count()-1);
if (nCurrentFilterGroupID != D_NOT_SELECT)
RefreshFilter(nCurrentFilterGroupID);
}
void Widget::SearchKeyword()
{
STable *pNew = new STable;
QTableWidget *pCurrent = (QTableWidget *)m_ptwData->currentWidget();
pNew->setColumnCount(pCurrent->columnCount());
//SetColumHeader(pNew);
int nCurrentFilterGroupID = D_NOT_SELECT;
foreach (QListWidgetItem *item,m_plwFilterGroup->selectedItems())
{
nCurrentFilterGroupID = item->data(Qt::UserRole).toInt();
InsertSearchFilter(m_pcbCatalog->currentIndex(),m_pcbMethod->currentIndex(),m_pcbKeyword->currentIndex(),m_pleString->text(),nCurrentFilterGroupID);
}
QStringList strListKeyword = m_pleString->text().split(" ");
if (m_pcbMethod->currentIndex() == 1)
{
for (int i = 0 ; i < strListKeyword.size(); i++ )
{
strListKeyword[i] = " " + strListKeyword[i] + " ";
}
}
m_pProgress->setRange(0,pCurrent->rowCount()-1);
qDebug() << QString::number(pCurrent->rowCount());
for (int nCount = 0 ; nCount < pCurrent->rowCount(); nCount++ )
{
bool bFlag = false;
//if (m_pcbCatalog->currentText() == "ALL")
QString strData = pCurrent->item(nCount,m_pcbCatalog->currentIndex())->text();
switch(m_pcbKeyword->currentIndex())
{
case 0:
{
foreach(QString strKey , strListKeyword)
if (strData.contains(strKey)){bFlag = true;break;}
break;
}
case 1:
{
int nKeyCount = 0;
foreach(QString strKey , strListKeyword)
if (strData.contains(strKey)) nKeyCount++;
if (nKeyCount == strListKeyword.size())
bFlag = true;
break;
}
case 2:
{
bFlag = true;
foreach(QString strKey , strListKeyword)
if (strData.contains(strKey)){bFlag = false;break;}
break;
}
case 3: bFlag = true;break;
}
if (bFlag) InsertCopyRow(nCount,pCurrent,pNew);
if (m_pcbKeyword->currentIndex() == 3)
{
foreach(QString strKey , strListKeyword)
{
strData.replace(strKey,"");
}
pNew->item(nCount,m_pcbCatalog->currentIndex())->setText(strData);
}
m_pProgress->setValue(nCount);
m_pProgress->repaint();
}
m_ptwData->addTab(pNew,m_ptwData->tabText(m_ptwData->currentIndex())+" k");
m_ptwData->setCurrentIndex(m_ptwData->count()-1);
if (nCurrentFilterGroupID != D_NOT_SELECT)
RefreshFilter(nCurrentFilterGroupID);
}
void Widget::SearchLength()
{
}
void Widget::DataGroupItemChanged( QListWidgetItem *item)
{
DataReload("data_" + item->data(Qt::UserRole).toString());
}
void Widget::DataReload(QString _strTableName)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
QString strSelect;
strSelect = "select ";
strSelect += "CONVERT(body_articleid USING utf8),";
strSelect += "CONVERT(body_nickname USING utf8),";
strSelect += "CONVERT(body_date USING utf8),";
strSelect += "CONVERT(body_articletitle USING utf8),";
strSelect += "CONVERT(body_data USING utf8),";
strSelect += "CONVERT(body_platformid USING utf8),";
strSelect += "CONVERT(body_platformtitle USING utf8),";
strSelect += "CONVERT(url USING utf8),";
strSelect += "CONVERT(reply_nickname USING utf8),";
strSelect += "CONVERT(reply_parent USING utf8),";
strSelect += "CONVERT(reply_date USING utf8),";
strSelect += "CONVERT(reply_data USING utf8),";
strSelect += "CONVERT(reply_urlreply USING utf8),";
strSelect += "CONVERT(keyword_id USING utf8),";
strSelect += "CONVERT(platformname USING utf8),";
strSelect += "CONVERT(platformform USING utf8),";
strSelect += "CONVERT(articleform USING utf8),";
strSelect += "CONVERT(reply_rownum USING utf8)";
strSelect += " from ";
strSelect += _strTableName;
strSelect += " Order by body_date";
QSqlQuery query(strSelect);
STable *pTable = (STable *)m_ptwData->currentWidget();
pTable->clear();
pTable->SetHeaderList();
int nCount = 0;
pTable->setColumnCount(18);
pTable->setRowCount(query.size());
m_pProgress->setRange(0,query.size()-1);
while (query.next())
{
for (int i = 0; i < pTable->columnCount() ; i++)
pTable->setItem(nCount,i,new QTableWidgetItem(" "+query.value(i).toString()+" "));
nCount++;
m_pProgress->setValue(nCount);
m_pProgress->repaint();
}
db.close();
}
void Widget::FilterGroupInsert()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
QString strQuery = QString("insert into filtergroup set "
"name = '" + m_pleFilterGroup->text() + "'");
db.exec(strQuery.toUtf8());
db.close();
FilterGroupRefresh();
}
void Widget::FilterGroupDelete()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
foreach (QListWidgetItem *item,m_plwFilterGroup->selectedItems())
{
QString strQuery = QString("delete from filtergroup where id = " + item->data(Qt::UserRole).toString());
db.exec(strQuery.toUtf8());
strQuery = QString("delete from filter where filtergroup_id = " + item->data(Qt::UserRole).toString());
db.exec(strQuery.toUtf8());
RefreshFilter(item->data(Qt::UserRole).toInt());
}
db.close();
FilterGroupRefresh();
}
void Widget::FilterGroupModify()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
db.close();
}
void Widget::FilterGroupRefresh()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
m_plwFilterGroup->clear();
QSqlQuery query("select id,name from filtergroup");
while (query.next())
{
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),m_plwFilterGroup);
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
}
db.close();
}
void Widget::InsertTimeFilter(int _nCategory ,QDate _dateStart ,QDate _dateEnd ,int _nGroup)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
QString sql = "insert into filter (type,timecategory,timestart,timeend,filtergroup_id) value (";
sql += "0,";
sql += QString::number(_nCategory) + ",'";
sql += _dateStart.toString("yyyy-MM-dd") + "','";
sql += _dateEnd.toString("yyyy-MM-dd") + "',";
sql += QString::number(_nGroup) + ")";
QSqlQuery query;
if (query.exec(sql.toUtf8()) == false)
{
qDebug() << sql;
qDebug() << query.lastError().text();
}
db.close();
}
void Widget::InsertSearchFilter(int _nCategory,int _nMethod,int _nKeyword, QString str,int _nGroup)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
QString sql = "insert into filter (type,searchescategory,searchesmethod,searcheskeyword,searchesstring,filtergroup_id) value (";
sql += "1,";
sql += QString::number(_nCategory) + ",";
sql += QString::number(_nMethod) + ",";
sql += QString::number(_nKeyword) + ",";
sql += "'" + str + "',";
sql += QString::number(_nGroup) + ")";
QSqlQuery query;
if (query.exec(sql.toUtf8()) == false)
{
qDebug() << query.lastError().text();
}
db.close();
}
void Widget::RefreshFilter(int _nGroup)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
QSqlQuery query("select id,type,timecategory,timestart,timeend,searchescategory,searchesmethod,searcheskeyword,searchesstring from filter where filtergroup_id = " + QString::number(_nGroup));
m_plwFilter->clear();
while (query.next())
{
QString str;
switch(query.value(1).toInt())
{
case 0:
str = "Type : Date ";
str += ", Catalog : ";
str += m_pcbDateCatalog->itemText(query.value(2).toInt());
str += ", Start : ";
str += query.value(3).toString();
str += ", End : ";
str += query.value(4).toString();
break;
case 1:
str = "Type : Seracher ";
str += ", Catalog : ";
str += m_pcbCatalog->itemText(query.value(5).toInt());
str += ", Method : ";
str += m_pcbMethod->itemText(query.value(6).toInt());
str += ", Keyword : ";
str += m_pcbKeyword->itemText(query.value(7).toInt());
str += ", Search : ";
str += query.value(8).toString();
break;
}
QListWidgetItem *pItem = new QListWidgetItem(str,m_plwFilter);
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
//m_plwFilter->insertItem(m_plwFilter->size().height()-1,pItem);
}
db.close();
}
void Widget::currentGroupItemChanged(QListWidgetItem *_pCurrent, QListWidgetItem *_pPrev)
{
if (_pCurrent == 0) return;
RefreshFilter(_pCurrent->data(Qt::UserRole).toInt());
m_pleFilterGroup->setText(_pCurrent->text());
m_pleFilterGroup->repaint();
}
void Widget::FilterDelete()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
foreach (QListWidgetItem *item,m_plwFilter->selectedItems())
{
QString strQuery = QString("delete from filter where id = '" + item->data(Qt::UserRole).toString() + "'");
db.exec(strQuery.toUtf8());
}
db.close();
foreach (QListWidgetItem *item,m_plwFilterGroup->selectedItems())
RefreshFilter(item->data(Qt::UserRole).toInt());
}
void Widget::currentFilterItemChanged(QListWidgetItem *_pCurrent, QListWidgetItem *_pPrev)
{
if (_pCurrent == 0) return;
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigbird.iptime.org");
db.setUserName("admin");
db.setPassword("admin123");
db.setDatabaseName("concepters");
if (db.open() == false)
{
qDebug() << db.lastError().text();
return;
}
QSqlQuery query("select id,type,timecategory,timestart,timeend,searchescategory,searchesmethod,searcheskeyword,searchesstring from filter where id = " + _pCurrent->data(Qt::UserRole).toString());
if (!query.next()) return;
switch(query.value(1).toInt())
{
case 0:
m_pcbDateCatalog->setCurrentIndex(query.value(2).toInt());
m_pdeStart->setDate(query.value(3).toDate());
m_pdeEnd->setDate(query.value(4).toDate());
m_pleString->setText("");
break;
case 1:
m_pcbCatalog->setCurrentIndex(query.value(5).toInt());
m_pcbMethod->setCurrentIndex(query.value(6).toInt());
m_pcbKeyword->setCurrentIndex(query.value(7).toInt());
m_pleString->setText(query.value(8).toString());
break;
}
}