当前位置: 首页>>代码示例>>C++>>正文


C++ GlobalParameters类代码示例

本文整理汇总了C++中GlobalParameters的典型用法代码示例。如果您正苦于以下问题:C++ GlobalParameters类的具体用法?C++ GlobalParameters怎么用?C++ GlobalParameters使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了GlobalParameters类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: decrypt

// Расшифровка аттача на диске и в памяти
void Attach::decrypt(unsigned int area)
{
    // Если аттач не зашифрован, и происходит расшифровка, значит есть какая-то ошибка в логике выше
    if(getField("crypt")!="1")
        criticalError("Attach::decrypt() : Cant decrypt unencrypted attach.");

    // Расшифровывается файл
    if(area & areaFile)
        if(getField("type")=="file")
            CryptService::decryptFile(globalParameters.getCryptKey(), getFullInnerFileName());

    // Расшифровывается содержимое файла в памяти, если таковое есть
    if(area & areaMemory)
        if(liteFlag==false && fileContent.length()>0)
            fileContent=CryptService::decryptByteArray(globalParameters.getCryptKey(), fileContent);

    // Расшифровываются поля, которые подлежат шифрованию
    foreach( QString fieldName, fieldCryptedList() ) {
        // У аттача с типом file не должно быть обращений к полю link (оно не должно использоваться)
        if(getField("type")=="file" && fieldName=="link")
            continue;

        // Если поле с указанным именем существует и содержит данные, оно расшифровывается из исходных зашифрованных данных
        if(getField(fieldName).length()>0)
            setFieldSource(fieldName, CryptService::decryptString( globalParameters.getCryptKey(), fields[fieldName]));
    }

    // Устанавливается флаг, что запись не зашифрована
    setField("crypt", ""); // Отсутсвие значения предпочтительней, так как тогда в XML-данные не будет попадать атрибут crypt="0"
}
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:31,代码来源:Attach.cpp

示例2: onClickedEditMyTetraConfigFile

void AppConfigPage_Misc::onClickedEditMyTetraConfigFile(void)
{
  // Сбрасываются в файл конфига все возможные изменения, которые, возможно еще не были записаны
  mytetraConfig.sync();

  editConfigFile( globalParameters.getWorkDirectory()+"/conf.ini", 0.8 );
}
开发者ID:xintrea,项目名称:mytetra_dev,代码行数:7,代码来源:AppConfigPage_Misc.cpp

示例3: getField

// Получение значения поля
// Метод возвращает расшифрованные данные, если запись была зашифрована
QString Attach::getField(QString name) const
{
    // Если имя поля недопустимо
    if(fieldAvailableList().contains(name)==false)
        criticalError("Attach::getField() : get unavailable field "+name);


    // ------------------------------------------
    // Проверки и действия для разных типов полей
    // ------------------------------------------

    // Если запрашивается линк на файл
    if(name=="link")
        if(fields["type"]!="link") // И тип аттача не является линком
            criticalError("Attach::getField() : Can't get link from non-link attach.");


    // -----------------------
    // Получение значения поля
    // -----------------------

    // Если запись зашифрована, но ключ не установлен (т.е. человек не вводил пароль)
    // то расшифровка невозможна
    if(fieldCryptedList().contains(name))
        if(fields.contains("crypt"))
            if(fields["crypt"]=="1")
                if(globalParameters.getCryptKey().length()==0)
                    return QString();

    bool isCrypt=false;

    // Если имя поля принадлежит списку полей, которые могут шифроваться
    // и в наборе полей есть поле crypt
    // и поле crypt установлено в 1
    // и запрашиваемое поле не пустое (пустые данные невозможно расшифровать)
    if(fieldCryptedList().contains(name))
        if(fields.contains("crypt"))
            if(fields["crypt"]=="1")
                if(fields[name].length()>0)
                    isCrypt=true;

    // Если поле не подлежит шифрованию
    if(isCrypt==false)
        return fields[name]; // Возвращается значение поля
    else
        return CryptService::decryptString(globalParameters.getCryptKey(), fields[name]); // Поле расшифровывается
}
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:49,代码来源:Attach.cpp

