Changeset 2949
- Timestamp:
- 04/27/06 12:32:26 (3 years ago)
- Files:
-
- hydranode/hncore/fileslist.cpp (modified) (7 diffs)
- hydranode/hncore/fileslist.h (modified) (1 diff)
- hydranode/hngui/librarytabs.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
hydranode/hncore/fileslist.cpp
r2942 r2949 65 65 } 66 66 67 std::string globTemp(Prefs::instance().read<std::string>("/Temp", "")); 68 std::set<std::string>::iterator it(m_tempDirs.begin()); 69 70 if (m_tempDirs.size()) { 71 Prefs::instance().write("/TempCnt", m_tempDirs.size() - 1); 72 uint32_t cnt = 0; 73 while (it != m_tempDirs.end()) { 74 if ((*it) == globTemp) { 75 ++it; 76 continue; 77 } 78 boost::format fmt("/Temp_%d"); 79 fmt % cnt++; 80 Prefs::instance().write(fmt.str(), *it++); 81 } 82 } 67 saveSettings(); 83 68 } 84 69 … … 116 101 117 102 scanSharedDir(path, recurse); 103 m_sharedDirs[path] = recurse; 104 saveSettings(); 118 105 119 106 } catch (std::exception &e) { … … 134 121 } 135 122 136 m_tempDirs.insert(path);137 138 123 if (scan) { 139 124 IOThread::Pauser pauser(IOThread::instance()); 140 125 scanTempDir(path); 141 126 } 127 m_tempDirs.insert(path); 128 saveSettings(); 129 142 130 } catch (std::exception &e) { 143 131 logError(boost::format("Unable to scan temp dir: %s") % e.what()); … … 160 148 // Scan through main map and locate entries which were in this 161 149 // directory, and destroy them. 150 std::string _path = path; 151 #ifdef WIN32 // workaround for boost_filesystem library issues 152 boost::algorithm::replace_all(_path, "/", "\\"); 153 #endif 154 162 155 for (SFIter i = m_list.begin(); i != m_list.end(); ++i) { 163 if ((*i)->getLocation() == path) {156 if ((*i)->getLocation() == _path) { 164 157 (*i)->destroy(); 165 158 } 166 159 } 160 saveSettings(); 167 161 } 168 162 … … 188 182 } 189 183 } 184 saveSettings(); 190 185 } 191 186 … … 236 231 } 237 232 } 238 // Write to prefs 239 boost::format key("/SharedDirs/Dir_%d"); 240 key % m_sharedDirs.size(); 241 Prefs::instance().write(key.str(), dir); 242 Prefs::instance().write( 243 "/SharedDirs/Count", m_sharedDirs.size() 244 ); 245 if (recurse) { 246 Prefs::instance().write(key.str() + "_recurse", true); 247 } 233 saveSettings(); 248 234 } 249 235 … … 541 527 } 542 528 529 void FilesList::saveSettings() const { 530 std::string incDir(Prefs::instance().read<std::string>("/Incoming","")); 531 #ifdef WIN32 // workaround for boost_filesystem library issues 532 boost::algorithm::replace_all(incDir, "\\", "/"); 533 #endif 534 if (m_sharedDirs.size()) { 535 Prefs::instance().write( 536 "/SharedDirs/Count", m_sharedDirs.size() - 1 537 ); 538 std::map<std::string, bool>::const_iterator it( 539 m_sharedDirs.begin() 540 ); 541 uint32_t cnt = 0; 542 while (it != m_sharedDirs.end()) { 543 if ((*it).first == incDir) { 544 ++it; 545 continue; 546 } 547 boost::format fmt("/SharedDirs/Dir_%d"); 548 fmt % cnt++; 549 Prefs::instance().write(fmt.str(), (*it).first); 550 if ((*it).second) { 551 Prefs::instance().write( 552 fmt.str() + "_recurse", true 553 ); 554 } 555 ++it; 556 } 557 } 558 559 std::string globTemp(Prefs::instance().read<std::string>("/Temp", "")); 560 std::set<std::string>::const_iterator it(m_tempDirs.begin()); 561 562 #ifdef WIN32 // workaround for boost_filesystem library issues 563 boost::algorithm::replace_all(globTemp, "\\", "/"); 564 #endif 565 if (m_tempDirs.size()) { 566 Prefs::instance().write("/TempCnt", m_tempDirs.size() - 1); 567 uint32_t cnt = 0; 568 while (it != m_tempDirs.end()) { 569 if (*it == globTemp) { 570 ++it; 571 continue; 572 } 573 boost::format fmt("/Temp_%d"); 574 fmt % cnt++; 575 Prefs::instance().write(fmt.str(), *it++); 576 } 577 } 578 } hydranode/hncore/fileslist.h
r2942 r2949 257 257 //! Attempt to import files from a location 258 258 boost::signal<void (boost::filesystem::path)> import; 259 260 //! Saves known shared/temp dirs to settings 261 void saveSettings() const; 259 262 private: 260 263 void scanSharedDir(const std::string &path, bool recurse = false); hydranode/hngui/librarytabs.cpp
r2946 r2949 97 97 int count = SettingsPage::instance().value("SharedDirs/Count").toInt(); 98 98 99 for (int i = 1; i <=count; ++i) {99 for (int i = 0; i < count; ++i) { 100 100 QString dirName = SettingsPage::instance().value( 101 101 QString("SharedDirs/Dir_%1").arg(i) … … 157 157 158 158 void LibraryPage::remShared() { 159 int count = SettingsPage::instance().value("SharedDirs/Count").toInt(); 160 if (!count) { 161 return; 162 } 163 164 QMenu menu(this); 159 165 m_ui->removeButton->setCheckable(true); 160 166 m_ui->removeButton->setChecked(true); 161 167 162 QMenu menu(this); 163 int count = SettingsPage::instance().value("SharedDirs/Count").toInt(); 164 for (int i = 1; i <= count; ++i) { 168 for (int i = 0; i < count; ++i) { 165 169 QString dirName = SettingsPage::instance().value( 166 170 QString("SharedDirs/Dir_%1").arg(i) … … 169 173 // dirName = dirName.replace("/", "\\"); 170 174 //#endif 171 /* QAction *ac =*/ menu.addAction(dirName); 172 // if (fCol == 4 && fText == dirName) { 173 // ac->setIcon(QIcon(":/transfer/icons/clear16")); 174 // } 175 menu.addAction(dirName); 175 176 } 176 177 QPoint pos(0, m_ui->removeButton->height()); … … 181 182 LibraryList::getList()->remShared(ret->text().toStdString()); 182 183 } 184 m_ui->removeButton->setChecked(false); 183 185 m_ui->removeButton->setCheckable(false); 184 m_ui->removeButton->setChecked(false);185 186 } 186 187
