diff options
Diffstat (limited to 'apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp')
-rw-r--r-- | apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp deleted file mode 100644 index 58c5f73..0000000 --- a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp +++ /dev/null @@ -1,221 +0,0 @@ -//--------------------------------------------------------------------------- -#include <vcl\vcl.h> -#pragma hdrstop - -#include "bookmarkfrm.h" -#include <swconfig.h> -#include <dirent.h> -#include "mainfrm.h" -#include "newbmfilefrm.h" -#include <io.h> -#include <dir.h> - -//--------------------------------------------------------------------------- -#pragma resource "*.dfm" -TBookmarksfrm *Bookmarksfrm; -//--------------------------------------------------------------------------- -__fastcall TBookmarksfrm::TBookmarksfrm(TComponent* Owner) - : TForm(Owner) -{ - SWConfig *bookmarks; - SectionMap::iterator sit; - ConfigEntMap::iterator eit; - TTreeNode *node; - - DIR *dir; - struct dirent *ent; - string conffile; - bmdir = ""; - - bmtree->Items->Clear(); - - if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) - bmdir = ((eit = (*sit).second.find("Directory")) != (*sit).second.end()) ? (*eit).second : (string)""; - -// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree -// -------------------------------------------------------------------------- - - if (bmdir == "") - bmdir = "./bookmarks/"; - - if (access(bmdir.c_str(), 0)) { // directory does not exist - _mkdir(bmdir.c_str()); - } - - conffile = bmdir + "personal.conf"; - bookmarks = new SWConfig(conffile.c_str()); - if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) { - if ((eit = (*sit).second.begin()) != (*sit).second.end()) { - node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str()))); - AddSection(bookmarks, bmtree, node, (*eit).first.c_str()); - } - } - else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str()))); - delete bookmarks; -// -------------------------------------------------------------------------- - -// Add all other bookmark files --------------------------------------------- - if (dir = opendir(bmdir.c_str())) { - rewinddir(dir); - while ((ent = readdir(dir))) { - if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) { - conffile = bmdir; - conffile += ent->d_name; - bookmarks = new SWConfig(conffile.c_str()); - if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) { - if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite - node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str()))); - AddSection(bookmarks, bmtree, node, (*eit).first.c_str()); - } - } - delete bookmarks; - } - } - closedir(dir); - } -} - - -__fastcall TBookmarksfrm::~TBookmarksfrm() { - list <String *>::iterator it; - - SaveBookmarks(); - - for (it = bmfiles.begin(); it != bmfiles.end(); it++) - delete *it; -} - - -//--------------------------------------------------------------------------- - -void TBookmarksfrm::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section) -{ - SectionMap::iterator sit; - ConfigEntMap::iterator eit; - TTreeNode *node; - - if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) { - for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) { - node = tree->Items->AddChild(parent, (*eit).second.c_str()); - AddSection(config, tree, node, (*eit).first.c_str()); - } - } -} - - -void __fastcall TBookmarksfrm::bmtreeDragDrop(TObject *Sender, TObject *Source, - int X, int Y) -{ - bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst); -} -//--------------------------------------------------------------------------- -void __fastcall TBookmarksfrm::bmtreeDragOver(TObject *Sender, TObject *Source, - int X, int Y, TDragState State, bool &Accept) -{ - Accept = false; - - if (String(Source->ClassName()) == "TTreeView") { - if (Source == bmtree) { - if (bmtree->Selected->Data) { - if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) { - Accept = true; - } - } - else Accept = true; - } - } -} -//--------------------------------------------------------------------------- -void __fastcall TBookmarksfrm::bmtreeDblClick(TObject *Sender) -{ - if (!bmtree->Selected->getFirstChild()) { - Form1->DefaultVSKey = bmtree->Selected->Text.c_str(); - Form1->TextKeyChanged(); - } - -} -//--------------------------------------------------------------------------- -void __fastcall TBookmarksfrm::AddChild1Click(TObject *Sender) -{ - bmtree->Selected->Expand(false); - bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText(); -} -//--------------------------------------------------------------------------- -void __fastcall TBookmarksfrm::Delete1Click(TObject *Sender) -{ - if (bmtree->Selected->Data) { - if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) { - bmtree->Selected->Delete(); - } - } - else bmtree->Selected->Delete(); -} -//--------------------------------------------------------------------------- -void __fastcall TBookmarksfrm::Rename1Click(TObject *Sender) -{ - bmtree->Selected->EditText(); -} -//--------------------------------------------------------------------------- - -void TBookmarksfrm::SaveBookmarks() -{ - TTreeNode *tree = 0; - SWConfig *bmconf; - ConfigEntMap emap; - SectionMap::iterator sit; - char buf[15]; - bool personal, other; - list <String *>::iterator it; - string persfile; - - if (bmtree->Items->Count) - tree = bmtree->Items->Item[0]; - - if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) { - personal = (atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str())) ? true:false; - other = (atoi((*(*sit).second.find("AutoSaveOther")).second.c_str())) ? true:false; - } - - persfile = bmdir + "personal.conf"; - for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted - if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other)) - unlink((*it)->c_str()); - } - - for (;tree;tree = tree->getNextSibling()) { - if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) { - bmconf = new SWConfig(((String *)tree->Data)->c_str()); - emap = bmconf->Sections["ROOT"]; - sprintf(buf, "branch%d", tree->AbsoluteIndex); - emap.erase(buf); emap.insert(ConfigEntMap::value_type(buf, tree->Text.c_str())); - AddSectionToConf(bmconf, buf, tree); - bmconf->Sections["ROOT"] = emap; - bmconf->Save(); - delete bmconf; - } - } -} - - -void TBookmarksfrm::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree) { - ConfigEntMap sit; - char buf[15]; - - if (tree = tree->getFirstChild()) { - sit = config->Sections[section.c_str()]; - for (; tree; tree = tree->getNextSibling()) { - sprintf(buf, "branch%d", tree->AbsoluteIndex); - sit.erase(buf); sit.insert(ConfigEntMap::value_type(buf, tree->Text.c_str())); - AddSectionToConf(config, buf, tree); - } - config->Sections[section.c_str()] = sit; - } -} - -void __fastcall TBookmarksfrm::NewBookmarkFile1Click(TObject *Sender) -{ - if (NewBMfrm->ShowModal() == mrOk) { - bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf")))); - } -} -//---------------------------------------------------------------------------
\ No newline at end of file |