示例4: update_version_process

void AppConfig::update_version_process(void)
{
 QString configFileName=globalParameters.getWorkDirectory()+"/conf.ini";

 AppConfigUpdater updater;
 updater.set_config_file(configFileName);

 int fromVersion=get_config_version();

 // Эта строка компилируется нормально, сделать на ее основе список указателей на функцию
 // std::function< QStringList(AppConfig&, bool) > pFunction=&AppConfig::get_parameter_table_1;

 // Перечень функций, выдающих список параметров для конкретной версии конфига
 QList< std::function< QStringList(AppConfig&, bool) > > parameterFunctions;

 parameterFunctions << NULL; // Исторически счет версий идет с 1, поэтому, чтобы не запутаться, создается пустой нуливой элемент
 parameterFunctions << &AppConfig::get_parameter_table_1;
 parameterFunctions << &AppConfig::get_parameter_table_2;
 parameterFunctions << &AppConfig::get_parameter_table_3;
 parameterFunctions << &AppConfig::get_parameter_table_4;
 parameterFunctions << &AppConfig::get_parameter_table_5;
 parameterFunctions << &AppConfig::get_parameter_table_6;
 parameterFunctions << &AppConfig::get_parameter_table_7;
 parameterFunctions << &AppConfig::get_parameter_table_8;
 parameterFunctions << &AppConfig::get_parameter_table_9;
 parameterFunctions << &AppConfig::get_parameter_table_10;
 parameterFunctions << &AppConfig::get_parameter_table_11;
 parameterFunctions << &AppConfig::get_parameter_table_12;
 parameterFunctions << &AppConfig::get_parameter_table_13;
 parameterFunctions << &AppConfig::get_parameter_table_14;
 parameterFunctions << &AppConfig::get_parameter_table_15;
 parameterFunctions << &AppConfig::get_parameter_table_16;
 parameterFunctions << &AppConfig::get_parameter_table_17;
 parameterFunctions << &AppConfig::get_parameter_table_18;
 parameterFunctions << &AppConfig::get_parameter_table_19;
 parameterFunctions << &AppConfig::get_parameter_table_20;
 parameterFunctions << &AppConfig::get_parameter_table_21;
 parameterFunctions << &AppConfig::get_parameter_table_22;
 parameterFunctions << &AppConfig::get_parameter_table_23;
 parameterFunctions << &AppConfig::get_parameter_table_24;
 parameterFunctions << &AppConfig::get_parameter_table_25;
 parameterFunctions << &AppConfig::get_parameter_table_26;
 parameterFunctions << &AppConfig::get_parameter_table_27;
 parameterFunctions << &AppConfig::get_parameter_table_28;
 parameterFunctions << &AppConfig::get_parameter_table_29;
 parameterFunctions << &AppConfig::get_parameter_table_30;
 parameterFunctions << &AppConfig::get_parameter_table_31;
 parameterFunctions << &AppConfig::get_parameter_table_32;
 parameterFunctions << &AppConfig::get_parameter_table_33;
 parameterFunctions << &AppConfig::get_parameter_table_34;
 parameterFunctions << &AppConfig::get_parameter_table_35;

 for(int i=1; i<parameterFunctions.count()-1; ++i)
   if(fromVersion<=i)
   {
     // В вызове метода: *this - это объект, а true - это первый параметр метода. Именно так работает вызов метода для std::function
     updater.update_version(i, i+1, (parameterFunctions.at(i))(*this, true), (parameterFunctions.at(i+1))(*this, true) );
   }
}
开发者ID:xintrea,项目名称:mytetra_dev,代码行数:59,代码来源:AppConfig.cpp

示例5: edit_branch

void TreeScreen::edit_branch(void)
{
    qDebug() << "In edit_branch()";

    // Получение списка индексов QModelIndex выделенных элементов
    QModelIndexList selectitems=knowTreeView->selectionModel()->selectedIndexes();

// Если выбрано более одной ветки
    if(selectitems.size()>1) {
        QMessageBox messageBox(this);
        messageBox.setWindowTitle(tr("Unavailable action"));
        messageBox.setText(tr("You've selected ")+QString::number(selectitems.size())+tr(" items.\nPlease select single item for enabling edit operation."));
        messageBox.addButton(tr("OK"), QMessageBox::AcceptRole);
        messageBox.exec();
        return;
    }

// Получение индекса выделенной строки
    QModelIndex index=getCurrentItemIndex();

// Получение ссылки на узел, который соответствует выделенной строке
    TreeItem *item=knowTreeModel->getItem(index);

// Если ветка зашифрована и пароль не был введен
    if(item->getField("crypt")=="1" &&
            globalParameters.getCryptKey().length()==0)
        return;

// Получение имени ветки
    QString name=item->getField("name");

// Создается окно ввода данных
    bool ok;
    QString newname = QInputDialog::getText(this,
                                            tr("Edit item name"),
                                            tr("Item name:"),
                                            QLineEdit::Normal,
                                            name,
                                            &ok);

// Если была нажата отмена
    if (!( ok && !newname.isEmpty() )) return;

    find_object<MainWindow>("mainwindow")->setDisabled(true);

    item->setField("name", newname);

// Сохранение дерева веток
    find_object<TreeScreen>("treeScreen")->saveKnowTree();

    find_object<MainWindow>("mainwindow")->setEnabled(true);
}
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:52,代码来源:TreeScreen.cpp

示例6: encrypt

// Шифрация аттача на диске и в памяти
void Attach::encrypt(unsigned int area)
{
    // В этом методе важна последовательность действий,
    // чтобы не получилась ситуации, когда часть данных зашифрована,
    // а другая пытается их использовать, а флаг шифрации еще не установлен

    // Если аттач уже зашифрован, значит есть какая-то ошибка в логике выше
    if(getField("crypt")=="1")
        criticalError("Attach::encrypt() : Cant encrypt already encrypted attach.");


    // Шифруется файл
    if(area & areaFile)
        if(getField("type")=="file")
            CryptService::encryptFile(globalParameters.getCryptKey(), getFullInnerFileName());

    // Шифруется содержимое файла в памяти, если таковое есть
    if(area & areaMemory)
        if(liteFlag==false && fileContent.length()>0)
            fileContent=CryptService::encryptByteArray(globalParameters.getCryptKey(), fileContent);


    // Шифруются поля, которые подлежат шифрованию
    foreach( QString fieldName, fieldCryptedList() ) {
        // У аттача с типом file не должно быть обращений к полю link (оно не должно использоваться)
        if(getField("type")=="file" && fieldName=="link")
            continue;

        // Если поле с указанным именем существует
        if(getField(fieldName).length()>0)
            setFieldSource(fieldName, CryptService::encryptString( globalParameters.getCryptKey(), getField(fieldName)));
    }

    // Устанавливается флаг, что запись зашифрована
    setField("crypt", "1");
}
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:37,代码来源:Attach.cpp

示例7: init

void AppConfig::init(void)
{
 // Создается имя файла конфигурации
 QString configFileName=globalParameters.getWorkDirectory()+"/conf.ini";

 // Проверяется, есть ли файл конфигурации
 QFile confFile(configFileName);
 if(!confFile.exists())
  criticalError("File "+configFileName+" not found.");

 // Создается указатель на объект хранилища конфигурации
 conf=new QSettings(configFileName, QSettings::IniFormat);

 update_version_process();

 sync();

 is_init_flag=true;
}
开发者ID:xintrea,项目名称:mytetra_dev,代码行数:19,代码来源:AppConfig.cpp

示例8: data

QVariant TreeModel::data(const QModelIndex &index, int role) const
{
    // Если индекс невалиден, возвращается несуществующий элемент
    if(!index.isValid())return QVariant();

    // Если запрашивается окраска текста элемента
    if(role==Qt::ForegroundRole)
    {
     TreeItem *item = getItem(index);

     if(item->recordtableGetRowCount()>0)
      return Qt::black;// Если узел содержит таблицу конечных записей
     else
      return Qt::darkGray; // Обычная ветка
    }

    // Если запрашивается содержимое текста элемента
    if(role==Qt::DisplayRole || role== Qt::EditRole)
    {
     TreeItem *item = getItem(index);

     return QVariant( item->getField("dynamicname") ); // Запрашивается строка имени с количеством элементов
    }

    // Если запрашиваются элементы оформления
    if(role == Qt::DecorationRole)
    {
     TreeItem *item = getItem(index);

     // Если ветка зашифрована
     if(item->getField("crypt")=="1")
      {
       // Если пароль не введен, доступа к ветке нет
       if(globalParameters.getCryptKey().length()==0)
        return QIcon(":/resource/pic/branch_closed.svg");
       else
        return QIcon(":/resource/pic/branch_opened.svg");
      }
    }


    return QVariant();
}
开发者ID:JonhenHS,项目名称:mytetra_dev,代码行数:43,代码来源:TreeModel.cpp

示例9:

QStringList AppConfig::get_parameter_table_20(bool withEndSignature)
{
  // Таблица параметров
  // Имя, Тип, Значение на случай когда в конфиге параметра прочему-то нет
  QStringList table;

  // Старые параметры, аналогичные версии 19
  table << get_parameter_table_19(false);

  // Новые параметры
  if(globalParameters.getTargetOs()=="android")
    table << "hideEditorTools" << "QString" << "italic,underline,monospace,alignleft,aligncenter,alignright,alignwidth,numericlist,dotlist,indentplus,indentminus,showformatting,showhtml,fontcolor,expand_edit_area,save,createtable,table_add_row,table_remove_row,table_add_col,table_remove_col,table_merge_cells,table_split_cell"; // В Андроид прячутся инструменты сложного форматирования текста
  else
    table << "hideEditorTools" << "QString" << ""; // На десктопе скрываемых кнопок редактора нет

  if(withEndSignature)
    table << "0" << "0" << "0";

  return table;
}
开发者ID:xintrea,项目名称:mytetra_dev,代码行数:20,代码来源:AppConfig.cpp

示例10: onBackClick

// Возвращение к дереву разделов в мобильном интерфейсе
void RecordTableScreen::onBackClick(void)
{
  globalParameters.getWindowSwitcher()->switchFromRecordtableToTree();
}
开发者ID:xintrea,项目名称:mytetra_dev,代码行数:5,代码来源:RecordTableScreen.cpp

示例11: readFromConfigFile

 int HOGPlanner::readFromConfigFile(std::string& file)
 {
     globalParameters.configModels.clear();
     return globalParameters.loadFromFile(file);
 }
开发者ID:Nawter,项目名称:GPUHOG,代码行数:5,代码来源:HOGPlanner.cpp

示例12: del_branch

