blob: c7609120cc3163a65911561f24ef85e0f49398ba [file] [log] [blame]
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
// @@@ END COPYRIGHT @@@
#include "QueryAnalysisView.h"
#include "ui_QueryAnalysisView.h"
QueryAnalysisView::QueryAnalysisView(QueryAnalysis* analysis, QWidget * parent):QWidget(parent),ui(new Ui::QueryAnalysisView)
{
ui->setupUi(this);
queryAnalysis_ = analysis;
UpdateView();
}
QueryAnalysisView::~QueryAnalysisView()
{
delete ui;
}
void QueryAnalysisView::UpdateView()
{
NAString qaText;
const int MAX_STR_LEN = 1001;
char validascii[MAX_STR_LEN];
Free();
if (queryAnalysis_ != NULL) {
NAString oneline(queryAnalysis_->getText());
NAString tempascii;
size_t idx;
BOOL done = FALSE;
// Newline delimited text. Need to split it up and add one line at a time
idx = oneline.first('\n');
if (idx == NA_NPOS && oneline.length() > 0) {
// it could just be one line
sprintf(validascii, oneline);
AddListItem(NAString(validascii));
}
else if (idx == NA_NPOS && oneline.length() == 0) {
sprintf(validascii, "QueryAnalysis getText is NULL!");
AddListItem(NAString(validascii));
}
while (idx != NA_NPOS && !done) {
// find first newline if any
if (idx == NA_NPOS) {
done = TRUE;
// still add the line, it may not be newline terminated
// only add if there is something there
if (oneline.length() > 0){
AddListItem(oneline);
oneline.remove(0); // empty list
}
}
else{
tempascii.remove(0);
tempascii.append(oneline,idx);
AddListItem(tempascii);
oneline.remove(0,idx+1); // remove newline too
}
idx = oneline.first('\n');
}//while
}
}
Int32 QueryAnalysisView::AddListItem(const NAString & s)
{
if(0 == s.length())
return -1;
QString qline((const char*)s);
int index = qline.lastIndexOf("\n");
if(index >= 0)
qline[index] = ' ';
ui->listWidget->addItem(qline);
return 0;
}
void QueryAnalysisView::Free()
{
ui->listWidget->clear();
}
void QueryAnalysisView::on_btnOK_clicked()
{
QObject* obj = parent();
if(0==strcmp(obj->metaObject()->className(), "QMdiSubWindow"))
((QMdiSubWindow *)obj)->close();
}
void QueryAnalysisView::on_btnCancel_clicked()
{
QObject* obj = parent();
if(0==strcmp(obj->metaObject()->className(), "QMdiSubWindow"))
((QMdiSubWindow *)obj)->close();
}