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

📄 doxywizard.cpp

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
{  saveFile();  QString s = "doxygen " + configFileName;  system((const char*)s);    statusBar()->message("doxygen completed: "+ configFileName, messageTimeout );  hasChanged = FALSE;  refreshCaption();} void Wizard::quit(){  if (hasChanged)  {    switch( QMessageBox::warning( this, "DoxyWizard", "Quit and lose changes?\n",            "Yes", "No", 0, 0, 1 ))    {      case 0:         qApp->quit();        break;      case 1:        break;    }  }  else  {    qApp->quit();  }}void Wizard::changed(){  hasChanged = TRUE;  refreshCaption();}void Wizard::refreshCaption(){  QString s;  if (hasChanged) s=" *";  setCaption("Doxywizard - ["+configFileName+s+"]");}void Wizard::about(){  QMessageBox::about(this, "DoxyWizard",                      "<qt><center>A tool to create and edit configuration files "                      "that can be read by doxygen.</center><p>"                      "<center>Written by Dimitri van Heesch</center><p>"                      "<center>(c) 2000-2001</center></qt>"                    );}//----------------------------------------------------------------------ConfigFile::ConfigFile( QWidget *parent ) : QWidget( parent ){  m_dependencies = new QDict< QList<IInput> >(257);  m_dependencies->setAutoDelete(TRUE);  m_inputWidgets = new QDict< IInput >;  m_switches = new QDict< QObject >;    QVBoxLayout *layout = new QVBoxLayout( this );  // QTabWidget definition   QTabWidget *tab = new QTabWidget( this );  layout->addWidget( tab );  QListIterator<ConfigOption> options = Config::instance()->iterator();  PageWidget *page = 0;  ConfigOption *option = 0;  for (options.toFirst();(option=options.current());++options)  {    switch(option->kind())    {      case ConfigOption::O_Info:        if (page) page->addStretch(1);        page = new PageWidget( tab, option->name() );        QWhatsThis::add(page, option->docs().simplifyWhiteSpace() );        break;      case ConfigOption::O_String:        {          ASSERT(page!=0);          InputString::StringMode sm=InputString::StringFree;          switch(((ConfigString *)option)->widgetType())          {            case ConfigString::String: sm=InputString::StringFree; break;            case ConfigString::File:   sm=InputString::StringFile; break;            case ConfigString::Dir:    sm=InputString::StringDir;  break;          }          InputString *inputString = new InputString(                          option->name(),                        // name                         page,                                  // widget                         *((ConfigString *)option)->valueRef(), // variable                          sm                                     // type                       );           QWhatsThis::add(inputString, option->docs().simplifyWhiteSpace() );          connect(inputString,SIGNAL(changed()),SIGNAL(changed()));          m_inputWidgets->insert(option->name(),inputString);          addDependency(m_switches,option->dependsOn(),option->name());        }        break;      case ConfigOption::O_Enum:        {          ASSERT(page!=0);          InputString *inputString = new InputString(                          option->name(),                        // name                         page,                                  // widget                         *((ConfigEnum *)option)->valueRef(),   // variable                          InputString::StringFixed               // type                       );           QStrListIterator sli=((ConfigEnum *)option)->iterator();          for (sli.toFirst();sli.current();++sli)          {            inputString->addValue(sli.current());          }          QWhatsThis::add(inputString, option->docs().simplifyWhiteSpace() );          connect(inputString,SIGNAL(changed()),SIGNAL(changed()));          m_inputWidgets->insert(option->name(),inputString);          addDependency(m_switches,option->dependsOn(),option->name());        }        break;      case ConfigOption::O_List:        {          ASSERT(page!=0);          InputStrList::ListMode lm=InputStrList::ListString;          switch(((ConfigList *)option)->widgetType())          {            case ConfigList::String:     lm=InputStrList::ListString;  break;            case ConfigList::File:       lm=InputStrList::ListFile;    break;            case ConfigList::Dir:        lm=InputStrList::ListDir;     break;            case ConfigList::FileAndDir: lm=InputStrList::ListFileDir; break;          }          InputStrList *inputStrList = new InputStrList(                          option->name(),                         // name                          page,                                   // widget                          *((ConfigList *)option)->valueRef(),    // variable                          lm                                      // type                        );          QWhatsThis::add(inputStrList, option->docs().simplifyWhiteSpace() );          connect(inputStrList,SIGNAL(changed()),SIGNAL(changed()));          m_inputWidgets->insert(option->name(),inputStrList);          addDependency(m_switches,option->dependsOn(),option->name());        }        break;        break;      case ConfigOption::O_Bool:        {          ASSERT(page!=0);          InputBool *inputBool = new InputBool(                          option->name(),                         // name                          page,                                   // widget                          *((ConfigBool *)option)->valueRef()     // variable                        );          QWhatsThis::add(inputBool, option->docs().simplifyWhiteSpace() );          connect(inputBool,SIGNAL(changed()),SIGNAL(changed()));          m_inputWidgets->insert(option->name(),inputBool);          addDependency(m_switches,option->dependsOn(),option->name());        }        break;      case ConfigOption::O_Int:        {          ASSERT(page!=0);          InputInt *inputInt = new InputInt(                          option->name(),                         // name                          page,                                   // widget                          *((ConfigInt *)option)->valueRef(),     // variable                          ((ConfigInt *)option)->minVal(),        // min value                          ((ConfigInt *)option)->maxVal()         // max value                        );          QWhatsThis::add(inputInt, option->docs().simplifyWhiteSpace() );          connect(inputInt,SIGNAL(changed()),SIGNAL(changed()));          m_inputWidgets->insert(option->name(),inputInt);          addDependency(m_switches,option->dependsOn(),option->name());        }        break;    }   }  if (page) page->addStretch(1);  QDictIterator<QObject> di(*m_switches);  QObject *obj = 0;  for (di.toFirst();(obj=di.current());++di)  {    connect(obj,SIGNAL(toggle(const char *,bool)),SLOT(toggle(const char *,bool)));    // UGLY HACK: assumes each item depends on a boolean without checking!    emit toggle(di.currentKey(),((InputBool *)obj)->getState());  }  }ConfigFile::~ConfigFile(){  delete m_dependencies;  delete m_inputWidgets;  delete m_switches;}void ConfigFile::addDependency(QDict<QObject> *switches,                               const QCString &dep,const QCString &name){  if (!dep.isEmpty())  {    IInput *parent = m_inputWidgets->find(dep);    ASSERT(parent!=0);    IInput *child = m_inputWidgets->find(name);    ASSERT(child!=0);    if (switches->find(dep)==0)    {      switches->insert(dep,parent->qobject());    }    QList<IInput> *list = m_dependencies->find(dep);    if (list==0)    {      list = new QList<IInput>;      m_dependencies->insert(dep,list);    }    list->append(child);  }}void ConfigFile::toggle(const char *name,bool state){  QList<IInput> *inputs = m_dependencies->find(name);  ASSERT(inputs!=0);  IInput *input = inputs->first();  while (input)  {    input->setEnabled(state);    input = inputs->next();  }}void ConfigFile::init(){  QDictIterator<IInput> di(*m_inputWidgets);  IInput *input = 0;  for (di.toFirst();(input=di.current());++di)  {    input->init();  }  QDictIterator<QObject> dio(*m_switches);  QObject *obj = 0;  for (dio.toFirst();(obj=dio.current());++dio)  {    connect(obj,SIGNAL(toggle(const char *,bool)),SLOT(toggle(const char *,bool)));    // UGLY HACK: assumes each item depends on a boolean without checking!    emit toggle(dio.currentKey(),((InputBool *)obj)->getState());  }  }//----------------------------------------------------------------------int main(int argc,char **argv){   QApplication::setColorSpec( QApplication::NormalColor );  QApplication app(argc,argv);  Wizard wizard(argc,argv);  app.setMainWidget( &wizard );  wizard.show();    return app.exec();}

⌨️ 快捷键说明

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