// Удаление выбранных веток, вызывается при выборе соотвествущей
// кнопки или пункта меню
void TreeScreen::del_branch(QString mode)
{
    qDebug() << "In del_branch()";

// На время удаления блокируется главное окно
    find_object<MainWindow>("mainwindow")->setDisabled(true);
    find_object<MainWindow>("mainwindow")->blockSignals(true);


// Получение списка индексов QModelIndex выделенных элементов
    QModelIndexList selectitems=knowTreeView->selectionModel()->selectedIndexes();

// Список имен веток, которые нужно удалить
    QStringList branches_name;
    for(int i = 0; i < selectitems.size(); ++i) {
        QModelIndex index=selectitems.at(i);
        TreeItem *item=knowTreeModel->getItem(index);
        branches_name << item->getField("name");
    }


// Если системный пароль не установлен, зашифрованные ветки удалять нельзя
    if(globalParameters.getCryptKey().size()==0) {
        bool disableFlag=false;

        // Перебираются удаляемые ветки
        for(int i = 0; i < selectitems.size(); ++i) {
            QModelIndex index=selectitems.at(i);
            TreeItem *item=knowTreeModel->getItem(index);

            // Если у ветки установлен флаг шифрования
            if(item->getField("crypt")=="1") {
                disableFlag=true;
                break;
            }

            // Проверяется наличие флага шифрования у всех подветок
            QList<QStringList> cryptFlagsList=item->getAllChildrenPathAsField("crypt");
            foreach(QStringList cryptFlags, cryptFlagsList)
            if(cryptFlags.contains("1")) {
                disableFlag=true;
                break;
            }

            if(disableFlag)
                break;

        } // Закрылся цикл перебора всех выделенных для удаления веток


        // Если в какой-то ветке обнаружено шифрование
        if(disableFlag) {
            QMessageBox messageBox(this);
            messageBox.setWindowTitle(tr("Unavailable action"));
            messageBox.setText(tr("In your selected data found closed item. Action canceled."));
            messageBox.addButton(tr("OK"), QMessageBox::AcceptRole);
            messageBox.exec();

            // Разблокируется главное окно
            find_object<MainWindow>("mainwindow")->setEnabled(true);
            find_object<MainWindow>("mainwindow")->blockSignals(false);

            return;
        }

    } // Закрылось условие что системный пароль не установлен
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:68,代码来源:TreeScreen.cpp

示例13: update_version_process

void AppConfig::update_version_process(void)
{
    QString configFileName=globalParameters.getWorkDirectory()+"/conf.ini";

    AppConfigUpdater updater;
    updater.set_config_file(configFileName);

    int fromVersion=get_config_version();

// Последняя версия на данный момент - 26
    if(fromVersion<=1)
        updater.update_version(1,  2,  get_parameter_table_1(),  get_parameter_table_2());
    if(fromVersion<=2)
        updater.update_version(2,  3,  get_parameter_table_2(),  get_parameter_table_3());
    if(fromVersion<=3)
        updater.update_version(3,  4,  get_parameter_table_3(),  get_parameter_table_4());
    if(fromVersion<=4)
        updater.update_version(4,  5,  get_parameter_table_4(),  get_parameter_table_5());
    if(fromVersion<=5)
        updater.update_version(5,  6,  get_parameter_table_5(),  get_parameter_table_6());
    if(fromVersion<=6)
        updater.update_version(6,  7,  get_parameter_table_6(),  get_parameter_table_7());
    if(fromVersion<=7)
        updater.update_version(7,  8,  get_parameter_table_7(),  get_parameter_table_8());
    if(fromVersion<=8)
        updater.update_version(8,  9,  get_parameter_table_8(),  get_parameter_table_9());
    if(fromVersion<=9)
        updater.update_version(9,  10, get_parameter_table_9(),  get_parameter_table_10());
    if(fromVersion<=10)
        updater.update_version(10, 11, get_parameter_table_10(), get_parameter_table_11());
    if(fromVersion<=11)
        updater.update_version(11, 12, get_parameter_table_11(), get_parameter_table_12());
    if(fromVersion<=12)
        updater.update_version(12, 13, get_parameter_table_12(), get_parameter_table_13());
    if(fromVersion<=13)
        updater.update_version(13, 14, get_parameter_table_13(), get_parameter_table_14());
    if(fromVersion<=14)
        updater.update_version(14, 15, get_parameter_table_14(), get_parameter_table_15());
    if(fromVersion<=15)
        updater.update_version(15, 16, get_parameter_table_15(), get_parameter_table_16());
    if(fromVersion<=16)
        updater.update_version(16, 17, get_parameter_table_16(), get_parameter_table_17());
    if(fromVersion<=17)
        updater.update_version(17, 18, get_parameter_table_17(), get_parameter_table_18());
    if(fromVersion<=18)
        updater.update_version(18, 19, get_parameter_table_18(), get_parameter_table_19());
    if(fromVersion<=19)
        updater.update_version(19, 20, get_parameter_table_19(), get_parameter_table_20());
    if(fromVersion<=20)
        updater.update_version(20, 21, get_parameter_table_20(), get_parameter_table_21());
    if(fromVersion<=21)
        updater.update_version(21, 22, get_parameter_table_21(), get_parameter_table_22());
    if(fromVersion<=22)
        updater.update_version(22, 23, get_parameter_table_22(), get_parameter_table_23());
    if(fromVersion<=23)
        updater.update_version(23, 24, get_parameter_table_23(), get_parameter_table_24());
    if(fromVersion<=24)
        updater.update_version(24, 25, get_parameter_table_24(), get_parameter_table_25());
    if(fromVersion<=25)
        updater.update_version(25, 26, get_parameter_table_25(), get_parameter_table_26());
}
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:61,代码来源:AppConfig.cpp

示例14: on_customContextMenuRequested

// Открытие контекстного меню в дереве разделов
void TreeScreen::on_customContextMenuRequested(const QPoint &pos)
{
    qDebug() << "In TreeScreen::on_customContextMenuRequested";

    // Конструирование меню
    QMenu menu(this);
    menu.addAction(actionList["insSubbranch"]);
    menu.addAction(actionList["insBranch"]);
    menu.addAction(actionList["editBranch"]);
    menu.addAction(actionList["delBranch"]);
    menu.addSeparator();
    menu.addAction(actionList["expandAllSubbranch"]);
    menu.addAction(actionList["collapseAllSubbranch"]);
    menu.addSeparator();
    menu.addAction(actionList["moveUpBranch"]);
    menu.addAction(actionList["moveDnBranch"]);
    menu.addSeparator();
    menu.addAction(actionList["cutBranch"]);
    menu.addAction(actionList["copyBranch"]);
    menu.addAction(actionList["pasteBranch"]);
    menu.addAction(actionList["pasteSubbranch"]);
    menu.addSeparator();
    menu.addAction(actionList["encryptBranch"]);
    menu.addAction(actionList["decryptBranch"]);

    // Получение индекса выделенной ветки
    QModelIndex index=getCurrentItemIndex();

    // Выясняется, зашифрована ли ветка или нет
    QString cryptFlag=knowTreeModel->getItem(index)->getField("crypt");

    // Выясняется, зашифрована ли родительская ветка
    QString parentCryptFlag=knowTreeModel->getItem(index)->parent()->getField("crypt");

    // Если ветка не зашифрована
    // Или ветка зашифрована, но пароль успешно введен
    if(cryptFlag!="1" ||
            (cryptFlag=="1" && globalParameters.getCryptKey().length()>0)) {

        // Если в буфере есть ветки, соответсвующие пункты становятся активными
        bool isBranch=false;
        const QMimeData *mimeData=QApplication::clipboard()->mimeData();
        if(mimeData!=NULL)
            if(mimeData->hasFormat("mytetra/branch"))
                isBranch=true;

        if( isBranch ) {
            actionList["pasteBranch"]->setEnabled(true);
            actionList["pasteSubbranch"]->setEnabled(true);
        } else {
            actionList["pasteBranch"]->setEnabled(false);
            actionList["pasteSubbranch"]->setEnabled(false);
        }


        // ----------------------------
        // Подсветка пунктов шифрования
        // ----------------------------

        // Если ветка незашифрована
        if(cryptFlag!="1") {
            // Шифровать можно
            // Дешифровать нельзя
            actionList["encryptBranch"]->setEnabled(true);
            actionList["decryptBranch"]->setEnabled(false);
        } else {
            // Ветка зашифрована

            // Шифровать нельзя
            actionList["encryptBranch"]->setEnabled(false);

            // Дешифровать можно только если верхнележащая ветка незашифрована
            if(parentCryptFlag!="1")
                actionList["decryptBranch"]->setEnabled(true);
            else
                actionList["decryptBranch"]->setEnabled(false);
        }
    }


    // Включение отображения меню на экране
    // menu.exec(event->globalPos());
    menu.exec(knowTreeView->viewport()->mapToGlobal(pos));
}
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:85,代码来源:TreeScreen.cpp

示例15: initMetaEditorAtClickToRecord

void RecordTableController::initMetaEditorAtClickToRecord(const int pos)
{
    // Внимание! Наверно, всю эту логику следует перенести в MetaEditor. А здесь только получить данные из таблицы

    // Выясняется указатель на объект редактирования текста записи
    MetaEditor *edView=find_object<MetaEditor>("editorScreen");

    // Выясняется ссылка на таблицу конечных данных
    RecordTableData *table=recordSourceModel->getTableData();

    // В таблице конечных данных запоминается какая запись была выбрана
    // чтобы затем при выборе этой же подветки засветка автоматически
    // установилась на последнюю рабочую запись
    table->setWorkPos( pos );


    // Устанавливается функция обратного вызова для записи данных
    edView->set_save_callback(table->editorSaveCallback);

    // Сохраняется текст и картинки в окне редактирования
    find_object<MainWindow>("mainwindow")->saveTextarea();


    // Для новой выбраной записи выясняется директория и основной файл
    QString currentDir =table->getField("dir", pos);
    QString currentFile=table->getField("file", pos);
    QString fullDir=mytetraConfig.get_tetradir()+"/base/"+currentDir;
    QString fullFileName=fullDir+"/"+currentFile;
    qDebug() << " File " << fullFileName << "\n";

    // Если в окне содержимого записи уже находится выбираемая запись
    if(edView->get_work_directory()==fullDir &&
            edView->get_file_name()==currentFile) {
        globalParameters.getWindowSwitcher()->switchFromRecordtableToRecord();
        return;
    }

    // Перед открытием редактора происходит попытка получения текста записи
    // Этот вызов создаст файл с текстом записи, если он еще не создан (подумать, переделать)
    table->getText(pos);

    // Редактору задаются имя файла и директории
    // И дается команда загрузки файла
    edView->set_work_directory(fullDir);
    edView->set_file_name(currentFile);

    // Если идет работа с зашифрованной записью
    // И если имя директории или имя файла пусты, то это означает что
    // запись не была расшифрована, и редактор должен просто показывать пустой текст
    // ничего не сохранять и не считывать
    qDebug() << "RecordTableView::onClickToRecord() : id " << table->getField("id", pos);
    qDebug() << "RecordTableView::onClickToRecord() : name " << table->getField("name", pos);
    qDebug() << "RecordTableView::onClickToRecord() : crypt " << table->getField("crypt", pos);
    if(table->getField("crypt", pos)=="1")
        if(fullDir.length()==0 || currentFile.length()==0)
            edView->setDirFileEmptyReaction(MetaEditor::DIRFILEEMPTY_REACTION_SUPPRESS_ERROR);

    // В редактор заносится информация, идет ли работа с зашифрованным текстом
    edView->setMiscField("crypt", table->getField("crypt", pos));

    // В редакторе устанавливается функция обратного вызова для чтения данных
    edView->set_load_callback(table->editorLoadCallback);

    edView->load_textarea();
    // edView->set_textarea(table->get_text(index.row()));

    // Заполняются прочие инфо-поля
    edView->setName  ( table->getField("name", pos) );
    edView->setAuthor( table->getField("author", pos) );
    edView->setUrl   ( table->getField("url", pos) );
    edView->setTags  ( table->getField("tags", pos) );

    QString id=table->getField("id", pos);
    edView->setMiscField("id", id);

    edView->setMiscField( "title", table->getField("name", pos) );

    // Устанавливается путь до ветки в которой лежит запись (в виде названий веток)
    QString path=qobject_cast<RecordTableScreen *>(parent())->getTreePath();

    // В мобильном интерфейсе редактор должен показывать путь до записи
    if(mytetraConfig.getInterfaceMode()=="mobile")
        edView->setTreePath( path );

    // В редакторе восстанавливается позиция курсора и прокрутки если это необходимо
    if(mytetraConfig.getRememberCursorAtOrdinarySelection()) {
        edView->setCursorPosition( walkHistory.getCursorPosition(id) );
        edView->setScrollBarPosition( walkHistory.getScrollBarPosition(id) );
    }

    // Обновление иконки аттачей
    if( table->getRecord(pos)->getAttachTablePointer()->size()==0 )
        edView->toAttach->setIcon( edView->iconAttachNotExists ); // Если нет приаттаченных файлов
    else
        edView->toAttach->setIcon( edView->iconAttachExists ); // Есть приаттаченные файлы
}
开发者ID:beimprovised,项目名称:mytetra_webengine,代码行数:96,代码来源:RecordTableController.cpp


注:本文中的GlobalParameters类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。