⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saveformastemplate.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the Qt Designer of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "saveformastemplate.h"#include "qdesigner_settings.h"#include <QtCore/QFile>#include <QtGui/QFileDialog>#include <QtGui/QMessageBox>#include <QtDesigner/abstractformwindow.h>SaveFormAsTemplate::SaveFormAsTemplate(QDesignerFormWindowInterface *formWindow, QWidget *parent)    : QDialog(parent, Qt::Sheet),      m_formWindow(formWindow){    ui.setupUi(this);    ui.templateNameEdit->setText(formWindow->mainContainer()->objectName());    ui.templateNameEdit->selectAll();    ui.templateNameEdit->setFocus();    QDesignerSettings settings;    QStringList paths = settings.formTemplatePaths();    ui.categoryCombo->addItems(paths);    ui.categoryCombo->addItem(tr("Add path..."));    m_addPathIndex = ui.categoryCombo->count() - 1;    connect(ui.templateNameEdit, SIGNAL(textChanged(QString)),            this, SLOT(updateOKButton(QString)));    connect(ui.categoryCombo, SIGNAL(activated(int)), this, SLOT(checkToAddPath(int)));}SaveFormAsTemplate::~SaveFormAsTemplate(){}void SaveFormAsTemplate::on_okButton_clicked(){    QString templateFileName = ui.categoryCombo->currentText() + QLatin1Char('/') + ui.templateNameEdit->text();    if (!templateFileName.endsWith(QLatin1String(".ui")))        templateFileName.append(QLatin1String(".ui"));    QFile file(templateFileName);    if (file.exists()) {        if (QMessageBox::information(m_formWindow, tr("Template Exists"),                                 tr("A template with the name %1 already exits\n"                                    "Do you want overwrite the template?").arg(ui.templateNameEdit->text()),                                 tr("Overwrite Template"), tr("Cancel"), QString(), 1, 1) == 1) {            return;        }    }    while (!file.open(QFile::WriteOnly)) {        if (QMessageBox::information(m_formWindow, tr("Open Error"),            tr("There was an error opening template %1 for writing. Reason: %2").arg(ui.templateNameEdit->text()).arg(file.errorString()),            tr("Try again"), tr("Cancel"), QString(), 0, 1) == 1) {            return;        }    }    QByteArray ba = m_formWindow->contents().toUtf8();    while (file.write(ba) != ba.size()) {        if (QMessageBox::information(m_formWindow, tr("Write Error"),            tr("There was an error writing the template %1 to disk. Reason: %2").arg(ui.templateNameEdit->text()).arg(file.errorString()),            tr("Try again"), tr("Cancel"), QString(), 0, 1) == 1) {                file.close();                file.remove();                return;            }            file.reset();    }    // update the list of places too...    QStringList sl;    for (int i = 0; i < m_addPathIndex; ++i)        sl << ui.categoryCombo->itemText(i);    QDesignerSettings().setFormTemplatePaths(sl);    accept();}void SaveFormAsTemplate::on_cancelButton_clicked(){    reject();}void SaveFormAsTemplate::updateOKButton(const QString &str){    ui.okButton->setEnabled(!str.isEmpty());}void SaveFormAsTemplate::checkToAddPath(int itemIndex){    if (itemIndex != m_addPathIndex)        return;    QString dir = QFileDialog::getExistingDirectory(this,                                                    tr("Pick a directory to save templates in"));    if (dir.isEmpty()) {        ui.categoryCombo->setCurrentIndex(0);        return;    }    ui.categoryCombo->insertItem(m_addPathIndex, dir);    ui.categoryCombo->setCurrentIndex(m_addPathIndex);    ++m_addPathIndex;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -