A button to show closed MIDI import panel

This commit is contained in:
Andrey M. Tokarev 2013-09-25 23:53:52 +04:00
parent 3226ca62b0
commit e339013655
4 changed files with 44 additions and 17 deletions

View file

@ -129,6 +129,7 @@ void ImportMidiPanel::hidePanel()
{
if (isVisible()) {
setVisible(false);
emit closeClicked();
prefferedVisible_ = false;
}
}

View file

@ -31,6 +31,9 @@ class ImportMidiPanel : public QWidget
void setPrefferedVisible(bool visible);
void setMidiPrefOperations(const QString &fileName);
signals:
void closeClicked();
private slots:
void updateUi();
void onCurrentTrackChanged(const QModelIndex &currentIndex);

View file

@ -431,7 +431,7 @@ MuseScore::MuseScore()
_fullscreen = false;
lastCmd = 0;
lastShortcut = 0;
importmidi_panel = 0;
importmidiPanel = 0;
if (!preferences.styleName.isEmpty()) {
QFile f(preferences.styleName);
@ -539,16 +539,27 @@ MuseScore::MuseScore()
QSplitter* envelope = new QSplitter;
envelope->setChildrenCollapsible(false);
envelope->setOrientation(Qt::Vertical);
QLayout* envlayout = new QVBoxLayout;
envlayout->setMargin(0);
envlayout->setSpacing(0);
envelope->addWidget(mainWindow);
importmidi_panel = new ImportMidiPanel(this);
importmidi_panel->setVisible(false);
importmidiPanel = new ImportMidiPanel(this);
importmidiPanel->setVisible(false);
envelope->addWidget(importmidiPanel);
envelope->addWidget(importmidi_panel);
{
importmidiShowPanel = new QFrame;
QHBoxLayout *hl = new QHBoxLayout;
hl->setMargin(0);
hl->setSpacing(0);
importmidiShowPanel->setLayout(hl);
QPushButton *b = new QPushButton("Show MIDI import panel");
importmidiShowPanel->setVisible(false);
connect(b, SIGNAL(clicked()), SLOT(showMidiImportPanel()));
connect(importmidiPanel, SIGNAL(closeClicked()), importmidiShowPanel, SLOT(show()));
hl->addWidget(b);
QSpacerItem *item = new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Fixed);
hl->addSpacerItem(item);
envelope->addWidget(importmidiShowPanel);
}
{
QList<int> sizes;
@ -1554,30 +1565,40 @@ void MuseScore::midiPanelOnSwitchToFile(const QString &file)
{
bool isMidiFile = ImportMidiPanel::isMidiFile(file);
if (isMidiFile) {
importmidi_panel->setMidiFile(file);
if (importmidi_panel->prefferedVisible())
importmidi_panel->setVisible(true);
importmidiPanel->setMidiFile(file);
if (importmidiPanel->prefferedVisible())
importmidiPanel->setVisible(true);
}
else
importmidi_panel->setVisible(false);
importmidiPanel->setVisible(false);
importmidiShowPanel->setVisible(!importmidiPanel->prefferedVisible() && isMidiFile);
}
void MuseScore::midiPanelOnCloseFile(const QString &file)
{
if (ImportMidiPanel::isMidiFile(file))
importmidi_panel->excludeMidiFile(file);
importmidiPanel->excludeMidiFile(file);
}
void MuseScore::allowShowMidiPanel(const QString &file)
{
if (ImportMidiPanel::isMidiFile(file))
importmidi_panel->setPrefferedVisible(true);
importmidiPanel->setPrefferedVisible(true);
}
void MuseScore::setMidiPrefOperations(const QString &file)
{
if (ImportMidiPanel::isMidiFile(file))
importmidi_panel->setMidiPrefOperations(file);
importmidiPanel->setMidiPrefOperations(file);
}
void MuseScore::showMidiImportPanel()
{
importmidiPanel->setPrefferedVisible(true);
QString fileName = cs ? cs->fileInfo()->filePath() : "";
if (ImportMidiPanel::isMidiFile(fileName))
importmidiPanel->setVisible(true);
importmidiShowPanel->hide();
}
@ -4010,7 +4031,7 @@ void MuseScore::cmd(QAction* a, const QString& cmd)
else if (cmd == "toggle-navigator")
showNavigator(a->isChecked());
else if (cmd == "toggle-midiimportpanel")
importmidi_panel->setVisible(a->isChecked());
importmidiPanel->setVisible(a->isChecked());
else if (cmd == "toggle-mixer")
showMixer(a->isChecked());
else if (cmd == "synth-control")

View file

@ -220,7 +220,8 @@ class MuseScore : public QMainWindow, public MuseScoreCore {
ScoreTab* tab1;
ScoreTab* tab2;
NScrollArea* _navigator;
ImportMidiPanel* importmidi_panel;
ImportMidiPanel* importmidiPanel;
QFrame* importmidiShowPanel;
QSplitter* mainWindow;
QMenu* menuView;
@ -449,6 +450,7 @@ class MuseScore : public QMainWindow, public MuseScoreCore {
void switchPlayMode(int);
void networkFinished(QNetworkReply*);
void switchLayoutMode(int);
void showMidiImportPanel();
public slots:
virtual void cmd(QAction* a);