void KJotsMain::deleteEntry() { if( !folderOpen ) return; if( entrylist.count() == 0 ) return; else if( entrylist.count() == 1 ) { entrylist.at(0)->text = ""; entrylist.at(0)->subject = ""; s_bar->setValue(0); me_text->clear(); le_subject->setText(""); return; } entrylist.remove(current); if( current >= (int) entrylist.count() - 1 ) { if( current ) current--; s_bar->setValue(current); s_bar->setRange(0, entrylist.count()-1 ); } me_text->setText( entrylist.at(current)->text ); emit entryMoved(current); le_subject->setText( entrylist.at(current)->subject ); s_bar->setRange(0, entrylist.count()-1 ); emit folderChanged(&entrylist); }
void KJotsMain::createFolder() { AskFileName *ask = new AskFileName(this); if( ask->exec() == QDialog::Rejected ) return; QString name = ask->getName(); delete ask; if( folder_list.contains(name) ) { QMessageBox::message(klocale->translate("Warning"), klocale->translate("A book with this name already exists."), klocale->translate("OK"), this); return; } saveFolder(); entrylist.clear(); folderOpen = TRUE; me_text->setEnabled(TRUE); le_subject->setEnabled(TRUE); me_text->setFocus(); me_text->clear(); me_text->deselect(); TextEntry *new_entry = new TextEntry; entrylist.append(new_entry); new_entry->subject = ""; current = 0; s_bar->setRange(0,0); s_bar->setValue(0); emit folderChanged(&entrylist); emit entryMoved(current); le_subject->setText(entrylist.first()->subject); folder_list.append(name); if( folders->text(folders->idAt(0)) == 0 ) folders->removeItemAt(0); folders->insertItem(name, unique_id++); //QDir dir = QDir::home(); //dir.cd(".kde/share/apps/kjots"); QDir dir = QDir( KApplication::localkdedir().data() ); dir.cd("share/apps/kjots"); current_folder_name = dir.absPath(); current_folder_name += '/'; current_folder_name += name; KConfig *config = KApplication::getKApplication()->getConfig(); config->setGroup("kjots"); config->writeEntry( "Folders", folder_list ); config->sync(); l_folder->setText(name); QPushButton *but; for( but = button_list.first(); but != 0; but = button_list.next() ) but->setOn(FALSE); }
void KJotsMain::prevEntry() { if( !folderOpen ) return; if( current-1 < 0 ) return; entrylist.at(current)->text = me_text->text(); entrylist.at(current)->subject = le_subject->text(); me_text->setText( entrylist.at(--current)->text ); me_text->deselect(); me_text->repaint(); emit entryMoved(current); le_subject->setText( entrylist.at(current)->subject ); s_bar->setValue(current); }
void KJotsMain::nextEntry() { if( !folderOpen ) return; if( current+1 >= (int) entrylist.count() ) return; entrylist.at(current)->text = me_text->text(); entrylist.at(current)->subject = le_subject->text(); me_text->setText( entrylist.at(++current)->text ); me_text->deselect(); me_text->repaint(); emit entryMoved(current); le_subject->setText( entrylist.at(current)->subject ); s_bar->setValue(current); }
void KJotsMain::barMoved( int new_value ) { if( !folderOpen ) return; if( current == new_value ) return; entrylist.at(current)->text = me_text->text(); entrylist.at(current)->subject = le_subject->text(); current = new_value; me_text->setText( entrylist.at(current)->text ); me_text->deselect(); me_text->repaint(); emit entryMoved(current); le_subject->setText( entrylist.at(current)->subject ); s_bar->setValue(new_value); }
void KJotsMain::newEntry() { if( !folderOpen ) return; entrylist.at(current)->text = me_text->text(); entrylist.at(current)->subject = le_subject->text(); me_text->clear(); le_subject->setText(""); TextEntry *new_entry = new TextEntry; entrylist.append(new_entry); new_entry->subject = ""; current = entrylist.count()-1; s_bar->setRange(0,current); s_bar->setValue(current); emit folderChanged(&entrylist); emit entryMoved(current); }
void KJotsMain::openFolder(int id) { QPushButton *but; for( but = button_list.first(); but != NULL; but = button_list.next() ) but->setOn(FALSE); but = (QPushButton *) bg_top->find(id); if( but ) but->setOn(TRUE); //QDir dir = QDir::home(); //dir.cd(".kde/share/apps/kjots"); QDir dir = QDir( KApplication::localkdedir().data() ); dir.cd("share/apps/kjots"); QString file_name = dir.absPath(); file_name += '/'; file_name += folder_list.at( folders->indexOf(id) ); if( current_folder_name == file_name ) return; if( folderOpen ) saveFolder(); current_folder_name = file_name; if( readFile(current_folder_name) < 0) { folderOpen = FALSE; debug("Kjots: Unable to open folder"); return; } current = 0; me_text->deselect(); me_text->setText(entrylist.first()->text); emit folderChanged(&entrylist); emit entryMoved(current); le_subject->setText(entrylist.first()->subject); folderOpen = TRUE; l_folder->setText( folder_list.at(folders->indexOf(id)) ); me_text->setEnabled(TRUE); le_subject->setEnabled(TRUE); me_text->setFocus(); s_bar->setRange(0,entrylist.count()-1); s_bar->setValue(0); }
bool PlaylistModel::handle_change (const Xmms::Dict &chg) { int32_t change = chg.get<int32_t> ("type"); int32_t pos = 0, npos = 0; int32_t id = 0; QString s; if (chg.contains ("position")) { pos = chg.get<int32_t> ("position"); } if (chg.contains ("id")) { #if HAVE_XMMSV id = chg.get<int32_t> ("id"); #else id = chg.get<uint32_t> ("id"); #endif } if (chg.contains ("name")) { s = XClient::stdToQ (chg.get<std::string> ("name")); } if (s != m_name) { return true; } QModelIndex idx = QModelIndex (); switch (change) { case XMMS_PLAYLIST_CHANGED_ADD: beginInsertRows (idx, pos, pos); m_plist.append (id); endInsertRows (); break; case XMMS_PLAYLIST_CHANGED_INSERT: beginInsertRows (idx, pos, pos); m_plist.insert (pos, id); endInsertRows (); break; case XMMS_PLAYLIST_CHANGED_MOVE: npos = chg.get<int32_t> ("newposition"); beginRemoveRows (idx, pos, pos); m_plist.removeAt (pos); endRemoveRows (); beginInsertRows (idx, npos, npos); m_plist.insert (npos, id); endInsertRows (); if (pos < npos && pos) pos --; emit entryMoved (index (pos, 0), index (npos, 0)); break; case XMMS_PLAYLIST_CHANGED_REMOVE: m_client->cache ()->invalidate (m_plist[pos]); beginRemoveRows (idx, pos, pos); m_plist.removeAt (pos); endRemoveRows (); break; default: m_client->cache ()->invalidate_all (); m_client->playlist ()->listEntries () (Xmms::bind (&PlaylistModel::handle_list, this)); break; } /* TODO: call this only for the necessary methods */ emitTotalPlaytime (); return true; }
bool PlaylistModel::handle_change (const Xmms::Dict &chg) { int32_t change = chg.get<int32_t> ("type"); int32_t pos = 0, npos = 0; uint32_t id = 0; QString s; if (chg.contains ("position")) { pos = chg.get<int32_t> ("position"); } if (chg.contains ("id")) { id = chg.get<int32_t> ("id"); } if (chg.contains ("name")) { s = XClient::stdToQ (chg.get<std::string> ("name")); } if (s != m_name) { return true; } QModelIndex idx = QModelIndex (); switch (change) { case XMMS_PLAYLIST_CHANGED_ADD: beginInsertRows (idx, pos, pos); m_plist.append (id); endInsertRows (); emit this->entryAdded(); break; case XMMS_PLAYLIST_CHANGED_INSERT: beginInsertRows (idx, pos, pos); m_plist.insert (pos, id); endInsertRows (); emit this->entryAdded(); break; case XMMS_PLAYLIST_CHANGED_MOVE: npos = chg.get<int32_t> ("newposition"); beginRemoveRows (idx, pos, pos); m_plist.removeAt (pos); endRemoveRows (); beginInsertRows (idx, npos, npos); m_plist.insert (npos, id); endInsertRows (); if (pos < npos && pos) pos --; emit entryMoved (index (pos, 0), index (npos, 0)); break; case XMMS_PLAYLIST_CHANGED_REMOVE: m_client->cache ()->invalidate (m_plist[pos]); beginRemoveRows (idx, pos, pos); m_plist.removeAt (pos); endRemoveRows (); break; case XMMS_PLAYLIST_CHANGED_SHUFFLE: case XMMS_PLAYLIST_CHANGED_SORT: case XMMS_PLAYLIST_CHANGED_CLEAR: m_client->cache ()->invalidate_all (); m_client->playlist ()->listEntries () (Xmms::bind (&PlaylistModel::handle_list, this)); break; } return true; }