void SequenceEditor::slotInsert() { assert(m_tempValues); QListViewItem* item = NULL; if (m_list->currentItem()) { item = new QListViewItem(m_list, m_list->currentItem()); } else { item = new QListViewItem(m_list, m_list->lastItem()); } QString s; for (t_channel ch = 0; ch < m_channels; ch++) { s.sprintf("%.3d", m_tempValues[ch].value); if (m_tempValues[ch].type == Scene::NoSet) { item->setText(ch, "---"); } else { item->setText(ch, s); } // Rename doesn't work with rmb click in pre 3.3, // so it won't be available anywhere item->setRenameEnabled(ch, false); } m_list->setSelected(item, true); m_list->ensureItemVisible(item); }
void VariablesListViewItem::setRenameEnabled( int col, bool b ) { QListViewItem::setRenameEnabled(col, b); QListViewItem* item = firstChild(); while(item) { item->setRenameEnabled(col, b); item = item->nextSibling(); } }
void EditFunctions::functionAdd( const QString &access, const QString &type ) { QListViewItem *i = new QListViewItem( functionListView ); i->setPixmap( 0, QPixmap::fromMimeSource( "designer_editslots.png" ) ); i->setRenameEnabled( 0, TRUE ); i->setText( 1, "void" ); i->setText( 2, "virtual" ); if ( access.isEmpty() ) i->setText( 3, "public" ); else i->setText( 3, access ); if( type.isEmpty() ) { if ( showOnlySlots->isChecked() ) i->setText( 4, "slot" ); else { i->setText( 4, lastType ); } } else { i->setText( 4, type ); } if ( i->text( 4 ) == "slot" ) { i->setText( 0, "newSlot()" ); if ( MetaDataBase::isSlotUsed( formWindow, "newSlot()" ) ) i->setText( 5, tr( "Yes" ) ); else i->setText( 5, tr( "No" ) ); } else { i->setText( 0, "newFunction()" ); i->setText( 5, "---" ); } functionListView->setCurrentItem( i ); functionListView->setSelected( i, TRUE ); functionListView->ensureItemVisible( i ); functionName->setFocus(); functionName->selectAll(); FunctItem fui; fui.id = id; fui.oldName = i->text( 0 ); fui.newName = fui.oldName; fui.oldRetTyp = i->text( 1 ); fui.retTyp = fui.oldRetTyp; fui.oldSpec = i->text ( 2 ); fui.spec = fui.oldSpec; fui.oldAccess = i->text( 3 ); fui.access = fui.oldAccess; fui.oldType = i->text( 4 ); fui.type = fui.oldType; lastType = fui.oldType; functList.append( fui ); functionIds.insert( i, id ); id++; }
void ListViewEditor::itemNewClicked() { QListViewItem *item = new QListViewItem( itemsPreview ); item->setText( 0, "Item" ); item->setRenameEnabled( 0, TRUE ); itemsPreview->setCurrentItem( item ); itemsPreview->setSelected( item, TRUE ); itemText->setFocus(); itemText->selectAll(); }
void VariablesListView::setReadOnly(bool readOnly) { m_isReadOnly = readOnly; QListViewItem* item = firstChild(); while(item) { item->setRenameEnabled(ValueCol, !m_isReadOnly); item = item->nextSibling(); } }
void ListViewEditor::itemNewSubClicked() { QListViewItem *parent = itemsPreview->currentItem(); QListViewItem *item = 0; if ( parent ) { item = new QListViewItem( parent ); parent->setOpen( TRUE ); } else { item = new QListViewItem( itemsPreview ); } item->setText( 0, "Subitem" ); item->setRenameEnabled( 0, TRUE ); itemsPreview->setCurrentItem( item ); itemsPreview->setSelected( item, TRUE ); }
extern "C" int create_qt_ui(RC_CONF *my_rc, int argc, char **argv) { int i; char *homedir; char temp[FILENAME_MAX]; int fd; FILE *fp; QListViewItem *element; QCheckListItem *foo; MyDialogs my_dialogs; TableCallbacks my_tablecallbacks; thefish = new QApplication( argc, argv); // It's more convenient to have these // as global. my_rc_knobs = my_rc->knobs_ptr; my_rc_strings = my_rc->string_ptr; my_num_knobs = my_rc->knobs_size; my_num_strings = my_rc->string_size; mw = new QMainWindow; QVBox *vbox = new QVBox(mw, 0, 0); QTabWidget main_tab(vbox, 0, 0); knobs_table = new QListView; strings_table = new QListView; strings_table->setAllColumnsShowFocus(TRUE); knobs_table->addColumn("Variable Name", -1); strings_table->addColumn("Name", -1); strings_table->addColumn("Value",-1); QObject::connect(strings_table, SIGNAL(itemRenamed(QListViewItem*, int, const QString &)), &my_tablecallbacks, SLOT(StringChanged(QListViewItem*, int, const QString &))); QObject::connect(knobs_table, SIGNAL(clicked(QListViewItem *)), &my_tablecallbacks, SLOT(KnobChanged(QListViewItem*))); QObject::connect(strings_table, SIGNAL(clicked(QListViewItem *)), &my_tablecallbacks, SLOT(StringClicked(QListViewItem*))); main_tab.addTab(knobs_table, "Knobs"); main_tab.addTab(strings_table, "Strings"); QHBox *hbuttons = new QHBox(vbox, 0, 0); SaveButton = new QPushButton("&Save", hbuttons, 0); QPushButton AddButton("&Add", hbuttons, 0); QPushButton AboutButton("A&bout", hbuttons, 0); QPushButton QuitButton("&Quit", hbuttons, 0); // No save for now... SaveButton->setEnabled(false); QObject::connect(&QuitButton, SIGNAL(clicked()), &my_dialogs, SLOT(CheckSaved())); QObject::connect(&AboutButton, SIGNAL(clicked()), &my_dialogs, SLOT(ShowAbout())); QObject::connect(&AddButton, SIGNAL(clicked()), &my_dialogs, SLOT(DoAdd())); QObject::connect(SaveButton, SIGNAL(clicked()), &my_dialogs, SLOT(DoSave())); // We're now using human readable data, handle the migration // transparently for the user. homedir = getenv("HOME"); if (homedir != NULL) { snprintf(temp, FILENAME_MAX, "%s/%s", homedir, ".thefishrc"); fd = open(temp, O_RDONLY, 0); if (fd != -1 ) { i = lseek(fd, 0, SEEK_END); lseek(fd, 0, SEEK_SET); if (i == sizeof(oldsize)) { read(fd, &oldsize[0], sizeof(oldsize)); close(fd); } else { fp = fdopen(fd, "r"); fscanf(fp, "geometry=%i,%i", &oldsize[0], &oldsize[1]); fclose(fp); } } else { // Set some default values oldsize[0] = 400; oldsize[1] = 480; } } // Build the table knobs_table->setColumnWidthMode (1, QListView::Maximum); knobs_table->setRootIsDecorated(false); for (i = my_rc->knobs_size - 1; i >= 0; i--) { // No user comments yet (my_rc->knobs_ptr+i)->user_comment = 0; foo = new QCheckListItem( knobs_table, (my_rc->knobs_ptr+i)->name, QCheckListItem::CheckBox); if ((my_rc->knobs_ptr+i)->knob_val == KNOB_IS_NO) { foo->setOn(FALSE); } else { foo->setOn(TRUE); } } for (i = my_rc->string_size - 1; i >= 0; i--) { // No user comments yet (my_rc->string_ptr+i)->user_comment = 0; element = new QListViewItem(strings_table, (my_rc->string_ptr+i)->name, (my_rc->string_ptr+i)->value); element->setRenameEnabled(0, FALSE); element->setRenameEnabled(1, TRUE); } // Set the app icon QPixmap my_icon((const char **) fish64_xpm); mw->setIcon((const QPixmap ) my_icon); mw->setCaption("The Fish " THE_FISH_VERSION); mw->setCentralWidget( vbox ); thefish->setMainWidget(mw); mw->show(); mw->resize(oldsize[0], oldsize[1]); dirty = 0; my_status_bar = mw->statusBar(); my_status_bar->message("Ready"); return thefish->exec(); }
void MyDialogs::DoAdd() { int i; int dupe,invalid; char c, d; QString my_name, my_value, my_comment; QCheckListItem *foo; QListViewItem *element; char *new_name, *new_value, *new_comment; QDialog *my_add_dialog = new QDialog(mw, "my_add_dialog", 0); QBoxLayout *add_vbox = new QVBoxLayout(my_add_dialog); QTable *table = new QTable(3, 2, my_add_dialog); add_vbox->addWidget(table); table->setText(0, 0, "Name"); table->setText(1, 0, "Value"); table->setText(1, 1, "\"\""); table->setText(2, 0, "Optional comment"); table->setColumnReadOnly(0, true); table->adjustColumn(0); table->setColumnWidth(1, 180); table->setLeftMargin(0); table->setTopMargin(0); QHBox *add_hbuttons = new QHBox(my_add_dialog, 0, 0); add_vbox->addWidget(add_hbuttons); QPushButton *AddYesButton = new QPushButton("&OK", add_hbuttons, 0); QPushButton *AddNoButton = new QPushButton("&Cancel", add_hbuttons, 0); QObject::connect(AddYesButton, SIGNAL(clicked()), my_add_dialog, SLOT(accept())); QObject::connect(AddNoButton, SIGNAL(clicked()), my_add_dialog, SLOT(reject())); add_vbox->setResizeMode(QLayout::Auto); add_vbox->activate(); my_add_dialog->setCaption("Add a new entry"); if (my_add_dialog->exec() == QDialog::Accepted) { dupe = 0; invalid = 0; my_name = table->text( 0, 1); my_value = table->text(1, 1); my_comment = table->text(2, 1); new_name = (char *) my_name.ascii(); new_value = (char *) my_value.ascii(); new_comment = (char *) my_comment.ascii(); if (new_name == NULL || new_value == NULL) { QMessageBox::critical(0, "The Fish", "Name and Value cannot be null."); delete(my_add_dialog); return; } for (i = 0; i < my_num_knobs; i++) { if (strncmp(my_name.ascii(), (my_rc_knobs+i)->name, 255) == 0) { dupe = 1; break; } } for (i = 0; i < my_num_strings; i++) { if (strncmp(my_name.ascii(), (my_rc_strings+i)->name, 255) == 0) { dupe = 1; break; } } if (dupe == 1) { QMessageBox::critical(0, "The Fish", "An entry with that name already exists."); } else { c = new_value[0]; d = new_value[strlen(new_value)-1]; if (c != '"' || d != '"') { QMessageBox::critical(0, "The Fish", "Value must begin and end with \"."); delete(my_add_dialog); return; } // It's a knob set to YES if (strncasecmp(new_value, KNOB_YES, 255) == 0) { (my_rc_knobs+my_num_knobs)->user_comment = 0; (my_rc_knobs+my_num_knobs)->user_added = USER_ADDED_YES; (my_rc_knobs+my_num_knobs)->knob_val = KNOB_IS_YES; (my_rc_knobs+my_num_knobs)->knob_orig = KNOB_IS_YES; (my_rc_knobs+my_num_knobs)->modified = MODIFIED_YES; strncpy((my_rc_knobs+my_num_knobs)->name, new_name, 255); if (new_comment != NULL) { if (strlen(new_comment) > 1) { strncpy((my_rc_knobs+my_num_knobs)->comment, new_comment, 255); (my_rc_knobs+my_num_knobs)->user_comment = 1; } } foo = new QCheckListItem(knobs_table, (my_rc_knobs+my_num_knobs)->name, QCheckListItem::CheckBox); foo->setOn(TRUE); my_num_knobs++; dirty++; SaveButton->setEnabled(TRUE); // It's a knob set to NO } else if (strncasecmp(new_value, KNOB_NO, 255) == 0) { (my_rc_knobs+my_num_knobs)->user_comment = 0; (my_rc_knobs+my_num_knobs)->user_added = USER_ADDED_YES; (my_rc_knobs+my_num_knobs)->knob_val = KNOB_IS_NO; (my_rc_knobs+my_num_knobs)->knob_orig = KNOB_IS_NO; (my_rc_knobs+my_num_knobs)->modified = MODIFIED_YES; strncpy((my_rc_knobs+my_num_knobs)->name, new_name, 255); if (new_comment != NULL) { if (strlen(new_comment) > 1) { strncpy((my_rc_knobs+my_num_knobs)->comment, new_comment, 255); (my_rc_knobs+my_num_knobs)->user_comment = 1; } } foo = new QCheckListItem(knobs_table, (my_rc_knobs+my_num_knobs)->name, QCheckListItem::CheckBox); foo->setOn(FALSE); my_num_knobs++; dirty++; SaveButton->setEnabled(TRUE); // It's a string } else { (my_rc_strings+my_num_strings)->user_comment = 0; (my_rc_strings+my_num_strings)->user_added = USER_ADDED_YES; (my_rc_strings+my_num_strings)->modified = MODIFIED_YES; strncpy((my_rc_strings+my_num_strings)->name, new_name, 255); strncpy((my_rc_strings+my_num_strings)->value, new_value, 255); strncpy((my_rc_strings+my_num_strings)->orig, new_value, 255); if (new_comment != NULL) { if (strlen(new_comment) > 1) { strncpy((my_rc_strings+my_num_strings)->comment, new_comment, 255); (my_rc_strings+my_num_strings)->user_comment = 1; } } element = new QListViewItem(strings_table, (my_rc_strings+my_num_strings)->name, (my_rc_strings+my_num_strings)->value); element->setRenameEnabled(0, FALSE); element->setRenameEnabled(1, TRUE); my_num_strings++; dirty++; SaveButton->setEnabled(TRUE); } } } delete(my_add_dialog); }