void ToolWindow::slot_toggleExpand() { setUpdatesEnabled(false); top_layout->setEnabled(false); setExpandedState(!expanded); setUpdatesEnabled(true); top_layout->setEnabled(true); button_area->updateGeometry(); top_layout->activate(); setFixedSize(minimumSize()); }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RimTreeViewStateSerializer::applyTreeViewStateFromString( QTreeView* treeView, const QString& treeViewState) { if (treeView->model()) { treeView->collapseAll(); QStringList nodes = treeViewState.split(";"); QString path; setExpandedState(nodes, treeView, treeView->model(), QModelIndex(), path); } }
ToolWindow::ToolWindow(EmulatorWindow *window) : QFrame(window), emulator_window(window) { Q_INIT_RESOURCE(resources); setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus); top_layout = new QBoxLayout(QBoxLayout::TopToBottom); top_layout->setContentsMargins(0, 0, 0, 0); setLayout(top_layout); setStyleSheet(QString("* { background: #2c3239 }")); title_bar = new TitleBarWidget(this); top_layout->addWidget(title_bar); QGridLayout *layout = new QGridLayout(); layout->setContentsMargins(10, 0, 10, 10); layout->setAlignment(Qt::AlignHCenter); int col = 0; int row = 0; addButton(layout, row++, col, ":/images/ic_power_settings_new_48px.svg", &EmulatorWindow::slot_power); addButton(layout, row++, col, ":/images/ic_volume_up_48px.svg", &EmulatorWindow::slot_volumeUp); addButton(layout, row++, col, ":/images/ic_volume_down_48px.svg", &EmulatorWindow::slot_volumeDown); addButton(layout, row++, col, ":/images/ic_stay_current_portrait_48px.svg", &EmulatorWindow::slot_rotate); addButton(layout, row++, col, ":/images/ic_zoom_in_24px.svg", &EmulatorWindow::slot_zoom); addButton(layout, row++, col, ":/images/ic_fullscreen_48px.svg", &EmulatorWindow::slot_fullscreen); expanded_buttons << addButton(layout, row++, col, ":/images/ic_camera_enhance_48px.svg", &EmulatorWindow::slot_screenshot); expanded_buttons << addButton(layout, row++, col, ":/images/ic_hangout_video_48px.svg", &EmulatorWindow::slot_screenrecord); expanded_buttons << addButton(layout, row++, col, ":/images/ic_arrow_back_48px.svg", &EmulatorWindow::slot_back); expanded_buttons << addButton(layout, row++, col, ":/images/ic_panorama_fish_eye_48px.svg", &EmulatorWindow::slot_home); expanded_buttons << addButton(layout, row++, col, ":/images/ic_crop_square_48px.svg", &EmulatorWindow::slot_recents); expanded_buttons << addButton(layout, row++, col, ":/images/ic_menu_48px.svg", &EmulatorWindow::slot_menu); col++; row = 0; expanded_buttons << addButton(layout, row++, col, ":/images/ic_mic_48px.svg", &EmulatorWindow::slot_voice); expanded_buttons << addButton(layout, row++, col, ":/images/ic_sd_card_48px.svg", &EmulatorWindow::slot_sdcard); expanded_buttons << addButton(layout, row++, col, ":/images/ic_location_on_48px.svg", &EmulatorWindow::slot_gps); expanded_buttons << addButton(layout, row++, col, ":/images/ic_signal_cellular_4_bar_48px.svg", &EmulatorWindow::slot_cellular); expanded_buttons << addButton(layout, row++, col, ":/images/ic_battery_std_48px.svg", &EmulatorWindow::slot_battery); expanded_buttons << addButton(layout, row++, col, ":/images/ic_photo_camera_48px.svg", &EmulatorWindow::slot_camera); expanded_buttons << addButton(layout, row++, col, ":/images/ic_call_48px.svg", &EmulatorWindow::slot_phone); expanded_buttons << addButton(layout, row++, col, ":/images/ic_filter_tilt_shift_48px.svg", &EmulatorWindow::slot_sensors); expanded_buttons << addButton(layout, row++, col, ":/images/ic_keyboard_arrow_left_48px.svg", &EmulatorWindow::slot_left); expanded_buttons << addButton(layout, row++, col, ":/images/ic_keyboard_arrow_down_48px.svg", &EmulatorWindow::slot_down); expanded_buttons << addButton(layout, row++, col, ":/images/ic_keyboard_arrow_up_48px.svg", &EmulatorWindow::slot_up); expanded_buttons << addButton(layout, row++, col, ":/images/ic_keyboard_arrow_right_48px.svg", &EmulatorWindow::slot_right); button_area = new QWidget(); button_area->setLayout(layout); top_layout->addWidget(button_area); setExpandedState(false); }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void setExpandedState(QStringList& nodes, QTreeView* view, QAbstractItemModel* model, const QModelIndex startIndex, QString path) { path += QString::number(startIndex.row()) + QString::number(startIndex.column()); for (int i = 0; i < model->rowCount(startIndex); ++i) { QModelIndex nextIndex = model->index(i, 0, startIndex); QString nextPath = path + QString::number(nextIndex.row()) + QString::number(nextIndex.column()); if(!nodes.contains(nextPath)) continue; setExpandedState(nodes, view, model, model->index(i, 0, startIndex), path); } if (nodes.contains(path)) { view->setExpanded( startIndex.sibling(startIndex.row(), 0), true ); } }