/*************************************************************************** * copyright : (C) 2003-2007 by Pascal Brachet * * http://www.xm1math.net/texmaker/ * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "configdialog.h" #include #include #include #include #include ConfigDialog::ConfigDialog(QWidget* parent): QDialog( parent) { setModal(true); ui.setupUi(this); //setWindowTitle(tr("English")); ui.contentsWidget->setIconSize(QSize(96, 96)); ui.contentsWidget->setViewMode(QListView::IconMode); ui.contentsWidget->setMovement(QListView::Static); //pageditor QFontDatabase fdb; ui.comboBoxFont->addItems( fdb.families() ); ui.comboBoxEncoding->addItem("UTF-8"); foreach (int mib, QTextCodec::availableMibs()) { QTextCodec *codec = QTextCodec::codecForMib(mib); if (codec->name()!="UTF-8") ui.comboBoxEncoding->addItem(codec->name()); } connect( ui.pushButtonAspell, SIGNAL(clicked()), this, SLOT(browseAspell())); ui.comboBoxAspellEncoding->addItem("utf-8"); ui.comboBoxAspellEncoding->addItem("iso8859-1"); connect( ui.pushButtonColorMath, SIGNAL(clicked()), this, SLOT(configureColorMath())); connect( ui.pushButtonColorCommand, SIGNAL(clicked()), this, SLOT(configureColorCommand())); connect( ui.pushButtonColorKeyword, SIGNAL(clicked()), this, SLOT(configureColorKeyword())); //pagequick connect(ui.radioButton6, SIGNAL(toggled(bool)),ui.lineEditUserquick, SLOT(setEnabled(bool))); //pagetools connect( ui.pushButtonLatex, SIGNAL(clicked()), this, SLOT(browseLatex())); connect( ui.pushButtonDvips, SIGNAL(clicked()), this, SLOT(browseDvips())); connect( ui.pushButtonBibtex, SIGNAL(clicked()), this, SLOT(browseBibtex())); connect( ui.pushButtonMakeindex, SIGNAL(clicked()), this, SLOT(browseMakeindex())); connect( ui.pushButtonDviviewer, SIGNAL(clicked()), this, SLOT(browseDviviewer())); connect( ui.pushButtonPsviewer, SIGNAL(clicked()), this, SLOT(browsePsviewer())); connect( ui.pushButtonPdflatex, SIGNAL(clicked()), this, SLOT(browsePdflatex())); connect( ui.pushButtonDvipdfm, SIGNAL(clicked()), this, SLOT(browseDvipdfm())); connect( ui.pushButtonPs2pdf, SIGNAL(clicked()), this, SLOT(browsePs2pdf())); connect( ui.pushButtonPdfviewer, SIGNAL(clicked()), this, SLOT(browsePdfviewer())); connect( ui.pushButtonMetapost, SIGNAL(clicked()), this, SLOT(browseMetapost())); connect( ui.pushButtonGhostscript, SIGNAL(clicked()), this, SLOT(browseGhostscript())); createIcons(); ui.contentsWidget->setCurrentRow(0); } ConfigDialog::~ConfigDialog(){ } void ConfigDialog::createIcons() { QListWidgetItem *commandButton = new QListWidgetItem(ui.contentsWidget); commandButton->setIcon(QIcon(":/images/configtools.png")); commandButton->setText(tr("Commands")); commandButton->setTextAlignment(Qt::AlignHCenter); commandButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem *quickButton = new QListWidgetItem(ui.contentsWidget); quickButton->setIcon(QIcon(":/images/configquick.png")); quickButton->setText(tr("Quick Build")); quickButton->setTextAlignment(Qt::AlignHCenter); quickButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem *editorButton = new QListWidgetItem(ui.contentsWidget); editorButton->setIcon(QIcon(":/images/configeditor.png")); editorButton->setText(tr("Editor")); editorButton->setTextAlignment(Qt::AlignHCenter); editorButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); connect(ui.contentsWidget, SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*))); } void ConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous) { if (!current) current = previous; ui.pagesWidget->setCurrentIndex(ui.contentsWidget->row(current)); } //pageditor void ConfigDialog::browseAspell() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\""; ui.lineEditAspellCommand->setText( location ); } } void ConfigDialog::configureColorMath() { QColor color = QColorDialog::getColor(ui.pushButtonColorMath->palette().background().color(), this); if (color.isValid()) { ui.pushButtonColorMath->setPalette(QPalette(color)); ui.pushButtonColorMath->setAutoFillBackground(true); } } void ConfigDialog::configureColorCommand() { QColor color = QColorDialog::getColor(ui.pushButtonColorCommand->palette().background().color(), this); if (color.isValid()) { ui.pushButtonColorCommand->setPalette(QPalette(color)); ui.pushButtonColorCommand->setAutoFillBackground(true); } } void ConfigDialog::configureColorKeyword() { QColor color = QColorDialog::getColor(ui.pushButtonColorKeyword->palette().background().color(), this); if (color.isValid()) { ui.pushButtonColorKeyword->setPalette(QPalette(color)); ui.pushButtonColorKeyword->setAutoFillBackground(true); } } //pagetools void ConfigDialog::browseLatex() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" -interaction=nonstopmode %.tex"; ui.lineEditLatex->setText( location ); } } void ConfigDialog::browseDvips() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" -o %.ps %.dvi"; ui.lineEditDvips->setText( location ); } } void ConfigDialog::browseBibtex() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" %.aux"; ui.lineEditBibtex->setText( location ); } } void ConfigDialog::browseMakeindex() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" %.idx"; ui.lineEditMakeindex->setText( location ); } } void ConfigDialog::browseDviviewer() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" %.dvi"; ui.lineEditDviviewer->setText( location ); } } void ConfigDialog::browsePsviewer() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" %.ps"; ui.lineEditPsviewer->setText( location ); } } void ConfigDialog::browsePdflatex() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" -interaction=nonstopmode %.tex"; ui.lineEditPdflatex->setText( location ); } } void ConfigDialog::browseDvipdfm() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" %.dvi"; ui.lineEditDvipdfm->setText( location ); } } void ConfigDialog::browsePs2pdf() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" %.ps"; ui.lineEditPs2pdf->setText( location ); } } void ConfigDialog::browsePdfviewer() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" %.pdf"; ui.lineEditPdfviewer->setText( location ); } } void ConfigDialog::browseMetapost() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\" --interaction nonstopmode "; ui.lineEditMetapost->setText( location ); } } void ConfigDialog::browseGhostscript() { QString location=QFileDialog::getOpenFileName(this,tr("Browse program"),QDir::rootPath(),"Program (*)",0,QFileDialog::DontResolveSymlinks); if ( !location.isEmpty() ) { location.replace(QString("\\"),QString("/")); location="\""+location+"\""; ui.lineEditGhostscript->setText( location ); } }