/**************************************************************************** ** ui.h extension file, included from the uic-generated form implementation. ** ** If you wish to add, delete or rename slots use Qt Designer which will ** update this file, preserving your code. Create an init() slot in place of ** a constructor, and a destroy() slot in place of a destructor. *****************************************************************************/ void TDataViewMain::fileOpen() { QString fileName, f2, tr; int dirlen, nums, oreturn; if ( fd->exec() == QDialog::Accepted ) { if( actual!="0") { f2 = *( fpaths.begin() + LB_Files->index( LB_Files->findItem( actual))); optbuf[f2].setBuf( RB_ShowObj->isChecked(), CB_ShowCol->isChecked(), LE_Size3d->text().toDouble()); } dirlen = fd->dir()->path().length(); f2 = fileName = fd->selectedFile(); if( !LE_PointsG->text().toInt())nums = 10000; else nums=LE_PointsG->text().toInt(); oreturn = View1->open( f2,nums); if( oreturn != -1) { if( numFiles) coord.push_back( View1->currentConfig()); LB_Files->insertItem( fileName.remove( 0, dirlen+1), LB_Files->count()+1); tr.setNum( oreturn); LE_Points3d->setText( tr); actual = fileName; fpaths.push_back( f2); optbuf[f2]= new oBuffer( RB_ShowObj->isChecked(), CB_ShowCol->isChecked(), LE_Size3d->text().toDouble()); cur = numFiles; numFiles++; } } } void TDataViewMain::helpAbout() { QMessageBox::about( this, "About DataView", "

Dataview 3D Data visualization tool

Version: 1.1

" "

by The Weird Birds Corp.

License: GPL

" "

Chief of Development: T.H.E.
Head of testing staff: Florian Nehonsky

" "

The Great and Honorous ShiFu: H.T.D.

"); } void TDataViewMain::Update() { //update1->setEnabled( false); View1->obj = RB_ShowObj->isChecked(); View1->col = CB_ShowCol->isChecked(); //View1->axis = CB_Axes3d->isChecked(); View1->setNumPoints( LE_PointsG->text().toInt()); View1->pSize = LE_Size3d->text().toDouble(); } void TDataViewMain::init() { fd = new QFileDialog( this, "file open dialog", TRUE ); fd->setMode( QFileDialog::ExistingFile ); fd->setViewMode( QFileDialog::Detail ); fd->addFilter( "Text Files (*.txt)" ); fd2 = new QFileDialog( this, "save image as", TRUE ); fd2->setMode( QFileDialog::AnyFile ); fd2->setViewMode( QFileDialog::Detail ); fd2->addFilter( "PNG Images (*.png)" ); //fd2->setSelection( "*.png"); View1->Init(); this->toolBars( DockTop).first()->hide(); this->resize( 980, 670); LB_Files->clear(); numFiles = 0; actual = "0"; oscx = oscy = cx = cy = 0; repl = false; Update(); } void TDataViewMain::Changed() { //update1->setEnabled( true); } void TDataViewMain::TabChanged( QWidget *w) { short int current = TabWidget2->indexOf( w); if( !current) View1->setFocus(); } void TDataViewMain::ListDblClick( QListBoxItem *w) { QString tr,f2; int ind = LB_Files->index( w); if( repl) { playReplay(); } else if( ind != cur) { f2 = *( fpaths.begin() + LB_Files->index( LB_Files->findItem( actual))); optbuf[f2].setBuf( RB_ShowObj->isChecked(), CB_ShowCol->isChecked(), LE_Size3d->text().toDouble()); actual = w->text(); vector::iterator it; it = coord.begin()+cur; *it = View1->currentConfig(); f2 = *( fpaths.begin() + ind); View1->open( f2, LE_PointsG->text().toInt(), &*( coord.begin() + ind)); cur = ind; tr.setNum( optbuf[f2].Size3d); RB_ShowObj->setChecked( optbuf[f2].ShowObj); CB_ShowCol->setChecked( optbuf[f2].ShowCol); LE_Size3d->setText( tr); }else View1->open( *( fpaths.begin() + ind), LE_PointsG->text().toInt()); } void TDataViewMain::ListRClick( QListBoxItem *w ) { QString out = "Really Delete " + w->text() + " from open file list?"; QMessageBox mb( "Info", out, QMessageBox::NoIcon, QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape, QMessageBox::NoButton); if( mb.exec()) { numFiles--; int ind = LB_Files->index( w); QString t = w->text(); LB_Files->removeItem( ind); vector::iterator it; it = fpaths.begin()+ind; optbuf.erase( *it); fpaths.erase( it); vector::iterator it2; it2 = coord.begin()+ind; coord.erase( it2); cur = LB_Files->currentItem(); if( t == actual) if( numFiles) View1->open( *( fpaths.begin()+cur), LE_PointsG->text().toInt(), &*( coord.begin()+cur) ); else View1->clear(); if( !LB_Files->count()) activateControls3D( false); } } void TDataViewMain::resizeEvent( QResizeEvent *ev) { TextLabel1_4->move( ev->size().width() - 165 - cx, 4); update1->move( ev->size().width() - 165 - cx, ev->size().height() - 90 - cy); LB_Files->setGeometry( ev->size().width() - 165 - cx, 24, 160, ev->size().height() - 120 - cy); TabWidget2->setGeometry( 0, 0, ev->size().width() - 170 - cx, ev->size().height() - 60 - cy); Hscroll1->setGeometry( 0, TabWidget2->height() - 51, TabWidget2->width() - 18 - cx, 20); Vscroll1->setGeometry( TabWidget2->width() - 20, 0, 20, TabWidget2->height() - 49 - cx); Bresize1->move( TabWidget2->width() - 20, TabWidget2->height() - 51); View1->setGeometry( 0, 0, ev->size().width() - 172 - cx, ev->size().height() - 70 - cy); if( ev->size().width() < 980 + cx) { Hscroll1->show(); Bresize1->show(); oscx = Hscroll1->value()*( 980 + cx + 20 - this->width())/100; }else { Hscroll1->hide(); oscx = 0; } if( ev->size().height() < 670 + cy) { Vscroll1->show(); Bresize1->show(); oscy = Vscroll1->value()*( 670 + cy + 20 - this->height())/100; }else { oscy = 0; Vscroll1->hide(); if( ev->size().width() >= 980 + cx)Bresize1->hide(); } GroupBox1->move( 10 - oscx, 10 - oscy); GroupBox2->move( 10 - oscx, 260 - oscy); } void TDataViewMain::hideRTollB( bool tog) { QResizeEvent resev( QSize( this->size().width(), this->size().height()), QSize( this->size().width(), this->size().height())); if(!tog) { Toolbar_2->hide(); cx = cy = 0; resizeEvent( &resev); } else { Toolbar_2->show(); ToolbarPosChanged(); } } void TDataViewMain::ToolbarPosChanged() { if( Toolbar_2->place()==QDockWindow::OutsideDock)cx = cy = 0; else { if(Toolbar_2->orientation()==Qt::Horizontal) { cx = 0; cy = 30; SL_SPEED->setOrientation( Qt::Horizontal); } else { cy = 0; cx = 30; SL_SPEED->setOrientation( Qt::Vertical); } } QResizeEvent resev( QSize( this->size().width(), this->size().height()), QSize( this->size().width(), this->size().height())); resizeEvent( &resev); } void TDataViewMain::playReplay() { int ind = LB_Files->currentItem(); if( ind!=-1) { LB_Files->setEnabled( false); update1->setEnabled( false); TabWidget2->setCurrentPage( 0); View1->setupReplayMode( true, *(fpaths.begin() + ind), LE_Nppt->text().toInt(), CB_ReplayDel->isChecked()); View1->setPlaySpeed( 500 - SL_SPEED->value()); View1->play(); }else QMessageBox::critical( this, "Attention", "Specify Replay Datafile first!!\n(per highlighting it in the Open Files listbox)"); } void TDataViewMain::stopReplay() { LB_Files->setEnabled( true); update1->setEnabled( true); View1->setupReplayMode(); } void TDataViewMain::tPlayReplay( bool r) { repl = r; } void TDataViewMain::changeReplaySpeed( int speed ) { View1->setPlaySpeed( 800 - speed); } void TDataViewMain::activateControls3D( bool en) { GroupBox2->setEnabled( en); } void TDataViewMain::resizeffv() { this->resize( 980, 670); } void TDataViewMain::vScroll( int value) { oscy= value*(670 + 20 - this->height())/100; GroupBox1->move( 10 - oscx, 10 - oscy); GroupBox2->move( 10 - oscx, 260 - oscy); } void TDataViewMain::hScroll( int value) { oscx = value*(980 + 20 - this->width())/100; GroupBox1->move( 10 - oscx, 10 - oscy); GroupBox2->move( 10 - oscx, 260 - oscy); } void TDataViewMain::fileSave() { if ( fd2->exec() == QDialog::Accepted ) { QString fname=fd2->selectedFile(); if( !( fname.right( 4).contains( ".png"))) fname.append( ".png"); View1->SaveImage( fname); } } void TDataViewMain::takeSnapshot() { QImage im = View1->getImage(); QWidget *newtab = new QTabWidget( TabWidget2); QLabel *newlab = new QLabel( newtab); newlab->setAutoResize( true); QPixmap pm; pm.convertFromImage( im, 0); newlab->setPixmap( pm); TabWidget2->addTab( newtab, "Snapshot View"); images.push_back( im); } void TDataViewMain::closeSnapshot() { int h = TabWidget2->currentPageIndex(); if( h > 1) { TabWidget2->removePage( TabWidget2->page( h)); TabWidget2->setCurrentPage( 0); images.erase( images.begin() + h - 2); } } void TDataViewMain::saveSnapshot() { if ( fd2->exec() == QDialog::Accepted ) { QString fname=fd2->selectedFile(); if( !( fname.right( 4).contains( ".png"))) fname.append( ".png"); ( images.begin() + TabWidget2->currentPageIndex() - 2)->save( fname, "PNG"); } } void TDataViewMain::openSnapshot() { fd2->setMode( QFileDialog::ExistingFile ); if ( fd2->exec() == QDialog::Accepted ) { QImage im; if( !im.load( fd2->selectedFile())) { QMessageBox::critical( this, "Attention", "Could not load file"); return; } QWidget *newtab = new QTabWidget( TabWidget2); QLabel *newlab = new QLabel( newtab); newlab->setAutoResize( true); QPixmap pm; pm.convertFromImage( im, 0); newlab->setPixmap( pm); TabWidget2->addTab( newtab, "Snapshot View"); images.push_back( im); } fd2->setMode( QFileDialog::AnyFile ); }